Category Archives: Article (記事)

iPhoneアプリ開発

iPhoneアプリ開発でこんなことやりたいのだけど、どうやるんだっけ?ってのがちょくちょくでてきます。逆引きのリファレンス逆引きiPhoneSDK – WIKIが参考になります。

Posted in Article (記事) | Tagged | Leave a comment

「ビジュアライジング・データ」 日本の郵便番号をマッピング

“ビジュアライジング・データ ―Processingによる情報視覚化手法” にアメリカの郵便番号の緯度経度を平面上にマッピングし、キーボードからの郵便番号入力にしたがって、入力した郵便番号に部分一致するポイントをインタラクティブに表示するサンプルが載っています。 例えば、「2」と入力すると、郵便番号が「2」から始まるエリアがハイライトされ、それ以外が暗くなります。続けて「1」と入力すると「21」と続くエリアが絞り込まれてハイライトされます。 ズーム機能をオンにすると、一致したエリアになめらかにズームし、郵便番号の緯度経度といった無機質なデータをとても美しく表示してくれます。 本書はProcessingによるデータ表示の手法だけでなく、オンライン上にあるデータを取得し、解析し、不要なデータを削除するフィルタリングの手法についても書かれており、自分で応用してさまざまなデータを視覚化していくことができるようになるでしょう。 このサンプルを参考に日本の郵便番号で試してみることにしました。アメリカの郵便番号は5桁ですが、日本は7桁なのでより精緻なマップを得ることができることを期待しています。 郵便番号から緯度経度データ取得 郵便番号は郵政局のwebサイトからダウンロードできますが、残念なことに緯度経度情報が含まれていません。GoogleMapsAPIのGeocordingを使って地名から緯度経度情報を取得する簡単なスクリプトをRubyでつくりました。 データ量が多いので、同じIPからリクエスト続けていると5000件程度でGoogleMapsから拒否されるようになるので、自動的にプロキシを変更するように、データ取得をどこからでもレジュームできるように作っておくとよいでしょう。 郵便番号リストは住所に(その他)と入っていたり(1丁目〜10丁目)、(ビル名何階)と書いてあったり表記がばらばらなので、Geocordingに投げて緯度経度が戻ってこないものは今回は無視することにしました。マッピングに必要なデータは十分な得られました。 Processingプログラム修正 本書のサンプルが外部データを取得して表示するようにつくられているため、ほとんどそのままで利用できます。アメリカの郵便番号が5桁なので、日本の郵便番号7桁に合うようにいくつか修正します。 実行 日本が浮かび上がりました。人口の密な地域はポイントもたくさんありますし、郵便番号の緯度経度だけから山脈がなんとなくわかったりとおもしろいです。9からはじまる郵便番号は沖縄と北陸、南東北まとめて割り振られたりします。 いくつかGeocordingが突飛な緯度経度を返しているようで、7からはじまる郵便番号がぽつっと関東にあったりするので、はずれ値をフィルタリングする処理を追加する必要がありそうです。 もうひとつの問題はデバイスフォントをつかって日本語が表示できない。。vlwというフォントファイルを日本語含めて作成することはできるようなのですが、フォントも配布となるとサイズが大きくなってしまうので。 データビジュアライジング この本とても勉強になります。いろいろと刺激されてなにか作りたくなります。おすすめです! “ビジュアライジング・データ ―Processingによる情報視覚化手法” 追記: ・いくつか外れ値がある ・日本語表示できない。 と問題がありますが、アプレットをアップしましたのでぜひお試しください。フォーカスがあたっている状態で郵便番号を入力すると、一致したエリアがハイライトされます。ズームモードに入るには右下の「ZOOM」をクリックします。

Posted in Article (記事) | Tagged , | Leave a comment

GAEOアプリをDashcodeでiPhone/iPodTouch対応

Dashcodeすばらしい。iPhone/iPodTouch向けのWEBサイトを簡単に作ることができます。GUIでパーツを配置するだけでデザインの編集ができます。 デバッガ機能も充実していて、ブレークポイント、スタックトレースなど豊富なデバック機能を活用することができます。 今回はGoogleAppEngineOil(GAEO)で作成していたアプリケーションのフロントにiPhone/iPodTouch用のテンプレートを作成しました。 GAEOではBaseControllerに_is_iphoneというフラグを持っているため、今回はiPhone/iPodTouchからのアクセスは/touchというアドレスにリダイレクトします。if self._is_iphone: self.redirect(“/touch”) TouchControllerのindexテンプレートにDashcodeで作成したindex.htmlを設定します。 app.yamlでDashcodeで生成したjsやcss、画像などを正しく読めるように設定します。 iPhone/iPodTouchでデータを取得するには、Dashcodeでmain.jsからXMLHttpRequestを通してデータを取得するようになるため、GAEOからはテキスト/JSON形式でデータを返すようにしました。 [code] def get_hello_data(self): self.render(text=Hellodata.getTestData()) [/code]

Posted in Article (記事) | Tagged , , | Leave a comment

OSXにLaTeX環境(Emacs+YaTex+LaTex+TeXShop)を構築してPDFプレビューする

