2011年12月28日水曜日

Ubuntu 10.04 vsftpd の nologinの罠

/sbin/nologinじゃなくて/usr/sbin/nologin

ユーザを作成する時に、sshではログインさせたくない場合は、nologinを指定します。
(パスワードの指定もお忘れなく!)

useradd -s /usr/sbin/nologin ftpuser
passwd ftpuser

何度やってもログインに失敗する

Ubuntu10.04では、/etc/shells に/usr/sbin/nologinが記述されていません。
追記すれば認証が通るようになります。

vsftp.conf やユーザの設定は下記サイトがとても参考になります。


起動と停止のコマンド

いつもの/etc/init.d では何かメッセージが出るので、メモ。

stop vsftpd
start vsftpd

2011年11月4日金曜日

備忘録: git zsh: no matches found: HEAD^の対処方法

\でエスケープ git reset HEAD\^

zshにして、他の方の設定をそのまま流用させてもらってたら、できなくなってて涙目になってました。

こちらの記事がとても参考になります。git で zsh: no matches found: HEAD^ と出る件について

2011年9月10日土曜日

Macのシェルをたった3秒でzshに変える方法

chsh -s /bin/zsh

Macにはもともとzshが入っているので、ターミナルで上記のコマンドを実行するだけ!

zsh使いになろうなろうと思ってはや2年くらい...もう、いい加減普段からzshにします。

2011年7月7日木曜日

Rails3のhas_manyで他のnamespaceのモデルと連結させる方法

(過去の)あたしってほんと、バカ

プログラマーて、そう思う事ってよくあるよね。後でいい方法が思い浮かんだり、むしろ、過去の自分が何を考えていたのか分からなかったりとか。アハハ!

余談はさておき(余談からはじまっとる...)

:class_name, :foreign_key, :source

これらhas_manyのオプションをうまく利用してあげれば、うまくassociationを組むことができます。例えばこんな感じ

class Admin::Post < ActiveRecord::Base
  has_many :post_products, :class_name => 'PostProducts', :foreign_key => :admin_post_id
  has_many :products, :through => :post_products, :class_name => 'Product'
end

上の例は、管理者が投稿する機能に、関連商品を結びつけるためのアソシエーション。中間テーブルを使ってるパターンです。

まぁ、グレーゾーンなモデルはネームスペース付けずに作っておくべきかも

public/privateとか、どっちかじゃなくて、どっちも所属するようなモデルはネームスペース付けとかない方が、後々いいなと思いました。

アジャイルとはいえ、DB設計って大事!以上!

2011年7月2日土曜日

Rails3 (3.1対応)のレシピブックが出るよ! - Rails3レシピブック 190の技

松田明さんも加わって、世界最速で3.1対応

松田明さんのkaminariにはいつもお世話になってます。前回のレシピ本では183の技でしたけど、 今回は190に増えてる。そしてRails3.1にも対応というのは嬉しい。まだ3.1の正式版はリリースされていないけど、 すぐにリリースされるだろうし、Railsはどんどん進化していくので、その情報が得られるのは助かります。 この本を手に入れたらレビューを書こう

ジュンク堂池袋本店でイベントがあるようです

最新のRuby on Railsの魅力を語る~3.0、3.1、3.2、そして4.0へ~

日時
2011年7月21日(木)19:30~
会場
4階喫茶にて。入場料1,000円(ドリンク付)
定員
40名
受付
1階サービスカウンターにて。電話予約承ります。

定員があるので、予約しておいた方が良さそうですね。え、もうRails4の話もあるの??という感じですが、気になりまくり。

追記(2011/08/08):本買いました!

RubyKaigi 2011で先攻発売&著者3人によるサイン会もあったので買いました。

Rails3でRoutingが大きく変わって、より簡潔に書けるようになってますが、どうやって書くのかとか、RailsではなくRackアプリで高速にレスポンスさせたいとか、大きく変わったモデル周りのこと、知っといて損は無いし、むしろ知っておいた方がいいことや、参考にサンプルが詰め込んであるし、解説がちょうど良い量で入っていたり、参考になるコラムが含まれているので、これはおすすめです。

2011年6月16日木曜日

deviseのconfirmationメールをプレーンテキストで送る方法

携帯とかHTMLメールだとアレじゃない...

なので、テキスト形式で送りたいよ!と思っちゃう。そんな時は、$RAILS_DIR/app/views/$DEVISE/mailer/confirmation_instructions.html.erb のhtml.erbをtext.erbに変えればOK!

できたらメアドからテキスト形式とHTML形式と振り分けたいかなーと思ったけど、めんどくさかったので、この方法でやることにしました。

2011年5月25日水曜日

Rails3.1でCoffeeScript SCSS HTTP Stream jQuery defaultな件...

CoffeeScriptとSCSS

Rails 3.1から、appフォルダ内にassetsというフォルダができて、その中にjavascriptsとstylesheetsというフォルダができるようになった。そしてそこにCoffeeScriptファイルやSCSSのファイルを置くようになります。CoffeeScriptは、JavaScriptの冗長的な書き方ではなくRubyやPythonのように書いて、それをJavaScriptにコンパイルするというものですが、Rails 3.1では拡張子を例えばapplication.jsとすれば普通のJavaScriptファイルですし、application.js.coffeeとすればCoffeeScriptとして扱われ、コンパイルも自動で行われます。つまり完全にオプション的な扱いです。ですが、書き方になれると普通のJavaScriptには戻れなくなりそうですねー。

SCSSはCSSをネストして書いたり、変数を使って書けたりするものです。SASSというのもあって、こちらはもっとプログラマーよりで関数定義までできちゃうんですが、Rails 3.1ではSCSSが採用されました。CSSを書いていると、同じものを書く事がよくあります。例えば角丸border-radiusとか。そういうのはクラスにまとめればいいんですが、クラスにまとめるか、個別に持っておくべきか迷うことがあります。そう言う時にSCSSのmixinは便利そうです。そしてネストさせることで、セレクタよりも直感的に分かりやすくなりそうだなーと思います。

HTTP Stream

PHPでいうところの、ob_flushとかをやるのと同じです。これ、個人的に何が嬉しいのかよく分からなかったんですが、出力に時間がかかる部分で、先に出せる物は出しておいてユーザの体感速度をあげるというのが一つの狙いのようですね。たとえば、headまで出しておいて、そこに含まれるcssやcssに含まれる画像は先にダウンロードさせておくなど。まぁ、でもそこまで重いページって用意したくないし、Rails3のActiveRecordはRails2のActiveRecordより遅いというデータもあるらしく、そちらの改善も期待しています。ActiveRecordばかりに頼らずに最適化しろっちゅー話なんですけどね><

ちなみに、この機能はFiberがないと動かないらしく、Ruby 1.9以上が必要になります。まー実質1.9.2ですね。あと動作環境がnginxとunicornである必要があるようです。Apache+Passengerの環境もサポートしてくれないのかな?両方使ってるので後者もサポートしてほしいですねー。

jQueryがやっとデフォルトに

やったー!てっきりRails3からデフォルトになると思ってたので、やっとこの日が来たか!という感じです。

あー、早くRails 3.1で開発してみたい。