Updates from 10月, 2007 Toggle Comment Threads | キーボードショートカット

  • someeda 15:24 on 2007/10/23 パーマリンク | 返信  

    in_place_editなんちゃら関連のエラーメッセージ 

    めずらしくRailsネタ
    in_place_edit_for()で、モデルオブジェクトがインスタンス変数に入ってないと出るエラー。
    Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
    なんとなく原因は分かったものの、確信もてなかった。かるくググったらここを発見
    そしたら、こいつをプラグインでもいいし、適切な所で実行すると、エラーメッセージがもっとわかりやすくなる。
    # vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb
    class ActionView::Helpers::InstanceTag
      def object
        @object || @template_object.instance_variable_get("@#{@object_name}") || raise("Could not find instance variable named @#{@object_name} in template")
      end
    end
    あー、@userが定義されてなかったんだね!と叫びそうなくらい、わかりやすいエラーメッセージが出たよ。
    
    			
     
  • someeda 23:48 on 2007/10/21 パーマリンク | 返信  

    学園祭で電子オルゴールを作った 

    今日は小平にある職業能力開発総合大学校東京校の学園祭に出向いて、電子オルゴールを作った。

    これはPICマイコンを使って圧電ブザーをプログラムで制御するという物。ハードもプログラムも基本は作ってあって、参加者は音符をプログラムで記述して、コンパイル、PICに書き込み・・・をするだけという感じ。本当に短時間だけど、こういう組み込み系を体験できるという・・・なんと素晴らしい!

    しかし自分と奥さん以外に参加していたのは、小学生女子数名と、高校生か大学生くらいの女子2名。学園祭なので、全員飛び入りの参加。どうなる事やら・・・。

    さすがに小学生はなんだか難しかったらしいが、一人は音楽には堪能だった様で。スタッフの助けでなんとか完成していた模様。

    うちは奥様に任せて、ちょこちょこアドバイスする程度。まずはその場で楽譜をちょっと書いて、最初の8小節だけ入力してみる事に。 ・・・結構難しい。

    プログラムはPICのC言語になっていて、g() っていう関数に音の引数を渡すと1音出るので。これを並べるだけ。1音でデータはオクターブ、音の長さ、音階の3つの数値のorを取って1byteに圧縮。ドレミと鳴らすのにはこんな感じになる。

    g(t1|n1|do1);  //  ド
    g(t1|n1|re);    // レ
    g(t1|n1|mi);   // ミ

    t1, n1, do1 等は全てマクロで定義済。なんとなく一般人が、最低レベル理解可能にしてある。

    音程には1bitしか割り当てていないため、2オクターブまでしかできないが。プログラムを見るとどうやら3オクターブはできる感じになっていた。ならいっそ、1音を3byteにしてしまえばいいのになぁ・・・わざわざ>>とか&してパラメータを解析してるし。(&だけでもOKだけど、コンパイラの最適化とか気にしているのかも。)

    などといろいろ突っ込みどころ があったのだが。無事に我が家の奥さんはオルゴールをなんとか完成。結構大変だった。いろいろ助言をいただいたスタッフのおかげでした。初めてのプログラミング(本人はプログラミングと分かっていたのか怪しいが)に成功して、奥さんも自分のお気に入りの曲で喜んでました。

    ここはすみません、いきなりディープな話ですが。
    帰ってからPICのチップを見てみると、文字が小さい・・・PIC16F84aだ。データシートを見てみると、 なんと・・・。

    • 1024 words of program memory  (プログラム用メモリ1024ワード・・・これって1byte/8bitがwordなのかな?)
    • 68 bytes of data RAM (少ない!)
    • 64 bytes of data EEPROM (プログラムから書き込み出来るのかな・・・?)
    • Eight-level deep hardware stac (8レベルまでしか・・・厳しいなぁ)

    こんなに制限がきついと思わなかった。前にPICが流行った頃に少しやったはずなんだけど、こんなきつかったんだなぁ。ちょっとビックリ。組み込みを舐めてました、すみません・・・ちょっと想像していた以上だった。まぁPICにはもっと違う種類が一杯あるので、もっと凄いのがあるに違いないきっと。

    で、せっかくオルゴール毎貰ったし、無理行ってデジカメのメモリカードにソースコードもコピーして貰えたので。早速PICライターを探してみた。うーん、いろいろあるんだけど、やっぱり自作がいいかなぁ。秋月のはちょっと高くて、しかも外部電源が必要なのがちょっと残念。サイズも大きいし。本格的に遊ぶならいいだろうけど。たぶん、ちょっと遊んで終わり程度だからなぁ。Webの情報も流行が過ぎているせいか、古いのばかりなのが残念。これで遊ぼうという事自体、マニアック過ぎるのかも。

    そうそう、ブレッドボードという電子回路の実験のためのボード。これが最近は安く買えるとは。これをベースにPICライター作ってみようかな。 どうせ数回で使わなくなるなら、こういうのでやるのがお手軽で良さそう。

     
  • someeda 20:51 on 2007/08/04 パーマリンク | 返信  

    DreamHostの新しい仮想サーバホスティング 

    DreamHostから、新しい仮想サーバのホスティングを開始したとアナウンスがあった。これはちょっと今までと違う毛色のサービスで、VPSの様な物なんだけどルート権限が無い。

    その代わり、共有ホストと同じレベルの管理が可能で、なんとDreamHostのコントロールパネルがそのまま使える。通常VPSはroot権限があってマシンを丸ごとコントロールできるけど、自由な反面セットアップは自分で全て面倒を見る必要がある。これは結構大変だし時間もかかる。

    それに適当にセットアップして放っておくのも危険。いつのまにか進入されていたら、もっと大変な事に・・・。

    この点で共有ホストはホストの管理者が行ってくれるので、非常に楽だ。DNS 、メール、Webサーバ、その他いろいろ・・・。ほとんど揃っているから、ちょっと実験したい時はありがたいサービスだ。Dreamhostはドメインも無制限に増やせるし、セットアップも簡単なので気軽にWebアプリケーションの公開が可能。Railsには結構良く対応してくれる。
    しかしそんな共有ホストも、みんなが同じマシンを共有しているので。それなりのデメリットがある。/homeディレクトリを覗けば他のユーザが沢山。自分のファイルが覗かれる心配も。誰かが負荷をかければ自分への影響も大きい。たまにshellが重くなる事もある。(といっても概ね困っていないが。)

    そんな両者の 間を取った様なサービスが、今回DreamHostの新しいサービスDreamHost P.S.。(P.S.はPrivate Serversの略)

    先に書いた様に各ユーザ毎に仮想マシンが起動、root権限無し、DreamHostと全く同じコントロールパネルで操作可能。料金はCPUとメモリの割当次第でフレキシブルに設定ができ、リブート無しでいつでも変更可能らしい。これならセキュリティの心配も減るし、遅かったら割当を増やして対処できる。なかなか面白いサービスだと思う。

    で、早速様子を見るために最低割当の150 MB / 150 Mhzで申し込んでみた。10MB/10Mhz毎に$1/月なので、月$15になる。最大は2300 MB / 2300 Mhz。コントロールパネルを見ると、単にPrivate Serversのメニューが増えているだけだった。という事は、いま動いているサービスがそのままPrivate Serversになるって事か??マシン名を自分で設定したから、サーバは別になるはずなので。この辺は後でどうなるかお楽しみ。

    結構嬉しいのは、プロセスをずっと起動し続けてもkillされない事。例えばRailsだったらscript/serverで起動してそのままにしておけるんだと思う。(まぁそんな事あまりしないけど・・・。)他にも何かデーモンを起動しておきたかったけど諦めた事のある人には、嬉しいサービスなのでは。他にもマシン名を自分で付けられたり、有料だけど2つまで固定IPを設定できるらしい。

    このサービス、契約をしているユーザしか申し込めないので、契約してない人はまずDreamHostを契約する必要あり。契約後にコントロールパネルのPrivate Serversから申し込みが可能。

     
  • someeda 03:21 on 2007/04/06 パーマリンク  

    「プログラム言語」発祥の地:Google Maps 

    Googleマップに自分で編集した地図が持てる様になった。公開している地図の中には、プログラム言語の発祥地をまとめている物もあった。

    The World of Hello World

    アジア地域に唯一輝くRuby。別にナショナリズムがあって自分は使っているわけではないけど、こうやって地図で見るとRubyが貴重な存在に思えてくる。

    他にも言語が沢山あるわけだし、データが集まると良いのだけど。残念ながら作者以外は加筆できない模様。

     
  • someeda 02:38 on 2007/03/09 パーマリンク  

    システム管理者が必読の本:The Practice of System and Network Administration 

    日本語に何年も翻訳されずにいる良書が、世の中には沢山あるのだなと思った。The Practice of System and Network Administrationという本もその一つだ。日本語で感想が書かれたページさえ少ない。

    これはシステム管理者向けの本だが、英語圏では知られた本のようだ。Googleで検索すると、日本語で読める良い書評がIBMのサイトにあった。

    サーバー・クリニック: Linux開発者必携の書
    いま扱っているサーバーやプログラムに対して、みなさんができる最善のこと、それはThomas A. LimoncelliとChristine HoganによるThe Practice of System and Network Administration を自分用に1冊購入することです。この新刊書は、管理者向けに書かれたものですが、開発者にとってもためになる教訓に満ちています。800ページ近いこの本の中で、Linuxに言及しているのは1箇所だけで、しかも間接的にですが、そこで説明されている信条は、日々の作業の意味を納得させてくれることでしょう。

    要は単なるTips集ではなく、良い方針の様な事が多く書かれてるそうだ。上記の記事は2002年5月に書かれたが、5年以上も経っている。良い書評はこうやって長い期間生き残って発見される物なのか!(良い書評とは、読んでいて興味をそそる物だ。)

    この本を知ったのは、エンジニアのための時間管理術で紹介されていたからだ。本文の説明に関連した事を、より深めたい読者のために他の本を紹介する。非常にいい事だと思う。興味を発展させるためのハブにもなる。

    さて、さっそくAmazonで注文しようと思ったが。よく見ると重大な事に気がついた。第二版が2007/6/8に発売される・・・うーん、今買うのはちょっともったいない。

    少し考えたが、第二版をウィッシュリストに入れて待つ事にした。今読まないと、おそらく5月までじっくり時間が取れなさそうだったので。5月に思い出す様、カレンダーにも記入してみた。

    The Practice of System and Network AdministrationThe Practice of System and Network Administration

    The Practice of System and Network AdministrationThe Practice of System and Network Administration (second edition)

     
c
新規投稿作成
j
次の投稿 / 次のコメント
k
前の投稿 / 前のコメント
r
返信
e
編集
o
コメントを表示する / 隠す
t
トップへ移動
l
go to login
h
show/hide help
esc
キャンセル