平衡点
2007/10/01
_ ARFixture と yaml_waml
ARFixture は, 現在の DB の内容を test/fixtures 以下へ yaml として出力するための Rails の plugin. 結構便利なんだけれども, Ruby の to_yaml は 2byte データを binary にして出力するので DB に日本語とか入っていると悲しくなります. binary にせずに出力するのが yaml_waml.
- yaml_waml
導入
yaml_waml の svn repositry の構造がちょっと変なので rename.
$ ruby script/plugin install ar_fixtures $ cd vender/plugin $ svn co http://yaml-waml.googlecode.com/svn/trunk/yaml_waml/tags/rel/0.1.0/ $ mv 0.1.0 yaml_waml
使い方
DB から fixtures へ.
$ rake db:fixtures:dump MODEL=ModelName
みたいに. migrate と組み合わせれば
$ rake db:fixtures:dump MODEL=ModelName $ rake db:migrate VERSION=000 $ rake db:migrate $ rake db:fixtures:load MODEL=Book
となって大変便利だ.
_ plugin でのユーザ認証
ユーザ認証に LoginEngine を使おうとしたら, Rails 1.2 から設定が少し変わっていたのでメモ. 1.2 系からは Engine システムがうまく動かなくなったし, LoginEngine もメンテナンスは停止している.
どうも acts_as_authenticated を使うのが流行らしい.
acts_as_authenticated を使う場合
導入と設定
plugin なんで,
$ ruby script/plugin install acts_as_authenticated
で install される. install 後に表示される手順に従って
$ ruby script/generate authenticated user account
でユーザ情報を表わす User モデルと User を操作する AccountController, 付随する view と test が生成される. migration も生成されるので
$ rake db:migrate
すると良い.
詳細は acts_as_authenticated とは を参考に.
それでもLoginEngine を使う場合
現在出版されている書籍の大半ではユーザ認証に LoginEngine を使っているので.
導入
install の方法は変わらない.
$ ruby script/plugin install engines $ ruby script/plugin install logine_engine
設定
vender/plugin 以下に配置された plugin は勝手に load される.
LoginEngine の設定自体は config/environment.rb にこれまでと同様に
# --- # LoginEngine # --- module LoginEneinge config :salt, "hogehero" config :use_email_notification, false end
みたいに記述する. だけど デフォルトで config メソッドが呼ばれないらしいので, パスを追加する.
# Bootstrap the Rails environment, frameworks, and default configuration require File.join(File.dirname(__FILE__), 'boot') # の下あたりに, plugin 用に PATH の追加 require File.join(RAILS_ROOT, "vendor", "plugins", "engines", "lib", "engines", "deprecated_config_support")
とする.
Migration の方法はこれまでの
$ rake engine_migrate ENGINE=login
ではなくて
$ ruby script/generate plugin_migration login_engine
とすれば良い.
Controller, Helper の設定は変わらない.
あと view で CSS を include するタグが変わっていて
<%= engine_stylesheet 'login_engine' %>
から
<%= stylesheet_ling_tag "login_engine", :plugin => "login_engine" %>
に変更になっている.
これで使える
2007/10/02
_ .* の管理
CVS から Subversion へ移行. Subversion はディレクトリの移動が簡単で, もう CVS へ戻れない感じがする...
.emacs.d とか, .vimrc とか, とりあえず .dotfiles 以下に置いて, ~/. にsymlink することにした.
ものっそ適当に作成 ↓
#!/usr/bin/env ruby $KCODE = 'u' require 'fileutils' # mkdir -p class Dir def Dir.mkdir_p(arg) path = String.new arg.each("/") do |x| path = path + x Dir.mkdir(path) unless FileTest.exist?(path) end end end # ディレクトリ内のファイルリスト. .svn と ., .. は無視 dir = Dir.glob('.*').reject{|ign| ign =~ /((^\.svn)|(^\.*$))/ } # 既存ファイルのバックアップを dotfiles/backup 以下に作成する backupdir = Dir.pwd + '/backup' Dir.mkdir_p(backupdir) # メイン dir.each do |file| # ソースファイル dotfile = Dir.pwd + '/' + file # symlink の位置 symlink = ENV['HOME'] + '/' + file # バックアップの位置 backup = backupdir + '/' + file # ファイルが存在する場合 if FileTest.exist?(symlink) # バックアップへの退避 File.rename(symlink, backup) if FileTest.file?(symlink) FileUtils.move(symlink, backup) if FileTest.directory?(symlink) # backup が symlink の場合は削除 File.delete(backup) if FileTest.symlink?(backup) # symlink 作成 File.symlink(dotfile, symlink) else # symlink 作成 File.symlink(dotfile, symlink) end end # backup direcotry が空なら削除 if Dir.entries(backupdir).reject{|i| i=~ /^\.*$/}.size == 0 Dir.delete(backupdir) end
2007/10/07
_ 笑い男
けっこう古い話なんですが, この界隈で話題になったので, ちょっとだけ.
ためしに Top の絵(そろそろ替えたいな...)
使用前:
使用後:
元ネタはこちらです. 総集編と DVD BOX があるんだねぇ.
士郎正宗, バンダイビジュアル, ¥710
2007/10/09
_ はてなダイアリに twitter
対応しているみたいなんで, そのうち貼り付けよう.
メモ代わりに, 現在使用している諸々のサービスは
- bloglines
- google 関連
- はてな関連
- mixi
- lastfm
... あとなんかあったっけ? うーん.
_ ゆにまがクラシック
今月はともかく, 来月の VISA の払いが航空券の所為で酷い事になっているので, 買えません. うーん. 欲しい...
アスキー書籍編集部, アスキー, ¥12,720
2007/10/13
_ emacs22, emacs-snapshot(with xft) for etch
emacs22, emacs-snapshot(with xft) の etch 用パッケージを作りました. 手元の環境では動いているので多分問題無いと思いますが, 無保証・無責任ですので使用の際にはその旨ご了承下さい. emacs22 は lenny のソースから, emacs-xft は Ubuntu Feisty のソースから作成しました.
emacs22, emacs-snapshot(with xft) for Debian GNU/Linux 4.0(etch). Absolute no warranty. Packages are originally, lenny source package(emacs22), Ubuntu Feisty source package(emacs-snapshot).
deb http://orchid.ep.sci.hokudai.ac.jp/~uwabami/pub/ ./ deb-src http://orchid.ep.sci.hokudai.ac.jp/~uwabami/pub/ ./ GPG key: AEE995F4 --- version: emacs22 - emacs22, emacs22-gtk, etc. - 22.1+1-2.uwabami1 - emacs-snapshot, emacs-snapshot-gtk, etc. - 20070928-1.uwabami1 - lookup-el - 1.4.1-2.uwabami1
手元で幾つか試した感じでは, lookup-el の安定板が emacs22 以上に対応していないみたいなんで, それもパッケージングしてあります.
あと, emacs-snapshot で mew を使うと
mew-thread-setup: \ All members of mew-thread-indent-strings must have the same length
と言われて動作しません. 文字幅の解釈(Unicode は文脈によって文字幅が変わる)ですかね? とりあえず, mew の設定ファイルで
(if (>= emacs-major-version 23) (setq mew-thread-indent-strings ["+" "+" "|" " "]))
としておくと良いと思います.
結構前から使っている感じでは emacs22 は安定してます. emacs-snapshot + xft は, まあ, まだα版ですから,それなりです. でもアンチエイリアス効いたフォントってのは見た目綺麗で良いですね.
とりあえず設定はこんな感じで
(if window-system (progn (add-to-list 'default-frame-alist '(font . "September M Mono-20")) (set-default-font "September M Mono-20") (set-fontset-font "fontset-default" 'japanese-jisx0208 '("M+1VM+IPAG circle" . "unicode-bmp"))))
見た目はこれ
まあ emacs は大抵ターミナル上でしか使わないけど, rails-mode の時は重宝します.
2007/10/21
_ cygwin
必要に迫られて Windows をちょこちょこ弄り始めたら, cmd.exe に慣れずイライラし始めたので, 久々に cygwin を install することにした.
事前準備
環境変数として
CYGWIN = tty ntsec nosmbntsec HOME = /home/uwabami SHELL = /bin/bash MAKE_MODE = UNIX
を設定しておく. 「コンピュータ」の「プロパティ」あたりから行けるはず.
install
インストーラである <URL:http://cygwin.com/setup.exe> を落してくる. これを実行して, 取得元に
- http://cygwin-je.sourceforge.jp/cygwin_je/
を追加する.
install は必要最低限のモノだけ. ...とか言いつつ, ruby と subversion, cvs あたりは必要だなぁ. groff, less, vim は cygwin_je 版を install する. あとは openssh + cocot とかかなぁ. X 関係は使わないので install しない.
...cygwin の apt とか無いかなぁ...ありそうなモンだけど.
2007/10/27
_ 日記の設定が消失しました.
backup 時に rsync のコマンドを打ち間違う, という初歩的ミス. 一時は pdumpfs 使ってたんだが...
見栄えが少々変わっていますが, お気になさらず.
というか, そろそろ本格的にはてなダイアリへ移動します.既に Topは移転しました. 中身は変わってないですが, 作業中なんでリンク切れが激しいと思います.
...しっかし画像が展開されない...
あ, キャッシュが残ってるダケか. これ一括再生成できないかな.
...ちなみに tDiary 版は→徒然
_ mixi.el を使ってみる.
mixi のデザインが変わって, ますますブラウザから見る気がおきないので, emacs から使えないか, とか思ったりして(大抵は携帯電話から確認しているのですがね).
導入
CVS から取得
$ cvs -d:pserver:anonymous@cvs.m17n.org/cvs/root login CVS password: [Enter] $ cvs -d:pserver:anonymous@cvs.m17n.org/cvs/root co mixi
install する場所は ~/.emacs.d/elisp/mixi に. autoconf じゃなくて autoreconf だったのに気がつかず, ちょっと悩む.
$ cd mixi $ autoreconf -f -i $ ./configure --with-lispdir=${HOME}/.emacs.d/elisp \ --with-emacs=/usr/bin/emacs-snapshot-gtk $ make $ make install
... info は, まあ良いや.
設定
install の場所が一般的でないので, sb-mixi.el をコピーしないといけなかった訳ですが, これって追加設定できないのかな? 多分できるんだろうけど.
;; sb-mixi の設定 (setq load-path (cons "~/.emacs.d/elisp/mixi" load-path)) (setq mixi-default-email user-mail-address) (setq mixi-default-password "XXXXXXXX") (setq mixi-login-use-ssl t) (setq mixi-cache-expires t) (setq mixi-cache-use-file t) (setq shimbun-mixi-logout t) (require 'mixi) (require 'sb-mixi)
みたいな感じで. あとは mew-shimbun の設定を追加
(setq mew-shimbun-folder-groups ... ("mixi" ("mixi.new-diaries" . 1) ) ... )
みたいに?
感想
うーん. やっぱ shimbun で読むのツライかなぁ... Atom での出力を試してみよう.
2007/10/29
_ spml package for etch
呟きです. 気にしないで.
ようやっと終わった...
- ToDo メモ
- rdoc-f95 の置き場が group writable じゃないので置けませんメール.
- 手引き作成
- ディレクトリ整理
- stable -> codename, GPG key のメール.
2007/10/31
_ サイトの移転
移転に際して, HTTP 301 を返すように設定するの忘れてた.
cat .htaccess RedirectMatch 301 index.* [移転後のURL]
みたいにして, 確かに Redirect されるようになった. とりあえずこんな感じで.
中身の整理もそろそろしなきゃなぁ.
...Fortran 忘れてる...