When it’s ready.

出来るまで出来ない

python

Python温泉 #10 ファイナル

Youtube APIとOpenCVだらだら触った2日間だった。OpenCV2.3.1aとPythonの組み合わせの資料が少なくて思いの外時間を食った。 ジェスチャーまで行けなかったけど、顔切り出しまでのコード OpenCVをインストール Brewで2.3台が入るのでそれを利用させてもらっ…

超シンプルな、pushState + Ajax = PJAXのサンプル Flask編

HTML5熱いですね。いろんな意味でBigPipeやら、HTMLでテンプレートエンジンとかいろいろ出ていますがユーザービリティ下げちゃいけないよねって事は、どの技術でも大切な共通項ですね。pjax = pushState + ajax使えば、リッチな人にはサクサクなUIを、そうじ…

オールドPython2.4.xでのtimeoutの仕込み方

Python2.6だと import urllib2 def hoget(): try: result = urllib2.urlopen(req_url, timeout=5) return result.read() except urllib2.URLError, e: print e で仕込めるらしいが、Python2.4.3だと使えない。(いまさら2.4なのが痛いが)で、2.4だとどうす…

情弱ユーザーにも使えるRedmine @sakuraVPS(ubuntu10.04)

こんにちわこんにちわ。ニュースではめっちゃ雪降ってるところがあるのにまだ今シーズン雪を見たことないJJなa2cです。今日は、Redmineのインスコねたです。 0.12から、hgが使いやすくなっただの日本語が標準で入ってるだの噂を聞いてTracでもいれてみようと…

xrange? OS? なんのちがいだろ?

xrangeで高速化 ? python練習帳pythonのコードを多少高速化してみたみたいなエントリーを見つけて自分もやってみたけど、結果がえらい違った。 上記Blogでテストされている方は、i7のメモリ6GBとか結構ゴージャスな環境でやっているみたい、私はMBP15インチ…

Flaskでおっきめのアプリになってきた時にモジュールで分ける方法

PythonHackathon2010.11に参加しました。redisチームに紛れてFlaskもやってました。さて。PythonでWAFって、定番がないですよね。(良いか悪いかおいおいて) 個人的には、デカ目ならDjango、ちっさ目ならFlaskを選んでいます。とはいえ、最近はFlaskばっか…

リアルタイムWeb 勉強会に参加した

Greeさんの最高です!会場ありがとうございました。node.jsのハカソンをやって、リアルタイムWeb関係のLTをやるという進行の会でした。node.jsはwktkですが、手が出せませんでした。 そのかわりFlaskとみんな大好きなmeinheldを使ったWebSocketアプリ作って…

0と1を次々返す方法

TrueだったらFalseで、FalseだったらTrueにしたい。 なんかそんなことそこかしこで必要で、その為の便利なものが あるのかなぁと思ったんだけど無いぽい。あれかな、TrueとかFalseを1とか0とかで表現してる時点で情腹な気もする 初めのやつ x = a = (a - 1) …

FlaskをUbuntu上のApacheにデプロイする方法

今後のためのメモ。Djangoのデプロイの仕方はなんとなく馴染んだけどFlaskのやり方がいまいち分からなかったので出来るようになってみた。 ついでにアプリごとにサブドメイン切ってみる。パフォーマンスとかは全然考えていない。 条件てきなもの app置き場 /…

FlaskでHTMLのオフラインキャッシュを使う

Flaskを使ってキャシュさせる方法 イメージが何百枚も有るようなWebアプリでいちいちDLさせたくないのでキャッシュを使うようにしてしてみた。マニフェストを配信する必要がある。マニフェストファイルのmime-typeは、’text/cache-manifest'で返せばいいらし…

Pythonで簡単に設定ファイルを使う。書き換え可能で、配列も辞書型も使う方法

Flaskがいい。やりたいことに最小手で辿り着ける。JS書いてる時間の方が長いくらい。 ちょいちょいいじってると不便だなぁって思うところは、標準の設定ファイルが無い Djangoはsettings.pyが用意されてて適当に弄るだけで色々便利だった。Flaskに 限った話…

Flaskってドキュメントの充実っぷりもいいよね

Flaskの公式サイトにドキュメントもアップれています。ver.0.51かつ出来てから間もないのにその充実度はかなりのものがあり大変ありがたく読ませてもらっています。さらに、ドキュメントはSphinxで生成されていて、ソースも簡単に入手出来たりします。日本語…

こんにちわFlaskさん Pythonのお手軽WAF

Djangoはとてもいい。とてもいいが小さなサービスを作るときにはちょっとメンドクサイ。urls.pyみたいなのは別ファイルに別れていなくていいし、settings.pyも毎回同じこと書いてる気がする。大きなサイトや仕事でやるならいいのかも知れないけど小さな物を…

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

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

GW Hackathonに参加した

黄金週間になぜかハッカソン 会場だった部屋がお喋り禁だったので、Lingrでコミュニケーションをとりながらの作業となった。話せないけどむしろコード片や画像が張り付けられるのでとても便利と再確認。Django-jaや最近だとKay−jaなんてあるといいなぁとか・…

easy_installでモジュールを解凍でインストールするやつ

いっっっっっっっっっっっっっっも忘れるのでめもhgをアップデートしながら解凍でインストールする場合 easy_install -UZ mercurial

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

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

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

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

osx10.6でPyQt4のセットアップ

