git config の上書き

分かってる人には当たり前なんだけどメモを残しておく。

git の設定ファイルは

~/.gitconfig

なんだけど、リポジトリにも

.git/config

ファイルがあって、ここに remote や branch といった情報が収まっている。普通はそれだけで十分なんだけど、リポジトリによってユーザーの情報を切り替えたい場合もあって、そのときはここに

[user]
  name  = ...
  email = ...

って書いてやると、~/.gitconfig の設定を上書きすることができる。ただしアクセスする人が複数いるリポジトリでやっちゃダメよ。

黄砂が怖いって話

何で見たか忘れた。

  • 黄砂はかなりの距離を飛んでいる
    • つまり中国の内陸部の砂が日本に届いている
  • 中国内陸部は場所によっては毒性の強い土壌になっている(農薬野菜とか産業廃棄物とか?)
  • 黄砂は花粉よりも粒子が細かいから結構体内に入っちゃう
  • 黄砂と花粉を同時に吸引すると単に花粉を吸引した場合よりも反応が強い

ということは黄砂バンバン飛んでる日本海側超ヤベーということか。車が汚い程度ならいいんだけど、身体に如実に影響があるとは認識してなかったなー。

今後は意識しよう。(ダメ管理職みたいなことを言う)

ctags -x で定義一覧表

twitter 上で ctags, GLOBAL, cscope と、メソッドなどの定義情報を生成するツールの話がほんの一部で盛り上がっていたので、試しに普段 cron で回してるだけで使っていない(ひどい)ctags のオプションを調べてみた。

すると -x というやつが「読む」ための出力を得るには便利そう。

-x   Print a tabular cross reference file to standard output.

結果、

