〜2005年3月中旬〜
0.6はどうなったんだろう? それはそれとして、新機能の
Added: Options for today's forecast.
がうれしい。 現在と3日間という指定だと、現在、今日、明日、明後日となってしまい、 いまいち今日の予報は邪魔に感じていた。これを削除できるようになった。
About:
sdelta is a dictionary compressor that analyzes the differences between two files and outputs a very small delta that is highly compressible. It is optimized to produce deltas of source tarballs. The patches it produces are larger than xdelta patches, but are often between 30% and 60% smaller after bzip2 compression.
bzip2で圧縮するとxdeltaよりも小さくなるらしい。READMEを見ると
bytes file name 197888000 linux-2.6.7.tar <- dictionary file 200847360 linux-2.6.8.1.tar <- message file 2060961 linux-2.6.7-linux-2.6.8.1.tar.sdelta.bz2 3190401 linux-2.6.7-linux-2.6.8.1.tar.xdelta.bz2 <中略> 13M sdelta bzip2 compressed becomes 2M 6.9M xdelta bzip2 compressed becomes 3M
ということで、確かに圧縮しやすいデータ構造になってるようだ。
これはなかなかすごいね。Wikiでプレゼンが作れるわけだ。 Autohide と組み合わせれば、Firefoxでも完全なフルスクリーンが可能になる。 スペースバー、リターンキー、カーソルキーなども使えるあたりが気が利いてる。 まだ試してないんだけど、だれもaccountを作ってないからちょっと躊躇してしまう。 RDocで記述できるらしい。Railsである必要がどこにあるのかがよくわからん。 まずは S5を調べてみよう。
ruby-talk MLで最近 TinyURLが話題になっていたけど、 1時間ぐらいでできちゃったよってこと? それはすごい。しかし、最近は何でもRoRだなあ。
ruby-talk MLからcomp.lang.rubyへの一方通行だったnews gatewayが復活したようだ。 突然記事が増えた。
でも3日以上経ってる記事はrejectしてるんだよねえ。
Gmailでラベル付けしたメールを見て終了時についyを押してしまう。 ここではラベルを消すという意味らしい。ヘルプを見てやっと理解。 どこに消えたのかと思えば。 しかし、過去に消しちゃったのはもう見つけらんないよなあ。
やっぱgで先頭に移動したくなったので、 Keyconfigを試してみた。 というか、完璧に Firefox Keybindings (vi/vim-like in my case) を参考にしただけなんだけど、
user_pref("keyconfig.main.xxx_key_ScrollBottom", "shift][G][][goDoCommand('cmd_scrollBottom');"); user_pref("keyconfig.main.xxx_key_ScrollTop", "][G][][goDoCommand('cmd_scrollTop');");
ってのをprefs.jsに追加。快適。
user_pref("keyconfig.main.xxx_key_PageDown", "][F][][goDoCommand('cmd_scrollPageDown');"); user_pref("keyconfig.main.xxx_key_PageUp", "][B][][goDoCommand('cmd_scrollPageUp');");
とか追加していったら、もう userHTMLBindings.xmlで設定する必要ないな。
0.3.1が出たなと思ったらすでに0.3.2が出てる。 3つの Philosophyがなかなかいい。
% gem install webgen
でok。とはいうものの、サンプルがないのでソースを取ってきたほうがいいかな。 testsite/でwebgenを起動すればいいはずだけど、なんか盛大のエラーが出る。 でも、眠いから寝る。
Linux版のAdobe Reader 7.0を入れてみた。
This version has been completely redone in GTK. PDF 1.6 is now supported.
ということらしい。日本語も問題なく表示される。 しかし、相変わらずスペースバーでページ送りはできない。 Windows版では6からできるようになったのにねえ。
そういえばGmailも角が丸いな。 でもソースを見てもどこにCSSがあるんだかわからない。 さすがGmailだ。
今日は勉強会をやってるということだけど、花粉がいやで家でおとなしくRuby on Railsをインストールしてみたりする。 RubyGemsを使えば適当にリターンキーを押すだけでインストールできる。
% gem install rails Config file /home/eban/.gemrc does not exist Attempting local installation of 'rails' Local gem file not found: rails*.gem Attempting remote installation of 'rails' Install required dependency activesupport? [Yn] Install required dependency activerecord? [Yn] Install required dependency actionpack? [Yn] Install required dependency actionmailer? [Yn] Install required dependency actionwebservice? [Yn] Successfully installed rails, version 0.10.1 Installing RDoc documentation for rails-0.10.1... Installing RDoc documentation for activesupport-1.0.1... Installing RDoc documentation for activerecord-1.8.0... Installing RDoc documentation for actionpack-1.5.1... Installing RDoc documentation for actionmailer-0.7.1... Installing RDoc documentation for actionwebservice-0.6.0...
ここで、はたと気づく。railsって結局なんだっけ? るびまも読んでないしなあ。
とりあえずrails -hしてみるとExampleが出てきた。
Description: The 'rails' command creates a new Rails application with a default directory structure and configuration at the path you specify. Example: rails ~/Code/Ruby/weblog This generates a skeletal Rails installation in ~/Code/Ruby/weblog. See the README in the newly created application to get going.
ふむふむ。じゃ、適当にディレクトリを指定してみるか。
% rails ~/rails create create app/apis create app/controllers create app/helpers create app/models create app/views/layouts create config/environments <中略> create public/404.html create public/500.html create public/index.html create public/favicon.ico create doc/README_FOR_APP create log/server.log create log/production.log create log/development.log create log/test.log
なんかすげー。で、~/rails/READMEを読む。ruby script/serverで動くらしい。 URLはhttp://localhost:3000/か。Congratulationsが出た。 なるほど。インストールはできたようだ。
続いて チュートリアルを実行してみる。 Step One を見るとMySQL, PostgreSQL, SQLiteが使えるようだ。 例ではMySQLが使われているが、ここでは迷わず横道にそれて SQLite を選ぶ。そのままsqlファイルを保存して~/rails/dbで
% sqlite rails_production.db <rails_production.sql
と実行。これでデータベースが作られた。
次に Step Two。 config/database.ymlを編集してSQLiteを指定。 注意する点はSQLiteの場合、ファイル名はdatabaseではなくdbfileで指定する。 sqlite-rubyはインストールしてあったけど、ついでにgemでインストールしとこう。
% gem install sqlite-ruby
なんかいっぱい候補が出てくるが、1の最新を選べば無事にインストールできた。
Step Three, Step Four を実行。
% ./script/generate controller Friends list display new edit exists app/controllers/ exists app/helpers/ create app/views/friends exists test/functional/ create app/controllers/friends_controller.rb create test/functional/friends_controller_test.rb create app/helpers/friends_helper.rb create app/views/friends/list.rhtml create app/views/friends/display.rhtml create app/views/friends/new.rhtml create app/views/friends/edit.rhtml % ./script/generate model Person exists app/models/ exists test/unit/ exists test/fixtures/ create app/models/person.rb create test/unit/person_test.rb create test/fixtures/people.yml
Step Five のrakeの実行は必要ないらしい。
Step Six に従い app/views/friends/display.rhtml, app/controllers/friends_controller.rb を編集。 あとは http://localhost:3000/friends/display にアクセスすればいいわけだが、なぜかエラーになるな。
NoMethodError in Friends#display Showing /friends/display.rhtml where line #6 raised undefined method `name' for nil:NilClass 3: <h1>Friends#display</h1> 4: <p>This page will display one friend</p> 5: <p> 6: <%= @person.name %><br /> 7: <%= @person.street1 %><br /> 8: <%= @person.street2 %><br /> 9: <%= @person.city %><br /> <後略>
なんかエラーの表示もすばらしい。さて、原因はなんだ? あ、sqlがpeopleになってんじゃん。personに書き換えてもう一度やりなおし。 だめだな。同じエラーだ。
昨日の夜中から突然切れたままだけど、Sunday Lunchってどこ時間だ? とりあえずKAELAを聞きまくる。
夜に復活したが、なんか切れ切れで安定しない。 結局バッファを大きくしても何の解決にもなってないようだ。
これは買うしか。
本誌は『WEB+DB PRESS』の創刊号からVol.24(2004年12月)までの4年分の記 事(5,384ページ)を、PDF形式で1枚のCD-ROMにまとめた特別総集編です。
突然routerがつながらなくなる。電源のoff/onで復活する。というのが日に3度ほど。 買ってから1年ちょっとしか経ってないのになあ。
この tutorialを試してみたら、うまくいった。 ってことはSQLiteが別に悪いわけでもないわけで、どこかtypoがあるんだろうなあ。
sqlはこんな感じ。
CREATE TABLE todos ( id INTEGER PRIMARY KEY, description TEXT, done INTEGER );
この複数形のあたりに秘密があるんだろうか? 昨日もpersonsにしてみたりしたんだけど、全然変わらなかったんだよなあ。
Ruby 1.9ではcallを省略してProcオブジェクトが呼べるようになっていることに、ruby-talk MLをぼーっと眺めていて気づいた。
% ruby -ve 'foo = proc{|x| p x}; foo("hoge")' ruby 1.9.0 (2005-03-20) [i386-linux] "hoge"
提案だけじゃなくてすでに実装されてたとは。