2005年11月30日水曜日

キーボードとトラックボール

キーボードとトラックボール用に新しいパームレストを買ってみました。Elecomの22゜ダブルパッド(左)と、Confy パームレスト(右)


ダブルパッドの方は、HHK Professionalにぴったりサイズで快適。キーボードでは右手より左手の方が守備範囲が広いので、左側が長めという合理的な設計が特徴。ただ、その部分よりも、手前から奥にかけて若干登りの傾斜がついているのが心地良いです。つまり、上部のキーを叩くときに腕を動かす方向と同じ傾斜がついています。以前、Elecomのdimp gelを使っていたときは、手首の収まりはよかったのですが、はまってしまうが故にやや手を動かしにくかったのです。今回の製品は、キーボードと机の高低差を埋めるという目的には合致。肘を90゜にするというHealthy Computingのガイドラインを実践するのにうってつけでした。

KensingtonのExpert Mouseには、最初からパームレスト

がついているのですが、これがなかなかの曲者で、手首を置いたままボールを転がすと手首に傾斜ができてしまい、腱鞘炎対策としてはあまりよろしくありません。かといって、パームレストを外すと高低差がきつくて使いにくい。やはり、自分で好きな位置にパッドを置ける方が、手の大きさに合わせて位置を調整できるのでいいです。

日本語配列のキーボードなんていらない



Microsoft Natural Ergonomic Keyboard 4000

これが、日本語配列になると、下のようになります。せっかくキーが大きくて打ちやすいエルゴノミクスキーボードなのに、小さく打ちにくいキーばかりになって台無し。






