maeshimaの日記

メモ書きです

移行

結局 id:willnet アカウントで使えるようにした下記のブログにメモ用ブログを移行することにしました。ここは恐らくもう更新しません http://maeshima.hatenablog.com/

はてなブログのサブアカウント

はてなダイアリーだと、本アカウントでサブアカウントのブログの編集もできたんだけど、はてなブログだといちいち切り替えないとできない><これはもう(このブログの更新は)だめかもわからんね

はてなブログに移行

かなり放置していましたが、はてなブログをちょっと試してみたくなったのでダイアリーから移行してみました。 もしかしたらこっちもときどき更新するかもしれません。

let

beforeがネストされるexpectationのときにletの導入を考えるとよさげ。でも階層深いときに多用しまくるとかえって見づらくなる? Rubyist Magazine - 改めて学ぶ RSpec

tapp

復習用エントリ。tapを使う頻度をもっと上げたいなと思った tappと書いてタププ - うんたらかんたら日記 tapp についてガツンと申し上げたい - ursmの日記

validates_confirmation_of

validates_confirmation_of は valid? ではチェックされず、saveの時にチェックされるっぽい confirmation用の属性がnilのときはチェックされないみたい。

inf-ruby

使ってはすぐ存在を忘れてターミナルを使ってしまう…。C-c C-sでバッファが開く。 参考 inf-rubyメモ - odz buffer

capistrano_colors

gem install capistrano_colors だけで色が付くようになるのかなと思ってたけど違った(当たり前)。全部のプロジェクトの cap コマンドを色つけしたいので ~/.caprc を作って require 'capistrano_colors' としたら色が付きました 参考 stjernstrom/capistran…

複数ユーザ毎のコメント数を調べるコード

復習用エントリ。これは絶対に覚えなくてはならないコード! user = User.all(:joins => :comments, :select => "users.*, count(comments.id) as comments_count", :group => "users.id") 各ユーザ毎に user.comments とすると、クエリがユーザ数分発行され…

Hash#fetch

キーに対応する値を返す。値がない場合はKeyError。デフォルト値をブロック中に指定できる。 hash = {} hash.fetch(:hoge) {'fuga'} #=> "fuga" hash.fetch(:hoge) #=> KeyError: key not found: :hoge 名前付き引数を使うようなときに使う。

ActiveRecord::RecordInvalid と ActiveRecord::RecordNotSaved

ActiveRecord::RecordInvalid を手動で raise するには引数として model オブジェクトが必要。 下記のように、validationに失敗したオブジェクトを取得できる begin complex_operation_that_calls_save!_internally rescue ActiveRecord::RecordInvalid => i…

Arrayを分割する系のメソッド

railsで拡張されたメソッド。 Array#in_groups(n) n個の配列を持つ配列を返す。 Array#in_groups_of(n, fill_with = nil) n個の要素を持つ配列を持つ配列を返す。each_slice と似てるけど、配列(の配列)を返すメソッドであるというのと、fill_with に何か値…

ctagsのオプション

Rで再帰、eでemacs用の出力にしてくれる ctags -Re app

閲覧専用のgitクライアントはtigで十分

git

Rails の git log を RSS か何かで継続的に読みたいと思ってgitクライアントぐぐったけど、別に tig で必要十分っぽい。調べたらdiffから変更ファイル全体も見に行けるし。

innodbログとバイナリログの違い

どうも混同してしまいがち。 innodbログ innodb専用 更新を早めるためのもの binaryログ 全部のストレージエンジン用 レプリケーションの同期用 ロールフォワード用 更新は遅くなる

スタートダッシュ型仕事術

一年前にブクマしたけど、もうあと何回か読みたいのでメモ。 Life is beautiful: スタートダッシュ型仕事術:実践編 書いたプログラムを捨てることを恐れないこと この段階で仕様書を書くことは時間の無駄と認識すること 細かなことを無視して、一番難しい部…

MySQL用topコマンド

はてブ棚卸しから。こんなのあったっけか。 MySQLの状態がリアルタイムでわかるMySQL用topコマンド「mytop」と「innotop」 - GIGAZINE

rlwrap

一年前のブクマ履歴から発掘。rlwrap - readline ラッパー - 川o・-・)<2nd life brew install rlwrap ではいった。とりあえず直近ではつかう場面ないけど備忘録てきにメモ。

最近の application controller のテスト方法

application controller のテスト用に controller メソッドがある。このメソッドのブロック中にメソッドを定義すると、それは appliction controller のテスト用のサブクラスのモックアクションとなる。

メタプログラミングRuby 第5章

eval instance_evalやclass_evalも、evalと同じように文字列を引数にすることが出来る。 evalとセーフレベルと汚染の考えはワンセット。 Binding TOBLEVEL_BINDING トップレベルのスコープが束縛されている eval で実行時の束縛を指定できる。どっかで使えそ…

ペイロード

「最大積載量」という意味の英単語で、ITの世界では通信パケットのうちヘッダ部分(行き先等の付加情報)を除いた、本来転送したいデータ本体のことを指す。 ペイロードとは【payload】 - 意味/解説/説明/定義 : IT用語辞典

SCSSの関数で出来ること

lighten(), darken() に感動したので、他にSCSSでなにが出来るか気になった。Module: Sass::Script::Functionsを見てざっくりおおまかにまとめました。 出来ること 赤色、緑色、青色の調整 色相、彩度、光度の調整 透明度の調整 明るさの調整 二色をまぜる …

メタプログラミングRuby 4章

カレントクラス カレントクラスはカレントオブジェクト(self)とは別。Rubyのプログラムは常にカレントオブジェクトとカレントクラスを持っている。メソッドを定義したときに、そのメソッドはカレントクラスのインスタンスメソッドになる。 class MyClass def…

Rails 3.1 で annotate_models

Rails 3.1 だと annotate_models がうまくうごかないっぽい -> annotate のhead なら大丈夫だったctran/annotate_models - GitHub

groonga

db

groongaのMySQLストレージエンジンあり rubyプラグイン(rroonga)あり railsで使えるプラグイン(activegroonga)あり Try ActiveGroonga!

sunspotで検索する

Working with search - GitHubの意訳。 検索ことはじめ Sunspot.search メソッドで検索できる。引数は検索で使う一つ以上のクラス(モデル)。オプションでブロックに検索条件を書ける。一番簡単な例としては、渡したクラスのインスタンス全部を検索する物があ…

sunspot-rails-tester

justinko/sunspot-rails-tester - GitHubのREADMEの意訳。この gem は特定の箇所のテストで solr をオンにするためのもの。solr を使用せず、sunspot を stub 化することで不必要なインデックス構築を避けている。RSpec2 の spec_helper.rb の例。 $original…

sunspot_rails

sunspot_rails/README.rdoc at master from outoftime/sunspot - GitHubの意訳。Sunspot::Rails は Sunspot の Solr 検索を Rails に統合するためのプラグイン。下記のような機能を提供する。 config/sunspot.yml で sunspot の設定が出来る ActiveRecord を…

sunspot(solr)の設定方法

Advanced Fulltext Search Configuration - GitHubの意訳。デフォルトの設定だと、スペースか他の区切り文字で区切られている前提。区切りにはStandardTokenizerというのを使ってる。大文字小文字を区別させないようにするためにはLowerCaseFilterというのを…

sunspotのチュートリアル意訳

インストール solrのインストールはmacなら brew install solr でOK。Rails側はまずGemfileに gem 'sunspot_rails' を書いて bundle install。それから rails g sunspot_rails:install で config/sunspot.yml を作成。 solr のインスタンスを起動 下記の rak…