タグ

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

  • 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

    send
    send 2014/03/12
  • YappoLogs: Web関連エンジニアなら必ず読むべき本 〜 Webエンジニアのためのデータベース技術[実践]入門 〜 を全部読んだ

    Web関連エンジニアなら必ず読むべき 〜 Webエンジニアのためのデータベース技術[実践]入門 〜 を全部読んだ 2709円でこんなに濃厚なコストパフォーマンスがアホみたいに高いは読んだ事無いし、Web関連のエンジニアをやっている人は必ず読んだ方が良いし、特にどのレイヤをやるかに関わらずエンジニアを目指す学生さんも卒業までには読んでおいたほうが良いでした。 なんか誤解が多そうなんで追記しておくと、書は「カジュアルなデータベース*利用者*のための入門」ではなくて「質的なデータベース技術の知見を得る為の入門」である。ちゃんとタイトルだってデータベース技術って書いてあるでしょ? 明日着でWDP献先と同住所に送付さ せていただきます。ご一読いただき、コメントなどいただけると大変ありがたい です。 明日発売なので念のためご連絡させていただきました。 というメールを3月8日に頂いて、実

    send
    send 2012/04/02
  • YappoLogs: jQuery Mobile 所感

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

    send
    send 2011/02/14
  • YappoLogs: #!なんか糞だ

    #!なんか糞だ #!というものは、根的にURLの使い方を破壊しているからうんこである。 まず、質ではない。jsが壊れたら見れなくなる!っていう批判は的外れだが。 #!に妄信するのは愚かなことであるのは間違いない。 何が糞かってのは、もうさんざんDISられてるから中略。 というかlifehackerとかのそれはやる意味がまったくないし、もし軽くしたいんであればもっと別の手段を取ればよい。 そもそも http://www.lifehacker.jp/ にアクセスすると http://www.lifehacker.jp/ に飛ばされるし、頑張って http://us.lifehacker.com/ からアクセスして記事のリンクをクリックすると http://www.lifehacker.jp/ に飛ばされるので、ほんと死ねばいい。 動的に書き換えられたコンテンツのパーマリンクを作るためには、

    send
    send 2011/02/14
  • YappoLogs: HTML5 の Application Cache 用の manifest ファイルを簡単に作れる HTML5::Manifest and Module::Install::HTML5Manifest released

    « jQuery Mobile の permalink を HTML5 使って location.hash じゃなくする jquery.mobile.useHistoryState.js を書いた | Main | 俺とPHP » HTML5 の Application Cache 用の manifest ファイルを簡単に作れる HTML5::Manifest and Module::Install::HTML5Manifest released HTML5 から offline application を作るための強力な機能として application cache が追加されています。 これのキャッシュを制御する方法としては、専用の manifest ファイルを書かなければいけないんですが、手で書くのもだるいし専用コマンド作るのも打つのもだるいので $ make html5manife

    send
    send 2011/02/06
  • YappoLogs: Ajax アプリ等の為の JavaScript コードのテストツール JSTAPd を作ってるよ

    Ajax アプリ等の為の JavaScript コードのテストツール JSTAPd を作ってるよ Data::ObjectDriverをDISってる人の話題が三周目に突入した今日この頃ですが皆さんは何をDISってますか?Yappoです。 JavaScript にもテストツールが色々とあると思うんですが、 Ajax アプリの XHR リクエストとかも含めてラクチンにテストできるツールが見つからなかったので JSTAPd というツールを作りました。 http://github.com/yappo/JSTAPd 名前の通りテスト結果はTAPで出力してるのでproveコマンドとかを使ってPerlの作法でテストできます。 ブラウザの連携の設定をすれば prove -v foo/hoge.t とかをコマンドで打ち込めば勝手にブラウザ立ち上げてテストコード実行してブラウザ閉じて結果をコンソールに吐いてく

    send
    send 2009/11/03
  • YappoLogs: KVSでORマッパーを使うという事

    KVSでORマッパーを使うという事 ケイレキ.jpの中でケイレキ.jpに招待して欲しい人を呼びかけても絶賛スルーされてるYappoです。さて今回は今巷で大人気のKey Value StorageでORマッパーを使う事についてお話するのじゃ。 一般的にORマッパーとはオブジェクトとリレーショナルデータベースをマッピングする為の仕組みの呼び名だと言うのは知られている所です。はい、そうするとKVSってのはハッシュデータベースであるわけなのでおかしいですね。今回の話はData::Model::Driver::Memcachedを使う事を前提としてるので問題が無いのです。なぜなら「data/object mapper」とか書いてあるから。 いわゆるPerlなORマッパーってのは行データをHASHで管理します。それはRDBが一般的に表形式でデータを管理しているからなんだと思います。なんでKVSをオブジ

    send
    send 2009/07/06
  • YappoLogs: yacc と lex で簡易言語の AcotieScript っての作ってみた

    « Iron Man Blogging Challengeに参加するよ、日Perlな人も参加しようよ | Main | HTTP::Engine is moved to GitHub » yacc と lex で簡易言語の AcotieScript っての作ってみた そろそろ梅雨入りするので急いでキュウリの苗植えたら安物のせいか根っこが弱っこくて少し心配な金曜日担当Yappoです。 Perlも飽きたし、ふと思う所があって、オレオレ言語を作ってみました。 http://github.com/yappo/AcotieScript/tree/master たぶんMacでしか動かないんじゃないかなとは思ってますが、普通にmakeすればコンパイルされる筈。 サポートされているシンタックスはコメントとprintとperlにあるような文字列同士のxorです。 "hoge" ^ "ugee"みたいので

    send
    send 2009/05/19
  • YappoLogs: CodeRepos障害のお知らせ

    CodeRepos障害のお知らせ 最近もitkzに心配されてたのですが、CodeReposを置いてる物理サーバのディスクが壊れたのが原因で朝方からアクセス出来なくなってました。 現在は仮の物理マシンにイメージをコピーして動かしていて無事動いているようです。 移した先のマシンはリソースが弱めなので、明日にでも新しいHDDを買ってきて(何買えばいいの?)ディスク入れ替えとイメージのコピーをやって復旧させる予定です。 なのでイメージのコピー中(約30分くらいかかる)の間は使えなくなります。 作業する前にiirで告知するです。 今回はたまたまイメージが無事っぽい感じで復旧が楽だったので良かったのですが、今後も突然死に備えて真面目にバックアップする仕組み作ります>< 具体的にはsvnリポジトリとtracのデータをrsyncdできる場所にコピーしといて、みんなにrsyncしまくりしといて家が破壊され

    send
    send 2009/02/11
  • YappoLogs: 無意識に地震が来ると言うと大災害が起きてしまう件

    無意識に地震が来ると言うと大災害が起きてしまう件 受け手によっては不謹慎に感じる話ですが事実だけを書いときます。 丑三つ時に、早朝って時間でもないのにカラスが酷いので何となく http://twitter.com/Yappo/statuses/834010750 カラスが泣きまくりでうるさいんだけど。大地震くるからってうろたえないで欲しいんですけど。 と書いて朝起きたらとてもビックリした。 話は変わって先月のYAPC前にも、ちょうど茨城沖が暴れてた時期だったんだけど、地震の場所が中国の方に移っていたので、何となく http://twitter.com/Yappo/statuses/808719353 とりあえず今日また大きい地震くるよね と書いて昼くらいにたいそうビックリしました。 それよりも前だと、なんか地震雲っぽいの見たから「これは大地震くるね」と話してたら翌日に遠くででかい地震がある

    send
    send 2008/06/14
    Yappo は動物並の本能が備わっているわけですね
  • YappoLogs: 誰でも簡単にOpenID 2.0なOPを作る方法 and CodeReposでOpenID(2.0対応)プロバイダの提供始めましたのお知らせ

    誰でも簡単にOpenID 2.0なOPを作る方法 and CodeReposでOpenID(2.0対応)プロバイダの提供始めましたのお知らせ 先週のbuilder techtalkから俄然としてOpenIDが熱くなって来た今日この頃いかがお過ごしでしょうか。 先日参加して来たOpenID Hackathonの成果として、CodeReposがOpenIDのOpenID 2.0 Providerになりましたことをお知らせします。 CodeReposのアカウントをお持ちの方は、fastladderとかLIMLICとかのOpenIDでサインオンできるサービでOpenID URLをcoderepos.orgとだけ打ち込んでログインしてみて下さい。 2.0に対応していない所だったらhttp://coderepos.org/share/wiki/Committers/usernameとでも入れればいいと

  • YappoLogs: Perlで数有る$selfを取る手法をベンチマーク取った

    Perlで数有る$selfを取る手法をベンチマーク取った PerlでOOなコード書く時のコンテキストを取る方法は色々あります、最近audreyがselfvarsをリリースしたので、gugodのself.pmとingyのSpiffyそして、既存のmy $self = shift;やshift->や$_[0]->で$selfを取る方法それぞれのベンチマークを取ってみました。 テストコードのモジュール名は、それぞれのモジュールの作者名から取り、既存の手法はYAPC::Asiaでプレゼンした事のある日を代表するPerlな企業のCTOからモジュール名を取らせていただきました。 コードは以下の通りです。 package Audrey; use strict; use warnings; use selfvars; sub new { bless { count => 0 }, shift } sub

    send
    send 2008/01/03
  • YappoLogs: YAPC::Asia Hackathon at Dan the hotel

    YAPC::Asia Hackathon at Dan the hotel hackathonが終わるまでがYAPCという事で、ほぼ無事に終わりました。 成果としては、はてブの大文字小文字問題を皆で直していたとか、そういうのは合ったですが、もうちょいまともなのも有ります。 hackathonいく前に、調子に乗ってミサイルランチャー買いにいったのですが4000円くらいのが1000円で投げ売りされていたので大人げも無く買い占めてから参加しました。 で、自分のマシンにいっぱい繋げて遊ぼうかと思ったらMacだとDevice::USBのtestが通らなくて、周りの人にも聞いても動く気配が無く迷ってる所で。 ちょうどmiyagawaさんがircにDevice::USB::MissileLauncherの人のgregを発見してDevice::USB::MissileLaunchersを教えていました。(

    send
    send 2007/04/09
    たのしそう
  • YappoLogs ライブドア事件の件で速攻で一言いっとく

    ライブドア事件の件で速攻で一言いっとく 最速インターフェース研究会 :: そろそろライブドア事件について一言いっておくか (中略) 「そろそろライブドア事件について一言いっておくか」について一言いっておくか - にぽたん研究所ひどい略を見た。 彼はよく「おれがはてなとかに入社するとはてな潰しちゃうから」とよく言っていたから、はてなに遠慮してライブドアというでかい会社に入ったんだなぁと思った。 かとおもったら面接しに行った日にライブドア倒産か?みたいなニュースの火種がおこっちゃうんだから (以下略) それが後のlivedoor Readerである。 Yappo The Trackback Spamer. Posted by Yappo at 2007年01月17日 13:52 | TrackBack | 適当

    send
    send 2007/01/17
  • YappoLogs: IEがWeb2.0に対応していなかった件

    IEがWeb2.0に対応していなかった件 既出ネタかどうか分からないけど、iframe name tagsでググっても情報でて無いので書いておきます。 特定のタグやname属性をHTML中に記載するとIEのCtl-Fでのページ内検索やプリント機能が使えなくなります。 詳細は以下の通り。 iframeタグを使用したHTML内で、name属性が使えるタグのname属性にtagsを指定すると、IE6ではページ内検索を実行したときとページプリントを行ったとき(プレビューだけでも化)にエラーダイアログが表示されてしまい、検索や印刷が出来ません。 IE7で直ってるかと思いきや検索だけは出来ません。 エラーコードがIE6とIE7で違うため、バッファオーバーフロー的な何かがIEの中で起きていると思われます。 再現する最小ソースは <iframe></iframe><img name="tags">これだけ

    send
    send 2006/12/22
    www
  • YappoLogs: Plagger::Plugin::Notify::MissileLauncher - Ejectじゃ刺激が足りない人に

    « 電車運行維持のためにぬれ煎を買ってください!!電車修理代を稼がなくちゃ、いけないんです。 | Main | Wiiのリモコンコントローラが飛んだ件 » Plagger::Plugin::Notify::MissileLauncher - Ejectじゃ刺激が足りない人に 実弾発射と姿勢制御可能なUSB接続ミサイルランチャー発売という物が発売されておりますが、これをPlaggerのNotifyとして使おうというプラグインです。 Ejectの動きだけじゃ気づかないよ!って人におすすめです。 package Plagger::Plugin::Notify::MissileLauncher; use strict; use base qw( Plagger::Plugin ); use Device::USB::MissileLauncher; sub register { my($self

    send
    send 2006/11/27
    wwww
  • YappoLogs: 悪のりで学ぶsvnadmin/trac入門実用編

    悪のりで学ぶsvnadmin/trac入門実用編 とある平和なある週末に事件は起こった xx:14 ([aopy]+) stfuawsc汚染なコードをciってまった xx:14 (A) ちょ xx:14 (B) ww xx:14 (C) www xx:14 (D) stfuawsc xx:14 {[ainOS]+} パネラーディスカッションという事で、直近のコミットした内容をこの世から抹消しなければならなくなった。 しかもtrac上のデータもあわせて..! 消したいリビジョンは100である。 svnのデータを消すコマンドだけで直前のコミットを取り消せないものかと調べたが、出来ないという事が分かった。 ちょっと冷静になって、svnadmin dumpとsvnadmin loadの組み合わせで何とか出来ないか?と考え$ svnadmin dump /svn/public > /tmp/publ

    send
    send 2006/11/16
    コメントも
  • YappoLogs: 複数のsvnリポジトリを一つにまとめる方法

    複数のsvnリポジトリを一つにまとめる方法 うちのsvnリポジトリは、trac等で公開をする前までは、各コンポーネント毎にリポジトリを作るという非効率な管理をしていました。 そろそろ嫌になって来たので、これを全部公開用にまとめようと思い、helpみながら頑張りました。 要件的には、リビジョン番号が変わっても良いから、とにかくlogを含めてインポートしたい! という感じです。 最初はsvkとか使わなきゃだめなのかなぁ、とか思ってたのですがsvnadminだけで願いが叶いました。 dumpとloadを使います。 loadする時はオプション無しでloadしてしまうと、dump前のファイルパスにデータをぶっ込んでくれちゃうので、trunkとかが混ざってカオスになっちゃいました。 そこで--parent-dirオプションを使って、どのパスにloadするかを明示的に指定してloadします。 --par

  • YappoLogs: svk startup memo

    svk startup memo 生のsvnを使っていて良いのは中学生までなのでsvkを始めました。 といってもmacbookの方にはsvkを入れてたんだけど、あまり使っていなかったのでメインの開発環境にsvkを入れました。 ありきたりでつまらない内容ですがチラシの裏です。 installSVN::Mirror 0.72 は subversion 1.2 以上を要求してくるので、手元の環境で使えずに0.71を入れました。 LANG=jaな環境でinstallするとtestこけるのでLANG=C cpanな感じでinstallです。 そしてinstall SVKなのですが、06keyword.tでなんかこけるのでforce installです。(SVK 1.08) こけてる内容もクリティカルじゃ無いっぽいので無視です。 なんかsvk-devにも報告あがってるみたいだけど、よく読んでない。 s

    send
    send 2006/11/16
  • YappoLogs: tracとsvnwebとapache1.3.*でオープンソース開発環境の構築

    tracとsvnwebとapache1.3.*でオープンソース開発環境の構築 http://plagger.org/のようなtrac&svn環境を作りたかったので頑張ってみました。 Apache1.3系でtracとsvnwebの構築をしました。 例としてBloxabというプロジェクトを立ち上げる時の構築方法で書いていきます。 ディレクトリとかユーザー名とかは適時書き換える事。 tracの細かい事についてはドキュメントとかを参考に。 svnリポジトリの作成 $ svnadmin create /usr/local/bloxab/repos普通にリポジトリを作ります。 この作成したリポジトリは、apacheとtracdを動かすuid双方で読み書きできるしておく必要があります。 適切なchownとchmodをしておいて下さい。 以上 tracのインストール tracを動かす為の各種ソフトをインス