過去ログ一覧 | 前日へ続く | 最新版へ


2004/01/11 (日) 日曜日。

マリオブラザーズの Flash

_ ゲーム貴族より。

_ 何か壮大で暗い物語がはじまっていたり。

_ つーか、壮絶な戦いでルイージ君死んじゃってるし。

スタイルシート

_ ちょっといじってみたけど使い方がサッパリ分からない。

_ 思い通りにに使いこなせる日はきっと来ないんだろうな。:-(

スタンドアロン版 Flash プレイヤー

_ Mozilla とかを使わずに再生できる gflashplayer がいつの間にかまたダウンロードできるようになっていた。

_ ということで久しぶりに Flash ページ更新。

大口屋

_ 餡麩三喜羅(あんぷさんきら)という麸饅頭が美味しい。

beepmp

_ XMMS の GTK+ 2.x 版。

_ 使ったことないけど Gxine を使うために GTK+ 2.x を入れたのでメモ。


2004/01/12 (月) 晴天

柴犬と遊ぶ

_ 月に一度の入浴タイム。

_ だっこして風呂場に行くと珍しくジタバタ*1

_ 気づいた模様。

_ シャワーでお湯をかけて激痩せわんこ状態にした後、シャンプーを泡立てておいた軍手で速攻!!

_ なす術も無く洗われる柴わんこ。

_ 拭いてあげた後で鱈の薫製のおやつ*2をあげる。

*1: だっこされるのが好きなのでだっこ中は滅多なことで暴れないのです。

*2: 犬用です。

C Magazine の記事とか

_ 過去に連載されていたもので Web 上に掲載されているのが結構あるんですね。

_ ずっと前に買ったことあるけどサッパリ分からなかった雑誌です*3

_ 過去の記事をまとめた CD-ROM も登場してるみたいです。

*3: そりゃ、いきなり読んでも分からないよな。

RubyRogue

_ 今年はじめての RubyRogue。

_ 18 階で一角獣の3連続で体力が無くなり死亡。


2004/01/13 (火) 大荒れの天気

天気が悪い

_ 寒い。とにかく寒い。

_ 夕方からさらに荒れるそうだ。

Larn、Ularn

_ saino さんの日記より。

_ 試してみましたが ncurses が使えるみたいですよ。

_ Configure スクリプトが ncurses を検知できないみたいですが、「お前、termcap 関連のライブラリ持ってないの?」とスクリプトに聞かれたときに -lncurses を書いてやったら使えました。

_ プレイした感想。

_ ・・・うーむ。画面の文字が NetHack と違うので困惑したり。

_ NetHack みたいなメッセージの生成方法みたいなので日本語化は大変そう。

_ ということで saino さんは Ruby で再構築中だそうです。

_ あ、saino さん。12 月から日記の過去ページが読めなくなってますよー。

読書:プログラミング言語 C

_ この本を初心者がいきなり読むのは間違っているということは世間ではよく知られた事だった模様。

_ いや、もうとっくに本棚に飾ってあるんですが。

_ いろいろ読んで再挑戦したいものです。:-)


2004/01/14 (水) 寒波の影響につき寒し

strcpy のソース

_ C言語 文字列操作+ファイル入出力完全制覇で標準関数のソースの一部を解説していたりしていたのが何か面白かったので glibc のソースをもらってきて果てしなくぞんざいに読んでみることにしました*1

_ GNU のメインサーバからもらってくるのは迷惑になるといけないのでミラーから入手することに。

_ 日本の Ring サーバから glibc-2.3.2.tar.bz2 をもらってきました

_ うぉー、圧縮して十数メガバイトありますね。

_ とりあえず馴染みの strcpy を捜索することに。

_ 展開して見るも何が何処にあるかもサッパリ分からず。

_ grep してもテスト用コードがゾロゾロ。

_ このまま無理をして山に踏み入るのはとてつもなく危険だ。確実に遭難する。

_ 樹海に迷わないように gtags というガイドを雇う*2

_ gtags が長い時間をかけて地図を描いたところで出発。

_ ところがこまったことに gtags 君の結果はこんな感じ。


strcpy            401 /home/rltm/Src/glibc-2.3.2/string/bits/string2.h #  define strcpy(dest, src) \
strcpy             27 /home/rltm/Src/glibc-2.3.2/sysdeps/alpha/strcpy.S ENTRY(strcpy)
strcpy             24 /home/rltm/Src/glibc-2.3.2/sysdeps/generic/strcpy.c #undef strcpy
strcpy             28 /home/rltm/Src/glibc-2.3.2/sysdeps/generic/strcpy.c strcpy (dest, src)
strcpy            358 /home/rltm/Src/glibc-2.3.2/sysdeps/i386/bits/string.h strcpy (char *__dest, __const char *__src)
strcpy            569 /home/rltm/Src/glibc-2.3.2/sysdeps/i386/i486/bits/string.h #define strcpy(dest, src) \
strcpy             54 /home/rltm/Src/glibc-2.3.2/sysdeps/ia64/strcpy.S ENTRY(strcpy)
strcpy             63 /home/rltm/Src/glibc-2.3.2/sysdeps/s390/bits/string.h strcpy (char *__dest, __const char *__src)
strcpy             30 /home/rltm/Src/glibc-2.3.2/sysdeps/s390/s390-32/strcpy.S ENTRY(strcpy)
strcpy             29 /home/rltm/Src/glibc-2.3.2/sysdeps/s390/s390-64/strcpy.S ENTRY(strcpy)
strcpy             68 /home/rltm/Src/glibc-2.3.2/sysdeps/sparc/sparc32/strcpy.S ENTRY(strcpy)
strcpy             49 /home/rltm/Src/glibc-2.3.2/sysdeps/sparc/sparc64/strcpy.S ENTRY(strcpy)
strcpy             44 /home/rltm/Src/glibc-2.3.2/sysdeps/vax/strcpy.s ENTRY(strcpy, R6)

