Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
おさらい 第29回では、非同期処理を実現する方法としてReactorパターンを紹介しました。 一般的に非同期処理として使われているスレッド処理と違い、Reactorパターンはシングルスレッドで動作し、スレッド間のデータの共有に悩む必要はありません。しかしReactorパターンはコードが直感的ではなく、慣れていない人には取っつきにくいものであることも確かです。 そのため、Reactorパターンを意識せずに非同期処理を実現するためのライブラリがRubyにはたくさん用意されています。 今回は、その中でもよく使われているEventMachineについて簡単に説明します。 EventMachineとは EventMachineとは、Reactorパターンを利用して非同期処理を実現し、高レベルなネットワークインターフェースを提供するライブラリです。 複雑なReactorパターンによる処理はブラックボッ
あけましておめでとう! 私、暮井 慧。今年もよろしくね。ところでみんな、いろいろなプログラミング言語の動向とか気になるよね? というわけで、プログラミング言語の去年のふりかえりと今年の予定なんかを、スペシャルな人たちに聞いてきたよ! Ruby 最初は、みんな大好きRuby! Rubyコアコミッターの小崎資広さんに聞きにきたよ。小崎さんは、Linuxカーネルコアの開発者でもあるんだって! Rubyの2014年はどんな年でした? 慧 こんにちは。2014年のトピックを聞かせてください! 小崎 まずは、Ruby 2.2のリリースでしょう。リリース直前にいろいろとトラブルが発生してやきもきさせましたが、無事12/25にリリース。クリスマスにリリースする慣例を守ることができました。 今回のリリースはガベージコレクションの改善がメインで、速度の向上に加えて、Symbolがガベージコレクトの対象になるよ
RubyのパパことMatzさんに、新卒エンジニアの適正年収を伺いました。twitterで下記のようなコメントがあり、弊社も新卒採用などやっていることから、Matzさんに新卒エンジニアの給料について伺ってみました。 質問 新卒エンジニアの適正給料はこれだとするならいくら位だと思いますか?ざっくり。 Matz 日本ということ考えて…理系大卒で600万くらいかなあ でもねぇ、大卒はだいたい粒ぞろいだと言っているのと同じ。個人差は無いものとしているってことなので、それだとおかしいよね。 ただ、コンピュータサイエンスの学科を出て、プログラミングできるっていう学生が300万とか400万とかしか貰えないと、彼の持ってる技能はあまり評価されてないってことじゃないかなと。特殊技能を持っていると思われてないってことじゃないかな。 プログラミングするのに国家試験はいらないので誰でもなれるって思われ
久しぶりの更新 GitHubの <URL:http://github.com/matz/streem> を公開したら驚くべき反響の大きさなので、本人もびっくりしている。 ので、ここでちょっとまとめておく。 もともとは日経Linuxの自作言語入門の連載のネタ 時系列的には2015年1月号で言語仕様を決めた(原稿提出は11月中旬) 2015年2月号で実装について解説(原稿提出は12月初旬) 2月号原稿には「github.com/matz/streemを参照のこと」と書いた 提出したその日に1月号発売 原稿提出後、原稿で解説した部分を実装し(300行程度)、githubにアップロード だれかが見つける hackernews, redditなどでバズる github issues, pull requestなどいっぱいくる 私が実装する前に Go で実装しちゃう人が出る (mattn/streee
あいさつ Railsアドベントカレンダー16日目です. いい感じに中だるみして来たのでトンズラここと思いましたが筆、執りましたよ. Railsに限らずOSSのすごいエンジニア(小並感)に感化されるのは良い事だと思います. (画像の使用許可等はちゃんと取りました. 画像無い方は許可取れませんでした.) Railsは本当に多くの方々のお力によって作られているとは思いますが、 今回は僕の恣意的な選択によって数人の方を挙げさせて頂きました.(基本的にはコミット数) David Heinemeier Hansson(DHH) Github: dhh Blog: DAVID HEINEMEIER HANSSON Twitter: @dhh Railsの生みの親. 2004年7月にオープンソースとして公開するも、2005年の2月までコミット権を誰も渡さなかったとか. デンマーク生まれで写真家で尚かつカー
この記事はRuby Advent Calendar 2014の13日目の記事です。 初めに Rubyを教育・研究に使おうという試みはRubyの黎明期からありました。 この時期の有名なパッケージとしてはバイオインフォマティクスのBioRubyや地球科学の電脳Rubyプロジェクトが有名です。 先述のBioRubyやGPhys(電脳Rubyの成果物)は現在も更新が続けられており、多数の利用者を抱えています。 しかし全体として見た場合、科学の分野で使われるLL言語としてRubyはPythonやRの後塵を拝している印象があります。 科学計算における均質化、あるいはなぜPythonが着実に他言語のシェアを奪っているか 記事のようにこの分野ではPythonコミュニティが非常に活発で、機械学習など新しい技術は真っ先にPythonで実装されるようになっています。 しかし最近Rubyでも少しずつですが環境が充
Rubyといったオブジェクト指向言語を学ぶと、メソッドの定義方法としてインスタンスメソッドとクラスメソッドという2通りの定義方法があることを学ぶと思います。しかし、言語自体のガイドブックには「定義方法にインスタンスメソッドとクラスメソッドがある」と書いてあるだけで、大抵その使い分けについては書かれていません。 そういう訳で、このエントリではその使い分けについて少し考えてみたいと思います。理論的に厳密な使い分けを目指すというよりは、そもそも使い分けの検討が全くつかない!という方に向けて、その指針の一助となることを目指します。 インスタンスメソッドとクラスメソッドとはそもそものところ、Rubyといった「オブジェクト指向の考え方」を実装した言語の機能です。その機能がなぜあるのか?というそもそものところは、オブジェクト指向の考え方にさかのぼることになります。 そこで、インスタンスメソッドとクラスメ
これは Ruby Advent Calendar 2014 の6日目の記事です。 昨日は igrep さんの より「普通に」書くためのTest Doubleライブラリ「crispy」 でした。 Ruby Advent Calendar に参加するということで、 何かネタを考えなければなぁと思いつつ、なんとなく Rebuild Podcast の Ruby とそのコミュニティ界隈の話を聞いていた。 そういえば、私は数あるプログラミング言語のから、 なぜ Ruby を選んで使うようになったんだろう? 私は普段、業務システムの開発を請け負う仕事を(SI)をしていて、 プログラミング言語は何を使うのかを自分で選べないことも多く、 雑多に言語を触ってきた。 C/C++, C#, Java, JavaScript, Ruby, PHP, Objective-C などなど。 一番好きな言語をあげるとする
日常のあらゆる場面でコンピューターが使われるようになったこの社会で、今後、プログラミングスキルはどのような意義を持つのだろうか。世界中のプログラマに愛されるプログラミング言語「Ruby」の開発者であり、安倍内閣IT戦略本部の有識者本部員にも選ばれている、まつもとゆきひろ氏にお話しを伺った。 プログラミングという"自由さ" まつもと氏がプログラミングについて語るとき、その根底にいつも流れているのは"楽しさ"である。 「私たちは普通、なにかのソフトウェアを経由してコンピューターを使っています。でもその機能は、そのソフトが提供する範囲、そのソフトを作った人が許している範囲内に限られているんです」 たとえば文章作成ソフトを使うとき、メニューに載っている機能を選ぶ他に選択肢は無い。 「仕事で求められることができればそれで良し、という考えは当然あると思いますが、自分のできることを他人に決められるのは、
先週に引き続き、今週はC言語以外の言語や開発をサポートするための、いくつかの機能を紹介します。 scratchバッファでEmacs Lispを使ってみよう ご存じの通り、Emacs LispはEmacsで使われているLispの方言です。EmacsはC言語で書かれたコア部分以外のほとんどがこのelispによって実装されており、ユーザはelispによってEmacsそのものを拡張することができます。 Emacsの設定ファイルである.emacsもelispのプログラムそのもので、Emacsは.emacsに書かれたコードを評価することで、設定を行っています。 といっても、そんなに難しいものではありません。Emacsを起動した時に、最初に開かれるバッファ *scratch* は、デフォルトでメジャーモードが lisp-interaction-mode になっており、このモードではelispの式をその場
gistfile1.md if式 / if文 の条件節で、左辺に定数を書くべき言語はあるか? @ajiyoshi.gist twitterからながれてきたこの話題。昔のCコンパイラは、if文の条件節で代入を書いても文句を言わなかったので、このようなコードに何の警告も出なかった。 #include<stdio.h> int main() { int x = 0; /* おそらく意図と違う。 x == 1 と書くべきであった これでは常に実行されてしまう */ if ( x = 1 ) { puts("残念"); } } 「これをこのように書けば、コンパイルエラーになり、ある種の誤りをコンパイラに見つけさせることができる」というのが、「老害」とされる人の主張である。 /* これはコンパイルエラーになる */ if ( 1 = x ) { puts("残念"); } もし使っている環境が「コンパ
2020/12/27追記 https://www.ruby-lang.org/ja/news/2020/12/25/ruby-3-0-0-released/ => Ruby3.0.0にRBSとTypeProfと用いた静的解析に対するソリューションが提供されました。 今後はこちらのエコシステムをガンガン盛り上げていきましょう💪 あいさつ P.S. 12/11 HaskellからRubypeにgemを変更しました こんにちは. 寒さが一段と厳しくなってきた事もありまして心を温めるGemを作りました. Rubyの振る舞いを汚染する事無く型保証の恩恵をゆるふわ受けられるgemです (型をつけるとか型保証という言葉をこの文脈ではメソッドの引数返り値のクラスを実行時にチェックするという意味で使っている.) 得体の知れないGemで抵抗感があるかもしれませんが、コード自体は50行以下の薄いGemなので気
前編では1.9の目玉機能を、中編では文法や意味論の改善について紹介しました。 後編である今回は、知っておくとお得な機能を取り上げたいと思います。きっとあなたのRubyライフを快適にするでしょう。 鬼車による正規表現の強化 1.9では正規表現エンジンに鬼車を採用したため、鬼車による拡張機能が利用可能になりました。 名前を使った参照 マッチした部分文字列を、$1や$2のようなインデックス番号ではなく、名前で参照する機能がつきました。 コード1 正規表現のマッチ部分を名前で参照する # (?<foo>...) にマッチした部分を $~[:foo] で参照できる if "Taro Yamada" =~ /^(?<first_name>\w+) (?<last_name>\w+)$/ p $~[:first_name] #=> "Taro" p $~[:last_name] #=> "Yamada"
Railsのコントローラーでのrenderメソッドの使い方について説明します。 renderメソッドは、「コントローラー(Controller)」と「ビュー(View)」のそれぞれにあります。 ここではコントローラーのrenderメソッドの使い方を示します。 ビューでのrenderメソッドの使い方は こちらを参照してください。 動作確認 Rails 4.1 目次 1. ビューを表示する 1.1. 暗黙的なビューの表示する 1.2. 他のアクションのビューを表示する(actionオプション) 1.3. 他のコントローラーのビューを表示する(templateオプション) 2. JSONを返す 2.1. renderメソッド 2.2. jbuilder 2.3. ActiveModelSerializer 3. ビュー以外を表示する 3.1. 文字列を表示する(textオプション) 3.2. X
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く