G-Cloud Magazine 2011 Autumnに、7月頃インタビューされた記事がのっています。
内容はGoogle App EngineのGo言語について。Go言語のどのへんがいいのかとか、なぜGAEでGo言語なのかとか の話になっています。
Showing posts with label app engine. Show all posts
Showing posts with label app engine. Show all posts
Tuesday, October 4, 2011
Thursday, June 11, 2009
App Engine Hackathon
今日は秋葉原富士ソフトにてHachathon。去年はGoogle Developer Day内企画だったけど、それだとHackathon参加しているとセッションが聴けない、逆もしかり ということでHackathonはDeveloper Dayの後日企画として開催。
Geo、Android、Google App Engine、OpenSocialの4分野を2分野づつ二日に分けて、今日はGoogle App EngineとOpenSocialの日。
それぞれ部屋にわかれてHack。Google App Engineのほうはいくつかのチームにわかれて作業していました。けっこうできていてよかったです。
Geo、Android、Google App Engine、OpenSocialの4分野を2分野づつ二日に分けて、今日はGoogle App EngineとOpenSocialの日。
それぞれ部屋にわかれてHack。Google App Engineのほうはいくつかのチームにわかれて作業していました。けっこうできていてよかったです。
Tuesday, June 9, 2009
Google Developer Day 2009 Japan
今日はGoogle Developer Day 2009 Japan。場所は去年と同じく横浜パシフィコ。
今年は、午後のBreakout sessionの一つ「Java で動かす Google App Engine」でDataStoreをどう使えばいいかについてのtipsについての解説など。
その後Office Hours。App Engine admin consoleの開発エンジニアもきていたのでいくつか要望とかも言っておいた。後は一般開発者の質問などに答えたり。DataStoreがやはりApp EngineでのWebアプリ開発のキモなので、ちゃんと理解しておきたいところ。詳しくはApp Engineデベロッパーガイド(記事も要注目)や、Google I/Oでのセッションなどを見ておくとよいです。
App EngineのOffice Hoursのあとは Google Chrome Office Hours。
その後は、「Life of 新卒エンジニア」を聴いて、デベロッパーソーシャルトークへ。去年はロビーに人があふれて大変だったが、今年は同じ時間にWaveやAndroidのセッションがあったためかそんなに多くなかった。
今年の目玉はなんといってもAndroid開発フォンの配布とWaveの発表かと。しかし、キーノートでAndroidの説明をしたChrisとTomは途中まで英語でプレゼンして最後に日本語とか卑怯すぎるw
今年は、午後のBreakout sessionの一つ「Java で動かす Google App Engine」でDataStoreをどう使えばいいかについてのtipsについての解説など。
その後Office Hours。App Engine admin consoleの開発エンジニアもきていたのでいくつか要望とかも言っておいた。後は一般開発者の質問などに答えたり。DataStoreがやはりApp EngineでのWebアプリ開発のキモなので、ちゃんと理解しておきたいところ。詳しくはApp Engineデベロッパーガイド(記事も要注目)や、Google I/Oでのセッションなどを見ておくとよいです。
App EngineのOffice Hoursのあとは Google Chrome Office Hours。
その後は、「Life of 新卒エンジニア」を聴いて、デベロッパーソーシャルトークへ。去年はロビーに人があふれて大変だったが、今年は同じ時間にWaveやAndroidのセッションがあったためかそんなに多くなかった。
今年の目玉はなんといってもAndroid開発フォンの配布とWaveの発表かと。しかし、キーノートでAndroidの説明をしたChrisとTomは途中まで英語でプレゼンして最後に日本語とか卑怯すぎるw
Tuesday, December 16, 2008
丸山不二夫レクチャーシリーズ第2回 クラウドのエンタープライズ利用をめぐって
丸山不二夫レクチャーシリーズ第2回 クラウドのエンタープライズ利用をめぐってにいってきた。
ちょっと遅刻ぎみでいったら、すでにだいぶ席がうまってた。席をさがして前のほうにいったらたまたま首藤さんの隣
丸山先生の話を聞くかぎりでは、Microsoft Azure SQL Data Serviceは、DHTで構築されたkey-valueの分散データストアで、SQLぽくアクセスできるというかんじなのかな? できることはGQLと似たようなもの? Bigtableでは、rowkeyをうまく設計することでRowのlocalityをある程度制御できる(同じtabletになるかどうかは基本的にbigtable serverが制御しclient側ではしない。App EngineのDatasource APIで使う場合にはindexテーブルとかもあるので気にする必要はない)けど、Azure SDSではPartitioning Keyでclient側がどう分割するかを決めるというあたりが違ったりする? とか聞きながら考えてた。
今回は発表者としてではなく聞きにいっただけ。発表者のMacBookのVGAアダプタがなんかおかしかったみたいなので、持ってたやつを貸してあげた。内容自体は基本的に札幌のJava Festa 2008とほぼ同じ。前回と違ってデモの失敗もなく無事終了。
その後、懇親会があったようだけど、今日は会社のYear End Partyがあったので懇親会には不参加。
ちょっと遅刻ぎみでいったら、すでにだいぶ席がうまってた。席をさがして前のほうにいったらたまたま首藤さんの隣
丸山先生の話を聞くかぎりでは、Microsoft Azure SQL Data Serviceは、DHTで構築されたkey-valueの分散データストアで、SQLぽくアクセスできるというかんじなのかな? できることはGQLと似たようなもの? Bigtableでは、rowkeyをうまく設計することでRowのlocalityをある程度制御できる(同じtabletになるかどうかは基本的にbigtable serverが制御しclient側ではしない。App EngineのDatasource APIで使う場合にはindexテーブルとかもあるので気にする必要はない)けど、Azure SDSではPartitioning Keyでclient側がどう分割するかを決めるというあたりが違ったりする? とか聞きながら考えてた。
今回は発表者としてではなく聞きにいっただけ。発表者のMacBookのVGAアダプタがなんかおかしかったみたいなので、持ってたやつを貸してあげた。内容自体は基本的に札幌のJava Festa 2008とほぼ同じ。前回と違ってデモの失敗もなく無事終了。
その後、懇親会があったようだけど、今日は会社のYear End Partyがあったので懇親会には不参加。
Saturday, December 13, 2008
App Engine Hackathon
今回は講義とかはなく、いくつかのグループにわかれてそれぞれ作業という形式だった。 チュートリアル、MashUp、Frameworkなどなど、おおまかなtopicにわかれて相談しつつ6-7時間ほどHackに集中。
昼には弁当がでました。 最後に各グループごとに成果発表。
今回は「20% ルール」(Google の「20% ルール」とは、勤務時間の 20% を自分の好きなことに使ってよい、という世界共通の社内ルールです。)で前からちょっとやってたinternal service(のprototype)を Java実装からPython/AppEngine実装に作り直しとかをやってました。Google Visualization APIをつかっていて、最近Data Source Python Libraryができていたのでそれを使ったりするようにしてみました。
Hackathonが終わったあと、App Engineのプレゼン用のデモコードを整理。そういえばこういうデモをするとき、liveでcodeを書いていくのもいいけど、gitリポジトリにいれておくと、「次のステップはこちら」と
git checkout branch
でさくっと更新していけるので便利だなと思った。特にAppEngineLauncherを使う場合、Launcherからは同じディレクトリにないといけないのでgit checkout
でその場のコードをすぐに次のバージョンに変えていけるので便利。
Saturday, November 29, 2008
Java Festa 2008 in 札幌
Java Festa 2008 in 札幌でGoogle App Engineの話をしてきました。

