倦怠期

2006/05/31

プログラムを作っていると、やる気が亢進して作業がどんどんはかどる時期と、停滞してほとんど何も手に付かない時期がある。数分ないし数時間単位の、周期の短い変化もあるが、数日から長ければ数ヶ月単位の波長の長い変化もある。

一体どういう心理作用なんだか分からないが、倦怠期にはいると進捗がはかばかしくなく、自分でもほとんど止まっているのではないかと思える時もある。

で、とうとう嫌になって放り出したりする事もあるのだが、それがまた気分が変わってきて、以前投げ出したプログラムを引っ張り出してきて、いじりだしたりすることもあるから不思議だ。

倦怠期とは言っても、必ずしもプログラミング全体が嫌になるというわけではない。ある特定のプログラムを作るのが嫌になるのだ。嫌になるというより、自分の気持ちが満たされてしまうと言った方が正しいか。

例えば今なら「主筆」をいじるのが嫌になってきたとしても、それはプログラミングという行為全てが嫌になったのではなく、「主筆」をいじるのが嫌になったに過ぎない。他のプログラム、例えば何らかのゲームとかの開発にのめり込むこともある。

各プロジェクトごとに、欲望だか向上心だか知らないが何かバイオリズムのような物が、非同期的にかつ周期的に変動している。

別にだから何だというわけでもない。ただ、あるプログラムに対するモチベーションが下がったときに、他のプログラムに移ったとしたとき、その作業内容が元のプログラムにも反映されるようにプログラムを作れば、作業効率は向上するのではないかと思う。

要は再利用性の高いプログラムを作ると言うことに他ならないのであって、今更いうまでもないことではあるのだが、プログラミングの作業効率という観点からすれば、必ずしも再利用するのはプログラムに限った話でもないように思う。

技術の習得であっても、今後のプログラミングの役に立つライブラリやツールでもいい、とにかく費やした作業時間がその後で有効活用されるような活動をしたいものだ。

人生、使える時間は限られているのだし。

Solaris8版主筆のパッケージの作成

2006/05/30

Solarisのパッケージの作り方を、曲がりなりにも書いて公開したから、今度は主筆のパッケージの作成に取りかかっている。

一応、昨日の夜だけでSolaris8でコンパイルした奴のパッケージを作ってみた。とりあえず、まだ公開するつもりはないから、あんまり深い事を考えずにやってみただけなのだが。

とりあえず、実行したときの画面

まぁ、当たり前だが、特に問題はない。だが、いくつか決めるべき事項があるようだ。

1.インストール先
Solarisの習慣では/optに入れる事になっているのだが、Linuxの習慣では/usr/localである。中には/usr/localでなければ受け付けないという人もいるようだが、しかし、ここはSolarisの習慣に従っておこう。何分、このソフト自体がすでに「Solaris用」を名乗っているのだから。

2.パッケージ名
pkginfoファイルの説明を読むと、「パッケージの名前の先頭4文字はベンダを識別する文字列にするべき」と書いてある。

だが、他のソフトのパッケージを見る限りでは、必ずしもこの習慣に従っているとは限らないようだ。それにそもそも「ベンダを識別する文字列」は一体何にしたらいいのだろうか?

Sunはなぜか知らないが"SUNW"という文字列を使用している。じゃ、俺はどうするか。ハンドル名"nabiki_t"そのままでは長すぎるから、ちょっと縮める事を考える。

候補としては"NBKT"・"NABI"・"NABT"なんかが考えられる。とりあえず、既存の会社と重複するのは不可という事で、"NABI"は消滅する。

"NBTK"と"NABT"が残ったが、どちらがいいのだろうか?

3.インストール先フォルダ名
Sunのソフトは、/optの下に"SUNWxxx"という名前でインストールしている。その流儀に従えば"NBKTsyuhitu"ないし"NABTsyuhitu"になるのだろうか、ちと長いような気もする。それに、他のソフトは大概にして、そういった流儀はとっていないようだ。

ここは単に"syuhitu"とするべきなのだろうか?

4.CDEの設定
技術的には、インストールした時点で強制的にCDEの設定を行ってしまう事ができる。全ユーザにこの設定を強制する事もできる。

だが、本当にそれでいいのだろうか? 個別のユーザの意志に任せた方がいいのではないだろうか?

