随感録 1999年8月

1999-08-01 (Sun)

 ハマる。

    window = XtCreatePopupShell("preedit-shell",
                        overrideShellWidgetClass, top_widget, NULL, 0);
    canvas = XtVaCreateManagedWidget("canvas", formWidgetClass,
                    window,
                    XtNwidth, 10, XtNheight, 30,
                    NULL);
    XtAddEventHandler(canvas, ExposureMask, False, onExposed, this);
としていて,onExposed()で描画しているんだが,realize時の大きさの部分しか更新されない。windowだけ大きさが変わっていてcanvasが変わってないのかと思ったが,そうでもないらしい。

 なぜ?

1999-08-03 (Tue)

 とても凹む。

 「適当」がモットーの私が今年はちょーっと本気になったのに,全然ダメ。会計公準,建設業,不動産業かー。

 終わったあとの飲み会で道を選択するかも,と吐露したところ,まだ早いと説得される。

 独学の限界は知らされたので,やるにしても来年は専門学校を使うか。

1999-08-04 (Wed)

 Q's Nicolatter for Linux, v1.0公開!

 Linux機の電源の調子がますます悪化。nicolatterのコンパイル中に電源が落ちて,再起動したときのファイルシステムのチェック中にもう一度落ちる。これはちょっと青ざめた。実際,ファイルシステムに破損があって,相当寒い。

1999-08-05 (Thu)

 Q's Nicolatter for Linux, v1.0.0a公開。Linuxな世界がWindowsな世界とどのように違うか知る。あるいは「敷居が高い」や「恐い」という言葉の意味。

1999-08-09 (Mon)

 土日と淡路島,徳島,金比羅さんへ行く。台風が心配だったが,特に問題なし。日焼けが痛い。

1999-08-11 (Wed)

 日焼けはだいぶ直ってきた。なんか脱皮してるみたい。

1999-08-13 (Fri)

 にこらった1.0.1公開。簡易テキストエディタの書き直しが終わってないが,この週末は来客があってPCに触れそうにないので,気にしないことにした。

1999-08-15 (Sun)

 昨日の朝,ついにLinux機の電源が反応しなくなった。仕方ないのでちょっと日本橋に立ち寄ってもらって,電源だけ買ってくる。

 最近の私は部品レベルなんて全然気にしないので,適当に店員を呼び止めて,「これこれこうゆう仕様で,一番安いの」とか言って,選んでもらうことが多いが,しかし,オタクな店員って,ホントに「役に立たない」。

 今日は昼からビリヤードに興じる。なかなか深い。

1999-08-17 (Tue)

 Linux + glibc環境でどういう名前のロケールが実際に使えるか調べてみる。glibc 2.0というかlibwcsmbs + wcsmbs-localeはボロボロな感じが。

 まずはglibcでサポートされているように見えるロケール名でsetlocale()して,XSupportsLocale()で弾かれないか見てみる。

与えたロケール名 Xサポート
ja OK
ja_JP.iso-2022-jp.strictN/A
ja_JP.iso-2022-jp N/A
ja_JP.jis-1978 N/A
ja_JP.jis-1983 N/A
ja_JP.jis-1990 N/A
ja_JP.jis N/A
ja_JP.sjis N/A
ja_JP.ujis OK
ja_JP OK

 XFree86はSJISはサポートしてないのかな?

 次に,Xでサポートされるように見えるロケール名で同様に試してみる。

与えたロケール名 libcサポート
ja ja
ja.JIS N/A
ja.SJIS N/A
ja_JP ja_JP
ja_JP.U90 ja_JP
ja_JP.S90 ja_JP
ja_JP.ujis ja_JP.ujis
ja_JP.eucJP ja_JP
Jp_JP N/A
ja_JP.AJEC ja_JP
ja_JP.EUC ja_JP
ja_JP.ISO-2022-JP ja_JP
ja_JP.JIS ja_JP.jis
ja_JP.jis7 ja_JP
ja_JP.mscode ja_JP
ja_JP.SJIS ja_JP.sjis
japanese ja_JP
japanese.euc N/A
Japanese_Japan.932 N/A
japan N/A
Japanese-EUC N/A

 はて,エンコーディング名って大文字と小文字を区別したっけ? それにしても酷い。

1999-08-18 (Wed)

Cマガジンを買ってくる。全然お金がないのに? ちょっと暑さにやられてたのかもしれない。

パラパラと読む。岩谷宏の日本ダメ論が冴えてるね。日本人全部ダメ,ってそんな大雑把な捉え方されても正しいともなんともいえないが,岩谷宏がいいかげんかつダメってのはよく分かる。

# Unicodeの言語タグ,文字が同じということ

Tag(s): 文字コード

1999.07.02の日記で,Unicodeは言語タグでCJKを区別すると書いたが,違う気がしてきた。Unicode的には,C欄,J欄,K欄は異なる文字を統合(unify)して同じコードを与えたのではなく,字形の違う同じ文字と考えるのだと思う。そうすると,CJKの区別はフォントで行うべき,となる。言語タグは言語を指定し,文字が異なるわけではない。

