Subscribed unsubscribe Subscribe Subscribe

GoogleAppEngine

GAEのChannel APIを使ってみたメモ

最近全然触っていなかったGoogle App Engine。 今月初旬にリリースした1.4.0からChannel APIというのが使えるようになってリアルタイムWebアプリが出来るらしい、ということなのでちょっと触ってみた。 Channel Python API Overview | Python | Google Cloud…

いまどきのGAE/Py bulkloader

GAE/Pyでbulkloaderを使ってデータをアップロードする - すぎゃーんメモのあたりからGAE/Pyをほとんど触ってなくて最近の事情も知らなかったのだけど、最近久々に触ってみたらこのへんもちょっと変わっているようで。 Backing Up and Restoring | Python | G…

今さらながら全裸botをOAuth対応した

ちょっとしたミスで@zenra_botが1週間ほど動かなくなってしまっていて、直すついでにようやくOAuth対応もしてみることにした。 http://github.com/sugyan/Zenra/commit/1ce64e748a5684dff2f9118345cc48af11f27b88 やり方については詳しく説明されている記事…

全裸botのfollowerが増え過ぎで動かなくなっていたので直した

気がつくと全裸botを作ってから半年以上も経っていた。 GAEでTwitter botを作った - すぎゃーんメモ 当時はこんな下らないbotをfollowするヤツなんてそうそういないだろうと思っていたのだけど、意外と増え続けて、気がつくと1700とかになっている。 これで…

Google App EngineからTwitterのreplyなどをim.kayac.com for iPhoneに通知させる

前提条件:http://im.kayac.com/ ちょっと引っ越す予定なので自宅サーバーを止めていて、tiarraが動いていない。 今までtiarraからim.kayac.comでiPhoneに通知させていたTwitterのリプライなどが来なくなってしまって寂しいので、Twitterの情報はGoogleAppEn…

Mitaka.rb #5 で全裸botについて喋ってきた

Mitaka.rb第五回 : ATND id:oneringさんにお声をかけていただいて、喋らせていただきました。 お誘いいただき本当にありがとうございました。 発表に使ったスライドはこちら。全裸botと私View more presentations from sugyan .どういう内容を話せば良いかよ…

全裸botの弟分「夜のbot」

全裸bot(@zenra_bot)をちょっと改造して、「夜のbot」を作ってみた。 @midnight_bot ソースコードは全裸botと同じリポジトリに。 http://github.com/sugyan/Zenra 「動詞の前に全裸じゃなくて、名詞の前に『夜の』をつけてもエロくなって面白いんじゃね?」…

全裸botの全貌

全裸bot(@zenra_bot)について。 一応、完成ということにしたので、機能や工夫した点などをまとめておきます。 今後GAE/PyでTwitter botを作ろうとしている方々の参考になれば。 またご指摘やアドバイスをいただけると嬉しいですが、もうだいぶ情熱が失せてき…

全裸botはタイムラインの早さに合わせて呟く

全裸botは23分毎に呟く - すぎゃーんメモというのを書いたばかりだけど、変更した。 多くのヒトが呟いている昼間も、夜更かししているヒトだけが呟いている夜中も、同じ頻度でzenrize(他人の発言を拾ってきて全裸にしてPOST)するのは不自然。 タイムラインの…

全裸botは23分毎に呟く

全裸botはGoogle App Engine (Python) で作ったわけですが、GAEのCronというものはLinuxなどで使われているcronとは設定方法が違っていて、「○分毎」「○時間毎」もしくは「ある条件に一致した日の○時○分」といった時間指定でしか動作させることができません…

GAEでTwitter botを作った

初めて、Twitter botなるものを作ってみた。 http://twitter.com/zenra_bot 公式ページ:http://zen-ra.appspot.com/ フォローするとフォローし返します フォローを外されると同様にフォローを外します フォロワーの発言を拾って、勝手に全裸に書き換えます …

