小编Par*_*and的帖子

Javascript信号量/测试和设置/锁定?

在Javascript中是否存在原子测试和设置,信号量或锁定这样的事情?

我有javascript通过自定义协议调用异步后台进程(后台进程实际上在一个单独的进程中运行,与浏览器无关).我相信我遇到了竞争状态; 后台进程在我的测试和我的设置之间返回,在javascript端搞砸了.我需要一个测试和设置操作来使它成为一个真正的信号量.

这是尝试检测后台进程并将其排队的javascript代码:

Call = function () {

var isRunning = true,
    queue = [];

return  {
    // myPublicProperty: "something",

    call: function (method) {
            if (isRunning) {
                console.log("Busy, pushing " + method);
                queue.push(method);
            } else {
                isRunning = true;
                objccall(method);
            }
        },

        done: function() {
            isRunning = false;
            if (queue.length > 0) {
                Call.call(queue.shift());
            }
        }
    };
}();
Run Code Online (Sandbox Code Playgroud)

呼叫是一个实现排队的单身人士; 任何想要调用外部进程的人都会调用Call.call("something").

有任何想法吗?

javascript concurrency semaphore

52
推荐指数
2
解决办法
5万
查看次数

Python中的现代高性能Blooming过滤器?

我正在寻找Python中的生产质量布隆过滤器实现来处理相当多的项目(例如100M到1B项目,误报率为0.01%).

Pybloom是一个选项,但它似乎显示它的年龄,因为它定期抛出Python 2.5上的DeprecationWarning错误.Joe Gregorio也有实施.

要求是快速查找性能和稳定性.我也愿意为特别好的c/c ++实现创建Python接口,如果有一个很好的Java实现,我甚至可以创建Jython.

缺乏这一点,任何关于可以处理~16E9位的位数组/位向量表示的建议?

python jython bloom-filter

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

Linux上无头,可编写脚本的Firefox/Webkit?

我希望自动化一些网络交互,即从安全网站定期下载文件.这主要涉及输入我的用户名/密码并导航到相应的URL.

我在Python中尝试过简单的脚本,然后是更复杂的脚本,只是发现这个特定的网站正在使用一些讨厌的基于javascript和flash的机制进行登录,渲染我的方法毫无用处.

然后我尝试了HTMLUnit,但这似乎也不想工作.我怀疑使用Flash是个问题.

我真的不想再考虑它,所以我倾向于编写一个实际的浏览器脚本来登录并获取我需要的文件.

要求是:

  • 在linux服务器上运行(即没有X运行).如果我真的需要让XI能够做到这一点,但我不会高兴.
  • 要可靠.我想开始这件事,再也不去想它了.
  • 可编写脚本.没有什么太复杂,但我应该能够告诉浏览器采取的各种步骤和访问页面.

对于无头,无X脚本的浏览器,有什么好的工具包吗?你有没有尝试过这样的事情?如果有的话,你有没有任何智慧的话语?

firefox screen-scraping webkit headless-browser

45
推荐指数
4
解决办法
2万
查看次数

Python Twitter库:哪一个?

我意识到这是一个懒惰的问题,但是我想看看Twitter人们有哪些python库有很好的经验.

我使用过Python Twitter工具,并且喜欢它简洁美观的界面,但它似乎并不是流行的 - 它甚至没有列在Twitter Libraries页面上.

但是,有很多其他的列出:

  • Konpaku Kogasa的oauth-python-twitter2.结合python-twitter和oauth-python-twitter来创建一个进化的OAuth口袋妖怪.
  • 由DeWitt Clinton撰写的python-twitter.该库为Twitter API提供了纯Python接口.
  • 安德鲁普莱斯的python-twyt.BSD许可的Twitter API接口库和命令行客户端.
  • Dustin Sallings的twitty-twister.Twitter的Twisted界面.
  • Ryan McGrath的twython.REST和搜索库受到python-twitter的启发.
  • 由Josh Roesslein提供的Tweepy.支持OAuth,Search API,Streaming API.

我的要求很简单:

  • 能够使用OAuth
  • 能够关注用户
  • 能够发送直接消息
  • 能够发布
  • 流式API会很好

一边扭曲一边(在这种情况下我没有使用扭曲),你是否使用过其他任何一种,如果是的话,你推荐它们吗?

[更新] FWIW,我最终再次使用Python Twitter Tools.新版本很好地支持OAuth,它是一个非常聪明的API,所以我坚持下去.

python twitter

42
推荐指数
2
解决办法
2万
查看次数

Python:ulimit和subprocess.call/subprocess.Popen很好用?

我需要限制我使用subprocess.call从python进程生成的外部命令行应用程序所花费的时间和cpu的数量,主要是因为有时候生成的进程被卡住并将cpu的引脚设置为99%.

