雑記帳 2006年 5月第4週

2006/05/21 Sun.

寝たのが6時にもかかわらず、起床13時に成功。休日の睡眠時間帯をまともにしようという試みは成功しつつあります。
天気は超快晴、これが五月晴れってヤツか。来月からは梅雨に入るだろうし、今のうちに晴れまくっておいて欲しい。

Fake 2ch BBS」でスレ主がファイルをアップロードできるようにしたものを作成中。「cgi-lib.pl」を使わざるを得ない。
ファイルアップローダーを作ろうとしたことは何回かあったけど、あの時は外部のライブラリを使いたくなかったのよね。
全て自前でアップロードされたファイルを解析してみたかったんだけど、どうにも埒があかないので妥協しちゃいました。
ログ形式も「Fake 2ch BBS」と変わっちゃうから、2chブラウザでは使えなくなるな。ログ形式変えない方がいいかな。
そうすると、スレの時刻IDをキーにして別途ファイルを保存しておき、その中にアップロードされたファイル名をメモるとか?
いずれにせよ煩雑な作業になりそうだな。管理用CGIの方も変更しまくらないといけないだろうし。完成しなさそうだ。

さて、何はともあれ「麻雀格闘倶楽部」です。現在は朱雀初段、今日は22時くらいから東風戦を6回ほどやってきました。
結果はお察し。一回は一級にまで降格させられたけど、とりあえずその後は即昇格。とりあえず現状の朱雀初段を維持。
ってか、このレベルの人達になるとマジで強い。オフェンスはともかく、ディフェンスを鍛えないとトップ取れないよ。
現在韓国旅行へ行っている「gadult」は朱雀二段だったかな?何とかして追いつきたいな。公認検定の段位も欲しいし。

2006/05/22 Mon.

朝から晩まで延々とコーディングの一日。午前中からまともに仕事をしてるとか、自分としては非常に珍しいことだ。
2月の上旬に手をつけたプロシージャ絡みの開発ってことで、かなり時間を食われたが進捗がそれなりに進んだのでよし。

自分の名前の一部に「mix」という言葉を付けてサイト名とかHNとして使ってるけど、芸能人でも「mix」を使ってる人がいた。
***((( KOIZUMIX )))***」こと小泉今日子のサイト。うーむ、こんな著名な人のサイトも「名前+mix」の使い方をしているとは。
ってか、この記号だらけのサイトのタイトルは何とかならんものか。芸能人のサイトとかって、無意味なまでに派手だよな。

2006/05/23 Tue.

NTT DoCoMo」の語源は「Do Communications over the Mobile Network」、「au」は「access to you」であるのはいい。
ブランド名ってのはやはり大事なもので、どこぞの拝金主義企業みたいに社名をそのままブランド名に持ってくるのはアホ。
vodafone」ですら「voice data phone」という語源がある。一体何のつもりなんだろうね、どこぞの黄色い半島企業は。

最近の携帯絡みの話題で目に付いたのは「YouTube、携帯電話からの映像投稿サービスを開始」ってヤツかな。
それにしても、「YouTube」はここ最近で凄まじい勢いで普及してるよな。ウチの雑記で出したのが3月の第一週だったっけ。
サービスの利用者がちょっとばかりアチラ方面の方々ばっかなので、一般に浸透するまではもっと時間かかると思ってた。
マイナーなコンシューマ用ソフトのスーパープレイとかを見て笑ったり、アーティストのPVを見るくらいしか使ってないけど。

あ?仕事?どうせ朝から晩までJavaとJavascriptだけですが。ってか、仕様が固まらないとこの先の開発は無理であります。
コーディング時間がこの二日で24時間は超えてるな。今日の効率は悪くなかったと思うんだが、何だかイマイチだったな。

2006/05/24 Wed.

