小编kmo*_*511的帖子

使用ls列出目录及其总大小

是否有可能ls在Unix中使用列出子目录及其所有内容的总大小,而不是通常的4K(我假设)只是目录文件本身?IE

total 12K
drwxrwxr-x  6 *** *** 4.0K 2009-06-19 10:10 branches
drwxrwxr-x 13 *** *** 4.0K 2009-06-19 10:52 tags
drwxrwxr-x 16 *** *** 4.0K 2009-06-19 10:02 trunk
Run Code Online (Sandbox Code Playgroud)

在搜索了这些手册页后,我空洞地说.

unix linux

779
推荐指数
12
解决办法
71万
查看次数

正则表达式和否定整个字符组

我正在尝试一些我认为应该对我来说相当明显的东西,但事实并非如此.我正在尝试匹配一个不包含特定字符序列的字符串.我已尝试使用[^ab],[^(ab)]等等来匹配不包含'a'或'b'的字符串,或只包含'a'或仅'b'或'ba'但不匹配'ab'的字符串.我给出的例子不符合'ab'这是真的,但它们也不会单独匹配'a'而我需要它们.有一些简单的方法可以做到这一点吗?

regex

185
推荐指数
6
解决办法
21万
查看次数

使用lambda在单个实例上重新定义单个ruby方法

在Ruby中,有没有办法使用proc重新定义类的特定实例的方法?例如:

class Foo
  def bar()
    return "hello"
  end
end

x = Foo.new
y = Foo.new
Run Code Online (Sandbox Code Playgroud)

(就像是):

y.method(:bar) = lambda { return "goodbye" }

x.bar
y.bar
Run Code Online (Sandbox Code Playgroud)

生产:

hello
goodbye
Run Code Online (Sandbox Code Playgroud)

谢谢.

ruby oop

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

Ruby:用科学记数法控制打印

如果我在Ruby中有一个非常长的浮点数,例如:

 x = 123456789012345.to_f
Run Code Online (Sandbox Code Playgroud)

当它显示时,例如,通过to_s,它以科学记数显示:

 "1.23456789012345e+14"
Run Code Online (Sandbox Code Playgroud)

有没有办法抑制科学记数法中的格式,或硬币的另一面,强制它为极短的浮点数?

ruby

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

无需保存即可运行ActiveRecord验证

我有一组ActiveRecord对象.我希望能够为每个对象运行所有验证,而不实际将它们保存到数据库中.我只是想知道他们是否有效我将它们保存到数据库中.换句话说,我基本上想要errors为每个对象填充数据结构.有没有办法做到这一点?或许我错过了关于该系列生命周期的一些东西errors

ruby activerecord

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

没有rails的ruby web开发?

由于我无法控制的原因,我的任务是不使用Rails或其他任何重量级框架(如Merb)的Ruby Web开发.我想知道是否有其他人遇到过此问题并且可以推荐描述此类问题最佳实践的最佳实践或资源.我想避免可怕的事情

 out.print('<td class="foo">'+some_data+'</td>')
Run Code Online (Sandbox Code Playgroud)

网络发展的风格.一位同事建议使用Rack作为轻型框架,但文档很粗略,而且市场上似乎未经证实.

ruby

10
推荐指数
2
解决办法
5926
查看次数

ActiveRecord中的Ruby类型的集合

如果我在ActiveRecord中有一个带有子对象集合的对象,即

class Foo < ActiveRecord::Base
  has_many :bars, ...
end
Run Code Online (Sandbox Code Playgroud)

我尝试find对该集合运行Array的方法:

foo_instance.bars.find { ... }
Run Code Online (Sandbox Code Playgroud)

我收到:

ActiveRecord::RecordNotFound: Couldn't find Bar without an ID
Run Code Online (Sandbox Code Playgroud)

我认为这是因为ActiveRecord find为了自己的目的而劫持了该方法.现在,我可以使用detect,一切都很好.然而,为了满足我自己的好奇心,我尝试使用元编程来明确地将该find方法偷回一次:

unbound_method = [].method('find').unbind
unbound_method.bind(foo_instance.bars).call { ... }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

TypeError: bind argument must be an instance of Array
Run Code Online (Sandbox Code Playgroud)

很明显Ruby并不认为foo_instance.bars是一个数组而且:

foo_instance.bars.instance_of?(Array) -> true
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解释一下这个以及通过元编程来解决它的方法吗?

ruby activerecord

10
推荐指数
2
解决办法
1436
查看次数

为什么我对自我引用懒惰序列的直觉是错误的?

在Haskell中,我可以在GHCI中编写一个自引用序列,如下所示:

?> let x = 1:map (+1) x
?> take 5 x
Run Code Online (Sandbox Code Playgroud)

产生:

