面白いと思ったので、抜粋して翻訳です。
原文長いですが、面白いのでぜひtryしてみてください。

http://crave.cnet.com/8301-1_105-9923315-1.html
(Credit: Daniel Terdiman/CNET News.com)

IKEAの製品をたくさん組み立ててきたライターがIKEAの製品開発者June DeboehmlerさんとPRのMarty Marstonさんに話を聞く。

製品はまず値段から

「製品について決めるときは、まずは値段について考える。」と、Deboehmlerさん。「それから、消費者は何を必要としているかを考える。」

"When we decide about a product, we always start with the price," Deboehmler said. "Then, what is the consumer need?"

もったいない:製品編

「数えきれないトライアルの後に、やっとこれで完成だというところに行きつく。」 「デザイナーが四つん這いの状態で、"OK, これが製品だ"と言ってくる。それから(IKEA HQがある)スウェーデンに戻り、またパーツに分解するんだ。アーム部分の角度を変えればパッケージにより適するよりよい製品にできないかを決めるためだよ。」

"After many, many days of trials, we thought we had it right," Deboehmler said. "'OK, this is the product.' Our designer was on his hands and knees. Then we got it back to (Ikea headquarters in) Sweden and started taking it apart again, and decided we can make it better because we can fit more in the package if we changed the arm direction."

「紙の上では最適に見えるんだけど、でも実際手に取ると"あ、ここをこういう風に回転すると、このアーム部は7じゃなくて10取れるわ"ってわかるのよ」と、Marstonさん。

"When you see something on paper, it looks great," Marston said. "But it's not until you touch it that you say, 'Aha, if you turn it this way, we could get 10 arms out of this length of wood instead of 7."

結局Lillbergチェアはコンセプトから出荷まで10か月かかった。

The Lillberg chair took the design team about 10 months from concept to completion, including manufacturing time and global shipments.

製品の名前はスウェーデンの町から

Deboehmlerさん曰く、チェアからソファまで多くはスウェーデンの町の名前にちなんでいるということです。「スウェーデンをドライブして回っていると、突然、この町の名前、あのソファよってことになるんです」

Deboehmler said many, including the company's chair and sofa products, are named after Swedish towns. "So when you're driving around in Sweden," she laughed, "you suddenly see this town name that's a sofa."

もったいない:倉庫編

「パレット(荷台)サイズは(たった)二つしかないのよ」と、Marstonさん。

"We have (only) two pallet sizes," Marston said,

「これらの工場内は暗いまま、ロボットはライトを必要としないし、それに1日に24時間働いてくれる:製品をピックアップしたり、移動したり。」

These factories, Marston said, are dark, since no lighting is needed for the robots, and run 24 hours a day, picking and moving goods around.

Refs

dovetail joint
http://en.wikipedia.org/wiki/Dovetail_joint

posted by Png satoko on Thu 24 Apr 2008 at 13:22

script/generate mailerでgenerateされるテストコードの@expectedはTMailのインスタンスらしく、生すぎなことがあります。
というわけで、お手軽にテストする方法をぐぐりました。

via http://sablog.com/archives/2006/03/14/how-to-test-actionmailer-in-ruby-on-rails

   1  class SampleMailerTest < ActionMailer::TestCase
   2    tests SampleMailer
   3  
   4    def setup
   5      # テスト時に配送したメールの配列を保存する。
   6      ActionMailer::Base.deliveries = []
   7    end
   8  
   9    def test_welcome
  10      to = "satoko@s21g.com"
  11      sender = to
  12      sender_name = "satoko"
  13  
  14      SampleMailer.deliver_welcome(to, sender, sender_name)
  15      assert !ActionMailer::Base.deliveries.empty?
  16  
  17      sent = ActionMailer::Base.deliveries.first
  18      assert_equal [to], sent.to
  19      assert_equal "expected title", sent.subject
  20      assert sent.body =~ /^Recommended by #{sender_name}. Enjoy!$/
  21    end
  22  end

Refs

