2009年04月

2009年04月30日

Ruby on Rails:2系でモデル作成後のscaffoldでmigrateファイルが上書きされる件の対応

 モデル作成後にindexやら色々つけたマイグレーションファイルが、同モデルに対してscaffoldを作成したとたん上書きされてしまった。

 --skip-migration

 でマイグレーションの生成をやめてしまえばよいとわかったのだがNetBeansの生成コマンドからの指定の方法がわからず悩む。

 色々やったあげく、属性ペアの頭に--skip-migrationを書けばよいと判明。

 ・・・属性ペアの最後につけたりはしてたんですが、頭ですか。

 scaffoldを削除する際も--skip-migrationオプションを忘れずに。

 NetBeansで履歴からファイルを復帰できるのが非常に助かりました。

2009年04月29日

Ruby on Railsの開発環境をしっかり構築する その2

 Ruby勉強会(予定)のネタ作りと本気でRailsをマスターするために開発環境構築中。

 Redmineを導入したりでRailsはまったく触ったことが無いわけではないですが、ちゃんとした開発をしたことがないのでほぼ手探り状態。
 勉強会ではこの悪戦苦闘ぶりと、CakePHPとの比較を行い初心者向けネタとしようと思います。

 まずは以前作成した自作サーバーと今回開発用に構築した開発サーバーとのRailsのバージョンが見事に違っていたのでバージョンをあわせる。

 一旦、railsを削除。

 
#gem uninstall rails


 その後入れたいバージョンのrailsをインストール。

 
#gem install rails -y -v 2.x.x


 
 gemのバージョンも違っていたのであわせよう・・・。
 と思ったけどgemのバージョンを指定してあげる方法が見つからない。

 代わりに、

 
そもそもrailsを2.2で利用するためには、gemが1.3以上であることが必要です


 という記事を発見。
 VMのCentOSはデフォルトでgemが0.9でrailsが2.3とかだっんだけど、駄目ってこと?

 とりあえず「バージョン指定できない=最新にしとけ@開発環境だから」 という安易な思考のもとでgemのバージョン変更。
 公開しているサーバーのバージョンと違うけどいいのかな?(誰かRailsな人教えてください)

 #gem update --system は駄目で、

 #gem install rubygems-update
 #rubygems-update


 が正しい作法とのこと。
 開発用のVMのgemが1.3.2あがりました。

 というわけで開発用のVM環境は構築完了(というかRailsのバージョンをあわせただけですが、大丈夫かなー)

 さぁ、次こそ簡単なアプリを作成してApache上で動かしてみよう。
 

 【参考】
 Ruby on Railsの開発環境をしっかり構築する その1

 

7月18日にマイクロソフトさん協賛で.NET系勉強会やります(予定)

 7月18日に金沢(たぶん駅前のパークビルのマイクロソフト北陸支社)で.NET系の勉強会を開催する方向で調整しております。

 これを機に北陸でも.NET系の勉強会を頻繁に開けたらいいなぁという希望の第一歩となる予定。

 マイクロソフト側でエバンジェリストの方を講師に用意してくれるらしいですが、こちら側でやりたいセッションやネタ発表も可能という話なので色々皆さんの意見を募集したいと思います。

 【募集】
 .NET系のネタ発表してくれる方

 面白いネタお持ちの方、ぜひ発表してください。
 (個人的にはSilverlightかDirectXを希望ですが、これは無視で)

 マイクロソフトさんへのネタ要望

 この技術についての話が聞きたいーという要望を教えてください。
 こちらの要望にあわせて可能な可能な限りエバンジェリストの方を調整してくれるそうです。
 自分とShoitoさんでSilverlightはすでに2票入っていますので、これはぜひ要望に入れていこうと思います。

 ライトニングトークしてくれる方

 ネタ発表は無理だけどLTならOKという方も募集、盛り上げて行きましょう!!
 Adobeからの刺客もありですよw

 懇親会の場所手配してくれる方w

 自分は下戸なんで、誰か駅前で美味しいお店知っている方お願いします。

 .NET系勉強会に名前をつけてくれる方

 今後定期開催を目指す上でちゃんとした名前でやりたいので、ぜひ名前を考えてください。


 以上、応募やご意見は、本ブログや北陸勉強会支援Redmineで受け付けておりますのでよろしくお願いします。

 Twitterで色々ことが進んでいたりするので自分をフォローしてくだされば色々情報流します。

 どんどん北陸を盛り上げて行きましょう!!

2009年04月28日

