))) ruby-trunk-changesをgitから参照するRubyの開発に興味がある人にはおなじみだと思いますが、PB memoにてruby-trunk-changesというものが公開されています。コミッタのnagachikaさんがCRubyの変更内容についてコミット単位で解説をされているという非常に参考になるコンテンツですが、どうせならWebからだけでなくgitからも参照したいと思ってgit notes用のデータを用意してみました。 コミットの差分とその背景がまとめて見られるようになって便利です。 $ git log -p commit 09c399b68e6162b68e52dfd22763408def2f813e Author: naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> Date: Wed Dec 7 22:13:
はじめに ソフトウェアを作るときには同時にテストも作ります。 テストを動かすことで、ソフトウェアが設計の通り動作しているかを確認できます。もし設計の通りに動作しない場合はテストが失敗し、ソフトウェアに期待する動作と現在の間違った動作が明確になります。 テストをすっきりと書くことができると、テストを読みやすくなり、また、きれいなソースコードのままで新しくテストを追加することができます。 今回は、そのすっきりとテストを書くための方法について説明します。 テストを追加していくと発生する問題 例えば、1つのテストケースの中にいろいろな機能のテストがある場合を考えます。 ここで、ある機能の実装を修正したので、この機能に関するテストを追加しようとしました。 テスト名に「テストのコンテキスト」と「テスト対象」を含めてどのような内容のテストかを示します。 このとき、ある機能に対して様々な動作をテストするこ
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
今夜は W. V. Quine の命日です。 eval$s=%q(eval((%w(A="+_Sing_do,_re,_mi_to_the_mike!*z+_Do!*{+_Re!*|+_Mi!__OK !_Let's_sing_Silent_Night!*~+_Sxi~lent_|night!_~Hxo~lY_|night!*{+_All_is_ycal m,_zall_is_~bright,*x+_Round_You_zViyrxgin_~Moxther_~and_|Child!*x+_HolY_ziny fant_xso_~tenxder_~and_|mild,*{+_Sleep_in_}heav{enylY_zpea|ce,*z+_Slee~p_|in_ ~heav}en{lY_zpeace.**";T=-Math::PI/N= 2**10;F=proc{|n,t,a|n/=2;r=
Ruby の拡張ライブラリを書く時には、Ruby の処理を呼び出すと例外が発生する可能性があることに気をつけないといけません。たとえば以下のように some_func という関数を呼び出す wrapper method を定義したとします。 extern int some_func(int len, int *ary); VALUE sample_func(VALUE self, VALUE arg) { int *buf; int len, i, result; if (!RB_TYPE_P(arg, T_ARRAY)) rb_raise(rb_eArgError, "arg must be an Array"); len = RARRAY_LEN(arg); buf = ALLOC_N(int, len); for (i = 0; i < len; i++) { buf[i] = NU
))) Rubyの例外終了時に自動でREPLを起動するRubyが例外を吐いて終了する際に、例外発生時点の環境で自動でREPLが起動するようになっていればデバッグ楽だよなぁと思っていたのだけど、 1つ実装方法をひらめいたのでライブラリを作ってみた。 debug-exception trunk/1.9.3/1.9.2で動作確認済み これを使うと以下のようなことが出来るようになる。 $ ruby -rdebug-exception -e ' def f(i) raise "test" end f(0) ' RuntimeError: test from -e:3:in `f' from -e:6:in `<main>' irb#1(main):001:0> i => 0 debug.rbやruby-debugと比較したときのこのライブラリのメリットは以下の2点*1。 キャッチする例外をあらかじめ
The document discusses Ruby's Global VM Lock (GVL) and improvements made in Ruby version 1.9.3. The GVL ensures only one Ruby thread can execute at a time, limiting Ruby's ability to take advantage of multi-core CPUs. Ruby 1.9.3 improves threading performance by releasing the GVL during I/O operations, allowing other threads to run while one thread is blocked on I/O. It also uses POSIX sched_yield
Untrusted search path vulnerability は「信用できない検索パスの脆弱性」という意味である。代表例としては環境変数 PATH に .(カレントディレクトリ)を入れた場合の問題が古くから知られているが、これに限られたものではない。2009年上期には、Python に関連したUntrusted search path vulnerabilityが多数出たことを踏まえ、これを解説する。 Python は動的オブジェクト指向プログラミング言語である。Pythonはアプリケーションに組み込むことにより、アプリケーションをPythonで拡張することができる。実際、vim やblenderなど多くのアプリケーションがPythonの組み込みをサポートしている。 昨年から、Python関連のUntrusted search path vulnerabilityとして以下のよう
前回は、RVMのインストール、RVMで Rubyをインストールして使う方法を紹介しました。今回は、以下の3つを紹介していきます。 RVMを最新版にアップデートする RVMを使って複数のバージョンのRubyでスクリプトを実行する GemSetsについて RVMを最新版にアップデートする RVMは、Bugfixや機能追加が毎日行なわれている活発なプロジェクトです。開発者の方は、なるべく最新のバージョンを使うことを推奨しています。ここでは、RVMを最新版にする方法をみてみましょう。 "rvm update --head"を使用すると開発リポジトリであるhttp://github.com/wayneeseguin/rvmから最新版を取得します。githubから取得するため、環境にgitがインストールされている必要があります。 % rvm update --head アップデートされたRVMを使うた
Developer how toBug report Redmine Ruby Ruby 1.8 Ruby 1.9 Tracking Ruby... Ruby project at Rubyforge Debian FreeBSD NetBSD Fedora MacPorts coding style indent 4 for C 2 for Ruby tab/space Do not use TABs in ruby codes [ruby-dev:19388] Use TAB instead of 8 SPs in C. (Emacs's default style) Line breaks K&R style for 1.8, ANSI C style for 1.9 coding style for Ruby codes [ruby-dev:19388] Do not use TA
組み込みクラス一覧 A〜E ARGF.class (912) Array (2216) BasicObject (168) Bignum (99) Binding (86) Class (88) Complex (576) Data (54) Dir (590) Encoding (2676) Encoding::Converter (276) Encoding::InvalidByteSequenceError (84) Encoding::UndefinedConversionError (60) Enumerator (212) Enumerator::ArithmeticSequence (98) Enumerator::Chain (42) Enumerator::Lazy (429) Enumerator::Yielder (30) Errno::EXXX (36) Excep
http://docs.google.com/present/view?id=dchb3tb2_137ddk9gfhb ただ立っているだけでも感じられるその大物感。不合理なことを言おうと理不尽なことをしようと、勝手に周囲が深読みをしてカリスマは高まる一方。もはやチートとしか言いようのないポジティブスパイラル。それが「カリスマ」。日本Ruby界だけを考えても、そういう存在が何人も思いつくでしょう。 自分もそういう存在になりたい!そう思ったことが、誰しも一度はあるはずです。より具体的に言えば、弾言したい!ガツンしたい!そう思い眠れぬ夜を過ごしたことが、きっと幾夜もあるでしょう。 でも・・・。多くの人は考えます。でも、カリスマって生まれつきのものでしょう?努力して身につくようなものじゃないよね? いいえ、安心してください。カリスマは習得可能な技術なのです。 ということで、もうひとつの「カリスマ入
RubyStationとは RubyにはたくさんのWebフレームワークがあります。Rails, Sinatra, Merb, Ramaze, などなど。これらを使って、Webアプリを作ったことがあるかも 知れません。では、デスクトップアプリが作れることは ご存じでしたか? Railsを使ってデスクトップアプリを作るには、 以下のようにします。 Railsで普通にアプリケーションを作ります。 ファイルをzipに固めます。 ユーザはそれをダウンロードし、展開して、./script/server を実行します。 localhost:3000でアプリケーションが起動しました。 ほら、どう見てもデスクトップアプリでしょう?:-) RubyStationは、そんなアプリケーションを管理するためのソフトウェア です。各アプリにポート番号を自動で割り当てるので、リンクを クリックするだけでアプリを起動する
What's RubyStation? Ruby has many awesome Web frameworks - Rails, Sinatra, Merb, Ramaze, etc. Maybe you have written some Web applications with them. Then, how about desktop applications? You can create a desktop application with Rails by: Write an app with Rails. ./script/server will start server on localhost, i.e. it does work without the Internet. Pack the files into a gem file. Users install
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く