サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
blog.naohaida.com
Ruby には、Rails 以外にも様々な Web Application フレームワークがあります。 今回はその内のひとつ、 Merb を試してみました。Merb とは? Merb (Mongrel + Erb) は Ruby で書かれた MVC フレームワークです。 「規約と DRY」の Rails は、何でもできる一方で、コアが必要以上に大きいフレームワークとなっています。このため、あるプロジェクトでは Rails は冗長すぎる可能性もあります。 一方、Merb が目指したのは「疑わしきは入れず」。 コアはあくまでシンプルに。必要なものを必要に応じて追加していくイメージのフレームワークです。 この点で、Merb の本家サイトではその特徴として、 FasterLighterMore Agileを謳っています。Welcome!以下では、Merb 0.9.4 及び、ランタイムとして Rub
パーティショニンングによるデータベースのパフォーマンスチューニングを勉強した。 パーティショニングが必要な理由 MySQL では DB 上のデータ量が増加するとパフォーマンスが低下する。 以下が原因。 1. MySQL では 1度アクセスされたデータやインデックスは効率化のためにバッファにキャッシュされる。 2. データ量が増大すると、メモリ上のキャッシュサイズでは不足。 3. ディスク I/O が増大し、パフォーマンス低下へ。 テーブルや DB を分割(パーティショニング)し、アクセスされるデータがメモリ上に収まる状態をキープすることで対策する。 パーティショニングは 2 アプローチが考えられる。 1. アプリケーション側で実装 2. MySQL のサポート機能を用いて実装 アプリケーション側でのパーティショニング実装 レプリケーションは参照系の負荷分散にはなるが更新系の負荷分散の解決に
Rails アプリケーションを作っていると、rake db:migrate というコマンドをよく叩きます。しかし、Rake についてよく理解していないので調査してみました。 Rake とは?Rake は Ruby 版 makeです。Rake でできることメンバーのリストを取得して、Email を送る毎日のバッチ処理古いキャッシュを消去し生成データベースやサブバージョンのバックアップデータ操作のスクリプトを走らせるタスクを登録するゆで卵を食べるために、以下の 3 つのタスクを考えてみます。卵を買う水を沸騰させるゆで卵をゆでるこれらのタスクを Rake ファイルを使って呼出してみます。task :purchaseEggs do puts 'Purchase eggs.' end task :boilWater do puts 'Boil the water.' end task :makeBo
品質向上のために、Ruby のテスト技法を勉強しています。 理解を深めるためにブログを書くメソッド。 以下では、Ruby のユニットテストを行うクラス Test::Unit を利用したテスト技法について説明します。テストされるクラスを設定簡単なテストの例を見てみます。まず、テスト対象のクラスを設定します。class Foo def foo return 'foo' end def bar return 'bar' end endテストコードを書く次に上記のクラスのメソッドをテストするクラスを以下のように書きます。require 'test/unit' class FooTest < Test::Unit::TestCase # 各テストメソッドが呼ばれる前に呼ばれるメソッド def setup puts '新しいテストを開始します。' @obj = Foo.new end # 各テストメソ
Test::Unit が標準だと思っていたら、まさか RSpec なるものがあるとは。。 ということで、RSpec について学習しています。 参考サイト: スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編) RSpec -1.0.8RSpecとは??RSpec は Ruby で書かれたコードの振舞いを実行可能な形式で記述するドメイン特化言語 (Domain Specific Language: DSL) を提供するフレームワークです。 RSpec における思想については上記参考サイトに書いてありますのでそちらを参考にしてもらうとして、実際にテストコードを書いてみます。 インストールgem 経由でインストールできます。# gem install rpsecRSpec の基本コマンドは、spec です。以下のコマンドで RSpec のバージョン#
JavaScript における高階プログラミング という記事を読みました。 高階プログラミングとは高階関数を使ったプログラミングのことです。高階関数とは?高階関数について、以下のような記述があります。プログラミング言語において、関数を引数にしたり、あるいは関数を戻り値とするような関数の事である。引数や戻り値の関数もまた高階関数となり得る。これは主に関数型言語やその背景理論であるラムダ計算において多用される。数学でも同様の概念はあり、汎関数と呼ばれる。Wikipedia -- 高階関数 関数を引数にしたり、関数を戻り値とする手法って、Ruby や JavaScript では当たり前に使います。 例えば、クロージャを使うって関数を返り値として使う例を見てみます。function multiple(a){ return function(num){ return a * num; } } //
Javascript で DOM を操作する際にはページ内の DOM 要素がロードされている必要がある。 このとき問題になるのは、DOM がロードされたタイミングをどのように検知するか。DOM がロードされたタイミングで実行する関数の指定方法。ということになる。 まず、次のような html を考える。 <html> <head> <title></title> <script> // ページヘッダの読み込み時刻を記録 var start = new Date(); </script> </head> <body> <!--ロードに10秒かかる画像を指定--> <img src="http://example.com/sleep10" /> </body> </html> ここで、 image 要素には 10 秒後に結果を返すスクリプトを指定している。 window.onload を使い、ペ
日本では mixi 、海の向こうでは Facebook と、Social Networking はまさにピークを迎えているようにも思える。 一方で開発者視点で見ると発展の余地があり、Google を中心とした OpenSocial という API 群が公開された。 OpenSocial とは何か OpenSocial について、Google code で公開されている OpenSocial のドキュメント を見ていく。API 群の見出しは以下である。 The web is better when it's social. これを踏まえて、ドキュメントを読んでいく。 The web is more interesting when you can build apps that easily interact with your friends and colleagues. But wit
oAuth という認証・認可のプロトコルに興味があり、調査している。 以下で認証と認可という言葉を使うので、まずここで整理する。 認証 (Authentication) と認可 (Authorization) は違う。 認証(Authentication) そのユーザーが自分の物であると主張するIDに対して、そのIDが確かにそのユーザーの物であるということを保証すること 認可(Authorization) 認証されたIDを受け入れ、サービスに対して適切な権限を与えること である。 oAuth というプロトコルをマッシュアップサイト作成時に使ってみることを考える。 プレイヤーは以下の 4種類。 1. End User リソース所有者。Consumer にリソースを提供 2. Protected Resource End User が Consumer に公開するリソース 3. Consume
このページを最初にブックマークしてみませんか?
『Nao Haida's weblog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く