2006年08月20日

勝手バトン(BlogPet)

いつも、うまだは
・郵政公社文の郵便番号データをそのままDBに投入するのは用途によってはよろしくない。
とか思ってたらしいの。

*このエントリは、BlogPet(ブログペット)の「れぷすけ」が書きました。

2006年08月03日

ぼくしんぐ

八月二日を楽しみにしていました。
百パーセント勝つと思っていました。
長い試合でしたが、よくがんばったとおもいます。


…これだからプロスポーツなんて全て完璧にどうでもいいと思うわたくし。

軽量言語

ここんとこPHPしか触っていない。PHP確かに便利だなぁ。しかし、全国郵便番号台帳を作ってて幾つかツボったので、ここにメモっておく。

・PHPのfgetcsvはマルチバイト環境下で正しく動かないケースがある。

どういう実装にしたらこうなるのか理解に苦しむが、一般的な半角ダブルクオーテーションで囲まれてる値が全角文字列でそれらに特定文字コードが存在している、という条件下のとき、正しく値を解釈してくれない時がある。動作確認したのは内部エンコーディングShift_JISでPHPのバージョンは4.3.9。

例えば、福島県田村郡小野町にある角十という地名がcsvの中に含まれていたらアウト。沖縄県八重山郡竹富町にある新城も同じくアウト。

おそらく全角文字の1バイト目に0xF8のコードがあればアウト。これはまずいと思う。結局自作のcsv解釈関数で対処。

郵政公社配布の郵便番号データOpen@NewWindowをそのままDBに投入するのは用途によってはよろしくない。

これは郵便番号の採番がよくないとは思うんだが、所謂「平成の大合併」でやたら増えた地名に対応しきれていない感じ。

例えば徳島県美馬市の一部地域。郵便番号で言うと777-0301Open@NewWindow

余談だけど、美馬市Open@NewWindow、っつーか徳島県、吉野川流域は江戸時代に藍の栽培がヒッジョーに盛んで全国で9割超えるようなシェアを握ってたところだ。だから藍取引で財を成した大商人の邸宅後なんかが有名史跡。「うだつがあがる」の「うだつ」語源とかがソレ。

で、問題なのは郵政公社配布の郵便番号データのうち、同一郵便番号で複数行にわたっているデータだ。

郵便番号データはJIS自治体コード、7ケタ郵便番号、県名、市区郡町村名、地名…などと並んでいるのだが、例えばgooでの検索結果では市区郡町村名と地名を連結して表示している。

1. 777-0301 徳島県美馬市木屋平(市初、今丸、尾山、カゴミ、樫原、木中、桑柄、ケヤキヒラ、小日浦、
2. 777-0301 徳島県美馬市地神滝、菅蔵、杖谷、葛尾、ハジコノ、ビヤガイチ、二戸、三ツ木、貢、
3. 777-0301 徳島県美馬市南張、向樫原)

これ、正しくはこう表示されるべき。

777-0301 徳島県美馬市木屋平(市初、今丸、尾山、カゴミ、樫原、木中、桑柄、ケヤキヒラ、小日浦、 地神滝、菅蔵、杖谷、葛尾、ハジコノ、ビヤガイチ、二戸、三ツ木、貢、 南張、向樫原)

そりゃー些細なことかもしれんが、少なくとも正しくないし、僕の感覚でいけば「絶対許せない」表示になってしまうわけ。データベース投入前データを加工するのはよくないので、郵便番号検索プログラム側で対処する予定。この問題は木屋平に限らず、全国各地のおそらく人口密度低めのところで頻出するはず。

「木屋平なんて旧で言う村だしそこのエリアの人口何人よ」とか絶対言わないように。調べてみたら1200人ちょいだったけど気にしたら負けだ。

山の中なのにもかかわらず地名に「平」があるからヘンだと思って調べてみたら、案の定、平家の落人が拓いたとこだったのね。ちなみに四国、それも山の中方面出身で名字に「平」の字がある人は平氏の末裔なケースが多いです。もちろん「自称末裔」さんも含みますが。

で、この些細な問題のおかげで、全国ぶんの住所16万件に対して、データベースサーバが一時間に許可する問い合わせ回数が30万件。なのでデータ16万件を一括投入して、間違ったデータが含まれていることが判明したら1時間後にやり直すという斬新なゲームを十分に堪能しました。

・郵政公社配布の事業所の個別郵便番号が古い。
平成の大合併に対応してませんがな、このデータ。最新版が2006年7月末なのに。とはいえ置換するガッツが今のところないので、データが古い件は気づかなかったことにします。

郵便番号データを気前よくフリーで配ってくれるのは嬉しいんだけど、XML-RPCとかSOAPでアクセスできるAPI公開してくれませんかのう。郵政公社様。それがITってもんだと僕は思いますよ。

や、決して郵便番号データベースメンテナンスツール作るのがダルイとかじゃなくて。

いきてるよ!

きっといきてるよ!


Warning: include() [function.include]: URL file-access is disabled in the server configuration in /virtual/technerd/public_html/blog.technerd.org/2006/08/index.php on line 433

Warning: include(http://blog.technerd.org/rightmenu.php) [function.include]: failed to open stream: no suitable wrapper could be found in /virtual/technerd/public_html/blog.technerd.org/2006/08/index.php on line 433

Warning: include() [function.include]: Failed opening 'http://blog.technerd.org/rightmenu.php' for inclusion (include_path='.:/usr/local/lib/php') in /virtual/technerd/public_html/blog.technerd.org/2006/08/index.php on line 433


Warning: include() [function.include]: URL file-access is disabled in the server configuration in /virtual/technerd/public_html/blog.technerd.org/2006/08/index.php on line 439

Warning: include(http://blog.technerd.org/footer.php) [function.include]: failed to open stream: no suitable wrapper could be found in /virtual/technerd/public_html/blog.technerd.org/2006/08/index.php on line 439

Warning: include() [function.include]: Failed opening 'http://blog.technerd.org/footer.php' for inclusion (include_path='.:/usr/local/lib/php') in /virtual/technerd/public_html/blog.technerd.org/2006/08/index.php on line 439