小编Mr *_*ooz的帖子

免费安全分布式制作系统的Linux

是否有任何良好的语言无关的分布式系统为Linux安全和免费?

背景资料:

我运行的科学实验(计算机科学实验)有时会有大的依赖树,偶尔会有数千或数万个树节点.此依赖关系树位于数据文件,数据处理可执行文件和结果文件之上.

多年来我一直在尝试各种技术,包括:

  1. 使用数据库滚动我自己的依赖关系跟踪器并在每个工作机器上运行脚本.这可能会有点麻烦,尤其是在尝试使用非脚本语言时.
  2. 将所有处理命令放在单个makefile中,伪目标可以在不同的工作机器上手动"构建".这不需要特殊的工具,但是手动将工作分解为大小均匀的伪目标块并在每个工作箱上正确调用"make"可能会很麻烦.
  3. distmake:自动分配来自单个makefile的命令执行...

我基本上都在寻找像distmake这样的东西,但更安全.据我所知,distmake基本上为每个工作节点留下了一个敞开的后门.

如果替换者比distmake更强大也会很好.如果您突破主要的distmake调用,它可以关闭后门服务器,但它不能正确地终止工作节点上的执行进程.


澄清:

我正在使用makefile处理数据,而不是使用gcc编译和链接.从我在文档中看到的内容来看,distcc是一个用于分发gcc的专用工具.我将在共享文件系统上托管的非常大的数据文件上运行我自己的可执行文件,而不是源文件上的gcc,因此distcc没有帮助.

工作节点是外部可见的机器,因此我希望任何工作器守护程序至少与ssh一样安全.在没有阅读源代码的情况下,我可以告诉他们,distmake工作者守护进程打开一个端口并接受任何附加到它的人的命令.它们将以启动守护程序的用户身份执行命令.

distributed makefile data-processing

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

填充增强矢量或矩阵

是否有单表达式方法将标量分配给boost矩阵或向量的所有元素?我正试图找到一种更紧凑的表达方式:

boost::numeric::ublas::c_vector<float, N> v;
for (size_t i=0; i<N; i++) {
    v[i] = myScalar;
 }
Run Code Online (Sandbox Code Playgroud)

以下不起作用:

boost::numeric::ublas::c_vector<float, N> 
   v(myScalar, myScalar, ...and so on..., myScalar);

boost::numeric::ublas::c_vector<float, N> v;
v = myScalar;
Run Code Online (Sandbox Code Playgroud)

c++ boost expression ublas

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

使用jQuery回调自动完成(标签/值对)

我正在尝试实现自动完成jQuery,但我不理解jQuery UI提供的自动完成功能.

它使用回调函数并将响应作为标签/值对进行获取.我有一些示例代码,我试图传回任意标签/值对并显示该选项但它不起作用.如果有人可以帮我解决这个问题,或者向我展示一个简单的程序,那就太好了.

http://jsfiddle.net/kB25J/

HTML:

<html>
    <body>
      Please enter your country name
      <input id ="book" type="text" value="">
    </body>
</html>?
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$("#book").autocomplete({
    source: function(request, response) {
        alert(request.term);
        response(function() {
            return {
                label: "hi",
                value: "bye"
            }
        });
        alert(reponse);
    }
});
Run Code Online (Sandbox Code Playgroud)

谢谢

jquery autocomplete callback

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

g ++中的C++ 11语言支持,没有`-std = c ++ 11`的库破坏功能

有没有办法告诉g++我启用C++ 11的新语言功能,而不会因ABI修改而对标准C++库进行任何重大更改?

添加-std=c++11编译标志会指示g++启用语言和库功能,但是以这种方式创建的目标文件无法与使用其他-std=设置的目标文件安全地链接.我希望能够使用语言增强功能,如右值引用,移动构造函数(对于我自己的类),以及auto与C++ 03库链接的代码中的关键字.

编辑:

我有兴趣g++启用它的C++ 11 语言功能,但我希望它能够解析,编译和链接旧的C++ 03库.我不希望它使用标准库的C++ 11版本.这意味着在我自己的代码中,我将能够使用auto,范围foreach构造,rvalue引用等,但我将无法在标准C++库中使用新的C++ 11特性std::move或rvalue -ref增强STL容器.不想要标准库的C++ 11版本的原因是各种对象的布局已经改变,因此将期望不同版本的标准库的两个目标文件链接到同一个二进制文件中是无效的.

c++ g++ c++11

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

显示八进制值作为其字符串表示形式

将八进制数转换为字符串时遇到问题.

