小编cul*_*rón的帖子

SBCL标准库文档?

我想学习和使用SBCL,因为它易于学习和速度.(3年前我一直在和Lisp一起玩,现在我正在刷新它.)但是我如何才能了解标准库中包含的内容,以便我不重新实现?

在Python之后,这就像一场噩梦:SBCL网站有一本手册只涵盖了软件,而不是标准库上的一个词.(为了比较,Gnu Common Lisp的网站只有源代码和二进制文件.)

lisp documentation sbcl common-lisp standard-library

14
推荐指数
2
解决办法
3626
查看次数

如何在Git中"hg backout X"?

我必须使用Git并且想要撤消一个在提示之前提交的提交.在Hg中它是hg backout.Git中的模拟命令是什么?

(在发布之前我没有看到,也没看到模拟命令.)

git version-control mercurial backout

10
推荐指数
2
解决办法
4671
查看次数

如何在不丢失更改的情况下停止/重新启动docker容器?

我做了以下操作并丢失了Docker容器中所有已更改的数据.

  1. docker build -t <name:tag> .
  2. docker run *-p 8080:80* --name <container_name> <name:tag>
  3. docker exec (导入和处理一些文件,启动服务器来托管它们)

然后我想在不同的端口上运行它.docker stop&docker run不起作用.相反,我做到了

  1. docker stop
  2. docker rm <container_name>
  3. docker run (与以前相同的参数)

重新启动后,我看到1-3中容器中发生的更改已经消失,并且必须重新运行导入.

下次我该怎么做?

docker docker-image

10
推荐指数
1
解决办法
1万
查看次数

如何组织Javascript UI?

我需要关于程序架构的好例子和最佳实践.

我正在尝试为适用于Google.Maps的应用构建一个JS用户界面.在第一稿中,用户应该能够以类似于GM的方式在地图上绘制几何形状然后通过AJAX发送形状并显示响应.

问题是代码变得复杂只是用多边形编辑.

在Joel的"Duct-tape Programmer"的启发下,我尝试绘制一个直截了当的代码,它可以动作并切换事件处理程序,以避免使用大的if-else树."新建多边形"按钮为map.onclick创建一个观察者,更改其他按钮的事件处理程序或隐藏它们,并隐藏自身等.

这种方法的缺点是数据处理代码与接口混合在一起.创建div容器以在新多边形上显示数据的代码位于处理w/GM或w /形状数据的代码旁边.如果我想修改UI,我需要处理整个应用程序.

我可以稍后再查看它并将这个生成UI的代码移到别处,但后来我的主程序员.相反,他坚持使用"消息传递"方法:一个简单的事件系统,其中对象订阅事件并触发它们.接口代码可以与数据处理和与GM交谈完全隔离,但现在每个监听器都必须仔细检查此消息是否适用于它.

例如,单击地图上的多边形必须突出显示它并开始编辑.但是如果正在绘制另一个多边形而不是.那么,有些人在和你说话吗? - 代码随处可见.

我会很感激UI架构方法的好例子.

javascript

9
推荐指数
2
解决办法
799
查看次数

Python的事件框架?

我正在构建一个与Web客户端(Django)和远程API(可能是一个独立的守护进程)一起工作的系统.我发现将它们的工作与JavaScript中的某些事件框架协调起来更容易.不幸的是,Django信号是同步的,这将使对客户端的回复非常慢.此外,我可能希望能够将守护程序或其部分迁移到单独的计算机,但仍以相同的方式工作(不是RPC,而只是触发事件或发送消息).(这听起来像是Erlang的方法.)

是否有一个框架可以使用经过验证的可靠方法在流程之间进行通信(例如,RabbitMQ),并且需要最少的样板?

至于Twisted,AndréParamés建议,我更喜欢更简单的代码.这在扭曲中是否可行?

from events_framework import subscribe, trigger
from django.http import Client
http_client = Client()  # just a sample

@subscribe('data_received'):
def reply(data):
     http_client.post('http://www.example.com', data)
     trigger('data_resent', data)
Run Code Online (Sandbox Code Playgroud)

这里有更多细节.有一个Django视图文件,它使用一些模型并通知其他事件.并且有一个独立的守护程序脚本可以无限运行并对事件做出反应.

这只是伪代码,我的意思是它应该是多么容易.

# django_project/views.py (a Django views file)
from events_framework import publish, subscribe
from annoying import

@subscribe('settings_updated')
def _on_settings_update(event):  # listens to settings_updated event and saves the data
    Settings.object.get(user__id=event.user_id).update(event.new_settings)