しかし、このソフトのターゲットはどう考えても個人ユーザだ。それに、パッケージ化した時点で、インストールするのにroot権限が必要になってくる。

そう考えると、CDEの設定をやってしまってもいいような気がしなくもない。 どうするべきだろうか?

5.manページの作成
一応、用意するべきなのだろうか? SolarisではPDFは余り便利とは言えない形式だしな。


大体以上のような事が未定のまま残っている。第16版公開までには決めておこう。

ビデオデッキ

2006/05/29

最近、ビデオデッキの調子が悪い。

録画したテープを見ていると、時々音と画面が乱れる事がある。どうやら、録画中に何かがあって、おそらくはテープの回転速度が遅くなって、映像が乱れるのではないだろうか?

原因は何なのか? 一番単純な答えとしては、ビデオデッキそのものが壊れたという事なのだが、諸般の事情でそれは認めたくない。

とりあえず、他に原因を考えてみようか。

最近、寮の電源設備が不安定な事を考えると、録画中ないし再生中に瞬断が発生しテープ走行速度が不安定になっている、という可能性もある。

あるいは、テープが痛んでいる、アンテナ系統の不具合なども考えられる。

だがしかし、比較的新しいテープを使っても同様の症状が生じることから、テープの痛みは否定される。また、音と映像の乱れの様子から、アンテナ関係の問題とも考えにくい。

映像の乱れが必ず同じところで発生するのであれば、乱れた映像がテープに録画されているためであると言える。だが、必ずしも常に同じところで乱れるとは限らない。が、逆にいつも同じところで乱れる場合もある。

つまり、不具合は録画・再生の両方で発生しているという事だ。

以上の考察からでは、ビデオデッキ自体の不具合の可能性は否定されないが、電源設備の不調も否定できない。

どうするのが一番いいのだろうか。

俺としては、買い換えるのであればblu-rayディスクかHD-DVDのどちらかにしようと思っている。今更DVDのレコーダーを買う気は毛頭無い。

だから、今この時期にビデオデッキを買い換えるのはなんとしても避けたいのだ。

一番少ない投資で最高のパフォーマンスを得るにはどうするのが一番いいのだろうか?

英文

2006/05/28

英文とはいえ、人間が書いている限り間違いもあれば不明瞭になる場合もあるだろう。文章の運びや言い回し、単語の選択など、読みにくいものになる場合もあるだろう。

Sunのマニュアルを読んでいて、どうにも意味がつかみかねる文章が多くて、今まで大分苦労してきたのだが、この苦労は必ずしも俺の脳味噌の働きが鈍いせいでもないようだ。

酒(ブランデーだな)の勢いを借りて、声を大にして言わせてもらおう。Sunのマニュアルは分かりにくい。文法がむちゃくちゃだ。

日立のマニュアル(仕事でよくお世話になる)も分かりにくい事で有名だが、しかし、アレはまだ文法に間違いはない。一文が長かったり、係り受けが複雑だったり、曖昧な言い回しだったりして、直感的に理解しにくい文章ではあるが、しかし日本語ではある。

だが、Sunはどうだ。もう一度言おう。あれは英語ではない。一体何なんだ。あの片言英語は。おまえらそれでもアメ公か。俺の書いている英文とすっとこどっこいじゃねぇか。

外部に公開する正式なマニュアルなら、文法上のミスやタイプミスぐらいちゃんと添削しろよ。仕事だろうが。


それに比べると、jpeglibに付いてくるREADMEの英文は分かりやすかったな。あの文章は不思議と理解しやすかった。読んでいると、何となく俺の頭が良くなったような気になってくる。平易で明確に書いてあった。

俺も下らないWebサイトを作っている身として、あるいは社会人として文章を書かざるを得ない立場にいるものとして、分かりやすい文章を書くように心がけたいものだ。

だがしかし、文章の書き方は「心がけ」だけでどうにかなるもんではないんだかな。事によれば、プログラミングよりも深遠なテーマだしな。……練習あるのみ、なんかいな。やっぱり。

pkgmk

2006/05/27

pkgmkコマンドのmanページの英文がマジで意味不明。

Prototypeファイルに記述したパス名と、-bや-rに指定したパス名の関係がさっぱり分からない。