/sw/lib/ruby/1.8$ ctags -R -x .
...
GServer          class        82 gserver.rb       class GServer
serve            method       86 gserver.rb       def serve(io)
stop             singleton method   92 gserver.rb       def GServer.stop(port, host = DEFAULT_HOST)
in_service?      singleton method   98 gserver.rb       def GServer.in_service?(port, host = DEFAULT_HOST)
stop             method      103 gserver.rb       def stop
stopped?         method      111 gserver.rb       def stopped?
shutdown         method      115 gserver.rb       def shutdown
connections      method      119 gserver.rb       def connections
join             method      123 gserver.rb       def join
connecting       method      130 gserver.rb       def connecting(client)
disconnecting    method      137 gserver.rb       def disconnecting(clientPort)
starting         method      144 gserver.rb       def starting()
stopping         method      148 gserver.rb       def stopping()
error            method      154 gserver.rb       def error(detail)
log              method      158 gserver.rb       def log(msg)
initialize       method      167 gserver.rb       def initialize(port, host = DEFAULT_HOST, maxConnections = 4,
start            method      181 gserver.rb       def start(maxConnections = -1)
^L
gserver.rb,0

みたいな感じ1。フォーマットは

定義されたキーワード 種別 行番号 ファイル名 行の内容

かな? この連続のあと

^L
ファイル名,0

ってくるのがちょっと意味がよく分からないけど。

ただこれ、人間の目ではテーブルに見えるけど、カラムの区切りがスペースなので、行の中身にスペースを使っていると(というか普通使うよね)カラムの区切りのスペースと区別できなくなっちゃうのがちょっと残念。awk でもいいけど join() がないので Ruby で、

ruby -n -e 'puts $_.chomp.split( " ", 5 ).join( "\t" )'

こんな感じでタブ区切りのテーブルにできる。中にタブコードを使っていないなら、この方法で作ったファイルを拡張子 csv とかで保存すると Excel とかで見やすくなる。

タブとスペースが混在している場合は御愁傷様。諦めて RFC 4180 に従って吐き出すのがいいかな? そういうライブラリは使い慣れておくべきかも。

試した限りでは ctags, etags, exuberant ctags どれでもできそう。

あ! "singleton method" なんてスペース入りの種別があるじゃないか。なんだよー。勘弁してよー。行番号の前にホワイトスペース以外のカタマリが2つの場合と3つの場合があるのか。うーぬぬぬ。

まぁ気が向いたらまた今度。

  1. サンプルは Fink で入れた Ruby の GServer クラス 

Markdown と Textile になんとなく感じたこと

Textile は最初見たとき「なんじゃこりゃ HTML の再発明じゃないか」と思ったが、実際に Markdown で Web ページを書き始めると

  • ID が指定できない
  • ブロック要素を定義できない

など、不便な点がいろいろ出てくる。細かな属性を書きたいわけではないが、div が書けて ID が指定できるくらいの機能がないとさすがに Web ページ全体(サイト全体にあらず)を記述するには力不足を感じる。日記のエントリくらいなら heading が 3つくらい使えればいいけど、ある程度の長さになると意味のある id を付与して URL としても意味を持たせたいし、意味の構造ごとに div で囲めると、デザインのコントロールなどの効果を後から足すことができて嬉しかったりする。

じゃあ Texile かというと、やっぱどーも HTML のまんまな感じがして、例えば普通の人にこれを使ってコンテンツを作ってくれとはさすがに言えない気がする。Markdown くらいならなんとかなると思うけど。バランス的には RedCloth [Textile Humane Web Text for Ruby] は結構好きかも。

======

------

で見出しを書きつつ、

| セル | セル |
| セル | セル |

でテーブルを書けるのはなかなかいい感じ。

ちなみに WYSIWYG で HTML を直接編集させた方がよいという考えもあるかもしれないけど、デザイン的な統一感を維持しつつ、コンテンツの更新コストだけを下げようと思ったときにその方法はあんまり採用したくない。各自が自由気ままに書くためには WYSIWYG の方がいいかもしれないけど、コンテンツを更新しなければいけないというルールが存在する場合は、シンプルで守りやすい制約を与えた方が結果として良い方向に働くことは多いし、コンバータを介してコンテンツを生成した方が HTML は壊れにくい。

話がそれた。

まーとにかくこれらのフォーマットに何らかの不足を感じる人はやはり居るらしく、すでに Markdown にも Textile にもあれこれ拡張バージョンが存在している。特に My Wandering Wiki: MultiMarkdown なんてのはあーやっぱりこういうの欲しくなるよね、と思ってしまった。何がってメタデータを含めることができると、生の Markdown ファイルをデータとしてそのまま利用しながら CMS としてメタデータを活用できるんで、例えば表示期間の制御とか認証関係とか作り込みやすくなるから。まぁ自分がやるなら Markdown 側からは無視される領域ってのを作ってやるだけにしておくと思うけど。そうしたらフォーマッタとメタデータを利用する CMS の部分を分離しやすくなるんで。CMS の側がヘッダを削除してから Markdown に渡す、でもいいんだけど。どっちにしろ Markdown そのものを拡張しちゃうとちょっといじりにくくなるんじゃないかなーと思ったりしている。実際にアプリ書いてないから外れてるかもしんないけど。

今のところの結論としては、自分が使うなら RedCloth、サイトやページの一部をなんにも知らない人が更新するために使うなら Markdown がいいかな。

あと面白いと思ったのは Pandoc. Haskell ってところがネックになるかもしれないけど、Markdown で書いて S5 スライドに変換できるのは便利そげ。まぁ実際にはプレゼンの機会なんて今はもう全然ないんだけど、S5 スライドがサクっと作れるとネタ作りとかにも便利そう。というか S5 いいなーと思いつつ HTML 直書きはもう勘弁と思っていたからこれいいかな、というのが本音。

なんか、「まぁ」が多いよね。まぁいっか。

Apache2 + fastcgi + trac.fcgi してみる

はえー。

普通に CGI で動かしたときはなんじゃこれ使えっかボケと思ったもんだけど、fastcgi だと普通に使えるレベルになる。(まぁ、うちのサーバは遅いんですが。)

さーて複数のプロジェクトを扱うにはどうしたらいいのかな。

※ とりあえず面倒なのでリポジトリを分けずに、モジュールに突っ込むことにした。trac でも何もしなくて済むし、こんでいいや。

スピード出ないなー

今度の ADSL 接続は

  • 下り 600k 〜 1.3M
  • 上り 650k

くらい。下りが前の半分以下になった。まぁなんとなく予測はついてたけど、ちょっとなぁ。

firewall、回避しようか正面突破しようか

firewall がきつくなったのはすでに書いた けど、見落としがいくつもあったことに気づいた。

  • (anonymous)rsync
  • cvs
  • cvsup

全部切れてたorz

otsune さんとこにメモがあった ので cvsup についてはこれを参考にするか、いっそ全部 Debian にすっかや。ちょっと考えるの面倒くさくなってきただすよ。Fink を rsync であげることができないので selfupdate-cvs と cvs-proxy を使う って手があるんだけど、これもまだ挫折中。

まぁこの辺は頼めば穴開けてくれるとは思うんだけど、ちょっとここんとこ気力なっしんぐ。

1.0.2 待ちかな

ryuzi_kambeの?D 経由

てなことらしいので Thunderbird と一緒に 1.0.2 待ちにしちゃうかな。

ports で emacs-21.3_5 を発見!……?

喜び勇んで portupgrade しようとしてハタと気がついた。これは 21.3.5 ではなくて 21.3 の 5 ですね。いやー mule-ucs の要らない Emacs が ports に入ったかーと一人で勘違い。

mule-ucs って必要なときに入れたり切ったり簡単にできるといいのに。1

え? Emacs を落とすお前が悪いのだ? いやまぁそうなんですけどね。。。

  1. ほんとはできるのかもしれない。調べてないだけ。 

NAS 続き

先日いじり始めた Logitec の NAS だけど、

  • 設定画面は WinIE 以外はまともに動かない
    • UA 詐称レベルかどうかは未検証
  • フォルダ単位での quota の設定はできなさげ

辺りがいま分かっている面白くない点。user に帰属する quota は直感的に分かりにくいし、共同利用が前提だと制御方法として使いにくいんですな。パーティションが切れればフォルダごとに制限可能なんだけど、だからといって Linux Box でイチからやるのもアレだしなぁ。難しいもんですな。管理コストと機械のコストが比較的正しく認知されていればもう少し考える余地はあるんだけど。

iTunes server

from LinuxをiTunesのサーバにする よさげ。チョーよさげ。

Orca 300番台復帰記念

Orca 394位

和ジラ build スタッフ募集

日本でのバグ報告が本家に取り込まれてないやつをガシガシ修正するプロジェクト和ジラが build スタッフ不足だそうです。非 Win32, 非 Linux/86 な方でコンパイル環境が余っていたらぜひ。

なのです。sourceforge.jp にパッチが上がってます。

About

例によって個人のなんちゃらです