fontconfigを指定してアプリを使う

fontconfigの設定で、日本語以外の文字はDejaVu Sansフォント、日本語はヒラギノフォントで、さらにボールドの場合はこのフォントで、、、というように好きに組み合わせて表示させていたんだけど、Flashで日本語が表示されると、化けてしまう。かといって好きに合成してフォントを使うのが諦められず、こちら(Ubuntu 10.04 で flash の文字化けを解消する - 玉虫色に染まれ!!)のようなやり方に加えて、ニコニコを見るような時はfontconfigの設定ファイルをシンボリックリンクで切り替えて別のブラウザを立ち上げて見るようにしていた。
そんな面倒な方法でやっていたのは環境変数FC_CONFIG_FILE を試したものの、うまく反応してくれなかったからなんだけど、最近こちら(http://nhh.mo-blog.jp/ttt/2007/12/pkgsrcfirefox_c191.html)のサイトで 環境変数FONTCONFIG_FILE と FONTCONFIG_DIR を発見。これで試してみたところ、うまくいけた。

最近インストールした Ubuntu10.04 では /etc/fonts をまるごとホームディレクトリにコピーして、Flash見る時用のchromiumとTweetDeckの起動ランチャーに、その環境変数を仕込んで使うようにしてます。

git-rerereのメモ

git-rerereってなんかレレレのおじさんみたいですが(Reuse recorded resolution of conflicted merges だそうな)、同じような衝突を何度も起こす状況で使うととっても便利なようで、調べつつ、メモ。

Linusが言っている「無駄なマージコミットやめて」を実現するには、rebaseがあればいいよね、と思ってたんだけど、既に公開しているようなブランチとなると、rebaseするわけにもいきません。
でも途中でちょっとだけ本線とマージしてテストしてみたくなったり、マージした後でやり直して再度マージしてみたくなったりも、しがちです。
そうなるとキツいのが、分かりきってるようなコンフリクトの解消。同じようなマージを繰り返すと、同じように衝突してるところを何度も手で直す作業を繰り返しやるハメになって、泣きそうになります。かといってマージを限界まで我慢して一発でFAというのも、キツい。そこでrerere。

続きを読む

firebugのためにFirefoxを2つ起動する

unpush2009-09-10

firebugはとてつもなく便利なアドオンなんだけど、タブをたくさん開いてると鬼のように重くなったりしばらく制御不能になったりするので(タブ開きすぎでしょ、という指摘はよくされるんだけれど…)、「普段使い用」と「firebugでハックる用」に別々にfirefox(3.5)を起動するようにしてみた。

以下を参考にというかそのまんまやったらできた。

以下Macでやってますが、どのOSでも同じように出来るようです。Ubuntuでも出来た。

プロファイルを追加

firefoxを終了した状態で、こうする

$ /Applications/Firefox.app/Contents/MacOS/firefox -profilemanager

画面が現れてそこでプロファイルの新規追加が出来るので、適当な名前で作っておく。

立ち上げる

今までどおりのfirefoxを起動

$ /Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote

追加したプロファイル(devel)のfirefoxを起動

$ /Applications/Firefox.app/Contents/MacOS/firefox -P devel -no-remote

めでたく2つ同時に立ち上がりました。defaultプロファイルの方からはfirebugを削除して、追加したdevelのほうにfirebugをインストール。

ついでにパスワード等も新プロファイルにコピー

defaultプロファイルから追加したプロファイルにパスワードとかの情報もコピーした。

こちらを参考に

とりあえずこのへんをコピー(firefoxを終了した状態で)

cert8.db
bookmarks.html
places.sqlite
places.sqlite-journal
cookies.sqlite
cookies.sqlite-journal
key3.db
signons3.txt
signons.sqlite
formhistory.sqlite
permissions.sqlite
いい感じ

2つ立ち上げるとけっこうメモリを喰うのと、いまどっち使ってるんだか自分で分からなくなるというのを除けば、かなりいい感じです。firebugを気軽に使えるようになって、すごい嬉しい。

きのこたけのこ戦争

僕はきのこ派なんですが。

D

で、何気なく昨日、きのこの山を買ってきたら、なんかパッケージにキャンペーンの告知が。

http://www.meiji.co.jp/sweets/chocolate/kinotake/cmp/09s/
screenshot

きのこ派たけのこ派って話題、以前からありましたっけ?

もしやニコニコで盛り上がってたので?

git-svnを途中から始める

普通にgit-svnをやろうとすると、活発なプロジェクトだと既に数千以上の履歴があったりなんかして、全部フェッチするのにアホみたいに時間がかかります。あときっとsvnのホストも、負荷がデカくて涙目だと思います。

それで、githubあたりからgit-svn済みのgitリポジトリを入手して続きをやりたくなるんですが(gitだとかなりの履歴があってもすんなり取得できる)、このやり方はgit-svnのmanページのBASIC EXAMPLESに載ってます、がしかし、どうもうまく出来ないので、よくわからないけど出来るようにするやり方。rubygemsでやってみました。

githubで"rubygems"で検索したら、unofficial mirrorが見つかりました。感謝しつつクローンします。

$ git clone git://github.com/vvs/rubygems.git
$ cd rubygems

次にSubversionの方をセットアップ。

$ git svn init --stdlayout http://rubygems.rubyforge.org/svn

できるかな?

$ git svn rebase
Unable to determine upstream SVN information from working tree history

怒られました。

かなり無理矢理かも…remotes/trunkをmasterと同じにしてしまいます。

$ cat .git/refs/heads/master > .git/refs/remotes/trunk
$ git svn rebase
Rebuilding .git/svn/trunk/.rev_map.3d4018f9-ac1a-0410-99e9-8a154d859a19 ...
r1 = 440e25888865db15deaa4e587f7e813fa4fb688a
r2 = f86b2ee282a3f0017324a64e5657a485570fe25a
r3 = fe49b4371490cac86dff87f05a94fa52b7da7748
 略
r2289 = af62a2a1bcca671c9135a324178f9921f2cae4cc
r2290 = 1c33fbedd5743043141547cf4b56d8eb4c88ae23
Done rebuilding .git/svn/trunk/.rev_map.3d4018f9-ac1a-0410-99e9-8a154d859a19
Current branch master is up to date.

できたー!

$ git branch -av
* master                1c33fbe Added a TODO for some badness.
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master 1c33fbe Added a TODO for some badness.
  remotes/trunk         1c33fbe Added a TODO for some badness.

ってこんなんでいいんだろうか。でも使えてるっぽいです。

意地でも前に進む場合の呪文

aptitude install したら、

この警告を無視して意地でも先に進みますか?
先に進む場合は "はい (Y)" を、中断する場合は "いいえ (N)" を、入力してください:

と出てきたが、yでもYでもYesでも進めない。
まあありがちかな、と思って、(Y)と入れたがこれでもダメだったので驚いた。

これでFAだッ!とばかりに入力した はい も蹴られてしまい、途方にくれてしまった。

正解は

はい (Y)

だった。非常に負けた気分。

githubからdiffをダウンロードさせるには

http://support.github.com/discussions/feature-requests/185-download-diff-button

コミットのURLに.diffを付けると。単純明解だった。

追記

URLに.diffを付けた場合に取得できるdiffは改行コードがオリジナルと違っているために、そのままpatchに食わせるとうまくいかないことがあった。
サポートに問い合わせてみたところ、URLに.diffを付けた場合のはシンプルなdiff表示用(?)で、URLに.patchを付けるとgitの生パッチが落ちてくるというのを教えてもらいました。
URLに.patchを付けてやってみたところ、patchに食わせられる完全なファイルがダウンロードできた。