03_09_04

とりあえず、四が全然思い付かないので、「しばらく文章ばっかりでいいか」 とか思ってたら、姉が「つまらん」とか言うし、妹が「文章わからんから読んでない」とか 言ったので、なんかどうでもよくなった。


で、まあ「閉鎖」とか書いといて、適当に休んどいたら「誰か励ましてくれるかもしれない」 と思って、放置してたんだけど、昨日まで応答なかったので結構辛かった。いや、まじで。

誰かが「やめないでくれ」って書いてくれたら続けようと思ったのでまだ続けると思います。
今後どうやって続けていくか全然決めてないけど。

03_09_06

夏休み最後の五日はバイトだったから十日ぶりの休みだ。
とは言っても中学校の部活は休みなんてなかったんだから、それに比べたらはるかに楽なんだよな。

で、久し振りの休みなんだけど、やっぱりゲームばっかりしてて、なんか「Strikers 1945 IIって結構面白いな。」 って思って、PSであったような気がしたので探してみたらSuperLite 1500シリーズに入ってた。
ああいう安いゲームって適当に作ったものを売ってるだけかと思ってたんだけど、 The Bestみたいなこともやってるんだな…
で、中古680円だったんだけど、また今度にしようと思った。


で"J"の今後を色々考え中。
次はレイアウトとか構成とかそういうのが欲しいな…
どういうのかは決めてないんだけど。

Glibc2.3を入れてMozillaFirebirdにした。
以前Glibcをバージョンアップさせた時は失敗したんだけど、 今回は少しのコンパイルエラーがあっただけで、特に問題無く終わった。
WindowsのFirebirdはMozillaと比べて起動速度が大きく違うように感じたけど、 LinuxのFirebirdはそんな感じしないような。気のせいかもしれないけど。

03_09_07

今日も何もしなかった。

どうも全て駄目だ。一番の問題はコード書く気が起こらないことか。
あー、遠く行きたいな。近畿圏内でいいから。来週どこか行こう。
ひとりでふらっと遠く行くっていうのはどうなんだろうか。まあ、気分転換に。


glibc入れ換えた影響が若干。w3m起動しなくなるし。
コンパイルしなおせばいいだけなんだけど。

03_09_10

途中
とりあえず、少しずつ作っていこうかと。
ちょろちょろ更新予定なので、何か見にくいとか環境によって見れないとか そういうのがあったら連絡いただければ幸いです。


久し振りに2-2行った。やっぱむずかしい。
そういえば3.5億越えた。


Word,Excelとかの欠点のひとつとしてあげられるのに機能が多過ぎて なにがなんだかわからないっていうのがあるんだけど、 やっぱり細かい調整とかをしようとするとあらゆる機能を駆使しないといけない。
使い易くするためには機能を削ればいいというのはどうなんだろう。


で、本題。
運動会の告知を作るとしよう。

告知を作るという行為は
  • タイトルを書く
  • 日時を書く
  • ちょっとした説明を書く
  • 書式を整える
に分解でき、また、タイトルを書くという行為は
  • 文字列を書く
  • 目立つようにする
で、目立つようにするという行為が
  • 色を付ける
  • 大きさを変える
といった感じに分解できるだろう。
ここまできて始めてExcelと対話できるレベルまで分解されたことになる。

この行為、トップダウンに分解していく行為というのは プログラミング、すなわちコンピューターさんが理解してくれるように 手続きを分解していくという行為 に通じるものが大いにある。
要するに今のインターフェースというものは プログラミングのセンスを要求するのである。

できることが複雑すぎるのではなく、あまりに単純すぎる。
そして、その単純さは手続きの分解という面倒な処理を 人間様に任せることによって得られているものである。多分。


で、WordはCOMとかを使って機能を提供してくれているんだから、 それを使って、「運動会の告知を作るWordインターフェース」 っていうのがあってもいいんではないかっていう話。

