2011/02/25

WEB+DB PRESS Vol.61が書店にならんだようです

初物なので、実家と大学でおせわになった教授に1冊ずつ送っておきました。
今年は採用のお手伝いで大学に行く予定もないので、元気の便りということで。

もしまだお買い求めでない方は下のリンクからどうぞ!

WEB+DB PRESS Vol.61

2011/02/24

PHPer.jpなるものを試してみた

人生は有限なので、可能なかぎりPHPには関わらないようにしていたのですが、ちょっとすごいサービスをTwitterで見かけてしまったのが運の尽き。

PHPer.jpは、PHP版Herokuと言っても差し支えないサービスです。

これがほんとにすごくて、WordPressを起動するデモがあるのですが、実際にやってみても本当に1、2分で出来てしまうんです。
  1. WordPressをダウンロードして展開
  2. git initして全部コミットする
  3. リモートリポジトリにphper.jpのリポジトリを追加
  4. git push origin master
あとは、ブラウザからWordPressの設定をするだけです!

何故かコンソールツールがRubyで出来ていたり、PHPer.jp自体はRailsで出来てたり、Railsアプリ診断士の@ursmによれば認証はどう見てもDeviceらしいし、ほんとにPHPをやりたかったのか疑問に思えてくる感じです。
サービス自体も、i18nがちょっとおかしいところがあったり、ローカルファイルシステムへの書き込みも普通にできるように見えたり、使っているこっちが色々心配してしまいます。

ホスト名は早い者勝ちのように見えるので、もし今後使う可能性のある人は取っておくといいと思います。私は、まずhtkymtks-ug用のWordPressを作ってみました。

http://htkymtks-ug.phper.jp

2011/02/18

WEB+DB PRESS Vol.61に「Rails3 テスト最前線」という記事を書きました

@ursm@hsbtと共同執筆という形でRails 3のテストについて記事を書かせていただきました。

特集の冒頭でも述べられていますが、今やRailsはWebアプリケーションのテスト環境の主戦場と言っていい状況になっていると考えています。
新しい機能、ツール、ライブラリ、フレームワークがどんどん出てくる中で、今(2011年初頭)は何に注目すればいいのか、それをどのように考えて使えばいいのか、というところが少しでも伝われば幸いです。

ちなみに、Rails 3に限らない話もたくさんありますので、Rails 2や他のフレームワークを使っている方にも参考になると思います。

最後に、特集内では触れることができませんでしたが、最近注目しているツールとしてCIサーバを2つ上げておきます。

WEB+DB PRESS Vol.61

あわせて読みたい
WEB+DB PRESS Vol.61の特集2に寄稿しました - Ruby x Agile
WEB+DB PRESS Vol.61 で Rails3 テスト最前線という記事を書きましたのお知らせ

2011/02/15

TextareaConnect 〜 Chrome版 It's All Text

ChromeがFirefoxに劣っているいくつかの理由の一つにIt's All Textプラグインの存在がありました。同様のことが出来る拡張を定期的に探していたのですが、今日ついに実用に耐えうる(?)拡張を見つけたので紹介します。

TextareaConnect(☆3つですが、手元の環境では元気に動いています)

Chrome版It's All Textが登場しなかった背景には、Chromeが拡張から外部プロセスの起動を許さないというポリシーがありました。TextareaConnectは、別に起動したサーバプロセスから任意のエディタを立ち上げ、テキストをやりとりすることでIt's All Text相当のことを実現しています。(他にも同じアプローチの拡張があったような気がします)

サーバ側は、なんと出たばかりのNode.js 0.4.0以上を要求するためか、ドキュメント通りにはインストールできなかったのでインストール方法を書いておきます。

前提

Node.js 0.4.0と、npm-0.2.18はインストール済とします。

TextareaConnectのインストール

Extensionのページから先にインストールしておいてください。

TextareaServerのインストール

npm install でgithubからインストールしろと書いてありますが、npm-0.2.18がNode.js 0.4.0のAPIに完全に対応していないのか、ライブラリをダウンロードする際に400エラーが発生します。

そのため、まずwgetなどで https://github.com/epeli/TextareaServer/tarball/v0.1.1 からファイルをダウンロードします。(ファイル名が v0.1.1 となりますがtar.gzです)

次にnpmでダウンロードしたtar.gzからインストールします。

npm install ./v0.1.1

ここでnpmの罠があるのですが、フルパスにするか、./をちゃんと付けてください。そうしないと、httpで取りにいこうとして失敗します。

TextareaServerの起動

たとえば、gvimで編集したい場合は以下のコマンドでサーバを起動します。

textareaserver --editor-cmd gvim

Chromeに拡張をインストール済なら、ここでサーバと接続が確立したというnotifyがでると思います。

使ってみる