似たようなものが複数あって、そいつらが複雑に絡み合って、最終的なパス名が決定されるから、ただですら分かりにくいのだが、それがあのトンチンカンな英文のせいでますます意味不明になってる。

どうやら、いくらか省略した言い回しをしているらしい。そのせいで、俺のおつむでは理解できなくなってる。

ちゃんと分かりやすい文章を書け、馬鹿野郎。

仕方がないから、Prototypeファイルのパス名にフルパスを指定した場合と相対パスを指定した場合、-bと-rのそれぞれを省略した場合・フルパスを指定した場合・相対パスを指定した場合、の全ての組み合わせをやってみて、どういう結果になるのかを確かめてみた。

すんげぇ疲れた。

それもこれも、mamページを書いた奴が悪いんだ。アメリカ人ならちゃんとした英文を書け、このタコが。

Solaris8版主筆

2006/05/25

ようやくSolaris8上で主筆をコンパイルした。せっかくだから、このままパッケージ化してSolaris8対応版として公開してもいいのかも知れない。

だが、やっぱりやめておこう。今するべきはパッケージ化の方法をまとめてWebに公開することだ。やり始めた仕事は完遂したい。

しかしそれにしても、英文が分かりにくい。英語である上に、言っている事の意味が分からない。もう疲れた。

PV数とクリック数

2006/05/23

このところ、WebサイトのPV数は順調に増えつつある。4月後半に多少落ち込んだような気もしたが、それは一時的な傾向に過ぎなかったようだ。

だが、広告のクリック数は増加していない。すなわち、クリック率がPV数に反比例して減少しつつある。

それでは元も子もないのだが。誰も好きこのんで只で情報を公開しているわけはないのに。

まぁ、今のところは確率的な問題から多少少なくなったように見えるだけ、という可能性も捨てきれないし、おそらくはそうだろうから、しばらく様子を伺ってみるつもりではいる。しかし、抜本的対策としてのクリック率増加作戦について、考えておいても損はないだろう。

クリック率を増やすにはどうしたらいいか。

いろいろあるのだろうが、一番単純安直なのが、広告が広告と分からないよう、コンテンツの中に紛れ込むようなデザインにする事だ。要はだまし討ちという事だ。

だが、それは俺の信義に反する。許し難い。

広告数を増やす、というのもあるのだろうが、あんまり数が多いと嫌われる危険性がある。最近は、むしろ逆に広告数の削減を図っている。この間、何ページか広告を削った。

配置や色・形・大きさなどによって、多少クリック率が変化するらしいのだが、いろいろと実験するだけの気力がない。

一日当たりのPV数がある程度あるのであれば、そういった実験もやりやすいのだろうが、数が少ないと時間を掛けて傾向を見極めなければならないため、気力が萎える。

結果が出るまで数ヶ月かかるような実験をやる気にはなれない。


……やはりPV数そのものを増やすのが一番手っ取り早い対策という事になるのだろうか。

再インストール

2006/05/22

X86版Solaris10の調子が悪くなってきたから、というか、環境を破壊してしまって元に戻らなくなってしまったから、再インストールしておいた。

とは言っても、元々ディスプレイ周辺の調子が悪いから、再インストールしたところでそれ程よくなるわけではないのだが。

起動するととりあえずはログイン画面が表示される。ところが、そこからログインしようとすると、画面が真っ暗になって、何もできなくなってしまう。その他の状況から鑑みると、どうも起動してはいる様なのだが画面だけが死んでいるらしい。

ちゃんと画面を表示させるには、一旦コンソールでログインして、kdmconfigで設定をし直す必要がある。しかし、kdmconfigのデフォルトの設定は、ちゃんと前に設定したとおりの値になってる。なんで起動するたびにkdmconfigが必要なのかどうにも分からない。

単純に考えればグラフィックボードのドライバか何かがちゃんとインストールできていないからなのだろうが、しかし、ログイン画面はちゃんと表示できている。なぜなのだろうか?

まぁ、余りx86版の奴は余りまともに使おうという気もないし、そもそもSolaris10を走らせるにはCPUが遅すぎて使ってられないしな。

もし今度PCを新しく買い換えるような事があったら、ちゃんと使えるように設定してみる事にしよう。

今後の予定と現在の作業内容

2006/05/18

主筆」第16版に向けて何をするか。

