前の月 / 次の月 / 最新

MuraTaka 速記メモ / 2008-01

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2009 : 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
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

2008-01-31 Thu

読んだ本::それがぼくには楽しかったから [Books]

まだ読んでいなかったので、図書館で見つけて読んでみた。
やっぱり Just For Fun だよな。

それがぼくには楽しかったから (小プロ・ブックス)
リーナス トーバルズ デビッド ダイヤモンド 風見 潤
小学館プロダクション (2001/05/10)
売り上げランキング: 33642
おすすめ度の平均: 4.0
5 お金よりも誇りに生きがいを感じる人たちに次世代を感じます。
3 著者のLinus Torvalds氏自体に興味がある人向け
4 Just For Fun

2008-01-29 Tue

Ruby クックブックを読む 10 [Ruby]

3.8, 3.9 をやって取りあえず3章は終わり。

メタクラス Class を初めてちゃんと意識した。。。(今更)

Class#initialize の引数って *args, &block なんだよな・・・
そうだよ、そうなんだよ・・・でやっといろいろなことが自分の中で説明がつく。

メールに関する RFC メモ [Mail]

SMTP コマンドに関するもので、以下のようなものが。
- RFC 821
  元祖。今では実装されていないコマンドもある。
- RFC 2821
  RFC 821 で定義されているコマンドが一部使用されなくなったため、
  そのかわりに出てきた仕様。
- RFC 2554
  認証に関するもの。SMTP Auth。
- RFC 3207
  TLS を用いた SMTP セッションの暗号化。STARTTLS コマンド。
- RFC 2920
  PIPELINING の定義。
- RFC 1870
  SIZE コマンド。

2008-01-28 Mon

引用記号を付ける方法 [Emacs]

- ubulog: Emacsで引用記号付き貼り付け
貼り付けまではなくてもいいのだが、書いたものに引用符を付けられる機
能があるとうれしい。string-rectangle というのがデフォルトであった
んだ。これ便利。
しかし、知らない有用な機能がいっぱいだなぁ。
・範囲選択して、C-x r t
・引用記号をミニバッファできいてくるので指定

2008-01-26 Sat

popfile を入れておく [Tool]

Ubuntu に spam 対策に popfile を入れておく。
bogofilter をしばらく使っていたのだが、どうも調子よくない。
以前使っていてその精度の高さは実証済みなので再度 popfile を使うこ
とに。
spam filter として、popfile を先に選ばなかった理由としては、
常駐ものをふやしたくないため。

今回は、別サーバにて起動させておく。

- POPFile on Ubuntu POPFile Documentation Project

2008-01-25 Fri

ssh で異なるマシン上で異なるユーザ名を使っているときの設定 [SSH]

$ ssh -l user_name host
で現在使用してるユーザとは異なるユーザ(user_name)で host にログイ
ンできるが、必ず host には異なるあるユーザでログインする場合には、
-l オプションをイチイチ使わずに、設定ファイルに書いておくこともで
きる。

~/.ssh/config
ファイルに、
User user_name
を入れておく。

svn+ssh を使うときに便利。

Ubuntu に subversion を入れておく [Ubuntu]

$ sudo apt-get install subversion
[sudo] password for taka:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
Reading state information... 完了            
以下の特別パッケージがインストールされます:
libsvn1
提案パッケージ:
subversion-tools db4.4-util patch
以下のパッケージが新たにインストールされます:
libsvn1 subversion
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 88 個。
843kB のアーカイブを取得する必要があります。
展開後に追加で 4878kB のディスク容量が消費されます。
続行しますか [Y/n]? Y
取得:1 http://jp.archive.ubuntu.com gutsy/main libsvn1 1.4.4dfsg1-1ubuntu3 [602kB]
取得:2 http://jp.archive.ubuntu.com gutsy/main subversion 1.4.4dfsg1-1ubuntu3 [241kB]
843kB を 0s で取得しました (1346kB/s)
未選択パッケージ libsvn1 を選択しています。
(データベースを読み込んでいます ... 現在 155326 個のファイルとディレクトリがインストールされています。)(.../libsvn1_1.4.4dfsg1-1ubuntu3_i386.deb から) libsvn1 を展開しています...
未選択パッケージ subversion を選択しています。
(.../subversion_1.4.4dfsg1-1ubuntu3_i386.deb から) subversion を展開しています...
libsvn1 (1.4.4dfsg1-1ubuntu3) を設定しています ...

subversion (1.4.4dfsg1-1ubuntu3) を設定しています ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place


と、ここでは関係ない話だが、インストール後、端末から svn を使用し
た際にコメント追加のエディタが妙なエディタになっていた・・・
Ubuntu のデフォルトってこれ???

vi を標準にしておく。
export EDITOR=vi

2008-01-24 Thu

Oddmuse Wiki を使ってみる [Wiki][Oddmuse]

- Oddmuse: Main Page

ソースをダウンロードする。

$ wget http://www.emacswiki.org/scripts/current
ファイルの名称を current -> wiki.pl に変更。
パーミッション変更。
$ chmod +x wiki.pl

.htaccess ファイルに以下追加。(AllowOverride の設定は適切に)
Options +ExecCGI
AddType application/x-httpd-cgi .cgi
AddType application/x-httpd-cgi .pl

データ格納ディレクトリを用意し、wiki.pl の
仮に /var/www/wiki とする。
$DataDir   = '/var/www/wiki' unless $DataDir;
に指定する。

データ格納ディレクトリ直下に config と言う名前のファイルを用意すれ
ば、それが設定ファイルとなる。
ここに以下の設定を追加した。
$SiteName    = 'WikiWiki';
$HomePage    = 'Home Page';
$AdminPass   = 'password';

Administator の作業。
- Oddmuse: Documentation for Administrators

上記ページにて説明のあるように、administrator の権限を持つと特定の
操作が行えるようになる。administrator 用の id がある訳ではなく、
config (もしくは、wiki.pl)に設定した AdminPass を知っていることで
administrator になれる。

