ようやくベータが外れ、GoogleAppEngineOil(GAEO)のバージョン0.1の安定板リリースされています。
更に進行中の0.2には次のような機能が追加されています。
1. respond_toサポート
ルーティングルールに r.connect(’:controller/:action/:id.:format’)と書くことで、次のようにrespond_toメソッドを利用できます。
self.respond_to(
html=lambda: self.render('<h1>Hello World</h1>'),
js=lambda: self.render(script='alert("hello, world")')
)
http://www.example.com/foo/bar.htmlの場合は<h1>Hello World</h1>の行をhttp://example.com/foo/bar.jsの場合はjavascriptの行を実行させることができます。
2. XHRリクエスト判別
GAEOはX-Requested-WithをつかってXMLHttpRequestオブジェクトによってリクエストされたか調べます。
self._is_xhrでTRUE/FALSEを判別できます。
3. renderメソッドにscriptタイプ追加
self.render(script=”alert(’!’”)のようにして、text/javascriptデータを送信できます。
4. RESTメソッド
self._request_methodを使用して’get’, ‘put’, ‘head’などのリクエストメソッドを判別できます。
Railsにできるだけ近づこうとしているのでしょうか。今後ともGAEO楽しみです。
Tags:
GAE,
GAEO
GoogleAppEngine(GAE)とGoogleAppEngineOil(GAEO)がだいたいわかったところで、簡単な顧客&予約管理アプリケーションを作ってみました。
RubyonRailsになれていると、ちょっとしたことに詰まったりしてしまいます。RoRとGAEOの対応表なんかがあればよいな。
リレーションモデルではないとされているGAEのデータストレージもGAEOのBaseModel.belongs_to()を使うことで、RoRっぽく簡単にリレーションを利用できました。
最後にjQueryをつかって使いやすいUIにしてみました。
GoogleAppEngineかなり使えます。
Tags:
GAE
GoogleAppEngineを使い始めたらぜひGoogleAppEigineOilを導入してみましょう。
このオイルはGoogleAppEngineをより簡単に利用するためのMVCフレームワークを提供してくれるため、より少ない設定、コーディングでアプリケーションを作成できるようになります。
Google App Engine Oilのサイトにチュートリアル基本編が用意されているので、それに従ってすすめてみます。
Google App Engine Oilインストール
まずはGoogle App Engine Oilのサイトからgaeo-trunk-rxx.zipファイルをダウンロードし、適当なディレクトリに配置します。私は ~/sdk/gaeoに配置しました。
実行権限を付加します。
chmod +x ~/sdk/gaeo/bin/*
環境変数設定
~/.bashrcを開いて次のようにパスを設定します。
export GAEO_HOME='/home/ericsk/sdk/gaeo' # put your installation directory here.
export PATH='${GAEO_HOME}/bin:${PATH}'
ターミナルを開いて変更を反映します。
source ~/.bashrc
gaeo.pyとタイプして、実行してみましょう。次のように表示されたら正常にインストールできています。エラーが発生した場合は、Pythonのバージョンが2.5以上か確認してみてください。
Usage: /home/ericsk/sdk/gaeo/bin/gaeo.py &amp;amp;amp;amp;amp;amp;amp;lt;project name&amp;amp;amp;amp;amp;amp;amp;gt;
ハローワールド
新しいアプリケーションを早速作成してみましょう。ワーキングディレクトリに移動し、gaeo.py helloとタイプします。
&amp;amp;amp;amp;amp;amp;amp;gt;gaeo.py hello
The &amp;amp;amp;amp;amp;amp;amp;quot;hello&amp;amp;amp;amp;amp;amp;amp;quot; project has been created.
これだけで基本的なアプリケーションが準備されています。
自動生成されたファイル
app.yaml, favicon.ico, main.py
app.yamlとmain.pyがApp Engineアプリケーションのメインファイルとなります。app.yamlとmain.pyを編集してアプリケーションの設定を変更することができます。 favicon.icoは〜のファイルです。ブラウザによって最初にfavicon.icoを取得しようとするので、エラーにログが残るのを防ぐために作成されています。
application/
アプリケーションコード(コントローラー、モデル、テンプレート)がこのディレクトリに配置されます。
assets/
app.yaml内で、画像、スタイルシート、Javascriptファイルのような静的なファイルをそれぞれ、assets/img、assets/css、and assets/js
ディレクトリに配置すると設定しています。foo.pngをassets/imgディレクトリに配置したら、http:///img/foo.pngでアクセスすることができます。スタイルシートやJavascriptファイルも同様です。
gaeo/
Google App Engine Oil(GAEO)のコアライブラリです。新しいGAEOがリリースされれば、このディレクトリを新しいものに置き換えるだけでアップデートすることができます。SVNをつかって常に最新版を利用することもできます。
最新のGAEOライブラリはhttp://google-app-engine-oil.googlecode.com/svn/trunk/gaeo にあります。
GoogleAppEngineLuncherでこのhelloアプリケーションを指定して実行します。
http://localhost:8080/ にアクセスし、正しく動作している事が確認できます。
初期画面に表示されているファイルは/application/template/welcome/index.htmlに置かれています。
Tags:
GAE,
GAEO,
Python
GoogleAppEngineとはGoogle社拡張性に飛んだサーバーを利用してアプリケーションを配置することのできるサービスで、非常に簡単にwebアプリケーションを数百万規模のユーザーへ提供することができます。
現在はPythonを使ってアプリケーションを開発することができます。
早速OSXに開発環境を用意してみます。
開発環境
OSX LeopardであればPython2.5が標準でインストールされてます。
ターミナルを立ち上げ
python
と入力。
Python 2.5.1 (r251:54863, Mar 7 2008, 03:19:34)
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
と表示されればOK。GoogleAppEngineにはPython2.5以上が必要ですので、2.4以下であればpythonのウェブサイトから最新版をダウンロードしてインストールしてください。
GoogleAppEngineのインストール
http://code.google.com/intl/ja/appengine/downloads.html
GoogleAppEngineサイトからOSX版をダウンロードし、dmgを開いてGoogleAppEngineLuncherをApplicationsフォルダに移動します。GUIのランチャーを起動して簡単に、ローカルサーバーの起動、停止、appspotに配置できるようになっています。
本家のチュートリアルがわかりやすいので、これに従って進みましょう。
helloworldディレクトリは ~/appengine/helloworldとしました。
GoogleAppEngineLuncherの+アイコンをクリックして、作成したディレクトリを指定します。RunボタンとStopボタンでローカルサーバーを起動してアプリケーションをテストすることができます。
ローカルでテストが終われば、Deployボタンを押すだけでアプリケーションをインターネット上に公開することができます。
公開されているAPIの中でしかプログラムを作成できませんが、ユーザー管理、データ管理、画像編集、メール送信など基本的なAPIは用意されており、これほど簡単にGoogleのサーバーインフラを利用できるのはとても魅力的です。
Tags:
GAE,
Python
rubyinside.comに 21 Ruby Tricks You Should Be Using In Your Own Codeという記事が掲載されていました。
よりRubyコードをシンプルに読みやすくするために覚えておいて損はないですね。
勉強になりましたので抄訳しました。
1 - 正規表現にマッチした文字を抜き出す簡単な方法
文字列から正規表現にマッチした文字を抜き出す場合、通常はmatchもソッドを使いますが、次のようなショートカット方法もあります。
email = “Fred Bloggs <fred@bloggs.com>”email.match(/<(.*?)>/)[1] # => “fred@bloggs.com”email[/<(.*?)>/, 1] # => “fred@bloggs.com”email.match(/(x)/)[1] [...]
Tags:
ruby
Arduinoをつかった各種ハードウェアのコンテスト結果優勝者の映像が公開されています。
Arduinoを使ったドアのロックシステムやGPSと連動した方向指示機、ロボットなどおもしろいソリューションが公開されています。
Tags:
arduino,
video
はじめに
OSXとテキストエディタを使ってはじめてのAIRアプリケーションを作成してみましょう。AirとはFlashやAjaxなどweb技術を用いてデスクトップ用のアプリケーションを作成するためのフレームワークです。
Airの特徴として、ブラウザ上で動作しているアプリケーションで実現するには難しい、デスクトップからファイルをDrag&Dropしたり、ローカルファイルシステムへのアクセスなどOSの機能を利用することもできます。
またAirで作成されたアプリケーションはWindows、OSX、Linuxで動作するためより幅広いクライアント環境で動作させることができます。
Airを作成するためのSDKはadobeが無料で公開しており、Flashアプリケーションを作成するためのFlexもオープンソース化されたことにより無料で開発環境が用意できます。
さらにFlexBuilderという有料のIDEも用意されているためVisualStudioやEclipseに慣れた開発者の方はこちらを購入するとよいと思います。
今回はIDEは使用せずにテキストエディタとコマンドラインで開発しています。
ここではAdobeのドキュメントに従って半透明なウィンドウにHelloWorldと表示させるアプリケーションを作りながらFlexとAirのSDKの使い方とアプリケーション開発の流れを紹介しています。
完成アプリケーションはこのようになります。
開発環境を準備する
ここではOSX環境で説明していますが、WindowsやLinuxでも基本は同じです。
FlexSDKとAIR SDKをダウンロードします。
AIR_SDKディレクトリとflex_sdk_3ディレクトリをそれぞれ/Applicationsディレクトリにコピーします。
Pathに各ディレクトリのbinを設定します。
ここでは.bashrcに次のように追加しました。
export PATH=”……..
/Applications/flex_sdk_3/bin:\
/Applications/AIR_SDK/bin/”
ターミナルを立ち上げコマンドラインから
>adl -help
>amxmlc -help
が実行できればAIRとFlexの開発環境が整いました。
AIRアプリケーション記述ファイル作成
HelloWorld-app.xmlというファイル名で、次のようなアプリケーション記述ファイルを作成します。
<pre><?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/1.0">
<id>samples.flex.HelloWorld</id>
<version>0.1</version>
<filename>HelloWorld</filename>
<initialWindow>
<content>HelloWorld.swf</content>
<visible>true</visible>
<systemChrome>none</systemChrome>
[...]
Tags:
air,
flex
WordpressプラグインのNextGENギャラリーを日本語化しました。
NextGENGalleryのバージョン0.96をベースにしています。
ダウンロードしたファイルを解凍した出てきたファイルnggallery-ja.moをwp-content/plugins/nextgen-gallery/langにコピーするだけです。
さくっと翻訳しているので分かりにくい部分や間違った翻訳がある可能性があります。できるだけ最新版にフォローしていきたいと考えていますので、間違いなどがあればどうぞコメントお願い致します。
NextGEN Gallery 日本語ファイル (34.07 KB)
ライセンスはNextGENGarallyと同じGNU GPLです。
nggallery-ja.poは翻訳の元になっているファイルです。
poからmoを作成するにはLinux、OSXではコマンドラインから。
>msgfmt nggallery-ja.po -o nggallery-ja.mo
を実行します。
Tags:
nextgen gallery,
wordpress
しばらくFonとして運用していましたが、MyPlace、FON_APともあまりにも遅く、接続が頻繁に途切れるなどトラブルが多かったので物置に眠っていたのですが、DD-WRT化の実験のために取り出してきました。
OSX + Arduino + Fonで正常に書き換えできましたのでメモしておきます。
コネクタケーブル作成
材料
Fon
Arduino
ケーブル
1×6メスコネクタ
コネクタへケーブルを次のようにはんだづけします。
黒: GND - 1pin
緑: TX - 3pin
黄: RX - 4pin
Fon、Arduinoと接続
FonにはGND(黒)を箱側にして2列のIC側に接続します。Arduinoには黒-GND、緑-TX-6ピン、黄-RX-7ピンに接続します。
ソフトウェア
AF_SoftSerial libraryをダウンロードし、Arduinoのディレクトリのhardware/libraryにコピーします。
Arduinoに次のコードを入力し転送します。
#include <AFSoftSerial.h>
AFSoftSerial mySerial = AFSoftSerial(6, 7);
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
}
void loop() [...]
Tags:
arduino,
fon