必須となるであろう機能はいくつか思い浮かぶが、とりあえず実装したいのは

  1. 右端で折り返し

  2. 改行コードの表示

  3. ルーラーの表示

  4. 行番号の表示

  5. Undo/Redo中の中断ボタンの表示

  6. ウインドウの分割表示

  7. パッケージ化



この中でも1と6は難易度が高い。データ構造やプログラムの構造をかなり大きく変更しなければならない。だが、7は簡単にできる。そもそもこれはプログラムの問題ではない。

pkgaddやpkgrmで追加や削除ができるようにするのは、前々から考えていた事ではあるが、先送りにしてきて現在に至っている。この辺でそろそろ対処しなければならないと考えていた頃だ。いい機会かも知れない。

それに、パッケージ化の方法をまとめてWebページに追加するのもいいだろう。そういう事で、現在はパッケージ化に関わるmanページやwebページを頑張って読んでいる。

日本語のページでもパッケージ化について書かれたところがないわけではない。だが、そういったところは、大まかな概略について書いてあるだけだ。後発の俺がそいつらに負けないようにするには、できるだけ詳細な情報を提供しなければならない。まぁそこに勝機がある訳なのだが。

いずれにせよ、今現在はパッケージ化の方法を調べている最中だ。

主筆第15版を更新

2006/05/16

結局、この間のバグを修正した奴を第15版として公開しておいた。放置しておくには余りにも重篤なバグだから更新せざるを得ないし、かといって第16版とするのは面倒くさい。

一応、更新する際には必ず版番号を上げるというルールでやってきたのだが、今回は例外としておく事にした。とは言っても、前例が無いわけではないのだが(第5版でやってる)。

「主筆」は、一応Vectorでも公開しているのだが、そっちは放置しておく事にした。バージョン番号を変えていないという都合と、実際に更新されるまでにはタイムラグがあるとか何とか、いろいろと面倒だからやめておいた。Vectorの方からダウンロードした人には、諦めてもらうほか有るまい。

そういえばVectorといえば、「主筆」が公開される区分がまたしても変わった。今まではSolaris > SPARC用のところにあったのだが、今回からはUNIX > 文書作成 > テキストエディタに移った。

元々はUNIX……の方にあったのだが、それがいつの頃からかSolaris……に移されて、それが元に戻ったという形になった。別に俺としては変えてくれとか、移してくれといった覚えはないのだが、勝手に変えられた。

一体どういうルールで決定されているのだろうか? もしかしたら担当者の腹一つで決定するのだろうか? まぁ、別にどうでもいい事だが。

アイコン化解除

2006/05/15

Motifでアイコン化を解除するには、
Display *pDisplay = XtDisplay( シェルのウィジット );
Window window = XtWindow( シェルのウィジット );
XMapWindow( pDisplay, window );
とすればいいらしい。

ところが、この直後に
XSetInputFocus( pDisplay, window, RevertToParent, CurrentTime );
とすると、前と同じくBadMatchが生じる。

詳しいことは知らないが、どうやらXMapWindowの呼び出しが処理される前にXSetInputFocusが実行されるのが原因らしい。

とりあえずXmUpdateDisplayという、溜まっているイベントを先に片づけさせる関数を呼んでやると、うまくいくようだ。

つまり、結果としては
Display *pDisplay = XtDisplay( シェルのウィジット );
Window window = XtWindow( シェルのウィジット );
XMapWindow( pDisplay, window );
XmUpdateDisplay( シェルのウィジット );
XSetInputFocus( pDisplay, window, RevertToParent, CurrentTime );
となるらしい。

とりあえず、覚え書き程度に。

アイコン化解除

昨日見つけてしまったバグを潰したいけど、どうやって対処したらいいのかが分からない。

現在は、主筆サーバからイベントを受け取ったときにXSetInputFocusを呼び出すようにしている。ところが、ウインドウがアイコン化されているときにこれを呼び出すと失敗する。

対処としては、アイコン化されているか否かを調べて、もしアイコン化されていた場合にアイコン化を解除して、その後にXSetInputFocusを呼んでやる、という事になるだろう。

ところが、どうにもアイコン化されているか否かを調べる関数と、アイコン化を解除する関数が分からない。そういったものが有るのか無いのかも分からない。