http://wota.jp/ac/?date=20050731

posted by Png satoko on Tue 22 Apr 2008 at 16:34

近々使うかもしれないので。

http://www.amazon.com/gp/browse.html?node=201590011

用語

  • Amazon Elastic Compute Cloud (Amazon EC2)
  • Amazon Machine Image (AMI)
  • Amazon S3 (Amazon Simple Storage Service)

まずはGettingStartedから

http://docs.amazonwebservices.com/AWSEC2/2008-02-01/GettingStartedGuide/
(注)下記は2006年10月12日時点での記事ですが、内容がGettingStartedと今も大体同じ感じです(コマンドもそのままぽい)。
ここギコ!さん乙!
http://kokogiko.net/m/archives/001772.html

必要なもの

  • SSHクライアント
  • JRE:version 5

何ができるのか

defaltで用意されているイメージに自由にツールインストールできる。
ただし、インスタンスを止めてしまうと加えた変更は全て破棄されてしまう。加えた変更も併せ再現可能な状況にしようと思えば、現在のインスタンスの状況をイメージ化して登録すればよい。

Refs

疑問

AMIインスタンスの再起動とOSの再起動って違うんだろうか。後で調べる。

Amazon EC2を人に勧めると必ず言われるのが、「インスタンスを再起動したらディスクが消えるのが怖い」。

これは「インスタンス」を再起動であって、OSを再起動してもディスクは消えないのだが、確かに起動に必要なファイルを消してしまって、OSが起動できなくなってしまうと、確かに取り出せなくなってしまいます。
http://blog.masuidrive.jp/index.php/2008/04/14/ec2-ersistent-storage/

posted by Png satoko on Tue 22 Apr 2008 at 07:46 with 3 comments

ここのレビューがためになりました。ので抜粋。
http://highscalability.com/google-appengine-second-look

Developer Forum抜粋訳

  • データベースのエクスポート機能はなし。自前で用意する必要あり。
  • limitに気をつけろ
    • 1MB upload limit
    • 1000 database return limit
    • Google limits your CPU usage
  • フルテキスト検索はサポート対象外
  • SessionはGoogleのを使え:djangoのauth, sessionは使えない
  • 遅い:It takes GAE almost 3 seconds to save 50 of dummy records (consisting of just 2 text fields).

以下、自分用メモ。

GAEでの注意

  • MySQLとBigTableは全然違う観点で作られている
    ちょっとのデータをめっちゃくちゃ早くするというものがゴールでなくて、多くのデータを処理し、分散させるというゴールにもとづいてデザインされている。
  • web appの開発ノウハウは全然役に立たない(Sessionがないとか、JOINがないとかが大きい理由?)
  • AWSのノウハウはGAEでは全然役に立たない(GAEはvm。モデルが違う)

早くするコツみたいなもの:遅いのは使い方が良くないから

例えばavg()、データをInsertする時に計算しておいて、表示するだけのほうがよい。
MYSQLだとアクセスがあったときにJOINして計算するのが普通だろうが、GAEではデータは分散されて保存されるので(+JOINがない)、そのたび計算するのだと遅くなる。
Insert時に計算はすべて終わらせて、あとはSelectだけということか。

Refs

http://hiroshiykw.blogspot.com/2008/04/google-app-engine_10.html

posted by Png satoko on Tue 22 Apr 2008 at 06:50

なんだそうです。瀧内さんいわく。
Debianで普通に入れると1.4.4.4が入るのでコマンドがなかったりして困るらしいです。

短かくてすみません。またインストール成功したらレポートします^^

追記:ついでにRailsのgitリポジトリ。
http://github.com/rails/rails/tree/master

posted by Png satoko on Mon 21 Apr 2008 at 15:02

Gitを使いたいのだけど、まだインストールしてませんw
なので予習を兼ねてBest Practicesを訳。間違っているかもしれないので、ご了承ください。

http://www.tpope.net/rails-git-best-practices

名前とメールアドレスを設定しよう

   1  $ git config --global user.name "Tim Pope"
   2  $ git config --global user.email "foo@gmail.com"

