小编Jes*_*dge的帖子

从服务器流式传输大量屏幕截图

假设我有这个工具,每10秒钟截取用户桌面的截图,并将图像上传到服务器.24小时后将从服务器中删除图像.我想允许用户在他们的浏览器中查看这些屏幕截图.因此,假设每个图像都是300K,并且在24小时内上传了5000个图像 - 这是1.5 GB的数据.这些是png图像,通常一个屏幕截图与前一个屏幕截图没有什么不同,所以我想我可以很好地压缩它们 - 但我不确定它是如何工作的.我想允许用户在他们的浏览器中查看这些图像.我想在图像下面有一个滑块,这样用户就可以跳到24小时内的任何一点.我想像YouTube播放器这样的东西是理想的.用户可以跳转并且数据流式传输等.图像质量很重要,因为用户需要能够读取屏幕截图中的文本.我更喜欢Python解决方案.

我之前从未做过这样的事情,也不确定如何处理这个问题.你会怎么做?

python video streaming image

6
推荐指数
1
解决办法
380
查看次数

使用Python的远程chrome devtools

我想从Python 使用Chrome devtools(链接)的远程套接字调试内容.我正在使用从这里改编的代码.

我已经成功地获得pinglist_tabs工作.但我无法弄清楚如何evaluate_javascript.谁能告诉我我做错了什么?

import subprocess
import time, json, socket

from jca.files import my_paths

def request(tool, destination=None, **kw):
  # Send a command via socket to 'DevToolsService' or 'V8Debugger'
  j = json.dumps(kw)
  request = 'Content-Length:%d\r\nTool:%s\r\n' % (len(j), tool)
  if destination:
    request += 'Destination:%s\r\n' % (destination,)
  request += '\r\n%s\r\n' % (j,)
  sock.send(request)
  if kw.get('command', '') not in RESPONSELESS_COMMANDS:
    time.sleep(.1)
    response = sock.recv(30000)
    if response.strip():
      j = response.split('\r\n\r\n', 1)[1]
      return json.loads(j)

if __name__ …
Run Code Online (Sandbox Code Playgroud)

javascript python debugging google-chrome google-chrome-devtools

6
推荐指数
1
解决办法
2772
查看次数

缩小时使Jquery UI拖放工作

我正在看Jquery UI的这个拖放演示.该演示在正常缩放时工作正常.但是,如果你缩小说,50%,事情会变得很糟糕. http://www.elated.com/res/File/articles/development/javascript/jquery/drag-and-drop-with-jquery-your-essential-guide/card-game.html

任何人都可以建议一种修复演示的方法吗?

javascript jquery drag-and-drop jquery-ui zoom

6
推荐指数
1
解决办法
1420
查看次数

shelve(python)真的很奇怪的问题

我创建了一个名为foo_module.py包含以下代码的文件:

import shelve, whichdb, os

from foo_package.g import g

g.shelf = shelve.open("foo_path")
g.shelf.close() 

print whichdb.whichdb("foo_path")  # => dbhash
os.remove("foo_path")
Run Code Online (Sandbox Code Playgroud)

在该文件旁边,我创建了一个名为foo_packagethan 的目录,其中包含一个空__init__.py文件和一个名为g.pyjust 的文件:

class g:
    pass
Run Code Online (Sandbox Code Playgroud)

现在,当我运行时,foo_module.py我得到一个奇怪的错误消息:

Exception TypeError: "'NoneType' object is not callable" in ignored

但是,如果我将目录重命名foo_packagefoo,并更改导入行foo_module.py,我不会收到任何错误.Wtf在这里发生了什么?

在WinXP上运行Python 2.6.4.

python shelve

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

在 Prolog 中获得许多可能的解决方案之一

我正在尝试学习 Prolog。我看了这个脚本:

:- use_module(library(clpfd)).
puzzle([S,E,N,D] + [M,O,R,E] = [M,O,N,E,Y]) :-
   Vars = [S,E,N,D,M,O,R,Y],
   Vars ins 0..9,
   all_different(Vars),
   S*1000 + E*100 + N*10 + D + M*1000 + O*100 + R*10 + E #= M*10000 + O*1000 + N*100 + E*10 + Y,
   M #\= 0,
   S #\= 0.
Run Code Online (Sandbox Code Playgroud)

来源:https : //github.com/Anniepoo/prolog-examples/blob/master/sendmoremoney.pl

我像这样运行它并得到一些输出:

