ActiveResource

Railsからの出力をXMLで行いたい場合、素直に書く方法もあります。

例えばこう。

items = Item.find_all
render :xml, items.to_xml

Railsなら、これだけでItemオブジェクトの配列itemsをXMLにして出力できます。
また、標準でXML出力にも対応しているので、複雑なXML出力の場合は

require "rexml/document"

と、requireした後で

xml = REXML::Document.new

いろいろとXMLに出力させたい項目を指定して

send_data xml.write, :filename => 'hoge', :type => 'application/xml'

とか、こんなもんでOK。
これでも十分簡単なんですが…
Rails1.2以降にはActiveResourceというのがあったんですね。

今のところ、Railsで動いているアプリに、それがデータソースのようにアクセスしてデータを取得できるイメージ。
POSTやGETといった操作まで含めて管理できてしまうようなので、研究するとFlex連携に限らず面白いかもしれません。

今のところ、入門っぽい記事はこちらなど。
Adobe AirとRailsの連携がメインですが、感覚は掴めるんじゃないかな、と。
しかし、Railsって本当に色々考えてますね。
プログラム | comments (3) | trackbacks (0)

つくってます

動作サンプル

今回、サーバと連携させたので動作するサンプルは公開できません。
左のタスクリストを外部サーバ(今回はlocalhostですけど)から読み込んで、選択されたタスクの詳細を右に表示します。
後はXMLを吐く部分をRailsで動かしていて、動的に管理する感じ。

今後の課題
・FlexアプリからRailsにパラメータを(できればPOSTで)渡す
・Railsで作成したセッションをFlexで利用する
・データからグラフを作る

このあたり。
書式がガチガチの静的オブジェクト指向ぽいせいで、コンパイルを通らない事が多いです。
Flex Builderを使うと違うのかもしれませんが、その辺微妙。

とりあえず、ジュンク堂まで行っても本を売っていなかったので、Amazonで注文。
届くのが楽しみです。
プログラム | comments (5) | trackbacks (0)

つくっちゃいました

たいしたもんじゃないですが、5分で作れたのでちょっと感動。
開発環境はメモ帳→VIM。
文字コードがUTF-8じゃないと色々まずそうなので、VIMがおすすめです。
素直に開発環境使ってもいい気がしますが、プロパティとかを覚えてしまえばそんなに問題ないかもしれません。

後、コンパイルは普通に通りました。
SDKを落として、binディレクトリにパスを通して、ソースのあるフォルダに移動。
後はいつもの通り。

mxmlc hoge.mxml

シンタックスの誤りなどは、きちんとコンソールで訂正してくれます。
コンパイルオプションとかはあるんでしょうか?
とりあえず、下にコンパイルしてできたサンプル張っておきますね。










ついでなのでソースも追記に。
全然たいした事はしてないので、期待はなさらず。
続きを読む>>
プログラム | comments (22) | trackbacks (0)

Flex続き

土日でコーディングを試すので、しばらく概念的な話が続きます。
今回は、サンプル動かしたよ!というお話。

公式サイトにてSDKの配布が行われているので、それを拾います。
ここ。チェックボックスにチェックを入れないとDLできないので注意。
DLしたら、後は解凍。

ディレクトリを開いて、samples/explorerと移動。
build.batというバッチファイルがあるので、これを実行。

何かオフィスが停電してるの一度切り。
停電というか、ブレーカーが落ちまくっただけでした。

バッチファイルを実行し終わると、explorer.htmlというファイルが出来上がります。
これを開くと色々なサンプルが見られる…のですが、セキュリティ設定によっては、素直に開くと見えません。
設定を変えてもうまくいかなかったので

file:///C:/path/to/sdk/samples/explorer/explorer.html

とfirefoxのアドレスバーに打ち込んだら動きました。
ちなみに、ローカルのC:/以下すべてにセキュリティ許可を与えています。
自分の環境で、動くアドレスをブックマークしておくのをオススメ。

ちなみに、flexアプリの作り方はこう。

1.mxml及びasファイルの作成。
mxmlは部品等の記述を行うファイル。
基本xmlなので、htmlコーダの人にも見やすい、かも。
ActionScriptが混ざりだすと難しそうですが。

asファイルはActionScriptの記述。
mxmlの中にもActionScriptは書けるようなので、大きなプロジェクト以外なら分ける事もないのかも。

2.コンパイル
FlexはFlashの一種なので、.swfを作成します。
.mxmlと.asからコンパイルを行い、.swfを作成するイメージ。
コンパイル言語に慣れている人なら違和感ないと思います。

コマンドラインからコンパイルするときはmxmlc。
ただし、まだ試していないので何とも言えません。
Flex Builderがあればビルドは簡単ですが、なくても動くものは作れます。