Google Wave Robotを作ってみる

以下を参考にしつつ、何かやってみる。 第2回 ロボットAPI:最速!Google Wave API解説|gihyo.jp … 技術評論社 誰も知らない夜のwaveのrobot - When it’s ready. ライブラリの入手 Python版はこちら。 Google Code Archive - Long-term storage for Google …

GAE/PyでDatastoreのデータを全削除するためのbulkdeleter.pyを書いた

GAE/Pyでbulkloaderを使ってデータをアップロードする - すぎゃーんメモ GAE/Pyでbulkloaderを使ってデータをダウンロード/削除する - すぎゃーんメモ の続き。 そもそもDatastoreからfetchしてきた時点で(この処理はマルチスレッドで行われているっぽい)削…

GAE/Pyでbulkloaderを使ってデータをダウンロード/削除する

前回は、bulkloaderによるアップロードについて色々調べて試した。 GAE/Pyでbulkloaderを使ってデータをアップロードする - すぎゃーんメモ 今度は、データのダウンロードと削除について調べる。 データをダウンロードする アップロードとほぼ同様に行うこと…

GAE/Pyでbulkloaderを使ってデータをアップロードする

bulkloaderとは remote_apiを使ってコンソールからDatastoreにデータをアップロードするためのツール。 初期データとして大量のデータをDatastoreに突っ込んでおきたいときなどに便利。 逆にDatastoreにある内容をダウンロードすることもできる。削除をする…

BPStudy#22 に参加してきた!

GoogleAppEngineの話に興味もあり、何度か名前は聞いていたけど参加したことのなかった「BPStudy」に初参加してきた。 BPStudy - connpass id:yuroyoroさん遅刻のため第一部/第二部を入れ替え。最初にスティルハウス佐藤一憲さん(id:kazunori_279)から。 第…

GAE/J でアクセスカウンターを作った

Google App Engine でカウンターを作ってみた(再) - すぎゃーんメモの続き。というか変更。 以前にPython版で作ったGoogle App Engine上で動くアクセスカウンターを、Javaで作り直してみた。 http://gae-counter.appspot.com/ 基本的な作りは同じで、 Google…

GAE/J 開発サーバー上でのローカルData Viewer

Python版GAEなら、開発サーバー上でも http://localhost:8080/_ah/admin/ でローカル環境用のDashboardを見ることができて便利なんだけど、どうやらJava版にはそれがないらしい(むしろあるのなら教えて下さい)。 せめてData Viewer的なものはローカル環境に…

GAE/JのDatastore Low-level APIを使ってみた その2

GAE/JのDatastore Low-level APIを使ってみた - すぎゃーんメモの続き。 せっかく親子関係の扱いができるのでTransactionを使用してみた。あとEntityを生で使うのがちょっとアレだと思ったので簡単なラップクラスを作ってみた。…けど、微妙。 LowLevelAPISer…

GAE/JのDatastore Low-level APIを使ってみた

ドキュメントを読みつつ、すごく簡単なサンプルを書いてみた。 http://code.google.com/intl/en/appengine/docs/java/javadoc/com/google/appengine/api/datastore/package-summary.html web.xml

GAEデータストアから取り出せるのは1000件までじゃないの?

先日自作したアクセスカウンター。 http://gae-counter.appspot.com/ 作成したカウンターへのアクセス記録を自作の管理画面からみることができるようにしているのだけど、いまこのダイアリーの右下に張り付けているカウンターの記録を見ると。 とりあえずデ…

Google App Engine でファイルをアップロードする方法 比較

Java版 GAE/J でファイルをアップロードする方法を学ぶ - すぎゃーんメモ の続き。 どうやらJava版でcommons-fileuploadを使ってファイルアップロードをする場合はgetItemIteratorから取り出すのが良いようだ。そうすればFileItemFactoryは必要ない。 import…

GAE/J でファイルをアップロードする方法を学ぶ

