トップ 最新 追記

3 日坊主日記


2008-03-01 [長年日記]


2008-03-03 evolution rather than revolution [長年日記]

_ ひなまつりイブ

イチゴよもぎ大福(あんこ入り)と赤飯を食べました。うまうま。

_ [Rails][rws] NetBeans Ruby Pack / Rails 2.0 (RESTful)

Rails 2.0といえばRESTful。 RESTを避けてはRails 2.0を語れないので、 最上段から振りかぶった話をしようと思っています。

スライドを作成中。

あとは

  • 遷移状態をsessionでなくURLに持たせる話
  • Cookie session store

くらいでどうか。

それからNetBeansでサンプルアプリを作ってみます。 ……という流れでどうでしょう。

ツッコミよろしくお願いします。

_ こんぴら2

高松−三宮間の交通機関はJR・高速バス・フェリーという選択肢があるのだが、 せっかくなので今回はフェリーも検討中。

ジャンボフェリー:高松−三宮 片道(往復割引)1,495円 +(神戸側連絡バス)200円 = 往復 3,390円:3h40m
JR高速バス:高松駅−三宮BT 往復 6,400円:2h40m
JR(鈍行):高松−三ノ宮 片道 3,760円:3h8m
JR(新幹線):高松−三ノ宮 片道 7,080円:1h49m

というわけでフェリーと高速バスが金銭面++

フェリーの問題は便数。05:30発だと9:10着となって早すぎる(10:30発だと間に合わない)。 帰りの連絡バスを逃すとアウト。あとたまに故障する。 高速バスの問題はとにかくしんどいことなのだけど三宮までならまし。

しかしフェリーは安い。浴場もある。

こんぴら2にドイツ製コーヒーメーカーを導入しました! 本格コーヒーからココアまで通常250円〜300円が3月末まで全品100円。  *りつりん2には御座いませんのでご注意下さい。

これは試してみたいなあ。


2008-03-04 [長年日記]

_ Mercurial

win32環境も無問題なのとrevisionを数字指定できるとこがgitより良い。

Vistaにインストールしてみました。

このチュートリアルは素晴らしい。

_ NetBeans Ruby Pack を作る

Mercurialの使い方も確認できたので、後でやってみよう。

(追記):やってみた

_ NetBeans 6.1

Versioning menuにMercurialが入ってる!


2008-03-05 [長年日記]

_ [Rails][NetBeans][Mercurial] NetBeans 6.1 / Rails 2.0 / Mercurial

忘れないうちにまとめ。

rails-2.0.2 projectをMercurialで管理する

ちょう簡単だった。

$ rails ror202
$ cd ror202
$ hg init
$ hg add
$ hg ci

いじょ。

注意:mercurialはからっぽディレクトリを保持してくれないので適当にtmp.txtを置いておこう。

$ hg revert log
$ touch log/tmp.txt
$ hg add log/tmp.txt
$ touch db/tmp.txt
$ hg add db/tmp.txt

追記: ほかにもdb/migrate lib vendor/plugins辺り。

Mercurial reposをWeb上に公開する

とりあえずCGIなら簡単。

mercurial配布に含まれるhgweb.cgiを使う。

[moriq@dev ror202]$ cat /var/www/ror202/index.cgi
#!/usr/bin/env python
#
# An example CGI script to use hgweb, edit as necessary

# adjust python path if not a system-wide install:
#import sys
#sys.path.insert(0, "/usr/local/lib/python24/site-packages")

# enable importing on demand to reduce startup time
from mercurial import demandimport; demandimport.enable()

# send python tracebacks to the browser if an error occurs:
import cgitb
cgitb.enable()

# If you'd like to serve pages with UTF-8 instead of your default
# locale charset, you can do so by uncommenting the following lines.
# Note that this will cause your .hgrc files to be interpreted in
# UTF-8 and all your repo files to be displayed using UTF-8.
#
import os
os.environ["HGENCODING"] = "UTF-8"

from mercurial.hgweb.hgweb_mod import hgweb
from mercurial.hgweb.request import wsgiapplication
import mercurial.hgweb.wsgicgi as wsgicgi

def make_web_app():
    return hgweb("/home/moriq/src/ror202", "rails-2.0.2 project")

wsgicgi.launch(wsgiapplication(make_web_app))

注意: Mercurialを何も考えずに

$ sudo make install

したら

/usr/local/lib/python24/site-packages

に置かれるのだけどPYTHONPATHを設定しないといけないとか。

よくわからないので

/usr/lib/python24/site-packages

