タグ

ブックマーク / route477.net (22)

  • Route 477(2013-06-26)

    ■ [javascript] JS MVCフレームワークについてちょっと調べた (2013夏) JS MVC戦国時代ってそういえばどうなったんだろう、と思いつついくつかのライブラリを調べてみたところ、意外とそれぞれキャラが違うことが分かった。 Backbone.js 1.0.0 いまのところ一番人気らしい 意外と小さい。ソースが1ファイルしかない。 Model、Collection、Viewという、自作してもこういう感じになりそうだなぁという構成。(Router/HistoryはURLいじらないなら使う必要はないので、実質この3つだけ) 薄いフレームワークなので、他のライブラリと組み合わせるのは簡単そう。 デメリット:以下のフレームワークが持っているdata bindingのような高度な機能はないので、相対的にコード量が増える。これは小さなアプリでもそこそこ行数を書かないといけないというこ

    Route 477(2013-06-26)
  • Route 477(2010-01-29)

    ■ [ruby] Rackミドルウェアのコンテスト、優勝者が決定 Rackミドルウェアのコンテスト「CodeRack」の結果発表があったようです。 http://coderack.org/ では、上位3位の発表です! 3位:RackProctitle Rubyプロセスのタイトルに、処理中のURLや処理時間を入れることで、時間がかかっているプロセスをpsで見つけやすくする。 2位:Rack::Superlogger Rackレベルでログを取る。いろいろなフレームワークを使い分けているときに、全部同じログ形式になるので、解析しやすい。 1位:Rack::GeoIPCountry アクセス元のIPから国名を推測し、env['X_GEOIP_COUNTRY'] に入れてくれる。 特別賞(?) : RedisRequestLimiter Redis(KVS)を使って、短時間に大量にアクセスしてくるユ

    Route 477(2010-01-29)
  • Rubyのpデバッグは「p x: x」のようにすると良い

    ■ [ruby] Rubyのpデバッグは「p x: x」のようにすると良い Rubyプログラムのデバッグ中はpメソッドで変数の値を表示したりしますが、普通に「p x」とか書くと、画面に 3 とだけ表示されたりして、何が3なのか分からなくなってデバッグが進まない…みたいなことありますよね。 そこで、Ruby 1.9から導入されたハッシュの記法を使って p x: x みたいに書くと、これは p({:x => x}) と同じ意味なので、デバッグ出力が {:x => 3} みたいになって、ああ変数xに3が入ってるんだなと分かりやすくなります(かつタイプ数もそれほど増えない)。*1 変数が複数のときは p x: x, y: y みたいにします。

    Rubyのpデバッグは「p x: x」のようにすると良い
  • Route 477 - sprocketsのJavaScriptテンプレートサポート

    ■ [rails] Rails3.1を使ってみた、あとRails 3.2とRails 4について TL;DR: Rails3.1ではjs/cssが一級市民になったよ、あともうRails4の予定まであるらしいけどRails3ほどのbig changeではないらしいんで安心したよ BiwaScheme BlackboardをRails 3.1で実装したので、社内勉強会でその話をしました。 情報源 RailsGuides ( http://guides.rubyonrails.org/ ) Rails3のことはここ読めばだいたい分かる Riding Rails ( http://weblog.rubyonrails.org/ ) Rails公式ニュース Rails 3.0 (おさらい) Big rewrite Rails2とMerbが合体してRails3になった 設計が見直され、よりすっきりした

    Route 477 - sprocketsのJavaScriptテンプレートサポート
  • Vim覚え書き

    GitHubindexHello source: index.md View on github | Report issue Generated by middleman 3.1.6. Powered by Ruby 2.2.2.

  • Route 477(2011-04-21)

    ■ [english] コミットログを英語で書くためのテンプレ githubに上げるコードは、可能なら英語でコミットログを書いたほうが良いです。なんか面白そうなプロジェクト見つけたとして、コミットログがロシア語とかアラビア語だったら困るよねという話です。 英語とか難しいと思うかも知れないですが、だいたい何か追加したか直したか変更したかのどれかなのでわりとパターン化できます。読めない言語で書かれている場合の可読性=0なので、英単語を適当に並べるだけで可読性が無限大パーセント改善されます。やった! 僕がよく使うのはこんな感じです(英語的に正しいかは知りません)。 new: xx new: added (some) xx fix: xx did not work fix: xx was wrong fix: xx should (not) yy changed xx to yy removed

    Route 477(2011-04-21)
  • Route 477(2011-01-19)

    ■ [ruby] open-uriでUTF-8でないページを取得するときの注意 Ruby標準添付のopen-uriライブラリを使うと、HTMLを簡単に取得することができる。 irb> require 'open-uri' irb> url = "http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/43008" irb> html = open(url).read このとき、文字コードがUTF-8でないことが分かっているなら、第二引数でエンコーディング名を指定しておいた方が良いだろう。(あ、ここからはRuby 1.9の話です。) irb> html = open(url, "r:euc-jp").read 読んだあとは、String#encodeでUTF-8に変換することができる。 irb> html = open(url,

    Route 477(2011-01-19)
  • Route 477(2010-12-01)

    ■ [ruby][rails] Hamlを越えるシンプルさを実現したテンプレートエンジン、Slim 今日から始まるRuby Advent Calendar jp: 2010参加記事です。 http://slim-lang.com/ Rails界隈ではHTML(ERB)よりシンプルなテンプレートエンジンとしてHamlが人気ですが、SlimはHamlからさらに記号を減らしたようなテンプレートエンジンです。 ! doctype html html head title Hello Slim body h1 Hello, Slim! div id="main" | これはSlimのサンプルです。 | シンプルでしょう? p.note | Hamlのように「#」や「.」を使うこともできます。 Rails 3で使う場合、 gem 'slim', :require => 'slim/rails' と書く

    Route 477(2010-12-01)
  • Route 477(2010-10-24)

    ■ [ruby][book] 無料から始められるRailsのホスティングサービス「Heroku」の記事をWEB+DBに書きました もう「Railsを動かすサーバがない」とは言わせない!でおなじみの(嘘) Herokuの記事を、WEB+DB PRESSのRuby連載 「Ruby in your hands」第3回として書きました。Herokuは、 Railsが動いて、 無料で始められて、 サーバ管理が一切不要な Rubyのためのクラウド環境です。 Rails3でサンプルアプリを作りながら、cronの使い方とかメールの送り方とかTipsとかアドオン紹介とか、Herokuでできることは一通り紹介した盛り沢山記事になってます。 ぜひ屋(or Amazon)でチェックしてみて下さい。 4774143898 Twitterを見てると「Herokuと聞いて購入しました」という方がおられて嬉しい限り。

    Route 477(2010-10-24)
  • Route 477(2009-10-09)

    githubでgemを作れるようになったときは「なんて簡単なんだ!」と思ったけれど、 gemcutterはそれよりさらに簡単(gem push *.gemだけ)なんですね。しかもgithubはgemspecをpushしてから gemがインストールできるようになるまで15分前後の遅延があったけど、gemcutterはそれもなし。 また、githubのように「作者名-プロジェクト名」とprefixが付いたりしないのも良いところです。 が、forkしたプロジェクトのgemを配布する場合など、prefixが付いてほしいケースもたまにあるんですよね。 現在、gemcutterのwikiや MLで そのようなケースをどう扱うかの議論が行われているようなので、いずれそれも可能になるでしょう。 37 http://reader.livedoor.com/reader/ 14 http://search.d

    Route 477(2009-10-09)
  • Route 477 - geminaboxで「俺専用gem配布サーバ」を立てる

    ■ [ruby] geminaboxで「俺専用gem配布サーバ」を立てる http://github.com/cwninja/geminabox via http://twitter.com/qrush/status/18707703461 gem配布サーバといえばrubygems.orgなわけだけど、クローズドな環境でプライベートなRubyライブラリをgemで管理したいとかいうとき には、自前でgemサーバを立てると便利かも知れない。 インストール $ gem install geminabox サーバの起動 以下のようなconfig.ruを書いて「rackup config.ru -p 9292」とかするとgemサーバが起動する。 require "rubygems" require "geminabox" Geminabox.data = "/var/geminabox-data"

    Route 477 - geminaboxで「俺専用gem配布サーバ」を立てる
  • Route 477(2010-06-05)

    ■ [ruby] Rubyの新リファレンスマニュアルをコマンドラインから簡単に引くためのツールを書いた Rubyリファレンスマニュアル刷新計画(通称るりま)のリファレンスを、コマンドラインから簡単に引けるようにするgemを作りました。 多くの人はWeb版か、chm版を使ってると思いますが、同じものがコマンドラインから見れるようになります。 インストール方法とかはgithubに書いてますが、 $ sudo gem install myrurema $ rurema --init $ rurema Array#length Array#length --- length -> Integer --- size -> Integer 配列の長さを返します。配列が空のときは 0 を返します。 p [1, nil, 3, nil].size #=> 4 という感じです。初回のみ、データベースを構築す

    Route 477(2010-06-05)
  • Route 477(2010-02-21)

    ■ [rails] Rails3に関するさまざまないろいろ Rails勉強会@東京です(講師:松田さん) 準備 $ gem install rails3b $ gem install rails --pre $ gem update プロジェクト作る $ rails books --edge Gemfileに、依存ライブラリ(gem)の情報を書くように。Bundler --edgeなので、「gem "rails", :git => "git://github.com/rails/rails.git"」になっている script/*がscript/railsに 単にrailsでもいい(カレントのscript/railsが呼ばれる) rails_head/railties/bin/railsを参照 rails generate あるいはrails g config/environment.rb

    Route 477(2010-02-21)
  • Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介

    Perl基礎文法最速マスターをだいたいそのまま、Rubyに置き換えてみました。 他の言語をある程度知っている人はこれを読めばRubyの基礎をマスターしてRubyを書くことができるようになる…かも知れません。無保証です。 参考: オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.9.2) オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.8.7) ■ 1. 基礎 インタラクティブRuby (irb) irbを使うと、Rubyのプログラムを簡単に練習することができます。 /Users/yhara $ irb irb(main):001:0> puts "hello" hello => nil irb(main):002:0> 1 + 1 => 2 以下の説明は、irbを起動して、自分で試しながら読むと習得が早いと思います。 表示 (print,

    Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介
  • Route 477 - Ruby Advent Calendar jp: 2009 まとめ

    ■ [ruby] irbで自動で再requireしたい irbでrequire 'foo.rb'する エディタでfoo.rbを書き換える irbでプロンプトを表示するタイミングで、foo.rbが書き換わってたらload foo.rbする みたいな仕組みを作ると試行錯誤がやりやすくて良さそうな気がした。 ■ [ruby][event] Ruby Advent Calendar jp: 2009 まとめ 無事終了しました。参加された皆さんと、読んでくれた皆さんに感謝。 Ruby Advent Calendar jp: 2009 : ATND いま数えたら、全記事トータルで438ブックマークですよ。凄いね。 どんな記事があったかおさらいしてみましょう。 Day 1 - Standards: Write Implementation and Spec on the Same File [Test]

    Route 477 - Ruby Advent Calendar jp: 2009 まとめ
  • Route 477(2009-11-10)

    ■ [ruby] 大規模Railsサイトのための新しいHTTPサーバ、Unicorn githubの中の人が、ブログで「Unicorn使い始めて一ヶ月くらい経つけどいい感じだよ」と書いています。 適当に要点だけ拾ってみました。 Unicornって何よ? UnicornはRubyのためのHTTPサーバ。MongrelやThinのようなものだけど、全く違う設計と思想を持っている ありがちな構成 [mongrel] [mongrel] .. [nginx] -> [haproxy] -> [mongrel] [mongrel] .. [mongrel] [mongrel] .. 問題点: あるactionの処理に60秒以上かかったとき、Mongrelが当該スレッドをkillしようとして固まることがある メモリが一定量を超えたときMongrelを再起動するのが遅い。 デプロイ時に9個のmongre

    Route 477(2009-11-10)
  • Route 477(2009-07-29)

    ■ [ruby] RubyからJavaScriptのテストも行うためのライブラリあれこれ RailsなどのWebフレームワークでは、「rake test」一発でWebアプリのテストが走ってくれて楽ちんなわけですが、 JavaScriptのテストは手作業でやってたりしませんか? 「rake test」でJavaScriptのテストもやってしまうためのライブラリがいろいろ出てきてるようなので、列挙してみました。 ブラウザを使うもの 実際にブラウザを起動し、それをRubyからコントロールすることでWebアプリのテストを行う。 Selenium 有名ですね。 調べてないんだけど、Rubyからも使えるし、JavaScriptを操作したりもできるんじゃないですかね(投げやり)。レポート求む。 Watir (RubyForge) #どっちが公式サイトなんだろう Rubyからブラウザを起動し、操作する。

    Route 477(2009-07-29)
  • Route 477(2009-06-09)

    ■ [ruby] Rubyのテスト環境大戦争 おまいらは当にテストが好きだな!というわけで、Rubyのテスト関係のライブラリを並べてみた。 テストフレームワーク Test::Unit Ruby標準添付のユニットテスト用フレームワーク。 RSpec DSLを使う、「BDD」という概念を流行らしたユニットテスト用フレームワーク。 Cucumber 自然言語を使って、ブラックボックステストを記述する。RSpecの「Stories」と呼ばれていた機能が独立した。 あとはShouldaとかbaconとかいろいろありますけども。 モック・スタブライブラリ モック=あるオブジェクトに期待したメッセージが飛ぶかどうかテストするためのオブジェクト、 スタブ=ネットワークが絡むとか、実際のオブジェクトが使えない場合に使う偽オブジェクト。 と思ってるんですけどどうなんですかね(more: モックとスタブの違い

    Route 477(2009-06-09)
  • Route 477(2007-12-01)

    ■ [javascript] JSONをevalするときは括弧で囲まないといけないらしい? eval("{}") これはundefinedだが eval("({})") これは Object のインスタンスを返す。 JSONをevalするときは result = eval("("+json+")"); とするのがセオリーなのかな?(prototype.jsはそうなっている) ■ [ruby][scheme] S式をRubyで手軽に生成する ちょっと気の利いたWebAPIを作ったとき、フォーマットはJSONかXMLが代表的なんだけど、 ことSchemeから使うのならS式の方が使いやすいのは容易に想像できると思われます。 が、JSONは gem install json すれば JSON.generate(obj) で手軽に生成できるのに対し、 S式はRubyから手軽に生成する方法がありません

    Route 477(2007-12-01)
  • Rubyの意外な機能とか

    ■ [ruby] Rubyの意外な機能とか いま「プログラミングRuby」を読んでるんだけど、知らんかったことが多いなー。 4274066428 多重代入は括弧でグルーピングできる irb(main):010:0> b, (c, d), e = [1, [2, 3], 4] => [1, [2, 3], 4] irb(main):011:0> [b, c, d, e] => [1, 2, 3, 4] destructuring-bindっぽい。 notが警告を出すことがある irb(main):012:0> not "foo" (irb):12: warning: string literal in condition => false irb(main):013:0> not /foo/ (irb):13: warning: regex literal in condition => t

    Rubyの意外な機能とか