WindowsプログラマのWebアプリへの挑戦日記。あとパンとか。

FAILEDマクロでS_FALSEはひっかからない

10月 7th, 2008 Posted in C++ | No Comments »

いつもどっちかよくわからなくなるのでメモ的にエントリー。次のコードを実行すると・・・

  1. TRACE( "S_FALSE Test\n" );
  2. HRESULT hr = S_FALSE;
  3. if( FAILED( hr ) ){
  4.     TRACE( "FAILED\n" );
  5. }else{
  6.     TRACE( "Not FAILED\n" );
  7. }
  8.  
  9. TRACE( "E_FAIL Test\n" );
  10. hr = E_FAIL;
  11. if( FAILED( hr ) ){
  12.     TRACE( "FAILED\n" );
  13. }else{
  14.     TRACE( "Not FAILED\n" );
  15. }

次のように出力される。

  1. S_FALSE Test
  2. Not FAILED
  3. E_FAIL Test
  4. FAILED

なぜなら、FAILEDやSUCCEEDEDは次のように定義してあって、

  1. #define SUCCEEDED(Status) ((HRESULT)(Status) >= 0)
  2. #define FAILED(Status) ((HRESULT)(Status)<0)

S_OK,S_FALSE,E_FAILは次のように定義してあるから。

  1. #define S_OK        ((HRESULT)0x00000000L)
  2. #define S_FALSE     ((HRESULT)0x00000001L)
  3. #define E_FAIL      _HRESULT_TYPEDEF_(0x80000008L)
こちらもオススメ!

AIR Business Community ワークショップに参加してきました

10月 5th, 2008 Posted in AIR, Flash | 4 Comments »

福岡のAIR CommunityのAIR Business Communityのワークショップに参加してきました。

AIR Business Communityは発足したばかりで、ワークショップも今回が一回目ということでした。

ステキな参加者のみなさん

はじめに1時間くらいの時間をとって、自己紹介と名刺交換を行いました。プログラマ、デザイナ、学生などいろんな人種の方々が参加していて、普段接することのないような方々とのコミュニケーションがとれました。

自己紹介の後に、参加者の方が作成したAIRアプリの紹介がありました。

  • soraさん

    Windows/Mac/Linuxそれぞれの言語によるHello, Worldアプリがどんだけめんどくさいかってことを説明したあと、AIRだと簡単にWindows/Mac/Linuxで動くHello, Worldが作れますよっていうプレゼン。AIRというより、今回のためにWindows/Mac/LinuxそれぞれでHello, World作るのがすごい。

  • Shikajiroさん

    Mashup Awardsに応募したというEdBrowserのデモ。なんというかさすがAIRという感じ。ActionScriptの3Dライブラリを使うと簡単に(?)3D表現が実現できるようです。3Dやってみたいね。

  • 最後にKagasawaさん

    RSSリーダーのデモと、実装方法なんかの解説。AIRからデータベースを使っていたり、かなり本格的なアプリに仕上がってました。AIRではポップアップしたモーダルダイアログがアプリの境界内でしか表示できない現象を回避する方法が聞けなかったのが残念。

開発環境の構築について

今回のワークショップの内容はAIRを開発するための開発環境の構築がメインでした。ボクはAIRの開発はFlashDevelopというフリーのツールを使っていますが、ワークショップではeclipse + AIR GEARで進めていました。

普段FlashDevelopを使っているボクがeclipse + AIR GEARをさわってみて感じたことをちょっと書きます。

  • GUIエディターはスゴイ!と思ったけど・・・

    最初はやっぱりGUIでコントロールとか配置できるのは便利だなぁとか思ったけど、FlashDevelopはMXMLもコード補完してくれるからなくても別に困らないと思います。

  • コード補完してくれない!?

    どうやら今のバージョンではAS3やMXMLのコード補完やってくれないみたいです。これは結構痛いかも。

  • FlashDevelopに比べるとインストールが楽

    eclipse + AIR GEARをインストールするには、eclipse / pleiades / GEF / AIR SDK / Flex3 SDK / AIR GEARをインストールする必要があって、ぱっと見はめんどくさそうなんだけど、eclipseは解凍するだけだし、pleiades / GEF / AIR GEARは解凍したファイルをeclipseのフォルダにコピーするだけ。なので意外にさくさく進みます。FlashDevelopは、Java runtime / .NET Framework runtime / FlashDevelop / Flex3 SDKを入れる必要があります。数は少ないですが、一つ一つが入れるのめんどくさいです。