に移動した。(よわ

追記: ApacheのCharset指定を止めている場合は

# httpd.conf:
#AddDefaultCharset UTF-8

HGENCODING設定を有効にする必要がある。

# index.cgi:
import os
os.environ["HGENCODING"] = "UTF-8"

Apacheで公開。

# httpd.conf:
Alias /ror202 /var/www/ror202
<Directory "/var/www/ror202">
    DirectoryIndex index.cgi
    AddHandler cgi-script .cgi
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

できた!

やっぱりsshをつかう

httpだとhg pushできないのでsshとすべくplinkを使うよう設定。

plinkの配布元:PuTTY Download Page

1行追加するだけだった。

# Mercurial.ini:
[ui]
editor = d:\arc\vim\gvim.exe
merge = c:\UnxUtils\usr\local\wbin\diff3.exe
ssh = c:\Users\moriq\bin\plink.exe -l moriq -i C:\Users\moriq\.ssh\id_rsa.ppk

参考:*.ppkはputtygenで作ります。 詳しくはPuTTYでssh2プロトコルを使ってssh接続の後半を参照。

D:\usr\src>hg clone ssh://moriq@dev.moriq.com/src/ror202 ssh-ror202
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 45 changes to 45 files
45 files updated, 0 files merged, 0 files removed, 0 files unresolved

D:\usr\src>cd ssh-ror202

D:\usr\src\ssh-ror202>hg pull ..\ror202
pulling from ..\ror202
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)

D:\usr\src\ssh-ror202>hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved

D:\usr\src\ssh-ror202>hg log
changeset:   2:93bc3220fdda
tag:         tip
user:        moriq@moriq.com
date:        Wed Mar 05 00:10:06 2008 +0900
summary:     add db/tmp.txt

changeset:   1:a123037971e0
user:        moriq@dev.moriq.com
date:        Wed Mar 05 00:00:30 2008 +0900
summary:     add log/tmp.txt

changeset:   0:3a81b06fdea8
user:        moriq@dev.moriq.com
date:        Tue Mar 04 23:55:22 2008 +0900
summary:     create mercurial repos for rails-2.0.2 project.


D:\usr\src\ssh-ror202>hg push
pushing to ssh://moriq@dev.moriq.com/src/ror202
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files

できた!

_ [NetBeans] NetBeans 6.1を野良build

Mercurial記念にNetBeans 6.1を野良buildしてみた。

最初

こっちを見たので全buildするはめになってしまった。

Ruby Packだけほしい場合は

こっちを見て進めたほうが良い。

_ [Rails][NetBeans][Mercurial] NetBeans 6.1 Ruby Pack

RSpec

nb-rspec-0.gif nb-rspec-1.gif

Mercurial

nb-mercurial-menu.gif nb-mercurial-history.gif

_ [Rails] restful_authentication: RSpec option

D:\usr\src\ssh-ror202>ruby script\generate authenticated
Usage: script/generate authenticated ModelName [ControllerName]

Options:
--rspec   Force rspec mode (checks for RAILS_ROOT/spec by default)

むう。いつの間に。

D:\usr\src\ssh-ror202>ruby script\generate authenticated user sessions --rspec
? spec\controllers\sessions_controller_spec.rb
? spec\controllers\users_controller_spec.rb
? spec\fixtures\users.yml
? spec\models\user_spec.rb
# spec\models\user_spec.rb:
describe User do
  fixtures :users

  describe 'being created' do
    before do
      @user = nil
      @creating_user = lambda do
        @user = create_user
        violated "#{@user.errors.full_messages.to_sentence}" if @user.new_record?
      end
    end

    it 'increments User#count' do
      @creating_user.should change(User, :count).by(1)
    end
  end
...
# spec\controllers\sessions_controller_spec.rb:
require File.dirname(__FILE__) + '/../spec_helper'

# Be sure to include AuthenticatedTestHelper in spec/spec_helper.rb instead
# Then, you can remove it from this and the units test.
include AuthenticatedTestHelper

describe SessionsController do
  fixtures :users

  it 'logins and redirects' do
    post :create, :login => 'quentin', :password => 'test'
    session[:user_id].should_not be_nil
    response.should be_redirect
  end

  it 'fails login and does not redirect' do
    post :create, :login => 'quentin', :password => 'bad password'
    session[:user_id].should be_nil
    response.should be_success
  end
...

RSpecの教材としても有効かもしれない。


2008-03-06 [長年日記]

_ [Mac] MacbookにMercurialを

  • Mercurialを入れようと思った。
  • MacPortsを入れよう……
  • Xcodeを入れよう……
  • Install CDは家にあるんだよ。←いまここ
本日のツッコミ(全2件) [ツッコミを入れる]

# elim [ADC に登録すれば無償でダウンロードできますよ。ADC Online なら無償ですしこの際ぜひ。 ttp://de..]

# moriq [ありがとうございます。結局、今回は家で入れました。]


2008-03-08 [長年日記]

_ [Mercurial] graphlog extension

Mercurialのプラグインgraphlogを設定。graphlogは標準添付なので~/.hgrcに記述するだけで有効になる。

C:\Users\moriq>cat .hgrc
[extensions]
hgext.graphlog =

NetBeans wcで試すと:

