[Ruby on Rails] 開発環境以外で Basic 認証を設定する方法

Ruby on Rails 3.2.3 にて、本番環境やステージング環境では Basic 認証を設定したいけど、開発環境では Basic 認証したくないときの設定方法をメモ。

開発環境でいちいち Basic 認証の User名、Password を入力するのは面倒ですものね。

app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
 
  before_filter :password_protected unless Rails.env.development?
 
  protected
 
  def password_protected
    authenticate_or_request_with_http_basic do |username, password|
      username == "spam" && password == "spam_pw"
    end
  end
 
end

実行環境が”development”以外の時のみ、認証がかかるようになります。(ユーザ名:spam、パスワード:spam_pw)

以上です。

Node.js を入門するときに参考になりそうな記事まとめ

Node.js を入門するときに参考になりそうな記事をまとめてみました。(随時更新予定)

Nodeビギナーズブック » Node.jsチュートリアル » Node.js 教程

基礎から学ぶNode.js:第1回 Node.jsとは|gihyo.jp … 技術評論社

JavaScriptでWebアプリを開発できる「Node.js」活用入門 – SourceForge.JP Magazine : オープンソースの話題満載

以上です。

[iPhone/iPad] UDIDを確認できるアプリ「UDIDit」→「UDID Sender」は無料

iPhone/iPadのUDIDを調べる方法を調べたのでメモ。

まず、UDIDを調べて、メールでUDID以外の端末情報を送信できるアプリ「UDIDit」があるので、カンタンにはこれを使うと便利です。

「UDIDなにそれ?」な初心者の方からUDIDを教えてもらう際には、「UDIDit」でメールしてもらうのが楽です。

App Store – UDIDit

iPhone、iPadのUDID(識別子)を調べてメールするだけのアプリ「UDIDit」 | OZPAの表4

(追記:2013/08/28)

「UDIDit」が有料アプリになってしまったので、「UDID Sender」は無料で使えるのでこちらを使いましょう。

UDID Sender for iPhone, iPod touch, and iPad on the iTunes App Store

アプリとか使わずに、普通に確認するには下記の記事を参考にしましょう。

iPhone iPadのUDIDの調べ方 コピーの仕方 | ごりゅご.com

以上です。

言語コード(language code)の仕様メモ

言語コードの仕様を確認するためのメモ。

言語コードは英語だと、language code なので、DBのカラム名に使うなら language_code ですかね。ちょっと短くして、lang_cd でもいいかも。

以下、言語コードで参考になりそうなサイトまとめ。

ISO 639 – Wikipedia はてなブックマーク - ISO 639 - Wikipedia

言語コード一覧 | references | CYBER@GARDEN はてなブックマーク - 言語コード一覧 | references | CYBER@GARDEN

Language information and text direction (ja) はてなブックマーク - Language information and text direction (ja)

以上です。

[Ruby on Rails] DBのカラムのデフォルト値を変更する方法

Ruby on Rails 3.2.3 にて、DBのカラムのデフォルト値を変更したのでメモ。

change_column_default(table_name, column_name, default)
Sets a new default value for a column.
 
Examples
change_column_default(:suppliers, :qualification, 'new')
change_column_default(:accounts, :authorized, 1)
change_column_default(:users, :email, nil)

・引用元:ActiveRecord::ConnectionAdapters::SchemaStatements はてなブックマーク - ActiveRecord::ConnectionAdapters::SchemaStatements

例えば、articles テーブルの title カラムの定義が「String型、NULL制約:有、デフォルト値:空文字」となっているのを、「String型、NULL制約:無、デフォルト値:NULL」に変更したい場合、マイグレーションファイルは下記のように書きます。

class ChangeTitleNullToArticles < ActiveRecord::Migration
  def up
    change_column :articles, :title, :string, null: true
    change_column_default :articles, :title, nil
  end
 
  def down
    change_column :articles, :title, :string, null: false
    change_column_default :articles, :title, ""
  end
end

以上です。

FacebookアプリをFacebookページのタブに設置する方法

FacebookアプリをFacebookページのタブに設置する方法を調べたのでメモ。

https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&display=popup&next=YOUR_URL

