ラベル GoogleAppEngine の投稿を表示しています。 すべての投稿を表示
ラベル GoogleAppEngine の投稿を表示しています。 すべての投稿を表示

2010/03/15

あなた専用のiPhoneアプリを作るサービス、始めました。

photo 2

構想6ヶ月。
コーディング1週間 という超大作。

TwitterのIDを入力するだけで、あなたオリジナルのiPhone Web アプリのアイコンが出来ちゃいます!!

  • 会心の出来のTwitterアイコンをいつも見ていたい
  • 「あっ! そのアイコンは」「(にや)」
  • いつも いつでも ネットストーキング
  • 酒の肴に

などなど使い方は人それぞれ。

Tweet2App
http://iphone.tweet2app.com/

今のところはiPhone以外からもアクセス出来ますが、特に意味が無いかも。
あと、アイコンを変更したばかりの人は正常に表示されないかもしれません。

photo

こんな感じ。
(あるときの自分のTLに登場していた方々です)

ちなみにアイコンをクリックするとそのユーザーの Twitter.com/ユーザー名 のページにジャンプします。この部分はそのままTwitterのモバイルページが表示されます。

Let's Enjoy!

 

以下、今後の予定など。

実際は画像処理周りで超苦労したけど、結局はherfかhrefかのスペルミスだったりして何とも言えない感じ。外部依存なので、その辺は独自に何とかしておいた方が良いかな。
URLにiPhoneって入れているのは、Androidとかも作ってみたい感じ。Androidはもっていないし、funnyが受け入れられる文化かも分からない。

iPhoneのSafariの挙動がいまいち分からないのがつらい。
特にクッキー周りが思った通りになってくれないのが悔しい。

今はmobile.twitter.comにアクセスするようにしていますが、実用性は0。
こんなサービス良いよと言うものがありましたら、教えて下さい。

2010/03/04

