When it’s ready.

出来るまで出来ない

gae

GAE/Python でフルテキストサーチ実装した。 redisを使ったインチキバージョン

GAEにどんどん機能が追加されていく中、なかなか実装されないのが全文検索。品詞がとれるセグメンターだけでも提供してくれたら全然便利だと思うんだけどそんなアナウンスはまだ有りません。なきゃ作ればいいじゃんという事で、全文検索もどきを実装してみま…

GoogleAppEngine Pythonでフルテキストサーチ TriGram

1日で作ったのでエラーありまくりですが、一通り動いているのでURL公開 http://a2c-fts.appspot.comngram(TriGram)でプチプチ切って、エントリーのKeyNameを転置IndexのListにAppendしてます。 元ネタは、search.twitter.comから httpが含まれる日本語の検索…

GoogleAppEngineからLingrにポストする。BotとかLoggerとか

Lingrが熱い。http://lingr.com/ 半年間位には復活してたけど、なかなか利用者が増えるほどにはなっていなかったけどこの数日でDjango-jaもJava-jaも出来た。id:yoshiori氏が、PythonでLingrを使えるライブラリを作ってくれたのでそれをGAEで使えるように改…

KayでシンプルにTaskQueueを使いこなす

AppEngineには、どんな処理も30秒以内に終わらせないとダメって言う通称30秒ルールという神の掟があってこれを破るとプロセスをKillれてしまいます。ほとんどの処理は30秒もかからないので問題ないですが、クロールとか形態素解析とかやりだすと30秒なんて一…

Ustreamer with SocialStream がなんとなく動きかけてきた。

昔はUstream+IRCクライアントですんでたけどどうやらSocialStreamと一緒に見た方がUstは楽しめるのでSocialStreamをインプリしてみた。力量不足でUstreamAPIからSocialStreamのエンベデットを抜き取ることが出来ない。今のところマニュアルでSocialStreamの…

Ustreamの現在の放送状況をTwitterのサーチ結果から取得しチャンネル名を特定する

