问题列表 - 第28099页

确定性密钥序列化

我正在编写一个持久化到磁盘的映射类。我目前只允许使用str键,但如果我可以使用更多类型,那就太好了:希望可以达到任何可散列的类型(即与 builtin 相同的要求dict),但更合理的是我会接受 string、unicode、int 和这些类型的元组。

为此,我想推导出一个确定性的序列化方案。

选项 1 - 酸洗密钥

我的第一个想法是使用 pickle(或 cPickle)模块来序列化密钥,但我注意到来自pickle和的输出cPickle彼此不匹配:

>>> import pickle
>>> import cPickle
>>> def dumps(x):
...     print repr(pickle.dumps(x))
...     print repr(cPickle.dumps(x))
... 
>>> dumps(1)
'I1\n.'
'I1\n.'
>>> dumps('hello')
"S'hello'\np0\n."
"S'hello'\np1\n."
>>> dumps((1, 2, 'hello'))
"(I1\nI2\nS'hello'\np0\ntp1\n."
"(I1\nI2\nS'hello'\np1\ntp2\n."
Run Code Online (Sandbox Code Playgroud)

是否有任何实现/协议组合pickle对于某些类型集是确定性的(例如只能cPickle与协议 0 一起使用)?

选项 2 - Repr 和 ast.literal_eval

另一种选择是用于repr转储和ast.literal_eval加载。我编写了一个函数来确定给定的键是否可以在这个过程中存活(它允许的类型相当保守):

