ILC2012個人的まとめ#4 四日目
今までずっと書き忘れてたけど、会場は朝早い(といっても8時だけど)ので、朝ごはんとして、後ろのデスクもしくは別室の方にサンドイッチとコーヒーとジュースと果物が置いてあって好きに食べれた。
Enabling Practical Reconfigurable Computing Through Domain Specific Compilers
- cpu構造の話
- cpu構造の簡単なおさらい(レジスタ、ALU、メモリ、L2キャッシュ、等々)
- The multi-everything paradigm
- Reconfigurable Computing FPGA
- NovaSparksという製品
- これもラックにたくさん入れられるタイプの製品
- FPGAの簡単なおさらい
- CPU vs FPGA の表
- エンジニアの人がCPUもしくはFPGAで(並行)プログラミングする際のイメージ図
- Hardware Description Language (VHDL, verilog)
- 「C/C++ to VHDL Compiler」の提案
- 「NovaSparks用コンパイラ」の目的
- 「NovaSparks用コンパイラ」の基盤
- DSLである
- IPS(Interface-Passing Style)である
- CLOSベースである
- プロトコルDSLのサンプル図示
- コード生成とIPS
- NASDAQのシンプルメッセージの統計を取るツール
- FPGA用だけではなく、同じ元コードよりCPUマシン語も生成
- VHDLコード生成サンプル
ここからはスケジュール変更でしばらくLTをする事に。
基本的にほぼ聞き取れてないですすいません
Lisp based on Linear Logic
Francois-ReneさんのLT。
内容はすごい興味あったんだけどすごい早くて自分には聞き取れなかったので後で読み直した。
5分きっかりで終わったみたいだし、LT鍛えられてるんだろうなあ…。google恐るべし。
Tapes of Tech Square
大昔にTech Squareにあった研究所のバックアップテープを探すプロジェクト?
何枚かの昔の写真と昔の話。
詳細はよく分からないけど、レッドモンドでの昔のビルゲイツとマイクロソフト。
ビルゲイツがテープを持っていたそう。
(多分…)
My Lisp Implmentation
zickさんがこれまで実装してきたLisp処理系の紹介。
プリンタLisp、ポケステLisp、ニコ動Lisp、リリカルLisp、が紹介されて海外の人にも受けてました。
BiwaScheme紹介
- 動機
- サーバ上のtuplespaceをブラウザからいじりたかった
- 概要
- 実演
- 前日のtaraiミュージックを、BiwaSchemeでブラウザでリアルタイム演奏!
- Biwaは琵琶湖との事
Exploring the Rubik Cube
- 立方体の展開図にルービックキューブの各部位を割り当て、更にその各部位に数値を割り当て、リストで状態を表現
- 上記の上で、回転させるメソッドとかを書いていった
- cl-permutation (順列を扱うライブラリ)を自作、使用
LTおわり
Author Name Disambiguation System for Academic and Research Papers
- 「Name Disambiguation」とは「名寄せ」の事だそう
- Deposit Payoff System
- 銀行がつぶれた時に、保険会社が補償金を払うシステム?これで銀行のアカウント情報で名寄せをする、という例が説明されていた
- 手動 vs 機械学習
- 「Author Name Disambiguation」は、論文の著者での名寄せを行うそう
- Items of Author Record
- いろんなフォーマットがある
- 五個ぐらい例が出て、どれとどれが同じ人か、というクイズ。人間が見てもちょっと考える
- 実システムの構成情報
- CLML + Allegro CL + mysql + chasen
- CLML = CL Machine Learning http://cl-www.msi.co.jp/solutions/knowledge/lisp-world/products/CLML.html
- CLML + Allegro CL + mysql + chasen
- Pairwise Distinction
- 特徴ベクトルのデザイン
- これどうやってるのか逃しましたすみません
- 二つの(特徴?)ベクトルのコサイン類似性
- ランダムフォレストを使った特徴抽出
- Different of publication year
- 要は西暦とか平成とか昭和とかの問題
- これもSVMで判定する
- このシステムは「CiNii」のサイトで稼働中
- http://ci.nii.ac.jp/ の「Author Search」
- 質問で、日本人の名前固有の事が出てたりしてた
- 違う漢字で同じ読みがある、同じ漢字で違う読みがある、ファミリーネームが変わる事がある、旧字体、等々
Automatic and Tunable Multi-Level Locality Improvement with a Lisp GC
GCチューニングの話。
- メモリヒエラルキーのおさらい
- L2キャッシュとか
- ヒエラルキカルクラスタリング採用(以下HC)
- これとAllegro CLで、世代別GCを実装
- GCのおさらい
- HC解説
- level 0 : オブジェクト
- level 1 : オブジェクトのグループ
- level 2 : オブジェクトのグループのグループ
- level 3 : ...
- CC-HC : Cache-Consious HC これを採用
- これとは別にCO-HCというのもある(OはObliviousとの事)
- 推奨されるフィッティング
- level 1 : L2キャッシュ
- level 2 : VMページ
- level 3 : To-space
- CC-HCコピーアルゴリズム
- これの動作をアニメーションで見る
- レベルが低いところは頻繁にコピーされ、レベルが高いところはたまにしかコピーされない動作をしている
- これの動作をアニメーションで見る
- Allegro CLでの世代別GC
- CC-HC実装
- 今のところグローバルGCにCC-HCは適用できないとの事(将来対応予定)
- またLispイメージそのものにも適用できない
- Lispイメージについてはあとで調べる事
- ベンチを取る
おひる
例によってお弁当もらって、建物の中の吹き抜けっぽいところで食べた。
昼寝した。
Core-serveR : A Common-Lisp Application Server
webアプリサーバです。
- class+
- 「defclass+」で定義
- 関数的オブジェクト(例)
- メソッドリフティング
- defclass+ 時に、スロット指定のところに「:lift t」みたいに指定
- Prevalence
- データベースサーバ
- 「with-transaction」
- 「deftransaction」
- Relations
- メソッドリフティングと同じように、スロット指定時に「:relation ...」を指定
- 「defcrud」
- XMLのパース、XMLの名前空間、XMLの検索
- PLT Web Framework似の継続
- Websum ( display / read )
- 「defun/cc」
- JavaScript & HTML5
- 「with-js」
- 「jobject」
- コンポーネント
- 「defcomponent」
- コンポーネントはJavaScriptにレンダリングされる
- (すいません、この辺りメモできてません)
- ウェブサイト構築のデモ
- wysiwygエディタでブラウザ上から直にいじれる
ここからまたLTの部です
About Clack
@nitro_idiot さんが前に Kyoto.lisp #1 でやった内容とほぼ同じ…だと思ってたら、 Kyoto.lisp #1 では、Clackの紹介はやってなかった。
自分はどこでこのプレゼン見たんだ。
見たおぼえがあるというのは自分の記憶違いじゃないと思うんだけど…。
A Tutorial For Creating and Publishing Open Source Lisp Software
この場で素早くライブラリを作成する実演LT。
実際に作られたリポジトリはここ。
https://bitbucket.org/tarballs_are_good/cl-averages
こういう手順を他の人がどうやってるのかというのが見られてすごい面白かった。
- まずbitbucketのページを開き、新しいhgリポジトリを作成。名前は「cl-averages」
- 手元にcloneします
- 「(ql:quickload :quickproject)」を実行
- 「(quickproject:make-project ...)」を実行(これで雛形ファイルが生成されるっぽい)
- 「cl-averages.asd」ファイルを編集
- この辺りのファイル編集内容については、今でも上のリンクから直にファイル見れる
- 「cl-averages.lisp」ファイルを開き、ライブラリのコード本体を書く
- 「package.lisp」ファイルを書く
- 「(defpackage ...)」
- 「~/.sbclrc」を開いて何か追記した?ここはちょっと分からなかったしリポジトリにも無い…
- この段階で、slimeから動作確認をしてみせる
- hgでコミット、push
- bitbucketのページを開き、pushした内容が反映されているのを確認
- 「バージョンコントロール使おう」的な話をちょっとされた
- githubのquicklispプロジェクトのissuesを開いて、登録申請をデモ
IOLib : a modern OS interface
システムやネットワークを叩くライブラリ作ったよという話。
- 2004年にBitTorrentクライアント(未完成)のソケットライブラリ作成
- 64bit linux上のSBCLとClozureで動作確認、一部機能のみ特定環境のFreeBSDに移植
- syscalls, sockets対応
- pingのサンプルコード
- ネットワークアドレスオブジェクト
- 名前解決、DNSリゾルバ
- Gray Streams
- ZSterams (自作?)
- I/Oイベントループ
- epoll(), kqueue(), select()
- OS paths
- なんかややっこしい話が
- なんで「paths」で「URIs」でないかというと、RFC3986とPOSIX-1003-1-2008で衝突して両方は満たせないからとの事
- シンボリックリンク
- その他OSまわり
- プロセス実行
- ifp_spawnp()
The CRM of Tomorrow with Semantic Technology An Application of Big Data and Complex Data
AIDAという製品の紹介?
なかなか興味深かった。
- 良いカスタマサービス例#1
- 動画が流される。郵便でなんか困ってる人が出てきて「エージェントはこれをどうやって知るのか」
- どうやら、過去の請求と支払いが分かれば困ってる人の問題は解決するらしい
- 動画が流される。郵便でなんか困ってる人が出てきて「エージェントはこれをどうやって知るのか」
- 良いカスタマサービス例#2
- CRM (Customer Relation Management、顧客関係管理。この名前のは日本でもよくあるが… http://ja.wikipedia.org/wiki/%E9%A1%A7%E5%AE%A2%E9%96%A2%E4%BF%82%E7%AE%A1%E7%90%86 )
- 「CRMは受動的ではなく、先行的であるべき」
- 先行的CRMの為に、ユーザモデルを分析する
- AIDA - Amdocs Intelligent Decision Automation
- Amdocsというのは社名らしい http://ja.amdocs.com/Pages/HomePage.aspx
- 無理に訳すと「アムドックスの知的自動決断システム」?
- 「AIDA」の発音は「エンダー」と聞こえる(「エイダー」と言ってるんだとは思うけど)
- 「同じ語だけど、違う意味を持つ事がある」←→「同じ物を指す、違う語」
- 指紋システムと名寄せシステムでも出てきたけど、またこの問題が。
- そこで、URIを情報表現に利用
- 例えば、二つの違う物を指す「tank」(戦車と燃料入れ)という言葉は、「http://aaa...#tank」「http://bbb...#tank」という風に区別する、らしい
- RDF
- 内部DBとして、AllegroGraphのようなものが必要で、それが「Triple Database」との事
- Triple Database各種の比較表
- 「イベント駆動型CRMプラットフォーム」
- 質問:「No schema」との事だけど、どうやってるの?システムが勝手にschemaを学習して構築するの?
- (勝手に?)徐々にオプティマイズするらしい
- 質問:ハードウェアは?
- 「I dont know」との事。Allegro CLが動けばどのシステムでも大丈夫という事だろうか
おわり
簡単な閉会の挨拶があって、解散と片付け。
すごい面白かった!
最後に記念にHHKの裏にみんなでサイン。和田先生のサインの隣にサインした。うわああああああああ
残った人で飲みに行くようなので途中までついていったけど、風邪か何かをひいたようで熱っぽさとフラフラしてやばそうなので自分は諦めて帰る事に。まさにfever。
自分的には色々な面でボロボロだったけど、すごい勉強になったし面白くてやる気が出た。