感想

このようなコミュニティに参加したのは初めてで、最初は不安でしたがみなさん良い人ばっかりで、すぐになじめたと思います。たぶん。20数名の参加だったと思いますが、ほとんどの方々と名刺交換をさせていただいて、少しの時間ですがお話しできて刺激になりました。

人が作っているものをみるとやる気になりますね。ワタクシもAIRでなんか作ろうかな。

こちらもオススメ!

デジタル一眼レフの動画撮影機能ってなにげにすごい

9月 29th, 2008 Posted in 写真 | No Comments »

銀塩時代ミノルタなワタクシはデジタルではSONYの一眼レフを使ってます。先日α900という35mmフルサイズセンサを搭載した機種が発表されましたね。機能的には基本的なところを確実に仕上げたって感じでしょうかね。他社を見ると、Canon EOS 5D MKIIやNikon D90とかに動画撮影機能が搭載されているみたい。

個人的に一眼レフに動画撮影機能はいらないと思っていたけど、Vincent Laforetを見ると5D MKIIスゲー欲しくなった。レンズ交換式の威力はスゴイね。家庭用のビデオカメラではココまで背景ぼかしたり、寄ったりはできないんじゃないでしょうかね。あんまりビデオ撮らないので分からないですが。

いいカメラ持っててもいい写真が撮れるわけではないのと同じで、EOS 5D MKIIを持ってても同じように撮れる訳ではないんですけどね。

こちらもオススメ!
    None Found

TwitterFoxが急に使えなくなったときの対処方法

9月 26th, 2008 Posted in ローカル環境 | No Comments »

なんか最近TwitterFoxがぜんぜん動いてないなと思っていたら、どうやら以下が原因。

Firefox 3.0.2 でパスワード情報にアクセスできなくなる問題 えむもじら

Firefoxが3.0.2に上がってから、パスワードマネージャーがなんかおかしいなと思っていたらこういうことだったんですね。

TwitterFoxもsignons3.txtを使っているようで、signons3.txtをUTF-8で保存し直したらすんなり動き出しました。Firefox3.0.2でこの現象が発生すると、3.0.3に上げても改善されないようなので、signons3.txtをいじるしかないようです。

こちらもオススメ!

男のパン作り – メロンパン

9月 23rd, 2008 Posted in ライフ | No Comments »

気がつけば1ヶ月近く更新していなかった・・・。いろいろ書きたいことはあるんだけど。

さて、ただいま遅めの夏休みなもんで、いろいろやりたいことはあるんだけど、子供が起きてる間はPCに向かうことができないので、メロンパン作ってみました。

実はちょっと前にメロンパン作ってみたんだけど、大失敗でした。レシピはクイジナートのレシピ集を見ました。なんかクッキー生地が柔らか過ぎてベトベト。さらにレモン入れすぎてすっぱまずい物体になってしまいました。

そんなわけで、今回はメロンパンのリベンジってことで、SKYの簡単パンレシピのメロンパンを参考にして作ってみました。パン生地を捏ねるのはクイジナートのフードプロセッサーを使っています。コストコで売ってるヤツね。

基本的にレシピ通りにやればいいんだけど、気をつけることをメモ。

パン生地を捏ねる時は、水とか牛乳、卵などは冷蔵庫で冷やしておく

手ごねの場合は、水分は室温に戻して捏ねるんですが、フードプロセッサーを使う場合はモーターの熱でカップ内の温度が結構あがるので、材料の温度を下げておきます。温度が上がると生地がねちゃねちゃして、生地がブレードに絡まったり、ブレード内部に進入したりして大変な事になります。なので材料は冷やしておいた方が作業しやすいです。

パン生地を捏ねる時は、水や牛乳などの水分は様子を見ながら少しずつ入れる

水分が多すぎると生地がねちゃねちゃして、これまたブレードに絡まったり、ブレード内部に進入したりして大変な事になります。フードプロセッサーを連続運転しているので、素早く作業しないと温度が上がりすぎますが、水分の量は慎重に入れた方がいいです。ブレードに生地が絡まった場合は、一度生地をボウルなどに移して軽く強力粉を追加し、ブレードを綺麗にして再開します。

クッキー生地を作る時、バターは冷蔵庫で冷やしておく

