![Amazon.co.jp: 初めてのRuby: Yugui: 本](https://cdn-ak-scissors.b.st-hatena.com/image/square/ce5193ec8d2919d27d0918fd7f3cf02159d63f27/height=288;version=1;width=512/https%3A%2F%2Fm.media-amazon.com%2Fimages%2FI%2F51BI%2BoUtJCL._SL500_.jpg)
Rubyではメソッドの引数にハッシュを使う場合があります。 例えば、以下はwebrickでHTTPサーバを作る場合です。 s = HTTPServer.new( :Port => 2000, :DocumentRoot => Dir::pwd + "/htdocs" ) 引数にハッシュを使うメリットとして 引数の順番が関係なくなり(順番を覚えなくて良い)、 見た目にも用途が明らかとなるため メソッドを使う場合やコードを読み返す場合に有利っちゅう訳ですね。 用途限定ですが、それをもう少し改善できる ネタを思いついたので作ってみました。 具体的にどういうものかって言いますと 現在、作っているWavクラス(Wavファイルを読み書きする)を 使って説明します。 # 単位クラスを仕込む class Freq def initialize( freq ) ; @freq = freq ; end de
Rails Web アプリケーションをもっと速く こんなストーリーを考えてみます。 あなたは、Railsを学び、アプリケーションを作成し、サービスをインターネットに公開しました。しばらくすると、最初のユーザができます。あなたはとてもハッピーです。そうするうちにユーザが二人増え、十人になり、百人になりました。あなたはハッピーです、ユーザーもみんなハッピーです。 でも、ユーザが千人になり、一万人になり…。といった場合、何が起こるでしょうか? そこで起こるのはアプリケーションへの同時接続数増加によるサービス提供速度の低下です。ユーザ数が一万人を越えてしまうWebサーバに特有の問題は、C10K問題として知られています。 それでなくとも、残念ながらRailsは同様他種フレームワークと比べて、単位時間あたりの処理量が低いことで知られています。その理由は、RailsではRubyが遅くて、NativeTh
JavascriptやPHPの配列や関数などで 配列の最初の要素がary[0]に… - 人力検索はてな C言語、Ruby、Lispなど多くの言語では配列は0起点である。つまり、先頭の要素のインデックスは0である。 なぜそうなっているか‥それは実装上の都合であったり歴史的理由だったりする。 C言語の配列は「連続したメモリ空間の、先頭アドレス」で表現している。そして、オフセットを進めることでそれぞれの要素にアクセスしている。だから配列の最初の要素を「0番目」とすることでアドレス計算が楽になるわけだ。 多くの言語はC言語の文法を拝借しているし、C言語は十分普及しているから、「C言語にあわせて配列は0起点でいいや」となっていると推測している。コンピュータの世界じゃ歴史的理由ってのがけっこう多い。 そういうわけでプログラマが配列の要素を数えるとき、勝手に「0番目」→「1番目」→「2番目」と数えている
This domain may be for sale!
JavaScript - サーバー間で双方向のRPC通信を行う技術は「Aerial」(エアリアル)という名前になりました*1。アイディアを出していただいた皆様、ありがとうございましたm(_ _)m Aerialは、通信にFlashを使い、JavaScriptとサーバープログラムとの間で双方向のRPC呼び出しを行う技術です。つまり、サーバー側からJavaScriptのメソッドを呼び出したり、逆にJavaScriptからサーバー側のプログラムを呼び出したりします。 サーバーから直接JavaScriptのコードを呼び出したり、逆にJavaScriptからサーバー側のメソッドを呼び出したりできるので、通信の内容を意識する必要がなく、バグの混入を抑えます。RPC成分入り! ライブラリを開発するときも、HTTPやブラウザ間の実装の違いを意識する必要も無く、ごく普通のTCP接続で通信を行うので、Come
数日前、読者のかたからメールをいただきました。「rubygemsが1.1.1になっており、記事通りにしてもインストールできない」とのことでした。前の記事さくらのレンタルサーバーにRuby on Railsをインストールする方法を書いてから、9箇月たちまして、Ruby on Railsもrubygemsも新しいバージョンがでています。前の記事を書いたときと状況がかわっているので、今のバージョンでのインストールの方法を新たにまとめてみました。 インストールするのは次のものです。 rubygems 1.1.1 Ruby on Rails 2.0.2 例によって、rubyは標準のものを使用します。最新版は1.8.7が現在preview2 ですが、標準でインストールされているのは1.8.5です。確認しておきます。 % ruby --version ruby 1.8.5 (2006-08-25) [i
第3回Rails2.0で作るRESTfulアプリケーション(後編) 鎌田達哉(かまだたつや) 2008-05-23
tapかわいいよtap - http://rubikitch.com/に移転しました 俺も含めたinject厨は、Ruby 1.8.7からtapへ鞍替えしたほうがいいかもしれない。 たとえば、簡単な例題として、1〜6のうちで偶数の二乗を集めるコードを示そう。 (1..6).select{|x| x % 2 == 0}.map{|x| x*x} # => [4, 16, 36] (1..6).inject([]){|a,x| a << x*x if x % 2 == 0; a} # => [4, 16, 36] [].tap{|a| (1..6).each{|x| a << x*x if x % 2 == 0}} # => [4, 16, 36] 一番上がselectとmapを使った関数プログラミング的な方法。短くて明確だけど強いていえば余計なオブジェクトが生成される上、ループが2回になる欠
Listen into this 8th Light University presentation where Martin Gaston talks about the pros and cons of project management methodologies, and what to consider when...more. Listen into this 8th Light University presentation where Curtis Maves explains the critical path method using a carpentry example. The critical path method is a...more.
Subject: [ruby-list:44827] 計算するハッシュ From: "5.5" <5.5@ j g j Date: Mon, 14 Apr 2008 23:27:45 +0900 5.5 です。こんなこと考えました。 Ruby の Hash#new でブロックを与えるのは, Hash.new{|hash, key| hash[key]=[]} のように,「デフォルト値を設定したいけど,同一オブジェクトでは困る」 という場合が多いと思います。 しかし,ブロックをもっと積極的に使えば,たとえば以下のように i 番目 の素数を返すハッシュを定義することができます。 PRIME_NUMBERS=Hash.new do |hash, index| if index<3 hash.update({1=>2, 2=>3}) hash[index] else i_max=hash.size
Railsで一番めんどくさかったアプリの公開を、Apache httpdが動いているサーバに、普通にアップロードするだけで行える様にするモジュール、mod_railsがリリースされました。 いままで似たようなものにmod_rubyがあったのですが、ずっとメンテナンスされていない上に、構造的にRailsには向かないようになっていたので、Phusion社が新しく作ったものです。 日本語での紹介はmoongiftさんの記事をご覧ください。インストール方法や使い方は、こちらの記事を参考にしてください。 このモジュールの評価が高まれば、レンタルサーバでもRailsサポートをしてくれる所が増えるんじゃないかと期待してます。 早速、自分のサーバ(EC2)に入れてみた所、特に問題もなくあっさり動きました。 ただ、Capistranoを使っている場合、mongrelの時のままだと、サーバの起動などで失敗する
RubyCocoaというライブラリがある。これを使うと、RubyからCocoa、つまりMac OSXが操作できるようになる。RubyからMac OSXを操作すると何ができるだろうかと考えていたのだが、その先兵とも言えるアプリケーションが登場した。 iTunesRailsの画面。音楽再生中 Rubyから操作ができるということはそう、Railsからも操作ができるということなのだ。 今回紹介するオープンソース・ソフトウェアはiTunesRails、RailsによるiTunesフロントエンドだ。 iTunesRailsを使えば、iTunesがインストールされていないWindowsやLinuxからでもブラウザベースでiTunesを再生、停止することができるようになる。もちろん音はMac OSX側から流れるが、メディアサーバとしての利用と考えれば良いだろう。 ライブラリの一覧 iTunesRailsを
# カーソルを下へ移動。ウィンドウの下端より下へカーソルが移動 # しようとした場合はスクロール def cursor_down if @cursor_y >= (@window.maxy-1) scroll_down # バグ修正 elsif @cursor_y >= (@data.length-1) # 文章最大行数より下にはカーソルが動かないように else @cursor_y += 1 end ## 中略 ## end 編集モードの追加 前回ではカーソルを動かせるコマンドモード用にHandlerクラスを作りましたが、今回は文字を入力する編集モード用にEditHandlerクラスを追加することにします。編集モードとコマンドモードの切り替えはESCキーで行うようにします。文字の削除は[x]で行うようにします。 require "editwind" class
Leopardの登場以降、Mac OS Xではスクリプティング言語環境のサポートが活発だ。それは、単に動作環境を標準インストールすることにとどまらず、CocoaやQuartzといった、Mac OS Xネイティブのフレームワークにアクセスする手段が提供されることで、デスクトップアプリケーションを作るための新しい道という位置づけがなされている。Rubyに関するものとしては、RubyからCocoaを含む様々なフレームワークへのブリッジを提供する、RubyCocoaが標準でインストールされている。 そして去る2月28日に、新しいRuby環境が登場した。MacRuby である。MacRubyの動機として挙げられているのは、RubyCocoaが抱えている問題を解決する、というものだ。RubyからCocoaへアクセスするという目的はRubyCocoaと同じものだが、その実装のアプローチはかなりユニークで
Leopardの登場以降、Mac OS Xではスクリプティング言語環境のサポートが活発だ。それは、単に動作環境を標準インストールすることにとどまらず、CocoaやQuartzといった、Mac OS Xネイティブのフレームワークにアクセスする手段が提供されることで、デスクトップアプリケーションを作るための新しい道という位置づけがなされている。Rubyに関するものとしては、RubyからCocoaを含む様々なフレームワークへのブリッジを提供する、RubyCocoaが標準でインストールされている。 そして去る2月28日に、新しいRuby環境が登場した。MacRuby である。MacRubyの動機として挙げられているのは、RubyCocoaが抱えている問題を解決する、というものだ。RubyからCocoaへアクセスするという目的はRubyCocoaと同じものだが、その実装のアプローチはかなりユニークで
Aptanaは11日、Ruby on Rails開発用Eclipseプラグイン「RadRails 1.0」をリリースした。 RadRailsを使うためにはEclipseにAptanaプラグインをインストールする必要がある。Aptanaプラグイン、RadRailsプラグインそれぞれ無償で入手でき、Eclipseメニューバー「ヘルプ」-「ソフトウェアの更新」-「検索してインストール」-「新規フィーチャーの検索」より、以下のURLを登録することでダウンロードできる。 http://update.aptana.com/install/3.2/ http://update.aptana.com/update/rails/3.2/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く