ビッグママ!
なつかし。
ビッグママ!
なつかし。
RailsのオススメファイルアップロードプラグインのPaperclipですが、最新版(2.1.4)で嬉しい機能が増えてました。
これは嬉しい。ソース内のコメントの例では、アップされた画像をlargeとnegativeというstyleに分け、両方にprofileやexif情報を削除する-stripオプションを適応し、negativeには補色で補完する(つまり反転?)-negateオプションを適応してます。
class User < ActiveRecord::Base
has_attached_file :avatar,
:styles => {
:large => "300x300",
:negative => "100x100"},
:convert_options => {
:all => "-strip",
:negative => "-negate"}
end
RMagickや他のAPIを使わず、直接convert使ってる利点が生かされてますな。 他にも-monochromeオプションでモノクロにしたりとか色々出来そうです。
画像無いときのパス指定は、「あれ?これ指定できないの?」ぐらいだったんで俺がすっきりしただけですが。
以前にも書きましたが、Capistrano利用時にはアップ画像を/public/system以下に置きたいのでオプション指定が必要です。
いちいち指定してたらModelがキモくなるので通常、下記を使ってます。
config/initializers/paperclip.rb:
module Paperclip::ClassMethods
def has_attached_file_with_default(name, options = {})
default = {
:path => ":rails_root/public/system/:class/:attachment/:id/:style/:basename.:extension",
:url => "/system/:class/:attachment/:id/:style/:basename.:extension",
:default_style => :normal,
:default_url => "/images/:class/:attachement/missing_:style.png"
}
has_attached_file_without_default(name, default.update(options))
end
alias_method_chain :has_attached_file, :default
end
config/initializers/以下は一番最後(pluginよりあと)に読まれるのでこういうアプリの本質的でない部分の変更には向いてますな。
RMagickインストール地獄にハマってる方はぜひご検討ください! (Debian etch、CentOS 5.2共にimagemagick/ImageMagickパッケージを入れるだけで済みます)
rono23に借りて読んでます。
![]() |
|
外部キーインデックス(前略)実際、MySQLは外部キーが作成されるときに、参照元の列でインデックスを自動的に生成する。PostgreSQLはインデックスを生成しない。主キーのインデックスを除き、すべてのインデックスを明示的に作成しなければならない。
うわぁぁぁぁああああああああああ
しらなかった・・・。
ポスグレの癖でマイシーコーでも外部キーにインデックスいちいち作ってました・・・。
職業プログラマとしてのキャリア的にはMySQLを使ってる時間の方が長いはずなんですが、初めてスキーマの設計をしたのがPostgreSQLだったのでそのままやってました・・・。(初めて仕事で使ったDBはAccessとOracle8iですが、VBでのクライアント作成だけだった)
慣れで機械的にやっちゃってる作業も定期的にちゃんと見直さないといけないなと思いました。
この業界10年いて何度も!何度も!やってるのに!また!
・・・またSSLの設定で2時間ハマってしまった。
もはや俺に残された手は手順を刺青として彫る以外・・・。
その前に最後のあがきとしてブログに残してみます。(何度となくWikiに残してるのに、それなのにハマるのです。)
CentOS 5.2
privateキー作成。
openssl genrsa -des3 -out /etc/pki/tls/private/example.com.key 1024
パスワード削除版privateキー作成。
openssl rsa -in example.com.key -out example.com-nopass.key
キーからcsr作成。
openssl req -new -key /etc/pki/tls/private/example.com.key -out /etc/pki/tls/certs/example.com.csr
csrの内容を確認。(この出力を保存しておくと安心)
openssl req -text -in /etc/pki/tls/certs/example.com.csr
/etc/pki/tls/certs/example.com.csr を認証局に送る。(ベリサインとかグローバルサインとか)
認証局から送られてきた、「証明書」と「中間証明書」をそれぞれ、 「/etc/pki/tls/certs/example.com.crt」と「/etc/pki/tls/certs/example.com-chain.crt」に保存する。 (べりサインなどの場合は中間証明書は要らない)
/etc/httpd/conf.d/ssl.conf を下記のように変更する。
diff /etc/httpd/conf.d/ssl.conf*
112,113c112
< #SSLCertificateFile /etc/pki/tls/certs/localhost.crt
< SSLCertificateFile /etc/pki/tls/certs/ドメイン名.crt
---
> SSLCertificateFile /etc/pki/tls/certs/localhost.crt
120,121c119
< #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
< SSLCertificateKeyFile /etc/pki/tls/private/ドメイン名.key
---
> SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
130,131c128
< #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
< SSLCertificateChainFile /etc/pki/tls/certs/ドメイン名-chain.crt
証明書の中身を確認する。
openssl x509 -noout -text -in /etc/pki/tls/certs/ドメイン名.cst
MacPorts
cd /opt/local/apache2/conf
sudo openssl genrsa -des3 -out localhost.key 1024
sudo openssl rsa -in localhost.key -out localhost-nopass.key
sudo openssl req -new -key localhost-nopass.key -out localhost.csr
sudo openssl x509 -req -in localhost.csr -signkey localhost-nopass.key -out localhost.crt
conf/httpd-ssl.confに追加。
NameVirtualHost *:443
次ハマったらTATOOしかない。
![]() |
|
これ、とてもよかったです。激しくオススメ!
C#の本を物色しまくってたんですが、俺の求めてる本が全然無い!
俺がC#の本に求めた内容:
古めですが、小さいサイズでとても薄いのも良いです。
「C#の本ならオライリーじゃないだろうな」
などと勝手に考えて、一番後回しにしてたんですが、オライリー恐るべし・・・。
Railsでaタグにtitle要素を書くのが面倒臭い。
link_toにtitle要素を指定しなかった場合、リンク文字をtitle要素に入れるようにしました。
config/initializers/rails_ext.rb:
module ActionView::Helpers::UrlHelper
#
# ==== Examples
# link_to 'User Logged in', 'login'
# # => <a href="login" title="User Logged in">User Logged in</a>
#
def link_to_with_title(name, options = {}, html_options = nil)
html_options = {:title => name} if html_options.nil?
html_options[:title] = name if html_options[:title].nil?
link_to_without_title(name, options, html_options)
end
alias_method_chain :link_to, :title
end
![]() |
|
買ったのが9月だから2ヶ月程経つことになりますが、凄く良いです。
何故か?
Logicool > マウス&トラックボール > マウス > VX Nano Cordless Laser Mouse for Notebooks操作性および精確性
- ハイパーファストスクロール:ほとんど摩擦のないスクロールホイールにより、長いドキュメントを超高速で閲覧できます。また、精確なスクロールに切り替えるのも簡単です。
これ、要するに、ホイールを上からカチッと押すことで、「カチカチクリック感のあるスクロール」と「まったく引っかかりの無いスムースなスクロール」を切り替えられるんですね。ハード的に。
最初知らなくて、
「かばんに入れてると時々スクロールが別物に変わってるな。壊れたのか?」
なんて思ってたんですが、意図された機能だったんですよね。
ナイスファンクション!
まったく成熟してると思ってたマウスの機能、こういうメカニカルな方向にはまだいろいろありそうだなと思わせてくれました。
Railsで検索を作る時ちょっと面倒臭いです。
EZ_Where, Where Plugin, CriteriaQueryなど、検索条件を書きやすくするプラグインがいくつかありますが、railswhereというプラグインは記述が簡潔で気に入りました。
timcharper’s railswhere at master ? GitHubWhere clause generator Building a complicated where clause made easy
インストール:
script/plugin install git://github.com/timcharper/railswhere.git
施設(Facility)の検索フォームで、
「都道府県」、「フリーワード」
で検索という場合、
where = Where.new
unless params[:prefecture_id].blank?
where.and('prefecture_id = ?', params[:prefecture_id])
end
unless params[:word].blank?
where.and(
Where.new("name LIKE ?", "%#{params[:word]}%").
or("description LIKE ?", "%#{params[:word]}%")
)
end
@facilities = Facility.paginate(
:page => params[:page],
:conditions => where.to_s)
という感じです。(ちょw%%かよ!はスルーで)
パッと見だけで使い方がわかるのがうれしい。
※間違ってたので修正しました。簡単に条件を入れ子にできるのもいいですね。
![]() |
|
日米安保を破棄して日ソ友好条約が結ばれた瞬間、ソ連軍が新潟から上陸し、東京を目指して進軍してくる。指揮系統が混乱する中、自衛隊は超法規的行動を開始する。
ソ連の脅威がまだ存在した91年の作品。濃い仮想軍記物ですが、これ一冊に納まっているのでCat Shit Oneから入るには丁度良かった。
おそらくそのCat Shit Oneの新装版が好調なのでこの新装版も出せたんでしょうな。
「こわいよ、こわいよ」というのが黒ウサギのボタスキーならかわいいんだが、むくつけき男どもが連発。
陸海空軍がそれぞれの視点で時刻ごとに進んでくのは面白い。ほぼセットと思われる作品、「バトルオーバー北海道」も是非読みたい。
![]() |
|