小编Dav*_*eau的帖子

如何将一些变更集移动到mercurial中的新分支

我想将变更集从一个分支移动到另一个分支.基本上,我目前有:

A -> B -> C -> D # default branch
Run Code Online (Sandbox Code Playgroud)

而且我要:

A # default branch
 \-> B -> C -> D # some_new_branch
Run Code Online (Sandbox Code Playgroud)

其中some_new_branch尚不存在.我习惯了git,所以我想我错过了一种简单的"mercurial"方式.

mercurial branch rebase

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

__main__和python中的作用域

我有点惊讶于以下行为:

def main():
    print "%s" % foo

if __name__ == "__main__":
    foo = "bar"
    main()
Run Code Online (Sandbox Code Playgroud)

即模块函数可以访问封闭变量__main__.它的解释是什么?

python scope

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

如何在mercurial中显示特定于diff命名分支的diff

假设我有一个名为branch foo的两个提交a,b:

      a       b       c  
------o-------o-------o------- # default
       \          d         e
        ----------o---------o  # branch foo
Run Code Online (Sandbox Code Playgroud)

我想看到a和e之间的差异(不包括在内).我当然可以使用修订版ID,但这不太实用.在git中,可以做git diff master..foo.我怎样才能在hg中做同样的事情?

mercurial

26
推荐指数
2
解决办法
9418
查看次数

为什么高IO率操作会降低linux上的所有内容?

这可能只是稍微OT,但我想知道为什么有一个大量使用IO的进程(比如cp大文件从一个位置到另一个位置在同一个磁盘上)会减慢一切,甚至是主要受CPU限制的进程.我注意到在两个操作系统上我都大量使用(mac os x和linux).

特别是,我想知道为什么多核在这里没有真正帮助:它是商品硬件(磁盘控制器等)的硬件限制,操作系统限制,还是存在分配正确资源的某些内容(调度)?

linux multicore

16
推荐指数
2
解决办法
5658
查看次数

阻止cl.exe打印已编译的源文件

我在命令行(VS 2008)中使用MS编译器,每当编译一个源文件时,它就会打印已编译的源文件.有没有办法避免这种无用的印刷品?

command-line visual-studio

15
推荐指数
1
解决办法
1557
查看次数

数据库分析的体系结构

我们有一个架构,我们为他们的网站(互联网商家)提供每个客户类似商业智能的服务.现在,我需要在内部分析这些数据(用于算法改进,性能跟踪等等),这些数据可能非常繁重:我们有多达数百万行/客户/天,我可能想知道有多少查询我们在上个月,每周比较等等......即使不是更多,也是数十亿条目的顺序.

目前的工作方式非常标准:每日脚本扫描数据库,并生成大型CSV文件.我不喜欢这个解决方案有几个原因:

  • 对于那些类型的脚本而言,它们属于一次写入而从未触及的类别
  • "实时"跟踪事物是必要的(我们有单独的工具集来查询ATM的最后几个小时).
  • 这很慢而且非"敏捷"

虽然我在处理大量科学数据集方面有一些经验,但就传统的RDBM而言,我是一个完全的初学者.似乎使用面向列的数据库进行分析可能是一种解决方案(分析不需要我们在app数据库中拥有的大部分数据),但我想知道有哪些其他选项可用于此类问题.

database analytics scalability data-mining

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

GNU链接器:--version-script的替代方法,用于在命令行列出导出的符号?

在使用GNU工具链的Linux上,我知道如何使用版本脚本(gcc -Wl, - version-script = symbols.map)控制共享库中的导出符号,但我想在命令行上列出导出的符号代替.IOW,我想要相当于

link /EXPORT:foo 
Run Code Online (Sandbox Code Playgroud)

来自MS工具链.可能吗 ?

编辑:

我的问题可能不是很清楚:如果我有一个库libfoo.so,并且我只想导出库foo1和foo2,我可以创建一个版本脚本foo.linux如下

libfoo.so
{
global:
    foo1;
    foo2;
local:
    *;
}
Run Code Online (Sandbox Code Playgroud)

并做

gcc -shared foo.c -Wl,--version-script=foo.linux -o libfoo.so -soname libfoo.so
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这样的事情:

gcc -shared foo.c -Wl,--export-symbol=foo1 -Wl,--export-symbol=foo2 -o libfoo.so -soname libfoo.so
Run Code Online (Sandbox Code Playgroud)

linux linker symbols

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

C中的快速欧几里德分裂

我有兴趣获得欧几里德分区的其余部分,也就是说,对于一对整数(i,n),找到如下的r:

i = k * n + r, 0 <= r < |k|
Run Code Online (Sandbox Code Playgroud)

简单的解决方案是:

int euc(int i, int n)
{
    int r;

    r = i % n;
    if ( r < 0) {
        r += n;
    }
    return r;
}
Run Code Online (Sandbox Code Playgroud)

但是因为我需要执行这几万次(它在多维数组的迭代器中使用),所以如果可能的话我想避免分支.要求:

  • 分枝但更快也是可取的.
  • 只适用于正n的解决方案是可以接受的(但它必须适用于负i).
  • n事先不知道,可以是> 0和<MAX_INT的任何值

编辑

实际上很容易得到错误的结果,所以这里有一个预期结果的例子:

  • euc(0,3)= 0
  • euc(1,3)= 1
  • euc(2,3)= 2
  • euc(3,3)= 0
  • euc(-1,3)= 2
  • euc(-2,3)= 1
  • euc(-3,3)= 0

有些人还担心优化它是没有意义的.我需要这个用于多维迭代器,其中超出范围的项被"虚拟数组"中的项目替换,该虚拟数组重复原始数组.所以如果我的数组x是[1,2,3,4],那么虚拟数组是[....,1,2,3,4,1,2,3,4,1,2,3,4, 1,2,3,4],例如,x [-2]是x 1等...

对于维d的nd数组,我需要每个点都有欧几里德分区.如果我需要在具有内核的^ d数组之间进行相关,我需要n ^ d*m ^ d*d euclidean分区.对于100x100x100点的3d图像和5*5*5点的内核,已经有大约4亿个欧几里德分区.

c bit-manipulation micro-optimization

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

Vim python支持非系统python

我正在尝试使用python支持构建vim,但在我的$ HOME目录中使用定制的python(比如$ HOME/python2.6).不幸的是,即使给出--with-python-config-dir = $ HOME/python2.6/lib/python2.6/config也不会阻止vim configure查看/ usr中的python.有没有办法不涉及手编辑makefile?

python vim

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

什么是Ruby等效的python setup.py开发?

我是ruby的新手,需要调试一些打包为gem的ruby应用程序.

我正在使用rvm,我将软件包作为gem安装,并且还有一个新的github结帐包.如何告诉我的rvm环境使用github repo中的代码而不是已安装的gem?

这相当于python setup.py develop熟悉python的人.

Setuptools允许您部署项目以在公共目录或临时区域中使用,但不复制任何文件.因此,您可以在其结帐目录中编辑每个项目的代码

https://pythonhosted.org/setuptools/setuptools.html#development-mode

ruby gem rvm

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