p = 01212
k = str(p)
print k
Run Code Online (Sandbox Code Playgroud)

结果是650但我需要01212.我怎样才能做到这一点?提前致谢.

python format octal

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

git status:如何忽略一些更改

有没有办法git status忽略文件中的某些更改?

背景

我的存储库中有一些自动生成的文件(是的,我知道通常不推荐这样做,但我无权更改它)。每当我构建我的树时,这些自动生成的文件都会更新其中的状态信息(谁生成它们、时间戳等)。

当我说 时git status,我希望它对这些生成的文件运行过滤器,以去除这些瞬态信息。"Changed but not updated:"如果有其他真正的更改,我只希望它显示在git 的输出部分。

使用https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes 上.gitattributes方法,我可以使用简单的过滤器忽略这些状态行更改。我还想使用过滤器(或类似的东西)。git diffegrepgit statustextconv

如果合并不受任何这种过滤的影响,我更喜欢它。

git-status

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

cPickle - 忽略无法序列化而不是引发异常的内容

我正在使用cPickle序列化用于记录的数据.

我希望能够将任何我想要的东西扔进一个对象,然后序列化它.通常这很好cPickle,但只是遇到了一个问题,我要序列化的对象之一包含一个函数.这导致cPickle引发异常.

我宁愿cPickle只是跳过它无法处理的东西而不是导致整个过程崩溃.

实现这一目标的好方法是什么?

python pickle

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

计算所有*未提交*代码的git hash

有没有一种好的方法来获取git哈希,其工作方式如下:

  1. 如果没有未提交的更改,则返回当前分支提示的git哈希(忽略未跟踪的文件),或者
  2. 如果至少有一个未提交的更改(无论是否在暂存区域中,但忽略未跟踪的文件),请计算一次运行将导致的git hash git commit -a -m ''

背景:

我正在编写一些打包构建的开发工具。我希望构建软件包包括某种相当健壮和完全自动化的版本ID。git SHA1哈希对于我的目的来说绰绰有余。不幸的是,仅使用它git rev-parse HEAD是不够的,因为用户通常会在提交之前运行构建,因此才HEAD进行更新。

git

5
推荐指数
2
解决办法
1002
查看次数

git rebase --continue:如何抑制“无更改”检查

有没有一种方法来配置git,从而git rebase --continue跳过了“没有变化”的测试?

我不想git rebase --continue失败,因为它没有检测到任何变化。发生这种情况时,它应该自动删除提交。

为什么?

我经常遇到 git 的问题,我git rebase --continue失败了,因为它没有看到任何变化并且需要我说git rebase --skip. 我理解为什么会发生这种情况,但它会减慢我的工作流程并使其变得更加危险:如果我正在执行一个问题多次重复出现的大型变基,以及合法的合并冲突,我更有可能不小心使用跳过命令从我打算重用 continue 命令时的历史来看。

例子

假设我有以下历史记录:

A -- B -- C -- D -- E -- F    <-- topic
 \
   H -- I                     <-- master
Run Code Online (Sandbox Code Playgroud)

我想将提交 B、C、E 和 F 推送到origin.

假设当我挑选它们时,B 工作正常,C 和 F 有一些由提交 H 和 I 引起的微不足道的合并冲突,并且 E 有一个非微不足道的合并冲突,如果 H 和 I 在历史中,则需要以不同的方式解决如果 D 在历史中。解决这些冲突后,假设我的历史是:

A -- B -- C -- D -- …
Run Code Online (Sandbox Code Playgroud)

git

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

从C++中获取受损的符号名称

如何从C++程序中获取函数的错位名称?

例如,假设我有一个标题:

// interface.h
#ifndef INTERFACE_H
#define INTERFACE_H
typedef void (*FooFunc)(int x, int y, double z, ...more complicated stuff...);
void foo(int x, int y, double z, ...more complicated stuff...);
#endif
Run Code Online (Sandbox Code Playgroud)

我有一个客户端程序,可以加载实现该接口的插件:

// client.h
#include "interface.h"
void call_plugin(so_filename)
{
    void *lib = dlopen(so_filename, ...);
    // HOW DO I IMPLEMENT THE NEXT LINE?
    static const char *mangled_name = get_mangled_name(foo);
    FooFunc func = (FooFunc)dlsym(lib, mangled_name);
    func(x, y, z, ...);
    dlclose(lib);
}
Run Code Online (Sandbox Code Playgroud)

如何编写get_mangled_name函数来计算函数的错位名称foo并将其作为字符串返回?

想到的一种方法是编译interface.o和使用nm -A interface.o | …

c++ linux g++

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