LLTV行ってきた

到着したら昼休みでした!!!
今回はひがさんとUPS研究所の人の発表がよかった。

渡る世間は雲ばかり

ひがやすを
  • TDDでtwitterもどきを作ってGAE上で動かすデモ
  • コントローラ
    • テスト
      • /twitter/にアクセスすると/index.jspに遷移するよ
  • ビュー
    • フォームつくる
    • アクションを指定
  • コントローラ-
  • モデル
    • 自動生成
      • 名前を指定
    • DAOも作られる
  • コントローラ
    • テスト
      • パラメータの指定: param("content","Hello")
      • Message message=from(Message.class).getFirstRRResult();
  • モデル
    • @Persistent public String content;
  • コントローラ
    • テスト
      • assertEquals("Hello",message.content)
    • テスト失敗
    • リクエストの内容をDBに格納するコードを追加
      • Message message=new Message();
      • message.content=requestScope("content");
      • new MessageDao().makePersistentInTx(message);
    • テスト成功
    • 書いた内容がDBに保存されるようになった
  • 司会「あと1分です」ひが「せっかくなんでもう2,3分ください」司会「はい」
  • ビュー
    • 投稿内容を表示する
  • コントローラ
    • 投稿内容をビューに渡すコード
    • 「本当ならテストケースを書くところなんですが時間がないんで……」
    • 「という誘惑に負けずにちゃんと書きます」(会場拍手)
    • テスト
      • messageListにメッセージが入ってるかテスト
    • messageListにメッセージを入れる処理
    • requestScope("messageList",new MessageDao().findAll());
  • 「5分オーバーですがせっかくなのでデプロイもします」「もうちょっとです、もうちょっとです」
JRoRでGAE/Jの手引き

高井@akasaka.rb

  • RoRJVM上で動かすには
    • JVMアプリケーションサーバServlet APIJRuby→Rack→RoR
    • 「こんなのがうまくいくわけないんですね」
    • そこでJruby-Rackというものがある
    • warbler
    • war化すればGAEにデプロイできる
    • ただしGAE/Jにはwarファイルに制約(ファイル数、ファイルサイズ)があるので注意
    • 詳細ググれ
    • appengine-jruby
      • GAE APIjrubyラッパー
      • ツール類
      • DataMapperのドライバ
      • など提供
    • 画面が出なくなった
    • 「ARがないRailsは粗大ゴミ」
      • バリデーションがARによっかかってたりする
      • 時間を有意義なことにつかったほうがいいんじゃないんですかね
      • GAE以外のクラウドつかうとか

Kay Framework(まつお)

  • 動機
    • 「嫁さんが『そろそろじゃね』と」
    • python温泉行く朝に命中」
  • App Engineで動くFWはいろいろあるが無駄が多い
    • パッチあてまくり
  • 特殊な環境なので専用FWが必要
  • 息子の名前をつけたい
ディスカッション

ひが

  • クラウドは若者にチャンスがある
  • 上がつかえている環境じゃない(出たばっかなので)

たかい

  • Railsとかつかえなくなっちゃう(RDBべったりなので)
  • いちいち再デプロイが必要
  • ひどい世界が広がっている
  • 変わらなきゃ
  • 「きついよねーなんか」

まつお

  • RDBとちがいすぎるので工夫する
  • いっしょに工夫する人募集
  • AppEngineは完璧じゃないけど大いなるチャレンジ

ひが

  • 制限があるからこそチャンス
  • Azureはどっちもつかえる

MSの人

  • Azureはいいとこどり(RDB,KVSどっちもつかえる)
  • 分散コンピューティングの観点でクラウドを捕らえる
    • 巨大な並列コンピューティング
  • 個人でこんなことできなかった
  • ネックはストレージ
  • 先駆者がいない

たかい

  • いままではH/Wがなきゃいけなかった
  • 昔はソフトはハードのおまけ
  • ソフトウェアの人にとってチャレンジしやすくなった

