『初めてのRuby』出版記念トークイベント に行ってきたまとめ

O'Reilly Village / オラの村: 『初めてのRuby』出版記念トークイベントのお知らせに行ってきました。 初めてのRuby の著者で、Ruby コミッタでリリースマネージャのYugui さんと、Java からRuby へ著者で、アジャイル開発で有名な角谷さんのトークショーで…

特定のコマンドをパスワードなしでsudo する設定

ちょい分かりにくかったので、設定メモです。やりたいことは、sudo で実行する際に、find コマンド等、よく使う、かつ、実行してもあまり被害がないコマンドに関しては、パスワード入力なしで実行できるようにしたいということです。 sudo コマンドに関する…

機能テストの際の注意

今まで、機能テストで、1つのテストメソッドの中で何回もリクエストを送るコードを書いていたことがありました。テストケースを1メソッドに割り当てると、どうしてもrake が重くなったり、メソッドが増え過ぎたりとあって、index アクションの処理はtest_in…

サーバーにmytop をインストールする

業務でサーバーにmytop をインストールしたのでそのメモです。 環境 linux $ cat /etc/redhat-release CentOS release 4.4 (Final) mysql-client, mysql-devel $ rpm -qa | grep MySQL MySQL-devel-4.0.26-0 MySQL-client-4.0.26-0 mytop とは linux のtop …

Rails プロジェクトでのSubversion の無視リストのメモ

windows 用のTortoiseSVN なら、Settings から共通無視リスト(Global ignore pattern)を設定できます。 Rails のプロジェクトの場合は、以下のような感じになります。database の設定ファイル、スキーマの情報ファイル、log 、tmp ディレクトリを除外して…

シンボリックリンクの貼り方

いつも忘れるのでメモ。以下のコマンドを実行すると、カレントディレクトリにgems というディレクトリができ、「cd gems」とすると、リンク先のディレクトリ(/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems)に飛べる…

トランザクションブロックって便利

トランザクションブロックとは 「プログラミングRuby 第2版 言語編」に、トランザクションブロックというものがのっていました。 「プログラミングRuby 第2版 言語編」(p. 46) ブロックは、何からのトランザクション制御の下で実行する必要がある一連のコ…

レスポンス生成直前に動作をかます before_render

rails のアクションに対するコールバックは、filter 機能を使うことで実現できます。 filter には、アクションの実行直前に動作をかます「before_filter」、アクションを実行し、レスポンスが生成された後に動作をかます「after_filter」があります。 これだ…

Weave にサインインできなくなった

Firefoxのオンライン環境同期アドオン Weaveを使ってみた - delab WeaveとはFirefoxのオンライン環境同期サービスで、Firefox3.0になって使えなくなったGoogle Browser Sync(こちらはfirefox2でのサービスも終了する予定)の代わりになると期待しています。 …

ファイルの中身を空にするコマンド

ローカルのログファイルとかもさもさたまっていく。これをエディタで開いて消したり、一回ファイルを削除するのは面倒。ということで、ファイルを空にするコマンド(というかリダイレクト使っているだけ)をメモ。 Linux $ > log.txt Windows $ echo "" > lo…

Twitterに投稿するスクリプト

APIをさわったことがないので、練習にさわってみました。練習台はTwitter。 APIの仕様 [観] Twitter API 仕様書 (勝手に日本語訳シリーズ) 認証 認証 public_timeline の取得を除くすべての API で、BASIC認証を使用する。BASIC認証で使用するユーザ名はメー…

Gem のバージョンあげたら大変な目にあった

知りませんでした。Gem って、yum とかと同じで、パッケージ管理をするものだと思ってました。今回、Gem のアップデートがあったということで、以下のように「0.9.4」から「1.2.0」にアップデートしたら、「RMagick 1.13.0」が動かなくなった。 最初に、gem …

テスト駆動開発を教える際に、テストケースだけ渡すという方法をやってみた

本日会社のruby研修がありました。テーマは「テスト駆動開発」。その際に、id:yuum3がRubyKaigiで発表していた方法をやってみました。資料は以下のエントリーからDLできます。 Ruby 会議で発表しました。 - yuum3のお仕事日記 yuum3の発表では、テスト駆動開…

Firefoxの検索バーに日本語を入力すると、確定時に2重で入力される問題

会社のWindowsのFirefoxでトラブルに見舞われたので、解決策をメモ。環境は、以下の通り。 Windows XP Professional Version 2002 Service Pack 2 Firefox3(Build 2008052906) 現象 Firefoxの検索バーやロケーションバーに日本語を入力すると、Enterを押した…

Googleモバイルのテストツールを使って広告を取ってくるrubyスクリプト

Hpricotの練習に作成しました。Googleはモバイル広告のテストツールをこちらで公開しています。これを使って、検索結果に表示される広告をとってきます。 scrape_google_adwords.rb #!/usr/local/env/ruby -Ku require 'uri' require 'rubygems' require 'hp…

