気分一新というか、最近コードに対する姿勢が弛みがちだと自覚しているので活を入れるために読む。CODE COMPLETEに比べれば薄いけれども、内容は実践的で、私の環境、作業スタイルではどうするのが良いか、ということをいろいろを考える機会を与えてくれます。
これと合わせて、「C言語を256倍使う本」も読み直しているのですが、この本は古いのですが書いてある内容は「虫干し」と称してリファクタリングもどきを勧めていたり、コードのメンテナンスの重要性とアマチュアレベル・趣味で書くコードの保守性を挙げるためのいろいろなテクニック、パフォーマンス向上のための指針など今に通じる物がたくさん書かれています。内容は256倍なのでかなりくだけている上にコードのサンプルはひどい物です。しかし、その分読みやすいですし、読みものとして面白い物になっています。
ただ、環境がMS-DOS前提というのが今となっては難点。富豪的プログラミングとかけはなれた世界になっているので読者を選びます。いや、当時から読者を選んでいたので問題ないかもしれません。それはともかくとして、256倍シリーズの良い所は「書いている人達が楽しそう」という一点に尽きます。もっとも私は他には「FreeBSDを256倍使う本」と「AT互換機を256倍使う本」の3冊しか持っていないので他の本はどうだか判りません。
ヨドバシまで出かけてツルハでは売っていなかった歯ブラシの替えを購入。
ついでに紀伊之國屋でインターフェース2月号を購入。アセンブラの特集記事が目当て。gccのインラインアセンブラの文法がMicrosoft Cの文法とだいぶ異なるので、使いかたが解からないのです。
レジスタを別名定義して間接参照することでアーキテクチャ依存性を軽減しようとしているような感じもあるのですが、中に書く命令はCPUに依存するので、あまりアーキテクチャ依存性を軽減する効果はほとんど無いような雰囲気。どのレジスタを使用する、破壊されるかということを明示して最適化の助けにするという部分では効果があると思いますが、破壊されるレジスタについてはWATCOM C/C++のようなpragma指定で、中のアセンブラは普通に書くという方向にならなかったのは興味深い所です。
Linuxを動かす実験用マシンが欲しいので追加で1台購入を検討しています。
中古でPentium !!! 733MHzのパソコンが17,000円程度で売っていました。性能的にはこれで充分でしょう。
今使っているのがAthlon XP 2500+とCeleron 1.1GHz。このCeleron 1.1GHzをLinux用に回してAthlon XP 2500+より強力なPCを買うというのも一つの手です。
17,000円程度で済ませるか、120,000円程度の出費になるか、悩みどころ。ビデオカードを使いまわそうと思うとAGPシステムを選ばないといけないし、PCI Expressにするとビデオカードは追加しないといけません。どうせビデオカードを買うならGeForce 6800GSが欲しいところ。するとビデオカードだけで30,000円。うーん。
中古PCを見た後でドトールの前を通ったら、福袋と称して豆の詰め合わせを売っていたので購入。
三角くじを引いたら「一等」と書いてありました。というわけでマグカップを2つ頂きました。
乾電池式の電動歯ブラシだと、電池が切れたときに使いたくても使えないわけです。それを避けるために充電式のオムロン製にしたわけですが、こちらはこちらで充電が終わるまで使えないということを忘れていました。なかなかうまくいかない物です。いや、むしろうまくできていると考えるべきかも。
1 | 中古PC(Pentium !!! 733MHz RAM256MB) | 17,000 |
合計 | 17,000 | |
2 | 中古PC | 17,000 |
GeForce 6800GS追加 | 30,000 | |
合計 | 47,000 | |
3 | Sempron 3200+本体 | 60,000 |
合計 | 60,000 | |
4 | Sempron 3200+本体 | 60,000 |
GeForce 6800GS追加 | 30,000 | |
合計 | 90,000 | |
5 | Athlon 64 3200+本体 | 120,000 |
合計 | 120,000 |
2万円かからないはずが10万円越え、という謎の事態に。悩む。AMD64機にするならWindows XP x64 Editionも欲しいところ。ますます悩ましい。
まあ、PCを追加しようというのはFIVA 101ではいろいろと不便というか面倒なことが多いからなんですが。
asianux 2.0にRPMを入れてみたところ、ちゃんと日本語のmanが表示できたのを確認。FIVAに入れているRXVTだとUTF-8が表示できないので確認できていなかった・・・というか、確認していなかったとか言う。
EUC-JPとUTF-8への相互変換とかShift_JISからUTF-8への変換処理を作ってUTF-8環境でもビューアが動くようにしたいところ。
そういえば、年末に恐ろしい話を聞きました。某社が採用CPUをOMAPからOMAP2に変更してかなりのパフォーマンスアップに成功したのですが、次のシステムには自社製のCPUを使うそうです。以前、私が関わった・・・というかOMAPの時にも関わっていたのですが、自社製のCPUというのがすさまじい出来栄えで、コンパイラとアセンブラにも不具合が多発していたので、始まる前から不安になります。
既に部外者なので詳細はあえて聞きませんでしたが、9月か年末あたりに発売される奴が怪しい雰囲気。
なにやら、画面表示周りのチップも新規開発らしく、私が使ったチップではカラーキー転送を中途半端にサポートしていたのですが、今度はそれすらもソフトウェア対応でやるらしいです。なぜそんなところでスペックダウンしているのか理解に苦しみますが、多分、動くつもりが動かない物ができてしまったのでしょう。おかげで従来機種よりも大変遅くて苦労しているそうです。
単純にDMA転送できればよいのですがMOV命令系でちまちまコピー、しかもカラーキーの判定のために条件分岐あり、ですからメモリ帯域には命令と転送先の読み込みデータ、転送元の読み込みデータ、書き込みデータの4つの流れが発生します。どうみてもメモリ帯域がボトルネックです。本当にありがとうございました。
FedoraのExtrasにWine 0.9.4が登録されていました。せっかくだからインストール。
XClearArea()した領域をコピーしても、コピー先にはExposeやGraphicsExposeは発生しない模様。なんらかのExposeが発生して再描画のチャンスが与えられると思っていました。
Win32のScrollRect()だとInvalidateRect()などで無効化された領域も移動してくれるのですべてがうまくいくのですがXはそこまでは面倒を見てくれませんでした。ではどうするか・・・って無効化した領域を自分で管理して、スクロール時には無効化された領域があればそれも移動した上で改めてXClearArea()を呼ぶしか思い付きません。しかし、これでもうまくいかないのです。自分でXClearArea()で無効化した領域だけならうまくいきますが、上にあったウィンドウが消滅したなど、他の要因で再描画が必要な部分があった場合、その再描画が必要な部分がどこか、ということを知ることができないので正しく再描画できません。
Windowsはよくできています。
VAIO type SZはボタン一つでグラフィックコアをノースブリッジi945内蔵のGMA950と外付けのGeForce Go 7400と切替えることができるとのこと。5年前のアイデアを実現してくれたわけです。いやー、素晴らしい。
Windows CEベースで20GBのHDDを搭載した携帯端末。portable NAV/MP3/MP4/CE device
とありますが、NAVとCEが判りません。携帯Norton AntiVirusとか?
価格はまだ未設定とのことですが、だいたい700ドル。NES、つまりファミコンのソフトウェア5本と同時に出荷されるようです。合わせてオンラインで提供される作品が90本。
神。
ひょんなことからHHKを入手しました。なかなか慣れませんがキーが足りません。お約束のように「ろ」が入力できなくて途方に暮れたり。
大変ありがたいことに右のMetaキーのコードが日本語キーボードの変換キーと同じコードのようでIMの切替えには不自由しません。今まで右下の「ろ」キーでBackSlashを入力していましたのでこのキーが無いと戸惑います。
キーが多すぎると大きくなって邪魔だ、というのも理解できますが使っていたキーが無くなると不便です。
CapsLockとControlを入れ換えていたので,今度はHHKでControlを入力できないというお約束の落し穴にはまりました。とりあえずはCapsLockを削除して回避。Xではxmodmapを使うことで簡単にできますがRealForce 89Uと共用しているWindows 2000ではどのように回避したものか。
右のMetaキーはひらがな/カタカナキーと同じものになるようで、もともとこのキーには右Controlを割り当てていたのでそのまま使えています。おかげで右Altが無くなってしまいましたが、Controlとどちらを優先するか悩みどころです。もう一つキーがあれば助かります。
左のAltを変換キーにすると右のAltキー、MetaキーをAltキーとControlキーに割り当てられるのである意味解決できるかもしれません。どう設定して使うかが悩んでいる内が楽しいという話も。
私はこのような判定は次のように書いています。
switch (buf[i]){
case '\r':
case '\n':
/* ここに処理 */
}
この書き方だと
と考えています。
ifで書いた場合 if (buf[i] == '\r' || buf[j] == '\n') というのを読み間違えそうな気がするために念入りに読んでしまうからです。
高村薫「新リア王」を購入。他にもいろいろ。
結構おいしい。
anthy.elを次のように変更:
(defun anthy-mode (&optional arg)
"Start Anthy conversion system."
(interactive "P")
(setq anthy-mode
(if (null arg)
(not anthy-mode)
(> (prefix-numeric-value arg) 0)))
- (anthy-update-mode))
+ (anthy-update-mode)
+ (run-hooks 'anthy-mode-hook))
そして.emacs.elでこんな感じに:
(defvar anthy-p nil)
(add-hook 'anthy-mode-hook
#'(lambda()
(setq anthy-p (not anthy-p))
(set-cursor-color (if anthy-p '"cyan" '"white"))))
anthy-pとか気持ち悪いですが、状態を知る方法が思い付かないのでとりあえずこれ。
2月から発売。やっぱり32ビットモデルのままでした。
iMacもIntel製のIntel Core Duoを載せるそうですからこちらも32ビットマシンということに。iMac G5は64ビットマシンでしたから退化と取られるような変更はしないと思っていたのですが、iMacはエントリモデルだから気にしないという方向でしょうか。
PowerBookの名称がMacBookと変更されたのでPowerMacはMacMacとでも変わるのでしょうか。さすがにPowerMac G5の後継機まで32ビットマシンにするとは考えにくいのですが、ことごとく予想を外してくれるのでどうなるものやら。
バッファを切替えたときにカーソルの色が変わらないという問題。カーソルのfaceはバッファ独立では無くて共有してましたか。どうしたものか。
HHK Lite2では物足りません。というかキーが邪魔です。
現行のIntel GMA950と比較してシェーダ数で倍、クロック周波数で倍と4倍のパワーとなる、とか。
ピクセルシェーダが8パイプライン、クロック周波数が400MHzというのはGeForce 5900並です。バーテックスシェーダと共用するという話なので実際には5600並にはなりそうですがGMA910の時点でGeForce 5200並の性能を出していたので5900並の性能を期待できるかもしれません。
ダサいかイケてるか、ということよりもこの名称変更がPowerMacにも適用されるのかどうかが気になります。つまりMacMacがでるのかどうか。
SONY製のPowerBook 100はPowerPCではなくて68000を載せていましたし、CPUが変わったからといって名称まで変える必要は無いと思います。しかし、今までのPowerBookとは違う、ということを明確に伝えるには名前を変えるというのはよいやりかたです。Core DuoにならってPowerBook Duoとか名付けると10年前にタイムスリップ。そういえば、PowerBook Duoはなぜ「Duo」と名付けられたのでしょう。
寒気がする、と思ったら本当に寒かったのでした。昨日が暖かかった、というのもありますが。1度から7度下がって氷点下6度。
結局、思い立ったら即Webやメールを使いたい拙者なのである。同時に、ファイル共有の中核になる連続駆動PCが欲しかったりする。
「ファイル共有の中核になる連続駆動PC」ということであればPCである必要はまったくなくて適当なNASで充分という気がします。NASだと「即Web」「即メール」という要求には応えられませんが、それも適材適所という訳で別のマシンに割り振った方が。蓄積してあるメールやアドレス帳を考えるとメール環境は固定の方がよさそうな気もします。
記事にあるモデルはCPUもHDDもOSも無い状態で57,540円ですが、LinkStationならCPUもOSもHDDも400GBが付いてファイル共有ができる状態でありなが5万円を切るはず。
iPod nanoにSamsungのメモリが使われていたことや、それをSamsungが誇らしげに発表していたことはまだ記憶に新しい所ですが、そのSamsungがメモリ製造を外注すると報じています。Samsungの発注を受けるのはRitekだとか。
何かあったのでしょうか。
「コピペ」も「コードクローン」といわれると妙にかっこよいイメージが。
記事の題名が「ソフトウェア品質・生産性を向上させるコードクローン技術」なのでてっきり「コードクローンによって生産性向上」つまり行数水増し推進記事かと思ったのですが記事の内容は「ソフトウェア品質・生産性を向上させるコードクローン削減のためのコードクローン発見技術」でした。
さすがにまだ自動的に削除するまでには至っていないようです。
コスト面、パフォーマンス面で有利、とのこと。ダイサイズを19%ほど小さくできるので20%くらい安く作れるというわけです。既存の90nmのマスクは若干の変更が必要なものの、そのまま縮小して使えるとか。本当なら再設計にはそれほど手間がかからないということに。
NTTドコモがHS-DPAで定額制のデータ通信サービスを提供するとかしないとか。まだ「方針を固めた」という状態なのでいつのことやら判りませんし、本当にやるのかどうかも不明。PHSからの撤退は考えていないといった矢先に撤退した前科があるので油断できません。もっと蒸し返せば光ファイバに注力するのでADSLはやりません、とか言っていたのに…とか。
実現すれば14Mbpsという高速無線接続になるので@FreeDから乗り換え決定。
void test(void) { struct timer_list t; init_timer(&t); t.function = callback; t.expires = jiffies + HZ; }
とかやって即死。struct timer_listはどのタイミングで解放できるのでしょう。テストドライバなのでとりあえずはstaticで当座の目的は果たせるのですが。
リストから削除した後でコールバックを呼んでいるのであればタイマコールバックの中でfree()できそうですが、timer.cを読まなければ。
AMDの次期プロセッサは1コアあたり5MBのL2キャッシュを載せるとか。なんとも中途半端な容量に思えますがどういう理由でこの容量になったのでしょう。
Inquirerの元記事にあたるAMD Zoneによると、現在のZ-RAM技術はL2キャッシュに使える程成熟していないようです。使うならL3ではないか、とのこと。
ある程度の複雑さがある物でも単純なものでも一度に取り込める量には大差がありません。CISC命令を1命令取り込むのもRISC命令を1命令取り込むのもフェッチゃの負荷としてはあまり変わりません。変わるのは取り込んだあとのデコーダの負荷です。
ノーミスで255ptでした。
仮名入力なのでローマ字入力はなかなか厳しい物があります。日本語文字列を読んだ方が速度がでるのですがついうっかりと振りがなというかローマ字の方を読んでしまいます。まさに「あると読む」法則。ついデコーダの負荷が低いほうを読んでしまいます。日本語文字列を見てから目を閉じてタイプ、というやりかたに変えると265pt。
heliwm並にアレ。素晴らしいです。
でもやっぱりランチャが欲しい今日この頃。
ターゲット環境にLinuxが追加されていました。まだ動かしていないので具体的にはどういうバイナリが作れるのか判りませんがちょっと楽しみ。
もう見えなくなりましたが、http://oosika.web.fc2.com/というサイトが海外のソフトウェアを2つほど日本語化したと称するものを配布していました。
しかしながら、このサイトにはNOD32の使用期限を改竄した状態のスクリーンショットなども保存されていました。
「日本語化」と称してソフトウェアの不正改造とその頒布を行っているサイトというのはもしかしたら多いのでしょうか。隠れみのとして「日本語化」と偽ってみるような。
勝手に日本語化する、というのは著作権法違反のような気がします。
日本の著作権法においてはプログラムの著作権というものが定義されていて、その中では利用環境に合わせた変更は認められています。しかし、これはプログラムの著作権であってソフトウェアの著作権ではありません。
表示文字列などがリソースなどのプログラム外部に格納されている場合、その部分は「プログラムの著作物」とは看做されないかもしれません。そうなると翻訳権に抵触してしまうように思えます。
何時の間にかGeForce 5700 Ultraのファンが壊れていました。よく動いていた物です。さすが北海道。
3DMark03を実行すると温度は75度。限界温度は125度なのでまだいけるようです。
購入したのは2004年2月14日らしく、MSIの保証期間は2年なのでぎりぎり保証期間内。
選択:
5700 Ultraが燃えたら困るわけですが、壊れてから考えるという選択肢もある訳です。というわけで、燃えたときの買い替えを検討。
すぐに数字を拾えない部分があったので、適当に計算しながら。
メモリ | フィルレート(億) | パイプライン | 頂点演算数 | |||
バス | クロック | 帯域 | ||||
5700U | 128bit | 450MHz | 14.4BG/sec | 19 | 4 | 356M/sec |
5500 | 64bit | 400MHz | 6.4GB/sec | 11 | 4 | 68M/sec |
6200 | 64bit | 400MHz | 6.4GB/sec | 14 | 4 | 262M/sec |
6200 | 128bit | 400MHz | 12.8GB/sec | 12 | 4 | 225M/sec |
6600 | 128bit | 350MHz | 11.2GB/sec | 24(?) | 8 | 225M/sec(?) |
6600GT | 128bit | 450MHz | 14.4GB/sec | 40 | 8 | 375M/sec |
6800GS | 256bit | 500MHz | 32.0GB/sec | 51(?) | 12 | 500M/sec(?) |
6800GT | 256bit | 500MHz | 32.0GB/sec | 56(?) | 16 | 525M/sec |
6800U | 256bit | 550MHz | 35.2GB/sec | 64 | 16 | 600M/sec |
7300GS | 64bit | 400MHz | 6.4GB/sec | 22 | 4 | 413M/sec |
5700からの移行なら6200でも同等かと思っていましたが意外と微妙。6600系はかなり性能が向上しますが出費も向上します。こうして並べてみると6600GTはよい性能です。また、先日発表された7300GSが割とツボを突く性能です。PCI Express用なので今回は使えませんが。
壊れるまで待てば価格が下がるかもしれないとは言え、いつ壊れるか、どこまで下がるかが判らないため不安要素が多いのも難点。
壊れる前に2,3千円くらい出してファンを買い替えた方がお徳という雰囲気。
ATIがRADEON X1900を発表。ピクセルシェーダを48基と三倍になりましたが、ピクセルパイプラインは16本のまま。MAXXではチップ自体を2つ載せてきましたが、これはピクセルシェーダのMAXX化というべきものです。
ITmediaの記事によると3DMark05のPixelShaderテストが
X1800XT | 238 |
GF7800GTX | 296.7 |
GF7800GTX512 | 380.1 |
1900XTX | 442.3 |
という感じなのでピクセルシェーダの性能はものすごいことになっています。しかし、3DMark03のスコアは
X1800XT | 16,959 |
GF7800GTX | 16,128 |
GF7800GTX512 | 19,599 |
1900XTX | 17,329 |
という感じであまり奮いません。
この数字から想像すると、
3DMark03の中では比較的ピクセルシェーダの負荷が高いGT4でも性能が生かせていないことから3DMark03クラスのプログラムではX1900XTXは無駄の用です。05や06クラスのシェーダプログラムを実際のアプリケーションで使うには来年までかかるでしょうからその頃になってから買えばよいと思います。
次世代のプロセサ競争はCPUからピクセルシェーダに移りそうです。
ちなみに、3DMark05でスコア10,865をつけたXT1900XTXですが、3月9〜15日あたりにNVVIDIAからGeForce 7900が発表されるという話がありこちらは3DMark05で13,000を出すというとのこと。お互いに短い天下です。クロック1GHzを越えたあたりのAMD vs Intelを思い出します。
何気なく着信履歴を見たら、いちばん古いのは11月18日でした。あまり電話を使わないのでこんなものかも。ちなみに途中には4月の履歴とかもあったりして。
SNAPビデオドライバのx86-64バージョンが出たことを受けてInquirerにSNAPの開発者にチャットでインタビューした記事が掲載されました。
SNAPビデオドライバ(これが何をする物なのかは知りませんが)はWatcom C/C++コンパイラで作られているのですが、まだOpenWatcomは64ビット環境をターゲットにしていません。インタビューによると64ビット版はGCCで開発されたそうです。面白いのは、OpenWatcomのデバッガはGCCのオブジェクトも拾えるので、通常のデバッグ作業やXサーバのデバッグにもgdbではなくてOpenWatcomのデバッガを使ったそうです。64ビット環境では使えないので、そのときには仕方なくgdbを使ったとか。gdbを使うときの心境を「ものすごく不幸でみじめな人生」と表現しているのが笑えます。
またOpenWatcom 1.4のリリースからオープンソースコミュニティからどのような支援が欲しいか、どのような専門知識が必要か、Linuxで使うためにどのような機能が必要か、との問には「shered libraryのサポートが必要、今はスタティックリンクしかできないし、Watcomのランタイムライブラリも必要になっている」「(shered libraryにリンクする機能も重要だがそれと同様に)ELF PICコードを生成する機能が必要。」と答えています。これらはコンパイラの外部でどうにかできるものではなく、コンパイラ自身が解決しなければならない性質の課題です。
私自身、OpenWatcom 1.4をインストールしてみたのですが、Linux用バイナリの作り方はまだ判っていません。linux用と思わしきincludes/librariesはありましたが、wlinkにどのようなコマンドラインを指定するとELF形式になるのか判りませんでした。ヘルプファイルはまだ更新されていないので wlink /? だけが頼り。
他にも既存の .a 形式などにはどうやってリンクするのか判らなかったのですがこのインタビューを読む限りではどうやらできないものと考えてよさそうです。
7900GTX搭載カードは2月に出ることは期待できないが、すべてがうまく運べば3月上旬にでるかもしれない、とのこと。しかし、テープアウトからチップが出るまでには長い時間が掛かります。テープアウトは1月前半だったとのこと。通常はテープアウトからは2か月程度はかかりますから3月後半も危ういでしょう。
土日に話だけは聞いていたのですが、詳細を調べていませんでした。
どうやらMicrosoftから流出したソースコードが混入した疑いがあるとのこと。Linux vs SCOの時にLinux側でソースコードの変更には署名をするようになりましたが、それと同じように「誰が書いたコードなのか」という責任を明確にするような運営が必要なのかもしれません。
先日、故障した5700Uの代替機を考えていたときに想像したのですが、おおむね想像通りの性能。ってこちらに書いてなかったので後出しに見えますが。
頂点演算性能がやけに高いので、通常の利用やAge of Empire系の多数のキャラクタを表示して動かすプログラムではよい性能が期待できます。ただし、ピクセルシェーダのパイプラインも4本と5600/5700/6200系と同じ数があります。コアクロックは550MHzと5700Uや5950Uの475MHzよりも高いのでシェーダの性能もそれなりにあります。ネックになるのはメモリ帯域だけなので、高解像度やアンチエイリアスさえ掛けなければ大変使い勝手のよいものになりそうだと思いました。
しかし、クロックは高いものの、フィルレートが22億texel/秒と6600の24億/秒に及ばないこととメモリ帯域が半分以下であることからGeForce 6600には及ばないと思っていました。しかし記事によると3DMark05では低解像度であればGeForce 6600を越えるスコアを出していて、クロックの高さで押しきった模様。
これを組み込んだ統合チップセットを作ればWindows Vista対策は万全という雰囲気です。
ちなみに、当座をしのぐビデオカードとして中古でGeForcee 4Ti4200を購入。3,280円。Celeron 1.3GHzのPCに接続してFedora Core 4をインストールしました。まだ環境を整えていないので常用できません。
@FreeDからの乗り換えをどうするかが悩みですが、先日の定額制HS-DPAデータ通信サービスが間に合えばそれにしたいところ。
HHKで入力中、濁点が入力できなくてはまりました。先日まではXKbModelをjp106のまま使っていたのですが、今回はpc101配列の設定にしていたのです。戸惑って手元を見てもそこにあるのはHHK墨・無刻印。何も教えてくれません。
というような順序で考えてやっと入力。
emacs.elでanthyのかなマップを書き換えておかないと。