Java Festa といいつつ、JavaサポートのまだないGoogle App Engineの話ということでかなりawayなかんじ。
内容はGoogle App Engineでのアプリの開発の仕方の簡単なデモと、Datasourceがbigtableを使ってどのように実装されているかについての簡単な説明でした。
デモのほうは直前に「日本語のメッセージにしてみましょう」とかで、dev_appserverで動くことだけ確認してappengineにdeployして動くことを確認していなかったら、動かなかったというハプニング。appengine admin consoleのlogを見ると次のようなエラーが。
その後の懇親会は、会場に比べて寒かった。そのせいか二次会の時はやや微熱っぽい体調で、おいしい海鮮料理だったのに、いっぱい食べられなかった。
翌日は飛行機まで時間があったので札幌市内をぶらぶら。
家についたらまただるい。熱をはかったら36.9℃とかだった。微熱ぎみ。
Java Festa といいつつ、JavaサポートのまだないGoogle App Engineの話ということでかなりawayなかんじ。
内容はGoogle App Engineでのアプリの開発の仕方の簡単なデモと、Datasourceがbigtableを使ってどのように実装されているかについての簡単な説明でした。
デモのほうは直前に「日本語のメッセージにしてみましょう」とかで、dev_appserverで動くことだけ確認してappengineにdeployして動くことを確認していなかったら、動かなかったというハプニング。appengine admin consoleのlogを見ると次のようなエラーが。
Non-ASCII character '\xe6' in file /base/data/home/apps/shoutjp/1.329600768188861926/main.py on line 30, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details (main.py, line 30)まあ、pythonスクリプトに直接日本語とか書くのはよくないということで。templatesとかのほうにいれるのは問題ない。 その後、認証でいろいろ失敗していたのは実はapplication idが違っていたせいだった。あせるとよくない。 Q&Aの時には、ちゃんと動かせていたのでヨシとするか。
その後の懇親会は、会場に比べて寒かった。そのせいか二次会の時はやや微熱っぽい体調で、おいしい海鮮料理だったのに、いっぱい食べられなかった。
翌日は飛行機まで時間があったので札幌市内をぶらぶら。
家についたらまただるい。熱をはかったら36.9℃とかだった。微熱ぎみ。
Sunday, September 21, 2008
App Engine Hackathon
土曜日はofficeでApp Engine Hackathon。
講義としてはスケールする Web アプリを書くにはと製品レベルの Web アプリを書くにはでした。基本的にはGoogle I/Oのセッションを日本語で説明するかんじで、AppEngineつかう人はぜひ知っておくべき情報です。
あとはひたすら各自でコーディング。
昼と夕方に弁当がでました。


