タグ

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

  • YappoLogs: #isucon 2014 に参加して暫定圏外になってきました

    #isucon 2014 に参加して暫定圏外になってきました ISUCON4 の予選やってきました、最終スコアは37000位だったけど戦足切りラインは45000くらいだと思うので残念でした。 チームメイトは、前回組んだ kamipo さんに加え新メンバー ar_tama さんと共に望みました。 役割としては kamipo: 司令塔権 middleware 以下全部担当 ar_tama: アプリ担当 yappo: アプリ担当 リポジトリはこちら https://github.com/kamipo/isucon4qualifier 開始前 大体の凡ミスはレギュレーション読まない事に起因するのが、過去の ISUCON の教訓だからひたすらレギュレーション読む。 お陰でリーダの遅刻を見逃した。 10:00-12:00 開始とともにトイレ。この間に kamipo さんが必要なインスタンスあげてログ

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

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

    gfx
    gfx 2014/06/20
    gitで管理できるという点でGoogle spreadsheetよりいいね。
  • 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

    gfx
    gfx 2014/06/19
  • YappoLogs: re: Text::Xslateで未設定の変数を検出する a.k.a Text::Xslate hash_with_default best practice

    re: Text::Xslateで未設定の変数を検出する a.k.a Text::Xslate hash_with_default best practice むかしごろーがText::Xslateで未設定の変数を検出する - Islands in the byte streamで、未定義のテンプレート変数を使おうとしたら警告だすソリューション作ってたけど、それだと [% IF unknown_var %] とかした時に true 扱いになってしまってひどい目に合うので、いい感じにするソリューション書いてみた。 hash_with_default の callback では undef を返しつつ、存在しない事を目立つ感じでレンダリングするかんじ。 で、これは毎回 controller が hash_with_default するのめんどいので Proj::Web::render を生やし

  • 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

    gfx
    gfx 2014/03/13
  • YappoLogs: DBD::mysql Async API

    DBD::mysql Async API MySQL の Async API 使って思いクエリを並列処理したら早いかと思ったらそうでも無い風味。 Web アプリの時のように、クライアント側の並列度があがれば差が縮まる感じだけどそうでもない。 ある程度重いクエリの想定で SELECT SLEEP(0.05) とか投げてみたけどやっぱり普通に使った方が早い。 Async API 使うのにコストがかかるのかな、と思って IO::Select 使ってみたらかなり早くなったので AnyEvent がわりとボトルネックっぽい。 とは言え微妙な誤差ではあるので、普通に DBI 使ってればいい気がしてきた。 perl 5.18.2 DBI 1.63 DBD::mysql 4.025 AnyEvent 7.07 IO::Select 1.21 async-mysql-ioselect.pl が全入りベンチ(

    gfx
    gfx 2014/02/12
  • YappoLogs: ISUCON3 で暫定で本戦進出らしいです #isucon

    ISUCON3 で暫定で戦進出らしいです #isucon ISUCON 3 っていう、インターネット系エンジニアが全ての技量を試されるガチンコバトルなイベントがあって、kamipoさんとgfxが「あと1人チームメンバー募集!」って言われたのでふらっとパーティに入って参加してきました。 暫定順位みると、大体11位っぽい? 前日 僕は金曜の深夜に飲みすぎ+生ものに当たって土曜日は寝込んでて日曜も朝からダメだった、gfxもなんか体調悪かった、kamipoさんもなんかあれらしかった。 当日合流前 kamipoさんだけ、素晴らしいオフィスで有名なフリークアウト入り。僕とgfxは最初から遅刻宣言。 開始直後 kamipoさんだけawsアカウントの準備してて現地ついてたらしい。僕らは遅刻って言ったからおにぎりべてたらしい。 合流前 おなかおかしいから、フリークアウトのビルの前でやってた丸しぇに玄米リ

    gfx
    gfx 2013/10/07
    おつかれさまでした!
  • YappoLogs: 今日はYAPC前夜祭ですね & 明日のYAPC1日目でしゃべります

    今日はYAPC前夜祭ですね & 明日のYAPC1日目でしゃべります 今日は YAPC の前夜祭ですね! 今年の YAPC の前夜祭は、去年の YAPC で好評を博した 前夜祭 が 慶応大学が会場 となって開催されます! 僕は 前夜祭 には参加者として参加していて、楽しい催しになるように努力しますので是非是非ご参加下さいませ! 前夜祭 - YAPC::Asia Tokyo 2013 さて、明日のYAPC1日目、13:00〜13:40 では僕が「社内開発簡単化と世界で戦う開発を考える技術」と題して発表致します。 が、なんかスライド書いてたら「amon2-setup.pl を俺色に染める」というよりは「僕の一年間の Open & Share」みたいな感じになってしまったので、 多分そういう感じの話になると思います。僕の一年間 に詳しい方は既に知っている情報が多い感じなので、そこら辺ご注意下さい!

    gfx
    gfx 2013/09/19
    なんか既視感が…
  • YappoLogs: Perl徹底攻略という本を作った話

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

    gfx
    gfx 2013/07/18
    yappo++
  • YappoLogs: perl prototype constant bug?

    gfx
    gfx 2013/06/13
    別にバグじゃなくそういうものだと思います。
  • YappoLogs: Amon2 で国際化アプリを簡単に書く Amon2::Plugin::L10N を出しました

    « HTTP::AcceptLanguage - Accept-Language ヘッダを解析して適切な言語を返す君 | Main | zh-hans, zh-hant に対応してない!って怒られた時は » Amon2 で国際化アプリを簡単に書く Amon2::Plugin::L10N を出しました Perl で L10N する方法としてはPerl でつくった web サイトを L10N する方法 - tokuhirom's blog.が有名ですが、昨今はうっかりパンケーキとか唐揚げをべてたらロンドンとかに海外進出しちゃうようなのが当たり前になった現代においては、 blog のコードをコピペするやつは死んどけば良いので、死なないため殺されない為に実用的に CPANize して殺す側に回りました。 https://metacpan.org/release/Amon2-Plugin-L10N

    gfx
    gfx 2013/05/11
    Yappo++
  • YappoLogs: Perl で L10N するのに Locale::Maketext::Extract::Plugin::Xslate っての書いた

    Perl で L10N するのに Locale::Maketext::Extract::Plugin::Xslate っての書いた Perl で L10N するにはhttp://blog.64p.org/entry/20110224/1298521852こういうことするんですが、今時はTTなんかつかわない!Xslateだ!ってことで Locale::Maketext::Extract::Plugin::TT 使ってたんですが、いろいろ怪しいのでちゃんとしたの作ったよ! https://metacpan.org/release/Locale-Maketext-Extract-Plugin-Xslate 他のプラグインとちょっとだけオプション変わっちゃうけど、 start_tag とか変えるのも対応できるし syntax も全部対応できるよ。 Text::Xslate の AST とる int

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

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

    gfx
    gfx 2012/11/27
    (1)エラーをviewにも出す (2)viewでのSQL query発行を警告する
  • YappoLogs: WEB+DB PRESS Perl連載枠「Perl Hackers Hub」のまとめ

    WEB+DB PRESS Perl連載枠「Perl Hackers Hub」のまとめ そろそろ3周目も無事おわりそうなので、今までやった事をまとめて検討したい。 Vol.55 2010年2月24日発売 【第1回】PSGI/Plack……フレームワークとサーバをつなぐエンジン……宮川達彦 ベッケンバウアーだったんだけど、縁があって第一回目に。 Vol.56 2010年4月24日発売 【第2回】AnyEventでイベント駆動プログラミング……牧 大輔 たしか非同期プログラミングのブームが終焉してて実用的に使われだしてた時期だったかなと。 Vol.57 2010年6月24日発売 【第3回】DBIx::Classでデータベース操作……村瀬 大輔,Japan Perl Association[監修] まだまだ Skinny とかは早過ぎたし、世界的なビッグウェーブの DBIC で ORM のネタをダ

    gfx
    gfx 2012/11/05
    yappo++
  • YappoLogs: Soozy と Boofy が新聞で紹介されました

    Soozy と Boofy が新聞で紹介されました SoozyとBoofyが人気のPerlフレームワークという事で東京IT新聞のランキング記事にて紹介されていました。 なんか、新聞の配達先一覧も掲載されていて、その中に「株式会社ミクシィ」も入っていた。 まじめにこれをピックアップした(はず)中の担当者の人(´;ω;`)かわいそうです Posted by Yappo at 2006年08月22日 20:49 | TrackBack | 適当

    gfx
    gfx 2012/03/26
    「Windowsテキストエディタランキング 1. メモ帳」(2006年)
  • YappoLogs: Perl Hackers Hub 2nd season side story

    Perl Hackers Hub 2nd season side story Kamakura.PM 会場からこんにちわ。 日発売の Web+DB PRESS Vol.67 にて Perl 連載の2クール目が無事感想したので2クール目の覚え書きでも書いておこうかと思う。 2クール目は、連載開始前〜開始当初に想定していたミッションを結構消化出来たと思っている。 1クール目はどちらかと言うと安定盤石路線っぽい感じでしたが、2クール目はだいぶチャレンジングな取り組みが多かったと思う。 それは、一つの言語をテーマとした時にみたチャレンジさという意味になりますね。 1クール目は、読者がPerlプログラミングをする為の基やスタンダード、基礎力向上出来る内容と題材そして執筆陣を持ってして素晴らしい記事が量産出来たのが良かった。 最後は Perl Hacker と毛色が違うカジュアル目線のエンジニア

    gfx
    gfx 2012/02/24
    yappo++
  • YappoLogs: Perl-users.jp創設者 大沢Yappo和宏 からの緊急のお願いをお読み下さい

    Perl-users.jp創設者 大沢Yappo和宏 からの緊急のお願いをお読み下さい http://perl-users.jp/articles/advent-calendar/2011/ http://atnd.org/events/22657 今年もやってきました。アドベントカレンダーの季節が! アドベントカレンダーは特別なものです。たとえるなら図書館、公園、あるいは知の神殿のようなものです。私たちが考えたり、学んだり、知識を交換しあったりできる場所です。 既に5トラックの応募が始まってます!まだまだ席に余裕がありますので Perl に関わってる方は是非参加しましょう。 アドベントカレンダーを開始したとき、そこに広告バナーを設置し営利企業にすることもできたでしょう。しかし、私は別の道を選びました。私たちは、書き込みシステムのスリム化に努め、小さな組織であり続けています。私たちは使命を

  • YappoLogs: YAPC::Asia Tokyo 2011 ぼくのかんそうぶん

    YAPC::Asia Tokyo 2011 ぼくのかんそうぶん かんそうぶろぐかけってことなので、ぶくますうがのびるきょうこのたいみんぐでこうかいします。 ここのついきはげつようあさなんですが、あっとうてきにつかれててしゅっしゃできるかわからないくらいかいふくしてないのです。 なんか、こうしたほうがいいんじゃね?とか書いてるけどスルー推奨です。 発表について なんか優等生トーク(内容ではなくて枠の使い方そのもの)ばっかりよりも、少し型を崩した時のほうが理解を深める事もあるんじゃないかなーと思ってた所で、makamakaさんのゲームのデモをやってるトークは当に良かった。(まったくみにいってないけど!) 伝えたい目的によっては、壇上の机の前に突っ立ってるより効率よく伝える方法が他にもあるかもしれないので、ちょっと考えてみるといいかもしれない。資料の朗読をしてるだけだと後でスライド見れば良いや

    gfx
    gfx 2011/10/17
    Dan the dan-kaiって言いたいだけちゃうんかとw
  • YappoLogs: life

    life I was laid off by last employer at July 2011. I got a new Job from August, 1st, 2011. I'm still writing perl5 code. Posted by Yappo at 2011年08月02日 01:51 | TrackBack | プレスリリース

    gfx
    gfx 2011/08/02
    Yappoさんオーマに行ったのか!
  • YappoLogs: 【動画有り】MacBookとPlaggerServerで盗難対策ソリューションを構築

    【動画有り】MacBookとPlaggerServerで盗難対策ソリューションを構築 このネタもそろそろ終わり。 Push::Move - MacBookが動かされるのを検知してPlaggerのjobが走るPlugin 誰かがMacBookを勝手に持ち出したら携帯にメールとかできるですよ。 動かしたときにiSightで画像をとってenclosureに画像を突っ込んでメールするとか。を実装しただけなんですけどね。 go youtube やってる事は、誰かがMacBookを動かしたら「つうほうしますた!」と音声で警告しつつDVDをEjectをして威嚇してる隙にiSightで顔写真をとってMacBookの持ち主に警告メールを送ってます。 で、最後にshutdownしてデータの保護を行います。 まだまだ応用できそうですね。でもPlagger来のFeedとか関係ないですね。でも物理と繋がると楽しい