May 28, 2009
Google Developper Day 2009 の セッション情報
GDD の セッション説明会に行ってきました。情報を公開です。
クラウドコンピューティングがもたらす 5 つのメリット
- Google Apps(Mail, Office, Calendar, Video, Site, IM...)
-
- アプリ: コスト: \6,000/year
- ランニング: グーグルが一元管理する
- ビジネススタイル: Chrome, Android と連携。オフライン作業も可能
- 生産性: Office 製品による共同作業
- 統合: 他のSaaS製品とかと統合可能 (Salesforceなど
Google エンタープライズ エコシステム
- Google Search Appliance
-
- Google Enterprise Partner (GEP) が多種多様な情報のインデックス化をしてくれる
-
- リアルコム: ノーツデータを検索可能とする
- 印刷した紙媒体もインデックス (会社名聞き取れませんでした)
- Google Apps クラウド内に保存しているデータも検索可能
- Google Apps
-
- LDAP や AD と連携した SSO
- SAML2.0 に同期可能なアプリケーションであれば同期可能
HTML 5
- ハイパーテキストというよりはアプリケーションプラットフォームになる
- HTML本体の中の構造化ドキュメント、メディア系のタグ、フォームの新機能を詳しく紹介予定
- ユーザーメリット、開発者メリットを紹介予定
- 2010 年にファイナライズ予定
- Gears と HTML 5 対応ブラウザ のすみわけを聞いてみた -> 古いブラウザへの HTML 5 の一部機能の提供?
- HTML 5 に対応したアプリのみの提供は不可。下位互換をプロバイダーが保障する必要がある
HTML 5 になると、Flash とか アプレットはいらなくなるのではという話が興味深かったです。Google IO の結果が楽しみです!
May 22, 2009
PHP で Django の paginator 的なもの
PHPで Django 的なページング処理。http://gist.github.com/116097。
$page = new Page($publisher->books, 10);
for($i = $page->start_index(); $i <= $page->end_index(); $i++) {
$page->number = $i;
$books = $page->get_page();
print $publisher->name;
foreach ($books as $book) {
print $book->title;
}
}
みたいな使い方。
May 20, 2009
pyAWWS バグ対応とか
Sekimura さまより、pyAWWS のパッチを送っていただきました。ありがとうございます!初歩的なバグでした・・・。送っていただいたパッチは http://gist.github.com/114552 です。さっそく当てたものをコミットしました。
バグはあんまほめられたことじゃないですけど、パッチ送ってもらうのはうれしいもんですねw
May 13, 2009
Google Developper Day 2009 について
Google Developper Day 2009 のサポーターブログ vol.1 です。12日に事前MTGがあるとのことで参加してきました。以下、事前情報で公開されている内容です。
Google Developper Day 2009 について
- 開催日: 2009 年 6 月 9 日
- 場所: パシフィコ横浜
- 概要: Google の最新テクノロジーの紹介、デベロッパーとの交流
- 参加方法: 満席のため、締め切り終了 (紹介枠のみ)
※ Google Group 等で最新情報を取得することができます
以下、事前 MTG で紹介されたセッションの概要です(おそらく公開して良いと思われるw)。
- App Engine, Geo (Maps API), Open Social, Chrome, HTML5, Social Web等などのGoogle テクノロジー。ライトニングトーク、オープンソース、エンタープライズエコシステム、新ユーザエクスピアリアンス、新卒 Engineer のお話他。ほぼ Fix ですが、変更の可能性あり
- 今年は、Open Social のセッションの枠が拡大されています
- スピーカーは Open Social プロバイダーの有名な会社の社長さん ("m" ではじまる) 等、非常に豪華です。楽しみです!
- ライトニングトークには、@tmatsuo さんも参加されます
以下、その他の有用な?情報です。
- 当日は早く来るといいこと(Google ノベルティ的な)がある。
- Office Hour にスピーカーとお話ができる。
※ Office Hour: 米国大学で使われている用語で、教授が絶対に捕まる時間らしい。Developper Day では教授ではなく、有名なスピーカーの皆様が捕まります。 - サードパーティーがディスプレイしたりしてます。
以下、Hack-a-thon 情報です。
- 今年から、Hack-a-thon に時間を割くため、Developper Day とは別に Hack-a-thon の時間を設けることに
- Hack-a-thon は 6/10-11 に秋葉原でやる予定
-
- 6/10: Geo API, Android (cross presentation) 定員 30
- 6/11: App Engine, Open Social (cross presentation) 定員 30
- Hack-a-thon の申し込みは別途
以下、私のメモ。
- レポート担当セッション: HTML5, Social Web, Open Social, Open Social Advanced, Open Social Panel Discussion
- Idea-Thon が事前にある予定
- 京都から来られてる方もいらっしゃいました
May 12, 2009
pyAAWS for Product Advertising API
Python library of Amazon Associates Web Service を Product Advertising API に対応させました。電子署名とか・・・。追加点は新API仕様のとおりです。解説がめんどいので、diff 貼ります。
+import hashlib
+import hmac
+import base64
-Version = '2009-02-01'
+Version = '2009-03-31'
def _get_url(self, kw):
- url = 'http://%s/onca/xml?Service=%s&AWSAccessKeyId=%s&Version=%s&' % (
- supported_locales[self.locale],
- Service,
- self.AWSAccessKeyId,
- Version,
- )
if not kw:
kw = {}
+ kw['Service'] = Service
+ kw['Version'] = Version
+ kw['AWSAccessKeyId'] = self.AccessKeyId
+ kw['Timestamp'] = datetime.datetime.utcnow().isoformat()
if (not 'AssociateTag' in kw) or (not kw['AssociateTag'] and self.AssociateTag):
kw['AssociateTag'] = self.AssociateTag
if (not 'MerchantId' in kw) or (not kw['MerchantId'] and self.MerchantId):
kw['MerchantId'] = self.MerchantId
if (not 'Validate' in kw) or (not kw['Validate'] and Validate):
kw['Validate'] = Validate
- url += '&'.join(['%s=%s' % (k, urllib.quote(unicode(v))) \
- for (k, v) in kw.items() if v])
- return url
+ [kw.pop(k) for (k, v) in kw.items() if not v]
+ payload = urllib.urlencode(sorted(kw.items()))
+ urllib2.quote
+ strings = [
+ 'GET',
+ supported_locales[self.locale],
+ end_point,
+ payload
+ ]
+ digest = hmac.new(
+ self.SecretAccessKey,
+ '\n'.join(strings),
+ hashlib.sha256
+ ).digest()
+ signature = base64.b64encode(digest)
+ return 'http://%(uri)s%(end_point)s?%(payload)s&Signature=%(signature)s' % {
+ 'uri':supported_locales[self.locale],
+ 'end_point':end_point,
+ 'payload':payload,
+ 'signature':signature,
+ }
詳細の diff は bitbucket (なんちゅうブログやw) へ。ノットリファクタリング。使い方が変わったところは、Secret Access Key が必須になったところぐらいです。
import awws
- api = Api('[取得した Access Key Id]')
+ api = Api('[取得した Access Key Id]', '[取得した Secret Access Key]')
Python library of Amazon Associates Web Service
Python library of Amazon Associates Web Service を公開しました。既存で pyAWSというのがあるみたいですが、正直使いにくかったので、自分用に作成しました。Google App Engine に乗っけたかったので、Pure Python で dom をパースできる pxdom を同梱してます。もち、xml.dom.minidom でも動作します。APIのバージョンは、いまんとこ最新の "2009-02-01" です。とりあえず、ItemSearch の機能しかありません。
import aaws
api = Api('1MGVS72Y8JF7EC7JDZG2')
items = api.ItemSearch('Python', SearchIndex='Books', ResponseGroup='Small')
print '%s' % items.url
print 'TotalResults: %s' % items.count
print 'TotalPages: %s' % items.num_pages
print 'ItemPage: %s' % items.number
for item in items.object_list:
print ' * Title: %s' % item.Title
if item.has_next()
next = items.next_page_number()
items = api.ItemSearch('Python', SearchIndex='Books', ResponseGroup='Small', ItemPage=next)
という使い方ができます。とりあえず、結果のクラスは paginator と互換性を持たせているので、ある程度直感的に使えるかもと期待w。Amazonで遊ぶアプリを作っているので、今後 ItemLookup 等のAPIも追加していく予定(いつもながら亀のスピード)。コードはいつもながらひどいと思います。
それと、公開しといてなんですが、AAWS は、もうすぐ Product Advertising API になるため 2009-08-15 で使えなくなるそうです・・・。いらないですね。まだ API 仕様読んでないですが、対応予定。予定は未定。
May 8, 2009
Windows 7 を触ってみた
本当に触ってみただけです。VMWare に Windows 7 build 7100 が出たということで早速インストール。ダウンロードして、isoにマウントして、通常通りインストール。その後、VM -> Install VMWare Tools でイーサーネットを含むドライバをインストール。



ビジネスユースには不要なぐらい GUI が綺麗ですね。あと、Vista (VM上) と比較しても若干早い気がします。特にIE。XPとの互換を強化したところが大きなポイントらしいですが、Vista使ってて(遅いこと意外で)困ったことがないのでわかりませぬ。なので今のところ、IE8での CSS 表示テストなどにしか使う予定はありません(笑)