アイコン化する関数だったらXIconifyWindowというのがある。じゃなぜその逆がないのか。他ので簡単に代用できるからなのか、今更説明するまでもないほど簡単な事だからか。

いずれにせよ、どうにか対処しておかないとまずい。どうすればいいのだろうか?

バグ

2006/05/14

いつもの事だが、またしてもバグの存在を発見してしまった。というより、なぜ今まで気が付かなかったのかが不思議に思える。

ウインドウを最小化している状態で、そのウインドウが開いているファイルを開こうとすると、主筆が終了してしまうのだ。

別の言い方をすれば、アイコン化されているときに能動的にフォーカスを取得使用とすると、BatMatchとか何とか言うエラーが発生して、プロセスが終了させられてしまうのだ。

もうね、もうね、俺はアホかバカかと。何で今まで一度も、アイコン化されたときの挙動を調べていなかったのかと。

まぁ、嘆いていても始まらないから、とにかく修正する必要がある。だが、その後はどうする?

第十五版のままひっそりと更新しておくか、急遽第16版を公開するか、しばらく放置しておいて、いくつかのバグをまとめて修正してから第16版として公開するか。

なんだかんだ言って、リリース作業は結構手間のかかるものだし、一つ版を上げるとなると、いろいろとやらなければならない事がある。そうすると、俺的にはしばらく放置するやり口が一番魅力的に思えてくる。

だが、明々白々なバグを放置しておくのは「主筆」の将来に悪影響を及ぼす恐れがある。しかしながら、そもそも「主筆」には将来性などというものがあるのかが疑わしいし、どうでもいいといえばどうでもいい。

最近は、機能の追加よりも安定性の向上の方が重要なような気がしてきたところで、どこかで綿密なテストを行おうと考えていた。

だからここは、テストを行って、ある程度バグを潰してから第16版として公開するようにしようかと思う。

それまではまぁ、放置することにしよう。

Solaris8へのSun Studio 11のインストール

2006/05/13

この間、Sun Studio 11のリリースノートとやらを見てたら、その中にSun Studio 11ではbashが必要になる、という記述がある事に気が付いた。

だが、インストール対象のSolaris8にはbashを入れていなかった。だから失敗していたらしい。

一応、試しにbashを入れてからSun Studio 11をインストールしてやったら、あっさりと成功した。

今までの苦労は一体何だったのか。

気持ちはわかるが

2006/05/11

アニメの録画予約に失敗したという事で、テレ東に脅迫状が送られてきたらしい。4月26日は水曜日だから、おそらく「いぬかみっ!」か「.hack//Roots」だろう。

放送時間の変更のせいで録画予約に失敗したときの、やり場のない怒りと悲しみ。それはわかる。分かるのだがしかし、こういう事をされると、世のオタク達のイメージの低下につながるからやめてもらいたい。ただですら世間から冷たい目で見られ、不審人物扱いを受けているというのに、それをますます悪化させてどうする。


と、まぁ、それはいいとして、ここで一つ、こういった悲劇に遭遇しないための俺流の自衛策を紹介しておく。

1.放送時間変更への対策

通常、前倒しになる事はない。変更されるという事は必ず遅れるという事だ。だから、放送時間が変更される危険性がある場合は、あらかじめ長めに予約しておく事だ。興味のない番組が余分に録画されたところで、別に害はないのだから。

問題は、どんな番組が延長されるか、ということだ。

まず、スポーツ全般は延長される危険性が高い。野球はいうに及ばず、それ以外のものも伸びる可能性がある。例え卓球であったとしてもだ。

それに、まれに発生する事として、ニュース番組が伸びる事がある。何らかの突発的イベント、ちと古いが「ブッチホン」みたいな事象や、出演者(政治家とか)が長くベラベラとしゃべりまくった場合なんかには、放送時間の延長が発生する事がある。

まとめると、「生放送の番組は危険」という事になる。

2.テープの不足

録画予約をする前には必ず巻き戻す。というか、ビデオの場合は、見終わったら巻き戻す癖を付けておいた方がいい。

また安全策として、長めのテープを用意する。無論、録画予約をする際には、テープが不足しない事を確認する。

3.ビデオデッキの時計の精度

常に確認する。

4.録画する日付の確認

通常、深夜アニメを録画する場合、録画する日付は「明日」になる。ところが、深夜12時を回ると、その日付は「今日」になる。

