日記

9月 2日 (月)

1. 引継ぎ

あーあ、またもめてます。7月-8月の引継ぎでまだ懲りてないご様子。8月で終わるはずの人が、引継ぎのために9月になっても出社してます。しかも、今日一人新しく人が入ってきました。もうすぐ終わるプロジェクトなのに。一人減らして、その分一人増やすんですか?そんなことしたら、引継ぎ作業に無駄な工数を費やすだけですよ?引き継いだ直後から、スムーズに作業を進められると思ってるんでしょうか?

F○I○B○とか○&○っていったい・・・某匿名掲示板でボロクソ言われるのも無理ないですね。

9月 3日 (火)

1. ひま

ヒマ夫くん(誰?)。なんか、作業依頼みたいなのがきました。「こんなのがあるよー、正式な依頼がくるまでにちょっと見といてねー」とのこと。

早速調査開始!終了!

20分で片付きました。うーん、この量だと、2〜3日位かかるかなぁ、というところ。結局、ひまです。まぁ、作業がなくても、ぼけーっと座っているだけで給料が貰えるんです。つーことは、好きなことやっててもOK! ワーイ ヽ(´∀`)ノ(←ダメな人)

2. りりか

というわけで、りりかの作成。今日はリピートと連符を実装しました。連符(3連符など)の処理は面倒くさそうだったので、ずっと後回しにしてたんですけど、やっぱり面倒でした(ォ。

構文解析は正規表現で一発、と思いきや、実はそうは問屋が卸してくれなかったり、各音符への時間配分でちょっと悩んでみたり。整数の世界なので、単純な割り算だと、場合によっては偏りが出ることがあります。ミリ秒単位なんで、この程度の誤差は許容範囲内ですけど、それはそれで美しくないので、均等分配するためにブレゼンハムとか持ち出してみたり。すっかり忘れてました、ブレゼンハム。似たような方法にDDA(Digital Differential Analyze: デジタル微分解析)なんてのもありましたっけ。こちらも忘却の彼方に・・・

結局、別なシンプルな方法に落ち着きました(ォ

9月 4日 (水)

1. 作業

ひま。以上。

と言いたい所ですが、昼過ぎに作業依頼。久々の仕事〜!って、普段職場で何やってますか(笑)

2. Ruby

ひまな時間に、Ruby(言語の方ね)のドキュメントを読んでました。「オブジェクトにこだわった言語」と聞いていたのですが、ドキュメントをざっと見た限りでは、あまりそのような印象は受けませんでした。SmallTalkみたいに IF文がない、とか、ループは条件オブジェクトのメソッドを実装することで実現する(IFといっしょじゃん)、とか、そんなのを期待してたんですけど。変なものを期待してますね、私。

まぁ、C++, Java, C# にある、いわゆる「プリミティブ型」なんていう中途半端なものは存在しないみたいで、そこはすごく気に入りました。すばらしいです。多重継承の替わりになる(?)、「モジュール」の概念もなかなか面白いですね。正規表現もPerl並の威力があるようです。機会があれば使ってみようかな。 *1

2.1. C#

そういやこの間、本屋でC#のリファレンス本を立ち読みしたんですけど、単一継承+インターフェース、デストラクタやvirtual属性。良くも悪くも、C++とJavaを引きずっているな、といった感じでした。あまり革新的な要素が見受けられないんですけど・・・中途半端という印象は拭えませんね。

まぁ、立ち読みした程度で何ほざいてやがる、て気もしますが。

  • *1: ろくに理解してないので、ものすごくいい加減なこと書いてるかもしれません。

9月 5日 (木)

1. SmallTalk

今日はSmallTalkの勉強です(←仕事しろ)。 IF とか FOR とか WHILE とか、大抵の構造化プログラミング言語にあるものが、オブジェクト指向を徹底したSmallTalkにはないんですね。すべてオブジェクトに対するメッセージという形で実現。演算子ですら、メッセージ扱い。

x := 1.
7 timesRepeat: [ x := x + 1 ].

美しいです。美しすぎます。

2. CD-R

家でCD-Rを焼いていたら、残り10%くらいのところでエラーが出てしまいました。

エラー 2a040900

・・・わかんねーよ!

ドライブはYAMAHAのCDR200t。4年位前に買ったやつで、読x6 書x2 という、今では考えられないような低スペックドライブです。

ここ数ヶ月、焼き始め(LeadIn書き込み時)にコケることが何度かあり、そろそろやばいかな、なんて思いながらも騙し騙し使ってきました。それでもデータ書き込み時にコケるなんてことはなかったんですが。

ん、まてよ。ひょっとしたらSCSIカードのせいかも。SCSIカードもこれまた古くて、4年以上前に先輩に売ってもらったやつでして。

買い替えるか・・・

9月 6日 (金)

1. 処理

ほんの2〜3日、メール読むのをサボっただけで、未読のメールマガジンがえらいことに。

2. ホイール

最近、WebブラウザはMozilla(Win32)を使っているんですが、なぜかマウスのホイールが効かないんです。回しても回しても、反応なしです。ほかのソフトではそれなりの反応を見せてくれるんですが。なぜ、Mozillaだけがダメなんでしょう。IE以外のブラウザを使わせまいとする、Microsoftの陰謀ですか?

9月 7日 (土)

1. HTML

HTML2.0と3.2って、日本語文字が使えないんですね。初めて知りました。正式に使えるようになったのは4.0からだそうで。といっても、現在4.0は破棄(?)されてますから、4.01からってことになりますね。まぁ、HTML3.2に関しては、日本語使用は黙認状態ですが。

9月 8日 (日)

1. 片付け

PC関係のブツを整理していたら、いろいろと出てまいりました、不要品。

1.1. MODEM

ISAバス用のダイアルアップモデムです。当時、¥4,000くらいしましたっけ。今は電話に加入してないので、もはや何の役にも立ちませんね。

1.2. Main Board

生きてるのか死んでるのかわからない、Socket Aのマザーです。CPUファンを取り付けるための爪が欠けています。ダメダメ。

1.3. 雷鳥

おそらく死んでいるであろう、Athlon Thunderbird 1GHz。焼き鳥。

1.4. ケーブル

FDDやらIDEやらSCSIのフラットケーブルがわらわらと。全部ワイヤ型に換装したので、予備ケーブルとして保管。

1.5. サウンドカード

CreativeのDigital Audio2です。同軸I/O、光I/Oと、入出力周りは豊富なんですけど、音質はいまいちだし、ドライバはタコ。トータルでいまいちなサウンドカード。

もうひとつ、今は亡きEnsoniqのサウンドカードが・・・

9月 10日 (火)

1. 仕事なし

ひまなので、今日は正規表現のお勉強。以上!

2. 国産

打ち上げ、成功です。H-2A F3。しかし、すごいもんです。あんな鉄の塊が宇宙まで飛んでいくんですからね。

9月 11日 (水)

1. ひま

ひまです。実に平和です。たまにリリース依頼がきます。それくらい。

1.1. りりか仕様

内部正規化表現についての仕様を書いてました。あと、Hn(Heading)タグのID属性とコンテンツから目次を自動生成するスクリプトとか、A(Anchor)タグ自動付加スクリプトなんかを作ってました。

2. 魔界

帰りにアキバ。

2.1. にゃー

それいけ!!ぼくらの団長ちゃん(2)を購入。どうしたことか、1巻よりもテンションが低いです。まぁ、3巻に期待しましょう。

この漫画に魂を感じるようになったら、いよいよダメかもしれません・・・

2.2. ドライブ

YAMAHAのCRW-F1を買ってきました。メディアに絵が描けるという、アレです。動作確認もかねて、とりあえずCD-Rを1枚、16倍速で焼いてみました。

は、速い・・・700MBのデータが、わずか10分足らずで・・・いままで使っていたドライブが2倍速だったので、16倍速ってのは未体験ゾーンです。でも、このドライブは最高44倍速ですから、700MBの書き込みがたった2分?恐ろしや・・・

9月 13日 (金)

1. いつもどおり

相変わらずやることがほとんどないので、遊・・・もとい、自己学習(笑)

1.1. DTD

HTMLとXHTMLのDTDを解析してました。現在多く使われているであろう、HTML4.01(3種類)、XHTML1.0(3種類)の6つを中心に。

DTDの読み方は、以前XML書いたときにちょこっとかじった程度なんですが、その程度でもどうにか読めます。基本的な部分はわりと簡単ですからね。

解析自体はperlで正規表現をバシバシ使って進めていきました。というか、正規表現だけで8割くらい解決したような、しなかったような。まぁ、DTDを文法どおりきっちり解析しようなどという気は全くなく、とりあえず要素の親子関係と属性、タグの必須/省略可能なんかが抽出できればよかったので、比較的簡単に出来上がりました。いい加減なスクリプトが(笑)

解析してて、ちょいと気づいたんですが、HTML 4.01 Transitional のDTDの1055行目、

<!ELEMENT STYLE - - %StyleSheet        -- style info -->

ってなってますが、これ、

<!ELEMENT STYLE - - %StyleSheet;       -- style info -->

とするのが正しいんじゃないかと。

なんか最近、文字列処理ばかりやってますよ?

9月 14日 (土)

1. HTML

昨日作ったスクリプトにちょこっと手を加えて、HTML形式で出力するようにしてみました。うまくいけば、簡易リファレンスができるかも?

2. VM JAPAN

SNロクロウでスタート。術力の低さは致命的ですが、これは素早さでカバー。相手にサササっと近寄って瘴気を食らわせ、サササっと逃げます。壁越しに、幻魔越しに、隙あらば瘴気。なかなか面白いです。このキャラ。

9月 15日 (日)

1. SNロクロウのメモ

VM JAPAN 第五章シャダイ戦。ここのマップは高度的には非常に有利なんですが、その分魔晶石が少なく、術力が少ないロクロウにはきついです。術力の回復が間に合いません。へたすると赤字です。しかも段差が厳しいため、思った以上に瘴気が届きません。

開始直後、速攻で手近の魔晶石を確保し、砲台系の安い幻魔を大量に配置します。キノオヅノ、タマノウテナ、ユキナゴ、ヤトノカクヤがメインですが、ロクロウ自身も砲台となります。こちらの幻魔は一体でもやられないように気を配りながら、上ってくる敵幻魔をどんどん撃ち落していきます。

幻魔たちのレベルが上がってきたら、アマノイクサ(撹乱要員)と多数のハスナガミを敵陣に送り込み、魔晶石を少しずつ増やしていきます。こちらが優勢になってきたところで、中位、上位の幻魔を送り込んで決着をつけました。

態勢を整えるまでに時間がかかり、所要時間が57時間・・・二日以上かかってました。プレイ時間は2時間くらいでしたけどね。

2. VM JAPAN メモ(裏技)

フリーモードのネームエントリーで、

  • キリ: Soreyueni Kiri.
  • ハヅキ: Hazuki sanjo!
  • ムウ: Muu kourin!

必勝法(インチキ)。

  1. 初手、その場召喚
  2. マスターの手番になったら、幻魔を相手マスターの上に仮移動させて消滅させる
  3. そのまま待機

9月 16日 (月)

1. Release

朝、職場の人から電話がありました。

「リリースがうまくいってないみたいなんですけど、見てもらえませんか」

・・・ほえぇ?

今日は、朝からリリース作業があり、うちのチームからも一人出社することになっていました。何でわざわざ休日にやる必要があるのか、全くもって不明ですが。

しかも、うちのチームでやる作業って、ファイルを10個ほど指定のディレクトリにコピーして、再コンパイルするだけです。コンパイルといっても、Jakarta Antで一発ですから、作業自体は5〜10分ほどで終わってしまいます。

たったこれだけのために、休日に出社するなんて、ばかばかしい!という意見で一致し、先週末にリリース自動化シェルを作って、atコマンドでスケジュールに組み込んでおいたのです。

それが今朝、うまく動いてないらしく、電話がかかってきたと。ちゃんとテストしたんですけどねぇ。はぁ、結局行くことになるのか・・・telnet開放してくれれば、自宅からちょいちょいとやっちゃうんですけどね。

1.1. Owner

職場で症状を確認。ファイルのコピーがうまくいってないです。指定したディレクトリの1つ上にコピーされちゃってます。絶対パスで指定してるのに。なんでやねん。

lsコマンドでディレクトリを眺めてみます。・・・んー?なんじゃこりゃ?

ディレクトリの所有者がごっそり変わってます。先週末はAというユーザだったのに、今日になってBユーザになってます。しかも権限が全部444(r--r--r--)だし。一応、シェルには書き込み権限を付加するようにしてあったんですけど、特権ユーザじゃないので、オーナが違うんじゃどうしようもないです。誰だ!勝手にオーナ変えたバカ!

なーんか、この辺の管理がいい加減なんですよね、このプロジェクト。「本番でコケる」に一票(笑)

2. 電脳街

せっかくだから、帰りにアキバ。DVD-Rメディア以外、特に買うものはないんですけど。古本とか中古ゲームで、いいのがあればゲットしまくりたかったんですが、生憎ゲットできませんでした。

2.1. 魔女

リバティでマジカルエミのLD-BOXが9000円くらいで置いてありました。ちょっと、いや、かなり惹かれて、危うく買ってしまうところでした。まったく、油断も隙もありません。

2.2. トラブル

てんやで食事してたら、近くのカウンター席に座っている中年男性が、店員に文句をつけてます。

「俺、こんなん頼んでねーよ!アナゴ丼って言っただろ、アナゴ!アナゴだよ!」

そんな、何度もアナゴアナゴって。注文の取り間違いですかね。その後、アナゴ丼を持ってきた店員に、またアナゴアナゴ・・・はいはい。

私がそろそろ食べ終わる頃になると、こんどはレジの前で文句を言ってる人がいます。ヘリウムガスを吸ったような声で、

「便所に行って手洗わないのといっしょだろ!便所!」

さっきとは別の中年男性のようです。肉声がヘリウムガス声の人?すごいです。いや、何怒ってんだか知りませんけど、メシ食ってるときに、便所便所って・・・荒んでますねぇ。

9月 18日 (水)

1. 相変わらず

ひま。

1.1. HTML DTD

今日もHTMLのお勉強です。文字の実体参照一覧に対応してみました。ついでに、DTDからは読み取れない情報を付加するため、外部ファイルに文書のメタ情報を持たせておき、これを出力に反映させる、と。これはせっかくだからXMLにします。

なーんか、変に機能が増えていきますよ? 謎。

9月 19日 (木)

1. サポート

本番環境でのテストが始まっているようですが、うちのチームはほとんど関係ないです。トラブルが起きたら緊急対応、くらいのものです。

が、その「緊急対応」のために24時間態勢で臨んで欲しいんだそうで。うちのチーム(二人しかいませんけど^^;)は基本的にヒマですから、まぁ一人いればいいだろうと。24時間態勢といっても、9時〜24時ですし、シフトで何とかなります。

つーわけで、今日と明日は私が夜間勤務です。昼過ぎから出社して、午前0時まで。タクシー帰り確定です。

1.1. HTML

外部ファイル(XML)にインクルード機能を追加しました。includeタグくっつけただけですが(笑)しかもXML自体は独自パースで、かなりいい加減な解析しかしてません。まぁ、動けばいいや(笑)

9月 20日 (金)

1. 夜間勤務

ひま。以上。

1.1. HTML

だいぶ形になってきました。それなりに見られるかと。メタ情報をもっと充実させないといけませんね。HTMLの仕様書からパクったのがバレバレですから(笑)

暫定版(/~mey/uglabo/htmlref/index.html)

9月 22日 (日)

1. VM JAPAN

一日中VM JAPAN をやってました。SNタクワンクリア。あまり考える必要のないキャラですね。シナリオモードはロクロウよりも楽かも。

9月 23日 (月)

1. 歌データDB化計画

なんか、計画を持ち上げては中途半端に終わってる気がしますが、作る過程が面白いんで、これは良しとして・・・(いいんかい)

家にある歌データを集めてDB化しようかと思ってます。曲名、歌手、歌詞、etc あたりを中心に組めばいいかな、と。つーか、すでにLAPP(Linux, Apache, PostgreSQL, PHP)で実装中だったり。しかし、DB化するほどのデータがあるか(集まるか)どうか、それが問題。

9月 24日 (火)

1. 日次

100% Pure ヒマ。なーんも障害が上がってこないので。

そういや、本番テスト(?)やった人に聞いたんですけど、日次バッチ(毎晩実行される一連のプログラム)が11時間かかったとか。・・・ねえねえ、それって、ヤバくない?

2. HTMLマニュアル化計画

大きなミス発覚。A(anchor)要素の子要素にA要素?!ダメじゃん。DTDを見ると、

<!ELEMENT A - - (%inline;)* -(A)

となっています。 "%inline;" にA要素が含まれていますが、 "-(A)" で取り消されなければいけません。 Anchorのほかにもこんなのがいくつかあり、 それらが全部間違った出力してました。

いやぁ、 "-(X)" は盲点でした。やっぱ、いい加減なパースじゃだめですかね(^^;

2.1. 省略

ついでにもうひとつ。DTD内でのエンティティ参照 (%xxx;) のセミコロンの省略ですが、HTMLの仕様書をよく読むと、「省略され得る」と書かれていました。ドキュメント中の実体参照 (&xxx;) のセミコロンは省略できないのに・・・まぎらわしいなぁ。

3. りりか計画

'lyrica'で検索してみると、バンドの名前やらSF研究会やら少女雑誌やら、いろいろ出てきました。結構かぶってますねぇ。どうしましょ・・・

9月 25日 (水)

1. CSV

今日もヒマ・・・かと思いきや、久々の仕事です。

入力ソースとしてCSVファイルを扱う部分があるのですが、CSVの解析処理を機能拡張して欲しいということです。なんでも、データにカンマがある場合に対応するんだそうで。ハァ?

そんなこともあろうかと読んでいたかどうかはわかりませんが、データはすべてダブルクォーテーションで括られています。じゃ、ダブルクォーテーションのペアを基準に解析すればいいのね、と思いきや、データにダブルクォーテーションもあるんだそうで。ハァ(゜Д゜)?

今さら何言ってんでしょうかね。CSVにしたらデータにカンマは使えないなんて、当たり前じゃないですか。ダブルクォーテーションで括ったら、データにダブルクォーテーション&カンマを使えないのも当然。

こういうデータがあるのに、何でCSVなんて採用したんでしょうか。どういうデータがあるか、なぜ設計前に聞かなかったのでしょうか。上流工程連中のセンスを疑いますね。

変更を依頼してきた人に、

「データ中に、ダブルクォーテーションとカンマがこういう組み合わせで存在したら、カラム数を誤認しますよ」

「こういうデータでは意図したとおりに解釈されませんよ」

「本当にそれでいいんですか?」

しつこく聞いたら、

「そういうデータは来ないとして・・・」

だって。ダメだこりゃ。

1.1. そういや・・・

CSVで思い出しました。このプロジェクトでは、外部データファイルなどのデータ形式等を書く、「ファイル定義書」なるドキュメントがあります。この「ファイル定義書」なんですが、すごいんです。「ファイル形式」という項目があり、なんと「CSV」と「固定長」の2択!信じられません。

この2択ってのもすごいですが、バカなことにその下には「区切り文字」なんて項目もあります。CSVで「区切り文字:タブ」とか書くんですか?

ああ、なんか頭痛くなってきました。もう寝ます。

9月 26日 (木)

1. AIRRADE SUMMER

1.1. game

ノーショット裏葉、ついに6億突破です。

シューティングなのにノーショットをメインにしてるというのも、なんだかアレな気がしないでもないですが。

9月 27日 (金)

1. AIRRADE SUMMER

1.1. game

ノーショット裏葉、6.15億。

9月 28日 (土)

1. AIRRADE SUMMER

1.1. game

ノーショット裏葉、6.29億。1面クリア時に3000万、3面クリア時に1.3億あるといい感じです。パンチ900以上、リカバリ800以上、これだけでボーナス2.5億オーバー。

2. なにか

perlでSSTP通信をやってみました。だからどうと言うこともないのですが・・・

CGI経由でチャットができる?

3. HTMLリファレンス

HTML 4.01 Transitional のDTD解析が間違っていることが判明(またかよ^^;)

エンティティ foo が文字列 "IGNORE" を表すとき、エンティティbar はいったい何を指し示せばよいのか、という問題です。

<!ENTITY % foo "IGNORE">
<!ENTITY % hoge "HOGE">
<!ENTITY % hau "HAUUU">
 ...中略...
<![ %foo; [
    <!ENTITY % bar %hau;>
]]>
<!ENTITY % bar %hoge;>

エンティティを二重定義したときは先に定義したものが優先される、IGNOREブロックは無視される、等の規則(?)から、先にエンティティだけをまとめて解析&展開するといったことができないことが発覚した次第でして。

特に HTML 4.01 Frameset の DTDは、自身ではほとんど何も定義せず、これらの性質を利用したうえに、外部DTDの参照(実質インクルード)までしてやがります。その参照先が HTML 4.01 Transitional の DTDなもんだから、TransitionalのDTDはFramesetとの折り合いをつけるべく、上記のようなことをやっています。ああ、なんていやらしい書き方するんでしょ。

4. AIRRADE SUMMER

訂正。その後、ノーショット裏葉、6.49億。パンチ&リカバリが1000/900を超えてました。このボーナスだけで2.8億以上稼いでますね。

9月 29日 (日)

1. AIRRADE SUMMER 完成版

先行版のアップデートが公開されたので、更新しました。でもって早速プレイ^^

1.1. 連鎖

全体的に敵が増えた分、連鎖が繋がりやすくなりました。TAポイントとか、またパターンの作り直しですね・・・

1.2. SUMMERモード

めちゃむずい!

体力1、残機0スタートなのは先行版と同じですが、今回は体力の回復ができません。ステージクリアしても回復しません。なにせ、最大HPが1しかありませんから。

1UPしか頼れるものがないのに、4面で少年の投げる帽子を取っても、1UPしません。ひどいです。拷問です。それでも観鈴でどうにかクリアしましたけど・・・

ボーナス何もなし(涙)

1.3. バグ?

  • SUMMERモード4面で少年の投げる帽子を取ると、500000ptsの表示がステージクリアまで消えません。
  • 2周目で強制終了するバグは直ってないようです