2012年03月19日

Kyoto.PM #1 で発表してきました

と言う事で Kyoto.PM #1 は JPA 講師派遣制度として発表してきました。
京都素人すぎてランチの時間をみすってご迷惑おかけして申し訳ありませんでした。

なんか、関連ブログを見ると懐石料理で遅刻って文字がいっぱいあってもう泣きそうです。
京都らしい地域性を特色にした PM って懐石料理くってて遅刻するってことじゃねーだろ。。。


最初は捗るシリーズの話を考えていたのですが、 Atnd 見たら Perl にあまり触れてない方の参加が多そうだったので、 Perl の面白さや仕事に活かせる話等を中心にした発表に切り替えました。

LT4本分の時間構成のつもりが、発表枠10分おおかったってのに直前で気づいて、 Acme の話をゆっくり丁寧に Perl 知らない人でも興味持ってもらえそうな事喋ってたら、 Acme の話だけで20分つかって、あとだいぶ駆け足だった。。。

http://yappo.github.com/talks/20120317-kyotopm1/

clouder さん作の markdown2impress.pl は、簡単な書式で凄いプレゼン作れた感満載のレンダリングできるのでマジおススメです。

感想的なのを

nitoyon さんの文章の相似を調べる為の特徴語抽出のロジックで、句読点やてにをはを使って分割して文字数の数列を使うってアイデアは面白かった。

azumakuniyuki さんが、 $x=1; $y=1; の時に、 $x == $y より $x ~~ $y の方がはやいよ!って行ってたけど、そんなわけないだろうと手元の 5.15.1 でベンチとったら $x == $y のが速かった。


あと、京都の色んな話を聞いたら通り名を処理出来る仕組み作ったほうが良いなと思った。
たぶん wedata 的な仕組みを使って皆でデータを作れて自由に使えるような感じでやると良さそうかなって所まで思ってる。

Posted by Yappo at 14:23 | Comments (0) | TrackBack

2012年03月11日

InnoDB Deep Talk #1 に参加して来た話または 住所正規化 MySQL UDF を作った話

昨日は起きたら参加申し込みしてたはずの InnoDB Deep Talk #1 が始まってるらしいのに気づいて急いで行ってきました。入館面倒い会場なのに遅刻者対応したりピザとか飲み物調達とか面倒い事をニコニコやってるいちい++だったし、ピザーラのピザじゃなくてサルヴァトーレのピザはやっぱり上手くて沢山くってしまった。

っていう話は置いといて、一通り終わって歓談タイムに突入した時に、もりよしさんが昨夜思いついた inokodb っていう素晴らしいストレージエンジンを、その場で実装してて LT してたのを見て、勉強会に参加して意識が高まる症候群になったのですが、テンプレ的な意識の高まり方で終わってれば良いのに、なんか我慢出来なくなってその場で UDF でも作ろうと思って会場の wifi 探したのですが、電波見つからなくて断念しました。

家帰ってやろうとしたんだけど、僕の mac の brew install した mysql 5.5 だと -lcurl して作ったバイナリを cureate function すると落ちてしまって面倒くさくなって寝てしまって、起きて暫くして linux で環境作って作り始めたら存外簡単に出来てしまったとさ。

で、何を作ったかと言うと金曜日にライブドアって所がやってるロケタッチっていうシャレオツなサービスが住所正規化APIっていう素晴らしいAPIをリリースして下さったので、その API を使って MySQL だけで住所の正規化が出来たら、年賀状作成が捗りそうだったので作ってみました。

https://github.com/yappo/mysql-address_normalize
セットアップの仕方は

$ git clone git://github.com/yappo/mysql-address_normalize.git
$ cd mysql-address_normalize
$ g++ -lcurl -shared -fPIC -Wall -g mysql_address_normalize.cc -o mysql_address_normalize.so
$ sudo cp mysql_address_normalize.so /foo/bar/lib/mysql/plugin/
$ mysql -uroot
mysql> create function address_normalize returns string soname 'mysql_address_normalize.so';
という形でやれば動きます。 5.1.33 で開発しています。