恐怖のcrontab -r. 設定ファイルはレポジトリ管理せよ

crontabファイル含め、設定ファイルはレポジトリで管理しましょうという話です。 恐怖のcrontab -r crontab -r を安全にする - antipop 間違えて crontab -r してしまい、crontab をふっとばしてしまったので、以下のような zsh 関数を書いて、確認を出すよ…

Star Wars Crawlを試してみた

指定したテキストでスターウォーズ風のイントロ映像を作れる『Star Wars Crawl』 | 100SHIKI.COMを見て、自分の書いたコードで試してみた。ロゴが笑える。 CSV UPLOAD

Firefox3.0への移行 アドオン入れるメモ

Firefox2の時に使ってて、Firefox3で使えなくなってこまったアドオン Hatenabar :: Firefox Add-ons AutoCopy :: Firefox Add-ons テキストを選択するだけでクリップボードに入れてくれる Tab Mix Plus :: Firefox Add-ons タブを多段で開く それぞれの対応…

もっと楽しみたいから、もっと勉強しよう

プログラミングは楽しい。奥も幅も広い。楽しいから、勉強もいわゆる学校でやってきたような「勉強」ではなく、トレーニングの感覚に近いと思っていた。 けど、最近はそれがまた勉強に戻ってしまった感があった。たんたんと本を読んでいくみたいな感じ。初め…

初めてのjavascript3章(演算子と文)

1章、2章に引き続き3章です。演算子と文の章です。 文の形式 文の終わりは、「jsを解釈するエンジンが、対象の文を完全な物だと判断でき、かつ、終わりが改行文字」または「;」で示す。 改行文字単体で文の終わりを示すわけではない。 ということは、1行…

SSLの設定

SSLの設定を始めてやったのでメモしておきます。今回はSSLの証明書は独自で作成します。独自でもOKなのですね。 OpenSSLコマンドの使い方 本来、セキュアなWebサーバを運用するためには、認証局から、署名付きの証明書を発行してもらう必要があります。認証…

SSH公開鍵認証の設定

初めてやってのでメモしておきます。リモートサーバーへのSSH接続の際に、パスワード認証を禁止し、公開鍵認証にする設定です。公開鍵認証の方がこちらも楽な上に、パスワードの漏洩なども回避できます。 では設定開始。今回は、クライアントがWindowsXP, サ…

中央寄せ

障害対応が終わったと思ったらなんと一部のテンプレート(ってかデフォルト)で中央寄せになってる。各自CSS書いてねモードか。 firebugでみたら、他のテンプレートでは「.hatena-body」に「text-align: left;」があるのに自分のにはなかった。なのでデザイ…

irbでのアンダースコアが便利だ

RubyのStruct - 西尾泰和のはてなダイアリー irb(main):018:0> FooBar = Struct.new(:foo, :bar) => FooBar irb(main):019:0> FooBar.new(1, 2) => #<struct FooBar foo=1, bar=2> irb(main):020:0> _.foo => 1 なんだこのアンスコ? どうやら、直前に評価されたものを格納しておいている</struct>…

Hashによるオプション引数とActiveRecord::Base.extract_options_from_args!

以前、メソッドの引数としてHashを使うといいというエントリーを書きました。 Hash引数便利よね - Slow Dance その中で、特にオプション引数に対して有効ということを書きました。 今回は、オプション引数とActiveRecord::Base.extract_options_from_args!を…

JavaScriptのデータ型と変数の追記(jsのスコープ, nullとundefinedの違いについて)

JavaScriptのデータ型と変数 - Slow Danceの内容でjavascripterさんにツッコミをもらった部分を調べたのでまとめました。 ツッコミ内容 >の部分が僕が書いた部分です。その下の行からが指摘してもらった内容です >ブロック内で宣言された変数は、そのひとつ…

バックアップ機能

あー間違えて編集ウィンドウ閉じちゃった(泣) でも、バックアップ機能有効だから平気だよー。って思ったらバックアップとってない。なんでや!!! よく見たら、バックアップは有効になっていたけど、保存容量設定が0KBになってた。 0KBなんて設定できる…

JavaScriptのデータ型と変数

初めてのjavascriptの2章です!データ型と変数について。 名前の付け方 jsでの変数名や関数名の付け方が書いてありました。ソースの可読性からいって名前は本当に重要。 省略しない簡潔な名前を これはどの言語でも同じ。たった数文字のために名前を省略し…

検索結果のテスト assert_found

railsでテストコードを書いている際に、次のようなコードが多くあった。 assert_equal [1, 2, 3], assigns(:users).map(&:id) result = User.find(:all, :conditions => ["school = ?", "Hoge"]) assert_equal [2, 3], result.map(&:id) 面倒だ なので、Arra…

Ruby 1.8.7 リリース

おぉー!Rails 2.1がリリースされて次はRuby 1.8.7ですか! いいっすねー熱いっすねー(*´艸`) Ruby 1.8.7リリース!! - ’(rubikitch wanna be (a . lisper))