JSでRSA

JSでRSA暗号が使えるやつ使ってみた http://cryptico.wwwtyro.net/鍵作る var pass = 'kazusuke'; var rsa_key = cryptico.generateRSAKey(pass, 1024); var pub_key = cryptico.publicKeyString(rsa_key); 'hello'を暗号化 var enc = cryptico.encrypt('hel…

scansnapして即gyazoに送る

Macはファイルが作成された時にフォルダアクションが実行できる フォルダアクションはAutomatorで作れる Automatorからshell scriptが実行できる フォルダアクションを作った automator内のshellscriptからワンライナーを呼び出す /usr/bin/ruby -rubygems -…

数字を3桁ずつ区切る

通貨みたいな表示 1234567890.to_s.reverse.split(/(\d{3})/).select{|i|i.size>0}.join(',').reverse => "1,234,567,890"1234567890.to_s.reverse.gsub(/(\d{3})/,'\1,').reverse => "1,234,567,890"

アプリのアイコンを作る

Mac

sipsっていうコマンドラインツールがMacに入っているので、それを使うとすぐ作れる sips -s format icns icon.png -z 128 128 --out appIcon.icns

git pushしたらProject description file hasn't been setと言われた

新しいMacからgit pushしたら remote: *** Project description file hasn't been set remote: error: hook declined to update refs/heads/master ! [remote rejected] master -> master (hook declined)こういうエラーがでてpushできない。リモートリポジ…

rvmを切り替えつつ実行

RVM

rvm default do ruby hoge.rbとか rvm system do gem listとか rvm jruby-1.6.7 do ruby -vすればいい

公開したgemをrubygems.orgから削除する

yankコマンドはgemcutterに入ってたのか gem install gemcutter gem yank goldfish-poi -v 0.0.1 名前とバージョンを指定いて削除する

Hashie::Mashおかしい

(解決した、下に書いた)これ実行すると #!/usr/bin/env ruby require 'rubygems' require 'hashie' arr = Array.new 3.times do |i| arr.push Hashie::Mash.new(:count => i, :text => 'test'*i) end arr.each do |i| p i puts "count : #{i.count}" puts …

gemを全て新しいRubyに入れなおす

rvmで、新しいrubyに乗り換える時によくやる。ruby-1.8.7-p352 → 1.8.7-p358にしたとする。 rvm get latest rvm reload rvm list known rvm install 1.8.7-p358 gem listを保存しておいて gem list | ruby -lane 'puts $_.split(/\s/)[0]' > ~/gems.txt あた…

herokuセットアップ、sinatraを動かす

herokuでsinatra動かした。 参考にした http://devcenter.heroku.com/articles/quickstart http://devcenter.heroku.com/articles/ruby http://www.machu.jp/diary/20111002.html#p01 サインアップ https://heroku.com でサインアップ、メールが来るのでconf…

mini_magickとImageMagickで画像を切り取る

capybara-webkitで撮影した縦長のwebページスクリーンショット(PNG)を、1:1.41のA4縦長で印刷できるサイズ(JPEG)に分割する。 https://github.com/probablycorey/mini_magick brew install imagemagick gem install mini_magick mini_magick版 #!/usr/bin/en…

画像をpdfファイルにまとめる