昨日の「本屋でAmazon(ry」にBooklogを追加してみた

vh7z

ISBN Going
http://isbngoing.appspot.com/

本屋でAmazonのレビューを見るためのWebアプリを作ってみた の少し改良版。
本のレビューを専門としたサイトのブクログ - web本棚サービスにもGoing出来るようにしてみました。

ただこのブクログ自体はiPhone専用ページが用意されていないのでいまいち見づらいかと思いますがご了承下さい。

 

ネタ晴らしでもなんでもないですがAmazonもブクログも本の情報をASINで管理しているので本に付いているISBNをASINに変換して、しかも、URLがASINそのものなので単純にリダイレクトかけてやってるだけです。
まだ、エラー処理を全くしていないので適当な13桁の数字を入力したりとかやめてね;p

さぁ、後は実際に本屋に行って使い勝手を確認してみないと。

2010/03/02

本屋でAmazonのレビューを見るためのWebアプリを作ってみた

ISBN Going
http://isbngoing.appspot.com/

なんてことはないです。
たぶんiTunes App Storeで5秒探せばこれより素晴らしいアプリがたくさん出てくると思います。いや、ホント。

ただ、自分はiTunes App Storeで探すのがめんどくさかったので、自分用に一つGoogle App Engineで作ってみました。
作ったと言っても大層なものではなく、実に単純です。

フォームの入力するところに本の裏についているISBNコード(最近の本は13桁)を入力すると

その本のAmazonページにジャンプします。
ね、簡単でしょ。
ちなみに、自分の力量不足でアフィリエイトは組み込んでおりませんので、ご安心してお使いください;p

一応iPhone用Webクリップとか作ってみた。

完璧に自分専用ですが、自分みたいに本屋でタイトルに釣られて「これの評価っていかがなものか!?」と思っちゃう人はいいかも。もしも、Amazonの方が安ければそのままカートに入れちゃうことも出来ますし;p
上にも書いたようにApp Storeで探せばもっと素晴らしいものが山のようにあると思うのでそっちを使うことをおすすめしますよ。

それに、Google App Engineって凄いですね。
基礎の部分は10分かからずにコーディング出来ちゃいました。思いの外HTMLを書くのに時間がかかりました。
さぁ、次はもっと実用的なものを作りたいなぁ


2010/01/07

Twitter Bot を Google App Engine に移した件

とにかく無価値なBotですが、そんな無価値なBotのためにRackspace Cloudのインスタンス代(約1円/時間)を払うのももったいないと言うことでGoogle App EngineへBotを移行させてみました。

もともとUbuntu Server上で動かしていたBotは

  • Pythonで組まれたスクリプト
  • 形態素解析に MeCab
  • 定期実行はCron

という構成でした。

Google App EngineはネイティブにPythonを動作させることの出来る希有なサービスですので移行は非常に単純でした。ほぼコピペ。
このほぼというのがミソで、一部追加しないといけないことがあるそうなので、素直に追加しておきましょう。

ちなみにキモの python-twitter は 0.6 を使用していますが、Api クラスにおいてファイルキャッシュを使っているために、素のままでは GAE で使えません。今回は以下のような Monkey patch を twitter.Api を利用する前に書いて、その場しのぎを…

link: GAE/Python で Twitter bot を作る(準備編) - SPEAKER BREAKA
詳しくはリンク先をご覧ください。関数を一つ定義し直す必要がありますが、コピペで終わるので全然面倒じゃありません。
(コピペで貼ろうとしたら、Macのエディタだとうまくいかない・・・)

 

1番の問題点の形態素解析。
MeCabはLinux等のプラットフォームに最適化されていますし、品詞の切り分けには巨大にしないでも辞書データが必要になります。
Google App Engine上でMeCabを動かすなんて到底無理な話ですので、いつぞや話題になったYahoo日本語形態素解析を思い出したわけです。
Yahoo! 日本語形態素解析APIを Python から使う | itFun.jp

さらに、Ubuntuでは苦労して書いたCrontabも、Google App Engineなら結構単純。
ただ、スペルミスには注意してくださいね;p
Google App Engine/Python で cron.yaml | itFun.jp

 

ここまでは良いとしても少し疑問に思っていた点として、Python から Twitter へ投稿するこういうので利用するライブラリ達。
解決法としては、一回ローカルにダウンロードでしてそれを一緒にアップロードしてしまうという当たり前のようなこと。
今回はPython-twitterを使うに当たって

  • twitter.py
    twitter.pyc
  • simplejson/
    __init__.py
    __init__.pyc
    _speedups.c
    decoder.py
    decoder.pyc
    encoder.py
    encoder.pyc
    scanner.py
    scanner.pyc
    tool.py
.pycは少なくとも1回は実行すると作られるファイルです。
もしかしたらこれがないと上手く動作しないかも・・・

ちなみに、今回自分の構成はmain.pyに記述して
  • BeautifulSoup.py
    BeautifulSoup.pyc
    app.yaml
    cron.yaml
    index.yaml
    main.py
    simplejson/
    twitter.py
    twitter.pyc
    yomi.py

こうなってます。
今回はYahoo日本語形態素解析のXMLから必要なデータを抜き出さないといけないのでBeautifulSoup(Beautiful Soup: We called him Tortoise because he taught us.)を準備してください。
以上で終わり。
ね、簡単でしょ。


2010/01/06

Google App Engine のテストに外部から接続する

その際のアドレスは通常なら"localhost:8080”などしか出来ないので、外部からアクセスする事は難しいのでグローバルアドレスを割り振って、ネットワークを跨いでアクセスできるようには出来ないものかというライフハック。

./dev_appserver.py --port=8081 --address=192.168.0.21 helloworld/

link: Google App Engineをlocalhost以外から使う方法 - Reinvention of the Wheel

アンダーラインを引いている場所を起動の時に追加してやるだけ。
これで、上の画像のように家のMacからアクセスすることが出来ます。
ちなみにMacでも同じ事は出来ますが、Macには標準でインストールされる管理アプリのLauncherが便利なので逆にこの設定の仕方は分かりません;p

Python 開発用サーバー - Google App Engine - Google Code
ここにはこれ以外の起動オプションが書かれています。結構多いのね。

これで、某所のLinuxサーバ上にGoogle App Engineの開発環境を乗せて、いつでも・どこでも・誰からでも開発できる・・・まさに開発環境のクラウド化!!


2010/01/03

Google App Engine/Python で cron.yaml


まず、声を大にして言いたいのは cron.yamlです。
clonじゃありません。cronです。
何回やっても出来ないような場合は、ここが間違っていないか確認してみた方が良いです。

記述の方法などは公式を見るのが1番
Python 用の cron を使用したスケジュール タスク - Google App Engine - Google Code
ちなみに、descriptionの部分は上の画像の“postTwitter”の部分に当たります。

あと、cronで呼び出すurlですが、そのURLに対してapp.yamlで指定したものが対応しているのでapp.yaml側できちんと指定してあげる必要があります。
今回みたいに5分ごとに実行するとかの場合は気にする必要はありませんが、指定した時間に動作させたい場合はタイムゾーンの指定を忘れずに。(UTCで逆算して指定するのもありかも)


2009/11/07

Snow LeopardでGoogle App Engine/Pythonを使う方法

screenshot by wonderlanddalicejp.

MacBook Proを買って早くも2ヶ月。
実は一番最初にインストールしたソフトはGoogle App Engine SDKでした。
そして今日やっと、やっと起動に成功!

 

Mac OS X 10.6には標準でPython 2.6の環境がインストールされているのですが、Google App EngineのSDKで必要になるのはPython 2.5の環境。
Windowsの場合は標準だと”変なもの”が入っていないので、そういう点では素晴らしい;p

Snow LeopardにPython 2.5の環境をインストールするにはMacPortsというものを使うと楽らしい。
実際にこれでインストールしたのですが、なんだかいまいち分からん。
このMacPortsを使うためにはXcodeをインストールしておく必要があるそうですので、インストールディスクからXcodeを入れておいてください。

MacPortsはこちらから。The MacPorts Project -- Download & Installation
SnowLeopardの文字がリンクになっているのでそちらをクリックするとSnowLeopard用のdmgファイルがダウンロード出来ます。

インストールが完了すると一応アップデートとか言う儀式をこなす。

$ sudo port selfupdate
$ sudo port sync

その後PythonとPythonのデフォルトバージョンを変更するソフトをport経由でインストールします。

$ sudo port install python25 python_sellect

時間が結構かかるのでまったり待ちましょう。
インストールが完了すると実際に切り替えてみます。

その前に、ターミナルでPythonを起動してみて起動するPythonのバージョンを確認してみてください。 バージョン切り替えは

$ sudo python_select python25

これを実行したら「Selecting version "python25" for python」と表示されると思います。
後にもう一回ターミナルでPythonを実行すれば標準で起動するのがPython 2.5.4が起動するようになります。

 

ここで、Google App Engine SDKを起動して実行するとエラーが減ってうまくいくかと。
それでも、エラーがでたあなた。自分の事です。

実はGoogle App Engineのプロジェクト名は小文字じゃないとだめです。
なので“Hello”とかいう プロジェクト名をつけると

Fatal error when loading application configuration:

というエラーがapp.yamlで発生します。
文字コード関連なので、他の原因としては文字コードや日本語文字が含まれていることがあるそうですが、一番単純なのは、プロジェクト名に大文字を含めていること。

なので“hello”というプロジェクト名をつけると、上の画像のようにちゃんと実行できました:-)

 

