Ruby on Rails: Merb

Rails 3

On December 23rd, we decided to end the duplication and the paradox of choice. That was the day we declared our intentions of bringing the best ideas of Merb into Rails 3. That was the day we announced our commitment to work together.

Rails3でMerbとマージするそうです。マジかよ!

大丈夫かな?何故かというと、技術的にホットなうちにマージして今と同じ機能を持つ段階に行かないと、コア開発者やサードパーティ開発者、ユーザーも飽きちゃって他の良さそうなのに移ると思うんだよね。

Railsって素早く簡単にアプリ作れるフレームワークって感じだけど実際には機能が多いフレームワークって感じがしてます。

「あの機能が無いんじゃなぁ~」

という感じで他に移れないということが多い。それだけ多くの機能をMerbベースに移行するのを素早くできるのかなというのが心配。

開発者の多さとか、コア開発力(量)がハンパ無く多いからそんな心配は要らないのかもしれない。

むしろ後から見たらプロジェクトの重さと開発力がこれ以上低下する前のベストなタイミングなのかもしれない。

個人的には一つのアプリでRailsのバージョンアップは諦めてるので3で滅茶苦茶変えてもらえると面白い。

プラグインAPIが決まるのは素晴らしいと思います。でも俺自身は面倒臭がりなのでAPI違反モンキーパッチをやり続けちゃうと思います・・・。

NHK高校講座 | FAQ(よくある質問)

Q. 再放送はないのですか?

A. 2008年度から再放送はなくなりましたが、テレビ・ラジオのすべての科目の放送内容をホームページで視聴できるようになりました。これによっていつでも繰り返して学習していただけます。各科目とも、放送直後から視聴できますので、ご活用ください。

NKH高校講座いつでも見れるのか!凄すぎる!うれし!(via www.textfile.org)

foo.asx?frame=1234

こんなのとか、

foo.asx#1234sec

とかで動画の内容に直接URIがあったら授業に活用したりがもっと便利かも。 生涯学習支援としてもこれはデカイ。

ハロワとかからの職業訓練の内容もこうなってたら自宅警備員嬉しいのでは? ニコ動の広告の専門学校とネトゲが全てそれに置き換わったら雇用問題が動くぞ!(妄想)

大学もどっかないのかな!?

vim.orgとかで、

wget http://www.vim.org/scripts/download_script.php\?src_id\=9499
(..snip..)
05:29:55 (16.76 KB/s) - `download_script.php?src_id=9499' を保存しました [59914]

ジーザス!

wget http://www.vim.org/scripts/download_script.php\?src_id\=9499 -O rails.zip
(..snip..)
05:30:26 (16.81 KB/s) - `rails.zip' を保存しました [59914]

-Oオプションで安心。

DellのPE T100買っちゃったのその後なんですが、俺の浅い調べのせいで紆余曲折ありました。苦労したのでみなさんの参考(人柱)になれればと・・・。

結論

  • サーバーはNTT-X Store、メモリ・HDDは価格.comで探せ!
  • HP ProLiant ML115 G5にメモリ・HDDいっぱい積め!
  • RAIDは忘れてサーバーもう一台買ってrsyncとかの方が安い! (2009/12/19 現在、HP ProLiant ML115 G5が11,750円・・・)

まず、Dell PowerEdge T100はECC付きメモリじゃないと駄目らしい。2GBx2枚が3,988円で買えるご時世、これは痛い。Dellの営業さんに申し訳なかったけどキャンセル。HP ProLiant ML115 G5をNTT-X Storeで注文。メモリ計8GB(8,336円)、HDD1.5TB(12,568円)を価格.com経由のクレバリーで注文。送料など含めて合計35,229円。(ML115 G5は俺が買った時は13,750円だったのが購入直後に更に2000円引き・・・)

エレクターはあったけどディスプレイが無いのでついでに買ったりもしました。 とりあえず、これにXen8個立ててみてどんな感じか分かりたい。(id:dandasoによれば糞快適だそうです)

ベンチャーじゃないけど、ベンチャーセット的には後、

  • 安いエレクター入手方法
  • 安いUPS入手方法
  • 安いシュレッダー入手方法
  • 安いFAX付き複合機入手方法
  • 安い机・椅子入手方法

が知りたいところです。(机・椅子はIKEAでいいか)

自分で作ったAPI(Rails)用のライブラリ(PEAR)+それを使ったサイト(CakePHP)を作ることになりました。

(とにかく最も幅広い環境でWordpress並みに簡単に動作することが目標です。CakePHP初めて使いますが、一番メジャーなんじゃないかとの判断。) (Wordpress並み=PHP4,5対応、ターミナル必要無し)

PHP4, 5両方対応でXMLをパースするには何がいいのかさっぱり分からなかったんでTwitterで聞いてみました。

Twitter / Masaki Komagata: PHP4, 5対応のXMLパーサって何があるのか誰か …

komagata PHP4, 5対応のXMLパーサって何があるのか誰かおしえて!

すると色々な人から回答が。

PEAR XML_Serializerの中にあるXML_UnserializerとCakePHPの中にあるXmlモジュール?が良いらしい!

CakePHPのやつの方が便利そうだけどライブラリ単体でも使える形にしたかったのでXML_Unserializerを使ってみました。

<?php
require_once 'XML/Unserializer.php';

