SICP 勉強会 加速会に行ってきた

4月 16th, 2009 admin

claなんとかさんが開催してくれた
SICP 勉強会 加速会 #01 をやるよ
に4月11日12日と行ってきました。

これは「計算機プログラムの構造と解釈」(愛称:SICP)という本をCSNagoyaで読んでいるのだけど、問題が面倒すぎて毎回3問ずつぐらいしか進まなくて、(幸運にも)このペースで進んだとして終了まであと3年かかるらしいことがわかったので、3年もたったらロンドンオリンピックだし、それに俺30歳だよ!やってらんねえよ!ってわめきたかったけど、他に30歳超えている人が普通にいるので口に出せなくてっていうそういう感じの焦りからとりあえず泊まりでやれば一気に進むんじゃないか?というclaさんらの提案のもの開催された会です。
当日は天気がよくて、窓を開けると本当に昼寝日和といった感じで気持ちのよい勉強会になりました。

場所

旅館かう楽
名古屋市瑞穂区のかう楽という旅館でした。素泊まりで5,500円。地下鉄から徒歩1分、LAN有りなのでなかなかいいですね。

様子

dsc00014
ネットワークはclaなんとかさんが整えてくれたので何の心配も要りませんでした。僕はプロジェクターをもって行きましたが、今回は活躍できませんでした。

dsc00016
まさかのノンアルコール。男7人が同じ部屋に集まり、ろくに外出もせず深夜までカタカタ夜までやっていたので旅館のおばちゃんはさぞ気持ち悪く思ったでしょう。

dsc00017
布団を敷いてもなお勉強するメンバー。

まとめ

・12時間ぐらいやったのに5問ぐらいしか進まないSICP恐ろしい
・アリッサはみんなのために頑張ったのにフルボッコでかわいそう
・なんとかして問題も解きながらお酒を飲みたい
・準備が嫌いなので泊りが嫌いな僕も近ければ気が楽ということに気がついた。またやりたい

第1回RHG読書会を開催しました

4月 8th, 2009 admin

RHG(Ruby Hacking Guide)と聞くと、どうしても「銀河ヒッチハイク・ガイド」を思い出してしまう私ですが、5日(日)にCSNagoyaとしてRHG読書会を開催しました。

Rubyのソースコードを読むという、CSNagoyaなのにカジュアルでもなんでもない内容ということもあって、また参加者1人の自習時代に戻る覚悟もしていましたが結局10人以上が集まる会になりました。

個人的な目標

僕は大きなコードを読んだことがないというのと、Rubyが好きなのだけど、いまいちRuby会議などで堂々とできない自分にサヨナラするのが目的なので
・ソースコードの読み方の作法とコツを習得
・Rubyistを名乗る
というのを目標にして参加しました。

まとめ

・Rubyのオブジェクトは構造体で、扱うときはVALUE型(unsigned long)のポインタ経由で扱う(unsigned longをポインタにキャストする)
・すべてのオブジェクトがstruct RBasic型のメンバbasicをもっていて、こいつが自分の構造体の型や各種フラグ、そしてクラスオブジェクトが格納されている
・VALUEがvoid*でないのは、小さな整数、シンボル、true、false、nil、QundefのときはVALUEに直接値を入れるため
・上記のような値と、オブジェクトのポインタとの値が重複しないように、整数は奇数の値、オブジェクトは4の倍数、シンボルは奇数ではなく4の倍数でもない数字にする、などという工夫がされている
・インスタンス変数を始めからもっているオブジェクトとそうでないのがある。これはメモリの無駄を省くため(RStringにインスタンス変数をセットして検証してみたい)
・struct RArrayはリストでは無い、以前にRubyでリストを自前で実装したら、Array.pushとかより高速に動作するようになって驚いたけど、そういうことらしい。

感想

C言語で書かれたオープンソースのコードを読むのは恥ずかしながら初めてだったので、まずソース(最初はruby.h)を開いただけでわくわくしました。難しいかと思われた内容も、本の解説がとても丁寧なおかげで今のところなんとかついていけているかなという感じです。
そして、いままでRailsでなんとなく使っていたシンボルの意味がよくわかったり、以前作ったリストが高速だった意味などが、それこそソースレベルで理解できてすごく気持ちがよかったです。

Rubyの歴史というのは10年程度で、それが長いのか短いのかわかりませんが、それでも10年以上もMatzを始めとする日本のスーパーハカーの人達が磨きに磨いたコードを読むというのは意外にもエキサイティングであり、贅沢なことなんだということを体感できました。こんなものが簡単に入手できてしまうオープンソースの文化に感謝をしつつ、次回の以降の勉強会にも取り組んでいきたいと思います。

RHG(Rubyソースコード)読書会、パタヘネ読書会開催のお知らせ

4月 1st, 2009 admin

CSNagoyaという勉強会の4月からの予定についていろいろ固まりましたので案内させて頂きます。

概要

4月からのCSNagoyaは3つの勉強会を開催する予定です。

・RHG読書会(RHGを参考にRuby1.9のソースコードを読む会)
・パタヘネ読書会(コンピュータの構成と設計を読む会)
・SCIP読書会(計算機プログラムの構造と解釈という本を読む会・現在すでに開催中)

以下、それぞれについて詳しく解説します。

RHG読書会

Rubyソースコード完全解説
Ruby、アルゴリズム、Haskell、コンパイラと学んできたCSNagoyaのソフトウェアライン。2009年はRubyのソースコードを読みます。
勉強のベースとなるのはRubyソースコード完全解説という本。この本を参考にさせていただきながらRuby1.9を読んでいきます。東京では「RHGの逆襲」という会が開催されており、今回はまさにこの企画を参考にさせて頂いているものの、あちらの反則ともいえる豪華メンバーとは比較になるはずもなく、いろいろな格差に落ち込みながらも、とにかくなんとか開催する予定です。