Google App EngineがPython 2.6に対応していればこんなにめんどくさい形にならなくてすんだのに・・・

 

via SnowLeopardでGAE(Python 2.5)開発環境をつくるまでを走り書き - matuダイアリー

2009/03/28

クラウドにはJavaを

Java Conference 2006 by matteopenzo.
Java Conference 2006 on Flickr - Photo Sharing!

Google App EngineもJavaをサポートするという発表を5月にも行うという噂(Google、AppEngineでJavaのサポートを開始)に、Amazon EC2向けのJavaアプリ開発用のEclipseのプラグインが公開(Amazon.com,EC2向けJavaアプリ開発用のEclipseプラグインを公開:ITpro)されました。

結局Javaって重要なのね。

 

Amazon EC2でJavaの導入コストを下げるプラグインも結構便利そうですが、それ以上にGoogle App Engineはすごいですよね。何せ環境を全く意識しないでも、スケーラビリティも全部Googleが調節してくれるのですから!!

(最近aipo4の試用で自分はaipo4を使いたいだけなのに、導入するのに疲れ果ててしまったので…これって本末転倒?じゃん。)

 

すでにJavaも動かすことが可能なAmazon EC2はともかく、Google App EngineでJavaが動かせる点は個人から企業への転換になるのかなぁ~ なんてね。
その点過去の資産・経験をそのまま使うことの出来るまだ見ぬWindows Azureは強いですよね。