Google App Engine(Java版)でファイルをアップロードするためにはどうすればいいのか?を色々試しながら勉強してみる。 まず、最もシンプルにこんなHTMLとサーブレットを書いてみる。 <html> <head></head> <body> <form action="upload" method="post" enctype="multipart/form-data"> <input type="file" name="data"></td> <input type="submit"></td> </form> </body> </html> package hoge.fuga…

GAE/J でancestorによるフィルタリングはできない?

今作っているGAE Counterでは、CounterとAccessRecordで親子関係を作っていて*1、あるCounterの子として作られたAccessRecordを取得するのに、ancestorによるフィルタリングを使ったQueryを用いている。 AccessRecord.all().ancestor(counter) で、同じこと…

GAE/J でDataStoreのよくわからない挙動に遭遇

encodeしたStringをキーにしたデータモデルを作って、そのキーで引き当てて取得したデータを参照しようとしたらUserが何故かnullになっていた。 @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Hoge { @PrimaryKey @Persistent…

Google App Engine のDataStoreからUserでフィルタリングしてデータを取得する方法

com.google.appengin.api.users.Userをプロパティに持つデータモデルから、それがログイン中のユーザーと一致するものだけを取得しようとする場合。 Python版では、 from google.appengine.api import users results = Hoge.all().filter('user = ', users.g…

Google App Engine でカウンターを作ってみた(再)

Gitの練習も兼ねて、Gitでバージョン管理をしながらアクセスカウンターを作ってみた。 http://gae-counter.appspot.com/ ソースをGitHubでまとめて公開。 GitHub - sugyan/GAE_Counter: Google App Engineで作るアクセスカウンター indexが生成されてくれな…

GAEアクセスカウンターに記録を残すようにした

Google App Engine でカウンターを作ってみた - すぎゃーんメモの続き。 ちょいちょい変更。 http://sugi1982.appspot.com/ アクセス記録が表示されるようにしてみた。 そしてこのブログの右下に貼り付けてみたので、開いたURLが残るようになる、のかな?

Google App Engine でカウンターを作ってみた

↑試作品なので消える可能性あり こちらで動かしています。 http://sugi1982.appspot.com/ どちらも共通、リロードされるたびに数字がインクリメントされます。 SDKのversion 1.2.1 からimages APIがパワーアップして、画像を合成することができるようになっ…

remote_apiを使ってみた

ドキュメントからリンクが見つけられなかったけど、python版だけなのかなコレ? http://code.google.com/intl/en/appengine/articles/remote_api.html "Creating an interactive console"の例の通りにappengine_console.pyを作って実行しても動かない。 % py…

GAE Hack-a-thon Disc.3に行ってきた

「hackathon」と名のつくものには初めての参加。ドキドキでした。 http://twisted-mind.appspot.com/gae-hack-a-thon-disc-3/ 今回は事前ミーティングである程度のトピックを絞り、それぞれに興味をもったものに集まってチームを組んで作る、という形式だっ…

Google App Engine でBasic認証を実装 改

Google App Engine でBasic認証を実装 - すぎゃーんメモから少し改良してみた。 # -*- coding: utf-8 -*- import logging from base64 import b64decode from google.appengine.ext import webapp class BasicAuthentication(webapp.RequestHandler): def __…

Google App Engine でBasic認証を実装

探したんだけどサンプルが見つからなかった。 自分で作ってみたけどこんなカンジでいいのかな? # -*- coding: utf-8 -*- from base64 import b64decode from google.appengine.ext import webapp class BasicAuthentication(webapp.RequestHandler): def ge…

Google App Engine でloggingを使ってログを出力する

# loggingをインポートする import logging # どこかでログレベルを設定する logging.getLogger().setLevel(logging.DEBUG) # ログを出力する logging.debug('hoge') たったこれだけなのに何度書いてもなかなか覚えられなかったのでいい加減に暗記してしまい…