小编nmi*_*els的帖子

Django或web.py,哪个用Python构建大型网站更好?

我想用Python建立一个每天超过100,000 PV的网站.现在我关心的是选择哪个Web框架.我知道很多人使用Django,有些人使用web.py. Django似乎很强大,我也喜欢web.py的简单性.我应该使用哪个框架?(请介绍性能和维护复杂性,谢谢!)web.py可以构建复杂的应用程序吗?还有其他框架比这两个框架更好吗?

python django web.py

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

我应该和Pygame一起使用什么gui工具包?

我正在制作一款游戏,需要能够在pygame表面中弹出gui元素.这个问题不是我想要的,因为wxPython绕过SDL表面而不是它内部.到目前为止,我只在这个问题空间中看过ocemp,pguGooeyPy.

  • Ocemp巨大而且看起来很狡猾.它提到了Python 2.3,我在快速浏览cvs repo时找到的最新文件是2岁.
  • 我无法让GooeyPy工作(虽然我没有努力;鸡蛋和Debian不是朋友)而v0.2最后更新于2009年2月.
  • 我一直在和pgu一起工作,但似乎没有得到维护(上次更新11/2009,原始维护者放弃了它),它开始显示它的年龄.它使用旧样式类并抛出字符串异常.

因此,我的问题是:我应该使用什么gui工具包来制作pygame应用程序中的可点击按钮?有没有积极的发展?

编辑,2011年9月

看起来PGU仍在维护中.最后一次提交是从4天前开始的.

python user-interface pygame widget

12
推荐指数
1
解决办法
6013
查看次数

如何更改默认分支以推送mercurial?

我喜欢在Mercurial中创建命名分支来处理可能需要一段时间来编写代码的功能,所以当我推送时我会hg push -r default确保我只是将更改推送到默认分支.但是,-r default每次执行推送或传出命令时都必须记住这一点.

所以我尝试通过将此配置添加到我的〜/ .hgrc来解决此问题:

[defaults]
push = push -r default
outgoing = outgoing -r default
Run Code Online (Sandbox Code Playgroud)

问题是,那些配置行不是真正的默认值,它们是别名.他们按照预期工作,直到我尝试做hg push -r <some revision>.我设置的"默认"只是删除了我传入的修订版.(我看到默认值已弃用,但别名有同样的问题).

我试着环顾四周,但我找不到任何可以让我设置默认分支的东西,并允许我在必要时覆盖它.谁知道我能做的其他事情?

ps:我确实意识到每个分支都可以有单独的克隆,但我宁愿不这样做.必须切换目录很烦人,特别是当您有共享配置或编辑器工作区时.

mercurial branch dvcs

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