2009/02/25

Google App Engine の有料サービスがスタート

App Engine by badcrc.
App Engine on Flickr - Photo Sharing!

Googleのインフラの上でアプリケーションを動かすことができるPaaS “Google App Engine”がついに離陸です。

今回の有料サービス提供に伴い、無料分の内容も変更されています。
これまでは500万PV/月無料で利用できましたが、これが1日6.5時間分のCPU利用、1日1GBの帯域使用に変更されます。どっちがいいのかは…いまいちわかりません:p
その代わり無料で利用できるストレージ容量が500MBから1GBに拡張されました。

 

Quotas - Google App Engine - Google Code
それぞれの詳しい解説は英語ですがこちらに書かれています。

ちなみに超過分の課金料金は

  • CPU
    0.1ドル/時間
  • 帯域
    アップロード 0.1ドル/GB
    ダウンロード 0.12ドル/GB
  • データストア
    1GBあたり0.15ドル/月
  • 送信Eメール
    0.0001ドル/通 (2,000通/月 までは無料)

なお、Amazon EC2のようにお金さえ払えばどこまでもしてもよいというものではなく、それぞれに上限も用意されているようです。

 

あとはSLAの発行などを行えば、文句ないサービスになりそうです。
…Javaとかほかの言語にも対応してくれると、Windows Azureと直接対決できそうな気がします。

無料分がいまいち分かりにくいですが、おそらくこれまで通りの使い方をしていても問題なと思います。

 

via 「Google App Engine」の有料サービス開始 - 無料割当が1GBに | エンタープライズ | マイコミジャーナル

2009/01/17

Google App Engine ( Yahoo BOSS + Twitter ) = TwitterNews

Boss by Jinho.Jung.
Boss on Flickr - Photo Sharing!

すごいマッシュアップです。
作ったのはYahooの社員。

TweetNews Search 'yahoo'

 

Yahoo! BOSSというのはものすごい衝撃的な事なんですよ!!
米Yahoo!が持っている検索エンジンを非常に手軽にマッシュアップできます。しかも、通常であれば検索回数の問い合わせに制限があるとこが…一切の無制限で利用できます!

衝撃的です。

ただし、日本のYahoo! Japanは独自のインデックスを持っているらしく完全にはカバーしていません。

 

今回作ったマッシュアップはYahoo! Newsの記事とTwitterのそれに関する話題を一度に表示してくれるというもの。
もちろんこれを動かすインフラはGoogle App Engineです。

http://tweetnews.appspot.com/fresh?q=yahoo

一切日本語は利用できません。

ソースコードも公開されているので、腕に覚えのある人は日本語も対象にしてみたりなんかすると面白いのでは?

 

via BOSSの開発者がYahoo NewsとTwitterを融合してTweetNewsを作った

jaiku はオープンソースになってからが勝負

I 504 Jaiku by atmasphere.
I 504 Jaiku on Flickr - Photo Sharing!

先日6種類のサービスの終了が予告されました。
そのうちの1つとしてGoogleが2007年に買収したTwitterクローンのjaikuが含まれています。

既存ユーザ向けのサービスは継続されるそうですが、それだけでなくGoogle App Engine上で動作するオープンソースプロジェクトとして公開するとのこと。

