• ruby

Blog Archives

LoadError – library not found for class Digest::HMAC — digest/hmac

LoadError – library not found for class Digest::HMAC — digest/hmac

Question?

solution

Reference

https://github.com/code-mancers/mailgun-ruby/commit/b35ab9d9e2e936c00e6e65c17b87c942bbaa4c0c

https://github.com/mailgun/mailgun-ruby/pull/16

capistrano3 shared/bin is empty

REASON

capistrano3 部署后shared/bin下没有任何的命令工具

Anyalize

Solution

vim config/deploy.rb

set :bundle_binstubs, -> { shared_path.join(‘bin’) }

why?

https://github.com/capistrano/bundler/blob/master/CHANGELOG.md

https://github.com/capistrano/bundler/pull/61

https://github.com/capistrano/bundler/issues/45#issuecomment-69349237

Reference

http://qiita.com/yuuna/items/27a561a14399c5343d2f

mac 无法在irb中输入中文

mac 无法在irb中输入中文

rbenv 下得解决办法

Rmagick memory leak

Rmagick memory leak

background

最近做图像处理上使用了Rmagick和MiniMagick, google了一下他们的区别,其中一段话印发了我一系列的思考。
Rmagick存在内存泄露问题。
(更多…)

class_eval,class_exec,instance_eval,instance_exec

class_eval

class_eval的调用者是类,在class_eval的block的内部,self既是该类自己
(更多…)

is_a? VS kind_of? VS instance_of?

is_a? VS kind_of? VS instance_of?

kind_of? and is_a? are synonymous.instance_of? is different from the other two in that it only returns true if the object is an instance of that exact class, not a subclass.

example:

refer to: http://stackoverflow.com/questions/3893278/ruby-kind-of-vs-instance-of-vs-is-a

敏感词检测&过滤

敏感词检测&过滤

概念

Trie,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。

我们先来看一个Trie结构的例子

字典树

在这个Trie结构中,保存了A、to、tea、ted、ten、i、in、inn这8个字符串

把由蛮力匹配转变成基于Trie的匹配方案会极大的节省执行时间,这个比较对较长字符串进行匹配时更加明显。 对于长度在20左右的字符串。Tire的匹配速度比Hash的方式快了近10倍

应用程序:

参考:https://github.com/huhongda/common_service

更炫的命令行输出

更炫的命令行输出

参考:http://stackoverflow.com/questions/1489183/colorized-ruby-output

输出:

ruby环境搭建,相关工具的配置使用

ruby环境搭建,相关工具的配置使用

相关工具

  • git
  • vim
  • nginx
  • mongodb
  • redis
  • memcached
  • mysql
  • rvm || rbenv
  • ruby
  • 系统库(Centos: yum, mac: brew, ubuntu: apt-get)本文档主要是:Centos环境的搭建
  • varnish

(更多…)

carrierwave和min_magick的使用

carrierwave和mini_magick的使用

安装

安装imagemagick

安装gem包

ruby相关源码

代码片段

相关源码:

  1. manipulate! 方法:

  1. combine_options 方法:

相关知识点

  1. mini_magick 实现原理 调用系统的convert,identify,mogrify等命令处理图片。先把图片写入到临时文件,然后再操作,再保存。
  2. 如何查看mini_magick 执行的命令?

ruby-1.9.3-p194/gems/mini_magick-3.4/lib/mini_magick.rb

  1. mini_magick防止注入 调用系统命令时,要注意防止注入。在mini_magick里是使用了shellescape。 比如:

    解决可参考

    http://ruby-china.org/topics/12435

    http://hooopo.writings.io/articles/1-Shell-Out-Best-Practice-In-Ruby

  2. 脱离carrierwave, 独立使用 mini_magick

比如想得到deal.image 图片的高度和宽度。先使用 tempfile 创建临时文件,然后把图片从gridfs读出来写入该临时文件。然后用 MiniMagick 调用系统命令(这里是 identify).

https://github.com/minimagick/minimagick minimagick使用