2005-05-02
_ OutlookでのiCalendarシンクロナイズ
以前、KO/PIでのiCalendarシンクロナイズについて調べましたが、今度はもう1つのシンクロナイズ対象であるOutlookで調べてみました。Outlookなのでシンクロナイズしやすい動作をするかどうか、疑ってかかっています。
- iCalendarにexportするたびに、新規のUIDがつけられてしまわないか?
→○Outlook上の1つのイベント項目を何度かiCalendarにexportしても、exportごとに別のUIDになることはなく、単一のUIDのままである。 - Outlookで更新するとSEQUENCE、LAST-MODIFIED、DTSTAMPは変化するのか?
→○Outlookで新規作成したイベント項目の場合、DTSTAMPが変化する。
×iCalendarから登録したイベント項目の場合、どの項目も変化しない。
×SEQUENCEは増えない。LAST-MODIFIEDは存在しない。 - 1度iCalendarから登録したイベント項目と同じUIDのイベント項目を再度iCalendarから登録するとどうなるか?
→×同じ内容のアイテムが重複して登録してしまう。再度exportしてみると、UIDはどちらも同じ値となっている。 - iCalendarからイベント項目を登録した場合に、登録した項目をOutlookから取り出したらUIDが保存されているか?
→○UIDは保存する。
UIDが保存されるので、イベント項目の特定はできそうです。同じUIDのイベント項目が存在できるのは、UID(OLE2でのプロパティはEntryIDだと思う)とは別のIDが存在しているのでしょうか?
何を基準に更新したかどうかを判断するかが問題です。iCalendarから登録した項目では、Outlook上で変更を加えても変更したことがどの項目からも分からないので、変更反映の方向が判断つきません。常に一方向シンクロナイズか、毎回コンフリクトにするか、という方法しかないかもしれません。
追記: OLE2でLast-Modifiedをみると、iCalendarから登録したイベント項目でもOutlookで操作した時間が反映されていました。iCalendarへエクスポートする場合との違いが良く分かりませんが、変更の検出は出来ることがわかりました。)
2005-05-08
_ イス選び
今、家で使っているイスは合板でできたイス(4000円くらい)です。これはアンネヤコブセン デザインSERIES 7(Fritz Hansen製)のパクリデザインです。パクリなので10分の1以下の価格でした。
背もたれの合板が割れかけで、リクライニング機能がないのにリクライニングできてしまう状態なので、もたれないように気をつけながら座っていて肩と腰が凝ってしまい、長く座っていられません。
イスを買いたいのですが、せっかくだから良いものが欲しくなって、家具屋に探しに行きました。座ったイスと評価を書きます。
- 高級品(10万円〜)
アーロンチェア: 前に2週間くらい座って仕事したことがありましたが、すごく体が楽だったです。楽すぎて眠くなるのが難点なくらい。他のイスと座り比べてもやっぱり良いです。脚がアルミ製のものがあってすごくかっこ良かったけれど20万円と高かったです。ちょっと手が出ないなあ。
コンテッサ: アーロンチェアと甲乙つけがたい座り心地で良いです。デザインはこっちの方がかっこ良いです。ただ、背もたれを持って動かすとがたがたするのが気になりました。たまたま展示品が緩んでいるだけかもしれませんが。
ミラチェア: アーロンチェアと同じくハーマンミラーのイスです。今日座った中でこれが一番座り心地が良かった気がします。背もたれが固いかと思ったらちょうど良かった。背もたれの色が選べるのも良いです。
- 8万円〜
バロン: コンテッサと同じく岡村製作所のイスです。コンテッサとそれほど座り心地の差を感じなかったです。機能が少ない分軽くて、掃除しやすい感じです。こちらはがたがたしませんでした。
- 4万円
VESS REAL: 座るところの一番前の部分が膝の裏に当たってちょっと不快でした。高級品を見ると、ちゃんと一番前が大きく下に曲がっていて膝の裏に当たらないようになってますね。値段の割に良いのではないかと期待していたのですが、残念。
- その他: 1,2万前後の家電量販店で売っているアーロンチェアっぽいイスは、やっぱり値段相応ですね。立て付けが悪くてぎしぎし音が鳴ります。この価格帯を買うなら、中途半端に高級風味ではなく、シンプルなイスにした方がよいと思いました。
今のところ、ミラチェアとバロンが重要候補です。どちらにしても10万円近くのお金が必要か…… まあ、毎日座るものですし、すぐに陳腐化するCPUだとかビデオカードにお金をかけるのに比べれば費用対効果と心理的満足が高いし、買ってみるか。もうちょっと探してみます。
2005-05-12
_ GCCで実行結果を使った最適化
職場で雑談をしてたとき、コンパイラの最適化の話題になりました。「JavaのHotspot VMは実行時の情報(分岐をどちらに進む回数が多いか、等)を基に最適化できるからCよりも速いことがある」という話をしたら、「GCCにはプロファイル結果を使って最適化できる」という話が出ました。そんな機能があったのか。
プロファイルをとるには、コンパイル時に-fprofile-arcsオプションをつけて置きます。生成したバイナリを実行するとプロファイル結果がファイルに残ります。再度-fbranch-probabilitiesというオプションを指定してコンパイルするとプロファイル結果を使って最適化してくれるそうです。
どのくらい速くなるのだろうか。なんだかんだいってI/Oネックになっている場合が多いから、ちょっとくらい実行が速くなっても影響ないかもしれない。ばりばりループ回して計算するようなプログラムには有効でしょうね。
2005-05-18
_ Wikipediaの仕組み
Wikipediaを運営しているWikimedia Foundationのことが書いてあるWikimedia Meta-WikiにWikipediaのシステム構成が載っています(日本語版はちょっと古いみたいです)。
- フロントにSquidのリバースプロキシがあり、編集済みのページはPHPにたどり着く前に返しています。9台のSquidはDNSラウンドロビンで冗長化しているようです。
- SquidとApacheの間にPerlbalがリバースプロキシとして動作していて、Apacheの負荷分散をしています。Perlで書いてあるのですが、TCPコネクションの扱いにepoll()を使ってスケーラブルにしているとか。Perlbalは2台あるのですが、どうやって冗長化しているのだろう?。Linux Virtual ServerではなくPerlbalを使うのはどのような意図があるのか良く分かりません。
- MediaWikiが動くApacheサーバは40台くらいと数で稼いでます。
- データベースはMySQLがマスターが1台、レプリケーションで4台がスレーブになってます。MySQLはよく知らないけど、レプリケーションは何でやっているのだろう?
- memcachedでデータベースの内容をApacheサーバ間の分散共有メモリでキャッシュしているそうです。ただ、相手がMySQLだとmemcachedとどちらが速いのかどうか微妙な気もします。JBoss TreeCacheはトランザクションをサポートしてますが、memcachedにはサポートしていると書いていないので、用途は限られますね。
色々工夫してますね。安い設備で出来る限り性能が出るように考慮しているのが分かります。perlbalは負荷分散というよりは、外向けコネクションの維持(Keepalive)をしつつ内向けにコネクションを絞る用途に使えそうなので、ちょっと試してみたいです。
2005-05-20
_ MySQLでOracle RACみたいなことが実現できるようになるらしい
先月のニューズリリースですが、MySQLがGFSを利用してOracle RACのようなクラスタが組めるようになるそうです。MySQL & Red Hat to Offer Optimized 'Scale-Out' Solutions for Enterprise Customers
複数サーバから同じ領域を書き込めるようにするにはロックの管理方法がかなり変わると思いますが、どうするのだろうか?もし性能出るのだったらかなり使えると思います。
GFS使うとなるとSANが必要になって、設備費が高くなってしまいます。特にFibreスイッチがやけに高い。ただ、iSCSIなら多少安くなるし、どっちみち良いストレージは高いし、結構現実的かもしれません。PostgreSQLで同じようなこと出来ないのかな?
2005-05-22
_ Ergodex DX1は2台同時に使用できないが、将来対応予定らしい
以前、レイアウトが自由に決められるキーボードErgodex DX1を紹介しました(ErgodexつかえばTRONキーボードできるかも)が、TRONキーボードの配置が実現できないか、質問をしてみました。
DX1は1台でキートップが50個までなので、1台ではTRONキーボードを実現できません。右手用と左手用にそれぞれ1台ずつ準備すれば、数的にはTRONキーボードが実現できそうです。Ergodexに聞いたところ、現在のDX1制御ソフトウエアでは1台しかサポートしていないそうです。ただ、他の顧客からも2台同時に使いたいという要望があって対応予定だとか。期待して待つことにしましょう。