3 日坊主日記
2008-03-01 [長年日記]
2008-03-03 evolution rather than revolution [長年日記]
_ ひなまつりイブ
イチゴよもぎ大福(あんこ入り)と赤飯を食べました。うまうま。
_ [Rails][rws] NetBeans Ruby Pack / Rails 2.0 (RESTful)
- 2008-03-15 第24回 Ruby/Rails勉強会@関西 @神戸大
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 [長年日記]
_ 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] 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-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を置き換えている。 素振りしてみたい。
2008-03-09 [長年日記]
_ [Rails][rws] NetBeans Ruby Pack / Rails 2.0 (RESTful) (2)
- 2008-03-15 第24回 Ruby/Rails勉強会@関西 @神戸大
スライドを更新しました。
2008-03-10 [長年日記]
2008-03-11 [長年日記]
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-20 [長年日記]
_ [本] キーボード配列QWERTYの謎
via http://d.hatena.ne.jp/takahashim/20080315#p1
この凝りようは馴染みがあると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


# elim [ADC に登録すれば無償でダウンロードできますよ。ADC Online なら無償ですしこの際ぜひ。 ttp://de..]
# moriq [ありがとうございます。結局、今回は家で入れました。]