まめ畑

ゆるゆると書いていきます

LLTVに参加してきた

去年にはLLL Futureに参加しましたが、今年もLLTVに参加してきました。
各セッションの簡単なまとめ
公式サイト: Lightweight Language Television (LLTV)

朝から生テレビ

  • 並列化プログラミングの話しやソフトウェアのアーキテクチャがメインでした
  • Perlの話し
    • Ver5.10と5.10.1の違いは殆どBug Fix
  • Python
    • Ver3.0はライブラリが追いついてないよ
    • Ver2.5系は3.0系への移行を
  • PHP
    • やっとネームスペースとかクロージャーが入ったよ
  • Ruby
    • 1.9.1でた
    • 1.8系がまだ使われてる
    • 海外では1.8.6をまだ使ってる人が多い
    • やっと1.9.1からVMベース
  • セキュリティキャンプの話し
    • Rubyの性能向上やLinuxカーネルのパッチ送ったり
    • 言語のエンジンのところをいじる・興味を持つ若い人が多くて、それをサポートする大人もいる
  • LLでLLをまだ書けない(Cで書いてるよね)
  • 若いうちから俺俺言語を一人で作ったり、コミュニティで言語を作る環境にいる事はいい経験
  • 新しいLLはやりたい事をやるために今ある言語では上手く書けないところから発生
  • ハード・ソフトの両方向からの議論できる環境
    • ハード・ソフトのハッカーが同じフロアで議論出来る環境がある
    • 色んなレイヤーがごちゃまぜなのはゲーム業界
    • 次のLLイベントではハードの人も呼びたい
  • 言語としてマルチコア・並列処理をコードを書換えずに実行出来るようなパターンを
    • 1コアではこの速度、2コアではこの速度・・・・の様な感じ
  • iPhoneAndroid
    • プログラミングの観点からみるとケータイっぽくない
    • PCで動かすようなでかいJavascriptが動く(制限はあるが)と、ケータイ向けのサイトを作るとは
  • 日本Androidの会はハードからソフトレイヤーまでの人がいる
  • ケータイはコンピュータという側面と窓という側面があり、両方から革新的な事が起こって欲しい
    • ケータイで実行して結果が出なければならない、ケータイで実行結果が見れればいいという側面
  • 複数のマシンを繋いだ分散環境では、回線の帯域は増えてきておりLLというところがボトルネックになってくるのではないか
  • LLのパフォーマンスチューニングの話し
  • 並列時代のデバッガ
    • 動的コンパイルと結びつけて何か出来ないか
  • テストの話し
    • 無限にメモリ・帯域があるならば全ての状態をトレースする事でバグの箇所を指摘出来るんじゃないか
    • しかし、バグは一期一会と考えるとどうやってデバッグするか
  • トラブルシューティングはヒアリング力が大切
  • ログを定常的にとるなどして防衛的なプログラムを

QAの最後はパネリストの考えなどの交わし合い

LLフィーリングカップル

LLと関係ない感じのセッション

  • 技術者ってどんな人?
    • スペシャリスト
    • 手を動かして物を作ってそれを動かして楽しむ
    • 子供っぽい
    • 普通に会話しているときに、受け入れ可能なAPIとか、ここにブレイクポイント欲しいよねって話しても通じる
    • 賢者の様な洞察力を持った人・問題解決能力・夢を持っている
  • プログラマ(同業)とお付き合い、アリ?ナシ?
    • 技術ネタが少しでも通じる人がいい。デートと称してペアプロや宗教戦争が起こる事があるので諸刃の剣
  • 女性らしい作品だなと思うコードやWebサービスは?

など様々な質問多数

LL関係ない
エンジニアやエンジニアでない男性女性の考え方の討論のような感じ

渡る世間は雲ばかり

  • Azure仮想環境を利用したコンピューティングリソース
    • アプリケーションをデプロイするとバックアップノードの準備やロードバランサやDNSの設定も行われる
    • クラウド内でレプリケーションも行われている
  • TDD重視のGAE for Java
    • スクリプトでControllerとViewの自動生成
    • テストケースの生成
    • GAEではTDDしやすい
    • ブラウザに依存しないテスト
  • JRoRでGAE/J
    • Rack(アプリケーションサーバとアプリケーションをつなぐ)
    • JRubyアプリケーションサーバ
    • JRuby-Rack(ServerAPIとアダプタの間のアダプタ)
    • Warbler(JRuby-Rackを使って、RailsアプリケーションをWARファイルにパッケージするための自動化ソフト)
    • GAE/JはWARファイルにパッケージに制限がある
      • ファイルの最大数が3,000・最大サイズが10MBまで
    • appengine-jruby
      • Googleのエンジニアが中心となって開発
      • GAE APIのラッパー
      • ツール類
      • Data Mapperのラッパ
  • クラウドとは
    • クラウドは若い人にチャンスがある
    • GAEはRDBと違いすぎるので楽しい
    • クラウドは日本のSIerの形を変える可能性がある

プロトタイピング〜もの作りの流儀〜

  • スケッチ
    • 素早く
    • タイムリーに
    • 安く
  • プロトタイプの先にあるもの
    • 大量生産を前提としないプロトタイピング
    • メーカーは何を提供するのか
    • メーカーはどうやってオープンにするのか?
      • 全てをオープンにする必要はない
  • 分業ではなく協業
  • デザインエンジニアリング
  • 10年以上以上前からIDEOなどで確立されたプロトタイピングメソッドがあるのに、何故日本のメーカーで普及しなかったのか
    • 分業が進みすぎている
    • 学生に教えてもそれが何に役に立つのか理解してもらえない。教育する場が少ない
    • IDEOのカルチャーが日本に合わなかった
    • IDEOメソッドは未だ日本で試されていない

大改善!!劇的ビフォーアフター

  • fortuneコマンドとRuby
    • 既にある素材を生かす
    • ユニバーサルデザイン
    • 若者も使えるコマンドに
    • fortuneから結果を受け取って各言語に翻訳
    • fortuneはありがたすぎていけてない
    • 新世紀fortune
    • 某TV局の占いから取得
      • 外部コマンドを使うと変なHTMLの処理が楽
    • Ruby1.9系を使おう
  • VimperatorでSLコマンドを実装
    • Canvasによるアニメーション
    • lsよりbufferを使うよね・・・
  • Real Macro Metaprogramming on C
    • LLを失念した
    • Cのデメリット、抽象化機能が貧弱
    • lsコマンドをリフォーム
    • lsは読みやすいコード
    • しかし、コードが冗長
    • 情報が分散してしまう
      • フラグを追加するだけで、3箇所に追加しなければならない
    • 本当のマクロでリフォーム
    • コード数が1082→548
    • オプションの追加が容易に
    • 言語に使われるのではなく言語を使って言語と戯れよう
  • シェルスクリプトで業務システムを作った
    • 多いときは30本のパイプを繋げて作成
    • データはテキストファイルで持つ
    • 26万件をgrepで0.5秒
    • インデックスの様な中間ファイルを作成

LLレッドカーペット