元「中学生」Rubyコミッターとして知られるsora_hは実践的なGitHubの活用法について発表しました(スライド等はこちら⁠)⁠。現在はアルバイトとしてCookpad社に勤め,「⁠中卒フリーター」を名乗っています。GitHubはどこがソーシャルなのかはじめに「GitHubの回し者ではない」と断った上で,今回のセッションではGitHubを使ったソーシャルコーディングについて解説を行いました。「⁠GitHubのアカウントを持っている人は?」と会場に挙手を求めると,会場のほとんどの人が手を挙げていました。requestをしたことがある人」「⁠プライベートリポジトリを使用している人」などにも少なくない数の人が手を挙げました。GitHubではTwitterのように人をフォローしてダッシュボードにコミットが流れてくる,プロジェクトに"star"(お気に入り)をつける,"watch"して議論を追う,コミットにコメントを残せる,などの機能があります。Request"ではないでしょうか。"Fork"とは,他の人のリポジトリをフォーク(分岐)して,自分のリポジトリにコピーする機能です。このリポジトリは自分専用にカスタマイズしたり,パッチを書くために活用することができます。Request"です。これはパッチをFork元のリポジトリに送るための機能です。pull`の"pull"です。Requestは同一リポジトリの別ブランチにも送ることができます。Requestする」です。この方法を一度覚えておけば,あとはどのリポジトリに対してでもスムーズにパッチを送ることができるようになります。Requestを送るためのベストプラクティスを紹介しました。使用しているライブラリなどに不満を抱いたとします。バグがあった,ほしい機能がないなどの理由です。GitHubでリポジトリのページを開き「fork」ボタンを押します。clone`しましょう。コードを編集する前にトピックブランチを切ることを忘れないようにしましょう。master`でmasterから新しくfooリポジトリを作成することができます。コードが完成したらコミットしてGitHubにpushします。ブラウザでGitHubに戻り,ブランチを選びます。このときに'wキー'を押すとマウスを使わずにブランチを選ぶことができます。Requestボタンを押し,タイトルと概要を書いて送ります。Requestのタイトルはパッチの内容を簡潔にまとめます。バグならば,概要にはバグを再現する最小手順を書きます。確認する方にも再現コストがかかるので,可能な限り単一のbug.rbなど小さなスクリプトにまとめると良いでしょう。,「⁠何が起きたのか」「⁠何を想定していたのか」説明することも必須です。機能追加した場合は,その機能が何に使えるのか,どう使うのかを説明できると良いと言います。プロジェクトによってはテストコードが必須の場合があります。Requestを提出したあとでも追加コミットをpushすれば反映されますので,指摘されたら直しましょう。時間がかかりそうなら「テストはいま書いてます」などと書けばよく,指摘されても怖がらずに対応しましょう。case」「⁠Usage」など見出しと読みやすくなるとしました。日本人向けのベストプラクティスとして,日本人が相手でも英語で書くことを挙げます。日本語を併記しても良いですが,英語でも書きましょう。できないなら勉強が必要ですが,コードで語ることがとても有効ですので,拙い英語でもコードで伝えることはできるでしょう。method!!!!!!!!!!!!!!!!"で取り込まれた例もあり,人と場合によっては熱意で通ることもあるそうです。ここまで来れば,あとは「send」ボタンを押すだけです。反応を待って,修正や質問などのフィードバックがあれば真摯に対応しましょう。GitHubの活用について冒頭でプライベートリポジトリの使用について会場への質問がありましたが,有料のプランにすると外部から見ることのできない非公開のリポジトリを持つことができるようになります。学生の場合は無料で使用することができるとのことで羨ましいと言っていました。企業のイントラ内でGitHubを利用したい場合は,値段は張りますがGitHub:Enterpriseを利用するなどのプランが用意されています。これらのプランすべてで,もちろんPullRequestの機能を使用することができます。hubというコマンドラインツールがあり,これを使用することでブラウザを開かずにシェルからgithubの機能を使うことができるようになります。Requestを送る」という操作を行うことができ,便利とのことでした。Ruby」Rubyには無いパターンマッチについて,Rubyコミッタの辻本和樹さんが発表しました(スライド等はこちら⁠)⁠。Ruby2.0のリリースが2013年2月24日に予定されています。Ruby2.0というのは,長らくRuby開発者にとって遠くにある目標,言わば人参のようなものでした。2.0のリリースがされると,その遠くにある目標がなくなってしまいます。そこで,次なる目標としてパターンマッチを入れるのはどうかと提案しました。辻本さんはこの発表,この提案が新機能の議論の下地になることを期待しています。パターンマッチとはパターンマッチについて,Rubyの多重代入のコードを例示して説明しました。次の3点を多重代入の問題点として挙げました。Arrayに限定されること個数の確認ができないこと途中の式を拾えないこと多重代入の問題点は,次のように言い換えることができます。分解機能が弱い照合機能がない代入機能が弱いパターンマッチによってこれらの問題点を解決することができるそうです。Rubyにおけるパターンマッチ(本題)辻本さんは,自作のライブラリであるpattern-matchの基本的な使い方とともにテキスト処理の利用例を紹介しました。パターンマッチがある場合とない場合のソースコードをユースケース別に複数提示しました。CSVや木構造の処理を比較的簡単に書くことができます。パターンマッチがある場合は,処理すべきテキストのパターンに集中すればよいため,よりシンプルにプログラムを書くことができます。新機能としてRubyのコアに取り込みたい理由パターンマッチを実装することで,Rubyのプログラムをよりわかりやすく書くことができるため,Rubyのコアに取り込みたいと考えています。現状の実装ではmethod_missingを多く利用しているので,実行が遅かったり問題があるかもしれないと考えています。まとめパターンマッチはとても強力なので,辻本さんが発表で例示したユースケースだけでなく,実際にユーザーがライブラリを利用して得られるパターンマッチのユースケースを共有して,コアへ取り込んでもらう際の説得材料としたい。そのために皆さんでパターンマッチをたくさん使ってもらいたいと締めくくりました。Aaronさんによる「サラミ」の発表です。conf」で日本人が英語で発表しているのをみて,自分もいつかは日本語で発表したいと思っていたそうです。6年間日本語を勉強してきて,ついに今日,それが達成されました。「ゆっくり喋りますので,もし間違えても恥ずかしいので翻訳しないでください」の一言で会場が爆笑の渦に巻き込まれていました。実際,彼の日本語はとても丁寧で分かりやすいものでした。Eat「食べることは楽しい」「⁠友達と作った料理を食べるのはもっと楽しい」「⁠危ない料理はおいしい⁠」⁠。おいしい(=食中毒になりそうな)サラミを作るのが好きなAaronさんですが,自分が作ったサラミで友達を殺したくはありません。衛生管理について十分な予習をした後実際のサラミ作りを行なったそうで,そのことについてアツく語ってくれました。「良いバクテリア」は酸性の環境をつくり,悪いバクテリアを育たなくすること。良いバクテリアがサラミの味を形成すること。そのために肉に対して重量比で0.012%のバクテリアを投入しなければいけないこと。塩を入れて悪いバクテリアの繁殖を抑えること。0.0143%の亜硝酸塩を入れることでボツリヌス菌を発生させないこと。水分を蒸発させることで悪いバクテリアを退治させること。温度ははじめの3日は良いバクテリアを培養するため21度,その後30日は15度に設定すること。それぞれをあまりにもマジメに,しかも日本語で語るもので,会場は大爆笑です。サラミ作りでは冷蔵庫の温度管理がとても重要です。サラミ作り専用の冷蔵庫を用意し,モニタリングするデバイスまで作成してしまいました。ここまで,まだRubyのRの字も出てきていません。Play食べることは楽しいです。サラミ作りのデータを解析したら,もっと楽しいとAaronさんは考えます。データはデジタル信号で送られてくるので,それを解析します。解析したデータを紹介されました。室温の推移状態で,Rを用いて算術平均を求めることで正規化した情報を求めます。室温は12度から15度に推移していることを説明されていました。高速フーリエ変換を用いてスペクトル密度を求めていたり,上限実数の位置を求めたりもされていました。分かりませんが,すごいことをやっていたようです。Rが出てきましたが,RubyのRではありませんでした。Codeここで「集まったサラミ用データをシェアしましょう。Rails4で」と言い出したAaronさん。リアルタイムシステムは,入出力のオブジェクトで簡単にリアルタイム処理ができるとのことです。AaronさんはPipeとThreadを使って実装されていました。1秒ごとにパイプにデータを送るようなスレッドを作り,スレッド内では送られたデータを即座に読み取ります。Aaronさんは,これが一番簡単なリアルタイムシステムの実装だと考えているそうです。Pipes.」と思うとのことです。RailsにPipesと同じように機能してほしいと思っているからだと仰っていました。「⁠ActionController::Live」を使うことでRailsにIO.pipeと同じようなことをさせることが可能のようです。Events)を使うことでサーバーのイベントをブラウザに送ることが可能で,クライアントはJavaScriptで実装されていました。IEでは動かなかったようです。コード上では,IOオブジェクトのように記述していますが,実際のサーバーとクライアントとのやり取りではオブジェクトとレスポンスをSSEに書き込んでいます。サラミを収めた冷蔵庫(Publisher)のデータをcreateアクションでBusに知らせます。Busはイベントを複数のSubscriberへ知らせることができ,Thread内では共有される仕組みになっています。ブラウザ(Subscriber)はあらかじめBusに対してイベントを登録しておくことで,サラミを収めた冷蔵庫がデータをBusに知らせたら,すぐにそのデータを受け取ることができます。データは,サーバからSSEの形式でブラウザへ送られてきます。最後にサーバからクライアントへ送った値を分かりやすくするために,GChartを使うことでグラフにされていました。Code」を表したものであり,このスライドが共有されることが目的であるとのことです。今回発表したサラミのデータを共有する話からも,みんなでデータを共有したいからこそできたものだと感じているそうです。Rails4はまだ開発途中ですが,リアルタイム処理が強化されそうなことが良くわかることから期待が膨らみます。レポート班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.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。