C:\Users\moriq\src\main>hg glog -l 3
@    changeset:   71286:78405e8b0289
|\   tag:         tip
| |  parent:      71285:7be86f29a75b
| |  parent:      71284:f9a52a2f4ecb
| |  user:        Egor Ushakov <gorrus@netbeans.org>
| |  date:        Tue Mar 04 12:50:42 2008 +0300
| |  summary:     Automated merge with http://hg.netbeans.org/main
| |
| o  changeset:   71285:7be86f29a75b
| |  parent:      71156:0ff9f4ae0dc7
| |  user:        Egor Ushakov <gorrus@netbeans.org>
| |  date:        Tue Mar 04 12:44:17 2008 +0300
| |  summary:     no IZ: new asm file item moved to the separate category and only for C/C++ projects
| |
o |    changeset:   71284:f9a52a2f4ecb
|\ \   parent:      71283:20fc5568e5c5
| | |  parent:      71281:fbd0483a8a44
| | |  user:        David Van Couvering <davidvc@netbeans.org>
| | |  date:        Tue Mar 04 01:12:54 2008 -0800
| | |  summary:     Automated merge with http://hg.netbeans.org/main/
| | |

川の流れのように合流しているさまが見て取れる。-l (--limit) を付けないと大河の如く流れてしまうので注意。

_ [RSpec][NetBeans] Nick Sieger Uses RSpec with the NetBeans Ruby Support

via NetBeans Start Page

RSpecはじまったな。もうなんていうか標準て感じ。るびま連載も見逃せない。

コントローラテストなのでmock, stubを使ってモデル@postを置き換えている。 素振りしてみたい。

_ [Mac] KeyCastr

ScreenCastでよくみるアレを入れてみた。 最初、ユニバーサルアクセスがどうのこうの言われて、どこにあるのかわからなかったのだが、環境設定の中にある。

Macデモ環境を整備すべくフォントまわりをいじってみたりしている。

本日のツッコミ(全2件) [ツッコミを入れる]

# かくたに [この動画、10分でRSpec on Railsのエッセンスを語っていてすごいですよねー。NetBeansダウンロード..]

# moriq [ネトビかわいいよネトビ]


2008-03-09 [長年日記]

_ [Rails][rws] NetBeans Ruby Pack / Rails 2.0 (RESTful) (2)

スライドを更新しました。


2008-03-10 [長年日記]

_ [Rails][rws] collection resource の PUT, DELETE に対応する action

collection resourceをDELETEしようとしたら、map.resourcesはこのケースに対応していないことに気づく。

ぐぐるとすでにticketがあった。

DELETEの代わりにempty resourceをPUTするというのは良い発想だなと思ったが、PUTとは別にDELETEしたいことはあるだろうし、対応しない理由はない。

ただし、collection resourceをPUTすることにも現在のmap.resourcesは対応していない。

_ [NetBeans] ねこび〜ん

MDD。 ドラえもん並みに猫とは縁遠い生物に仕上がっている。


2008-03-11 [長年日記]

_ [rws] HTTP PUT, DELETE methodが実装されない理由

なんで現代のWebブラウザにHTTP PUT, DELETE methodが実装されないかといえば、 それは主にセキュリティが理由らしいのだが、

ブラウザ兼エディタであるAmayaのような環境だとどうなってるんだろう。


2008-03-12 [長年日記]

_ [Rails][RSpec] rspec autotestがいつもgreenな件

rails (2.0.2)
rspec (1.1.3)
ZenTest (3.9.1)

Windows環境では spec/spec.opts から

--colour

を外す必要がある。

外さないと

shell> ruby spec\models\weather_spec.rb > out.txt

としたときに out.txt に出力が含まれない。 autotestは同じようにredirectするので、これにひっかかる。

色を付けるために使っている

win32console (1.0.8)

出力をredirectするとこいつがSTDOUTを食ってしまうというバグがあるためらしい。

色付けを外してもまだだめ。

rspec/lib/autotest/rspec.rb:
  consolidate_failures()

がおかしい。

rspec r3312 以降だと直ってるらしい。

てことでtrunkを試してみることにしよう。。

追記:確かに直っていた。


2008-03-13 [長年日記]

_ [NetBeans] NetBeans 6.1用の日本語 zip を公開

GJ! これでデモは6.1系でやっても問題ない。

ネトビからるりまを引けるようにする。長期的な目標だな。


2008-03-20 [長年日記]

_ [] キーボード配列QWERTYの謎

via http://d.hatena.ne.jp/takahashim/20080315#p1

キーボード配列QWERTYの謎 キーボード配列QWERTYの謎

この凝りようは馴染みがあるとamazonでチェックしたら

文字符号の歴史―欧米と日本編 文字符号の歴史―欧米と日本編

借りた本) だった。


2008-03-28 [長年日記]

_ [Mercurial] hgsvn

$ wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
$ tar xvzf Python-2.5.2.tgz
$ cd Python-2.5.2
$ ./configure --prefix=/home/moriq/c --enable-shared
$ make
$ make install
$ ~/c/bin/python -V
$ export LD_LIBRARY_PATH=/home/moriq/c/lib
$ ~/c/bin/python -V
$ cd ..
$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ ~/c/bin/python ./ez_setup.py
$ ~/c/bin/easy_install --help
$ ~/c/bin/easy_install mercurial
$ ~/c/bin/easy_install hgsvn
$ mkdir repos
$ cd repos
$ ~/c/bin/hgimportsvn http://dev/svn/repos/trunk
$ cd trunk
$ ~/c/bin/hgpullsvn