タグ

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

  • 超シンプルな、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.
    bojovs
    bojovs 2011/08/22
  • Flaskでおっきめのアプリになってきた時にモジュールで分ける方法 - When it’s ready.

    PythonHackathon2010.11に参加しました。redisチームに紛れてFlaskもやってました。 さて。PythonでWAFって、定番がないですよね。(良いか悪いかおいおいて) 個人的には、デカ目ならDjango、ちっさ目ならFlaskを選んでいます。とはいえ、最近はFlaskばっかりになっていますが・・ Flaskでちょいちょい色気づいてくるとドンドンURLが増えてきたり、ソースがでかくなってきます。そんな時に、Djangoだったらappに分けられるのに!とか公開したりするわけです。Flaskでも、同じようにProject内にAppが配置されるようになれば良いなぁと思っていたんですが、今日の勉強会でやり方を知りました。 flask.Flaskでappを作りますが、flask.Moduleという奴があります。それをappにURLと共に登録するとDjangoのAppの用に使うこ

    Flaskでおっきめのアプリになってきた時にモジュールで分ける方法 - When it’s ready.
  • MacBook Air のDiskが速いだって?こちトラ IntelSSD自腹じゃ! しかし、ベンチマークでボロ負け - When it’s ready.

    巷じゃMBAのSSDが速いから、CPUしょぼくてもモーマンタイとか言っていますが、i7でランダムリードが激速なIntelSSD買った自分としてはそんなもん取るに足らないと思ってました。 で、手元のMBP15 with IntelSSDでベンチマークしてみたわけですよ。 いやー、さすがインテルですね。ランダムリード速いっすよ。160MBとか出てますよ。スコアとしては、178.95ポイント!これは、全然AIRには勝てないでしょと思って、AIRのベンチマークを見たわけですよ。 (リンク先で見てください) http://japanese.engadget.com/2010/10/22/macbook-air-11-ssd/ ( ゚д゚) ・・・ (つд⊂)ゴシゴシ (;゚д゚) ・・・ (つд⊂)ゴシゴシゴシ _, ._ (;゚ Д゚) …!? Randomのスコア520とかですよ!!全

    MacBook Air のDiskが速いだって?こちトラ IntelSSD自腹じゃ! しかし、ベンチマークでボロ負け - When it’s ready.
  • 大きなMVCと小さなMVC2 始まったな > ChromeWebApps - When it’s ready.

    約1年前に「大きなMVCと小さなMVC」というエントリーを書いた > http://d.hatena.ne.jp/a2c/20091015 あれから1年の間にブラウザ<>サバ間でのMVCの分離はあまり進展してない気がしている。そろそろ始まりそうな予感がするのでエントリーしてみる。 xhrが99年に実装され各ブラウザに広がりそして一般のサービスに展開されるようになったのは、解釈によるが5-6年かかってるかと思う。今となっては、Ajax使ってないメジャーなサービスの方が少ないくらい当たり前の状況なのは誰も異論はないと思う。ブラウザに実装された機能を使ったサービスが一般化されるのに数年のDelayがある。そして、そのDelayは着実に短くなっている。そんな次にブレークしそうなのがより発展したMVCの分離じゃないかと思っている。 Chrome限定の話になってしまうが、ChromeWebAppsとい

    大きなMVCと小さなMVC2 始まったな > ChromeWebApps - When it’s ready.
  • GAE/Python でフルテキストサーチ実装した。 redisを使ったインチキバージョン - When it’s ready.

    GAEにどんどん機能が追加されていく中、なかなか実装されないのが全文検索。品詞がとれるセグメンターだけでも提供してくれたら全然便利だと思うんだけどそんなアナウンスはまだ有りません。 なきゃ作ればいいじゃんという事で、全文検索もどきを実装してみました。ひとつ前のエントリー通りTriGramです。 以前、恵比寿のイケメン イアンさんと一緒に作ったmisopotetoというモジュールをベースにしています。 今回のポイントは、転置インデックスをredisサーバに送っているところ、GAE(とうかDB全般)は、インサートがめちゃくちゃ遅いので、Ngramでgram毎にエントリーIDをappendしていくというのは辛いです。Twitterの検索結果15個x100文字位をTriGramでインデックスを作ろうとすると、1500個くらいをgetしてappendして、putする必要があります。以前は、TaskQ

    GAE/Python でフルテキストサーチ実装した。 redisを使ったインチキバージョン - When it’s ready.
  • x番目のプラットフォーム 「GAS」がなにげに凄い - When it’s ready.

    "プラットフォーム” をウィキペディアで調べてみると プラットフォーム(Platform)とは、コンピュータにおいて、主に、オペレーティングシステム(OS)やハードウェアといった基礎部分を指す。 一般的なコンピュータープログラム(アプリケーションソフトウェア)は、それぞれのOSに依存し、WindowsMac OS X、Linuxなどの専用のプログラムとして動いている。特定のハードウェアでしか動かないプログラムもある。例えば、PowerPC プロセッサ上の Linux では、PowerPC プロセッサ上のMac OS X 用や Pentium プロセッサ上の Linux 用の Adobe Reader7.0 は動作しない。 非依存とは、それらのOS、ハードウェアに依存せずに動くプログラムのこと。例えば、Javaはプラットフォーム非依存を売りにしており、他のプラットフォームの上にアダプタとし

    x番目のプラットフォーム 「GAS」がなにげに凄い - 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.
  • KayでシンプルにTaskQueueを使いこなす - When it’s ready.

    AppEngineには、どんな処理も30秒以内に終わらせないとダメって言う通称30秒ルールという神の掟があってこれを破るとプロセスをKillれてしまいます。ほとんどの処理は30秒もかからないので問題ないですが、クロールとか形態素解析とかやりだすと30秒なんて一瞬です。特にネットワーク経由で複数のものを取りに行ったりすると2秒かかるのを10個もやれば、DataStoreのIOとかも含めると余裕で30秒を使いきってしまいます。 そこで、TaskQueueの登場です。適当につんどくと無料Versionだと1秒間あたり5個ずつ処理してくれます。先程の例だと、10個やるのに30秒だったのが1個処理するのに30秒使えるようになります。苦も無く10倍ゆっくりやれるわけです。 TaskQueueは、内部でキューに送れずに特定のURLに対するPOSTで積みます。引数はペイロードに入れてあげればイイらしい。今

    KayでシンプルにTaskQueueを使いこなす - When it’s ready.
  • Webデザイナーって呼ぶなと言われても - When it’s ready.

    デザイン勉強会というのをやってたらしい(http://woopsdez.jp/designstudy/) 勉強会自体には参加出来なかったけど、無理を言って懇親会だけ参加させてもらいました、ありがとうございました。 デザインとかCGとか嫌いじゃないので、こういう会があること自体うれしくてハイテンションでした。しかも、今回は特に大きなスポンサーとかもなくお金臭い感じもしないし、何より、ノンデザイナー(と呼ばれていたけど実際はプログラマ?)向けの会なのでとても野心的な勉強会だったと思います。こういう会が3DCG界隈でもあれば良いのになぁと・・・ でざいん? 非デザイナが対象という事もあったのかもしれませんが、ネタがデザインどうこうという訳でなく、Photoshop勉強会みたいな感じになってた気がします。これをきっかけに、なにがしかのレタッチソフトとか入手してデザインに一歩でも近づく人が生まれれば

    Webデザイナーって呼ぶなと言われても - When it’s ready.
    bojovs
    bojovs 2009/11/13
  • 1週間前にCodeCamp(旧名:Python旅館) #4に行ってきた - When it’s ready.

    Pythonに留まらず(Pythonはむしろ少数派?)いろんな言語で、みんなでただ集まってしゃべりつつキーボードをなでるイベントとしてなりたっている、CodeCamp(旧名:Python旅館) #4 に行ってきました。今回で第4回らしい。0回もあったから今まで5回もやってる。今まで全部行けたかどうか分からないが、川崎で開催されてたけど今回の会場は晴海だった。 雰囲気はこんな感じ。人数の割には広い部屋だし、その他設備が充実してた。 プリントできるホワイトボードとか、部屋のサイズに不似合いなエアコンついてて全開にすれば10度台もムリじゃない気がする。トイレがフロア違いだったけど、寝室が隣の部屋だったので、みんな寝室のトイレを使ってた。 もちろんお菓子も充実です。これがないとやっていけない。ポテチ用の割り箸も完備してました。 今回は、Waveのドキュメント作成を主な任務で行きました。予定の8割く

    1週間前にCodeCamp(旧名:Python旅館) #4に行ってきた - When it’s ready.
  • Django Projectを開発サーバーの使い心地のままにApacheでデプロイする - When it’s ready.

    ずーっと、デプロイが苦手だった。 自分でやると全然動いた事が無い。 でも気づけば、いつの間にか出来る様になってた。 今後忘れてしまわないようにメモ。 昨日作った環境でデプロイを行う。 機能的なところ 作成したプロジェクトがきちんと動く事 自動作成されたAdminサイトのデザインもきちんと動く事 静的ファイルはApacheより配信する事 ソースを変更した際には、自動でapacheを再起動する事 下準備 作成したDjangoプロジェクトは「djangoProject」 /var/www内に、プロジェクトと.wsgiファイルを公開するディレクトリ(django)を作成する。 プロジェクトのソースを展開する(実際はローカルリポからのリンク) /var/www/django/djangoProject アプリケーション名は以下の通り djangoProject.core wsgiの自動再起動用のス

    Django Projectを開発サーバーの使い心地のままにApacheでデプロイする - When it’s ready.
  • Django1.1 + Ubuntu9.04 + Apache2 +mod_wsgi での環境構築メモ - When it’s ready.

    年末の為に、手順を記す。for me Ubuntuのいんすこから終了まで目標20分以内 追記:実際にインスコからやってみた時間を計ってみた Ubuntuインストール 8分 アップデート 8分 インスコsh 4分 ぎりぎり20分という感じ。この程度であれば何回でも出来るな。 Ubuntuインストール file ubuntu-ja-9.04-desktop-i386-20090510.iso インストール後 アップデートを実行する パッケージインストール zsh vim openssh-server easy_install python_all_dev apache2 mod_wsgi ntp memcached django1.1 mercurial1.3.1 python_memcache プロキシーがある場合 export http_proxy=http://proxy.domain.

    Django1.1 + Ubuntu9.04 + Apache2 +mod_wsgi での環境構築メモ - When it’s ready.
  • GAEフレームワークKayの初めの最初 - When it’s ready.

    ここ数日悩んでいたKayの起動に関してひとまず決着した感じ。 Port版の2.6や2.5だと、推奨バージョンじゃなかったり、必須モジュールが別パッケージになっていたり、色々大変なのでPort版で動かすのは、ややめんどくさい感じです。 お勧めの構成は、python.orgに上がってるpython2.5.4のdmgを入れるだけのパターン。 それだけで、全くエラーの無い状態でKayを使用する事が出来ます。今まで色々やってたのは何だんだったんだという感じ。 Port版のPythonは、Porticus.appを使ってdeactivateしました。 Kay使うまでのOSX10.5.4での手順 python.orgのpython.2.5.4をDL&install hg clone https://kay-framework.googlecode.com/hg/ kay-framework cd kay

    GAEフレームワークKayの初めの最初 - When it’s ready.
  • 誰も知らない夜の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