やり方は、上記ページの Start here: 下のリンクから。

画面下にある `Administration' のリンクをクリックし、Administration
画面へ遷移する。
'Password' をクリックし、Password 画面の Password フォームに
config に設定したパスワードを入力し、Save。
パスワードが一致すれば、administrator になる。

administrator の機能で面白いのが`Install CSS'。
リンクをクリックするだけで、自分のサイトにそこに置いてある css が
適用できる。

ここまでの作業で既に立派に wiki を使えるようになっているのだが、もっ
と便利に使えるようにするにはいくつか手をいる必要がある。やり方は以
下のページにまとめてある。

- Oddmuse: Setup a Documentation Wiki

1. Change the Goto Bar
2. Install a Markup Extension
3. Install a CSS File
の3つについて書かれているが、個人的には以下の設定を行う。

■ マークアップの拡張

これは必須かな。

- Oddmuse: Install a Markup Extension

Extension を追加するには、データ格納ディレクトリ直下に modules と
いうディレクトリを用意し、その配下に追加したいモジュールをおくだけ。
ここでは、creople.pl を入れておく。
- creople.pl

■ メニューバーにリンクを追加

公式サイトでは、Goto Bar と言っているもの。
- Oddmuse: Change the Goto Bar
config ファイルに、@UserGotoBarPages の配列を設定しておけばよいよ
うだ。詳細は、
- Oddmuse: Header And Footer

■ ページの先頭に目次を用意する

- Oddmuse: Table of Contents Extension
上記モジュールが必要。
また、上記モジュールは、
- Oddmuse: Usemod Markup Extension
- Oddmuse: Header Markup Extension
の何れかの必要条件としているので、どちらかを入れておく必要がある。

- Oddmuse: Usemod Markup Extension
を使う。

■ Bloging

Blog としても使えるようだ。
- Oddmuse: Create a Blog Front Page
- Oddmuse: Blogging Setup Example

Blog 専用ではなく、情報共有の wiki サイトに blog も組み込む(主に
News 系を管理)したかったので、以下の設定をしておく。

- Module:weblog-3.pl
を拡張モジュールとして追加。

Goto Bar に New というリンクが現れるので、New をクリック。
デフォルトで当日の日付の入った input form がある。
yyyy-dd-mm の後にスペース、Category 名称としたい文字列を入れて
`Go!' をクリックすると Entry がポストされる仕組み。
New をクリックした後のページに、`Edit Categories.'という文言があり、
Categories というページへのリンクがある。
何もしなければこのページは空のページ。
取りあえず最初のポストではそのまま Entry をポストし、後でこの
Categories のページを編集する。登録した Category 名称へのリンクを
通常の wiki の要領で書き込むのみ。

先に書いた News 系のページを用意したかったので、このページは
Information という Category 名称にし、Information ページには、
Journal Page にする。以下の書き込みを行うのみで、Information カテ
ゴリのページが一覧で表示される。
<journal "^\d\d\d\d-\d\d-\d\d.*Information">
Goto bar に Information を常時表示させたいので、config の
@UserGotoBarPages 変数に 'Information を追加しておく。

ちなみに、blog ページの一覧は、
<journal>
と記載するのみでよい。

2008-01-23 Wed

apache2 起動時のエラー [Apache][Ubuntu]

あれ?Apache2 起動時にエラーがでる。

$ sudo /etc/init.d/apache2 start
 Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
...done.
そういえば、ServerName をまだ指定していなかったような・・・
・/etc/apache2/apache2.conf

ServerName host_name
を追加しておく。

既に起動している Emacs で sudo 権限でファイルを編集する [Emacs]

通常のファイルを開く(C-x C-f)体勢をとったところで、ミニバッファに、

/sudo:root@localhost:/file_name
root@localhost を省略して、
/sudo::/file_name
でもいける。

Oddmuse Wiki を編集するために oddmuse.el を入れておく [Emacs][Wiki][Oddmuse]

Oddmuse という Wiki を編集するための elisp プログラム oddmuse.el を入れておく。
- EmacsWiki: oddmuse.el

Oddmuse Wiki は以下のサイト。
- Oddmuse: Main Page

2008-01-22 Tue

install-elisp.el を入れておく [Emacs]

- EmacsWiki: install-elisp.el
からダウンロードした elisp ファイルを load path の通ったディレクト
リに配置し、.emacs.el に

