Yearly Archives: 2008

2008-07-18

Firefox3のライブマークを普通のブックマークへ変換する

Firefox3にしてからというもの、Firefox3の起動直後が死ぬほど重くて困っていたのだけど、ライブマークが多いともたつくという情報を見たのでSage Feeds以下のライブマークを通常のブックマークへ変換したら軽くなった。

何か変換する拡張でも無いかと思ったのだけど見つからなかったので、いったんブックマークのバックアップで.jsonファイルを出力し、Emacs上で変換し、再びブックマークの復元で戻す方法をとった。.jsonファイルのSage Feedsの子孫部分だけをNarrowingして、次のような置換を実行。

(defun firefox3-strip-livemark ()
  (interactive)
  (beginning-of-buffer)
  (replace-regexp ""livemark":1," "")
  (beginning-of-buffer)
  (replace-regexp "{"name":"placesInternal/READ_ONLY"[^}]+}," "")
  (beginning-of-buffer)
  (replace-regexp "{"name":"livemark/feedURI",[^}]+"value":"\(http://[^"]+\)"},\([^]]+}],\)"type":"text/x-moz-place-container","children":\[\]" "\2"type":"text/x-moz-place","uri":"\1"")
  (beginning-of-buffer)
  (replace-regexp "{"name":"livemark/[^}]+},?" "")
)
        

一応手元のは全部置換できたみたい。タイトルに]とか"とか}とかが入っているとうまくいかないかも。

2008-07-12

GNU gettextもどき

GNU gettextのようなプログラム中の文字列を置き換えるライブラリを作った。いちいち全てのメッセージに整数の識別子を付けるなんてやってられないので、この英語の文字列を識別子にする方法は現実的だと思う。

やれやれ、これでようやくソースの中に文章を書く気持ち悪さから解放される。

2008-07-07

サブウェイ吉祥寺北口店

サブウェイ吉祥寺北口店へ行ってみました。伊勢丹の南側かな?と思っていたら、二館ある伊勢丹の間でアーケード寄りなんですね。分かりづらい。それにしても客が少ない。近くのファーストフード店にはそれなりに客が入ってるのに。大丈夫か?サブウェイ。

豚しゃぶ水菜サンドをセサミで、と頼むと、パンをトーストするかどうか聞いてきた。店舗リストの「トーストOK」っていうのはこのことだったのか。初めてなのでトーストしてもらうことにした。

トーストしたセサミのパンはごまの香りが強すぎてあまり好きではないかも。焼けたパン自体も少し堅くて、大量の具と一緒に食べるには食べづらいし。やっぱサブウェイは柔らかいパンの方がいいなぁ。

2008-07-03

三項演算子の使い方

C言語の三項演算子(正式には条件演算子。C言語には項を三つ取る演算子はこれだけなので、単に三項演算子と呼ぶことがある)はとても便利な演算子だ。高校時代、K先輩とC言語で一番好きな演算子はやっぱり三項演算子でしょ!と意気投合したことは今でも忘れない。

でも、この三項演算子、わかりにくいから嫌いという人も世の中にはいるらしい。たまにそういう意見をWeb上で見かける。とても悲しいことだ。

三項演算子の使い方はとっても簡単。次の例は所得に応じて税率を求める式だ。

int tax_rate
  = (income < 1950000) ? 5
  : (income < 3300000) ? 10
  : (income < 6950000) ? 20
  : (income < 9000000) ? 23
  : (income < 18000000) ? 33
  : 40;
        

正直これ以上説明はいらないんじゃないかと思う。

不明なところがあるとすれば、細かい優先順位や括弧付けの問題だろうか。その辺は見やすさとのかねあいもあり、多少好みが分かれるところでもある。