新しい方向へ。

東日本大震災原発人災の影響で今後の経済的な見通しが悪くなるかもと思い、家の建て替えを凍結しました。
家建て替えたはいいけど「仕事減少」→「クビ」→「無収入」→「ローン未払」→「新居売却(土地付き)」なんてなったらシャレになりません。
しかし、耐えてるだけってのは良くないので、もっと即仕事のネタになりそうな技術の勉強・実践にシフトすることにしました。
今の自分の実力ではlisp/schemeでご飯を食べるってのはかなり無謀な望み。。


さてここ1ヵ月程ちょっと、会社ではWebアプリを作るJOBに投入されていました。
そのプロセスでいろいろ言いたいこと(ほとんど愚痴になって建設的ではないものばかりですが)と、ちょっと検証してみたいことがムクムクと。


複雑な画面制御が発生するWebアプリって、画面遷移させずにJavascriptだけで実装したほうがよくないですか?


Web畑は特殊な環境(Microsoft SharePoint)が長かったので、OSSでのトレンドは把握してないんですが、今回のJOBでこの感覚は自分の中では確固たるものになりました。

というわけで、本腰入れてjQueryの続きを・・・と思ったんですが、今の自分にはjQueryすらヌルく感じてしまう。
ページの枠ぐらいはHTMLタグ書いてもいいけど、自分の脳内ではもはやbodyタグの中身なんて書きたくねぇよという状態。
ありとあらゆるGUIJavascriptで!再利用可能でイベント追加も簡単にできて!というものを探していたら、あるじゃないですか。おあつらえ向きのヤツが。


ExtJS」ですよ、「ExtJS」。


かなり思い切ってますよねコレ。しかも超豊富なGUIコンポーネント群。秀逸なデザイン。
これ使いこなせるようになりたい!
すごく複雑そうだけど、習得すればそれだけ本格的な業務アプリの画面に対応できるようになるわけで。
武器にもなるとおもうんですよね。


で、お題を「グループウェア」として新しくOSSプロジェクト作って勉強中です。
プロジェクト名の由来は、

・うんざり
  │
 英単語化
  ↓
・「cheesed」
  │
 Googleでのヒット件数が少なく、
 かつ発音しやすいアナグラム
  ↓
・「decshee」


「でくしー」と発音することにしました。
うんざりするようなモノをうまいこと改良してかっこいいモノへ!


で、一体何にうんざりしてるのかを言わせてもらいますと、
うちの会社、いろんな申請とか変更とかを紙で出してるんですよ。
で、紙で印刷する元ネタのExcelの電子ファイルもメールで送付したり。
ソフトウェア会社のはずなんですけどねぇ。。もっと効率化しましょうよ。



さて、愚痴はこれぐらいにしておいて。


今回ExtJSの勉強を始めながら、平行してローカルへのデータIOについても調べてみました。
画面作って試すのにいちいちWebサーバ立てたくないなぁなんて思って。
そしたら恐るべきことを知りました。

今のFirefoxってSQLiteが組み込まれてるんですね。
しかもXPConnect経由で「javascript使って」キャッキャウフフできちゃいましたよ。
これに関する詳細はまた別のエントリにて。

しっかしもう、ここまで来るとローカルアプリもExtJSでOKじゃないですか?てか今のトレンドに追い付くの遅すぎですかね?
あ、でも誰かFest-ExtJSとか作ってくれねぇかな。あれに相当するのは欲しいな。

しかもこの組み込みのSQLiteにアクセスするのに、SQLite Managerなんてプラグインまであるご丁寧さ。
俺が知ってる中で最も簡単にSQLDBを使えるようにできる環境を、図らずも知ることになったわけです。超便利ですコレ。






で、ここまでやって今度はバックグラウンドが気になり始めてしまいました。
いろいろあるじゃないですか。対障害性とかスケールアウトとか最近は。
そろそろ手ぇ出した方がいいんじゃないの?と思ってKeyValue型DataStoreとかカラム指向DataStoreとか調べてみました。
結論としては「やりたいことに対して適材適所で選ぶべし」といった感じです。
「CAP定理」って単語を知ることができただけでも結構勉強になりました。

KeyValue型DataStoreとかカラム指向DataStoreが出てきたからってRDBMSが無用になるわけじゃないんですね。
RDBMSでやらねばならないタイプのデータ操作ってのもやはり世の中にはあるので。
が、時代の要請でRDBMSだけでは対処しきれなくなるケースというが発生してきているというのもまた事実。
なので、KeyValue型DataStoreとかカラム指向DataStoreのうち一つだけでも、ちょっと脳みそに叩き込んでおきたいなぁと思った次第。
これらのいわゆる「NoSQL」と呼ばれる新しいパラダイムのDBの中で、もっとも魅力を感じたが「Cassandra」。
なんか運用が楽そうで対障害性も非常に高そうです。勉強するならこれだな。

自分なりに情報をかき集めた感じだと、あらかじめ業務の中身が熟知されている場面であれば別ですが、
むやみやたらにNoSQL使うのはやめた方が良さげです。
SQLに比べるとトランザクション処理や検索が弱いようなので、
むしろ最初はRDBMSで運用してみて、データ量が非常に多くなったり、該当業務の骨格が出来上がった上で、移行していく方が安全な気がしました。
とりあえず、decsheeで使うデータストアはSQLiteにしようと思います。