文章作成、整形、に関する機能はWordに十分すぎる程実装されている。
しかし、それはあまりにも人間向けとは程遠い。
そこで、Wordと人間とを繋ぐアプリケーションの出番なのである。
「ポスターを書くアプリ」「告知を書くアプリ」「なんかの掲示物を書くアプリ」 とかみたいな似たようなのがいくつもあるっていうのは無駄な感じがするが、 「ポスターを書く為のインターフェース」「告知を書く為のインターフェース」 みたいな感じなのはいくつあっても無駄ではない。
ていうか、COMが目指したのはそういう状態なはずだし。

とか、偉そうに書いたけど、僕は使い易いインターフェース考えるのとか 苦手だし、好きじゃないし、全然関係無い話だと思った。

あなたはコンピュータを理解していますか(Amazon)
インターフェースに関する話がいい感じ。
パソコン入門書とかって書いてあるけど、 後半部分はなんかプログラマに向けて書かれてるような気がしないでもない。

03_09_12

昨日は早く寝てしまった。

徹夜したのが火曜〜水曜で、水曜〜木曜は普通に寝て 木曜〜金曜は徹夜した分寝るというのがなんかよくわからん。 おとといは眠気に耐えれたけど、昨日は耐えられなかった。

で、久し振りにコード書く気が出てきた。

問題はやる気が続かないのでどのプログラムもまともに動かないままであるということだ。 今回はそんなことないように持続させて何か書き上げたいとか思うけどもうすぐテスト。

(load-library "cl")
(setq a 3)

(funcall (lexical-let ((a 4))
	   (lambda (b) (+ a b))) 4)

emacs-lispといえば、関数がスコープを保持しないっていうのがあるんだけど、 lexical-letっていうのを使えばなんとかなるらしい。

Lispのマクロって何でもできるっていうのは有名な話だけど、 実際こういうことができるって言われたら「なんかすげーなー」って思う。

で、実際このlexical-letマクロはcl-macs.elに実装されてんだけど、 読んでも絶対わからん。


03_09_13

xyzzyは昔Meadowとどっちにしようか迷ったけど、

「xyzzyの編集部分の凹みがWindowsのテキストコントロールっぽい」

とかそんな理由でMeadowにしたような気がする。
ほら、秀丸っぽいあの感じ。


先週、「どっか行く」とか書いたので明日京都行く予定。
京都、神戸、奈良へふらっと出掛けられる大阪の人は幸せかもしれない。



20分くらい考えてこの程度…
駄目だ…

03_09_14

行ってきました。「予備知識無し。計画無し。の京都ひとり旅」
結構楽しかったので適当にメモっときます。写真とか無いので何も伝わらないと思いますが。

8時起きる→二度寝。
10時起きる。出発。

京橋、久し振りに京阪に乗る。
特急停車駅多くなったな…K特急って何?

七条で降りる。新京都駅ビル見てみたかったので、歩いてJR京都駅へ。

京都駅ビル凄い。結構感動。
こうやって考えると大阪駅って地味だな。

駅ビルから京都一望できたので、とりあえず目に入った二条城へ向かうことにする。
「城」って名前の付く建物は他に無かったので、なんとなく。

バス一日乗車券500円。一緒に貰える京都バス案内地図が超便利。京都へ観光へ行った際は是非。
バスに乗る。京都っていうと、なんか歴史的建造物に囲まれてるイメージがあるが、 そういうのは殆ど無くて、ごく普通の街。当然だけど。
もちろん、芸者さんとか芸姑さんとかが街を濶歩してたりとかは全然無い。
ていうか、そういう人は全然見なかったので、京都人=「〜どすえ」っていうのは 間違ったイメージかもしれない。

二条城到着。人多過ぎ。
「なんでこんなに人多いねん」とか思ったけど、連休なんだから当たり前。あとまじで外人多い。