Software Freedom Dayということもあり(?)個人的には最近放置していたsnapshot.debian.netのインデックスをなんとかしようとscratchから作り直し。いままでのversionは pdumpfsのlogをよんで、更新されているdebに関して情報ととりだして packageごとのPackagesとSourcesをつくっていました。かなりad-hocなruby scriptで、生成されるものもそのままPackages, Sourcesなのでわかりやすいことはわかりやすいけど、いかんせん量がおおすぎてとりまわしが難しかったのです。ファイル数が約55万、ディレクトリが約24万、トータルで1.6GBほど。新しいディスクやマシーンにコピーしようとしてもファイル数が膨大すぎて何時間もかかってしまうし。
ちなみに現状のsnapshot archiveはこれくらい
というわけで次世代ではなんらかのdatabaseを使おうと思っていたのでした。コピーの手段も pdumpfs から cp -a --link + rsync に変更してしまっているので、そのままじゃ動かないし。
App Engine の Hackathon なので App Engine を使うことも考えたのですが、なんといっても量が多いのでquota(500M)に収まらないんじゃないかと思い、とりあえず python + sqlite でコーディング。実用的なものをめざしつつ、サイズが小さくおさまりそうなら App Engine版をつくることを見据えた選択をしました。
最近 SQLとかさわってないので思い出しつつ、いくつかはまるところがあったり。
sqlite で string な column に'1.0'をつっこむと1になってしまうとか。'1.0 'とかにするとよさげ。
とりあえずそれっぽいところまでできたのですが、なんせ量が多いのに対しperformance(特にindexing)がいまいち。
そもそも 2005/03/12 (残っているなかで一番古いやつ) ですら、一日分だけで Packages.gz+Sources.gzが 約220ファイル、延べ47パッケージエントリ、gzipされてるファイルで90Mほど、Packages.gzとSources.gzをpython-deb822で全部scanするだけで7分ほどかかります。
つくったindexerではできるdbファイルがsql tableの作り方を工夫して無圧縮で約100Mほどまでにできたのですが、しかしindex構築するのに数時間かかってしまっています。dbファイルとhddに置いてたらかなり遅かったので/dev/shm(tmpfs)以下に置くようにしたら少しは早くなったのですがそれでもまだまだ遅いです。大きめのPackages.gzだとひとつのPackages.gzファイルだけで10分~20分とかかかるかんじ。
現在 1288日分あるわけで、1日処理するのに4-5時間以上かかるとすると、全部のindexをつくるのに1年ほどかかってしまいそうです。もっと高速化しないとなー。
やはり全スキャンはやめて以前みたいに更新ログから更新分だけを処理するようにしないとだめかな。
社内にあったらMapReduceでばばんとできるのになー(Google脳…)
あとはひたすら各自でコーディング。
昼と夕方に弁当がでました。
Software Freedom Dayということもあり(?)個人的には最近放置していたsnapshot.debian.netのインデックスをなんとかしようとscratchから作り直し。いままでのversionは pdumpfsのlogをよんで、更新されているdebに関して情報ととりだして packageごとのPackagesとSourcesをつくっていました。かなりad-hocなruby scriptで、生成されるものもそのままPackages, Sourcesなのでわかりやすいことはわかりやすいけど、いかんせん量がおおすぎてとりまわしが難しかったのです。ファイル数が約55万、ディレクトリが約24万、トータルで1.6GBほど。新しいディスクやマシーンにコピーしようとしてもファイル数が膨大すぎて何時間もかかってしまうし。
ちなみに現状のsnapshot archiveはこれくらい
$ df -h /archive/
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 4.5T 3.7T 613G 86% /archive
というわけで次世代ではなんらかのdatabaseを使おうと思っていたのでした。コピーの手段も pdumpfs から cp -a --link + rsync に変更してしまっているので、そのままじゃ動かないし。
App Engine の Hackathon なので App Engine を使うことも考えたのですが、なんといっても量が多いのでquota(500M)に収まらないんじゃないかと思い、とりあえず python + sqlite でコーディング。実用的なものをめざしつつ、サイズが小さくおさまりそうなら App Engine版をつくることを見据えた選択をしました。
最近 SQLとかさわってないので思い出しつつ、いくつかはまるところがあったり。
sqlite で string な column に'1.0'をつっこむと1になってしまうとか。'1.0 'とかにするとよさげ。
とりあえずそれっぽいところまでできたのですが、なんせ量が多いのに対しperformance(特にindexing)がいまいち。
そもそも 2005/03/12 (残っているなかで一番古いやつ) ですら、一日分だけで Packages.gz+Sources.gzが 約220ファイル、延べ47パッケージエントリ、gzipされてるファイルで90Mほど、Packages.gzとSources.gzをpython-deb822で全部scanするだけで7分ほどかかります。
つくったindexerではできるdbファイルがsql tableの作り方を工夫して無圧縮で約100Mほどまでにできたのですが、しかしindex構築するのに数時間かかってしまっています。dbファイルとhddに置いてたらかなり遅かったので/dev/shm(tmpfs)以下に置くようにしたら少しは早くなったのですがそれでもまだまだ遅いです。大きめのPackages.gzだとひとつのPackages.gzファイルだけで10分~20分とかかかるかんじ。
現在 1288日分あるわけで、1日処理するのに4-5時間以上かかるとすると、全部のindexをつくるのに1年ほどかかってしまいそうです。もっと高速化しないとなー。
やはり全スキャンはやめて以前みたいに更新ログから更新分だけを処理するようにしないとだめかな。
社内にあったらMapReduceでばばんとできるのになー(Google脳…)
Friday, September 12, 2008
OpenSource協議会 System iセミナー と 裏Hackathon
今日はIBM飯倉にOpenSource協議会 System i主催の『ここまで来た企業情報システムのオープン化!』最新技術動向・事例セミナーで、「次世代Webプラットフォームにおける三つのC 〜 Client、Connectivity、そして Cloud」というタイトルでしゃべってきた。
他の会社の講演もあったけど、さっさと戻って裏Hackathon。本当は木金土と2泊3日で Hackathon だったのだけど、この用事のためにいけなかったのだ。そういうわけでこの二日間は、いけなかった人数人と一緒に会議室にこもって 裏Hackathon していた。
今回は春に20%でちょろっと作ってほったらかしにしておいたシステムを改善をめざした。完璧にはほど遠いけど以前よりはだいぶよくなってきたかなー。やりはじめるといろいろやりたいことがでてくる。普段やってないあたりなので、いろいろつまづくところもあったりもしたが、楽しい2日間であった。
Tuesday, June 10, 2008
Google Developer Day 2008 Japan
帰国早々今日は横浜パフィシコでGoogle Developer Day 2008 Japan。
今年は基調講演の中でGoogle App Engineの紹介。
Keynote終わったあとはPress Luncheonに参加。Pressの質問はほとんどAndroidに関するものだったので私が答えることは特になかった。
午後は基本的にGoogle App Engine codelabセッションで参加者のいくつかの質問に答えたり。
Q「ローカルでは動くけどデプロイするとファイルにアクセスできなくて動かない」
A「そのファイルをapp.yamlで明示的にuploadするようにしないと(importしているファイルなどは自動的に判断される)」
あとはkeyとkey nameの違いとか。基本的にはkey = Entity type + parent entities + key name で、これがbigtableのrowkeyになっているということのようだ。Under the Covers of the Google App Engine Datastoreに詳しい。
Google App Engineでアプリを書く人、もしくはスケーラブルなソフトウェアを書く人はBuilding Scalable Web Applications with Google App Engineは見ておくべき。
Subscribe to:
Posts (Atom)