使い方は死ぬ程簡単で普通に address_normalize 関数に返還前の住所を渡せば変換後の住所が帰ってきます。

mysql> SELECT address_normalize('道玄坂二丁目2');
+------------------------------------------+
| address_normalize('道玄坂二丁目2') |
+------------------------------------------+
| 東京都渋谷区道玄坂2-2           | 
+------------------------------------------+
1 row in set (0.09 sec)

既存の address カラムがあるテーブルに normalized_addres みたいなテーブルを増やした上で

UPDATE foo SET normalized_address = address_normalize(address);
のようにすれば、全レコードの住所を元に正規化されたカラムを作成する事が出来ます。

API レベルで正規化処理が出来なかった場合には元々のクエリのアドレスが帰ってきますが、 MySQL レベルのエラー、 HTTP 処理でのエラー、 JSON がなんかおかしかったりする場合には全て NULL を返します。

picojson と libcurl を使えば簡単に作れるとは思ってたのですが、 mac で作ろうとしてハマったのと C++ 力が低くて json parse 後のデータをどうやって取ればいいかって所で少しハマったけどこれみてすぐ解決した。

JSON API 叩く MySQL UDF とかだいぶ書くの楽でビックリしたという休日でした。

Posted by Yappo at 17:54 | Comments (0) | TrackBack

2012年03月02日

Kyoto.pm Tech Talks #01 に JPA の 地域PM向け 講師派遣支援プログラム で参加してきます!

Kyoto.pm Tech Talks #01 (2012/3/17) 開催のお知らせ - Japan Perl Association運営ブログ

[以下Kyoto.pmよりのお知らせです] === こんにちは、柴崎(shiba_yu36)です。 今回はKyoto.pmの立ち上げとKyoto.pm Tech Talks #01開催のお知らせです。

去年のYAPC::Asiaから、京都にもPerl Mongersが欲しいと思って構想を進めてきたKyoto.pmが、ついに3月から活動を開始できることになりました。
そこで最初の活動としてKyoto.pm Tech Talks #01を3/17(土)に開催します!

今回、初の活動にもかかわらずJPA様の支援を頂いて、なんと!! App::Ikachanなどの様々なCPANモジュールの作者であり、WEB+DB PRESS での Perl 連載枠の立ち上げなども行なっているYappoさん(http://blog.yappo.jp/)に、特別講師として京都まで来てもらえることになりました!ありがとうございます!

と言う事で ikachan で著名な私が地域PM向け 講師派遣支援プログラムにより Kyoto.PM に行って参ります。

支援していただける JPA さん 、リーダーの shiba_yu36 さん、会場提供して頂ける はてな さんありがとうございます!

JPAでは各地域のPerl Mongerグループ(PM)間での交流および情報交換を支援してもらうと言う事で、 Kamakura.PM に参加した話、業務で捗る話や #LDeNA で話足りなかった話や kazeburo ware の話とかやりきれたらいいなと考えとります。

まだまだ発表枠が余ってるようなので、近隣の方は発表しにいって Perl Life を捗らせましょう!京都近隣に在住して、京都近隣の会社で働いている nekokak さんも参加されるようですし nekokak さんところの近所の方々も是非是非参加しましょう!

再来週になってしまいましたが、Fukuoka.PM さんかの時は激しく迷子で遅刻しかけた反省を生かして、金曜日の夕方くらいに京都に向かって日曜日の終電とかで帰ってこようかなと思っとります(はてなはもう地図見なくて歩いてけるけど)。大阪とか神戸とか足伸ばせるといいな。。。
まだ宿とってないけど二週間前だから今日中に宿決めないとどうしよう泣きそう。

支援2回目なので、なるべく安く済ませて他の人に回せるように注意する所存でございます。

Posted by Yappo at 17:01 | Comments (0) | TrackBack