小编Kow*_*hik的帖子

将环境变量传递给exec shell命令的正确方法

我正在使用ruby 1.8.7补丁249.以下是将环境变量传递给我需要从我的ruby程序执行的shell命令的最佳/唯一方法吗?

fork do       
   ENV['A'] = 'A'
   exec "/bin/bash -c 'echo $A'"
end

Process.wait
Run Code Online (Sandbox Code Playgroud)

ruby

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

在ruby/rbenv中安装openssl

我需要在ruby中使用openssl.我该如何安装呢?我已经通过rbenv安装了ruby,并且使用的是ubuntu 12.04.

kprakasam@ubuntu:~$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

kprakasam@ubuntu:~$ irb
irb(main):001:0> require 'openssl'
LoadError: no such file to load -- openssl
    from /home/kprakasam/.rbenv/versions/1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /home/kprakasam/.rbenv/versions/1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from (irb):1
    from /home/kprakasam/.rbenv/versions/1.9.2-p180/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

ruby gem openssl rbenv

17
推荐指数
6
解决办法
4万
查看次数

为什么我可以引用从未运行的if/unless/case语句之外的变量?

为什么以下代码不会抛出错误?

if false
  x = 0
end

x  #=> nil
Run Code Online (Sandbox Code Playgroud)

以下确实会引发错误:

y  # NameError: undefined local variable or method `y' for main:Object
Run Code Online (Sandbox Code Playgroud)

unless&casestatements 也会发生同样的事情.

ruby

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

MySQL没有使用ORDER BY的索引

我有一个名为'test'的简单MySQL表,有两列:

  1. 自动递增int列名为'id'
  2. Varchar(3000)专栏名为'textcol'

我根据'textcol'列在表中创建了一个索引.但是,ORDER BY查询似乎没有使用索引,即在textcol上使用ORDER BY的简单查询上的EXPLAIN语句在其输出的Key列中显示NULL,并且还使用filesort.

任何用于进行更改以帮助使用ORDER by query的索引的指针对我都很有用.

MySQL版本由"mysql --version"命令给出:

mysql Ver 14.14 Distrib 5.1.58,debian-linux-gnu(x86_64)使用readline 6.2

mysql> CREATE TABLE test (id INTEGER NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), textcol VARCHAR(3000));
Query OK, 0 rows affected (0.05 sec)

mysql> DESCRIBE test;
+---------+---------------+------+-----+---------+----------------+
| Field   | Type          | Null | Key | Default | Extra          |
+---------+---------------+------+-----+---------+----------------+
| id      | int(11)       | NO   | PRI | NULL    | auto_increment |
| textcol | varchar(3000) | YES  |     | NULL    |                |
+---------+---------------+------+-----+---------+----------------+ …
Run Code Online (Sandbox Code Playgroud)

mysql sql database indexing

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

在重叠区间中查找基本区间

在准备一些编程访谈时,我遇到了一个很好的问题.

给定一组可能重叠的区间,您需要编写一个函数来返回它们之间的所有基本区间.例如:如果给定间隔作为以下对列表:{{1,5},{3,10},{5,11},{15,18},{16,20}},那么您需要返回以下内容:

{{1,3},{3,5},{5,10},{10,11},{15,16},{16,18},{18,20}}

请注意以上答案中的以下内容:

  • 答案中省略了区间{11,15},因为它在输入中不存在.
  • 由于输入中{3,10}中定义的起点"3"切入了输入,因此输入中的间隔{1,5}已被分割为{1,3},{3,5}.间隔为两个基本区间.

Java中的方法签名:

List<Pair<Integer, Integer>> generateElementaryIntervals(List<Pair<Integer, Integer> intervals)
Run Code Online (Sandbox Code Playgroud)

我想象的解决方案之一是将输入分成非交叉集,然后对每个非交叉集中的所有数字进行简单的O(NlogN)排序将得出答案.有更有效的方法吗?

algorithm data-structures

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

检查一个正则表达式是否包含另一个正则表达式

我正在尝试实现文本聚类算法.该算法通过用正则表达式替换它们来聚类相似的原始文本行,并聚合与每个正则表达式匹配的模式的数量,以便提供输入文本的简洁摘要,而不是显示来自输入文本的重复模式.在这次尝试中,我遇到了寻找一个正则表达式是否覆盖另一个正则表达式的需要.

假设我们关注约与"*"和"+"外卡,即"*"意味着一个字母的零个或多个字符的字符串,而"+"代表一个字母的1点或多个正好正则表达式.还假设字符集为ASCII.

例如:

1. AB covers AB
      This is straightforward.
2. ABC* covers ABC
      Because ABC* can generate: ABC, ABCC, ABCCC etc.
3. A*B+C* covers AB+C*
      Because A*B+C* can generate ABBC, AABBC, AABBCC etc. which covers
      all strings generated by AB+C*.
4. A+M+BC* covers AMM+B+C+M+BC*
      Similar to case [3] above.
Run Code Online (Sandbox Code Playgroud)

基本上我正在寻找以下方法的有效实现,该方法告诉strA(可能包含正则表达式)是否覆盖了strB(可能包含正则表达式).请注意,还应该有一种方法可以在输入字符串strA和strB中转义正则表达式字符'*'和'+'.

C++中的方法签名:

bool isParentRegex(const string& strA, const string& strB)
Run Code Online (Sandbox Code Playgroud)

我的想法是实现需要一个递归方法,它可能有点复杂.但我很想知道我是否可以重用现有的实现而不是重新发明轮子,或者是否有任何其他直接的方法来实现它.

c++ regex cluster-analysis data-mining

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

Java兼容的cksum功能

Java中是否有任何库/代码以与unix中的cksum命令一致的方式计算字节流的32位CRC?

java crc32 checksum crc

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

使Ruby字符串不可变

需要在我的程序中使某些Ruby字符串成为不可变的.什么是最好的解决方案?在String课堂上写一个包装器?

freeze方法对我不起作用.我看到这freeze将不允许你解冻对象.

以下是我的情况:我有一个类将字符串传递给回调.该字符串恰好是类的实例变量,可能很大.我不希望回调修改它,但仍然允许类随意修改它.

ruby string

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

瘦服务器没有超时

Thin的代码/文档表明默认连接超时为30秒.但是,当我尝试测试时,它似乎不起作用.我错过了什么?

我正在使用瘦v1.5.0(最新版本).

# Test this using: curl -X GET http://localhost:3000/test. You will find that the request does not
# timeout after 30s.

require 'thin'

class SimpleAdapter
  def call(env)
    sleep 100
    body = ["hello!"]
    [
      200,
     { 'Content-Type' => 'text/plain' },
      body
    ]
  end
end

server = Thin::Server.new('127.0.0.1', 3000) do
  map '/test' do
    run SimpleAdapter.new
  end
end

server.start!
Run Code Online (Sandbox Code Playgroud)

ruby webserver timeout http thin

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