初日にHeroku弁当の配布も行なっていた,HerokuのささださんによるRuby2.0の中身についての発表です(スライド等はこちら⁠)⁠。さださんはHerokuのmatzチームに所属しており,そこでRuby処理系の開発を行なっています。Guide)くらいは読んでる人が対象,ということでハードルを上げながら話を始めました。Ruby2.0Rubyは1993年2月24日に誕生しました。20周年を迎える2013年2月24日にRuby2.0を出す予定です。大きな機能追加の凍結を今年8月に,機能の凍結を10月,コードの凍結を12月など,リリースに向けて間に合わない機能追加はやめるという思い切りの良いリリースプランで進めています。compatible"と言っているとのことです。以前のコードが動かないということがあれば,連絡をすると2.0に修正を入れてもらえるかもしれません。これまでにやったことそのなかでこれまでに作ったものとして以下の紹介を行いました。Flonumについては詳しく説明しました。patternが増えてどのように変わったのか,32bitでは既存通りの動きをすることなどを取り上げていました。APIを実装することを挙げました。VMの変更について,笹田さんがはじめにYARVをつくったときには,多くの最適化コンパイルオプションをつくったのですが,現在はすべて無効にしており,それを有効にしたいとのことでした。現在無効になっているかというと,効果が大きくでていないのと,どのような用途の時にどのオプションを指定すべきかをきちんと調査をして出さなければならないからと言います。メソッド呼び出しの速度向上についても取り上げ,現在たらいまわし関数などで実行時間を測定したところ,VM実行時間の1/3近くがメソッド呼び出しにかかっているとし,ここの速度を向上したいとのことでした。将来やりたいこと最後に話す予定だったのは,将来的に実現したい,夢の話とのことでした。残念ながら今回は時間が足らずお話は聞けませんでしたが,スライドには書いてあるのでそちらをごらんくださいとのことでした。最後に「来年Ruby2.0がでますので,よろしくお願いします」とセッションを締めくくりました。Rails⁠」⁠,すなわちレールに乗った開発を行うことで気持ちよくWebアプリケーションを作ることができるフレームワークです。レールに乗ることで,理想としては動作する綺麗なコードが手に入るはずです。現実としては数ヶ月後には触れたくないようなコードとなってしまいます。テストコードがあったとしても,それはよいコードを書くためには十分ではありません。浦嶌さんは,QA@ITの開発でRailsを採用する時,これまで死亡してきたRailsのアプリケーションの分析を行いました。すると,大きく3種類の死因があることが解りました。ヘルパーは私たちを助けてくれないヘルパーはRailsのビューで必要になる共通的な処理を記述する場所です。大きなアプリケーションではヘルパーに多くのメソッドが追加されていき,気がつくと巨大で管理できないコードができあがります。この問題は,これまでRailsがビューと呼んでいるものはテンプレートでしかないというのが原因でした。あればプレゼンテーションのロジックも含むべきですが,その部分がヘルパーとして分離しており,それを多くのテンプレートから利用しているためヘルパーが巨大になってしまうのです。プレゼンテーションとモデルを分離するためには仕方ない面もありますが,メソッドの引数にモデルを渡さなければならないインターフェイスはダサいです。これらの問題を解決するために,active_decoratorプラグインを使います。active_decoratorを使うことで,モデルオブジェクトに動的にプレゼンテーションロジックを追加することができます。これまで,ビュー(テンプレート+ヘルパー)で次のように書かざるを得なかった記述を改善できます。%>もちろん,モデルに直接記述するわけではありません。デコレータを独立したクラスとして定義し,実行時に拡張されるしくみです。このしくみを導入することで,巨大化しがちなヘルパーを使わずに,スマートなプレゼンテーションロジックを記述できます。ちなみに,似たプロダクトとしてDraperというのもあるそうです。細かい違いはあるようですが,基本的には同じ設計思想であり,モデルにプレゼンテーションロジックを差し込むプラグインです。これらのプラグインを使うことで,ヘルパーを使わずにきれいなビューに整理することができます。パーシャルはパーシャルであってパーツではない2つ目の死因はパーシャルです。質問の一覧を表示する機能のコントローラで,タグの一覧を取得するのは美しくありません。それはページデザインの都合であり,仕様変更により影響を受けやすいでしょう。このような場合,Railsではパーシャルとfilterを使うことが推奨されています。パーシャルは根本的な解決にはなっていません。タグの一覧が他のページに移動するならば,パーシャルのコードも移動させる必要があります。パーシャルは「部分的なもの」でしかなく,部品(コンポーネント)ではないのです。この問題を解決するために,Cellsというプラグインを使います。Cellsは,Railsにコンポーネントを提供します。簡単に言えば,テンプレート(ビュー)から直接モデルを取得してレンダリングできる「部品」です。Cellsはコントローラと同じように実装します。コントローラからは完全に分離されてビューから呼び出されるため,独立したきれいな部品とすることができるとしました。モデルになるには太りすぎている最後の死因は,モデルです。Model」はよく知られた設計思想ですが,実践してみると500行を超えるようなモデルができあがります。モデルにHTMLを生成するコードやSQLのコードがあるわけではありません。モデルに関連する処理を集約していった結果であり,本来あるべき姿ともいえます。太りすぎたモデルは,きれいなコードではありません。この問題を解決する手段は,ライブラリの活用です。非常に手間のかかる処理であっても,ライブラリを活用すれば数行ですむため,モデルが太りすぎることを防止できます。いつでも利用できるライブラリがあるわけではありません。そこで,そのシステムに必要な,小さなライブラリを作ることを提案していました。汎用的にする必要はなく,タグ付けするといった小さな機能を抽象化し,ライブラリにまとめるだけです。このようにライブラリを活用することで,モデルをシンプルできれいなコードにできます。ユーザの行動や振る舞いを抽象化したフレームワークとして「アクティビティレイヤー」という考え方を提案していました。アクティビティレイヤーとは,DCIのエッセンスを含んだ考え方で,複数のモデルが協調する必要がある処理をユーザのアクティビティとして抽象化したものです。ユーザが質問に答えた時には,幾つかのモデルに影響を与えますが,そのような場合質問のモデルではなく,「⁠回答する」というアクティビティに着目し,コードをきれいに整理します。最後にまとめとして,Railsはよいフレームワークですが,乗るべき「レール」がないこともあります。そのような部分は,先人の作ったライブラリを使ったり,作ったりして対応しましょうと述べ,本セッションを結びました。中村成洋さん「Rubyによる本気のGC」CRubyのコミッタであり,もっぱらGCをメンテナンスしたり壊したりしているnariさんの発表です(スライド等はこちら⁠)⁠。nariさんは徹底改造G1GC実装編という本を無料配布しています。TrendでGCという言葉を検索してみたところ,平日にくらべて休日の検索数が大きく減っていました。nariさんはこれを「休日に趣味でGCをいじる人が少ない」と解釈し,GCはまだまだ愛されていないと残念がっていました。RubyでGC今回のセッションをやろうと思った理由については,今までのRuby会議での発表がすべてC言語での話だったこと,卜部さんのブログに「ちゃんと調査すればCで書かなくてもいい実装はたくさんある」と書かれており,自分がC以外でGCを書けるか試されていると感じたことを挙げていました。Ruby上でGCを実装した場合,Ruby上のGC自身がCでのGCの影響を受けるため性能評価しにくく,あまり意味がないため,違うアプローチを模索したそうです。evaluatorです。evaluatorとは自身のコードを用いて自身を評価する評価機で,今回はJavaでJavaが書けるJikesRVMに着目したと話します。JikesRVMはGC部分がMMTkという別ライブラリに分けられているため,その部分を切り替えることでGCの振舞いを変えられます。これでJava言語ではGCを作り放題になったのですが,残念ながらRubyではありませんでした。RegicideそこでJRubyを使い,Regicide(国王殺し)というライブラリをつくりました。ちなみに,名前は「RとGとCで辞書をgrepしてそれらしいのを選んだ」と述べていました。まとめRegicideを作ってみた結果,本当に欲しかったものはこういったものではなく,「⁠GC実装に特化したミニ言語」であるかもしれないと気づいたため,今後はそちらを攻めていきたいとのことでした。レポート班KaigiFreaksとは,会場に来れなかった人にも雰囲気や内容を楽しんでもらえることをミッションとする特別編成チーム。配信班とレポート班の2班で構成される。レポート班の作業はエクストリームスポーツとして知られていたが,今回はその評判を覆すべく史上最大規模の編成で臨む。前鼻毅(まえはなつよし)Ruby札幌,アジャイル札幌,CLR/Hなど札幌のコミュニティで活動中。SOLUTIONSにてRubyやObjective-Cのコードを書いている。twitter:http://twitter.com/sandinistにく北海道出身で沖縄や東京に住んだ後,今は札幌在住のプログラマ。コンサドーレ札幌が好き。Ruby,Emacsが心のメインツール。最近はHaskellを試している。twitter:https://twitter.com/niku_nameblog:http://niku.name/小野寺大地(おのでらだいち)北海道大学大学院,一般社団法人LOCAL,Ruby札幌あたりで活動中。普段は複雑ネットワークの研究をしていて,肉チャーと二郎系ラーメンをこよなく愛している。Ruby札幌,札幌C++勉強会などで活動中。コレクションの要素数を数えるのに便利なライブラリ「multiset」などを作っている。Languageの文化」。twitter:http://twitter.com/h_hiro_小玉直樹(こだまなおき)生まれも育ちも札幌のプログラマ。RubyにハマってからはWebアプリを作るのが楽しくて日課になっている。1年ほど前からコミュニティ活動にも参加を開始し,素敵な技術者と出会える日々に感謝。twitter:https://twitter.com/volpe_hd28vblog:http://d.hatena.ne.jp/koda_hd28v/うさみけんたいまをときめく自宅警備員...だったのですが,Ruby会議の半月前に退職して東京に移住しました。Python札幌などでも活動。セキュリティ&プログラミングキャンプ2011言語クラスチューター。函数型言語の浅瀬で溺れる。twitter:http://twitter.com/zonu_exeblog:http://d.hatena.ne.jp/zonu_exeすずきゆうすけ札幌市に隣接する風の街・江別市で働く自営業。Ruby札幌にときどき顔を出す。Labsにもときどき出没。プリキュアと朝ドラをこよなく愛し,日々変動する体重に怯えるごくごく普通のアラフォー。twitter:https://twitter.com/yuskesuzkiみぃお一般社団法人LOCALで主に活動中。お家でRubyをちょくちょく書いている。お仕事はPHPでソーシャルゲームを作っている。twitter:https://twitter.com/ayako119homepage:http://miio.info/永沼智比呂(ながぬまちひろ)首の長いプログラマー。達人プログラマー読書会を主催したりしていた。Ruby札幌やSapporo.js,アジャイル札幌に参加。Ruby界隈の文化って面白い!twitter:https://twitter.com/onjiro_mohyahyablog:http://onjiro.blogspot.jp/わたなべしゅうじ札幌在住のプログラマ。札幌Javaコミュニティ代表。Java,Ruby,Python,JavaScriptなどを扱い,ユニットテストが好物。twitter:https://twitter.com/shuji_w6e/blog:http://d.hatena.ne.jp/shuji_w6e/菅井祐太朗(すがいゆうたろう)北海道から上京して一年。仕事でRubyを使えそう。Ruby札幌,Asakusa.rb,Yokohama.rbなどに顔を出している。Valim,Rubyにおける並行プログラミングのためのいくつかのアイデアを提案。2日目1月13日14日開催の東京Ruby会議10,今後の予定を案内。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。