(require 'install-elisp)
を追加。

2008-01-20 Sun

Ubuntu Samba を使った共有 [Tool][Ubuntu]

GUI でできるというのは、初心者にもうれしいところか。

・フォルダを選択した状態で右クリック
・[フォルダの共有]を選択
  → Samba, NFS がインストールされていない場合には、インストールす
     るかどうか聞いてくる。
・共有するフォルダのダイアログにて、[Windows ネットワーク(SMB)]を選択

■ 注意

Samba のユーザ管理。
Samba のid/password は、システムのユーザアカウント/password とは別
で管理されている。Samba のパッケージをインストールする際、システム
に登録されているアカウントはそのまま Samba ユーザとして登録される
が、パスワードは設定されない。

なので、
・Samba を利用するユーザのパスワードは設定する必要がある
・後から追加したユーザについては、Samba のユーザをちゃんと追加してやる
ことが必要。

NFS Ubuntu をサーバに、Mac をクライアントに [Tool]

■ サーバ側(Ubuntu)の設定

・NFS サーバが入っていないのでインストールする。

$ sudo apt-get install nfs-kernel-server
$ sudo apt-get install nfs-common
$ sudo /etc/init.d/nfs-common status
rpc.statd running

・エクスポートの設定
/etc/exports にエクスポートするファイルシステムを設定する。
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes  gss/krb5i(rw,sync)
#
/home/hoge/shared       172.16.xxx.xxx(insecure,rw,sync)
Mac からの接続には、上記のように、insecure を入れておく必要があり
そうだ。
もしくは、

■ クライアント(Mac)

マウント状態を確認する。
$ showmount target_host
Hosts on target_host:
172.16.xxx.xxx
-e オプションを指定すると export list も表示する。
$ showmount -e target_host
/home/hoge/shared                  172.16.xxx.xxx 172.16.xxx.xxx 172.16.xxx.xxx

マウントする。

$ sudo mount_nfs -P target_host:/home/hoge/shared /Users/hoge/mnt

あれ・・・書き込みができないのはなんで?
Linux をクライアントにした場合は問題ないんだが・・・

- NFS Manager:Description
という GUI のツールもある。


■ 追記

あれ・・・書き込みができないのはなんで?
Linux をクライアントにした場合は問題ないんだが・・・


ユーザ ID の問題だな・・・
Linux 側は、

$ cat /etc/passwd | grep hoge
taka:x:1000:1000:Taro Yamada,,,:/home/hoge:/bin/bash
で、Mac 側は、
$ nidump passwd . | grep hoge
taka:********:501:501::0:0:Taro Yamada:/Users/hoge:/bin/bash

NFS サーバは、ユーザを名前でなく、ID によって区別するものらしいの
で、これで同じユーザとして見られていないことがわかった。

さて、どうするべ。

■ 参考 URL
- 【コラム】OS X ハッキング! (14) OS XでNFSを利用する(2) パソコン マイコミジャーナル
- 【コラム】OS X ハッキング! (15) ユーザIDの問題を解決する パソコン マイコミジャーナル

2008-01-15 Tue

Mew に自動詰め込みモードをフックする [Emacs][Mew]

Mew でメールを書く際にテキストの自動詰め込みモードがあった方がうれしいので、フックしておく。

- Mew (Messaging in the Emacs World): hooks

Draft モードでは、フックを `text-mode-hook'、 `mew-draft-mode-hook' の順で評価します。`text-mode-hook' で `auto-fill-mode' を設定していない人は、 `mew-draft-mode-hook' を以下のように設定するのがよいかもしれません。

(setq mew-draft-mode-hook (lambda () (auto-fill-mode 1)))


text-mode にフックすると他でも影響がでるのだが、どうしよう。
mew-draft-mode-hook を使うか。まぁ、大概テキスト書く時とメール書く
時でそこまで大きな違いはない(引用を考えると、メールは若干1行の文字
数を落とした方がいいか)ので、text-mode にフックすることにする。

fill-column is a variable defined in `C source code'.
Its value is 74
Local in buffer ChangeLog; global value is 70
Automatically becomes buffer-local when set in any fashion.

自分の環境では、C-h v RET fill-column で、70 となっている。メールを
書く時は 60 くらいの方がうれしいので、fill-column も 60 に合わせて
おく。

(add-hook 'text-mode-hook
  (lambda ()
    (auto-fill-mode 1)
    (setq fill-column 60)))

と、text-mode にフックしたことで、すぐに影響あり。
ChangeLog にも text-mode は使われており、これが 60 で詰め込まれる。
行頭にタブのあるフォーマットなので、これはちょっと不便だな。
change-log-mode では外しておく。
(add-hook 'change-log-mode-hook
  (lambda ()
    (auto-fill-mode nil)))

2008-01-14 Mon

tDiary に固定リンクを表示させる [tDiary]

tDiary には、デフォルトでは固定リンクを明示的に表示させるものがない。
タイトルの横のリンクがそれにあたるのだが、わかりにくいとの指摘を受ける。

固定リンク(permalink)と明示的にわかるように表示させる。
プラグインでやるしかなさそうだ。

- tDiary-users Project - PluginList
- tDiary: How to make plugin

目的としては、
・固定リンクの名称で固定リンクのリンクを用意する
・単位はセクション(記事)単位

プラグインの作り方を読んでいると、コールバック系プラグインが使えそうだ。
- add_section_leave_proc
を使う。パラメータに日付とセクション番号も含まれるので、用途にかなう。
お作法がイマイチわかっていないのだが、下記でうまくいった。

add_section_leave_proc do |date, index|
  target_url = "#{@index}#{anchor(date.strftime('%Y%m%d') + '#p' + sprintf( '%02d', index ))}"
  permalink_str = "<a href='#{target_url}'> 固定リンク </a>"
  hatena_b_search_str = "<a href='http://b.hatena.ne.jp/entry/#{@conf.base_url}#{target_url}'><img alt='b_entry.gif' src='http://d.hatena.ne.jp/images/b_entry_br.gif' width='16' height='12' style='border: none;' alt='このエントリーを含むはてなブックマーク' title='このエントリーを含むはてなブックマーク' align='absmiddle' /></a>"
  hatena_b_add_str = "<a href='http://b.hatena.ne.jp/append?#{@conf.base_url}#{target_url}'><img src='http://d.hatena.ne.jp/dav/images/icon/bookmark/bookmark_br.gif' style='border: none;' alt='このエントリーをはてなブックマークに追加' title='このエントリーをはてなブックマークに追加' width='16' height='12' align='absmiddle' /></a>"
  <<-HTML
  <div class="caption">[ #{permalink_str} | #{hatena_b_search_str} | #{hatena_b_add_str} ]</div>
  HTML
end

2008-01-13 Sun

環境メモ [ENV]

Vaio Ubuntu に SSH をいれておく。

Adob 製品のドキュメントのありか [Adobe]

- Adobe Developer Connection
ここから辿るのかな?
- Adobe - Dreamweaverリソース

ビデオもある。
- Adobe Creative suite 3 video workshop

はじめよう RubyonRails で Rails の再勉強4 [Ruby][RubyOnRails]

第8章 ファイルの添付から。

コントローラー、ビューからパラメータを参照する params メソッド(@params のアクセサ)だが、戻り値は、HashWithIndifferentAccess インスタンスになる。
# @params = request.parameters
HashWithIndifferentAccess は、ActiveAupport で提供されているもので、キーがシンボルであっっても、文字列であっても区別しないようになっている。

ちょっと驚いたのが、コントローラー内でこの戻り値に入っているオブジェクト。単純な文字列が入っているのかと思っていたのが、オブジェクトそのものが入ってくる。
- Rubyist Magazine - RubyOnRails を使ってみる 【第 4 回】 ActionPack

subversion サブディレクトリを無視するには? [Subversion]

Subversion での無視パターンの設定には、
- Subversion/GlobalIgnores - てんぷらメモ
に書かれているような、

$ svn propset svn:ignore "*.log" log
propset の svn:ignore 属性を使った書き方がある。
$ svn propedit svn:ignore log
と、propedit を使う方法。
また、.svnignore ファイルを置くという書き方もある。

設定を確認する場合には、
$ svn proplist -v svn+ssh://host/project/tmp
など。

ただ、svn:ignore はサブディレクトリに効かない。どうするか?

月額380円で利用できる ヨドバシカメラの公衆無線 LAN サービス [Tool]

まずは無料おためしてということで、
- yodobashi.com : 月額380円で使い放題の高速インターネットサービス
に申し込んでみた。

実体は以下。
- WIRELESS GATE

2008-01-12 Sat

bogofilter で Spam 対応 2 [Tool][Mew]

bogofilter の日本語メールに対する学習を効率化させたく、kakasi を使おうかと。

- Mew + bogofilter + kakasi で spam filter
にやりたいことが書かれていたので、そのまま参考に。

ちなみに、mew-bogofilter.sh のスクリプトの中で、wc に --bytes オプションを使っているが、これは Mac OS X のデフォルトの wc コマンドのオプションとしては使えないので、-c に変えておく必要がある。

- bogofilter のチューニング -- 日本語処理等<BR>(MacOSX & Cygwin on Windows)
  長〜い目で見ると、気にしないといけないかな・・・
- Mew and bogofilter

とりあえず、そこまで食わせていない状態なのだが、ある程度拾ってくれるのでしばらくこれで運用してみる。

Mac kakasi を入れておく [Mac][Tool]

spam filter での日本語の分かち書きを行うため、kakasi を入れておいた。

$ port search kakasi
p5-text-kakasi                 perl/p5-text-kakasi 2.04         This module provides interface to kakasi.
kakasi                         textproc/kakasi 2.3.4        Program that converts Kanji text to other scripts

$ sudo port install kakasi
--->  Fetching kakasi
--->  Attempting to fetch kakasi-2.3.4.tar.gz from http://kakasi.namazu.org/stable/
--->  Verifying checksum(s) for kakasi
--->  Extracting kakasi
--->  Configuring kakasi
--->  Building kakasi with target all
--->  Staging kakasi into destroot
--->  Installing kakasi 2.3.4_0
--->  Activating kakasi 2.3.4_0
--->  Cleaning kakasi

こんなものも。
- KAKASI 用フロントエンド kakasi.el

Emacs コマンドメモ [Emacs]

■ 困ったときのヘルプコマンド

・現在使用しているモードの説明がみたい C-h m (describe-mode)
  モードの説明(メジャーモード、マイナーモードとも)。
  使用可能な機能+キーバインドなどが見られるので便利。
・C-c をプレフィックスとしたキーバインド一覧をみたい C-c C-h
・変数に設定されている値がみたい C-h v (describe-variable)
・キーシーケンスにどんな関数が割当られているか見たい C-h k
・関数の説明がよみたい C-h f

■ 今は未分類

・テキストを詰め込む M-q (fill-paragraph)

・モードにあったコメントを挿入 M-;
・ミニバッファで Emacs List を評価する M-:
・変数名や関数名の補完 M-TAB

2008-01-08 Tue

bogofilter で Spam 対応 [Tool][Mew]

$ sudo port install bogofilter

■ スパムを学習させる

Summary モードで読んでいるメッセージを bogofilter にスパムとして学習させる。
以下の設定を .emacs.el もしくは、.mew に追加。
(setq mew-spam-prog "bogofilter")
(setq mew-spam-prog-args '("-s" "-N" "-v"))
(setq mew-ham-prog "bogofilter")
(setq mew-ham-prog-args '("-n" "-S" "-v")))

・ls スパムとして学習させる
・lh スパムで無いと学習させる

■ スパムメールを処理する

- ローカルで bogofilter を動かして `*' マークを付ける
  Info スパム(3)より

以下のようなスクリプトを用意し、bogo というファイル名で保存する。
#!/bin/bash

bogofilter -v -T -B $* | grep S
Summary モードで`?' RET を入力。続けてコマンド名に "bogo" を指定すると、
スパムに`*'マークがつく。

後は、m o で +spam フォルダに落としてやる。

MacPorts を入れておく [Mac][Tool]

元々 DarwinPorts を入れていたのだが、このアンインストールってどうすればいいんだっけ?
どうも /opt 配下で完結しているようなので、ばっさり削除・・・の前にリネームしておいて様子をみる。

- MacPorts

- MacPorts downloads
から、Tiger 用
- MacPorts-1.6.0-10.4-Tiger.dmg
を落としてくる。

■ 環境変数の追加

DarwinPorts を入れていた時に /opt/local/bin にはパスは通していた。sbin もかな。
現在の PATH は以下の設定に。
~/.bash_profile

PATH=~/bin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin:$PATH
MANPATH も通しておく。
export MANPATH=/opt/local/man:$MANPATH

■ MacPorts のアップデート
$ sudo port -d selfupdate
Password:
DEBUG: Rebuilding the MacPorts base system if needed.
DEBUG: Synchronizing ports tree(s)
Synchronizing local ports tree from rsync://rsync.macports.org/release/ports/
DEBUG: /usr/bin/rsync -rtzv --delete-after rsync://rsync.macports.org/release/ports/ /opt/local/var/macports/sources/rsync.macports.org/release/ports
receiving file list ... done

sent 74 bytes  received 293584 bytes  15873.41 bytes/sec
total size is 16328299  speedup is 55.60
DEBUG: MacPorts base dir: /opt/local/var/macports/sources/rsync.macports.org/release/base
DEBUG: Setting user: root

MacPorts base version 1.600 installed
DEBUG: Updating using rsync
receiving file list ... done

sent 73 bytes  received 6617 bytes  2676.00 bytes/sec
total size is 3962384  speedup is 592.28

Downloaded MacPorts base version 1.600

The MacPorts installation is not outdated and so was not updated
DEBUG: Setting ownership to root
selfupdate done!

$ sudo port -d sync
DEBUG: Synchronizing ports tree(s)
Synchronizing local ports tree from rsync://rsync.macports.org/release/ports/
DEBUG: /usr/bin/rsync -rtzv --delete-after rsync://rsync.macports.org/release/ports/ /opt/local/var/macports/sources/rsync.macports.org/release/ports
receiving file list ... done

sent 74 bytes  received 293584 bytes  15873.41 bytes/sec
total size is 16328299  speedup is 55.60

■ 基本的な操作

・ソフトウェア一覧の更新
$ sudo port sync
・ソフトウェアの検索
$ port search <package name>
・ソフトウェアのインストール
$ sudo port install <package name>
・ソフトウェアのアンインストール
$ sudo port uninstall <package name>

■ 参考サイト
- MacPortsでステキなUNIXツールをインストール - はこべにっき#

はじめよう RubyonRails で Rails の再勉強3 [Ruby][RubyOnRails]

■ メモ
- render

Rails におけるアクションの実行は、
・コントローラの同名のインスタンスメソッドを実行
・同名の rhtml ファイルを評価
ここで、アクション名と同名の rhtml ファイルを呼ばない場合、render で指定を行う。

アドエスをフルリセット+フォーマット [W-ZERO3]

どうも調子悪い。
試しにいくつかアプリをインストールしてしまったからなのだが・・・
フルリセットを行っても、後から入れたアプリの情報が残っているので、フォーマットも行った。
その作業メモ。

付属のバックアップツールがあるにはあるが、一度クリーンにしたいため、必要なデータだけバックアップしたい。
基本モードと拡張モードとあるが、基本モードはいらないデータもバックしそうなので、やめにする。
拡張モードには選択肢があるのだが、アプリとの関連で何がバックアップされるのか?マニュアルではイマイチ不明。
「個人用データベース」というのがアプリのデータなのかな?
こちらもよくわからないので、
とりあえず
- w-zero3日和 自作 W-ZERO3間のデータ移行を支援 W03DataBackup Ver1.02
でバックアップはとることにした。

・PIM(仕事/予定表)
・ライトメール
・My Documents
・Opera関連ファイル
・ATOK ユーザ辞書

をバックアップ。
後で気付いたのだが、W-ZERO3 メールのデータもバックアップしたかったのだが、これでは復元できないね。。。

やはり Windows である以上、再インストールは必須なのかな。。。
今後はまめにバックアップをとることにしよう。

2008-01-06 Sun

はじめよう RubyonRails で Rails の再勉強2 [Ruby][RubyOnRails]

バージョンの問題に混乱したが、1.2.6 ベースで再度やり直し。
2.0.x の前に1系で。。

scaffold で Schedule を作成後、rake でテストを実施するが、エラー。
8つ出ているのだが、fixture 絡み?

  1) Error:
