2008-11-01から1ヶ月間の記事一覧

文献目録バックアップ用

#!/usr/bin/env ruby puts 'backup start' hosts = { 'shokai.org'=>'username1', 'zanmai.com'=>'username2' } hosts.each{ |host, user| puts "...sync with #{user}@#{host}..." puts `rsync --progress -t -z #{File.dirname(__FILE__)}/* #{user}@#{hos…

twitterのfollowしていないfollower

followerのメール通知が漏れているような気がしたので、followし忘れている人を調べる basic認証はopen-uriで open(http://zanmai.com/asdfasdf, :http_basic_authentication => [@user, @pass]) こうすると入れる twitter-follower-following-diff.rb #!/us…

Object#method.call

method(:関数名).call(引数)とシンボルで渡すものだと思ってたけど、stringで関数名を渡してもいけた > o = Object.new => #<Object:0x1cea8f0> >> o.methods => ["inspect", "pretty_print_inspect", "to_yaml", "taguri=", "clone", "method", "public_methods", "instance_v</object:0x1cea8f0>…

simpleconsoleで1行メモ帳

http://d.hatena.ne.jp/shokai/20081126/1227721485 の続き。SimpleConsoleで手軽に使える1行メモ帳を作った http://www.bitbucket.org/shokai/mem/overview/ コマンド引数からControllerを選んでViewに流すしくみはSimpleConsoleが作ってくれたので、model…

設定ファイルをYAMLで読み込み

~/.config-test # .config-test # please fill in fields # # name: your-name # mail: asdf@jkl.com # name: shokai mail: asdf@jkl.com ~/.config-yamlを読む、無ければテンプレートを作る require 'yaml' @@template = <

Mercurialでhttps経由でpush

Mac

こっちがmacのpython2.5用のsslの sudo port install py25-socket-sslこれでhttpsにpushできる python-sslの方はpython2.4用?

simpleconsole

Rubyのコンソールアプリ作成フレームワークを使う SimpleConsole - Building Console Apps 満足せる豚。眠たげなポチ。:コンソールアプリケーション用 Ruby フレームワーク SimpleConsole を使ってみた sudo gem install simpleconsoleSuccessfully installe…

gitセットアップ

sudo apt-get install git-core which git[core] excludesfile = /home/user/.gitignore より/home/sho/.gitconfig 編集 [core] excludesfile = /home/sho/.gitignore /home/sho/.gitignore *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.sw[po] t…

初ワンライナー

http://d.hatena.ne.jp/n9d/20080331/1206945041 を見たらワンライナー作りたくなった。 ruby -e 'dirs = Dir::entries("./"); for dir in dirs; puts dir.gsub(/_/, " ") end;' ちょっと必要だったので初めて書いた。zshのhistroyに入っているので確かに便…

論文選別用ワンライナー

最近、修論のためにキーワード検索してまとめてダウンロードしてきた論文などファイルを、いらなかったら消して、いるものは別のディレクトリに移動させて選別している。論文50個選別し終わるまで集中するためのワンライナー作った。 50個選別したらgrowlで…

sudo gem install rfeedfinder feed-normalizer opml

pTeXインストール

~/.profileを編集 export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:$PATH macportsでインストール sudo port install pTeX dvipdfmx ghostscript ghostscript-fonts-hiragino which platex-utf8 which dvipdfmxhttp://d.hatena.ne.jp/shokai/200…

http://member.zebo.com/Main?event_key=USERSEARCH&action=ns&keyword=car&tab=review&rPage=1http://reviews.zebo.com/nissan/car?breaker=2

3章 その16 hpricotでHTMLパース

p.49より、HTMLの解析。 pythonではBeautiful Soupを使ってHTMLを解析しているが、RubyなのでHpricotを使う。hpricotは既に3章序盤でHTMLタグ除去にも使ったが、今回はタグの中身を取り出しに深入りしていく。 3章 その2 - 橋本詳解 pylori*style wiki - HTM…

3章 おまけ2 日本語blogの階層的クラスタリング修正、できたクラスタを見てみる

return list.uniqだった所を修正 http://www.bitbucket.org/shokai/collective-intelligence-study/src/tip/03/generatefeedvector-jp.rb def getWordsByKind(node, kind) list = Array.new while node do f = node.feature.split(/,/) if /#{kind}/ =~ f[0]…

3章 おまけ 日本語blogの階層的クラスタリング

日本語データを扱うなら、テキストファイルじゃなくてちゃんとRDBに保存した方が良いですね。区切り文字とかが面倒をかけてきて、今回はクロールしてきたデータの一部を手動で修正してしまった。 できた。→大きいサイズ http://www.flickr.com/photos/shokai…

3章 その15 K平均法でblogをクラスタリング

データ群をK個のクラスタに分けるために、「いちばんしっくり来るK個の重心」を再帰で見つけるK平均法を使う。 このページのインデントわかりづらくてイライラした。 このアルゴリズムは階層的クラスタリングより全然速い。 p.47~48より clusters.rbにkclust…

配列の初期化と参照

p.47でK平均法をやっていて、2次元配列(配列の配列)が必要になった。 ループで空の配列を作っているが bestmatches = [[] for i in range(4)] Rubyだと、Array.newの引数で要素数と初期値を指定できる >> arr = Array.new(3, 10) # 要素数3で初期値10の配…

RMagickインストール

sudo apt-get install libmagick9-dev libmagick++9-dev imagemagick sudo gem install rmagick gemからのrmagickインストールでこける Building native extensions. This could take a while... ERROR: While executing gem ... (Gem::Installer::Extension…

rsyncで転送

rsync -t -r -z ~/src/ruby/collective/ username@zanmai.com:~/src/ruby/collective/逆にするとssh経由で取ってこれる

gitインストール

Mac

sudo port search gitcogito devel/cogito 0.18.2 Git core and cogito tools to provide a fully-distributed SCM git-core devel/git-core 1.5.5.1 The stupid content tracker. stgit devel/stgit 0.14.1 Push/pop utility on top of GIT cgit www/cgit 0…

3章 その13 blogクラスタのビジュアライズ

p.42~44より、blogクラスタの図を描く。 Python Imaging Libraryの代わりに、RMagick http://d.hatena.ne.jp/shokai/20081112/1226502119 を使う。使い方も関数名もほぼ同じなので簡単。あと配列内の一番大きい要素を返すArray.max関数を使った。 http://www…

3章 その12 irbのloadとrequire

3章では、hcluster関数(http://d.hatena.ne.jp/shokai/20081112/1226473410)の処理がMacbookだと3分ぐらいかかるので、何度もやりたくない。 でもhcluster関数で作った階層的クラスタをビジュアライズする処理は何度も試行錯誤したいので、irbのloadし直しを…

ImageMagickでテキストを画像に変換

convertコマンドが増えてる convert -size 100x80 -font '/Library/Fonts/Arial.ttf' label:"AA\nA" label.png画像作れる

3章 その14 単語のクラスタリング

p.44より clusters.rbに行列反転を追加 # 行列の入れ替え def rotatematrix(data) newdata = Array.new for i in 0...data[0].length newrow = Array.new for j in 0...data.length newrow.push(data[j][i]) end newdata.push(newrow) end return newdata en…

3章 その10 階層的クラスタの出力

名前付き引数をインクリメントだと勘違いしてた。 printclust(clust.left, labels=labels, n=n+1) のn=n+1はpythonでは名前付き引数なので、別にインクリメントしているわけじゃなかった。 cluster.rbにprintclust関数を追加 http://www.bitbucket.org/shoka…

3章 その9 階層的クラスタを作成

単語出現回数のリストを要素(vec)に持つ2分木ノードbiclusterをつなぎあわせて、p.36で解説されている内容が近いblog同士の階層的クラスタを作る。距離の計算は関数ポインタになっていたので、Object#method関数を使って http://www.ruby-lang.org/ja/man/ht…

zshインストール

Mac

インストール sudo port install zsh /etc/shellsを編集 # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/zsh /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcshchshで /b…

3章 その8 hashのkeyに配列を使う

p.39のhcluster関数の distances = {} if(clust[i].id,clust[j].id) not in distances: distances[(clust[i].id,clust[j].id)] = distance(clust[i].vec,clust[j].vec) がいまいちわからなかったんだけど、よく見たらリストをキーにとるディクショナリ(ハッ…

pinMode(0, true); serialInit(2400); // 通信速度遅め function onSerialReceive(success){ data = serialRead(); for(i = 0; i < data.length; i++){ c = data.charAt(i); // 1文字ずつ処理 switch(c){ case "a": digitalWrite(0,true); break; case "b": …