第16回RHG読書会とCSNagoya3周年の会

2月 8th, 2010 admin

2月7日(日)にCSNagoyaのRHG読書会が開催されました。今回はCSNagoyaが2007年02月11日に「たのしいRuby」の読書会として始まってから3周年ということで発表大会も開かれました。

RHG読書会

第16章 ブロックのところを読み、ブロック付メソッドがどのように評価されるのか。メソッドとブロックの対応がどう保持されているのかがわかりました。

発表会

1人15分ほどで好きな話題で発表

私は「Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~」について発表しました。この本はbrainf*ckやwhitespaceなどの特殊な言語を実装しながら言語を作るということを学ぶ本です。
タイトルからして不真面目な内容かと思っていたのですが、全然違う!数十行でコーディングできる言語から始まり、インタプリタ、スタック型、VM型の言語の作り方から、構文木の解析などをやさしく段階的に学べる非常に優れた本だったのです。プログラミング言語ってどうやって作るんだろうという人にはとてもオススメです。(発表で使ったネタ言語はこちらから見ることができます)

そのほかの人の発表をざっくり

最近の半導体について cho_tekitouさん

最近の最先端の半導体について話して頂きました。全然知らない分野だったので面白かった。
・450mmウエハーの工場を作るには8000億円~1兆円かかる
・EUV(光の波長を短くする),TSV(縦につむ)という方式の実用化はまだ先らしい。ムーアの法則の限界が来ている
・シミュレーションなどではまだまだ早いCPUが必要。マシンの分散などをしても通信のコストがあるのでこの分野では使えない

15分でわかる継続 lequeさん

Rubyにもある継続の話。2度説明してもらってやっと継続がなにかその場ではわかった気になった。
「継続とは計算の未来」
とのこと。よい頭の刺激になりました。

こういう自分の知らない概念は「いつうれしいのか」というのを聞くとすんなり理解できたりするのだけど、継続はそういうたとえもあまりないっぽい。

組み込み系の開発モデルについて Yasuyuki Miuraさん

組み込み系では設計からテストまでどのような順序で行われるのかという話でした。人の命を左右する可能性のあるプログラムをつくるというのは大変だなと思いました。

Scalaの開発Tips maedaさん

Scalaのsbt (simple-build-tool) とmockitoの紹介。Scala開発の際には、sbtを使うと自動でコンパイルとかしてくれて非常に便利だし、テストの際はモックを作るのにmockitoというのが便利ですよという紹介でした。

ハイプ曲線をしっていますか? dominion525さん

あるテクノロジに対する期待度の変化の曲線のこと。「このテクノロジーはいま○○だよね」と当てはめて考えるのが面白かったです

エンタープライズをハックしよう かたぎりさん

エンタープライズをハックしようということで、RspecとCucumberの話でした。もうテストコードをテストコードを呼ぶのはやめて、コードの一部と考えようという意見が印象的でした。確かにそう思うべきなのかもしれません。僕もRspecの本を読んでみたいと思いました。

中華料理について phiripさん

4大中華料理である、「北京料理」「広東料理」「四川料理」「上海料理」の地が中国の地図でいうとどこなのかという話と、この発表の後は何料理を食べに行くかという話でした。

まとめ

・みんなで発表は楽しい!
・CSNagoyaは4年目に突入。これからも楽しくやっていきたい

キャラバン名古屋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が売っている本屋を探せ
・最近評価が下がっているとはいえビレッジバンガードの小説の揃え方は上手だと思う
ポポロのもつ鍋はうまい