Unicode批判派は,CJKは異なる文字で,これを統合したのがいけない,と主張してるでしょ? んー,文字が同じ,あるいは異なるっていうのは,どういうこと?

例えば次の字は同じグリフ(glyph, 図形表現,字形)に見えるけど区別される。同様に平仮名の「へ」と片仮名の「ヘ」も区別される。

名前 グリフ
U+0041 LATIN CAPITAL LETTER A
U+0391 GREEK CAPITAL LETTER ALPHA Α
U+0410 CYRILLIC CAPITAL LETTER A А

これは,グリフが同じでも,用字系(script)が異なれば違う文字と考えられるため。ということは,CJK各国の漢字文字集合で規定される文字の用字系が異なるかどうかで別のコードを与えるべきかが決まるということ。で,どうなの?

follow-up(s): 2000.03.06

1999-08-20 (Fri)

金曜ロードショーで『BLACK RAIN』を観る。高倉健,マイケル・ダグラス,松田優作,みんな格好良すぎ,花まる100点!

# 多くの人が見れるようなHTMLの書き方

Tag(s): Webデザイン

Webページを書くときは,見る人の環境が多様なことに注意する必要がある。Webブラウザをいくつも用意するのが大変なら,HTML 4.0に適合するようにタグ(要素)を書くだけでもずいぶん良くなる。

画面が狭い場合の表示も考慮しよう。しばしばtable要素で1行の長さを固定したデザインのWebサイトを見かけるが,ウィンドウの大きさがそれより小さいと,いちいちスクロールさせないといけなくて,大変見づらい。Webブラウザのウィンドウ枠をドラッグして大きさを小さくするだけで,実際にどのように表示されるか確認できる。

で,ちょっとHTMLファイルを見してもらったが,fontタグなんかを書く場所がおかしい。例えばsasa.htmだが,今はこうなってる。

<body background="chess.gif">
<br><br>
<font color=navy>
<table align="center">
<h3>
<strong><u> ○○○○氏の作詞集 </U></h3></font>

うーん,なかなか難しい書き方をしてる。私ならスタイルシートで何とかするが,一応HTMLだけでいくなら,次のようになるか。

<body background="chess.gif">
<h1 align="center">
  <font color="navy"><u><strong> ○○○○氏の作詞集 </strong></u></font>
</h1>
<p align="center"><font color="teal">
    <strong>- Soul of XXXXX XXXXXXX -</strong></font>

HTMLでは,要素は入れ子になってないといけないし,どの要素の内側にどの要素を書けるかも決まっている。すなわち,<font><h3>hogehoge</font></h3>ではなく,<h3><font>hogehoge</font></h3>と書かないといけない。

その次もシンプルにできそう。元はこう。

<br><br><br>
<table align="right">
<tr><td><h6>
<p><span style="background:cyan">
<u><h4>○○○○ PROFILE</h4></u></span></p>
<font color=gray>
<img src="sasab4.jpg"><br><br>
(略)
<br>
<br>
(略)
<br></font>
</table>

<table>
<tr><td>
<table align="left">
<tr><td>
<h5><br><br><br>
<u><h4>『(略)』</h4></u>
(略)
<br><br>
</table></table>
<tr><td>
<table align="center"><br><br><br><br><br>

tableとbr要素を駆使した,しかもtableタグでalign属性を指定するとfloating boxになることを利用したかなりの力作。

tableで左右に分割する場合は左側の内容を先に書いた方がどうやってもシンプルになる。tableタグ,tdタグにwidth属性を付けてみる。cyanという色名はNetscape Navigatorなどでは使えるものの,HTML 4.01には書いてないから,aquaを使う。u, span, font要素はh4要素の内側。

<br><br><br>
<table border=0 width="100%">

<tr><td width="80%">
<h4 align="center"><u>(1曲目のタイトル)</u></h4>
(詞。改行はBRタグ)
<h4 align="center"><u>(2曲目のタイトル)</u></h4>
(詞。改行はBRタグ)

<td width="20%">
<h4 align="center">
  <span style="background-color:aqua"><u>○○○○ PROFILE</u></span>
</h4>
<img src="sasab4.jpg" alt="顔">
<font color="gray">
(ここにプロフィール。改行はBRタグ)
</font>

</table>

なお,table,tdタグのwidth属性は%Lengthであり,'*'は書けないことになっている。

次に,画面中央を空けて左右に書くのは,次のようにすればできる。

<br><br>
<table border=0 width="100%">
<tr><td valign="top">
<h4 align="center"><u>(ここに3曲目のタイトル)</u></h4>
(ここに詞。改行はBRタグ)

<td width="30%">
<!-- empty -->

<td valign="top">
<h4 align="center"><u>(ここに4曲目のタイトル)</u></h4>
(ここに詞。改行はBRタグ)

