nDiki : 社内 Perl 勉強会

2006年6月12日 (月)

第7回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の7回目を開催。今日は6人。

今日は「初めてのPerl 第3版」第8章「正規表現の詳細」が範囲。

今回はプログラムを書く問題は無くて、パターンを考えたり逆に与えられたたパターンが何にマッチするのかを考える問題。 「本書の中で最も難易度が高くなっています」と書かれている。

今回の反省点

さすがに今回は正答率が低かった。 問題の意図が読み取りにくいというのもあって、迷う問題も多かったようだ。 プログラミング言語のトークン関連のネタなどはプログラミング経験がある程度ないとぱっとわからないかもしれない。

時間の関係で自分もあまり準備ができなくて、不完全な解答だったのが悔まれる。

今日は追加ネタなしで、トータル50分。

[ 6月12日全て ]

2006年6月30日 (金)

第8回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の8回目を開催。今日は5人。

今日は「初めてのPerl 第3版」第9章「正規表現の利用方法」が範囲。

展示会などがあった関係で、6月19日以来しばらく間が空いての開催。

今回の反省点

ぱっと見、面白そうな練習問題に見えたがやってみると意外とあっさり風味であった。

最後の問題は、文字列の出現回数を数えるという Perl ではイディオム的なコードを欠く問題。

ハッシュを使うのが定番だが、配列に入れてソートし前から反復する(sort | uniq -c 的な)コードを書いている人が2人いて興味深かった。 たしかに C などだったらそういうコードを書いてたかもしれないな。

今回で8回目を終了。

練習問題にもう少しチャレンジングな問題があった方がいいなと思う今日この頃。

[ 6月30日全て ]

2006年7月10日 (月)

第9回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の9回目を開催。

今日は「初めてのPerl 第3版」第10章「さまざまな制御構造」が範囲。

今回の反省点

問題自体はシンプル。 Perl 特有の制御文を駆使するのも手だが、逆にこういう時は素直に書いた方がわかりやすい。

[ 7月10日全て ]

2006年7月18日 (火)

第10回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の10回目を開催。今日は6人。

今日は「初めてのPerl 第3版」第11章「ファイルハンドルとファイルテスト」が範囲。

@ 今回の反省点

今回はパーミッションの話など Windows 環境よりも UNIX 系環境の話が多かったのだが、皆慣れてきたのか特に大きな混乱はなかった様子である。

open / close はそれこそ頻繁に使うのであるが、本書では思ったよりライトな扱いな感じ。

初めてのPerl 第3版の練習問題は、いままで問いてみて「確信犯的」に問題があいまいに書かれている。 要求仕様書だったらまずいかもしれないが、練習問題だと頭を使うので悪くない。 また他人をまじえた回答レビューでも他の読解によるプログラムを見られたりして、単純な答え合わせ以上の理解ができ面白い。

[ 7月18日全て ]

2006年7月24日 (月)

第11回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の11回目を開催。今日は7人。久しぶりにフルメンバ。

今日は「初めてのPerl 第3版」第12章「ディレクトリ操作」が範囲。

今回の反省点

練習問題は、 chdir を行ったあとそのディレクトリの内容一覧を表示するという問題。

実は自分、ファイル名のグロブを使ったのは初めてかもしれない。 ディレクトリハンドル派。

Windows では(普通だと) $ENV{HOME} が設定されていないため chdir が失敗するとのこと。 このため Windows で解答を作った人はうまく試せなかった部分あったようである。

それ以外は大きな問題はなく、さらりと終了。

[ 7月24日全て ]

2006年7月31日 (月)

第12回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の12回目を開催。今日も7人でフルメンバ。

今日は「初めてのPerl 第3版」第13章「ファイルとディレクトリの取り扱い」が範囲。

ある文化では「13」という数字を極めて不吉なものと考えます。われわれ著者は、この題材を意図的に13章に配置しました。なぜなら、もしコードにバグが潜んでいたら、かなり危険なこと(例えば、問い合わせをせずにファイルを消してしまう)を行ってしまう可能性があるからです。-- 初めてのPerl 第3版 p.209

こわーい。

今回の反省点

i ノードの話やハードリンク・シンボリックリンクの話など、いつにも増して UNIXOS の話に関連の深い話が多い章である。 Windows 中心で使っている人にはあまり馴染みのない話であるが、知っておいて損はない話である。

欲を言えば Windows ではどうなっているかの話も載っていると嬉しかった。 NTFS なら ハードリンクを使えるよという話とか。