今までhomebrewで入れれるpdfjamを使っていたのだが、macportsにしかないpdflatexに依存しているのであまり使いたくない。 prawn(https://github.com/prawnpdf/prawn)を使うとRubyだけで作れるので、乗り換えることにした。 prawnはpngを入れると遅くなるの…

capybara-webkitでwebページのスクリーンショットを撮る

capybara使うと簡単にキャプチャできる。もともとjsのheadless testの為のツールなのでjsも実行されるし良い。 Macの場合 brew install qt gem install capybara capybara-webkit #!/usr/bin/env ruby require 'rubygems' require 'capybara-webkit' driver …

画像のサイズを求める方法

ImageMagick imagemagickについてくるidentifyコマンドを使う identify ファイル名結果 ファイル名 PNG 1200x4702 1200x4702+0+0 8-bit DirectClass 890KB 0.000u 0:00.000 mini_magick ImageMagickのRubyラッパー。 gem install mini_magick#!/usr/bin/env …

webページのスクリーンショットを撮影

phantomjsでやろう http://d.hatena.ne.jp/Jxck/20111102/1320230249 と思って、インストールしたのだが brew install phantomjs一緒にwebkit2pngというpythonで書かれたツールがついてきた。 キャプチャしてみる webkit2png http://shokai.org/blog/ いろい…

ターミナルから印刷する

Mac

applescriptで印刷もできるのだが、地獄のような事になっているので原点に帰ってlpr プリンタ一覧を取得 lpstat -s USBやsambaで接続したプリンタもでてきた プリンタを指定してファイルを印刷する lpr -P プリンタ名 ファイル名印刷の設定は、そのプリンタ…

diffをファイルに書き出し

commitのdiffをgrepしたいのだが、gitだけで検索する方法がわからなかったのでとりあえず~/diffに全commitのdiffを書きだした mkdir ~/diff git log | grep '^commit' | ruby -lane 'puts $F[1].strip' | ruby -lane 'arr=ARGF.to_a.map{|i|i.strip}; for i …

ある日付のcommitのIDだけ抜き出す

git-id-date.rb #!/usr/bin/env ruby require 'date' if ARGV.size < 1 STDERR.puts "ruby #{$0} 2011-08-15" STDERR.puts "ruby #{$0} 2011-08-15 2011-09-30" exit 1 end date_start = Date.parse(ARGV.shift) date_end = ARGV.empty? ? Date.today : Date…

camelcaseとsnakecaseの変換

いろいろ丁寧に変換するようにした --to_snake 'ShoHashimoto' => 'sho_hashimoto' 'sho_hashimoto' => 'sho_hashimoto' 'shokai' => 'shokai' 'SHOKAI' => 'shokai' 'This is a pen' => 'this_is_a_pen' 'EventMachine::HTTPRequest' => 'event_machine_htt…

8queen問題

http://ja.wikipedia.org/wiki/エイト・クイーンすげー悩んだけどわりと綺麗にできた。 再帰+lambda渡しは再帰を巻き戻さないで良いので書きやすい。 変な書き方しないようにしたけど20行きった。 #!/usr/bin/env ruby def put(size=8, queens=[], &block) b…

清一色の配牌パターン数を調べる

mlab(masui lab)はmajan labになりました。 清一色の配牌パターン数を調べる。 1が0〜4枚、2が0〜4枚...9が0〜4枚、で合計14枚になるのが正しい配牌なので、ならば富豪的に5進数を使おうchin-itsu.rb for i in 0..(("4"*9).to_i(5)) res = i.to_s(5) puts '0…

curlでbasic認証を通る

http://curb.rubyforge.org/classes/Curl/Easy.html open(out_fname, 'w+') do |out| Curl::Easy.perform(url) do |easy| easy.http_auth_types = [:basic, :digest] easy.username = 'shokai' easy.password = 'homuhomu' easy.on_body do |data| out.print…

ダウンロード速度が遅かったらやめる

http://curb.rubyforge.org/ Ruby+Curlで大きなファイルをダウンロードしつつ、速度を監視して遅かったら切断する。 ダウンロード速度はだんだん上がってくるものなので、開始後しばらくは遅くても切断しないようにした。 普通にeasy performしても大量のwar…

nまでの素数を求める

みょうにシンプルにできたので書いておく ruby -e 'p 2.upto(ARGV[0].to_i).to_a.delete_if{|i| 2.upto(i/2).to_a.detect{|j|i%j == 0} }' 2000[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103…

mecabインストール

sudo apt-get install mecab-ipadic-utf8 mecab Rubyバインディングはあってもあんまり意味ない気がするので、使わないでおこうmecab-split-term.rb #!/usr/bin/env ruby def mecab_parse(str) `echo '#{str}' | mecab`.split(/[\r\n]/).map{|i| i.split(/\t…

openssl1.0が落ちる

Rubyを入れなおした直後からこういうエラーがでるようになった openssl/ssl-internal.rb:30: [BUG] Segmentation fault openssl1.0とリンクしたRubyをビルドしてしまうとこうなるらしい。 http://www.cozmixng.org/~w3ml/index.rb/rabbit-shockers/msg/793Ma…

node.jsとcoffee-scriptインストール

cd ~ git clone https://github.com/creationix/nvm.git ~/.nvm . ~/.nvm/nvm.sh nvm install v0.6.2 nvm alias default v0.6.2[[ -s "$HOME/.nvm/nvm.sh" ]] && source "$HOME/.nvm/nvm.sh" export NODE_PATH=/usr/local/lib/node_modules:$HOME/node_modul…

mongoidで"db_name must be a string or symbol (TypeError)"

sinatra+mongoidで、 http://mongoid.org/docs/installation/configuration.html にあるようにmongoid.ymlを作って Mongoid.load!("path/to/your/mongoid.yml") で読み込ませて、modelをnewした時点で"db_name must be a string or symbol (TypeError)"が起…

catしきれない時はxargsを使う

booksディレクトリ下の*.txtを全て標準出力経由でrubyのプログラムに渡したい時 cat books/*.txt | nkf -u | ruby -Ku make_dict.rb > dict.txt これでいいのだが、ファイルが多いと "argument list too long" と言われてしまう。 xargsとfindを使ったらでき…

Macのapache+passenger+sinatra環境でcoffee-scriptを使う

この、sinatraでcoffee-scriptを使ってるアプリをMac(Leopard)のapache2で動かす。 https://github.com/shokai/sinatra-template まずコーヒーをいれる brew install coffee-script gem install coffee-script which coffeenode等も入る。これで、自分でruby…