每次导入包含大量静态正则表达式的python文件时,都会花费cpu周期将字符串编译到内存中的代表状态机中.
a = re.compile("a.*b")
b = re.compile("c.*d")
...
Run Code Online (Sandbox Code Playgroud)
问题:是否可以以预编译的方式将这些正则表达式存储在磁盘上的缓存中,以避免在每次导入时执行正则表达式编译?
腌制对象只需执行以下操作,无论如何都会导致编译:
>>> import pickle
>>> import re
>>> x = re.compile(".*")
>>> pickle.dumps(x)
"cre\n_compile\np0\n(S'.*'\np1\nI0\ntp2\nRp3\n."
Run Code Online (Sandbox Code Playgroud)
而re对象是unmarshallable:
>>> import marshal
>>> import re
>>> x = re.compile(".*")
>>> marshal.dumps(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: unmarshallable object
Run Code Online (Sandbox Code Playgroud) 我有一个样本保存在DirectX的缓冲区中.这是从乐器演奏和捕捉的音符样本.如何分析样本的频率(如吉他调谐器)?我认为涉及到FFT,但我没有指向HOWTO.
十年前,当我第一次遇到软件的CMM时,我想像许多人一样,对于在许多企业中描述混乱的"一级"软件开发状态的准确程度感到震惊,特别是在提到依赖英雄时.它似乎也为组织提供了切实可行的指导,以提高其流程水平.
虽然它似乎提供了一个良好的模型和现实的改进指导,但我从未真正目睹过遵守CMM对我曾为之工作过的任何组织产生重大积极影响.我知道一家大型软件咨询公司声称CMM级别5 - 最高级别 - 当我可以看到他们的流程一样混乱,他们的软件产品质量与其他非CMM业务一样多样化.
所以我想知道,根据CMM,是否有人从遵守流程改进中看到了真正的实实在在的好处?
如果您已经看到改进,您是否认为改进特别归功于CMM,或者替代方法(例如6-sigma)是否同样或更有益?
还有人还相信吗?
顺便说一句,对于那些还没有看过它的人来说,看看这个有趣的 - 因为它真实的模仿
我正在使用Apache Axis将我的Java应用程序连接到Web服务器.我使用wsdl2java为我创建存根,但是当我尝试使用存根时,我得到以下异常:
org.apache.axis.ConfigurationException:没有
<web service name>可用的命名服务
任何的想法?
使用Apple OS X Cocoa框架,如何在另一个进程的窗口上发布工作表(向下滑动模式对话框)?
编辑:澄清一下:
我的应用程序是进行Subversion版本控制的Finder扩展(http://scplugin.tigris.org/).我的应用程序的一部分是插件(Finder的上下文菜单项); 然而,我的应用程序的大部分是在一个单独的守护进程中.出于几个原因,我们选择将几乎所有代码放入守护进程; 插件只定义菜单本身,Apple-Events定义到守护进程.
有时,守护程序需要提示用户提供进一步的信息.它可以在屏幕上为此抛出一个窗口,但这是破坏性的(随机定位),在我看来这里的工作流程是合法的模态,例如"从菜单中选择一个文件,选择'提交',提供提交注释,做手术."
进程间协作(例如传递某种类型的引用)是可以接受的:两个进程都是我的,但我想避免将表单的代码绑定到主进程中.
我有一个像这样定义的泛型方法:
public void MyMethod<T>(T myArgument)
Run Code Online (Sandbox Code Playgroud)
我想要做的第一件事是检查myArgument的值是否是该类型的默认值,如下所示:
if (myArgument == default(T))
Run Code Online (Sandbox Code Playgroud)
但是这不能编译,因为我没有保证T将实现==运算符.所以我把代码改为:
if (myArgument.Equals(default(T)))
Run Code Online (Sandbox Code Playgroud)
现在这个编译,但是如果myArgument为null则会失败,这是我正在测试的一部分.我可以像这样添加一个显式的空检查:
if (myArgument == null || myArgument.Equals(default(T)))
Run Code Online (Sandbox Code Playgroud)
现在这让我感到多余.ReSharper甚至建议我将myArgument == null部分更改为myArgument == default(T),这是我开始的地方.有没有更好的方法来解决这个问题?
我需要支持两种引用类型和值类型.
如何使用元类向类中添加实例方法(是的,我需要使用元类)?以下类型的工作,但func_name仍将是"foo":
def bar(self):
print "bar"
class MetaFoo(type):
def __new__(cls, name, bases, dict):
dict["foobar"] = bar
return type(name, bases, dict)
class Foo(object):
__metaclass__ = MetaFoo
>>> f = Foo()
>>> f.foobar()
bar
>>> f.foobar.func_name
'bar'
Run Code Online (Sandbox Code Playgroud)
我的问题是某些库代码实际上使用了func_name,后来无法找到Foo实例的'bar'方法.我可以:
dict["foobar"] = types.FunctionType(bar.func_code, {}, "foobar")
Run Code Online (Sandbox Code Playgroud)
还有types.MethodType,但我需要一个尚未使用的实例.我在这里错过了吗?
是否有一个已知的数学公式可用于估计新Lucene指数的大小?我知道我想要索引多少个字段,以及每个字段的大小.而且,我知道将索引多少项目.那么,一旦这些由Lucene处理,它如何转换成字节?
据我了解,任何使用alloc,new或copy创建的东西都需要手动释放.例如:
int main(void) {
NSString *string;
string = [[NSString alloc] init];
/* use the string */
[string release];
}
Run Code Online (Sandbox Code Playgroud)
不过,我的问题是,这不是有效吗?:
int main(void) {
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
NSString *string;
string = [[[NSString alloc] init] autorelease];
/* use the string */
[pool drain];
}
Run Code Online (Sandbox Code Playgroud) memory-management foundationkit objective-c nsautoreleasepool
我知道有一些方法可以在页面主体加载时通知(在所有图像和第三方资源加载之前触发window.onload事件),但每个浏览器都有所不同.
在所有浏览器上都有明确的方法吗?
到目前为止,我知道:
DOMContentLoaded:在Mozilla,Opera 9和最新的WebKits上.这涉及为事件添加一个监听器:
document.addEventListener("DOMContentLoaded",[init function],false);
延迟脚本:在IE上,您可以发出带有@defer属性的SCRIPT标记,该标记将在BODY标记关闭后可靠地加载.
轮询:在其他浏览器上,您可以继续轮询,但是甚至还有一个标准的东西要进行轮询,或者您是否需要在每个浏览器上执行不同的操作?
我希望能够不使用document.write或外部文件.
这可以通过jQuery简单地完成:
$(document).ready(function() { ... })
Run Code Online (Sandbox Code Playgroud)
但是,我正在编写一个JS库,并且不能指望jQuery始终存在.
python ×2
apache ×1
audio ×1
axis ×1
c# ×1
caching ×1
cmmi ×1
cocoa ×1
daemon ×1
dom ×1
fft ×1
generics ×1
interaction ×1
interprocess ×1
java ×1
javascript ×1
lucene ×1
metaclass ×1
modal-dialog ×1
objective-c ×1
regex ×1