textareaやtextinputで右クリックして「Edit in external editor」を選択しましょう。外部エディタが立ちあがりましたね!あとは、そこで編集して保存すればtextareaに反映されます。

既知の問題

gvimを使っているからかもしれませんが、ちょっと使っただけでもいろいろありました。

  • 一度外部エディタを閉じたtextareaで、リロードなど無してもう一度開こうとしても開けない
  • Gmailで使うとgvimが3つたちあがる


おすすめの使いかた

.xinitrcなどで「textareaserver --editor-cmd gvim &」としておくと、サーバの起動を気にしなくていいので便利です。

同様に.textareaserverの中もお掃除してあげるといいかもしれません。

It's All TextがないからFirefoxを使い続けている人は、これを期にChromeに乗り換えてみてはいかがでしょうか。

2011/02/14

バレンタイン

一昨日くらいにフライングでもらいました。今年はマカロンとフィナンシェ!

@mochann はマカロンスキーなので、だいぶ昔に自分が作ってあげようとして大失敗したのも記憶に新しい感じですが、さすがちゃんとマカロンになってました!ありがとう!

Ruby(Rails)で適当なサンプルデータを作るにはfakerかForgery

Fixture Replacementを使っても、本物っぽいデータを大量に作るのは大変ですよね。
例えば、シーケンスを使えば「山田太郎1」から「山田太郎100」を作るのは簡単ですが、どうにも本物っぽくない。
そんな時に使えるのが、以下の2つのライブラリです。

faker: http://faker.rubyforge.org/
Forgery: http://github.com/sevenwire/forgery

fakerは色々forkされていて、どれを使えばいいか迷うところですが、ffakerというのが動作が高速なようです。
ただ、辞書を内部に持っているので、自分で辞書を定義するのが若干面倒です。

一方、Forgeryは辞書を外部ファイルから読み込むようになっています。また、Rails 3のジェネレータもあるようです。とくに制限がなければForgeryを使うといいんじゃないでしょうか。

それぞれの使いかたはREADMEを参照ということで。

2011/02/03

さくらのVPSにFuntooをインストール

うちのサーバは、大学4年から大学院卒業までお世話になった2代目の相棒である「dynabook SS SX/2211」だったわけですが、ついに数日前にお亡くなりになってしまいました。(こいつはCDもついていないしUSBブートもできないので、PXEブートでGentooをインストールして使っていました)
さすがにそろそろ引退させてあげてもいいと思うので、新しい環境としてさくらのVPSを借りることにしました。

CentOSなんていう冗談みたいなOSはあまり使いたくないので、さくらの VPS に Gentoo Linux をインストールする(これ、お知らせからしかリンクないんですね。もったいない。)を見ながらFuntooをインストールすることにしました。

この手順書はすばらしい出来なので、これとFuntooのインストールドキュメント(Gentooハンドブックの差分が書いてある)を見れば大体できるのですが、いくつか注意するところがあるのでちょっと解説しておきます。

1. SystemRescueCDからイメージを取り出すところ

次の7つのファイルを取り出せとありますが、SystemRescueCD2.0では下の5つのファイルはisolinuxというディレクトリの中に入っています。これを、/mnt/workの直下にコピーすればいいみたいです。ディレクトリ構造を反映させる必要はありません。
  • sysrcd.dat
  • sysrcd.md5
  • initram.igz
  • rescuecd
  • rescue64
  • altker32
  • altker64

2. /etc/make.conf

marchとかをどうするかですが、ぐぐってみるとcore2でいいんじゃないかという感じだったので、ひとまずcore2にしておきました。

3. grubの設定と/etc/boot.conf

Funtooは、boot-updateというコマンドでgrubの設定をするので、Gentooと同じ手順ではシリアルコンソールの設定ができません。(grubのバージョンも違うんでしたっけ?)
/etc/boot.confにparamsでシリアルコンソールの設定を書きだすようにしてあげましょう。私のboot.confは以下のようになっています。心配な人は、SystemRescueCDのブート設定も書いておけば、万が一の時も安心です。



最後の再起動前に/boot/grub/grub.cfgだけはちゃんとチェックしておきましょう。シリアルコンソールの設定を忘れるとCentOSのリカバリからやり直しです。

それでは、みなさん楽しいFuntoo生活を!

2011/02/01

プロバイダをi-revoにしました

やはり500円というのは心配だったので、しばらく @ursm に人柱になってもらっていたのですが、大分安定しているようなので乗り換えました。

申し込みウィザードを進んでいくといきなりアカウントが発行されるという、いままでのプロバイダの面倒な作業はなんだったんだと思わずにはいられない感じです。

IPv4で固定IPだけあればいいという人はだいぶお得なので、興味のある人は乗り換えるといいと思いますよ。

http://access.i-revo.jp/