test_create(SchedulesControllerTest):
StandardError: No fixture with name 'first' found for table 'schedules'
  /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/fixtures.rb:503:in `schedules'
  ./test/functional/schedules_controller_test.rb:15:in `setup_without_fixtures'
  /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/fixtures.rb:576:in `setup'

自動生成されれたテスト
- test/functional/schedules_controller_test.rb
を見てみると、15行目に、
@first_id = schedules(:first).id
という記載が。schedules は
fixtures :schedules
で読み込まれているデータだから、
・test/fixtures/schedules.yml
にあたる。
このファイルを見ると、first では参照できるはずがない。。
one, two って書いてあるから。。
one を first, two は使っていないようだが、another と書き直しておく。
$ rake
(in /Users/taka/work/tryRoR/trunk/scheduler)
/usr/local/bin/ruby -Ilib:test "/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader.rb" "test/unit/schedule_test.rb" 
Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader
Started
.
Finished in 0.034151 seconds.

1 tests, 1 assertions, 0 failures, 0 errors
/usr/local/bin/ruby -Ilib:test "/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader.rb" "test/functional/schedules_controller_test.rb" 
Loaded suite /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader
Started
...DEPRECATION WARNING: paginate is deprecated and will be removed from Rails 2.0 (Pagination is moving to a plugin in Rails 2.0: script/plugin install svn://errtheblog.com/svn/plugins/classic_pagination)  See http://www.rubyonrails.org/deprecation for details. (called from list at /Users/user/work/tryRoR/trunk/scheduler/app/controllers/schedules_controller.rb:12)
.DEPRECATION WARNING: paginate is deprecated and will be removed from Rails 2.0 (Pagination is moving to a plugin in Rails 2.0: script/plugin install svn://errtheblog.com/svn/plugins/classic_pagination)  See http://www.rubyonrails.org/deprecation for details. (called from list at /Users/user/work/tryRoR/trunk/scheduler/app/controllers/schedules_controller.rb:12)
....
Finished in 0.155892 seconds.

8 tests, 26 assertions, 0 failures, 0 errors
/usr/local/bin/ruby -Ilib:test "/usr/local/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader.rb"  
ふーむ、これを見ると、v2.0 では paginate は Rails 本体からは deprecate され、プラグインになったんだ。

■ 実施タスク
・DB を作成
・RoR の rails コマンドにて新規プロジェクトを作成
・Subversion にレポジトリを作成
  ・log、tmp ディレクトリは管理対象外とする
・config/database.yml を作成した DB の情報に合わせる
・config/environment.rb に文字コード utf-8 を利用する記載を追加
・RoR の migration を使ってスキーマ情報を作成する
  ・ruby script/generate migration create_schedules
  ・rake db:migrate
・RoR の scaffold を利用してアプリの雛形の作成
・入力チェックの追加
・CalendarHelper の導入
  - DynamicCalendarHelper in Ruby on Rails
  - スタイルシートは、
    - http://jvoorhis.com/downloads/webcalendar.zip

今日は、p.101 まで。

RubyOnRails のバージョン [RubyOnRails]

昨日から最新の RubyOnRails(2.0.2) を使って、書籍の内容を試そうとしていたのだが、これがうまくいかない。
理由はバージョンの違い。
現在は、2.0.2 を使っている。

$ rails -v
Rails 2.0.2
$ gem list rails   

*** LOCAL GEMS ***

rails (2.0.2, 1.1.6)
書籍の通り試そうと思ったら、1系のバージョンを使わないと。

Rails は異なるバージョンで使い分けが行えそうだ。
まず1系の最新版を入れておく。
$ sudo gem install rails -y -v 1.2.6
Password:
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list
Updating metadata for 19 gems from http://gems.rubyforge.org
...................
complete
Successfully installed actionmailer-1.3.6
Successfully installed rails-1.2.6
2 gems installed
Installing ri documentation for actionmailer-1.3.6...
Installing RDoc documentation for actionmailer-1.3.6...
おっと、-y オプションはいらないだね。
$ gem list rails

*** LOCAL GEMS ***

rails (2.0.2, 1.2.6, 1.1.6)
ちゃんと入った模様。

で、1.2.6 でプロジェクトを作成するには、
$ rails _1.2.6_ project
とやればよい。

ECB を使えるようにする [Emacs]

CEDET (Collection of Emacs Development Environment Tools) が必要とのことなので、インストールする。

[Help]->[Carbon Emacs Package]->[Net-Install]->[Cedet]

- ECB - Emacs Code Browser
から ecb-2.32.tar.gz を落としてくる。

~/.emacs.d に展開された ecb-2.32 ディレクトリを配置し、そのディレクトリにて以下コマンドを実施。

make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs CEDET=/Applications/Emacs.app/Contents/Resources/site-lisp/cedet

.emacs.el に設定を記述。
;;-----------------------------------------------------------------
;; ECB
;;-----------------------------------------------------------------
(setq load-path (cons (expand-file-name "~/.emacs.d/ecb-2.32") load-path))
(load-file "/Applications/Emacs.app/Contents/Resources/site-lisp/cedet/common/cedet.elc")
(setq semantic-load-turn-useful-things-on t)
;; ECB
(require 'ecb)
(setq ecb-tip-of-the-day nil)
(setq ecb-windows-width 0.25)

(defun ecb-toggle ()
  (interactive)
  (if ecb-minor-mode
      (ecb-deactivate) 
    (ecb-activate)))

■ 基本操作

・C-c . g 1
・C-c . g 2
・C-c . g d ディレクトリ枠へフォーカス
・C-c . g s ソースファイル枠へフォーカス
・C-c . g m メソッド枠へフォーカス
・C-c . g h 履歴枠へフォーカス
・C-c . n 進む
・C-c . p 戻る

■ 参考
- OSX+Emacsで快適なRails開発ライフを送る

ECB の使い方
- Emacs Code Browser の使い方 - From a Far East Island

読んでいる本::Ruby on Rails入門―優しいRailsの育て方 [Books][Ruby]

Ruby on Rails入門―優しいRailsの育て方
西 和則
秀和システム (2006/08)
売り上げランキング: 62997
おすすめ度の平均: 4.5
3 これは入門書ではありません。
3 入門用としては残念。
5 Railsスタートのベストチョイス


「1-1 の Enumerable のメソッド定義」は、ブロックのおさらいとして、Enumerable#each, Enumerable#collect, Enumerable#select の3つのメソッドを Array クラスに自分で定義する質問を設けている。
この設問はいいなぁ。

"入門"という言葉を使っているが、Rails の入門書という扱いではどうかな?と思う。
それよりも副題にある"優しい Rails の育て方"が非常にしっくりくる本。
Rails を使っていく上で基礎になる情報をまとめてくれている。

■ 1-2 Rails による Ruby 拡張機能 ActiveSupport

Rails から切り離してもこの ActiveSupport は使い勝手がよい。
Ruby の基本クラスを拡張した便利なヘルパメソッドが多く含まれている。

使用するには、
require 'rubygems'
require 'active_support'
が必要。

irb 起動時に読み込むには、
$ irb -r rubygems -r active_support

ほんの数ページの内容だけど深い・・・

■ 2-1 Web アプリケーションフレームワークとしての Rails

$ rails hello
を行って、
$ ruby script/generate controller Top
でまずは Hello Rails を表示させようとする。

で、エラー。

rails は 2系からデフォルトで sqlite3 を使っているようなのだが、よく考えると sqlite3 なんていれていない。(Mac OS X 10.4)

database.yml にも、sqlite3 を入れろと書いてあるので、入れてみた。
$ sudo gem install sqlite3-ruby
Password:
Updating metadata for 13 gems from http://gems.rubyforge.org
.............
complete
Building native extensions.  This could take a while...
Successfully installed sqlite3-ruby-1.2.1
1 gem installed
Installing ri documentation for sqlite3-ruby-1.2.1...
Installing RDoc documentation for sqlite3-ruby-1.2.1...

うまく表示される。

にしても、DB を使っていないページでも DB を見にいくんだね。

本には無かったが、日本語対応のため、
config/environment.rb の行頭に、
$KCODE = 'u'
を追記している。

はじめよう RubyonRails で Rails の再勉強1 [Ruby][RubyOnRails]

すっかり忘れてしまっているため、基本は、[2006-07-29] のやり直し。。

はじめよう Ruby on Rails
はじめよう Ruby on Rails
posted with amazlet on 08.01.06
高橋 征義 かずひこ 喜多川 豪
アスキー (2006/07/03)
売り上げランキング: 24234
おすすめ度の平均: 4.5
4 プログラミングを楽しめる本。
5 コンパクト
5 サブとして一冊欲しい本


プロジェクトの作成で一点異なることが。
rails コマンドでの database の指定だが、デフォルト mysql のはずが、作成してみると sqlite3 用になっていた。
$ rails -d mysql
で作成し直し。

$ rake db:migrate
を行った後、log/development.log を確認したのだが、

WARNING: You're using the Ruby-based MySQL library that ships with Rails. This library is not suited for production. Please install the C-based MySQL library instead (gem install mysql).

とのメッセージが残っている。開発向けには、Rails に含まれている Ruby ベースのライブラリでもいけるのだが、C ベースのライブラリを入れておかないといかない模様。
database.yml にも、

# Install the MySQL driver:
# gem install mysql
# On Mac OS X:
# sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
# On Mac OS X Leopard:
# sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
# This sets the ARCHFLAGS environment variable to your native architecture

と書かれている。

と・・・・

この後の作業が本の通りにはいかない。
Rails 2.0.2 を使っているのだが、結構変更があったみたい。
一旦この本に沿って作業するのは中止する。

2008-01-05 Sat

Web 素行調査 [Tool]

- WEB素行調査
おもしろい。。
やってみたけど、

ただ今、依頼の急増により、探偵が全員出払っております!
ただ今のご依頼は2分後に調査完了する予定です。
大変お手数ですが、このURLに再度、2分後にアクセスくださいませ

だって。。

Emacs のキーボードマクロ [Emacs]

あまり使っていなかったのだが、便利。
・マクロの開始 C-x (
・マクロの終了 C-x )
・マクロの実行 C-x e

マクロの開始と終了で記憶させ、C-u n C-x e で効果抜群。
(n は実行回数)

Gem をアップデートしたら、refe が使えなくなった。。 [Ruby]

あれ?おかしい。

$ refe String
/usr/local/bin/refe:17: undefined method `require_gem' for main:Object (NoMethodError)
$ gem list --local