この当然の事が、時々罠になる。つい、いつもの癖で「録画する日付は今日+1」で処理してしまう事があるからだ。

だから、録画する日付をちゃんと確認すると共に、現在の時刻が深夜12時を回っているか否かを確認する必要がある。

同じ要領で、12月31日と1月1日の境では、年号の確認をする必要がある。

5.チャンネルの確認

意外に間違えやすい。

6.午前・午後の確認

大概にして、午前・午後の表示は文字が小さい。十分注意する必要がある。

7.指さし確認

かっこわるいが、どうせ誰も見てやしないのだ。ちゃんと指さし確認をするべきである。

大体、こんなところだろうか。

今時、ビデオデッキで録画するというのもアレなんだが、まぁ、経済的問題から仕方がない事もあるしな。

次の更新

2006/05/09

多少遅れて昨日の夜になってしまいはしたが、とりあえずHHttpの第6犯を公開しておいた。

次は一体どこに手を付けようか。とりあえず主筆は第15版を公開したばかりだから、しばらく休むとするか。ここ最近更新していないものとして「祐筆」「くず箱」といった物があるのだが、今更これを更新しようという需要が俺の中に存在しない。

どうしても暇だったら多少手を加えてもいいのかも知れないが、必ずしも暇だとは言えない。それどころか、まとまった時間を取る事ができない状況にある。

ではどうするか。何もしないで放置しておいたら、今までの努力が水の泡と消えてしまう。

そういえば、最近は「Sun Studio 11」の解説ページを書いていなかったような気がする。

まぁ、これとてまとまった時間が取れないとなかなか書くのは辛いのだが、別に不可能というわけでもない。毎日ちょこちょこと書き続けていれば、いずれできあがるだろう。


仕事が微妙に暇なようで忙しい感じで、なぜか早く帰れないもんで、ソフトやwebページの更新が滞っているのだが、何とかして少しずつでも更新するようにしていきたいものだ。

HHttpの更新

2006/05/08

「主筆」第15版を公開してすることが無くなったから、勢いでHHttpを更新しておく事にした。このソフトは以前はVectorで公開していたのだが、余りにも人気がないから削除したという経緯があるソフトだ。

自分で使う事を目的に自分で作っただけのものなのだから、別にわざわざ公開しなくてもいいし人気が無くてもいいのだが、とりあえず公開するソフトの数を増やすという目的の為だけに公開している。

だから、自分の手元にあって使っている奴のバージョンが上がっても、バージョンアップ版を公開しないで放置していたのだが、昨日暇だったのに任せて更新する事にした。

今回は、中身のサーバの部分はほとんど変わっていない。一番大きく変化したのは、Windows用のインストーラと設定用のツールの部分だ。今まではサーバの機能の一部分にしか対応していなかったのだが、それを拡張した。

まぁ、貴重な休日を一日費やしたとて、何の利益にもならないのだがな。ダウンロードする奴がいるわけでもなし。


ところで、面白いのがgoogleで"hhttp"で検索すると25,500件もヒットするという事だ。もちろん、俺のHHttpがヒットしているのは、一番最初の1件だけだが。

それ以外の約25,500件は"http"のタイプミスか、あるいは意図的にそうしたものらしい。httpを意図的にttpとするのはある様だが、hhttpとするのもあるのだろうか?

別にどうでもいい事だが。

1ページ追加

2006/05/06

あんまり書く事もないので、Blade100に関する駄文を書いておいてみた

本当は、この内容以外にも玄人志向のCHANPON-3とかいうカードを接続した場合の話を書きたかったのだが、途中で嫌になった。

一応、接続しては見たものの、当然の事ながらそのままでは動くわけがない。ドライバを見つけてきて入れるほか無い。

CHANPON-3は、INITIOのSCSIとc-MediaのサウンドとNECのUSB2.0が一つになっただけの代物なので、基本的にはそれらのドライバを別々に入れてあげれば動作するはずである。だが、そのドライバを見つける作業が辛い。

たとえあったとしても、ちゃんとインストールして、正しく動作させるまでの道のりは遠く険しい。

自分にとって何のメリットもない事に、不要な時間と精力をつぎ込むのは余りにも馬鹿らしいし疲れるだけだから、途中で投げ出してしまった。で、結局その話は書かない事にした。

