タグ

ブックマーク / blog.yappo.jp (8)

  • YappoLogs: なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか

    なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか ここ最近の大規模サービス関連したデータページング考です。 mysql 5.5.34 で試して記事書いてます。 bigdata テーブルは id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) なカラムがある前提です。もちろん InnoDB です。 2014年なんだからCOUNT(*)とかSQL_CALC_FOUND_ROWSとかLIMIT OFFSETのページングはやめようぜ - Togetterまとめが発端にみえるけど、わりと昔から話されてる事なんだけど、「nippondanji SQL_CALC_FOUND_ROWS」でググっても有用な情報ないし文書化されてないからしとく。 ページング処理で使われがちな機能です。 S

    koba04
    koba04 2014/03/12
  • YappoLogs: 2014年に向けた JSON API の実装の方向性と X-JSON-Status 改め X-API-Status header のご提案

    2014年に向けた JSON API の実装の方向性と X-JSON-Status 改め X-API-Status header のご提案 追記 2014/11/20 14:00:00 わりと JSON やら XML やら各種フォーマットで API を運用している環境がある場合に JSON API の時だけ X-JSON-Status にすると XML とかの時と整合性取れないし、 X-XML-Status みたいのを量産するのは困る的なレビューを頂いたので X-JSON-Status をやめて X-API-Status にしました。 へたに JSON に限定するから REST とか JSON-RPC とかいわれるんや! X-API-Status にしたら全部解決したし MessagePack な API でも使い回せるって songmu さん言ってた! XML とかからどうやって引っこ抜

    koba04
    koba04 2013/11/19
  • YappoLogs: Try::Lite supported of older perls

    Try::Lite supported of older perls I fixed Try::Lite's nexted try-catch block don't work on older perls, because I received that bug report by koba04. https://metacpan.org/release/YAPPO/Try-Lite-0.0.3/ Try::Lite は最近の Perl で開発したため、うっかり古い Perl の例外処理が変なやつに対応するのを忘れてました。 pull-req 受け取ってから4ヶ月かかってしまったんですが、例外処理ややこしいせいがあってパッチの意図が良くわからんくて放置してたってのがあります! 最初貰ったやつだと RAII して $@ を良い感じに元に戻すみたいな事してたけど、よく考えたら普通に書けば R

  • YappoLogs: サービスをつぶさない為に Web アプリを書く時にやっとくと良い事2選

    サービスをつぶさない為に Web アプリを書く時にやっとくと良い事2選 テンプレートのエラーが出た時にアプリケーションのログだけに書くのでは無く、誰にでも「ここがえらってるよ!」って見えるようにしとくと間違いが少なくなる傾向があるのでテンプレートエンジンでフック出来るようになっておいてたら、それをうまく使うと良い。 また、テンプレートエンジンがレンダリングしてるフェーズで DB にクエリが飛ぶような構造で書いてあると、非エンジニアのカジュアルにテンプレートいじる人が甚大なクエリを実装してしまう可能性があるので、これも早期に発見しないとサービスが止まってしまい会社の売り上げが下がってしまい社員が路頭に迷うケースが発生してしまうので、これらも未然に防がなければならない。 Text::Xslate + Amon2 ならこうかける。 package MyProje::Web; ...; { my

  • YappoLogs: ExclusiveLock::Guard という排他ロック簡単にやるモジュール書いた

    ExclusiveLock::Guard という排他ロック簡単にやるモジュール書いた ファイルを使って排他ロックするには、適当にロックファイルを作って flock $fh, LOCK_EX とかすると思います。 flock で使ったファイルハンドルが close されたら自動的に unlock されるので、最初っから Guard な感じなんだけどロック用のファイルも一緒に消したいので ExclusiveLock::Guard ってのを作った。 use ExclusiveLock::Guard; my $lock = ExclusiveLock::Guard->>new('/tmp/megazaru.lock'); って書くだけで $lock が生きてる間はロックかかってて、ロック外れたらファイルも一緒に消してくれるというだけの物。 ノンブロッキングなインターフェィスが欲しければ use E

    koba04
    koba04 2012/11/08
    便利そう
  • YappoLogs: jQuery Mobile 所感

    jQuery Mobile 所感 しばらくjQuery Mobileを弄ってて思った事をメモ。まだまだあるふぁ何で色々変わるとおもうけど。 ドキュメントがすくないよママン アルファリリースなんで仕様固まって無い部分もあるから放置され気味なんすかね。 素直に実装読んだ方が速い。 あるふぁ2からあるふぁ3にしたらへんになったよ アルファリリースっていってんだろがカスが! 標準のCSSだけじゃiPhoneアプリっぽくならない 最初からついてるアイコンとかだけだと、良くあるiPhoneアプリの画面になりません。 Sencha Touchつかったほうがその辺充実してる。 テーマカスタマイズして頑張れって事ですかね。 正式リリースしたらテーマ作成ツールとかちゃんと出してくれるみたいだし、しばらく我慢の子。 heaer/footerの位置を固定にしてもなんか変 なんか頑張って実装してるんだけど、スクロー

  • YappoLogs: Fukuoka.PM #18 行ってきました

    Fukuoka.PM #18 行ってきました だいぶ報告が遅れましたが、11月27日に福岡の博多でFUkuoka.PM #18が開催されて、なんと幸運にも招待していただいたので発表しに行ってきました。 事の経緯としてはYAPC::Asia 2010の飲み会でフラグを立てたところ、あれよあれよという真に招待して頂いて何とただで行く事ができました。 JPA++/Fukuoka.PM++ なんでただで行けたかというとJPAの新しい試み第1号に選んで頂けたおかげです。 今後も遠方に派遣するような試みを可能な限りJPAでやっていくそうなので「この地方のPerlの催しに行ってみたい!」「この人を呼んで合いたい!喋りたい!喋らせたい!」という方々はJPAに一声かけるか騒ぐかしてみると良いかと思います。 JPAだけの負担だけでは無くて、参加者の方々からも宿代をカンパしていただく形を取っているので、皆さんに

    koba04
    koba04 2010/12/12
  • YappoLogs: Shibuya.PM #14 発表資料

    Shibuya.PM #14 発表資料 Shibuya Perl Mongersテクニカルトーク#14での僕の文の発表資料です。 http://github.com/yappo/shibuyapm-stream 動かすためにはAnySanが必要で、ここから取得出来ます。 http://github.com/yappo/p5-AnySan 当日バグバグだった部分はもろもろ治ってます。 デフォルトではshibuyapmtwitter searchした結果をストリーミングするんですが、引数を与える事で任意のキーワードでストリーミングできます。 $ perl shibuya-stream.pl perl 背景画像がだいぶグレーな感じなんですが、あそこのプロジェクタの環境でやると、このくらいグレーじゃないと白くなりすぎて文字が見にくくなるんですよね。 IIJのサブスクリーンで出す機会がある人は参考

  • 1