二の丸見学。適当に流す予定だったけど感動できる要素が多かった。
うぐいす張り。ただ単に軋んでるだけなんだけど、命名センスがすごい。
ふすまの絵は狩野なんとかっていう人が20才の時に描いたとか何とか。
「20才って言ったら僕の一つ上か」とか思ったけど、数え年なんだから僕と同年齢。
自分の年で将軍様のお気に入りっていうのは夢のような話というか何というか。
彫刻とかも凄い。
あと、「この部屋で大政奉還が行なわれました」とか、 「家康は天下を取ったあと、豊臣家が家臣であることを示す為にこの部屋に秀頼を呼んだといわれています。」 とかっていう説明を読んだら歴史好きでなくとも何か心打たれるものがあるはず。

とりあえず、京都行ったら二条城行きましょう。感動。
ただ、もう一回行きたいとは全然思わない。一回で十分。


腹減ったので適当に探す。松屋とかCoCo壱とかは見つかったけど、そういうのはどうかと思ったので 別のを探す。けど、あんまり見つからないので、適当に「京都御所」へ行ってみることにした。
「京都御所っていうのは昔天皇が居たところかな?」ぐらいの考えだったけど、 今も宮内庁関係の現役の施設だった。
まあ、要するに、一般人は入れない仕様になっていたのだ。
このへんが無計画らしさを感じさせるところであるが、まあ、適当にうどんとかを食べつつ、

「天皇は神じゃないけど、やっぱり僕等には届かない高いところにいるんだなぁ…」

とかセンチメンタルな気分になったわけだが、今
調べたら 申し込めば入れるらしいことがわかった。申し込んでまで入りたいとは思わないが、とりあえず、 センチな気分は何だったんだ。ということで。

で、「蛤門」とかいうのを見る。なんか「蛤門の変」とかいうのがあったから弾痕があるらしい。
それらしい跡は見付けられたが、血痕とかは無かった。

次に来たバスが祇園行きだったので祇園へ行くことにした。
八坂神社へ行った。おみくじとか一人でやるのもどうかと思ったのでスルーした。

で、清水寺へ向かうことに。
途中、おみやげ屋ばっかり。人多い。なんかチワワ二匹連れてる人がカップル(夫婦?)が居た。 で、横通る人が口々に「かわいー」とか言うので、「ああいうのって飼い主は幸せだろーな」 とか思った。

途中、高台寺の前で食べた宇治ミルクが良い感じだった。
高台寺は入らなかった。


で、清水寺。人多い。
二条城はその雰囲気のおかげか、結構静かだったんだけど、清水寺は騒がしかったので雰囲気ぶち壊しだった。
あと、清水の舞台はそんなに高くない。
清水寺の名の由来になったとか言う滝みたいな感じの水を飲むもあまり冷えてないせいか、 普通に不味い水だったので凹んだ。
で、清水寺より高台寺行ったほうがよかったと思った。

暗くなってきたので帰ることにした。
帰りは京阪席空いてなかったので辛かった。

以上。結構良かったんではないかと。

03_09_15


ちょっとだけ記念に。
去年までは野球とかどうでもいいとか思ってたけど、 今年は選手の名前まで覚えていったという典型的にわかファンだった。

やっぱりサイトデザインとかどうでもよくなってきたので、 移転はだいぶ先になるかもしれない。しないかもしれない。



なんていうか、大したことも無いのに自分の画風とか大切にすべきではないとか思った。
そういうのも一種の車輪の再開発かもしれない。

03_09_17

あー、やばい。
適当にコード書いて遊んでたらこんな時間に…(2:00)

諦めるかな…

03_09_18

「gdb がいちいちlibcのシンボル読み込むのだるいなー。」

って思って、$ strip -s /lib/libc.so したらいきなり停止して、 ブートできなくなって大ピンチ。

適当にあったVineのインストールディスクで修復しようとしたら、

「/dev/sdaのパーティションテーブルが壊れてます。」

とかメッセージが出るので大ピンチ。
そんなわけない。と思って、Plamoのインストールディスクでやったら 普通にマウントできたので、適当になんとかなった。

  • Vineのインストールディスクはレスキューディスクとしては使えない(/devの中身が少ない)。
  • static linkのシェルは一応あったほうがいい(chrootできたら便利)。
  • glibcはストリップしたらだめ(libcが一瞬無くなる→strip止まる→全部止まる→libcが無くなる)。

