ぬけラボ

φ(..)メモメモ

使用可能なディレクトリ容量を制限する

ext3 で disk quota をディレクトリに対してかけられなかったので、イメージファイルを作ってループバックマウントしてみる # XFSとかBtrFSだとディレクトリに対して disk quota をかけられるらしい...例: とあるディレクトリを5GBまでしか使わせたくない場…

Rails4.0.3のアプリをRails4.1に上げてみた

Rails4.1がリリースされたのでRails4.0.3のアプリをアップグレードしてみました。 docrails/guides/source/upgrading_ruby_on_rails.md at master · rails/docrails · GitHub概ね4.0.3で書かれたアプリケーションはそのまま動きましたが、一部でエラーが出ま…

リモートホストとファイルのやりとりをする時に便利なscpコマンドのメモ

ファイルコピー リモートホストのfileをローカルのカレントにコピー $ scp ${user}@${remote}:~/file .ワイルドカード展開 リモートホストで展開したい場合はダブルクオートで括る $ scp ${user}@${remote}:"~/test.*" .ディレクトリコピー rオプションを使…

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…

Ruby193でnamedcaptureメモ

正規表現でマッチした物を変数として使えるやつ fluentdの設定ファイルでよく使うのでメモ hoge = "#{Time.now.to_i}\t#{Time.now.sec}\t#{Time.now}" hoge[/^(?<time>.*)\t(?<hoge>.*)\t(?<fuga>.*)$/] p $~[:time] #=> "1355798336" p $~[:hoge] #=> "56" p $~[:fuga] #=> "2</fuga></hoge></time>…

Ruby193でファイルカウンター

Rubyでファイルカウンターが必要になったのでメモ ここが参考になりました http://doc.ruby-lang.org/ja/1.9.2/method/File/i/flock.html #encoding: utf-8 class Counter def initialize(file) @file = file end def increment begin until File.exist?(@fi…

node.js導入メモ

macにnode.jsを導入(正式にはnodeと言うらしい。バージョン番号は0.偶数.xが安定版 homebrewでnodeをインストール 本体 $ brew install node $ node -v v0.8.15 npmインストール パッケージ管理 $ wget -nd -O - http://npmjs.org/install.sh | sh - $ npm …

CentOS6.3にGrowthForecastを導入メモ

基本的にはこちらの記事を参考にさせて頂きました。 [Scientific Linux6.2 に GrowthForecast を導入したメモ] http://d.hatena.ne.jp/do_aki/20120522/1337665000 依存パッケージインストール # yum groupinstall "Development Tools" ・RRDToolの依存パッ…

Ruby json/messagepack

Ruby193 json/messagepackメモ 一度シリアライズするとkeyがStringになる json require 'json' def hashtojson {"hoge" => 1, :fuga => 2}.to_json end def jsontohash(arg) JSON.parse(arg) end puts jsontohash(hashtojson) #=> {"hoge" => 1, "fuga" => 2…

gerpとかsortの実行速度が遅い

これを $ time grep -o -e '[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+' *.txt|sort |uniq -c|sort -nr |head -1こんなのにしたら $ time LC_ALL=C grep -o -e '[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+' *.txt|sort |uniq -c|sort -nr |head -18倍はやくなったっ! 原…

GlusterFS volume作成時に {path} or a prefix of it is already part of a volume と出た場合の対処法

一度volumeを消して、再び同じ名前でvolumeを作成しようとすると以下のエラーが出る場合がある GlusterFS: {path} or a prefix of it is already part of a volume そんな時は以下のサイトで紹介されているコマンドを実行http://joejulian.name/blog/gluster…

GlusterFS 壊れたノードを変更

GlusterFSノードが壊れた際の作業メモ 壊れたマシンのUuidを確認 生きてるマシンで以下のコマンド実行 # gluster peer status Hostname: hoge Uuid: hoge-cf46-4a15-be19-fuga State: Peer in Cluster (Disconnected) 新しいマシンにGlusterFSインストール #…

GlusterFS v3.3.0からv3.3.1にバージョンアップ

/var/lib/glusterdをバックアップ # mv /var/lib/glusterd /tmp/glusterd v3.3.1パッケージにアップデート # cd /usr/local/src # wget http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.1/CentOS/epel-6/x86_64/glusterfs-3.3.1-1.el6.x86_64.rp…

ターミナルでパケットキャプチャ

Linux(CentOS)のターミナルもしくはWindowsのコマンドプロンプトでインターネットのパケットをキャプチャしようと思ったときに、 GUI環境だったらWiresharkが有名ですが、ターミナル(CLI)環境だったらどうするのか調べてみました。 tshark WiresharkにはCLI…

Windows8CP版

Windows8のコンシューマープレビュー版がダウンロード可能になったようですね。詳しい情報は以下のサイトから http://blogs.msdn.com/b/b8_ja/archive/2012/02/29/windows-8-consumer-preview.aspxダウンロードは以下のサイトから http://windows.microsoft.…

スマフォアプリ開発

AndroidアプリとiPhoneアプリを同じコードで作るには どうしたら良いか色々調べてみました。・Titanium Mobile → IOSは問題ないが、Androidで動作に問題多数 ・PhoneGap → 速度、メモリ的な問題 ・Flash Professional → 金銭的な問題、アニメーション速度が…