2008-03-01から1ヶ月間の記事一覧

Array#fuzzy_equal?

テストの時 assert [1,2,3].fuzzy_equal?(User.find_by_school("hoge").map(&:id)) とかやりたい。eachで比較するのが面倒だし、==メソッドは順序まであってないとfalseになるから。 実装 バグあります def fuzzy_equal?(other) original_size = self.size s…

A Ukelele like a Guiter

昨日テレビで見ました、ジェイク・シマブクロさんの演奏。このウクレレが最高にかっこよかった。

はてぶの注目エントリー

今まで「人気エントリー」しか見ていなかったけど、昨日帰りの電車でずっと「注目エントリー」みたいた。 超面白い。人気エントリーにならなくても良い記事が沢山あることを知った。注目エントリーこそ見るべきかもしれない。 PCで人気エントリー、携帯では…

Timeオブジェクトの等価でちょいはまった

Railsのテストでこんなメッセージが出た expected but was . あれ?なんでテスト落ちるんだろう。 irbで確認 irb(main):002:0> a = b = Time.now => Sat Mar 29 20:07:31 +0900 2008 irb(main):003:0> a == b => true これは当たり前だ。同じオブジェクト指…

ファイルテキストコンバーター

ファイル中のある文字列を別の文字列に変えたい 例えばこんなの。 source.txt ■ファイル中のある文字列 ・source.txt これを下に変えたい。 converted.txt **ファイル中のある文字列 -source.txt それ、ワンライナーでできるお(・∀・)! はぁ?置換すりゃいい…

Enumerable#sumが便利だ

集計メソッドを作りたいと思った 集計メソッド こんなクラスが3つあるイメージ。 class Hoge class << self def count 1 end def find [:hoge] end end end class Fuga class << self def count 2 end def find [:fuga] end end end class Wib class << self…

MySQLが再起動できなくなった

MySQLを停止して、起動しようとしたらエラーした 停止 /etc/rc.d/init.d/mysql stop した後に 起動 /etc/rc.d/init.d/mysql start ここで失敗。何故か起動できない(泣) 試す まずは、mysqlとか打ってみる。当然起動しないで、以下のようにエラーする。 Can…

アプリケーションのDBセットアップをするためのRaketaskファイル(setup.rake)

アプリケーションをセットアップするのをRakeでやりたい やることは以下の3つ DB作成 DBスキーマ定義 初期データ作成 2,3番目はmigrationを使います create_user.rb class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.…

nilを含むソートと、Enumerable#partitionメソッド

sortやsort_byの対象にnilが含まれていると扱いにくい 例えば、以下のような例。 ユーザーを最終ログイン時刻でソートする class User attr_accessor :name,:last_login def initialize(name,last_login) @name = name @last_login = last_login end def to_…

Railsでのブール型(Boolean)の扱い

今回、railsでブール型を使った(正確にはmigrationのtypeに:booleanを指定した)ので、Railsでブール型を使う際の注意などをメモしておきます。 ブール型の扱い テーブルのカラムをマイグレーションで定義する際に以下の様にすると、Railsはそのカラムをブ…

インデックスを使った高速化について(ORDERD BYにインデクスが使われない例)

今回は、MySQLの高速化のメモ - @luke_silvia.diaryの方法に従ってクエリの高速化をした際に、MySQLのインデックスについて分かったことを書いておきます。 高速化対象のクエリ 今回高速化したいクエリは、以下のようなもの。 SELECT users.*, students.scho…

年収10倍アップ時間投資法

読んでみたので、重要だなと思ったことをメモします。最近、ライフハック本は賛否両論ですが、必要以上に読まなければ、まぁありかなと思っています。それについては別エントリーで書きます。無理なく続けられる年収10倍アップ時間投資法作者: 勝間和代出版…

10分で作るFirefoxアドオン

今回は、はじめてFirefoxのアドオンを作ったので、調べたことをメモしておきます。難しいと思っていたのですが、簡単なものなら直に作れることを知りました(*´艸`)※ 動作対象はFirefox 何を作るか ブログを書く時に使うような、「開いているページのタイト…

MySQLの高速化のメモ

最近Railsアプリを作成している中で、初めて高速化をやったので、その際のことをメモしておく。 高速化の手順 ベンチマークをとる まずはベンチマークをとっておく。これによって、どのくらい早くなったか見極める。Railsなら、script/performance/benchmark…

トランザクションのテスト

RailsでActiveRecord(DB)のトランザクション処理をテストする際のメモ。 トランザクション処理 簡単な例として以下のコードを考える。 class User def destroy_with_transaction User.transaction do destroy raise end end end テストコードを書く User#d…

Doingリスト〜効率化のために〜

時間の使い方って難しいなー。と考えていた時に、以下のエントリーをはてぶで見つけた。 ゆっくりと動きながら高速でこなす、一流の研究者の Doing リスト | Lifehacking.jp 結構面白い手法だったので試してみるために、メモしておく。 Doingリスト 使い方 …

顔文字を画像ジェネレータにかけたら可愛かった

Web2.0 - Logo Creatrで顔文字を画像に変換してみた。

method_missingとfind_by_xxx

Refactormycodeを見てたら、method_missingを使った例があったので、試しに使ってみた。 method_missingとfind_by_xxx Railsには、このmethod_missingを使ったハックがある。find_by_name、find_all_by_nameとかのfind_xxxメソッドだ。 method_missingは通常…

Web2.0 Book

以下の本を読んだのでメモWeb2.0 BOOK作者: 小川浩,後藤康成出版社/メーカー: インプレス発売日: 2006/03/01メディア: 単行本購入: 2人 クリック: 111回この商品を含むブログ (145件) を見る Web2.0時代のトレンドとは何か? それは、Webのネットワーク化、…

天才とは、天才に近づくには(自助論)

以下の本を読んで考えたことを書きますスマイルズの世界的名著 自助論 知的生きかた文庫作者: サミュエルスマイルズ,Samuel Smiles,竹内均出版社/メーカー: 三笠書房発売日: 2002/03/21メディア: 文庫購入: 44人 クリック: 299回この商品を含むブログ (148件…

関数型呼び出しを排除せよ

せっかくオブジェクト指向言語使っているなら、オブジェクト指向で書こうよという話。 Refactor :my => 'code'「last_number_of_months」 I try to always do in Ruby is avoid the functional style calls (i.e. time_month(month)), but since Ruby is so …

Davit I

"Love Code, Love CodeGear!" - 22年目の親愛なるコードオタクDavid I参上 毎日プログラムし、毎日プログラムを読んで、毎日プログラマとプログラミングの話をしなさい。でもって楽しんでな!

これは便利!SBMカウンター

開発ってか、ツールですね 「SBM(ソーシャルブックマーク)カウンター」 Firefoxのアドオンです。これを入れると、ブラウザの下の部分に、閲覧しているページの「はてブ」、「del.icio.us」、「livedoorクリップ」の被ブックマーク数が表示されます。 さらに…

Hash引数便利よね

Railsの引数としてのHashの使い方上手いよな Ruby on Railsのメソッド引数って、Hashが多いですよね。しかも、HashのキーとしてSymbolが使えて凄く直感的に書ける。 Hashを使った引数 redirect_to :controller => "user", :action => "home" なんでもかんで…