普通クッキー生地を作る場合は、泡立てるためにバターを室温に戻して作業しやすくしますが、フードプロセッサーの場合には、バターが柔らかいと遠心力で全部外側に飛んで行ってしまいます。そこで、バターは冷蔵庫から出した状態よりちょっと柔らかいくらいでかき混ぜます。

クッキー生地はできるだけ冷やして作業する

クッキー生地はほとんどがバターなので、手で触っているとどんどん柔らかくなっていきます。パン生地をクッキー生地で包む作業は、包む生地だけを冷蔵庫から出して手早く作業すると、いい堅さで作業できます。

パン生地を丸めるときはしっかり閉じる

パン生地を丸めるときにお尻を閉じますが、きちんと閉じないと2次発酵や焼いているときにとじ目が開いてしまいます。別に味には関係ないですが、出来上がりの見た目が良くないのできっちり閉じましょう。

焼いた後、翌日食べるとおいしい

パンは焼きたてよりあら熱をとって食べるのは基本ですが、メロンパンの場合はクッキー生地とパン生地をなじませるために翌日くらいまでおいといた方がいいらしいです。

実食

見た目はちょっと小振りな感じのメロンパンです。食べてみると・・・

dsc03844.jpg

ウマーー!!

まじ自分で作ったの?ってくらいウマイです。手間はかかるけど極めたい一品です。

関連記事

男のパン作り
男のパン作り – 成功編
男のパン作り – シナモンロールパン
男のパン作り – ベーグル

こちらもオススメ!
    None Found

WindowsアプリケーションのUIとしてFLASHを使う方法

8月 21st, 2008 Posted in C++, Flash | 3 Comments »

最近はAIRなんかが出てきて、デスクトップアプリのUIをFLASHで表現することが簡単になりました。

が、AIRではセキュリティに考慮してか、いろいろと制限があります。例えばレジストリがいじれないとか、デバイスが使えないとか。

まあそれはいいとして、WindowsのアプリケーションのUIとしてFLASHを使えれば、裏ではごりごりめんどくさいことやりつつも、UIはFLASHでステキな感じにできたりしますよね。

そんなわけで、WindowsアプリケーションのUIとしてFLASHを使う方法を解説します。

環境

開発環境は、VC6を想定しています。ボクの環境がVC6なので・・・。

Flash Playerは6以上で動くことを確認しています。今のバージョンが9とか10なので、まあ問題ないと思います。ActionScriptは2で確認しています。3もたぶん大丈夫だと思います。

WindowsアプリケーションとFlashの連携イメージ

わかりにくい絵で申し訳ないですが、以下がWindowsアプリケーションとFlashの連携イメージです。

win_flash.png

CWnd派生のCShockwaveFlashというクラスにFlashを貼り付けます。このCShockwaveFlashは、後で説明するFlashのOCXを挿入すると勝手に作られるクラスです。このクラスがFlash(SWF)と通信します。

FlashからWindowsへの通信は、ActionScriptで

  1. fscommand( param1, param2 );

をコールします。するとWindowsアプリケーション側の指定したコールバック関数に飛んできます。このコールバック関数には、command=param1、args=param2という引数がくるので、commandごとに処理を分けることができます。

WindowsからFlashへの通信は、CShockwaveFlashの関数をコールすることによりFlashを制御できます。しかし細かい制御は難しいと思います。FlashとWidnowsアプリケーションで担当する役割をうまいことわけて実装する必要があります。

Windowsアプリケーション側からFlashの文字列を変更するために、

  1. SetVariable("v_text1", "テスト");

が使えます。v_text1というのはActionScriptの変数です。文字列以外のクラスやArray、MovieClipなどを直接制御したり、値を設定したりなどはできないようなので、SetVariableをうまく使って制御することになります。

VC6のプロジェクトにFlashを埋め込む方法

  1. テキトウにVCのプロジェクトを作ります。
  2. メニュー-[プロジェクト]-[プロジェクトへ追加]-[コンポーネントおよびコントロール]より、[コンポーネントおよびコントロール キャラリ]ダイアログが開くので、[Registered ActiveX Controls]を開きます。
  3. [Shockwave Flash Object]を選択して[挿入]ボタンをクリックします。
  4. [このコンポーネントを挿入しますか?]で[OK]をクリックします。
  5. [クラスの確認]ダイアログで、ファイル名など問題なければ[OK]ボタンをクリックします。
  6. [コンポーネントおよびコントロール キャラリ]ダイアログを閉じます。