と、いうわけでFlex開発もVIMだけでできるかもしれません。
ビルドコマンドを呼び出したり、専用のスキーマを定義すれば軽くて快適かも。
Flex BuilderはEclipse系なので、どうしても動作が気になる…

土曜日が楽しみ。
プログラム | comments (18) | trackbacks (0)

Flex3 β

Ajaxよりキレイで楽でコンペに強い(ここ切実)と聞いて、手を出さないわけにはいかない!
と、いうわけでFlexに手を出してみます。
Ajaxといい、最近UIブームが自分の中だけで起こっている…

まずは解説。

Flexというのは何かと言うと、要するにFlash。
ただ、普通のFlashよりもプログラマ寄り、エンタープライズ寄りな感じ。
なので、.NET言語のようにフォームの部品をGUIベースで配置して、プロパティを書き換えて…と、「プログラムっぽく」開発できます。
ムービーを作るなら通常のFlash、Web/ローカルアプリを作るならこちらではないかと。

今ローカルアプリと書きましたが、ローカルアプリを作るにはAdobe AIRという実行環境が必要です。
これに対応したのが、Flex3から。
今までのFlashではできなかった、ローカルファイルへのアクセスなどができるようになったとか何とか。
まあ、今のところローカルアプリは作らないので、これはよし。

現在のFlexの最新版はFlex3、開発環境はβ版なので無償公開中。
バグはあるものと考えて、開発環境のFlex Builderをインストール。
ちなみにEclipseベースなので、Javaのランタイムが必要と思われます。
オフィスのWindowsマシンでは動かないので、とりあえずMacBookにIN。
基本的にNextボタンをクリックするだけで終わります。
ただし、英語版なので親の敵のように英語が嫌いな方は注意。

次回以降、動かした様子を書いてみようかな、と。

参考リンク

Flex 2.0でリッチなWebアプリを作ろう

Flex2.0ですが、操作方法を覚えるのには一番いいと思います。
プログラム | comments (74) | trackbacks (0)

Googleカレンダーみたいな事がしたいんです

ソースコードとプログラミングのお話は追記で。ただのHTMLです。

今日の出来事。
同僚がウェットティッシュと間違えて、トイレクリーナーで体を拭いていた…
悪いけど、久しぶりに笑わせてもらったぜ…

アンプが無事に鳴らせるようになったので、ヘッドフォンをつけて遊んでます。
やはりエレキギターはアンプを通すものだ!と再認識。
しょぼいアンプなのでどうしても安っぽい音になりますが、それもまたよし。

追記。
レイジが復活したと思ってニュースを見ていたら、黒木が戦力外になってました。
高校の頃、よくロッテの応援をしたものですが…
高校と言えば明日は高校生ドラフトですが、ついに大卒ルーキーも年下になってしまいました。
凹んだりせずに、下柳のようなおっさんを目指して頑張ります。

以下、JavaScriptのソース。

ドラッグして、範囲選択を行い、値を入力するところまで完成。
後はDBと連携して…とAjaxの範疇に。
その辺はRailsが得意な分野なので、またちょこちょこ書きます。
RJSとか、今まさに習得中です。

prototype.jsとか、ライブラリがないと動きません。
ソースを見て、必要なものを拾ってきて下さい。
後、付属のCSSを使って確認して下さい。
適当に突っ込んだせいですごく…読みにくいです…
いい加減、ソースを載せやすい環境に移行した方がいい気がしてきました。
続きを読む>>
プログラム | comments (58) | trackbacks (0)

CMS探索

CMSについて色々調べてみたところ、結構深い世界だと判明。
調べた限り、メモとして羅列。

・XOOPS関連

XSAS/XCP
exeファイルを実行するだけで、簡単にXOOPSと関連ソフトのインスコが終わるらしい。
単にXOOPSを動かしてみたいだけなら、手っ取り早くてありかな?

altsys
Alternative Sysadmin?
モジュール単位でアクセスや表示の制限を変更できるモジュール。
他のモジュールを入れる前に、まずこれを入れるといいらしい。

X_MOVIE CUSTOM
Youtubeなどにリンクしたり、自分で動画投稿を行う事ができるモジュール。
こんな話をオフィスで聞いた気がするので、とりあえず。

調べてみて分かったのですが、XOOPSは目的を絞って使わないと、迷走して終わりそうですね。
自由度は確かに高いけれど、個人レベルで必要かというと怪しい気が…
BlogだろうとWikiだろうとSNSだろうと統合して扱える点をどう生かすか。

・Ruby関連

実は、Railsで実装されたCMSもいくつかあります。
そんな中で一番高機能っぽいのがこれ。