_ どれを見ればいいんだぁ!?

_ ディレクトリ名の sysdep/ から察するにハード別の処理にしてあって strcpy がいくつか用意されているのかな。

_ んじゃ、x86 マシンなので i386/bits/ を・・。

_ うーむ。#define で関数っぽくしてあるのね。慣れないので読みにくいよぉ。

_ っていうよりこれ、アセンブラで書いているのか。最適化してあるのね。

_ 諦めて i386/i486/bits/ を見る。これまた #define か。初心者にはつらいよ。

_ 藁をもすがる勢いで generic/stcpy.c を見る。

_ 発見!!

_ フムフム。まん中のループでコピーしてるのね。reg_char は別のファイルで char の別名にしてあるのね。

_ やっぱりポインタを使ってるのかぁ。って、*s++ って *(s++) の順で読めばいいんだっけ*3

_ などなど、読んでみたり。

_ しかし、関数見つけるだけでもこんだけ時間かかってるとは先が思いやられる。:-(

*1: 正確には昨日の夜の話。

*2: 給料の高い htags は雇わなかった。

*3: 本読め。

Peercast

_ 某 FM が聴けるという情報をどこからか仕入れてきて試してみる。

_ Linux 用のバイナリは古いので駄目だった。

_ ソースコードアーカイブが見あたらないので CVS から入手。(Anonymous パスワードは anon です)


$ mkdir peercast
$ cd peercast/
$ cvs -d:pserver:anon@peercast.org:/cvs/peercast login
$ cvs -z3 -d:pserver:anon@peercast.org:/cvs/peercast co core
$ cvs -z3 -d:pserver:anon@peercast.org:/cvs/peercast co ui
$ cd ui/linux/
$ touch makedepend
$ make -f makefile

_ 簡単にコンパイル完了。

_ iptables の設定を共有できるように変更してトライ。

_ http://localhost:7144/ にアクセスして Settings をいじる。

_ Type が Normal と表示されているので共有できている模様。

_ 早速聴く。懐かしい DJ さんだぁ。うぉー。

_ しばらくして Relayed channels を見るとアクセスがある。共有できてる模様。

_ Cyber Dentist こと歯医者さんの木本和久さんがやっている土曜日の ELE-TOPIA が楽しみ。

_ 昔はレイバースヒルとかいう名前だったんだよなぁ。

_ 今はどんな番組になってるんだろう。Web を見るとクラブ寄りな感じになってるみたい。

_ うまく聴くことができたら 6 年ぶりぐらいか。


2004/01/15 (木) 風が強い

うげー。

_ 寒いよー。

_ 毛糸のゴツい手袋を持っていってよかった。

柴犬と遊ぶ

_ 帰り道に会う柴わんこは寒風吹きすさぶ庭で凛々しく立っているというのに、うちの柴わんこは暖かい部屋の中でまったりと寝ていた。

_ オイオイ。

Peercast

_ Linux 版も設定ファイルが Windows 風に peercast.ini という名前の上、実行ファイルがあるディレクトリに設定ファイルが作成されてしまうのが何か嫌。

_ やっぱり HOME 以下に .peercastrc みたいに置きたい。

_ ui/linux/main.cpp をテキトーにいじってみました。


#if 0 /*rltm*/
        iniFileName.set("peercast.ini");
#else
        char *env_pointer;
        char ini_file_tmp_buffer[256];

        env_pointer = getenv("HOME");
        sprintf(ini_file_tmp_buffer, "%s/%s", env_pointer, ".peercastrc");
        iniFileName.set(ini_file_tmp_buffer);
#endif

_ うむ。ちゃんと設定を読み込んだし書き込めてるみたい。

_ これで大丈夫かな*1。動いているからいいやというのは自信がなくて心配なんだけど。:-(

*1: あー、ini_file_tmp_buffer が溢れたときとか何も考えてないなコレ。まぁ、自分だけで使ってる分にはいいけど。


2004/01/16 (金) 底冷え

C 言語

_ Web の掲示板を読んだり。

_ 前は書いてあることがサッパリ分からなかったけど今はほんの少しだけど分かる部分があるような無いような。

柴犬と遊ぶ

_ 写真

_ 寝起きを撮影してみました。


2004/01/17 (土) 早朝散歩

柴犬と遊ぶ

_ 朝早く起きて散歩。

_ 走る走る走る走るー!!

_ 吐いた息が真っ白。寒い。

_ ンコもしっかりしてるので健康だな。

バラエティー番組

_ 日テレの後追い*1番組を見ようとしたらだいだひかるさんがネタをやっていたのでパス。

_ 面白いと思うけど見たくないんだよなぁ。

_ 終わったのを確認して鑑賞。

_ こういうネタが勝負の番組は文字を出すの止めて欲しいなぁ。

*1: 国営放送のね。


2004/01/18 (日) 相変わらず寒い

mp3 を ogg にする

_ たまねぎ育成日誌より。

_ 僕も手持ちのMp3ファイルを変換*1するときに @IT のページを読んだんですが Perl がよく分からない上にモジュール追加とか面倒そうだったので UNIX のパイプを使って変換しました。


$ madplay test.mp3 -o wav:- | oggenc - -o test.ogg

_ madplay じゃなくて mpg123 でも標準出力に出せば同じことが出来たはずです。

_ この方法で順次変換していく方法と wave ファイルを作って一気に変換する方法でファイルサイズとか音質に変化があるのかどうかは分かりません。

*1: また CD からリッピングするのは面倒ですし。

mp3 を ogg にする・続き

_ こまつだいらせいいち さんが検証してくださいました。ありがとうございます。:-D

_ 一時ファイルを使う方法とパイプを使う方法では所要時間と ogg ファイルの容量はほぼ同じという結果だそうです。

_ それにしても id3ed とか awk の利用法とかが為になります*2

_ awk の本を立ち読みしに行こうかな。

_ あー、でも、もう C 言語で樹海にはまってるな。

_ 森を増やしてもさらに迷うだけな気がしてきました。

*2: 僕は恥ずかしいことに XMMS を使って人力でタグを書き足していたのです。

柴犬と遊ぶ

_ 今日は比較的素直に人の言うことを聞く日だった模様。

_ 普段は散歩から帰ってきた後で足を拭かれるのが大嫌いで暴れるのだが今日は大人しく拭かれていた。

_ 夜になって足下にスリスリ甘えてきたのでちょっと相手をしてあげると大喜びでじゃれてきた。

_ おもちゃの取り合いをしてやると興奮してジャンプしまくり。

_ 疲れたのか、ケージに入るように催促すると素直に入る。

_ しばらくして就寝。おやすみ。

カレー

_ 祖父母と母とお気に入りインドカレー屋に行く。

_ 祖母もお気に入りなんだけど祖父もいたく気に入って完食。

_ こんなに食べる祖父を初めて見ました。:-)


2004/01/19 (月) 雨後晴れ

Cプリプロセッサ

_ Emacs で M-x c-macro-expand をするとプリプロセッサが処理するものを処理して表示してくれることを知った。

_ で、その処理したメッセージに /lib/cpp -C と書いてあったので Emacs にマクロ展開機能が組み込まれているのではなくて Emacs がプロセッサを呼んでいるのだろう*1と思い試してみました。


$ cd jnethack
$ cpp -I./include/ src/mhitu.c

_ おー、ズラズラと表示される。

_ こういう処理をした後にコンパイラがコンパイル作業を始めるのね。

*1: すでにある道具を利用するというのは極めて UNIX 的(?) だと思いました。


2004/01/20 (火) 晴れ。

PerlとRubyのどちらを学ぶほうがよいですか

_ 結城浩さんの日記より。

_ うへー。まず C 言語を頑張らないといけないな。

柴犬と遊ぶ

_ 夕方の散歩。

_ 生まれが一日違いの知り合い柴に遭遇。

_ お互い接し方が分からず尻尾を振りながら肉球パンチをしようとするので引き離す。

_ お互いに未練タラタラな感じで別れる。

_ 犬同士の付き合い方を教えてあげないといけないなぁ。

読書:C言語ポインタ完全制覇

_ 樹海を歩くために C の宣言と定義の記述の説明を読み読み。


#include <stdio.h>
int main(int argc, char *argv[]) {
    int i;
    int *p = &i;

    i = 5;
    printf("%d\n", *p);

    return 0;
}

_ すごく簡単な例ですが 4 行目の *p と 9 行目の *p がごっちゃになったりしたことがあります。

素人プログラミング

_ 久しぶりにテキスト辞書変換プログラムの話。

_ 変換用の関数に引数が多いのが何とも。

_ 読み、漢字、品詞をまとめて構造体にしてポインタを渡すとかしたらいいのかな。

_ とりあえず持っている本のそれっぽい部分を読むことにしよう。

Sayonara! Sasaki chooses Japan over Mariners(Excite 翻訳)

_ 去年は苦しいシーズンでしたからね。

_ しっかり回復してまた日本で活躍してほしいです。

ページトップ | 過去ログ一覧 | 後日へ続く | 最新版へ


Valid HTML 4.01! Valid CSS!

この日記は、GNSを使用して作成されています。

このページに関する問い合わせは rltm まで。