EAPI 2
久しぶりにおうちの Gentoo マシンをアップグレードしようと思ったのですが,
# emerge -auv world
These are the packages that would be merged, in order:
Calculating world dependencies
!!! All ebuilds that could satisfy "~x11-libs/libcompizconfig-0.7.8" have been masked.
!!! One of the following masked packages is required to complete your request:
- x11-libs/libcompizconfig-0.7.8 (masked by: EAPI 2)
The current version of portage supports EAPI '1'. You must upgrade to a newer version of portage before EAPI masked packages can be installed.
For more information, see MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook.
(dependency required by "dev-python/compizconfig-python-0.7.8" [ebuild])
!!! Problem resolving dependencies for dev-python/compizconfig-python
!!! Depgraph creation failed.
なんていうエラーが出ます.
"upgrade to a newer version of portage"とか書いてあるので,
# emerge -auv1 portage
なんてしてみたのですが,効果なし.
なんでだろう,と思っていたら,upgrade 対象の portage が mask されてたみたいです...orz
というわけで
# vi /etc/portage/package.keywords
sys-apps/portage ~x86
app-admin/eselect-news ~x86
app-admin/eselect ~x86
して,portage 関連のマスクを外してあげた後で
# emerge -auv world
してあげると,うまくいきました.
とりあえず,めでたしめでたし,でしょうか.
スターバックスと私
昨日のことなのですが,スターバックスにジンジャーブレッドラテを買いにいきました.
久しぶりのスターバックスなので,心躍らせながら行ったのですが,

マグカップにわけのわからん落書きが施されてました...orz
クリスマス限定メニューの場合にカップが変更されるのかとも思いましたが,他の方々を見てみると,そうではない様子.
やっつけ仕事感も満載で,萎えました...
ですが,そんなことにもめげずに本日も人に誘われてスターバックスへ行って参りました.
で,リベンジも込めてジンジャーブレッドラテを注文したのですが,
先にうちの先輩が注文したスターバックスラテと変なところで取り違えられたらしく,
- ジンジャー臭のする,甘味のないジンジャーブレッドラテ
- 甘味成分がたっぷり入ったスターバックスラテ
が提供されました...
# 甘味成分は本来ジンジャーブレッドラテに入るはずのものでございます.
もちろんカップの横に書いてある "GB(ジンジャーブレッド)" "L(ラテ)"なんて文字は華麗にスルーされてます.
もう,しばらくはスターバックスに行くのやめます...
/var/spool/exim retry
あるメールサーバのエラーメールを見ていると
failed to open DB file /var/spool/exim/db/retry: File exists
という内容のが届いてました.
なんじゃろな,と思って Google 先生に聞いてみると,
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=248622に解決策を発見.
簡単にいうと,/var/spool/exim/db/retry という DB が古いんだそうな.
で,解決策ですが,こんな感じらしいです.
# /etc/init.d/exim stop
# cd /var/spool/exim/db/
# db3_upgrade retry
# db3_upgrade reject
# db3_upgrade wait-remote_smtp
# rm *.lockfile
# /etc/init.d/exim start
これをやった後に,
# /usr/sbin/exim_tidydb /var/spool/exim retry
なんてやると,いい感じで動くみたいです.
それにしても,2004年に見つかってるバグがなんで今まで修正されてないんだろう,このサーバー...
クレィドゥ・ザ・スカイ

