キャラバン名古屋2009に行ってきました

1月 25th, 2010 admin

img_0935

2010年1月23日に開催されたキャラバン名古屋 | セキュリティ&プログラミングキャンプキャラバン2009というイベントに参加してきました。これは2009年の夏に開催された、合宿形式で情報セキュリティやプログラミングを学ぶ取り組みの開催報告+おすそ分けなイベントです。

まとめ

・claなんとかさんに会えると聞いて参加者が急増したとか
・twitterで場所が決まった(katzkawaiさんすごい)
・twitterがスタッフの連絡方法として使われていたがなれておらず読みもらしの多かった自分
・日本代表レベルの講師陣
・笹田講師がRubyのコードを書いているのを初めてみた
・川合講師は講義というより独り言で終始した。おもしろい
・マルウェア解析の話は、マルウェア製作者も解析対策をしているというのが面白かった
・mod_waffulは強力

吉岡講師の夢の話

最後のディスカッションの「稼げるIT関連の職業はなんですか」の質問のくだりが印象的でした。あのディスカッションで、講師陣が質問されたことに対して質問の額面どおりに回答していくなか、吉岡講師は必ず質問者の立ち位置を確認した上で気を使いながら回答を選んでいました。
あの質問をした人がいい大人だったら、先に他の講師からでた「IT以外でさがぜ」とか「お前がつくれ」なんていう回答で十分だし自虐ネタとしても面白かったと思います。しかし、今回の質問者は高校生でした。そこで吉岡講師は本当にしたかった質問はそういうことじゃないんだろうなと思ったのか、そんな質問を考えて欲しくないと思ったのか僕にはわかりませんが、楽観的な内容を含んだ回答をしました。
回答があっているかどうかではなく、自分のポリシーに基づいて回答できるってのは大人としてカッコイイなと思います。

学生が多くて驚いた

半数近くが学生だったで、懇親会の受付をしていて「お母さんに聞いてから参加を決めます」とかって言われて萌えた。

最後に

主催者のみなさん、講師の皆さん名古屋に来てくださって有難う御座いました。名古屋のスタッフの皆さんお疲れ様でした。

ローカル協賛

CodeIgniter徹底入門
CodeIgniter徹底入門
posted with amazlet at 10.01.25
河合 勝彦 鈴木 憲治 安藤 建一
翔泳社
売り上げランキング: 72044
おすすめ度の平均: 4.5

5 CodeIgniterの素晴らしさが伝わってくる
5 値段の価値はありました。
5 PHPフレームワークのバイブル書
3 オフラインのリファレンスとしては必要十分
5 質・量ともに充分

PHP 逆引きレシピ (PROGRAMMER’S RECiPE)
鈴木 憲治 安藤 建一 山田 直明 八木 照朗 山本 義之 河合 勝彦
翔泳社
売り上げランキング: 2432
おすすめ度の平均: 5.0

5 これがあるとある程度の事はできる
5 情報量と使いやすさのバランスがよい
5 知りたい事が網羅されている実用書
5 間違いなくPHPの書籍の中でNO.1の一冊です。
5 この書籍がお勧めできない理由

第15回 RHG読書会

1月 18th, 2010 admin

img_0927

CSNagoya勉強会にてRubyソースコード完全解説の読書会であるRHG読書会を開催しました。今回は第 15 章「メソッド」で、メソッドの探索と起動についてのお話でした。

メモ

・引数の処理は、引数無し・通常引数のみ・配列引数やブロック引数があるの3つにおおきくわけられる
・配列引数やブロック引数のメモリ確保は1.7系ではALLOCA_N()を使っているが、1.8では使われていない
・メソッドの探索はsearch_method()で行うのだが、この結果はキャッシュを使って2回目以降の呼び出しを高速化するようにしている。
・デフォルト引数にeval()を渡すこともできる

RUBY:
  1. def f(a = eval("def f();2;end"))
  2.  1
  3. end
  4.  
  5. f(true) #=> 1
  6. f() #=> 1 (ここでevalが評価される)
  7. f(true) #=> wrong number of arguments (1 for 0)
  8. f() #=> 2

・Cで定義したメソッドからのsuperは原則禁止になっている

まとめ

