フォント調整 for Xft

GTK+2 アプリ(Firefox とか)は、何が何でもフォントのアンチエイリアス処理とヒンティングをやりたいらしい。

でも、文字が大きくなると逆にジャギーがうざくなる。見苦しい。あるフォントサイズを境界線にして、アンチエイリアスかけるのかかけないのかはっきりさせたかった。全部エイリアスかかってると気持ち悪い。

それに、ノートパソコンだと厳しい。Windows Me 時代の代物だ。Firefox を立ち上げるだけでヒイヒイ言ってくれる。

見た目上の問題と、性能上の問題から、どうしてもアンチエイリアスがかかる範囲を最小に抑えたかった。WindowMaker は Xlib を使っているからそもそもアンチエイリアスとかヒンティングとかができない。それはそれでいい。問題は Firefox。文字だらけのレンダリング結果全てにアンチエイリアスがかかっていようものなら、スクロールも重くなる程だ。

でも、英字フォントはアンチエイリアスがかかっていた方が綺麗だ。だから、要するに日本語フォントのある特定フォントサイズの間だけアンチエイリアスをやめさせたかった。

で、ようやく良さげなサイトを発見。その名も書体関係 Wiki。そのまんまだ。

ここの、X でのフォント設定というページがいい。やりたいことはあらかた載っていた。

以下、ゴリゴリと編集した /etc/fonts/local.confの内容。

<match target="font">
  <test name="pixelsize" compare="less">
    <double>17</double>
  </test>
  <test name="slant" compare="eq">
    <const>roman</const>
  </test>
  <test name="family" compare="eq">
    <string>Kochi Mincho</string>
    <string>Kochi Gothic</string>
    <string>Sazanami Mincho</string>
    <string>Sazanami Gothic</string>
  </test>
  <edit name="autohint" mode="assign">
    <bool>false</bool>
  </edit>
  <edit name="hinting" mode="assign">
    <bool>false</bool>
  </edit>
  <edit name="embeddedbitmap" mode="assign">
    <bool>true</bool>
  </edit>
  <edit name="antialias" mode="assign">
    <bool>false</bool>
  </edit>
</match>

Vine Linux 3.1 を使っていれば、これがそのまま使える。お試しあれ……といっても、ここ読んでる人で Vine 使ってるのって、居ないんだよなぁ。アクセス解析一応はしてるけど、Linux 使いは居ないと思った。あまりログファイル見てないから何とも言えないけれど。

最近、デスクトップの XP を疎かにしている。ノートばかり使ってる。レポート書くのも基本的に Emacs + pLaTeX2e だし、ブラウジングだって Firefox for Linux。この文書だって当然 Emacs で書いてる。……研究室のパソコンだけど。それは家に帰ってからも同じこと。

まともに Linux で遊べる環境が整うと、こうまで快適なのか。

2005-06-30

ペンギンのノート、机上の窓

今現在の OS 状況。つーかこの前 Windows XP をインストールし直した。ハードディスクへのデータ書き込みエラーが出るようになった為。他にもガタがきている部分があった。

うまくいったのはいいんだよ。そこまではいいんだよ。

Bookshelf が起動しない。鬱。

どうやら IE コンポーネントに何らかのトラブルが発生している模様。……ふざけるな。再インストールした意味の半分が無駄だったということじゃないか。

ゲンナリ。

2005-06-24

ModelChecking vol.1

取り敢えず、研究室内での中間発表用メモとして書き連ねるシリーズ。

目的

近年、ソフトウェアが仕様の通りに正しく動作しているかを検証することが非常に重様な課題となっている。人間が開発したプログラムには必ず欠陥が存在するものであり、それが対象となるシステムにとって致命的である場合も多々ある。電車におけるポイントの切替え、航空機における制御プログラム、原子力発電所における制御システムなど、クリティカルなバグの存在が許されない状況というものは列挙に暇(いとま)がない。

そこで、形式手法によるソフトウェア検証法が、欧米を中心として広く使用されるようになってきた。本稿では、そうした検証法の中でも ModelChecking と呼ばれている手法について論ずる。

基本推移システム

形式手法においては、先に述べたような「クリティカルなバグの存在が許されない状況」に置かれているシステムのことを Concurrent System(並行システム)と呼んでいる。Concurrent System は、同時進行で2つ以上の処理が同時に行われるようなシステム全般を指す。

Concurrent System を表現するために基本推移システムというものが提案されている。当節では、基本推移システムがどのようなものであるかについて論ずる。