*** LOCAL GEMS ***

actionmailer (2.0.2, 1.2.5)
actionpack (2.0.2, 1.13.6, 1.12.5)
actionwebservice (1.2.6, 1.1.6)
activerecord (2.0.2, 1.15.6, 1.14.4)
activeresource (2.0.2)
activesupport (2.0.2, 1.4.4, 1.3.1)
needle (1.3.0)
net-ssh (1.1.2, 1.0.10)
rails (2.0.2, 1.1.6)
rake (0.8.1, 0.7.1)
refe (0.8.0.3)
rubygems-update (1.0.1)
sources (0.0.1)
Text (1.1.2)
refe をアップデート。
$ sudo gem update refe
Password:
Updating installed gems...
Updating metadata for 28 gems from http://gems.rubyforge.org
............................
complete
Attempting remote update of refe
Successfully installed refe-0.8.0.3
1 gem installed
Gems updated: refe
あれ?バージョン変わっていないけど・・・
$ gem list refe --local

*** LOCAL GEMS ***

refe (0.8.0.3)
だけど、/usr/local/bin/refe は変わったみたい。
require_gem 'refe', version
だったものが、
gem 'refe', version
になっている。

とりあえず使えるようになった。。

Java開発者のための Ajax実践開発入門を読む1 [Java][JavaScript]

