平衡点
2008/12/01
_ 某所の XT4 へ計算機環境を仕込んだ時の log その 1
単なるメモ.
wget なんかで tar.gz を落そうとすると弾かれる. scp で手元から転送するのが吉.
クアッドコア対応モジュールの読み込み
$ source /work/sample/quad_module/quad.pgi $ module load netcdf
NetCDF
実体は pgi fortran なので, CPPFLAGS を忘れずに付けないといけない.クアッドコア対応モジュールを利用する (初級講習会資料 p.17 を参考に).
$ export FC=ftn $ export F90=ftn $ export CC=cc $ export CXX=CC $ export CPPFLAGS=-DpgiFortran $ export FFLAGS="-O3 -fastsse -Msmartalloc -tp barcelona-64 -Mlist -Mipa" $ export F90FLAGS=$FFLAGS $ ./configure --prefix=$HOME $ make $ make check $ make install
gtool5
$ export FC=ftn $ export SYSFFLAGS="-O3 -fastsse -Msmartalloc -tp barcelona-64 -Mlist -Mipa" $ NCDUMP=$HOME/bin/ncdump \ ./configure --prefix=$HOME \ --with-netcdf=$HOME/lib/libnetcdf.a $ make $ make check $ make install
2008/12/02
_ ルジャンドル関数とか球面調和関数とか
- そういや軸対称モデルって無いんでしたね.
- そういや円筒モデルも無いな.
堀之内さんが Legendre陪関数計算ライブラリ を小物置き場に投げて下さいました.
といった所で, Dennou-Ruby 周りの lenny パッケージ作らなきゃな, とか気がついたので, 実益も兼ねてパッケージ作成中.
... lintian 先生曰く「csh は harmful」 ...駄目っすか?あと, man が無いコマンドが多すぎる, とも言われました. rd2man とかでインチキ man ページでも作るかな.
2008/12/13
_ メモリが足りない
計算機も, 頭の中も.
M 川さんが My Let's 倶楽部のプレミアム品 W シリーズを購入していて, 垂涎.
そろそろ CF-R4 じゃ苦しいなぁ. Debian 動かしている分には全然問題無いのだけれども, VirtualBox で Windows 上げておいたりしているので, かなりキツい.
...と, PowerPoint で A0 ポスター作成して, 痛感しましたよ, という愚痴.
CF-R8 のプレミアムエディション, メモリ 2GB で 28万弱かぁ...
SONY VAIO Type T もスペック的には捨て難いのだけれども, いかんせん VAIO なんだよなぁ(嫌な記憶が蘇える)....
うーん.
2008/12/14
_ 散財
イロイロ買ってしまった.
iPod を bluetooth 化
先ず iPod を bluetooth 経由で聞くために, 以下のモノを購入. いや, だってイヤホンのコードって面倒じゃん.
iPod 側送信
プラネックス
イヤホン側受信
プラネックス
カスタマーレビュー見てから買えばよかったかなぁ. 今の所, 音楽聞くには問題は無いけれど, 受信側の電池の持ちについてのカスタマーレビューは気になる所. 3 時間未満じゃ, 新幹線の友にはなりえないなぁ...どうなんだろう.
そいでもって, とりあえず繋いだら, Die in Cries が流れて懐しい気持になった.
DIE IN CRIES, BMGビクター, ¥2,344
...ノクターンは相変わらず良いなぁ...
書籍: 統計力学
田崎晴明センセイの統計力学本が出ていたので思わず購入しました.
コレ
田崎 晴明, 培風館, ¥3,300
と, コレ
田崎 晴明, 培風館, ¥3,630
以前, 同じ著者の熱力学の本を読んだ時にも思ったけれど, 冒頭の導入できちんと哲学を語っている(語ろうとしている)本って, 少ない気がするよなぁ. 冒頭だけで買った価値がある気がしないでもないここ数時間.
さて, いつ読むんだろう. とりあえず目次眺めて, 辞書扱いできるようにしておかないと.
書籍: 乱流理論
Batchelor の Homogeneous Turbulence を巽センセイが訳した本である,「乱流理論」が古本屋にあったので, 購入. 3,000 円だった. amazon のマーケットプレイスでは 8,000 円だったのでビックリした.
バチェラー, 吉岡書店, ¥956
まあ, これも積読かなぁ...でも気になる所は幾つかあるので, そのうち読むでしょう. 書いてあることは, もしかしたら古いかもしれないし, 今となっては間違いがあるのかもしれないけれど, なんか良いんですよ. 昔の本は. ...なんか.
と, また本棚に本が増えるんでありましたとさ.
2008/12/15
_ W05K の挙動
変です.
- Windows 側でアクティベーションしないと, linux 側で見えない.
- どのタイミングでアクティベーションが必要なのか, イマイチわかりません.
- かと言って, Windows 側で一旦アクティベーションしようにも, カードの認識に失敗すること多々.
- ドライバ入れておいても, 挿した際に誤認したり, 変なポート掴んだり, 「リソースの競合でデバイス」が動かなかったり.
一旦動きだせば, まあ普通のモデムなんだけれども.
...なんだかなぁ...
_ 関西 Debian 勉強会
今日(もう昨日)は第20回関西Debian勉強会 でした.
先ず, 場所がいつもと異なり, 株式会社ロックオン大阪本社のスペースだった訳ですが, まだ関西素人(?)の私は, 阪急梅田で降りてから, しばしウロウロと迷ってみたりして.
メインは「LaTeX で Debian 勉強会の資料を作ってみよう」な話だった訳です. 私は楽しんで見ていたのですが, ハンズオンとしてはどうなんだろう, とか思ったりもして.
LaTeX での文書作成と, Emacs + whizzytex-mode での文書作成は分けた方が良い気がしました. 前者は単純に LaTeX でのマークアップの解説で良いわけですし, 後者はどっちかと言えば環境設定ですよね. ~/.whizzytexrc が無くて, コンパイルで転んでいた, とか.
あと, 半分チューターになるつもりで行ったのにライブ DVD の中身を確認してませんでした. ゴメンナサイ. .whizzytexrc が無い人がいて, 「コマンドラインで platex でコンパイル -> xdvik-ja でプレビューでもとりあえず良いじゃん」とか思ったのですが, ライブ DVD は xdvik-ja が入っていなかったわけで(ここで私がチューターしつつ自爆). あははは
_|‾|○
飲み会で, たかやさんが「みんなメール返してよー」と言ったら, その後宴会の席でメール返信している lurdan さんが居て(笑).
ともあれ, 皆様お疲れ様でした. 来年もよろしくおねがいします.
_ cpufreq を backtick に表示してみる
やってみたけれど, 数分で飽きた(笑)
#!/usr/bin/ruby1.8 infodir="/sys/devices/system/cpu/cpu0/cpufreq" # display units is GHz cur=(`cat #{infodir}/scaling_cur_freq`.to_i/1000000.0).to_s + "GHz" # display current governor gov=`cat #{infodir}/scaling_governor` # format output strings puts cur+"/"+gov[0..2]
_ Keyjnote -> Impressive
「Keyjnote が Impressiveという名前になった」という lurdan さんの twit を見て, 試してみた.
Impressive は PDF でプレゼンテーションする際に, ページ遷移や一覧表示を綺麗に行なう python スクリプトのようだ. 試しに動かしてみたら, それなりに綺麗に表示された.
...でも, ページ遷移は結構もたつく. これは調整可能かな? キャッシュをあらかじめ生成しておけば, もたつき感は解消されるんだろうか? インデックスの表示は非常に便利. <URL:http://jp.youtube.com/watch?v=gBWciszfTbk:movie>
...この動画, 良いのかなぁ...
ちなみに, 表示だけなら PDFCube なんてのもありますね. こっちは動作がだいぶ軽い. でも一覧モードが無いみたい.
<URL:http://jp.youtube.com/watch?v=AscU72HOwgM&feature=related:movie>
なんにせよ, PowerPoint でプレゼンするのは, 当分私の環境では無理だろうなぁ...
2008/12/16
_ 深大寺, 蕎麦屋「多聞」
天文台で理論懇/ユーザーズミーティングに参加中.
昼に多聞に行ってきました. いつも通り(?)つけとろ大盛り隣の煙草の箱はサイズ比較に. 対面のセーターは S 山さんです.
...日の入り方が良くないな. 以前(→<URL:http://d.hatena.ne.jp/sasakyh/20080830#p2>)の写真の方が綺麗かも.
無事完食. 今回は盛りが少ない気がしないでもない. 盛りが豪勢な時は, 底の方の蕎麦が相転移(?)している気がするからなぁ.
...そんな訳で, 夜になっても, くしゃみをしたら蕎麦が出てきそう(笑). 満足.
あ, 量だけじゃなくて, 味も良いですよ. ここの店は > noritada さん.
2008/12/25
_ 帰省
毎度の事ながら, 飛行機(の安い切符)を取り損ねたので, 往復とも新幹線に.「はやて」の切符が取れそうな日ということで, ちょっと早いけれど 27 に帰省することに.
...しかし, 飛行機って高いなぁ. 出遅れると, 飛行機片道分 ≒ 鉄道往復 + 福沢さん一人分程度. 時間をお金で買ってるんだと思えば, まあそうなのかな.
というわけで, 新幹線ハックですね. はい.
_ bluetooth でじたばた
先日購入した
プラネックス
と, USB 経由の bluetooth アダプタ
プラネックス, ¥670
を使って, laptop で音を鳴らして bluetooth で飛ばして, リモートのイヤホンで聞くまで. 試しに Windows でやってみたらさっくりできたので debian でもやりたくてじたばた.
PIN(passkey) の登録までにちょっと手間取った.
必要なモノ
とりあえず以下を install した.
- bluez-utils
- bluez-audio
/etc/init.d/bluetooth が導入されて, daemon として hcid が起動する.
あと設定用に
- bluez-gnome
を入れておく. xfce4 を使っているので, 自動起動に入れておく.
設定とか
挿してみて動作しない場合には
- bluez-firmware
を入れてみると良いかもしれない. 挿してみると
usb 2-1: new full speed USB device using uhci_hcd and address 3 usb 2-1: configuration #1 chosen from 1 choice usb 2-1: New USB device found, idVendor=0a12, idProduct=0001 usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
と見えた. ついでにタスクバーに bluez-gnome のアイコンが出てきた.
ここでイヤホン受信側をボンディング状態にして一度スキャンする
$ hcitool scan
ここで見えた XX:XX:XX:XX:XX:XX は後で使うのでメモしておく.
サービスのアクティベーション
続いて PIN コード(passkey) によって認証してボンディングする.<URL:http://wiki.bluez.org/wiki/HOWTO/AudioDevices:title> にあるようにdbus を直接叩く(ここにある python スクリプトでも良いけど).
$dbus-send --system --print-reply --dest=org.bluez \ /org/bluez org.bluez.Manager.ActivateService string:audio ... string "org.bluez"
返ってくる string を次に使う. ここでは "org.bluez" が返ってきた.
デバイスの登録.
$dbus-send --system --type=method_call --print-reply \ --dest="org.bluez" /org/bluez/audio \ org.bluez.audio.Manager.CreateDevice string:XX:XX:XX:XX:XX:XX ... string "/org/bluez/audio/device0"
"--dest" はアクティベーションで返ってきた文字列を指定, string は接続したい機器のアドレス. 返ってきた string が作成されたデバイス.
接続
受信側をボンディング待受状態にしておく. でもって,
$ dbus-send --system --type=method_call --print-reply \ --dest="org.bluez" "/org/bluez/audio/device0" org.bluez.audio.Sink.Connect
"--dest" にアクティベーションで返ってきた文字列, 続いて作成したデバイスを設定して接続. そうすると bluez-gnome アプレットがPIN コードの入力を要求してくる. 入力すると無事接続できた.
実際に音を鳴らしてみる.
先ず dmix 経由で鳴らしてみる. ~/.asoundrc に
# for bluetooth pcm.bluetooth{ type plug slave { pcm "bluetooth_hw" } } pcm.bluetooth_hw { type bluetooth device XX:XX:XX:XX:XX:XX profile "auto" }
適当な mp3 でもって
$ mplayer -ao alsa:device=bluetooth test.mp3
で鳴った.
面倒なのは, 音を出すアプリケーション毎に出力を設定しないといけないこと. 設定が嫌なので, PulseAudio で出力することに.
# for default -> PulseAudio pcm.!default{ type pulse } ctl.!default{ type pulse } # for bluetooth pcm.bluetooth{ type plug slave { pcm "bluetooth_hw" } } pcm.bluetooth_hw { type bluetooth device 00:1B:DC:20:14:58 profile "auto" }
これはこれで. .xsession あたりに
pulseaudio -D 2>/dev/null
として pulseaudio が起動するようにしておく.
参考文献
2008/12/27
_ howm を複数ファイル分割へ戻す
changelog メモっぽく単一ファイルにしていたけれど, 流石に検索が重くなってきたので, 複数ファイルへ戻すことにする.
#!/usr/bin/env ruby $KCODE='e' #--- config start ---" src = ENV['HOME'] + "/work/howm/ChangeLog.howm" outdir = ENV['HOME'] + "/work/howm/" #--- config end ---" unless File.exist?(src) puts "ChangeLog files does not given" exit 0 end # howm の形式の指定 datef = '\d{4}-\d{2}-\d{2}' timef = '\d{2}:\d{2}:\d{2}' timelinef = datef + '\s' + timef # 日付毎に分割 cl = File.read(src).split(/(?=^\[#{timelinef}\])/m).sort cl.each do |entries| entries.gsub!(/^\s+$/, "") dt = $1 if entries =~/\[(#{timelinef})\]/m fn = $1 + "-" + $2 if dt.gsub!(/-/,"").gsub!(/:/,"") =~ /(\d{8})\s(\d{6})/ File.open(outdir + fn + ".howm", "w"){|f| f.puts entries } end
安易です.
ついでに howm からはてダラ用のソースへと変換するスクリプトもでっちあげる.
#!/usr/bin/env ruby $KCODE='e' require 'tempfile' src_dir = ENV['HOME'] + "/work/howm/" out_dir = ENV['HOME'] + "/work/hatena/" src = Dir.glob(src_dir+"*.howm").sort # エントリー格納用 Hash howm_entries = {} # エントリーパース src.each do |src_file| # 日付の取得 yy, mm, dd = $1, $2, $3 if File.basename(src_file) =~/^(\d{4})(\d{2})(\d{2})/ # 出力ファイル名の設定. これを Hash の key にする. out_fname = yy + "-" + mm + "-" + dd + ".txt" # ソースの読み込み entry = File.open(src_file).read # 不要な空行を削除 entry.gsub!(/^\s+$/,"") # 秘密のエントリ以外を出力 unless entry =~ /^\=\s*p:.*/ # howm 用の timeline を空行に(はてなダイアリでタイトルを入力しない) entry.gsub!(/^\[\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\].*$/,"") # ファイルへのリンクを削除 entry.gsub!(/(\=\=\>.*?\n)/m,"") # 逆リンクの削除 entry.gsub!(/(\<\=\=.*?\n)/m,"") # 連続した改行を \n\n に置換 entry.gsub!(/\n\n+/m, "\n\n") # プラグイン関係を preformatted に entry.gsub!(/^\>/,"\s\>") entry.gsub!(/^\|/,"\s\|") entry.gsub!(/^\</,"\s\<") entry.gsub!(/^f:id/,"\sf:id") entry.gsub!(/^map:/,"\smap:") entry.gsub!(/^\<iframe:/,"\s\<iframe:") # 格納 if howm_entries.key?(out_fname) # ださい... pre = howm_entries[out_fname].to_s new = entry + pre howm_entries[out_fname] = [new] else howm_entries[out_fname] = [entry] end end end # 出力 howm_entries.sort.each do |out_fname, entries| str = "" diaryfile = out_dir + out_fname if File.exists?(diaryfile) old = open(diaryfile).read end str = entries.to_s.gsub(/^(\=.*\:?)/,'\1'+"\n") rd2 = "rd2 -r rd/rd2hatena-lib" unless str.empty? IO.popen(rd2, 'r+') do |pipe| pipe.write(str) pipe.close_write new = pipe.read unless old == new puts "#{diaryfile} is updated" File.open(diaryfile, "w"){|file| file.puts new } end end end end
...いまいち. 特に以前同様, 配列に一度格納しているのがなんか嫌. ファイル数が多くなると破綻しそうな気がする.
ちなみに整形自体は, 以前いんちき臭く作成したrd2hatena-lib.rb経由で.
...日記自体はちゃんと更新できている様なので, まあいっか.
_ bluetooth 経由で聞くと音が切れる
前回(bluetoothでじたばた)の続き.
rhythumbox で音を鳴らして聞いているのだけれども, 頻繁に音が飛ぶ.
どうも処理が複数走った時に, 割り込みくらって止まっている感じだなぁ.やはり USB の bluetooth スタックだと駄目なのかな? リアルタイムカーネルにすれば良いんだろうか? うーん.
iPod で鳴らしている分には問題無いのに. なんか悔しい.
2008/12/28
_ 帰省しました
実家(青森)へ. 凄い雪です. まるで私を歓迎して下さっている様です(違.
うははははは.
外が白いと嬉しくなってしまう北国人間. やっぱ冬はこうじゃなくちゃ.夜間に除雪のブルドーザーが動いている音がするのが懐しくて良い感じ.
今窓の外を見たら, ブルドーザの積み上げた除雪の雪山が近所の家の 8 割ぐらいの高さになっている.明日の朝, どうやって外に出るんだろう(笑)
- 2008/12/26の 日常. ←コレも良い感じですな.
2008/12/29
_ unison をつかってディレクトリを同期
メールの読み書きを
- laptop が使える時は laptop の mew
- laptop が使えないけれど ssh が使える時には某所サーバで mew
- どっちも駄目な時には gmail
としている. あと imap ではなく pop.
そんな訳で, 某所のサーバと laptop で ~/Mail を同期させる設定をメモしておく.
$cat ~/.unison/mail.prf # include setting include common include ignore # logfile logfile = /dev/null # root # laptop 側 root = /home/アカウント名/Mail # サーバ側 root = ssh://某所サーバ//home/アカウント名/Mail # ignore ignore = Name #pop ignore = Name .mew-passwd* ignore = Name id.db.new*
でもって common.
$ cat ~/.unison/common # not change timestamp times = true # prefer newer prefer = newer # batchmode batch = true # ssh compression rshargs = -C
ignore リスト. 主に編集作業中のバックアップとか.
$ cat ~/.unison/ignore # Unison preferences file ignore = Name #*# ignore = Name *~ ignore = Name .*~ ignore = Name *.tmp ignore = Name *.swp
同期自体は
$ unison mail
で実行できる.
某所サーバに unison を仕込むの(ソースから install) するのがちょっと手間だったけれど, 「どっちが親かを考えなくても良い」ので, rsync に比べてはるかに楽.
そのうちちゃんとまとめておこう
2008/12/30
_ screen の status line が崩れる
偶に崩れるのでそのうち設定調べるためのメモ.
どうも window の最大化<->元のサイズに戻す, をトグルすると発生する模様.
reset しても戻らないのだけれども, 気がついたら正常に表示できるようになったり.
よくわからん. うーん.
2008/12/31
_ Google Desktop その後
前回Google Desktop for linux を install してみたの続き.
- 検索用の index の生成に一晩かかった(gdl_fx_crawler と gdl_indexer が動作)
- 常時 index の生成を行っていると, ディスクへ write する度にオーバーヘッドが結構凄い事になっている. 同じような検索エンジンである beagle に比べても多少モッサリした感じ.
- UI は綺麗. この辺は流石 google
- 検索対象ディレクトリの追加と削除は可能
- けれども, 特定の拡張子のみを登録する(or しない), といった設定ができない
正直, そこまで必要ではないな. ということで, uninstall. ディスク I/O がもう少し速いなら動かしていても良いかもしれないけれど, やっぱ未だ PATA なノートには辛い...