小编hor*_*irs的帖子

如何在El Capitan的Mac OS X"chroot"中使用DNS解析?

我正在尝试创建一个chroot来运行一个需要Internet访问的程序来构建一个沙盒化的,不可变的开发人员环境.到目前为止,我的监狱工作得很好:我可以在其中运行bash并从那里运行简单的程序!但DNS解析不起作用:

bash-3.2$ curl google.ca
curl: (6) Could not resolve host: google.ca
Run Code Online (Sandbox Code Playgroud)

我几乎肯定这是因为内部进程无法连接到mDNSResponder在jail外运行的守护进程.在监狱外面有一个mDNSResponder供整个系统使用的插座:

host ?  ls -lA /var/run/mDNSResponder
srw-rw-rw-  1 root  daemon  0 22 Oct 10:41 /var/run/mDNSResponder
Run Code Online (Sandbox Code Playgroud)

但是,在监狱里面却没有.所以,我试图用socat从监狱中创建一个Unix套接字"代理"到外面:我跑socat(以下命令)创建我的监狱内的插座,然后在监狱内运行再次卷曲,而且卷曲仍然给出了相同的错误消息.在mDNSResponder使用SIGUSR1 打开详细日志后,我在syslog中看到了这个:

2015-10-26 5:32:30.835 PM mDNSResponder[95]:  12: connect_callback: Adding FD for uid 0
2015-10-26 5:32:30.835 PM mDNSResponder[95]:  12: DNSServiceCreateConnection START PID[23271](socat)
2015-10-26 5:32:30.836 PM mDNSResponder[95]:  12: read_msg: ERROR failed to get errsd via SCM_RIGHTS
2015-10-26 5:32:30.836 PM mDNSResponder[95]:  12: DNSServiceCreateConnection STOP PID[23271](socat)
2015-10-26 5:32:30.836 …
Run Code Online (Sandbox Code Playgroud)

sockets macos chroot

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

如何永久忽略ActiveRecord :: Base类中的数据库列?

我有一个遗留数据库,我正在尝试使用Rails进行建模.其中一个表有一个名为列的列attributes,我认为这是Rails保留的名称.

这是表的SQL:

CREATE TABLE `album` (
  `id` int(11) NOT NULL,
  `artist` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `gid` char(36) NOT NULL,
  `modpending` int(11) DEFAULT '0',
  `attributes` int(11) DEFAULT '0',
  ...
);
Run Code Online (Sandbox Code Playgroud)

这是我的ActiveRecord类:

class Album < ActiveRecord::Base
  set_table_name "album"
  belongs_to :artist
  has_many :tracks, :through => :album_tracks
end
Run Code Online (Sandbox Code Playgroud)

这是我尝试实例化实例时发生的事情:

hornairs@bishop:~/Sites/logdb (master *)$ rails c
Loading development environment (Rails 3.0.3)
no such file to load -- irbtools
ruby-1.9.2-p0 > x = Album.find_by_name("Champ")
 => #<Album id: 969139, artist: 354493, name: "Champ", …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails ruby-on-rails-3

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

JVM在并行处理方面有多好?我什么时候应该创建自己的Threads和Runnables?为什么线程会干扰?

我有一个运行许多小模拟的Java程序.它运行遗传算法,其中每个适应度函数是使用每个染色体上的参数的模拟.如果单独运行,每个人大约需要10秒左右,我想要运行一个相当大的人口规模(比如100?).在上一次模拟完成之前,我无法开始下一轮模拟.我可以访问一台有很多处理器的机器,我想知道我是否需要做任何事情来使模拟并行运行.我之前从未为多核处理器明确写过任何内容,我理解这是一项艰巨的任务.

所以这就是我想知道的:JVM并行化的程度和程度如何?我已经读过它创建了低级别的线程,但它有多聪明?效率如何?如果我将每个模拟作为线程,我的程序会运行得更快吗?我知道这是一个很大的话题,但是你能否指出一些关于并行处理和Java的入门文献?