それでも、ジャイクのエンジンをオープンソース化する取り組みは素晴らしいと私は思う。グーグルは、本気でジャイクをトゥウィッターのライバルにするつもりであり、実際に、同社にとっても、この方が都合が良いはずだ。要するに、自分のマイクロブログ・エンジンをグーグル・アップ内に取り込むことが出来るのだ。お金の匂いがプンプン漂っている。この取り組みは、ずっと前に行われていたと思われていたが、とうとうその時がやってきたと言うことだ。
「Jaiku」がオープンソース化 : これからが本当の勝負 at ブログヘラルド

Apache Licenseで公開するそうです。

組織化するのではなく、オープンソースでやっていく。
非常にシンプルな仕組みなので、応用の幅が広がります。例えば、セキュアな接続・高度なユーザー管理などを提供すれば企業向けのつぶやきサービスを提供できるかも知れません。
もちろんオープンソースなのでGoogleがコラボレーションツールとして…Google Appsに組み込むことだって出来るわけです!

そうなった時にGoogle Talkは…

 

何はともあれこれでjaikuがTwitterに負けたと言うのは時期尚早ですね。
Google先生の次の一手にご期待下さい。

2008/12/19

Google App EngineのJava版 Stax Networksが始動

image
Stax Networks - Home

Amazon EC2を基盤のインフラに、Google App Engineのように特定の言語に特化することで開発者はインフラ面に気を配らなくてもWebサービスを展開出来ます。

このStax NetworksjavaでGoogle App EngineのPythonのような手軽なアプリ開発を実現します。

StaxはAmazon EC2で開発した。デベロッパーは自分で物理的インフラを構築しなくてもJavaアプリを作って実装できる。

目下、Staxはユーザーから利用料をビタ一文とっていない。いずれはEC2はじめ他のインフラ・プラットフォーム同様、リソース利用量に応じた課金モデルに移行となるが。試用希望者は招待コード“techcrunch”でアカウント作成するといいよ。

Amazon EC2を使っていると言うことなので、日本からのアクセスはおそらくお世辞にも速いとは言えないでしょう。
しかしながら、PhotoShereのようなアイデア勝負で成功?しているサービスもあります。

現在はベータテストという事なので、腕に覚えのあるjava開発者は1つチャレンジしてみてはいかがでしょうか;p

 

Google App Engineでサポートして欲しい言語として人気の高いjavaという事ですので、HITするかも…
まさにクラウドコンピューティング上でクラウドコンピューティングをサービスする。
なんとすさまじい生態系です;p

 

via Java対応のGoogle App Engineとも言うべき「Stax Networks」ローンチ

2008/07/27

Google App Engine : 10 applications

グーグル社員、「App Engine」でPerl対応を目指すプロジェクトを明らかに:ニュース - CNET Japan

Fitzpatrick氏は、「私は(Googleに勤務するそのほかのPerlハッカーとともに)、われわれの20%プロジェクトを公にしてよいという許可を得た。ぜひ、そのほかのPerlハッカーにも手伝ってほしい」と述べている(Googleは、開発者が就業時間の20%を個人的な開発にあてることを許可している)。

「GoogleではPerlは主流の言語ではないので、これまでのようにPerlでプログラムを書くことはなかった。だが、私は自分個人のウェブアプリケーションをApp Engineで動かしたく、その際はPerlでプログラムを書きたいのだ」(Fitzpatrick氏)

GoogleはApp Engineに新しい言語を加える計画だが、具体的なことは明らかにしていない。Perlは、App Engineに対応してほしい言語としては、Java、PHP、Rubyに次いで4番目に要求が多い

どちらかとしてはPHP/Rubyに対応して欲しいのですが、それでも対応言語が増えてくれるのは嬉しい。

 

実は日本語サイトも出来てるみたいです。

Google App エンジン - Google Code

 

1

あと、Google App Engineで作成できるアプリケーションの数が3つまでから10個までに増えてます。

ありがたやありがたや

2008/06/07

Mind Output

Mind Output :)
http://pydalice1.appspot.com/mindoutput/

2
ログインしていない状態でのサンプル

っていうサービスを作ってみました。