この段階で、CShockwaveFlashクラスがプロジェクトに追加されています。

Flashを貼り付けるCWnd派生のクラスを作成します。ここでは仮にCFlashWndとしておきます。CFlashWndに次のような関数を作ります。

  1. BOOL CFlashWnd::AddFlashWindow(CString strSwfPath)
  2. {
  3.     //初期化
  4.     ::OleInitialize(NULL);
  5.  
  6.     //---- Flash Ctrlを作成します
  7.     DWORD   dwStyle = WS_CHILD|WS_VISIBLE;
  8.     UINT    nID     = IDC_SAMPLEWND;
  9.     CRect rc;
  10.     rc.SetRect(/*Flashの表示位置・サイズを指定する*/);
  11.     if( m_flashWnd.Create( NULL, NULL, dwStyle, rc, this, nID ) == FALSE ){
  12.         return FALSE;
  13.     }
  14.  
  15.     //FlashCtrlウインドウにSWFを読み込む
  16.     if( !strSwfPath.IsEmpty() ){
  17.         m_flashWnd.SetMovie( strSwfPath );
  18.         m_flashWnd.Play();
  19.         m_flashWnd.SetMenu( false );        //右クリックメニューを抑制
  20.     }
  21.  
  22.     //FlashCtrlウインドウをwindowにFitさせる
  23.     if( IsWindow( m_flashWnd.GetSafeHwnd() ) ){
  24.         CRect   rcClient;
  25.         GetClientRect( rcClient );
  26.         m_flashWnd.MoveWindow( rcClient );
  27.     }
  28.  
  29.     return TRUE;
  30. }

CFlashWnd.hには次のメンバを定義します。

  1. private:
  2.     CShockwaveFlash     m_flashWnd;

これで、CFlashWndを

  1. ShowWindow( SW_SHOW );

してやればFlashが表示されるはずです。

WindowsアプリケーションとFlashの通信

Flashに文字列を渡すときは、次のように書きます。

  1. m_flashNews.SetVariable( "key", "value" );

Flash側で”key”という変数を用意しておくと、keyの値が”value”となります。Flash側のEnterFrameで”key”を監視しておくと、値がセットされたことがすぐにわかります。

Flashからのイベントを受け取るには、コールバック関数を指定します。

  1. BEGIN_EVENTSINK_MAP(CFlashNewsWnd, CWnd)
  2.     //{{AFX_EVENTSINK_MAP(CFlashNewsWnd)
  3.     ON_EVENT(CFlashNewsWnd, IDC_NEWSWND, 150, OnFSCommandShockwaveflash, VTS_BSTR VTS_BSTR)
  4.     //}}AFX_EVENTSINK_MAP
  5. END_EVENTSINK_MAP()

ここでは、OnFSCommandShockwaveflashという関数にコールバックが飛んでくるようにしています。

  1. void CFlashNewsWnd::OnFSCommandShockwaveflash(LPCTSTR command, LPCTSTR args)
  2. {
  3.     CString com = command;
  4.     CString arg = args;
  5.  
  6.     switch( com ){
  7.     case "key1":
  8.         // key1の時の処理
  9.         break;
  10.    
  11.     case "key2":
  12.         // key1の時の処理
  13.         break;
  14.  
  15.     default:
  16.         break;
  17.     }
  18. }

たぶんこれで動くと思いますが、もし動かなければコメントなどください。

こちらもオススメ!

coreserverにRuby on Rails 2.1.0をインストールしてみた

8月 5th, 2008 Posted in ruby, Ruby on Rails | 6 Comments »

coreserverにRuby on Rails 2.1.0をインストールしたので、作業の記録を残しておきます。

SSHでcoreserverに接続

railsを入れるには、SSHでサーバーにログインして作業する必要があります。

ボクはwindowsから作業するので、Tera Termを使用しています。このあたりからダウンロードすればいけると思います。

SSHでログインする前にcoreserverにどこから接続するかという情報を登録します。coreserverの管理メニューで、[ホスト情報登録]から[SSH登録]というボタンをクリックします。

そのまま待っとくと5分ほどで反映されてるはずですので、しばらくしてからTera Termをおもむろに起動します。

Tera Termを起動すると、接続の設定をするダイアログが開くので、TCP/IPのラジオボタンにチェックをいれ、ホストに[sxx.coreserver.jp]と入れます。coreserverの管理メニュー[FTP設定]のFPTサーバーを入れてください。サービスはSSHで、ほかはデフォルトでいけたと思います。