public class ExceptionTest {
    public static void main(String[] args) {
        try {
            String s1 = "abc";
            String s2 = s1.substring(0, s1.length() + 1);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

例えばこんなソースを書いて実行すると。当然のことながら文字列の参照範囲の異常につき、Exceptionが発生する。

C:\>javac ExceptionTest.java -sourcepath C:\

C:\>java ExceptionTest
java.lang.StringIndexOutOfBoundsException: String index out of range: 4
        at java.lang.String.substring(Unknown Source)
        at ExceptionTest.main(ExceptionTest.java:6)

アプリ実行時に異常終了した場合などは実行ログを吐くんだけど、printStackTrace()で吐かれる文字列が欲しい。
例えばエラーキャッチ時に出力する文字列にe.toString()と書いただけじゃ、単純なメッセージしか表示されない。

public class ExceptionTest {
    public static void main(String[] args) {
        try {
            String s1 = "abc";
            String s2 = s1.substring(0, s1.length() + 1);
        } catch (Exception e) {
            System.out.println(e.toString());
        }
    }
}
C:\>javac ExceptionTest.java -sourcepath C:\

C:\>java ExceptionTest
java.lang.StringIndexOutOfBoundsException: String index out of range: 4

これだけじゃ、Exceptionの内容はわかっても発生箇所がわかるはずもない。ソースが長ければ長くなるほど困ることに。
何とかしてprintStackTrace()で吐かれる文字列が欲しくて、「Exception (Java 2 プラットフォーム SE v1.4.0)」を読んでみる。
……わかりません。printStackTrace()の引数にPrintWriterを渡せるから、その中でログを指定しちゃえば出力できるか?
試してみるも動かん。0バイトのファイルが作成される。要するに、PrintWriterから埋め込んだ文字列を取得すりゃいいのか?

import java.io.*;
public class ExceptionTest {
    public static void main(String[] args) {
        try {
            String s1 = "abc";
            String s2 = s1.substring(0, s1.length() + 1);
        } catch (Exception e) {
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            e.printStackTrace(pw);
            System.out.println(sw.toString().trim());
        }
    }
}
C:\>javac ExceptionTest.java -sourcepath C:\

C:\>java ExceptionTest
java.lang.StringIndexOutOfBoundsException: String index out of range: 4
        at java.lang.String.substring(Unknown Source)
        at ExceptionTest.main(ExceptionTest.java:6)

おぉ、こんなやり方で動くとは!これは思わぬ収穫になった。どうせならエラー発生箇所を特定したログが欲しいしね。
1,000行未満のソースなら、Exceptionの種類だけでもソースを追っていけるけど、5,000行とか超えるとツラくなるしな。

それにしても酷い天気だ。職場出た瞬間から全身ずぶ濡れだし。折り畳み傘も突風で骨が折れて即刻退場だった。

2006/05/25 Thu.

またもや朝から晩まで延々とコーディングのみ。試験がほとんど無理なこのアプリ、マジで動かすのか?

2006/05/26 Fri.

仕事に嫌気が差してくると、どうでもいい事が頭に浮かんでくる。とりあえず思い浮んだ内容をメモ代わりに書いておく。

携帯哀歌 作詞・作曲:東京プリン

歌詞を全て載せると非常によろしくないことになるので、リンク先の内容を参照。で、これを替え歌で作り変える。

2016/01/02 追記
歌詞系の話は色々と怪しい部分があるので、ちょっと記載を削除しました。

あまりにコーディング時間が長いせいか、そろそろ頭がおかしくなってきたようです。自覚症状あります、はい。

で、帰りにゲーセンに寄って例のモノをやっていく。今日だけで2,300円もつぎ込んだが、朱雀初段から上がれん!
とりあえずオーブは4つになったことだし、次回あたりには何としても朱雀二段に昇格しておきたいところだな。

2006/05/27 Sat.

16時くらいにS保から電話がかかってきた。どうやら一命を取り留めていたようです。夕食でも食わないかとのこと。
で、今からまた寝るから、起きてから行こうということに。19時くらいにはまた起きるだろうと予測して準備しておく。
結局19時半になっても連絡が無い。こっちから連絡してみるかと思ってた頃に、20時になってようやく連絡が来る。
いつも通りに高幡に待ち合わせて食うことに。で、電話の切り際に「今日は相方さんのトコ行くんで」とか言われる始末。
なるほど、やはり階級社会においては使う側の人間と使われる側の人間の差別化は日に日に明確化していくようです。

雨が降ってる中、律儀にも21時ちょいくらいにジョナに着くと、同じタイミングでS保も登場。さっさと店に入って一服つける。
話を聞くと、どうやら色々と書類作りやら答弁作成などで必死らしいです。俺も今週はアプリ絡みで死にそうだったぜ。
お互いの仕事の愚痴が出てくるのはいつも通りなんだが、今日はS保が転職だの何だのとやたらと威勢がよかった。
どうせ毎度の夢物語を語ってるんだろうとか思ったら、どうやら今回ばかりは本気らしい。はいはい、期待しておきます。
夏が終わるくらいにはケリをつけるらしいが、果たしてどうなることやら。せっかくI種受かってるのにもったいない。

で、22時半とかそれくらいになって店を出る。もちろん自分は帰宅、S保はこれから自宅以外の自宅へ帰還だとさ。
1月に辛酸舐めさせられて以来、同じような目には遭うものかと思ったが、メシ食う約束した後でそれを言いますかね。
いいんです、どうせプログラマなんて社会の最底辺なんです。他人の都合に合わせて生きていくしかないんです。