ぬけラボ

φ(..)メモメモ

2013-01-01から1年間の記事一覧

WEBrickで簡易Webサーバ

ちょっと実験とか試したいときに便利使用したパラメータ Port: 使用するポート番号 DocumentRoot: ドキュメントのルートパス その他のパラメータはこちらを参照 Module: WEBrick (Ruby 2.0.0) require "webrick" params = { Port: 8888, DocumentRoot: File.…

fluent-plugin-http-ex をリリースしました!

Fluentd in_http プラグインにデータを送る際、ある程度データをまとめて送ったり、in_forward のように高速に処理させたかったので in_http にいくつか機能を追加した in_http_ex をリリースしました!! github https://github.com/hiro-su/fluent-plugin-…

HTTP1.1のTransfer-Encoding: chunkedを試してみる

RFC2616 Transfer-Encoding: chunked を試すために、 curlとかnetcatとかrubyで色々やってみます。 仕様 とりあえず仕様を確認してみます。 Chunked-Body = *chunk last-chunk trailer CRLF chunk = chunk-size [ chunk-extension ] CRLF chunk-data CRLF ch…

Rubyでデーモンを作ってみる

Rubyでデーモンを作ってみます。 test.txtファイルに1秒ごとに"test"と書き続けるデーモンです。 # daemon.rb require 'fileutils' require 'logger' class DaemonTest def initialize @term = false @logger = Logger.new(STDOUT) @logger.info "daemon sta…

Ruby FiberとEnumerator

FiberとEnumeratorのメモ。 EnumeratorはFiberを使って実装されているらしい? 実行速度の比較をしてみた。 Fiber words = Fiber.new do DATA.each do |line| line.scan(/\w+/) do |word| Fiber.yield word.downcase end end nil end counts = Hash.new(0) w…

Fluentdのhttpインプットプラグインを使ってみた&=はまってみた

必要になったので、Fluentdのhttpインプットプラグインを試してみました。 httpインプットプラグインはWebAPI経由で簡単にデータを入力することが出来るとても便利なプラグインです。 使用可能なフォーマットとしてはjsonやmsgpack形式のバイナリデータの送…

beginのブロックに対してwhileが行える

Rubyって面白いなー。 i = 0 begin print i i += 1 end while i < 10 #=> 0123456789

SQLiteのjournal_modeについて

SQLiteのjournal_modeについてはこちらの記事が参考になりました。[SQLiteのジャーナルファイル] http://yuki312.blogspot.jp/2012/02/androidsqlite.htmlまたSQLiteのjournal_modeにてWAL(Write-Ahead Logging)を使用すると デフォルトのdeleteモードから5.…

Ruby my_each

Rubyでeachぽいものを実装する時のメモ。 class Array def my_each &block self.size.times do |i| block.call self[i] end end end p Array.instance_methods(false).grep(/my_each/) data = [1,2] data.my_each do |v| puts v end #=> [:my_each] #=> 1 #=>…

0で割り算したとき@Ruby193

Fixnumの0だとZeroDivisionErrorだけど Floatの0だとInfinityと表示される。 irb(main):001:0> 123 / 0 ZeroDivisionError: divided by 0 from (irb):1:in `/' from (irb):1 from /usr/local/Cellar/ruby/1.9.3-p327/bin/irb:12:in `<main>' irb(main):002:0> 123 </main>…

Gruffを使ってみた

Rubyでかっこいいグラフが簡単に書ける http://nubyonrails.com/pages/gruff https://github.com/topfunky/gruff http://gruff.rubyforge.org/ install on mac rmagickが必要 macportsの場合 $ sudo gem install gruff $ sudo port install tiff -macosx ima…

Rubyでの各メソッド実行時間測定

Rubyでの各メソッド実行時間測定方法を知らなかったのでメモ こんなコードを書いて $ vim test.rb arr = [:hoge,:fuga,:moge] arr.each{|i|puts i} 実行 $ ruby -r profile test.rb hoge fuga moge % cumulative self self total time seconds seconds calls…

rubyでライブラリ/コマンド作成、gem公開までの流れ

※記載したコマンド例は作業の流れを示すためのサンプルです。 bundler インストール $ gem install bundler bundle gemでテンプレート作成 $ bundle gem hoge gemspecファイル修正 descriptionとかsummaryを適切に編集 $ vim hoge.gemspec libにプログラム作…

CentOS6.3にソースコードからRubyをインストール

普段行なっているRubyのインストール手順と設定をメモ 1.インストール準備 $ sudo mkdir -p /var/service/nuke/local/ruby $ sudo mkdir /var/service/nuke/local/src $ cd /var/service/nuke/local/src 2.yamlのインストール ruby193でyamlが必要なので先に…

Ruby193で乱数字生成

こんな方法があったのか!と驚いたのでメモ 配列 [*0..9, *'a'..'z', *'A'..'Z'].sample(10).join #これでも出来る [*0..9, *'a'..'z', *'A'..'Z'].sample(10) * "" #=> "eBoO8LnmIT" securerandom require 'securerandom' SecureRandom.base64[0..9] #=> "B…