Tera Term - Ruby on Rails 2.1.0をインストール

[OK]をクリックすると、SSH認証のダイアログが開きます。ユーザ名とパスフレーズにそれぞれcoreserverの管理メニュー[FTP設定]のFPTアカウント、FPTパスワードを入れます。

Tera Term - Ruby on Rails 2.1.0をインストール

[OK]ボタンをクリックすると、coreserverに接続されます。[OK]ボタンをクリックしてもダイアログが閉じない場合は、coreserver側の準備ができていないので、もうちょっと待ってみてください。

RubyGemsのインストール

coreserverには最初からRubyが入っているので、Rubyはそれを使います。最初の作業は、パッケージ管理のRubyGemsをインストールすることです。まずは、~/.bashrcというファイルを作成して、PATHを通すために次を書きます。ファイルの編集の仕方はテキトウに調べてください。ボクはvimを使っています。

  1. export PATH=$PATH:$HOME/bin:$HOME/lib/ruby/gem/bin
  2. export RUBYLIB=$HOME/lib/:$HOME/lib/ruby
  3. export GEM_HOME=$HOME/lib/ruby/gem

この変更を反映するために、次を実行。

  1. >source ~/.bashrc

次にRubyGemsをダウンロードして解凍します。

  1. >mkdir ~/temp
  2. >cd ~/temp
  3. >wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
  4. >tar xvzf rubygems-1.2.0.tgz
  5. >cd rubygems-1.2.0
  6. >ruby setup.rb config --prefix=$HOME

途中でkillされることがあるので、その場合はもう一度

  1. >ruby setup.rb --prefix=$HOME

を実行します。終わったみたいに感じたら、バージョンを確認してみます。

  1. >gem -v
  2. >1.2.0

どうやら無事にRubyGemsが入ったみたいです。

railsのインストール

次にrailsを入れます。

  1. >gem install rails --include-dependencies

これだけでrailsがインストールされます。インストールが完了したらrailsのバージョンをチェックします。

  1. >rails -v
  2. >Rails 2.1.0

やったー!なんとかインストール成功!

サンプルアプリで動作確認

次はサンプルアプリを作り、ブラウザから動きを見てみます。

  1. >mkdir ~/ror_app
  2. >cd ~/ror_app
  3. >rails -d mysql adbook

いろいろなファイルが作成されます。~/ror_app/adbook/config/database.xmlをエディタで開き、developmentの以外の項目を削除して、developmentの必要な項目を記入します。

  1. development:
  2.   adapter: mysql
  3.   encoding: utf8
  4.   database: xxxx_adbook
  5.   username: xxxx_adbook
  6.   password: password
  7.   socket: /tmp/mysql.sock
  8.   host: localhost

databaseとusernameはcoreserverの場合、同じです。passwordはMySQLのパスワードを設定します。

このdatabase.xmlの設定をもとにrakeでDataBaseを作ります。

  1. >rake db:create:all

なぜか失敗します。database.xmlの書き方が悪いのかもしれないけど、よくわからんのでcoreserverのphpMyAdminでdatabaseを作成します。作成したdatabaseは、database.xmlで設定した内容と同じです。

scaffoldで一気にやっちゃいます。

  1. >ruby script/genarate scaffold adbook name:string phone;string address:string memo:text

最後にrakeでDBをmigrateします。

  1. >rake db:migrate

これでサンプルアプリの準備は完了ですが、ちょっと設定が必要です。~/ror_app/adbook/config/environment.rbの先頭に、次を追加します。

  1. $LOAD_PATH.push("/virtual/xxxx/lib/ruby")
  2. ENV['GEM_HOME'] ||= '/virtual/xxxx/lib/ruby/gem'

次に、~/ror_app/adbook/public/.htaccessを作成して、次のように記述します。

  1. AddHandler fastcgi-script .fcgi
  2. AddHandler cgi-script .cgi
  3. #AddHandler cgi-script-debug .cgi
  4. Options +FollowSymLinks +ExecCGI
  5.  
  6. RewriteEngine On
  7. RewriteBase /adbook/
  8.  
  9. RewriteRule ^$ index.html [QSA]
  10. RewriteRule ^([^.]+)$ $1.html [QSA]
  11. RewriteCond %{REQUEST_FILENAME} !-f
  12. RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
  13.  
  14. ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"

