小编Rem*_*emo的帖子

如何在不创建对象的情况下检查对象是否具有单例类(本征类)

有没有办法检查一个对象是否有一个单独的类而不创建一个?

除了检查对象是否具有单例类之外,每个对象都不具有单例类(参见https://repl.it/DuVJ/2下的证明).

我想到了以下方法,但不起作用:

  1. obj.singleton_class

    如果不存在,则会自动创建一个新的单例类(请参阅 https://ruby-doc.org/core-1.9.2/Object.html#method-i-singleton_class).

  2. 使用ObjectSpace:

    has_singleton_class = ObjectSpace.each_object(Class).any? do |klass|
      klass < self.class && klass.singleton_class? && self.is_a?(klass)
    end
    
    Run Code Online (Sandbox Code Playgroud)

    这非常慢,可能无法在jRuby下工作,因为ObjectSpace可能无法使用.

  3. obj.singleton_methods 仅当单例类至少有一个方法时才有效.

ruby

18
推荐指数
1
解决办法
1288
查看次数

仅使用SSLContext和CA证书而不使用密钥库

我需要设置一个javax.net.ssl.SSLContext用于Jersey-Client应用程序.我想要做的就是接受自定义根证书的上下文.是否真的无法生成密钥库文件并导入CA证书?

java ssl ca keystore jersey-client

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

如何禁用某列的ActiveRecord日志记录?

我遇到了一个问题,在我看来,这对于大多数rails用户来说一定是个问题,但我找不到任何解决方案.

例如,当执行可能较大的二进制文件的文件上载并将其存储在数据库中时,您肯定不希望rails或ActiveRecord在开发模式下记录此特定字段(日志文件,stdout).如果是一个相当大的文件,这会导致查询执行中断并几乎杀死我的终端.

是否有任何可靠且非hacky的方法来禁用特定字段的日志记录?请记住,我不是在谈论禁用请求参数的日志记录 - 这已经很好地解决了.

感谢您的任何信息!

upload logging activerecord blob ruby-on-rails

13
推荐指数
4
解决办法
4560
查看次数

Python:拆分字符串,尊重并保留引号

使用python,我想拆分以下字符串:

a=foo, b=bar, c="foo, bar", d=false, e="false"
Run Code Online (Sandbox Code Playgroud)

这应该导致以下列表:

['a=foo', 'b=bar', 'c="foo, bar"', 'd=false', 'e="false'"']
Run Code Online (Sandbox Code Playgroud)

当在posix模式下使用shlex并使用","分割时,get的参数c被正确处理.但是,它删除了引号.我需要它们,因为它们false不一样"false",例如.

我的代码到目前为止:

import shlex

mystring = 'a=foo, b=bar, c="foo, bar", d=false, e="false"'

splitter = shlex.shlex(mystring, posix=True)
splitter.whitespace += ','
splitter.whitespace_split = True
print list(splitter) # ['a=foo', 'b=bar', 'c=foo, bar', 'd=false', 'e=false']
Run Code Online (Sandbox Code Playgroud)

python split shlex

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

增量图的节点图布局库

我正在寻找一个可以提供节点和边缘的库,它可以很好地生成所有节点的坐标列表.但是,应该可以为布局算法应该遵守的一些不是所有节点提供固定位置.

到目前为止,我已经尝试过graphviz(fdp,neato),它似乎无法保持某些节点的位置并围绕它们构建布局.

该库必须可以与python一起使用,因此它应该是python或c/c ++,所以我们可以编写自己的绑定.

下面的图片说明了我正在寻找的内容(这是uDraw项目,它似乎不作为库存在).

uDraw增量布局

layout graph graphviz nodes

10
推荐指数
1
解决办法
502
查看次数

使用Ruby`product`时如何防止来自块的`return`问题

正如每个Ruby程序员最终发现的那样,调用包含return语句的块或过程可能会很危险,因为这可能会退出当前的上下文:

def some_method(&_block)
   puts 1
   yield
   # The following line will never be executed in this example
   # as the yield is actually a `yield-and-return`.
   puts 3
end

def test
  some_method do
    puts 2
    return
  end
end

test

# This prints "1\n2\n" instead of "1\n2\n3\n"    
Run Code Online (Sandbox Code Playgroud)

如果您希望绝对确定调用块或proc 之后运行了一些代码,则可以使用begin ... ensure构造.但是,ensure如果在产量期间存在异常,也会调用它,这需要更多的工作.

我创建了一个小模块,以两种不同的方式处理这个问题:

  1. 使用safe_yield,检测生成的块或proc是否实际使用return关键字返回.如果是这样,它会引发异常.

    unknown_block = proc do
      return
    end 
    
    ReturnSafeYield.safe_yield(unknown_block)
    # => Raises a UnexpectedReturnException exception
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用 …

ruby yield

10
推荐指数
1
解决办法
234
查看次数

强制graphviz保留节点位置

我有一个随时间变化的图表(通常,添加了新节点).我需要多次重新生成图形,并希望所有节点都保持原样.当使用graphviz和fdp-algorithm,设置pin-flag并使用-argument指定位置时,这部分pos有效.

在大多数情况下,这非常有效.但特别是当添加新节点时,布局有时会发生巨大变化 - 我需要避免这种情况.是否可以选择实际强制这些固定位置?它可能会导致一个丑陋的图形,这将是正常的 - 但它们只需要坚持.

sticky graphviz nodes

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

Lighttpd:让子路径指向不同的文档根目录

我有一个指向文档根的lighttpd-Setup /var/www.但是,我希望URL other/指向/some/other/dir.我正在使用以下配置:

$HTTP["url"] =~ "^/other($|/)" {
  server.document-root = "/some/other/dir"
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我访问'http:// myhost/other',则lighttpd会尝试访问/some/other/dir/other而不是仅仅访问/some/other/dir.有可能以某种方式剥离/other但保留任何进一步的URL段吗?所以,例如,http://myhost/other/sub/foo.txt应该指出/some/other/dir/sub/foo.txt.

lighttpd subdirectory document-root

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

确定点击链接是否意味着打开新窗口或选项卡

大多数现代浏览器在新选项卡或新窗口中支持命令ctrl+clickcommand+click类似于打开链接.

在应用程序中,我希望链接在单击时被禁用.但只是,如果目标是同一个窗口(例如,如果它在新选项卡中打开,我不希望链接被禁用,因为再次单击它是合理的).

我做了一些尝试并调试了在点击时创建的事件对象 - 但我找不到有关目标是新选项卡还是新窗口的任何信息.

已知的解决方法:当然可以在单击特定链接时检查是否按下了某个键,这很简单 - 但由于这些命令因浏览器和操作系统而异,因此需要定义复杂的映射和谁能确切知道用​​户配置的内容等等.

有没有可靠的方法来确定是否应该在新标签或窗口中打开位置?

javascript tabs click hyperlink target

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

python 2.7下xmlrpclib.ServerProxy的多线程问题

我有一个实例化xmlrpclib.ServerProxy一次的应用程序,然后将其传递给多个线程(Web应用程序请求),这些线程同时执行XML/RPC调用.这适用于python 2.6.使用python 2.7,我们在多线程环境中遇到很多错误(ResponseNotReady,CannotSendRequest).

# This code works well in python 2.6, and breaks in python 2.7.

import xmlrpclib
import thread

proxy = xmlrpclib.ServerProxy("http://localhost:5000/")

def fetch_users():
  print proxy.getUsers()

for _ in range(10):
  thread.start_new_thread(fetch_users, ())

while(1):
  pass
Run Code Online (Sandbox Code Playgroud)

这里有什么问题,是否有一种重新使用ServerProxy对象的线程安全方法?

python multithreading xml-rpc xmlrpclib python-2.7

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