年別アーカイブ: 2011年
Rails 3.0.4と2.3.11からXHRリクエストの際もCSRFトークンの検証が必須になった
open-uriにtimeoutを設定する方法
require 'open-uri' require 'resolv-replace' require 'timeout' TIMEOUT = 3 begin timeout(TIMEOUT) do open(url) do |f| # 処理 end end rescue TimeoutError => e # タイムアウト時の例外処理 rescue => e # その他の例外処理 end
- timeout による割り込みはRubyのThreadによって実現されており、C言語レベルで実装されRuby のスレッドが割り込めない処理では無効なので、SocketでDNSの名前解決に時間がかかった場合にタイムアウトしない。そのため、resolvライブラリを使うようにresolv-replaceでメソッドの書き換えを行う。
- タイムアウト時のTimeoutErrorはStandardErrorのサブクラスではないので、捕捉するためには明示的に捕捉するクラス(TimeoutError)をrescueに指定する必要がある。
RMagickでEXIFの情報を取得する
RMagickでEXIFの情報を取得する。
Using RMagick and EXIF to get the date a photo is taken in Rails « i am josh
EXIFのOrientationタグの値を元に画像を回転する。
オレBlog » Exif Orientationタグによる補正方法
ファイルのEXIF情報は、ImageMagickのidentifyで表示できる。
$ identify -verbose <ファイル名>
mysqldumpで出力したファイルのインポートで error at line xxx: unknown command '\z'
mysqldumpで出力したダンプファイルをmysqlでインポート中に、
error at line 301: unknown command '\z'
というエラーになった。
エラーに出ているダンプファイルの301行目は、longblobのカラムを持つテーブルへのデータのINSERT。
mysqldumpで --hex-blob オプションを付けて出力するようにすると、エラーを回避できた。
ただしダンプしたファイルのサイズは大きくなる。
Mysqldump and Error "Unknown command '\0′" | Mister Nerd's Blog
MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.12 mysqldump -- データベースバックアッププログラム
--hex-blob
16進変換表記法を使用しているバイナリカラムをダンプします(例えば、'abc'は0x616263となります)。影響を受けるデータタイプはBINARY、VARBINARY、BLOB、そしてBITになります。
CentOSにbash-completionをインストール
CentOSのyumにはbash-completionがないので、ソースからインストールした。
Bash-Completion
から、最新のソースをダウンロードしてインストール。
$ tar xjvf bash-completion-2.0.tar.bz2 $ cd bash-completion-2.0 $ ./configure $ make $ sudo make install
~/.bashrc
# Use bash-completion, if available [[ $PS1 && -f /usr/local/share/bash-completion/bash_completion ]] && \ . /usr/local/share/bash-completion/bash_completion
Gitのbash_completionは、Gitのソースの/contrib/completion/git-completion.bash、
Subversionのbash_completionは、Subversionのソースの/tools/client-side/bash_completion
にあるので、/usr/local/share/bash-completion/completions/ にそれぞれgit、svnという名前で保存すればよい。
git+sshでデフォルト(id_rsa)以外のキーファイルを指定する
git+sshでデフォルト(id_rsa)以外のキーファイルを指定したい場合 - yukke.org Diary
~/.ssh/configでgitで使用するHOSTを登録してIdentityFileを指定すればよい。
例
~/.ssh/config
Host Foo HostName example.com User foo IdentityFile ~/.ssh/id_other
$ git remote add origin user@Foo:/your/repository.git
PDFKit Overview & Advanced Usage
SSLでsrcなしのiframeはIE6でエラーになる
IE6では、SSLでsrcなしのiframeはエラーになる。
<iframe src="javascript:'';"></iframe>
で回避。