タグ

ブックマーク / cside.hatenadiary.com (9)

  • Test::Base::SubTest というモジュールを作った。またはテストケースとテストコードは分離されていたほうが嬉しい話 - Cside::Weblog

    2014-01-15 Test::Base::SubTest というモジュールを作った。またはテストケースとテストコードは分離されていたほうが嬉しい話 perl 自分は Test::Base が好きでよく使うのだけど、subtest 的な、テストのグルーピングができないのがずっっっと不満だったので、Test::Base::SubTest というモジュールを書いた。 https://metacpan.org/release/CSIDE/Test-Base-SubTest-0.1 https://github.com/Cside/Test-Base-SubTest 以下の様な拡張記法が使えるようになる。### でsubtestの 1 単位を表現する。 use Test::Base::SubTest; filters { input => [qw(eval)] }; run_is input =

    Test::Base::SubTest というモジュールを作った。またはテストケースとテストコードは分離されていたほうが嬉しい話 - Cside::Weblog
    y_uuki
    y_uuki 2014/02/06
    なるほど
  • Web::Queryのメソッド解説 - Cside::Weblog

    1999-11-27 Web::Queryのメソッド解説 解説する前に あんなに便利なのにネット上に情報が少ないワケ そもそもWeb::Queryは、jQueryというJavaScript用フレームワークと全く同じ使い方で使うことができる(jQueryを使い慣れた人にとっては学習コストがゼロに等しい)のがウリなものなので、「jQuery知ってれば解説はいらないっしょ?的な理由でネット上に情報が少なかったりする。まぁ、gistを探せばサンプルはあるっちゃぁあるけれど。 最新版を入れる バージョンが上がっていろいろ変更が加わったので、最新版のものを入れなおしてください。 cpanm --reinstall Web::Query さて、たとえば、こんな構造のHTMLをもったWebサイトがあったとして。(URLはhttp://localhost/) <html> <head> </head> <b

    y_uuki
    y_uuki 2013/06/29
  • MySQLのfrom_unixtime(), unix_timestamp()をPerlから使うモジュール作った - Cside::Weblog

    2013-05-21 MySQLのfrom_unixtime(), unix_timestamp()をPerlから使うモジュール作った perl 集計バッチやなんかを書くときに、MySQLのDateTime型(%Y-%m-%d %H:%M:%S)とUNIX timeを相互に変換したくなるときがある。要するにMySQLでいうfrom_unixtime()関数、unix_timestamp()関数にあたるものが欲しい。ので、それらをPerlで使えるやつを書いた。https://metacpan.org/module/Time::Format::MySQL use Time::Format::MySQL qw(from_unixtime unix_timestamp); print from_unixtime(time); #=> 2013-01-11 12:03:28 print unix_t

    y_uuki
    y_uuki 2013/05/21
  • quickrun.vim + Project::Libs の組み合わせが便利 - Cside::Weblog

    2012-09-02 quickrun.vim + Project::Libs の組み合わせが便利 perl vim VimPerlを書いている人なら、編集中のテストでquickrunして「Can't locate ...」が出てやる気をくじかれた経験があると思います。パス通ってないからそりゃこうなりますね。で、そういうときは、Vimを抜けてプロジェクトのトップディレクトリでproveするか、テストに use lib '../lib'; を書き足したりするわけですが、いちいちこの作業するのは面倒くさいし、筋に関係ないコードでテストを汚したくない。自動にパスを通すのを、Vim側でやってほしい。ではどうするか。結論から言うと、.vimrc にこの設定を書き足せば、自動でパスが通った状態でquickrunできる。(cpanm Project::Libsしてね) let g:quickrun_

  • ErrorMarker.vimでプロジェクトのlibディレクトリを自動的に@INCに追加する - Cside::Weblog

  • Perlで補完のきくインタラクティブシェル - Cside::Weblog

    2012-11-13 Perlで補完のきくインタラクティブシェル perl すなわちRubyでいうpry相当のもの。Perlのインタラクティブシェルは たくさんある のだけれど、自分は Devel::REPL を使っているのでそれを推したい。 Devel::REPL Devel::REPL の何がいいかというと モジュール名やメソッド名の補完がきく もうこれに尽きる。デフォルトでは補完が若干貧弱なので、 ~/.repl/repl.rc を こんな感じ にすればとりあえず快適に使えます。 Examples モジュール名補完メソッド名補完coderefもよしなにdump Devel::REPL を拡張したいとき Devel::REPL::Plugin::* もっと軽いのでいいやって気分のとき Eval::WithLexicals の tinyrepl が軽いのでそっち使ってます。 Cside

    y_uuki
    y_uuki 2012/12/15
  • YAPC::Asia 2012に行ってきた - Cside::Weblog

    YAPC::Asia 2012に行ってきた。まずは運営の方々、お疲れ様でした。 他人を通してはじめて自分が客観的に見える、みたいに言うけど、それを強く感じた週末だった。考えたことを、つらつらと書く。 まず、自分の中の「勉強会」というものに対しての考えがだいぶ変わった。自分は勉強会やイベントみたいなものには滅多に参加しない人間だった。理由は2つあって、自分はまだ多くの人に使ってもらえるようなプロダクトをまだ生み出せてないから、可処分時間はなるべくコードを書くことに充てたかったから。もう1つは、未熟な状態ですごい人と会っても相手の時間を無駄に消費してる罪悪感しか感じなくて辛くなるから。だけど、いろんな人のトークを聞いたりエンジニアの人と喋ったりするなかで、今年一年閉じこもりすぎたことを後悔した。機会損失したと思う。今年のYAPCにはLTもLTソンも含めトーク類には一切応募しなかった。「自分

    y_uuki
    y_uuki 2012/10/04
  • WebSocketを使って重い処理の進み具合をリアルタイムにクライアントへ通知する - Csideのダイアリー

    分割が可能な重い処理をサーバー側で実行して、処理の状況の変化をクライアント側で表示させたいとき(プログレスバーみたいなのを作るとき)、どういう方法がいいかちょっと考えてみた。問題は「どうやって処理の進歩状況の情報をクライアントサイドでリアルタイムに受け取るか」ということ。 まず最初に浮かぶのが、分割されたタスクを1つ行うAPIをサーバー側で用意して、クライアント側からJSのsetTimeoutなりライブラリのdeferredなり使って並行リクエストして、コールバックでプログレスバーを書き換える・・・みたいなのが浮かんだ。けれど、PerlにはCoroやAE::HTTPみたいな便利なものがあるし、「折角なので並行処理の制御はあくまでサーバー側でできないか?」と考えていた。 で、次に思い付いたのが、「分割されたタスクが1つ終わるたびにサーバー側からクライアント側に情報をpushする」こと。これを

  • いまからPerl/Ruby/Node.jsやるならRackhubを使わない手はない - Cside::Tech

    自作Webアプリケーションのデプロイ先として Rackhub というのが新たな定番になると思っているので、このたび Kyoto.pm *1 で布教してきました。スライド: http://speakerdeck.com/u/cside_/p/vpsdotcloudrackhubRackhub: http://rackhub.net/Rackhubとは一言でいうと「環境構築済みのVPS」です。その何が新しいのか、何が嬉しいのか、など詳しいことは資料の方へ盛り込んだので、ぜひお読みいただければと思います。 ここからは参加しての個人的な感想になります。皆それぞれに問題意識を持っていて、それを解決するためにがっつり一人の時間を取るようにしているのだなぁと改めて感じました。僕は週5フルタイムでバイトしていたときは業務終了後や週末はぶっちゃけ結構だらけてしまっていたけど、今日紹介されてたライブラリやサー

  • 1