2007-05-01から1ヶ月間の記事一覧

FreeBSDのlsを読む fts(3)でlsを作ってみよう〜。

GCC

FreeBSDのlsで使われているfts(3)がやたら便利そうなので、試してみた。環境はFedora6です。 ls.c #include <stdio.h> #include <stdlib.h> #include <fts.h> int main (int argc, char *argv[]) { FTS *ftsp; FTSENT *p; static char dot[] = "."; static char *dotav[] = {dot, NULL}</fts.h></stdlib.h></stdio.h>…

FreeBSDのlsを読む -tオプションを追え!!

GCC

ls -tで更新時刻順に並び替えることが出来る。 % ls -tと、昨日知ったので、ls -tでのソート処理を追ってみることにしました。 まずトップダウンで概要を探る。 mainから、vimの*(カーソル下の単語検索)でがが〜っとトップダウンしていく。まずは見るだけ。 …

Rubyでmake

Rubyにmakeがあったら面白いんじゃないかと言う発想。 make("index.html", $0, "wiki.db") do # HTML生成 end 文法がそっくりにできそう。残念ながら、多重の依存関係は無い。 module Make module_function # makeが必要かどうか判断する # true 必要 def ma…

gvimの爆走を止める。

Vim

gvimで無限ループに入ると、C-cが効かなくなるので % kill $(pgrep tee)teeがあったらkill案外いい感じ。

Rubyで配列のランダムソート

Rubyでランダムソートをしようと思ったら、色々な発見が出来た。試行錯誤の記録。 結論 ランダムソートならsort_by(rand)がいい。 p (1..10).sort_by{rand} #=> [10, 3, 5, 9, 8, 6, 2, 4, 7, 1] シェルスクリプトとして活躍中〜。 % random() { ruby -e 'pr…

Konsoleメモ。

イマイチ使用法をつかんでいなかったKDE付属のKonsole。実は・・・Screen要らずだった!!ポイントはshiftキー。面倒なのでSで省略する。 S-←→ タブ切替 S-↑↓ 1行スクロール S-Page↑↓ 1画面スクロール S-Insert 貼り付け もちろんキーバインドの変更も効く。ガ…

GNU globalすげぇ。

Vim

GNU globalが気になったので使ってみた。何といっても凄いのは、「global -r hoge」で参照元に飛べる点。コードリーディングには必修です。Vimとの連携は以下を参照。 GNU GLOBAL を使う うちの環境では、/usr/share/gtags/gtags.vimにプラグインが入ってた…

ひらメソッドを読んでみた。

GCC

最近、人気の高いコードリーディング手法であるひらメソッドを読んでみました。ひらメソッドの重要ポイントは、 ボトムアップに関数を読んでいく 安心して忘れることができる環境 記憶しなければならない箇所を絞り込むことができる ってところですね。 今ま…

たのしいRuby 第22章 アクセスログの解析2 Hatena-Log.rb 0.02