nice和ulimit似乎是合理的方法,但我不确定他们如何与子进程交互.

  • 限制看起来像:
    • 如果超过60秒,则终止该过程
    • 将其限制为CPU的20%
  • 我想将资源限制应用于子进程,而不是应用于生成子进程的python进程.

有没有办法将nice和ulimit应用于subprocess.call生成的进程?是否有更好的python-native替代品?

这是在linux(ubuntu)系统上.

python resources nice ulimit

39
推荐指数
3
解决办法
2万
查看次数

HTTPS和外部(CDN)托管文件?

我有一个页面引用了几个外部托管的javascript文件 - 即Google上的jQuery使用YUI Loader的YUI.

问题是当我通过HTTPS访问页面时,浏览器会抱怨混合不安全的内容,因为外部javascript文件是使用http而不是https访问的.

处理这个问题的好方法是什么,用HTTPS访问外部jQuery和YUI Loader对象?

jquery yui cdn

30
推荐指数
2
解决办法
2万
查看次数

Python简单的裸体对象

创建可以为其分配属性的裸对象的最简单方法是什么?

具体的用例是:我在Django对象实例上进行各种操作,但有时实例是None(实例上有).在这种情况下,我想创建一个最简单的假对象,以便我可以为其属性赋值(例如.myobject.foo = 'bar').

基本上我正在寻找相当于这段Javascript的Python:

myobject = {}
myobject.foo = 'bar'
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用模拟对象/库,但我希望有一个非常简单的解决方案(就像上面的Javascript一样简单).有没有办法创建裸体对象实例?就像是:

myobject = object()
myobject.foo = 'bar'
Run Code Online (Sandbox Code Playgroud)

python oop

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

字典键unpythonic的Javascript样式点表示法?

我已经开始使用这样的结构:

class DictObj(object):
    def __init__(self):
        self.d = {}
    def __getattr__(self, m):
        return self.d.get(m, None)
    def __setattr__(self, m, v):
        super.__setattr__(self, m, v)
Run Code Online (Sandbox Code Playgroud)

更新:基于这个线程,我已经将DictObj实现修改为:

class dotdict(dict):
    def __getattr__(self, attr):
        return self.get(attr, None)
    __setattr__= dict.__setitem__
    __delattr__= dict.__delitem__

class AutoEnum(object):
    def __init__(self):
        self.counter = 0
        self.d = {}
    def __getattr__(self, c):
        if c not in self.d:
            self.d[c] = self.counter
            self.counter += 1        
        return self.d[c]
Run Code Online (Sandbox Code Playgroud)

其中DictObj是一个可以通过点表示法访问的字典:

d = DictObj()
d.something = 'one'
Run Code Online (Sandbox Code Playgroud)

我发现它比美学更令人愉悦d['something'].请注意,访问未定义的键会返回None而不是引发异常,这也很好.

更新:Smashery提出了一个很好的观点,mhawke扩展了更容易的解决方案.我想知道使用dict是否有任何不良副作用,而不是定义一个新字典; 如果没有,我很喜欢mhawke的解决方案.

AutoEnum是一个自动递增的枚举,使用如下:

CMD = AutoEnum()

cmds = …
Run Code Online (Sandbox Code Playgroud)

python coding-style

25
推荐指数
3
解决办法
8341
查看次数

在svn/hg/git/etc中优雅地处理特定于站点的设置/配置?

我一直在寻找一种更好的方法来处理特定于站点的设置(在这种情况下,django settings.py文件).

settings.py结构和字段相当一致,但开发人员的框,集成,QA,测试和生产环境之间的值不同.

控制设置源同时仍然允许在不同框之间进行更改的优雅方法是什么?

我也担心在源代码管理中有敏感数据(例如数据库密码),但我确实想要自动部署.

我们使用过的例子:

  • settings.py设置公共值,然后根据主机名或用户名加载辅助设置文件.

  • 使用部署脚本将值注入settings.py文件.但这只是将问题转移到管理部署脚本而不是settings.py脚本.

有人有一个特别优雅的方法吗?

django version-control configuration

24
推荐指数
1
解决办法
4408
查看次数

在Python中搜索/读取二进制数据

我正在阅读二进制文件(在这种情况下为jpg),并且需要在该文件中找到一些值.对于那些感兴趣的人,二进制文件是一个jpg,我试图通过查找这里详述的二进制结构来挑选它的维度.

我需要在二进制数据中找到FFC0,跳过一些字节数,然后读取4个字节(这应该给我图像尺寸).

在二进制数据中搜索值的好方法是什么?有没有相当于'发现',或类似的东西?

python binary search

22
推荐指数
5
解决办法
6万
查看次数