</table>

1999-08-22 (Sun)

 購読していたメーリングリストを一部整理する。自分が発言しないのなら,購読しないでもWeb上などから検索できるし。

1999-08-23 (Mon)

 乱歩の本を買ってくる。今度は現代語訳されてるの。

follow-up(s): 1999.08.25

 依然として困ったことになっている。何が?

1999-08-24 (Tue)

 MSX関係の会報の文章を書く。MSXってえらく懐かしいが。一応1日で原稿用紙7枚ほど書いたが,書くネタがないとこんなものか。

1999-08-26 (Thu)

 HTML 4.01で書き直す。って

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
としただけ。HTML 4.01対応版のQ's SP Wrapperは明日にでも公開。

--
 Linux Japan 1999.10を買ってくる。次号予告が面白い。

 パラパラ眺めてると,プログラミングのコーナーに次のようなコードが書いてあった。一部簡略化して示す。

class ThreadTest
{
    pthread_t thr;
public:
    void start() {
        pthread_create(&thr, NULL, (void*) print, NULL);
        // ...
    }
    void print() {
        // ...
    }
};
 で,これがコンパイル時に警告が出て「恐かった」ですって。あのー,メンバ関数をそういう風に使うと,「必ず」正常に動かないんですが。そもそもgcc 2.95.1だとコンパイルできない。C++でのメンバ関数と普通の関数の違いとかその辺のことが全然分かってないみたい。

 普通はこんな感じかしら。

class ThreadTest2
{
    pthread_t thr;
public:
    void start() {
        pthread_create(&thr, NULL, print, this);
        // ...
    }
    static void* print(void* arg) {
        ThreadTest2* this_ = (ThreadTest2*) arg;
        // ...
    }
};

1999-08-27 (Fri)

 Q's SP Wrapper 1.14公開。xhtml対応は断念。

 Q's ResAlarmの開発が終了したことを明記。

--
 Xでフォーカスのないウィンドウって作れないのかなぁ? ツールパレットを作りたいんだが,ウィンドウ・マネージャ(の設定)によってはマウスポインタを重ねただけでフォーカスが移動してしまう。マウスポインタを重ねたり,クリックしても,フォーカスが移動しないようにしたいんだが。

1999-08-28 (Sat)

 『True Lies』を観る。何度観ても面白い。ちょっと一部カットされてたのが残念。核を見せられてシュワちゃんが冷蔵庫だ,いや電子レンジだとかいうシーンがあったと思ったが。あれ,お気に入りなのに。

--
 http://www.lares.dti.ne.jp/~hirotch/index.htmlが楽しい!

 この方はHTML入門を書いてらっしゃるが,HTMLとSGMLの関係が分かっていない。分かってないのにSGMLベースで話をしようとして,最初から説明が支離滅裂。

 特に「提言」なるものが面白い。徹底的な事実誤認とそれに基づく空想(妄想?)で彩られていて,わざとやってるんだったら素晴らしい!

 linux-users MLから辿ったのでLinux話も読んでみたが,手が付けられない,やっぱりわざと?

 私的には,LinuxがWindowsを置き換えるか? と聞かれれば,「用途による」としか答えられない。ファイル/プリントサーバーぐらいなら何の問題もない。この使い方で不安定って,それは何した? って感じ。

 デスクトップだと「まともな」Webブラウザがないのが痛い。一太郎とWordとExcelがないのも困るだろう,この手は私は最近使ってないが。あとPostPetもないな。PostPet for Linuxだけでもあれば,プリインストールすれば置き換えれるかも。Windows分だけ価格も安くできるし。

1999-08-29 (Sun)

 lilo (Linux Install Learning Osaka) の催し物に遊びにいく。あんまりLinuxに深くcommitするのもどうかという気もするが,顔を広げるのは悪くないし,それにほら,今私暇だし(泣)

 参加してた方々の印象を一言でいうと,「濃い」。見るからにマニアの方が多い。

 会の後,見た目普通の方々と飲みにいく。いろいろ裏話を聞かせてもらう。もっとも固有名詞がさっぱりなので,頭の上に「?」が点る。

1999-08-30 (Mon)

たらふく。私,全然用心深くないや。何が?

#

gimp 1.1.8の大量のエラーメッセージが出なくなるという話を聞いて,gtk+ 1.2.4に上げてみた。やっぱりgimpのエラー出るし,gladeが動かなくなった。むー,gtk+ 1.2.3に戻さないと。安定版といってもあまり追っかけしない方がいいらしい。

1999-08-31 (Tue)

 何を思ったか,大学に顔を出す。その帰り,電車代に毎回50円よけいに払ってたことに気づく。難波経由とごっちゃになってたらしい。むー。

 Oracleかー。あれは10万円ぐらいするし(*1),機械も15万円ぐらいって,趣味の範囲を超えるって。ほしいけど。PostgreSQLを週末にでもインストールしてみよう。

*1: http://linux.oracle.co.jp/