・YOUR_APP_ID: タブとして追加したいアプリのAPP ID
・YOUR_URL: タブとして追加したいアプリが設置してあるルートURL(セキュアなURLの方がベター)

URLの太字になっている、「YOUR_APP_ID」、「YOUR_URL」の所を上記のように変更してリンク先を開きます。
すると以下のように「どのFacebookページに追加しますか?」というダイアログが表示されるかと思います。 

・引用元:Facebookアプリページが削除、タブの導入方法が変更へ | FBN Future box news | Facebook、Android、 iPhone WEBのこれからを伝えるメディア はてなブックマーク - Facebookアプリページが削除、タブの導入方法が変更へ | FBN Future box news | Facebook、Android、 iPhone WEBのこれからを伝えるメディア

Add PageTab at Facebook Page はてなブックマーク - Add PageTab at Facebook Page

FacebookページにIFrameタブを追加するツール: 小粋空間 はてなブックマーク - FacebookページにIFrameタブを追加するツール: 小粋空間

FacebookページへのIFrameタブ追加方法が変更: 小粋空間 はてなブックマーク - FacebookページへのIFrameタブ追加方法が変更: 小粋空間

もちろん、Facebook Developerの公式ドキュメントにも載ってます。

■ Direct URL Example

You can also bring up the Add to Page Dialog by explicitly directing the user to the /dialog/pagetab endpoint:

https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&display=popup&next=YOUR_URL

■ Properties

・app_id
Your application’s identifier. Required, but automatically specified by most SDKs.

・redirect_uri
The URL to redirect to after the user clicks the Add Page Tab or Cancel buttons on the dialog. Required, but automatically specified by most SDKs.

・display
The display mode in which to render the dialog. This is automatically specified by most SDKs.

・引用元:Add Page Tab Dialog – Facebook Developers はてなブックマーク - Add Page Tab Dialog - Facebook Developers

以上です。

[Eclipse] ドットファイル「.」ファイル(.htaccess とか) を表示する設定方法

Eclipse にて、ドットファイル「.」ファイル(.htaccess とか)を表示する設定方法をメモ。

ちなみに、設定したのは Eclipse Indigo です。

■ 設定手順

1. エクスプローラーのタイトル右にある下向き三角▽をクリック

2. 「フィルター」をクリック

3. 「.*リソース」のチェックを外して、OKをクリック

以上です。

【参考】

eclipseで『.』(ドット)から始まるファイル[.htaccess]を表示する – [Eclipse/開発環境 ツール類] ぺんたん info はてなブックマーク - eclipseで『.』(ドット)から始まるファイル[.htaccess]を表示する - [Eclipse/開発環境 ツール類] ぺんたん info

[Python] The Zen of Python

Python の本質的な真実を良く表現している「The Zen of Python」が素敵だったので、ご紹介します。

Python

続きを読む

[Ruby][Rails] 厳選ライブラリ・ツールまとめ by WEB+DB PRESS Vol.67

「WEB+DB PRESS Vol.67」に掲載されている「Ruby わくわくナビ」で紹介されていた「厳選!用途別Ruby/Railsライブラリ・ツール」の一覧をメモ。

「機能の実装」「テスト」「作業の効率化」「運用」をテーマに色々と紹介されていました。

機能の実装編

ユーザ認証

plataformatec/devise はてなブックマーク - plataformatec/devise

NoamB/sorcery はてなブックマーク - NoamB/sorcery

ページネーション処理

amatsuda/kaminari はてなブックマーク - amatsuda/kaminari

パンくずリストの表示

zachinglis/crummy はてなブックマーク - zachinglis/crummy

アクセス権限の一括管理

ryanb/cancan はてなブックマーク - ryanb/cancan

画像のアップロード処理

thoughtbot/paperclip はてなブックマーク - thoughtbot/paperclip

markevans/dragonfly はてなブックマーク - markevans/dragonfly

レコードの削除を「論理削除」にする

radar/paranoia はてなブックマーク - radar/paranoia
 

テスト編

現在時刻に関係するテスト

jtrupiano/timecop はてなブックマーク - jtrupiano/timecop

bebanjo/delorean はてなブックマーク - bebanjo/delorean

メール送信処理のテスト