系统返回码()

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int main() {

int res = system("ps ax -o pid -o command | grep sudoku | grep gnome > /dev/null");

printf("res = %d \n", res);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想sudoku通过检查system()(或任何其他调用)的返回代码来查看是否正在运行.我不想在任何地方打印任何输出.

system()即使在查看手册页后,我也不太了解返回代码

无论是否sudoku正在运行,我明白了res = 0.

c unix system ps

9
推荐指数
2
解决办法
9439
查看次数

布尔递归

试图写一个布尔方法,告诉某人是否是某人的后裔......但似乎无法做到这一点.当然,如果它是一个孩子......或者是孩子的后代,那么这个物体就是后代.

public boolean isDescendant(member x){
    if (children.contains(x)){
        return true;
    }
    else{
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我在哪里或如何插入:

for (int i = 0; i < children.size(); i++){
    isDescendant(children.get(i));
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

java recursion

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

在这种情况下,流程字典是否合适?

我在这里和其他地方读过几条评论,暗示Erlang的流程字典是一个坏主意,应该死掉.通常,作为一个总的Erlang新手,我只是避免它.但是,在这种情况下,我的其他选择并不是很好.

我有一个主调度函数,看起来像这样:

dispatch(State) ->
    receive
        {cmd1, Params} ->
            NewState = do_cmd1_stuff(Params, State),
            dispatch(NewState);
        {cmd2, Params} ->
            NewState = do_cmd2_stuff(Params, State),
            dispatch(NewState);
        BadMsg ->
            log_error(BadMsg),
            dispatch(State)
    end.
Run Code Online (Sandbox Code Playgroud)

显然,我的名字对我来说更有意义,但这就是它的要点.在由do_cmd2_stuff()调用的函数调用的函数调用的函数中,我想向所有用户发送消息,告诉他们我做过的事情.为此,我需要从发送消息的位置获取用户列表.用户列表不容易粘在全局状态,因为这只是一个数据结构,代表我操作的唯一数据块.

我看到它的方式,除了使用进程字典之外,我还有一些令人不快的选择.我可以将用户列表通过所有不同级别的功能发送到播放广播的最底层.这是令人不愉快的,因为它导致我的所有功能获得一个参数,无论他们是否真的关心它.

或者,我可以让所有do_cmdN_stuff()函数返回要发送的消息.然而,这并不是很好,因为发送消息可能不是我想要做的最后一件事,它使我的调度员与一堆{Msg, NewState}元组混乱.此外,某些功能可能没有任何消息可以发送一些时间.

就像我之前说的那样,我对Erlang很新.也许拥有更多经验的人可以指出我更好的方式.有吗?在这种情况下,流程字典是否合适?

erlang

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

为什么我们的软件在虚拟化下运行得如此之慢?

我试图找出为什么我们的软件在虚拟化下运行时运行得如此之慢.我见过的大多数统计数据表明,在最坏的情况下,它应该只有10%的性能损失,但在Windows虚拟服务器上,性能损失可能是100-400%.我一直试图描述差异,但是个人资料结果对我来说并没有多大意义.这是我在没有虚拟化的Vista 32位盒子上进行配置时看到的内容: 在此输入图像描述

这是在带有虚拟化的Windows 2008 64位服务器上运行的:在此输入图像描述

缓慢的是花费了大量的时间,RtlInitializeExceptionChain在快速的时间显示为0.0s.知道那是做什么的吗?此外,当我附加到我的机器的进程时,只有一个线程,PulseEvent但是当我在服务器上连接时,有两个线程,GetDurationFormatExRtlInitializeExceptionChain.据我所知,我们编写的代码只使用一个线程.此外,对于它的价值而言,这是一个仅使用纯C编写的控制台应用程序,完全没有UI.

任何人都可以为我解释这些吗?甚至只是关于其中一些ntdllkernel32电话正在做什么的信息?我也不确定有多少差异是64/32位相关的,有多少是虚拟/非虚拟相关的.不幸的是,我无法轻松访问其他配置以确定差异.

c windows virtualization profiling verysleepy

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

如何将宏作为宏的操作结果进行字符串化?

这是一个说明我的问题的程序:

#include <stdio.h>

#define NUMERATOR 8
#define DENOMINATOR 2
#define QUOTIENT (NUMERATOR / DENOMINATOR)

#define ZSTR(x) XSTR(#x)
#define YSTR(x) XSTR(x)
#define XSTR(x) STR(x)
#define STR(x) #x

int main()
{
    printf("QUOTIENT:       %d\n", QUOTIENT);
    printf("STR(QUOTIENT):  %s\n", STR(QUOTIENT));
    printf("XSTR(QUOTIENT): %s\n", XSTR(QUOTIENT));
    printf("YSTR(QUOTIENT): %s\n", YSTR(QUOTIENT));
    printf("ZSTR(QUOTIENT): %s\n", ZSTR(QUOTIENT));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是它的输出:

$ gcc -g -Wall -o stringify stringify.c && ./stringify 
QUOTIENT:       4
STR(QUOTIENT):  QUOTIENT
XSTR(QUOTIENT): (8 / 2)
YSTR(QUOTIENT): (8 / 2)
ZSTR(QUOTIENT): "QUOTIENT"
Run Code Online (Sandbox Code Playgroud)

我想将一个字符串文字"4"传递给编译器,但我失去了希望.这与此问题有关,但增加了一个级别.

c string macros c-preprocessor

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

如何获得Erlang预处理器的输出?

我有一个奇怪的宏,我正在调试,我似乎无法弄清楚如何获得预处理器的输出.我正在寻找相当于GCC的-save-temps.我试图传递dppcompile:file/2,但它似乎产生一个解析树,而不是预处理二郎.

compile:file("t.erl", 'E').正如Anton所提到的那样很好,但对导致语法错误的宏没有帮助.由于缺乏调试复杂宏的方法,我倾向于通过编写生成代码的程序来进行元编程.

erlang preprocessor

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

Erlang中的双向哈希表

我试图想出一个类似字典的数据结构,我可以在Erlang中使用它.目标是保证所有值以及密钥都是唯一的.我可以在每次修改后使用显式一致性检查来完成它,但我希望有一个模糊的类型可以为我做这个.有吗?如果没有,有没有比将支票包装到修改数据的每个函数(或返回稍微不同的副本)更好的方法?

我希望至少有120个元素,不超过几千个,如果重要的话.

erlang data-structures

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