実 は、変換とか無変換キーはなくても全く困らないのです。半角・全角キーなども。Ctrlキーを押しながらのショートカットでほぼ代替できます(Ctrl キーが’A'の横にあるキーボードが好きな人がいるのはこのため。AltIME等のアプリケーションでも配置は変えられますが)。日本語配列版で問題なの は、Altキーや、右端のEnterキー・Shiftキーが小さくいびつな形状になっているところ。お店で試したのですがかなり打ちにくいです。当然、こ れらのキーはキーボードには必須です。また、メニュー呼び出しにAltを使うことは多いのに、このキーが小さい上、すぐ横にWindowsキーや左クリッ クメニューボタンがあると、間違って押しやすいので大変。

英語配列のものが日本で入手しやすければ、こんな記事は書きません。秋葉原を探 しても、英語版のマイクロソフトキーボードを輸入しているところを僕は未だ 見つけられません。わざわざ日本配列用にデザインを修正するくらいなら、コストを抑えるために、「英語配列キーボードでも日本語入力に不自由ない」という ことを宣伝する方がいいのに。

「女王の教室」での天海祐希のセリフを借りて、日本語キーボードじゃなきゃだめと思っている人達に一言。

「あなたたち、いい加減目覚めなさい」


もちろん、日本語配列でも使いやすいものはあるんですけどね。Mac miniで日本語配列キーボードが使えないと騒いでいる人たちにも、英語キーボードにしなよ、と勧めたい。かな入力する人が少ない昨今、日本語なんてキーボードに刻印されていたらMacの美観をそこなうでしょ?

2005年11月25日金曜日

ZFS at OpenSolaris.org

僕 は、自称トランザクション管理の専門家です。トランザクション管理の歴史的経緯を知っているが故に、古い考えにとらわれていることに今日気づきました。

先日、Sun Micro SystemsのCOOがblogを書いているとHarvard Business Reviewで知り、調べてみたのです。そうすると、Sunのdeveloperさんなどもblogを書いており、興味本位で、覗いてみると、ZFS at OpenSolaris.orgという新しいファイルシステムのプロジェクトを発見しました。

通 常のデータベースは、データを一元管理するので、データの更新時、ディスク上のデータを書き換えるという操作をします。複数ユーザによる同時書き込みを防 止するために、データがある部分を保護(write lock)するのですが、このwrite lockはファイルシステムの性能を上げる際のボトルネックになることが多いのです。 なにせこの領域のロックが開放されるまで、他がその部分にアクセスできないので。また、read lockを取得後、write lockを取得してデータを書き換えるというプロセスは、デッドロックに陥りやすいという欠点もあります。

write lockを使わずに同時書き込みを防止するには、versionningといって、古いデータを上書きせずにとっておいて、更新後のデータを別のディスク 領域に書き出します。 この方式(Multiversion 2PL)はPostgreSQLでも採用されていて、古くなったデータの後始末さえうまく行えば、readトランザクションは、writeを気にせずデー タをとりだせるので、それなりの性能を発揮できます。ただ、このversion管理がわりと曲者で、B-Treeなどのデータ構造に、version管理 用のデータ構造を組み合わせる必要があるので、目的のデータにたどり着いてもversionを調べる分アクセスが間接的になるし、遅いイメージがありまし た。

け れど、ZFSでは、B-Treeのようなデータ構造を、更新時に新しいversionにswapしてしまうのです。swap操作は、リンクの張替えだけな ので、負荷は低く抑えられます。簡単だし、version管理の長所そのままを具現化したものなのですが、目から鱗が落ちる思いです。

た だ、トランザクション管理は、B-Treeではここ20年の研究成果が集積されていて随分安全になっているのですが、ログを管理をしないこの木の入れ替 え方式がどこまで、データベースのトランザクション管理に応用できるかは、検証してみないといけない。ログがない時点で、ディスクエラーには強くても、 rollbackには対応していないのは明らか。でも、利用価値は存分にあります。

研究者として、本質的に新しい方式を見るのはわくわくします。 最新の研究といっても、既存の技術をこねくりまわしたものが多いご時勢なので。

Google Analytics


Google Analyticsを1週間ほど使ってみた後の画面です。何の変哲もないWebページのアクセス解析ソフトなのですが、見た目が綺麗なので、好感触。

ほかにもアクセス解析のソフトはあるのですが、それらにくらべて設置が簡単です。スクリプトを各ページにはさみこむだけ。

今 までサーバー管理者が独占していた情報を、ブログユーザなどの個人からGoogleに吸い出せるのは魅力的です。それに耐えうるシステムを構築するノウ ハウを持っているのは強いですね。 ソフトウェア単品ではそれほど価値がなくても、Googleが使うと膨大な価値がでます。Urchinという会社を買収して手にいれたようです。Urchinも買収されてよかった例なのでしょう。今後このデータでWeb広告のコンサルティング用途に使えるだろ うし、アクセスが集まりやすいWeb構造を発見、なんてビッグニュースがでてくるかもしれませんね。

2005年11月24日木曜日

「超」整理日記2005-09-24「真っ先に民営化すべきは年金」

「超」整理日記2005-09-24「真っ先に民営化すべきは年金」

この記事の最後の方にある、給与所得がある人の年金を停止しているというのは、確かに変な制度。働かない方がいいと少しでも思わせる制度は問題が多すぎ。年金の第3号の支払い免除もそう。ここに手を付けないということは、ミクロ経済的な景気回復を狙っているとは思えない。

他にも、変な制度っていっぱいあります。保育園への入園って、基本的に夫婦共働きの人の子が優先順位高いのだけれど、 両親が学生だと、優先順位を低くされるのです。 少子化対策をしているとは到底思えません。

2005年11月22日火曜日

screenの使い方

ショートカットをよく忘れるので備忘録として。

C-zをscreenの起動キーとすると

  • C-z C-w ウィンドウ一覧
  • C-z C-n / C-p 次(前)のウィンドウ
  • C-z [0-9] 指定のウィンドウに飛ぶ
  • C-z C-c 新しいウィンドウ
  • C-z C-d デタッチ
  • screen -ls screenのプロセス一覧
  • screen -r detachしたscreenプロセスに戻る

2005年11月17日木曜日

50時間踊りながらウォークマンを聴けるのか - 渋谷で発売カウントダウン

以前、ソニーのウォークマンに関する記事で、iPodには無い充電地の持ち時間など、ハードウェア的なメリットを強調すれば良いと書きました。ソニーもそれくらいのことは承知していたようで、50時間踊りながらウォークマンを聴けるのか - 渋谷で発売カウントダウン (MYCOM PC WEB)というイベントを行っている模様です。

ただ、このイベント、充電池が50時間持つかどうかより、50時間踊り続けられるのかどうかの方が気になります。

(追記)50時間踊り続けるのかと思ったら、ダンサーは交代していくらしい。一瞬、それではつまらない、と思いましたが、交代したダンサーの数が多いほど、「全力でこれだけ踊っても、まだ音楽は続いている」というアピールになるのか、と思い直しました。

2005年11月16日水曜日

Orbitz Gamesが楽しい

Orbitz Games が楽しい。シンプルだけどできの良いゲームがたくさん。旅行会社が広告用Flashとして作っているゲームなのだけど、ゲームが十分楽しいので、広告そっちのけで遊んでしまいます。

何回か遊ぶとコツ(nack)がつかめるゲームが多いのですが、ISLAND HOPはなかなか強敵。

2005年11月14日月曜日

Google File System

Google File System(PDF)を初めに読んだときにはDB技術的にはそれほど新しいことはやっていないなぁと思っていました。どうも、この論文はそう読むべきではなかったらしい。コストパフォーマンスに優れているなど、ビジネスの視点から読むと興味深い。

GoogleがGMailのサービスで1人2Gもの容量を無料で割り振ることができるたのは、このインフラのおかげ。RAIDのように高価なストレージに依存しないシステムを開発できたことが、今の強いGoogleのサービスを支えているとなると、これは重要です。

読み直したらレビューします。

Google Analytics

Google Analyticsが公開されている様子。 高機能アクセス解析ツールらしい。

早速このブログに導入しました。百聞は一見に如かず。
データが出るのは12時間後らしい。楽しみです。

情報源の情報源

について書いていたら、また、うっかり、Windowを閉じてしまいました…。せっかく書いたのに悲しい。

後で書きやすいように、リンクだけ残します。CNN.com - Special Reports - CIA Leak Investigation

大前研一氏も同様のことを書いていたので、追記。

2005年11月12日土曜日

C++のHTML化

をやってみました。昨日のブログ参照。Vectorにあったツールを使ってみたのだけれど、この程度なら、ANTLRでやってみると面白いかも。

2005年11月11日金曜日

Xerces C++ Parser でistreamを読む

Xerces C++ Parserには、std:: istreamからXMLを入力するための機能がなかったので、Xalanのコードを参考に(こちらではistreamからの読み込みが実装されてい る)、istreamから読み出すクラス(BinInputStreamと、InputStreamの拡張)を作りました。

以下はソースの抜粋。注:このままではコンパイルは通りません。適宜修正してくださいね。
まぁ、結構簡単かも。最初から作っておいてくれればいいのに。。

class StdBinInputStream
: public XERCES_CPP_NAMESPACE::BinInputStream,
private NonCopyable
{
public:
StdBinInputStream(std::istream& inputStream)
: _istream(inputStream) {}
virtual ~StdBinInputStream() {}
virtual unsigned int curPos() const
{ return _istream.tellg(); }
virtual unsigned int readBytes
(XMLByte* const toFill,
const unsigned int maxToRead)
{
XERIAL_ASSERT(sizeof(XMLByte) == sizeof(char));
if(!_istream)
return 0;
_istream.read(reinterpret_cast(toFill), maxToRead);
return _istream.gcount();
}

private:
std::istream& _istream;
};

class IStreamInputSource
: public XERCES_CPP_NAMESPACE::InputSource
{
public:
IStreamInputSource
(std::istream& in,
XERCES_CPP_NAMESPACE::MemoryManager* const manager =
XERCES_CPP_NAMESPACE::XMLPlatformUtils::fgMemoryManager)
: _input(in), XERCES_CPP_NAMESPACE::InputSource(manager)
{}
virtual ~IStreamInputSource(){}
XERCES_CPP_NAMESPACE::BinInputStream* makeStream() const
{
return new StdBinInputStream(_input);
}
private:
std::istream& _input;
};

松井残留

昨日のブログに書いたのだけれど、スポーツ新聞さんって期待通りのことをやってくれるから面白い。

今朝、コンビニに寄ると、とあるスポーツ新聞の見出しが、

松井残留 15日までに決着

となっていました。確信犯で読む方もわかって買うから許されるのでしょう。
スポーツ新聞はそういう文化だと思います。

朝日がそれをやっちゃいけない。

2005年11月10日木曜日

asahi.com:松井秀の再契約、合意に至らず ヤンキース - スポーツ

asahi.com:松井秀の再契約、合意に至らず ヤンキース - スポーツ

松 井とYankeesは、双方ともに再契約を望んでいるので、期限の15日までに合意することはほぼ確実と思われますが、このような書き方をされると、一瞬 「えっ?!」と思いますね。 意外な展開を思わせる見出しによって注目を引くスポーツ新聞でよく見られる手法かと。例えば、「宇多田ヒカル離婚か?」 などのように、最後まで読まないと事実とは違うことを印象づけてしまうタイトルで、新聞を買わせるテクニック。

全国紙には見出しのインパクトではなくて、内容の信憑性で勝負して欲しいものです。情けない。

ANTLR に慣れてきました

慣れるまで大変だったけど、ANTLR Parser Generator はやはり便利。 自分でデータ構造を用意しなくてもparse treeを自在に組み替えたりできる。 Bisonでparse tree用の動的メモリ確保の機構を組み込むのに、Bisonの出力ソースをスクリプトで変更するなど、煩雑なことをやってきたのが馬鹿みたいに思えてく る。

何より、C++やJavaのコードを直接出力できるのが一番。 有名なyacc(lexer)はC++に対応していたけれど、Bison(parser)は、Cしか出力できなかったり、古い形のライブラリを #includeをしていたり、global変数を多用しているのでマルチスレッド環境で使うのに難があったり。 parseを開始する関数 yyparse()の引数には、

#define YYPARSE_PARAM

で定義したもの1つしか使えなかったり…。どうしてもクエリの結果やparse treeを保持するのに間接参照が必要となるので、記述が面倒だったり。

Bison は一応global変数を出力しないように変更はできるのだけれど、parseした結果をunion型でしか受け渡せないので、C++のクラスを渡すよう に変換するにはそれはもう涙ぐましい努力がありました。。。 (今思えば、そんなことしなくても、YYPARSE_PARAMにparse treeのrepositoryを用意して、parse treeのidだけを扱うようにすればできたのかも。面倒なことに変わりは無いが)

ANTLRが使えるようになった今、bisonとはおさらばです。 yaccは状態ごとにlexerの挙動を変化させられて便利なので、また使う機会もあるでしょうが。

(補足)
最近のbison(version 1.875以上。現在は2.1)は、%parse-paramというパラメータが増えたようで、yyparse()に渡す引数の問題は解決したようです。

bluewindで快適キーボード生活

bluewindというツールの存在を知ってから、はまっています。Google Desktop Search2でも似たようなことができるようですが、どちらにしろキーワードをタイプしてアプリケーションを起動できる快適さはやみつきになります。

Windowsが起動したら、タイプしてFirefoxを起動。Webもブックマークなど開かずにタイプしてページを開くので0.5秒もかからない。英語の辞書にもキーボード操作のみでフォーカス切り替え、よく使うフォルダも登録しておいてタイプして開きます。おすすめ。

2005年11月9日水曜日

文章力

チャットに慣れているので、文章を書くときに顔文字に依存してしまいがちです。例えば、「(^-^;;」という顔文字は苦言を呈するときに便利なのですが。自分なりの表現の仕方を探さないと。

Web2.0 という Meme

Web2.0に関する記事を読んでいたら、Meme (ミーム) という言葉が出てきて、どこかでみたことありそうだったのに意味がわからなかったので調べてみると、"The Selfish Gene" で出てくる造語だとか。意味は、「模倣によって伝えられる情報の単位」ですって。 ちょっとむつかしいのでリンク先をどうぞ。 この本を読んだことがあるのに、意味をすっかり忘れている。。。

Web2.0のように、言葉はあるけれど定義がまだ人々の中で曖昧なものをmemeと呼ぶと良いようです。 上のO'Reillyの記事で は、Web2.0は新しい技術のことではなく、既存の技術を至るところで利用できるようにすること、とあります。 ブログも昔はHTMLを覚えた人が自分で作成していたものを、誰もがWebから簡単に利用できるように変化してきたのが特徴。iPodもWebアプリケー ションではないけれど、webで得た音楽をそのまま持ち運べるようにしてしまう点でWeb2.0というべき特徴を兼ね備えていると。 これって、まさにubiquitous computingですね。 Web2.0を後押ししているのはubiquitousのコミュニティの人たちだったのかと思います。

文章中では、Googleなど 有名なところ以外にも、いろいろな企業のサービスの例を挙げています。Flickr, BitTorrent, Napster, permalinkなどなど。でも、使ったことがないと全く便利さがわからない。百聞は一見の世界というのもWeb2.0の特徴。

文章の本筋は、Web2.0を闇雲に語る企業が増えてきたようなので、Web2.0企業としての適正について、彼らは以下のような定義をしたということ:

* Services, not packaged software, with cost-effective scalability
* Control over unique, hard-to-recreate data sources that get richer as more people use them
* Trusting users as co-developers
* Harnessing collective intelligence
* Leveraging the long tail through customer self-service
* Software above the level of a single device
* Lightweight user interfaces, development models, AND business models

おっと、これだけ載せてもlong tailとかの意味はわからないですね。

The Long Tail
Small sites make up the bulk of the internet's content; narrow niches make up the bulk of internet's the possible applications. Therefore: Leverage customer-self service and algorithmic data management to reach out to the entire web, to the edges and not just the center, to the long tail and not just the head.

(意訳) インターネットは、小さなサイトが集まることで大きな情報源となっています。だから、コンテンツを作り出す小さなサイトを持つクライアント自身による操作 (ブログはその典型例)や、アルゴリズムによる自動データ管理を活用して、webの隅々(long tail) 、つまりコンテンツを作り出せるあらゆるユーザを対象として企業のサービスを広げるのです。

記事の翻訳もありますが、どうも文章の意味を理解しての訳ではないようです(^-^;; 翻訳が難しいのはわかるけれど。。。memeとかcompetentを訳していなかったり、と、プロ意識が足りないようです。

2005年11月8日火曜日

SONY Walkman Aシリーズ

電気屋さんに寄る機会があったので、Walkman Aシリーズ を見てきたのですが、正直がっかりしました。 リンク先のプロモーション画像では光沢が美しいのですが、実際には、指紋がついて汚くなりやすい表面加工の上、プラスチックの表面が安っぽくみえて高級感 が感じられません。液晶インターフェースも見づらい。マイナス要素だらけ。

スティック型のEシリーズは旧ヴァージョンと変わり栄えしないので、iPod nanoのような驚きもなく。2GBに容量が増えたところで、iPod nanoの4Gで3万円以下を実現したインパクトには目劣りします。


NW-HD1
が 去年に発表されたときはわくわくして、予約までして購入したものです。こちらは高級感もあって、所有欲を満たしてくれます。充電池の持ちも20時間(低音 質なら30時間)はあって、今でも、他の機器の追従を許さないという強いメリットがあるのです。 Aシリーズになると、最大35時間。でも、このあたりの主張が足りない。充電池は消耗するから、表に出しにくい事情もあるのだろうけど。

SONY製品好きの僕としては、もっと頑張ってもらいたい。でも、他に比べてこんなに魅力が足りない製品を出しているのでは悲しくなってきます。

2005年11月3日木曜日

PHPにセキュリティホール

http://nikkeibp.jp/wcs/leaf/CID/onair/jp/flash_rss/411409
だそうな。PHP使っているサイトは多そうだから大変。 rpmに頼っている管理者とか、英語を読もうとしない管理者はここで苦労するのでしょう。

2005年11月2日水曜日

BBC Learning English

BBC Learning English を見ると毎回知らない英語に出会います。なさけなし(T-T)
普段、英語は論文やマニュアルを読むばかりで、発音していないし、しゃべるのも聞くのも不得手。こればかりは、練習しないとどうにもなりません。これは、修士の間、そういう時間を過ごしていたので、実証済み。英語は本当にたくさん読みました。

ノ ルウェーでは、どこに行ってもみなさま英語を流暢に話せるのです。教育の違いは大きいし、そういう環境に身を置けなかったことが悲しい。といっても、そも そも日本では英語を流暢に話せる教師が少ないと 思うので、悔やんでも仕方がない。 問題はそういう状況の日本のどこで経験を積むか。 英会話学校に通うのは避けたいところ。数十万単位のお金がかかるから(;_;)。 とりあえず、音読して右脳を刺激。 BBCで音声を聞いてシャドウリーディングすることにします。 VOAとか音声教材が充実してきたのは救い。

読むだけでは語学力はなかなか鍛えられないのです。しかも、悲しいことに、読めることより、流暢に話せる方がかっこよく見えるのです。がんばれ、自分。

2005年11月1日火曜日

ゆいのお散歩コース

保育園が東大に近いので、朝のお散歩コースは安田講堂とか、御殿下のグラウンド周辺だったりするようです。

保育園便りによると、お散歩途中、銅像の前で「なむなむ…」とか「おはよう」とか「おねがいします」と手を合わせているとか。

東大に銅像はたくさんあると思うのだけれど、いったい誰を拝んでいるのやら。少々不安です(^-^;;

ANTLR - lookahead lexer

ANTLRでは、lexerにlookahead値を指定して先読みができるので便利。。。と一瞬思ったけど、yaccではそんな設定しなくても大丈夫だった気がする…(-_-;;

LALR(1)とLL(k)の違いなのだろうけど、、、もう随分前に習った知識なので忘れてしまいました。それでもANTLRでは、「*」「?」「+」などの正規表現でおなじみの記号を使えるのでとっても便利。 yacc&bisonだと、

E* => E1 : ε | E1 E
E+ => E2 : E | E1
E? => E3 : ε | E

と書き換えなくてはならなかったので、かなり苦痛でした。

License

Creative Commons LicenseLeo's Chronicle by Taro L. Saito is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.1 Japan License.