タグ

ブックマーク / a2c.hatenablog.com (8)

  • 超シンプルな、pushState + Ajax = PJAXのサンプル Flask編 - When it’s ready.

    HTML5熱いですね。いろんな意味で BigPipeやら、HTMLでテンプレートエンジンとかいろいろ出ていますがユーザービリティ下げちゃいけないよねって事は、どの技術でも大切な共通項ですね。pjax = pushState + ajax使えば、リッチな人にはサクサクなUIを、そうじゃない人にもそれなりに提供できる。その上、戻るボタンもサーチエンジンにも優しいとくれば、これは試さないわけには行かないですね。 動作サンプル: http://pjax.atu.si/ Pjaxするとどうなるのか? 非同期動作時 http://pjax.atu.si にアクセスをして、リンクをクリックすると要素が非同期に変更される。 非同期に更新されているがURLは、シンプルなものに変更される。 同期動作時 http://pjax.atu.si/parts/x や http://pjax.atu.si/parts/

    超シンプルな、pushState + Ajax = PJAXのサンプル Flask編 - When it’s ready.
  • こんにちわFlaskさん Pythonのお手軽WAF - When it’s ready.

    Djangoはとてもいい。とてもいいが小さなサービスを作るときにはちょっとメンドクサイ。urls.pyみたいなのは別ファイルに別れていなくていいし、settings.pyも毎回同じこと書いてる気がする。大きなサイトや仕事でやるならいいのかも知れないけど小さな物をサックリ何かを作るときにはちょっと大変だと感じる時がある。 その点Flaskはいい、シンプルだしShellを書いてる気分でwebAppを書ける。テンプレートも使えるし、urlsを別に書かなくてもいい!デコレータで書いていくので脳負荷が少ない。 Flaskのインストール sudo easy_install flask 基的なやりとり チュートリアルを適当にまとめてみた。今後の自分用にメモ flask_basic.py #!/usr/bin/env python # coding:utf-8 from flask import Fla

    こんにちわFlaskさん Pythonのお手軽WAF - When it’s ready.
    dann
    dann 2010/08/17
  • Pythonリスト内包表記文法 低速マスター - When it’s ready.

    リスト内包表記(LC)使った方が圧倒的にコードが読みやすく、短くなる。慣れてないという理由で使われてない気がするので今後の自分のためにも、メモを残す。 LCは基的に、ListやHashを処理する際に使用される。例えば、規則性のある並びのListが欲しい時などに利用すると良い。 1, 基礎 リストの作成 forの前が処理、forからList名までがひとつのforの段落で前から評価される。 src_list = [1,2,3,4,5] print [x for x in src_list] # [1,2,3,4,5] リストの作成2 for部で取り出された要素が、その後ろif部で評価され真だったものだけが、初めのx*2に渡され処理される(この場合は、2.4だけ) src_list = [1,2,3,4,5] print [x*2 for x in src_list if x % 2 == 0

    Pythonリスト内包表記文法 低速マスター - When it’s ready.
    dann
    dann 2010/02/03
  • ちょっとしたJS - When it’s ready.

    良くやる事だが、毎回やり方忘れてしまうのでメモ 空っぽの要素に、JSONで渡された情報をもとにひたすら要素を詰め込むやり方 [[1,2,3],['a','b','c'],['x','y','z']]みたいなJSONがあったとして <div id='hoge'> <input type='text' value='1'/> <input type='text' value='2'/> <input type='text' value='3'/> <br> <input type='text' value='a'/> <input type='text' value='b'/> <input type='text' value='3'/> <br> <input type='text' value='x'/> <input type='text' value='y'/> <input type

    ちょっとしたJS - When it’s ready.
  • GoogleAppEngineで動くGyazoクローンgaezooのソースをアップしました。 - When it’s ready.

    開発サーバとappspot.comで、アプリに返すURLを適宜変更する部分を書くのに手間取ったけど、なんとか簡単に使用出来るようになったので晒してみる。ツッコミ歓迎です。思いっきり公開先書くの忘れてた。 http://bitbucket.org/a2c/gaezoo/ 今動いているのは、gaezoo.appspot.comです。特にアクセスしても何も無いですけど・・・ サンプルは、http://gaezoo.appspot.com/4c7f4a666917d03fb0c7dac080103b23.png 追記:Twitterへのポストボタンつけました。 末尾のpngをpostに変えることで、挙動が変わります。 サンプルは、http://gaezoo.appspot.com/4c7f4a666917d03fb0c7dac080103b23.post ファイル構成 -- app.yaml --

    GoogleAppEngineで動くGyazoクローンgaezooのソースをアップしました。 - When it’s ready.
    dann
    dann 2009/12/23
  • GoogleAppEngineのサーバサイドの処理時間をProfileで表示させる為にcProfile使う - When it’s ready.

    Python旅館ネタ。これまた、tmatsuo氏に教えてもらた。 googleAppEngine内で、何の処理にドンだけ時間が掛かってるとか、どの処理が何回呼ばれてるとかそういうのが知りたい時にprofileを使うとある程度分かります。 やり方は凄い簡単で、デフォで使ってるmainメソッドを、real_mainメソッドに改名してprofile_main()から呼ぶだけ、profile_main()内では、<pre>タグ使ってhtmlを追加する処理が書いてあるのでみたい要素をprintするだけです。この方法の他にLoggingに回す方法もあるらしいです。 def main(): logging.getLogger().setLevel(logging.DEBUG) logging.info('-'*80) urls = [('/ngram/api/post', UpDate), ('/ngr

    GoogleAppEngineのサーバサイドの処理時間をProfileで表示させる為にcProfile使う - When it’s ready.
  • gae上でDataStore使わずにmemcacheで転置インデックス作ってみた。 - When it’s ready.

    あまりテストをしてないけど、少なくとも100倍くらい速いし、まず時間かけ過ぎで落とされない。これはとても大きい。 以下、コード def uniqueInverseIndex(feed_id, text): try: ngram = NgramTokenizer(feed_id, text) ngram.setNgramArr(2) except: response.out.write('NgramTokenizer make instance is faild') try: for i in ngram.getNgramArr(): InvIndex = InverseIndex.get_or_insert( "_" +i['word_text'], word_text=i['word_text']) InvIndex.feed_id.append(db.Text('%s:%s'%(i['

    gae上でDataStore使わずにmemcacheで転置インデックス作ってみた。 - When it’s ready.
    dann
    dann 2009/11/16
  • 誰も知らない夜のwaveのrobot - When it’s ready.

    GDD参加者へのwavesandboxアカウントの配布が始まったようです。私のwaveのInboxも日語のwaveが増えてきています。現在まだ使い方を探っている段階で、挨拶だったりFont弄ってみたり、写真をのせあったりしている方も居ます。 常用するには、まだ、サービス自体が安定していないためしばらくは実験的な使い方で行くと思いますが、waveの機能としてはそれ自体を使うだけでなくEmbededやExtensionも使うことが出来ます。 簡単なロボットの作り方 waveに載せるロボットは、簡単に作成することが出来ます。必要なのは、GAEのアプリケーションです。 最小構成のGAE/Pだとファイル2つから始めることが出来ます。 app.yaml robot.py 以下ソース app.yaml application: YourRobotName version: 23 runtime: py

    誰も知らない夜のwaveのrobot - When it’s ready.
  • 1