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

完璧ってそんなにいいのかな

最近、友達とこんな話になりましたので、なんとなく書いてみました。 本とかを読んでいると、「目標達成だ!そのために毎日リストつくって1つずつやるんだ!」とか、「20代は仕事に生きろ!」とかなんとかとか。そういうのを読んでいると、最初は「凄いなー…

instance_evalとスコープ

メソッド名と同じローカル変数がある場合はローカル変数が優先される - ’(rubikitch wanna be (a . lisper)) binding - I like Ruby too. これはfooがすでにローカル変数として宣言されているからそっちが優先された話でしょう。 foo.instance_eval { foo } …

閉じたタブを記憶する

閉じたタブを記憶しておき、再度閉じたタブを開く事ができる『SafariTabMemento』 | Macの手書き説明書 うっかり閉じてしまったタブの復元に最適ですね。 そうなんだよなーいいないいなー。firefoxにもそういうプラグインないかなーって思ってたら、デフォル…

putsの動作をテストする...

今日、人に説明する用にコンソールベースのコードを書いていた。 で、手動でテストするのが面倒なのでテストを書いたのですが、putsのテストが必要なことに気がついてテスト作りました。何か、putsのテストって意味あるの?という感じですが、晒しておきます…

新人はwikiを書くのに最適

今日先輩から言われてふと思ったことです。 今日ソースで分からない部分があり、先輩に質問しました。で、解決した際にもらった言葉がこちら。 疑問があって、解決した場合にはwiki にその旨追記した方が良いでしょうね。 この件に関わらず、社内の規則とか…

javascript始めました

1年前からrubyを始めて1年間rubyやってきました〜。rubyの理解もまだまだですが、javascript始めようと思いました。理由はいつくかあるのですが、一番は、複数の言語をやって始めてそれぞれの言語の本質が分かってくるかなと思ったからです。rubyのために…

テストで、Timeオブジェクト同士を比較するときのメモ

テストを書いていると、こんな風にTimeオブジェクト同士を比較する時があります。 assert @user.save assert_equal Time.now, @user.reload.updated_at まぁ、updated_atはrails側でもテストしているのでやる方はあまりいないかもしれませんが、自分でも「ev…

privateメソッドをレシーバを指定して呼ぶ方法

今までprivateメソッドは、定義元のクラスのコンテキストでしか実行できないと思っていました。なので、テストの時とかにはprivateメソッドをテストせずに、そのメソッドを使っているメソッドのテストで済ませていました。また、irbとか、script/console使う…

grepの正規表現

mac

エスケープしないではまった。 $ ls study.rb use_private_method.rb$ ls | grep '^(s|u)' grepの結果は空。エスケープが必要。 $ ls | grep '^\(s\|u\)' study.rb use_private_method.rb 追記 メタ文字は全てエスケープするのかと思ったら違った。例えば、…

効率良く勉強するには

ふと思ったのでメモしておきます。現代のように、学ぶ分野が多い時代では、必要なものをできるだけ効率良く学ぶことが大切だなと思っています。 最近目にした記事では、Flash界のプログラマ「新藤愛大」さんが以下のように言ってました。 New Generation Chr…

この誤訳は誤解を招く気がする

【YAPC::Asia 2008】オブジェクト指向を学ぶときこそPerlを学んで欲しい:CodeZine オブジェクト指向を学ぶ際にもPerlはおすすめだという。「オブジェクトとは、『自分が何を知っているか知っているデータ』と考えると、一番わかりやすい」 ん?何を知ってい…

日記のタイトル変えた

@luke_silvia.diaryから、Slow Danceへ。一番好きなドラマのタイトルより拝借。 一度しかない人生 ならば、好きなことやって、好きな人と一緒にいたい 人生という大空を、ワシとかタカみたいに 漂うようにゆっくりと、そう、踊るように飛んでいたい だから …

type_castに気がつかなかった。User.new(:school_id => @school)はだめなのね

とんでもない見落としをしていた。こんなテストコード書いてた。 fixtures :pay_types def test_record o = Order.new(:pay_type_id => pay_types(:one)) assert_equal o.pay_type, pay_types(:one) ... end このテストは通りますが、やってはいけない書き方…

railsのテストのuse_instantiated_fixturesはあまり良くないと思った

最近になって昔書いたrailsのコードを読むと、名前が悪いと思うところが多い。例えば。 blog_controller.rb class BlogController < ApplicationController def blog_comments end end とか、blogに対するコメントであることは、コントローラがBlogControlle…

RailsでMySQLのENUM型を使う方法