クレィドゥ・ザ・スカイとスカイ・クロラを読み終わりました.
寝る前に1章ずつというペースだったので,なんだかんだで読破するのに時間がかかっちゃいました...
このシリーズは全部「僕」の一人称で進んでいくので,主人公が誰か,というのが比較的わかりにくいのですが,クレィドゥ・ザ・スカイは特にわかりにくい本でした.
ただ,全体的に漂う退廃的な逃走の印象がなんとも言えない心地よさを味わわせてくれました.
シリーズの中だと,これが一番気に入ったかもしれません.
スカイ・クロラのほうは,映画で見たのでだいたいストーリーは知っていたのですが,ちょこちょこと内容が違います.
やっぱり映画版は押井守の特徴である(と勝手に僕が思っている)現実感や日常感の脆さといったアレンジが加わってたんだな,と原作を読んで納得します.
個人的には映画版ストーリーのほうが好きなんですが,もちろん原作は原作の筋の通し方を感じられる良作だったと思います.
いいですね,このシリーズ.
HHKB Pro JP
http://www.pfu.fujitsu.com/hhkeyboard/hhkbprojp/"
ついに Happy Hacking Pro に日本語配列が出るみたいです.
スペースキー横の「変換」キーを Esc にして使っている変態な僕には大変な朗報!
配列はソフトウェア的にいろいろ変更できても,物理的なキーの個数はいじれないですからね.
スペースキーの長さに価値を見出せない僕としては,「変換」とか「無変換」とかのキーもついていてくれたほうがうれしいのでございます.
# そのままの機能では使わないけどw
お金がないのでしばらくは手が出ないと思いますが,就職してちょっとリッチになったら買おうかな.
今クールのアニメ
もう今クールが始まって1ヶ月半ぐらい経ちますが,とりあえず現時点でもまだ視聴中なアニメを列挙しておきます.
今期は第1話を見逃してしまったために見るのを諦めてしまったのが結構あったので,少なめです.
-
ケメコデラックス!
これ,すごい.
ストーリーもさることながら,OP/ED の秀逸っぷりがやばいですね.
ED のプリップリン体操は神曲(ダンテじゃないよ)の域に達してますが,OP もなかなかです.
頭のネジゆるめて,観ましょう.
-
今日の5の2
第1話を観たときはちょっと不安になりましたが,なかなか持ち直してる感じがします.
まあ,全員が全員小学5年生ですから,失敗するわけないですけどね!
ナツミちゃん(CV.あすみす)がかわいくて仕方がありません.
-
黒執事
単純に良作だと思います.
作画面では特に安定しているかと.
-
CLANNAD AFTER STORY
観ない奴は日本人失格でございます.
OP の歌詞が切なすぎて...
-
夜桜四重奏
アオがかわいい.
良作では有るけど,どこがおもしろいかと言われると...
平均点は全体的に越えるけど,突出した所はない印象です...
-
とらドラ!
原作好きな人はアニメのキャラデザが嫌いらしいですが,アニメから入った僕には特に問題無し.
作画も安定してて話もなかなか.
OP のプレパレードはしばらくヘビーローテしても飽きない名作です.
と,だいたいこんなもんです.
本数は少なめですし,全体的に無難なのばかり観てしまってますね.
# さらに,なぜか OP 曲への言及が多い...
Firefox 改め Thunderbird Addon 作成(その3)
前回で基礎編終了.
で,発展編と行きたいわけですが,前回以上のことをしようとするとそれは各人が実装したい機能によってくるわけで,フォローアップは不可能.
とりあえずTipsと役立ちリンクをまとめておくことにします.
-
何はなくとも DOM Inspector
Firefox や Thunderbird の UI をいじる場合は,まず必須です.
これでどこをいじればいいか当たりをつけてあとは頑張るのみです.
-
vbox, hbox に慣れる.
UI に変更を加える場合は,変更を加える部分の配置を考えないといけません.
その場合,基本的に vbox と hbox で頑張っていくことになるかと思うので,このあたりに慣れる必要があるみたいです.
個人的な感想としては,HTML で TABLE を作っているのに似ていた感じ.
# TR だ TD だ,さらに COLSPAN だの ROWSPAN だの.
美しいかどうかは別にして"box 追加 <-> 実際の UI と DOM Inspector で確認"を繰り替えせば,力技でなんとかできそうです.
-
Mozilla Developer Center (MDC) 必須
なんかあんまりここにリンクを貼ってる人を見かけないような気がするのですが,結局ここをみないとどうにもならない気がしました.
# ただし,必要条件であって十分条件じゃないです.(見たから必ずどうにかなるもんではない.)
個人的にいじってる部分が DOM まわりであるせいか,DOM のリファレンスは助かりました.
あと,作りはじめる前にXUL チュートリアルをざーっと眺めておくといろいろ楽になるかと思いました.
-
他のアドオンのソースを読む
自分の目的と似ているアドオンを探して,そのソースを読むのがいいです.
簡単なアドオンを作りたいだけであれば,既存のソースをちょこっと書き換えるだけで出来てしまう場合もあるかと思います.
# もちろん,いじった後のものを公開するなどの場合はライセンスに中有為が必要です.
公開されているアドオンは xpi 形式で圧縮されていますが,これは結局 zip なので,適当に解凍してやれば読めるはずです.
# アドオンから外部プログラムを読み込むことも可能なので,その部分がバイナリ化されてたりすると読むのは難しいですけど...
という感じでまとめて,アドオン作成関連のネタは今回でひとまず終了です(ぉぃ.
UI の追加の話題に終始してその後の機能についての議論は全く行ってませんが,機能面は XPCOM インタフェースについて上記 MDC を各人が読んで行く必要があるかと思います.
外部プログラムの呼び出しなんかも簡単にできるようになっているので,よくわからなければ,その方法だけ調べて,やりたい機能は他で実装してしまう,というのも一つの手でしょうか.
# その部分は個人でまとめる元気はいまのところありません...
# 頑張って MDC 読んでください.
モンスターズ・チョイス
今月半ばに早くも某所で忘年会があるのですが,そちらに持っていくためのウイスキーを仕入れて来ました.

GM社のブレンデッドウイスキー,モンスターズ・チョイスです.
いかにも"西洋イラスト!"なモンスターが描かれていますが,どうやらこの子,かの有名な
ネッシー
らしいです.
# ラベルに "Nessie's Favourite Dram" (ネッシーお気に入りの一品) とあります.
ネッシーって尻尾がニョロニョロと長いのですね...
# 個人的にネッシーはブラキオサウルス的な,お腹のでっぷりした感じのをイメージしていたので残念です.
買うときに試飲させてもらったんですが,味はすっきりとした綺麗な感じのスコッチでした.
りんごの香りこそしませんが,シーバスリーガルに少し近いかなという印象.
全体的に穏やかな味でしたが,余韻はなかなか長く続きます.
"これだ!"と思わせる特徴があるわけではないのですが,2,500円程度の値段には十分見合う銘酒でございました.
# なんだか微妙な表現になっちゃいましたが,おすすめですよ.
ロングロウ バローロ

上のモンスターズチョイスと同時に買ったのがこちら.
ロングロウ ガイヤ バローロカスク フィニッシュです.
# 今年のウイスキー・マガジン・ライブで試飲したやつですね.
リカーズハセガワさんでかなり安くなって(3,000円引きぐらい?)いたので買ってしまいました.
# ほんとはマッカラン グランレゼルバを買おうかと思っていたのですが,試飲したところ,ものすごいシェリー香だったので変更しました.
# シェリーのツンツンしたのって,おもしろいけどボトルで買っても飲みきる自信ありません...
こちらのロングロウですが,かなりピーティーなウイスキーです.
口に含んだときは焦がした砂糖のような甘さ,バローロフィニッシュによるワインっぽさを感じますが,その後は怒涛のピート.
# "焦がした砂糖のような甘さ"ですが,なかなか落ち着いた,大人の雰囲気の甘さです.
# 甘いのが苦手な人にもおすすめです.
合計7年熟成なので若い方なのですが,色合いがそれなりに濃いので油断しておりました.
後味のピートは若いアイラ顔負けの,若干青臭い感じの,強いピートです.
好みによるかと思いますが,この変身っぷりが個人的にはなかなかおもしろいウイスキーでした.
Firefox 改め Thunderbird Addon 作成(その2)
前回はとりあえずインストールまでをまとめました.
今回は下のようにボタンを追加するところぐらいまでをまとめておこうかとおもいます.

左の画面がアドオンなしの場合,右の画像がアドオンありの場合.
右の画像には "Click Here" というボタンが追加されていますが,今回はこれを追加する手順を備忘録としてまとめておきます.
ちなみに,浮気性のせいで今回は Thunderbird をいじってます(ぉぃ.
Thunderbird をいじる手順も前回とほとんど同じです.
# 違いは,プロフィールの保存場所が $HOME/.mozilla-thunderbid であることや,入力するコマンドが firefox ではなく,thunderbid であることぐらいでしょうか.
-
DOM Inspector のインストール
これがないとほんとに始まらないのでインストールします.
-
修正箇所の把握
DOM Inspector を用いて,インタフェースのどこを修正すればいいかを確認します.
今回は,Thunderbird で個別メッセージの表示画面をいじることに決めたので,その中を探します.
具体的には,
- Thunderbird の起動
- 適当に届いているメールをダブルクリックして個別メッセージの表示画面を出す(上図の左側の画面を出す)
- DOM Inspector をメニューの「ツール」から起動
- DOM Inspector の "File" -> "Inspect a Window" から個別メッセージの表示画面を選択
します.
これが終わると,

こんな画面が出てくるはずです.
今回 "Click Here" ボタンを追加したいのはメールのヘッダ表示部分なので,DOM Inspector の中を適当に見ていくと,nodeName:hbox, id:expandedHeaderView というのが見つかります.

なんとなくこのあたりだな,という当たりをつけておきます.
-
chrome.manifest の作成
今回いじるのは,DOM Inspector の結果から chrome://messenger/content/messageWindow.xul だと分かるので
$ vi $HOME/Mozilla/testdev
content testdev content/
overlay chrome://messenger/content/messageWindow.xul chrome://testdev/content/overlay.xul
と書きます.
そして,この後いよいよ,overlay.xul をいじります.
$ mkdir $HOME/Mozilla/testdev/content
$ cd $HOME/Mozilla/testdev/content
$ vi overlay.xul
<?xml version="1.0"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://testdev/content/overlay.js" />
<overlay>
今回は中身をイベントなどをいろいろ足すことを考えて,overlay.js という Javascript を別途読みこませることにしました.
大事なのは赤字の部分です.(青字の部分はおまじない)
で,その中身はこんな感じ.
$ vi overlay.js
var alreadyArrangedDOM = false;
function arrangedDOM(){
if(alreadyArrangedDOM) return;
alreadyArrangedDOM = true;
var moetoraBox = document.createElement("vbox");
moetoraBox.setAttribute("id", "moetoraBox");
var widget = document.getElementById("expandedHeaderView");
widget.appendChild(moetoraBox);
var moetoraStartButton = document.createElement("button");
moetoraStartButton.setAttribute("id", "moetoraButton");
moetoraStartButton.setAttribute("label", "Click Here");
moetoraStartButton.addEventListener('click', buttonPressed, true);
moetoraBox.appendChild(moetoraStartButton);
}
function buttonPressed(){
alert('Button was pressed!');
}
// messagepane にボタンを追加する
var messagepane = document.getElementById("messagepane");
messagepane.addEventListener("load", arrangedDOM, true);
メッセージ表示画面が load されると,arrangedDOM が呼ばれます.(最後の2行)
arrangedDOM の青字の部分では,DOM(Document Object Model)を JavaScript でいじってます.
上で確認した expandedHeaderView を getElementById で探して,その子ノードとして moetoraBox という ID の vbox エレメントを追加しています.
vbox は Vertical Box の略の様で,ある領域(親ノードの領域)を縦に分けたうちの一つになります(左下図参照).
ちなみに,hbox にすると,横に分けたうちの一つになります(右下図参照).

# この図では,各 Box は同じ大きさにしてますが,vbox であれば横幅,hbox であれば縦幅が,中に含まれる要素によって変わってきます.
# 要は,vbox に長々とテキストを書いてもそれなりに調整してくれるっぽということ.
arrangedDOM の赤字の部分では,青字の部分で足した vbox 領域である moetoraBox に,button エレメントである moetoraButton を追加してます.
そして,addEventListener メソッドを使って,ボタンをクリックした際の動作を規定しています.
ここでは,buttonPressed を呼び出すようにしていて,それは下で定義されています.
今回の例では,alert() を使って警告画面を出すに止めていますが,ここを工夫してあげると割となんでもできそうです.