Mitaka.rb #3 & Tokyu.rb #9 に行ってきた
連日だったので、まとめて。
小田急線沿いというどっちつかずの中途半端な位置に生息しているため、
両方に参加してきました。
以下、飲み食いしすぎで記憶がうつろですが覚えている限り。
Mitaka.rb #3
- 会場: 三鷹のリトルスターレストラン
- 30人以上でざわざわ。プログラマーズカフェの人々も多かった。
- 料理はとてもとてもうまかった。食い過ぎで次の日腹痛かったのは内緒。
- 5人ほどLT! After Ruby Kaigi!
- Hamlの会会長、Director's cutで再び。削ったスライドからの質問が飛んだりとかw
- btoさんの話は初めて聞いたことなので大変面白かった。
日本Ruby会議2009に行ってきた
今年初参加です。
3日分の感想等まとめてアップ。それなりに長いけど中身は大してありません。
1日目
Scott Chacon from Github
- 英語が早くてほとんど聴き取れず。スライドがわかりやすかった
- gitの使い方や概念、git の運用パターンなど
- 特にgitの運用パターンは参考になりそう。あとで穴が空く程動画見る。
- Grit ruby-git library http://github.com/mojombo/grit/tree/master
- Gitのホスト設定が超めんどくさいので自動化した。
Adherison (Jason Goecke)
- 後ろの方で充電ついでにコード書いてたので、あんまり聞いてませんでしたごめんなさい。
- でも、Ruby による自動応答アプリケーションのデモはすごかった。
- http://adherison.com
Rails3 (Yahuda Kats@EngineYard)
- 英語が堪能すぎて全く聴き取れませんでした。
- スライドはとてもよかったので、もう一度見直す
- とりあえず「Rails3はすげー変わっちゃうよ」ってことは把握
2日目
Ruby1.8のゆくえ (卜部さん)
- 1.8.7 は 1.8.6 と compatible ではないと思われている
- 1.8.7 => セキュリティやバグ修正優先
- 1.8.8 => 下位互換の予定。1.8系の機能としてはこれで完成
- 1.8.9 => 出ない。
- 1.9移行へむけて、1.9の文法がParse Errorになるのをなんとかしたい
Ruby1.9.2 (Yuguiさん)
Ramaze(Mr. Michael & Mr. Uehara)
Keynote (松本さん)
- lvar_propagateのキモさに度肝を抜かれた。だが、@wycatsが興味を持ったらしい。
- その後、マジックコメントを入れた時だけ挙動が変わるようなパッチが入ったらしい。
- 公平になりましょう。
3日目
TermtterKaigi
- 企画部屋で行われていたTermtterKaigiに参加。http://jugyo.org/blog/3517
- termtter解説とか今後の課題とか。ちょっと課題を思いついたので、そのうちパッチ書く。
- 個人的にCygwinで少し使えるようにしておきたいんだが、環境が自宅にないのが難点。誰かWindowsください。
RubyでMac OS X開発 & iPhone
- RubyCocoa と HotCocoaの紹介
- iPhoneの方はIRCでちら見。あとで見る。
- http://github.com/takuma104/iphone-rubycocoa/tree/master
Haml and Sass
Take the Red Pill(角谷さん)
番外編
- yoshukiさんの経歴をかいま見る。熱い話でした。
- tatsuosakuraiさんの奥さんは美人でできた人らしい。
- takiuchiさんとメガネが一緒だった!メガネスキーとしてはうれしい!!
まとめ
スタッフ、関係者の皆様、親しく接してくださった皆様、ありがとうございました。
また、参加者の方々お疲れ様でした!
来年はLTかスタッフ辺りから関わってみたいです!
後で見る
http://www.ustream.tv/rubykaigi/videos
ニコ動かなんかがアップされたらまとめよう。どれ見るべきか忘れる。
*1:訂正:id間違えてました。ごめんなさい。
Shibuya.lisp テクニカルトーク #3 に行ってきた
letの使い方を先月知ったようなLisp童貞ですが、勇気出して行ってきました。
発表はニコ動にアップされるらしいので、内容は割愛。
色々感じるところが多かったので、感想をダイジェストでお送りします。
Shibuya.lisp » Blog Archive » 2009/07/04 Shibuya.lisp テクニカルトーク #3 開催!!
オープニング
- Shibuya.lisp ではスタッフとTalkerを募集してます!
- 研究室にこもっている人も多いみたいなので、他薦もお願いします
- なんかLispらしい悩みですよね。
世界一短いコードで web アプリ作成ができるフレームワーク開発 (松本さん)
- Lisp暦1年くらい
- それでフレームワーク作り上げるって・・・すげえええええ。
- SLIMEとかいうソフトが動いてた。文字がばらばらーっとしてかっこええ。
- ソケット通信用のソフトだったのね。http://lispuser.net/emacs/lisphacking.html
teepeedee2 fast lisp web server (John さん)
- マクロで簡単にアプリケーション構築が可能なチャットサーバー
Inside c-wrapper (小黒さん)
- GaucheからCライブラリを読み込むライブラリ
- stub書くのが面倒だから、全部自動で作っちゃえ!
- 発想が当然のようでものすごい。
- マンガでわかるc-wrapper
LT
Scheme on Ruby on Rails(yuum3さん)
失敗したら会社終わるようなプロジェクトで本当にlispを使ってみた(mitamexさん)
- PCトラブル。Windowsマシンの表示がおかしく。。。
- 会場にWindowsマシンは数台しかなかった!パワポはなし!!
- 実はあったみたいだけど、激しく盛り上がっていたので引っ張ってしまったらしいw鬼w
- WindowsのピンチをMacが救った!
MongoDB,Tokyo Tyrant, CouchDBのベンチマーク記事
maihaさんの日記を見て、MongoDBのことを思い出したので関連しそうな記事の紹介だけでも。
ヽ( ・∀・)ノくまくまー(2009-07-02)
以下の記事で、3種のkey-valueストレージの性能比較を行っている。
Evaluating key-value and document stores for short read data « Blue Collar Bioinformatics
280万件のレコードを読み込ませ、その初期読み込み時間、レコードの読み込み時間、ファイルサイズの比較を行っている。
- Tokyo Tyrant : 初期の読み込み時間が遅い
- CouchDB: レコード読み込み時間が遅い
- MongoDB: ファイルサイズが大きくなる
となったそうな。
ただ、Pythonのライブラリを経由した結果であること、コメントで様々なツッコミが入っているなど、どの程度信頼性のある数字なのかは読み取れてない。
読解力低くてごめんなさい。正確な情報は元記事を読んでください。
ともあれ
Rubyオブジェクト直接突っ込めるのは楽しそう。やってみよう。
create_functionはクロージャにはなれない
Rubyだとこんな感じで書ける
def counter i = 0 lambda{|n| i += n} end count = counter puts count.call(1) #=> 1 puts count.call(2) #=> 3 puts count.call(3) #=> 6
PHPの場合も同じ結果を期待したけど、クロージャとしては動いてくれないらしい。
<?php function counter() { $i = 0; return create_function('$n',"$i = $i + $n;"); } $func = counter(); echo $func(1); // Parse error: syntax error, unexpected '=' echo $func(3); echo $func(5);
文字列をダブルクォーテーションで囲っているため、$iは文字列内で変数として評価されてしまう。
そのため、create_function内では以下のような式が入ることになる。
0 = 0 + 1
そりゃ動かないわな。
ちなみにシングルクォーテーションにすると、function内のローカル変数扱いになるため、外の変数は参照されません。
5.3のλ導入までは使えないってことですかね。
Sinatra勉強会@万葉に行って来ました
Sinatraという軽量フレームワークについての勉強会に参加してきました。
Sinatraの印象
フレームワーク全体の印象としては、簡単にURLディスパッチャーを利用するためのものという印象。
haml&sassやerbなどのテンプレートエンジンや、sequal, DataMapperといったDBアクセスライブラリを組み合わせることで、簡単にアプリケーションが作成できる。
本編
詳しくはid:tsuyoshikawa 氏のエントリをご覧ください。
- Sinatraって単純でいいよね!
- ソースコード読み読み
- 実際に作るとこんな感じ
- jugyoさん作のブログツール http://github.com/jugyo/hamlr/tree/master
その他
haml 楽しい!
勉強会参加前にサンプルを組んでみた時に、初めてhamlを使ってみました。あの糞面倒くさいhtmlがこんなに簡単に書けるなんて!!と感動しきり。
余計な記号がないのが素晴らしすぎる!!
参考リンク
主催のid:tsuyoshikawa さん、jugyo さん、ありがとうございました!
WanderlustでGmailを読めるようにする
最近Emacsいじってばかり。
Emacsでメールも扱えるようにしておく。
メールは全てGmailに集中させているので、Gmailに接続できればよい。
apel, FLIM, SEMIのインストール
前提となるものを入れる。APELは先日入れたので割愛。
Wanderlustのインストール
公式ページのftpになぜか全て繋がらないので、CVSか他からダウンロードする。
今回は下記から持って来た
http://www.jpl.org/elips/wl/wl-2.14.0.tar.gz
$ make install LISPDIR=~/lisp PIXMAPDIR=~/lisp/wl/icon
あとは設定ファイル。
各ツールを .emacs でロードして、細かい設定は .wl に書く。
あと、.folders というのも必要らしい。
~/.emacs
;; flim (add-to-list 'load-path "~/lisp/flim") ;; semi (add-to-list 'load-path "~/lisp/semi") (require 'mime-setup) ;; wanderlust wl.el (add-to-list 'load-path "~/lisp/wl") (require 'wl) (require 'wl-draft) (autoload 'wl-other-frame "wl" "Wanderlust on new frame." t)
~/folders
%inbox "inbox" +trash "Trash" +draft "Draft"
~/.wl
;; wanderlust setting ;; icon directory (setq wl-icon-directory "~/lisp/wl/icon") ;;; mail (require 'ssl) (setq ssl-program-name "openssl") (setq ssl-program-arguments '("s_client" "-quiet" "-host" host "-port" service)) ;; IMAP (setq elmo-imap4-default-server "imap.gmail.com") (setq elmo-imap4-default-user "<username>@gmail.com") (setq elmo-imap4-default-authenticate-type 'clear) (setq elmo-imap4-default-port '993) (setq elmo-imap4-default-stream-type 'ssl) (setq elmo-imap4-use-modified-utf7 t) ;; SMTP (setq wl-smtp-connection-type 'starttls) (setq wl-smtp-posting-port 587) (setq wl-smtp-authenticate-type "plain") (setq wl-smtp-posting-user "mattofransen") (setq wl-smtp-posting-server "smtp.gmail.com") (setq wl-local-domain "gmail.com") (setq wl-default-folder "%inbox") (setq wl-default-spec "%") (setq wl-draft-folder "%[Gmail]/Drafts") ; Gmail IMAP (setq wl-trash-folder "%[Gmail]/Trash") (setq wl-folder-check-async t) (setq elmo-imap4-use-modified-utf7 t) (autoload 'wl-user-agent-compose "wl-draft" nil t) (if (boundp 'mail-user-agent) (setq mail-user-agent 'wl-user-agent)) (if (fboundp 'define-mail-user-agent) (define-mail-user-agent 'wl-user-agent 'wl-user-agent-compose 'wl-draft-send 'wl-draft-kill 'mail-send-hook))
完了
お疲れ様でした。
メールの読み書きができるようになったのはいいが、Archiveのやり方などが全くわからんので戸惑っている。