blog.bouzuya.net

2012-01-03 『入門Git』やMonoの不具合やStackOverflowなど

Wikipediaの「サザエさん症候群」の項に「Sazae-san Syndrome」と書かれているのを見つけました。「まさか海外で通じるのだろうか」とen.wikipedia.orgを検索してみましたがそのような項はありませんでした。ほっとしました。

『入門Git』を読み終えました。購入してから積んだまま日が経ってしまいました。GitHubに登録したことや趣味で作ったプログラムのSubversionリポジトリをGitに置き換えたことから読もうと決意して数週間。だらだらと読み進めたためずいぶん時間がかかりました。最初から最後まで読みましたので、ひとまずよしとします。

GitとSubversionとは目的は同じでも違いはたくさんあります。ぼくが感じている大きな違いはSubversionでいうところのコミットがGitでは「状態の記録」と「リポジトリ間の同期」に分離されていることです。これによって私的な範囲での作業がしやすくなります。Gitは開発の基盤になる道具ですから使いこなしていきたいです。

今日はほかにもMonoのSystem.ServiceModel.Syndication.SyndicationFeed.Loadで例外が発生する不具合について調べました。不具合の内容としてはAtom 1.0のフィードが「</source></entry>」となっている場合に例外が発生するというものです。GitHubにあるMonoのソースコードを参照したところ怪しい箇所を見つけました。

https://github.com/mono/mono/blob/mono-2-10-8/mcs/class/System.ServiceModel.Web/System.ServiceModel.Syndication/Atom10ItemFormatter.cs#L389

処理が完了しているため、</source>または<source ... />を読み飛ばすという意図のコードでしょう。source要素を解釈する際にfeed要素を解釈するメソッドを流用しています。feed要素を解釈するメソッドでは終了要素も読んでしまうため、source要素を処理する側に記述している「読み飛ばし」によってsource要素の次の要素が無条件に読み飛ばされてしまう、とぼくは推測しています。まだ動かしていないので確実ではありません。

バグ報告をしたいのですが、英語の読み書きができないためやり方がわからないままに時間が過ぎてしまいました。くやしいです。

英語を読めるようにならないものかとStackOverflowに登録してみました。StackOverflowはASP.NET関連などを検索するといつも邪魔してくる憎いサイトです。開き直ってユーザー登録してみました。英語さえ読み書きできれば良さそうなサイトです。

さて明日から仕事はじめです。どうにもならないと分かると抵抗しなくなる犬の気持ちが分かる気がします。泣き言を並べたところではじまりません。できるかぎりのことをやっていきたいと思います。

以上。