とか、思いました。

03_09_19

「Strikers 1945 II」が380円だったので買ってみたら、縦置きテレビ じゃないと遊べない仕様だった。横置きでもアレンジモードとかあるけど微妙。


GTKでゲーム書く。第一回。
ネタ的には
五月分の4日、7日分の話の続きみたいなもん だと思っていただければ。

まず、Unixとかでゲーム書くとかだと、SDLでいいじゃん。っていうのが常識みたいになってるけど、 SDLだとフォント周りとか、IMとかは厳しい状態にあるので 、ジャンルによっては 利用しにくいんじゃないか。だから、Xの恩恵にあずかろう。っていうのが前回までの分。

で、今回は、ゲーム内でウィジェットっていうか、GUI部品を使う場合はどうしようっていう話。

で、GUIはどのライブラリを使うかっていう問題があるんだけど、
  1. Unix, Windowsで動く
  2. 使い易い
  3. テーマで見た目を変えられる
っていう理由からGTKっていうのは妥当じゃないかと思う。
特に、3は重要なんではないかと。
自分のゲームの雰囲気にあったテーマを作っとけば、 「いきなり無機質なファイルダイアログ開いて凹む」っていうようなことが防げるし。


しかし、ただ単にGTK使えば済む話じゃない。
GTKは設計的にXをベースにしてるので、前回述べたように「ピクセルを直接弄る」 とかになると、パフォーマンス的に大きな問題になってくる。
GdkImageを使えば、内部でうまいことXShmImageを使ってくれるみたいだけど、 そうなるとGCが使えないのでやっぱりフォント周りが使えなくなってくる。

で、どうするか。
GDK(2.0以降)には X11用のインターフェース が付いてくるのでそれを利用すればいいんじゃないか。 って思うんですけど、どうでしょう。

こんな感じ。
Pixmap shm_pix = new_shmpixmap();

void update_window( GtkWidget *wid )
{
	Window win = gdk_x11_drawable_get_xid( wid->window );
	Display *dis = GDK_DISPLAY();

	XCopyArea( dis, shm_pix, win, ..... );
}
例えば、GTKで作ったgtk_drawing_areaなんかをこの update_windowに渡せば、そこそこのパフォーマンスで shm_pixをそこにBlitできる。こうすれば、shm_pixをそのWidgetのバックバッファとして使えるんじゃないか。と、いうわけ。

で、動かしてみたら予想通りうまくいったように見えたんだけど、 そこには小さな落とし穴があったりして次回へ続く。

あと、gtkwin32.hとか見たら、同様にGdkWindowからHWND取ってくる方法もあったので、 Windowsでも何とかなるかと。書くコード量増えるけど。
っていうのが一応あるけど、TTF,BDF自分で用意しないといけないっていうのは辛い。
でも、使用するフォントが一種類しか無い場合なんかはSDL_kanjiはいい感じ。

03_09_21

お、9月も21日か…


さて、続き。
二回分しか書くこと無いんだから前編、後編とかにすべきだった。


さて、GUIっていうと、メインループみたいなのがあるのが基本なんだけど、 GTKのメインループとかがgtk_mainに完全に隠蔽されてて色々問題じゃないかって思ったんだけど、 今調べたら gtk_events_pending と gtk_main_iteration とか gtk_main_iteration_do とかを使えば全然問題無いような感じだった。

簡単に説明すると、 gtk_events_pending で処理してないイベントがあるかどうか調べて、 それがあったら gtk_main_iteration で、イベント一個分だけ処理するっていう話。
while ( 1 ) {

	while ( gtk_events_pending() ) 
		gtk_main_iteration();

	...
}
こんな感じ。
詳しくは
API Referenceで。

03_09_22

全然関係無い話。

ヘリコプターはどうやって浮くのか。一目瞭然。
じゃあ、どうやって前に進むのか。
なんとなく想像付くけど、意外とわからない。

これの一番下の絵。
実際はただ単に上のプロペラを傾けてるだけらしい。言われてみれば「ふーん」な感じ。

