平衡点


2007/10/01

_ ARFixture と yaml_waml

ARFixture は, 現在の DB の内容を test/fixtures 以下へ yaml として出力するための Rails の plugin. 結構便利なんだけれども, Ruby の to_yaml は 2byte データを binary にして出力するので DB に日本語とか入っていると悲しくなります. binary にせずに出力するのが 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 があるんだねぇ.

攻殻機動隊 STAND ALONE COMPLEX The Laughing Man [DVD]
士郎正宗, バンダイビジュアル, ¥710


2007/10/09

_ はてなダイアリに twitter

対応しているみたいなんで, そのうち貼り付けよう.

メモ代わりに, 現在使用している諸々のサービスは

  • bloglines
  • google 関連
  • はてな関連
  • mixi
  • lastfm

... あとなんかあったっけ? うーん.

_ ゆにまがクラシック

今月はともかく, 来月の VISA の払いが航空券の所為で酷い事になっているので, 買えません. うーん. 欲しい...

UNIX MAGAZINE Classic with DVD(DVD4枚付)
アスキー書籍編集部, アスキー, ¥12,720

_ NatureJobs

...OTL


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 忘れてる...


連絡先など
最近の日記
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|
Back to Top ▲