めんどうなことはせずにとにかくTeX環境をOSX上に構築したい人向けです。OSX10.5(Leopald)にMacPort環境を構築していて既に、CarbonEmacsを使っている前提で書いています。 もしも、以前にteTeXやpTeXなどをインストールしようとしていた場合はすべてアンインストールしておいてください。残っているとインストール途中にエラーが発生します。 インストール portも最新になるようにsudo port selfupgradeしておきます。 pTexをインストールします。かなり時間がかかります。 [code] sudo port install pTeX +hiragino +otf +utf8 +motif +macosx [/code] TeXShopをダウンロードしdmgをバインドし、アプリケーションにコピーしてインストールします。 TexShopを起動して、環境設定を開きます。 「設定プロファイル」からTexShop標準を選択し標準のプロファイルをロードします。 「エンコーディング」をUTF-8に変更します。 「プレビュー」タブの「外部エディタ」「プレビューの自動更新」にチェックを入れます。 「内部設定」タブの「パス設定」(pdf)、Distiller(Ghostscript)両方を/opt/local/binに変更します。 「TeX + dvips + distiller」の「TeXプログラム」を~/Library/TeXShop/bin/ptex2pdf-utf8に変更します。 下の「LaTexプログラム」を~/Library/TeXShop/bin/platex2pdf-utf8にします。 「タイプセット」タブを開いて「ディフォルトのスクリプト」を「TeX + Ghostscript」に変更します。 ターミナルを開いて [code] $ cp ~/Library/TeXShop/bin/ptex2pdf-euc ~/Library/TeXShop/bin/ptex2pdf-utf8 $ … Continue reading

Posted in Article (記事) | Tagged , | Leave a comment

GoogleAppEngineOil 0.1安定板 0.2アップデート

ようやくベータが外れ、GoogleAppEngineOil(GAEO)のバージョン0.1の安定板リリースされています。 更に進行中の0.2には次のような機能が追加されています。 1. respond_toサポート ルーティングルールに r.connect(‘:controller/:action/:id.:format’)と書くことで、次のようにrespond_toメソッドを利用できます。 [code] self.respond_to( html=lambda: self.render('&amp;amp;amp;lt;h1&amp;amp;amp;gt;Hello World&amp;amp;amp;lt;/h1&amp;amp;amp;gt;'), js=lambda: self.render(script='alert("hello, world")') ) [/code] 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楽しみです。

Posted in Article (記事) | Tagged , | Leave a comment

Google App Engineで予約管理アプリケーションを作ってみた

GoogleAppEngine(GAE)とGoogleAppEngineOil(GAEO)がだいたいわかったところで、簡単な顧客&予約管理アプリケーションを作ってみました。 RubyonRailsになれていると、ちょっとしたことに詰まったりしてしまいます。RoRとGAEOの対応表なんかがあればよいな。 リレーションモデルではないとされているGAEのデータストレージもGAEOのBaseModel.belongs_to()を使うことで、RoRっぽく簡単にリレーションを利用できました。 最後にjQueryをつかって使いやすいUIにしてみました。 GoogleAppEngineかなり使えます。

Posted in Article (記事) | Tagged | Leave a comment

Google App Engine Oil入門1

GoogleAppEngineを使い始めたらぜひGoogleAppEigineOilを導入してみましょう。 このオイルはGoogleAppEngineをより簡単に利用するためのMVCフレームワークを提供してくれるため、より少ない設定、コーディングでアプリケーションを作成できるようになります。 Google App Engine Oilのサイトにチュートリアル基本編が用意されているので、それに従ってすすめてみます。 Google App Engine Oilインストール まずはGoogle App Engine Oilのサイトからgaeo-trunk-rxx.zipファイルをダウンロードし、適当なディレクトリに配置します。私は ~/sdk/gaeoに配置しました。 実行権限を付加します。 [code] chmod +x ~/sdk/gaeo/bin/* [/code] 環境変数設定 ~/.bashrcを開いて次のようにパスを設定します。 [code] export GAEO_HOME='/home/ericsk/sdk/gaeo' # put your installation directory here. export PATH='${GAEO_HOME}/bin:${PATH}' [/code] ターミナルを開いて変更を反映します。 [code] source ~/.bashrc [/code] … Continue reading

Posted in Article (記事) | Tagged , , | Leave a comment

OSXでGoogle App Engineをはじめる

GoogleAppEngineとはGoogle社拡張性に飛んだサーバーを利用してアプリケーションを配置することのできるサービスで、非常に簡単にwebアプリケーションを数百万規模のユーザーへ提供することができます。 現在はPythonを使ってアプリケーションを開発することができます。 早速OSXに開発環境を用意してみます。 開発環境 OSX LeopardであればPython2.5が標準でインストールされてます。 ターミナルを立ち上げ [code] python [/code] と入力。 [code] 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. [/code] と表示されればOK。GoogleAppEngineにはPython2.5以上が必要ですので、2.4以下であればpythonのウェブサイトから最新版をダウンロードしてインストールしてください。 GoogleAppEngineのインストール http://code.google.com/intl/ja/appengine/downloads.html GoogleAppEngineサイトからOSX版をダウンロードし、dmgを開いてGoogleAppEngineLuncherをApplicationsフォルダに移動します。GUIのランチャーを起動して簡単に、ローカルサーバーの起動、停止、appspotに配置できるようになっています。 本家のチュートリアルがわかりやすいので、これに従って進みましょう。 … Continue reading

Posted in Article (記事) | Tagged , | Leave a comment

あなたのコードに使うべき21のRubyトリック

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] # => NoMethodError [:(]email[/(x)/, 1] # => nilemail[/([bcd]).*?([fgh])/, 2] # … Continue reading

Posted in Article (記事) | Tagged | Leave a comment

Arduinoコンテスト2008

Arduinoをつかった各種ハードウェアのコンテスト結果優勝者の映像が公開されています。 Arduinoを使ったドアのロックシステムやGPSと連動した方向指示機、ロボットなどおもしろいソリューションが公開されています。

Posted in Article (記事) | Tagged , | Leave a comment