12September
Rails: FreeBSD + sqlite3
あるテストでsqlite3が必須なような感じだったので、SQLite3をインストールすることに。
例によってportsで入れました。
あと、sqlite3-rubyも入れました。
調べていくと、sqlite3-rubyのインストール時にswigってのが必要らしいのでセットアップしてもダメ。
途方にくれかけたのですが、FreeBSD上でのsqlite3でFTS2を使うとダメらしい(参考: freebsdグループ - くれすのFreeBSD日記 - sqlite3を起動するとSegmentation Faultする)ので、外してみると普通に問題なくどうさ。
sqlite自体の問題だとは思わなかったのでかなり予想外です。
例によってportsで入れました。
# cd /usr/ports/databases/sqlite3
# make install clean
しました。あと、sqlite3-rubyも入れました。
# gem install sqlite3-ruby
これでrakeすると、なんどやってもrubyがSegmentation Faultします。調べていくと、sqlite3-rubyのインストール時にswigってのが必要らしいのでセットアップしてもダメ。
途方にくれかけたのですが、FreeBSD上でのsqlite3でFTS2を使うとダメらしい(参考: freebsdグループ - くれすのFreeBSD日記 - sqlite3を起動するとSegmentation Faultする)ので、外してみると普通に問題なくどうさ。
sqlite自体の問題だとは思わなかったのでかなり予想外です。
06September
Rails: Migrationがぶつかったとき
Railsで共同開発をしている初期段階とかだと、マイグレーションファイルのバージョンがぶつかることも多々あると思います。
そんなときの回避方法をまとめておきたいと思います。なお、ぶつかる場面が各自モジュールを個別に作っていると仮定します。同一テーブル等の衝突については以下で回避できない場合があると思います。
こんなかんじでしょうか。そもそも、こうならないような工夫が必要だと思いますが。
あと、これでうまくいくためのコツですがマイグレーションファイルは作成後すぐsvn addしないほうがいいと思います。すぐaddしちゃうとこういうのがおきたときのリネームとかややこしくなったりするので。
これを自動化するスクリプトとかあればいいなあ。と思った。
ちょっと時間があれば作ってみるかな。
そんなときの回避方法をまとめておきたいと思います。なお、ぶつかる場面が各自モジュールを個別に作っていると仮定します。同一テーブル等の衝突については以下で回避できない場合があると思います。
- #1. svn upとかしてぶつかった。
- なんでぶつかるのー?と悲観にくれましょう。
例として、[010_hoge.rb, 011_fuga.rb]を作っていてマイグレーション済みとし、010_piyo.rbがリポジトリから追加されたファイルとしましょう。現在、010がぶつかりましたね。orz - #2. ぶつかったファイルをリネームする
- リポジトリ管理されている、衝突したバージョンのファイルだけ手元の環境でマイグレーションできるファイル名にリネームします。
例では、
$ mv 010_piyo.rb 012_piyo.rb010_piyo.rbをリネーム対象とし、012_piyo.rbとし、手元の環境では問題なくマイグレーション出来るようにします。 - #3. マイグレーション
- ここまできたらマイグレーションするしかありません。
$ rake db:migrateしちゃってください。勢いも大切? - #4. リネームしたファイルを削除してrevert.
- このままだと、リポジトリのファイルをリネームしてしまい、他人に影響が出まくるので、リポジトリのファイルは元に戻します。
例では、
$ svn revert 010_piyo.rbとして、010_piyo.rbを復活させて、リネームした012_piyo.rbを削除しています。
$ rm 012_piyo.rb - #5. 手元のファイルをリネームする
- 先にコミットされたので、自分は引くしかありません。手元のファイルを回りが問題なくマイグレーションできるようなファイル名にリネームしてください。
例では、
$ mv 010_hoge.rb 011_hoge.rbとして、010だったファイルを011へ、011だったファイルを012にして他人がマイグレーションできるようにしています。
$ mv 011_fuga.rb 012_fuga.rb - #6. 悲劇にあわないためにコミット!
- この作業、結構面倒なのでこういう悲劇が起きないように急いでコミットしましょう(笑)
こんなかんじでしょうか。そもそも、こうならないような工夫が必要だと思いますが。
あと、これでうまくいくためのコツですがマイグレーションファイルは作成後すぐsvn addしないほうがいいと思います。すぐaddしちゃうとこういうのがおきたときのリネームとかややこしくなったりするので。
これを自動化するスクリプトとかあればいいなあ。と思った。
ちょっと時間があれば作ってみるかな。
03September
Rails.vim v200でExtract, Partial
最近、学校の仲間たちとRailsでモノを作っていて、明らかに自分だけVimで作業をしているわけです。
そこで、Rails.vim(説明の日本語版っぽいのはこちら - 83's : rails.vimのいい加減な翻訳)を入れてサクサク開発しているわけです。
しかし、Stableのv.200だと :Rextract, :Rpartialが効かない。
そこでVimscriptの勉強をかねてコードを追ってみた。
plugin/rails.vim line.2778~
それを一旦Offにするためにスワップしてるようなコードだと思う。On/Offのフラグで空文字はおかしかろうということで、以下のように変えてみた。
とりあえず、SVN版ではそうなってるので、引っかかってる人がいればこんな編集しないでSVN版使えばいいと思うよ。
そこで、Rails.vim(説明の日本語版っぽいのはこちら - 83's : rails.vimのいい加減な翻訳)を入れてサクサク開発しているわけです。
しかし、Stableのv.200だと :Rextract, :Rpartialが効かない。
そこでVimscriptの勉強をかねてコードを追ってみた。
plugin/rails.vim line.2778~
let ai = &ai
let &ai = ""
silent exe "norm! :".first.",".last."change\<CR>".fspaces.renderstr."\<CR>.\<CR>"
let &ai = ai
&aiってなんだよ?って感じで調べていくと、多分autoindentの設定をやってるオプション変数らしいってのがわかった。それを一旦Offにするためにスワップしてるようなコードだと思う。On/Offのフラグで空文字はおかしかろうということで、以下のように変えてみた。
let ai = &ai
"let &ai = ""
let &ai = 0
silent exe "norm! :".first.",".last."change\<CR>".fspaces.renderstr."\<CR>.\<CR>"
let &ai = ai
華麗に動作。俺天才。ゴメンナサイ。とりあえず、SVN版ではそうなってるので、引っかかってる人がいればこんな編集しないでSVN版使えばいいと思うよ。
02September
PHPカンファレンス2007 懇親会#2
とりあえず、PHPerは焼肉が好きということと、
今回の店はいろんな意味ですばらしかったということがわかった。
今回の店はいろんな意味ですばらしかったということがわかった。
31August
PHPカンファレンス2007
上記にいきます。
そのため、明日から東京入りします!またまたN700に乗ります!
その次の日にPHP勉強会があるという噂がありましたが、まったく音沙汰がないので無いってことなんでしょうね。
誰か日曜日とか遊んでくれませんか?
そのため、明日から東京入りします!またまたN700に乗ります!
その次の日にPHP勉強会があるという噂がありましたが、まったく音沙汰がないので無いってことなんでしょうね。
誰か日曜日とか遊んでくれませんか?
29August
誕生日会を成功させるための10のTips
2ヶ月ほど前に、誕生日会をしてもらって普通に感動してた自分がいたわけですが、この感動は他の人も味わうべきだと思って、ある人の誕生日に飲み会をやりつつサプライズ誕生日会を行いました。
比較的成功した??と思ってるので、そのときに工夫した点とかをまとめておこうかなと思います。
書いてみると、10個かけたので良かったです。
ということでHave a nice Birthday party!
比較的成功した??と思ってるので、そのときに工夫した点とかをまとめておこうかなと思います。
まずは準備編
- #1. 場所は飲み屋
- 場所は地味に大事です。パーティーなのに、そういう空気じゃないところでやるとすごくやりづらいです。
飲み屋の中でも、若い子がバイトしてて、個室っぽいところがあるお店を選びましょう。
結構いろんな意味で騒ぐことになるので、個室です。半個室くらいでもいいかもです。
たまに隣の人が祝ってくれたりも!?(実際、軽く拍手とかはしたことがあるw)
そんなことよりも、若い子がバイトしていることです。
色々プレゼントを出したりケーキを出したりするタイミングで盛り上げてもらったりして、すごく助かります。
やってる途中で気づきましたが、これは結構盛り上がりという意味で重要だと思います。
淡々と進んでも面白くないですしね。 - #2. 準備物は先に預ける
- ケーキとかプレゼントとか、持って歩くとどう見ても不自然です。
プレゼントの一つにお花を用意したんですが、お花を持ち歩く人がいたらバレバレだしいろんな意味で不自然ですよね。
そこで、場所の人にお願いして先にそういうものはすべておいておくというのは有効です。
場所の予約をする段階で預かってくれるかどうかの問い合わせとかを行っておくのも良いでしょう。 - #3. ネタプレゼントを用意しておく
- プレゼントって悩みますよね。
とりあえず、ネタにちかいプレゼントを確保しましょう。当日の進行でも重要な位置を占めるのですが、意外に喜ばれるかもだけど、笑ってもらえるものくらいがいいと思います。 - #4. ちゃんとしたプレゼントも用意する
- これが一番難しいと思います。
本人の趣味とかをよく知ってる人をみつけてリサーチするしかありません。誕生日会を秘密裏に進めるに当たってここが一番難しいです。 - #5. ホールのケーキを用意する
- 誕生日会といえばケーキでしょ?!ってのは意外なようです。
あとで知ったことですが、ホールのケーキにローソク立ててHappyBirthday♪みたいなシチュエーションはあんまり経験しないそうです。結構みんなしてるもんだと思ってました。
びっくりさせる意味でも、ホールのケーキを用意したほうがいいでしょう。
当日編
- #6. 軽くやっておく
- 意図的に日程をぶつける場合と、偶然的にぶつける場合で変わってはきますが、誕生日当日に飲み会とかやれば多少は祝ってもらえるものだとは思います。
今回は意図的にぶつけたので、既にちょっとバレバレです。
なので、軽く祝うポーズのようなことをやっておくのも後々驚かせるのには有効かと思います。 - #7. 段取りをちゃんと決めて通知する
- 発起人が暴走しても意味がわからないのです。
段取りは事前に決めてちゃんと通知しておくべきでしょう。タイミング自体は適当でいいと思いますが、みんなで盛り上がれる状態にはしておくべきです。
あと、振る人をきめるのはしっかり決めましょう。
今回は、振る予定だった人が華麗にスルーしてくれたので、すごく焦りました。そういうハプニングも一つ大事なのかもですが。 - #8. ケーキはあと
- 誕生日会なので、早速ケーキを出したいところです。
それをあえてはずしてみましょう。デザートの代わりに持っていくのもいいと思います。
今回はそれ以前に食べ過ぎ状態だったので祝われる立場じゃないのに僕だけケーキを二切れ食べました。こんなんだから、メタボリックが進行するんです。
後出しの効果は他にもありますが。 - #9. イベントを分ける
- いきなりまとめてやっても感動できますが。
ここでネタプレゼントやケーキを後にする効果が出ます。
最初に、ネタプレゼント+αくらいで祝います。ここで、終わったことに見せかけるために普通に食べたり飲んだりします。
そして終わりに近づいたところで、ケーキ+メインのプレゼント+HappyBirthday♪とかにすると、結構サプライズ的でいい感じです。
今回のように、意図的に日程を当てている場合は特に、まだある!的なサプライズは良いと思います。
最後に
- #10. 祝うキモチ
- 当たり前ですが、おめでとう!っていう気持ちが一番大事です。
書いてみると、10個かけたので良かったです。
ということでHave a nice Birthday party!
28August
だんだんダメ。
まぁ、空気も読まずにまたボーリングしてきたわけですが、スコアが落ちる一方です。
勝手に左に行ってしまう。投げるときなんか変なんだろうな。
そんなことより、徐々にRails始めています。
まだまだ簡単なところしか書いてないので、早くサービスといえるものを作りたいなー。
勝手に左に行ってしまう。投げるときなんか変なんだろうな。
そんなことより、徐々にRails始めています。
まだまだ簡単なところしか書いてないので、早くサービスといえるものを作りたいなー。
16August
いたって不運
中学校の同窓会があったので、アレコレ言いながらもいく気だった。
BUT!!!
こんなときに納期間近な仕事があって行けないというミラクル。orz
自分がだらだらやってたのもあるからなんともいえないけど、なんかショックだったなー。
BUT!!!
こんなときに納期間近な仕事があって行けないというミラクル。orz
自分がだらだらやってたのもあるからなんともいえないけど、なんかショックだったなー。
10August
球投げすぎ。
ちょっと考えたんですが、
ここ2週間でボーリングに3回行って、計15ゲームやってた。
どうみてもやりすぎですね。
とりあえず、来週は自重しよう。
ここ2週間でボーリングに3回行って、計15ゲームやってた。
どうみてもやりすぎですね。
とりあえず、来週は自重しよう。
10August
テスト: 初日で最終日
今年もテストの季節がやってきました。
って、1教科しかテスト対象ないんだけども。
そんなわけでDB関連のテスト。
地味に忘れてることも多かったので、微妙なスコアに終わりそうです。
来期はもしかしたらテスト無いかも・・・?
そんなわけで、前期お疲れ様です。
って、1教科しかテスト対象ないんだけども。
そんなわけでDB関連のテスト。
地味に忘れてることも多かったので、微妙なスコアに終わりそうです。
来期はもしかしたらテスト無いかも・・・?
そんなわけで、前期お疲れ様です。
