Twitter: @jijixi_org
Xbox Live: jijixi
…を買った。GBA のやつね。懐かしさを噛みしめながらやってます。
原作との違いは、システムが多少便利になってること以外では、各章の幕間におまけマップみたいのが入ること。新キャラを使ったちょっとした外伝のようなものになってますね。ちょっとパズルっぽい要素のあるマップ配置になってるのが、わりとおもしろい。でも、章ごとに一つだけだから、物足りないです。
あ、違いと言えば、主人公にセリフが付いてますな。わりと違和感アリ(苦笑
別に待ちに待ってたわけじゃないんだけど、早く入れようが遅く入れようが、イっちゃうときは同じ…ってことで速攻で入れてみた。セキュリティセンターとか言うのが今回のウリみたいだが、とりあえずわしのマシンには Norton Internet Security が入ってるので、そこら辺はそちらにお任せの状態。どうなるのかと思ったら、そいつらがインストールされてるなら、セキュリティセンターでもちゃんと保護されてると認識してくれるようだね。面倒なことにならなくて良かった。
せっかくだから他に何が変わったのかいろいろ調べてみたが、これと言って見付からず。細かいけど、無線 LAN の場合のタスクトレイアイコンがそれ用に用意されたことくらいか。あ、あと自分じゃ使わないんで関係ないんだが、IE にポップアップブロック機能が付いたようですな。今さら?
tDiary 1.4.x はたしか Ruby 1.8 系では動かないはずなんで、かなりきわどいタイミングだったんですが(汗
って言うか、たまたま tDiary のバージョンアップしてたから良かったものの、そうじゃなかったら痛いでしょうに。告知無しですか?
基本的にここの日記は w3m で更新している。tDiary を 2.0 にアップグレードして更新時のプレビュー機能が付いたのは良いんだが、あてにしすぎると危険だと悟った今日の午後でした。
リンクを含む話を書いてプレビューをしたわけですよ。んで、そこでリンクが間違ってないか実際に飛んでみるテストとして、Ctrl+T で新しいタブにリンク先を表示してみたのです。ここまでは良かったんだが、その後そのタブを閉じようと思って Ctrl+Q を押すつもりで、なぜか間違えて Shift+Q を・・・台無し(泣笑)
一応 w3m を使ってない人のために説明しておくと、Shift+Q は『確認せずに』アプリケーションを終了するコマンドです。要するに、それまで書いたものは闇に葬られたと。それほどの分量を書いたわけじゃなかったから、まあ良いんだけど……でももう同じこと書く気にはならんです。はあ、keymap 変更した方が良いかな(苦笑
車を停めてた場所付近の 15m ほどはある木(もっとかな? 20m くらい?)が風で倒れた。もう少し方向が悪かったら、わしの車が巻き込まれているところ。実際、どっかの誰かさんの車が2台ほど巻き込まれている。御愁傷様。
わしって、幸運には恵まれないんだが、悪運だけはわりと強くて、ひやっとする場面でもギリギリで難を逃れるってことがよくある。悪運じゃなく幸運をくれよ〜とかいつも思ったりするんだが、こういう時だけは悪運の強さに感謝したりするね。まあ、宝くじに当たって、変な事件とかに巻き込まれるよりも、当たらなくても余計なトラブルに見舞われないって方が有意義ではあるのかもしれないが……
我が家 (とその一帯) は昨日の昼ころから今朝方まで思いっきり停電。仕事から帰ったら家の近辺が真っ暗で、サイレントヒル1の裏世界かと思いましたよ(笑
ろうそくの灯りの中で、冷えた飯を食い、ラジオを聞くくらいしかやることない…みたいな状態で、一体今はいつの時代なのかと思ったもんです。一応、いざというときのための大容量バッテリーでノートパソコン使うとか、ゲームボーイアドバンス SP で遊ぶとか携帯電話で遊ぶとかって選択肢はあるにはあったんだけど、真っ暗な中でそんなんすると、目が疲れてかなわんのでやめておきましたよ。ちょろっとパソコンから音楽でも流しつつ、10 時前には就寝いたしましたわ。そしたら 5 時半に目覚めたけど。原始な人みたいな生活だな(苦笑
ともあれ、電気のありがたみを知った一日でした。
あと、オチとしては、今朝電気が復旧してみたら居間のテレビが壊れていて、わしのゲーム用テレビが奪われてしまいましたとさ。居間のテレビが直る (か、新しいの買うかする) まで、わしは何して遊んだら良いんでしょう。……いや、途中で放り出してる作業がたくさんあるんで、それをやってりゃ良いんだけどさ、なんせかんせモチベーションが上がらんもんで。まあねぇ、30 年以上生きてきて、いまだにその辺のスイッチの入れ方って言うか、躁鬱の制御って言うか、そういうのの方法が自分自身でわからん…ってのが問題だったりはするんだが(苦笑
ドリキャスの…って言うか、まあ CRT にテレビ画像を写す機械はあるんだが、今使ってる新しいモニタに、それ噛ませると (と言うより切り替え器を挟むと) ノイズ乗りまくりのゴースト大発生でせっかくの高解像度が台無しちゃんなんで、古い方のモニタをゲーム専用にしてたのよ。
んで、以前書いたように、その古い方のモニタが (ほぼ) 死亡したのに伴って確保したテレビだったのですわい。
まあ、今のままだとせっかくの BS アンテナが持ち腐れになるんで、「このまんまで良いや〜」なんてことにはならないはずだから、いずれは戻ってくると思うんだがね。(わし以外の) うちの家族は朝は 7 時半から NHK の連続テレビ小説見るのが日課になってるし(笑
地味に心をくすぐる存在である OSASK なんだが、以前試したときに VirtualPC でうまく動かせなかったんで、そのまま放置してた。んで、最近某所で久々に名前を目にしたもんで、また気になりだして、ちょろちょろ調べてみてたりして。
表題の『逆転の発想』とは、このページを見てて浮かんだ感想。ここの『メモリレスアーキテクチャ』ってあたりを読んでみてくださいな。まあ、これが本当に有用なのか…ってのは、ここにも書かれているとおり『実際に作って』みないとわからないんだろうけど、ネタ的におもしろいのは確か。まあ、過去のしがらみが無いからこそ思い付くネタなんだろうなあ、とは思うけどね。ハードディスクなんてものが無かった時代から続いてきている OS と、ハードディスクがあって当り前な時代に設計される OS では発想の時点で差が生まれるんでしょう。
メーラを Sylpheed から Mutt に乗り換えてから随分経つが、いざというときに Sylpheed でも読み書きできるようにと、ず〜っと使い続けてきた MH 形式のメールボックスを Maildir 形式に切り替えた。
乗り換えの決め手になったのはこのメールから始まる一連のスレッド。これを有効にすると、フォルダの切り替えが段違いです。それと、MH だと削除したメールもファイル名が変わるだけで、(シェルとかから消さないかぎり) 長々と居座り続けるのも、MH をやめたかった理由の一つ。まあ、いざってときには助かるのかも知れないが、わしの場合ディスク容量がきわどかったりするもんで。
ほんとは MH から Maildir への一発変換ツールでも探せば良かったんだが、(当初は) 大した量のメールがあるわけでもないから、ちまちま手でやれば良かろう、なんて思ってて、んで実際やってみたら・・・ものすごく手間でした(苦笑)。見通し甘すぎ。しかもわりと単純作業なんで不毛だし。おかげで無駄に時間食って寝不足です(笑
いったい何を調べたかったのか気になります(笑)。しかも、わしのページが検索結果のトップだってが微妙に謎。ちなみにわしんとこでヒットしてたのは、OCaml の GC をネタにした日だろう。同じ日に OCaml@Cygwin の愚痴でコマンドプロンプトに言及してる。まあ、ともかくわしのページはまったく役に立たなかったと思いますが(苦笑
ささだ
じゃあ、印象に残るソースコードっていうのは?
まつもと
Perl のソースコードは印象的だよね。すごい。読めない。マクロの嵐で、よくわからない識別子が山のように出てきて、いったい何? みたいな、すごい略語でさぁ。ほんとに、名前重要。この識別子は、何を表しているのか、何をしようとしているのか、わかんないんだよ。
[Rubyist Magazine 0001より引用]
超漢字が入ったマシンと、その他のマシンでデータのやり取りするときに、MacOSX に付属の ftpd を使っているのである。なぜかって、以前使ってた家庭内ファイルサーバマシンが死亡してからこっち、iMac 様が一番暇そうで、かつ ftp の設定が楽 (環境設定でクリック一発だもんな) だってのが理由。
…なんだけど、いつの間にかその ftpd に login できなくなってる。なぜだ〜!? 特に設定とかいじった覚えは無いんだけどなあ。そもそもログインに失敗するときのエラーが『530 Login incorrect』だってのが謎すぎる。ユーザ名とパスワードは間違いないのを何度も確かめた。念のため (前はそんなことしてなくても繋がってたから関係無いとは思うが) nidump passwd . > /etc/passwd してパスワードの同期もさせてみたけど、やっぱりダメ。
/var/log/ftp.log を見てみると、最後にうまく繋がったのが 8 月 28 日。どうも、この前のセキュリティアップデートが怪しいなあ。ここを見ると、ftpd が lukemftpd から tnftpd (初めて見る名前だが) に変更されてるらしい。
やれやれ、どうしたものやら……
…と言っても、今のところ 160 行程度だけど。それにわしってわりと空行多い人だから、びっしり詰めて書く人に比べれば中身は少ないかと。相変わらず、きちんと仕様を固めずにだいたいのところで始めて、臨機応変に仕様変更しながら書いてたりする泥縄っぷりなんで、どうなるかわからんけど、最終的には 500 行くらいになるのかしら。
んで、またもや Proc オブジェクトに悩まされてたりして。irb で遊ぶためのライブラリを書いてるんで、そうするとどうしても、ライブラリを使う側から見て普通のメソッドと同様に使えるものを、自動生成したくなっちゃうんですのよ。でも、わしの知るかぎりそれをやるには Proc オブジェクトを使うしかない。そうすると、使う側ではいちいち obj.call とかやらなきゃならんくてウザい。…というにっちもさっちもいかない状態。だから、その部分の機能はとりあえず諦めた(苦笑
……って言うか、途中で放ってる作業が二つも三つもあるのに、なんで新しいこと始めてんの?(爆
なんともタイムリーなことに、Matzにっきでこんなネタが。そうそう、それなんだよね。Proc クラスに () メソッドを導入すれば…ってのは実はわしも考えてたんだが、今の Ruby では () なんてメソッドは定義できない (よね?) ので、Ruby 本体をいじる必要があるってことで諦めてたのでした。
ただ、定数に関する対応で三番目が採用されると、WideStudio の mpfc モジュールはわりとピンチかも。頭が大文字のメソッドが大量にあるんでね。まあ、Mpfc.WSGIappMessageDialog() のように呼べば大丈夫なのかも知れないが、include Mpfc してモジュール名無しで呼び出したいときハマるよなあ。
とは言え、call を省略できるようになるのはありがたいし、すぐさまこの変更がなされるってことでもないだろうから、なるようになるでしょう。
そもそもわしの頭があまりオブジェクト思考 (わざと誤植) じゃないからってのもあるのかもしれないが、多態性のオブジェクトより多態性の関数ってのの方が頭に浮かびやすい傾向があるようで。
で、その多態の部分を全て一から作るって場合には、それぞれの関数を全部 Proc オブジェクトにしてしまえば良いんだろうけど、既存の関数をそのままの形で多態性の中に含めようとすると、いろいろ泥くささが出てくる。例えば以前書いたような話。
() メソッドが採用されれば、呼び出し側はきれいに書けるようになるだろうけど、多態性を実装する側からすると特に恩恵は無いよね。既存の関数 (メソッド) を Proc オブジェクトとして取り出すメソッドとか、作ってもらえないものかと思ったりするが……
そういや、() メソッドが採用されると、(定義時の泥くささは置いとくとして) カリー化もどきが使いやすくなって楽しげかもね。
def func(x, y)
x + y
end
curry = Proc.new { |y| func(1, y) }
curry(2) #=> 3
% こんな感じで。() メソッドが無い場合は、同じようなことやったとしても御世辞にもカリー化してるとは言い難いけど (呼び出し方法が違うんじゃ萎えるよな) これならわりと使えるかも。
……関係ない話だけど、OCaml で日本語がすんなり使えて、正規表現がもっと素直に使えるなら乗り換えても良いのになあ。Ruby で気に入ってるところって、結局そこら辺じゃないかと思うんだよね。ちょこちょこっと、その場しのぎのツールとかフィルタを書く時に便利だ…ってのが Ruby の強みなんじゃないかと。
mlterm を TERM=xterm で使っていると、どうしても mutt や slrn で背景の色がきれいに書き変わらないで汚いゴミになるのが我慢ならんので、どうにかしようと思い立つ。
んで、Debian で mlterm を使ってみると、TERM=mlterm でもちゃんと使えるので、terminfo のエントリを探すと /usr/share/terminfo/m/mlterm を発見。これをどうにかして termcap 形式に変換しようと調べると、imfocmp -C コマンドでできると判明。
さっそくそれで作ったエントリを ~/.termcap に追加したが、vim がカラー表示されない。Debian の方では表示できてるのでハテナと思いつつ、両者の vim で :set termcap を表示してみると、どうも terminfo の全ての要素が変換されているわけではないらしく、いくつか足りないものがある。ただ、よく見ると足りてないのは、
kterm-color|kterm-co|kterm + ANSI colors:\
:pa#64:Co#8:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:tc=kterm:
% …の内容とそっくり同じようだ。と言うわけで、これらをまんま追加して (ただし tc=kterm は除く) めでたく完成。mutt の表示も乱れなくなって快適じゃ。
記念に…と言うか、いざというときのバックアップとして、できあがったエントリをここに書いときましょ。
mlterm|multi lingual terminal emulator:\
:am:es:km:mi:ms:xn:\
:co#80:it#8:li#24:\
:pa#64:Co#8:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:\
:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=\E(B:al=\E[L:as=\E(0:\
:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
:ei=\E[4l:ho=\E[H:im=\E[4h:\
:is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\
:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:\
:kh=\EOH:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:\
:rs=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>:sc=\E7:\
:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:up=\E[A:\
:us=\E[4m:ve=\E[?25h:vi=\E[?25l:
ふむ、method("method_name").to_proc だね。よく考えたら、Object#method は以前調べたんだった。でも結局 Method オブジェクトも call を使わなきゃならないってことで捨ててたんだ、たしか。() メソッドが採用されれば、これも使いやすくなるかな。
Proc クラスに () メソッドが追加されるなら、当然 Method クラスにも追加されて然るべき。とすれば、こんなシンタックスシュガーは導入できないだろうか?(実装とかパーサの問題はわからんので、無責任に言ってます)
def func(x) ... end m = func m.class #=> Method
% 要するに、m = func を m = method(:func) と見做すってこと。でも、通常の代入とどうやって区別すりゃ良いのかが面倒かね。もちろん、メソッドは全て Method オブジェクトだってことにしてしまう…っていうやり方もありだろうけど、それはそれでパフォーマンスに問題があるかも知れんなあ。個人的には、そうなってるのが良いような気はするけど。以前は Python では関数もオブジェクトだって聞いてありえねえとか思ってたんだけど、最近ではその方がありがたいと思うようになってきてるのよね。
どっちにしろ、こういう書き方ができるようになると、個人的にはかなり嬉しいなあ。なんせ、Proc を使えば…と思うたびに call で呼ばなきゃならないことでぐったりして諦める、っていうことを繰り返してきたんで(苦笑
Ruby に対する数少ない不満点である、この件がクリアされると、ずいぶん精神的にすっきりすると思う。とにかく call が嫌で、それ使うくらいなら他の方法でやるよ、っつって方針変更したことが何度あったことやら(笑
ちなみに、Ruby に対する不満と言えば、一番大きなものでは『動的型付け』ってのがある(爆)。まあ、これを言いだすと根本的に Ruby を諦めなきゃならなくなるんで言わないんだけどね。基本は動的でも良いから、指定したいときは静的に指定できるようにはならないもんかと考えてみたこともあるが、例え変数に型を指定したとしても、コンパイル時 (つまり実行前) に型チェックをするためには、関数の返り値の型が指定されてないとダメだと気付いて無理だと悟った。やっぱ、動的型付けと静的型付けの良いとこ取りなんて、そう簡単にできるもんじゃないな。一応、OCaml なんかの型推論がそれに近いんだろうけど、やっぱりお手軽度では動的型付けにはかなわない。
最近、次のメインパソコンをどうしようか考えてる。とは言え、実際にそれに向けて動くのはまだ先だろうけど。んで、基本的には今のメインである LOOX T7/63W は、かなり気に入っていて (もちろん不満もあるけどね)、どんなところが良いかと言うと、
・キーボードの底板(?)ががっしりしている。 ・モニタ部とヒンジががっしりしていて、片手で開け閉めしてもたわまない。 ・ポインティングデバイスがトラックポイントである。
% とにかく全体的にがっしりしていて、触っていて不安感が無いのが良いのだ。で、LOOX の最近のモデルもわりとその特徴を受け継いではいるんだが、困ったことに三つ目のポインティングデバイスが良くないんだな、これが。と言うか、今売ってるノートパソコンでトラックポイントなのは、おそらく IBM のものだけだと思われる。
個人的に、ノートパソコンを買うにあたっては一番目と三番目の項目はちょっと妥協できないのだ。何せ、そう簡単に替えがきかない部分だからね。
大きさはある程度我慢するけど、最近の傾向ではモニタは XGA(1,024x768) では足りないので、せめて横方向だけでも SXGA クラス(1,280) が欲しい。そういう観点で見ていくと、ThinkPad の 15inch モデルくらいしか無いっぽいんだが、こいつは高い。って言うか IBM はモニタのバリエーションがおかしいぞ(苦笑
・・・とまあ、そんなわけで、手頃なノートパソコンが見付からないのである。で、この際割り切って液晶モニタ + 省スペースデスクトップ + ぷらっとホームのキーボードってのもアリかなあ…と。
ただ、いざってときにデータの持ち歩きなんかができて、ssh とかでごにょごにょやれるものは、やっぱり無いとアレだよなあ……などと思ってしまうので、そこんところでリナザウでもどうよ、とね。それに、ふと思い付いたときにちょろちょろっとコード書いて、ついでに動作確認もできちゃうような環境って結構需要あったりするのよね。Ruby 動くよね?リナザウって。
まあ、デスクトップ一式揃えて、リナザウまで買うなら、ThinkPad 買えちゃう金額になるっぽいんだけどね(苦笑)。でもデスクトップなら、一気に揃えなくてもバラバラに買っていけるし。
トラックポイントにこだわらなければ、20 万くらいで良さそうなのあるんだけどなあ・・・
最近 (と言っても数ヶ月前だと思うが) method_missing メソッドというものを知って、このところそれを使ったお遊びものを、ちまちま書いている。同様の機能は Perl にもあるようだが、それにしてもなんつー泥縄っぽい機能だろう(苦笑
Ruby には他にも泥縄を助長しかねない機能として、singleton method なんてものもあるが、これも負けず劣らず、使い方を誤るとぐだぐだになりそうな機能だと思うね。まあドロナーワなわしは、気にせず使うわけだけど(笑
んで、今は Emacs に馴染めないせいで irbsh とかの恩恵を受けられないわしのために、素の irb からシェルコマンドを簡単に実行できるようなラッパーというかコンテナというか…そういうものを作ってる。頭の中では、わりとそれなりのものになりそうな気配がしてるんで、もし使えるものができたら公開しましょう。
長らく死んだままの家庭内ファイルサーバの後継として…のつもりだったんだけど、CD-RW ドライブが付いてるんでどうしようか迷い中。今って CD 焼くとき、いちいち PC Card 差し替えてあーだこーだやってるんで、楽に焼き焼きできる環境が欲しかったんだよね。内蔵用の CDR ドライブなんて安いから、それはそれで買えば良いじゃんと思うかもしれないが、付けるマシンが無くてさ(苦笑
ま、このスペック (P3/550MHz, 128MB RAM, HDD20MB) で、ついでに欲しかった CD-RW ドライブも手に入るってことで、これで 8,400 円なら十分元取れてると思います。ちなみにメモリは死亡中のマシンから 128MB のモジュールを移植して計 256MB に。
最終的に OS は FreeBSD か OpenBSD になると思うが、きちんと環境整える前にいろいろ入れて遊んでみる予定。とりあえず今は、せっかくダウンロードしたけど VirtualPC で動かなくて一度も試せてない FedoraCore2 をインストール中。・・・しかし、このインストーラって無茶苦茶重いな(苦笑
ところで、付属してきたキーボードには、でっかく『HITACHI』の文字が。マウスに至っては『DELL by Microsoft』というわけの分からんロゴ。そこら辺からかき集めて詰め込んだのが見え見えです(笑)。まあ、どっちにしろ使わないんだけどさ。
と言うわけなんだが、テレビを奪われる前にどのゲームをやってたのか忘れている(爆)。まあ、良いか。
昨日買ってきた省スペースパソコンは実は縦置きができることが判明したので、戻ってきたテレビの横に立てることに。とりあえずしばらく遊ぶ間はキーボードが無いと不便なので、しばらくぶりに iMac の純正キーボードとか引っ張り出してみたり。これはこれでキータッチ好きなのよね。MacOSX はキー配列を容易に変更できないんで、日本語配列は却下だぁつってお蔵入りになってたんだけど、PC UN*X ならへっちゃらでしょ。欠点は Ctrl+Alt+Delete が効かないことだが、滅多に使うもんじゃないしな。
そういや、何か変な勢いがついて、この前書いたぷらっとホームのキーボード買っちゃった。週末には届くでしょう。キータッチがどんなもんかチャレンジだったりするんだが、まあ、トラックポイントが付いてるだけでも十分つぶしがきくってもんでしょ。で、これが届いたら、今デスクトップ (ながぞう君) で使ってる HHK2Lite を省スペース君 (通称 "省ちゃん" …今命名) にくれてやりましょう。と言っても、最終的にセットアップが済んだら外しておく予定なんだけどさ(苦笑
昨日はインストールだけで力尽きたので、今日になってようやくちまちまいじってるところの FedoraCore2 だが……なんだかよくわからんな、IIIMF ってやつは。って言うかそもそも構成がわからんから、どれが関係するプロセスなのか、どれが関係するファイルなのか、ちっともわからん。ちなみに、聞くところによると、IIIMF も XIM と同じように Client/Server 方式らしいので、まずはサービスの設定を見てみると、どうも htt とかいうのが IIIMF に関するサービスらしい。では…と man htt と叩いてみるがマニュアルは無し。なんでやねん。
ちなみに実際の感触はとても普通です。kinput2 だと Shift+Space で日本語モードだけど、IIIMF (…のクライアント…どれなのかわからんが) では Ctrl+Space ですな。なんか変換のバカっぽさを見る感じ、変換は canna か FreeWnn がやってるっぽいが。
……まあ、なんつーか、もう飽きました(笑)。あ、そうそう、WideStudio は大丈夫かな〜ってことで試してみたけど、普通に入力できてましたな。uim-xim なんかはドエライことになるんだが(苦笑
キータッチは、まんまそこら辺の A4 型ノートパソコンのそれって感じ。でもまあ、ノートパソコンと違って底板がしっかりしてるので、悪くはない。ストロークが中途半端な深さなのが、ちと気にくわないかも。もっと深いかもっと浅いか、はっきりしてくれって感じ。最近の好みで言えば、もっと浅い方が好きです。と言うか、深くても軽く打てるようになってるなら、それで良いんだけど。まあ、ここら辺はしばらく使ってあたりがつけば、幾分こなれてはくるでしょう。
トラックポイントは…まあ普通。ゴムキャップがツルツルのが付いててちょっと嫌。ザラザラな方が好きです。しかたないから手持ちのやつに取り換えようと思ったら、穴の形が違ってて流用が効かなかった。うーん、どっかで探してこないと。
なんつーか、値段のわりには全体的に安っちい感じは否めないんだが、他に選択肢があまり無い状況を考えれば、こんなもんかなあ…と。まあ こっちを狙うって手もあったんだが、余計なもの付きすぎてて邪魔だしなあ。
ぐはっ!! マジですか・・・FreeBSD の ports はこのファイルをインストールしない罠。自分で tar 玉ほどいて確認しました。ご指摘感謝。
しかし、楽するためのツールであるはずの ports がかえって混乱を助長してるってのはいかがなものか(苦笑)。今度から何か足らんときは、まず distfile を見よう。
と言うか入れた。FedoraCore2 は速攻で消し(苦笑)。なんか OpenBSD を触るのもひさしぶりなんで、いろいろと苦労しましたよ。disklabel の設定でものすごく悩んだりとか。
softupdate が有効になってなくてディスクアクセスが死ぬほど遅かったんで、うひぃとか思いながら man tunefs するも、softupdate のことが書いてなくてアレ?じゃあどうやって有効にするんだっけ……としばらく悩み、やっとのことでマウントオプションにあることを思い出す。そうだそうだ、FreeBSD は tunefs でいじらなきゃならんから面倒だなあ、と思ってたことがあったっけ。まあ、今は newfs のときに設定できるから、わざわざ tunefs でいじることもあんまり無いんだろうけど。
しかし、softupdate なんてもう当り前になってるせいか、これが off なディスクの死にそうな遅さなんて忘れてたよ。たぶん最後にそれを味わったのは、MacOSX の中途半端なサポートのせいで softupdate が無い UFS パーテーションですな。
OpenBSD でも ports current を追っかけようかと思ったんだが、portupgrade が無いからあきらめた。これが無いとやってられん。セキュリティホールが見付かったときとかが心配だが、OpenBSD では ports tree にもセキュリティフィックスブランチみたいなのがあるようなので、それでなんとかしよう。
他の言語 (C とか OCaml とか) との絡みもあって、Ruby 使ってるときも大抵無意識のうちに文字列はダブルクウォートで囲んでしまうんだが、やっぱりシングルクウォートを使った方が良いよなあ・・・と思い知るできごとがあった。
あるディレクトリ内のファイル名を一括で変換しようと思って、irb を使っていて…
d = Dir.glob("*")
d.each { |f|
n = f.sub(/.*?(\d\d).*/, "hoge\1.txt")
File.rename(f, n)
}
% こんな風にバックリファレンスを使った置換をしたんだが……これ、えらい事になります(苦笑)。とんでもない結果になってて、『Why!?』と叫びながら、打ち込んだソースをよ〜く見ると…
n = f.sub(/.*?(\d\d).*/, "hoge\1.txt")
^^ → \\1 が正解
% バックスラッシュが一個足んねえ...orz
要するにこれ、何やってるかと言うと、真ん中に二桁の数字が入ったファイル名を、その数字を使った別の名前に変えようとしてるわけだけど、/.*?(\d\d).*/ って正規表現で抜き出した数字の部分 (\d\d) を表すのが \1 なわけ。
ところが、ダブルクウォートの文字列は、バックスラッシュ記法を展開するので、\1 が (\d\d) として展開される前に \001 (数値としての 1 ) に展開されてしまったのですな。と言うことは、全てのファイルが hoge?.txt (\001 は文字じゃないので、端末では ? に見える) という名前のファイルに変更されるということで、結果たくさんあった元のファイルが hoge?.txt というファイル一つだけしか残らないことに……(死
シングルクウォートな文字列だと、バックスラッシュ記法は展開しないので、今回もシングルクウォートを使っていれば失敗しなかったんだけどねえ。まあ、大した重要なファイルじゃなかったから良いんだが、大事なファイルでこれやっちゃったら死ねるから、気をつけなくちゃなあ…
何とは無しに、この前 mlterm の termcap についてツッコミを入れてくれた、佐藤精一さんって何やってる人なのか調べてみると (本名出してるあたり、どこかで活躍してる人かと思って) どうやら mlterm の開発者さんのようで。こんな場末のページにまで顔出していただいてどうも。
…ってそんなことよりも、実はもっとわしの環境に関係が深くて、WindowMaker を使うときに常用してる wmcpuload と wmlongrun っていう DockApp が、佐藤さんが作ったものだと判明。
いつもありがたく使わせていただいております。…って、見てないかも知れないけど、一応(苦笑
朝、現在の職場のマシンに電源を入れると怪しげな音がキーンと。あ、これは前に電源のコンデンサが爆発したときの音に似ている!!と思って、急いで電源を切ったが間に合わず白煙が。・・・しかも、電源が死んだんならまだしも、マザーボードでした。Pentium4 の周りにアホほど群がってるコンデンサが二本ほど死んでましたよ。
しかし、どうして電源じゃなくマザーボードが先に死ぬかなあ。って言うか、P4 マザーのあのコンデンサの群れは無茶だよなあ。結局、余ってるパソコンをサルベージしてきて使うことに。P4/1.5GHz だったのが、一気に P2/400MHz に格下げですよ(苦笑)。メモリが流用できたんで、その分足し増しできたから幾分マシではあるけど、さみしいよなあ・・・
ハードディスクはそのまま移植したんだが、Debian はそのまま使えたものの、Windows2000 は元のマシンが ACPI で、今度のが APM なんで、起動できない罠。インストールディスクを使った復旧とかでもダメなんで、インストールしなおすしかない模様。ほんと腐ってんな、おい。そんなこんなで、超ぐったりして帰ってきた、今日でした。明日は Windows の復旧に追われる予定(欝
そういや、わし P4 なマシンをばらしたのって初めてなんだけど (家にも P4 マシンはあるけど、組み立て済みのやつなんで、自分ではいじったことがないのよ)、CPU のところのどでかいヒートシンクを取ろうと思ってちょっと力入れたらチップごと取れてきたんですが、そういうもんですか?なんかアルミシートみたいなのを挟んで、ヒートシンクとチップががっちりくっついてるんですが。これ、剥がさないと他のマザーボードに付けれないよなあ。まさかあのヒートシンクははなっからくっついてるもんだってんでもない・・・よね?あのままソケットに差し込むなんて、ピン曲げまくりそうで怖すぎるんですが。
OpenBSD での話。portupgrade に相当するものが無いのは、まあ良いんだ。でもさ、依存関係を無視してパッケージを削除したり登録したりってのができないのが困る。pkg_add や pkg_delete に -f オプションを付けても FreeBSD のようには動いてくれない。結果的に、インストール済みのパッケージを新しいバージョンにアップグレードするには、依存しているものも道連れに消して、新しいものをインストールし、道連れで消したものを再度インストールする、って方法しか無いようなんだよな。
うーん、以前はどうしてたんだっけなあ…そもそもあの頃は ports のアップグレードなんてしてなかったけか?
まあ、FreeBSD とは違って make install するだけで自動的に package も作成されるので、それを消さないようにしておけば、上記のような運用でもそれほど手間じゃないんだけど、どうもクールじゃないよなあ。だからって、pkgsrc を使ったからってクールな解決法があるのかは知らんのだが (NetBSD はまともに使った事無いし) 、少なくともインストール可能なもののバリエーションは、pkgsrc の方が多そうだし。それでも FreeBSD の充実具合に比べれば段違いだろうけどね。まあ、FreeBSD の場合は、かなり適当な作りのものでもガンガン tree に取り込まれてるんで、わりと不具合も多いんだが(苦笑
入力に PRIME を使っていると、予測入力のせいで知らないうちに意味不明の文章になっていることがある。上のセクションで『依存関係を無視して』と書いているところなんか、なぜか『依存関係を無性して』となっていた。わしが『無性』という言葉をわりとよく使うので、『mus』まで入力した時点で、『無性』が第一候補に挙がるのだ。んで、『musi』まで入力してもそれが変わらず、でもわし自身は『無視』と入力されているつもりになって確定してしまっているのだと思う。
PRIME で書いた文章は、ちゃんと読み返さないと恥ずかしいことになりかねないんで気をつけましょうっていうお話でした。
いや、捻ろうが何しようがビクともしないんですが(汗
ともあれ、ビクともしないながらも何度か捻り方向に力を入れてやって、最後にドライバーで軽くこじってやったら何とか取れましたよ。ドキドキもんだったさ(苦笑
しかし、このアルミシートみたいなのって、再利用効くもんなのかな。おとなしく剥がしてしまって、シリコングリスで埋めた方が吉か?
ふむ、まあ基本的には諦めムードなんだけど、何もしないで諦めちゃうのももったいないか…と思って、とりあえず件のコンデンサの規格を確認……って、こんなんそこら辺に売ってるわけ無いじゃん!!
なんすか、3,300μF の 6.3V って。どっちか桁間違ってるんじゃないかと思って何度も見直したじゃないか。一応念のためパーツ屋も覗いてみたが、やっぱり桁の違うのしか無いです。3,300μF の 25V (デカイ) とか 330μF の 6.3V とか。駄目元で店員さんに聞いてみたけど、「いや〜これはちょっと…」って苦笑いされましたよ(苦笑
そもそも、あんな見るからに多層基板なのに、単純に取って新しいの付けるだけでちゃんと動くもんなんだろうか。実際そゆことやってる人っているの?
この前、ちょろっと vim の本 (vi と込みじゃなくて、はっきりと vim と謳っている) を立ち読みしたんだが、知らない機能がアホほど存在して、立ちくらみしましたよ。
そんな中でも一番びっくりしたのが keyword completion 機能。読んで字のごとくキーワード補完してくれます。デフォルトでは編集中のファイルや読み込み済みのタグファイルなんかから、該当する単語を見付けて補完してくれる。使い方は単語入力の途中 (要は insert モード中) で Ctrl+N か Ctrl+P を押します。詳細は :help complete しましょう。
VisualStudio.NET とか Eclipse とかって便利は便利なんだろうけど、外部エディタが使えないから vi 系エディタじゃないとまともにコードが書けないわしとしては、辛いわけよね。んで、結局 vim を使ってるわけだけど、統合機能はともかく、エディタの機能として IDE に負けてるのってキーワード補完ができないことくらいだったわけ。でも、これからは、適当に ctags(exctags) でタグファイル作っておけば、もう負けてること無いじゃないですか。シンタックスハイライティングやオートインデント、整形支援なんかは、はっきり言ってそこらの IDE なんかより強力だし。
だいたいねえ、任意の位置から行末までをコピーとかってときに、いちいちマウスでピロピロ〜って選択して Ctrl+C でコピーして…とかやってらんねえっしょ。D で良いんだ D で ← 嘘だ。y$ にしましょう。行を追加したいときも、いちいちマウスで行末を指定してリターン…ってやってられん。o で良いだろ o で。とまあ、vi 系じゃないエディタを使うと、すごくストレス溜るんですの。ちょっとキー押しただけでどんどんゴミが入力されてくしな。入力したいときはそう言うんだから、それまで何も書くなよ。
なんか、もしかすると Java でコードを書かなきゃならなくなるような気配がしたりして、ちょっと久しぶりに本とか読んでみたりなんか。別に JAVA は嫌いってわけじゃないけど、特に好きでもないんだよな。なんであんな風に中途半端に C に似てるんだろ…とは思う。この本を読んだせいってんでもないだろうけど、あんまり良い印象が無い。
まあ、わりと語り尽くされてはいるんだが、リファレンス本 (なぜか持ってる。今となってはちょっと古いが) 読んでて、「あー、こんなこともあったっけ」ってのがあって…
... byte a, b, c; a = 1; b = 2; c = a + b; ...
% これってコンパイルエラーになりますね。やってみればわかると思うけど、以下のようなエラーが出ます。
OperatorTest.java:10: 精度が落ちている可能性
検出値 : int
期待値 : byte
c = a + b;
^
エラー 1 個
% C しか知らない人がこのエラー見たら、途方に暮れるんじゃなかろうか。なんで byte 型同士を足して byte 型に入れてるのに精度がどうのって話になるんだ?って。どういうわけか Java では int より小さい型の整数は、何か計算した時点で問答無用で int に格上げされてしまうんだね。だから a も b も byte 型だけど、a + b は int 型なんだよね。んで、それを byte 型の c に入れようとしてるから桁落ちするかもしれないよってことでエラーになる。(桁落ちするかも…でエラーになるのは、まあわりと良い仕様かも知れないが)
基本的には Java では通常、整数が必要なら int を使っとけってことになるんでしょうよ。じゃあ byte とか short って何のためにあるんだ?ってぇと……何のため?
byte は何かバイトストリームみたいな構造を作りたいときに使えるかもね。short は…16bit ストリーム?なんだそりゃ、Unicode 文字列とかか?でもそれなら char があるしなあ……
そうそう、わしのメインマシンである LOOX は、実メモリが 112MB しか無いので、起動するだけで 20MB 近くメモリを持ってく JavaVM が死ぬほど嫌いだっていうせいもあったりするなあ。Java という言語よりも、プラットフォームに問題がある。Hello, World!! って表示させるだけで一苦労さ(苦笑
Eclipse なんてとてもじゃないが使ってられん。ま、Eclipse を使わなきゃならないなら、元気な P4/1.8GHz マシンの Windows でやりますが。そっちはメモリも 512MB あるし、それなりに大丈夫。でもそれでももっさり感はあるけどね。
存在自体が誤りではないのか、と思ったりもしてるが、まあ自分ではそれなりに使ってるし、ちょうど良い代替も知らないので必要無いわけでもない。
なんか以前、泥くさいコードを直したつもりでいた行頭バイト欠け問題への対処の辺りが、よく見たらそもそもロジック的に間違ってることに気付いた。って言うか、ほんともっとちゃんとテストしろよ、わし(苦笑
と言うわけで、おそらくバイト欠け問題には全然効力を発揮していなかったんじゃないかと思われる。いや、実際には全然対処してないよりはマシだったとは思うんだが、ともかく正しくはなかった。ってことで、家の cvs では直したんだが、公開してるものを直すのはめんどいんでまた今度。どうせ誰も使っとらんだろ。万が一、使ってるって人がいればツッコミ入れてください。考え直します。
javac が無駄に遅いので (って言うか、こいつも JavaVM で動いてるのか?) ちょっとしたコード片を動かしてみるのにもストレス溜まりまくりってことで、jikes をインストールしてみた。こりゃ良いわ、快適だ。まあ、結局実行するときは JavaVM のお世話にならなきゃいけないわけだけど、それはしゃーないな。うーんってうなって (ガーっとスワップして) やっと動き出したあげく、単純なミスでコンパイルエラーが出るとやる気無くすもんな。それを防げるだけでも随分違うよ(笑
VM の方も、もっと軽いのがあれば良いんだが。Kaffe とかってのはどうなのかな〜と思ったが、FreeBSD5 系では ports が BROKEN だったんで試せなんだ。linux-ibm-jdk14 とか linux-blackdown-jdk14 とか試してみるかなあ。ちなみに今使ってるのは FreeBSD native な jdk14 (他の元気なマシンで作った package でインストールした)。blackdown ってたしか sun のものがベースなんだっけ?とすれば、大きな違いがありそうなのは IBM 版かなあ。うーん。
この前、BROKEN だと書いた Kaffe だが、java/kaffe ではなく java/kaffe-devel なら行けるようだったんでインストール。
軽いです。少なくとも起動時間は通常の java より格段に速い。メモリの初期消費量が全然少ないんだもの。いったいぜんたい Sun の VM は何をあんなにメモリ持ってくもんなのやら。kaffe には swing のライブラリが含まれてないとか、機能縮小版的側面があるけど、とりあえずちょっとしたテストに使うなら問題無いでしょう。今のところ swing に用は無いし。
と言うことで、メインマシンの FreeBSD では当面 jikes & kaffe の組み合わせで行くことに決定。ちなみに linux-ibm-jdk14 はカーネルオプションに USER_LDT が必要だとか言われたんだが、 5.2.1 にはそんなオプションは無かった(苦笑)。そのせいなのかは知らんが、全然動きません。5.3R には USER_LDT がありそうなんで、その頃にまた試してみよう。
ふーん、そんなもんかね。ともかく、部品が簡単に手に入らんようじゃイマイチ試す気にもなれんわさ。処分の許可が出たらジャンクとして回そうか?(苦笑)。P4 出たてのころのらしくて、メモリが PC133 とかなんだけど。
1. まず Java がインストールされてるディレクトリにある src.zip をどっかにほぐす。( ~/java_src/ としよう) (例) % cd ~/java_src; unzip /usr/local/jdk1.4.2/src.zip (注意) 50MB 近くありましたよ。
2. 次に exctags (Exuberant Ctags) で tag ファイルを作る。 どっか適当に置場作っとこう。( ~/tags/ としておく) (例) % exctags -R -f ~/tags/java.tag ~/java_src (注意) Linux な人はコマンド名が ctags かも知れない。 逆に *BSD な人は素の ctags は C 専用なんで注意。 バージョンによっては java が扱えないかも知れないので、 --list-languages オプションで確かめる。 コマンドの最後のソースコードの場所指定は絶対パスで。じゃないと、 補完の役には立つかもしれんが、tag ファイルとしては意味無しになるので。
3. ~/.vimrc に tag ファイルを使うように設定。
ただ単に set tags=~/tags/java.tag でも良いけど、他の言語で書くときとか
わりとウザいので、ちょっと色気出して autocmd 使いましょう。
(例: .vimrc の中身)
au BufNewFile,BufRead *.java setlocal tags=~/tags/java.tag
(説明)
au は autocmd の略。setlocal は他の編集中ファイルに影響しない set。
拡張子が java なファイルを作成・編集するときだけ自動的に tag を設定します。
同様に拡張子ごとにそれぞれの言語用の tag ファイルを用意しておけば、
自動的に使い分けが可能。問答無用で全部読み込ませるよりはクールでしょ。
拡張子の指定や tag ファイルの指定は複数の場合はカンマで区切る。
(追記)
常にカレントディレクトリの tags ファイル (ctags がデフォで吐くファイル名)
を読む設定もしたいってニーズがある場合には…
set tags=./tags
au BufNewFile,BufRead *.java setlocal tags+=~/tags/java.tag
^ ← ここが違う
とかにしておくと吉。
4. 使う。 適当に書き出して Ctrl+N でバシバシ補完。キモチイイ。 ちなみに、タグジャンプは見付けたい単語にカーソル合わせて Crtl+] で、 戻ってくるのは Ctrl+T。いずれもコマンドモードで。 古式往かしく ex コマンドで :tag hoge でも良いけど。 さらに古式往かしく戻ってくるなら :e# とか。
Windows を再インストールしたおかげで、レジストリはまっさらになったんで、インストールしてあったアプリ達は軒並み死亡。んなわけでちまちまインストールしなおしてるわけだが、何故か Mozilla が動かない。アイコンをダブルクリックしても云とも寸とも言わない。なんでじゃぁ!!
仕方ないので、原因究明までの間は FireFox & ThunderBird のコンビにがむばってもらうことに……したんだが、以前苦労して設定方法を覚えた mozex が FireFox で使えない。いや、厳密には使えるんだが、オプション設定の欄がどこにも出てこないので設定ができない。故に実質使えない。
くっそぅ、それじゃあ prefs.js に設定直書きどぅあ!……って、そう言えば前の Mozilla の設定ファイルは Mozilla が腐ってるせいで頭に来て必要なとこだけ移植してゴミ箱に放り込んだんだった。残っててくれぇ〜……消えてました... orz
いっそ殺してくれ・・・
その後、ThunderBird に設定移植するときに、めんどくさくなって元の prefs.js をそのまんま突っ込んだことを思い出して小躍り。
さっそく喜色満面で mozex の設定を FireFox の prefs.js に突っ込んでやっほ〜いてな具合で起動・・・動かん ... orz
って言うか mozex のメニューがそもそも出て来ないんですが、どうなってんですか?設定してないと出てくるくせに、そりゃぁいけずですぜ姐さん。
もう、なんだか色んな意味で疲れてます・・・
カッコイイやつだなあ、田島。普段アホなのもあって、キめたときが際立つ。
それにしても、西広君ってチャレンジャーだよね。野球初心者で硬式やるなんて怖すぎる。わし小学校のときは野球やってたんだが (もちろんリトルなんかじゃなく軟式ね) 外野フライを頭に当てたこととかもあるんで、それがもし硬球だったら…なんて考えると寒気がするよ(苦笑
初めて硬球に触ったときなんて、「こんな石みたいなもんで野球なんてできるのか!?」って思ったもんだ。キャッチボールだって怖くてやる気にならんわ(笑
いや、ほんと硬式野球やってる人って尊敬します。もうなんつーか『やってる』ってだけで。金属バットで硬球を打ったときの音って、『石』を金属バットで打ったときの音にそっくりだよね・・・(怖
Matzにっきで取り上げられたせいで(?)、各所で密かな話題の人狼ですが、わしは Matz 氏が紹介されてるとこじゃなく、タイトルにあるアイス@牛男爵さんとこの過去ログで楽しんでおります。
『村 20 番 戦車村』とか、すさまじいです。下から読んでいかなきゃなんないんで、ちょっと読みづらいけど一見の価値はあります。
ヨドバシのポイントが溜ってたんで、思わず買ってしまったっす。現金で買うなら 3,500 円は微妙かなとも思うが見掛け上タダなら、まあね(苦笑
ともあれ、まだまだ知らないことがたくさんあるなあ…としみじみ思いましたよ。vi 系エディタじゃないとコーディングできない人で、かつ、vim は vi の完全互換じゃないから邪道だぁとかっていうこだわりが無い人はこの本必携じゃないかと。もう、プログラマのためのエディタと言っても過言じゃないと思われ……ステキ。
とりあえず、u を連打すると際限なくアンドゥする問題は :set undolevels=0 で解決だから、あとは大抵細かい違いだと思うけどね。まあ、ほんとの vi じゃないとダメだ (つーか今なら nvi なんだろうけど) っつー人はきっとものすごい複雑怪奇な map を定義してたりするんじゃないかと想像するが。そこまでやってるなら、別に無理して別の環境に乗り換える必要は無いんだろうけど……
% Zapper [ドリキャスのアップスキャンコンバータ持ってなかったっけ?w]