$us = new XML_Unserializer(array(
    'parseAttributes' => true,
    'encoding'        => 'utf-8',
    'forceEnum'       => array('item')
));
$us->unserialize('foo.xml', true);
$struct = $us->getUnserializedData();
print_r($struct);

forceEnumってオプションは気付かないと罠ですなー。

何故か俺のTwitterのログから消えてるんですが、教えてくださった皆さんあざーす!(shin1×1, nekoya, p4life

こんなヘボイ投げかけに答えてくれるPHPの民はやさしいス。

id:dandasoのオフィスにお邪魔させていただいて朝からガッチリ仕事!

オフィスはまったく無駄が無いですな。 ITベンチャーの勝ち組セットを教えてもらいました。

  • ZOOT for Bフレッツ + 固定IP8(8,925円)
  • IP8は全てXenに。
  • サーバーはNTT-X StoreでHP ML115 G5とかその辺(11,750円)
  • DDR2 PC2-6400 2GB 2枚組×2個=8GB(7,978円)
  • ヴァリュードメインでjpドメイン取得+DNS弄り放題+DNS4台(660円940円)
  • メールはGoogle AppsのGmail(0円)
  • スケジュール管理はGoogle AppsのCalender(0円)
  • タスク管理はRedmine(Wikiもついてる)(0円)

うほっいいセット。

ITは手段というベンチャーの場合にこのセットと管理をしてくれる外注がいてくれたら楽じゃないかな。大企業の場合はIBMとかにポンと外注するけどそれのベンチャー版で担当するのは1人というイメージ。

月10万でメールサポート無料(緊急時現場出動は別途)みたいな感じならエンジニア1人雇うより安上がりで便利かも。

誰か俺に発注してくれないかなw

実家に設置してみました:

ローカル開発環境もpassengerで。

# /etc/apache2/sites-available/cloister
<VirtualHost *:80>
  ServerName cloister
  DocumentRoot /var/www/cloister
  CustomLog /var/log/apache2/cloister-access.log combined
  ErrorLog /var/log/apache2/cloister-error.log
  RailsEnv development
  RailsBaseURI /
</VirtualHost>

<VirtualHost *:443>
  ServerName cloister
  DocumentRoot /var/www/cloister
  CustomLog /var/log/apache2/cloister-ssl-access.log combined
  ErrorLog /var/log/apache2/cloister-ssl-error.log
  RailsEnv development
  RailsBaseURI /

  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
  SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>

SSLもテストできるし、なんでもっと早くやらなかったんだろう。後悔・・・。

ドリホが丸一日以上落ちててあったま来たので実家にZOOT for Bフレッツ + 固定IP8(via id:dandaso)引いてサーバー置くことに。

DellのPowerEdge T100注文しちゃったよ!

自分へのクリスマスプレゼントということで・・・(クリスマスプレゼントが17000円のサーバーって・・・)

年内には間に合わないかな?たのしみ!

追記: PE T100はECC付きメモリしか動かないと聞いて(via id:dandaso)キャンセルしてHPのML115 G5(2000円引き13750円で送料無料)を注文しました。

コレ2個かって8GBにしてやるぜぇ

今年もガチ鬱エンジニア忘年会やりたい気がするけど、もう日程とれないかな・・・?

ガチ鬱エンジニア忘年会とは・・・

「ガチ鬱 or 鬱気味エンジニアによる、メンタルヘルスとコンピューターのテンション低めな忘年会です」

下記のキーワードにひとつでも反応したかたは是非コメント欄(パーマリンクにあります)に参加表明を!(Twitter @komagataでもいいです)

  • ハルシオン
  • ピーエイチピー
  • リタリン
  • ヤック
  • ゾロフト
  • マップリデュース
  • デプロメール
  • マーブ

27日とかどうでしょうか。(渋谷 || 恵比寿 || 新宿)

参照: ガチ鬱エンジニア忘年会2007

RESTful Webサービス
  • RESTful Webサービス
  • オライリー・ジャパン(2007-12-21)
  • オライリー・ジャパン
  • (監修)山本 陽平
  • (翻訳)株式会社クイープ
  • 定価:¥ 3,990
  • 新品価格:¥ 3,990
  • ASIN:4873113539

まとめ:

  • RESTとはWebの原理である。
  • WebとはHTTP、URI、XMLである。
  • Webは十分な分散プログラミングのプラットフォームである。
  • RESTはアーキテクチャースタイル(メタアーキテクチャー)なのでROA(Resource-Oriented Architecture)という具体的なアーキテクチャーに落とし込みました。

Webに関わる人ならWebの原理を知っておくのは良いことだと思いました。

小難しいようですが、要はここで提唱してるROAに従ってアプリを作れば「シンプルで分散・連携し易いものが作れる」っつーことですな。

今日びのフレームワーク使ってるといつのまにか従ってるところも多いです。

しかし、例えばRails2.0以降のScaffoldの場合、本書で言う”“接続性”“がありません。HTMLコンテンツでは検索エンジンを気にして必ずそれぞれのページに行けるようにリンクを張りますが、railsのto_xmlで吐かれたxmlには他のリソースへのリンクはありません。modelにlinkとかのメソッドを作ってto_xmlで:methods指定するなどといった手間を加える必要がありそうです。

atomPubが全部実装できればいいですが、現状かなり面倒なのでRails流のxmlを拡張する方向が現実的ではないかと思います。

Webの設計で迷った時に基本に立ち返るお手本として本書はいいんじゃないかと思います。