このサンプルアプリは~/ror_app/adbook/public/を公開しないとブラウザからは見れないので、ブラウザから見えるところからシンボリックリンクを張ります。

  1. >cd ~/public_html/www.xxxx.com
  2. >ln -s ~/ror_app/adbook/public/ adbook

これで、ブラウザからhttp://www.xxxx.com/adbook/にアクセスすればrailsの画面が出てきます。[About your application’s environment]と書いてあるところをクリックして、次のように表示されればOKです。

Ruby on Rails サンプルアプリ 成功

もし次のように表示された場合は、

Ruby on Rails サンプルアプリ 失敗

~/ror_app/adbook/public/.htaccessを次のように変更します。

  1. AddHandler cgi-script .cgi
  2. #AddHandler cgi-script .cgi
  1. #AddHandler cgi-script-debug .cgi
  2. AddHandler cgi-script-debug .cgi

これでもう一度http://www.xxxx.com/adbook/にアクセスして表示されるメッセージをたよりに原因を追究してみてください。原因がわかったら~/ror_app/adbook/public/.htaccessを元に戻さないと正常に表示されません。

正常に動作すると、http://www.xxxx.com/adbook/adbooksにアクセスするとアドレス帳が表示されます。[New adbook]からアドレスを追加してください。

ちなみにボクが今回作業したのは、http://www.its55.com/adbook/adbooksで確認できます。

こちらもオススメ!

Ruby on Rails 2.1.0 インストールしてみた

7月 20th, 2008 Posted in ruby, Ruby on Rails | 3 Comments »

いつかはやらんといかんなぁと思っていたRuby on Railsですが、AGAGローンチ後やる気がなくなっていたワタクシの頭に気合を入れる意味で、ローカルマシンに環境を作ってみましたよ。

今回は全面的に不真面目SEの生活さんを参考にさせていただきました。

Windows VistaにRubyのインストール

すでにローカルマシンにはXAMPPが入っているので、apacheとかMySQLとかのインストールは必要なくて、とりあえずRubyを入れてみました。

Rubyを入れるにはいろいろな方法があるみたいですが、ここはカンタンにOne-Click Ruby Installerを入れました。インストールは普通にカンタン。Rubyと関連モジュールなんか入れてくれるみたい。

ここでRubyのインストールができたか確認。コマンドプロンプトでRubyのバージョンを確認。

  1. >ruby -v
  2. ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

ちゃんと入ってるっぽい。

Ruby on Railsのインストール

One-Click Ruby InstallerでRubyGemsも入るので、次はRuby on Railsを入れる。

コマンドプロンプトで次を実行。

  1. >gem install rails --include-dependencies

[--include-dependencies]というオプションは依存パッケージを含めてインストールする指定みたいです。

しばらく待ってるとなにやら聞かれましたが、すべて[Y]で答えました。なにを聞かれたのかはよく覚えてません・・・。すみません。

終了してRailsのインストールができたか確認。

  1. >rails -v
  2. 'rails' は、内部コマンドまたは外部コマンド、
  3. 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

あれ?失敗してます。

原因がわからずもう一度RubyGemsからRailsをインストール。

  1. >gem install rails --include-dependencies

今回はさっきみたいに何か聞かれることはありませんでした。終了してRailsの確認。

  1. >rails -v
  2. Rails 2.1.0

おー、なんかよくわからんけど入りました。version2.1.0ですね。

サンプルを作ってみたっ

不真面目SEの生活さんのWindowsでRuby on Rails その2 Ruby・Ruby on RailsのインストールのWebrickを使って動かすサンプルを作ってみると、ちゃんと動きました。

次に、同じく不真面目SEの生活さんのWindowsでRuby on Rails その3 Ruby on RailsをCGIで動かすのapacheでcgiで動かしてみました。んが、Railsアプリフォルダ以下のpublicに.htaccessがない!とりあえず.htaccessを作成して、

  1. RewriteBase /adbook/

とだけ書いて保存。

  1. http://localhost/adbook/adbooks

にアクセスしてみたらエラー。