bmabey/email-spec はてなブックマーク - bmabey/email-spec

More Test!!

guard/guard はてなブックマーク - guard/guard

guard/guard-rspec はてなブックマーク - guard/guard-rspec

Growl はてなブックマーク - Growl
 

開発作業の効率を上げる

モデルの「表示に関する処理」を上手に扱う

amatsuda/active_decorator はてなブックマーク - amatsuda/active_decorator

オブジェクトの中身をきれいに表示する

michaeldv/awesome_print はてなブックマーク - michaeldv/awesome_print

処理途中のオブジェクトの中身を表示する

esminc/tapp はてなブックマーク - esminc/tapp

快適なREPL環境

pry/pry はてなブックマーク - pry/pry

Pry – an IRB alternative and runtime developer console はてなブックマーク - Pry - an IRB alternative and runtime developer console

Rubyistよ、irbを捨ててPryを使おう – TIM Labs はてなブックマーク - Rubyistよ、irbを捨ててPryを使おう - TIM Labs

モデルの属性に列挙型を使う

twinslash/enumerize はてなブックマーク - twinslash/enumerize

Twiwt:Blog / jugyo : enumerize 便利♡ – Enumerated attributes with I18n and ActiveRecord/Mongoid support はてなブックマーク - Twiwt:Blog / jugyo : enumerize 便利♡ - Enumerated attributes with I18n and ActiveRecord/Mongoid support
 

運用する

アプリケーションの設定を上手に管理する

binarylogic/settingslogic はてなブックマーク - binarylogic/settingslogic

アプリケーションのパフォーマンスを把握する

Web Application Performance Management (APM) : New Relic はてなブックマーク - Web Application Performance Management (APM) : New Relic

newrelic/rpm はてなブックマーク - newrelic/rpm

複数のアプリケーションを並行して開発する

Pow: Zero-configuration Rack server for Mac OS X はてなブックマーク - Pow: Zero-configuration Rack server for Mac OS X

rodreegez/powder はてなブックマーク - rodreegez/powder

Pow使うならPowder入れておくだァーッ! – Meltdown Countdown はてなブックマーク - Pow使うならPowder入れておくだァーッ! - Meltdown Countdown
 

以上です。

[Ruby on Rails][SQLite3] SQLException: Cannot add a NOT NULL column with default value NULL

Ruby on Rails にて、Usersテーブルに role カラムを NOT NULL 制約を付けて、追加しようとしたらエラーが発生しました。

■ エラーが発生した migration ファイル

db/migrate/20120415053115_add_role_to_users.rb

class AddRoleToUsers < ActiveRecord::Migration
  def change
    add_column :users, :role, :string, :null => false
  end
end

rake db:migrate すると、エラーが発生しました。

■ エラーメッセージ

$ rake db:migrate
==  AddRoleToUsers: migrating ============================
-- add_column(:users, :role, :string, {:null=>false})
rake aborted!
An error has occurred, this and all later migrations canceled:
 
SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL: ALTER TABLE "users" ADD "role" varchar(255) NOT NULL
 
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

SQLite3 では、NOT NULL制約を付ける場合にはNULL以外のDEFAULTを指定する必要があるみたいです。

DEFAULT を指定しないと NULL が入ってしまうので、そのせいで今回のエラーが発生したみたいです。

NOT NULL制約を付ける場合にはNULL以外のDEFAULTを指定して下さい

・引用元:さぼてん: SQLite でテーブルの変更・カラムの追加をする-ALTER TABLE はてなブックマーク - さぼてん: SQLite でテーブルの変更・カラムの追加をする-ALTER TABLE

なので、下記のようにカラム追加後に change_column で role カラムを NOT NULL に変更すればOKです。

class AddRoleToUsers < ActiveRecord::Migration
  def change
    add_column :users, :role, :string, :null => false
    change_column :users, :role, :string, :null => false
  end
end

また、素直に DEFAULT を指定してあげるのも一つの手です。

class AddRoleToUsers < ActiveRecord::Migration
  def change
    add_column :users, :role, :string, :null => false, :default => ""
  end
end

以上です。

【参考】

ruby on rails – SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL – Stack Overflow はてなブックマーク - ruby on rails - SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL - Stack Overflow