タグ

ブックマーク / www.todesking.com (4)

  • Rubyで高速にパターンマッチするgemを作った - TODESKING

    Ripperの出力とかParseletの解析結果などを扱うのに、ArrayやHashでパターンマッチして中身を取り出す処理を多用する必要があったのでパターンマッチライブラリを作りました。 GitHub: todesking/patm 同様のライブラリとしてはpattern-matchがあります。 機能面ではpattern-matchのほうが豊富ですが、PATMは高速なのが売りです(DSLによるメソッド定義を使用した場合、ネイティブRubyコードにコンパイルされるため50倍くらい速い。case式内で使用した場合でも7倍程度)。ベンチマークについてはこの記事の下のほう参照。 主な機能 DSLによるメソッド定義 extend Patm::DSL することで define_matcherを使ったメソッド定義が可能です。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    hitode909
    hitode909 2014/05/26
    かっこいい
  • 近況 - TODESKING

    hitode909
    hitode909 2014/05/01
    で、誰!!!!!!
  • Rubyのローカル変数をシンタクスハイライトするVimプラグインを書いた - TODESKING

    Rubyはローカル変数への参照と無引数のメソッド呼び出しを同じ記法で書けるので、コードを読むときに混乱したりtypoでNoMethodErrorを出してがっかりすることが多々あります。 幸いなことにこれらは静的に解析することができるので、ローカル変数への参照を色付けするVimプラグインを書いた。 Github/ruby_hl_lvar.vim すごく便利な気がする!!!!!!! Rubyインタフェース(>=1.9)が有効になったVimが必要なのでご注意ください。MacVim 7.4 KaoriYa 20140107で動作確認しました。 しくみ Ruby1.9以降に標準添付されているripperというライブラリで、Rubyの構文解析をしてローカル変数への参照を取り出しています。 require 'ripper' Ripper.sexp(<<EOS) a = 10 b = 20 c = a +

    Rubyのローカル変数をシンタクスハイライトするVimプラグインを書いた - TODESKING
    hitode909
    hitode909 2014/04/30
    ハイテクっぽい
  • 人体に電流を流すためのハードウェアを作る

    (このコンテンツは書きかけです) はじめに 人体に電流を流すことで、筋肉を動かしたり感覚をコントロールしたりできることはよく知られています。 しかし、それには特殊な電極や高電圧が必要。一般の人が気軽に人体に電流を流すことは難しい状況でした。 このプロジェクトでは、 入手が容易な部品で 簡単に作れる マイコンから制御可能な 人体用電流源を作成することを目標としています。 注意 このデバイスは 大変危険 です。使用方法を間違えると死ぬ可能性があるので気をつけてください。 死なないまでも、感電はします。 現在のステータス プロトタイプを作成しました。 今後の課題としては、 極性を制御する方法がない(リレーを追加して解決する予定) 筋肉を制御できるかどうか確認していない(5ミリアンペア程度を定常的に流しても反応しないため、パルス状に瞬間的大電流を流す必要がありそうです。あるいは、電極の位置に問題が

    hitode909
    hitode909 2011/12/03
    やりたい
  • 1