あと、後ろのプロペラの重要性について書いてある。
まああれがなかったらヘリコプター自身が回転してしまうっていう話だ。

このへんは昔聞いたことあるから別に驚かなかったけど、 最初聞いた時はちょっと驚いたような記憶がある。

だからどうしたって話だけど。

03_09_23



ミュータンスでググると一番の歯垢の画像がグロい。
あと、なんとなくこういうのとか。
姉に、「ミュー太の擬人化かよ」とか言われたけど、そういうのじゃなくて、 どっちかっていうとミュータンス菌の擬人化っていうか何だろう。


昨日の分は書くだけ書いといてアップしてなかった。

全然関係無い話。
ファミコンで将棋ゲームってあって、コンピュータ対戦もできたような気がするんだけど、 あれってかなり無茶やってたんじゃないだろうか。
CPUは1.79MHzっていうのはまあいいとして、 RAMが2KBっていうので将棋AIっていうのはかなり厳しいような気がするんだけど。
(参考)


/*********************************************
 * 以下、嘘。
 * 書いたあとに、「お、スペースシャトルじゃなくてアポロじゃん。」って気付いたけど、 消すの惜しいのでとりあえず。
 * ちなみにアポロは1word=16bit,ROM36K words, RAM2K wordsのCPU2.048MHzらしい。
 * 参考
 **********************************************/

あと、「スペースシャトルとファミコンだとCPUの性能で1/10、メモリで1/100」ていうトリビアがあったような気がしたんだけど、 スペースシャトルのメモリが20バイトっていうことは無いと思うので、適当に調べてみたら、 106496word(104kb?) はあるらしい。
「RAMじゃなくてROMだったら切り替えとかで100倍なんかな?」とか思ったけど、 マリオ3で3Mらしいので、 1/100っていうのは大袈裟じゃないかと。

シャトルに載ってたのはIBMのAP-101とかいうシステムらしい。
32bitレジスタ8本持ってて、そのレジスタは浮動小数点演算もできるので、 ファミコンのCPUの性能よりもずっと上なんじゃないかと思うのだが。
周波数は調べてもわからなかったけど、CISCでレジスタが裕福だったら180kHzもあれば軌道計算はぎりぎりいけそうな感じだし、 周波数が1/10だから性能も1/10とか見積もられたのかもしれない。

あとプログラミング言語はHAL/S

03_09_24

久し振りに電車で学校行った。
寝屋川駅うどん屋、「比叡」。
感謝日とかでカレーうどん200円だった(かけうどんが200円)。
「なんか得したなー」と思って入ったら、既にカレーうどんは売り切れ。

適当に天ぷらうどんを食べた。


自分のプログラム上で何かスクリプトとかを動かしたい。
と、いうようなことはたまにある話。

自分でインタプリタ書くというのも面白いと思うし、簡単なLispとかだったら 一週間もあればそこそこの物が動くと思う(Lispはスクリプトじゃないらしいけど)。

でも、ここではそういう話ではなくて、MozillaのJava Scriptエンジンを使うというのはどうかという話。

MozillaのJava Scriptエンジンは独立したモジュールとして 自分のプログラムに組み込むことが可能だ。
こういうふうな既存の言語環境を使えるというのは結構魅力的ではないかと。
言語を考えなくていい
自分で言語を考えるというのはなかなか楽しいけど、結局煮詰めていくと 既存のものとそっくりになって、なんか虚しい。というパターンはよくあるはず。
あと、JavaScriptの仕様はこの日あたりで書いたとおりなかなか良い感じだし。
ドキュメントが少なくてすむ
とくにJavaScriptはその立場上、ドキュメントが豊富なんで 言語仕様についての説明を書かなくてすむ。
パフォーマンスとか安定性とか
この辺は広く使われてるほうが洗練されてくるだろうし。
この辺

03_09_25

about更新。なんとなく。