まずは、システムそのものを表現する為の言語を定義する。形式手法においては、システムをモデル化した数式 P を表現する為のツールが必要になる。情報工学の分野では、記号による表現をまとめて言語と呼称している。言語は、自然言語であることもあれば、数式的な表現であることもあり、勿論その中には人工言語たるプログラミング言語も含まれている。

システムを表現する言語として、L を導入しよう。

言語 L は、<ν, ε, Α, Ι> の組で表現される。以下がその定義である。

ν

プログラム内や数式で使用される変数全体の集合。ν の要素を語彙(vocabulary)と呼ぶ。

ε

ν を使用して表現される数式、条件式、論理式全体の集合。ε の要素を表現(expression)と呼ぶ。

Α

ε の要素に対して、論理結合子、∀、∃ を利用して得られる論理式全体の集合。Α の要素を主張(assertion)と呼ぶ。

Ι

ν が表す記号が具体的にどのような値を持つのかを表す関数全体の集合。Ι の要素を解釈(interpretation)と呼ぶ。

続く……。

今日は疲れたのでこれまで。

2005-06-23

Firefox 初 build

Mozilla Firefox マイルストーンのソースを実際に落してきて build してみた。ノートでやった為結構時間が掛かった。2、3時間ぐらいだったろうか。

……まー、色々と面倒だった。それでも apt-get で何とかなる依存関係しかなかったので、ゲンナリする程でもなかったのだが。改めて、apt の偉大さを知った今日この頃。

因に、.mozconfig は次のような感じ。

export MOZ_PHOENIX=1
mk_add_options MOZ_PHOENIX=1
mk_add_options MOZ_OBJDIR=./ffxbin

ac_add_options --enable-extensions=cookie,xml-rpc,xmlextras,pref,transformiix,universalchardet,webservices,inspector,gnomevfs,negotiateauth
ac_add_options --enable-crypto
ac_add_options --enable-single-profile
ac_add_options --disable-composer
ac_add_options --disable-ldap
ac_add_options --disable-mailnews
ac_add_options --disable-accessibility
ac_add_options --disable-profilesharing
ac_add_options --disable-debug
ac_add_options --disable-tests
# ac_add_options --disable-installer
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-xft
ac_add_options --enable-optimize="-O3 -march=pentium3 -msse -mmmx -mfpmath=sse -ffloat-store -fforce-addr"

最適化ビルドってやつですな。……本当にそうなっているかはまだわからないけど。

で、めでたく build が終了したので firefox を立ち上げてみる。

立った! ク×ラが立った!

