2009-09-01から1ヶ月間の記事一覧

継続でbreakのようなことをする

#!/usr/bin/env ruby callcc {|_break| puts "a" puts "b" _break.call puts "c" } schemeで #!/usr/bin/env gosh (call/cc (lambda (break) (print "a") (print "b") (break) (print "c") ))

zshでwindowsとunix間のファイル変換

普段colinuxとwindows間をテキストファイルのやりとりをするので、使う文字コードと改行コードを一発で変換できるように定義した。.zshrc alias to_win='nkf -s -Lw --overwrite' alias to_unix='nkf -w -Lu --overwrite' exec zshで設定の適用。 to_win フ…

二分探索

#!/usr/bin/env ruby def bserach(data, search) data.sort! min = 0 max = data.size - 1 while min <= max mid = (max + min) / 2 if data[mid] < search min = mid + 1 elsif data[mid] > search max = mid - 1 else puts "find #{search}" return end en…

PuTTYで自動ログイン

2009-09-28追記 ここでPuTTYは日本語化されたもので行っている。puttygen.exeで公開鍵と秘密鍵を生成する。 鍵のパスフレーズ,パスフレーズの確認を入力後でPageantのPassphraseの入力に使う。 秘密鍵(.ppk)を名前つけてを保存。 公開鍵はOpenSSHのauthoriz…

FizzBuzz

前に流行ってたけど書いたことなかったので書いてみた。 #!/usr/bin/env ruby for i in 1..100 if i % 15 == 0 puts "FizzBuzz" elsif i % 3 == 0 puts "Fizz" elsif i % 5 == 0 puts "Buzz" else puts i end end

emacsからtwitterに投稿できるようにフロントエンド書いた

twclient.el (defun twclient (str) (interactive "stwitter: ") (call-process "twclient" nil 0 nil str) (message str)) (provide 'twclient) twclientはこれを twclientって名前で保存してパス通して,実行できるようにしておく。

ヒープソート

#!/usr/bin/env ruby def heep_down(data, size, root) while 1 left = root * 2 + 1 right = left + 1 if left > size break end if right > size max = left else max = data[left] > data[right] ? left : right end if data[max] > data[root] data[max]…

マージソート

#!/usr/bin/env ruby def marge_sort(data, min, max) if min >= max return end mid = (max + min) / 2 marge_sort(data, min, mid) marge_sort(data, mid + 1, max) i = k = min j = mid + 1 tmp = [] while i <= mid && j <= max if data[i] < data[j] tm…

クイックソート

ライブラリに頼らないで実装してみた。 #!/usr/bin/env ruby def qsort(data, min, max) if min >= max return end pivot = data[(max + min) / 2] i = min j = max while 1 while data[i] < pivot i += 1 end while data[j] > pivot j -= 1 end if i >= j b…

IRCからtwitterを使う

svn co http://svn.coderepos.org/share/lang/ruby/net-irc/trunk net-irc sudo gem install json net-irc net-irc/examples/tig.rbを使うtiarra wget http://www.clovery.jp/tiarra/archive/2009/02/tiarra-20090206.tar.gz tar zxvf tiarra-20090206.tar.g…

コマンドラインのtwitterクライアント

#!/usr/bin/env ruby # .twitter example # usr: username # pass: password require 'net/http' require 'yaml' def post_twitter(usr, pass, status) req = Net::HTTP::Post.new("/statuses/update.xml") req.basic_auth(usr, pass) http = Net::HTTP.star…

githubをwebのスペースとして使う

githubでusername.github.comでリポジトリを作る。 ファイルをアップする。 http://username.github.com/でアクセスできるようになる。 ほかにもgh-pagesっていう方法もある。