平衡点
2008/08/04
_ wassr 始めました
twitter と wassr の両方やっている, なんて節操の無いことかもしれませんが. とりあえず, 呟きもヒトコトも同じ内容を更新していきます. サイドバーは, 今迄は twitter の RSS を拾っていましたけれど, Wassr に変えてみましたよ.
あとは .qmail に食べさせて, メールで twitter と wassr の両方を更新できれば良いんだけど, なんか上手くいきませんね. Net::Twitter で wassr 更新するのは駄目なのかしらん.
2008/08/11
_ 明日から
帰省します. 避暑になるのかな? なると良いな. 15 には神戸に戻る予定. 17〜20 は天文台. 慌ただしいなぁ...
航空券, パックが取れず, 優待券転売を使った格安航空券を購入したのだけれど, 手続メールの From が info@... だったので, 全部 spam 撃墜されていた. ...うーん(笑).
涼しい中でできるかな, な ToDO とか
- DNS 調査メール書き
- SlipRigid 全般定式化
- 某所計算機申請書
- 計算機関係
- syslog-ng
- buildd etc.
- compiler 周り
- dot.qmail の調整
- ruby で書こうかなぁ(笑)
実家の洗面所が新らしくなっているらしいので, ちょっとだけ楽しみにしてたり.
2008/08/12
_ zentwitter で wassr も更新してみるよ.
zentwitter 自体は zentwitter で公開されてます.
- インターフェースに zenity
- URL アクセスには curl
を利用した, 非常に簡単なシェルスクリプトです. むしろ zenity というモノを始めて知ったですよ.
zentwitter での更新自体は curl を呼んで,
$CURL -u ${USER}:${PASS} -d status="${tweet}" ${TWITT_URL} -k
とやっているので,
$CURL -u ${TWIT_USER}:${TWIT_PASS} -d status="${tweet}" ${TWITT_URL} -k $CURL ${WASS_URL} -u ${TWIT_USER}:${TWIT_PASS} -d "status=${tweet}"
なんて書いておくと, zentwitter を起動して に対して適当に呟くと, twitter 側も wassr 側も更新できます.
…で, 大抵 twitter 側へレスを返しているので, @hogehoge みたいなメッセージは twitter 側へ流して欲しいな, とか思いましたよ. そんな訳で,
# update status # if tweet is direct message, can't update status of wassr if echo ${tweet} | grep -E -q '^@'; then $CURL -u ${TWIT_USER}:${TWIT_PASS} -d status="${tweet}" ${TWITT_URL} -k else $CURL -u ${TWIT_USER}:${TWIT_PASS} -d status="${tweet}" ${TWITT_URL} -k $CURL ${WASS_URL} -u ${WASS_USER}:${WASS_PASS} -d "status=${tweet}" fi
とかやってお茶濁してみたり.
2008/08/21
_ flv -> 3gp
ffmpg で変換するだけなんだけど, -acodec aac が効かなくて, しばし悩む. 結局
ffmpeg -i [変換したい flv] \ -y -re -vcodec mpeg4 -mbd 2 -trell -aic -s 320x240 -deinterlace -r 29.97 \ -me full -g 240 -sgop -cgop -sc_threshold 1000000000 -qscale 6 -acodec libfaac -ac 2 -ar 44100 -ab 64 -vol 256 \ -f 3gp [出力したい 3gp]
と, -acodec libfacc で幸せになれた.
_ wassr やめました.
なんか twitter で良いや, とか一瞬でも思ったら, 途端に面倒になったので.
2008/08/22
_ mlterm + screen での文字のズレ
以前, ぶつぶつ唸っていた訳ですが.
<URL:http://debian.fam.cx/index.php?Japanese:title> に対策が書いてあったよ.
$ infocmp > screen.mlterm $ vi screen.mlterm ... acsc, rmacs, smacs を削除... $ tic screen.mlterm
で幸せになりました.
2008/08/24
_ 某所のスパコン
使える時間が無くなった模様.
sbucheck -g =================================================================== GROUP BUDGET DATA Saved at [2008/08/24 20:56:36] =================================================================== kgXXXXXX 0.00/ 3600000.00 ===================================================================
延長申請すればいいんでしたっけ? そんな使ったかなぁ
_ extreme "Saudades de Rock"
ワクワクしながら購入.
エクストリーム, ビクターエンタテインメント, ¥4,498
ゲイリーとヌーノのコンビが Extreme なんだなぁ, と実感. 無駄の削られた感じは 4th の 「Waiting for the Punchline」に近い感じだろうか. パットってこんなに弾くタイプだったっけ?
とりあえず再結成してくれただけで良しとする. 次に期待という感じで. 今作は贔屓目もあって 85 点, かな.
2008/08/28
_ 大阪ガスサービスショップ
この間来たのは, どっちだったかな?
それより, 昨日の晩飛び込みで来た 「NTT なんちゃら(インターフォンで聞き取れず)」の人もオモシロかったな.
「設備の説明と点検を行なっています. 玄関口までいらして下さい」...下さい, でした. 「設備って何ですか?」 「このマンションに導入されているフレッツ光の説明と...」 「もうフレッツ使ってますけど...」 「あ, では結構です.」 「ちょっとまって下さい, 点検とか言ってませでしたか?」 「いえ, 結構です.」ガチャ, ツーツーツー
ホントにあるんだなぁ...
2008/08/30
_ extreme "Saudades de Rock", "waiting for the punchline"
ジワジワ効いてきている. やっぱ良いわー. Extreme. おもわず waiting for the punchline もひっぱり出してきましたが.
_ 天文台ミーティングにて
ログは <URL:http://www.gfd-dennou.org/library/dcmodel/workshop/2008-08-18/memo/dcmodel_2008-08-18.htm:title> ということで. 以下は不真面目な話.
計算機見学
NEC SX-9 と CRAY XT-4 を見学.
NEC SX-9
X の怪しい輝きが, なんか, いやらしい. X が点滅している動画は以下. X だけが目立つと OSX みたいな... <URL:http://video.google.com/videoplay?docid=-6541241200825960536:movie>
CRAY XT-4
壮観. 前面は CfCA のロゴ入り 前面のフロントパネルを開けたトコロ. ブレード一つに QuadOpteron が 4 つ. ピカピカ光ってます. 計算中です. 背面. 通信ケーブルが凄いことになってます.
多聞で深大寺蕎麦
毎度恒例. 前回は2008/01/01 の日記を参照. ここは盛りが豪勢な事で有名.
N 多さん注文のざる大盛り.
私が注文したつけとろ大盛り. 器がなにか間違っている気がしないでもない.
N 多さんはここでギブアップでした:
私が注文したつけとろはあっさり完食してしまった. I 藤さん曰く「今日は盛りが少ない」らしい. たしかにそんな気はした.
_ Rails で文献管理システムを作ってみるよ(1/n)
この手の話はドコにでもありそうですが(笑) 近場で Rails 弄り始めた人々がいるので, 以前から作っていたコードとかを晒し始めてみます.
やりたい事はそんなに大変な事ではなくて.
- 論文(電子ジャーナル)を管理したい.
- 取得した PDF を適切なディレクトリに保管したい.
- 著者名, ジャーナル名, タイトル名で検索したい.
- 某所で仕様している文献カード形式(テキスト)で情報を出力したい.
- 選択したファイルの文献情報を tex の bib 形式で出力したい.
- 簡単なコメント, レビュー文書を元の論文に関連づけて保存した.
かな. 見栄えもまあそれなりに弄りたいですけどね.
環境構築
OS は Debian GNU Linux(testing) です. 以前 <URL:http://www.gfd-dennou.org/arch/davis/gfdnavi/:title> で, Debian で Rails 動かすために書いたドキュメントがありますので, それを参考に -> <URL:http://www.gfd-dennou.org/arch/davis/gfdnavi/doc/install/gfdnavi-on-debian-etch.htm:title>
基本的には, rubygems のみ Debian パッケージを使用して, それ以外は gem 経由で install します.
$ ruby -v ruby 1.8.7 (2008-06-20 patchlevel 22) [i486-linux] $ gem list *** LOCAL GEMS *** actionmailer (2.1.0) actionpack (2.1.0) activerecord (2.1.0) activeresource (2.1.0) activesupport (2.1.0) cgi_multipart_eof_fix (2.5.0) daemons (1.0.10) fastthread (1.0.1) gcalapi (0.1.1) gem_plugin (0.2.3) hpricot (0.6.161) icalendar (1.0.2) mongrel (1.1.5) mongrel_cluster (1.0.5) rack (0.4.0) rails (2.1.0) rake (0.8.1) refe (0.8.0.3) sqlite3-ruby (1.2.4) tmail (1.2.3.1)
関係無いものもまざってますが, 気にせずに.
プロジェクトの開始, リポジトリの作成
作るプログラムの名前は bookshelf にします. 今の所論文だけですけれど, 蔵書の管理もしたいので.
$ rails bookshelf create create app/controllers create app/helpers create app/models create app/views/layouts ... create log/server.log create log/production.log create log/development.log create log/test.log
git リポジトリの作成
$ cd bookshelf $ git init
gitignore の作成
$ cat .gitignore #*# *.*~ *~ *.#* *.bk *.bak tags log/*.log tmp/**/* .DS_Store doc/api doc/app $ touch tmp/.gitignore $ touch log/.gitignore
リポジトリにファイルの追加とコミット
$ git add . $ git commit -m "initial import"
サーバへ転送するための裸(bare)リポジトリの作成, 転送
$ git clone --bare . ~/tmp/bookshelf.git $ scp -r ~/tmp/bookshelf.git server@git_repos/
ちなみに, リポジトリの取得, マスターへの反映は
- 取得 - $ git clone ssh://[アカウント]@server/[git リポジトリの場所] - 更新の反映 - $ git push ssh://[アカウント]@server/[git リポジトリの場所]
git のコミットはローカルにしか反映されないので, マスターへの反映を適宜行なう必要あり.
Article テーブルの作成
bibtex の形式に変換するための情報として, Article には最低限
- 論文タイトル
- 著者(複数)
- 雑誌名
- 発行年
- ボリューム
- ページ(開始と終了)
が必要. 著者名はそのうち別のデータベースにするけど. とりあえず.
$ ./script/generate scaffold Article \ title:string \ authors:string \ journal:string \ year:datetime \ volume:integer \ start_page:integer \ end_page:integer ...
これで, 一通り足場(scaffold)ができる. db/migrate/XXXXXXXX_create_articles.rb[XXXXX は日付による timestamp] によれば
class CreateArticles < ActiveRecord::Migration def self.up create_table :articles do |t| t.string :title t.string :authors t.string :journal t.datetime :year t.integer :volume t.integer :start_page t.integer :end_page t.timestamps end end def self.down drop_table :articles end
end
となっている. データベースの作成は
$ rake db:migrate
これで
$ ./script/server
として, ブラウザで http://localhost:3000/articles にアクセスしてみると一応それっぽい画面ができている. で, この状態では [New Article] で情報が全く無い論文データが作成できてしまう. なので, model の方に最低限の validation をかけておく. 少なくとも title, author(s), year は必須項目にしたい. app/models/articles.rb を弄る. 結果は以下.
class Article < ActiveRecord::Base validates_presence_of(:title, :authors, :year) end
()をつけるのは, コーディングスタイルとしてはどうなんだろう. 個人的にはつけた方が好みなんだけど, ものの本ではつけてないなぁ... これで, 空の文献データを作成しようとすると, ちゃんと怒られる.
次回
まだまだ始めたばっかなのでやることイッパイあるよー
- test の修正, 追加
- 作成時
- year, (start|end)_page を integer で入力, チェック
- year は Date オブジェクトを渡すようにする. 選択できるように.
- 見栄えの修正その (1/n)
- PDF のアップロードを可能にする.
- 置き場のディレクトリは文献データから適宜決定する.
- 文献データを更新した際は, PDF 置き場も変更する?
- 存在しない文献データのディレクトリを適宜フラッシュする?
の予定.
今日の参考文献
2008/08/31
_ HDD I/O error
s2ram から復帰したら, laptop の syslog に気になるエラーが...
Sep 1 02:00:42 kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } Sep 1 02:00:42 kernel: hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=65314041, high=3, low=14982393, sector=65314034 Sep 1 02:00:42 kernel: ide: failed opcode was: unknown Sep 1 02:00:42 kernel: end_request: I/O error, dev hda, sector 65314034 Sep 1 02:00:49 kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } Sep 1 02:00:49 kernel: hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=65314041, high=3, low=14982393, sector=65314034 Sep 1 02:00:49 kernel: ide: failed opcode was: unknown Sep 1 02:00:49 kernel: end_request: I/O error, dev hda, sector 65314034
やばいかな? もしかして.