「Java 開発者のための・・・」とあるが、Ajax の勉強を兼ねて読み始める。

まずは JavaScript をちゃんとお勉強しておきましょう、ということで JvaScript の入門が続く。
確かに、開発していた頃は JavaScript は使うけれど、そこまで真面目に勉強したことは無い。
書かないといけなくなった時は、ちょっと面倒臭いなぁ・・・と思った自分を思い出す。
ここはひとつ勉強し直してみる。

実験環境として、Firebug を紹介している。
Firefox の拡張機能の一つなんだ。早速インストール。
- Firebug :: Firefox Add-ons
本を読みながら、この Firebug を使って試しているのだが、これは便利!
こんな便利なものがでてきていたのですね。。。

・ECMAScript で定義されている型
  ■ プリミティブ型
  - 数値型
  - 論理型
  - 文字列型
  ■ 複合型
  - オブジェクト型
  - Null 型
  - Undefined 型

・Firebug のコンソールで実行速度を測る

console.time を使用する。

console.time('test');
for (var i = 0; i < 10000; i++) {
  //....
}
console.timeEnd('test');

・JavaScript にも for-in 文がある

for (key in <対象オブジェクト>) {
}
対象オブジェクトが走査され、プロパティ名が key となる。

・プロトタイプチェーンの説明->継承の部分で少し混乱

