Ruby

Quiver Export #ruby #markdown

Quiverのノートブックをテキストファイルにエクスポートするツールを作りました。 nori3tsu/unofficial-quiver-export Quiverの内部で保存しているjsonをパースしてテキストファイルにエクスポートするだけのツールです。Cronで定期的にクラウドストレージに…

Java+RSA公開鍵暗号化 -> Ruby+RSA秘密鍵復号

JavaからRSA公開鍵で暗号化したデータをRubyからRSA秘密鍵で復号するサンプル。 鍵の保存 require 'openssl' OpenSSL::Random.seed(File.read("/dev/random", 16)) rsa = OpenSSL::PKey::RSA.generate(2048) # 秘密鍵を保存 File.open("private_key.pem", "w…

Javaの標準AES暗号化アルゴリズム互換のRuby(Python)実装

随分前に悩んだことでまた悩んでしまったのでメモ。 Java/Python/Rubyのそれぞれの実装をまとめました。

Rspecで特異メソッド・インスタンスメソッドのスタブの書き方

# 特異メソッド Time.stub(:method_name) { value } # インスタンスメソッド Time.any_instance.stub(:method_name) { value }

CentOS6.3のrbenv(1.9.2p180)にdebuggerをインストールしてrailsを起動するまでのメモ

作業メモ。

Signal.trapの上書き

既存の処理を上書きせずに、trapの処理を追加したい場合。 とりあえずこんな感じで出来た。 例:USR1シグナルの処理を追加する場合。 signal = :USR1 proc = Signal.trap(signal, nil) Signal.trap(signal) { proc.call # 追加処理 }

JS/CSSファイルをControllerごとに分離する

Rails3.1以降では全てのJS/CSSが結合+圧縮されますが、それぞれのControllerに属するJSファイル内でjQueryのセレクタを使用した場合に、意図しない挙動が発生することがあったため、Controllerは結合の対象外とすることにしました。以下に行ったことをメモし…

Fluentdのログを消失させたくない話

fluentdのリトライ処理に失敗した場合に、ログを消失させたくない+処理に失敗したログを復旧させたいという話です。fluentdのBufferedOutput系のpluginは、retry_limitに記載されているリトライ回数を消費してしまった場合、"throwing away old logs."のwar…

in_tailの正規表現をテスト

in_tailのformatに正規表現を書く時は、 (修正→設定ファイル読み込み→確認) x nとしてましたが、 もっと簡単にテストしたかったので、formatで使用する正規表現のテスト方法を調べてみました。ソースを見てみると、どうやらfluent/parserの"RegexpParser"ク…

RubyのCassandraクライアントでバッチ処理。

大量データの読み込み, 書き込みのバッチ処理を効率よく行うため、Cassandraクライアントにはバッチ処理用の仕組みが用意されています。環境 cassandra (0.12.1)読み込み 大量データを処理するバッチ処理では、Cassandra内のデータを意識せずに読み込むと メ…

RubyのCassandraクライアントで分散カウンタの削除。

Cassandraクライアントから分散カウンタの削除ができなくてハマったのでメモ。環境 cassandra (0.12.1)対策 Cassandraの0.8から分散カウンタが追加されていて、Cassandraクライアントにも"add"というメソッドが追加されています。 これは分散カウンタ用のメ…

RubyのCassandraクライアントで指定したIPに接続できない怪現象。

rubyのcassandraクライアントから別サーバのcassandraに接続する場合に、指定したIPに接続されずローカルホストに接続してしまう怪現象が発生してハマったのでメモ。 (正直、Forkwellのパブリケーションに追加したい衝動に駆られて書きましたw)環境 ○サー…

RubyからMySQLへの接続

■ RubyからMySQLへの接続 Rubyからmysqlへ接続するためにアダプタをインストールします。 ですが、通常にgemでインストールしようとしても、以下のようなエラーが発生する場合があります。 例) [root@example ~]# gem install mysql Building native extens…

Ruby

■ インストール(yum) yumでインストールします。 [root@example tmp]# yum install ruby ruby-devel rdoc ■ インストール(ソース) ソースからインストールします。 上記のyumでのインストールだと、yumのリポジトリに入っていないバージョンはインストール出…