トップページ > 随感録 >

2000年6月の随感

ふらふらと呼吸する日々。

[最新の随感] [新規作成]

2000.06.02 (Fri)

 はい,5月度の月次決算終了。

 清文社から本が3冊,アスクルからMOディスク10枚到着。なかなか早い。2000.05.31

2000.06.04 (Sun)

 夏物のスーツを注文したり。

 キーボード,マウス,ディスプレイの延長ケーブルを購入。PCを押し入れにしまう。

 ミラーサイトを立ち上げてみたり。Netsphere Laboratories

2000.06.06 (Tue)

 会社の人間と飲みに行ったり。

2000.06.09 (Fri)

 昨日,今日と出張。昨日は岡山,広島,今日は福岡。かなり慌ただしい。

 Cマガジンの6月号がなかなか笑える。ちゃんとC言語の規格など原典を見て書くように。一例を挙げると,errnoをグローバル変数と仮定してはならない。というか今時のシステムでグローバル変数な訳ないだろ。

2000.06.10 (Sat)

 朝から明石へ。昼食をご馳走になる。夕方芦屋でバンド練習。その後焼肉定食。

2000.06.11 (Sun)

 2000.05.28の関係で三宮でボーリングと飲み会,花火。ボーリングたぶん新記録,168。

 xterm-utf8のXIMパッチを書く。が,xtermのオリジナルが文字,バイト,カラムの区別をしてないため,[Backspace]などがかなりおかしい。

2000.06.12 (Mon)

 ボーナス? でも寸志。

2000.06.14 (Wed)

 代休。笑っていいともを見たり。夕方から梅田へ。やや歪みが,あるいは僅かな退行か,で何が?

 うっかりWeb日記の検索ができなくなってたのを修正。

 パッチをまとめて公開するページを作成。<patches>

@ Unicodeフォントの表示 [文字コード]

#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <X11/Xlib.h>

static const char* FONT_NAME_UNI
= "-misc-fixed-medium-r-normal-ja-18-*-*-*-*-*-iso10646-1";

GC gc_uni;
XFontStruct* font_uni = NULL;

void onExposed(const XExposeEvent& e)
{
    static XChar2b text_uni[2];
    memset(text_uni, 0, sizeof(text_uni));
    text_uni[0].byte1 = 0x00;
    text_uni[0].byte2 = 0x41;
    text_uni[1].byte1 = 0x30;
    text_uni[1].byte2 = 0x42; // "Aあ"

    int x = 10; int y = 30;
    for (int i = 0; i < 2; i++) {
        XDrawString16(e.display, e.window, gc_uni, x, y, text_uni, 2);
        x += XTextWidth16(font_uni, text_uni, 2);
    }
}

int main()
{
    Display* disp = XOpenDisplay(NULL);
    Window top = XCreateSimpleWindow(disp, RootWindow(disp, 0),
                                     400, 200, 400, 100, 2,
                                     BlackPixel(disp, 0),
                                     WhitePixel(disp, 0));
    XSelectInput(disp, top, ExposureMask);
    XMapWindow(disp, top);

    font_uni = XLoadQueryFont(disp, FONT_NAME_UNI);
    assert(font_uni);

    gc_uni = XCreateGC(disp, top, 0, NULL);
    XSetForeground(disp, gc_uni, BlackPixel(disp, 0));
    XSetFont(disp, gc_uni, font_uni->fid);
    
    while (true) {
        XEvent e;
        XNextEvent(disp, &e);
        if (e.type == Expose)
            onExposed(e.xexpose);
    }

    return 0;
}

 Xのフォントにはアプリケーション・プログラムから見れば,1バイトフォントと2バイトフォントがある。Unicodeフォントは2バイトフォントになっている。

 2バイトフォントでもフォントの取得,GCへの設定は同じだが,表示は違うAPIでする。

  int XDrawString16(Display* display, Drawable d, GC gc, int x, int, y,
                    const XChar2b* string, int length);

 表示自体はXChar2b型への変換とXDrawString16()関数を用いるだけで,別に難しくない。しかしUnicodeフォントが固定幅フォントの場合,ラテン文字も漢字も全部同じ幅になってしまって,見た目に違和感がある。

 UTR #11: East Asian Width によって,full-widthのものを専用のフォントで表示するのがいいだろう。