・メソッドキャッシュがないとどれぐらい遅いのか調べてみました。 → ruby1.8でメソッドキャッシュが無いとどれぐらい遅くなるのか(竹内関数) - toyoshiの日記
・東京からのサプライズゲストが。こんなに驚いたのは久しぶりだった

第14回 RHG読書会@CSNagoya

12月 21st, 2009 admin

img_0829

第14回 RHG読書会を開催しました。
今回は第14章 コンテキストの途中「メソッドの定義」からです

メモ

・Rubyの定数のスコープは見た目優先になっている。
・僕が思っていたRubyが驚き最小の原則を採用しているというのは勘違いだったみたい => 驚き最小の原則 - Wikipedia(用例のところでRubyに触れられている)

まとめ

・和室で勉強会をすると全員が寝てしまう
・プログラマは僕をはじめ姿勢が悪い人が多い気がする。筋肉不足?

懇親会など

・お勧めしあった本(鈴木先生 孤独のグルメ深夜食堂ガダラの豚孤高の人変身魔女の宅急便(小説)
・僕がオススメした本(コンタクト神々の山嶺

第13回 RHG読書会@CSNagoyaComments

12月 7th, 2009 admin

第13回 RHG読書会を開催しました。
今回は第14章 コンテキストからでした。プログラムで言うコンテキストというのは内部状態とかっていう意味みたいです。

メモ

・C言語では内部状態を管理するスタックが1つだが、Rubyは7つある
・それはイテレータやProcを実現するため
・そのおかげで複雑さは7倍ではなく、約20倍程度
・種類としては、メソッド呼び出し記録、ローカル変数スコープ、ブロックスコープ、現在のFRAMEがイテレータか、ブロックローカル変数スコープ、メソッド定義クラス、クラスのネスト情報

まとめ

・スタック7つもあってそれらが連動しているというのは僕には複雑すぎる
・「このフラグは機能Aのためにある」「ここでGC避けをしているのはC1がC2のときBになることがあるため」など、正しく動作するための微調整のようなものはどの程度最初から行われていたのか気になる(そんなの最初から想定できるの?できてたら天才じゃない?
・Matzのことを今まで「Rubyという素敵な言語を作った人」としか思っていたけど、「Rubyという素敵な言語を作ったとんでもなくこだわりが強く、かつ根気のある人」という感じに変わった。Rubyを完成までもっていったモチベーションというのはすごいものがあると思う。
・だんだんC言語だけじゃなく、Rubyのことも知っていないと読めない部分がでてきた(各種スコープの範囲についてとか)ので、次回からRubyの本をもっていったほうが良いかも(逆にいままで不要だったのがすごい)
・次回は14.3から

懇親会など

・事務所に泥棒がはいって実質被害0だったが、動揺したため、電源タップ、ルータなどの大事な道具をすべて忘れた
・雑誌IKKIが売っている本屋を探せ
・最近評価が下がっているとはいえビレッジバンガードの小説の揃え方は上手だと思う
ポポロのもつ鍋はうまい

第12回 RHG読書会@CSNagoya

11月 17th, 2009 admin

img_0695

第12回 RHG読書会を開催しました。
今回から内容はいよいよ第3部 評価にはいります。
僕はLLの人間のはずなのに、コンパイル型の言語と勘違いしており、勉強会の冒頭から評価ってなんですかという質問をしてしまい会場をなごませました。

メモ

・「評価」の日本語訳は「価にする」というものの方が適切
・評価器はeval.c(9000行ぐらい)
・コアはrb_eval()という関数
・rb_eval()の呼び出し一回がNODE1つを処理し、再帰しながら構文木全体を処理する
・breakやnext実装のためにC言語のライブラリ関数setjump()とlongjmp()を活用
・do~whileが二つのマクロに分かれているため、かならずセットで使用しなければならない

まとめ

・setjump/longjumpが再帰のところで使われていて、僕の頭の中の再帰の「イメージ映像」ではsetjumpするというのは絶対にできないことだったのだけど、イメージ映像が間違っていたのでそっちを変えたら理解できた。
・それでもメモリとかどうなっちゃうんだろうと不安
・あのあたりのコードを「ふんふん」とかって読んでしまう皆はすごい
・Rubyの勉強会のはずなのだが、やっぱりC言語をすらすら読めないと厳しい
・次回は第14章「コンテキスト」から