Rubyの基本的なところからはじめるのでRuby自体に詳しい必要はないとおもいます、読んでいくコードはC言語になるので多少のC言語の知識は必要になると思います。僕自身はRubyは入門書を読み終えて普通のスクリプトなら書ける程度、C言語については学生のときに少し書いた程度です。

この勉強会がおわったあとには

・C言語に詳しくなっている
ruby-devで言っていることがなんとなくわかる

パタヘネ読書会

コンピュータの構成と設計~ハードウエアとソフトウエアのインタフェース 第3版 (上)
パタヘネ本と呼ばれる本書を読み、コンピューターのハードウェアやアセンブリ言語について学びます。多くの大学の教科書にも採用され、「コンピュータの名著○冊」みたいな本には必ずと言っていいほど選ばれるほど有名な本です。

SICP読書会

計算機プログラムの構造と解釈
この本を読みながら、練習問題を解いていく会。すでに8回ぐらい開催しており数学が苦手な僕には苦痛な問題もありますが、そういう問題は飛ばしても大丈夫(多分)、あと日本語訳がどうのとか言われますがそれもたいした問題ではないことが最近わかってきました。
この本はプログラミングということに関して僕に毎回新鮮な驚きを与えてくれるすばらしい本です。もしあなたがプログラミングが好きなら、プログラミングをもっと楽しくしてくれる最高の(少し厳しい)先生になってくれるはずです。

詳しくは一回目の案内を見てください。

参加方法など

スケジュールなどはCSNagoyaホームページで案内しています。参加は随時受け付けていますのでMLでどんどん参加表明をしてください。では!

2009年のCSNagoyaの予告

3月 19th, 2009 admin

CSNagoya(カジュアルスタディ名古屋)という名古屋でやっているコンピュータ関連の勉強会の案内です。

テーマ

Ruby1.9のソースコード読書会(ソフトウェア部門)

4月5日スタート。「Rubyソースコード完全解説」という本を参考文献にして、Ruby1.9のソースコードをざっくり読みます。

パタヘネ読書会(ハードウェア部門)

4月12日にスタート。コンピュータの構成と設計―ハードウエアとソフトウエアのインタフェース〈上〉という本を読みます。

スケジュール

第1,3日曜日・・・ソフトウェア
第2,4日曜日・・・ハードウェア

4月5日 Ruby
4月12日 パタヘネ
4月19日 Ruby
4月26日 GW休暇
5月3日 GW休暇
5月10日 パタヘネ
5月17日 Ruby
5月24日 パタヘネ
5月31日 休み

参加方法

メーリングリストで後日募集を行います。

参加資格

興味のある人はどなたでも!

デジタルカメラ入門(1) 長尾里絵写真教室

1月 31st, 2009 admin

01
1月27日に長尾里絵写真教室という写真教室に行き、名古屋の鶴舞にてフリーでカメラマンをされている長尾里絵さんにデジタルカメラの基本を教えていただきました。

僕はまったく素人だったので、絞りやらシャッタースピード、露出などの謎の用語が理解でき、対象物以外がボケた感じの「どうだ!これが一眼レフだ!」みたいな写真の撮り方も基本がわかるようになったので大満足の成果を得ることができました。

授業

dsc_0019
参加者は12人で、椅子に座って授業を受けます。広々とした撮影スタジオなので気持ちがいい。
dsc_0016
実際の写真や、昔のレンズを使ったりして説明をしてくれるのがとてもわかりやすい。
dsc_0003
まずはテクニックなしでいつもどおりに撮影をして下さいということで、各自自分が持ってきた静物を撮影。みんな真剣です。

学んだこと

今回は全三回のうちの一回目ということで、絞りとシャッタースピードについて学びました。
この辺を先生は窓のカーテンを開閉して説明してくれ、とてもわかりやすかった。
窓がレンズだとすると、カーテンの閉め具合が絞り、カーテンを開けている時間がシャッタースピード(露光時間)だそうだ。

・マニュアル操作で行うことは絞りとシャッタースピードの2つの調整。
・絞りとシャッタースピードを自動でやってくれるのがオートモード
・「A(AV)モード」は絞り優先モード。絞りはマニュアル、あとはオートでやってくれる
・「Sモード」はシャッタースピード優先モード。シャッタースピードはマニュアル、あとはオートでやってくれる
・絞りを小さくすると対象物以外がボケた写真が撮れる。
・絞りが大きいと全体にピントがあった写真が撮れる。
・望遠にしても対象物以外がボケた写真が撮れる。
・望遠がないなら物から離れてもボケやすい
・カメラのオートは人の顔を奇麗に撮るように調整されているので、白が多いところや、逆に黒が多いところでは自分で露出を調整する必要がある。(黒が黒く撮れないとか、スキー場で顔が黒くなるとか)

成果

以上を踏まえて撮った写真がこれら
dsc_0064

dsc_0052

結論

なんとなく意図した写真が撮れるようになったと思います。(というかなにもわかっていなかったので以前は意図することすらできませんでした)
残念なのはスタジオでは僕が一番高価なカメラを持っていた(借り物のNikon D80)のに、他の参加者の人の写真のほうがカッコいいという点。レイアウト(構図?)がいかに重要かということも学びました。

次回は屋外での撮影だそうで、いまからとても楽しみです。

※もし興味のある人はeriogana at yahoo dot co dot jpまで「写真教室参加希望」として問い合わせてみてください。