[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

然而,我对懒惰评估的直觉说这应该在扩展期间发生

let x = 1:map (+1) x
1:2:map (+1) x
1:2:map (+1) [1, 2] <-- substitution
1:2:2:3:map (+1) x
1:2:2:3:map (+1) [1, 2, 2, 3] <-- substitution
1:2:2:3:2:3:3:4:map (+1) x
...
Run Code Online (Sandbox Code Playgroud)

这显然不是正在发生的事情.我可以在正确答案中看到模式.我们只是在无限流中一次移动列表中的一个元素.我认识的模式,我可以在代码中应用它.然而,它与我的懒惰评估的心理模型不符.感觉有点"神奇".我的直觉在哪里错了?

haskell lazy-evaluation

8
推荐指数
2
解决办法
320
查看次数

Roomba使用什么平台/语言?

出于好奇,有没有人知道用于编程Roomba的平台和编程语言?我不是在谈论售后市场工具包,而是用于在工厂实施算法的内容?

robotics

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

你如何处理Scrum中一堆无关的小错误?

我们最近在工作中采用了Scrum,并且在代码被接受后出现了一堆小错误.其中包括拼写错误和其他单行修复.为每件小事创造大小为0.5的故事似乎是浪费时间.编写故事需要花费更多时间并指出它,而不是修复故事.如果每个sprint中只有一个或两个,那么很容易修复它们并且不用担心为它们创建故事.但是,如果由于应用程序很大而有10或20个或更多,这可能会开始累积大量的开发人员时间,而这些时间并未通过Scrum进行计算.虽然可能很容易说QA员工和产品所有者在原始故事被接受之前应该更加彻底,但我是开发人员,所以这基本上不在我的手中.

到目前为止,我们提出了几个不完美的想法:

  • 有一个故事说"在应用程序中修复了90%的错误",然后您可以猜测该sprint中会出现多少错误,可以修复多少错误,然后根据预期的工作负载指出错误
  • 有一个大小的故事,比如8,在sprint结束时总是被接受,你可以修复尽可能多的bug.这显然需要非常信任,每个人实际上都在做8个人的工作
  • 记录错误,但在下一个sprint之前不会对它们起作用.它们可以单独指向或作为一组指向.这具有更多"Scrummy"的优点,但导致基本上1小时修复的延迟三周.

有什么建议?

agile scrum

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

在ruby中使用散列密码

在前面,我想承认自己是加密和密码安全的全新手.我正在尝试将密码存储在ruby的babysat数据库中.我的理解是明文密码应该附加到一个随机的"salt"中,整个短语应该通过一些散列算法进行散列,例如:

    Digest::SHA1.hexdigest(salt_plus_plainpassword)
Run Code Online (Sandbox Code Playgroud)

一旦该字符串存储在数据库中,如果有一个现在未知的随机盐附加到该数据库,如何再次获取它以验证用户输入的内容是否正确?

ruby security

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

Rails与Ruby CGI

我有一个老板,他确信学习Rails的学习曲线太陡了,从劳动的角度看,当直接在Apache上运行作为CGI应用程序的Ruby时,它就没有成本效益.他提议,为了我们的改写,我们使用直接的Ruby没有框架而不是Rails(或Merb,Sinatra等).我内心相信这是一个坏主意,但我无法将我的案例纳入话.到目前为止我提出的一些想法:

  • Rails通过MVC促进更好的代码重用和更好的关注点分离
  • 一个运行rails的商店对合格的求职者来说看起来更有吸引力,因为Rails在他/她的简历上看起来更好,工作更有趣等等.
  • (我可能错了)Rails会在Passenger上有更好的性能,因为Passenger自动将连接池连接到数据库,因为手动CGI应用程序必须自己管理或不管理,导致性能更差.
  • Rails是一种经过验证的技术,至少肯定不仅仅是一个手动的CGI框架

我有什么理由想念或错过吗?有没有我不知道的有效权衡?

ruby cgi ruby-on-rails

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

如何在Haskell中实现递归列表以及对其进行操作的方法

我正在尝试在Haskell中创建一个我认为非常直观的方法.我有一个列表[列表]*列表,任意深入.无论递归的深度如何,我都想在列表中提取一个特定的原子.这是我的努力:

type List = [Array]
data Array = Int | List

drill :: Array -> [Int] -> Array
drill xs (index:[]) = xs !! index
drill xs (index:is) = drill (xs !! index) is
Run Code Online (Sandbox Code Playgroud)

但是在ghci中加载时收到以下内容:

drill.hs:5:23:
Couldn't match expected type `[Array]' with actual type `Array'
In the first argument of `(!!)', namely `xs'
In the expression: xs !! index
In an equation for `drill': drill xs (index : []) = xs !! index
Run Code Online (Sandbox Code Playgroud)

我写的内容对我来说似乎很直观,但显然Haskell有类型问题.作为一个Haskell新手,我不是最好的解释类型错误.我认为函数的返回类型可以是atom:Int或list : [Int]. 任何人都可以帮我解读这个并提出解决方案吗?

haskell

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