タグ

ブックマーク / blog.shibayu36.org (6)

  • DevLove関西で「課題をテストで解決する」という発表をしました - $shibayu36->blog;

    DevLove関西に行ったので、「課題をテストで解決する」という発表をしてきました。 内容はスライドに書いてあるとおりです。以下のことを特に話したくて、今回の発表をしました。 何度も起こる課題があったときに人が気をつけようとしない 最悪のケースでは根原因を知ろうとせず、間違えた人を怒ることで解決しようとしてしまう 何度も起こる課題なら、機械に自動的にやらせる その例として今回はテストでやりましょうという話をした あとテストいろいろあって始め方がわからないという時は、こういう課題をテストにするというところから始めるとやりやすいかもしれない 参考 この資料作るにあたってひたすらブログ書いたので参考にどうぞ 設定の仕様をドキュメントに書くのではなく、テストにしてしまう - $shibayu36->blog; ドキュメントの場所を知らせるために、落ちるテストを作る - $shibayu36->b

    DevLove関西で「課題をテストで解決する」という発表をしました - $shibayu36->blog;
  • 処理のtimeoutを簡単に書くためのSub::Timeoutというモジュールを作りました - $shibayu36->blog;

    ある処理をするときに一定以上の時間かかったらtimeoutして処理を終わりたいみたいなことをしたい時がたまにあるので、それを行うSub::Timeoutというモジュールを作りました。 https://github.com/shibayu36/p5-Sub-Timeout 使い方 use Sub::Timeout; use HTTP::Tiny; my $res = timeout 3.5, sub { HTTP::Tiny->new->get('http://example.com/foo'); }; 基的には上のように、タイムアウトしたい秒数と処理のcoderefを渡します。 上の例だと3.5秒間で処理が終わった場合、その返り値を$resとして返し、処理が終わらなかった場合、その時点で処理を打ち切って例外を投げるようにしています。例外を投げるのでその後も処理を続けたい場合は例外処理をし

    処理のtimeoutを簡単に書くためのSub::Timeoutというモジュールを作りました - $shibayu36->blog;
    mackee_w
    mackee_w 2013/06/07
    便利そう
  • nasneを買ってセットアップした - $shibayu36->blog;

    ずっと買いたい買いたいって言ってて買ってなかったnasneをようやく購入し、セットアップした。 セットアップに結構手間取った。gigabit対応のハブとかLANケーブルとかを買って試してみたんだけど、全然繋がらなくてなんなんだと思ったら、WiMAXのクレードルが壊れていて急遽クレードルだけ購入したりした。 クレードル変えたらちゃんと動くようになって、torneからnasneへの録画予約が出来るようになった。普通にtorneからシームレスにnasneへの予約ができた(録画予約時どのディスクに録画するかというところで設定できる)ので、UI優れているなーと思った。 アパートのTVアンテナ、BSとかCS対応していないと思ってたのに、普通に対応していて、つないでみたら突然BSとかCSとか見れるようになって最高の体験だった。京都でやっていないアニメとかも突然見れるようになって良すぎた。でも並列録画数足

    nasneを買ってセットアップした - $shibayu36->blog;
  • DBIのプレースホルダーで起こった謎な挙動 - $shibayu36->blog;

    先日DBIを使っていて、謎な挙動に遭遇したので書いてみる。LIMIT, OFFSET句でプレースホルダーを用いた時に起こった。DBI + DBD::mysqlを使っていた。 DBI: 1.616 DBD::mysql: 4.022 LIMITとOFFSETを両方にプレースホルダーを使う LIMITとOFFSETを両方を?にするのはうまくいく。 $res = $dbh->prepare_cached(q[ SELECT * FROM user WHERE name = ? LIMIT ? OFFSET ? ])->execute('shiba_yu36', 1, 1); LIMITのみプレースホルダー LIMITのみ?でもうまくいく。 $res = $dbh->prepare_cached(q[ SELECT * FROM user WHERE name = ? LIMIT ? OFFSET

    DBIのプレースホルダーで起こった謎な挙動 - $shibayu36->blog;
    mackee_w
    mackee_w 2013/03/04
    フムン
  • Server::Starterから学ぶhot deployの仕組み - $shibayu36->blog;

    以前http://tech.naver.jp/blog/?p=1369の記事を読んだのだけれど、それまでにprocessの知識が無かったりして、まったく理解できませんでした。そこでWorking with UNIX ProcessesやServer::Starterの中身を呼んでようやくhot deployの仕組みを理解できた(気になっている)ので、Server::Starterの実装を追いながら、それをまとめてみます。 hot deployとは hot deployとは「再起動の時にリクエストの処理を続けながら、変更の内容を反映するための手段」です。 通常serverをrestartさせるときは、stop -> startの流れになると思いますが、この場合stopしてから、start出来るまでの期間にリクエストを処理できない期間が発生します。その期間なしにdeployする仕組みがhot

    Server::Starterから学ぶhot deployの仕組み - $shibayu36->blog;
  • MySQLをさらに理解するために読んだ記事まとめ - $shibayu36->blog;

    最近MySQLの勉強をしていました。実践ハイパフォーマンスMySQLを読むべきという話を聞いていたのですが、かなり網羅的に書かれていて、今の知識ではどれが重要なのかわからない状態でした。そこで色々調べてみて、参考になる記事をいくつか見つけたので、少しまとめてみようと思います。 今回まとめた記事を読んで、大体以下のことが理解できました。 インデックスの使われ方とその構造(MyISAMとInnoDB) EXPLAINの詳しい使い方、見方 InnoDBの特性 ALTER TABLEの特性 レプリ遅延 まず最初に Webエンジニアのための データベース技術[実践]入門 (Software Design plus)posted with amazlet at 12.06.02松信 嘉範 技術評論社 売り上げランキング: 9767 Amazon.co.jp で詳細を見る 松信さんの書いた「Webエンジ

    MySQLをさらに理解するために読んだ記事まとめ - $shibayu36->blog;
  • 1