OS標準のPython2.6を使って、Qt4.7を利用できる環境を構築する。 なにげに日本語のQtフォーラム(http://qtusersforum.s2.zmx.jp/forum/index.php)とかあって、使い易いかも知れないと妄想に駆られている。 必要なもの Qt4.7 SDK(LGPL版) http://qt.nokia.com…

Pythonリスト内包表記文法 低速マスター

リスト内包表記(LC)使った方が圧倒的にコードが読みやすく、短くなる。慣れてないという理由で使われてない気がするので今後の自分のためにも、メモを残す。LCは基本的に、ListやHashを処理する際に使用される。例えば、規則性のある並びのListが欲しい時…

Pythonで自動化、GoogleDocsのSpreadSheetを使ったディスク使用量モニタースクリプト

気づいたらDiskの残量がメチャ減ってるときってありますよね。Nagiosとか監視ツール使って閾値超えたら警告出すとかやってる人も居るかと思います。監視ツールはエラーの発生はログ取りするけど、日々の使用料を記録して見やすくなってないのが大気がします…

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

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

GyazoをGoogleAppEngine上に作ってみた。

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

pythonからコマンド呼ぶ

pythonからコマンド呼んでその返り値も利用して何かしたくなった。 sh使った方が良いとかそういう話もありますが、まぁpythonで。 commandsという便利そうな野があったので使ってみました。サンプルで、適当な範囲のIPから返答があるかどうか調べて、OK/NGを…

Twitter Streaming API 何て素敵なのがあるじゃないか! Pythonでアクセスしてみた。

Pitだけインスコしてください。Pitで必要なのは以下の設定 twitter.com: email: Your_email password: Your_Password user: Your_ID 送られてくる度にprintしてるという理解であってるのかな? #!/opt/local/bin/python # coding:utf-8 import base64, urlli…

1週間前にCodeCamp(旧名:Python旅館) #4に行ってきた

Pythonに留まらず(Pythonはむしろ少数派?)いろんな言語で、みんなでただ集まってしゃべりつつキーボードをなでるイベントとしてなりたっている、CodeCamp(旧名:Python旅館) #4 に行ってきました。今回で第4回らしい。0回もあったから今まで5回もやってる…

pythonのmapの使いどころの一つ

LLTV行けなかったよぅ。USTも見つけられなかったし、TVって名前なのに中継してないの残念、まぁ有料だからしょうがないな。報告ブログなどをポチポチ見て回っています。LLTVでどなたが言ったか分からないけど「Mapを使っていきましょう」と言っていたらしい…

Django Projectを開発サーバーの使い心地のままにApacheでデプロイする

ずーっと、デプロイが苦手だった。 自分でやると全然動いた事が無い。 でも気づけば、いつの間にか出来る様になってた。 今後忘れてしまわないようにメモ。 昨日作った環境でデプロイを行う。 機能的なところ 作成したプロジェクトがきちんと動く事 自動作成…

ナショナルトレジャーに出てきたプレイフェア暗号の片道分を作ってみた。

http://www.disney.co.jp/movies/nt2/映画の中で出てきた、2文字区切りのアルファベットを見て主人公が「プレイフェア暗号の特徴だ」と言ったのを聞いてしまい。WikiPで調べたら実際にあった。キーワードから文字変換の為にマトリクス表を作成する。マトリク…

CSVファイルとSQLite、どっちの方が速い? Djangoの話

そろそろDjango飽きてきた。CSVファイルをJSONで配るだけの簡単なDjangoアプリ作ってます。 ある程度出来たんだけど、実際に動かすとサクサクしてないので、DB使えば速くなるんじゃないかと素人考えで、SQLite使って実装しました。 CSVバージョン ファイル開…

Djangoのrunserverパフォーマンス、UbuntuとOSXでの違い

DjangoでCSVファイルをロードして、Jsonで返すだけの簡単なスクリプトを書いた。 クライアントも5台くらいなので、開発サーバで実行させたい。実行させるOSが、Ubuntu9.04とOSX Server10.5.8どちらがいいかわかんないので、abしてみた。 悩ましい結果となっ…

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…

誰も知らない夜のwaveのrobot

GDD参加者へのwavesandboxアカウントの配布が始まったようです。私のwaveのInboxも日本語のwaveが増えてきています。現在まだ使い方を探っている段階で、挨拶だったりFont弄ってみたり、写真をのせあったりしている方も居ます。常用するには、まだ、サービス…

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

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

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

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

Pylotで負荷テストしてみる

負荷テストは、今までabでしかしたこと無かったけどpython製の負荷テストツール「pylot」というのがあったので試してみた。かなりイイ感じなので紹介 ダウンロード http://www.pylot.org/ 公式ページからダウンロードできる。5/22現在のバージョンは1.24 機…

辞書内包表記

これいいんじゃないか? % python3.0 Python 3.0 (r30:67503, Feb 28 2009, 18:36:53) [GCC 4.0.1 (Apple Inc. build 5490)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> a = range(1,11) >>> b = range(11,21) …

friendfeed のクライアントをPythonで作ったぉ。pyff ターミナルクライアント

清楚なクライアントから始まり、pytterにしたりと色々クライアント弄ってきたけど、twitterのライブラリが同じ名前で色々存在していたり、検索機能がいちいちパッとしないので最近あまり使わずにいた。先週くらいからFriendFeedのフォロー祭りが始まってそこ…

PythonHakathonの課題(not義務)をやってみた。

「1以上100未満の『2個の素数の積』である整数を列挙しなさい」 というやつが、8月のPythonHackathonのアンケートの所に書いてあったがその場で分からなかったので空白で提出した。(そういえばまだ、確認のメールが来てないな。登録できてないのか?)やらな…

リスト内包表記がかなり楽しくなってきた。with λ

別にビンゴカードを作りたい訳じゃないけど、http://d.hatena.ne.jp/stog/20090128 ココ観てたらリスト内包表記で作りたくなってきた。最近リスト内包表記がとっても気持ちよくてたまらない。ビンゴカードは、5x5のカードです。縦の列にはそれぞれ、1-15、16…

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件ずつ区切られて、そ…