そもそも prototype プロパティというものを初めて知った自分・・・

全ての関数は「prototype」とう特殊なプロパティを持ち、通常はあるオブジェクトが格納されています。この prototype に設定されたプロパティは、そのクラス(関数)から派生した全てのインスタンスで共有されるようになります。

ほぅ、すばらしい。

しかし、継承はメンドイ。。。

・スコープチェーン

こんな形でスコープの説明を行っているのは珍しい。。偉いなぁ。
ただ、一度読んだだけではすぐにピンとこない。。
手を動かしつつ慣れていくか。

取りあえず、
第1章 Ajax とは何か?
第2章 Java プログラマのための JavaScript 入門
まで。
しかし、2章は濃かった。。

MySQL を入れておく [MySQL]

- mysql-5.0.45-osx10.4-i686.dmg

以下を順にインストール。
- mysql-5.0.45-osx10.4-i686.pkg
- MySQLStartupItem.pkg
- MySQL.prePane

- Building Ruby, Rails, Subversion, Mongrel, and MySQL on Mac OS X at Hivelogic

接続する。

$ mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.0.45 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

さて、久しぶりで何をやればよいんだっけ??
- MySQL AB :: MySQL 5.1 リファレンスマニュアル
まずは権限設定だよな。
- MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 4.7.2 権限システムの機能
通常利用しているアカウントで操作できるようにしておく。
mysql> grant all on *.* to 'user_name'@'localhost';
root のパスワードが空なので、適当に入れておく。
mysql> update user set password=password('xxxx') where user = 'root';
設定反映!
mysql> flush privileges
と、前にやった時の情報がある。
- MuraTaka 速記メモ / 2006-06-25 Tiger に MySQL を

