google.maps.Size函数的文档说:
Size(width:number, height:number, widthUnit?:string, heightUnit?:string)
Run Code Online (Sandbox Code Playgroud)
widthUnit和heightUnit参数的默认值似乎是像素.如果它被称为新的google.maps.Size(30,30,"px","px"),该函数可以正常工作
我想知道支持哪些其他单位类型.
我需要创建一个内存对象,其中包含9位整数的键和与每个键相关联的布尔值.我一直在使用dict,如下面的简化示例:
#!/usr/bin/python
from __future__ import print_function
import sys
myDict = {}
for n in range(56000):
myDict[n] = True
print('Count:',len(myDict),' Size:', sys.getsizeof(myDict))
Run Code Online (Sandbox Code Playgroud)
我需要能够查找并检索与每个键关联的布尔值.问题是字典的大小.在64位Linux系统上使用Python 2.7和上面的例子,根据sys.getsizeof(),dict的大小是3.1兆字节.(每个条目大约56个字节,用于存储9位数加上一个布尔值)
我需要在dict中存储(约)55.000个条目的布尔状态.每个dict键是一个9位整数.我尝试使用整数和str(theInteger)作为键,而不改变dict的大小.
我应该使用其他类型的数据结构或方法来保存具有如此大数据集的内存吗?
我想从Unix启动脚本创建一个共享内存段.创建的段将由几个PHP脚本访问.
是否有shell命令来创建指定密钥,模式,权限和大小的共享内存网段?
外部数据提供商与我们的一台服务器建立了TCP连接。
我想使用socat来“复用”传入的数据,以便多个程序可以接收从外部数据提供程序发送的数据。
socat -u TCP4-LISTEN:42000,reuseaddr,fork OPEN:/home/me/my.log,creat,append
Run Code Online (Sandbox Code Playgroud)
愉快地接受传入的数据并将其放入文件中。
我想做的是允许本地程序连接到TCP端口并开始接收从连接到外部端口的数据的操作。我试过了
socat -u TCP4-LISTEN:42000,reuseaddr,fork TCP4-LISTEN:43000,reuseaddr
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我还没有在socat doco中找到任何与背对背TCP服务器相关的示例。
有人可以指出我正确的方向吗?
我有一个日志格式化程序,当前将所有常规日志级别格式化为 json 字符串。当我想查看日志时,我使用带有 javascript 的网页将 json 转换为 's in a table。我使用的格式化程序是:
formatter = logging.Formatter(
'{"datetime":"%(asctime)s","level":"%(levelname)s","app":"%(app_name)s","module":"%(module)s",' +
'"line":"%(lineno)d","function":"%(funcName)s","msg":"%(msg)s"}' #<switch2>'
)
Run Code Online (Sandbox Code Playgroud)
这工作正常。我现在想使用 logging.exception() 记录异常。
似乎 logging.exception 不提供在所有其他日志记录级别中找到的项目的字典。
如何捕获 logging.exception 提供的堆栈跟踪,以便我可以将其转换为与我为所有其他类型的日志条目创建的 json 兼容的形式?对于 logging.exception,我需要的是获取堆栈跟踪并将其放入 json 的“msg”元素中。如果 logging.exception 不提供其他 dict 元素,如 asctime、level 等,我可以自己即时创建它们。
mongo db的文档看起来像:
{
"_id": : ObjectId("55cb43e8c78b04f43f2eb503"),
<some fields>
"topics": {
"test/23/result": 149823788,
"test/27/result": 147862733,
"input/misc/test": 14672882
}
}
Run Code Online (Sandbox Code Playgroud)
我需要查找具有包含特定键的主题字段的所有文档.即查找所有具有topic.key ="test/27/result"的文档
我已经尝试了很多东西但是没有工作,也没有尝试下面的工作,他们没有返回记录事件,虽然有些应该匹配:
db.collName.find({"topics.test/27/result": {$exists:true}});
db.collName.find({"topics.test\/27\/result": {$exists:true}});
Run Code Online (Sandbox Code Playgroud)
如何使查询工作?
斜杠字符由另一个进程插入.它们是mqtt主题名称.
我正在使用log4javascript版本1.4.3.
在我的应用程序中,它适用于除trace之外的所有日志级别.为了简化问题并确保问题不在我的应用程序中,我使用作者示例代码作为示例并添加了setThreshold(log4javascript.TRACE),然后添加了一行来生成跟踪条目(我也删除了他的例子中只与ajaxAppender相关的行只留下了popUpAppender).
当我运行代码时,错误和调试消息出现在log4javascript popUp窗口中,但没有跟踪消息.
显然,我没有正确理解跟踪级别的使用或跟踪消息的配置.如果有人可以指出我的方式错误,那么我可以修复我的应用程序日志记录.
下面失败的示例代码.
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>log4javascript example from manual</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Tim Down - tim@log4javascript.org" />
<meta name="description" content="log4javascript, a logging framework for JavaScript based on log4j" />
<meta name="robots" content="all" />
<script type="text/javascript" src="/tracker/libraries/log4javascript.js"></script>
<script type="text/javascript">
//<![CDATA[
var log = log4javascript.getLogger();
var popUpAppender = new log4javascript.PopUpAppender();
var popUpLayout = new …Run Code Online (Sandbox Code Playgroud) 我有一个通用函数,它将有关异常的信息发送到应用程序日志.我exception_handler在类中的方法中使用函数.传入和调用的应用程序日志处理程序exception_handler创建一个实际发送到日志文件的JSON字符串.一切正常.
def exception_handler(log, terminate=False):
exc_type, exc_value, exc_tb = sys.exc_info()
filename, line_num, func_name, text = traceback.extract_tb(exc_tb)[-1]
log.error('{0} Thrown from module: {1} in {2} at line: {3} ({4})'.format(exc_value, filename, func_name, line_num, text))
del (filename, line_num, func_name, text)
if terminate:
sys.exit()
Run Code Online (Sandbox Code Playgroud)
我用它如下:(一个超简化的例子)
from utils import exception_handler
class Demo1(object):
def __init__(self):
self.log = {a class that implements the application log}
def demo(self, name):
try:
print(name)
except Exception:
exception_handler(self.log, True)
Run Code Online (Sandbox Code Playgroud)
我想改变exception_handler用作大量方法的装饰器,即:
@handle_exceptions
def func1(self, name)
{some code that gets …Run Code Online (Sandbox Code Playgroud) 通过以下示例,如何在读取时最好地实现看门狗定时器?
如果没有收到数据,我希望服务器在n秒后关闭连接.然后,客户端必须重新连接才能继续发送数据.
from twisted.internet import reactor, protocol as p
from threading import Lock
class Echo(p.Protocol):
def __init__(self, factory):
self.factory = factory
def connectionMade(self):
with self.factory.mutex:
self.factory.clients.append(self)
def connectionLost(self, reason):
print('Connection lost)
with self.factory.mutex:
self.factory.clients.remove(self)
def dataReceived(self, data):
self.transport.write(data)
class EchoFactory(p.Factory):
def __init__(self):
self.clients = []
self.mutex = Lock()
def buildProtocol(self, addr):
print 'Connection by', addr
return Echo(self)
reactor.listenTCP(5007, EchoFactory())
reactor.run()
Run Code Online (Sandbox Code Playgroud) 当使用 Twisted ReconnectingClientFactory 并且连接丢失时,我是否需要从 clientConnectionLost 方法中调用 connector.connect() 还是会自动发生?
答案似乎很明显,因为它毕竟是 ReconnectingClientFactory但 Twisted 文档在这里说了一些让我想知道的东西:
“调用 connector.connect() 可能很有用 - 这将重新连接。”
术语“可能有用”的措辞和使用导致了这个问题,因为基本客户端工厂的 api 文档也说了同样的事情。
Max 的答案是正确的,但经过进一步研究,我认为“更正者”的答案如下:
def clientConnectionLost(self, connector, reason):
# do stuff here that is unique to your own requirements, then:
ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
Run Code Online (Sandbox Code Playgroud)
这允许您执行应用程序所需的专门操作,然后调用工厂代码以允许 Twisted 为您调用 retry()。
使用 MarkerClustererPlus 时 - 我想在一个事件上挂一些代码,该事件是由markerClusterer 显示/隐藏集群中的标记时触发的。
MC+ Doco 似乎没有表明这样的事件。
查看 MC+ 代码,似乎聚类器使用了 marker.setMap() 并且标记没有“map_changed”事件。
我可以将代码添加到集群器以在调用 marker.setMap 时触发事件,但我不想更改运行良好的代码 - 不想在更新 markerClustererPlus 时创建配置管理问题。
有什么建议?
在有桌子的页面上,
在$(document).ready()中,我有以下代码:
populateTable(); // creates and appends TR's to the table from in-memory vars
$("#table1Body tr:even").css("background-color", "rgb(181,221,181)");
$("#table1Body tr:odd").css("background-color", "rgb(255,255,220)");
Run Code Online (Sandbox Code Playgroud)
这在Firefox,Chrome和Safari中可以正常工作,但......
在IE10中,只有少数(有时没有)表行被交替着色直到我将鼠标移动到屏幕上的表中并再次出来,然后再次进入.我第一次将鼠标移动到表格中时,一些行获得了正确的背景颜色,但有些则没有.当我将鼠标移出并再次返回时,所有行都会获得正确的背景.
populateTable函数不执行任何可能导致与任意完成相关的问题的ajax或其他任何东西,它只是将内存中的变量加载到s中并将它们追加到.为了验证这一点,我将代码捆绑到一个函数中并从setTimeout执行函数,延迟时间为5秒 - 这并没有改变.
有什么想法吗?
在python 2.7中,以下代码返回正确的结果(-18027917)
from __future__ import print_function
def twos_comp(val, bits):
if (val & (1 << (bits - 1))) != 0:
val -= 1 << bits
return val
valBinary = "110111011001110101001110011"
print(twos_comp(int(valBinary, 2), len(valBinary)))
Run Code Online (Sandbox Code Playgroud)
在JavaScript(Node.js)中,以下代码返回不正确的结果(1995238003)
function toTwosComplement(val, bits) {
if ((val & (1 << (bits - 1))) != 0) {
val -= (val - 1) << bits;
}
return val;
}
valBinary = "110111011001110101001110011"; // same as python example
console.log(toTwosComplement(parseInt(valBinary, 2), valBinary.length));
Run Code Online (Sandbox Code Playgroud)
显然,位运算符(或int/parseInt)的行为有所不同,但我无法看到它是什么.