2004-07-04 2284歩

λ ハードディスクは壊れやすいものである

俺は結構PowerBookG4を裸で鞄に入れたりするけどなあ(笑)

バックアップ取らないといけないなら、情報部員が取ってくれよ。俺ら本業が忙しいんだし、そんな暇無いよ。

Microsoft的解決方は、Windows2003サーバのある環境でボリュームシャドーコピー+オフラインフォルダで生活してくれ、かなあ。 少なくともうちの社長のマシンとかは情報部員?が面倒見てるし、普通の光景では。

個人的には、

  • 文書は途中でもプロジェクトメーリングリストに流してしまう
  • ソースコードはローカルで編集/Subversionリポジトリにコミット/テスト環境をアップデート

これだけで大概「最低3箇所に作業結果が保存される」ルールになる。

Subversionのリビジョン番号が「ただの連番」なおかげで、version1.0に近づくプレッシャーでコミットを控えてしまう現象 は全然なく、多少のミスがあろうとお気軽コミット生活。

λ tDiary更新トラブル

以下のようなエラー発生。原因は不明だが、キャッシュファイルを消したら直った。

undefined method `style' for nil:NilClass (NoMethodError)
(plugin/todays_style.rb):2:in `instance_eval'
(plugin/todays_style.rb):1:in `call'
./tdiary.rb:702:in `body_enter_proc'
./tdiary.rb:701:in `each'
./tdiary.rb:701:in `body_enter_proc'
(plugin/makerss.rb):160:in `makerss_body'
(plugin/makerss.rb):97:in `makerss_update'
(plugin/makerss.rb):94:in `each_with_index'
(plugin/makerss.rb):94:in `each'
(plugin/makerss.rb):94:in `each_with_index'
(plugin/makerss.rb):94:in `makerss_update'
(plugin/makerss.rb):57:in `transaction'
/usr/local/lib/ruby/1.8/pstore.rb:111:in `catch'
/usr/local/lib/ruby/1.8/pstore.rb:111:in `transaction'
(plugin/makerss.rb):57:in `makerss_update'
(plugin/makerss.rb):181:in `instance_eval'
(plugin/makerss.rb):180:in `call'
./tdiary.rb:690:in `update_proc'
./tdiary.rb:689:in `each'
./tdiary.rb:689:in `update_proc'
./tdiary.rb:1154:in `do_eval_rhtml'
./tdiary.rb:1154:in `instance_eval'
./tdiary.rb:1154:in `instance_eval'
./tdiary.rb:1154:in `do_eval_rhtml'
./tdiary.rb:851:in `eval_rhtml'
update.rb:62

λ 野田聖子氏講演

児童ポルノ禁止法について。コミック愛好者から誤解した抗議が沢山来て頭にきた。ちゃんと法案を読め。実在しない児童を描写したコミック等は対象外。

「ちゃんと法案を読め」かあ。法案を正確に読むのもそれはそれで専門技術っぽいので、誰かが(中立な立場で)解説してくれんと分からないんだろう。

この講演記録のおかげで野田聖子氏への俺的印象はどちらかというと好印象に。夫婦別姓は以前から支持だし。 直接会うとまた違った印象になるのかもしれぬ。

λ [Subversion] サミットでのバージョン管理フリークたちのメモ

Subversionだとどうなってるか考えてみた。

  • 現在までの履歴を保存できなければならない
    • ○ CVSからのインポートはできる。
  • CVS へのエクスポートが可能でなければならない
    • △ たぶんできるんじゃないかなあ。ブランチ・タグをうまくエクスポートするのは難しそう。
  • システムはある程度の間存続し、サポートされるものでなければならない
    • ○ 開発体制は安定しているように見える。
  • 単一の主系(single blessed version)管理をサポートしていなければならない
    • ○ もともと分散システムでない
  • 不分割なチェンジセット
    • ○ Subversionはそういう風に設計されている
  • ファイル名変更の追跡
    • ○ Subversionはそういう風に設計されている
  • ブランチ作成のためのコストが低いこと
    • ○ 作り放題
  • タグ作成のコストが低いこと
    • ○ 作り放題
  • 最後のマージ地点を記憶しておけること
    • × ブランチ間でマージは自分で管理しないとだめ
  • リポジトリの複製
    • ○ トランザクション途中でリポジトリを複製しても一貫性は保たれる
  • オフラインでの作業能力
    • △ オフラインでdiffは取れる。コミットはできない。
  • どのブランチにある特定のパッチが適用されたかを知る能力
    • × ブランチへのパッチ適用は管理されてない
  • 特定のブランチにパッチセットをコピーできること
    • ? マージとは別にパッチの集合体を扱う仕組みはない
  • Unix, Windows, Mac、どのプラットフォームでも動作すること
    • ○ ただしMacOS9以前は未確認
  • 言語のサポートと文字コード変換
    • ○ 改行の問題は各ファイルの属性で明示的に扱える。文字コードはUTF-8ベースでなんとか
  • テキストとバイナリの両形式のサポート
    • ○ 問題なし
  • バージョン履歴上でのテキスト検索
    • ? 作れなくはないと思うけど、現在はそういう検索はできない
  • ある特定の行を誰が削除したかを知ること
    • × できない
  • リポジトリを高信頼性のもとでバックアップできること
    • ○ 上記の複製と同じ
  • 完全な Cygnus/Red Hat 開発リポジトリを扱うことのできるような幅広いスケーラビリティー
    • ? 巨大なリポジトリ(例えば2GB超)については未確認。
  • 最新の正しい状態がどれであるかを簡単に知ることができる
    • × そういう機能はないなあ。タグ付けすればなんとか
  • bugzilla と gcc-patches に統合できること
    • △ フックを書けばいけそう
  • 同じバージョン管理システムを使って別のプロジェクトとの間でクロスマージできること
    • ○ Subversionのドキュメントでベンダーブランチと呼ばれているやつかな
  • 管理者用の、パッチを許可するための単一操作
    • ? 管理者の権限が不明
  • 簡単なパッチの取り消し
    • △ svn revert のことかしら

間違いはツッコミまくってもらえると嬉しいです。

本日のツッコミ(全3件) [ツッコミを入れる]
λ Tez (2004-07-08 15:45)

上美谷さん、おひさしぶりです。
私もぜんぶは把握してないですけど、

>ある特定の行を誰が削除したかを知ること
>? たぶんだめそう

は、そのとおりです。実は GNU arch (ってまたこっちの話しちゃいますけど、)でもこれができなくて、Jonathan Walther がそこに突っ込んで、それを受けて私が実装したのが ViewARCH です。ユーザーインターフェースだけ見ると、ただのリポジトリブラウザみたいに見えるかも知れませんけど、もともとは、この削除アノテーションを実現するのが目的だったんです。

- Tez

λ 上美谷 (2004-07-08 19:16)

コメントありがとうございます。
こちらでは少人数プロジェクトで使っているだけなので、Subversion+ViewCVSで機能的にそれほど不足は感じていないところです。

リポジトリの変更なしで実装可能なのだとしたら、
いつかは実装されるかもしれませんね。

λ Tez (2004-07-08 20:33)

そうですね。特に windows 上で利用するなら Subversion の方がてっとり早いと思います。考えてることはみんな同じなので、きっとSubversion でも、いつかは削除アノテーション実装されると思いますよ。

- Tez

[]