Ustreamのサーチには、言語指定がない。どれくらい人気があるかは取れるが英語のチャンネルだらけ。 日本の方が大勢みているチャンネルをMultiUstreamViewer(http://ustview.appspot.com/multi)で利用するためにスクリプトを書いてみた。GAE上ではたぶん動…

GoogleAppEngineで動くGyazoクローンgaezooのソースをアップしました。

開発サーバとappspot.comで、アプリに返すURLを適宜変更する部分を書くのに手間取ったけど、なんとか簡単に使用出来るようになったので晒してみる。ツッコミ歓迎です。思いっきり公開先書くの忘れてた。http://bitbucket.org/a2c/gaezoo/今動いているのは、g…

GyazoをGoogleAppEngine上に作ってみた。

いろいろな言語でGyazoクローン作られてるのに、なぜか相性が良さそうなGAE版がなかったので作ってみた。 最近GAEに機能追加されたブロブストアを使ってみようと思ったけど面倒くさかったので不採用。 その代わり、アクセスが多くなりそうな、投稿後2分間は…

GAEフレームワークKayの初めの最初

ここ数日悩んでいたKayの起動に関してひとまず決着した感じ。Port版の2.6や2.5だと、推奨バージョンじゃなかったり、必須モジュールが別パッケージになっていたり、色々大変なのでPort版で動かすのは、ややめんどくさい感じです。お勧めの構成は、python.org…

Kay お試し中

インスコしてあるPythonの状態 $ python --version Python 2.6which python /usr/local/bin/python Project作ってみる Running on Kay-0.0.0 /Users/atusi/repos/google_code/kay-framework/kay/lib/werkzeug/__init__.py:109: UserWarning: Module yaml was…

忘れっぽい自分のために、Google App Engineのリンクリストを自動生成する

GAEは、10個前でしかサブドメインが取れない制限がある為、一つのAppIDの中にパスを切ってアプリを複数詰め込むと言う使い方をしている。app.yamlに飛び先を書くだけで、サブディレクトリ以下で完全に分かれて動作するので簡単に作れるくせに、ちゃんと動く…

GDD2009 参加した。一年間で変わった事

昨日参加したGDDのハッカソン(GAE)も終わり、今年のGDDは無事に終わった。今年も得るものが、とても多く、知識だけではなく物理的にタオルやらDevPhoneやら得る事が出来た。GDDのセッション自体の客観的な内容は、当日に書いた下記エントリに譲るとして、今…

手間 - (データは非同期で送受信+ブラウザでJS使ってレンダリング)= JSONView

jQueryで.ajaxし出すと、テンプレート書いたりするのがマジでばからしい気がしてくるとかしてこないとか。データは、Jsonだけ返せばいいよねみたいになる。ならない?そんなときに、ゴキちゃんのレスポンスの表示エリアだけだとイマイチ綺麗に見えないし、め…

DjangoHackation Disc8 に参加し、GoogleAppEngineでO3Dデータのシンプルビューアーを作った。

今回のDjangoHackathonは、Disc8。場所は市ヶ谷健保会館 会議室F(たぶん一番デカイ部屋)参加者が47人とHands onとhackathonをメインにしたイベントでは大所帯となった。DjangoとGAEのハンズオンとHackthonがそれぞれテーブルに分かれ行われた。詳細はhttp:…

GAEのAPI1.2で追加になったCronを使って転置インデックスの更新をしてみる

週末のGAEハカソンでどうやってcron的な処理をしようかなぁと思っていたら本家から、cronが発表になった! ありがたくソレを使って見ることにした。使い方というほどの物でもないけど、cron.yamlをapp.yamlと同じ階層に作成して、 説明 叩きたいURL 叩く頻度…

エロティックHadoopにつられる前に、GAEのputスピードはかってみた。

GAEの動作が意外に遅い。もっとぱぱっと保存なり、処理が終わると思いきや意外と数秒、時には20秒とかかかる。 EC2使えばもっと快適に出来るそうだよとか、そんな声も聞こえるが、Deployの簡単さやIOの拡大がノーコンフィグだったりするところは大変魅力なの…

GAEのRemoteAPIを使って大量のEntityを消す。それも素早く

RemoteAPI使ってデータ消してる時に、気づいた。消し方によってはめちゃくちゃ時間がかかる。以下、実際のShellをペースとして、適宜コメント付けてみる。 今回は転置インデックスの構造を変えたので、以前のデータが要らなくなったので消す作業 # 転置イン…

gae上でDataStore使わずにmemcacheで転置インデックス作ってみた。

あまりテストをしてないけど、少なくとも100倍くらい速いし、まず時間かけ過ぎで落とされない。これはとても大きい。 以下、コード def uniqueInverseIndex(feed_id, text): try: ngram = NgramTokenizer(feed_id, text) ngram.setNgramArr(2) except: respo…

GoogleAppEngineのサーバサイドの処理時間をProfileで表示させる為にcProfile使う

Python旅館ネタ。これまた、tmatsuo氏に教えてもらた。 googleAppEngine内で、何の処理にドンだけ時間が掛かってるとか、どの処理が何回呼ばれてるとかそういうのが知りたい時にprofileを使うとある程度分かります。やり方は凄い簡単で、デフォで使ってるmai…

GoogleAppEngineでremote_apiを使う s_thx>tmatsuo

GogoleAppEngineで、日本語検索作ってたら、転置インデックスの作り方ミスった。簡単に直ったんだけど既にappspot.comで作成された転置インデックスが邪魔なので一気に消したいが、デフォルトのDashBordでは一気に消せるインターフェースが用意されていない…

GAEでの1000件のリミットの所在

「GAEのDatastoreって1000件しかデータがとってこれないよねぇ、大変だよねぇ」という、意味が有るのか無いのかよく分からない会話をしたりする訳ですが、1000件というの数が、どこに効くのかなぁと思いテストコード Model.all()が1000件ずつ区切られて、そ…

GoogleAppEngieでigの付箋アプリみたいなの作りたい。

複数人で共有出来る付箋が非常に面白いとVoluntas氏から聞かされ、付箋の共有もかけてもらったのだが、全然情報が流れてこない。くやしいので、GAEで付箋アプリもどきみたいなのを作ってみた。Googleの付箋がうらでどらくらい賢い事をしているか判らないが、…

Python で全文検索 バイグラムの作り方 その1

GAE上でやっぱり全文検索は欲しい訳でそれが無いならば、作るしか無い訳で、今それを頑張っている所。tinySegmenter使ったやつはもう出来たけど、コレ取れるだろとか言う簡単なのが取れなかったりするので、N-Gramで絶対取れるようになるのを目的とする。多…

GoogleAppEngineでWassr検索作った。色々つまずいた点のまとめ

とりあえづ、必要っぽい機能を最低限盛り込んめた気がする。wassr検索(http://a2c.appspot.com/wassrhub)を作る時に、ひっかかった所と対処をリストアップする。 epocタイムを,datetime型にする方法 wassrのjsonAPIで返ってくるデータは、epoc timeでなんか…

アプリ「Don't Think Feel!!」を作る事にした。熱海的な意味で

pyspaで、何を作るかモンモンとしてばかりも居られないのでDTFを作る事にした。「考えるな感じろ」というなの、勉強会補助アプリ何かのカンファレンスに行ったり、勉強会に行った際にそこに来ている人が使える様なWebアプリです。機能的には プロフィール登…

Dashcode使ってGAEアプリのインターフェースfor iPhone を作る。

XcodeとObjCをいじった結果、コンパイラーがやっぱり嫌いなんだなぁと、痛感した。このままじゃ、のー成果になっちゃうので、Dashcodeを利用して、GAEアプリのiPhoneインターフェースを作ってみました。アプリは、単語帳的なモノでそれぞれの単語名(タイト…

インストールからHelloWorldまでやるのに、GoogleAppEngineは40秒 動画を上げてみる。

注)この時間ではWindowsだと、出来ないかも知れません。実際に、GoogleAppEngineをやる時にまずはじめにやる事は、環境構築。ここでつまづくと何も出来ないので、ムービーにしてみました。標準でhello world!のページが作られるので、それを修正して、文言…

jQueryでDraggableはめちゃ簡単。

JUI2008に参加してから、いつかやってみたいと思っていたDragインターフェースを作ってみた。http://a2c.appspot.com/iu普通にやるのは、いろんなところで書いてあるので、今回はGoogleI/Oで発表のあったAjaxLibraryを使用してjQuery使いました。アプリは、…

#gae-ja freenode作ってみた

gaeの情報交換出来たらいいなと、freenodeに#gae-ja立ててみました。ircのリンクってどうやってHPに貼るんだろう・・・

GoogleAppEngineでは、memcacheを使って地球を守ろう!

昨日アップしたImageAPIのサンプルにmemcacheAPIを追加してみた。 mattn氏のブログを参考にさせていただきました。 http://mattn.kaoriya.net/software/lang/python/20080529202100.htmキャッシュへの登録とレンダリング cache_time = 60 memcache.set('inde…