セキュキャン行ってきました!

帰宅してblogを書くまでがキャンプ!
8/12〜8/16までの5日間、404 Not Foundに行ってきました!
私は、プログラミングコースの言語組で、ひたすらRubyのチューニングをしていました。


具体的な変更点等は後日、別記事にまとめる予定ですが、私達のグループの講師のid:hyoshiokさんが日記で紹介して下さった*1通り、前回のBignumネタ*2をArrayとかStringにも適用するという作業をひたすらしていました。
自分は、キャンプに行く前に、ある程度ボトルネックがわかっていたので、原因となりうるマクロを検出→修正という作業を繰り返していましたが、一緒にやっていたid:takuto_hさんは、ベンチマークの選定から、ボトルネックの解析、その解消までキャンプ中に全部やっていて、大変そうでした。が、その中で!=演算子の最適化されていない部分を見つけ出し、一部のベンチマークでは、約5倍もの高速化に成功していたのは、すごいなぁと思いました。


そういえば、以前のBignumネタは、こういった形で、Rubyの方に反映されました。

ChangeLog

Sat Aug 8 11:42:44 2009 Yukihiro Matsumoto

* bignum.c (bigzero_p): removing BDIGITS() inside of the
loop. inspired by Masahiro Kanai's blog entry
http://d.hatena.ne.jp/cani/20090807/1249657492.

コメントの方で、id:ku-ma-meさんに指摘して頂いた通り、trunkでは、bigaddの最適化が行われて、BDIGITS()が消えてしまったので、inspiredという形で、ChangeLogに載りました。その後、id:ku-ma-meさんがbignum.c内の他のBDIGITS()に関しても、修正して下さいました。ありがとうございます。


で、今回、自分はarray.cとstring.cをHackしたので、そのうち、Rubyの方に反映されると思います。(私がバグを量産してなければ(ぁ RB_GC_GUARD()とか周りの最適化の影響によるSEGVが怖いです><
(ささださんが、コミットして下さるそうです。既に、id:takuto_hさんの方は実際にコミットされてます。)

セキュキャンに参加して

今回、セキュキャンに参加して、非常に貴重な体験をすることができました。
ささださん、id:yuguiさん、id:hyoshiokさん、id:nishiohirokazuさん、id:hzkrさんという超豪華言語組講師陣の講義。
id:Pasta-Kさん、id:daiki41tiさん、id:takuto_hさん、id:InoHiroさん、id:yayuguさん、id:uiureoさん、id:pokutunaさんなどなどといった超刺激的な言語組の面々。
言語組以外でも、id:amachangさんや、id:hasegawayosukeさん、id:TAKESAKOさんといった同じく超豪華な他の講師陣や、na-toiさんやid:tatsu_pcさんといった同じ中学生の参加者。
これらの方々と、404 Not Foundで交流できたことは、非常に刺激的で、楽しかったです。
(id:amachangさんに、「T中です」といったら、「またT校か」と言われましたw)


比較的、年も近かったこともあり、id:Pasta-Kさんとかと仲良くさせてもらったわけですが、オンライン勉強会を主催されていたり、積極的に他の人とコミュニケーションをとっていったりと、非常に刺激を受けました。
(g91とかに誘っていただいたりもしました。「詳しいことは、id:quolc先生に」だそうです。(id:minarai先生曰く))

また、今回のセキュキャン参加で、自分の勉強不足、力不足を実感した部分もあります。
id:naoyaさんが特別講演で、ひたすら愚直に勉強したとおっしゃっていましたが、私も、さらに上を目指すためにも、勉強していかなければと思いました。


この5日間は、非常に充実した5日間でした。ありがとうございました。


それと、ランチミーティングかなんかの時に、中3ですと言ったら、「老けてる」と言われたのが地味にショックだったなー。

*1:[http://d.hatena.ne.jp/hyoshiok/20090816:title]

*2:[http://d.hatena.ne.jp/CanI/20090807/1249657492:title]