……そのぐらいに感動したんだよペーター(誰

それはそうと、まだ課題は山積している。シンボリックリンクになっている各ファイルを、個人的にはハードリンク(と言った方がいいのか)にして、/usr/local/lib にぶち込みたい。

頑張ってみるか。

2005-06-20

三年次編入説明会

筑波大学図書館情報学群。環境と講義の内容がいい感じ。バスターミナルまで徒歩10分。そこには大規模ショッピングセンターもある。緑も多く、だからといって閑散としているわけでもない。しかも、つくばエクスプレスが8月に開業。講義も図書館司書に求められるような専門学と、何といっても情報系講義がある。

最近、将来はどっかの静かな図書館にでも勤めて、本に囲まれながら生きるってのもいいなと考え始めるようになった。幸い、私には高専で学んだプログラミング・情報数理の基礎知識と、プラスアルファとしての趣味がある。

豊技に行くのもいいが、何か魅力に欠けてるような感じがある。そういう点において、筑波は私にとって魅力だらけだ。

テスト勉強しないとな……。

本題に入らねば。昨日は説明会に行ってきた。新幹線とバスを乗り継いで大体3時間ぐらい。模擬講義をふたつばかり受けてきた。それについては追々書こうかなとは思う。でも、今日はそんな気分じゃない。

帰りは悲惨だった。終わったのが17時。高速バスに乗ったのはいいが……。

降りるバス停間違えた。

新しい東海道新幹線の駅ができたことは知ってた。

上野だと思い込んでた。

……はいココ笑いどころねー。

そうなんだよ。違ったんだよ。だって、本当は品川だもの。

結局、山手線で東京駅まで行ったよ。そこから普通に乗ったんだよ。時間をロスしまくって、うまくいけば20時過ぎぐらいには帰れると思ってた。

着いた頃には21時を過ぎていた。

もうね、アホかと。バカかと。

疲れてそのままベッドへぱたんきゅー。……もう嫌。

2005-06-19

通夜に

行ってきます。

2005-06-17

風邪

咽痛い。鼻水うざい。眠い。

やっぱり Window Maker イイね。何よりメモリを喰わない。あらゆる視覚効果を OFF にしても(無論 Theme サービスも OFF)メモリの3分の2を実利用領域として持っていってしまう Windows XP の Explorer とはえらい違いだ。どうせ Explorer のようなファイラーも使わないし。kterm でコマンドライン、これ最強(マウスなんて Firefox か Tgif か Xdvi ぐらいでしか使わない)。

ノートの Vine Linux へ Samba を入れようと計画中。デスクトップの Windows XP と通信させる為。あると便利。

今日は午後から工学実験。光情報工学。光か……。先生には悪いが興味ない。だからさっさと実験終わらせて帰りたい。どのくらい掛かるのだろうか? Scilab を使ったシミュレーションはもうすこし後。Scilab は使ったことがない。それは純粋に楽しみ。

2005-06-16

PCI カードをようやく認識

Vine Linux にてノートパソコンの PCI カードが認識されていなかった為、ずっとネットワークに接続することができなかった。

だが、昨日。ようやくできるようになった。

PCI カードのモデルは「corega FEther PCC-TXD」。これが Vine Linux 3.1 ではデフォルトで認識されない(らしい)。変だなぁと試行錯誤しているうちに、使えるようになったわけだ。

まず見つけたのが、Corega のサイトにあった Vine Linux 2.1.5 での動作確認状況。こいつに書かれている通り、取り敢えず /etc/pcmcia/config に以下の行を追加した。

card "corega PCC-TXD Ethernet"
version "corega K.K.", "corega FEther PCC-TXD"
bind "pcnet_cs"

で、service pcmcia restart で pcmcia デーモンを再起動。

しかし、認識しなかった。

ひとまず Vine Linux のオンラインマニュアルを眺めていると、12.1.2.9 LAN の設定という項目にネットワークの設定を有効にする方法が載っている。これでいけるかな、と service network restart を実行。

駄目だった。

ついでに ifconfignetstat -nr の存在も知り、これも実行するが 127.0.0.0 しか存在しないという(いわゆるローカルのみ)状態でゲンナリ。

そうしたら、12.1.3.1 USB の設定 という項目に有益な情報が。Vine2.5から、usbmgr に代わり murasaki によって USB の管理を行うようになりました。murasaki は、kernel 2.4 からサポートされたHotPlug機能を利用し、 HotPlug対応モジュールを自動ロード、アンロードしますというのだ。つまり、HotPlug 対応モジュールである PCI カード類の管理も、全て murasaki によって行われるというのである。それは、murasaki は、USBデバイスのほか、Cardbus や IEEE1394 用のモジュール読み込みにも利用されていますという記述からも明らかだ。

Corega のサイトにあったのは 2.1.5 での認識させ方。情報が古すぎたのだ。更に Vine のオンラインマニュアルには、インストール当初の設定では、対応モジュールが用意されていても利用できない機器が存在します。そういった機器を利用する場合、/etc/murasaki/murasaki.usbmap 等を編集すること、とあった。この場合は USB でなく PCI なので、/usr/share/doc/murasaki-*/README.eucJP を参照し、PCI 関係の定義を /etc/murasaki/murasaki_init.pci(うる覚え)に書けばよいことを突き止めた。案の定、カード情報がなかったので追加し、念のために reboot をかけた。

うまくいったんだよ。それで。

カードの LED が点灯したときは、感動した。ようやく動くようになったんだと。これまでの苦労が報われた瞬間だった。

そして、早速 apt-get updateapt-get upgrade。更新が済んだら WindowMaker と kterm とその他諸々をインストール。

これでようやくノートパソコンで Windows を使う意義が無くなってきた。

程好い満足感に包まれながら床に就いた、素晴らしい夜だった。

2005-06-15

Fedora Core 4

最新のソフトウェアがパッケージングされていることが特徴の Linux ディストリビューション Fedora Core 4 がリリースされた。

個人的には使ってない。Vine Linux の安定性と日本語対応の良さを活用しているから。最新バージョンばかりで安定性に欠けてる Fedora Core は、お遊び程度に入れるかもしれないが、実用はしない。

とにかく、自分が Linux を使う上で最低限必要なのは以下に挙げるものと細々とした基本環境。

GNOME や KDE は重くて使わない。特にノートでは。未だに Windows Me 時代の Pentium Ⅲ 750MHz / Memory 128MB / HDD 20GB な Dynabook だから。しかも実クロック 690 ぐらいしか出てないし。

確かに、GNOME は便利なんだが……。でも Window Maker のシンプルさが好きなんだよ。

2005-06-14

映画

休日中に、映画「クローン」を購入。102分と短い映画なのだが、何しろ原作がフィリップ・K・ディックなのだからこれは買うしかないだろう。

原作は「にせもの」。サスペンス要素が強い初期短編のひとつとして位置付けられている。ついこの間映画化された「報酬」(映画化名「ペイチェック」)も、そんな類の短編だった。

しかし、この「クローン」。かなりいい仕上がりの作品だ。カス映画と化した「ペイチェック」とはえらい違い。原作に忠実、という点で原作原理主義者は喜ぶかもしれないが、ここではそれを差し引いてもいい出来だといえる。

ネタバレなので詳細は省くが、とにかく「人間とは何か?」というテーマと、それに直結する「本物と偽者の区別」という問題を、夫婦愛や信用というものに絡めてうまく処理している辺り、脚本と監督がよかったのではないかと思わせる。……脚本は書き手が二転三転しているのだが。個人的には、主人公を「肉体的には平凡な男」としてきちんと超人化という安易な手段に訴えず描ききっている点を評価したい。「ペイチェック」はこれが酷いことになっていて、どうして単なる技術者があんなカンフー技を繰り出せるのかと三白眼で眺めるしかなかった。ジョン・ウーは確かにアクション映画を撮らせればいい作品を生むのかもしれないが、ああいう類の、サスペンスやフィルム・ノワールとしての作品には向かない。適材でも適所でもなかった。それだけ。

さて、日本では「クローン」というタイトルで配給されたこの映画。アメリカで公開された当初のタイトルは「Impostor」。原作と同じで「にせもの」だ。……何故これを変える必要があったのか? 販売戦略上そうなったのだろうが、何しろ的外れなタイトルだ。映画の内容そのものを変化させてしまうような、安易なタイトル変更は幻滅する。それだけが心残りだった。

2005-06-13

ようやく休日

ゆっくり寝よう。とにかくそれだけ。

今日は映画の DVD でも買って、風呂に入ってから冷たい飲物を片手に鑑賞したい。

テストが終わった反動も少なくしないといかん。どうしたもんか。

2005-06-10

テスト5日目 - 最終日

制御工学はそこそこ大丈夫。振動工学は……過去問そのまんまでウッハウハ。

ヤクザとハッカーの意外な共通点という話。……あー、これ、図星だ。私も PFU の HHK Lite 2 を愛用しているクチ。Control キーが押せなくなったら……(((゜Д゜)))

そうすると、左手の小指ってやつが重要ポジションを占めている場合が他にもあるのだろうか? 調べてみるのもまた一興。

これから寝る。誰が何と言おうと寝る。眠いんだ。

HHK の Professional が欲しいなぁ。買うなら無刻印の墨モデルか。パソコンのケース色に合わせたいし。

2005-06-09

テスト4日目

ロボット工学、撃沈

いや、うん……。昨日と同じだ。

新しいサイトデザインを実装した。まだアップしてないけど。スタイル名は「Space」。その名のとおり、空白が多いデザイン。つーか何もない

何となく開放感を出そうとして組んでみたのだが、殆どの部分が今のデザインである「Simple」と同じ。作るときも、コードを流用(むしろコピー)してちょいちょいと細部を変更したぐらい。技術的な面は大部分が最初から解決されてた。画面上のレイアウトも全くといっていいほど一緒。

だから、1日かからなかった。

シンプルすぎて細かい部品しかいじりようがないので、それが終わったら今度は別のデザインを考えてみるつもり。逆に、ごちゃごちゃとしたものをつくってみようか……。

2005-06-08

テスト3日目

システム工学、撃沈

テスト範囲で出るよーって所を重点的に暗記してきたのに、それすら出ない。というかそれによく似たモノを導出するような問題。

先生。敢えて言わせて下さい。勘弁して

法学の方は問題なし。……簡単だった。殆ど作文だったから。ああいう文章を書くのは結構好き。

文章を書く時、私はプログラムを書くときと同じような書き方をする。つまり、まずプロトタイプをババッ、と書き上げてしまい、それを後で修正・加筆・校正しつつ論理的整合性を整えるといった感じ。今まで生きてきて、始めからうまく書くだとか、ちまちま考えながら書くということもやってみたが上手くいかなかった。結局、プログラミングというものに出会ってから、それを構築する手法としてとっている書き方を自然言語の文書にも適用しただけの話。

そう。同じなのだ。違うのは、自然言語か人工言語かという点だけ。どちらも言葉であり、文字として表記できるものに他ならない。

それにいつの頃か気づいてからは、文章を書くのが前よりも苦にならなくなった。何しろ、書きたいだけ書いて、気になったら後で見直せばよいのだ。紙媒体にペンで記述するアナログ方式ではなく、キーボードから修正容易なテキストデータにしてしまうデジタル方式だからこそうまくいく方法。よくよく考えれば、今という時代に生まれてよかった。ワープロすら存在しなかった過去では、到底そのような真似はできなかっただろうから。……手も疲れないし。汚れないし。紙を浪費することもないし。データはコンパクトに収納できるし。いいことづくめ。

そういえば、今の小説家ってのは自分の書いた小説を、その都度書き直しては新しくしているのだろうか。たった一つのファイルを、改変するという作業で。

プログラマとしての立場からすれば、それはあまりにも無謀でいただけない。追加にしろ改変にしろ、必ずバージョン番号を変更し、古いプログラム(= 文書)を保存しておくべきだ。CVS のような管理システムを用いれば最強だろう。diff をとれば、昔の文書とはどこが違うのかを探すのも容易だ。文明の利器は使わなければ損。

……眠くなってきた。昨日から今日にかけて、殆ど寝ていない。明日もテストだし、今から寝よう。

ぐふぅ。

2005-06-07

テスト2日目

情報数理Ⅲだけだったのだよ。つーか満点とれる勢いだよ。

でも明日は地獄の物理系教科が待っている。勉強しないと死んじまう。

……とか言っておいてサイトの更新なんかしてていいのか? というツッコミは無しで。

Slashdot 経由で、TIE ファイター型 PC。もうね。無茶苦茶。何がって? だって液晶ディスプレイ素でついてんだよ? しかも机になってるんだよ? ……その労力に感服はするけど、如何せんそのチープさは隠しきれない。

更に追い討ちをかけるのが、暗くした時の写真

いや、ディスプレイの光が邪魔だから! 折角の雰囲気を台無しにしてるから!

あー、そういえばエピソードⅢ、夏に公開だっけ? 旧三部作からファン(といっても観てるだけ)だけど、ⅠとⅡでげんなりって感じだったからなぁ。Ⅱはまだ良かったけど。Ⅲはどうなるやら。暇があったら観に行こうと思う。

2005-06-06

またしても

昼まで寝た。同じく12時間ぐらい。

何と言うか……寝足りない感じもする。

明日のテストは情報数理Ⅲ。持ち込み OK テストだ。それでも大事なものだから、落とさないようにノート整理をしなければ。

問題は、火曜日なんだが……。何とかなるか?

2005-06-05

昼までお休み

大体12時間ぐらい寝た。頭スッキリ。前の日は徹夜だったから。

今日は早目に寝よう。

2005-06-04

テスト1日目

熱統計力学は見事に撃沈……しなかった

珍しい。でも、頑張った甲斐はあった。最低でも60点は取れていると思われる。合格ラインなのでひとまず安心。うまくいけば80、少しミスしても70。

人工知能はエッセイを書くだけだったので楽だった。お題は「フレーム問題」。結構色々書いたけど、結局没にしたネタが採用したネタの3倍ぐらいあって個人的にはあまり出来のよろしくない文書に仕上がっていると思う。点取れればいいけど。

明日、明後日と休みが入り、月曜日は情報数理Ⅲがあるだけ。人によっては何も無い日。羨ましい……。

いつの間にか 7-Zip がバージョンアップしてた。早速インストールしてみよう。

2005-06-03

もんたメソッド

最近、新しいプレゼン方法の提案が熱い。

高橋メソッドに引き続いてもんたメソッドなるものが登場。

何だそりゃ? と思われるかもしれない。だったら実例を見てみるといい。

……提案者本人が作ったやつより、UA に対してフレンドリーな(要は JavaScript や XUL を使った)方法で実装してある方がサンプルになりやすいっていうのは高橋メソッドの時と一緒か。

勿論お察しだとは思うが、「もんた」は「みのもんた」のこと。おもいっきり TV でよく使うあのめくり紙をつかったプレゼン手法。

で、これが実際面白い。個人的に感嘆したのは、先の例で3番目と4番目に挙げた、Web サイトでも使ってしまおうという発想。これが高橋メソッドとは大きく違うところ。

でも、個人的には XMLHttpRequest をゴニョゴニョすることで精一杯。時間が……。

2005-06-01