ついでにカラーリングコマンドも

   1  $ git config --global color.diff auto
   2  $ git config --global color.status auto
   3  $ git config --global color.branch auto
   4  $ git config --global color.interactive auto

コミットメッセージについてのベストプラクティス。実践したほうが、ログも見やすい。下記にコミットメッセージの良いお手本を挙げる。

   1  変更についての短いサマリ(50文字以内)
   2  
   3  必要であれば詳細を書く。それでも72文字くらいで。また環境によっては、1行目emailの件名、残りはbodyになることもある。サマリとbodyを分ける空白行は必須(bodyを省力する場合は、なくてもOK); ただしrebaseのようなツールを一緒に使うとうまくいかないことがある
   4  
   5  パラグラフは空白行の後に続けること。
   6  
   7   - Bullet pointsもOK
   8   
   9   - 一般的に、シングルスペースに続くハイフンやアスタリスクはbulletに使われ、それぞれのは空白行で区切られる。しかし、この辺はしきたりが異なることもあるので注意(訳間違ってるカモです)
  10  
  11   - 手動のインデント

Rails coreに自分のコードをコミットするなら、さらに付け足し。差し当たり、URL決めて、そこに自分の投稿を公開するか、又は、下記のコマンド群を発行しfileを取得しよう。そうすることにより、gitのam(ローカルの自分の変更履歴の再構築)コマンドで誰でも簡単に適用できる(訳間違ってるカモです)。

   1  $ git checkout my_funky_branch
   2  $ git rebase origin/master
   3  $ git format-patch --stdout origin/master.. > my_funky_patches

さらに、最新にしておくためのtip: 最新の変更をダウンロードするなら、git pullの代わりに、git pull --rebaseを使ってみよう。マージコミットで、履歴をクラスタ化するよりは、先のコマンドによって自分の変更を最新のものに再適用してくれるのだ。1点注意することとしては、もし変更を他のリポジトリにpublishしたら、このコマンドは使わないこと。既にオリジナルコミットを取得した誰かにところで問題が起こるかもしれない。

posted by Png satoko on Sun 20 Apr 2008 at 16:15

結論:svn/dav, svn/dbの権限変更が必要

下記の二つのDIRにapacheを動かしているユーザにオーナー権限を与えます
/usr/local/svn/dav #activity databaseというものらしい
/usr/local/svn/db #transactionログなどか

   1  # chown www-data:www-data -R /usr/local/svn/db
   2  # chown www-data:www-data -R /usr/local/svn/dav

エラーの内容など

   1  $svn ci -m "test"  
   2  svn: Commit failed (details follow):  
   3  svn: Can't create directory   '/usr/local/svn/db/transactions/1128-1.txn': Permission denied  

→ chown www-data:www-data -R /usr/local/svn/db

   1  $svn ci -m "test"
   2  svn: Commit failed (details follow):
   3  svn: Can't open activity db: APR does not understand this error code

→ chown www-data:www-data -R /usr/local/svn/dav

Refs

http://svn.haxx.se/users/archive-2005-10/0084.shtml
http://svn.haxx.se/users/archive-2004-02/1350.shtml

posted by Png satoko on Thu 17 Apr 2008 at 15:58

いつも忘れるのでメモ。

mailerオプション

script/generate mailer class_name method_name

   1  $ rails -v
   2  Rails 2.0.2
   3  $ script/generate mailer TestMailer welcome
   4        exists  app/models/
   5        create  app/views/test_mailer
   6        exists  test/unit/
   7        create  test/fixtures/test_mailer
   8        create  app/models/test_mailer.rb
   9        create  test/unit/test_mailer_test.rb
  10        create  app/views/test_mailer/welcome.erb
  11        create  test/fixtures/muji_mailer/welcome
viewは*.erb形式なんですね。

