小编Ale*_*fee的帖子

如何密码保护我的/ sidekiq路由(即需要对Sidekiq :: Web工具进行身份验证)?

我在rails应用程序中使用sidekiq.默认情况下,任何人都可以通过在网址后附加"/ sidekiq"来访问Sidekiq.我想密码保护/验证sidekiq部分.我怎样才能做到这一点?

ruby rescue redis ruby-on-rails-3 sidekiq

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

在Docker中,apt-get安装失败,并显示"无法获取http://archive.ubuntu.com/ ... 404 Not Found"错误.为什么?我们怎样才能超越它?

我的团队使用Docker(带有ubuntu:14.04基本图像)进行本地开发,我们经常需要重建部分或全部图像.但是apt-get install,即使在运行后,我们也常常无法下载软件包apt-get -y update.例如,今天我看到了

Err http://archive.ubuntu.com/ubuntu/ trusty-security/main libxml2 amd64 2.9.1+dfsg1-3ubuntu4.7
  404  Not Found [IP: 91.189.88.161 80]
Err http://archive.ubuntu.com/ubuntu/ trusty-security/main libxml2-dev amd64 2.9.1+dfsg1-3ubuntu4.7
  404  Not Found [IP: 91.189.88.161 80]
Fetched 84.7 MB in 1min 6s (1281 kB/s)
Unable to correct missing packages.
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxml2/libxml2_2.9.1+dfsg1-3ubuntu4.7_amd64.deb  404  Not Found [IP: 91.189.88.161 80]

E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxml2/libxml2-dev_2.9.1+dfsg1-3ubuntu4.7_amd64.deb  404  Not Found [IP: 91.189.88.161 80]

E: Aborting install.
Run Code Online (Sandbox Code Playgroud)

显然,特定软件包的特定版本已从存档中删除,并替换为名称略有不同的修补程序版本.例如,上面的错误正在寻找,libxml2_2.9.1+dfsg1-3ubuntu4.7_amd64.deb但服务器上的版本是libxml2_2.9.1+dfsg1-3ubuntu4.8_amd64.deb.

通常这可以通过删除基本图像(docker rmi …

ubuntu docker

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

我可以从浏览器中运行的JavaScript直接连接到Redis服务器吗?

我知道Redis有node.js库; 我想要做的(无论是在本地主机或服务器主机上的某个地方)运行Redis的服务器,并直接通过HTTP(即AJAX或HTTP GET根据需要)从JavaScript的浏览器中运行调用它(即Greasemonkey的或Chrome扩展脚本,或者可能是bookmarklet或SCRIPT标记).Redis是否具有本机REST或HTTP API?

javascript api rest redis

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

为什么符号不是冻结的字符串?

我理解字符串和符号之间的理论差异.我理解符号用于表示概念或名称或标识符或标签或键,而字符串是一个字符包.我知道字符串是可变的和瞬态的,其中符号是不可变的和永久的.我甚至喜欢的符号怎么在我的文本编辑器不同的字符串.

困扰我的是,实际上,Symbols与Strings非常相似,因为它们没有被实现为Strings,这会引起很多麻烦.它们甚至不支持鸭子打字或隐式强制,不像其他着名的"相同但不同"的夫妻,Float和Fixnum.

当然,最大的问题是从其他地方进入Ruby的哈希,比如JSON和HTTP CGI,使用字符串键而不是符号键,因此Ruby程序必须向后弯曲才能在前面或在查找时进行转换.仅仅存在HashWithIndifferentAccess于Rails和其他框架中,以及它在Rails和其他框架中的广泛使用,都表明这里存在一个问题,需要抓一点痒.

谁能告诉我为什么Symbols不应该被冻结的实际原因?除了"因为它总是如何完成"(历史)或"因为符号不是字符串"(乞求问题).

考虑以下令人惊讶的行为:

:apple == "apple"  #=> false, should be true

:apple.hash == "apple".hash #=> false, should be true

{apples: 10}["apples"]  #=> nil, should be 10

{"apples" => 10}[:apples]  #=> nil, should be 10

:apple.object_id == "apple".object_id #=> false, but that's actually fine
Run Code Online (Sandbox Code Playgroud)

只需要让下一代Rubyists不那么困惑就是:

class Symbol < String
  def initialize *args
    super
    self.freeze
  end
Run Code Online (Sandbox Code Playgroud)

(还有很多其他的库级黑客攻击,但仍然不太复杂)

也可以看看:

更新:我认为Matz在class Symbol < String这里做得很好: …

ruby symbols

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

为什么不排序或太空船(飞碟)操作员(<=>)在Ruby中使用布尔值?

在" 是否可以根据单个对象对方法的响应来对对象列表进行排序? ",我发现飞碟对布尔值不起作用.

考虑:

Ruby 1.8.7:

[true, false].sort # => undefined method `<=>' for true:TrueClass (NoMethodError)
true <=> false     # => undefined method `<=>' for true:TrueClass (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

Ruby 1.9.3:

[true, false].sort # => comparison of TrueClass with false failed (ArgumentError)
true <=> false     # => nil
true <=> true      # => 0
false <=> true     # => nil
Run Code Online (Sandbox Code Playgroud)

它可能与true和false有关,没有规范的排序顺序,因为它首先出现?但是,这对我来说听起来很微弱.

这是一个错误sort吗?

ruby spaceship-operator

12
推荐指数
2
解决办法
2212
查看次数

AVAudioPlayer 的averagePowerForChannel 平均值是多少?

文档中AVAudioPlayeraveragePowerForChannel:“返回给定通道正在播放的声音的平均功率(以分贝为单位)”。但它没有说明“平均”的含义,或者如何/是否对平均值进行加权。我对样本的范围特别感兴趣,特别是时间间隔以及它是否会持续到未来。

AVAudioRecorder:峰值和平均功率表示用于计算功率的公式是多个样本的 RMS(均方根),但也没有说明使用了多少个样本。

可选的额外问题:如果我计算平均功率,例如 100 毫秒(对于动画现在开始并很快达到适当的水平有足够的时间),我应该研究哪些框架?AVAudioRecorder 中的仪表混淆表示我可以使用 AudioQueue 或 RemoteIO 获取原始样本数据,然后我可以使用类似这样的东西:Android 版本的 AVAudioPlayer 的averagePowerForChannel - 但我还没有找到示例代码(请原谅双关语)。

iphone audio avfoundation avaudioplayer ios

5
推荐指数
0
解决办法
941
查看次数