そうすると、全体としては余り面白い話は無くなってしまうのだが、やっぱり他に書く事もないし、とりあえずCHANPON-3は無しのまま公開してしまった。

まぁ、俺が飽きたら消そうか。

第15版公開

2006/05/05

逡巡したあげくに、結局Solaris10用バイナリだけで第15版を公開しておく事にした。後はWebページの方をそれに合わせていろいろと修正するだけだ。まぁ、この作業も結構負荷が大きいのだが。

主筆のアップデートとは全然関係ないのだが、昨日秋葉原に行ってみた。金がないから何も買う予定はなかったのだが、とりあえず運動と暇つぶしを兼ねて行ってみた。せっかく片道150円でいけるのだから。

そこでの一幕なのだが、俺が駅について昼飯喰って、電気街に繰り出した時の事だった。どっかの変な奴、カメラ持ってたからマスコミ関係の人間かも知れないし、あるいは単なるお上りさんなのかも知れないが、とにかく「秋葉原以外のところ」では普通一般に見られる若い男の集団に話しかけられた。

「メイド喫茶がどこにあるか知ってますか?」

まず、質問の内容が気に入らない。俺はそんなに秋葉系のオタクに見えるのか? そーゆー雰囲気を全身から発散しているとでも言うのか?

事実そうなのかも知れない。だがしかし、気にくわない。気分が悪いものは気分が悪い。

次に、質問の仕方が気に食わない。

俺の正面から近づいてきた奴は、俺の進路を絶つように前に立ちふさがり、突然話しかけてきやがった。しかも左の方にいた奴はカメラを俺の方に向けていやがった。

一体何なんだ、連中は。どこの田舎ものかは知らないが、余りにも常識というものを知らなさすぎる。人を動物扱いするな。そんな聞かれ方をされたら、例え知っている事であろうとも、まともな答えを返すわけがないだろうが。馬鹿が。

だが、何が一番気分が悪いかって、そんな連中に対して丁寧に「いやぁ知らないんで」と答えてしまった事だ。本来なら文句の一つも言ってやるのが礼儀というものだろうが、少なくとも無視して通り過ぎるぐらいの事はするべきだったのだろうが、とっさにそれができなかった。そんな弱気な俺自身に腹が立つ。

社会人として、強気で生きる事を日々実践しているはずなのに、いざとなるとそれができない。そんな自分が歯がゆく思う。

まぁ、主筆第15版の公開とは何の関係も無いのだが。

Solaris8版バイナリの作成

2006/05/04

そろそろ嫌になってきた。Forte C++ 6.0だとどうにもうまくコンパイルできない。できたと思ったら、起動時にプロセスがcoreを吐いて落ちる。

休日も残り少なくなってきたことだし、ここは一旦諦めて、今まで通りSolaris10版バイナリだけにして公開しようと思う。(それにしても、起動できないというのは気になるな。プログラムのバグなのだろうか? あるいはコンパイルがうまくいっていないだけなのだろうか?)

そうするとCD-RWドライブを買った主目的が達成できなくなることになるのだが、まぁいいか。バックアップ用に使いでがあるのだから。Solaris8でちゃんと書き込みができるかどうか心配だったけど、どうやら問題なくできるみたいだし。

余談になるけど、一応メモ代わりにCD-Rの書き込み方をここに書いておこう。

まず、書き込みたいファイルをISO形式に変換する。
mkisofs ファイル1 ファイル2 > isoファイル

CD-Rに書き込む
cdrw -i isoファイル

で、良いらしい。とりあえず、ちゃんと読み込める。

改めてみると、せっかくのBlade100の見てくれが酷いことになっているが、まぁ致し方あるまい。どうせ中身にもいろいろと手を加えてあって、もはや中古で売れるよな代物じゃないし。こうなったら徹底的にいじり倒してやろう。

Forte C++ 6.0

2006/05/03

いろいろ努力したが、結局Solaris8にsun Studio 11をインストールする事ができなかったから、Forte C++ 6.0を使うことにした。だからそれに併せて、MakefileをSun Studio 11とForte C++ 6.0とで共有して使える様に修正している。

そこでいくつかの点でつまずいたことがある。

