小编Chr*_*ris的帖子

VirtualHere 如何在 macOS 上创建虚拟 USB 设备?

VirtualHere如何能够在 macOS 上虚拟化 USB 设备,而无需用户安装内核扩展?

据我所知,目前还没有在 macOS 上虚拟化 USB 设备的记录方法。

例如,USB/IP 项目仅支持 Windows 和 Linux 上的客户端

我知道这是专有软件,但它必须使用用户空间可用的某种技术?

谢谢

macos usb virtual driver emulation

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

如何将自枚举pangram表示为布尔函数?

自我枚举pangrams的wiki文章指出它们是使用二元决策图计算的.我一直在阅读有关BDD的内容,根据我的理解,您需要先将一些问题表示为布尔函数,然后才能构建BDD.

我该怎么做呢?

我已经考虑了几天这个问题了,我很确定你可以使用简单的编码来表示布尔函数的输入:

10000 01010 01011 10101 ...
16A's 10B's 11C's 21D's ...
Run Code Online (Sandbox Code Playgroud)

所以对于一个pangram开始"十六A,十B,十一C,二十一D",你可以把它表示为10000010100101110101 ......

这意味着布尔函数中有26*5 = 130个变量,假设您将字符的最大频率限制为32次出现.

输出应该是表示是否是自我枚举的pangram,即如果句子描述其自己的一组频率.

要做到这一点,在此过程中肯定需要一个哈希表(或几个).

因此,对于字母E,哈希表可能会开始:

one   -> 1
two   -> 0
three -> 2
four  -> 0
five  -> 1
...
Run Code Online (Sandbox Code Playgroud)

二进制,可能看起来像:

1   -> 1
10  -> 0
11  -> 10
100 -> 0
101 -> 1
Run Code Online (Sandbox Code Playgroud)

如果来自E哈希表的所有查找的总和等于对应于E的五个输入比特,那么自枚举庞格的那部分是正确的.如果所有部分都正确则布尔函数应该为1,否则为0.

我很确定我可以弄清楚如何使用布尔函数执行加法以及如何检查两个数字是否相等.但是,我不知道从何处开始将哈希表表示为布尔函数.此外,将所有部分连接在一起可能会让我感到困惑.

有什么想法吗?想法?合作?我想知道这是怎么回事.

提前致谢.

binary logic hashtable boolean-expression boolean-operations

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

递归查询中不允许使用聚合函数。是否有其他方法来编写此查询?

TL;DR我不知道如何编写一个在其递归部分不使用聚合函数的递归 Postgres 查询。是否有另一种方法来编写如下所示的递归查询?

假设我们有一些运动:

CREATE TABLE sports (id INTEGER, name TEXT);

INSERT INTO sports VALUES (1, '100 meter sprint');
INSERT INTO sports VALUES (2, '400 meter sprint');
INSERT INTO sports VALUES (3, '50 meter swim');
INSERT INTO sports VALUES (4, '100 meter swim');
Run Code Online (Sandbox Code Playgroud)

以及参加这些运动的运动员的一些单圈时间:

CREATE TABLE lap_times (sport_id INTEGER, athlete TEXT, seconds NUMERIC);

INSERT INTO lap_times VALUES (1, 'Alice',  10);
INSERT INTO lap_times VALUES (1, 'Bob',    11);
INSERT INTO lap_times VALUES (1, 'Claire', 12);

