2011-01-01から1年間の記事一覧

TDDBC2.1へ参加してきました

2011/09/24に2回目の参加となるTDDBCへ参加してきました。今回も非常に得るものの多い良い会でした。感想などを含め参加して思った事をつらつらと。 TDDに対する悶々とした悩み TDDをそれなりに大規模で複数人な開発の中で適用しようとすると、上流設計から…

will_paginateでAjax対応 Rails3.0系

基本は以下を参考にする。 http://techracho.jp/morimorihoge/2011_06_29/3859以下、上記だけではハマったことをメモ。 RJSで Element.update が無いというエラー発生 will_pagenate のリンクをクリックすると、ブラウザのダイアログでエラーが出て驚く。 調…

Modelのバージョン管理を行う(acts_as_versioned)

やりたいのはあるモデルを更新した際に更新前の状態を自動的にバックアップしてくれる機能。 いろいろあると思うけど、acts_as_versioned プラグインを使ってみた。環境:Rails3.0系 インストール インストールはいつもの感じで以下 $ gem install acts_as_v…

Rails tips vol2

最近Railsを触っていていろいろ知ったことをメモ。 コントローラから部分テンプレートのみを render したい場合 状況としては、Ajaxのレスポンスとしてある程度複雑なhtmlをテンプレートから生成し、かつ layout の application.html.erb を含めたくない場合…

Rails tips vol1

最近 Rails をいじっていていろいろ書き留めたメモ。変なこと書いてたら突っ込んであげてください。 設定値はどこに書くべきか? とりあえずenvironment.rb に書いてみたらコードからもテストからも見えた。 きちっとした人はAppConfigに書くらしい。たしか…

scopeとクラスメソッドの挙動の違い

これまで model で定義する scopeとクラスメソッドの違いについてあまりよくわからないまま使っていたんだけど、明確な挙動の違いに遭遇したのでメモしておく例えば以下のような scopeを作りたいとする scope :all_counts_by_name, lambda{|name| counts = {…

rspec で guard を使う

guard がとても便利なので使う時のメモをしとく インストールから実行 1) gem install bundler 2) gem install guard-rspec 3) gem install growl 4) guard init rspec -- Guardfileの雛形作成 5) Guardfileを編集 6) guard start -- Guardの起動 Rails の場…

TDDBC2.0に参加してきた

TDDBC2.0(札幌)に参加してきた。僕にとっては初めてのTDDBCだったので正直ついて行けるかかなり心配な中での参加だった。 演習ではRubyを選択し、@ayuminさん、@sandinistさんと組ませていただいた。お二人ともRubyはもちろん vim の使い方や Github にも慣…

RubyのCGIプログラムがWindowsで激重な件の対応

症状 Linux上でサクサク動いていた Ruby の CGI プログラムを Windows に移植するとレスポンスがめちゃくちゃ遅くなってしまった。いろいろ調べると require 時のI/O処理が重いらしい。 I/O自体を高速化する方法などを調べたがヒットしなかった。さすがに重…

Quick JUnit を使う

slim3でテストを書いてみようとしたけど、JUnit の実行が面倒なのでショートカットで簡単に実行できる方法が無いか探してみた。Quick JUnitというプラグインがあるとのことなので早速試してみる。 Quick JUnit のインストール 環境 Eclipse version: Helios …

メール機能を実装してみる

GAE

GAEで作成してみている「かんばんりすと」の内容をメールで自分の携帯に送ってみたくなった。どうしてWebアプリなのにわざわざこんなことがしたいのかというと、自分は携帯のパケット定額プランには入っていなくて(節約のため au の Eプラン)、リストをチェ…

ビジネスロジックをどこに書くか

Rails をかじっていくと、主に view と controller がごちゃごちゃしてくる。あまり考えずに作っていくと以下のような状態になっちゃった view: 様々な action からの遷移で表示したいものを :action で判定したりするコードが増える controller: model から…

lambda でクロージャを使ってみる