glibの二分木
前の課題で、少し苦労して二分木実装したような気がするんだけど、 こういう便利なものがあるとわかっていれば…しかもバランス木だからこっちのほうが絶対効率いいし…

glibで扱えるデータ構造
なかなか使えそうな感じだけど、Quarkって何だろうか。
「ひとつの識別子にユニークな数値を割り当てる」みたいな感じかなぁ…

03_09_26

今、眼鏡無しで書いてるんだけど、これほどまでに辛いとは。
まあ、眼鏡を取ってくればいいんだけど、家庭の事情というかなんというか。


まあ、民営化だしね。


昨日about更新したのは、web散歩してる時に、 aboutみたいな概要の無いサイトが有って、
「なんかこういうのは良くない!」
って思ったんだけど、うちのサイトもちょっと不親切すぎのような気がしたからなんだけど、 見直してみると以前と何ら変わりない不親切なAboutになってるような気がする。
まあ、中身が無いサイトなんだから、Aboutの中身が無いのも当然といえば当然なんだけど、 Profielがあれでは駄目なような気がしてならない。
どっか他人のサイトを見つけた場合、とりあえずProfielを読むようにしてるんだから、 自分のサイトも読んで価値のあるProfielを書くべきというのは承知の上なんだけど、 どうも、自分のサイトで長所とか短所とか書くのは抵抗あるし、 僕の好きな物っていうのは大半が世間一般に「良い」とされているものばっかりなので、 「自分の好きな〜」とか書いても仕方無いような気がするし、とか考えてると、 結局書くことが無くなって、ああいう何の情報も無いプロフィールになってしまうのだと思う。

それとはあんまり関係無いんだけど、
「どんなに素晴らしい物でも認められる為には宣伝したり売り込んだりするのが大事だ」
っていう言葉は有名だと思うけど、これって最初に言い出した人が 勝ち組の人なのか負け組の人なのかによって言葉の意味が変わってくるような。

03_09_27


漫画みよーぜ

ゲームばっかりやってて駄目一日だった。
デスレーベル(っていっても誰も知らんだろうけど)でA-EX緋蜂改見た。13億。
黄流で死に過ぎ。

03_09_28

電気屋は電流 I と虚数 i がかぶるからと j に置き換えたけど e はそのまま。
あと、2-3行った。遂に。この感動を皆にどう伝えればいいのか。多分どうやっても伝わらないと思うけど。

日本橋のゲーセン(名前わからん)でプロギア、ケツイ、ぐわんげ、大往生、エスプと並んでて ケイブ祭り状態。あと、ぐわんげと大往生の間に式神IIがあったりして謎。
エスプ上手い人見れてよかった。てゆーか、あれだけやっても3170万しか行かないのか…厳しいな…
プロギアが全然駄目だった。パターン忘れ過ぎ。

バッククオート。
'(1 2 (+ 3 4))
   => (1 2 (+ 3 4))

`(1 2 ,(+ 3 4))
   => (1 2 7)

`(1 2 ,(list 3 4))
   => (1 2 (3 4))

`(1 2 ,@(list 3 4))
   => (1 2 3 4)
これがわかりやすいと思う。

03_09_29

最近どうもパソコン新しくしたい欲が高まってきた。
ていうよりも、Athlon64試してみたい。

雑誌とかwebとかのベンチマークとかでは、大体

「Athlon64は惜しいとこいってるけど、総合したらPentium4には微妙に負けてるような。 64bit環境があればAthlonも勝てるかもしれないね。それまで待っとけばいいかもしれないね」

っていうような結論になってるんだけど、Linux + gccでは既に64bit環境作れるのである。
64bitレジスタx16本使い放題。32bitレジスタx8って何?みたいな感じ。
どっかでLinuxでベンチマーク取ってる人居ないのだろうか。あー。
ノートパソコンにするんだったらPentium Mにしてみたいよね。なんていうか、ただの新しい物好き。
Crusoeってどうなんだろ。

あああーあー。パソコン速くしたいなーあああーあ


Lispが人に優しいかっていう議論については
matz氏の日記の9月4日分から何日か分が 参考になるかと。