@

 Unicodeライブラリには幾つかある。

(2005.4.29) この日の内容は、加筆のうえ、ICUを使うに移動しました。

follow-up(s): 2000.06.28

2000.06.15 (Thu)

@ XFree86でのjp106キーボードの設定 [Linux]

 今さらながらXFree86でのjp106キーボードの設定。

 次のようになっているのを,

   XkbKeycodes     "xfree86"
   XkbTypes        "default"
   XkbCompat       "default"
   XkbSymbols      "us(pc101)"
   XkbGeometry     "pc"
   XkbRules        "xfree86"
   XkbModel        "pc101"
   XkbLayout       "us"

 次のように変更する:

   XkbKeycodes     "xfree86"
   XkbTypes        "default"
   XkbCompat       "default"
   XkbSymbols      "jp(jp106)"
   XkbGeometry     "pc"
   XkbRules        "xfree86"
   XkbModel        "jp106"
   XkbLayout       "jp"
  • /usr/X11R6/lib/X11/xkb/rules/xfree86.lst
  • /usr/X11R6/lib/X11/xkb/symbols.dir
ぐらいが参考になる。

2000.06.16 (Fri)

 なぜまだ続く,fj.comp.lang.c,fj.comp.lang.c++ の malloc & free話。

2000.06.17 (Sat)

 須磨水族園。ハーバーランド。芦屋の居酒屋。2x2。4人でワインを3本空ける。ふむ,ワイン1本ぐらいなら大したことない。

follow-up(s): 2000.06.18

2000.06.18 (Sun)

 爆睡して45分遅刻。大したことあるやん。2000.06.17

@ CGI検索サイト [今日のリンク] [CGI] [Webデザイン]

CGI検索サイト。次の二つぐらい:

@ Emacsでruby-modeを追加 [Ruby] [Linux]

Emacs 20にruby-modeを追加。

  # cp ruby-mode.el /usr/local/share/emacs/site-lisp
;; ruby-mode
(autoload 'ruby-mode "ruby-mode" "Major mode to edit ruby files." t)

(setq auto-mode-alist
  (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))

自動色付けなどをしてくれる。

2000.06.19 (Mon)

 会社の人間と回転寿司に行ったり。

2000.06.20 (Tue)

 定期券をなくす。昨日改札で取り忘れたらしい。仕方ないので切符を買って会社へ。帰り,駅で聞いてみる。お,届いてるやん。

2000.06.21 (Wed)

 午前中奈良,午後京都へ出張。

 京都に予定より早く着いたので,ちょっとぶらぶら。京都大丸でなかなかのティーを楽しんだり。

2000.06.23 (Fri)

 会社の飲み会でしゃぶしゃぶ。うちの部署って飲み会多いよね。まぁ,経理・財務はストレス強いから。

 二次会でホモ的なバーへ10人ぐらいで雪崩れ込む。男二人で愛を語り合う世界。うひょー。

2000.06.25 (Sun)

昼からバンド練習。ロイホでカレーを食べる。1/144 Qubeleyを買う。

follow-up(s): 2000.07.22

@

トップページにInfoseekとYahoo! JAPANの検索機能を付けてみる。といっても大したことなく,HTTPリクエストを転送してるだけ。

@ 例外の捕捉 [C/C++]

(2005.4.3) この日の内容は、加筆の上、C++での例外処理について に移動しました。

2000.06.28 (Wed)

(2005.5.15) この日の内容は、加筆・修正のうえ、ICUを使う へ移動しました。


トップページ > 随感録 > 2000年6月の随感
このページについてのご感想・ご提案などをお寄せください。なお、コメントに「http:」、HTML aタグが含まれると送信されません。
評価: ◎ ← → ×
コメント:
お名前:
メールアドレス:
[Profile]  [Privacy Policy]  [Legal & Link]  [Site Map]  

banner Netsphere Laboratories http://www.nslabs.jp/

Copyright (c) HORIKAWA Hisashi. All rights reserved.

[PR]

はてなブックマークに追加  

サイト内検索:

[PR]