まず、静的ライブラリの構築だ。第15版では実行ファイルが「主筆クライアント」「主筆サーバ」「主筆」の三つに分かれたのだが、当然のことながらそれらで共有して使うクラスやプログラムが存在する。そういった奴らは一旦静的ライブラリにまとめてからリンクするようにしている。

静的ライブラリに構築には、俺は単にarコマンドを叩けばいいものだと思っていたのだが、どうもそれではいけないらしい。Solaris8上のForte C++でコンパイルしようとするとリンクで失敗する。いろいろと調べた結果、C++のインタフェースを持つ静的ライブラリは、CCで-xarスイッチを指定して作成する必要があるらしい。・・・知らなかった。

次はWorkshop VisualとX-Designerの非互換性だ。

当然だが、Forte C++ 6.0についてくるWorkshop Visualで作成されたファイルは、Sun Studio 11についてくるX-Designerで読み込むことができる。だが、その逆はできないらしい。

これについては未だ有効な解決策を見いだしていない。最終手段として、X-DesignerでコンパイルしてC++のコードを生成させてからForte C++ 6.0でコンパイルするという方法もあるのだが、それはさすがに面倒だ。

そもそも、俺としてはソースコードでの配布も考えているのだが、もし上記の作戦を採るとなると、著作権的にどうなのだろうか? それにやはり、配布するファイルなどの作成が面倒になりそうだ。

できることなら、Workshop VisualとX-Designerの両方で読み込めるファイルを作成したいものだ。これは可能なのだろうか?

致命的欠陥

2006/05/02

テストしていて気がついた。主筆に致命的欠陥がある。

テスト項目としては、起動時のウインドウサイズと表示位置に関するものだったのだのだが、そのときテストの一環として、主筆を連続して多数起動してみた。そうしたら、主筆を起動できる回数に制限があることに気がついた。

61回目に起動したときに、プラグイン設定ファイルが読めなくなってプロセスが落ち、62回目からはフォントセットの構築に失敗してプロセスが起動できなくなる。

状況の再現が困難な(というか体力的につらい)事もあって原因追及が大変だったのだが、何とか理由を見つけた。

結局原因は、ファイルディスクリプタの使いすぎだった。「主筆」では、エディタとしての主筆が標準出力や標準エラー出力に吐くメッセージを、主筆クライアントが起動されたときに使用された端末エミュレータに表示できるよう、標準出力や標準エラー出力の付け替えを行っている。ところが、それが原因でファイルディスクリプタの不足が生じるようになってしまったのだ。

対処としては、不要なディスクリプタを閉じるようにすればいいだけなのだが、それがどうも難しい様な気がする。状況が複雑で、まだ正確なバグの発生状況を突き詰められていないのだ。

だが、元々こういう事をやっているのはデバッグの為であって、基本的にリリース版では必要ない機能を実現するためなのだ。それを考えると、この処理を取っ払ってしまうという対処も考えられる。だから、問題の箇所をコメントアウトするだけでよしとしておいた。

この問題は第16版以降で対処することにしよう。

リソース設定のバグ

2006/05/01

リソースの設定を変更した場合のテストを行ってみたら、バグが何件かあった。

もっとも、普通いじる必要がないような所だったり、あり得ない値を設定した場合におかしくなるという物なのだが、一応、バグはバグなので修正しておいた。

この調子だと、他にも多数あるような気がする。でもまぁいいか。


Blade100にSolaris8をインストールする作業はだいたい終わった。だが、そこにSun Studio 11をインストールする段で詰まっている。何が原因なのかは判らないが、インストールで失敗する。中途半端な状態でインストールされてしまうのだ。

初めはロケール周辺の問題かと思ったのだが、必ずしもそうではないようだ。英語ロケールで英語版だけをインストールするようにしても、同じ問題が発生するようだ。

また、インストール時に-nodisplayスイッチを指定しても同じだ。(Solaris8だと、X端上でインストールすると-nodisplayの指定が無視されるらしい。だからtelnet経由でインストールしてみた。)

こうなったら、以前のForte C++を使うことにしようか。せっかく金を出して買ったソフトだ。死蔵しておくのはもったいない。

だが、Makefileとか何とか、いろいろと変更しなければならないことがあるし、Sun Studio 11とForte C++ 6.0を平行に使えるようにするのは何かと面倒くさいことがある。それに、せっかくだから新しいコンパイラでコンパイルしたいし。

悩ましい問題だ。