<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5129887787886713879</id><updated>2011-12-15T22:54:28.928+09:00</updated><category term='Python'/><category term='emacs'/><category term='OpenLaszlo'/><category term='mysql'/><category term='html5'/><category term='Google Wave'/><category term='Titanium'/><category term='メモ'/><category term='Google Developer Day 2009'/><category term='music'/><category term='SQLServer'/><category term='smartphone'/><category term='Windows7'/><category term='youtube'/><category term='django'/><category term='golang'/><category term='Google App Engine'/><category term='Google'/><category term='oracle'/><category term='chrome'/><category term='GoogleWave'/><category term='WEB'/><category term='MongoDB'/><category term='ネタ'/><category term='PHP'/><category term='ソフトウェア'/><category term='firefox'/><category term='Redis'/><category term='Life'/><category term='CoffeeScript'/><category term='Willcom D4'/><category term='さくらインターネット'/><category term='ハードウェア'/><category term='雑記'/><category term='.net'/><category term='KVS'/><category term='Ubuntu'/><category term='vim'/><category term='Book'/><category term='T-SQL'/><category term='Google Developer Day 2008'/><category term='JavaScript'/><category term='Android'/><category term='CakePHP'/><category term='WEBサービス'/><category term='Erlang'/><title type='text'>プログラマの実態</title><subtitle type='html'>IT業界の底辺で右往左往するプログラマの実態</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.dotroid.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default?start-index=101&amp;max-results=100'/><author><name>G.Akahane</name><uri>http://www.blogger.com/profile/04767045599581845819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>253</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3883380767381850688</id><published>2011-12-15T22:54:00.001+09:00</published><updated>2011-12-15T22:54:28.971+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='CoffeeScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Titanium'/><title type='text'>Titanium と CoffeeScript でAndroidアプリ開発</title><content type='html'>&lt;p&gt;自分好みなAndroid用のRedmineクライアントが欲しいなぁ&lt;/p&gt;&lt;p&gt;ってことで、久しぶりにAndroidアプリを作成しようと思いたったわけですが、フリーランスの私にがっつりJavaで開発するだけの時間が取れそうにもなかったので、Titaniumで開発を行うことにしました。&lt;/p&gt;&lt;p&gt;ついでにメイン開発機のMBAではTitaniumStudioを立ち上げて、Androidエミュレータを立ち上げてとなると、CPU的にも辛いので、どうにかvimでできないものかと探していたらありました。&lt;/p&gt;&lt;p&gt;&lt;a href="http://higelog.brassworks.jp/?p=1588" target="_blank"&gt;GuardでTitanium+CoffeeScriptの開発を快適に&lt;/a&gt;&lt;/p&gt;&lt;p&gt;これで非力なMBAちゃんでもなんとか開発できそうです。&lt;/p&gt;&lt;p&gt;ここから少し手を加えて、下記のようなシェルスクリプトを用意しました。&lt;/p&gt;&lt;p&gt;前提としては、&lt;/p&gt;&lt;ul&gt;&lt;li&gt;プロジェクトのファイルは ~/develop/titaniumの配下に配置&lt;/li&gt;&lt;li&gt;AndroidSDKは~/bin/android-sdk に配置&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;の二点です&lt;/p&gt;&lt;p&gt;&lt;script src="https://gist.github.com/1481101.js?file=run.sh"&gt;&lt;/script&gt;&lt;/p&gt;&lt;p&gt;エミュレータを立ち上げたのち、このシェルを叩くことでビルド＆インストールを行います。&lt;/p&gt;&lt;p&gt;エミュレータ分のリソースについては、実機を接続することで節約しましょう。&lt;/p&gt;&lt;p&gt;ということで、いま開発をしている画面がこんな感じ&lt;/p&gt;&lt;p&gt;&lt;img src="http://lh6.ggpht.com/-qgEpQ7SiQfM/Tun6NTPrNyI/AAAAAAAAJBM/1jN6bboWi6E/%25255BUNSET%25255D.jpg" alt="開発の様子" width="512" height="317" /&gt;&lt;/p&gt;&lt;p&gt;これで、もっさりなTitaniumStudioからおさらばし、自分のメインエディタのvimでコーディングができます。&lt;/p&gt;&lt;p&gt;なんかTitaniumStudioが出るまでの開発手法に戻っているだけ。といえばそのとおりなんですけど・・・。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;で、メインのエディタをvimにしたのはいいのですが、やっぱり補完が聞かないのはしんどいところです。&lt;/p&gt;&lt;p&gt;ということで、下記のサイトからTitanium用のvimプラグインを入れておきます。&lt;/p&gt;&lt;p&gt;&lt;a href="https://github.com/pekepeke/titanium-vim" target="_blank"&gt;pekepeke / titanium-vim&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;これでvimでもTitaniumStudioに見劣りしないサクサクな開発が可能です。&lt;/p&gt;&lt;p&gt;(まぁ、デバッグとかするときは諦めてTitaniumStudioを立ち上げましょう。)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3883380767381850688?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3883380767381850688/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3883380767381850688' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3883380767381850688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3883380767381850688'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/12/titanium-coffeescript-android.html' title='Titanium と CoffeeScript でAndroidアプリ開発'/><author><name>G.Akahane</name><uri>http://www.blogger.com/profile/04767045599581845819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-qgEpQ7SiQfM/Tun6NTPrNyI/AAAAAAAAJBM/1jN6bboWi6E/s72-c/%25255BUNSET%25255D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7659634928536043782</id><published>2011-07-29T17:24:00.001+09:00</published><updated>2011-07-29T17:24:35.727+09:00</updated><title type='text'>退職しました。</title><content type='html'>&lt;p&gt;&lt;br /&gt;正式には7/31をもって、現在の会社を退職するわけですが、本日が最終日なので・・・。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;入社は2004/04/01だったので、実に七年と三ヶ月。&lt;br /&gt;七年の間に、.net frameworkを利用した様々なシステム構築、それに伴うインフラの構築、顧客との交渉などなど、様々な経験を積むことができました。&lt;br /&gt;その一方で、後輩の教育や、技術的な部分での継承、ノウハウの次世代への引渡しなど、会社や社員を伸ばすことが出来ず、後悔というか、心残りというか『やり残した感』もあります。&lt;br /&gt;ただ、そのギャップを埋めようとする日々が、自分を成長させてくれたと信じています。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;七年のうち、最初の4年が社内勤務、残りの3年が出向という形で勤務をさせて頂いてましたが、最初の4年は自分を磨くことで精一杯で、後輩や会社そのものに対して、『貢献する』ということがなかった気がします。&lt;br /&gt;『ふるさとは遠くにありて思うもの』とはよく言ったもので、後輩の教育などを考え始めたのは、出向してしばらくたったあとでした。&lt;br /&gt;これについては今でも悔やまれます。&lt;br /&gt;もっと後輩に伝えることがあったのではないか？&lt;br /&gt;この業界に夢や希望を持って入ってきた後輩たちに、『システムの開発ってこんなに面白いんだぜ』と伝えられたんではないか？&lt;br /&gt;もっと会社に対して、『こうして行こう！』と言えたのではないか？&lt;br /&gt;まぁ、すでに退職が秒読みになっている以上、できることはわずかですが・・・。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;退職理由については、特にこれと言ったものはありません。(会社にはなんとか理由を作って提出しましたが・・・。)&lt;br /&gt;前々から考えていて、たまたまタイミングが今だったということくらいでしょうか。&lt;br /&gt;息子もそろそろ生まれるというこのタイミング。息子が生まれてしまったら動きづらくなる、という打算的な考えもなかったといえば嘘になります。&lt;br /&gt;ただし息子の誕生を機に、新しい生活へチャレンジしようという思いもありました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;僕が会社を辞めるという決断に対して、身重の体ながらも是としてくれた、家内には感謝してもしきれません。&lt;br /&gt;&lt;br /&gt;『あなたなら大丈夫』と、笑顔で言ってくれた家内と、これから生まれてくる息子がこれからの自分の心の支えです。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;これからは、フリーランスでシステム関係のなんでも屋として生きていこうと考えています。&lt;br /&gt;幸いなことに、周りには支えてくれる人たちもいます。&lt;br /&gt;最初はその方々にお世話になって、しかし甘えることなく、仕事の上で恩返しをしていければと思っています。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;今後とも宜しくお願いいたします。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7659634928536043782?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7659634928536043782/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7659634928536043782' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7659634928536043782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7659634928536043782'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/07/blog-post.html' title='退職しました。'/><author><name>G.Akahane</name><uri>http://www.blogger.com/profile/04767045599581845819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-8268130999190176997</id><published>2011-05-31T11:09:00.001+09:00</published><updated>2011-05-31T11:09:43.515+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='golang'/><title type='text'>Go言語でデコレータ(もどき)を使用する</title><content type='html'>&lt;p&gt;Google App Engine 第三の対応言語として予想外にもGo言語が採用され、知名度も上がってきましたね。(僕の周りだけか？)&lt;/p&gt;&lt;p&gt;残念なことにGAE/Goのデプロイ枠50人から外れてしまったわけですが、それでもめげずにデプロイ出来る日を夢見てGAE/Goをいじっています。&lt;/p&gt;&lt;p&gt;で、Google App EngineのGo言語デモのソースを眺めていて、目からうろこだったのでご紹介。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;GAE_ROOT/demos/go-moustachio/moustachio/http.go より一部抜粋&lt;/p&gt;&lt;p&gt;定義&lt;br /&gt;&lt;script src="https://gist.github.com/999749.js?file=gistfile1.go"&gt;&lt;/script&gt;&amp;nbsp;使い方&lt;script src="https://gist.github.com/999750.js?file=gistfile1.go"&gt;&lt;/script&gt;&lt;/p&gt;&lt;p&gt;ローカルメソッドをハンドラとしてバインドする際に、デコレータ(ラップ)メソッドを通してあげるだけです。&lt;br /&gt;処理内容としては、Go言語では避けることのできない&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;if err != nil { ... }&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;みたいな定番の処理を&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;check(err)&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;として書き換え、check処理内部で判定を行い、err != nil の場合に、パニックを起こす。&lt;br /&gt;check内部で起こしたパニックを、ラップメソッドで追加したdefarが捉え、サーバーエラーを返すというもの。&lt;/p&gt;&lt;p&gt;今回のデモのソースでは、checkの引数がnilではなければ、パニックを起こすというヒステリックな仕様になっていますが、errorHandler部分の実装次第では使えそうなアイディアだと思いました。&lt;/p&gt;&lt;p&gt;とはいえ、やはりPythonのデコレータほど気軽に使えないので、工夫は必要になりそうですが・・・。&lt;/p&gt;&lt;p&gt;自分がつくっているGo言語のソースにもありがたく上記の考え方を取り入れさせて貰ってます。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://twitter.com/#!/hajimehoshi/status/75374570458198016" target="_blank"&gt;http://twitter.com/#!/hajimehoshi/status/75374570458198016&lt;/a&gt;&lt;/p&gt;&lt;p&gt;この方も言及されていますが、Go言語のif err != nil { ... } って書き方、どうにかなりませんかね。&lt;/p&gt;&lt;p&gt;Goでコーディングしていると、至る所に出てくるので、どうにも冗長に感じてしまって・・・。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-8268130999190176997?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/8268130999190176997/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=8268130999190176997' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8268130999190176997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8268130999190176997'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/05/go.html' title='Go言語でデコレータ(もどき)を使用する'/><author><name>G.Akahane</name><uri>http://www.blogger.com/profile/04767045599581845819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-5560392674176314506</id><published>2011-04-27T11:43:00.001+09:00</published><updated>2011-04-27T11:43:46.455+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Erlang'/><title type='text'>erlang でガード機能を使ってみる</title><content type='html'>&lt;p&gt;ガード(Guard)とは、関数のパターンマッチをより詳細に記述するためのもの。&lt;/p&gt;&lt;p&gt;関数が呼び出される際に、引数のパターンマッチと合わせて行われ、ガードの結果によって呼び出される関数を制御する事ができる。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.dotroid.net/2011/04/erlang.html" target="_blank"&gt;erlangの再帰関数&lt;/a&gt; の時に使用した、listsumでガードの例を提示します&lt;br /&gt;&lt;script src="https://gist.github.com/938045.js?file=gistfile1.hrl"&gt;&lt;/script&gt;このソースでは、引数のリスト中に数値以外のものがはいってきた場合&lt;script src="https://gist.github.com/943622.js?file=gistfile1.sh"&gt;&lt;/script&gt;&lt;br /&gt;このように、エラーとなってしまいます。&lt;br /&gt;リスト中にアトムが混じっていて、それを加算しようとしているので、当然ですね。&lt;/p&gt;&lt;p&gt;これをガードを使って、リスト要素を抜き出し、それが数値型である場合のみ加算するという形に書き換えてみます。&lt;br /&gt;&lt;script src="https://gist.github.com/943628.js?file=gistfile1.hrl"&gt;&lt;/script&gt;&lt;/p&gt;&lt;p&gt;sum1([H | T], Sum)にくっついている、when 〜　がガードです。&lt;br /&gt;上記のコードでは、Hが数値型である(is_integer(H)==True)のときだけsum1(T, Sum + H)を実行し、&lt;br /&gt;それ以外は、下部のsum1([_|T],Sum)が実行されます。&lt;br /&gt;&amp;nbsp;&lt;br /&gt;このように、ガードは関数の引数によるパターンマッチの補足として、パターンマッチだけでは制御できない条件を記述するように使用します。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-5560392674176314506?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/5560392674176314506/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=5560392674176314506' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5560392674176314506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5560392674176314506'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/04/erlang_27.html' title='erlang でガード機能を使ってみる'/><author><name>G.Akahane</name><uri>http://www.blogger.com/profile/04767045599581845819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3594815079791113329</id><published>2011-04-25T20:38:00.002+09:00</published><updated>2011-04-25T20:40:21.550+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>pathogen.vimを入れてみた</title><content type='html'>emacsを勉強すると言いながらvimをいじっている私です。&lt;br /&gt;vimの面倒なところとして、自分がいれたプラグインを管理できないことでした・・・。&lt;br /&gt;プラグインを忘れたり、更新するときにどのファイルがどのプラグインだったっけ？ってなったり。&lt;br /&gt;&lt;br /&gt;この不満を解消すべく、pathogenを導入しました。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;◯pathogenってなんぞ？&lt;/strong&gt;&lt;br /&gt;vimのプラグインを、~/.vim/bundle　以下にプラグインごとにディレクトリをわけ、プラグイン単位に管理を可能にするためのプラグインです。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;◯導入方法&lt;/strong&gt;&lt;br /&gt;pathogen.vimでgoogle先生に問い合わせるとたくさん出てくるので、そっちを参照してください。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;◯効果&lt;/strong&gt;&lt;br /&gt;美しいディレクトリ構造を得られます。&lt;br /&gt;&lt;br /&gt;びふぉー&lt;br /&gt;&lt;script src="https://gist.github.com/940392.js?file=gistfile1.sh"&gt;&lt;/script&gt;あふたー&lt;script src="https://gist.github.com/940389.js?file=gistfile1.sh"&gt;&lt;/script&gt;&lt;br /&gt;うーん、美しい。&lt;br /&gt;vimプラグインはほとんどがgithubでも管理されているので、git submoduleで追加しておくと以降の更新も楽になります。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3594815079791113329?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3594815079791113329/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3594815079791113329' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3594815079791113329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3594815079791113329'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/04/pathogenvim.html' title='pathogen.vimを入れてみた'/><author><name>G.Akahane</name><uri>http://www.blogger.com/profile/04767045599581845819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6907496583009770045</id><published>2011-04-23T09:47:00.002+09:00</published><updated>2011-04-25T20:39:59.466+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Erlang'/><title type='text'>erlangの再帰関数</title><content type='html'>Erlangには、for や whileのようないわゆるループ処理をサポートするような構文は存在しません。&lt;br /&gt;では繰り返し処理を行う場合はどうするか？&lt;br /&gt;それらはすべて、関数の再帰処理にて実現します。&lt;br /&gt;&lt;br /&gt;まずは例として、与えられたリスト内の数値をすべて足す処理 (listsum2.erl)&lt;br /&gt;&lt;script src="https://gist.github.com/938043.js?file=gistfile1.hrl"&gt;&lt;/script&gt;リスト要素を[H | T]で一要素ずつ足していき、リストが空になった時点で０を返す形です。これを実行してみましょう。&lt;script src="https://gist.github.com/938051.js?file=gistfile1.sh"&gt;&lt;/script&gt;&lt;br /&gt;listで1〜9までの整数を、引数としてすべて足し算して45を算出しています。&lt;br /&gt;ただし、この方法では、再帰的に呼び出した関数の値をすべて保持しつつ、最終的に関数の結果が最初に呼び出した階層に戻ってきた際に、最終的な値が決定する形になります。&lt;br /&gt;つまり、再帰的に呼び出した関数をすべてスタックしている状態になっています。&lt;br /&gt;これは効率的ではありません。&lt;br /&gt;上記の処理は、下のようにスタックを使わない形式に書き換えることができます。&lt;br /&gt;&lt;script src="https://gist.github.com/938045.js?file=gistfile1.hrl"&gt;&lt;/script&gt;&lt;br /&gt;このパターンであれば、戻り値を期待せず、関数内ですべて完結しているために、スタックも発生しません。&lt;br /&gt;やっぱり関数型言語独特の作法があり、今までの僕の経験してきた言語にはない独特な作法のため、いちいちつまずいてばっかりですが、一つ一つ実践していこうと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6907496583009770045?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6907496583009770045/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6907496583009770045' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6907496583009770045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6907496583009770045'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/04/erlang.html' title='erlangの再帰関数'/><author><name>G.Akahane</name><uri>http://www.blogger.com/profile/04767045599581845819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-2240699435133314941</id><published>2011-04-18T20:57:00.001+09:00</published><updated>2011-04-18T20:57:37.530+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>さくらVPSのUbuntuにDenyHostsをインストール</title><content type='html'>&lt;p&gt;いままでポート番号を22以外で運用していたさくらVPSのUbuntuでしたが、テスト的に22番に戻したところ・・・。&lt;/p&gt;&lt;p&gt;来るわ来るわ、ものすごいアタックの数。&lt;/p&gt;&lt;p&gt;さくらVPSはサーバリソースをグラフとして表示してくれる画面があるのですが、今までに無いリソースの食い方をしていたので、以前同僚に教えてもらったDenyHostsを導入しました。&lt;br /&gt;&lt;script src="https://gist.github.com/925163.js?file=gistfile1.sh"&gt;&lt;/script&gt;&lt;/p&gt;&lt;p&gt;今回は細かい設定を行わず、インストールしたままの状態で運用することにします。&lt;br /&gt;最悪自分のアカウントをロックされてしまっても、さくらVPSならWebからのシリアルコンソールがあるので、そちらで解除することも可能です。&lt;/p&gt;&lt;p&gt;で、単純導入した結果&lt;/p&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/qFtflqevV56povoq5hR5sA?feat=embedwebsite"&gt;&lt;img src="https://lh6.googleusercontent.com/_2PFAoB5HmmE/Tawk9tfnqlI/AAAAAAAAHu0/DhReJ6-Voj4/s288/sakuravps.jpg" height="288" width="285" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="https://picasaweb.google.com/dotroid/Blog?feat=embedwebsite"&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;笑ってしまうくらいの導入効果！！&lt;br /&gt;アタック受けている時から比べると、通常動作時のリソース消費なんて誤差の範囲ですね。&lt;/p&gt;&lt;p&gt;何はともあれ、いれておいて損のないソフトですね。&lt;/p&gt;&lt;p&gt;ちなみに、ブラックリスト入りしたIPは&lt;br /&gt;/etc/hosts.deny&lt;br /&gt;に記録されます。&lt;/p&gt;&lt;p&gt;すでに自分の環境でも10件ほどブラックリスト入りを果たしたIPがありますが、その中にさくらVPS内からのIPも含まれていました。&lt;br /&gt;さくらVPSのおかげで、気楽にVPSが持てる分、自衛する技術も無い人が契約できる時代になってしまったんですね・・・。&lt;/p&gt;&lt;p&gt;ホスティング企業への報告も、サーバ管理者の務めということで。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-2240699435133314941?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/2240699435133314941/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=2240699435133314941' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2240699435133314941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2240699435133314941'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/04/vpsubuntudenyhosts.html' title='さくらVPSのUbuntuにDenyHostsをインストール'/><author><name>G.Akahane</name><uri>http://www.blogger.com/profile/04767045599581845819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/_2PFAoB5HmmE/Tawk9tfnqlI/AAAAAAAAHu0/DhReJ6-Voj4/s72-c/sakuravps.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7527292822997700574</id><published>2011-04-18T18:44:00.000+09:00</published><updated>2011-04-18T18:44:35.571+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><title type='text'>Ubuntu上でMaqettaを動かす</title><content type='html'>Maqettaについて、詳しくは下記サイトを見てもらうとして&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://maqetta.org/" target="_blank"&gt;Maqetta&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sourceforge.jp/magazine/11/04/15/0335255" target="_blank"&gt;米IBM、HTML5/JavaScriptで実装されたHTML5対応UIオーサリングツール「Maquetta」をオープンソースで公開 - SourceForge.JP Magazine&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.aivy.co.jp/BLOG_TEST/nagasawa/c/2011/04/ibmhtml5maqetta.html" target="_blank"&gt;IBMがオープンソースなHTML5ツール「Maqetta」をローンチ - [モ]Modern Syntax&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dothtml5.com/archives/20110412_maqetta.html" target="_blank"&gt;HTML5のUIオーサリングツール「Maqetta」 :: dotHTML5&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;こいつをさくらVPSのUbuntu上で動かすようにした。&lt;br /&gt;といっても、動かすだけなら至極簡単でJDK1.6のインストールされている環境で&lt;br /&gt;&lt;script src="https://gist.github.com/925035.js?file=maqetta_install.sh"&gt;&lt;/script&gt;&lt;br /&gt;と、これだけ。  &amp;nbsp;  実行後、プロンプトに表示されるアドレスをブラウザで叩くと  &lt;img alt="" src="https://lh3.googleusercontent.com/_2PFAoB5HmmE/Tav_6HCneDI/AAAAAAAAHuc/Q-Ui106902k/s288/maqetta_wellcom.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;と、ログイン画面が表示される。  &amp;nbsp;&lt;br /&gt;この時点ではアカウント情報が作成されていないので、『sign up』をクリックし、ユーザ名、メールアドレス、パスワードを登録し、ログインを行う。  &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ログインを行うと、サンプルのプロジェクトが表示されている状態となる。  &lt;img alt="" src="https://lh6.googleusercontent.com/_2PFAoB5HmmE/Tav_pQtFw6I/AAAAAAAAHuU/ZNanuzQlqB0/s288/maqetta_main.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Eclipseというか、VisualStudioというか、なんとなく見慣れたデザイン画面・・・。  &amp;nbsp;&lt;br /&gt;&lt;br /&gt;いまのところDojoで提供されているウィジェットはD&amp;amp;Dで追加/編集が可能で、ソースからの変更もプレビュー画面に即時適用される。&lt;br /&gt;&lt;br /&gt;Eclipseとも連携出来るらしいが、英語の壁は厚かったため、そこまでは試していない。  &amp;nbsp;&lt;br /&gt;&lt;br /&gt;ちなみに、『このためだけにサーバで動かすのはちょっと・・・。』という人の為には、ログイン機能を省いたシェルが各々の環境に合わせて提供されている。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;maqetta.local.unix.sh&lt;/li&gt;&lt;li&gt;maqetta.local.mac.command&lt;/li&gt;&lt;li&gt;maqetta.local.win.bat&lt;/li&gt;&lt;/ul&gt;上記のシェル/コマンド/バッチファイルを叩けば、ログインをスキップしていきなりメイン画面が表示されるようになっている。&lt;br /&gt;&lt;br /&gt;Eclipseから使用する場合は、maqetta.local.* を使用するのかな？  &amp;nbsp;&lt;br /&gt;&lt;br /&gt;サーバで動かす場合は、いちいちコマンド叩くのも面倒なので、サクッとデーモン化&lt;br /&gt;&lt;script src="https://gist.github.com/925067.js?file=MaqettaDeamon"&gt;&lt;/script&gt;&lt;br /&gt;上記ファイルを管理者権限で /etc/init.d/maqetta として保存し、下記コマンドを発行&lt;br /&gt;&lt;blockquote&gt;sudo chmod +x /etc/init.d/maqetta&lt;br /&gt;sudo update-rc.d maqetta defaults&lt;br /&gt;sudo /etc/init.d/maqetta start&lt;/blockquote&gt;これで、Maqettaがデーモンとして動作します。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;現在、提供されているライブラリがDojoしかない(というかIBMがDojoに提供したものなので、あたりまえっちゃあたりまえですが・・・)ので、普段からDojo以外のライブラリを使っている人からすると、あまり利用価値はないかもしれないですが・・・。&lt;br /&gt;&lt;br /&gt;まだPreview段階なので、これからjQueryUIや、YUI、ClosureLibraryなんかに対応してくれると、非常に使い勝手の良さそうなプロジェクトになると思います。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;無保証ですが、自分のサーバに置いておこうと思いますので、ちょっと使ってみたけど・・・、という方は下記のURLからどうぞ&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dev.dotroid.net:50000/maqetta/"&gt;http://dev.dotroid.net:50000/maqetta/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7527292822997700574?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7527292822997700574/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7527292822997700574' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7527292822997700574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7527292822997700574'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/04/ubuntumaqetta.html' title='Ubuntu上でMaqettaを動かす'/><author><name>G.Akahane</name><uri>http://www.blogger.com/profile/04767045599581845819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/_2PFAoB5HmmE/Tav_6HCneDI/AAAAAAAAHuc/Q-Ui106902k/s72-c/maqetta_wellcom.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6711916414664061510</id><published>2011-04-17T23:32:00.002+09:00</published><updated>2011-04-17T23:35:29.008+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>vim派のプログラマがemacsに挑戦してみた　python開発用の環境を整える</title><content type='html'>emacs挑戦シリーズ第三弾です。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dotred5.blogspot.com/2011/04/vimemacs.html" target="_blank"&gt;vim派のプログラマがemacsに挑戦してみた&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dotred5.blogspot.com/2011/04/vimemacs_16.html" target="_blank"&gt;vim派のプログラマがemacsに挑戦してみた　チュートリアルの続き&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Google先生に尋ねたところ、どんぴしゃなサイトがありましたので、参考にさせてもらいます。&lt;br /&gt;&lt;a href="http://d.hatena.ne.jp/hidecheck/20110205/1296922662" target="_blank"&gt;macでemacs python環境 - hidecheckの日記&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;まずは、vimで言うところの~/.vimrcにあたる、.emacsファイルを作成します。&lt;br /&gt;&lt;script src="https://gist.github.com/924044.js?file=.emacs"&gt;&lt;/script&gt;先程のサイトの設定から変更させていただいたのが、&lt;br /&gt;&lt;ul&gt;&lt;li&gt; メニューバーの非表示設定をコメントアウト　(まだ初心者故・・・。)&lt;/li&gt;&lt;/ul&gt;の二点です。  &amp;nbsp;&lt;br /&gt;さて、ここからが本格的なPython環境の構築になっていきます。&lt;br /&gt;先ほどのロードパスディレクトリをまだ作成していない場合は、ココで作成しておきましょう。  &lt;br /&gt;◯python-modeの取得  標準のemacsに搭載されているpython-modeはあまり使えないということなので、ここで入れ替えを行います。&lt;br /&gt;ついでに、auto-complete.elも取得してしまいましょう。&lt;br /&gt;&lt;script src="https://gist.github.com/924056.js?file=python-mode.sh"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;さて、先程の.emacsに今ダウンロードしたpython-mode.elをpython-modeとして使用するように設定します。&lt;br /&gt;&lt;script src="https://gist.github.com/924060.js?file=.emacs"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;この時点で、python用のシンタックスハイライト、及びグローバルメニューにIM-Pythonという項目が表示されていました。&lt;br /&gt;同一モジュール内に出てくる文字列であれば、保管できるようになりました。&lt;br /&gt;&lt;img alt="" src="https://lh3.googleusercontent.com/_2PFAoB5HmmE/Tar31APEm6I/AAAAAAAAHtc/ZXY-wOi6QlI/s288/emacs-python-mode.png" /&gt;&lt;br /&gt;&lt;br /&gt;あとは、pysmellをインストールして、vimと同じようにして上げれば完了ですかね。&lt;br /&gt;pysmellの設定については、vimと同じになりますので、今回は省略。&lt;br /&gt;やはり、emacsもvimも独特のルールがあるが、やることは似通ってますね。&lt;br /&gt;&lt;br /&gt;これで、設定は一旦終了とします。&lt;br /&gt;一気に走り抜けてきたので、慣れていくためにemacsを使い続けてみようかと思います。&lt;br /&gt;ということで、４月いっぱいはpythonを書く場合はemacs縛りで行こうと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6711916414664061510?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6711916414664061510/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6711916414664061510' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6711916414664061510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6711916414664061510'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/04/vimemacspython.html' title='vim派のプログラマがemacsに挑戦してみた　python開発用の環境を整える'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/_2PFAoB5HmmE/Tar31APEm6I/AAAAAAAAHtc/ZXY-wOi6QlI/s72-c/emacs-python-mode.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6966277226091455881</id><published>2011-04-16T20:01:00.002+09:00</published><updated>2011-04-25T12:59:47.531+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>vim派のプログラマがemacsに挑戦してみた　チュートリアルの続き</title><content type='html'>前回の&lt;a href="http://dotred5.blogspot.com/2011/04/vimemacs.html" target="_blank"&gt;vim派のプログラマがemacsに挑戦してみた&lt;/a&gt;の続き&lt;br /&gt;&lt;br /&gt;◯その他のコマンド&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;&lt;strike&gt;ヤンク　　→　C-k&lt;/strike&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;コピー　　→　C-w&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;切り取り　→　M-w&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;ペースト　→　C-y&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;アンドゥ　→　C-x u&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;ファイルを開く(バッファ作成)　→　C-x C-f&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;ファイルの保存　→　C-x C-s&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;バッファのリストアップ　→　C-x C-b&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;コマンドの受付　→　M-x&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;◯モードの切替&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;Pythonモードに切り替える　→　M-x python-mode&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;テキストモードに切り替える　→　M-x text-mode&lt;/span&gt;&lt;br /&gt;とりあえず、上記でシンタックス設定が切り替わるっぽい。&lt;br /&gt;vim で言うところの.vim/syntaxディレクトリの設定を切り替えているのか、シンタックスハイライトの切り替えだけなのかはまだ試してないので、不明・・・。&lt;br /&gt;&lt;br /&gt;あと、M-xのあとに入力する文字列で、文字列置換とかモード切り替えが行える。&lt;br /&gt;実行出来るコマンドの詳細は、あとで調べることにするが、M-x入力後に、Tabキーで実行可能コマンドの一覧が表示されるので、眺めておくくらいはしておこう。&lt;br /&gt;&lt;img alt="" src="https://lh3.googleusercontent.com/_2PFAoB5HmmE/TalmnYZIAWI/AAAAAAAAHtI/LQizomdo_tU/s288/emacs-m-x-tab.png" /&gt;&lt;br /&gt;&lt;br /&gt;◯検索&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;インクリメンタルサーチ　→　C-s 検索文字列&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;◯画面分割&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;２画面に分割　→　C-x 2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;違う画面にカーソル移動　→　C-x o&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;分割した画面を１画面に戻す　→　C-x 1&lt;/span&gt;&lt;br /&gt;これはvimの:sp と ctrl+w p と同じなのでわかりやすい。&lt;br /&gt;しかし、カーソル移動は同じコントロールキーを使用するために、頭の中でちゃんと切り替えができないとちょっと混乱しそう。&lt;br /&gt;&lt;br /&gt;◯様々なヘルプを表示する&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;コマンドのヘルプ　→　C-h c [コマンド]&lt;/span&gt;&lt;br /&gt;例：C-h c C-p&amp;nbsp; →　C-pのヘルプを表示&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;拡張コマンドのヘルプ　→　C-h a [拡張コマンド]&lt;/span&gt;&lt;br /&gt;例：C-h a file&amp;nbsp; →　fileという文字を含む拡張コマンドのヘルプを表示&lt;br /&gt;&lt;span style="color: #3366ff;"&gt;オンラインマニュアルの表示　→　C-h i&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;これにてチュートリアルは終了。&lt;br /&gt;覚える事が多すぎて(vimも同じですが・・・。)ちょっと混乱してますが、覚えるまではこのページちょこちょこ戻ってきて、確認しながらすすめることにします。&lt;br /&gt;困ったら、C-gで取り消しと、C-x uのアンドゥだけ覚えておけばどうにかなると思うので、それだけ忘れないようにしておこうかと・・・。&lt;br /&gt;さて、基本中の基本は終わったので、次はemacsでpythonの環境をつくりあげて行こうと思います。&lt;br /&gt;&lt;br /&gt;emacsはとにかくコマンドが多いですが、それさえ覚えてしまえば、処理モードの切り替えなしに使えるので、煩わしさはないですね。&lt;br /&gt;emacs派プログラマの方々が、ctrlキーをCaps Lockと入れ替えているのをよく聞きますが、その理由もわかった気がします。&lt;br /&gt;左手小指を常に(というと大げさですが・・・。)ctrlキーにおいておかねばならないemacsでは、ctrlキーがキーボードの左下に配置されていると、都度移動が必要で面倒ですね・・・。&lt;br /&gt;さて、チュートリアルが終わってしまったので、これからはいろんなページを見ながら設定していこうと思います。&lt;br /&gt;&lt;br /&gt;『ココを参考にするといいよ！』ってページがあったら教えてください。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;○2011/04/25修正&lt;br /&gt;C-kはヤンクではなく、Killだというコメントを頂きましたので、訂正&lt;br /&gt;確かにvimで言うところの、ノーマルモードで:dと同じ動作でした。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6966277226091455881?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6966277226091455881/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6966277226091455881' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6966277226091455881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6966277226091455881'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/04/vimemacs_16.html' title='vim派のプログラマがemacsに挑戦してみた　チュートリアルの続き'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/_2PFAoB5HmmE/TalmnYZIAWI/AAAAAAAAHtI/LQizomdo_tU/s72-c/emacs-m-x-tab.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1070682814091948936</id><published>2011-04-15T16:29:00.001+09:00</published><updated>2011-04-15T16:29:34.276+09:00</updated><title type='text'>vim派のプログラマがemacsに挑戦してみた</title><content type='html'>&lt;p&gt;いままでemacsについては『左手小指の疲労骨折を引き起こすエディタ』程度の認識しかなく、emacsを触ったこともなかったのですが、とあることをきっかけに少し触ってみようかと思い立ちました。&lt;/p&gt;&lt;p&gt;きっかけ&amp;darr;&lt;/p&gt;&lt;p&gt;http://twitter.com/#!/gab_km/status/58163272809054208&lt;/p&gt;&lt;p&gt;&lt;img src="https://lh6.googleusercontent.com/_2PFAoB5HmmE/TafqT3Qn5HI/AAAAAAAAHsY/ShA7g4BqK_o/s288/twitter.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;このままでは@gab_kmさんと、血で血を洗う阿鼻叫喚のエディタ戦争が開戦されてしまうということで、そのような最悪な自体を回避すべく、emacsに触れてみようということにしました。&lt;/p&gt;&lt;p&gt;まずは、emacsをインストールすることからはじめなければなりません。&lt;/p&gt;&lt;p&gt;適当に調べていたら、MacOSXだったら『CarbonEmacs』というのがいいらしい、ということでこいつをインストールすることにします。&lt;/p&gt;&lt;p&gt;◯&lt;a href="http://homepage.mac.com/zenitani/emacs-j.html" target="_blank"&gt;Carbon Emacs パッケージ&lt;/a&gt;&lt;/p&gt;&lt;p&gt;とりあえず、dmgファイルをダウンロードし、アプリケーションにコピーをしてインストール完了。&lt;/p&gt;&lt;p&gt;早速起動して、チュートリアルを開始します。&lt;/p&gt;&lt;p&gt;やっぱりvimもemacsもそうなんですが、チュートリアルをひと通り見てみないと、エディタとしてはメモ帳以下なんですよね・・・。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;そして、ずっと勘違いしてたんですけど、emacsはコントロールキーの他にメタキーも使用するんですね。&lt;/p&gt;&lt;p&gt;MacOSXだとメタキーはcommandに相当するらしいようです。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;チュートリアルを始めたばっかりですが、まずは終了方法を確認&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;終了　&amp;rarr;　C-x C-c&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;◯そしてvimでは、hjklに相当するカーソルの移動&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;上移動　&amp;rarr;　C-p&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;下移動　&amp;rarr;　C-n&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;左移動　&amp;rarr;　C-b&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;右移動　&amp;rarr;　C-f&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;単語単位で左移動　&amp;rarr;　M-b&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;単語単位で右移動　&amp;rarr;　M-f&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;それぞれ、Previous, Next, Backward, Forwardの頭文字ということで、覚えるのは比較的簡単&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;◯ページ単位で飛ばす場合&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;次ページ　&amp;rarr;　C-v&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;前ページ　&amp;rarr;　M-v&lt;/span&gt;&lt;/p&gt;&lt;p&gt;出ましたメタキー。Macの場合にはCommandキーなので、若干押しにくいのが玉に瑕ですね。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;◯行頭、行末へカーソル移動&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;行頭へ　&amp;rarr;　C-a&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;行末へ　&amp;rarr;　C-e&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;◯文頭、文末へ移動&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;文頭へ　&amp;rarr;　M-a&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;文末へ　&amp;rarr;　M-e&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;◯ファイルの先頭、ファイルの末尾へ移動&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;先頭　&amp;rarr;　M-&amp;lt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3366ff;"&gt;末尾　&amp;rarr;　M-&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;この辺りから、&amp;lt;と&amp;gt;を入力するために、shiftキーが登場します。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;チュートリアルとしては、このあとに引数をとってのコマンド入力が始まりますが、今日はこの程度で。&lt;/p&gt;&lt;p&gt;そして、例の@gab_km氏からメッセージが&lt;/p&gt;&lt;p&gt;&lt;img src="https://lh6.googleusercontent.com/_2PFAoB5HmmE/TafyZvQ0iiI/AAAAAAAAHs4/hGiWOa5zrW0/s288/twitter2.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;言われるがままに実行してみると、&lt;/p&gt;&lt;p&gt;&lt;img src="https://lh5.googleusercontent.com/_2PFAoB5HmmE/TafqUNT1cZI/AAAAAAAAHsc/wRbLVkHsuTA/s288/%E5%90%8D%E7%A7%B0%E6%9C%AA%E8%A8%AD%E5%AE%9A.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;全自動ハノイの塔が！？&lt;/p&gt;&lt;p&gt;emacsすげー！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;とりあえず、少し触ってみて思ったのが&lt;/p&gt;&lt;ul&gt;&lt;li&gt;vim特有のモードが無い分、コントロールキー、メタキーの使用頻度が高い&lt;/li&gt;&lt;li&gt;escキーとお友達になるvim、対してctrlキー、メタキーとお友達になるemacs&lt;/li&gt;&lt;li&gt;いずれにせよ、チュートリアルを終わらせないと、メモ帳以下の生産性&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;ということで、今後もemacsの勉強をしていきます。&lt;/p&gt;&lt;p&gt;うーん、まだvimに寄っているなぁ&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1070682814091948936?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1070682814091948936/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1070682814091948936' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1070682814091948936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1070682814091948936'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/04/vimemacs.html' title='vim派のプログラマがemacsに挑戦してみた'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/_2PFAoB5HmmE/TafqT3Qn5HI/AAAAAAAAHsY/ShA7g4BqK_o/s72-c/twitter.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-869440591613138680</id><published>2011-03-29T10:56:00.001+09:00</published><updated>2011-03-29T10:56:12.788+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Erlang'/><title type='text'>Erlangの変数</title><content type='html'>&lt;p&gt;&lt;strong&gt;◯変数は大文字で始まる英数字と"_"が使用できる。&lt;/strong&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;/Users/red% erl&lt;br /&gt; Erlang R14B01 (erts-5.8.2) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]&lt;/p&gt;&lt;p&gt;Eshell V5.8.2&amp;nbsp; (abort with ^G)&lt;br /&gt; 1&amp;gt; Val = 100.　　　　&lt;span style="color: #0000ff;"&gt;&amp;larr;大文字で始まる変数名&lt;/span&gt;&lt;br /&gt; 100&lt;br /&gt; 2&amp;gt; Val2 = 200.　　　　&lt;span style="color: #0000ff;"&gt;&amp;larr;大文字で始まる英数字変数名&lt;/span&gt;&lt;br /&gt; 200&lt;br /&gt; 3&amp;gt; val3 = 900.　　　　&lt;span style="color: #ff0000;"&gt;&amp;larr;小文字で始まっている&lt;/span&gt;&lt;br /&gt; ** exception error: no match of right hand side value 900&lt;br /&gt; 4&amp;gt; val_4 = 1000.　　　&lt;span style="color: #ff0000;"&gt;&amp;larr;小文字で始まっている&lt;/span&gt;&lt;br /&gt; ** exception error: no match of right hand side value 1000&lt;br /&gt; 5&amp;gt; Val_4 = 1000.　　　&lt;span style="color: #0000ff;"&gt;&amp;larr;大文字で始まる"_"を含む変数名&lt;/span&gt;&lt;br /&gt; 1000&lt;br /&gt; 6&amp;gt; Val-5 = 2000.　　　　&lt;span style="color: #ff0000;"&gt;&amp;larr;ハイフンを含んでいる&lt;/span&gt;&lt;br /&gt; * 1: illegal pattern&lt;br /&gt; 7&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt; &lt;strong&gt;◯変数の代入は、一度だけしかできない　（『束縛』と呼ぶ）&lt;/strong&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;/Users/red% erl&lt;br /&gt; Erlang R14B01 (erts-5.8.2) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]&lt;/p&gt;&lt;p&gt;Eshell V5.8.2&amp;nbsp; (abort with ^G)&lt;br /&gt; 1&amp;gt; Val1 = 100.&lt;br /&gt; 100&lt;br /&gt; 2&amp;gt; Val1 = 200.&lt;br /&gt; ** exception error: no match of right hand side value 200&lt;br /&gt; 3&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;以下はErlangシェルのみ　＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝&lt;/p&gt;&lt;p&gt;&lt;strong&gt;◯b().を実行すると束縛されている変数を一覧表示する&lt;/strong&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;/Users/red% erl&lt;br /&gt; Erlang R14B01 (erts-5.8.2) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]&lt;/p&gt;&lt;p&gt;Eshell V5.8.2&amp;nbsp; (abort with ^G)&lt;br /&gt; 1&amp;gt; Val1 = 100.&lt;br /&gt; 100&lt;br /&gt; 2&amp;gt; Val2 = 200.&lt;br /&gt; 200&lt;br /&gt; 3&amp;gt; Val3 = 'ABCDE'.&lt;br /&gt; 'ABCDE'&lt;br /&gt; 4&amp;gt; b().&lt;br /&gt; Val1 = 100&lt;br /&gt; Val2 = 200&lt;br /&gt; Val3 = 'ABCDE'&lt;br /&gt; ok&lt;br /&gt; 5&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;◯f().を実行すると束縛を解除する&lt;/strong&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;/Users/red% erl&lt;br /&gt; Erlang R14B01 (erts-5.8.2) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]&lt;/p&gt;&lt;p&gt;Eshell V5.8.2&amp;nbsp; (abort with ^G)&lt;br /&gt; 1&amp;gt; Val1 = 100.&lt;br /&gt; 100&lt;br /&gt; 2&amp;gt; Val2 = 200.&lt;br /&gt; 200&lt;br /&gt; 3&amp;gt; Val3 = 'ABCDE'.&lt;br /&gt; 'ABCDE'&lt;br /&gt; 4&amp;gt; b().　　　　　&lt;span style="color: #ff0000;"&gt;&amp;larr;束縛されている変数の一覧を表示&lt;/span&gt;&lt;br /&gt; Val1 = 100&lt;br /&gt; Val2 = 200&lt;br /&gt; Val3 = 'ABCDE'&lt;br /&gt; ok&lt;br /&gt; 5&amp;gt; f().　　　　　&lt;span style="color: #ff0000;"&gt;&amp;larr;束縛を解除&lt;/span&gt;&lt;br /&gt; ok&lt;br /&gt; 6&amp;gt; b().　　　　　&lt;span style="color: #ff0000;"&gt;&amp;larr;b().を実行しても、束縛が解除されているため、okのみ表示&lt;/span&gt;&lt;br /&gt; ok&lt;br /&gt; 7&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;変数については、この後にパターンマッチなんかがあるけど、それはタプルやリストを使うときにエントリを書こう。&lt;br /&gt; 次は再帰呼び出しによるループ処理について書きます。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-869440591613138680?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/869440591613138680/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=869440591613138680' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/869440591613138680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/869440591613138680'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/03/erlang_29.html' title='Erlangの変数'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6793289196541119041</id><published>2011-03-21T20:49:00.001+09:00</published><updated>2011-03-21T20:49:24.758+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>AndroidでProgressDialogを使用する</title><content type='html'>&lt;p&gt;職場の隣の人と、『プログレスダイアログってどうやって使うんかね？』という話をしてたので、実装してみた。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;script src="https://gist.github.com/879315.js?file=androidProgressDialog.java"&gt;&lt;/script&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;メインスレッドでプログレスダイアログを表示して、実際の処理を別スレッドにて処理し、終わったらプログレスダイアログを消すというのがセオリーっぽいな&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6793289196541119041?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6793289196541119041/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6793289196541119041' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6793289196541119041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6793289196541119041'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/03/androidprogressdialog.html' title='AndroidでProgressDialogを使用する'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-808507424663411778</id><published>2011-03-08T12:10:00.000+09:00</published><updated>2011-03-08T12:10:00.359+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Erlang'/><title type='text'>ErlangでHello World</title><content type='html'>&lt;p&gt;なにはなくともHello Worldからだよね～&lt;/p&gt;&lt;p&gt;ということでThinking in Erlangに沿って勉強していくことにしました。&lt;/p&gt;&lt;p&gt;まずはソースコード&lt;br /&gt;&lt;script src="https://gist.github.com/859770.js?file=hello.erl"&gt;&lt;/script&gt;&lt;/p&gt;&lt;p&gt;いくつか特徴があるので列挙&lt;/p&gt;&lt;ul&gt;&lt;li&gt;-moduleで宣言した名称と、ファイル名は一致させる必要がある&lt;/li&gt;&lt;li&gt;行は.(ピリオド)で終わる&lt;/li&gt;&lt;li&gt;関数の宣言　-&amp;gt; 関数本体　のフォーマットで記述する&lt;/li&gt;&lt;li&gt;-exportでのhello/0は『引数が0個のhello関数をエクスポートします』の宣言？　(ちょっと怪しい　そもそもアリティってなんぞ？)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;とよくわからないなりに書いてみた。&lt;/p&gt;&lt;p&gt;やっていることは、単純で&lt;/p&gt;&lt;ol&gt;&lt;li&gt;モジュールの宣言&lt;/li&gt;&lt;li&gt;関数のエクスポート&lt;/li&gt;&lt;li&gt;関数本体の記述&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;だけ。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thinking in erlangを信じて、コンパイル&amp;rarr;実行してみる&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;/Users/red% erl&lt;br /&gt;Erlang R14B01 (erts-5.8.2) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]&lt;/p&gt;&lt;p&gt;Eshell V5.8.2&amp;nbsp; (abort with ^G)&lt;br /&gt;1&amp;gt; c("hello.erl").　　　　&lt;span style="color: #ff0000;"&gt;&amp;larr;ファイル名を指定してコンパイル&lt;/span&gt;&lt;br /&gt;{ok,hello}&lt;br /&gt;2&amp;gt; hello:hello().　　　　　&lt;span style="color: #ff0000;"&gt;&amp;larr;モジュール名:関数名　形式で関数の実行&lt;/span&gt;&lt;br /&gt;Hello, World!&lt;br /&gt;ok&lt;br /&gt;3&amp;gt; init:stop().　　　　　　&lt;span style="color: #ff0000;"&gt;&amp;larr;シェルを抜ける為のおまじない&lt;/span&gt;&lt;br /&gt;ok&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;hello:hello()を実行した際のokは、『アトムという型の値である』と記載されてるんだけど、あとのほうで解説されているらしいので、いまは無視。&lt;br /&gt;とりあえず、Hello, World!と表示されたので、今日のところはこれで良いかな。&lt;/p&gt;&lt;p&gt;今日の夜か、明日に『2 変数のスコープ』を読んでみようかな。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-808507424663411778?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/808507424663411778/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=808507424663411778' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/808507424663411778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/808507424663411778'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/03/erlanghello-world.html' title='ErlangでHello World'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3804643597797152938</id><published>2011-03-08T00:16:00.002+09:00</published><updated>2011-03-08T00:22:35.612+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Erlang'/><title type='text'>Erlang事始め</title><content type='html'>TLに流れていた『&lt;a href="http://htn.to/z6BYSM"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: Arial,Helvetica,sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #32363f;"&gt;Erlangプログラマを見分ける16の質問 - kuenishi(7)&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;』を読んでみて、『なんぞこれ？』と興味が湧いたので、Erlangを勉強することにしてみました。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;◯Erlangってなんぞ&lt;/b&gt;？&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; line-height: 22px;"&gt;&lt;b&gt;Erlang&lt;/b&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;(アーラン) は、&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF" style="background-image: none; color: #0645ad; text-decoration: none;"&gt;コンピュータ&lt;/a&gt;において汎用的な用途に使うことができる&lt;a class="mw-redirect" href="http://ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E5%87%A6%E7%90%86" style="background-image: none; color: #0645ad; text-decoration: none;" title="並行処理"&gt;並行処理&lt;/a&gt;指向の&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E" style="background-image: none; color: #0645ad; text-decoration: none;"&gt;プログラミング言語&lt;/a&gt;および実行環境である。 Erlangの&lt;a class="mw-redirect" href="http://ja.wikipedia.org/wiki/%E9%80%90%E6%AC%A1%E5%8C%96" style="background-image: none; color: #0645ad; text-decoration: none;" title="逐次化"&gt;直列処理&lt;/a&gt;のサブセット&lt;sup class="noprint Template-Fact" style="line-height: 1em;"&gt;[&lt;i&gt;&lt;a href="http://ja.wikipedia.org/wiki/Wikipedia:%E3%80%8C%E8%A6%81%E5%87%BA%E5%85%B8%E3%80%8D%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%95%E3%82%8C%E3%81%9F%E6%96%B9%E3%81%B8" style="background-image: none; color: #0645ad; text-decoration: none;" title="Wikipedia:「要出典」をクリックされた方へ"&gt;&lt;span style="white-space: nowrap;" title="2009年12月付、この記述には信頼できる情報源の提示が求められています。"&gt;要出典&lt;/span&gt;&lt;/a&gt;&lt;/i&gt;]&lt;/sup&gt;の言語は、&lt;a href="http://ja.wikipedia.org/wiki/%E9%96%A2%E6%95%B0%E5%9E%8B%E8%A8%80%E8%AA%9E" style="background-image: none; color: #0645ad; text-decoration: none;"&gt;関数型言語&lt;/a&gt;であり、先行評価を行い、&lt;a href="http://ja.wikipedia.org/wiki/%E5%A4%89%E6%95%B0_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29" style="background-image: none; color: #0645ad; text-decoration: none;" title="変数 (プログラミング)"&gt;変数&lt;/a&gt;への&lt;a href="http://ja.wikipedia.org/wiki/%E5%A4%89%E6%95%B0_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29" style="background-image: none; color: #0645ad; text-decoration: none;" title="変数 (プログラミング)"&gt;代入&lt;/a&gt;は1回限りであり、&lt;a href="http://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E5%9E%8B%E4%BB%98%E3%81%91" style="background-image: none; color: #0645ad; text-decoration: none;"&gt;動的型付け&lt;/a&gt;である。 Erlangは&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%AA%E3%82%AF%E3%82%BD%E3%83%B3" style="background-image: none; color: #0645ad; text-decoration: none;"&gt;エリクソン&lt;/a&gt;社により次の条件のシステムを構築できるよう設計された&lt;sup class="noprint Template-Fact" style="line-height: 1em;"&gt;[&lt;i&gt;&lt;a href="http://ja.wikipedia.org/wiki/Wikipedia:%E3%80%8C%E8%A6%81%E5%87%BA%E5%85%B8%E3%80%8D%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%95%E3%82%8C%E3%81%9F%E6%96%B9%E3%81%B8" style="background-image: none; color: #0645ad; text-decoration: none;" title="Wikipedia:「要出典」をクリックされた方へ"&gt;&lt;span style="white-space: nowrap;" title="2009年12月付、この記述には信頼できる情報源の提示が求められています。"&gt;要出典&lt;/span&gt;&lt;/a&gt;&lt;/i&gt;]&lt;/sup&gt;。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://ja.wikipedia.org/wiki/Erlang"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Hiragino Kaku Gothic Pro'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre-wrap;"&gt;Erlang - Wikipedia&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;よくわかりません・・・。&lt;br /&gt;とりあえず、『エリクソンが作った並列処理の得意な関数型言語』ということだけわかりました。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;◯Erlangをインストールする&lt;/b&gt;&lt;br /&gt;MacOSXで、Homebrewがインストール済みの場合は、コマンド一発でインストールできます。&lt;br /&gt;&lt;blockquote&gt;$ brew install erlang&lt;/blockquote&gt;手元のMacBookAirだと30分くらいかかってたような気がします。(裏でニコ動見てたのが主な原因か・・・。)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;◯実行してみる&lt;/b&gt;&lt;br /&gt;erlコマンドで対話型シェルに移行するので、変数に値を代入(Erlangでは束縛というらしい・・・)をしてみた。&lt;br /&gt;&lt;blockquote&gt;/Users/red% erl&lt;br /&gt;Erlang R14B01 (erts-5.8.2) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]&lt;br /&gt;Eshell V5.8.2&amp;nbsp; (abort with ^G)&lt;br /&gt;1&amp;gt; X=10.&lt;br /&gt;10&lt;br /&gt;2&amp;gt; X=100.&lt;br /&gt;** exception error: no match of right hand side value 100&lt;br /&gt;3&amp;gt; Y=100.&lt;br /&gt;100&lt;br /&gt;4&amp;gt; Z=Y.&lt;br /&gt;100&lt;br /&gt;5&amp;gt; X=Z.&lt;br /&gt;** exception error: no match of right hand side value 100&lt;br /&gt;6&amp;gt;&lt;/blockquote&gt;さっきのWikipediaでちらっと読んだ限り、一度束縛した変数は、再度束縛できないということなので、それを試してみました。&lt;br /&gt;確かに二度目の『X=100』と『X=Z』の時にエラーになってますね。&lt;br /&gt;ただ、エラーの内容がよくわからない・・・。&lt;br /&gt;インストールから、とりあえずの実行までしてみたので、今日はここまで。&lt;br /&gt;まずはiPadに転送しておいた、&lt;a href="http://www.scribd.com/doc/45477/Thinking-in-Erlang-Japanese-version"&gt;Thinking in Erlang&lt;/a&gt;を読んでおこうと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3804643597797152938?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3804643597797152938/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3804643597797152938' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3804643597797152938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3804643597797152938'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/03/erlang.html' title='Erlang事始め'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3205463680368777862</id><published>2011-02-22T18:12:00.000+09:00</published><updated>2011-02-22T18:12:01.361+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLServer'/><title type='text'>SQLServerで数値を三桁カンマ形式に変換する</title><content type='html'>&lt;p&gt;仕事でSQLServerを使用してしている際に、『数値を三桁カンマ形式で表示する』というごく一般的な問題にぶち当たったので、メモとして。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;Oracleならこんな感じで、簡単に取れるのに・・・。&lt;br /&gt;&lt;script src="https://gist.github.com/838399.js?file=%E4%B8%89%E6%A1%81%E3%82%AB%E3%83%B3%E3%83%9E_Oracle.sql"&gt;&lt;/script&gt;SQLServerと来たら&lt;script src="https://gist.github.com/838401.js?file=%E3%82%AB%E3%83%B3%E3%83%9E%E7%B7%A8%E9%9B%86_sqlserver.sql"&gt;&lt;/script&gt;&lt;br /&gt;と、金額に変換して、小数点以下を削るという・・・。&lt;/p&gt;&lt;p&gt;周りくどすぎる！&lt;br /&gt;しかもこの方法だと、金額型に変換している為に、小数点以下が三桁以上あるとアウトという欠点が・・・。&lt;/p&gt;&lt;p&gt;小数点以下三桁以上の場合はどうしようかなぁ。&lt;br /&gt;おとなしくFunction組むしかないかなぁ。&lt;/p&gt;&lt;p&gt;もうちょっと調べてみます。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3205463680368777862?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3205463680368777862/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3205463680368777862' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3205463680368777862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3205463680368777862'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/02/sqlserver.html' title='SQLServerで数値を三桁カンマ形式に変換する'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3386294514321928789</id><published>2011-02-21T14:47:00.001+09:00</published><updated>2011-02-21T14:48:57.344+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Google Mapsの表示範囲を緯度経度で取得する</title><content type='html'>&lt;p&gt;『GoogleMaps上に、DBに登録されている位置情報をマーカーで表示する』というコードを書いているときに、ふと『GoogleMapsの表示範囲って緯度経度でとれるんだっけ？』と思い立って調べてみました。&lt;/p&gt;&lt;p&gt;まぁ、結果としてはあったんですけどね。&lt;/p&gt;&lt;p&gt;実装は以下&lt;/p&gt;&lt;p&gt;（MapObjはnew google.maps.Map()で作成したオブジェクト）&lt;/p&gt;&lt;script src="https://gist.github.com/836690.js?file=Google%20Maps%E3%81%A7%E3%81%AE%E8%A1%A8%E7%A4%BA%E7%AF%84%E5%9B%B2%E3%81%AE%E7%B7%AF%E5%BA%A6%E7%B5%8C%E5%BA%A6%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B"&gt;&lt;/script&gt;&lt;br /&gt;&lt;p&gt;北東の角の緯度経度から北緯と東経、南西の角の緯度経度から、南緯と西経を取るという実装です。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3386294514321928789?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3386294514321928789/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3386294514321928789' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3386294514321928789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3386294514321928789'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2011/02/google-maps.html' title='Google Mapsの表示範囲を緯度経度で取得する'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-4806014291910775436</id><published>2010-12-14T17:33:00.001+09:00</published><updated>2010-12-14T17:33:12.793+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MongoDB'/><category scheme='http://www.blogger.com/atom/ns#' term='golang'/><title type='text'>GolangからMongoDBを操作する</title><content type='html'>&lt;p&gt;話題のMongoDBをGo言語で使ってみたかっただけです・・・。&lt;br /&gt;ドライバに関しては、『Golang』『MongoDB』でGoogle先生に問い合わせた結果、&lt;/p&gt;&lt;p&gt;&lt;a href="http://github.com/mikejs/gomongo" target="_blank"&gt;http://github.com/mikejs/gomongo&lt;/a&gt;&lt;/p&gt;&lt;p&gt;が良さそうだということで、上記のパッケージを使わせていただきました。&lt;/p&gt;&lt;p&gt;1.下準備としてパッケージのインストール&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;goinstall github.com/mikejs/gomongo/mongo&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;2.とりあえずREADMEに乗っている通り、Structを宣言しインスタンス化、ループでゴリゴリInsertしていきます。&lt;/p&gt;&lt;p&gt;&lt;script src="https://gist.github.com/740134.js?file=mongoDBInsert.go"&gt;&lt;/script&gt;3.先ほど登録したデータをFindAll()を使用して、Countが50000未満のデータを引っこ抜いてきて、Countの値を表示します。なぜか一番使用頻度の高そうなメソッドである、FindAllの使い方が解説サイトを見ても、READMEにもなかったので、Collection.goを読んで使い方を理解します。&lt;ol&gt;&lt;li&gt; 条件式をBSONに変換し、FindAllメソッドに渡します。&lt;/li&gt;&lt;li&gt;Cursorが戻り値として取得できるので、HasMoreメソッドがtrueを返す限りループ&lt;/li&gt;&lt;li&gt;CursorからGetNext()メソッドを使用して、BSONオブジェクトを取得&lt;/li&gt;&lt;li&gt;BSONを定義したStructに変換して、その値を表示&lt;/li&gt;&lt;/ol&gt;&lt;script src="https://gist.github.com/740136.js?file=mongoDBSelect.go"&gt;&lt;/script&gt;&lt;/p&gt;&lt;p&gt;意外と簡単でしたね。&lt;br&gt;&lt;br /&gt;どことなくGoogleAppEngineのBigTableっぽい使い方ですが、逆にBigTableを扱ったことがあれば使えそうです。&lt;br&gt;&lt;/p&gt;&lt;p&gt;しかし、ソースを読んでいたら、Upsertという『聞いたことはないけど、なんとなく使い方がわかりそう』なメソッドを見つけたので、今度使ってみようかと思います。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-4806014291910775436?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/4806014291910775436/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=4806014291910775436' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4806014291910775436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4806014291910775436'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/12/golangmongodb.html' title='GolangからMongoDBを操作する'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-9174627219305809306</id><published>2010-11-29T17:32:00.002+09:00</published><updated>2010-11-29T17:33:19.816+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Sandcastle Help File Builder の環境設定をする</title><content type='html'>&lt;p&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: 'MS PGothic'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande',Verdana,Arial,sans-serif; font-size: 12px; line-height: 16px; text-align: left;"&gt;&lt;p style="font-size: 1.05em;"&gt;&lt;strong&gt;事前準備&lt;/strong&gt;&lt;/p&gt;&lt;ol style="padding: 0px 0px 0px 35px; margin: 0px;"&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;&lt;a style="color: #0066cc; text-decoration: none;" title="Sandcastle" href="http://sandcastle.codeplex.com/"&gt;Sandcastle&lt;/a&gt;をダウンロード&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;Sandcastleをインストールする&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;&lt;a style="color: #0066cc; text-decoration: none;" title="Sandcastle Help File Builder " href="http://shfb.codeplex.com/"&gt;Sandcastle Help File Builder&lt;/a&gt;をダウンロード&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;Sandcastle Help File Builderをインストール&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;&lt;a style="color: #0066cc; text-decoration: none;" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4BB7CB10-A6E5-4334-8925-3BCF308CFBAF&amp;amp;displaylang=ja"&gt;Office 2003 Editions Resource Kit Tools&lt;/a&gt;をダウンロード&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;Office 2003 Editions Resource Kit ToolsでHTML Help Workshopをインストールする。&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;インストールディレクトリ(通常：C:\Program Files\ORKTOOLS\ORK11\TOOLS\HTML Help WorkshopのHTMLHELP.EXEを実行しインストールする。&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;&lt;a style="color: #0066cc; text-decoration: none;" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=59ec6ec3-4273-48a3-ba25-dc925a45584d&amp;amp;displaylang=en"&gt;Visual Studio 2008 SDK 1.1&lt;/a&gt;をダウンロードする&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;Visual Studio 2008 SDK 1.1をインストールする&lt;/li&gt;&lt;/ol&gt;&lt;p style="font-size: 1.05em;"&gt;&lt;strong&gt;使い方&lt;/strong&gt;&lt;/p&gt;&lt;ol style="padding: 0px 0px 0px 35px; margin: 0px;"&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;Sandcastle Help File Builderを開く&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;File＞NewProjectで新規に作成&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;ヘルプファイルを作成するVisual StudioのプロジェクトのビルドイベントでXMLドキュメントファイルを出力するように設定しファイルを作る&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;ProjectExplorerから作成したファイルを追加する&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;お好みで設定変更(language＞日本語とか）&lt;/li&gt;&lt;li style="list-style-type: decimal; list-style-position: outside; margin: 7px 0px 8px 10px; padding: 0px;"&gt;Documentation＞BuildProjectでビルド実行&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-9174627219305809306?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/9174627219305809306/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=9174627219305809306' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/9174627219305809306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/9174627219305809306'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/11/sandcastle-help-file-builder.html' title='Sandcastle Help File Builder の環境設定をする'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7755604316010691944</id><published>2010-11-24T20:06:00.002+09:00</published><updated>2010-11-24T20:09:59.135+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>WEBページのサムネイル画像を作成してみる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Evernoteを使っている時に、『そういえば、このサムネイルってどうやって取得してるんだ？』と疑問が・・・。&lt;br /&gt;利用するだけなら、SimpleAPI使ってればいいんですが、中の人はどうなってるか知りたくなるのがプログラマというもの。&lt;br /&gt;と思い立って調べてみました。&lt;br /&gt;&lt;br /&gt;そしてそのものズバリな解説サイトが&lt;br /&gt;&lt;a href='http://yamashita.dyndns.org/blog/generate-web-page-thumbnails-on-linux-server-without-x/' target='_blank'&gt;LinuxサーバでWebページのサムネイル画像生成(Python編) | Weboo! Returns.:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ということで、このサイトを参考にUbuntuサーバーで試してみました。&lt;br /&gt;&lt;br /&gt;&lt;big&gt;1.用意するもの&lt;/big&gt;&lt;br /&gt;解説も面倒なのでコマンドで&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install xvfb python-gtkmozembed seamonkey&lt;br /&gt;&lt;/blockquote&gt;これで必要なパッケージを一括でインストールします。&lt;br /&gt;&lt;br /&gt;&lt;big&gt;2.環境設定&lt;/big&gt;&lt;br /&gt;これも上記&lt;a href='http://yamashita.dyndns.org/blog/generate-web-page-thumbnails-on-linux-server-without-x/' target='_blank'&gt;サイト&lt;/a&gt;のまんま動かしてみます。&lt;br /&gt;&lt;br /&gt;&lt;big&gt;3.動かしてみる&lt;/big&gt;&lt;br /&gt;これも上記&lt;a href='http://yamashita.dyndns.org/blog/generate-web-page-thumbnails-on-linux-server-without-x/' target='_blank'&gt;サイト&lt;/a&gt;のまんま動かしてみます。&lt;br /&gt;&lt;br /&gt;とりあえず、&lt;span class='pln'&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class='pln'&gt;python screenshot&lt;/span&gt;&lt;span class='pun'&gt;-&lt;/span&gt;&lt;span class='pln'&gt;tng&lt;/span&gt;&lt;span class='pun'&gt;.&lt;/span&gt;&lt;span class='pln'&gt;py http&lt;/span&gt;&lt;span class='pun'&gt;:&lt;/span&gt;//www.google.co.jp&lt;br /&gt;&lt;/blockquote&gt;で動かした結果&lt;br /&gt;&lt;br /&gt;&lt;img src='http://59.106.184.196/screenshot.png' style='max-width: 800px;width:300px;height:200px;'/&gt;&lt;br /&gt;&lt;br /&gt;はい、バッチリ文字化けしてます・・・。&lt;br /&gt;&lt;br /&gt;Xvfbにフォントの設定をしてあげればいいはずなんですが、今日のところはそこまで辿りつかなかったので・・・。&lt;br /&gt;今度機会があったら調べてみようかと思います。&lt;br /&gt;&lt;br /&gt;これをWebサービスで展開出来れば、オレオレWEBサムネイルサービスの出来上がりですね。&lt;br /&gt;&lt;br /&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=4ef2781b-9372-8f22-ae55-718662435f73' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7755604316010691944?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7755604316010691944/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7755604316010691944' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7755604316010691944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7755604316010691944'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/11/web.html' title='WEBページのサムネイル画像を作成してみる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7342905803542903182</id><published>2010-04-19T16:13:00.000+09:00</published><updated>2010-04-19T16:16:13.268+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google App Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>GAEOで入力値のチェック</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;ふと、Google App Engineで、djangoのformを使用しないでバリデーションを行う場合にはどうすればいいんだろう・・・。と思い立って探してみました。&lt;br /&gt;&lt;br /&gt;で、結果が&lt;br /&gt;&lt;br /&gt;&lt;a href='http://code.google.com/p/gae-reports/wiki/GAEO_Example02' target='_blank'&gt;GAEO_Example02 - gae-reports - 自動生成されたコードを修正してブログらしくする - Project Hosting on Google Code:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Validateでエラーになったら、Exceptionを投げるというのが、正直びみょーな感じですが、他に美しく実装する方法もわからないので、これを採用することにします。&lt;br /&gt;&lt;br /&gt;まずはモデル側の定義&lt;br /&gt;&lt;div text='#000000' bgcolor='#e5e5e5'&gt;&lt;font face='monospace'&gt;&lt;br /&gt;&lt;font color='#0000ff'&gt;#!/usr/bin/python&lt;/font&gt;&lt;br /&gt;&lt;font color='#0000ff'&gt;# -*- coding: utf-8 -*-&lt;/font&gt;&lt;br /&gt;&lt;font color='#a020f0'&gt;import&lt;/font&gt; logging&lt;br /&gt;&lt;font color='#a020f0'&gt;from&lt;/font&gt; google.appengine.ext &lt;font color='#a020f0'&gt;import&lt;/font&gt; db&lt;br /&gt;&lt;font color='#a020f0'&gt;from&lt;/font&gt; gaeo.model &lt;font color='#a020f0'&gt;import&lt;/font&gt; BaseModel, SearchableBaseModel&lt;br /&gt;&lt;font color='#804040'&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt; &lt;font color='#008080'&gt;Contents&lt;/font&gt;(SearchableBaseModel):&lt;br /&gt;    text = db.TextProperty()&lt;br /&gt;    post_date = db.DateTimeProperty(auto_now_add = True)&lt;br /&gt;    rate = db.IntegerProperty()&lt;br /&gt;    tag_list = db.StringListProperty()&lt;br /&gt;    user = db.UserProperty()&lt;br /&gt;    &lt;font color='#804040'&gt;&lt;b&gt;def&lt;/b&gt;&lt;/font&gt; &lt;font color='#008080'&gt;before_put&lt;/font&gt;(self):&lt;br /&gt;        &lt;font color='#804040'&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt; &lt;font color='#804040'&gt;&lt;b&gt;not&lt;/b&gt;&lt;/font&gt; self.validate():&lt;br /&gt;            &lt;font color='#804040'&gt;&lt;b&gt;raise&lt;/b&gt;&lt;/font&gt; NameError(&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(242, 242, 242);'&gt;&lt;font color='#ff00ff'&gt;ValidateError&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;)&lt;br /&gt;            &lt;font color='#804040'&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; False&lt;br /&gt;        &lt;font color='#804040'&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; True&lt;br /&gt;    &lt;font color='#804040'&gt;&lt;b&gt;def&lt;/b&gt;&lt;/font&gt; &lt;font color='#008080'&gt;validate&lt;/font&gt;(self):&lt;br /&gt;        result = True&lt;br /&gt;        &lt;font color='#804040'&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt; len(self.text) == 0:&lt;br /&gt;            self.errors.update({&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(242, 242, 242);'&gt;&lt;font color='#ff00ff'&gt;Nothing Text&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;:&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;u'&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(242, 242, 242);'&gt;&lt;font color='#ff00ff'&gt;本文が記載されていません。&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;})&lt;br /&gt;            result = False&lt;br /&gt;        &lt;font color='#804040'&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; result&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;before_put()は、put()を実行する直前に呼び出されるメソッドで、この処理でFalseを返すと、Exceptionが発生します。&lt;br /&gt;ということで、before_put内でValidate処理を行い、その結果次第で戻り値を設定する形になります。&lt;br /&gt;今回は、textプロパティのみを必須とするため、そこしか見てません。&lt;br /&gt;&lt;br /&gt;今度はController側の処理。&lt;br /&gt;実際にbefore_putが投げたExceptionをキャッチして、エラーの場合の処理を記述します。&lt;br /&gt;&lt;br /&gt;&lt;div text='#000000' bgcolor='#e5e5e5'&gt;&lt;font face='monospace'&gt;&lt;br /&gt;&lt;font color='#0000ff'&gt;#-*- coding: utf-8 -*-&lt;/font&gt;&lt;br /&gt;&lt;font color='#a020f0'&gt;import&lt;/font&gt; cgi&lt;br /&gt;&lt;font color='#a020f0'&gt;import&lt;/font&gt; logging&lt;br /&gt;&lt;font color='#a020f0'&gt;from&lt;/font&gt; google.appengine.ext &lt;font color='#a020f0'&gt;import&lt;/font&gt; db&lt;br /&gt;&lt;font color='#a020f0'&gt;from&lt;/font&gt; gaeo.controller &lt;font color='#a020f0'&gt;import&lt;/font&gt; BaseController&lt;br /&gt;&lt;font color='#a020f0'&gt;from&lt;/font&gt; model.contents &lt;font color='#a020f0'&gt;import&lt;/font&gt; Contents&lt;br /&gt;&lt;font color='#804040'&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt; &lt;font color='#008080'&gt;ContentsController&lt;/font&gt;(BaseController):&lt;br /&gt;    &lt;font color='#804040'&gt;&lt;b&gt;def&lt;/b&gt;&lt;/font&gt; &lt;font color='#008080'&gt;create&lt;/font&gt;(self):&lt;br /&gt;        &lt;font color='#804040'&gt;&lt;b&gt;try&lt;/b&gt;&lt;/font&gt;:&lt;br /&gt;            user = users.get_current_user()&lt;br /&gt;            r = Ideas(&lt;br /&gt;                idea_text = self.params.get(&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(242, 242, 242);'&gt;&lt;font color='#ff00ff'&gt;text&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;, None),&lt;br /&gt;                rate = 0,&lt;br /&gt;                tag_list = tag_list,&lt;br /&gt;                user = user,&lt;br /&gt;            )&lt;br /&gt;            r.put()&lt;br /&gt;            self.redirect(&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(242, 242, 242);'&gt;&lt;font color='#ff00ff'&gt;/contents&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;)&lt;br /&gt;        &lt;font color='#804040'&gt;&lt;b&gt;except&lt;/b&gt;&lt;/font&gt; Exception, e:&lt;br /&gt;            self.__set_attr()&lt;br /&gt;            self.msg = e.message&lt;br /&gt;            self.render(template=&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(242, 242, 242);'&gt;&lt;font color='#ff00ff'&gt;new&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;)&lt;br /&gt;    &lt;font color='#804040'&gt;&lt;b&gt;def&lt;/b&gt;&lt;/font&gt; &lt;font color='#008080'&gt;__set_attr&lt;/font&gt;(self):&lt;br /&gt;        self.idea_text = self.params.get(&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(242, 242, 242);'&gt;&lt;font color='#ff00ff'&gt;text&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;)&lt;br /&gt;        self.tag_list = self.params.get(&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(242, 242, 242);'&gt;&lt;font color='#ff00ff'&gt;tag_list&lt;/font&gt;&lt;/span&gt;&lt;span style='background-color: rgb(229, 229, 229);'&gt;&lt;font color='#000000'&gt;'&lt;/font&gt;&lt;/span&gt;)&lt;br /&gt;        &lt;font color='#804040'&gt;&lt;b&gt;pass&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;といった具合に、exceptでbefore_putで発行した例外をキャッチし、テンプレートへの値の設定、及びテンプレートのロード＆レンダリングを自前で行うようにします。&lt;br /&gt;&lt;br /&gt;これでやりたいことは出来るんですが、ちょっと釈然としないというか・・・。&lt;br /&gt;&lt;br /&gt;しかし、意外とこの方法ってマイナーなやり方なのか、Googleでbefore_putと検索しても件数的にあまりヒットしないんですよね・・・。&lt;br /&gt;&lt;br /&gt;このほかにdjangoのformを使用しないバリデーションの方法をご存じの方は、どうかご教授願えませんでしょうか。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=ddfb6741-eb9b-8906-9aa6-409ae7bac17c' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7342905803542903182?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7342905803542903182/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7342905803542903182' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7342905803542903182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7342905803542903182'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/04/gaeo.html' title='GAEOで入力値のチェック'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-9022399973491473503</id><published>2010-03-20T16:38:00.001+09:00</published><updated>2010-03-20T16:39:45.150+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>.netでWebBrowserコンポーネントを使う</title><content type='html'>まずは、&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;前回の記事、なかったことに！&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;よくよく考えてみたら、QueryStringって文字列に限界があるんですよね・・・。&lt;br /&gt;ということで、前回の方法は諦めて、他の方法を探すことにしました。&lt;br /&gt;&lt;br /&gt;クライアントアプリケーションは、.net上で作成されているので、WebBrowserコンポーネントを使用します。&lt;br /&gt;で、こいつに内部的に文字列で作成したHTMLを食わせて、表示できないものかと。&lt;br /&gt;&lt;br /&gt;探していたら、まったく同じ要件で質問が出ていました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bbs.wankuma.com/index.cgi?mode=al2&amp;namber=38749&amp;KLOG=66"&gt;Re[2]: WebBrowserの内容にString文字列を表示するに？&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ということで、これをまるまるパクらせて頂き、住所の配列をJavaScript内に定義し、それを使用してマップ上にピンを作成していく方法を取りました。&lt;br /&gt;しかし、この方法手軽で良いんですが、キャッシュが効かないという難点が・・・。&lt;br /&gt;同じファイルを使いまわして、住所の配列を定義したjsファイルだけ文字列から生成出来れば、何の文句もないんだけどなぁ・・・。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-9022399973491473503?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/9022399973491473503/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=9022399973491473503' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/9022399973491473503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/9022399973491473503'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/03/netwebbrowser.html' title='.netでWebBrowserコンポーネントを使う'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3820171901777100163</id><published>2010-03-15T19:16:00.000+09:00</published><updated>2010-03-15T19:18:55.862+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google MapをQueryStringから生成する</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;仕事で、『クライアントアプリケーションにて複数の場所を選択後、選択した場所がPin設定されているGoogleMapを表示する』という要件があったので、実現方法なんかを記しておきます。&lt;br/&gt;&lt;br/&gt;要件整理&lt;br/&gt;&lt;ul&gt;&lt;li&gt;WEBアプリ用のサーバは用意できない(現在のDBサーバにIISを立てるまではOK)&lt;/li&gt;&lt;li&gt;画面から引き渡せる情報は、日本語表記された住所と、その住所の吹き出しに表示する名称&lt;/li&gt;&lt;li&gt;対象ブラウザはIE6～IE8 (今日現在)&lt;/li&gt;&lt;li&gt;各場所間の距離を表示したい&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;ということで、構想&lt;br/&gt;&lt;ul&gt;&lt;li&gt;サーバーが用意できないので、HTMLとJavascriptでどうにかする。&lt;/li&gt;&lt;li&gt;値の受け渡しは、QueryStringしかないかなぁ・・・。&lt;/li&gt;&lt;li&gt;住所→緯度経度はGoogleMapのAPI叩けば楽勝&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;参考にさせてもらったサイト&lt;br/&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://okwave.jp/qa/q5528204.html' target='_blank'&gt;GoogleMaps API 住所から複数ピンを表示(1/1) | OKWave&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://billyboy.blog81.fc2.com/blog-entry-183.html' target='_blank'&gt;JavaScript:JavaScriptでQueryStringを取得するためのユーザー定義関数 - 覚書 - My Knowledge Base - FC2ブログ版:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.ajaxtower.jp/googlemaps/geocoding/index1.html' target='_blank'&gt;住所から座標を取得(getLatLngメソッド) - ジオコーディング(GClientGeocoder) - Google Maps入門:&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;ということで、作成してみたのが以下&lt;br/&gt;&lt;br/&gt;main.html&lt;br/&gt;&lt;div style='background-color: rgb(0, 0, 0); color: rgb(255, 255, 255);'&gt;&lt;br/&gt;&lt;font face='monospace'&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "&lt;a href='http://www.w3.org/TR/html4/strict.dtd'&gt;http://www.w3.org/TR/html4/strict.dtd&lt;/a&gt;"&amp;gt;&lt;/font&gt; &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;html&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; xmlns=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"&lt;a href='http://www.w3.org/1999/xhtml'&gt;http://www.w3.org/1999/xhtml&lt;/a&gt;"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;lang&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"ja-JP"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;meta&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;http-equiv&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"Content-Type"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;content&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"text/html; charset=UTF-8"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;meta&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;http-equiv&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"Content-Script-Type"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;content&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"text/javascript"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;head&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;&lt;font color='#ff6060'&gt;        &lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;title&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;Google Map From XML DATA&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;title&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff6060'&gt; &lt;/font&gt;&lt;br/&gt;&lt;font color='#ff6060'&gt;        &lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;script&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;type&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"text/javascript"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;charset&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"UTF-8"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;src&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"&lt;a href='http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key='&gt;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=&lt;font color='#ffffff'&gt;[Google Map API Key]&lt;/font&gt;&lt;/a&gt;"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;script&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff6060'&gt; &lt;/font&gt;&lt;br/&gt;&lt;font color='#ff6060'&gt;        &lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;script&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;type&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"text/javascript"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;charset&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"utf-8"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;src&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"./addressToMap.js"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;script&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff6060'&gt; &lt;/font&gt;&lt;br/&gt;&lt;font color='#ff6060'&gt;        &lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;script&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;type&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"text/javascript"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;charset&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"utf-8"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;src&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"./querystring.js"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;script&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff6060'&gt; &lt;/font&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;head&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;body&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#8080ff'&gt;onload="&lt;/font&gt;&lt;font color='#8080ff'&gt;Mapload&lt;/font&gt;()&lt;font color='#8080ff'&gt;"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#8080ff'&gt;onunload="&lt;/font&gt;&lt;font color='#8080ff'&gt;GUnload&lt;/font&gt;()&lt;font color='#8080ff'&gt;"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;        &lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;div&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;style&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"width:800px;text-align:left;margin:0 auto;"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;div&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;id&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"map"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;style&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"float:right;width:600px;height:450px;border:1px solid black;"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;div&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;dl&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;id&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"marker_navi"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;style&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"width:190px;padding-left:0px;margin-left:0px;"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;dl&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;hr&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;font color='#00ff00'&gt;style&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;&lt;font color='#ff40ff'&gt;"clear:both;display:none;"&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;        &lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;div&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;body&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;lt;/&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;html&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/font&gt; &lt;br/&gt;&lt;/font&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;querystring.js&lt;br/&gt;&lt;div style='background-color: rgb(0, 0, 0); color: rgb(255, 255, 255);'&gt;&lt;br/&gt;&lt;font face='monospace'&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; getQuerystring = &lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;(key, default_)  &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;  &lt;br/&gt;   &lt;font color='#00ffff'&gt;if&lt;/font&gt; (default_==&lt;font color='#00ffff'&gt;null&lt;/font&gt;) default_=&lt;font color='#ff40ff'&gt;""&lt;/font&gt;;  &lt;br/&gt;   key = key.replace(&lt;font color='#ff40ff'&gt;/[\[]/&lt;/font&gt;,&lt;font color='#ff40ff'&gt;"&lt;/font&gt;&lt;font color='#8080ff'&gt;\\\[&lt;/font&gt;&lt;font color='#ff40ff'&gt;"&lt;/font&gt;).replace(&lt;font color='#ff40ff'&gt;/[\]]/&lt;/font&gt;,&lt;font color='#ff40ff'&gt;"&lt;/font&gt;&lt;font color='#8080ff'&gt;\\\]&lt;/font&gt;&lt;font color='#ff40ff'&gt;"&lt;/font&gt;);  &lt;br/&gt;   &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; regex = &lt;font color='#00ffff'&gt;new&lt;/font&gt; &lt;font color='#00ff00'&gt;RegExp&lt;/font&gt;(&lt;font color='#ff40ff'&gt;"[&lt;/font&gt;&lt;font color='#8080ff'&gt;\\&lt;/font&gt;&lt;font color='#ff40ff'&gt;?&amp;amp;]"&lt;/font&gt;+key+&lt;font color='#ff40ff'&gt;"=([^&amp;amp;#]*)"&lt;/font&gt;);  &lt;br/&gt;   &lt;br/&gt;   &lt;font color='#ffff00'&gt;//alert(window.location.href);&lt;/font&gt;&lt;br/&gt;   &lt;br/&gt;   &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; qs = regex.exec(decodeURI(&lt;font color='#00ffff'&gt;window&lt;/font&gt;.&lt;font color='#00ffff'&gt;location&lt;/font&gt;.href));  &lt;br/&gt;   &lt;font color='#00ffff'&gt;if&lt;/font&gt;(qs == &lt;font color='#00ffff'&gt;null&lt;/font&gt;)  &lt;br/&gt;    &lt;font color='#00ffff'&gt;return&lt;/font&gt; default_;  &lt;br/&gt;   &lt;font color='#00ffff'&gt;else&lt;/font&gt;  &lt;br/&gt;    &lt;font color='#00ffff'&gt;return&lt;/font&gt; qs&lt;font color='#ffff00'&gt;&lt;b&gt;[&lt;/b&gt;&lt;/font&gt;1&lt;font color='#ffff00'&gt;&lt;b&gt;]&lt;/b&gt;&lt;/font&gt;;  &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; splitQuery = &lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;(query)&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;        &lt;font color='#00ffff'&gt;return&lt;/font&gt; query.split(&lt;font color='#ff40ff'&gt;";"&lt;/font&gt;);&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;&lt;/font&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;addressToMap.js&lt;br/&gt;&lt;div style='background-color: rgb(0, 0, 0); color: rgb(255, 255, 255);'&gt;&lt;br/&gt;&lt;font face='monospace'&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; map;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; befLatLng;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; navi;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; befLatLng;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; Mapload = &lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;()&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;        &lt;font color='#00ffff'&gt;if&lt;/font&gt;(GBrowserIsCompatible())&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;                map = &lt;font color='#00ffff'&gt;new&lt;/font&gt; GMap2(&lt;font color='#00ffff'&gt;document&lt;/font&gt;.getElementById(&lt;font color='#ff40ff'&gt;"map"&lt;/font&gt;),&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;size:&lt;font color='#00ffff'&gt;new&lt;/font&gt; GSize(600,450)&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;);&lt;br/&gt;                map.setCenter(&lt;font color='#00ffff'&gt;new&lt;/font&gt; GLatLng(35.655, 139.744),18);&lt;br/&gt;                map.addControl(&lt;font color='#00ffff'&gt;new&lt;/font&gt; GMapTypeControl());&lt;br/&gt;                map.addControl(&lt;font color='#00ffff'&gt;new&lt;/font&gt; GLargeMapControl());&lt;br/&gt;                createMap();&lt;br/&gt;        &lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; createMap = &lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;()&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;        &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; addresses = &lt;font color='#ffff00'&gt;&lt;b&gt;[]&lt;/b&gt;&lt;/font&gt;;&lt;br/&gt;        &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; addressSet = &lt;font color='#ffff00'&gt;&lt;b&gt;[]&lt;/b&gt;&lt;/font&gt;;&lt;br/&gt;        addresses = splitQuery(getQuerystring(&lt;font color='#ff40ff'&gt;"address"&lt;/font&gt;));&lt;br/&gt;        &lt;br/&gt;        navi = &lt;font color='#00ffff'&gt;document&lt;/font&gt;.getElementById(&lt;font color='#ff40ff'&gt;"marker_navi"&lt;/font&gt;);&lt;br/&gt;        &lt;font color='#00ffff'&gt;for&lt;/font&gt;(&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; i=0;i&amp;lt;addresses.length;i++)&lt;br/&gt;        &lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;                addressSet = addresses&lt;font color='#ffff00'&gt;&lt;b&gt;[&lt;/b&gt;&lt;/font&gt;i&lt;font color='#ffff00'&gt;&lt;b&gt;]&lt;/b&gt;&lt;/font&gt;.split(&lt;font color='#ff40ff'&gt;":"&lt;/font&gt;);&lt;br/&gt;                addressToLatLng(addressSet&lt;font color='#ffff00'&gt;&lt;b&gt;[&lt;/b&gt;&lt;/font&gt;1&lt;font color='#ffff00'&gt;&lt;b&gt;]&lt;/b&gt;&lt;/font&gt;, addressSet&lt;font color='#ffff00'&gt;&lt;b&gt;[&lt;/b&gt;&lt;/font&gt;0&lt;font color='#ffff00'&gt;&lt;b&gt;]&lt;/b&gt;&lt;/font&gt;);&lt;br/&gt;        &lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;        &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; addressToLatLng = &lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;(addressString, addressInfo)&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;        &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; geocoder = &lt;font color='#00ffff'&gt;new&lt;/font&gt; GClientGeocoder();&lt;br/&gt;        geocoder.getLatLng(addressString, &lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;(latlang)&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;locateToMapPing(latlang, addressString, addressInfo)&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;);&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; locateToMapPing = &lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;(latlng, addressName, addressInfo)&lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; distance = &lt;font color='#ff40ff'&gt;""&lt;/font&gt;;&lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; point = latlng;&lt;br/&gt;                map.panTo(point);&lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; marker = &lt;font color='#00ffff'&gt;new&lt;/font&gt; GMarker(point,&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;clickable:&lt;font color='#ff40ff'&gt;true&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;);&lt;br/&gt;                map.addOverlay(marker);&lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; closure = GEvent.callbackArgs(marker,&lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;(html)&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;                        &lt;font color='#ffff00'&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.openInfoWindowHtml(html);&lt;br/&gt;                        map.panTo(&lt;font color='#ffff00'&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.getLatLng());&lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;,addressInfo); &lt;br/&gt;                GEvent.bind(marker,&lt;font color='#ff40ff'&gt;'click'&lt;/font&gt;,closure,&lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;()&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.apply(&lt;font color='#ffff00'&gt;&lt;b&gt;arguments&lt;/b&gt;&lt;/font&gt;);&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;); &lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; dt = &lt;font color='#00ffff'&gt;document&lt;/font&gt;.createElement(&lt;font color='#ff40ff'&gt;"dt"&lt;/font&gt;);&lt;br/&gt;                dt.innerHTML=addressInfo;&lt;br/&gt;                navi.appendChild(dt);&lt;br/&gt;                GEvent.bindDom(dt,&lt;font color='#ff40ff'&gt;'click'&lt;/font&gt;,closure,&lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;()&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.apply(&lt;font color='#ffff00'&gt;&lt;b&gt;arguments&lt;/b&gt;&lt;/font&gt;);&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;); &lt;br/&gt;                &lt;font color='#00ffff'&gt;if&lt;/font&gt; (befLatLng)&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;                        distance = befLatLng.distanceFrom(latlng).toFixed(0) + &lt;font color='#ff40ff'&gt;"メートル"&lt;/font&gt;;&lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;font color='#00ffff'&gt;else&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;                        distance = &lt;font color='#ff40ff'&gt;""&lt;/font&gt;;&lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;                befLatLng = latlng;&lt;br/&gt;                &lt;font color='#ffff00'&gt;&lt;b&gt;var&lt;/b&gt;&lt;/font&gt; dd = &lt;font color='#00ffff'&gt;document&lt;/font&gt;.createElement(&lt;font color='#ff40ff'&gt;"dd"&lt;/font&gt;);&lt;br/&gt;                dd.innerHTML= addressName + &lt;font color='#ff40ff'&gt;"&amp;lt;br&amp;gt;"&lt;/font&gt; + distance;&lt;br/&gt;                dd.style.marginLeft = &lt;font color='#ff40ff'&gt;'5px'&lt;/font&gt;; &lt;br/&gt;                dd.style.marginBottom = &lt;font color='#ff40ff'&gt;'5px'&lt;/font&gt;; &lt;br/&gt;                navi.appendChild(dd);&lt;br/&gt;                GEvent.bindDom(dd,&lt;font color='#ff40ff'&gt;'click'&lt;/font&gt;,closure,&lt;font color='#ffff00'&gt;&lt;b&gt;function&lt;/b&gt;&lt;/font&gt;()&lt;font color='#ffff00'&gt;&lt;b&gt;{&lt;/b&gt;&lt;/font&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.apply(&lt;font color='#ffff00'&gt;&lt;b&gt;arguments&lt;/b&gt;&lt;/font&gt;);&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;); &lt;br/&gt;&lt;font color='#ffff00'&gt;&lt;b&gt;}&lt;/b&gt;&lt;/font&gt;&lt;br/&gt;&lt;/font&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;基本的な使い方としては、&lt;br/&gt;&lt;blockquote&gt;main.html?address=[表示情報]:[住所];[表示情報]:[住所];[表示情報]:[住所];・・・・・・・・&lt;/blockquote&gt;&lt;br/&gt;と、表示内容と住所のセットをQueryStringとして羅列していくだけ。&lt;br/&gt;&lt;br/&gt;というわけで、みんな大好きマクドナルドの横浜近辺の店舗を表示する場合は&lt;a href='http://www.dotred.org/maps/multi_pin.html?address=%E6%A8%AA%E6%B5%9C%E8%A5%BF%E5%8F%A3:%E7%A5%9E%E5%A5%88%E5%B7%9D%E7%9C%8C%E6%A8%AA%E6%B5%9C%E5%B8%82%E8%A5%BF%E5%8C%BA%E5%8D%97%E5%B9%B82-14-9;%E6%A8%AA%E6%B5%9C%E8%A5%BF%E5%8F%A3%EF%BC%95%E7%95%AA%E8%A1%97%E5%BA%97:%E7%A5%9E%E5%A5%88%E5%B7%9D%E7%9C%8C%E6%A8%AA%E6%B5%9C%E5%B8%82%E8%A5%BF%E5%8C%BA%E5%8D%97%E5%B9%B81-5-8%E4%B8%80%E5%B9%B8%E3%83%93%E3%83%AB;%E6%A8%AA%E6%B5%9C%E3%83%99%E3%82%A4%E3%82%AF%E3%82%A9%E3%83%BC%E3%82%BF%E3%83%BC%E5%BA%97:%E7%A5%9E%E5%A5%88%E5%B7%9D%E7%9C%8C%E6%A8%AA%E6%B5%9C%E5%B8%82%E7%A5%9E%E5%A5%88%E5%B7%9D%E5%8C%BA%E9%87%91%E6%B8%AF%E7%94%BA1-10;%E6%A8%AA%E6%B5%9C%E3%82%B8%E3%83%A3%E3%83%83%E3%82%AF%E3%83%A2%E3%83%BC%E3%83%AB%E5%BA%97:%E7%A5%9E%E5%A5%88%E5%B7%9D%E7%9C%8C%E6%A8%AA%E6%B5%9C%E5%B8%82%E8%A5%BF%E5%8C%BA%E3%81%BF%E3%81%AA%E3%81%A8%E3%81%BF%E3%82%89%E3%81%844-8-1;%E5%A4%A9%E7%8E%8B%E7%94%BA%E9%A7%85%E5%89%8D%E5%BA%97:%E7%A5%9E%E5%A5%88%E5%B7%9D%E7%9C%8C%E6%A8%AA%E6%B5%9C%E5%B8%82%E4%BF%9D%E5%9C%9F%E3%82%B1%E8%B0%B7%E5%8C%BA%E5%A4%A9%E7%8E%8B%E7%94%BA2-47-6' target='_blank'&gt;こんな感じ&lt;/a&gt;になります。&lt;br/&gt;&lt;br/&gt;御世辞にも使い勝手の良いものではないですが、クライアントアプリのみで表示するならこんなもんでしょ。ってことでｗ&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;今回の反省点：&lt;br/&gt;vimの配色のままソースを出すと、果てしなく見ずらいので、今度からgithubのサービスを使おうかなぁ・・・。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=650eb479-e1cf-857d-bffb-eb2b67e56d5b' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3820171901777100163?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3820171901777100163/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3820171901777100163' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3820171901777100163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3820171901777100163'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/03/google-mapquerystring.html' title='Google MapをQueryStringから生成する'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-4093416488086518873</id><published>2010-03-05T19:24:00.002+09:00</published><updated>2010-03-05T19:24:34.177+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KVS'/><category scheme='http://www.blogger.com/atom/ns#' term='Redis'/><title type='text'>Go言語でRedisを使う　redis.conf編</title><content type='html'>&lt;a href="http://dotred5.blogspot.com/2010/03/goredis.html" target="_blank"&gt;前の記事&lt;/a&gt;でRedisのインストールは終わりましたので、今回はRedisをバックグラウンドで動かす方法とRedis.confの設定を。&lt;br /&gt;&lt;br /&gt;まずはredisをデーモンっぽく動かす方法&lt;br /&gt;~/.bashrcに以下を追記&lt;br /&gt;(redisは/home/dotred/redis/配下にあるものとします。)&lt;br /&gt;&lt;blockquote&gt;$HOME/redis/redis-server $HOME/redis/redis.conf&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;次に、redis.confを編集します。&lt;br /&gt;まずはデーモンとして動かすために&lt;br /&gt;&lt;blockquote&gt;daemonize &lt;font color="#FF0000"&gt;no&lt;/font&gt; &lt;br /&gt;↓&lt;br /&gt;daemonize &lt;font color="#FF0000"&gt;yes&lt;/font&gt;&lt;/blockquote&gt;と修正&lt;br /&gt;&lt;br /&gt;次に、似非デーモンなので、コンソールログが出るのを抑止するため&lt;br /&gt;&lt;blockquote&gt;logfile &lt;font color="#FF0000"&gt;stdout&lt;/font&gt;&lt;br /&gt;↓&lt;br /&gt;logfile &lt;font color="#FF0000"&gt;/dev/null&lt;/font&gt;&lt;/blockquote&gt;と、ログをブラックホールに追いやります。&lt;br /&gt;&lt;br /&gt;あとの細かい設定については追い切れていないので、割愛。&lt;br /&gt;とりあえず、上記の設定でやりたかったことはやれているので、OKとします。&lt;br /&gt;&lt;br /&gt;設定が終わったら&lt;br /&gt;&lt;blockquote&gt;source ~/.bashrc&lt;/blockquote&gt;で、redis-serverを動かします。&lt;br /&gt;&lt;br /&gt;クライアントの使い方はまた次回&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-4093416488086518873?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/4093416488086518873/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=4093416488086518873' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4093416488086518873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4093416488086518873'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/03/goredisredisconf.html' title='Go言語でRedisを使う　redis.conf編'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1760343240725114791</id><published>2010-03-05T18:14:00.003+09:00</published><updated>2010-03-05T19:24:02.714+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KVS'/><category scheme='http://www.blogger.com/atom/ns#' term='golang'/><category scheme='http://www.blogger.com/atom/ns#' term='Redis'/><title type='text'>Go言語でRedisを使う　インストール編</title><content type='html'>GolangとKVSでなんか作ろうと思いたち、Google先生にお尋ねしたところ、Redis-dbが良さそうだ。ということで早速インストールです。&lt;br /&gt;&lt;br /&gt;Redisの特徴として、memcachedのようなオンメモリKVSでありながら、一定時間でストレージに保存し永続化も可能という素晴らしい特徴があります。&lt;br /&gt;しかも、既にGolang用のドライバもgithub上に公開されているので、インストールから動作確認までやってしまおうと思います。&lt;br /&gt;&lt;br /&gt;今回はCentOSを搭載したVPS上での作業が前提です。&lt;br /&gt;&lt;br /&gt;でまずはインストールから&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;git clone git://github.com/antirez/redis.git&lt;br /&gt;cd redis&lt;br /&gt;make&lt;br /&gt;&lt;/blockquote&gt;しゅーりょー&lt;br /&gt;&lt;br /&gt;各種バイナリが生成されているので、実際に動かしてみましょう。&lt;br /&gt;&lt;blockquote&gt;./redis-benchmark&lt;br /&gt;&lt;/blockquote&gt;『実際にこれだけ早いんだぜ！』的なログがガンガン吐き出されています。&lt;br /&gt;&lt;br /&gt;実際に使用する際は、&lt;br /&gt;&lt;blockquote&gt;./redis-server&lt;/blockquote&gt;でサーバを起動させ、&lt;br /&gt;&lt;blockquote&gt;./redis-cli&lt;/blockquote&gt;というクライアントからアクセスを行う形になります。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;次に、Go言語用のGo-Redisをインストールします。&lt;br /&gt;&lt;blockquote&gt;git clone git://github.com/alphazero/Go-Redis.git&lt;br /&gt;cd redis/src/pkg/redis&lt;br /&gt;make clean &amp;&amp; make install&lt;br /&gt;&lt;/blockquote&gt;しゅーりょー&lt;br /&gt;&lt;br /&gt;しかしながら、Golangの最新版(3/5現在)を使用していると、strings.Bytes()の部分でビルドエラーが吐き出されます。&lt;br /&gt;これはGo言語の仕様変更によるもので、Go-RedisがGoの最新版に対応するまでは、Go-Redis内の全ての.goファイルを対象に以下の書き換えが必要となります。&lt;br /&gt;&lt;blockquote&gt;strings.Bytes() →　[]byte()&lt;/blockquote&gt;&lt;br /&gt;.goファイルの全てのstrings.Bytes()の書き換えが済んだら、再度&lt;br /&gt;&lt;blockquote&gt;make clean &amp;&amp; make install&lt;/blockquote&gt;を実行して下さい。&lt;br /&gt;&lt;br /&gt;ビルドが正常に完了すると、&lt;font color="#FF0000"&gt;$GOROOT/pkg/$GOARCH/redis.a&lt;/font&gt; が作成されているはずです。&lt;br /&gt;&lt;br /&gt;さて、ここまで来たら準備は完了です。&lt;br /&gt;サンプルソースを眺めて、遊んでみてください。&lt;br /&gt;&lt;br /&gt;参考にしたサイト：&lt;br /&gt;&lt;a href="http://github.com/antirez/redis" target="_blank"&gt;antirez's redis at master - GitHub:&lt;/a&gt;&lt;br /&gt;&lt;a href="http://github.com/alphazero/Go-Redis" target="_blank"&gt;alphazero's Go-Redis at master - GitHub:&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wordprogress.org/archives/676" target="_blank"&gt;golangなNoSQLドライバ Go-Redis - Go towards a Word-Progress:&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1760343240725114791?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1760343240725114791/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1760343240725114791' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1760343240725114791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1760343240725114791'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/03/goredis.html' title='Go言語でRedisを使う　インストール編'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7578395581396955523</id><published>2010-02-08T18:57:00.000+09:00</published><updated>2010-02-08T18:59:44.632+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google App Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Bloggart を動かしてみる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.moongift.jp/2010/02/bloggart/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+jp%2Fmoongift+%28MOONGIFT+-+%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AB%E3%82%88%E3%82%8BIT%E6%88%A6%E7%95%A5%E6%94%AF%E6%8F%B4+-%29&amp;amp;utm_content=FriendFeed+Bot' target='_blank'&gt;MOONGIFT: » Google App Engine上で動作するブログエンジン「Bloggart」:オープンソースを毎日紹介&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Python製のブログエンジンということで、勉強がてら動かしてみようと思います。&lt;br /&gt;目標はフルカスタマイズ&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;big&gt;○ダウンロード&lt;/big&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href='http://github.com/Arachnid/bloggart' target='_blank'&gt;Arachnid's bloggart at master - GitHub&lt;/a&gt;&lt;br /&gt;からソース一式ダウンロードしてきます。&lt;br /&gt;&lt;br /&gt;ついでにライブラリが必要そうなので、&lt;br /&gt;&lt;a href='http://github.com/Arachnid/aetycoon' target='_blank'&gt;Arachnid's aetycoon at master - GitHub&lt;/a&gt;&lt;br /&gt;もダウンロードしておきます。&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;○解凍＆配置&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;ダウンロードしてきたbloggartのソースを展開します。&lt;br /&gt;(2/8現在ではファイル名はArachnid-bloggart-6568cf2.zip)&lt;br /&gt;&lt;br /&gt;展開したディレクトリの/lib/aetycoonに、aetycoonのソースを展開します。&lt;br /&gt;(2/8現在ではファイル名はArachnid-aetycoon-8978d46.zip)&lt;br /&gt;&lt;br /&gt;aetycoonパッケージを使用するときに、このままだとインポートエラーが発生するので、aetycoonディレクトリを移動します。&lt;br /&gt;aetycoonディレクトリをbloggartソースディレクトリのトップに配置します。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;big&gt;○設定ファイルの編集&lt;/big&gt;&lt;/b&gt;&lt;br /&gt;配置は済みましたが、設定ファイルを編集しないと、アクセス時にエラーとなってしまうため、config.pyを編集します。&lt;br /&gt;編集項目としては、『Google Site verification』に関する設定なんですが、ローカルで動かすぶんには必要ないので、&lt;br /&gt;設定なしにしたいのですが、初期値にNoneが設定されており、文字列結合時にエラーになります。&lt;br /&gt;ということで、サクッと書き換えます。&lt;br /&gt;&lt;br /&gt;元の設定内容&lt;br /&gt;&lt;blockquote&gt;# If you want to use Google Site verification, go to &lt;br /&gt;# https://www.google.com/webmasters/tools/ , add your site, choose the 'upload&lt;br /&gt;# an html file' method, then set the NAME of the file below.&lt;br /&gt;# Note that you do not need to download the file provided - just enter its name&lt;br /&gt;# here.&lt;br /&gt;google_site_verification = &lt;font color='#ff0000'&gt;None&lt;/font&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;編集後の設定内容&lt;br /&gt;&lt;blockquote&gt;# If you want to use Google Site verification, go to &lt;br /&gt;#  https://www.google.com/webmasters/tools/ , add your site, choose the  'upload&lt;br /&gt;# an html file' method, then set the NAME of the file below.&lt;br /&gt;# Note that you do not need to download the file provided - just enter  its name&lt;br /&gt;# here.&lt;br /&gt;google_site_verification = &lt;font color='#ff0000'&gt;''&lt;/font&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;これで初期画面のエラーは無くなり、下記のように正常に表示されます。&lt;br /&gt;&lt;br /&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/RGOBj4TDQ1LMpjsvQmxZEQ?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/S2_fwym5abI/AAAAAAAAB8s/BHXBoVyLFTg/s400/bloggart.jpg'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;まずはソースを眺めてみようかと思ってます。&lt;br /&gt;どうカスタマイズするかはそのあとで。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=9d053656-1fc7-83cc-abbc-dade05a12836' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7578395581396955523?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7578395581396955523/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7578395581396955523' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7578395581396955523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7578395581396955523'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/02/bloggart.html' title='Bloggart を動かしてみる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-wXhttfyssE/S2_fwym5abI/AAAAAAAAB8s/BHXBoVyLFTg/s72-c/bloggart.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7819538271055874602</id><published>2010-02-08T16:07:00.000+09:00</published><updated>2010-02-08T16:10:01.639+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Scribefire Blog Editor でエラーが・・・。</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Blogを書く際に愛用していたFirefoxのアドオンの『ScribeFire Blog Editor』なんですが、ver3.5に上げたあと、XMLパースエラーを吐き出すようになってしまいました。&lt;br/&gt;&lt;br/&gt;エラーメッセージは以下&lt;br/&gt;&lt;blockquote&gt;XML パースエラー: 整形式になっていません。&lt;br/&gt;&lt;br/&gt;URL: chrome://scribefire/content/editor/editor.xul&lt;br/&gt;&lt;br/&gt;行番号: 80, 列番号: 6:                   &lt;br/&gt;&lt;br/&gt;&amp;lt;menuitem label="&amp;amp;performancing.editor.bar.strong.tt;" &lt;br/&gt;command="cmd_strong" /&amp;gt;&lt;br/&gt;&lt;br/&gt;----------------------------------------^&lt;br/&gt;&lt;br/&gt;&lt;/blockquote&gt;とりあえずキーワードだけ拾って『scribefire 整形式』で検索をかけてみると、同じ症状の方が少なからずいるようです。&lt;br/&gt;&lt;a href='http://h-m.at.webry.info/201002/article_4.html' target='_blank'&gt;&lt;br/&gt;ScribeFire Blog Editor 3.5のエラー h_m blog/ウェブリブログ&lt;/a&gt;&lt;br/&gt;&lt;a href='http://ub.workdesign.jp/uncategorized/data272.html' target='_blank'&gt;[Ubuntu9.10]ScribeFire Blog Editorでパースエラー | アタシのUbuntu備忘録&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;公式にもコメントで同様の症状を訴えている方が・・・。&lt;br/&gt;&lt;a href='https://addons.mozilla.org/en-US/firefox/addon/1730' target='_blank'&gt;ScribeFire Blog Editor :: Add-ons for Firefox&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;このままではブログに記事がアップできないので、先人の知恵を拝借することにしました。&lt;a href='http://h-m.at.webry.info/201002/article_4.html' target='_blank'&gt;&lt;br/&gt;ScribeFire&lt;br/&gt; Blog Editor 3.5のエラー h_m blog/ウェブリブログ&lt;/a&gt;　より&lt;br/&gt;&lt;blockquote&gt;過去のバージョンに戻したら戻ったとのこと。&lt;br/&gt;&lt;a href='https://addons.mozilla.org/ja/firefox/addons/versions/1730' target='_blank'&gt;ScribeFire Blog Editor のバージョン履歴&lt;/a&gt;&lt;br/&gt;早速、一つ前のバージョンに戻したところ元に戻りました。&lt;br/&gt;&lt;br/&gt;&lt;/blockquote&gt;ということで、ScribeFire 3.5をサクッと削除して、3.4.6をインストールしました。&lt;br/&gt;現象がXMLパーサエラーで、発症する人としない人がいるというプログラマにとっては、いやらしいバグなわけですが、早めのフィックスを望みます。&lt;br/&gt;&lt;br/&gt;ScribeFireの開発者の方がここを見るとも思えないですが、一応環境を晒しておきます。&lt;br/&gt;&lt;blockquote&gt;アプリケーション: Firefox 3.6 (20100115144158)&lt;br/&gt;OS: WINNT (x86-msvc)&lt;br/&gt;&lt;br/&gt;- Extension List Dumper 1.14.7&lt;br/&gt;- Firebug 1.5.0&lt;br/&gt;- Google Gears 0.5.33.0&lt;br/&gt;    (無効, 互換性無し)&lt;br/&gt;- Greasemonkey 0.8.20091209.4&lt;br/&gt;- Hatena Bookmark 1.2.10&lt;br/&gt;- Java Console 6.0.15&lt;br/&gt;- Java Console 6.0.16&lt;br/&gt;- Java Console 6.0.17&lt;br/&gt;- Java Console 6.0.13&lt;br/&gt;- Java Quick Starter 1.0&lt;br/&gt;- Microsoft .NET Framework Assistant 1.1&lt;br/&gt;- ScribeFire 3.4.6&lt;br/&gt;- SQLite Manager 0.5.9&lt;br/&gt;- Vimperator 2.2&lt;br/&gt;&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=2b58b298-03c3-845d-a1b1-50a37daba9c8' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7819538271055874602?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7819538271055874602/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7819538271055874602' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7819538271055874602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7819538271055874602'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/02/scribefire-blog-editor.html' title='Scribefire Blog Editor でエラーが・・・。'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6803806685624252778</id><published>2010-01-26T11:12:00.000+09:00</published><updated>2010-01-26T11:15:00.867+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CakePHP'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>CakePHPをWindowsにインストールする</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;なんの因果かPHPを勉強することになったので、フレームワークの勉強も兼ねてみようといろいろ検索してみたら、サクッと小規模システムを作成するのであれば『CakePHP』が良いということで、CakePHPを採用してみました。&lt;br/&gt;&lt;br/&gt;&lt;a target='_blank' href='http://cakephp.jp/'&gt;CakePHP: 高速開発 php フレームワーク。&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;で、最新版で人柱となることを至上の喜びとする自分ではありますが、業務で使う前提のようなので、今回は安定板のver.1.2.5を使用することにします。&lt;br/&gt;&lt;br/&gt;ちなみに、環境はWindowsXP SP3、Apache2.2とPHP5はインストールされているものとします。&lt;br/&gt;(いつの間にかApache2.2とPHP5はインストールされていたため・・・。)&lt;br/&gt;&lt;br/&gt;&lt;b&gt;1.ダウンロード&lt;/b&gt;&lt;br/&gt;http://cakeforge.org/frs/download.php/735/cake_1.2.5.zip&lt;br/&gt;↑ここからとりあえずCakePHPの本体をダウンロードしてきます。&lt;br/&gt;&lt;br/&gt;&lt;b&gt;2.解凍、および配置&lt;/b&gt;&lt;br/&gt;環境によりけりですが、apacheのルートディレクトリに解凍後のファイル群をコピーします。&lt;br/&gt;自分の場合は他のプロジェクトも配置されていたので、apacheルート/cake/　配下に配置しました。&lt;br/&gt;&lt;br/&gt;&lt;b&gt;3.とりあえず確認&lt;/b&gt;&lt;br/&gt;apache、PHPが正常に設定されていれば、&lt;br/&gt;http://localhost/cake/index.php&lt;br/&gt;にアクセスすると、下記のような画面が表示されます。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/IgO9qVHOKov4D8Ri5pDo3Q?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/S15HQhfresI/AAAAAAAAB7Y/vX8DzkUPpNA/s400/cakeinsatall.jpg'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;なんとなく動いては居るようです。&lt;br/&gt;&lt;br/&gt;この後、DBの接続設定やBakeの使い方などなどあるんですが、今日はここまで。&lt;br/&gt;&lt;br/&gt;あー、Ubuntuだったら&lt;br/&gt;&lt;blockquote&gt;sudo apt-get install cakephp&lt;/blockquote&gt;で終わるのに・・・。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=bcf81cf9-7115-841c-bb92-6e574519ae80' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6803806685624252778?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6803806685624252778/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6803806685624252778' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6803806685624252778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6803806685624252778'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/01/cakephpwindows.html' title='CakePHPをWindowsにインストールする'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-wXhttfyssE/S15HQhfresI/AAAAAAAAB7Y/vX8DzkUPpNA/s72-c/cakeinsatall.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-383822541652095085</id><published>2010-01-21T11:56:00.000+09:00</published><updated>2010-01-21T11:58:57.981+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ネタ'/><title type='text'>HTMLコーダーに100の質問　に答えてみた</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.google.co.jp/search?hl=ja&amp;amp;q=HTML%E3%82%B3%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AB100%E3%81%AE%E8%B3%AA%E5%95%8F&amp;amp;btnG=%E6%A4%9C%E7%B4%A2&amp;amp;lr=&amp;amp;aq=f&amp;amp;oq=' target='_blank'&gt;google:HTMLコーダーに100の質問&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;HTMLコーダーではないけど、ブームっぽいので答えてみた&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;001 年齢は？ &lt;br /&gt;もうすぐ28歳の27歳&lt;br /&gt;&lt;br /&gt;002 パソコン歴は？ &lt;br /&gt;Windows2000が出てたので、10年くらい？ &lt;br /&gt;&lt;br /&gt;003 コーダー歴はどれくらいですか？ &lt;br /&gt;PCを手に入れて始めて買ったソフトがVisualC++だったので、10年&lt;br /&gt;&lt;br /&gt;004 初めてwebを作ったのはいつですか？ &lt;br /&gt;意外に最近で、4年前。とあるWebの業務システムのプロジェクトの時&lt;br /&gt;&lt;br /&gt;005 コーダーになろうと思ったきっかけは？ &lt;br /&gt;高校の時に、進路に専門学校を選択したとき&lt;br /&gt;&lt;br /&gt;006 コーディングは誰に／どこで習いましたか？ &lt;br /&gt;本とweb&lt;br /&gt;&lt;br /&gt;007 web業界以外の友達・家族とコーディングの話をしますか？ &lt;br /&gt;しない。絶対に理解されないから&lt;br /&gt;&lt;br /&gt;008 ご両親はインターネットユーザーですか？ &lt;br /&gt;携帯メールも使えないような両親です&lt;br /&gt;&lt;br /&gt;009 視力はいくつくらい？メガネ・コンタクトどちらですか？ &lt;br /&gt;メガネ。視力は測ってないけど、最近エディタのフォントサイズを10ptにしました。 &lt;br /&gt;&lt;br /&gt;010 本はAmazonで買いますか？ &lt;br /&gt;クレジットカード持ってないので・・・。&lt;br /&gt;&lt;br /&gt;011 ネットショッピングをしますか？主に買うものは何ですか？ &lt;br /&gt;あんまりしない・・・。&lt;br /&gt;&lt;br /&gt;012 携帯サイトで買い物をしたことがありますか？ &lt;br /&gt;信用ならないのでしません。 &lt;br /&gt;&lt;br /&gt;013 お酒は強いですか？ &lt;br /&gt;下戸です。 &lt;br /&gt;&lt;br /&gt;014 休日の過ごし方を教えて下さい。 &lt;br /&gt;彼女に強制デートを申し込まれない限り、引きこもってコーディング&lt;br /&gt;&lt;br /&gt;015 今、欲しいものは何ですか？ &lt;br /&gt;Thinkpad X201&lt;br /&gt;&lt;br /&gt;016 平均睡眠時間を教えて下さい。 &lt;br /&gt;6時間～8時間 &lt;br /&gt;&lt;br /&gt;017 平日の起床時間は何時ですか？ &lt;br /&gt;7時から9時の間&lt;br /&gt;&lt;br /&gt;018 なにかスポーツをしていますか？ &lt;br /&gt;まったくしません&lt;br /&gt;&lt;br /&gt;019 パソコンと関係ない趣味がありますか？ &lt;br /&gt;・・・。 &lt;br /&gt;&lt;br /&gt;020 コーディングに役立つ資格、パソコン関係の資格を持ってますか？ &lt;br /&gt;J検とか？&lt;br /&gt;&lt;br /&gt;021 昼と夜、どちらの方が仕事がはかどりますか？ &lt;br /&gt;夜。テンションあがっていい感じ&lt;br /&gt;&lt;br /&gt;022 ブラインドタッチは教本通り10本の指を使いますか？ &lt;br /&gt;独自規格のタッチです。&lt;br /&gt;&lt;br /&gt;023 眠い時の対処法はありますか？ &lt;br /&gt;レッドブル&lt;br /&gt;&lt;br /&gt;024 息抜きについ見てしまうサイトはなんですか？ &lt;br /&gt;Twitter&lt;br /&gt;&lt;br /&gt;025 他に息抜きにしていることがあったら教えて下さい。 &lt;br /&gt;趣味コーディング&lt;br /&gt;&lt;br /&gt;026 仕事上で得意なことはありますか？それは何ですか？ &lt;br /&gt;やっぱりコーディング&lt;br /&gt;&lt;br /&gt;027 仕事中にBGMは聞けますか？能率が上がるのはどんな音楽ですか？ &lt;br /&gt;自社では聞けます。その時々に応じて曲をチョイス&lt;br /&gt;&lt;br /&gt;028 作業パソコンはWin?Mac? &lt;br /&gt;仕事ではWindowsXP、家ではUbuntu&lt;br /&gt;&lt;br /&gt;029 作業パソコンはデスクトップ？ノート？ &lt;br /&gt;ノートオンリー&lt;br /&gt;&lt;br /&gt;030 作業パソコンのマウスは標準マウスですか？ &lt;br /&gt;トラックボール使ってます&lt;br /&gt;&lt;br /&gt;031 マウスパッドは使っていますか？ &lt;br /&gt;トラックボールなので・・・。&lt;br /&gt;&lt;br /&gt;032 作業パソコンにAdobe製品は何が入っていますか？ &lt;br /&gt;Adobe ReaderとFlash Playerくらい&lt;br /&gt;&lt;br /&gt;033 作業パソコンはモニタは何インチですか？ &lt;br /&gt;これ何インチなんだろう・・・。&lt;br /&gt;&lt;br /&gt;034 自宅にパソコン持ってますか？いくつありますか？ &lt;br /&gt;確か3台。今度お下がりをもらうので、4台になる予定&lt;br /&gt;&lt;br /&gt;035 自宅に作業環境はある？ &lt;br /&gt;はい&lt;br /&gt;&lt;br /&gt;036 会社と自宅、作業はどちらがはかどりますか？ &lt;br /&gt;出向先の事務所が一番&lt;br /&gt;&lt;br /&gt;037 自宅パソコンは家族と共用ですか？ &lt;br /&gt;それぞれ専用機があります&lt;br /&gt;&lt;br /&gt;038 自宅パソコンはWin?Mac? &lt;br /&gt;WindowsXP が2台、Ubuntuが1台&lt;br /&gt;&lt;br /&gt;039 自宅パソコンのメーカーは何ですか？ &lt;br /&gt;IBM(LENOVO) &lt;br /&gt;&lt;br /&gt;040 自宅パソコンはデスクトップ？ノート？ &lt;br /&gt;ノート&lt;br /&gt;&lt;br /&gt;041 打ち合わせのメモは手描きとテキストどちらがいいですか？ &lt;br /&gt;ポメラ最強&lt;br /&gt;&lt;br /&gt;042 スケジュール管理は何でしてますか？（手帳・アプリケーション・webツール・モバイルなど） &lt;br /&gt;Googleカレンダーと、自作のToDoアプリ&lt;br /&gt;&lt;br /&gt;043 メーラーは何を使ってますか？ &lt;br /&gt;Gmail&lt;br /&gt;&lt;br /&gt;044 RSSリーダーは何を使ってますか？ &lt;br /&gt;Google Reader &lt;br /&gt;&lt;br /&gt;045 好きなポータルサイトはどこですか？ &lt;br /&gt;最近ポータルサイトって聞かないよね・・・。 &lt;br /&gt;&lt;br /&gt;046 ブックマークは何で管理していますか？ &lt;br /&gt;はてなブックマークか、ChromeのBookmarkSync&lt;br /&gt;&lt;br /&gt;047 不得意だけど使わねばならない技術はありますか？ &lt;br /&gt;VBA大っきらい&lt;br /&gt;&lt;br /&gt;048 web系の雑誌を購読していますか？ &lt;br /&gt;雑誌は読まないです&lt;br /&gt;&lt;br /&gt;049 webの参考書は何冊くらい持っていますか？ &lt;br /&gt;いろいろ含めると15～20冊くらい&lt;br /&gt;&lt;br /&gt;050 お薦めの参考書があったら教えて下さい。 &lt;br /&gt;最近買ったオライリーのjavascript the good parts&lt;br /&gt;&lt;br /&gt;051 参考にしているおすすめサイトがあったら教えて下さい。 &lt;br /&gt;jQueryの日本語サイト&lt;br /&gt;&lt;br /&gt;052 コーディングに使ってる、便利なツールを教えてください。 &lt;br /&gt;VimとEditra&lt;br /&gt;&lt;br /&gt;053 コードにコメントはつけてますか？ &lt;br /&gt;一応大まかな括りでコメントを書いてます&lt;br /&gt;&lt;br /&gt;054 制作過程で、どの作業が一番好きですか？(コーディング、画像作成、検証、打ち合わせ)？ &lt;br /&gt;コーディング&lt;br /&gt;&lt;br /&gt;055 画像切り出しに使うソフトはなんですか？ &lt;br /&gt;Gimpかpixia&lt;br /&gt;&lt;br /&gt;056 webデザインに使うソフトはなんですか？ &lt;br /&gt;エディタとブラウザ&lt;br /&gt;&lt;br /&gt;057 検証対象ブラウザは何個ありますか？ &lt;br /&gt;IE6、IE7、IE8、safari、firefox、chrome、opera &lt;br /&gt;&lt;br /&gt;058 一から新規制作とリニューアル、どちらが好きですか？ &lt;br /&gt;新規作成。&lt;br /&gt;&lt;br /&gt;059 定期運用と新規制作、どちらが好きですか？ &lt;br /&gt;新規作成。&lt;br /&gt;&lt;br /&gt;060 テーブルコーディング業務はありますか？ &lt;br /&gt;業務システムであれば、割り切ってテーブルレイアウトで行きます&lt;br /&gt;&lt;br /&gt;061 新規制作の割合はどれくらいですか？ &lt;br /&gt;趣味PGではほぼ新規作成&lt;br /&gt;&lt;br /&gt;062 iPhoneサイトのコーディングをしたことはありますか？ &lt;br /&gt;ないです&lt;br /&gt;&lt;br /&gt;063 よく使うJavaScriptがあったら教えて下さい。 &lt;br /&gt;jQueryとか？&lt;br /&gt;&lt;br /&gt;064 携帯サイトのコーディング業務をしていますか？ &lt;br /&gt;していません。&lt;br /&gt;&lt;br /&gt;065 FLASHはどのくらいできますか？ &lt;br /&gt;openLaszloでよければそれなりに&lt;br /&gt;&lt;br /&gt;066 いま興味がある技術はありますか？ &lt;br /&gt;HTML5&lt;br /&gt;&lt;br /&gt;067 自分の書いたコードは美しい？ &lt;br /&gt;自分の美的感覚では妥協しないコードを書いています。&lt;br /&gt;&lt;br /&gt;068 ソーステンプレートを作っていますか？ &lt;br /&gt;自分の引き出しにはあります。&lt;br /&gt;&lt;br /&gt;069 単語登録にタグを登録していますか？ &lt;br /&gt;Editraとか勝手に補完してくれるので、必要ないです。&lt;br /&gt;&lt;br /&gt;070 HTML5、早く実務で使いたい？ &lt;br /&gt;実務ではやりたくないです。枯れてきたら実務に投入するタイプです&lt;br /&gt;&lt;br /&gt;071 CSS3、早く実務で使いたい？ &lt;br /&gt;上記と同じ理由で、やりたくないです。&lt;br /&gt;&lt;br /&gt;072 コーディングで伸ばしたい技術は？ &lt;br /&gt;そろそろTableタグを使わないレイアウト&lt;br /&gt;&lt;br /&gt;073 コーディング以外で伸ばしたい技術はありますか？ &lt;br /&gt;画像系&lt;br /&gt;&lt;br /&gt;074 職場にコーダー専門職は何人いますか？兼務は何人ですか？ &lt;br /&gt;プログラマになりきれないコーダーならたくさんいます&lt;br /&gt;&lt;br /&gt;075 職場のコーダー男女比はどのくらい？ &lt;br /&gt;男女比9:1位　むさい職場です&lt;br /&gt;&lt;br /&gt;076 勤務時間は何時から何時までですか？ &lt;br /&gt;スーパーフレックス&lt;br /&gt;&lt;br /&gt;077 通勤時間はどのくらいですか？ &lt;br /&gt;片道30分&lt;br /&gt;&lt;br /&gt;078 月の残業時間は最高何時間でしたか？ &lt;br /&gt;160を超えたことがありました&lt;br /&gt;&lt;br /&gt;079 現在の仕事環境で良いところはどんなところですか？ &lt;br /&gt;役割関係なく自由に動けるところ&lt;br /&gt;&lt;br /&gt;080 デザイナなど他の仕事とコーディングを兼務してますか？ &lt;br /&gt;SE(システムエンジニア)とSE(ソフトウェアエンジニア)を兼業&lt;br /&gt;&lt;br /&gt;081 職場は服装自由ですか？何か規則はありますか？ &lt;br /&gt;本社は自由&lt;br /&gt;&lt;br /&gt;082 休日出社や徹夜作業はありますか？ &lt;br /&gt;あるときもあります&lt;br /&gt;&lt;br /&gt;083 プライベートでサイト／ブログを持ってますか？ &lt;br /&gt;もってます&lt;br /&gt;&lt;br /&gt;084 プライベートでドメインを持っている。 &lt;br /&gt;無駄に5つくらいもってます&lt;br /&gt;&lt;br /&gt;085 プライベートでサーバーを持っている。借りている。 &lt;br /&gt;借りてます。&lt;br /&gt;&lt;br /&gt;086 CSS Niteには何回行きましたか？ &lt;br /&gt;ないです。一回行ってみたいです&lt;br /&gt;&lt;br /&gt;087 地方のCSS Nite行ったことありますか？ &lt;br /&gt;ないですね&lt;br /&gt;&lt;br /&gt;088 尊敬するwebクリエイターがいたら教えて下さい。 &lt;br /&gt;Twitterでフォローしている皆さん&lt;br /&gt;&lt;br /&gt;089 旅行に行く時パソコンを持っていきますか？持っていきたいですか？ &lt;br /&gt;実家に帰る時は持っていきます&lt;br /&gt;&lt;br /&gt;090 好奇心を満たす面白い仕事を無償でやったことがありますか？どんな仕事でしたか？ &lt;br /&gt;ひたすら趣味PG&lt;br /&gt;&lt;br /&gt;091 ディレクターなどキャリアチェンジを考えてますか？一生コーダーを貫きますか？ &lt;br /&gt;なやんでます&lt;br /&gt;&lt;br /&gt;092 特定のパートナー（彼女・彼氏・夫・妻）がいますか？相手は同業者ですか？ &lt;br /&gt;同業者ではないですが、彼女(嫁予定)がいます&lt;br /&gt;&lt;br /&gt;093 パートナーは同業者がいい？別の職種がいい？ &lt;br /&gt;別の職種のほうがいいと思う &lt;br /&gt;&lt;br /&gt;094 コーダーをやっててよかったなあと思うときは？ &lt;br /&gt;単純に組んでるときが楽しい&lt;br /&gt;&lt;br /&gt;095 何年後／何歳までコーダーをやるつもりですか？ &lt;br /&gt;求められるままに&lt;br /&gt;&lt;br /&gt;096 次の締め切りはいつですか？ &lt;br /&gt;明後日&lt;br /&gt;&lt;br /&gt;097 コーダー以外だったらどんな職に就きたいですか？ &lt;br /&gt;現実的に公務員とか？&lt;br /&gt;&lt;br /&gt;098 よいコーダーの条件を3つあげてください。 &lt;br /&gt;自己研鑽、センス、美的感覚&lt;br /&gt;&lt;br /&gt;099 10年後、あなたは何をしてると思いますか？ &lt;br /&gt;やっぱりIT業界にいると思います&lt;br /&gt;&lt;br /&gt;100 コーダーとしての自分を100点満点で評価してください。 &lt;br /&gt;60点、まだ折り返し地点を過ぎたくらい&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;やっぱり100の質問はしんどいなぁ&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=b2ee0b69-04de-838a-bdf6-8db31b0efcfa' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-383822541652095085?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/383822541652095085/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=383822541652095085' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/383822541652095085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/383822541652095085'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/01/html100.html' title='HTMLコーダーに100の質問　に答えてみた'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6866713055714743797</id><published>2010-01-12T20:20:00.000+09:00</published><updated>2010-01-12T20:22:38.299+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>JavascriptでTable構造のカレンダーを作る</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;jQueryの練習として、Table構造のカレンダーを作ってみた。&lt;br/&gt;(日付をまたぐ予定なんかを表示する場合に、Spanを使えば比較的楽にできそうだったから)&lt;br/&gt;CSSは後から用意するとして、一応日付表示とデータ表示の行を分けている。&lt;br/&gt;&lt;br/&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;さて、あとはデータを表示させる機能をどうやって実装しようか・・・。&lt;br/&gt;&lt;span style='color: rgb(51, 51, 51); line-height: 24px; text-align: left;' class='Apple-style-span'&gt;&lt;br/&gt;&lt;pre style='border: 1px solid rgb(210, 222, 238); padding: 0.5em 0.8em; font-size: 12px; background-color: rgb(233, 239, 248); color: rgb(85, 85, 85); overflow-x: auto; overflow-y: hidden;' class='syntax-highlight'&gt;&lt;br /&gt;// construct valiables&lt;br /&gt;var week_title_array = ['日','月','火','水','木','金','土'];&lt;br /&gt;&lt;br /&gt;$(document).ready(function(){&lt;br /&gt;	&lt;br /&gt;	// DOM elements&lt;br /&gt;	var cal = $("#calendar");&lt;br /&gt;	var tbl = $(DOM('table'));&lt;br /&gt;	var hr = $(DOM('tr'));&lt;br /&gt;	var th;&lt;br /&gt;	&lt;br /&gt;	//tbl.attr({border:'2px'});&lt;br /&gt;	tbl.attr({width:'100%'});&lt;br /&gt;&lt;br /&gt;	// create a table header&lt;br /&gt;	for (var i = 0; i &amp;lt; week_title_array.length; i ++) &lt;br /&gt;	{&lt;br /&gt;		th = $(DOM('th'));&lt;br /&gt;		th.html(week_title_array[i]);&lt;br /&gt;		th.appendTo(hr);&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	hr.appendTo(tbl);&lt;br /&gt;	&lt;br /&gt;	// get Today&lt;br /&gt;	var today = new Date();&lt;br /&gt;	var year  = today.getFullYear();&lt;br /&gt;	var month = today.getMonth();&lt;br /&gt;	var day   = today.getDate();&lt;br /&gt;	&lt;br /&gt;	// get weeks and day in month&lt;br /&gt;	var lastday = getLastday(year, month);&lt;br /&gt;	var weeks = getWeekOfFirstday(year, month);&lt;br /&gt;	var weekCount;&lt;br /&gt;	var tr, dtr;   // week row objects&lt;br /&gt;	var weekStyle;&lt;br /&gt;	&lt;br /&gt;	tr  = $(DOM('tr'));&lt;br /&gt;	dtr = $(DOM('tr')).addClass('data_row');&lt;br /&gt;	&lt;br /&gt;	// padding last month day in week&lt;br /&gt;	for(var i = 0;i &amp;lt; weeks; i++)&lt;br /&gt;	{&lt;br /&gt;		$(DOM('td'))&lt;br /&gt;			.addClass('no_day_in_month')&lt;br /&gt;			.appendTo(tr);&lt;br /&gt;		$(DOM('td'))&lt;br /&gt;			.appendTo(dtr);&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	weekCount = weeks;&lt;br /&gt;	&lt;br /&gt;	// to this month &lt;br /&gt;	for (var i = 0; i &amp;lt; lastday; i++)&lt;br /&gt;	{&lt;br /&gt;		// select class week css&lt;br /&gt;		switch(weekCount){&lt;br /&gt;			case 0:&lt;br /&gt;				weekStyle = 'sunday';&lt;br /&gt;				break;&lt;br /&gt;			case 6:&lt;br /&gt;				weekStyle = 'saturday';&lt;br /&gt;				break;&lt;br /&gt;			default:&lt;br /&gt;				weekStyle = 'week_day';&lt;br /&gt;				break;&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		// create and append DOM&lt;br /&gt;		td  = $(DOM('td'));&lt;br /&gt;		dtd = $(DOM('td'));&lt;br /&gt;		$(DOM('div'))&lt;br /&gt;			.html(i + 1)&lt;br /&gt;			.addClass('view_' + weekStyle)&lt;br /&gt;			.appendTo(&lt;br /&gt;				td&lt;br /&gt;					.addClass(weekStyle)&lt;br /&gt;					.appendTo(tr)&lt;br /&gt;			);&lt;br /&gt;		dtd.appendTo(dtr);&lt;br /&gt;&lt;br /&gt;		if (weekCount == 6)&lt;br /&gt;		{&lt;br /&gt;			// day is weekend&lt;br /&gt;			tr.appendTo(tbl);&lt;br /&gt;			dtr.appendTo(tbl);&lt;br /&gt;			tr  = $(DOM('tr'));&lt;br /&gt;			dtr = $(DOM('tr')).addClass('data_row');&lt;br /&gt;			weekCount = 0;&lt;br /&gt;		}&lt;br /&gt;		else&lt;br /&gt;		{&lt;br /&gt;			weekCount++;&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	// padding next month day in week&lt;br /&gt;	for(var i = weekCount;i-1 &amp;lt; 6; i++)&lt;br /&gt;	{&lt;br /&gt;		$(DOM('td'))&lt;br /&gt;			.addClass('no_day_in_month')&lt;br /&gt;			.appendTo(tr);&lt;br /&gt;		$(DOM('td'))&lt;br /&gt;			.appendTo(dtr);&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	tr.appendTo(tbl);&lt;br /&gt;	dtr.appendTo(tbl);&lt;br /&gt;	tr = $(DOM('tr'));&lt;br /&gt;&lt;br /&gt;	tbl.appendTo(cal);&lt;br /&gt;&lt;br /&gt;	alert(cal.html());&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;var getLastday = function(year, month)&lt;br /&gt;{&lt;br /&gt;	var lastday; &lt;br /&gt;	var nextYear;&lt;br /&gt;	var nextMonth;&lt;br /&gt;	 &lt;br /&gt;	if (month == 12){&lt;br /&gt;		nextYear = year+1;&lt;br /&gt;		nextMonth = 1;&lt;br /&gt;	}else{&lt;br /&gt;		nextYear = year;&lt;br /&gt;		nextMonth = month+1;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	// get this month's last day&lt;br /&gt;	lastday = new Date(nextYear, nextMonth-1, 0);&lt;br /&gt;	lastday = lastday.getDate();&lt;br /&gt;    return lastday;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var getWeekOfFirstday = function(year, month)&lt;br /&gt;{&lt;br /&gt;	var dt = new Date()&lt;br /&gt;	dt.setYear(year);&lt;br /&gt;	dt.setMonth(month);&lt;br /&gt;	dt.setDate(1);&lt;br /&gt;&lt;br /&gt;	return dt.getDay();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// shortcut of document.createElement() method&lt;br /&gt;var DOM = function(elem)&lt;br /&gt;{&lt;br /&gt;	return document.createElement(elem);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=5bc98d22-a140-886c-b42f-5c36dc3031d3' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6866713055714743797?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6866713055714743797/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6866713055714743797' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6866713055714743797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6866713055714743797'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2010/01/javascripttable.html' title='JavascriptでTable構造のカレンダーを作る'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-4102869822860974678</id><published>2009-12-01T22:12:00.000+09:00</published><updated>2009-12-01T22:14:32.122+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google App Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Google App Engine のDataStoreで複数タグを管理する</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;ふと、Google App Engineを使ったアプリで、データに対して複数タグを関連付けたい。と思い立って調べた結果です。&lt;br/&gt;&lt;br/&gt;Google App Engine では、&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;&lt;a style='color: rgb(0, 0, 204);' href='#CategoryProperty'&gt;CategoryProperty&lt;/a&gt;というそのものズバリなプロパティがあるのですが、これがまた使いづらいのです。&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;&lt;a style='color: rgb(0, 0, 204);' href='#CategoryProperty'&gt;CategoryProperty&lt;/a&gt;の説明を見てみると&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;カテゴリまたは「タグ」（記述的な語または語句）。&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'/&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'/&gt;&lt;/span&gt;とあって、タグを管理するために最適！とも思えたのですが、こいつは複数のタグを管理できないようなのです。&lt;br/&gt;Atomの仕様なのか、CategoryProperty自体の仕様なのかは判りませんが・・・。&lt;br/&gt;&lt;br/&gt;ということで、複数タグを管理できて、なおかつタグから管理しやすいという観点から、自分は&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;&lt;a style='color: rgb(0, 0, 204);' href='#StringListProperty'&gt;StringListProperty&lt;/a&gt;を使用するようにしています。&lt;br/&gt;読んで字の如く、StringのListですので、複数タグを管理できます。&lt;br/&gt;ですので、仮にタグをカンマ区切りで指定するとして、&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;#Barモデル内に、tag_listというStringListPropertyを持つ要素があるとして&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;tags = "A,B,C"&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;foo = Bar()&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;foo.tag_list = tags.split(",")&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;foo.put()&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;/blockquote&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;で、登録が行えます。&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'/&gt;&lt;/span&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;これで、データに対して複数タグを指定することが出来ます。&lt;br/&gt;さらにStringListPropertyを推す理由として、検索が容易なことが上げられます。&lt;br/&gt;&lt;br/&gt;上記の方法で登録したデータから、『B』というタグを持つデータを抜き出したい場合は、&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;foo = Bar.gql("WHERE tag_list= 'B'")&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'/&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;とするだけです。&lt;br/&gt;&lt;br/&gt;atomで配信をしている場合には、使えない邪道なパターンではありますが、&lt;br/&gt;それ以外のデータに対して複数タグをつけたい場面なんかでは使えるのではないでしょうか。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: &amp;apos;MS PGothic&amp;apos;; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'&gt;&lt;span style='border-collapse: collapse; font-family: Helvetica,Arial,sans-serif; line-height: 16px; text-align: left; font-size: small;' class='Apple-style-span'&gt;ちなみに、Djangoで同じようにタグを管理したい場合は、&lt;a href='http://code.google.com/p/django-tagging/' target='_blank'&gt;django-tagging&lt;/a&gt;というものがあります。&lt;br/&gt;自分の環境では再現したことが無いのですが、若干不安定なようで、今後に期待したいプロジェクトです。&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=80c93dde-e837-8cea-90f7-a905624c26ec' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-4102869822860974678?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/4102869822860974678/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=4102869822860974678' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4102869822860974678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4102869822860974678'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/12/google-app-engine-datastore.html' title='Google App Engine のDataStoreで複数タグを管理する'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3191405362789851024</id><published>2009-11-12T21:15:00.001+09:00</published><updated>2009-11-12T21:15:57.174+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='golang'/><title type='text'>Go言語環境をUbuntu9.10上に構築する</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='view-source:http://d.hatena.ne.jp/amachang/20091111/1257928890' target='_blank'&gt;早速 Go 言語を試してみる！ - IT戦記&lt;/a&gt; を参考にして（というかほとんどそのまんま）、Ubuntu9.10でGo言語環境を作って見ました。&lt;br/&gt;&lt;br/&gt;とは言っても、手順は簡単です。&lt;br/&gt;&lt;br/&gt;ちなみに、これ以降のコマンドのパラメータは、自分用となっていますので、適当に読み替えてください。&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;br/&gt;1.作業用ディレクトリを作成&lt;/b&gt;&lt;br/&gt;&lt;blockquote&gt;cd ~/&lt;br/&gt;mkdir develop&lt;br/&gt;cd develop&lt;br/&gt;mkdir golang&lt;br/&gt;cd golang&lt;br/&gt;mkdir go&lt;br/&gt;mkdir bin&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;b&gt;2.PATHを設定する&lt;/b&gt;&lt;br/&gt;~/.zshrcに以下のように追記&lt;br/&gt;&lt;blockquote&gt;# GO言語用&lt;br/&gt;export GOROOT=$HOME/develop/golang/go&lt;br/&gt;export GOOS=linux&lt;br/&gt;export GOARCH=386&lt;br/&gt;export GOBIN=$HOME/develop/golang/bin&lt;br/&gt;export PATH=$GOBIN:$PATH&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;3.hg cloneでソースを持ってくる&lt;/b&gt;&lt;br/&gt;&lt;blockquote&gt;hg clone -r release https://go.googlecode.com/hg/ $GOROOT &lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;4.ビルド&lt;/b&gt;&lt;br/&gt;&lt;blockquote&gt;cd $GOROOT/src &lt;br/&gt;./make.bash &lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;自分の環境では、ビルドしているときに『bisonが無いよ』的なエラーが出ていたので、&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;sudo apt-get install bison&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;で急遽インストール&lt;br/&gt;&lt;br/&gt;インストール後に再度&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;./make.bash&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;で、ビルド完了&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;5.試してみる&lt;/b&gt;&lt;br/&gt;ソースはIT戦記に記載されているhello.goを、パクって来ました。&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;package main&lt;br/&gt;&lt;br/&gt;import "fmt"&lt;br/&gt;&lt;br/&gt;func main() {&lt;br/&gt;    fmt.Printf("hello, world\n")&lt;br/&gt;}&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;b&gt;6.コンパイル&lt;/b&gt;&lt;br/&gt;環境によって使用するコマンドが変わります。&lt;br/&gt;i386系の環境では&lt;br/&gt;&lt;blockquote&gt;8g hello.go&lt;br/&gt;&lt;/blockquote&gt;でコンパイルを行うと、hello.8というファイルが生成されます。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;7.リンク&lt;/b&gt;&lt;br/&gt;リンカを起動します。&lt;br/&gt;&lt;blockquote&gt;8l hello.8&lt;br/&gt;&lt;/blockquote&gt;これで実行ファイルの8.outが作成されますので、&lt;br/&gt;サクッと実行します。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;8.実行&lt;/b&gt;&lt;br/&gt;&lt;blockquote&gt;./8.out&lt;br/&gt;&amp;gt;Hello World&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;おおおおおおおおおおおお！動いた！&lt;br/&gt;とりあえず今回は動いたことで、満足。&lt;br/&gt;&lt;br/&gt;当分は、先駆者の方々のソースを弄くって遊んで見ようと思います。&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3191405362789851024?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3191405362789851024/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3191405362789851024' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3191405362789851024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3191405362789851024'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/11/goubuntu910.html' title='Go言語環境をUbuntu9.10上に構築する'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-709966147853560029</id><published>2009-10-28T16:31:00.000+09:00</published><updated>2009-10-28T16:32:11.124+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google App Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>GAEOでエコな開発を</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Google App Engine 1.2.7 のリリースによって、GAE熱が再発した私ですが、これを機にいままで気になっていたGoogle App Engine Oil(GAEO)を使用してみることにしました。&lt;br/&gt;&lt;br/&gt;結論から言うと、&lt;br/&gt;&lt;br/&gt;&lt;big&gt;&lt;big&gt;素晴らしい！&lt;/big&gt;&lt;/big&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;開発スピードというか、&lt;b&gt;スタート地点が違う&lt;/b&gt;と言った感じです。&lt;br/&gt;もしかしたら、DjangoでModelFormを使用するより早いかもしれません。&lt;br/&gt;体裁にこだわらず、しかもマスタメンテ程度の画面であれば、ものの数分で完了するくらいの勢いです。&lt;br/&gt;&lt;br/&gt;ということで、GAEOのインストールからプロジェクトの基本形が出来るところまで、私見を交えつつ解説します。(Ubuntuを前提としています。)&lt;br/&gt;とは言うものの、日本語の解説ページがありますので、そちらも参考にしてみてください。&lt;br/&gt;&lt;b&gt;&lt;br/&gt;1.ダウンロード&lt;/b&gt;&lt;br/&gt;解説ページでは、easy_install を使用する方法を推奨しているようですが、個人的にeasy_installが好きではないので、下記サイトからzipで落としてきます。&lt;br/&gt;&lt;blockquote&gt;wget http://google-app-engine-oil.googlecode.com/files/gaeo-0.3.zip&lt;br/&gt;&lt;/blockquote&gt;10/28現在ではver0.3が安定版のようです。&lt;br/&gt;&lt;br/&gt;&lt;b&gt;2.解凍&lt;/b&gt;&lt;br/&gt;適当なディレクトリに放り込んで、適当なツールを使用して解凍を行ってください。&lt;br/&gt;&lt;blockquote&gt;unzip gaeo-0.3.zip&lt;br/&gt;&lt;/blockquote&gt;ちなみに、後で解凍して出来たディレクトリにPATHを張りますので、注意してください。&lt;br/&gt;&lt;br/&gt;&lt;b&gt;3.PATHの設定&lt;/b&gt;&lt;br/&gt;解凍して出来たディレクトリ配下にbinディレクトリが存在しますが、この中のgaeo.pyとgaeogen.pyはこの後ちょくちょく使用するため、PATHを張ります。&lt;br/&gt;&lt;blockquote&gt;export PATH=$PATH:/{任意のディレクトリ}/gaeo/bin&lt;br/&gt;&lt;/blockquote&gt;上記の一文を、bash_rcあたりに追加します。&lt;br/&gt;(easy_installを使用すると、この設定が不要となります。)&lt;br/&gt;&lt;br/&gt;&lt;b&gt;4.GAEOプロジェクト作成前に　(ちょっと寄り道)&lt;/b&gt;&lt;br/&gt;まさかとは思いますが、Google App Engineはインストールされてますよね？(Pythonすら入っていない人は、回れ右)&lt;br/&gt;されていない場合は、最新版をここでインストールしておきましょう。&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;wget http://googleappengine.googlecode.com/files/google_appengine_1.2.7.zip&lt;br/&gt;unzip google_appengine_1.2.7.zip&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;b&gt;5.GAEOプロジェクト作成&lt;/b&gt;&lt;br/&gt;あとあと開発が楽なように、Google App Engine のディレクトリ直下にプロジェクトを作成しておきます。&lt;br/&gt;ですので、google_appengineディレクトリに移動しておきましょう。&lt;br/&gt;&lt;blockquote&gt;cd google_appengine&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;さて、作成するプロジェクト名は決めましたか？&lt;br/&gt;心が決まったら、&lt;br/&gt;&lt;blockquote&gt;python gaeo.py [プロジェクト名]&lt;br/&gt;&lt;/blockquote&gt;を実行します。&lt;br/&gt;これで、GAEOが勝手にプロジェクトに必要なもろもろを用意してくれます。&lt;br/&gt;&lt;ul&gt;&lt;li&gt;main.py&lt;/li&gt;&lt;li&gt;app.yaml&lt;/li&gt;&lt;li&gt;favicon.ico&lt;/li&gt;&lt;li&gt;などなど&lt;/li&gt;&lt;/ul&gt;ついでに必要なディレクトリなども用意してくれます。&lt;br/&gt;特にmain.pyには、ルーティングルールを基にした、ディスパッチャが実装されています。&lt;br/&gt;このあたりは、解説するよりも、あとあとコントローラを実装してから見てみたほうが納得できます。&lt;br/&gt;&lt;br/&gt;&lt;b&gt;6.モデルの宣言、及びコントローラの作成&lt;/b&gt;&lt;br/&gt;GAEOで一番感動した部分です。&lt;br/&gt;GAEOではモデルの作成と、モデルに対するコントローラの作成が同時に出来るんです。&lt;br/&gt;コマンド自体は、少々長くて面倒ですが、一回作ってしまえば良いものなので、がんばって作りましょう。&lt;br/&gt;&lt;br/&gt;と、その前に、5で作ったプロジェクト名でディレクトリが作成されているはずですので、移動しておきましょう。&lt;br/&gt;&lt;blockquote&gt;cd [プロジェクト名]&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;今回は、あくまでサンプルとして実用性の低いミニブログ的なモデルとます。&lt;br/&gt;まずは、モデルの要素を決定しておきます。&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;class MyModel(db.Model):&lt;br/&gt;　username = StringProperty()&lt;br/&gt;　comment  = TextProperty()&lt;br/&gt;　post_date = DateTimeProperty(auto_now_add = True)&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;を完成形とし、処理として一覧、新規作成、参照、修正、削除、検索を用意する場合、以下のようなコマンドを発行します。&lt;br/&gt;&lt;blockquote&gt;python gaeogen.py scaffold MyModel new edit show search destroy \&lt;br/&gt;"username:StringProperty()" \&lt;br/&gt;"comment:TextProperty()" \&lt;br/&gt;"post_date:DateTimeProperty(auto_now_add = True)"&lt;br/&gt;&lt;/blockquote&gt;これで、Model、Controller、Templateが作成されます。&lt;br/&gt;それぞれのコマンド引数の意味合いについては、自分で調べてください。&lt;br/&gt;&lt;b&gt;&lt;br/&gt;&lt;br/&gt;7.確認してみる&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;さて、これだけでプロジェクトの基本形が出来ましたので、実際に動かしてみます。&lt;br/&gt;カレントディレクトリをgoogle_appengineに戻してもらって、開発用サーバで実際に動かしてみます。&lt;br/&gt;&lt;blockquote&gt;python dev_appserver.py [プロジェクト名]&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;サーバが立ち上がったら、&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;http://127.0.0.1:8080/MyModel/&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;にアクセスします。&lt;br/&gt;&lt;br/&gt;リンクとして、New や Searchがあると思いますので、まずはNewをクリックし、データの登録をして見ましょう。&lt;br/&gt;データを登録したら、一覧にレコードが追加され、参照や修正、削除が可能になっていることを確認しましょう。&lt;br/&gt;&lt;br/&gt;どうですか？&lt;br/&gt;&lt;br/&gt;たったこれだけのステップを踏むだけで、データに対する基本的な処理が実装されています。&lt;br/&gt;あとは、生成されたソースを煮るなり焼くなり叩くなりコロ助なり好きなようにリファクタリングしていきましょう。&lt;br/&gt;&lt;br/&gt;ここまで来ると『スタート地点が違う』の意味がわかっていただけるかと思います。&lt;br/&gt;&lt;br/&gt;Google App Engine for Pythonを使用していて、GAEOを使用したことが無い人は、ぜひ使ってみてください。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=add22036-5395-88a3-9669-1f9ee803f8e3' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-709966147853560029?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/709966147853560029/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=709966147853560029' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/709966147853560029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/709966147853560029'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/10/gaeo.html' title='GAEOでエコな開発を'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7817692306028959037</id><published>2009-10-14T16:20:00.000+09:00</published><updated>2009-10-14T16:21:12.671+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>HT-03A にインストールしているソフト一覧</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;HT-03Aにインストールし、いまも使い続けているソフトを棚卸しの意味もこめて列挙してみました。&lt;br/&gt;&lt;br/&gt;中には起動する機会が極端に少ないものもありますが、それでも起動したときには『あって良かった』と思うものです。&lt;br/&gt;&lt;br/&gt;&lt;ul&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.android1-androidsaround-client2-qCEF.aspx' target='_blank'&gt;Androids Around2&lt;/a&gt;&lt;br/&gt;Android所有者(このソフトをインストールしている人)の所在地が地図上に表示されるアプリ。同志を探すために使用できそうです。&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.com-chnavi-android2ch-jixm.aspx' target='_blank'&gt;anちゃん&lt;/a&gt;&lt;br/&gt;Android用2chブラウザ。それなりに軽くて使用感もよいので愛用してます。ただ難点がアイコンが壁紙と同化してしまうことくらいでしょうかｗ&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://code.google.com/p/android-scripting/' target='_blank'&gt;ASE&lt;/a&gt;&lt;br/&gt;Android Scripting Environment Android上でPythonなんかを動かすために入れてます。&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.com-stylem-wallpapers-Azi.aspx' target='_blank'&gt;Backgrounds&lt;/a&gt;&lt;br/&gt;壁紙に飽きたときに、こいつの中からチョイスしてます。意外と良い壁紙がそろってます。&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.larry-zou-colorfullife-wEE.aspx' target='_blank'&gt;Colorful Life&lt;/a&gt;&lt;br/&gt;Androidのカメラで撮った画像をPicasaWebにアップロードするアプリ。ブログに掲載するときとかに便利&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://layar.com/' target='_blank'&gt;Layar&lt;/a&gt;&lt;br/&gt;話題になった仮想現実をディスプレイに投影するアプリ。まったく知らない土地で、コンビニや駅、銀行なんかを探すのに便利かな？&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.jp-gr-netfort-dancer-mixi-qwEA.aspx' target='_blank'&gt;Mixi新着日記表示&lt;/a&gt;&lt;br/&gt;Mixi日記の新着を教えてくれるアプリ。しかし、記事までは取得してくれないらしく、今後に期待&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.com-newsrob-wmq.aspx' target='_blank'&gt;NewsRob&lt;/a&gt;&lt;br/&gt;Google Reader リーダーw 事前に記事をダウンロードしておいてくれるので、地下鉄通勤でも快適です。&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://labs.opera.com/news/2008/04/10/' target='_blank'&gt;OperaMini&lt;/a&gt;&lt;br/&gt;Android対応版Opera&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://www.picsaypro.com/' target='_blank'&gt;PicSay&lt;/a&gt;&lt;br/&gt;カメラで撮った画像に、いろんなエフェクトや落書きが出来るアプリ。プリクラ感覚で使うと面白い&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.com-google-zxing-client-android-xzA.aspx' target='_blank'&gt;QRコードスキャナー&lt;/a&gt;&lt;br/&gt;汎用的にバーコードやQRコードを読める。以前Googleのトップページのロゴがバーコードになった際に大活躍！&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.com-apppad-androidrtm-pnF.aspx' target='_blank'&gt;RTM Tasks&lt;/a&gt;&lt;br/&gt;RTMと同期してくれるタスク管理ソフト&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.com-adamrocker-android-input-simeji-Fxn.aspx' target='_blank'&gt;simeji&lt;/a&gt;&lt;br/&gt;フリック入力最高！もう連打入力には戻れません。&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.com-mattwach-trap2-DmB.aspx' target='_blank'&gt;Trap!&lt;/a&gt;&lt;br/&gt;暇つぶし要員&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://twidroid.com/' target='_blank'&gt;Twitroid&lt;/a&gt;&lt;br/&gt;AndroidのTwitterクライアントの中では一番使いやすいんじゃないでしょうか。最近はこいつ一筋です。&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.jp-co-bii-android-app-cnv-Bwi.aspx' target='_blank'&gt;クーポンマップ&lt;/a&gt;&lt;br/&gt;Google Map上にクーポンを扱っている店舗の表示をしてくれる優れもの。二次会の場所を探したりするのに便利&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.org-sevenleaves-droidsensor-qDAD.aspx' target='_blank'&gt;すれちがったー&lt;/a&gt;&lt;br/&gt;Blutoothを使用して、引っかかった端末のTwitterIDをつぶやくというもの。しかし、もっぱらつぶやくのはBlutoothの型番だけ・・・。&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.com-wingtseng123-systemmemorymonitor-qFC.aspx' target='_blank'&gt;タスクマネージャー&lt;/a&gt;&lt;br/&gt;いつ回収されるとも知れないメモリリソースを、アプリを強制終了させて開放させるアプリ&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.jp-co-jugem-lookbarcode-activity-jtnq.aspx' target='_blank'&gt;なにこれ？&lt;/a&gt;&lt;br/&gt;QRコードリーダー第二弾。アマゾンとの連携が素晴らしいので、書籍を購入する前に、こいつにバーコードを読ませて、アマゾンの批評なんかを見ています。&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.jp-fores-android-syunrepi-jApz.aspx' target='_blank'&gt;旬れぴ&lt;/a&gt;&lt;br/&gt;クックパッドのレシピ情報を検索するアプリ。夕食のお買い物のときに大活躍&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.org-satok-gweather-jtiE.aspx' target='_blank'&gt;世界の天気&lt;/a&gt;&lt;br/&gt;住所を登録して、その地点の天気情報を表示するウィジェット&lt;/li&gt;&lt;br/&gt;&lt;li&gt;&lt;a href='http://jp.androlib.com/android.application.net-uhmaro-android-rosen-jAzA.aspx' target='_blank'&gt;路線ドロイド&lt;/a&gt;&lt;br/&gt;名前そのまま。路線情報検索用アプリ&lt;/li&gt;&lt;br/&gt;&lt;/ul&gt;ソーシャル系のアプリケーションが多いのは仕様です。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=bfdf9782-2828-8460-9780-9f729567b826' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7817692306028959037?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7817692306028959037/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7817692306028959037' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7817692306028959037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7817692306028959037'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/10/ht-03a.html' title='HT-03A にインストールしているソフト一覧'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1254243769259004956</id><published>2009-10-01T23:13:00.001+09:00</published><updated>2009-10-01T23:13:18.624+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='GoogleWave'/><title type='text'>Google Wave　プレビューがきましたね</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;六月のGoogle Dev Day 2009でサンドボックスが公開されて以来、ようやく10万人を対象にしたプレビュー版が公開されました。&lt;br/&gt;今回は、初期のGmailと同様に、８人まで招待できる招待制となってました。&lt;br/&gt;&lt;br/&gt;とりあえず、Developer Previewに比べると、安定性が増しているような気がします。&lt;br/&gt;ということで、GoogleWaveを取り上げているサイトのまとめ&lt;br/&gt;&lt;br/&gt;本家&lt;br/&gt;https://wave.google.com/&lt;br/&gt;&lt;br/&gt;＠IT 　意外と深いところまで突っ込んでます&lt;br/&gt;http://www.atmarkit.co.jp/fwcr/rensai2/wave01/01.html&lt;br/&gt;&lt;br/&gt;LifeHacker&lt;br/&gt;http://www.lifehacker.jp/2009/10/google_wave_2.html&lt;br/&gt;&lt;br/&gt;あれ？意外と取り上げているところが少ないなぁ・・・。&lt;br/&gt;&lt;br/&gt;まだ、招待のメールが滞っているようで、ロンリーなWaveを体験中です。&lt;br/&gt;寂しいから、アカウントを晒しておくので皆さんコンタクトに追加してください。&lt;br/&gt;&lt;br/&gt;アカウント：dotred5.0@googlewave.com&lt;br/&gt;&lt;br/&gt;ぜひともよろしくお願いします。&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1254243769259004956?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1254243769259004956/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1254243769259004956' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1254243769259004956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1254243769259004956'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/10/google-wave.html' title='Google Wave　プレビューがきましたね'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6773444816050602762</id><published>2009-09-19T15:18:00.001+09:00</published><updated>2009-09-19T15:18:06.252+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Chrome を Vim風に操作する</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;これを待ってました。&lt;br/&gt;Firefoxで一部のユーザに愛されているvimperatorですが、自分も愛用してます。&lt;br/&gt;キーボードだけでブラウザを操作するほとんどの作業が完結するため、マウスなしのthinkpad環境ではすこぶる便利なプラグインです。&lt;br/&gt;&lt;br/&gt;そんなvimperatorライクなchromeエクステンションを個人で提供している方のサイトを見つけました。&lt;br/&gt;&lt;a href='http://silentpower2.blogspot.com/2009/09/chromevim-2.html' target='_blank'&gt;Silent Power:ChromeをVim風にキーボード操作する拡張 その2 &lt;/a&gt;&lt;br/&gt;まだvimperatorには及びませんが、操作感はvimperatorに近づいており、chromeを使う上でのストレスが軽減されました。&lt;br/&gt;&lt;br/&gt;○インストール&lt;br/&gt;&lt;ol&gt;&lt;li&gt;上記サイトの(インストール)リンクをクリックします。&lt;/li&gt;&lt;li&gt;ブラウザ下段に、保存の可否を聞かれるので、『許可』をクリックします。&lt;/li&gt;&lt;li&gt;下のような画面が表示されるので、installをクリックします。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/-xKcjcLBlM2QC4lsEZ6M9Q?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SrR2i-HlT4I/AAAAAAAAB0Q/xtOI6ack5d8/s400/Screenshot-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%AE%E7%A2%BA%E8%AA%8D.jpg'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/li&gt;&lt;li&gt;おもむろにchromeを再起動します。&lt;/li&gt;&lt;/ol&gt;たったこれだけ。&lt;br/&gt;Firefoxのアドオンを追加するのと同じくらい簡単でした。&lt;br/&gt;&lt;br/&gt;なにはともあれ、作成してくださった方に感謝！&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6773444816050602762?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6773444816050602762/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6773444816050602762' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6773444816050602762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6773444816050602762'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/09/google-chrome-vim.html' title='Google Chrome を Vim風に操作する'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-wXhttfyssE/SrR2i-HlT4I/AAAAAAAAB0Q/xtOI6ack5d8/s72-c/Screenshot-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%AE%E7%A2%BA%E8%AA%8D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-8140907037884733035</id><published>2009-09-18T22:34:00.001+09:00</published><updated>2009-09-18T22:34:54.029+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ネタ'/><title type='text'>Twitterアイコン設定</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;今日twitter見たら、なぜかアイコンがデフォルトの鳥さんに変わっていたので、&lt;br/&gt;再度アイコンを設定してみたら&lt;br/&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/gBPgMZJ869BUss8Fx8RNsg?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SrOLfmXbTqI/AAAAAAAABz0/mCWS0bEX2ho/s400/Twitter_icon.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;Twitterにお世辞を言われた・・・。&lt;br/&gt;本当にそう思ってんのか！？&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=4ea85212-0717-8654-a1ca-5990225c6513' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-8140907037884733035?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/8140907037884733035/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=8140907037884733035' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8140907037884733035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8140907037884733035'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/09/twitter.html' title='Twitterアイコン設定'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-wXhttfyssE/SrOLfmXbTqI/AAAAAAAABz0/mCWS0bEX2ho/s72-c/Twitter_icon.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-5077688437355394954</id><published>2009-09-11T14:27:00.001+09:00</published><updated>2009-09-11T14:27:33.773+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>django-tagging を使ってみる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;自前で作成しているDjangoアプリケーションに、『ポストする記事に対して、タグを付与する』機能をつけようと思い立ったわけですが、自前で作ろうとすると面倒なことに気が付きました。&lt;br/&gt;ということで、django-taggingを使ってみようと思います。&lt;br/&gt;&lt;br/&gt;&lt;a target='_blank' href='http://code.google.com/p/django-tagging/'&gt;django-tagging - Project Hosting on Google Code:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Django のModelFieldにTagFieldというフィールドを追加するアプリです。&lt;br/&gt;&lt;br/&gt;いろんなところでバグ報告がされているので、動作的に信頼していいのかわかりませんが、&lt;br/&gt;バグッたらバグッたでそのとき考えましょう。&lt;br/&gt;ということで、Ubuntu 9.04を前提とした導入から実践まで&lt;br/&gt;&lt;br/&gt;○インストール&lt;br/&gt;Ubuntuなので、リポジトリ上に用意されています。(バージョンは記事を書いている時点で0.3Pre)&lt;br/&gt;&lt;blockquote&gt;sudo apt-get install python-django-tagging&lt;br/&gt;&lt;/blockquote&gt;で、さくっとインストール完了&lt;br/&gt;&lt;br/&gt;○動作確認&lt;br/&gt;apt-getで入れれば、パスは通っているはずなので、djangoアプリを格納しているディレクトリで&lt;br/&gt;&lt;blockquote&gt;./manage.py shell&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;import tagging&lt;br/&gt;&amp;gt;&amp;gt;&amp;gt;tagging.VERSION&lt;br/&gt;(0, 3, 'pre')&lt;br/&gt;&lt;/blockquote&gt;と表示されればOKです。&lt;br/&gt;&lt;br/&gt;○settings.py　を編集&lt;br/&gt;INSTALLED_APPSに、'tagging'を追加します。&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;INSTALLED_APPS = (&lt;br/&gt;　　　　'django.contrib.auth',&lt;br/&gt;　　　　'django.contrib.contenttypes',&lt;br/&gt;　　　　'django.contrib.sessions',&lt;br/&gt;　　　　'django.contrib.sites',&lt;br/&gt;　　　　'django.contrib.admin',&lt;br/&gt;　　　　'tagging',  # ←これを追加&lt;br/&gt;)&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;○syncdb&lt;br/&gt;&lt;blockquote&gt;./manage.py syncdb&lt;br/&gt;&lt;/blockquote&gt;で、以下の二つのテーブルが作成されればOK&lt;br/&gt;&lt;blockquote&gt;Creating table tagging_tag&lt;br/&gt;Creating table tagging_taggeditem&lt;br/&gt;Installing index for tagging.TaggedItem model&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;○models.py&lt;br/&gt;既存のmodels.pyに&lt;br/&gt;&lt;blockquote&gt;from tagging.fields import TagField&lt;br/&gt;class Hoge(models.Model):&lt;br/&gt;　tags = TagField()&lt;br/&gt;&lt;/blockquote&gt;と記述するだけ。&lt;br/&gt;&lt;br/&gt;あとは、スペース区切り、カンマ区切り等でデータを突っ込んであげるだけでOKです。&lt;br/&gt;&lt;br/&gt;とりあえず、djangoで使えるようにまでしてみましたが、表示はどうするんだろう・・・・。&lt;br/&gt;ということで、表示まで出来るようになったら、エントリを作成します。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=f4588879-efe2-8918-8e14-9331cf236ca5' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-5077688437355394954?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/5077688437355394954/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=5077688437355394954' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5077688437355394954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5077688437355394954'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/09/django-tagging.html' title='django-tagging を使ってみる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1059664029949275862</id><published>2009-09-09T12:23:00.001+09:00</published><updated>2009-09-09T12:25:41.513+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQLServer'/><title type='text'>T-SQL で CREATE OR REPLACE FUNCTION を使いたい</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Visual Studioを使用して、T-SQLの開発を行っていると、&lt;br /&gt;作成したプロシージャorファンクションをサーバにデプロイ⇒実行&lt;br /&gt;という流れになります。&lt;br /&gt;&lt;br /&gt;上記の場合、oracleだと、パッケージの記述を&lt;br /&gt;&lt;blockquote&gt;create or replace function Hogehoge ・・・&lt;/blockquote&gt;としておけば、対象のHogehogeが存在しなければ作成、あれば置き換えとやってくれるので、デプロイに手間がかからないわけです。&lt;br /&gt;しかしながら、T-SQLではPROCEDUREやFUNCTIONの前には、createしか許容していないようで、いちいちサーバからdropしないとデプロイできません。&lt;br /&gt;はっきり言って面倒です。業務放棄したいくらいです。&lt;br /&gt;&lt;br /&gt;ということで、どうにかするためにGoogle様にお伺いしたところ&lt;br /&gt;&lt;blockquote&gt;IF OBJECT_ID ( 'Hogehoge', 'FN' ) IS NOT NULL &lt;br /&gt;DROP FUNCTION Hogehoge;&lt;br /&gt;GO&lt;/blockquote&gt;を使いなさい。とお言葉を頂いたので、.sqlファイルの頭にPROCEDUREとFUNCTIONの定義分だけ組み込んでみました。&lt;br /&gt;&lt;br /&gt;使い方としては、&lt;br /&gt;&lt;blockquote&gt;IF OBJECT_ID ( 'Hogehoge', 'FN' ) IS NOT NULL &lt;/blockquote&gt;で、Hogehogeという名前のFUNCTIONが存在するかを判定&lt;br /&gt;ちなみに、PROCEDUREの場合は、第二引数が'P'となります。&lt;br /&gt;&lt;br /&gt;上記で存在した場合に&lt;br /&gt;&lt;blockquote&gt;DROP FUNCTION Hogehoge;&lt;/blockquote&gt;で、ファンクションをドロップします。&lt;br /&gt;プロシージャの場合は、&lt;br /&gt;&lt;blockquote&gt;DROP PROCEDURE Hogehoge;&lt;/blockquote&gt;となります。&lt;br /&gt;&lt;br /&gt;共通規約に組み込まないといけないなぁ。&lt;br /&gt;そのファイルに含まれるPROCEDUREとFUNCTIONをファイルの先頭で、&lt;br /&gt;存在したらDROPする処理を組み込むこと。&lt;br /&gt;&lt;br /&gt;やっぱり、Oracleがいいなぁ&lt;br /&gt;&lt;br /&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=2def2071-efc2-88d4-887f-2043a8e0f38d' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1059664029949275862?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1059664029949275862/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1059664029949275862' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1059664029949275862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1059664029949275862'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/09/t-sql-create-or-replace-function.html' title='T-SQL で CREATE OR REPLACE FUNCTION を使いたい'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1807626530280772766</id><published>2009-09-08T22:39:00.001+09:00</published><updated>2009-09-08T22:39:08.333+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>mysql をUTF-8に対応させる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;デフォルトでUTF-8に対応してなかったんですね・・・。&lt;br/&gt;今まで日本語入力させるようなアプリを作ったことなかったので、気づきませんでした。&lt;br/&gt;&lt;br/&gt;ということで、サクッと対応させてしまいましょう。&lt;br/&gt;参考にしたページは以下&lt;br/&gt;&lt;a href='http://d.hatena.ne.jp/kariostro/20090813/1250174317' target='_blank'&gt;文字コードをUTF-8に変更する。 - kariostroの日記:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;○まずは設定の編集&lt;br/&gt;&lt;blockquote&gt;sudo gedit /etc/mysql/my.cnf&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;で、以下の内容を追記&lt;br/&gt;&lt;blockquote&gt;[mysqld]セクション&lt;br/&gt;default-character-set=utf8&lt;br/&gt;character_set_server=utf8&lt;br/&gt;&lt;/blockquote&gt;&lt;blockquote&gt;[mysql]セクション&lt;br/&gt;default-character-set=utf8&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;○おもむろに再起動&lt;br/&gt;&lt;blockquote&gt;sudo /etc/init.d/mysql &lt;span class='synStatement'&gt;restart&lt;/span&gt;&lt;br/&gt;&lt;/blockquote&gt;で、この後データベース及びテーブルに対して、alterでcharsetをutf8に変更してくのですが、&lt;br/&gt;そんなにデータ量があったわけでもなかったので、&lt;br/&gt;&lt;blockquote&gt;mysql -u root -p&lt;br/&gt;&lt;/blockquote&gt;でログイン後&lt;br/&gt;&lt;blockquote&gt;drop database [データベース名];&lt;br/&gt;create database [データベース名];&lt;br/&gt;&lt;/blockquote&gt;で作りなおしを行いました。&lt;br/&gt;&lt;br/&gt;最後に、 &lt;br/&gt;&lt;blockquote&gt;python manage.py syncdb&lt;br/&gt;&lt;/blockquote&gt;で出来上がり。&lt;br/&gt;&lt;br/&gt;後半は手間を惜しんで楽な方に走りましたが、まぁ許される範囲ではないですかねw&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1807626530280772766?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1807626530280772766/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1807626530280772766' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1807626530280772766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1807626530280772766'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/09/mysql-utf-8.html' title='mysql をUTF-8に対応させる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-903977877072430508</id><published>2009-08-26T19:43:00.001+09:00</published><updated>2009-08-26T19:43:01.439+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ネタ'/><title type='text'>ls ~ を晒すのが流行っているらしい</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Googleでの検索結果順&lt;br/&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://akimoto.jp/blog/2009/08/26/is-showing-your-ls-results-in-boom/' target='_blank'&gt;秋元 » ls ~ を晒すのが流行っているらしい:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://d.hatena.ne.jp/nisyu/20090825/1251273344' target='_blank'&gt;ls ~ を晒すのが流行っているらしい - 本当にオタクでも山へ登れるのか？:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://d.hatena.ne.jp/tksmd/20090826/p1' target='_blank'&gt;ls ~ を晒すのが流行っているらしい - Bug’s Groove:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://sharl.haun.org/d/2009082601' target='_blank'&gt;しゃある通信 - [ぐるぐる]ls ~ を晒してみる:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://masarusato.com/blog/?p=297' target='_blank'&gt;ls ~ を晒してみる | no-agenda:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://d.hatena.ne.jp/amachang/20090826/1251266020' target='_blank'&gt;ls ~ を晒してみる - IT戦記:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://d.hatena.ne.jp/y-kawaz/20090826/1251267667' target='_blank'&gt;ls ~ を晒してみる - y-kawazの日記:&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;と、流行っているようなので便乗する&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Downloads/&lt;/li&gt;&lt;li&gt;Dropbox/&lt;/li&gt;&lt;li&gt;Examples@&lt;/li&gt;&lt;li&gt;PicasaDocuments/&lt;/li&gt;&lt;li&gt;Project/&lt;/li&gt;&lt;li&gt;Projects/&lt;/li&gt;&lt;li&gt;archives/&lt;/li&gt;&lt;li&gt;bin/&lt;/li&gt;&lt;li&gt;download.sh~&lt;/li&gt;&lt;li&gt;javascript.vim&lt;/li&gt;&lt;li&gt;keynote~&lt;/li&gt;&lt;li&gt;scrapBook/&lt;/li&gt;&lt;li&gt;temp/&lt;/li&gt;&lt;li&gt;temp.html~&lt;/li&gt;&lt;li&gt;xmpp.py~&lt;/li&gt;&lt;li&gt;【MB2】_Android_でリアルタイムゲームの開発方法&lt;/li&gt;&lt;li&gt;【MB3】_Android_高度方法指南&lt;/li&gt;&lt;li&gt;【SC1】_ソーシャル_Web_の可能性&lt;/li&gt;&lt;li&gt;【SC2】_OpenSocial_in_Japan&lt;/li&gt;&lt;li&gt;【SC3】_OpenSocial_アドバンス&lt;/li&gt;&lt;li&gt;【SC4】_OpenSocial_パネルディスカッション&lt;/li&gt;&lt;li&gt;【マリオ64実況】奴が来る　六【幕末志士】&lt;/li&gt;&lt;li&gt;おっくせんまん.flv&lt;/li&gt;&lt;li&gt;アクエリオンラップ.flv&lt;/li&gt;&lt;li&gt;デスクトップ/&lt;/li&gt;&lt;li&gt;音楽/&lt;/li&gt;&lt;li&gt;画像/&lt;/li&gt;&lt;li&gt;公開/&lt;/li&gt;&lt;li&gt;作業用BGM_ヒャダインメドレー_FULL.flv&lt;/li&gt;&lt;li&gt;七色のニコニコ動画.flv&lt;/li&gt;&lt;li&gt;雛形/&lt;/li&gt;&lt;li&gt;創聖のアクエリオンOP.flv&lt;/li&gt;&lt;li&gt;創聖のアクエリオン（ver.ゴム）.flv&lt;/li&gt;&lt;li&gt;動画/&lt;/li&gt;&lt;li&gt;文書/&lt;/li&gt;&lt;/ul&gt;とりあえずダウンロードしておいたflvファイルが散らばってますね・・・&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-903977877072430508?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/903977877072430508/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=903977877072430508' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/903977877072430508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/903977877072430508'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/ls.html' title='ls ~ を晒すのが流行っているらしい'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7971230154534957409</id><published>2009-08-25T17:32:00.000+09:00</published><updated>2009-08-25T17:36:04.398+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>feedly を入れてみる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a target='_blank' href='https://addons.mozilla.org/ja/firefox/addon/6424'&gt;Better GReader&lt;/a&gt;を入れていたところ、Google Readerの挙動が遅くなった感じがしたので、&lt;br /&gt;アンインストールしたところ、&lt;a target='_blank' href='https://twitter.com/IanMLewis'&gt;IanMLewis&lt;/a&gt;から代替のおすすめアドオンを紹介してもらいました。&lt;br /&gt;&lt;br /&gt;それがfeedlyというFirefoxのアドオンです。&lt;br /&gt;&lt;a target='_blank' href='https://addons.mozilla.org/ja/firefox/addon/8538'&gt;Feedly :: Firefox Add-ons:&lt;/a&gt;&lt;br /&gt;&lt;a target='_blank' href='http://www.youtube.com/watch?v=MyYghUPI6r8'&gt;1-minute introduction video:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;RSSフィードを整形して、表示するアドオンなんですが、これが見やすい！&lt;br /&gt;『magazine-like』と銘打っているだけあって、見易さがダントツです。&lt;br /&gt;&lt;br /&gt;とりあえず、Google Readerと勝手に同期してくれたので、ページのイメージ&lt;br /&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/0Y1CufD1Ep_RJWRJ_swgAA?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SpOhoSaovEI/AAAAAAAABvM/S2ovArPbOpc/s400/feedly.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Google Readerの一覧表示より見やすい感じです。&lt;br /&gt;ウィンドウを最大化したときにデザインが切り替わったり、かゆいところに手が届く感じがいいですね。&lt;br /&gt;&lt;br /&gt;ただ、この感じを言葉で伝えるのも難しいので、ぜひ使ってみてください。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=9de1998f-d3b4-88a2-9905-b982f455485d' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7971230154534957409?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7971230154534957409/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7971230154534957409' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7971230154534957409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7971230154534957409'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/feedly.html' title='feedly を入れてみる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-wXhttfyssE/SpOhoSaovEI/AAAAAAAABvM/S2ovArPbOpc/s72-c/feedly.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1620982451507483559</id><published>2009-08-19T21:18:00.000+09:00</published><updated>2009-08-19T21:22:13.178+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>T-SQLでファイル出力　その2</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;結論：超つかえねぇ&lt;br /&gt;&lt;br /&gt;複数行のデータを出力したい場合は、&lt;br /&gt;&lt;blockquote&gt;SET @cmd = 'echo ' + @var + ' &amp;gt;&amp;gt; var_out.txt'&lt;br /&gt;EXEC master..xp_cmdshell @cmd&lt;/blockquote&gt;&lt;br /&gt;と、追記形式でループでまわすしかなさそう・・・。&lt;br /&gt;&lt;br /&gt;しかもxp_cmdshellの制約で、nvarchar(4000)またはvarhcar(8000)までしか対応していないので、ダンプファイルを作りたいときなどは使用できそうにもないです。&lt;br /&gt;&lt;br /&gt;仕方ないので、ワークにファイル出力したいデータを作成後、bpc使ってqueryoutでファイルに落とすのが無難なのかなぁ・・・。&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=da08a6cc-a724-83f1-802d-f1df5d7161a7' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1620982451507483559?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1620982451507483559/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1620982451507483559' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1620982451507483559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1620982451507483559'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/t-sql2.html' title='T-SQLでファイル出力　その2'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-5128363017722218831</id><published>2009-08-19T20:00:00.001+09:00</published><updated>2009-08-19T20:26:26.557+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>T-SQLでファイル出力</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;結論：超めんどくせぇ&lt;br /&gt;&lt;br /&gt;SQL Server自体にはファイルを出力するような組み込みコマンドは無いらしいので、&lt;br /&gt;T-SQL上からシェルを呼び出して行う。&lt;br /&gt;しかも、sysadmin権限だけでは不足なようで、実行権限の付与も必要。&lt;br /&gt;&lt;br /&gt;まずは、実行権限の付与から&lt;br /&gt;&lt;blockquote&gt;-- To allow advanced options to be changed.&lt;br /&gt;EXEC sp_configure 'show advanced options', 1&lt;br /&gt;GO&lt;br /&gt;-- To update the currently configured value for advanced options.&lt;br /&gt;RECONFIGURE&lt;br /&gt;GO&lt;br /&gt;-- To enable the feature.&lt;br /&gt;EXEC sp_configure 'xp_cmdshell', 1&lt;br /&gt;GO&lt;br /&gt;-- To update the currently configured value for this feature.&lt;br /&gt;RECONFIGURE&lt;br /&gt;GO&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;これで実行権限が付与される。&lt;br /&gt;しかし、出力場所に対してのアクセス権の問題が生じるため、このコマンドを発行するユーザを設定する。&lt;br /&gt;&lt;blockquote&gt;EXEC sp_xp_cmdshell_proxy_account '[ドメイン or PC名]\[ユーザ名]','[パスワード]'&lt;br /&gt;&lt;/blockquote&gt;これで設定は終了。&lt;br /&gt;ファイルの吐き出しを行う。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;DECLARE @cmd sysname, @var sysname&lt;br /&gt;SET @var = 'Hello world'&lt;br /&gt;SET @cmd = 'echo ' + @var + ' &amp;gt; var_out.txt'&lt;br /&gt;EXEC master..xp_cmdshell @cmd&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;実行！&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;アクセス権がありません&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;はい？&lt;br /&gt;もうちょっと試行錯誤する必要がありそうです・・・。&lt;br /&gt;&lt;br /&gt;追記：&lt;br /&gt;出力先のディレクトリに対して、アクセス権を設定したら出力できました。&lt;br /&gt;・・・うん、確かにそういうエラーだよね。&lt;br /&gt;&lt;br /&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=37440114-e164-8aa3-9d60-969a345c2888' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-5128363017722218831?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/5128363017722218831/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=5128363017722218831' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5128363017722218831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5128363017722218831'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/t-sql_19.html' title='T-SQLでファイル出力'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3574220834419471508</id><published>2009-08-14T00:13:00.001+09:00</published><updated>2009-08-14T00:13:56.791+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Chromiumの右上の人</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://dotred5.blogspot.com/2009/08/chromium.html' target='_blank'&gt;プログラマの実態: Chromiumに編な顔が！？:&lt;/a&gt;&lt;br/&gt;にてお送りしたChromiumのバグ(？)ですが、翌日には解消されていたのですが・・・。&lt;br/&gt;&lt;br/&gt;正式(？)なオプションとして採用されたようです。&lt;br/&gt;詳しくは以下を参照してもらうとして&lt;br/&gt;&lt;a href='http://slashdot.jp/it/article.pl?sid=09/08/13/047200' target='_blank'&gt;Linux版Chromeに「閉じる」ボタンを人の顔にするという謎のコード混入 - スラッシュドット・ジャパン:&lt;/a&gt;&lt;br/&gt;&lt;a href='http://d.hatena.ne.jp/shinichiro_h/20090812' target='_blank'&gt;2009-08-12 - 兼雑記:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;いまの所、Ubuntuでしか確認していないのですが、&lt;br/&gt;&lt;blockquote&gt;$chromium-browser&lt;/blockquote&gt;と実行すると&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/sbBG9eKFYJfirp3mhDqLVw?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SoQqE8JVg7I/AAAAAAAABuU/Sg7uhrY5pX0/s288/Chromium-glen.jpg'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;と右上は×ボタンで表示されます。(右上のボタンのデザインが変わっていることに今気がつきました)&lt;br/&gt;&lt;br/&gt;しかし、&lt;br/&gt;&lt;blockquote&gt;$chromium-browser --glen&lt;/blockquote&gt;&lt;br/&gt;と実行すると&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/YdvwVjldD5Xw5v7RuNUbRw?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SoQqHSuzehI/AAAAAAAABuY/hqNJTH9UShs/s288/chromium-glen2.jpg'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;と、右上の×ボタンがグレンさんになります。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;しかも、chromiumのバグレポートには&lt;br/&gt;『人の顔が表示されていた部分に、×ボタンが表示されてしまっている。』&lt;br/&gt;という旨のレポートが掲載されています。&lt;br/&gt;&lt;a target='_blank' href='http://code.google.com/p/chromium/issues/detail?id=18756'&gt;Issue 18756 - chromium - X where head button should be&lt;/a&gt;&lt;br/&gt;意訳すると&lt;br/&gt;　・再現手順は？&lt;br/&gt;　　→ヘッダのボタンを見なさい&lt;br/&gt;　・求める結果は？&lt;br/&gt;　　→顔が表示されている&lt;br/&gt;　・バグの時の結果は？&lt;br/&gt;　　→×が表示されている。&lt;br/&gt;&lt;br/&gt;もう笑うしかないですね。&lt;br/&gt;まさか、このバグレポートがあったために、--glenパラメータを追加したわけじゃないですよね・・・。&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3574220834419471508?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3574220834419471508/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3574220834419471508' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3574220834419471508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3574220834419471508'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/chromium_14.html' title='Chromiumの右上の人'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-wXhttfyssE/SoQqE8JVg7I/AAAAAAAABuU/Sg7uhrY5pX0/s72-c/Chromium-glen.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3913333357635782863</id><published>2009-08-08T23:26:00.001+09:00</published><updated>2009-08-08T23:26:58.364+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Chromiumでyoutubeを再生させる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;UbuntuのChromiumでFLASHを実行させる方法&lt;br/&gt;&lt;br/&gt;&lt;a href='http://shogiubuntu.blog60.fc2.com/blog-entry-42.html' target='_blank'&gt;将棋とubuntu日記 chromiumブラウザ(google chrome for linux)を試す:&lt;/a&gt;&lt;br/&gt;に掲載されていたので、やってみました。&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;cd /usr/lib/chromium-browser/plugins&lt;br/&gt;sudo ln -s /usr/lib/firefox/plugins/flashplugin-alternative.so&lt;br/&gt;&lt;/blockquote&gt;要は、FirefoxにインストールされているFlashPluginをChromiumのPluginとして使用する。ってことらしいです。&lt;br/&gt;上記のコマンド発行後に、プラグインを使用するように引数を設定して実行します。&lt;br/&gt;&lt;blockquote&gt;chromium-browser --enable-plugins&lt;br/&gt;&lt;/blockquote&gt;これでFlashを有効にして、chromiumを実行できます。&lt;br/&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/AARZpzMNfC3g5UFaqNl6xg?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/Sn2K7gPbwyI/AAAAAAAABqg/bd3PUsBqXeo/s400/Screenshot-YouTubeChromium.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3913333357635782863?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3913333357635782863/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3913333357635782863' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3913333357635782863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3913333357635782863'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/chromiumyoutube.html' title='Chromiumでyoutubeを再生させる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_-wXhttfyssE/Sn2K7gPbwyI/AAAAAAAABqg/bd3PUsBqXeo/s72-c/Screenshot-YouTubeChromium.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-2142519530360447619</id><published>2009-08-07T23:44:00.001+09:00</published><updated>2009-08-07T23:44:12.245+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>Chromiumに編な顔が！？</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;これはネタではない！&lt;br/&gt;&lt;br/&gt;&lt;big&gt;繰り返す！&lt;br/&gt;これはネタではない！&lt;/big&gt;&lt;br/&gt;&lt;br/&gt;Ubuntu のChromiumのデイリービルドの右上に見知らぬ兄ちゃんの顔が！&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/F3Y1hJ7420Iple7d1Do8wQ?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/Snwz_wSbn_I/AAAAAAAABqE/HoP4thtiG48/s400/Chromium.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;えっと・・・。&lt;br/&gt;どちらさまですか？&lt;br/&gt;&lt;br/&gt;そこ、×ボタンがある所なので、ちょっとどいていただけませんかね？&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-2142519530360447619?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/2142519530360447619/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=2142519530360447619' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2142519530360447619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2142519530360447619'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/chromium.html' title='Chromiumに編な顔が！？'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_-wXhttfyssE/Snwz_wSbn_I/AAAAAAAABqE/HoP4thtiG48/s72-c/Chromium.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1227685115779452925</id><published>2009-08-06T22:14:00.000+09:00</published><updated>2009-08-06T22:18:33.903+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>T-SQLで動的SQLを使用する場合</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;文字列を結合して、クエリを作成する場合し、それを実行する場合&lt;br/&gt;&lt;blockquote&gt;EXEC sp_executesql @Query;&lt;br/&gt;&lt;/blockquote&gt;の引数(この場合は@Query)は、&lt;br/&gt;&lt;ul&gt;&lt;li&gt;NTEXT&lt;/li&gt;&lt;li&gt;NCHAR&lt;/li&gt;&lt;li&gt;NVARCHAR&lt;/li&gt;&lt;/ul&gt;のいずれかでなくてはならないところを、&lt;br/&gt;&lt;blockquote&gt;DECLARE @Query VARCHAR(MAX);&lt;br/&gt;&lt;/blockquote&gt;と宣言していたため、小一時間ほどハマった・・・。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=875d7b84-9693-8993-9d00-727c1e8eaa95' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1227685115779452925?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1227685115779452925/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1227685115779452925' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1227685115779452925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1227685115779452925'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/t-sqlsql.html' title='T-SQLで動的SQLを使用する場合'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6627293632652282699</id><published>2009-08-06T19:29:00.000+09:00</published><updated>2009-08-06T19:33:19.050+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQLServer'/><title type='text'>Virual Studio 2005 で T-SQLをデバッグ実行する方法</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;ほぼ自分用備忘録&lt;br/&gt;&lt;br/&gt;Visual Studio 2005にて『サーバエクスプローラ』⇒『(該当のデータベース)』⇒『ストアドプロシージャ』まで展開する。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/JSHjCH5m35IzfvKql9X31w?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/Snqv5hcOjrI/AAAAAAAABpk/8Fg2a0F8nv8/s400/t-sql_Debug.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;あとは、ツリーのストアドプロシージャを右クリック⇒『ストアドプロシージャにステップイン』で、&lt;br/&gt;勝手に実行される。&lt;br/&gt;&lt;br/&gt;引数がある場合は、下記のウィンドウが表示されるので、引数を設定し実行を行う。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/lRZrIxP5-0eh7U48LyWIyg?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/Snqw-VlMXNI/AAAAAAAABpo/qWYr1d-5BTw/s400/t-sql_Debug2.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;カーソルなんかが引数の場合は、テスト用のスクリプトでも一個かませれば問題ないと思います。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=b99148a6-390c-82ad-98fb-22aee93a0de8' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6627293632652282699?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6627293632652282699/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6627293632652282699' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6627293632652282699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6627293632652282699'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/virual-studio-2005-t-sql.html' title='Virual Studio 2005 で T-SQLをデバッグ実行する方法'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_-wXhttfyssE/Snqv5hcOjrI/AAAAAAAABpk/8Fg2a0F8nv8/s72-c/t-sql_Debug.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-2788333711289883009</id><published>2009-08-06T11:37:00.001+09:00</published><updated>2009-08-06T11:56:50.881+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQLServer'/><title type='text'>T-SQL 例外情報の取得</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;メモメモφ(・ω・ )&lt;br /&gt;&lt;br /&gt;&lt;a href='http://technet.microsoft.com/ja-jp/library/ms175976.aspx'&gt;http://technet.microsoft.com/ja-jp/library/ms175976.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;big&gt;エラー情報の取得&lt;/big&gt;&lt;/b&gt;&lt;br /&gt;CATCH ブロックのスコープ内では、次のシステム関数を使用して、CATCH ブロックが実行される原因となったエラーに関する情報を取得できます。&lt;br /&gt;CATCH ブロックの範囲外で呼び出された場合は NULL を返します。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ERROR_NUMBER() &lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;戻り値の型：int&lt;br /&gt;CATCH ブロックで呼び出されると、CATCH ブロックの実行を引き起こしたエラー メッセージのエラー番号を返します。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;ERROR_SEVERITY()&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;戻り値の型：int&lt;br /&gt;CATCH ブロックの中で呼び出されると、CATCH ブロックの実行を引き起こしたエラー メッセージの重大度を返します。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;ERROR_STATE()&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;戻り値の型：int&lt;br /&gt;CATCH ブロックの中で呼び出された場合は、CATCH ブロックが実行された原因となるエラー メッセージの状態番号を返します。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;ERROR_PROCEDURE()&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;戻り値の型：nvarchar(126) &lt;br /&gt;CATCH ブロックで呼び出された場合、エラーが発生したストアド プロシージャ名を返します。&lt;br /&gt;ストアド プロシージャまたはトリガ内でエラーが発生しなかった場合は NULL を返します。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;ERROR_LINE()&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;戻り値の型：int &lt;br /&gt;CATCH ブロックで呼び出されると、次の値を返します。&lt;br /&gt;・エラーが発生した行番号&lt;br /&gt;・ストアド プロシージャまたはトリガ内でエラーが発生した場合には、ルーチン内の行番号&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;ERROR_MESSAGE()&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;戻り値の型：nvarchar(2048)&lt;br /&gt;CATCH ブロック内で呼び出された場合は、CATCH ブロックが実行される原因となったエラー メッセージの全テキストを返します。&lt;br /&gt;このテキストには、長さ、オブジェクト名、回数など、置き換え可能なパラメータに提供される値が含まれます。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;あとは、例外発生以外で、プロシージャ名を取りたいなぁ・・・。&lt;br /&gt;&lt;br /&gt;追記：&lt;br /&gt;&lt;br /&gt;T-SQLのプロシージャ内で&lt;br /&gt;&lt;blockquote&gt;SELECT Object_Name(@@Procid);&lt;/blockquote&gt;で、プロシージャ名を取得できるっぽい。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;@@Procid&lt;/b&gt;で現在のプロシージャの識別子を取得&lt;br /&gt;&lt;b&gt;Object_Name()&lt;/b&gt;で引数のオブジェクト名を返す&lt;br /&gt;&lt;br /&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=6a361890-1114-8272-85c4-4ba90bc4dd52' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-2788333711289883009?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/2788333711289883009/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=2788333711289883009' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2788333711289883009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2788333711289883009'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/t-sql.html' title='T-SQL 例外情報の取得'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-4982960098034697895</id><published>2009-08-05T21:02:00.000+09:00</published><updated>2009-08-05T21:06:22.278+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB'/><category scheme='http://www.blogger.com/atom/ns#' term='Erlang'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>ReverseHTTP を試してみる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.reversehttp.net/demos/demo.html'&gt;http://www.reversehttp.net/demos/demo.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;これは面白い。&lt;br/&gt;webhokをクライアント側で受け取るための技術(？)らしいです。&lt;br/&gt;得られる結果としては、Cometと同じような感じでしょうか？&lt;br/&gt;&lt;br/&gt;いろんなところで取り上げられていますが、いまひとつ実態が見えてこない感じです(単なる勉強不足です・・・。)&lt;br/&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://d.hatena.ne.jp/yappo/20090805/1249444429' target='_blank'&gt;reversehttp - iYappoList::Writing:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.moongift.jp/2009/08/reverse_http/' target='_blank'&gt;MOONGIFT: » リアルタイムWebを促進する「Reverse HTTP」:オープンソースを毎日紹介:&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://mattn.kaoriya.net/web/20090805143554.htm' target='_blank'&gt;Big Sky:ReverseHttpで誰よりも速く「はてなブックマーク」に反応するツール書いた。&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;実際に上記のデモを試してみました&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/9nEbO1LYpBo64TkdlwEfyg?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/SnlyZPUd5HI/AAAAAAAABpE/YyaBCijF1-4/s400/reverseHttp1.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;デモページには、確認用ページへのリンクと、HTML編集用のテキストエリアがあります。&lt;br/&gt;とりあえず、確認用ページを別タブで開いておき、適当にHTMLを編集します。&lt;br/&gt;&lt;br/&gt;その後、別タブで開いておいた確認用ページをリロードし確認すると、&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/hop2RIKpOcJCZ19aom-JnQ?feat=embedwebsite'&gt;&lt;img src='http://lh6.ggpht.com/_-wXhttfyssE/SnlyZfWL_LI/AAAAAAAABpI/Ti8Nku7-PMM/s400/reverseHttp2.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;と、変更が適用されているのがわかります。&lt;br/&gt;&lt;br/&gt;うーん、やっぱりわからない・・・。&lt;br/&gt;&lt;br/&gt;やっぱり自分で環境を作って、いろいろ試行錯誤してみる必要がありそうですね。&lt;br/&gt;サーバーは話題のErlangで書かれているようなので、Ubuntuに環境そろえて試してみます。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=21d09247-a2f0-8f30-803d-98390fcb5296' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-4982960098034697895?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/4982960098034697895/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=4982960098034697895' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4982960098034697895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4982960098034697895'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/08/reversehttp.html' title='ReverseHTTP を試してみる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_-wXhttfyssE/SnlyZPUd5HI/AAAAAAAABpE/YyaBCijF1-4/s72-c/reverseHttp1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-8302022672433287665</id><published>2009-07-31T13:29:00.000+09:00</published><updated>2009-07-31T13:32:47.660+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>コーディングの仕方</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;コーディングの仕方とは言っても、こういう風に書けとか、インデントがどうのこうのとかを語るつもりは毛頭無く、単純な話、タイピングの順序の話です。&lt;br/&gt;&lt;br/&gt;自分は、普段コーディングをする場合、&lt;br/&gt;&lt;ol&gt;&lt;li&gt;メソッド名を記述&lt;/li&gt;&lt;li&gt;括弧をあけて閉じる&lt;/li&gt;&lt;li&gt;一個戻って&lt;/li&gt;&lt;li&gt;引数を必要なだけ記述&lt;/li&gt;&lt;/ol&gt;とやっています。&lt;br/&gt;なにを言っているかわからないと思うので、順を追って例を提示します。(例として、SQLServerのSubstringを記述する)&lt;br/&gt;(ついでにカーソルの位置を示すために &lt;b&gt;|&lt;/b&gt; を用いる)&lt;br/&gt;&lt;ol&gt;&lt;li&gt;substring&lt;b&gt;|&lt;/b&gt; 『←処理名の記述』&lt;/li&gt;&lt;li&gt;substring()&lt;b&gt;|&lt;/b&gt; 『←括弧をあけて閉じる』&lt;/li&gt;&lt;li&gt;substring(&lt;b&gt;|&lt;/b&gt;) 『←一個戻って』&lt;/li&gt;&lt;li&gt;substring(foo.bar, 1, 4&lt;b&gt;|&lt;/b&gt;) 『←引数を必要なだけ記述』&lt;/li&gt;&lt;/ol&gt;流れとしてこんな感じなのですが、最近仕事以外でペアプログラミングをしていると、何人かに一人の割合で、&lt;br/&gt;&lt;ol&gt;&lt;li&gt;substring&lt;b&gt;|&lt;/b&gt; 『←処理名の記述』&lt;/li&gt;&lt;li&gt;substring(&lt;b&gt;|&lt;/b&gt; 『←括弧をあける』&lt;/li&gt;&lt;li&gt;substring(foo.bar, 1, 4&lt;b&gt;|&lt;/b&gt;  『←引数を記述』&lt;/li&gt;&lt;li&gt;substring(foo.bar, 1, 4)&lt;b&gt;|&lt;/b&gt; 『←括弧を閉じる』&lt;/li&gt;&lt;/ol&gt;と、行の頭から戻ることなく記述する人が居ました。&lt;br/&gt;&lt;br/&gt;確かに方向キーって右下にあって、いちいちホームポジションから離れなければならないので、非効率ですね。&lt;br/&gt;ただ、この書き方って、既に頭の中にソースが出来ていて、マニュピレーターからアウトプットのみしている状態で無いと出来ないやり方ですよね。&lt;br/&gt;&lt;br/&gt;初めて見たときは、なんか感動しました。&lt;br/&gt;&lt;br/&gt;ジョジョか何かだったと思いますが、『ぶっ殺すと思った時、行動は既に終わってるもんだぜ ...』的なコーディングじゃないと出来ないわけで。&lt;br/&gt;&lt;br/&gt;いつか自然にこんな風にコーディングをしてみたいものです。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;ちなみに、初めて見たのはGoogle Developer Day 2008 ↓の時でした。&lt;br/&gt;&lt;div class='youtube-video'&gt;&lt;object width='425' height='344'&gt;&lt;param value='http://www.youtube.com/v/pvB2qKgaiZ0&amp;amp;hl=ja&amp;amp;fs=1&amp;amp;' name='movie'&gt; &lt;/param&gt;&lt;param value='true' name='allowFullScreen'&gt; &lt;/param&gt;&lt;param value='always' name='allowscriptaccess'&gt; &lt;/param&gt;&lt;embed width='425' height='344' allowfullscreen='true' allowscriptaccess='always' type='application/x-shockwave-flash' src='http://www.youtube.com/v/pvB2qKgaiZ0&amp;amp;hl=ja&amp;amp;fs=1&amp;amp;'&gt; &lt;/embed&gt;  &lt;/object&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=e9d5619b-49af-81f6-aa9f-bfacc7f10ca1' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-8302022672433287665?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/8302022672433287665/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=8302022672433287665' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8302022672433287665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8302022672433287665'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/07/blog-post.html' title='コーディングの仕方'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-4170771809136768695</id><published>2009-07-30T12:09:00.000+09:00</published><updated>2009-07-30T12:13:00.014+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python Image Libraryで画像の上にテキストを重ねる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;携帯で撮った写真の管理と、コミュニケーション目的で、携帯百景というサービスを使わせていただいてるのですが、ふと『画像の上にテキストを重ねる方法ってどうやるんだろう』と思い立って、調べてみました。&lt;br/&gt;昔、C#で同じようなことをやったことがあったんですが、Pythonだとぱっと思いつかなかったので・・・。&lt;br/&gt;&lt;br/&gt;結果的に言うと、PIL(Python Image Library)を使用すると、数行で解決できることがわかりました。&lt;br/&gt;以下、適当に組んだサンプルソース&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;import Image&lt;br/&gt;import ImageFont&lt;br/&gt;import ImageDraw&lt;br/&gt;&lt;br/&gt;im = Image.open("d:\\hogehoge.jpg")&lt;br/&gt;im.show()&lt;br/&gt;draw = ImageDraw.Draw(im)&lt;br/&gt;font = ImageFont.truetype(r"C:\WINDOWS\Fonts\MICROSS.TTF",38)&lt;br/&gt;draw.text((20,30),"Hello! PIL",font=font,fill="#000000")&lt;br/&gt;im.show()&lt;br/&gt;im.save("d:\\hogehoge2.jpg","JPEG")&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;たったこれだけ。&lt;br/&gt;嬉しいような、もうちょっと試行錯誤したかったような・・・。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=7b4b31f7-f18f-811c-a39e-01a376b2cb98' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-4170771809136768695?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/4170771809136768695/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=4170771809136768695' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4170771809136768695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4170771809136768695'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/07/python-image-library.html' title='Python Image Libraryで画像の上にテキストを重ねる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-8923578077503761928</id><published>2009-07-18T22:44:00.001+09:00</published><updated>2009-07-18T22:44:12.324+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu で　HT-03A を認識させる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;日本Androidの会でUbuntuからHT-03Aを認識させる方法が公開されていましたので、それを元に、設定してみました。&lt;br/&gt;これで、エミュレーターだけでなく実機でテストが出来るようになりました。&lt;br/&gt;&lt;br/&gt;本家&lt;br/&gt;&lt;a target='_blank' href='http://developer.android.com/intl/ja/guide/developing/device.html'&gt;Developing on a Device | Android Developers&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Google グループ&lt;br/&gt;&lt;a target='_blank' href='http://groups.google.co.jp/group/android-group-japan/browse_thread/thread/93f5e7ca26aa6f71#'&gt;Linux環境でのHT-03A + EclipseのUSB接続 - 日本Androidの会 | Google グループ&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;○Android側の設定&lt;br/&gt;メニュー→設定→アプリケーション→開発の中にある、『USBデバッグ』にチェックを入れます。&lt;br/&gt;&lt;br/&gt;○Ubuntu実機の設定&lt;br/&gt;udevにrulesファイルを作成します。&lt;br/&gt;&lt;blockquote&gt;sudo echo 'SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666" '&amp;gt; /etc/udev/rules.d/51-android.rules &lt;br/&gt;&lt;/blockquote&gt;作成したファイルのパーミッションを設定します。&lt;br/&gt;&lt;blockquote&gt;sudo chmod a+rx /etc/udev/rules.d/51-android.rules &lt;/blockquote&gt;これで、adb install コマンドで実機へのインストールが可能になります。&lt;br/&gt;基本的に開発をUbuntuでやっているので、Ubuntuから接続出来ないことに、ストレスを感じていたわけですが、これでそれからも開放されそうです。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-8923578077503761928?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/8923578077503761928/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=8923578077503761928' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8923578077503761928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8923578077503761928'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/07/ubuntu-ht-03a.html' title='Ubuntu で　HT-03A を認識させる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-5943501004846721563</id><published>2009-07-17T21:08:00.000+09:00</published><updated>2009-07-17T21:11:58.821+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>LiveAndroid を VirtualPCで動かしてみた。</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;HT-03Aも一週間触って、ある程度コツを掴んだので、いろいろいじくりまわしてみようかとも思っているわけですが、いきなり実機にアレコレするのは怖いので、LiveAndroidを使ってみようと思います。&lt;br/&gt;AndroidSDKのエミュを使ったほうが簡単なわけですが、そこはそれ。&lt;br/&gt;ということで、VirtualPC上でLiveAndroidを動かすまでの手順&lt;br/&gt;&lt;br/&gt;○ダウンロード～ISOファイル作成まで&lt;br/&gt;&lt;a target='_blank' href='http://code.google.com/p/live-android/'&gt;live-android - Google Code:&lt;/a&gt;&lt;br/&gt;上記のサイトから、&lt;br/&gt;&lt;blockquote&gt;liveandroidv0.2.iso.001 &lt;br/&gt;liveandroidv0.2.iso.002 &lt;br/&gt;&lt;/blockquote&gt;の二つをダウンロードしておきます。85MB、90MBと軽量なのでそんなにかからず、落とせると思います。&lt;br/&gt;&lt;br/&gt;二つのファイルを落としたら、COPYコマンドで二つのファイルをくっつけます。&lt;br/&gt;&lt;blockquote&gt;copy /B liveandroidv0.2.iso.001 + liveandroidv0.2.iso.002 liveandroidv0.2.iso&lt;/blockquote&gt;しばらくすると、liveandroidv0.2.isoが作成されているはずです。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;○VirtualPCの新規作成&lt;br/&gt;ざくざく行きます。&lt;br/&gt;一つ一つの設定は面倒なので、スクリーンショットで。設定値もお好みで問題ないと思います。&lt;br/&gt;一応、メモリは128M、HDDは1GBで設定してあります。(これくらいで十分だろうという漠然とした判断です。)&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/10tNUnqW__h__WQWBGnPpw?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SmBkK9KQBUI/AAAAAAAABmw/CS1zLR-ijmg/s400/001.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/zpBttrRU5wb2POrnPRLWrg?feat=embedwebsite'&gt;&lt;img src='http://lh6.ggpht.com/_-wXhttfyssE/SmBkK5ba0dI/AAAAAAAABm0/PWaNGlFZNxM/s400/002.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/0x6Rv2X490kGfpVMONaeyQ?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SmBkLOYj0mI/AAAAAAAABm4/77eOui9gaTs/s400/003.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/WlLJufNuLJGfOzyxgCpu4g?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SmBkLD4f8CI/AAAAAAAABm8/j0c0bUx3Au0/s400/004.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/mjRfHv3wiZZZpjgZq8O2OA?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SmBkLaS3jsI/AAAAAAAABnA/4WBS7Os8quA/s400/005.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/lANN8tXaHqIcYn8A69GvUQ?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SmBkSA2HmpI/AAAAAAAABnE/OJcrZO8dFrs/s400/006.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite#5359393820837523202'&gt;&lt;img src='http://lh6.ggpht.com/_-wXhttfyssE/SmBkSOZxrwI/AAAAAAAABnI/f-aXchny1VI/s400/007.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/p3Mba4SYBJEunoBiMbzHlg?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SmBkSadunKI/AAAAAAAABnM/ln3VkhwySF8/s400/008.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;○実際に動かしてみる。&lt;br/&gt;作成されたVirtualPCを起動させ、メニューバーの『CD』⇒『ISOイメージのキャプチャ』を選択し、先ほど作成したISOファイルを指定してください。&lt;br/&gt;&lt;br/&gt;するとinitが始まり、GDDフォンやHT-03AでおなじみのメタリックなANDROIDのロゴが表示されます。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/_5UwZTptXXfEr5NWWRnaVg?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SmBkStduaDI/AAAAAAAABnQ/T3CKXiqqd2s/s400/009.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;さらに待つと、『バッテリーがあと15%しかないけど、充電しないの！？』的なメッセージが表示されます。&lt;br/&gt;面倒なので、とりあえずOKをクリックしておきます。&lt;br/&gt;ちなみに、アンドロイドはポインティングデバイスはＰＣのマウスが扱えるんですが、そのカーソルの自己主張が薄く、ここの画面で危うく手詰まりになりそうでした。&lt;br/&gt;注意深く、Perfumeのアルバムタイトルのような薄いグレーのポインティングアイコンを探しましょう。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/6xVRkH8k7Z6zDKlum2xoVA?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SmBkStxWb7I/AAAAAAAABnU/pQNtqVtXrK8/s400/010.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;ここで、見慣れたAndroidの画面が登場です。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/3LVIGIzsaflaPv_tXo5qaw?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/SmBkdvO8gkI/AAAAAAAABnY/YjFXn7r3jvc/s400/011.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;HT-03Aを使っていると、『なんで横画面やねん』な感じになりますが、そこはそれデバイスの差と割り切りましょう。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;とりあえず、ブラウザを立ち上げてみましたが、ネットワークドライバがうまく動いていないのか、接続は出来ませんでした。&lt;br/&gt;今回は動かしてみるだけなので、このまま行きます。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/qAbAk9djOoCu_1GEiKhurQ?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SmBkdiJStEI/AAAAAAAABnc/aCaBh-XDIXw/s400/012.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;メニューを展開してみたところ&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/rDy-5ctGI1ZGa1aHh3FPCQ?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SmBkd5DgLOI/AAAAAAAABng/YysAijhkYYc/s400/013.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;HT-03Aに比べると、シンプルな構成となっています。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;readmefirst.txtでも書かれているように、『now it is only a TOY :)　(今のところは、単なるおもちゃだぜ HAHAHA)』ということなので、真剣に使うことも無いでしょう。&lt;br/&gt;開発目的であれば、AndroidSDKに付属するエミュレーターのほうがやりやすいでしょうし、評価目的であれば、店頭などでHT-03Aを触って居たほうがよいと思います。&lt;br/&gt;&lt;br/&gt;ゆくゆくは、ネットブックや家電などにAndroidを搭載して云々という話も出ていますから、ちょっと見ておきたいくらいの気持ちでなら、動かしてみると面白いでしょう。&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-5943501004846721563?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/5943501004846721563/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=5943501004846721563' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5943501004846721563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5943501004846721563'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/07/liveandroid-virtualpc.html' title='LiveAndroid を VirtualPCで動かしてみた。'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-wXhttfyssE/SmBkK9KQBUI/AAAAAAAABmw/CS1zLR-ijmg/s72-c/001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-5170658242989209749</id><published>2009-07-14T14:40:00.000+09:00</published><updated>2009-07-14T14:43:55.534+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>HT-03Aを買いました</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;発売から5日たっているわけですが、今更ながらレビュー&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;○全体的に&lt;/h2&gt;『バッテリーの持ち』と『慣れの問題』を除けば、80点くらいの評価を与えています。&lt;br /&gt;(もともとWillcomのアドエスを使用していたので、評価が甘いかもしれませんが・・・。)&lt;br /&gt;マルチタスクで動くアプリケーション郡や、アプリ同士の連携などは言うこと無しです。さすがGoogle!!&lt;br /&gt;価格帯も十分納得のいくものでしたし。&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;○残りの20点&lt;/h2&gt;まずは、入力方法&lt;br /&gt;ソフトキーボードを携帯ライクな入力と、QWERTY配列での入力が可能なんですが、&lt;br /&gt;QWERTY配列の場合の画面の端にあるQやAが入力しにくいです。&lt;br /&gt;キーの正面より、やや右寄りの辺りを押さないと認識してくれない場合があります。&lt;br /&gt;『だったら携帯配列を使えばいいじゃない』といわれそうですが、ずっとWMを使用していたので、&lt;br /&gt;アルファベットなんかはQWERTYのほうが入力しやすいんですよね。&lt;br /&gt;&lt;br /&gt;あとは、Android Market&lt;br /&gt;だんだんと日本語のコンテンツも増えてきましたが、やっぱり英語がメインなようで・・・。&lt;br /&gt;Docomoが独自にアプリケーションコンテンツを開設する話もありますが、それも一年後の話・・・。&lt;br /&gt;アプリをインストールする際の、敷居の高さは否めません。&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;なんだかんだ言っても&lt;/h2&gt;HT-03A、ひいてはAndroidはいいものだと思います。&lt;br /&gt;ということで、買ってからとりあえず入れてみたソフトウェアをさらしてみます。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Twidroid　人気の高いTwitterクライアントです。なぜかマーケットでは『通信』にカテゴライズされてます。&lt;/li&gt;&lt;li&gt;QRコードスキャナー　書籍のバーコードなんかを読み取って、Amazonの評価を見るのに便利&lt;/li&gt;&lt;li&gt;クーポンマップ　GoogleMap上に、クーポン情報のあるお店を表示してくれます。GPSと組み合わせると幸せになれます。&lt;/li&gt;&lt;li&gt;PicSay　フォトレタッチ（？）アプリケーション。プリクラみたいなことして遊べます。&lt;/li&gt;&lt;li&gt;路線ドロイド　そのものズバリ、路線検索用のアプリケーション。仕事でいろんなところを飛び回っているので、便利に使わせてもらってます。&lt;/li&gt;&lt;li&gt;Trap!　暇つぶし要員として。しかし、このゲームははまる。&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;と、なんだかんだ言っても、良い機種であることには変わりないので、ぜひとも一回触って見てください。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-5170658242989209749?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/5170658242989209749/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=5170658242989209749' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5170658242989209749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5170658242989209749'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/07/ht-03a.html' title='HT-03Aを買いました'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-2096451283342292021</id><published>2009-07-14T11:56:00.000+09:00</published><updated>2009-07-14T11:59:50.772+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Map で現在位置の表示</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;いつの間にやらGoogle Mapがバージョンアップしていたようで。&lt;br/&gt;Google mapのストリートビューの『黄色い人(正式名称不明)』の上辺りに『現在地を表示』というボタンが設置されています。&lt;br/&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/9Ybz-B5X3JbIDo-WfTuS_w?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/Slvyj2uRBiI/AAAAAAAABl8/SjDFqF2MZFE/s400/googlemap.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;上の画像の、赤丸の辺りです。&lt;br/&gt;&lt;br/&gt;一部では、ChromeとFirefoxでしか表示できないとありましたが、Gearsさえ入っていれば、IEでも表示できるっぽいです。&lt;br/&gt;しかしながら、何の差かわかりませんが、IEで開くとChromeやFirefoxで開いたときより、50mくらいはなれた場所が現在地として表示されてしまいます。&lt;br/&gt;&lt;br/&gt;HTML5のジオロケーションに対応したサービスっぽいので、『もっとやれ！』な感想なのですが、正直現在地がこんな簡単に取得できてしまうことに、若干の不安も覚えるわけで。&lt;br/&gt;&lt;br/&gt;技術に比例して、人も進歩していかなければならないってことですかね。&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-2096451283342292021?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/2096451283342292021/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=2096451283342292021' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2096451283342292021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2096451283342292021'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/07/google-map.html' title='Google Map で現在位置の表示'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-wXhttfyssE/Slvyj2uRBiI/AAAAAAAABl8/SjDFqF2MZFE/s72-c/googlemap.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-878667960268995532</id><published>2009-07-09T16:20:00.000+09:00</published><updated>2009-07-09T16:24:06.276+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Google製のリモートデスクトップサーバー　Neatx</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;ここ最近のGoogleは非常に精力的にいろんなものをリリースしているわけですが、&lt;br/&gt;昨日のGoogle Chrome OSに続いて、リモートデスクトップサーバーを発表しました。&lt;br/&gt;&lt;br/&gt;Source Forge.JPの記事&lt;br/&gt;&lt;a href='http://sourceforge.jp/magazine/09/07/09/046229' target='_blank'&gt;米Google、オープンソースのリモートデスクトップサーバー「Neatx」を発表 - SourceForge.JP Magazine:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;本家 Google Code&lt;br/&gt;&lt;a href='http://code.google.com/p/neatx/' target='_blank'&gt;neatx - Google Code:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;ものとしては、FreeNXと同じようにリモートデスクトップサーバーとして機能するようですが、&lt;br/&gt;メンテナンスや柔軟性を最初から考慮して作成されているようです。&lt;br/&gt;&lt;br/&gt;基本的に、対Windowsの場合はリモートデスクトップ、対その他の場合はvncを使用していたので、&lt;br/&gt;現時点で不足は無いわけですが、せっかくのGoogle先生の作品を使ってみようと思います。&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-878667960268995532?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/878667960268995532/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=878667960268995532' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/878667960268995532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/878667960268995532'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/07/googleneatx.html' title='Google製のリモートデスクトップサーバー　Neatx'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-5864745587975939501</id><published>2009-07-08T14:41:00.000+09:00</published><updated>2009-07-08T14:44:33.243+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB'/><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Chrome OS</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;いつの間にやら、GmailやGoogle カレンダーなどからBataが外れ、正式なサービスとなったGoogleから、&lt;br/&gt;さらに衝撃的なニュースが。&lt;br/&gt;&lt;br/&gt;本家&lt;br/&gt;&lt;a href='http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html' target='_blank'&gt;Official Google Blog: Introducing the Google Chrome OS:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;抄訳&lt;br/&gt;&lt;a href='http://developer.cybozu.co.jp/akky/2009/07/google-os-fa68.html' target='_blank'&gt;秋元@サイボウズラボ・プログラマー・ブログ : Google OS(Google Chrome OS)がついにアナウンス:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;ローカルの機能を最小限のブラウザのみとした、WebOSをGoogleが提供するようです。&lt;br/&gt;しかもオープンソースで。&lt;br/&gt;&lt;br/&gt;ネットブックに対応としていますが、おそらくデスクトップでも使用できるのではないでしょうか。&lt;br/&gt;Gmailといい、Google Docといい、Google Chrome OSといい、本気でMS潰しにかかっているのでしょうか。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-5864745587975939501?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/5864745587975939501/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=5864745587975939501' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5864745587975939501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5864745587975939501'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/07/google-chrome-os.html' title='Google Chrome OS'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-9125806205837299022</id><published>2009-06-25T18:23:00.000+09:00</published><updated>2009-06-25T18:26:25.897+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Developer Day 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>android-scriptingをインストールする</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;android上でpythonやLuaを実行するための環境として、Android Scripting EnvironmentがGoogleCodeにて提供されているので、GDDフォンにインストールしてみようと思います。&lt;br/&gt;今回はWindows環境で試します。&lt;br/&gt;&lt;br/&gt;まずは、Android　SDKをダウンロードします。&lt;br/&gt;&lt;blockquote&gt;&lt;a href='http://developer.android.com/sdk/1.5_r2/index.html' target='_blank'&gt;Android 1.5 SDK, Release 2 | Android Developers:&lt;/a&gt;&lt;br/&gt;&lt;/blockquote&gt;上記から、『android-sdk-windows-1.5_r2.zip』をダウンロードします。&lt;br/&gt;&lt;br/&gt;ダウンロードが完了したら、解凍をしておきます。&lt;br/&gt;出来ればここで、&lt;br/&gt;&lt;blockquote&gt;解凍したディレクトリ/android-sdk-windows-1.5_r2/tools&lt;br/&gt;&lt;/blockquote&gt;にパスを通しておくと、後々楽です。&lt;br/&gt;&lt;br/&gt;ここで、GDDフォンをUSB接続し、&lt;br/&gt;&lt;blockquote&gt;解凍したディレクトリ/android-sdk-windows-1.5_r2/usb_driver/x86&lt;br/&gt;&lt;/blockquote&gt;からデバイスドライバをインストールしておきます。&lt;br/&gt;&lt;br/&gt;前作業はとりあえずここまで。&lt;br/&gt;いよいよAndroid Scripting Environmentのインストールを行います。&lt;br/&gt;&lt;br/&gt;・まず、ダウンロード&lt;br/&gt;&lt;a href='http://code.google.com/p/android-scripting/downloads/list' target='_blank'&gt;Downloads - android-scripting - Google Code:&lt;/a&gt;&lt;br/&gt;から、AndroidScriptingEnvironment-0.8-alpha.apkを取得しておきます。&lt;br/&gt;&lt;br/&gt;・続いてインストール&lt;br/&gt;コマンドプロンプトから下記のコマンドを発行します。&lt;br/&gt;&lt;blockquote&gt;adb install AndroidScriptingEnvironment-0.8-alpha.apk&lt;br/&gt;&lt;/blockquote&gt;SDKのtoolsにパスが通っていて、なおかつGDDフォンが認識されていれば、&lt;br/&gt;&lt;blockquote&gt;pkg: /data/local/tmp/AndroidScriptingEnvironment-0.8-alpha.apk&lt;br/&gt;Success&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;と表示され、インストールが完了します。&lt;br/&gt;&lt;br/&gt;完了後に、GDDフォンを見ると確かにインストールされているのがわかります。&lt;br/&gt;&lt;br/&gt;動かしてみるのは、また後で。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-9125806205837299022?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/9125806205837299022/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=9125806205837299022' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/9125806205837299022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/9125806205837299022'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/06/android-scripting.html' title='android-scriptingをインストールする'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1495711479214362374</id><published>2009-06-25T11:22:00.000+09:00</published><updated>2009-06-25T11:25:44.379+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><title type='text'>Discover Shiretoko</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.discovershiretoko.org/ja/' target='_blank'&gt;Discover Shiretoko  世界自然遺産「知床」と Web ブラウザ「Firefox」の物語&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Firefox3.5のRC版がリリースされましたが、Firefox3.5の開発コードが『Shiretoko』ということで、&lt;br/&gt;北海道の知床財団とMozillaでコラボレーションキャンペーンをやっているそうです。&lt;br/&gt;(基本的には知床のキャンペーンっぽいですが・・・。)&lt;br/&gt;&lt;br/&gt;その一環(？)としてinterFORestにて、HTML5のcanvasを使用した『バナーの樹』というサービスを行っているようです。&lt;br/&gt;登録したブログのバナーからアクセスすると、そのアクセス数に応じて『バナーの樹』が成長していく、というものらしいです。&lt;br/&gt;どういったものかは、下記リンクを参照してください。&lt;br/&gt;&lt;br/&gt;&lt;a href='http://interforest.org/' target='_blank'&gt;interFORest&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;ちなみに、当ブログにも右最下段にバナーを設置してありますので、宜しければそちらから。&lt;br/&gt;&lt;br/&gt;さらにちなみに、当ブログの樹は&lt;br/&gt;&lt;a href='http://www.interforest.org/#zoom/480/460'&gt;http://www.interforest.org/#zoom/480/460&lt;/a&gt;&lt;br/&gt;辺りにあります。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1495711479214362374?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1495711479214362374/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1495711479214362374' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1495711479214362374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1495711479214362374'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/06/discover-shiretoko.html' title='Discover Shiretoko'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6987354138472961045</id><published>2009-06-24T11:48:00.000+09:00</published><updated>2009-06-24T11:51:37.299+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Developer Day 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Wave'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Google Wave Robotを作りたい</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;『何かを作りたいと思った』なんて言ってないで、作り始めればいいじゃない。&lt;br/&gt;ということで、Google Waveでrobotを作成するために参考になるページを。&lt;br/&gt;例によって、自分用タグ：あとで読む&lt;br/&gt;&lt;br/&gt;&lt;a href='http://d.hatena.ne.jp/a2c/20090624/1245774584' target='_blank'&gt;誰も知らない夜のwaveのrobot - a2c.get.diary:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href='http://gihyo.jp/dev/serial/01/google-wave/0002' target='_blank'&gt;最速！Google Wave API解説：第2回　ロボットAPI｜gihyo.jp … 技術評論社:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href='http://groups.google.com/group/google-wave-api-japn?hl=ja' target='_blank'&gt;Google Wave API Japn | Google グループ:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;それぞれ、サンプルコードも記載されているので、すぐにでも作成できます。&lt;br/&gt;現在のロボットAPIを使用する場合は、appspot.com上にデプロイされている必要があるそうです。&lt;br/&gt;しかし、Google App Engineも無制限開放されたことですし、Waveアカウントさえもっていれば、&lt;br/&gt;開発⇒検証ができるわけですね。&lt;br/&gt;&lt;br/&gt;それにしても、Google Developer Day ２００９に参加しただけで、こんなにも興味をそそられる環境やガジェットを提供してくれるグーグルも凄いですね・・・。&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6987354138472961045?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6987354138472961045/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6987354138472961045' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6987354138472961045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6987354138472961045'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/06/google-wave-robot.html' title='Google Wave Robotを作りたい'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1113802088281789995</id><published>2009-06-23T17:15:00.002+09:00</published><updated>2009-06-24T11:27:47.202+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Developer Day 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Wave'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Waveとは何か？的なサイト</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;自分用タグ：あとで読む&lt;br /&gt;&lt;br /&gt;Google Waveアカウントを貰ったは良いが、自分自身よくわかってないので、&lt;br /&gt;これから勉強する。&lt;br /&gt;&lt;br /&gt;本家　&lt;br /&gt;&lt;a target='_blank' href='http://wave.google.com/'&gt;Google Wave Preview:&lt;/a&gt;&lt;br /&gt;Learnだけは読んでおこう&lt;br /&gt;&lt;br /&gt;lifehacker　&lt;br /&gt;&lt;a target='_blank' href='http://www.lifehacker.jp/2009/06/google_wave.html'&gt;Google Waveに関する質問にすべてお答えします&lt;/a&gt;&lt;br /&gt;QA形式でわかりやすい&lt;br /&gt;&lt;br /&gt;@IT&lt;br /&gt;&lt;a target='_blank' href='http://www.atmarkit.co.jp/news/200905/29/wave.html'&gt;【詳報】Google Waveとは何なのか？&lt;/a&gt;&lt;br /&gt;Google I/Oのときの記事ですね。&lt;br /&gt;&lt;br /&gt;IT戦記&lt;br /&gt;&lt;a target='_blank' href='http://d.hatena.ne.jp/amachang/20090601/1243849672'&gt;Google Wave 私的まとめ&lt;/a&gt;&lt;br /&gt;amachangによるGoogleWaveについてのまとめ&lt;br /&gt;&lt;br /&gt;Engadget 日本版&lt;a target='_blank' href='http://japanese.engadget.com/2009/05/29/google-wave/'&gt;&lt;br /&gt;動画：Google Wave発表、リアルタイム・コラボレーションの基盤へ&lt;/a&gt;&lt;br /&gt;Google Developer Day 2009でもやっていた、Google Waveのデモ動画&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;追記：&lt;br /&gt;&lt;br /&gt;Long Tail World&lt;br /&gt;&lt;a href="http://longtailworld.blogspot.com/2009/05/wavegoogle-wave-basics.html"&gt;グーグルWaveの特長：Google Wave Basics&lt;/a&gt;&lt;br /&gt;技術的な特長がわかりやすい&lt;br /&gt;&lt;br /&gt;＠IT&lt;br /&gt;&lt;a href="http://www.atmarkit.co.jp/fwcr/rensai2/google_int_07/01.html"&gt;Google Waveでニコ動っぽいサービスは作れますか？&lt;/a&gt;&lt;br /&gt;その発想は無かったわ。&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1113802088281789995?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1113802088281789995/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1113802088281789995' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1113802088281789995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1113802088281789995'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/06/google-wave_23.html' title='Google Waveとは何か？的なサイト'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-966797190693664931</id><published>2009-06-23T16:37:00.000+09:00</published><updated>2009-06-23T16:41:07.494+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Developer Day 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Wave'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Wave</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Google Developer Day 2009にてアナウンスされていた、Google Waveの開発者用アカウントがついに発行されました。&lt;br /&gt;本アカウントに加えて、多人数での操作を想定した、『ユーザ名_test』のアカウントも付いてました。&lt;br /&gt;&lt;br /&gt;発行されたアカウントのドメインは『ユーザ名@wavesandbox.com』&lt;br /&gt;Gmailアカウント容量がなんと25Gも割り振られていました。&lt;br /&gt;&lt;br /&gt;とりあえず、メールに記載されていたログインURLにアクセスして、パスワードを変更して、同僚に_Testアカウント渡して、ちょこちょこ弄ってみましたが、GDD2009で感じた&lt;br /&gt;&lt;big&gt;&lt;br /&gt;『漠然としすぎていて、どんなことをすればいいかわからない』&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;という思いを、再認識することになりました。&lt;br /&gt;プラットフォームとして巨大すぎるため、どんなものをのっけていいかわからないっす。&lt;br /&gt;&lt;br /&gt;一般公開は今年の後半らしいので、一般ユーザの方はそれまでご辛抱ください。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;弄ってみた結果↓&lt;br /&gt;&lt;br /&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/XbXOrk8nfUDMMrkh2JTbng?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/SkCEjrqII2I/AAAAAAAABYs/qnHw4nmwCNE/s400/GoogleWave.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;お前らはサルか！？ってくらい意味のないキャラクタがGoogle Wave上に流れました。&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-966797190693664931?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/966797190693664931/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=966797190693664931' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/966797190693664931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/966797190693664931'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/06/google-wave.html' title='Google Wave'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_-wXhttfyssE/SkCEjrqII2I/AAAAAAAABYs/qnHw4nmwCNE/s72-c/GoogleWave.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1412467340634466342</id><published>2009-06-17T10:24:00.000+09:00</published><updated>2009-06-17T10:28:07.999+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>Safariのシェア率について</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.computerworld.jp/topics/browser/150870.html?RSS' target='_blank'&gt;「1,100万ダウンロード達成」でも、Safariのシェアは低下&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Appleは、iTunesをインストールすると、余計なものまで自動アップデートをかけてくれる、&lt;br/&gt;『Apple Software Update』がありますからねぇ・・・。&lt;br/&gt;&lt;br/&gt;ダウンロード数≠ユーザー数な状態で、Safariほどその値がかけ離れた形になるものはないでしょう。&lt;br/&gt;&lt;br/&gt;Windows上でのiTunes(iPod)ユーザー + Safariのみのユーザ ≒ ダウンロード数&lt;br/&gt;上記の式がある程度『真』であれば、『Windows上でのiTunes(iPod)ユーザー数』はかなり大きなものだと思います。&lt;br/&gt;&lt;br/&gt;Windows上で、IEを除くその他のブラウザについては、一回は必ずブラウザ本体をダウンロードする必要があるわけですが、Safariについてはそれが無いため、ダウンロード数だけが一人で走っていってしまうような状況が出来上がってしまうんですね。&lt;br/&gt;&lt;br/&gt;一応、『Apple Software Update』ではインストールの可否をユーザにたずねているとはいえ、知識のない人(iTunesユーザの大半だと思いますが)は、そのままアップデートをかけてしまうのではないでしょうか？&lt;br/&gt;セキュリティの観点から言っても、ユーザの認知しないところで、認知していないソフトウェアが動くというのもどうなんですかね？&lt;br/&gt;&lt;br/&gt;自動アップデートは便利なので、大いに活用して頂きたいところではありますが、それがマーケティングの手段になってしまうのは、いかがなものかと考えます。&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1412467340634466342?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1412467340634466342/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1412467340634466342' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1412467340634466342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1412467340634466342'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/06/safari.html' title='Safariのシェア率について'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-4260456179769681110</id><published>2009-06-13T00:49:00.001+09:00</published><updated>2009-06-13T00:49:30.027+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Developer Day 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>AndroidのGUIデザインツール</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Google Developer Day 2009でGDDフォンを頂いたわけですが、&lt;br /&gt;まわりに自慢するのも飽きてきたので、そろそろ本来の使用用途である、開発を始めようかと思います。&lt;br /&gt;&lt;br /&gt;そんななか、その創作意欲を高めてくれるようなツールが！&lt;br /&gt;&lt;br /&gt;&lt;a href='http://code.google.com/p/droiddraw/' target='_blank'&gt;droiddraw - Google Code:&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;droiddrawという、Android用のGUIデザインを簡単に作成出来るツールです。&lt;br /&gt;今までのAndroidの開発だと、デザインをXMLで書いてロジックを書いてとなっていたわけですが、&lt;br /&gt;これがある程度楽になると思います。&lt;br /&gt;&lt;br /&gt;早速インストールを敢行したわけですが、Project Homeからダウンロード出来るバイナリは、若干古いらしく、自分のUbuntu9.04上では動作しなかったため、Downloadsから、最新のjarファイルを取得しました。&lt;br /&gt;&lt;br /&gt;wget http://droiddraw.googlecode.com/files/droiddrawr1b13.jar&lt;br /&gt;&lt;br /&gt;その後、そのまま実行&lt;br /&gt;&lt;br /&gt;java -jar droiddrawr1b13.jar&lt;br /&gt;&lt;br /&gt;実行すると、最新版を取得するか？と言うようなダイアログが表示されるのですが、そこで『yes』をクリックしてしまうと、アベンドしてしまうので、あえて『No』をクリックします。&lt;br /&gt;&lt;br /&gt;あとは、D&amp;amp;Dでデザインを作成していきます。&lt;br /&gt;&lt;br /&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.com/lh/photo/rxNBNXvAFLC4Wcsk4j18Cg?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SjJ39UjFozI/AAAAAAAABYE/SsEBk74GHjE/s400/Screenshot-DroidDraw.jpg'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.com/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;基本的には、デザインを作成→Generate→Eclipse上のAndroid開発環境へ　という流れになるんですかね。&lt;br /&gt;さーて、とりあえずイジってみますかね。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-4260456179769681110?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/4260456179769681110/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=4260456179769681110' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4260456179769681110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4260456179769681110'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/06/androidgui.html' title='AndroidのGUIデザインツール'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-wXhttfyssE/SjJ39UjFozI/AAAAAAAABYE/SsEBk74GHjE/s72-c/Screenshot-DroidDraw.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-171774911224748737</id><published>2009-06-09T22:52:00.001+09:00</published><updated>2009-06-09T22:52:34.105+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Developer Day 2009'/><title type='text'>Google Developer Day 2009 に行ってきた　２</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;内容については、後日youtubeなどで公開されると思いますので、&lt;br/&gt;私的な感想等をつらつらと。&lt;br/&gt;&lt;br/&gt;    A More Powerful Web&lt;br/&gt;            Made Mobile&lt;br/&gt;                        Made Social&lt;br/&gt;                                Made Easier&lt;br/&gt;                                &lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;font face='sans-serif'&gt;HTML5について&lt;/font&gt;&lt;/b&gt;&lt;br/&gt;HTML5にて実装されるCanvasタグや、Videoタグ等をデモンストレーションを交えながら紹介。&lt;br/&gt;個人的には、いわゆるスレッド処理的なWeb Workerに食指が向きました。&lt;br/&gt;App Chacheや、Databaseなんかと組み合わせれば、いわゆるローカルアプリを凌駕するアプリが作成可能になるんじゃないかと。&lt;br/&gt;とは言うものの、具体的に何が出来るのかはまだまだ勉強していかなければなりませんが・・・。&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Linux版Chromeについて&lt;/b&gt;&lt;br/&gt;Linux版Chromeはありがたく使わせていただいてます。&lt;br/&gt;まだまだバギーな上に、Todoが多いのでメインでは使用できないですが・・・。&lt;br/&gt;毎日のようにかかる更新が楽しみです。ガンバレ開発チーム！！！&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Androidについて&lt;/b&gt;&lt;br/&gt;アンドロイドマーケットの支払い方法については、ぜひともWEBマネーなどクレジットカード以外の決済方法が欲しいところです。&lt;br/&gt;自分、クレジットカード作っていないので・・・。&lt;br/&gt;あとは、日本の開発者が作成したアプリが充実することを祈ってます(自分も開発しろよ！)&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Google Waveについて&lt;/b&gt;&lt;br/&gt;すごいのはよく分かったけど、実際にこれを使用して何かを作れと言われてもアイディアが浮かばない貧相な発想力の自分なのでした。&lt;br/&gt;一番驚いたのは、何気なくブラウザ上に画像ファイルをD&amp;amp;Dして、アップロードしていたこと。&lt;br/&gt;あれはHTML5で標準搭載される機能なんですかね？&lt;br/&gt;&lt;br/&gt;&lt;b&gt;反省点&lt;/b&gt;&lt;br/&gt;キーノートが半分終了した時点(OpenSocial終了)で、Thinkpadのバッテリーが残りわずかとなってしまい、GoogleWave以降のメモが出来なかったこと。&lt;br/&gt;Thinkpadのバッテリーを過信し過ぎてました・・・。&lt;br/&gt;&lt;br/&gt;仕方ないので、ひたすらアドエスで写真撮ってきました。&lt;br/&gt;&lt;br/&gt;&lt;embed width='288' height='192' pluginspage='http://www.macromedia.com/go/getflashplayer' flashvars='host=picasaweb.google.com&amp;amp;hl=ja&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fdotred5.0%2Falbumid%2F5345320246924847201%3Falt%3Drss%26kind%3Dphoto%26hl%3Dja' src='http://picasaweb.google.com/s/c/bin/slideshow.swf' type='application/x-shockwave-flash'&gt; &lt;/embed&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-171774911224748737?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/171774911224748737/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=171774911224748737' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/171774911224748737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/171774911224748737'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/06/google-developer-day-2009_09.html' title='Google Developer Day 2009 に行ってきた　２'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-5032108858195270986</id><published>2009-06-09T15:14:00.000+09:00</published><updated>2009-06-09T15:17:34.594+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Developer Day 2009'/><title type='text'>Google Developer Day 2009 に行ってきました。</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;とりあえず、写真等を交えたエントリーは後回しとして、&lt;br/&gt;今回のテーマは&lt;br/&gt;&lt;br/&gt;&lt;big&gt;&lt;big&gt;&lt;big&gt;Powerful Web&lt;/big&gt;&lt;/big&gt;&lt;/big&gt;&lt;br/&gt;&lt;br/&gt;となっておりました。&lt;br/&gt;&lt;br/&gt;Android や、OpenSocialや、Google Waveなどなど、盛りだくさんの基調講演でした。&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-5032108858195270986?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/5032108858195270986/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=5032108858195270986' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5032108858195270986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5032108858195270986'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/06/google-developer-day-2009.html' title='Google Developer Day 2009 に行ってきました。'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-2979498269048458899</id><published>2009-05-18T15:11:00.000+09:00</published><updated>2009-05-18T15:14:27.047+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Virtual PCにUbuntu 9.04 Serverをインストールする</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;VirtualPCにUbuntu 9.04 Server版をインストールするときのメモ&lt;br/&gt;&lt;br/&gt;デスクトップ版だとセーフグラフィックモードで起動しなければならなかったり面倒ですが、&lt;br/&gt;サーバー版だと、起動オプションの書き換えだけでＯＫです。&lt;br/&gt;&lt;br/&gt;インストールメニュー画面でF6キーを押して、起動オプション末尾の&lt;br/&gt;&lt;blockquote&gt;quiet --&lt;br/&gt;&lt;/blockquote&gt;を、消した後&lt;br/&gt;&lt;blockquote&gt;&lt;span style='border-collapse: separate; color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 19px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;' class='Apple-style-span'&gt;vga=791 noreplace-paravirt&lt;/span&gt;&lt;br/&gt;&lt;/blockquote&gt;を追記するだけ。&lt;br/&gt;&lt;br/&gt;ＧＵＩ関連でうだうだ設定しなくていいので、楽チンです。&lt;br/&gt;&lt;br/&gt;とりあえず、当分この環境で社内でDjango開発が出来そうです。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-2979498269048458899?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/2979498269048458899/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=2979498269048458899' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2979498269048458899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2979498269048458899'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/05/virtual-pcubuntu-904-server.html' title='Virtual PCにUbuntu 9.04 Serverをインストールする'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1955234856929558398</id><published>2009-05-12T21:38:00.001+09:00</published><updated>2009-05-12T21:38:18.219+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu One</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='https://ubuntuone.com/'&gt;Ubuntu One : Home&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Canonicalが提供するDropboxのようなものなのかな？&lt;br/&gt;既に&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;You are currently on the waiting list for Ubuntu One. As soon as we can, we'll be sending you an invitation code via email.&lt;br/&gt;&lt;/blockquote&gt;と、定員オーバーのようで、順番待ちの状態となっております。&lt;br/&gt;&lt;br/&gt;プランはやはりDropBoxと同じようで&lt;br/&gt;&lt;ul&gt;&lt;li&gt;2GB上限の無料プラン&lt;/li&gt;&lt;li&gt;10GB上限の月額$10プラン&lt;/li&gt;&lt;/ul&gt;の二種類となっております。&lt;br/&gt;&lt;br/&gt;debパッケージしか提供していない所をみると、Ubuntu Oneの名前のとおり、Ubuntu系でしか動作しないようです。&lt;br/&gt;&lt;br/&gt;自分も順番待ち状態なので、インストールしてみたら、追ってエントリ書きます。&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1955234856929558398?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1955234856929558398/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1955234856929558398' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1955234856929558398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1955234856929558398'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/05/ubuntu-one.html' title='Ubuntu One'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-465090802021017971</id><published>2009-05-11T13:21:00.000+09:00</published><updated>2009-05-11T13:24:08.904+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a target='_blank' href='http://d.hatena.ne.jp/oorexx/20090507/1241703786'&gt;今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む)&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;思い出せる限り時系列で&lt;br/&gt;(Hello Worldで飽きたものを含む)&lt;br/&gt;&lt;br/&gt;-----高校時代--------&lt;br/&gt;&lt;ul&gt;&lt;li&gt;C&lt;/li&gt;&lt;li&gt;C++&lt;/li&gt;&lt;li&gt;HTML&lt;/li&gt;&lt;/ul&gt;-----専門学校時代------&lt;br/&gt;&lt;ul&gt;&lt;li&gt;COBOL&lt;/li&gt;&lt;li&gt;Java&lt;/li&gt;&lt;li&gt;Visual Basic 6.0&lt;/li&gt;&lt;li&gt;VBA&lt;/li&gt;&lt;li&gt;SQL&lt;/li&gt;&lt;li&gt;Visual Basic 2002&lt;/li&gt;&lt;li&gt;C#&lt;/li&gt;&lt;li&gt;Perl&lt;/li&gt;&lt;li&gt;sed&lt;/li&gt;&lt;li&gt;Javascript&lt;/li&gt;&lt;li&gt;Delphi&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.onionsoft.net/hsp/' target='_blank'&gt;HSP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://kujirahand.com/himawari/' target='_blank'&gt;ひまわり&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;------社会人-----------&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Ruby&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.kmonos.net/alang/d/' target='_blank'&gt;D&lt;/a&gt;&lt;/li&gt;&lt;li&gt;DOS バッチファイル&lt;/li&gt;&lt;li&gt;VBScript&lt;/li&gt;&lt;li&gt;VB.Net 2003&lt;/li&gt;&lt;li&gt;PHP&lt;/li&gt;&lt;li&gt;&lt;a href='http://processing.jp/' target='_blank'&gt;processing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;zsh&lt;/li&gt;&lt;li&gt;bash&lt;/li&gt;&lt;li&gt;VB 2005&lt;/li&gt;&lt;li&gt;PL/SQL&lt;/li&gt;&lt;li&gt;VB 2008&lt;/li&gt;&lt;li&gt;python&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.openlaszlo.jp/' target='_blank'&gt;openLaszlo&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;こうやって見てみると、意外と触ったこと無い言語が多いなぁ。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-465090802021017971?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/465090802021017971/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=465090802021017971' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/465090802021017971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/465090802021017971'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/05/3.html' title='今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む)'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-278638642574076860</id><published>2009-05-07T13:15:00.001+09:00</published><updated>2009-05-07T13:26:44.720+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>From Google</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;ガジェットの追加によって、いろんな情報を1ページで見られるのが便利なため、&lt;br /&gt;iGoogleを愛用しているわけですが、数日前からGoogle謹製のGMailガジェットに&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;The Gmail gadget does not support the "Always use https" setting that you chose in full Gmail. If you would like to use https, please open full Gmail. Learn more&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;という表示がされ、受信トレイの一覧が取得できなくなってました。&lt;br /&gt;ぱっと見ると、『常にhttpsで接続』の設定をしているため、受信メールの一覧が取得できない云々と書かれています。&lt;br /&gt;&lt;br /&gt;ちょっと英語に不自由な私なので、ちゃんとエキサイト様に翻訳して頂きました。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Gmail機械装置は「いつもhttpsを使用してください」というあなたが完全なGmailで選んだ設定を支持しません。 httpsを使用したいと思うなら、完全なGmailを開いてください。 もう少し学んでください。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;まぁ、言わんとしていることは合っていたってことで安心したんですが、&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;big&gt;＞もう少し学んでください。&lt;/big&gt;&lt;br /&gt;(￣Д￣；；&lt;br /&gt;&lt;br /&gt;し、精進します・・・。&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;とりあえず、対策として、&lt;br /&gt;・GMailのホームから、設定⇒全般⇒ブラウザ接続を『https の使用を選択制にする』にチェックを入れる。&lt;br /&gt;・ブラウザのブックマークのアドレスを、http://からhttps://に変更。&lt;br /&gt;これでガジェットを使えて、ブックマークから開くときは今まで通りhttpsで接続するようになりました。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-278638642574076860?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/278638642574076860/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=278638642574076860' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/278638642574076860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/278638642574076860'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/05/from-google.html' title='From Google'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1990093678666467350</id><published>2009-05-05T00:00:00.001+09:00</published><updated>2009-05-05T00:00:56.201+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><title type='text'>EclipseでDjango開発</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;いままで、Djangoを使った開発は、vimとターミナルでやっていたわけですが、&lt;br/&gt;社内にPythonを広めようとおもい、Eclipseで開発出来るように、&lt;br/&gt;環境を構築してみました。&lt;br/&gt;&lt;br/&gt;参考にしたサイト：&lt;br/&gt;&lt;a href='http://d.hatena.ne.jp/myamyugon/20080629/1214752982'&gt;Eclipseでdjango開発する方法 - はてな？のぐうたら玉子丼&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;ほぼ、ここに掲載されているとおりで構築完了です。&lt;br/&gt;&lt;br/&gt;manage.pyのデバック実行がとても便利！&lt;br/&gt;&lt;br/&gt;&lt;blockquote/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1990093678666467350?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1990093678666467350/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1990093678666467350' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1990093678666467350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1990093678666467350'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/05/eclipsedjango.html' title='EclipseでDjango開発'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7496077288285548165</id><published>2009-05-02T22:04:00.001+09:00</published><updated>2009-05-02T22:04:13.821+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>始めてのタブブラウザ</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;皆さんが、シンプルブラウザからタブブラウザに乗り換えたのは、いつでしたか？&lt;br /&gt;そのタブブラウザは何でしたか？&lt;br /&gt;&lt;br /&gt;最近、IE7になってようやくタブブラウザを使用したと言う人もいるでしょう。&lt;br /&gt;まだ、IE6が現役で使用されているという人もいるでしょう。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;自分の場合は、約七年前。&lt;br /&gt;専門学校の時でした。&lt;br /&gt;&lt;br /&gt;それまではIE6を標準のまま使っていたんですが、&lt;br /&gt;友人のすすめでタブブラウザに乗り換えました。&lt;br /&gt;&lt;br /&gt;しかし、その友人がコアな人間で、素人同然の自分に薦めてきたブラウザと言うのが、&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://esdsv.e-link.jp/webdata/catalog/p/prg/prge003.htm' target='_blank'&gt;インターネットサムライ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;『なにそれ？』と思ったあなた。その反応が正常だと思います。&lt;br /&gt;今はライブドア(当時はオンザエッヂだったと思います)に買収されてしまった、&lt;br /&gt;プロジーという会社が販売していたタブブラウザです。&lt;br /&gt;&lt;br /&gt;たしか、当時はスレイプニルも出ておらず、Donutの亜種が出始めたころだったかな。&lt;br /&gt;&lt;br /&gt;機能として見てみれば、今のスレイプニルの劣化版としてしか見れませんが、&lt;br /&gt;そんななか、インターネット侍は衝撃的だった覚えがあります。&lt;br /&gt;&lt;br /&gt;自分にとって始めてのタブインターフェイスを搭載し、同時に複数のwebページを取得する。&lt;br /&gt;その利便性に感動したものです。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;と、なんでこんな記事を書いたかと言いますと、&lt;br /&gt;お蔵入りしていたWindows2000のCDを探していた際に、&lt;br /&gt;インターネット侍のCDを発見してしまったからなわけで。&lt;br /&gt;&lt;br /&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/-avJlLKPVrT1jNqo_NPZYQ?feat=embedwebsite'&gt;&lt;img src='http://lh6.ggpht.com/_-wXhttfyssE/SfxECVb4HsI/AAAAAAAABQ0/z85P9oWnv20/s400/090502-214032.jpg'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;あー、なっつかしいなぁ・・・。&lt;br /&gt;Vistaにインストール出来ないかなぁ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7496077288285548165?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7496077288285548165/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7496077288285548165' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7496077288285548165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7496077288285548165'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/05/blog-post.html' title='始めてのタブブラウザ'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_-wXhttfyssE/SfxECVb4HsI/AAAAAAAABQ0/z85P9oWnv20/s72-c/090502-214032.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3689439696987814199</id><published>2009-04-27T17:54:00.002+09:00</published><updated>2009-04-28T09:54:37.653+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google のトップページが・・・。</title><content type='html'>&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.jp/lh/photo/QG_8tE60YrPdM_Lm0oJkvQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_-wXhttfyssE/SfVzwwu0lUI/AAAAAAAABQU/XVJTDKnS2Wo/s400/google.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;送信者 &lt;a href="http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite"&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;文字化けしたかと思った・・・。&lt;br /&gt;&lt;br /&gt;モールス信号？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2009/04/28 追記&lt;br /&gt;昨日はモールス信号の考案者モールスの誕生日だったんですね。&lt;br /&gt;&lt;a href="http://www.ideaxidea.com/archives/2009/04/morse_tweet.html"&gt;モールス信号でつぶやきたいなら・・・『Morse Tweet』 - IDEA*IDEA ～ 百式管理人のライフハックブログ ～:&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3689439696987814199?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3689439696987814199/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3689439696987814199' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3689439696987814199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3689439696987814199'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/04/google.html' title='Google のトップページが・・・。'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_-wXhttfyssE/SfVzwwu0lUI/AAAAAAAABQU/XVJTDKnS2Wo/s72-c/google.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3386648288870375443</id><published>2009-04-22T15:54:00.000+09:00</published><updated>2009-04-22T15:57:04.589+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows7'/><title type='text'>Windows8 開発準備開始</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.gizmodo.jp/2009/04/windows_8_1.html'&gt;マイクロソフト、Windows 8の開発の準備を開始 : Gizmodo Japan（ギズモード・ジャパン）, ガジェット情報満載ブログ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;次のWindowsでは&lt;strong&gt;ファイルシステム&lt;/strong&gt;の大幅な変更改善が焦点になるとのこと。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Vistaで見送った、例のファイルシステムですね。わかります。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;リリース時期は2011年。&lt;/blockquote&gt;&lt;br /&gt;Windows 7 が2009年9月予定でしたっけ？&lt;br /&gt;こうなったらWindows7も飛ばすしかないじゃないですか。&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=78d207ea-948d-8db6-86e3-33ff57402100' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3386648288870375443?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3386648288870375443/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3386648288870375443' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3386648288870375443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3386648288870375443'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/04/windows8.html' title='Windows8 開発準備開始'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-7175339803342678936</id><published>2009-04-17T11:03:00.000+09:00</published><updated>2009-04-17T11:05:55.560+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>北海道を落とすとどう跳ねるか</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;ちょっと出遅れた感じは否めないけど・・・。&lt;br/&gt;&lt;br/&gt;&lt;a href='http://d.hatena.ne.jp/nitoyon/20090415/hokkaido' target='_blank'&gt;北海道を落とすとどう跳ねるのか？ - てっく煮ブログ:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;岩手と埼玉、東京が超地味・・・。&lt;br/&gt;神奈川は安定性が抜群！&lt;br/&gt;佐渡島ぁぁぁぁぁぁぁ！&lt;br/&gt;&lt;br/&gt;富山まで見た。&lt;br/&gt;あとは時間のあるときに、沖縄まで見てみよう。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=8b6aeb8c-cef6-8c62-b4d6-2ed089330f2a' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-7175339803342678936?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/7175339803342678936/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=7175339803342678936' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7175339803342678936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/7175339803342678936'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/04/blog-post.html' title='北海道を落とすとどう跳ねるか'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3118189181370636553</id><published>2009-04-14T22:02:00.001+09:00</published><updated>2009-04-14T22:02:59.588+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu で Chromium　その２</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;今日のアップデートでUbuntu PPAのChromium-Browserが日本語表示されるようになっていました。&lt;br/&gt;&lt;br/&gt;大きな前進ですよ！&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/TvrmPys8aAToH1fyM0Q0Gg?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SeSH4ZGiCqI/AAAAAAAABPM/_M_DHH5Li1U/s400/Chromium.jpg'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;・・・もしかして、もっと前から表示されてたのか？&lt;br/&gt;&lt;br/&gt;まだ、実行速度も高速とは言い難い状況ではありますが、やはり見守っている身としては、着実に進歩してくれているんだなぁ・・・、と感慨深いものがありますね。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=23c7bb6d-510d-8116-a15a-5feb3d43ca8e' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3118189181370636553?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3118189181370636553/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3118189181370636553' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3118189181370636553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3118189181370636553'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/04/ubuntu-chromium_14.html' title='Ubuntu で Chromium　その２'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-wXhttfyssE/SeSH4ZGiCqI/AAAAAAAABPM/_M_DHH5Li1U/s72-c/Chromium.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-9139068526851329724</id><published>2009-04-14T18:23:00.000+09:00</published><updated>2009-04-14T18:25:45.024+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Developer Day 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Developer Day 2009</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;去年も申し込んだGoogle Developer Day ですが、懲りずに今年も登録してみました。&lt;br/&gt;&lt;br/&gt;しかし、登録画面のところで、&lt;br/&gt;&lt;br/&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SeRVAaOCF9I/AAAAAAAABOw/fLsw4s9vNQM/%5BUNSET%5D.png?imgmax=800' style='max-width: 800px;'/&gt;&lt;br/&gt;&lt;br/&gt;過去10年間に書いたコードの行数を聞かれるとは思いませんでした。&lt;br/&gt;この基準ってどうなんだろう・・・。&lt;br/&gt;&lt;br/&gt;10年で1000行ってことは、1年で100行、1日で0.2739726027397260273972602739726行・・・。&lt;br/&gt;&lt;br/&gt;ふと思い立って、今日仕事で書いたコードの行数を調べてみたら、139行(空行含まず)でした・・・。&lt;br/&gt;これなら、一週間も仕事すれば参加資格が得られるな。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=66c9dc93-c9cc-86c2-91d3-777510936f87' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-9139068526851329724?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/9139068526851329724/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=9139068526851329724' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/9139068526851329724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/9139068526851329724'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/04/google-developer-day-2009.html' title='Google Developer Day 2009'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-wXhttfyssE/SeRVAaOCF9I/AAAAAAAABOw/fLsw4s9vNQM/s72-c/%5BUNSET%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6414450373722685132</id><published>2009-04-06T21:00:00.001+09:00</published><updated>2009-04-06T21:00:47.530+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>vimperator2.0でハマった</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;先日、vimperatorのアップデートが来たので、何も考えず更新したら・・・。&lt;br/&gt;&lt;br/&gt;ブックマークバーが消えた！&lt;br/&gt;スクロールバーも消えた！！&lt;br/&gt;&lt;br/&gt;いやー、メジャーバージョンアップとは言え、自動更新のプログラムでいきなり仕様が変更されるとビックリしますね。&lt;br/&gt;&lt;br/&gt;ということで、下記サイトを参考に、set guioptionsを書き直します。&lt;br/&gt;&lt;a target='_blank' href='http://d.hatena.ne.jp/masa138/20090304/1236178743'&gt;Vimperator2.0を入れてみた - orz blog&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;今までの.vimperatorrc&lt;br/&gt;&lt;blockquote&gt;#ブックマークだけ表示&lt;br/&gt;:set guioptions=b&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;書き直した.vimperatorrc&lt;br/&gt;&lt;blockquote&gt;#ブックマークとスクロールバーを表示&lt;br/&gt;#ブックマークバーがb→Bに変更&lt;br/&gt;#スクロールバーを表示するためにrを指定&lt;br/&gt;:set guioptions=Br&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;取り合えず自分の所では、その二点だけでしたので、サクッと書き換えてFirefoxを再起動。&lt;br/&gt;&lt;br/&gt;これでいつも通りのvimperatorに戻りました。&lt;br/&gt;イヤー、やっぱり自分に最適化された環境って快適だわ。&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=1d331921-41c7-86fc-a9b8-0fb885572c56' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6414450373722685132?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6414450373722685132/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6414450373722685132' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6414450373722685132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6414450373722685132'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/04/vimperator20.html' title='vimperator2.0でハマった'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3626320874544353584</id><published>2009-04-01T22:56:00.001+09:00</published><updated>2009-04-01T22:56:42.039+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu で Chromium</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Wineで動かしたり、CrossOver ChromiumなどUbuntu上でGoogle Chromeを動かそうと思うと色々面倒なことをしなければなりませんでした。&lt;br /&gt;&lt;br /&gt;が！ようやく出てきましたね。&lt;br /&gt;Chromeのオープンソース版のChromiumがPPAのリポジトリに加わっているようです。&lt;br /&gt;&lt;br /&gt;詳しくは&lt;br /&gt;&lt;a href='http://blog.livedoor.jp/vine_user/archives/51345745.html' target='_blank'&gt;独学Linux:Chromium on Linux！ - livedoor Blog（ブログ）&lt;/a&gt;&lt;br /&gt;を参照してもらうとして、実際試した感想を。&lt;br /&gt;&lt;br /&gt;まず、前提としてまだalpha版ということで、Windows版のChromeにはまったくと言っていいほど追いついてません。&lt;br /&gt;&lt;br /&gt;取り合えずyahoo!を表示してみました。&lt;br /&gt;&lt;table style='width:auto;'&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/w-SSlQPqUQItQcZp_8KZkw?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SdNxHuSWZaI/AAAAAAAABOk/uIYpjtq63VE/s400/Screenshot-Yahoo%21%20JAPAN%20-%20Chromium.jpg'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family:arial,sans-serif; font-size:11px; text-align:right'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog02?feat=embedwebsite'&gt;blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;日本語が完全に表示できていない上に、設定を変更することも出来ません。&lt;br /&gt;しかし、ほぼ毎日と言っていい頻度のアップデートが行われていますので、日々の進捗が気になるプロジェクトではありますね。&lt;br /&gt;&lt;br /&gt;Windows版のChromeにおいつけ！追い越せ！&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=38ca3509-3ae4-83bd-807f-9c94c8af5a3d' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3626320874544353584?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3626320874544353584/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3626320874544353584' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3626320874544353584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3626320874544353584'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/04/ubuntu-chromium.html' title='Ubuntu で Chromium'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_-wXhttfyssE/SdNxHuSWZaI/AAAAAAAABOk/uIYpjtq63VE/s72-c/Screenshot-Yahoo%21%20JAPAN%20-%20Chromium.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-8198864767246483388</id><published>2009-03-28T14:34:00.000+09:00</published><updated>2009-03-28T14:36:34.831+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>スティーブ・ジョブズのスピーチ</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;iframe height='176' frameborder='0' width='312' scrolling='no' style='border: 1px solid rgb(204, 204, 204);' src='http://ext.nicovideo.jp/thumb/sm5062671'&gt;&amp;amp;lt;a href="http://www.nicovideo.jp/watch/sm5062671"&amp;amp;gt;【ニコニコ動画】スティーブ・ジョブスの伝説の卒業式スピーチ（字幕付き）&amp;amp;lt;/a&amp;amp;gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=94f8315e-b00d-87de-b75b-ebced33d22c7' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-8198864767246483388?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/8198864767246483388/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=8198864767246483388' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8198864767246483388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8198864767246483388'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/03/blog-post.html' title='スティーブ・ジョブズのスピーチ'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-4124789818924033289</id><published>2009-03-20T01:07:00.001+09:00</published><updated>2009-03-20T01:07:26.516+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>pyjamasを動かしてみる</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a target='_blank' href='http://code.google.com/p/pyjamas/'&gt;pyjamas - Google Code&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;GWTのPython版とも言うべきpyjamasを取り合えず動かしてみました。&lt;br/&gt;GWTでは、言語がJAVAだったので自分にはとっつきにくかったわけですが、&lt;br/&gt;pyjamasは言語がPythonということで、結構すんなり読めます。&lt;br/&gt;&lt;br/&gt;取り合えず、GoogleCodeからSVNで取得後、examplesディレクトリ内の&lt;br/&gt;buildall.shを実行してみたんですが、なぜかエラー・・・。&lt;br/&gt;&lt;br/&gt;中身を見てみると、各ディレクトリのbuild.shを実行している模様&lt;br/&gt;取り合えず、一番簡単そうなhelloworldディレクトリのbuild.shを見てみると&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;python2.4 ../../builder/build.py hellow.py&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;となっていたので、&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;python ../../builder/build.py hellow.py&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;に変更し、再度トライ&lt;br/&gt;&lt;blockquote&gt;Building 'Hello.py' to output directory 'output'&lt;br/&gt;Copying: public directory&lt;br/&gt;Copying: pygwt.js&lt;br/&gt;Copying: Images and History&lt;br/&gt;Creating: Hello.nocache.html&lt;br/&gt;Creating: IE6.cache.html&lt;br/&gt;Importing pyjslib&lt;br/&gt;Importing Hello&lt;br/&gt;Importing Window&lt;br/&gt;Importing Location&lt;br/&gt;Importing ui&lt;br/&gt;Importing DOM&lt;br/&gt;Importing sets&lt;br/&gt;Importing DeferredCommand&lt;br/&gt;Importing Timer&lt;br/&gt;Importing pygwt&lt;br/&gt;Importing History&lt;br/&gt;Creating: Opera.cache.html&lt;br/&gt;Creating: OldMoz.cache.html&lt;br/&gt;Creating: Safari.cache.html&lt;br/&gt;Creating: Mozilla.cache.html&lt;br/&gt;Done. You can run your app by opening 'output/Hello.html' in a browser&lt;br/&gt;&lt;/blockquote&gt;実行後に、メッセージに従い、output/Hello.htmlを開くと、&lt;br/&gt;『Click me』とかかれたボタンがあるので、クリックすると、&lt;br/&gt;Hello, AJAX!&lt;br/&gt;と、HelloWorldというディレクトリ名を完全に無視したメッセージが表示されました。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;ふむ、まずは動かしてみるという目的は達したので、今日はここまで。&lt;br/&gt;GWTはJAVAに馴染みがなかったため挫折しましたが、今回のpyjamasはいけそうです。&lt;br/&gt;これでtemplateとか使えたらおもしろそうなので、色々試してみます。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=30f86ac4-edd3-4df9-844e-4c7b39947493' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-4124789818924033289?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/4124789818924033289/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=4124789818924033289' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4124789818924033289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4124789818924033289'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/03/pyjamas.html' title='pyjamasを動かしてみる'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-2674985134198178431</id><published>2009-03-04T17:09:00.000+09:00</published><updated>2009-03-04T17:11:22.746+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>Windowsバッチファイルで日時を扱う</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;自動的にファイルのバックアップを行う場合など、日時でディレクトリを作成したい場合に便利。&lt;br/&gt;&lt;br/&gt;YYYYMMDD形式で、日付を取得する。&lt;br/&gt;&lt;blockquote&gt;%date:~0,4%%date:~5,2%%date:~8,2%&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;HH24MMSS形式で、時分秒を取得する。&lt;br/&gt;&lt;blockquote&gt;set time2=%time: =0%&lt;br/&gt;%time2:~0,2%%time2:~3,2%%time2:~6,2%&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=fa0b6c92-edb7-4c96-822d-eb00b342f461' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-2674985134198178431?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/2674985134198178431/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=2674985134198178431' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2674985134198178431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2674985134198178431'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/03/windows.html' title='Windowsバッチファイルで日時を扱う'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6416436824090272099</id><published>2009-02-27T20:30:00.000+09:00</published><updated>2009-02-27T20:32:52.376+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>SQLServerのupdate～from</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;あるテーブル(TABLE_A)のデータで、別のテーブル(TABLE_B)を更新したいときに便利。&lt;br/&gt;&lt;br/&gt;UPDATE TABLE_B SET                &lt;br/&gt;    HOGE3 = A.FOOBAR              &lt;br/&gt;FROM TABLE_B B                  &lt;br/&gt;    INNER JOIN TABLE_A A            &lt;br/&gt;        ON   A.FOO = B.HOGE1 &lt;br/&gt;        AND A.BAR = B.HOGE2 &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=c8ac25a0-2a87-4516-9e43-6c792607dfc3' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6416436824090272099?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6416436824090272099/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6416436824090272099' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6416436824090272099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6416436824090272099'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/02/sqlserverupdatefrom.html' title='SQLServerのupdate～from'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-761628134327824277</id><published>2009-02-14T02:07:00.001+09:00</published><updated>2009-02-14T02:07:37.200+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>VirtualBox でブリッジ接続</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://superlinux.blog50.fc2.com/blog-entry-19.html'&gt;ぷれいんぐLinux　 VirtualBox on Ubuntu でブリッジ接続のまとめ　（簡単設定）&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;VirtualBoxでCentOSを導入したので、上記サイトを参考にブリッジ接続に挑戦してみます。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=8b86e9d8-818c-48d8-a601-a79725b97372' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-761628134327824277?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/761628134327824277/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=761628134327824277' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/761628134327824277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/761628134327824277'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/02/virtualbox.html' title='VirtualBox でブリッジ接続'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-2228461532681277516</id><published>2009-01-27T00:09:00.002+09:00</published><updated>2009-01-27T00:36:12.759+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>Ubuntu に Vim7.2をインストールする方法</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;outputzを設定するときにお世話になりました。&lt;br/&gt;&lt;br/&gt;備忘録としてメモ&lt;br/&gt;&lt;br/&gt;&lt;a href='http://d.hatena.ne.jp/ksmemo/20081123/p1' target='_blank'&gt;Outputz.vimを使うためにVim 7.2をインストールしてみた - ケーズメモ&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;追記：&lt;br /&gt;&lt;br /&gt;こっちも合わせて参考に&lt;br /&gt;&lt;a target="_blank" href="http://biodegradablegeek.com/2008/08/easily-installing-vim-72-edge-from-source/"&gt;Easily Installing Vim 7.2 From Source | Biodegradable Geek&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-2228461532681277516?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/2228461532681277516/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=2228461532681277516' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2228461532681277516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2228461532681277516'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/01/ubuntu-vim72.html' title='Ubuntu に Vim7.2をインストールする方法'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1502053411005911151</id><published>2009-01-12T22:36:00.001+09:00</published><updated>2009-01-12T22:36:27.053+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows7'/><title type='text'>Windows 7をインストール on VirtualBox</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Windows7のパブリックβが公開されましたね。&lt;br/&gt;&lt;br/&gt;思えば、Vistaの時もβを入手して、インストールしあまりの重さにバク切れしたものです。&lt;br/&gt;&lt;br/&gt;今回も懲りずに、インストールしてみようと思います。&lt;br/&gt;&lt;br/&gt;今回の環境は、Ubuntu8.10 に VirtualBoxを入れて、その上でWindows7をインストールします。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;1.取り合えずダウンロード&lt;br/&gt;なにはなくとも、DVDイメージを取得しないことには始まらないので、DVDイメージをゲットします。&lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.microsoft.com/windows/windows-7/beta-download.aspx' target='_blank'&gt;Download the Windows 7 Beta&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;上記のサイトから、DVDイメージとプロダクトキーを取得します。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;2.インストール&lt;br/&gt;VirtualBoxの設定は以下&lt;br/&gt;・メモリ　2G&lt;br/&gt;・HDD 20G&lt;br/&gt;・CD/DVDドライブ　1でゲットしたDVDイメージ&lt;br/&gt;&lt;br/&gt;上記の設定で、仮想PCをブートします。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/joMNe2L62lmJ3oTSRvmN_w?feat=embedwebsite'&gt;&lt;img src='http://lh6.ggpht.com/_-wXhttfyssE/SWs-uNo2crI/AAAAAAAAA3k/mMp-Oh-E6K0/s400/02.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;しばらく待つと、言語、通貨、キーボードの設定画面が表示されます。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/qN5whzHbJ-F0YesAN0nrHQ?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/SWs-uakuZjI/AAAAAAAAA30/aeTGGLoYG78/s400/04.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;今すぐインストールをクリックする&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/iOoyip-NQkgifo4autEwWw?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SWs-ubxMcOI/AAAAAAAAA38/ltjvo2RcDDY/s400/05.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;セットアップが始まります。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/iOoyip-NQkgifo4autEwWw?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SWs-ubxMcOI/AAAAAAAAA38/ltjvo2RcDDY/s400/05.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;ライセンスに同意するかを聞かれるので、当然『同意する』にチェックをいれて次へ&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/hUNhlIkOqzq2_n2ynEjlbA?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/SWs_F5XwJtI/AAAAAAAAA4M/GCcbGG5agKo/s400/07.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;インストール方法を聞かれます。新規インストールなので、カスタムを選択する。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/4bGVCT1_HHpcYu4ZDohicw?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SWs_GD1AMJI/AAAAAAAAA4U/_eo9USfbpAE/s400/08.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;インストール場所をしていする。VirtualBoxなので、特に考えずに次へ&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/n_YEuNg6ikopwF3OCm-UuQ?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SWs_GJ7cuuI/AAAAAAAAA4c/9SutWYCaLgE/s400/09.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;HDDにインストールが開始されるので、とにかく待ちます&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/wiJCbEMCf5A7B7lnH5UtFw?feat=embedwebsite'&gt;&lt;img src='http://lh6.ggpht.com/_-wXhttfyssE/SWs_GXzJh_I/AAAAAAAAA4k/3iT2QnkX5Tk/s400/10.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;再起動がかかります。Windowsマークが綺麗です。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/GcHcCgHgvz6TakruDfwD8A?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SWs_GcRgseI/AAAAAAAAA4s/UJCVzJbi_Ew/s400/11.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;インストールの最終処理の実行中　これが最後だ！&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/ScQQmEBKCPP1HM_5EW9Ksg?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SWs_xLaFgeI/AAAAAAAAA40/cV66aHjkUT8/s400/12.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;ユーザ名と、PC名を設定する。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/NP8RHWDzZ4QBCq0oJqGxwQ?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/SWs_xJMLlaI/AAAAAAAAA48/O1N61zZ-uuo/s400/13.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;パスワードを設定する。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/2bsftpd84rbFLCC6FHKXKg?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SWs_xYnLU6I/AAAAAAAAA5E/HVWYHGlq3aI/s400/14.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;プロダクトキーを入力します。ダウンロードのときに発行された例のあれです。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/duI653kRFlZ6zzCYx5JVdQ?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/SWs_xgVxXMI/AAAAAAAAA5M/qww4tPprpWc/s400/15.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;Windowsセキュリティ　とりあえず推奨設定を使います。&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/nz0tk0ScE55uliFUIRtwSw?feat=embedwebsite'&gt;&lt;img src='http://lh3.ggpht.com/_-wXhttfyssE/SWs_xkvxc4I/AAAAAAAAA5U/md6sdc9DBRg/s400/16.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;タイムゾーンの設定　Osaka,Sapporo,Tokyoを選択する&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/f474EBhxePONPZB-8uTaQQ?feat=embedwebsite'&gt;&lt;img src='http://lh5.ggpht.com/_-wXhttfyssE/SWtAAFiFelI/AAAAAAAAA5g/B1RdwSqtuM0/s400/17.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;デスクトップの準備が完了するまで待ちましょう&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/1iF0iCrfPefoFq3UbhHAyA?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SWtAATpT1bI/AAAAAAAAA5o/IUtBCbiH7qk/s400/19.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;デスクトップ画面&lt;br/&gt;&lt;table style='width: auto;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href='http://picasaweb.google.co.jp/lh/photo/Jz1m8JCPYKgosh0HUhg1LA?feat=embedwebsite'&gt;&lt;img src='http://lh4.ggpht.com/_-wXhttfyssE/SWtAAQrnl-I/AAAAAAAAA5w/T7mScYr41XI/s400/20.png'/&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='font-family: arial,sans-serif; font-size: 11px; text-align: right;'&gt;送信者 &lt;a href='http://picasaweb.google.co.jp/dotred5.0/Blog?feat=embedwebsite'&gt;Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;取り合えず、インストール完了までのスクリーンショットを並べてみましたが、&lt;br/&gt;いかがでしょうか。&lt;br/&gt;&lt;br/&gt;インストール自体はとても簡単になったと思います。Ubuntuと比べても遜色のないインストールの簡単さ。&lt;br/&gt;&lt;br/&gt;あとは、最後のデフォルトの壁紙・・・。&lt;br/&gt;この熱帯魚は・・・・。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;せっかくのパブリックβなので、ゴリゴリインストールして動作試験でもしてみようかと思います。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1502053411005911151?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1502053411005911151/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1502053411005911151' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1502053411005911151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1502053411005911151'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/01/windows-7-on-virtualbox.html' title='Windows 7をインストール on VirtualBox'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_-wXhttfyssE/SWs-uNo2crI/AAAAAAAAA3k/mMp-Oh-E6K0/s72-c/02.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1764505489679050741</id><published>2009-01-02T23:25:00.002+09:00</published><updated>2009-01-03T15:07:31.120+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>vimでoutputz</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://outputz.com/" target="_blank"&gt;あなたは原稿用紙何枚分のアウトプットをしていますか？ &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;という、自分のブラウザ上での打鍵数をカウントしてくれるサービスが存在するわけですが、&lt;br /&gt;なかなかブラウザ上から打鍵することってないんですよね・・・。&lt;br /&gt;&lt;br /&gt;自分もプログラマの端くれですから、開発環境やテキストエディタの方が打鍵数が格段に多いわけです。&lt;br /&gt;そっちをどうにかカウントするようにできないかと探してみたらありました。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.vim.org/scripts/script.php?script_id=2455" target="_blank"&gt;outputz - outputz interface for Vim&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;vimでの打鍵数をoutputzに送信してくれるプラグインです。&lt;br /&gt;早速入れてみました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.ダウンロード&lt;br /&gt;&lt;br /&gt;上記のリンクから、&lt;a href="http://www.vim.org/scripts/download_script.php?src_id=9544" target="_blank"&gt;vim-outputz-0.0.1.zip&lt;/a&gt;を取得します。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.解凍&lt;br /&gt;&lt;br /&gt;ダウンロードしたら、適当に解凍し、~/.vim配下に移動します。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.vimrcを編集&lt;br /&gt;まずは、outputzの『設定タブ』の復活の呪文をメモります。&lt;br /&gt;その後、~/.vimrcを開いて、下記を追記&lt;br /&gt;&lt;blockquote&gt;let g:outputz_secret_key = 'xxxxxxxxxxxx'　←復活の呪文&lt;br /&gt;&lt;strike&gt;&lt;br /&gt;let g:outputz_uri = 'http://www.example.com'　←適当なURI&lt;br /&gt;&lt;/strike&gt;let g:outputz_uri_function = 'http://example.com/vim'&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;以上、あとは一心不乱にvimで打鍵します。&lt;br /&gt;打鍵数と作業量は比例しませんが、その日その日の打鍵数を確認することで満足感を得られそうですわ。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;20090103修正&lt;br /&gt;let g:outputz_uriはVersion 0.0.0の指定方法でした・・・。&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1764505489679050741?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1764505489679050741/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1764505489679050741' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1764505489679050741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1764505489679050741'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/01/vimoutputz.html' title='vimでoutputz'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-4862009037658501799</id><published>2009-01-02T21:52:00.001+09:00</published><updated>2009-01-02T21:52:18.526+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>V8　ビルド編</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Google Chromeに搭載されていることで有名なJavaScriptエンジン『V8』で遊んでみようと思います。&lt;br/&gt;&lt;br/&gt;基本的には&lt;br/&gt;&lt;a href='http://d.hatena.ne.jp/amachang/20080903/1220405193' target='_blank'&gt;&lt;br/&gt;Google Chrome の JavaScript エンジン V8 を試す - IT戦記:&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;と同じです。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;1.ビルド環境を整える&lt;/strong&gt;&lt;br/&gt;今回はUbuntu8.10をターゲットとします。&lt;br/&gt;ビルドするために必要なものをapt-getでインストールします。&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;sudo apt-get install scons&lt;br/&gt;sudo apt-get install build-essential&lt;br/&gt;&lt;br/&gt;&lt;/blockquote&gt;&lt;strong&gt;2.svnでソースを取得する。&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;svn co http://&lt;span class='highlight'&gt;v8&lt;/span&gt;.googlecode.com/svn/trunk/ &lt;span class='highlight'&gt;v8&lt;/span&gt;&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;3.取り合えずビルド&lt;/strong&gt;&lt;br/&gt;取得したディレクトリに移動し、&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;$ scons sample=shell&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;と、sampleにshell を設定し、実行するとビルドが始まります。&lt;br/&gt;&lt;br/&gt;ビルドが通ると、shellというバイナリが生成される。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;4.shellを実行してみる。&lt;/strong&gt;&lt;br/&gt;プロンプトが実行されるので、&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;$ ./shell&lt;br/&gt;V8 version 0.4.6&lt;br/&gt;&amp;gt; print('Hello World');&lt;br/&gt;Hello World&lt;br/&gt;&amp;gt; &lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;なにはなくとも、Hello World&lt;br/&gt;うん、動いてる。　さて、これからどうしようかな・・・。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-4862009037658501799?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/4862009037658501799/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=4862009037658501799' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4862009037658501799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/4862009037658501799'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/01/v8.html' title='V8　ビルド編'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-5217882713080562863</id><published>2009-01-02T15:33:00.001+09:00</published><updated>2009-01-02T15:33:34.919+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life'/><title type='text'>大掃除</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;あけましておめでとうございます。&lt;br/&gt;2009年ですねぇ・・・。&lt;br/&gt;&lt;br/&gt;ということで、本業の方で忙しい合間をぬって、年に一回のハードディスク内の大掃除なんぞをしてみました。&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;1.バックアップ&lt;/strong&gt;&lt;br/&gt;取り合えず、なにはなくともバックアップをとります。&lt;br/&gt;/home配下をすべて、USBハードディスクに転送します。&lt;br/&gt;.から始まる隠しファイル&amp;amp;ディレクトリ系は忘れやすいので要注意&lt;br/&gt;&lt;br/&gt;この辺りの仕込み作業は前日のうちにやってきましょう。&lt;br/&gt;今回は大掃除なので、いらないものはこの時点である程度選別しておきます。&lt;br/&gt;&lt;br/&gt;使ってみたいけど・・・。と思っていたアプリケーションについても、ここで試して置きましょう。&lt;br/&gt;なーに、動かなくなってもOSの再インストールから始めるので、どうってことないです。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;2.OSインストール&lt;/strong&gt;&lt;br/&gt;OSからインストールを試みます。&lt;br/&gt;ある程度目星をつけておいたOSを試してみてもいいでしょう。&lt;br/&gt;自分は前から使ってみたかったopenSUSE11.1と、Ubuntu8.10を用意しました。&lt;br/&gt;&lt;br/&gt;OSのインストールについては、各自調べてください。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;3.ソフトのリストア&lt;/strong&gt;&lt;br/&gt;結局自分はUbuntu8.10をインストールしたので、apt-getでザクザクインストールを行います。&lt;br/&gt;2009年の一軍入り(必須ソフト)は以下&lt;br/&gt;&lt;br/&gt;vim(残留)&lt;br/&gt;Google Desktop(残留)&lt;br/&gt;Editra(残留)&lt;br/&gt;Songbird(残留)&lt;br/&gt;zsh(残留)&lt;br/&gt;Gnome Do(新規)&lt;br/&gt;Dropbox(新規)&lt;br/&gt;Prism(新規)&lt;br/&gt;Picasa(新規)&lt;br/&gt;&lt;br/&gt;あとは基本的にUbuntuに最初から入っているものでどうにかしています。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;4.後片付け&lt;br/&gt;あえて言おう！OSは消耗品であると！！&lt;br/&gt;ということで、一年のいろんな設定の痕やら、評価目的で入れたアプリケーションなどを&lt;br/&gt;一掃すべく大掃除を毎年行っているわけです。&lt;br/&gt;&lt;br/&gt;やっぱりアップデートを重ねたり、アプリケーションの入れたり消したりを繰り替えしてくると、(狭義の意味での)OSは劣化します。&lt;br/&gt;年に一回くらいは、住居と同様にサクッと大掃除したいものです。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-5217882713080562863?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/5217882713080562863/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=5217882713080562863' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5217882713080562863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5217882713080562863'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2009/01/blog-post.html' title='大掃除'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-8165730275458654691</id><published>2008-12-10T00:44:00.001+09:00</published><updated>2008-12-10T00:44:49.101+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Native Client</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://code.google.com/p/nativeclient/?tbbrand=GZEZ&amp;amp;utm_campaign=en&amp;amp;utm_source=en-et-osrcblog&amp;amp;utm_medium=et' target='_blank'&gt;nativeclient - Google Code&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;昨日に引き続きGoogle関連のリンク&lt;br/&gt;&lt;br/&gt;ブラウザ上でネイティブコードを実行できるらしいのですが、&lt;br/&gt;一体どうやって実現しているのだろう・・・。&lt;br/&gt;&lt;br/&gt;どうにか時間を作って、ソースを眺めてみよう&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-8165730275458654691?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/8165730275458654691/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=8165730275458654691' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8165730275458654691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8165730275458654691'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2008/12/native-client.html' title='Native Client'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-2295982852282165357</id><published>2008-12-08T23:28:00.001+09:00</published><updated>2008-12-08T23:28:23.525+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='ハードウェア'/><title type='text'>開発者向けAndroid Phone</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a target='_blank' href='http://japanese.engadget.com/2008/12/07/android-dev-phone-1-sim/'&gt;アンロック済みの開発者専用携帯 Android Dev Phone 1、日本からも買えます&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;これが超欲しい。&lt;br/&gt;Androidの開発とかエミュレーターでしかやったことないけど、開発者向けとはいえ実機があると変わるんでしょうかね。&lt;br/&gt;&lt;br/&gt;しかし買ったとしても、本業が忙しくていじる暇ないんだろうなぁ・・・。&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-2295982852282165357?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/2295982852282165357/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=2295982852282165357' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2295982852282165357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/2295982852282165357'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2008/12/android-phone.html' title='開発者向けAndroid Phone'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-3250200274850357150</id><published>2008-10-25T20:15:00.003+09:00</published><updated>2008-10-25T20:27:13.059+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>Todo</title><content type='html'>本職が忙しくなってきたため、まともに自宅でＰＣを触れない状態に・・・。&lt;div&gt;ということで、備忘録&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Androidのソースコード公開&lt;/div&gt;&lt;div&gt;&lt;a href="http://source.android.com/"&gt;http://source.android.com/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MochiKit 1.4リリース&lt;/div&gt;&lt;div&gt;&lt;a href="http://mochikit.com/"&gt;http://mochikit.com/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Python2.5 和訳ドキュメント&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.python.jp/doc/"&gt;http://www.python.jp/doc/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mozilla作　高速ブラウザ&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.mozilla.org/projects/minefield/"&gt;http://www.mozilla.org/projects/minefield/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-3250200274850357150?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/3250200274850357150/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=3250200274850357150' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3250200274850357150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/3250200274850357150'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2008/10/todo.html' title='Todo'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6602720243255148842</id><published>2008-10-16T00:29:00.001+09:00</published><updated>2008-10-16T00:29:10.704+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB'/><category scheme='http://www.blogger.com/atom/ns#' term='雑記'/><title type='text'>iVoca</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a target='_blank' href='http://ivoca.31tools.com/home'&gt;Home - 英単語タイピングゲーム iVoca&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;mixiのOpenIDも使えるようなので、明日から、毎日30分ずつやる！&lt;br /&gt;IT用語系は結構イケた！&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6602720243255148842?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6602720243255148842/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6602720243255148842' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6602720243255148842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6602720243255148842'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2008/10/ivoca.html' title='iVoca'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-5013671517982207281</id><published>2008-10-11T21:01:00.001+09:00</published><updated>2008-10-11T21:01:47.107+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='さくらインターネット'/><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>さくらインターネットでMercurialを使う</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;SVNに続き、さくらインターネットにMercurialサーバ(？)を入れてみた。&lt;br /&gt;&lt;br /&gt;&lt;a target='_blank' href='http://dodgson.org/omo/t/?date=20070519#p02'&gt;&lt;br /&gt;steps to phantasien t(2007-05-19)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;上記のサイトを参考にしました。っていうか、ほぼそのまま&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;○上記サイトからの変更点&lt;br /&gt;上記サイトの日付を見ると分かるんですが、若干バージョンが古いので、最新バージョンの&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;http://www.selenic.com/mercurial/release/mercurial-1.0.2.tar.gz&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;を使用しました。&lt;br /&gt;&lt;br /&gt;変更点はバージョンのみで、その他の設定についてはそのままでOK&lt;br /&gt;&lt;br /&gt;こう見てみると、SVNよりMercurialの方が設置までが数倍ラク&lt;br /&gt;SVNの時もそうだったけど、なにに使おうかしら・・・。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-5013671517982207281?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/5013671517982207281/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=5013671517982207281' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5013671517982207281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/5013671517982207281'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2008/10/mercurial.html' title='さくらインターネットでMercurialを使う'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-8781635537868432027</id><published>2008-10-06T14:26:00.002+09:00</published><updated>2008-10-06T14:30:00.245+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='さくらインターネット'/><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>さくらインターネットでDjango 模索中</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; font-weight: bold; letter-spacing: 1px; line-height: 19px; "&gt;&lt;a href="http://web.archive.org/web/20070324141042/http://d.hatena.ne.jp/oqre/20070319/1174253303"&gt;[Django][レンタルサーバー] さくらインターネットでDjango&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; font-weight: bold; letter-spacing: 1px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; font-weight: bold; letter-spacing: 1px; line-height: 19px;"&gt;上記のサイトを参考に、さくらサーバでDjangoを構築中&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; font-weight: bold; letter-spacing: 1px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; font-weight: bold; letter-spacing: 1px; line-height: 19px;"&gt;pythonのez_setupは便利なんだけど、はまった・・・。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; font-weight: bold; letter-spacing: 1px; line-height: 19px;"&gt;flupインストール時には、&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; font-weight: bold; letter-spacing: 1px; line-height: 19px;"&gt;&lt;blockquote&gt;python ez_setup.py --prefix=$HOME/local&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; font-weight: bold; letter-spacing: 1px; line-height: 19px;"&gt;が必要だということに気がついたのは、はまり始めてから二時間後・・・。&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-8781635537868432027?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/8781635537868432027/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=8781635537868432027' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8781635537868432027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/8781635537868432027'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2008/10/django.html' title='さくらインターネットでDjango 模索中'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-6393693972999879887</id><published>2008-10-04T17:06:00.001+09:00</published><updated>2008-10-04T17:06:19.658+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ソフトウェア'/><category scheme='http://www.blogger.com/atom/ns#' term='さくらインターネット'/><category scheme='http://www.blogger.com/atom/ns#' term='メモ'/><title type='text'>さくらインターネットでSubversionを使う</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;さくらインターネットのスタンダードプランを契約したので、さっそく私的SVNサーバとして使用することに。&lt;br /&gt;&lt;br /&gt;&lt;a href='http://mishuku.net/archives/2008/02/subversion-install.php' target='_blank'&gt;さくらレンタルサーバでSubversion (Install編) - FREE STYLE WEBLOG&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;上記のサイトを参考にしました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;○上記サイトからの変更点&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Neonのインストール&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;blockquote&gt;５）Neonのインストール&lt;br /&gt;&lt;pre class='prgSrc'&gt;$ cd $HOME/local/src&lt;br /&gt;$ wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/neon-0.25.5.tar.gz&lt;br /&gt;$ tar xvzf neon-0.25.5.tar.gz&lt;br /&gt;$ cd neon-0.25.5&lt;br /&gt;$ ./configure --prefix=$HOME/local --with-ssl --with-libs=/usr/local --enable-shared&lt;br /&gt;$ gmake clean &amp;amp;&amp;amp; gmake &amp;amp;&amp;amp; gmake install&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;上記のまま実行すると、最後のmakeでこけるので、一個手前の、&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;$ ./configure --prefix=$HOME/local --with-ssl --with-libs=/usr/local --enable-shared&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;を&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;$ ./configure --prefix=$HOME/local --with-ssl --with-libs=$HOME/local --enable-shared&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;に変更して実行を行いました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;APRの取得&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;バージョンが上がっているようなので、&lt;br /&gt;&lt;blockquote&gt;apr-0.9.16.tar.gz&lt;/blockquote&gt;&lt;br /&gt;を&lt;br /&gt;&lt;blockquote&gt;apr-0.9.17.tar.gz&lt;/blockquote&gt;&lt;br /&gt;に変更。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;○その他&lt;br /&gt;Subversionの./configure実行時に、&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;configure: WARNING: we have configured without BDB filesystem support&lt;br /&gt;意訳）BDBファイルシステムなんてサポートしてねーんだよ！馬鹿野郎が！！&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;みたいな警告が出ますが、特に問題なくビルドが通るので、今は無視します。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;以上で、インストールは取り合えず完了！&lt;br /&gt;さて、何に使おうかな・・・。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-6393693972999879887?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/6393693972999879887/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=6393693972999879887' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6393693972999879887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/6393693972999879887'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2008/10/subversion.html' title='さくらインターネットでSubversionを使う'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-695827191344083905</id><published>2008-09-21T23:02:00.001+09:00</published><updated>2008-09-21T23:02:25.162+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>ボケて！</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://bokete.jp/' target='_blank'&gt;boketeβ(ボケてベータ版) : 写真で一言ボケるお笑いウェブサービス&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;みんなで、一つのお題画像に対してボケていくという、眺めているだけでおもしろいサービスです。&lt;br/&gt;眺めているだけでもいいんですが、結構盛況なサービスのようで、どんどんランキングが流れて行ってしまってます。&lt;br/&gt;&lt;br/&gt;ということで、boketeβから画像を取得し、ボケたワードをファイル名として保存するスクリプトを組んでみました。&lt;br/&gt;これをcronで動かせば、ボケをスルーすることも少なくなるかも！？&lt;br/&gt;&lt;br/&gt;&lt;pre style='border: 2px inset silver; padding: 1ex; overflow: auto; line-height: 125%; font-size: small;'&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face='monospace'&gt;&lt;br/&gt;&lt;font color='#ff40ff'&gt;#!/usr/bin/env python&lt;/font&gt;&lt;br/&gt;&lt;font color='#ff40ff'&gt;# -*- coding: utf-8 -*-&lt;/font&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;import&lt;/font&gt; urllib2&lt;br/&gt;&lt;font color='#ffff00'&gt;import&lt;/font&gt; re&lt;br/&gt;&lt;font color='#ffff00'&gt;import&lt;/font&gt; sys&lt;br/&gt;&lt;font color='#ffff00'&gt;import&lt;/font&gt; os&lt;br/&gt;&lt;font color='#ffff00'&gt;class&lt;/font&gt; &lt;font color='#00ffff'&gt;fileItem&lt;/font&gt;:&lt;br/&gt;  fileUrl = &lt;font color='#ff6060'&gt;""&lt;/font&gt;&lt;br/&gt;  fileName = &lt;font color='#ff6060'&gt;""&lt;/font&gt;&lt;br/&gt;&lt;font color='#ffff00'&gt;def&lt;/font&gt; &lt;font color='#00ffff'&gt;main&lt;/font&gt;():&lt;br/&gt;  f = urllib2.urlopen(&lt;font color='#ff6060'&gt;"&lt;a href='http://bokete.jp/boke/ranking'&gt;http://bokete.jp/boke/ranking&lt;/a&gt;"&lt;/font&gt;)&lt;br/&gt;  sHtml = f.read()&lt;br/&gt;  fileList = []&lt;br/&gt;  &lt;font color='#ffff00'&gt;for&lt;/font&gt; div &lt;font color='#ffff00'&gt;in&lt;/font&gt; sHtml.split(&lt;font color='#ff6060'&gt;'&amp;lt;div class="odai530 mb30"&amp;gt;'&lt;/font&gt;):&lt;br/&gt;    l = fileItem()&lt;br/&gt;    &lt;font color='#ffff00'&gt;for&lt;/font&gt; r &lt;font color='#ffff00'&gt;in&lt;/font&gt; div.split(&lt;font color='#ff6060'&gt;"&lt;/font&gt;&lt;font color='#ff40ff'&gt;\n&lt;/font&gt;&lt;font color='#ff6060'&gt;"&lt;/font&gt;):&lt;br/&gt;      &lt;font color='#8080ff'&gt;#この判定式はいけてないな・・・。&lt;/font&gt;&lt;br/&gt;      &lt;font color='#ffff00'&gt;if&lt;/font&gt; r.find(&lt;font color='#ff6060'&gt;'" alt="" /&amp;gt;'&lt;/font&gt;) &amp;lt;&amp;gt; -&lt;font color='#ff6060'&gt;1&lt;/font&gt;:&lt;br/&gt;        &lt;font color='#8080ff'&gt;#print r[r.find('&amp;lt;img src="') + 10:r.find('" alt="" /&amp;gt;')]&lt;/font&gt;&lt;br/&gt;        l.fileUrl = r[r.find(&lt;font color='#ff6060'&gt;'&amp;lt;img src="'&lt;/font&gt;) + &lt;font color='#ff6060'&gt;10&lt;/font&gt;:r.find(&lt;font color='#ff6060'&gt;'" alt="" /&amp;gt;'&lt;/font&gt;)]&lt;br/&gt;      &lt;font color='#ffff00'&gt;if&lt;/font&gt; r.find(&lt;font color='#ff6060'&gt;'&amp;lt;h3 class="boke36"&amp;gt;'&lt;/font&gt;) &amp;lt;&amp;gt; -&lt;font color='#ff6060'&gt;1&lt;/font&gt;:&lt;br/&gt;        &lt;font color='#8080ff'&gt;#print r[r.find('&amp;lt;h3 class="boke36"&amp;gt;') + 19 : r.find('&amp;lt;/h3&amp;gt;')]&lt;/font&gt;&lt;br/&gt;        l.fileName = r[r.find(&lt;font color='#ff6060'&gt;'&amp;lt;h3 class="boke36"&amp;gt;'&lt;/font&gt;) + &lt;font color='#ff6060'&gt;19&lt;/font&gt; : r.find(&lt;font color='#ff6060'&gt;'&amp;lt;/h3&amp;gt;'&lt;/font&gt;)]&lt;br/&gt;    &lt;font color='#8080ff'&gt;# ダウンロードする&lt;/font&gt;&lt;br/&gt;    os.system(&lt;font color='#ff6060'&gt;"wget "&lt;/font&gt; + l.fileUrl + &lt;font color='#ff6060'&gt;" -O "&lt;/font&gt; + l.fileName + l.fileUrl[-&lt;font color='#ff6060'&gt;4&lt;/font&gt;:])&lt;br/&gt;&lt;font color='#ffff00'&gt;if&lt;/font&gt; __name__ == &lt;font color='#ff6060'&gt;"__main__"&lt;/font&gt;:&lt;br/&gt;  main()&lt;br/&gt;&lt;/font&gt;&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;&lt;br/&gt;しかし、実際に動かすと分かるんですが、重複チェックとかまったくしていないので、実行される度にファイルが増殖していきます。&lt;br/&gt;&lt;br/&gt;あと、wget以外で、webからファイルを取得する簡単な方法ってなにかあるかな？&lt;br/&gt;なんかwgetはスマートじゃない気がする。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-695827191344083905?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/695827191344083905/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=695827191344083905' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/695827191344083905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/695827191344083905'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2008/09/blog-post_21.html' title='ボケて！'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5129887787886713879.post-1641799783404909594</id><published>2008-09-17T22:32:00.001+09:00</published><updated>2008-09-17T22:32:58.051+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><title type='text'>超かわいいぃぃぃぃぃぃ！！！！</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div class='youtube-video'&gt;&lt;object width='425' height='355'&gt;&lt;param value='http://www.youtube.com/v/muLIPWjks_M' name='movie'&gt; &lt;/param&gt;&lt;param value='transparent' name='wmode'&gt; &lt;/param&gt;&lt;embed width='425' height='355' wmode='transparent' type='application/x-shockwave-flash' src='http://www.youtube.com/v/muLIPWjks_M'&gt; &lt;/embed&gt; &lt;/object&gt;&lt;/div&gt;&lt;br/&gt;これ見てると、顔がニヤけてしまう。&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5129887787886713879-1641799783404909594?l=blog.dotroid.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.dotroid.net/feeds/1641799783404909594/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5129887787886713879&amp;postID=1641799783404909594' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1641799783404909594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5129887787886713879/posts/default/1641799783404909594'/><link rel='alternate' type='text/html' href='http://blog.dotroid.net/2008/09/blog-post_17.html' title='超かわいいぃぃぃぃぃぃ！！！！'/><author><name>Go Akahane</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_-wXhttfyssE/TOz1huIaGVI/AAAAAAAACBE/QZY1rHNekis/s1600-R/twitter_reasonably_small.png'/></author><thr:total>0</thr:total></entry></feed>
