まぁるいしっぽ:engoneクリップピクスリスログウィキプロフまぁるいしっぽ元オタクだけど、いまや三姉妹のパパが、iPhone・ubuntu・カメラ・科学・SFなどなど雑多な興味ごとを書いていく連絡はこちらengone2010年07月21日RubyをGAEで使うGUIクライアントを作りたいで愚痴ったように、Evernote関係のGUIツールを作りたいと思っている。自分の素人なプログラミングの実力を考えると、あまり複雑なアーキテクチャにはできない。使い勝手のいいGUIを備えて、簡易に作るにはどういうアーキテクチャがいいかを考えていたのだが、以下のような構成にしようと心が決まった。容易で効果的なGUIということでは、ブラウザでJavascript(AJAX)を使う。サーバサイドプログラムはrubyとする。サーバを必要としない伝統的なクライアントプログラムでいくのをやめてwebアプリにしたのは、実行環境の問題もあるが、一番の理由は流行っているから。流行っていることで、ライブラリやドキュメントが充実していくので、プログラムを作る労力もだいぶ違う。一ヶ月ほど、20世紀末ごろ流行のクライアントサーバモデルでのアーキテクチャで、gtkなどを使って作ろうともがいてみた結果の結論である。ブラウザのアドオンやextensionで、クライアントを作ってしまうことも考えたが、JavascriptオンリーでEvernoteにアクセスできない(困難)ことがわかって、やっぱりあきらめた。プログラムに使う言語については、以下の条件により決めた。EvernoteのAPIアクセスをするライブラリで言語が限られる。現在、C#,JAVA,php,python,rubyしかない。Engineは、JAVAかpythonしか動かない。ぼくはrubyしかわからない。rubyを捨てて、pythonを勉強するのが、GAEとEvernote的には最もわかりやすいのであるが。ただでさえクライアントサイドのJavascriptを勉強しないといけないのに、サーバサイドの言語まで勉強しなくてはならないとなると、どこから手をつけていいかわからない。激しくモチベーション低下するので、なんとかrubyは残したいとしばらく葛藤していた。GAE上のJAVA内でrubyを動かす方法があることはわかっていたが、コンパイルやら何やら、JAVA環境の知識がいるので、敷居が高い。ところが数日前、「あきらめなくていいよ」という声が聞こえてきた。Engineを使うことができるgemがあるとのこと。すごい!使えるかどうか(自分の実力に対して)、注意深く読んでいくと、すごく簡単そう!ということで、上記のアーキテクチャでいけるめどがついたのである。world"をやってみる。world"をやったことあるので、既に用意してある。gemは、まだ発展途上にあるgem。webにある記事のやり方から変わっていたり、環境が悪かったり、なんだかんだでエラーが出る。以下のサイトを参考にしつつ、しばし試行錯誤。worldの表示ができるようになった。以下は、手順の自分メモ。google-appengine使ったバージョンは、以下である。最初に、プログラムを作るディレクトリを、どこかに作る。このディレクトリ名がアプリケーション名になる。jrubyここで、application名は、ディレクトリ名と同じにしておく。gemのすごいところは、サーバ起動前に、jrubyを起動するための設定ファイルや必要gemのインストールなど、全てをやってくれる。http://localhost:8080/"というメッセージが出るまで待つ。ブラウザでhttp://localhost:8080/にアクセスし、動作テスト。GAEへアップロード事前に、GAEのDashboardでアプリケーション名と同名のアプリケーションを作成しておかないとアップロードエラーが出る。動作確認URLは、http://<アプリケーション名>.appspot.com/となる。helloを見たい暇な方は、下記URLをアクセスしてみて。http://jruby-hello-maarui.appspot.com/画面が表示されるのに、数秒かかるのは、GAE内のJAVA仮想マシンでjrubyが起動するためだと思われる。この際、いたしかたあるまい。さぁ、次は、sinatraに挑戦だ。(19)タグクラウド10.04264adeskbaraliasALIGNAPIappengineappleキーボードATOKbashCASEchainconqueconsumerdigdnssecDynamicElementEmacsEvernoteevervimexifGAEGalaxygithubGoogleimageiOSiOS5iPadiPhoneiPhone4iphoneスタンドjavascriptLeftMacOSnoteoauthofOSOSXPadfonepythonretinaRightrmagickRubySHELLsigchasesinatrasmbmountSTYLEtableTDTDLToTRTrusttwitterUbuntuupdateurischemeVAPORVimWindowsXxwindowかな遊びひらがなみらい科学館やはぶさアオシマキーボードクリップクロックスゴムバンドショートカットスキーマテキストエディタディレクトリ共有プラモプラモデルワッフル三段ベッド。