def is_reprable_key(key):
    return type(key) in (int, str, unicode) or (type(key) == …
Run Code Online (Sandbox Code Playgroud)

python serialization pickle

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

减少MongoDB数据库文件的大小

我有一个曾经很大(> 3GB)的MongoDB数据库.从那时起,文档已被删除,我希望数据库文件的大小相应减少.

但是由于MongoDB保留了分配的空间,因此文件仍然很大.

我在这里和那里读到,admin命令mongod --repair用于释放未使用的空间,但我没有足够的空间来运行此命令.

你知道我可以释放未使用空间的方法吗?

mongodb

162
推荐指数
9
解决办法
12万
查看次数

如何打印包含很多列的 html 表格

我正在尝试打印一个包含很多列的表格,因此表格的宽度不适合单页。

我正在使用 jqprint 打印该表。但它只打印表格的左侧部分,而不会打印右侧部分。有没有办法将表格打印在多页上?

亲切的问候,布鲁诺

html css printing jquery width

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

我可以使用装饰器模式来包装方法体吗?

我有一堆具有不同签名的方法.这些方法与脆弱的数据连接交互,因此我们经常使用辅助类来执行重试/重新连接等.如下所示:

MyHelper.PerformCall( () => { doStuffWithData(parameters...) });
Run Code Online (Sandbox Code Playgroud)

这工作正常,但它可以使代码有点混乱.我更喜欢做的是装饰与数据连接交互的方法,如下所示:

[InteractsWithData]
protected string doStuffWithData(parameters...)
{
     // do stuff...
}
Run Code Online (Sandbox Code Playgroud)

然后基本上,每当doStuffWithData调用时,该方法的主体将作为Actionto 传入MyHelper.PerformCall().我该怎么做呢?

c# design-patterns decorator

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

关闭google maps api v3中的所有打开的信息窗口

正如标题所述,在一个特定的事件上(对我而言,这恰好是在打开一个新的时候google.maps.InfoWindow我希望能够关闭任何其他当前打开的信息窗口.现在,我可以一次打开很多..但我只想要一次打开1次.

我正在动态创建信息窗口(即我不知道会生成多少个),所以在当前信息窗口的click事件中(我希望所有其他打开的窗口关闭)我不知道t引用任何其他要打开的信息窗口close().我想知道如何实现这一目标.我不是一个经验丰富的JavaScript程序员,所以我不知道我是否需要在这里使用反射或类似的东西.

最好的方法是将所有引用保存在某种集合中,然后遍历列表将它们全部关闭?

谢谢.

javascript google-maps google-maps-api-3

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

如何将图像添加到TFS工作项; 作为一个图像,而不是一个附件

我们的团队正在开始使用TFS管理的项目.仅存在于Word文档中的几个requiremens正在迁移到TFS工作项.Word文档包含我们需要包含在工作项中的各种图表和图像,特别是在"详细信息"和"分析"选项卡下.问题是图像无法作为图像粘贴到这些选项卡中.

将图像添加到工作项的唯一选项似乎是附件.

有人能证实吗?

任何帮助表示赞赏.

tfs

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

在 Tapestry 5 中更新表单内的区域

我有一个Zone内部 a FormZone它更新了一个包含输入字段的块,我想将其绑定到 parent Form。不幸的是,这似乎并不像我希望的那么容易,因为我收到了以下错误消息。

The Description component must be enclosed by a Form component. [at classpath:...Page.tml, line 100]
Run Code Online (Sandbox Code Playgroud)

源代码的简化版本.tml如下。

The Description component must be enclosed by a Form component. [at classpath:...Page.tml, line 100]
Run Code Online (Sandbox Code Playgroud)

有没有办法进行绑定,如果没有,还有哪些其他选择?

java ajax tapestry

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

将项目移植到OpenGL3

我正在研究一个C++跨平台的OpenGL应用程序(Windows,Linux和MacOS),我想知道你们中的一些人是否可以分享一些关于将大型应用程序移植到OpenGL 3的建议.我之所以研究OpenGL 3是因为我认为使用新的"同步对象"可以从中受益匪浅.自Geforce 256天(gl_nv_fences)以来,Nvidia一直支持这样的扩展,但在OpenGL 3.0 +之前似乎没有ATI硬件上的等效功能......

我们的代码大量使用了glut/freeglut,glu函数,OpenGL 2扩展和CUDA(在支持的硬件上).我现在面临的问题是"gl3.h"和"gl.h"互不兼容(如gl3.h中所述).你们知道GL3过量吗?此外,查看CUDA-toolkit头文件,似乎GL-CUDA互操作性仅在使用旧版本的OpenGL时可用...(cuda_gl_interop.h包括gl.h ...).我错过了什么吗?

非常感谢你的帮助.

c++ opengl cuda opengl-3

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

Lisp中1和1之间有什么区别?

我从来没有真正想过一个符号是否可以成为Lisp中的数字,所以我今天玩弄了它:

> '1
1
> (+ '1 '1)
2
> (+ '1 1)
2
> (define a '1)
> (+ a 1)
2
Run Code Online (Sandbox Code Playgroud)

上面的代码是scheme,但它在Common Lisp和Clojure中看起来大致相同. 是否有1,并引述1之间有什么区别?

lisp scheme clojure common-lisp quote

33
推荐指数
4
解决办法
3810
查看次数

AJB扩展上的MSBUILD 4.0失败

我们有一个.Net 2.0 Web应用程序,正在将解决方案和项目转换为Visual Studio 2010(它们是Visual Studio 2005).我们将该项目定位于Framework 2.0.该应用程序包含Ajax扩展.我们完成了转换,可以使用Visual Studio在服务器上成功构建项目.但是,当我们尝试通过MSBUILD 4.0构建项目时,我们会在使用ajax控件的页面上出现错误,例如:

C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9):警告MSB3267:主要参考"System.Web.Extensions,Version = 1.0.61025.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL",这是一个框架程序集,无法在当前目标框架中解析." .NETFramework,版本= V2.0" .要解决此问题,请删除引用"System.Web.Extensions,Version = 1.0.61025.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL"或将应用程序重新定位到包含"System.Web.Extensions"的框架版本,Version = 1.0.61025.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL".[C:\的Inetpub\wwwroot的\ gmrcwebsite\GMRCWebsite.

C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9):警告MSB3268:主要参考"System.Web.Extensions.Design,Version = 1.0.61025.0,Culture = neutral ,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL"无法解析,因为它对框架程序集"System.Web.Extensions,Version = 1.0.61025.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"具有间接依赖性,无法在目前有针对性的框架." .NETFramework,版本= V2.0" .要解决此问题,请删除引用"System.Web.Extensions.Design,Version = 1.0.61025.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL" 或者将您的应用程序重新定位到包含"System.Web.Extensions,Version = 1.0.61025.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"的框架版本.[C:\的Inetpub\wwwroot的\ gmrcwebsite\GMRCWebsite.vbproj]

C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9):警告MSB3268:主要参考"AjaxControlToolkit,Version = 1.0.10618.0,Culture …

msbuild asp.net-ajax visual-studio-2010

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