[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

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

  • 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

  • YappoLogs: xlsx ファイルを git diff しやすくする為の天才的な wrapper script を書いた

    皆さんはプロジェクトのリソースとしてエクセルの xlsx ファイルを使う事があると思います。 何てったって事務職の人ですら楽々使えるスーパー優れた UI なので、 web の管理画面とかを作り込むよりもエクセルでシート作ってもらってしまった方が早いケースも多いんです。現実の世界では。 で、普通の人は TSV にするだの CSV にしてもらうだのすると思うんですが、一方的にデータ貰うだけなら良いんだけど、相手とやり取りする時にはどうしても xlsx ファイル経由とかにしないと相手がこまる!やっぱりエンジニアのエは優しさのエだから相手に優しくしないとだめです。 で、 xslx ファイルでエンジニア以外の人とデータやり取りするとやっぱり、バージョン管理したくなるのが人情です。 でも xslx ファイルはバイナリファイルなので git diff とかが残念です。。。 って事で作っちゃいました。 h

    issm
    issm 2014/06/20
    git diff で発動するのいい.ods 版誰か!
  • YappoLogs: ギーク系女子に捧げる「クリスマスにプロポーズにされた時の対応プロトコル」2013年版

    ギーク系女子に捧げる「クリスマスにプロポーズにされた時の対応プロトコル」2013年版 みなさんこんばんは!エビスビール割と好きなオッス!どっちかというと宍戸開とどっち選ぶかと言われたら宍戸錠派のYappoです。 先日とある僕が行くには場違いのような店で「後少しでクリスマスなんだけど、プロポーズとかされたらどうしよう><相手の人がギーク系統の人だったらどんなレスポンスが好印象かなっ//」って話題が出たので、ギーク系男子はこういうプロポーズの返事に弱いぜ!って感じのまとめを紹介するよっ! 予備知識 ギーク系男子は、プログラミングを全ての中心においている以上すべての事象に対して論理的克つ単純明快を好む傾向があるんだ、たとえコミュ障なプログラムが一大決心してプロポーズをしてきたとしてもこの前提は揺るぎなく「はっきり断ったら傷つけるかな?」「この人と仕事で関わるから気分をがいしちゃったらやばいな」み

    issm
    issm 2013/12/18
  • YappoLogs: YAPC::Asia 2013 #yapcasia

    YAPC::Asia 2013 #yapcasia 今日みた夢が「blog 書かないと干すぞ!」ってがちぎれる941さんとlestrratさんがでてきたので書く事にした Yappo です。みなさん週末はいかがお過ごしでしたか?僕はカート大会いって箱根で温泉と美味しいご飯べてきました。 編発表資料 社内開発簡単化と世界で戦う開発を考える技術 明らかに会場でかくていっぱい人見に来る、裏発表の DeNA の人が Yappo に負けないクオリティにする!的な宣言してて泣きそうになったのでささやかな反撃でタイトルぱくりました。 1日目の午後一から40分の枠をもらったので、仕事向けのアプリケーション開発で考えなきゃいけない事と、雛形スクリプトを作る時に便利なKsgkの紹介をしました。基的にはコピペ脳は害でしか無いのでいかにしてコピペを排除するか、ちゃんと自分の頭で考えていくか。のような話をしまし

  • YappoLogs: 配布するスクリプトが依存しているモジュールを実行時にスマートに入れてもらう方法

    配布するスクリプトが依存しているモジュールを実行時にスマートに入れてもらう方法 社内ツールなどで Perl スクリプトを配布する時にいちばん気になるトピックとしては、スクリプト中で依存しているモジュールをどうやってインストールさせるか? という所ですね、最近は toolchain が強まってきて cpanm --installdeps . とか carton install をやってもらえば良いのですが、たかだかちょっとしたツールだったら git clone してもらってすぐにスクリプト叩いてもらいたんじゃんすか。 ってことで、スマートかつクールにこの問題に対処するスクリプトの雛形を書いてみました。 core module 以外には Carton を予め入れておく必要があるのがまだまだ敷居高いですが、エンジニア向けのツールだったらだいぶ手間は下がるでしょう。 ポイントとしては、コードで使う

    issm
    issm 2013/09/05
  • YappoLogs: Perl徹底攻略という本を作った話

    Perl徹底攻略というを作った話 来週火曜日に、ここ最近もっともイケてる Perlが出ることになりました。 ちなみに僕もなんか書いてるけど、役に立つことは書いてません。 基的には Web+DB PRESS で連載されている記事が集まっていますが、ちょさんの部分は Perl 5.18 までの話題を取り扱ったり、yusukebeのところなんかは TwitterAPI がもろもろ変わっちゃったので、ほぼ全部書き直しで YouTube API の話になってたりとか、既存の連載を読んでる人にも新しい情報ありますね。 載っている記事としても連載だけではなくて弾さんのアルファギークに逢いたいから Perl Hacker が出ている記事を中心に再収録してあるところもポイントです。 あとは今回のために naoya さんが新規に原稿書いてくれた事も目玉ですね。内容としては「Perlプログラミン

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

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

    issm
    issm 2013/04/05
    "テンプレートのエラーが出た時にアプリケーションのログだけに書くのでは無く、誰にでも「ここがえらってるよ!」って見えるようにしとくと間違いが少なくなる傾向がある"
  • YappoLogs: perlbrew best practice

    perlbrew best practice perlbrew には $ perlbrew upgrade-perlというのが実装されてるのがあまりにも有名ですが、これは現在使ってる環境の perl を、そのマイナーバージョンの中で一番新しいバージョンにアップグレードしてくれるんです。 perl-5.16.1 を使っていたら perl-5.16.3 に perl-5.14.2 を使っていたら perl-5.14.4 に。という具合ですね。 同じマイナーバージョンの Perl では XS バイナリの互換性とか保証されているので、すでにインストールされているモジュールはそのまま利用できる状態になっています。 だがしかし $ perlbrew install perl-5.16.2して作った環境を upgrade-perl すると 5.16.3 が入ってるのに perl-5.16.2 って名前が

  • YappoLogs: ikachan 新バージョン出したよ

    « Perl で L10N するのに Locale::Maketext::Extract::Plugin::Xslate っての書いた | Main | ikachan が優しくなったよ » ikachan 新バージョン出したよ App::Ikachan 0.10 でました。 3つの新機能が追加です 大量のチャンネルに JOIN した状態で Excess Flood された後にサーバに繋ぎ直して元居たチャンネルに入り直そうとする時に 短期間で JOIN しまくるので、 JOIN だけで Excess Flood されてまたサーバからキックされてしまう無限ループしてしまう酷い状況だったのですが sleep しながら JOIN するように AnySan の方で変えたので、この不具合が解消された予定です。 cpanfile で依存モジュール管理するようになったので、 carton で依存モジュー

  • YappoLogs: ikachan が優しくなったよ

    ikachan が優しくなったよ 見た目があれだなーと思ってたところに、ひろむせんせいが css をあててくれました! やったね! https://metacpan.org/release/YAPPO/App-Ikachan-0.11/ Posted by Yappo at 2013年03月12日 13:48 | TrackBack | Perl

  • YappoLogs: Carton Conferenceやってきました

    Carton Conferenceやってきました cpanm / carton の新しいバージョンも出たことだし、そろそろみんなの carton の知見を集めましょうってことで Carton Conference を開催して来ました。 当日の模様は動画では無くはやりの podcast で配信します。 Podcast SP1: 2013/03/02 Carton Conference Tokyo 2013 / riywo's Podcast carton 業界の今までとこれからをが見える貴重な音声ですので皆さん、どうぞご利用ください。 僕の死霊はhttp://yappo.github.com/talks/20130227-cartoncon/です。 podcast してくれた riywo さんと、会場提供やら準備をして頂いたLINE(仮)さんと中野人に感謝です。 Posted by Yapp

  • YappoLogs: Try::Lite 「より安全な例外キャッチを簡単に」

    Try::Lite 「より安全な例外キャッチを簡単に」 I wrote too safety exception handling module. https://metacpan.org/release/Try-Lite $@ の処理を安全に取り扱う例外処理モジュールとしては Try::Tiny があまりにも有名ですが、別の実装を作ってみました。 アプリケーションを作る時は、よく例外クラスを作ってから die bless {}, $foo_class; みたいな形のオブジェクトの例外を投げて、上流の方で eval で受け取ってから $@ の isa を調べて例外に応じた処理をする事が多いと思います。 ここで問題になるのが、受け取った例外の中から不要な物を、さらに上位に向けて rethrow するわけですが、 rethrow するのを忘れてしまうとクリティカルなバグを発生させる要因となりま

  • YappoLogs: PLACK_ENV my way

    « plackp -R したプロセスを終了する時には SIGHUP ではなく SIGTERM を送るべき、もしくは daemontools で plackup -R するのは筋が悪い話 | Main | プレイランド に行ってきた! » PLACK_ENV my way 開発用 = development 番用 = production テスト = test なんで deployment じゃなくて production を使っているかって言うと de(?:ve|p)lo[yp]ment だから Posted by Yappo at 2013年01月16日 18:32 | TrackBack | Perl

    issm
    issm 2013/02/13
    deployment 使ってるけど毎度ファイル名の補完が一発でできなくて悔しい思いをしてる.
  • YappoLogs: plackp -R したプロセスを終了する時には SIGHUP ではなく SIGTERM を送るべき、もしくは daemontools で plackup -R するのは筋が悪い話

    « Perl Advent Calendar Japan 2012 は明後日からです、みんな参加して寿司をべよう! | Main | PLACK_ENV my way » plackp -R したプロセスを終了する時には SIGHUP ではなく SIGTERM を送るべき、もしくは daemontools で plackup -R するのは筋が悪い話 スレタイ速報だから内容は無いけど、 plackup -R や plackup -r した場合には Plack::Loader::Restarter で fork して親プロセスでファイルシステム監視をして、変更があったら子プロセスで立ち上げた plack を再起動するみたいな事やってるんだけど、この親プロセスに対して SIGTERM を送ると子プロセスの方にも TERM 送ってくれるから良いんだけど、うっかり SIGHUP を送っちゃうと親

  • YappoLogs: YAPC::Asia Tokyo 2012 感想ブログキャンペーン当選しました// #yapcasia

    YAPC::Asia Tokyo 2012 感想ブログキャンペーン当選しました// #yapcasia 当選メール来てて、手渡しされる前に何が当たったか聞いてから持ち帰るか送ってもらうか考えようと思ったら「当選の内容は発想をもってかえさせて」もらう感じだったので一か八かで受け取ったら持ち帰るサイズだったよ! カヤックさんのぼーるずのワール丼っていう丼でした!やーマジで実用的で捗るw ありがとうございました!!1 Posted by Yappo at 2012年10月09日 13:52 | TrackBack |

  • YappoLogs: Perl の サブルーチンリファレンスとコードリファレンスの違いと prottype の & について

    Perl の サブルーチンリファレンスとコードリファレンスの違いと prottype の & について Perl 初心者なので、うっかりはまったので質問してみたら理解力深まったので open & share します。 17:33 < acotie> sub html_builder (&){} 17:33 < acotie> my $x = sub {}; 17:33 < acotie> html_builder $x; 17:34 < acotie> これで Type of arg 1 to main::html_builder must be block or sub {} (not private variable) 17:34 < acotie> て怒られない方法あった気がしたのに忘れたくらい初心者です 17:35 < jox__> html_builder \&{$x}; 17:

    issm
    issm 2012/10/04
  • YappoLogs: YAPC::Asia TOKYO 2012 と Geohash リリースのお知らせ #yapcasia

    YAPC::Asia TOKYO 2012 と Geohash リリースのお知らせ #yapcasia 僕の YAPC::Asia TOKYO 2012 さっき終わったので書く事にしよう。悪意は無いので素直に読んで頂ければと。 位置情報系処理のお話 a.k.a 続・自文書抽出日的住所 http://yappo.github.com/talks/20120928-yapcasia2012-geo/ ikasama さんとかには、前のプレゼンとか見てたら見なくて平気だよね敵な事言われたけど、大体新しいトピックでお伝えしました。 基的には CPAN での位置情報の扱い方と、視覚化の重要性の話と、位置情報は様々なサービスに欠かせないという話と、住所を美味く扱う話、その他注目するべき事と言った内容で緩く話してきました。 やるネタとしては住所正規化API出した時に決まってたのですが、その後色々とネ

  • YappoLogs: 本物の KEN_ALL.csv の処理が簡単に出来る Parse::JapanesePostalCode をリリースした

    物の KEN_ALL.csv の処理が簡単に出来る Parse::JapanesePostalCode をリリースした 空前の KEN_ALL.csv ブームが凄かったのが記憶に新しいばかりですが、この郵政さんが公開している郵便番号ファイルをカジュアルにパース出来るモジュールを作りました。 https://metacpan.org/release/Parse-JapanesePostalCode https://github.com/yappo/p5-Parse-JapanesePostalCode 使い方はとても簡単で use Parse::JapanesePostalCode; my $parser = Parse::JapanesePostalCode->new( file => 'KEN_ALL.csv' ); while (my $obj = $parser->fetch_ob

  • YappoLogs: 今話題の新言語 Tora を、今話題の さくらVPS で使う方法教えます

    « Web関連エンジニアなら必ず読むべき 〜 Webエンジニアのためのデータベース技術[実践]入門 〜 を全部読んだ | Main | Hokkaudi.PM Casual #0 参加と全国ツアーした話 » 今話題の新言語 Tora を、今話題の さくらVPS で使う方法教えます 2012/04/01 にリリースされた Tora が話題沸騰中なのは記憶に新しいですが、これまた今話題の さくらVPS 2GB プランでインストールする方法をまとめたのでメモしておきます( [f6fa28f2bb6f6fb301c31fee69d2fea0041eaab4] 現在)。 必要なパッケージを入れる Tora が使ってるライブラリを入れます。 sudo yum install scons sudo yum install re2c sudo yum install curl-devel sudo yu

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

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