是否有可能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)
在搜索了这些手册页后,我空洞地说.
我正在尝试一些我认为应该对我来说相当明显的东西,但事实并非如此.我正在尝试匹配一个不包含特定字符序列的字符串.我已尝试使用[^ab]
,[^(ab)]
等等来匹配不包含'a'或'b'的字符串,或只包含'a'或仅'b'或'ba'但不匹配'ab'的字符串.我给出的例子不符合'ab'这是真的,但它们也不会单独匹配'a'而我需要它们.有一些简单的方法可以做到这一点吗?
在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中有一个非常长的浮点数,例如:
x = 123456789012345.to_f
Run Code Online (Sandbox Code Playgroud)
当它显示时,例如,通过to_s
,它以科学记数显示:
"1.23456789012345e+14"
Run Code Online (Sandbox Code Playgroud)
有没有办法抑制科学记数法中的格式,或硬币的另一面,强制它为极短的浮点数?
我有一组ActiveRecord对象.我希望能够为每个对象运行所有验证,而不实际将它们保存到数据库中.我只是想知道他们是否有效我将它们保存到数据库中.换句话说,我基本上想要errors
为每个对象填充数据结构.有没有办法做到这一点?或许我错过了关于该系列生命周期的一些东西errors
?
由于我无法控制的原因,我的任务是不使用Rails或其他任何重量级框架(如Merb)的Ruby Web开发.我想知道是否有其他人遇到过此问题并且可以推荐描述此类问题最佳实践的最佳实践或资源.我想避免可怕的事情
out.print('<td class="foo">'+some_data+'</td>')
Run Code Online (Sandbox Code Playgroud)
网络发展的风格.一位同事建议使用Rack作为轻型框架,但文档很粗略,而且市场上似乎未经证实.
如果我在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)
任何人都可以帮我解释一下这个以及通过元编程来解决它的方法吗?
在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)
这显然不是正在发生的事情.我可以在正确答案中看到模式.我们只是在无限流中一次移动列表中的一个元素.我认识的模式,我可以在代码中应用它.然而,它与我的懒惰评估的心理模型不符.感觉有点"神奇".我的直觉在哪里错了?
出于好奇,有没有人知道用于编程Roomba的平台和编程语言?我不是在谈论售后市场工具包,而是用于在工厂实施算法的内容?
我们最近在工作中采用了Scrum,并且在代码被接受后出现了一堆小错误.其中包括拼写错误和其他单行修复.为每件小事创造大小为0.5的故事似乎是浪费时间.编写故事需要花费更多时间并指出它,而不是修复故事.如果每个sprint中只有一个或两个,那么很容易修复它们并且不用担心为它们创建故事.但是,如果由于应用程序很大而有10或20个或更多,这可能会开始累积大量的开发人员时间,而这些时间并未通过Scrum进行计算.虽然可能很容易说QA员工和产品所有者在原始故事被接受之前应该更加彻底,但我是开发人员,所以这基本上不在我的手中.
到目前为止,我们提出了几个不完美的想法:
有什么建议?
在前面,我想承认自己是加密和密码安全的全新手.我正在尝试将密码存储在ruby的babysat数据库中.我的理解是明文密码应该附加到一个随机的"salt"中,整个短语应该通过一些散列算法进行散列,例如:
Digest::SHA1.hexdigest(salt_plus_plainpassword)
Run Code Online (Sandbox Code Playgroud)
一旦该字符串存储在数据库中,如果有一个现在未知的随机盐附加到该数据库,如何再次获取它以验证用户输入的内容是否正确?
我有一个老板,他确信学习Rails的学习曲线太陡了,从劳动的角度看,当直接在Apache上运行作为CGI应用程序的Ruby时,它就没有成本效益.他提议,为了我们的改写,我们使用直接的Ruby没有框架而不是Rails(或Merb,Sinatra等).我内心相信这是一个坏主意,但我无法将我的案例纳入话.到目前为止我提出的一些想法:
我有什么理由想念或错过吗?有没有我不知道的有效权衡?
我正在尝试在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]
. 任何人都可以帮我解读这个并提出解决方案吗?