昨日作ったHatena-Log.rbを書き直してみました。 バグ修正 パイプを通しても大丈夫! % ruby hatena-log.rb 001-2007-04.csv | head 2859 77.4% Windows 400 10.8% Linux 255 6.9% Mac 88 2.4% mobile 27 0.7% BSD ...(略原因は・・・ファイルを閉じてなかっ…

たのしいRuby 第22章 アクセスログの解析

今日から最後の節、「ツールを作ってみよう」に入ります。今回は、アクセスログの解析です。といっても・・・僕の自宅サーバーは外部公開していないので、僕のアクセスしかありません(汗自分で自分のアクセスを解析しても相当意味が無いので、はてなカウンタ…

たのしいRuby 第21章 Mix-in

21章に入る前に、昨日の復習をしておきたいと思う。やはりyieldの理解度が足りない。 yieldの復習。 昨日、イマイチわからなかったのが、何処のブロック呼び出しなのか。プログラミングRuby言語編の4章に答えはあった。シンプルにyieldを呼び出してみる。 de…

たのしいRuby 第20章 イテレーター

会社の昼休みの読書に、プログラミングRuby言語編を読み始めました。この本メチャクチャ面白い!!詳しい言語リファレンスはもちろん、C言語にRubyインタプリタを組み込むといった高度な話題まで盛り沢山です。絶対買いの一冊です。さて、いよいよ。Rubyの目玉…

たのしいRuby 第19章後半 演算子の定義

そういえば、後半戦が残っていた。2次元ベクトルVectorを定義して演算子の定義を学習する。サンプルに、内積Oと外積Xを追加してみた。 #!/usr/bin/ruby class Vector attr_reader :x, :y def initialize(x=0.0, y=0.0) @x, @y = x, y end def inspect "(#{@x…

電卓作ってみた。

GCC

昨日、Rubyのソースコードを見ていたら、構文解析部分はyaccで作られていることがわかった。僕でも電卓くらいなら作れそうだ!!という気分になったので、Flex&Bisonで電卓を作ってみた。電卓といっても計算は正の整数のみ。演算子は+,-,*,/で、()の計算も出来…

たのしいRuby 第19章 演算子

ちと,Vimで遊びすぎてしまった・・・反省。最近、はてなの情報量に驚きます。googleで情報が無い!!と思ったら、はてな以下のページを探るとゴリゴリ出てきます。はてなは、プログラマの巣窟っすね。移転してきて良かったぁ。さて、今日は演算子に入ります。…

練習問題

最後の練習問題はムズいっす。 逆で解いてしまった・・・反省。String#scanの使い方が非常に参考になります。 ls_tを作れという問題。全然わかんなかった。Hashを使って上手く解いてます。 最後は超難問。カレンダーを作る。何処かで作った記憶があるけど、…

たのしいRuby 第17章 時間関連クラス

Ruby漬けのGWも残り僅かで〜す。「この本の半分くらい終わればいいかなぁ」と、思っていたのですが、学習効率の高いirbのおかげで、案外順調に進んでます。第三部最後の章。時間関連クラスに入ります。ワンライナ的な所なのでirbでいきたいと思います。 謎。…

だけでドンドン補完できてしまう。macのTextMateのエミュレーター - snippetsEmu.vim

Vim

RoRの15分ムービーで使われているTextMateのsnippetsもどきなvimプラグインsnippetsEmuより。Vimにだけでドンドン補完できてしまう。macのTextMateのエミュレータープラグインが登場した。snippetsEmu - An attempt to emulate TextMate's snippet expansion…

たのしいRuby 第18章 Ruby落ち穂ひろい

いよいよ第4部「Rubyを使いこなそう」に入ります。今までは定義されたクラスを使う側。ここからはクラスを作る側。同じようで全然違う。今まで@が全然出てきません出したが、ここからバリバリ@を使っていくことになると思います。一気にレベルがが上がるので…

たのしいRuby 第16章 FileクラスとIOクラス

昨日の事 昨日、本屋でRailsの本を立読みしたらびびった。 % irb -r rubygems -r active_support irb(main):001:0> p 1.minute 60 => nil irb(main):002:0> p 1.hour 3600 => nilなんじゃこらぁぁぁ!!!!!!!RailsがRubyを採用した理由がわかったような気がす…

Macを見に行ってきた。

Mac欲しい。 Linuxに移行して4ヶ月。多少不満も出てきた。Linux最大の弱点は、"Photoshopが動かない"Gimpではデザインする気が起きないので。選択肢として、Macというのもアリかなぁと思って調査してきた。ビックカメラでターミナル起動。色々試してみる。 $…

900円

amazonで900円で売ってたので、思わず即買いしてしまった。プログラミングLinux (Ascii books)作者: Michael K.Johnson,Erik W.Troan,クイック出版社/メーカー: アスキー発売日: 1998/12メディア: 単行本購入: 2人 クリック: 1回この商品を含むブログ (1件) …

正規表現の先読みがちょっと理解できた。

ベストタイミング!昨日全く理解できなかった、(?=foo)がやっと理解できた!! 404 Blog Not Found regexp - lookahead and lookbehind assertionsより。 RegexpにおけるAssertionは、その条件が合致するところまで検索カーソルを移動する ・・・よくわからない…

たのしいRuby 第15章 IOクラス

ここら辺からRubyの本領発揮。openだけで何でも出来てしまうLinux世界観を楽しめる最高のクラスだと思う。IOについて簡単に学びたいなら「ふつうのLinuxプログラミング」を読むべし。では15章。IOクラスを学んでいく。 とその前に・・・ またVimの設定見直し…

たのしいRuby 第14章 Regexpクラス

僕とRubyの相性は良さそうです。書いていて苦痛を感じないし、何よりVimとの相性が良い。VimScriptはPythonをモデルにしてるし、RubyもPythonがモデルだ。2言語同時に使っていてもあまり差異を感じないのが魅力。シェルスクリプトっぽい感じなのでLinuxユー…

たのしいRuby 第13章 Hashクラス

tanakaは文字列に弱いことが判明してしまった・・・気を取り直して13章のHashに取りかかる。今やHashのない生活なんてありえないので、しっかり学んでいきたい。C言語でもハッシュつかいてぇなぁ・・・(最近C言語ブーム ブロックによる初期化 この構文がイマ…

たのしいRuby 第12章 Stringクラス

この本、やさしそうに見えるが、内容はかなり充実している。練習問題もかなりキツイ&面白い。オススメです。ってことで、12章突入開始!!今日はStringクラスからのスタートです。 式展開 Rubyは変数を表示するだけでは飽き足らないらしい。 irb(main):017:0> …