$ swipl -q -s sendmoremoney.pl
?- puzzle(X).
X = ([9, _G2009, _G2012, _G2015]+[1, 0, _G2024, _G2009]=[1, 0, _G2012, _G2009, _G2042]),
_G2009 in 4..7,
all_different([9, _G2009, _G2012, _G2015, …
Run Code Online (Sandbox Code Playgroud)

prolog clpfd cryptarithmetic-puzzle

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

虚拟混淆

所以我打开一个终端,cd到我的桌面,然后运行:

virtualenv test_env

然后,我在正常环境中创建以下文件:

/home/jesse/.local/lib/python2.6/site-packages/foo_package/__init__.py

该文件包含一行:

print "importing from normal env"

在test_env中我创建:

/home/jesse/Desktop/test_env/lib/python2.6/site-packages/foo_package/__init__.py

含:

print "importing from test env"

现在我打开一个终端并运行:

$ /home/jesse/Desktop/test_env/bin/python

然后做:

>>> import foo_package

哪个输出:

importing from normal env

为什么不从test_env导入文件?我认为这是virtualenv的重点.我在这里错过了什么吗?

编辑: Jon H告诉我,我需要激活环境.但这似乎没有解决问题......

jesse@jesse-laptop:~/Desktop/test_env$ source bin/activate
(test_env)jesse@jesse-laptop:~/Desktop/test_env$ bin/python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo_package
importing from normal env
>>> 
Run Code Online (Sandbox Code Playgroud)

在相关的情况下使用Ubuntu 9.04/Python 2.6.2/virtualenv 1.33.

编辑2: Haes问我在virtualenv中的sys.path是什么...

jesse@jesse-laptop:~/Desktop/test_env$ source bin/activate
(test_env)jesse@jesse-laptop:~/Desktop/test_env$ bin/python
Python …
Run Code Online (Sandbox Code Playgroud)

python virtualenv

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

SQLAlchemy:使用标签进一步过滤查询

我有一个查询,它产生一个 id,后跟一个计数。我只想获取那些计数为 N 的行。我尝试了下面的代码,但我得到“错误:列“cert_count”不存在”。我猜我用错了标签?

cust_cert_counts = db.session.query(
    CustomerCertAssociation.customer_id,
    func.count(CustomerCertAssociation.certification_id).label('cert_count')).filter(
    CustomerCertAssociation.certification_id.in_(cert_ids)).group_by(
    CustomerCertAssociation.customer_id)
cust_cert_counts.filter('cert_count=2').all()
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

QWebKit linkClicked信号永远不会触发

import sys

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import QWebView

app = QApplication(sys.argv)
web_view = QWebView()
def url_changed(url):  print 'url changed: ', url
def link_clicked(url):  print 'link clicked: ', url
def load_started():  print 'load started'
def load_finished(ok):  print 'load finished, ok: ', ok
web_view.connect(web_view, SIGNAL("urlChanged(const QUrl&)"), url_changed)
web_view.connect(web_view, SIGNAL("linkClicked(const QUrl&)"), link_clicked)
web_view.connect(web_view, SIGNAL('loadStarted()'), load_started)
web_view.connect(web_view, SIGNAL('loadFinished(bool)'), load_finished)
web_view.load(QUrl('http://google.com'))
web_view.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

linkClicked信号无效.其他信号有效.在Win XP上的Qt 4.6.2.

python qt pyqt qwebview qwebkit

3
推荐指数
1
解决办法
2758
查看次数

为什么我的tastypie缓存没有被调用?

我正在查看tastypie缓存文档并尝试设置我自己的简单缓存,但缓存似乎没有被调用.当我访问的http://本地主机:8000/API /调查/格式= JSON,我让我的tastypie产生JSON,但我没有得到从缓存类的输出.

from tastypie.resources import ModelResource
from tastypie.cache import NoCache
from .models import Poll


class JSONCache(NoCache):
    def _load(self):
        print 'loading cache'
        data_file = open(settings.TASTYPIE_JSON_CACHE, 'r')
        return json.load(data_file)

    def _save(self, data):
        print 'saving to cache'
        data_file = open(settings.TASTYPIE_JSON_CACHE, 'w')
        return json.dump(data, data_file)

    def get(self, key):
        print 'jsoncache.get'
        data = self._load()
        return data.get(key, None)

    def set(self, key, value, timeout=60):
        print 'jsoncache.set'
        data = self._load()
        data[key] = value
        self._save(data)


class PollResource(ModelResource):
    class Meta:
        queryset = Poll.objects.all()
        resource_name = …
Run Code Online (Sandbox Code Playgroud)

python django tastypie

3
推荐指数
1
解决办法
1115
查看次数

EC2用于应对需求激增

我正在为做一些CPU密集型工作的移动应用程序编写后端。我们预计该应用在大多数情况下不会大量使用,但偶尔会有大量需求激增。我当时在想我们应该做的是保留几个24/7服务器来处理低需求流量的稳定状态,然后根据需要添加和删除EC2实例以应对峰值。该移动应用程序将首先运行一个简单的负载平衡服务器,该服务器在所有可用的处理服务器之间进行简单的循环用户分配。负载平衡器将处理启动新的EC2实例,并根据需要将其关闭。

一些问题:

我以前从未写过类似的东西,这听起来像是个好策略吗?

处理新EC2实例上下移动的最佳方法是什么?我当时想我可以提前创建X个实例,根据需要进行设置(安装软件等),然后停止每个实例。然后,负载平衡器将根据需要启动和停止实例(例如,通过boto)。我认为这比尝试创建新实例并通过脚本或其他方式安装所有实例要快得多,也容易得多。好主意?

我在这里担心的一件事是关闭EC2实例然后重新打开的成本。我查看了《 AWS使用情况报告》,但难以解释它。我可以看到启动已停止的实例是一项潜在的昂贵操作。但是似乎因为我只是启动一个停止的实例,而不是从头开始配置一个新实例,所以它应该还不错。听起来对吗?

scalability load-balancing amazon-ec2

3
推荐指数
1
解决办法
824
查看次数