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つ起動する
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を気軽に使えるようになって、すごい嬉しい。
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.
ってこんなんでいいんだろうか。でも使えてるっぽいです。
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に食わせられる完全なファイルがダウンロードできた。