基本はサンプルのゲストブックです。

 

どこかの雑誌で、文章を書くときに題材にしていることに関連しそうなことを「Yes」「No」で書き出してしまった方がまとまった文章になるよって 読んだ気がするので作ってみました。

「Yes」「No」というのではなく、 ☆ なのは利用してくださる方が微妙な解釈を独自につけてくれればいいなぁ~と。

 

3
ちなみに自分のGoogleアカウントでログインした場合

★の部分をクリックするとその項目を消すことが出来ます。

ログインして書き込んだことは共有されることはありません。

 

本当にGoogle App Engineをかじっただけなので、何か不慮の事態が起きるか分からない。

ログイン周りをGoogleに任せられるのですごく楽にできました。

 

今度はもうちょっと実用的なサービスを作ってみようと思った。

2008/06/02

GAE : 一言掲示板

つっても、標準で入ってるデモの見栄えをいじっただけなんですが…

一言メッセージボード
http://pydalice1.appspot.com/hitokoto/

1

色々いじりまくったおかげで、Pythonのなにがしが分かったような気がします。

テンプレートとか使ったらもっと見やすくなると思う。

 

あと、元からなんですが何も入力しないで”Say”を押してデータベースに登録されちゃうのがどうすればいいのか…

 

 

根本的なことからやり直さないと…

2008/05/31

GAE : 13日のFriday検索

GAE は Google App Engineの事です。

今日からは横のタグに“GoogleAppEngine”が増えましたので、今後関連しそうなのはそれに追加してきたいと思います。

418rHjXqbUL._SL500_AA240_

ちょうど、昔買った”みんなのPython Webアプリ編”に手をつけていないことを思い出し、Pythonだし、ウェブアプリだし、App Engineで動けばめっけもんじゃね? と言うことで作ってみました。

 

最初の方に掲載されている単純なやつです

「13日の金曜日を探し出すウェブアプリケーション」

 

コードはほとんど同じです。

文字コードの関係ですごい苦労したけど…なにが悪かったんだろう…

ともかくサンプルまんまなんで解説は、本を買って読んでください:P

 

Google App Engineにアップロードしてみるとあっけないくらい、何もしないで動きました。

13日の金曜日検索
http://pydalice1.appspot.com/friday/

2

こんな風になると思います。

(よく見ると2008年がなくね!?)

 

3

おまけ。

Androidからもちゃんとアクセスできました!!! (なんかWebアプリ作ってる気がする~

でも、w54saのEZwebからリクエストが帰ってこなかった…

 

ちなみに、一番苦労したのはapp.ymlの設定 (以下、自分用のメモですね)

application: pydalice1
version: 1
runtime: python
api_version: 1

handlers:
- url: /
  script: hello.py

- url: /friday/.*
  script: friday.py

- url: /.*
  script: hello.py

これが現在のapp.ymlです。上の4行は特に問題はないのですが、その下がややこしい。

詳しくは

Configuring an App - Google App Engine - Google Code
http://code.google.com/appengine/docs/configuringanapp.html

を見てもらえば一発なんです。公式ですから→結論。

 

- url: /
  script: hello.py

url: これはアドレス。細かく設定できるみたい。
script: そのアドレスにアクセスした時に動くPython等のファイル(ディレクトリ丸ごとも可)

ただ、これを書くときの注意として上にある物が優先されると言うこと。

 

-url:/.*

と書いた場合はドメイン下、全てに適用になりますので 404 Error とかには便利なのですが、これを一番上に持ってくるとそれにしかアクセス出来なくなります。(たぶん

なので一番最後にこれを保険に持ってくるのが良いと思います。

(ここまで書いてなんだけど、たぶんです)

 

ちなみに - url: /friday/.* と書いてますので

http://pydalice1.appspot.com/friday/sfddoubgoaub/o/asdno/asdniad

とか無茶苦茶書いても/friday/にアクセスすると friday.py が動きます。

 

意識しないでディレクトリを割り振れるのは、便利だと思います。

アップロードが毎回全部なので、その辺どうやるのか気になる。