CakePHP:久しぶりに触った1.2はかなり違っていた

 久しぶりにCakePHPを触る。
 自分のサイトも含めて、1.1系ですべての開発を進めていたので、遅まきながら初1.2環境。

 .htaccessの設定などはディレクトリ構造が大きく変わっていないので、1.1と違和感無く設定できる。

 最初にindex.phpにアクセスしてみるとこれはかなりかわっている。
 黄色い背景で、

 Please change the value of 'Security.salt' in app/config/core.php

 というなにやらsaltを変更するような文言。
 パスワードとかでいうsaltなんだろけど、何かを生成するのに使うのかな?

 続いて緑背景で、

 Your tmp directory is writable.

 まぁ、Windowsなんで書き込み権限はあるということでしょうね。
 どうやら、黄色が警告で緑が正常ということらしい。

 The FileEngine is being used for caching. To change the config edit APP/config/core.php

 キャッシュを使えますよというぐらいの意味だろうか? まぁ、これも緑なんでOKなんだろう。

 Your database configuration file is NOT present.

 これは黄色。
 DBの設定をしろということでしょう。

 気になったのが、以下の文面。

 To change the content of this page, create: APP/views/pages/home.ctp.

 拡張子がctpですね。Cake Template?
 そういえば会社の人が拡張子が変わったようなことを言っていたような気がするぞ。

 という感じで、おおむね違和感無く初期設定完了。

AMF再発見

 おとといのFlex勉強会の懇親会で、

 「AMFはどんなときに使う?」

 なんて会話をして「HTTPが使えないFCSでデータを取得するときぐらいじゃねー」なんて言ってしまったので確かめるためにAMFについて調べてみた。

 自分がメインで使っているサーバーサイド言語のPHPでAMFを利用する場合amfphpというライブラリが定番だが、使っているバージョンが古くAMF3に対応していないことがよくよく調べるとわかった。

 swfからでも、FMSからでもAMF形式で通信する場合はNetConnectionクラスを用いるのだけど、利用するさいに

 NetConnection.objectEncoding = ObjectEncoding.AMF0

 という風に明示的にAMF0を指定してあげることでamfphpの真価が発揮できるのでした。
 何ができるかというとオブジェクトや配列をPHPに渡してPHPのオブジェクトや配列として利用することが可能になるという便利な使い方ができる。

 AMF3→Red5でバイナリデータを渡すことができたけど、最新のamfphpならそれも可能のようだ。
 これはAMF以外と使い道あるんじゃね? という感じですね。

 Flashの道は遠い・・・

Windowsでポートを占有しているアプリケーションを調べる

 日ごろ使っているWindowsOSを意外と知らなかったことを発見したので備忘録。

 ことの発端は久しぶりにサーバーサイドに手を伸ばしたことに始まる。
 会社のPCでXAMPPを動かそうとしたらApacheが起動しない。

 エラーログを確認すると、portがすでに使われているらしい。

 誰だっ!! 80番ポートなんぞを使っているやつは。そこはアパッチさんの指定席だろうがぁ

 まぁ、大体犯人はわかっていたのですが、せっかくなので証拠をつかんで突きつけてやることにする。

 まずは

 
#netstat -ano


 80番ポートをLISTENしてるPID(プロセス)を突き止める。
 ここからが知らなかったところで、Windowsで今動いているタスクの一覧を見る場合はずばり、

 
#tasklist


 タスクマネージャーに頼ってばかりいては駄目ですね。

 ということでPIDを照合すると犯人が浮かび上がってくるわけで、予想通り当初から捜査線上に上っていたSkype君がその犯人。
 速やかに、設定から80番ポートを利用しないように変更して捜査終了。

2009年04月27日

Ruby on Railsの開発環境をしっかり構築する その1

 近々北陸でRuby on Railsの勉強会をする予定なのでRailsを開発する環境を再度整えようと思う。

 以前はAptanaを利用していたが、Rails開発している人を見ると、NetBeans利用者が多い模様。
 というわけでNetBeansをさわりはじめてみた。

 使った感じだとDB設定さえすれば簡単にアプリケーションを動作テストすることが可能・・・だけど、Glass Fishというサーバー上での動作で、これをApacheで動かそうとすると急に面倒になるのがRails(自分の経験では)。

 というわけで仮想PCでCentOS、Winのローカル環境にもXAMPPのApacheからRailsを実行できる環境を作成しておこう。

 勉強会の形式次第ではRoRとCakePHPの比較ネタをやりたいのでPHPも動くようにしておく。

 最近Flashばかりだったので、自宅のPCにしっかりしたサーバーサイド開発の環境ができていないことを痛感。
 

2009年04月26日

