タグ

ブックマーク / walf443.hatenablog.com (7)

  • UNIXSocketに対応してないライブラリを無理矢理対応させる - walf443's blog

    プロトコルは同じなので、既にあるクライアントライブラリを使いたいのだけれど、そのクライアントライブラリが想定しているサーバーは、unixsocketには対応していない場合、クライアントライブラリにUnixSocketに対応させるpatchを送ってもacceptはされないでしょう。 とはいえ、patchを保持しつづけるのもしんどいので、うまくやれないかなーと思って作ってみた https://github.com/walf443/unix_socket_hack require 'unix_socket_hack' UNIXSocketHack.apply({ 'unixsocket:9999' => '/path/to/unix.sock' }) sock = TCPSocket.new('unixsocket', 9999) #=> UNIXSocket # example using m

    UNIXSocketに対応してないライブラリを無理矢理対応させる - walf443's blog
    mattn
    mattn 2012/05/08
  • railsコマンドの実行を超早くするrrails - walf443's blog

    最近はお仕事で久々にがっつりrubyを書いてます。rails難しいです。 それはさておき、railsコマンドの実行が遅いのがつらいので、色々探していたら、jugyoさんのrails-shを見つけました。 rails-shはscalaのsbtとかみたいに、railsを読みこみ済みの環境を起動しっぱなしにしておき、既にライブラリ読みこみ状態からコンソールからコマンドを実行することで、ライブラリ読みこみにかかる時間を短縮する、というツールで、非常に実行を高速化することができます。 しばらく使っていたのですが、 raills-shのコンソールへ移動して打つのを忘れる zshじゃない RAILS_ENVがtestなコマンドも欲しいと2つのscreenのwindowを消費する rake -Tが動かない などがあったので、TCPでコマンドを送り、それ経由でrails/rakeコマンドを実行させるrrai

    railsコマンドの実行を超早くするrrails - walf443's blog
    mattn
    mattn 2012/04/27
  • local $var += 1の挙動 - walf443's blog

    Test::TypeConstraintsのレビューをしてもらっていたときにid:gfxさんに教えてもらったのですが、 local $Test::Builder::Level += 2;としていたのですが、これは、「元々の$Test::Builder::Levelに2を足す」、という挙動にはならないです。 そもそも、これは、テストが失敗したときの呼出し元が変にならないようにするためのおなじないで、一つのメソッドしか経由していないので、+1するべきで、+1でうまく動いていないことに疑問を持つべきでした。 以下挙動を確認するためのプログラムです。 use strict; use warnings; use Test::More; our $TEST = 10; { local $TEST += 1; is($TEST, 1, "undef + 1 = 1"); } is($TEST, 10,

    local $var += 1の挙動 - walf443's blog
    mattn
    mattn 2011/07/06
    local $foo = $foo + 2 ならokなのね。
  • 彼氏がtmt.vimを使ってなかった。別れたい - walf443's blog

    Text::MicroTemplateで書かれているHTMLのテンプレを素のvimのシンタックスハイライトを有効にした状態で開いていると、ひどい状態になってしまいます。 というわけで、eruby.vimを参考にしつつid:mikihoshiが書いていたのを、色々細々調整してみてだいたい変な挙動をしてたところは直せたかなといった感じです。 スクリーンショットは自分のvimだとこんな感じ。 家にいれてもらえるとのことなので、contrib/vim以下にいれてあります。 http://github.com/kazuho/p5-text-microtemplate インストールは、contribのvim以下のところから、ディレクトリ構造を~/.vim/以下に丸っとコピーすればよいです。 今のところ*.mtの場合に、tmt2htmlモードに自動判定される設定と、*.htmlの場合にtmt2html

    彼氏がtmt.vimを使ってなかった。別れたい - walf443's blog
    mattn
    mattn 2009/12/09
  • RemedieでLDRizeっぽいショートカットが動くようにする - walf443's blog

    追記: id:mattnさんが以下のパッチを改良していただいて、家にコミットされましたのでパッチは不要になりました。 動画一覧の表示のところで、j, kで上下に移動して、oで動画を再生できるようにいじってみた。 diff --git root/static/js/remedie.js root/static/js/remedie.js index 303a631..a497f90 100644 --- root/static/js/remedie.js +++ root/static/js/remedie.js @@ -53,6 +53,26 @@ Remedie.prototype = { }); this.installHotKey('shift+u', function(){ remedie.toggleChannelView(false) }); + + // LDRize l

    RemedieでLDRizeっぽいショートカットが動くようにする - walf443's blog
    mattn
    mattn 2008/12/05
    似たようなの...というか許可もらってパクって弄って(channel対応とか)コミったw>id:miyagawa
  • gitで設定ファイルを管理してみる - walf443's blog

    今まで設定ファイルに関してはSubversionで管理した方が単純でよいかなと思っていたのですが、codereposみたいに人ごとにばらばらのファイルを作るよりgitで人ごとに別のブランチの方が、ある変更を見てその一部分の設定だけ自分の設定に取りこんだりとかしやすくて便利な気もしたので、 http://git.coderepos.org/share/dotfiles/etc.git を作ってみました。 基master branchは共通で使えそうな環境セットアップ用のMakefileやらをコミットして、個々の人は $ git clone http://git.coderepos.org/share/dotfiles/etc.git && git checkout walf443 && makeしてmakeすればそのまま個々の設定が有効になるように拡張していけばよいのではないかなぁと思って

    gitで設定ファイルを管理してみる - walf443's blog
  • ClassX::Commandableで簡単CLIアプリ - walf443's blog

    東京Ruby会議の懇親会で一番反響が良かったのはClassX::Commandableだったということでブログでもあたらめて紹介しておく。 MooseにはMooseX::GetoptとかMooseX::App::Cmdという便利なモジュールがあったのでMooseX::GetoptをパクってClassX::Commandableというのを作ったという話。 require 'classx' $ClassXCommandableMappingOf[Symbol] = String class YourApp include ClassX extend ClassX::Commandable has :arg1, :kind_of => Symbol, :desc => 'please specify arg1', :coerce => { String => proc {|val| val.to

    ClassX::Commandableで簡単CLIアプリ - walf443's blog
  • 1