添付とbodyにURLを追加する時の注意

  • URLをbodyに渡すにはurl_forが使えます。
  • attachmentはメソッドなので@はいりません(ココはまりました)。
  • ファイルを複数添付の時はattachmentを複数回呼べばOKです。
       1      @body = {:sender => "satoko",
       2        :message => "welcome",
       3        :s21g_url => url_for(:host => "www.s21g.com", :controller => "top", :action => "index")
       4      }
       5  
       6      attachment :content_type => "image/png",
       7      :body =>  File.read("an-image.png"),
       8      :filename = "test.png"
       9  
      10      attachment :content_type => "image/png",
      11      :body =>  File.read("an-image2.png"),
      12      :filename = "test2.png"
    

generatorのmailerヘルプ

下記でコマンドでヘルプが表示できます

   1  $ script/generate mailer --help

Refs

http://wota.jp/ac/?date=20050731
http://rails-recipebook.g.hatena.ne.jp/rrbk/?word=*%5BMail%5D

posted by Png satoko on Thu 17 Apr 2008 at 11:14

babieさんのGoogleAppEngineに関するtweetを見ているうちに、これ使うとGAEでしか動かないアプリしかかけない(!)ということがわかった。したらmasuidriveさんも同じことを書いていた。さらに面白かったのがコレ。

 これ専用にガリガリとアプリを書いて、サービスするのは罠だと思うけど、自分用WikiEngineをインストールしたり、Plaggerを常駐させておくのには便利そう。
http://blog.masuidrive.jp/index.php/2008/04/08/google-app-engine/

GAEをHomeユースに特化させてはどうか!Homeメディアサーバとかもちらっと考えるので、バックグランドプロセスとか常駐とかをちょちょっと動かせるHomeサーバ。

あと、サービスの一部だけに使うとか。検索だけBigTableです、とか。

posted by Png satoko on Fri 11 Apr 2008 at 05:46

namurokさんの発言を偶然見つけて、TokyoCabinetというものを知りました。Rubyからも使えるということなので、RailsPluginとかもあるのかなぁ。使ってみたいですね。 この話をしたら、瀧内さんがS3, BigTableにこれ、RDBはスケールできないってことですかねーと言っていた。ふむふむ。

mamoruk: @akf TokyoCabinet は Python, Perl, Ruby バインディングありますよ。8000万レコードまでは普通に使っています(億の単位のレコード入れるには少しパラメータの調整が必要)。メモリに乗れば引くのも速いです。
http://twitter.com/mamoruk/statuses/785574490

ぐぐた。

オープンソース・ソフトウェアはTokyo Cabinet、日本発のDBM実装だ。(中略)
Tokyo CabinetはあのHyper Estraierの作者である平林幹雄氏(以下mikio氏)によるソフトウェアで、Hyper Estraierの内部で利用されているQDBMよりも高速に動作するらしい。前方一致や数値の範囲検索、さらにトランザクションも利用できる。
http://www.moongift.jp/2007/11/tokyo_cabinet/

posted by Png satoko on Fri 11 Apr 2008 at 05:28
Contents
IKEA製品解剖学:翻訳
お手軽なActionMailerのテスト方法
Amazon EC2についての予習
Google AppEngineについての抜粋メモ
DebianでのGitお勧め:1.5.5をソースから入れる
tpope.netさんのRails with Gitのためのベストプラクティス
Apacheで動いているSVNへコミットエラー:Permission denied、Can't open activity db
ActionMailer@Rails2.0.2:script/generate mailerオプション+添付とか
GoogleAppEngineの使い道について
RDBの終わり:TokyoCabinet面白そう
Comments
KingofSmack: Here also good reads for this mobile applicatio... '14-5
satoko: stackoverflowでも同じエラーを挙げている人がいたので、1.3でアップロードしたよっ... '10-12
ujihisa: :%s/blog/glob/g '10-7
satoko: しゅが〜様 返事が遅くなって申し訳ありません。また、投稿百景ご購入ありがとうございます。 ... '09-10
しゅが~: こんにちは。投稿百景を発売日翌日から利用しています。本当にいいAppを作っていただきました。罫... '09-10
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