DBのカラムで、ステータスの様なカラムを扱いたい場合、ENUM型を使いたいことが多いです。 例えばこんな感じ CREATE TABLE blog_comments( id INTEGER NOT NULL AUTO_INCREMENT, blog_id INTEGER NOT NULL, commenter VARCHAR(40) NOT NULL, content TEXT NO…

libディレクトリの使い方とオートロード機能

この関連ではまったので、自分用にメモしておきます、 libディレクトリの使い方 railsのRAILS_ROOT/libディレクトリには、プロジェクトで使用するライブラリを置いておきます。 例えば、既存クラスに機能を追加したい場合、まず追加機能を書いたファイルを用…

railsやりたい!って思った時に最初にやる設定 for Win

研修用に作成です。Windowsにrailsの開発環境を設定するまでを書きます。家にはMacしかないので、必要な部分は引用してあります。 構築する環境 構築する環境は以下の通りです。全てフリーです。 ruby 1.8.6(mswin) rails 1.2.3 mysql 4.1 EmEditor rubyのイ…

Windows環境でRubyでファイルを操作する際の注意

Mac版では起きないのになー filename = "hoge.txt" File.open(filename, 'w') do |file| File.unlink(filename) end 結果は次の通り。 file_unlink.rb:3:in `unlink': Permission denied - hoge.txt (Errno::EACCES) from file_unlink.rb:3 from file_unlink…

Macでスクリーンショットをとる方法

mac

Windowsだと、fn+alt+printscrとかでとって、Wordかpaintあたりを使って画像ファイルとして保存するという手順でしょうか。 Macなら超簡単。Mac初心者なのでメモ。 Mac-スクリーンショット 1.「コマンド」キー + 「Shift」キー + 「3」キー 画面全体 2.「コ…

linoはBlank Slateを工夫してるなー

Blank Slateって ウェブサービスを作るときはBlank Slateを工夫しよう | IDEA*IDEA Blank Slateとは「まっさらの状態」、転じて「利用開始直後の画面」でしょうか。会員登録してさぁ、使うぞ、というときの画面をどうデザインするか、というお話です。 ここ…

ログのバックアップの設定

ログのバックアップを学んだのでメモ。 目的 Railsでアプリを作っているが、放置しておくとproduction.logがたまっていく。なので、1日毎にバックアップをとって、ログファイルが大きくならないようにする。 方法 バックアップ用のシェルスクリプト書いて、…

才能と習慣

WebDB Pressを読んでいたら「いいな〜」って思った言葉があったのでメモします。 以下、「vol.44 アジャイル開発者の習慣」からの引用です。 偉大な習慣を身につけたプログラマ XPの提案者であり、Junitの開発者でもあるKent Beck氏の言葉です。 僕は、偉大…

Stringクラスの勉強メモ

Ruby始めてそろそろ1年になる(汗)にも関わらず、標準ライブラリについてあまり知らないなって思ったので、改めて勉強しなおすことにしました。 標準ライブラリのメソッドを使いこなせれば、コードはもっと綺麗になる。ってことでまずはStringから! 普段…

emacsのhtml-helper-modeのスケルトン挿入をOFFにする

html-helper-modeを使っていると、HTMLファイルを新規に開いた際にスケルトンが入る。便利な面もあると思うのですが、Ruby on Rails等で宣言部分を1つのファイルで管理して読み込むようにしている人にはいらない機能。 なので、無効にしました。下記一行を.…

GWわくわくしてきた

GWに入りましたー!3日間休みかと思ってたら4日間休めるんですね!やほほーい丶(´▽`)ノ 今たまっていたフィードを見たらデザイン系が面白いということに気がつき、GWはHTML,CSS,Flashらへんを集中してみたいなーって思います。 最近デザインに興味ある!職…

遅延評価勉強法についてふと思ったこと

勉強法については、最近のエンジニアは「遅延評価勉強法」をしているというエントリーを書きました。 ハッカーと遅延評価勉強法 - @luke_silvia.diary 日本の(というかはてな界隈)ハッカーはほぼ「遅延評価勉強法」をしている気がします。 遅延評価っぽく…

Windowsに一言

(;´-`).。oO(あの、コマンドプロンプトとかいうやつ。なんとかならんのかのう)

validates_uniqueness_ofのscopeオプションを使う際の注意

scopeオプション RailsのActiveRecord::Base.validates_uniqueness_ofは次のような使い方ができる。 class Comment validates_uniqueness_of :blog_id, :scope => :user_id これは、commentsデーブルに、同一のuser_idに対するblog_idは一意である。という制…

superの挙動を勘違いしていた

恥ずかしいことに、今までsuperの意味を、「親のクラスの同じメソッドを、親のクラスのコンテキストで実行する」かと思っていました。 なので、次の例で結果が「"fuga"」にならないのを見て少しはまりました。 class Hoge def hoge fuga end def fuga "fuga"…

edge railsでto_dateがprivateになった

edge railsというのは、今マシンにインストールされているrailsのバージョンと異なるバージョンでアプリケーションを開発したい際に使います。 これを使えば、アプリケーション内にrails環境を構築でき、自分のマシンのrailsのバージョンを上げても影響を受…