XAMPP を入れ直しておく [Tool]

- apache friends - xampp for macos x

v.0.7.1 を使用。

以前入れていたものは削除。

$ sudo rm -rf /Applications/xampp

gem 自体+ gem のライブラリをアップデート [RubyGems]

かなりアップデートをサボっていたのでアップデート。
まずは gem 自体。

$ gem -v
0.9.0
$ sudo gem update --system
...
$ gem -v
1.0.1
gem のライブラリも。
$ sudo gem update

2008-01-04 Fri

読みたい本::Java開発者のための Ajax実践開発入門 [Books]

Java開発者のための Ajax実践開発入門
河村 嘉之 川尻 剛 福沢 知海
技術評論社 (2007/11)
売り上げランキング: 297
おすすめ度の平均: 5.0
5 JavaプログラマがAjaxを学ぶ良書

tDiary アップデート [tDiary]

- tDiary.org - release tDiary 2.2.0リリース
2.2.0 にアップデート完了。

お古のマシンの再生 [Linxu]

妻から PCV-V10/W を授かった。
- 「バイオV」PCV-V10B/W・V10B/B・V10/W
Celeron-2.20GHz、メモリ 256M。
メモリがちょっと少ないなぁ。

Ecolinux 1.7.1.1 を入れることにしてみた。
- The Ecolinux Project Ecolinux

パーティションの切り方は以下の通りとした。

元々のパーティション
- /dev/sda
    /dev/sda1 ntfs /media/sda1 5G
    /dev/sda2 ntfs /media/sda2 15G
    /dev/sda5 ntfs /media/sda5 60G
という見え方をしている。
/media/sda1 には、リカバーリーディスクが含まれている模様。

インストール時に、以下のように割当
- /dev/sda
    /dev/sda1 ntfs /media/sda1 5G
    /dev/sda2 ext3 / 15G
    /dev/sda6 ext3 /home 59G
    /dev/sda5 swap 1G

と、アカウントの設定のところでどうしてもインストーラーが先に進まない。。。

また、[2007-12-10] に使用した UNetbootin ネットワークインストールにお世話になる。

パーティションの設定では以下の通りとした。
1. 基本 5.0 GB K ntfs /media/sda1
2. 基本 15.0 GB B F ext3 /
6. 論理 59.0 GB f ext3 /home
5. 論理 1.0 GB f スワップ スワップ

取りあえず初期で詰め込んでおくソフトウェアは以下の通りとした。
- OpenSSH server
- Samba File server
- Xubuntu desktop

今回デスクトップは、軽量マネージャーの Xubuntu を使うことにした。

インストールが無事完了。

起動してみたが、確かに Xfce は軽くてよい!

■ 起動後の設定

Keyboad 配列の変更 Ctrl キーと Caps Lock キーの入れ替えを行う。
ホームディレクトリ直下に2つのファイルを用意する。
- .xinitrc
- .xmodmaprc
.xinitrc は既に存在していれば、それに以下の記述を追加。

xmodmap $HOME/.xmodmaprc
xmodmap に読ませている .xmodmaprc は以下の内容。
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

と、設定自体は問題ないのだが、ログイン時に .xinitrc を読み込んでくれない???

取りあえず、.bashrc に .xinitrc に記載した内容を転機しておく。
これで有効に。

■ その後・・・

結局再度 Ubuntu に入れ直し。。。
CD インストールに2度目で成功。。

2008-01-03 Thu

Wii で iPhoto のライブラリを観賞 [Mac]

- Globs site - Web iPhoto Access - Summary
Wii から見られるようにした。

Mac PHP の利用を可能に [Mac]

- /etc/httpd/httpd.conf を編集

$ diff -u httpd.conf httpd.conf.default 
--- httpd.conf  2008-01-03 08:17:04.000000000 +0900
+++ httpd.conf.default  2006-08-19 23:56:35.000000000 +0900
@@ -237,7 +237,7 @@
 #LoadModule dav_module         libexec/httpd/libdav.so
 #LoadModule ssl_module         libexec/httpd/libssl.so
 #LoadModule perl_module        libexec/httpd/libperl.so
-LoadModule php4_module        libexec/httpd/libphp4.so
+#LoadModule php4_module        libexec/httpd/libphp4.so
 LoadModule hfs_apple_module   libexec/httpd/mod_hfs_apple.so
 LoadModule bonjour_module     libexec/httpd/mod_bonjour.so
 
@@ -281,7 +281,7 @@
 #AddModule mod_dav.c
 #AddModule mod_ssl.c
 #AddModule mod_perl.c
-AddModule mod_php4.c
+#AddModule mod_php4.c
 AddModule mod_hfs_apple.c
 AddModule mod_bonjour.c

- apathe の再起動

$ sudo apachectl restart
/usr/sbin/apachectl restart: httpd restarted

- 設定が反映されているか確認

以下を適当なファイル名、例えば info.php、で保存し、適切に表示されるか確認。
<?php phpinfo() ?>

2008-01-02 Wed

2009 : 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
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2009-10-14 00:22