Log.i53

Themidaのアンパックを目指すブログ改め使い物になるえんじにゃを目指すブログ

福井技術者の会 その3 に参加してきました

THE 人見知りなので今回は聴講だけでした。飛び入りも全然OKだったみたいなので、スライドあらかじめ用意しておけばよかったと後悔…!

発表は全11(レギュラー2, LT9だったかな)で、学生や社会人ばっかりなのかなーと思ったら中高生も参加していて驚きました。13時に着いたら運営さんが一人も居なかったとか、実は開始が14時からだったとか、最初てんやわんやしてましたが、いざ始まると勉強会はやけに濃い内容のものが多かったです。

プチ感想

  • D言語コンパイル時処理した時のバイナリを見てみたい
  • STLファイルのバイナリを見てみたい
  • ハッシュ関数のバイナリを見てみたい
  • ハッシュ関数の「スポンジ構造」というセンスある名前(吸収【absorb】パートと圧搾【squeeze】パートに分解)がよい
  • 専門外(物理とか電波とか)の話も聞けて面白かった
  • 女性限定のイベントでも女装すれば参加できる(嘘)

バッドコードの話

個人的にはバッドコードのLTがソフトウェア工学・情報セキュリティの両方に絡んでくる話なので一番興味深いセッションでした。バッドコードはどうしてバッドなのか?というお話。

握りつぶし(例外をとりあえずキャッチしてセミコロンで潰しておく)はReleaseビルドだと異常終了になっちゃう危険性があるとか、多くのコンパイラが綺麗なコードほどより高速化する設計であるとか。

また、コードゴルフ(ショートコーディング)やPolyglot(複数の言語で実行できるプログラムを書く)で書かれたものは大概バッドコードになるが、パズルとして楽しめるしワンライナー(1行で手続きを書く)が身につけばコマンドライン処理が楽になって有用であるとか。自分はひねくれ者なので、バッドなのに実はグッドな要素も含んでいるんだぜという話は好き。

バッドコードの有用化として手動難読化がふっと頭に浮かんだけれど、スクリプトや逆コンパイル可能な言語であれば若干有用でも、結局はツールにソースないしはバイナリを投げて解決出来る部分なのであえてバッドコードを書くなんて言うのはナンセンスでした…(質疑で変な質問しちゃった)

ところでバッドコードであるかどうかって明確に判断できる基準などあるのでしょうか。一般的な指標としては(セキュア)コーディングガイドラインや社内のコーディング規約などがあって、それに違反していればバッドであると判断するのか… 見た目・デバッグの工数・処理速度・保守性の悪さなどなどを総合的に判断してバッドコードであるかどうか判定する研究とか論文って探せば見つかるのかなあ。

どうでもいいですが、バッドコードって16進で0x0BADC0DEって表記できてなんか…いいですよね…w

終わりに

福井でこのような勉強会が学生主催で行われるのは良いことだと思います。勉強会は都市部では活発に行われていて学生のモチベーション向上やテーマ探し、さらには就活までいろいろな面で役に立っているイベントだと思うけれど、地方ではなかなか行われていないという現状があります。交通費の関係で参加できない学生さんも多いはずです。ですので、こういった地方での勉強会企画がもっと活発になっていけばよいのではと思いました。地方の学生も勉強会で刺激を受けてモチベーションを高めていけるようになれば良いですね :)

最後に、福井技術者の会の企画・運営のみなさん、ありがとうございました!