ひが

  • SIerとしての立場を離れて言う。上流だけ知って詳細は下に丸投げすればいいという考え方は破滅するしクラウドSIerを変える

まつお

  • GAE/Jで受託開発してる
  • 成功例で多いのは季節もののサイトをGAEにのせてまわす
  • 特定の季節にアクセス多いときそのときだけ予算多くしてまわす

たかい

  • H/Wの制約

ひが

  • 短期間で立ち上げて短期間でやめるような案件にむいてる

まつお

  • EC2の仕事もちょくちょく

ひが

MS

  • いままでHW準備に1週間くらいかかってた
  • 自前でやると機材の手配がネック
  • クラウドはひじょうにやりやすい
  • MS内での優先度高い

ひが

  • GAEは日々発展してる
  • 要望がどんどん実装される

たかい

  • 開発ツールがまだ整ってない?

ひが

  • そうでもないですよ

まつお

  • AppEngine使うと大きなSIer飛ばして仕事できちゃうんじゃないか

ひが

  • クラウド技術の詳細が知りたい人はSeasarカンファレンスがあるのでうんぬん

まとまりませんね……
「いまメールチェックするのやめてくださいよ」とか「おれtwitterみてますけど」という心温まる会話も


プロトタイピング ものづくりの流儀

ハードウェアスケッチング/デザインの話

IAMAS小林さん
  • ものづくりが行き詰っている原因
    • 分業化と効率化の追求→スペシャリスト間のギャップ、身体性喪失
    • 大量生産前提→多くのニーズに応えるための機能追加、複雑なものを無理やりシンプルに、ブラックボックス
  • プロトタイピングが注目される理由
    • イデア発想、共通言語、身体性の回復
  • IAMASはメディアア〜トに特化した学校
  • ガングプロジェクト
  • Mountain Guiter
    • おもちゃのようなインタフェース、プロフェッショナルなサウンド
    • Gainer、Max/MSP
  • Jamming Gear
    • 歯車の組み合わせで音楽を作る
  • デザインプロセス
    • 既存物のリサーチ
    • イデアスケッチ
    • イデア選択
    • ダーティプロトタイピング(はりぼて)
    • ビデオプロトタイピング
      • 実現したらどうなるか動画で見せる
    • ハードウェアプロトタイピング
    • 展示/フィードバック
    • Design Funnel by Bill Buxton
      • スケッチ→プロトタイプ、しぼりこんでいく
      • スケッチとプロトタイプの違い
        • 提案-記述
        • 質問-回答
      • 最初はいろいろなものを試し、洗練させていく
      • スケッチ:すばやく、安く、捨てられるように
      • スケッチとプロトタイプで使う道具を変える
    • プロトタイプの先にあるもの
      • 大量生産を前提としないプロトタイピング
      • User Generated Device
      • ユーザによるカスタマイズ
      • Technology Skinning
        • 古い機械の中身を最新技術で置き換える
        • ワンオフのプロダクト
      • メーカは何を提供するのか?どうオープンにするのか?
        • API方式、インタフェースをオープンに
たがわ@takram design enginiering-

takram: プロダクトデザイン、エンジニアリング

    • 工学系のひとたちがデザインしてる
  • 骨展にだしてる、昆虫型ロボット
    • 試作
      • 駆動部分試作、原理を確かめる
      • 全体をつくってみる→うごかない
      • 素材を変えてみる
      • 同時進行でデザインを詰めていく
  • 電球に水入れたやつ
    • 単位指定間違えて巨大なものができてしまった→意外とよかった
    • さわると鼓動する
      • 100円のマブチモータがいちばんよかった
  • セットトップボックス用GUI
    • 二つの案が動いてるところを並列で見せてプレゼン
  • ドキュメント+プロトタイプ
    • イメージしやすい