@render_to('form.html')
def show_form(request):  # triggers 'form_shown' event
    publish('form_shown', {'user_id': request.user.id, 'form_data': request.GET})
    return {...}


# script.py (a standalone script)
from events_framework import publish, …
Run Code Online (Sandbox Code Playgroud)

python events twisted message-queue

9
推荐指数
2
解决办法
8801
查看次数

Django reversion不保存shell中的修订版

我做了初始安装步骤并创建了初始修订版,但是当我在django shell中保存模型时,没有创建新版本:

In [1]: s = Shop.objects.all()[0]
In [2]: import reversion
In [3]: s.name = 'a'
In [4]: s.save()
In [5]: s.name = 'b'
In [6]: s.save()

In [7]: reversion.get_for_object(s)
Out[7]: [<Version: <1> "X">]
Run Code Online (Sandbox Code Playgroud)

这是初始修订版.

从视图更新模型时,会成功创建修订.

我错过了什么?

models.py文件是:

 ...
 class Shop(Model):
     ...


 import reversion
 reversion.register(Shop)
 <EOF>
Run Code Online (Sandbox Code Playgroud)

我在post_save接收器中看到了一种反转方法,虽然在我调试它时没有调用它.

我有Django v1.4.1,reversion v1.6.2.

django django-models django-reversion

9
推荐指数
1
解决办法
2366
查看次数

是否有针对getSelection()的跨浏览器解决方案?

我需要建立一个评论机制,用户突出显示一段文字,点击"评论这个",然后做一些事情.Javascript代码不仅要知道所选文本(这是微不足道的),还要知道anchorOffset,以确切地知道选择文本的字符.

我找到了一个跨浏览器的解决方案,为您提供文本.是否有一种可靠的方法来获取DOM规范中描述的选择对象

javascript dom cross-browser

8
推荐指数
1
解决办法
4292
查看次数

如何使用BitBucket和GitHub的特殊SSH密钥进行推/拉?

我有Ubuntu 10.04,最近升级到11.10.其他SSH密钥停止工作.我有钥匙bitbucketgithub,这是我的网站.如何告诉SSH使用Bitbucket的一个特定密钥和GitHub使用另一个密钥?

所以,我有一个配置:

Host bitbucket
HostName 207.223.240.182
User hg
IdentityFile ~/.ssh/bitbucket
Run Code Online (Sandbox Code Playgroud)

当我打电话时ssh bitbucket,ssh使用密钥成功登录并被踢出.但是当我尝试时hg pull,我看到"远程hg没有回应".并且没有询问密码.

可以做些什么?

git ssh mercurial github bitbucket

8
推荐指数
1
解决办法
5888
查看次数

如何检测函数是否已在本地定义?

在Python中,我有一个装饰器,如果函数在调用它的本地定义,则必须跳过任何实际工作.我做了一个简单的测试脚本:

def fn1():
    # @my_decorator will be here
    def fn2():
        pass

    print(fn2)
    return fn2

x = fn1()
print(x)
print(x.__module__)
Run Code Online (Sandbox Code Playgroud)

它打印这个:

 <function fn1.<locals>.fn2 at 0x7fd61bdf3ae8>
 <function fn1.<locals>.fn2 at 0x7fd61bdf3ae8>
 __main__
Run Code Online (Sandbox Code Playgroud)

正如我所看到的,Python看到函数是在局部空间中定义的(<locals>在打印文本中),但我看不出如何找到那些数据.我走过inspect模块,看不到任何类似的东西.

我不能依赖函数是否在全局变量中.

我该用什么?

python python-3.x python-decorators

8
推荐指数
2
解决办法
173
查看次数

为什么这个带有线程的 Python 代码有竞争条件?

此代码创建了一个竞争条件:

import threading

ITERS = 100000
x = [0]

def worker():
    for _ in range(ITERS):
        x[0] += 1  # this line creates a race condition
        # because it takes a value, increments and then writes
        # some inrcements can be done together, and lost

def main():
    x[0] = 0  # you may use `global x` instead of this list trick too
    t1 = threading.Thread(target=worker)
    t2 = threading.Thread(target=worker)
    t1.start()
    t2.start()
    t1.join()
    t2.join()

for i in range(5):
    main()
    print(f'iteration {i}. expected x …
Run Code Online (Sandbox Code Playgroud)

python gil python-3.x

7
推荐指数
1
解决办法
1466
查看次数