.htaccessを自分で作ったのが原因かと思って調べると、Rails2.1.0からpublic/.htaccessがなくなったらしい。その代わり.htaccessの書き方のサンプルが、Railsアプリフォルダ以下のREADMEに書いてありましたヨ!!わかんないって。.htaccessの内容は次のようにしました。コメントは削除してます。

  1. #AddHandler fastcgi-script .fcgi
  2. #AddHandler cgi-script .cgi
  3. #Options +FollowSymLinks +ExecCGI
  4.  
  5. RewriteEngine On
  6. RewriteBase /adbook/
  7. RewriteRule ^$ index.html [QSA]
  8. RewriteRule ^([^.]+)$ $1.html [QSA]
  9. RewriteCond %{REQUEST_FILENAME} !-f
  10. RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
  11.  
  12. ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
  1. http://localhost/adbook/adbooks

にアクセスするとちゃんと動いてる!

でもやっぱりRuby on Railsをcgiで動かすと遅いです。それはもうびっくりするくらい遅いです。

こちらもオススメ!

男のパン作り – 成功編

7月 17th, 2008 Posted in ライフ | No Comments »

前回、1年前のイースト菌を使ってパンを作って大失敗しました。今回はリベンジですよ。

今回は、水の代わりにちょっとミルクを入れました。これでたぶんマイルドな感じになるはずです。まあ前回大失敗してるので比べれないんですけどね。

前回は一次発酵のときにまったく膨らまなかったんですけど、今回はびっくりするくらい膨らみました。びっくりしすぎて写真撮るの忘れてました。1次発酵した後、テキトウに切り分けて15分ほど休ませた後成型したのが↓です。もうすっごいフワフワ。きもちー!大きさとか形がそろってないのは見逃します。
dsc03562.jpg

これを二次発酵したのが↓。ちゃんと膨らみましたヨー!
dsc03564.jpg

これをオーブンで焼いたのが↓。なんかすげーでかくなってる!あふれてるヨ!!
dsc03576.jpg

もうね、焼きたてのパンってすげーいいにおいで柔らかくてウマイのさ!!
dsc03579.jpg

前回のアレはなんだったんでしょね??新鮮なイーストを使えばパンなんて超カンタンじゃん!

パン作り、まじハマりそう。次はなに作ろうかなー。

関連記事

男のパン作り
男のパン作り – メロンパン
男のパン作り – シナモンロールパン
男のパン作り – ベーグル

こちらもオススメ!
    None Found

男のパン作り

7月 8th, 2008 Posted in ライフ | No Comments »

ガソリンが高すぎてどこもいけないですよ。なもんで、家でパンでも焼いてみようと思って、高騰する小麦粉とバターを買いにいきました。

ボクはパン焼きバージンだったので、とりあえずネットで調べました。
↓ここが写真がたくさんあって、わかりやすいです。
SKYの簡単パンレシピ SKY’S CAFE@BREAD

さて、今回挑戦してみたのは「手ごねロールパン」。手順は、手ごねで基本のパン生地*レシピをそのままやります。

材料をこねてこねてこねまくっている様子。親指は短いほうです。
dsc03541.jpg

こね終わった状態。
dsc03542.jpg

ここから1次発酵のため、40分ほど放置します。放置した状態です。
dsc03545.jpg

あれ?1次発酵したら生地が2~3倍になるはずなのに、ほとんど変わってない・・・。おかしいな。こういうときはgoogle先生です。どうやらイーストには賞味期限があるようで、あんまり期限を過ぎると菌が死んで発酵しないらしい!!
おもむろにイースト菌の箱を確認すると賞味期限2007年5月!!って1年前じゃん。しかも使ったイースト菌の袋開いてたし!そういえばなんか変な匂いしてた。「こ・・・こいつ・・・死んでいる・・・!」 by Dio

無駄だとは思いつつ、賞味期限は切れてるけど開けてない袋のイーストをちょろっと混ぜて、プラス40分発酵させてみました。無駄でした。

それでもめげずにクルクル巻きました。
dsc03548.jpg

これに卵を塗って焼きます。なんか色が変わってるのは、このあたりで夜になって室内の照明になったからです。
dsc03550.jpg

焼き上がり。
dsc03557.jpg

お?なんか気持ち膨らんでいるような?

とにかく食べてみました。

結論

堅い、くさい、まずい。

もうあれですね。決定的にイースト菌が古いのが敗因ですね。死臭が漂ってますね。

また近いうちにリベンジするです。たぶん。

【追記】
リベンジしました。
its55 lab » Blog Archive » 男のパン作り – 成功編

関連記事

男のパン作り – 成功編
男のパン作り – メロンパン
男のパン作り – シナモンロールパン
男のパン作り – ベーグル

こちらもオススメ!