いくつかの関数を配列にまとめて入れてまとめて実行したくなったので初めて lambda を使ってみた。 func1 と func2 を funcs 配列に入れて each でまとめて呼びたいケース def func1( arg ) lambda { # arg を使っていろいろ if なんちゃらエラーチェック re…

rspec で rr を使ってみた

インストール # gem install rr 初期設定 spec ファイルの先頭に以下を追加 RSpec.configure do |config| config.mock_with :rr end mock の使い方 最後の {} は戻り値 #テスト対象。Dir.glob の引数を評価したい。同時に戻り値も [] で返したい Dir.glob(".…

Rails3の form_for で Ajax をやってみた

一番シンプルっぽいパターンをメモ。とりあえず Ajax通信できた、というレベル。 通常の Ajax通信ではコールバックを html か js ファイルに書くと思っていたが、Rails3ではコントローラ側で js を生成してレスポンスを返すイメージらしい。 index.html.erb …

「はじめる! Rails3」で勉強中

達人出版会の「はじめる! Rails3」という電子書籍を購入してみました。読みながら例題アプリを作成していくという構成になっていて、Railsの仕組みを1から教えてくれるのでとてもわかりやすい。また、各章の終わりに演習問題がついていて、メインで作成し…

札幌C++勉強会#1に行って来た

C++の勉強会があるということで思い切って行ってみた。内容は東京で行われている Boost勉強会の様子をみんなでustで鑑賞するというもの。内容はかなりレベルが高かった‥。各発表の合間に勉強会に来ていた方々といろいろお話できてよかった。買ってからスマー…

Railsでテストを書いてみる(Rspec:Controller編)

コントローラもテストしてみる。 ページにアクセスしてサクセスが返ることと、期待するテンプレートを表示することを確認するシンプルなケース 画面にアクセスするのは get :アクション名 成功が返るのは response.should be_success テンプレートの表示判定…

Railsでテストを書いてみる(Rspec編)

rspec 環境設定 Rails3.0.3に rspecをインストールするのに少しハマったのでメモ gem のアップデート $ sudo gem update --system $ gem -v 1.5.2 activesupport のアップグレード rspec-rails で 3.0.4 を要求されるので、アップグレードしておく。他のは 3…

Railsでテストを書いてみる(UnitTest編)

前準備の環境構築 改めておさらいしつつ。Rails3.0.3 mysql でアプリを生成 $ rails new practice -d mysql DB生成 $ cd practice $ rake db:create:all DB確認 $ mysql5 -u root -p mysql> show databases; +----------------------+ | Database | +-------…

cssでグラデーションをつける

css

今まで li要素などにグラデーションをつけるには小さいグラデーション画像を作って background-image に設定していたけど、cssでもグラデーションを付けられることがわかったのでやってみる。 cssの方が画像読み込みの時間が省略できるし、画像読み込み時の…

えにしテックカフェに行って来た

2/4 に開催されたえにしテックカフェに参加してきました。えにしテック本社に行くのは今回が初めて。とても本がたくさんあって素敵なオフィスでした。コーヒーやケーキもいただいたのにこちらは手ぶらで行ってしまって申し訳なかったです。内容はしまださん…

コントローラのユニットテスト

コントローラのテストをさぼっていたのでやってみた。 クッキーとか使っているからその辺りをどうやってテストするのかが今回の課題。 Cookie や SessionScope へのデータ設定 Cookie や SessionScope にあらかじめデータを設定した状態でテストしたい場合は…

astah pad でクラス図を書いてみた

Slim3でいじっているTodoListのクラス図をiPad用の astah pad で書いてみた。 タッチインターフェースに特化していてサクサククラス図が書けるのが楽しい。それに動作が非常にスムーズ。色付けやコメントの挿入も直感的に入れられるし、これならちょっとした…

平鍋さんとアツク語る会メモ

しまださんから誘われて平鍋さんが来るというのでかなりビビってたけど行ってみてよかった。前日勉強会から参加。知らない人ばかりのところに飛び込むのはかなり勇気が必要だったけれど、平鍋さんやRuby札幌の中の人とかと話せて有意義だった。イタリアン(フ…

IE6の制限と判定

IE6では何故か下記のようなDOM要素にイベントハンドラを追加する処理でエラーになってしまう。 タッチイベントハンドラなのでとりあえず IEの時は下記を実行しないように判定文を入れてみる。 var label_elemens = document.getElementsByClassName("taskLab…

無線LAN経由で外付けHDDにTimeMachineする

Mac

MacBookPro のバックアップ用に外付けHDDを購入。無線LANルータにUSB接続して TimeMachine で利用する設定をしてみたのでメモ。 環境 MacBookPro 13インチ Snow Leopard 無線LANルータ:** WR8700N 外付けHDD:HD-CBU2 1T 参考ページ ①Time MachineをTime …

任意のDOM要素の背景を半透明にする

css

以下をスタイルシートに設定してあげる filter: alpha(opacity=50); -moz-opacity:0.5; opacity:0.5;

特定のDOM要素をマウスオーバーした時のポインタを変更する

css

ドラッグ可能な要素を明示するように、マウスオーバーした時にポインタの形状を指にしたい。 cssで実現可能。以下のように cursor: pointer; を追加してあげる。 #waiting li { margin: 0px 2px 1px 2px; padding: 1px; font-weight: bold; font-size: 12px;…

アプリケーションキャッシュを試してみる

2回目以降の起動が速くなるということで、HTML5のアプリケーションキャッシュを試してみた。けど、結論から言うとあまり実感は得られなかった。とりあえず、やったことをメモっておく。 #追記:ちゃんとやったら結構効果はあった。特に画像をキャッシュす…