INSERT INTO lap_times VALUES (2, …
Run Code Online (Sandbox Code Playgroud)

sql postgresql recursion ranking aggregation

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

Ruby挑战 - 方法链和懒惰评估

阅读文章http://jeffkreeftmeijer.com/2011/method-chaining-and-lazy-evaluation-in-ruby/后,我开始寻找方法链和懒惰评估的更好解决方案.

我想我已经用以下五个规格封装了核心问题; 谁能让他们全部通过?

一切顺利:子类化,委托,元编程,但对后者不鼓励.

将依赖关系保持在最低限度是有利的:

require 'rspec'

class Foo
    # Epic code here
end

describe Foo do

  it 'should return an array corresponding to the reverse of the method chain' do
    # Why the reverse? So that we're forced to evaluate something
    Foo.bar.baz.should == ['baz', 'bar']
    Foo.baz.bar.should == ['bar', 'baz']
  end

  it 'should be able to chain a new method after initial evaluation' do
    foobar = Foo.bar
    foobar.baz.should == ['baz', 'bar']

    foobaz = Foo.baz
    foobaz.bar.should == ['bar', 'baz'] …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails lazy-evaluation method-chaining

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

我可以设置Vim的"嵌入式"红宝石路径吗?

当我跑:

:ruby print VERSION
Run Code Online (Sandbox Code Playgroud)

在Vim,我得到1.8.7.

我安装了1.9.3,我想用它来代替.有没有办法改变它?

它会使用相同的Gem路径吗?

我不是在谈论!ruby命令.我在谈论Vim的"嵌入式"Ruby.

ruby vim

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

计算正则表达式效率

您将如何计算/查找正则表达式匹配给定字符串所需的操作数?我想开发一个程序,让您可以按效率对正则表达式进行排名。

另外,如果操作次数超过给定的阈值,是否有可能突破正则表达式?我希望把它变成一个网络应用程序,所以我不希望用户输入可能会杀死服务器的正则表达式(如果可能的话)。

非常感谢。

编辑:只是为了澄清,我指的是包括回溯(因此是非线性的)的普通正则表达式的超集。

ruby regex algorithm

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

Ruby委托/代理

给出以下代码:

class ArrayProxy < BasicObject
  def initialize
    @array = []
  end

  def foo
    puts 'foo'
  end

  def method_missing(*args, &block)
    @array = @array.send(*args, &block)
  end

  def self.method_missing(*args, &block)
    new.send(*args, &block)
  end
end
Run Code Online (Sandbox Code Playgroud)

为什么将'foo'的调用委托给数组?

ruby-1.9.2-p290 :018 > ArrayProxy.new << 1
 => [1] 
ruby-1.9.2-p290 :019 > ArrayProxy << 1
 => [1] 
ruby-1.9.2-p290 :020 > ArrayProxy.new.foo
foo
 => nil 
ruby-1.9.2-p290 :021 > ArrayProxy.foo
NoMethodError: undefined method `foo' for []:Array
Run Code Online (Sandbox Code Playgroud)

ruby delegates design-patterns ruby-on-rails ruby-1.9.2

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

如何在不使用空格字符的情况下运行 unix 命令以便我可以执行远程命令?

我一直在学习远程/任意命令执行。在这样做的过程中,我遇到了一些我认为尝试和利用会很有趣的 Ruby。

我在设法让它运行 'ls' 命令时取得了一些成功,但我不知道如何将空格字符添加到我的命令中。如果我在其中添加一个空格,URI 调用的 parse 方法将引发异常。

这是我试图利用的代码:

injection = "www.google.com';ls;#"

require 'uri'
URI.parse(injection)
puts `curl '#{injection}'`
Run Code Online (Sandbox Code Playgroud)

因此,如果您选择接受它,您的挑战是通过更改注入字符串来运行“ls -l”命令而不是“ls” 。除了第一行,您不能更改任何内容。

我尝试过的事情:

ls%2f-l   - # Doesn't raise an exception but unix doesn't unescape CGI encodings.
ls\x20-l  - # Raises an exception because Ruby parses the UTF-8.

# Other various escape combinations (\\x20, etc)
Run Code Online (Sandbox Code Playgroud)

也许这是不可能的?

谢谢

ruby unix exploit uri command-execution

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

使用带有 curl 的内部字段分隔符

当我做...

ls$IFS-l
Run Code Online (Sandbox Code Playgroud)

...我得到了我期望的输出。

当我做...

curl$IFShttp://www.google.com
Run Code Online (Sandbox Code Playgroud)

... 我不。

我误解了内部字段分隔符吗?如何在不使用任何空格字符的情况下运行 curl 命令?

unix bash ifs

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