非常感谢!

更新: 好的,我已经实现了ExecutorService并使我的小模拟实现了Runnable并且有run()方法.而不是写这个:

Simulator sim = new Simulator(args); 
sim.play(); 
return sim.getResults(); 
Run Code Online (Sandbox Code Playgroud)

我在构造函数中写这个:

ExecutorService executor = Executors.newFixedThreadPool(32);
Run Code Online (Sandbox Code Playgroud)

然后每次我想在池中添加一个新的模拟时,我运行它:

RunnableSimulator rsim = new RunnableSimulator(args); 
exectuor.exectue(rsim); 
return rsim.getResults(); 
Run Code Online (Sandbox Code Playgroud)

RunnableSimulator::run()方法调用该Simulator::play()方法,既没有参数.

我想我正在受到线程干扰,因为现在模拟错误了.错误输出我的意思是变量包含他们真正不应该的值.模拟中的代码没有被更改,并且在模拟完成许多不同的参数之前.SIM卡的工作方式如下:每次转动它都会给游戏块一个循环,并在游戏板上的所有位置循环.它会检查给定的位置是否有效,如果是,则提交该块,并测量该板的优点.现在,显然无效的位置被传递给commit方法,从而导致整个地方的索引越界错误.

每个模拟都有自己的对象吗?基于上面的代码?我可以将完全相同的参数集传递给RunnableSimulatorSimulator类,而runnable版本将抛出异常.您认为可能导致这种情况,我该怎么做才能防止这种情况发生?我可以在新问题中提供一些代码示例来帮助吗?

java multithreading multicore

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

如何计算笛卡尔空间中两点之间的距离,同时尊重小行星风格的环绕?

我有两个点(x 1,y 1)和(x 2,y 2),它们代表我空间中两个实体的位置.我用毕达哥拉斯定理计算它们之间的欧几里得距离,一切都很美妙.但是,如果我的空间变得有限,我想在"包裹"地图接缝的点之间定义一个新的最短距离.例如,如果我有A点(10, 10)和B点(90,10),并且我的地图是100个单位宽,我想计算A和B之间的距离为20(从地图的右边缘到左边缘) ),而不是80,这是正常的欧几里德距离.

我认为我的问题是我使用的坐标系统并不适合我正在尝试做的事情,而且我的扁平方形地图更像是一个无缝的圆环形状.关于如何实现这种性质的系统以及从笛卡尔坐标来回转换的任何建议也将受到赞赏!

coordinate-systems euclidean-distance

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

CakePHP模型可以更改其表而无需重新实例化吗?

我正在使用一个不可更改的遗留数据库模式,其中一个对象的每个实例在数据库中都有自己的表,并带有相关记录.我需要在useTable每次实例化模型时更改模型,但保留Cake的漂亮缓存,什么不是.

假设我有很多pad对象,每个对象都有几个音符对象(注意belongsTo Pad,Pad hasMany Note).每个打击垫在打击垫表中都有一个记录,但每个记事本在数据库中都有自己的表(称为"pad_ {id}").这个架构是固定的,我必须使用它.

现在我不需要做任何保存,所以我在模型中执行此操作之后才发现支持阅读:

function beforeFind($query_data) {
    if(empty($query_data['pad_id'])) {
        return false;
    } else {
        $this->useTable = $query_data['pad_id'];
        parent::__construct();
        return $query_data;
    }

}
Run Code Online (Sandbox Code Playgroud)

这会更改数据库中使用的模型表,并且可以正常工作Core::debug > 0.但是,当它为零时,我认为CakePHP缓存模型代码并且没有正确地更改表.在任何情况下,当我访问/ pads/view/{pad_id}或动态更改此表的任何操作时,我都会收到404错误.我无法弄清楚确切的错误是什么,因为它在我打开调试时工作正常.因此,任何关于调试此问题的指示也会有所帮助.

谢谢!

php cakephp cakephp-model

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