プロトタイピングはなぜ日本のメーカで普及しなかったのか
  • 領域をまたがることが重要だができてない
  • 学生に教えたら「それどんな職業に結びつくんでしょう」とか言われた
  • IDEOメソッド
    • プロトタイピング
    • ユーザニーズを上手にくみ上げる
  • 日本のメーカでIDEOメソッドを取り入れようとしたが流行らなかった
  • IDEOの人はみんな明るい
    • 日本人に合わなかった
    • ブレスト苦手
    • ボディストーミング(ネジになったつもりでぐるぐる回るとか)
  • 創業者いわく、IDEOメソッドは日本で失敗したのではなくまだ試されていないだけ-
大量製品を前提としないワンオフの製品にプロトタイピングが果たせる役割とは
  • 自分のほしいものが売られてることは少ない
  • 自分のほしいものは多分100人くらいほしい
  • 3Dプリンタ
  • DTPレーザプリンタによって可能になったようにうんぬん
  • 大量生産のほうがレバレッジされる可能性高いが
  • P板ダッカームみたいに金型作れるサービスがある
  • クラウド金型サービス」
  • モデル上げると自動で金型設計から製造まで、データupから二泊三日くらいで製品が届くサービスとか
  • 「多くの無駄なプロダクトを生める時代」
  • 個人の妄想を手軽に実現


-1900 hardware
-1980 hardware+electronics
-2004 hardware+electronics+software
-2007 software+network+service
now hardware+electronics+software+network+service

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

たかの

fortuneコマンドとrubyの融合

  • fortuneコマンド
    • 実は機能が豊富
    • 改造しにくい
  • 改造の方針
    • rubyDSLで実装
    • {:hash => :of_symbol} => :as_dsl
    • すでにある素材を生かす: fortuneコマンドをrubyから呼んでラップ
    • I18N
  • 国際化
    • ruby -r./fortune -e 'fortune(:input=>:command, :filter=>Translator.filter(:english,:japanese)'
  • 若者も使えるコマンドに!
    • めざましテレビの占いを出力
      • ソースがすごいことになってる
      • 妥当でないHTML断片をw3m -dumpでどうにかする
    • 「僕はさそり座なのでさそり座に固定してあります」
  • gdgdだ……
  • まとめ
VimpでSLコマンド(teramako)

Fx3.1以降には Canva Text API(HTML5 draft) が実装
そのた実験的メソッド(canvas.moz*)もつかえる
CanvasでSL実装してみた、ななめにもはしる