FxUG@福井に参加してきました

 北陸では第二回目にあたるFlexユーザーグループの勉強会に参加してきました。

 今回はデザイナーさんの参加(CSS NiteでShoitoさんが宣伝した効果?)や、京都のFxUGのofukuさんなどが参加してくださり、一回目とは異なる雰囲気。
 デザイナーの皆さんにとって今回の勉強会はどうだったんでしょうね。発表者がPGばかりだったのでポカーンとしなかったなら良いのですが。

 以下、セッション内容の紹介

 【RIA百花繚乱 〜Flex/AIR, Silverlight, JavaFX, 他〜】

 Flashを含めRIA(Rich Internet Applications)の歴史から現状の紹介。
 Flash、Silverlightが今のところメジャーには違い無いですが、JavaFXなんかも面白そうですね。
 凄くニッチな需要ですが、JavaFXの話をもっと聞きたかった!!

 【0から始めるFlexBuilder】

 前回の金沢開催でFlexBuilder Pro版を射止めた幸運(?)なkatzchangさんの体験レポート。
 初レポートですが、いきなりRuby on Railsで作成したアプリからHTTP通信でデータを取ってくるアプリケーション。

 半分RoRだったので自分的には勉強になりましたw
 NetBeansいいですね。

 【Papervision3Dを用いたダンジョンRPGゲーム】

 発表者私。
 もうちょっと作りこめたらよかったのですが、今回はPapervision3Dで描いたダンジョン内を歩くデモ。
 Papervision3Dも最初の一歩は簡単だよーというメッセージが伝われば幸いです。

 【Box2D今昔物語】

 rch850さんの物理エンジンライブラリBox2Dネタ
 カッコいいですね物理演算。
 Papervision3Dと絡めて3D物理演算の何かをやってみたい。

 ちなみに850ってどこから来てるんでしょうか?

 【10分で作るWEBサイト管理画面 on FLEX & PHP】

 先週のFITEA春のセッションでもおせわになりました森下屋さんのセッション。
 HTTP通信でデータを取ってくるところがkatzchangさんと被ったということで急遽ライブラリの紹介を足してくる臨機応変さに関心。

 タブレット型PCいいですね。凄く欲しくなりました。
 MacとiPhoneの支払いが終わるまで我慢です。

 【懇親会】

 やはり勉強会は懇親会に参加すべき!!

 と何度でも言いたくなる良い場でした。

 開発プロセスの話から、チャンカレのこだわり披露。
 Flexの話は最初だけで別言語だったりの話がメインになるのはFlex中心に開発しているユーザーの少ない北陸ならではですねー。

 凄く面白かったです。

 【最後に】

 凄く楽しい勉強会でした。次回富山開催ももりあげていきましょう!!
 


 5月16日に石川で開発プロセス勉強会開催と正式日付も決まりました。
 告知されましたらhttp://sleeping-coelacanth.jp/redmine/wiki/ishikawa-study/%E5%8B%89%E5%BC%B7%E4%BC%9A%E4%B8%80%E8%A6%A7でも載せて行きます。

  FxUG02_pv3d FxUG02_pv3d coelacanth
 
 
 

2009年04月23日

AS3:Loderのメモリ開放について調べてみた その2

 前回記事の解決編ですが犯人は、FlashCS3のバグでした。

 色々試行錯誤した結果、バージョンアップしたCS3でコンパイルしたら出なくなりました。

 こんなこともあるので注意ですね。

 メモリについて色々勉強になりましたw

2009年04月22日

AS3:Loderのメモリ開放について調べてみた

 会社で、Loderで読み込んだ画像のメモリが開放されず困っていた方がいたのでちょいと調べてみた。

 前提としてAS3のメモリ管理はガベージコレクションで開放することと、仕組みがインクリメンタルなマークアンドスイーブであることを押さえておいてサンプル作成開始。

 ガベージコレクションの仕組みについては
 こことか上条さんのブログとかがわかりやすいですね。詳説 ActionScript 3.0でも触れていますが、思ったより浅かった。

 とりあえず、プロファイラが便利なのでFlexBuilderでテスト。
 FlashCS系とFlexBuilderって同じクラスつかってても挙動が違ってそうで怖いけど。

 とりあえずLoaderクラスで画像をloadしてstageにaddChildするケースとUIComponentに入れてFlexフレームワーク上にaddChildしてみる。

 基本はremoveChildして、loaderを格納した変数にnullを入れてあげる。
 UIComponentの方は、UIComponentにいったん格納したのでそこからもremoveChildしてあげる。

 これでガベージコレクション時に綺麗に開放される。

 結果をわかりやすくするために画像はある程度サイズがあるものが吉。

 次はイベントリスナーをセットした状態でテスト。
 loaderにイベントをセットした場合はさすがに参照有りと判定されましたが、Loader.contentLoaderInfoにaddしたイベントは放置していてもガベージコレクションで掃除されてしまいました。意外。

 ・・・普通に開放されてしまったので、問題無いといえば問題ないですが、再現にならないので失敗ですね。
 しっかり再現方法を確認しておくべきだった。
 
 
 

Profile

シーラカンス

Recent Comments
QRコード
QRコード
livedoor Readerに登録
RSS
livedoor Blog(ブログ)