自分自身も Perl からハードリンク・シンボリックリンクの作成なんてしたことなかったな。 これからもそうそうしない処理だと思うけれど、いい勉強になった。

[ 7月31日全て ]

2006年8月7日 (月)

第13回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の13回目を開催。今日は6人。

今日は「初めてのPerl 第3版」第14章「プロセス管理」が範囲。

Perl が glue としての真価を発揮できる章である。

今回の反省点

system、exec、パイプオープン、`...`、標準エラー出力のリダイレクト(2>)、STDOUT/STDERR の再オープンなど出席者によって回答がバラけて、今回ははからずも効果的であった (問題がらさすがに fork はいなかった)。

Windows では回答しづらい課題かと思っていたが、思ったより問題なく実行できていたようである。

Windows 上の date コマンドで、曜日を表示させる方法について1人だけ気がついた人がいて他の人が悔しがっていた。

[ 8月7日全て ]

2006年8月25日 (金)

第14回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の14回目を開催。 新入社員1人追加と、多忙のため1人欠席で今日は7人。

今日は「初めてのPerl 第3版」第15章「文字列処理とソート」が範囲。

久しぶりに OS がらみではない純粋に Perl 上での処理がテーマ。 index, substr, sprintf, sort の使い方。

今回の反省点

比較的簡単な内容だったと思うが、逆に境界でのテスト・理解が十分でなかったようだ。 練習問題でも、その辺りは十分にチェックするように習慣づけたい。

ソートについては既に今までの章の練習問題のなかで、sort-definition subroutine を使っている解答があり、初出ではないためそれほど悩ましくはなかったはず。

ソート定義サブルーチンは大抵 { ... } で書いてしまうので問題ないと思うが、別サブルーチンを使うときにはスコープに注意。

 #!/usr/bin/perl

 use strict;
 use warnings;

 my %h = (a => 6, b => 5, c => 3);

 {
   my %h = (a => 4, b => 9, c => 2);

   $, = ', ';
   $\ = "\n";
   print sort { $h{$a} <=> $h{$b} } keys %h;
   print sort compare keys %h;
 }

 sub compare { $h{$a} <=> $h{$b}; }
[ 8月25日全て ]

2006年9月1日 (金)

第15回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の15回目を開催。 今日は6人。

今日は「初めてのPerl 第3版」第16章「単純なデータベース」が範囲。 単純なデータベースといっても DBM の話から、pack/unpack、seek、-i オプションの話などバイナリ・テキストいろいろてんこ盛りの章である。

ただ練習問題は DBM まわりのみなので、ここが重点テーマなのかもしれない。

今回の反省点

ここまで順番に進めてきた者なら、問題を読み違えなければ本文を参照しつつそれほど問題なく解ける問題である。

ただ内容的にはちょっと中途半端な気もする。 もうちょっと濃い章にするか、ばっさり切ってしまうかのどちらかの方が良い感じ。

[ 9月1日全て ]

2006年9月11日 (月)

社内 Perl 勉強会 最終回 (第16回)

リャマ本を使用した社内 Perl 勉強会の16回目を開催。 今日は8人全員。

今日は「初めてのPerl 第3版」第17章「上級テクニック」が範囲。 17章では、「Perl らしい」機能 (Perl 流 eval、grep、 map、スライス)が盛沢山。

今回の反省点

robust なプログラムを書くには Perl では eval 必須の機能なので押さえておきたいところ。 grep、map は何だかんだいって自分が練習問題の解答で使ってしまっているので、他の人もある程度見なれているはず。

練習問題の解答としてはスライスは今回は使用せず。

逆にスカラーコンテキストとリストコンテキストについては、まだ理解が不完全な部分があるようなので解説をしておいた。

最終回を終えて

Perl については

Perl の理解が進んだ (「正規表現」が何か少しわかった、使い方がわかった、知識が増えた)

という一方

Perl の気持ち悪さが理解できた。

という意見があった。

プログラミング言語勉強会としては

他の人の書き方を見ることが参考になった。実際に書くことで覚えた。

等、定期的に練習問題をやってくるというスタイルに対する評価が得られた。

4月21日から始めて5カ月弱。勉強会でスキルアップをはかっていこうという雰囲気ができてきているのはいい傾向だと思う。

今後もテーマを選んで継続していきたい。

次のテーマをより実用重視のものにするか、基礎固めのものにするのかは悩みどころである。

[ 9月11日全て ]

About

Naney Naneymx

Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Process Time: 0.023535s / load averages: 0.32, 0.38, 0.35