Real Macro Metaprogramming On C (括弧の匠)
  • 「LLのイベントだということを忘れていた」
  • LL言語を使い慣れてスポイルされてしまったプログラマ
  • C言語システムプログラミングでは依然として主流
    • 豊富なライブラリ
    • ランタイムどこにでもある
    • on the bare metalなセマンティクス
    • しかし抽象化機能が貧弱
  • **本物**のマクロで抽象化を実現
  • FreeBSDのLSを題材とする
  • シンプルなコード、Cソースとしては優等。しかし……
  • コードが冗長
    • compとreversed_comp
    • 同じ構造の4つの関数: 共通構造をくくりだすのが困難
  • 非本質的な情報
    • for(int i=0; ...
  • 情報の分散
    • フラグ一個付け加えるのに
      • ヘッダの定義
      • 本体
      • 使用部分
      • に情報を足さねばならない
  • リフォームのポイント
    • 構文なんて飾りです
      • (printf "%d" n)
    • CiSE(C In S-Expression)
      • CのABI、セマンティクスはそのまま
      • 本物のマクロがつかえる
      • Gahcueの一部では実際に使われている
    • 70行が6行に-
    • for-eachつかえる
    • 共通部分のくくりだし
      • make-printerマクロ
    • DSLでフラグ管理
      • 一行書くと
      • その場で変数定義生成
      • オプションパーザ内にオプションハンドラ生成
      • 別ファイルに変数宣言を生成
  • 結果
    • LoC半減
    • 意味の集約
    • パターンの再利用が可能に
  • 注意
    • マクロは劇薬、使いどころをわきまえて
  • Programming Clojureの翻訳本が冬くらいに出る
  • 言語に使われるのではなく、言語を使い言語と戯れよう
パイプの匠@USPとおなかさん
  • 無印のシステムをシェルで書いた
  • 情報システムがつかいにくい
  • 商品検索、在庫照会などのシステムが別ベンダ
    • xxの在庫あるの?→商品検索システムを起動、商品番号を検索してから在庫検索システムで検索……
  • ユニケージ開発手法
    • 単機能な小さいコマンドをつくり、パイプでつなげる
    • DB使わず、情報はプレーンテキストに記録
      • 生データは決して消さない(更新という考え方がない)
      • 効率は悪いが、ハードウェアの性能向上で解決
  • データを別々に管理している、連携できないため顧客対応に10分くらいかかってた
    • →全部プレーンテキストに変換、shでファイル同士を結合。
    • →1画面で見えるようになった
    • →3クリック、30秒で可能に
  • 26万行の商品マスタ、grepに0.5秒
  • インデクス作成
    • 行頭に商品名から一文字
      • ほ 001 ほげ 100
      • げ 001 ほげ 100
      • ふ 002 ふが 3
      • が 002 ふが 3
    • それを1カラム目でソート
    • keycutコマンド: 1カラム目が同じものでファイル分割
    • 結果として同じ文字を含む行がひとつのファイルに集まる
  • 一日一回の在庫情報更新が一時間一回に
  • 「業務をシステムにあわせるのではなくシステムを業務にあわせる」
LLレッドカーペット(LT)

HP50gでラマヌジャンに挑戦(大野典宏)

  • HP50g
  • ラマヌジャンの式を解く
    • 整数だけで構成されたπの公式
  • maximaでやってみる
    • n=50で400桁超まで近似できてしまう
  • HP50gでやってみる
    • メモリ512k
    • 20分(n=50)
  • カシオ(略)
Ustreamゆっくりしていってね(サロンパス)
  • デモ
    • start broadcastできない……
    • トラブっております
    • さっきまでつながってたんですけどねー
  • ustのチャットをゆっくり声で読み上げる
ワンライナーのための何か(sugyan)
2つのpythonを用いたオレオレDLNSサーバのすすめ(Gamella)
  • DLNA: 家電やゲーム機とPCを連携させる企画
  • http://gamella.tumblr.com/ を見ていたので聞いてませんでした
  • 常にフレッシュなグラビアアイドルを閲覧できるシステムの構築
Konoha: LLに静的な型付けなんてあり得ない?
  • konoha言語(横浜国立大学倉光研究室)
  • 次世代の何かを目指した汎用スクリプト言語(narutoから命名)
  • 先生:トロンをやってた
  • はやい
  • 型推論
  • オントロジと型統合、単位や意味を扱える
  • 「kernelもLLで書きたいですよね」
  • Linuxのデバドラをkonohaで書く
  • どうやって動かそう→カーネルにkonohaを入れる
  • (色々略)動きました
  • konohaが落ちるとカーネルも落ちる
集え!シェルスクリプトマニアたち(USP友の会)
TVML:TV program Making Language(大橋しのぶ)
  • TV番組のような3DCGを作る言語
  • FIL script(日本語でかける)
  • 台本を書くだけで映像ができる
  • まさにDSLだなー
PythonでRakeもどきを作ってみた
  • 女の子がしゃべってる…… かわいい……
  • プレゼンのインパクトが大きすぎて内容は覚えてません
  • あれkwatchさんだったのか
pythoniPhoneを利用したLEDマトリクスの制御
  • リモコンって不恰好、増えていく、なくす
  • かっこいいもので機器を制御したい
  • iPhone,MacBook
  • iPhoneMacBook→H8→LEDマトリクス
  • サーバPCから赤外線通信すれば機器制御可能
  • プロトコルわからず断念、ロボットハンドでリモコン制御
Braviaでなにか(堀さんと尾藤さん)

ノーコメント

おわり

おつかれさまでした

プレゼントでANSI Common LISPが当たった!どうしようこれ
帰りの電車内にOn Lisp所持者とSICP所持者がいてすごい光景だった