Rubricks
XOOPをRails的に使いやすく拡張、ついでだしAjaxやらも入れて操作感もレベルアップ。
ぱっと見そんな感じ。
何か、私がやりたかった事そのものだ…考える事は一緒って事ですか。
これ、よく出来ていると思います。

まあ、私の場合技術の習得が目的なので、それでも作りますけど。
Rubricksを使うにしろ、自分で作るにしろ、「よくある」案件への対応に、この手のシステムの知識を持っていてもいいなと感じました。
大体の場合、こういうツールの考え方は洗練されていて、参考になりますし。

申し訳程度の日記。

家から出ようとしたら雨が降っていて、傘をオフィスに置いてきたせいで30分外出を迷いました。
プログラム | comments (123) | trackbacks (0)

まじめにCMSを考える

CMSと言う以上、複数機能の組み合わせで成り立つべきであり、各機能は可能な限り分離されるべき!
こう考えたのがついさっき、お腹を壊して入っていたトイレの中。

もう少し詳しくメモしておくと、こんな感じ。

・一番上位の概念として、管理者を設定(あるいは、ユーザの権限にスーパーユーザ権限を設定)。
・CMS全体で利用可能なユーザを定義、各種機能の使用可否をフラグで判定。acts_as_bitfieldが便利そう。

追記:acts_as_bitsというのもあるらしい。後で機能比較。
後、AR.value_to_booleanというメソッドがあるらしい。

参考サイト

つまり、"true"か"t"か"1"(to_sなので全部String)のみtrueで後はfalse。
乱暴なようですが、nilへの対策などを考えるとありかな、と。
RailsのAPIリファレンスが欲しいです。
できれば、逆引きできちゃうやつが。
5k円までなら安い、10kでも考えます。

・CMSの機能をRailsのコントローラで分けて定義。
・コントローラ名とユーザアカウントから、自動的に権限の可否を判断。

すごくRails寄りな発想ですが、要はユーザのロール管理って事です。
フラグひとつで管理できる程度に収めるつもりですが、場合によってはそこももっと複雑化するかもしれない…
まあ、これ以上は作りながら考えた方が早そうです。

リポジトリも切ったので、後はいよいよ作るだけ。
毎週の土日を使って頑張ります。

追記の追記

Railsのえろいひとのサイトで見かけた記事。

acts_as_attachment-1.1.6 認証系の個人的デファクト
acts_as_bits フラグ管理で必須
acts_as_nervous A型用
acts_as_view with_scope 代わりに
ar_fixtures テストデータ作成にもデータ退避リストアにも使える
dsl_accessor やっぱり使う
expectation 俺俺DRYに
htpasswd 5秒でDigest認証を追加するのに便利
migration2 開発時のテーブル定義に
perform_filters actionのDRYに必須
redbox Modal Window ぽく
responds_to_parent 画面繊維なしの upload
scoped_access has_many 時代の縛りとして

いくつかは知っているけれど、知らないものも多いわけで。
自分が使っているツールの使い方は、もっと研究するべきだなぁ、と。
ここに書いてある分だけでも、確認してみます。

メモ・買い物リスト

・服
・靴
・ラップ
・れんげ
・入力端子
・マウス or トラックボール

ゴミ箱って必要なんですかね?
長門さんの中の人も購入したらしいし、私も買おうかしら。
プログラム | comments (38) | trackbacks (0)

ちょっと…

おかしいなぁ…どうしちゃったのかな
がんばってるのわかるけど、コーディングは遊びじゃないんだよ
開発のときだけ言うこと聞いてるふりで、本番で無茶するなら
開発の意味、ないじゃない ちゃんと、仕様の通りやろうよ
ねぇ、私の書いてる仕様書
私のコード、そんなに間違ってる?

少し、頭冷やそうか……

本日のコーディングはこんな感じでした。
べ、別にオフィスでなのはさんのDVD3巻なんか見てないんだからっ
プログラム | comments (36) | trackbacks (0)

名前をつけてやる

いつまでもCMSとか呼んでいるせいで、開発環境すら整わないのではないか?
と、のっけから頭がぶっ飛び気味ですが…
まあ、今週末に20GくらいのUSBメモリでも買ってきて、必要そうなデータは移動します。
で、ノーパをLinuxマシンに変更。
OSは…SuSEでもCent OSでも。
Debianを触った事がないので、それもいいかもしれませんね。

さて、話を戻してCMSに名前をつけます。
やはり、こういうツールは人の助けにならないといけないので…
強く支えるもの…幸運の追い風…祝福のエール…
続きを読む>>
プログラム | comments (7) | trackbacks (0)