RUBY
以下のように複数の集合があった場合に sets = [ [1,2,3,4], [5,6,7], [8,9], ] すべての順列を舐める関数を定義してみる。 def permutation(stack, ary = [], &block) list = stack.shift list.each do |i| if stack.empty? block.call(ary + [i]) else per…
https://rubygems.org/gems/bracecomp https://bitbucket.org/winebarrel/bracecomp まいどまいどのこまいライブラリのリリースです。 これは何? bashとかのブレース展開をするライブラリです。 サンプルをみればやりたいことは分かると思います。 require …
インストール jsonのmswin32ビルドをインスコ https://bitbucket.org/winebarrel/ruby-json-win32/downloads gem install aws-sdk パッチ 以下のパッチをあてる。 https://github.com/amazonwebservices/aws-sdk-for-ruby/pull/4 サンプルコード #!/usr/bin/…
https://rubygems.org/gems/optopus https://bitbucket.org/winebarrel/optopus これは何? optparseのラッパーです。µ-optparseみたいなものです。µ-optparseとの違いは… オプションの説明をオプションの前の行に書ける(横にも書ける) ハッシュのキーと引…
※後継のMurakumoを開発中です。 https://bitbucket.org/winebarrel/murakumo/ http://d.hatena.ne.jp/winebarrel/20111202/p1某勉強会でddnsのことを話したのですが、ほっとくと忘れ去られそうなので記事にまとめたいと思います。 https://bitbucket.org/win…
rgossip 0.1.0をリリースしました。 https://rubygems.org/gems/rgossip https://bitbucket.org/winebarrel/rgossip これは何? Gossipプロトコルのライブラリです。Cassandraみたいに「サーバを起動したら勝手にクラスタに追加される」みたいなことが可能に…
クエリの最大長っていくつだろう? require 'socket' HOST = '8.8.8.8' # Google DNS Server sock = UDPSocket.open sock.bind('', 53) def proxy(msg) s = UDPSocket.open s.send(msg, 0, HOST, 53) msg = s.recvfrom(1024)[0] s.close return msg end loop…
https://bitbucket.org/winebarrel/kedama https://rubygems.org/gems/kedama毎度毎度のこまいライブラリのリリースです。 何これ? libketamaのRubyポートです。 実はバインディングがあったりするんですが、元のAPIにあんまり汎用性がなくてにんともかんと…
ここを参考に。 require 'digest/md5' class Node attr_reader :name def initialize(name) @name = name @values = [] end def <<(value) @values << value end def values @values.sort end def hash Digest::MD5.hexdigest(@name.to_s) end end class Nod…
https://rubygems.org/gems/mawk https://bitbucket.org/winebarrel/ruby-mawkリリースしました。 何これ? libmawkのRubyバインディングです。 RubyからAWKが使えて何が楽しいのかってーとですね。。。 open('file.txt') do |f| f.awk('/key/{print $2}') e…
socket-keepalive 0.1.0をリリースしました。 https://rubygems.org/gems/socket-keepalive https://bitbucket.org/winebarrel/socket-keepalive 何これ? setsocketopt(2)で、以下のオプションを設定するライブラリです。 SO_KEEPALIVE TCP_KEEPIDLE TCP_KE…
ここを参考にして、簡単なRoute 53のRubyクライアントを作ってみた。 #!/usr/bin/env ruby require 'cgi' require 'base64' require 'net/https' require 'openssl' require 'time' $stdout.sync = true class R53Client HOST = 'route53.amazonaws.com' API…
https://bitbucket.org/winebarrel/r53-fox/src/2ef8a09fd186/Resources/chrome/content/r53-client.js 現在、鋭意作成中。E4Xが便利すぎる。
IAMのAPI検証用に書いてみた。 #!/usr/bin/env ruby require 'cgi' require 'base64' require 'net/https' require 'openssl' require 'time' class IAMClient API_VERSION = '2010-05-08' HOST = 'iam.amazonaws.com' ALGORITHM = :SHA1 #ALGORITHM = :SHA2…
https://bitbucket.org/winebarrel/zip-ruby Mercurial plugin for MS Visual StudioとConvert extensionがあれば生きていける。
先日のfdpassを使って、単純なMySQLコネクションプーリングサーバを書いてみた。 要Ruby/MySQL 2.9.x(MySQL/Rubyではない) https://bitbucket.org/winebarrel/mysql-pool/src まず、サーバを立ち上げるとコネクションが5本はられる。 ~/work$ ./mysql-pool…
https://github.com/winebarrel/fdpass 元旦リリースできた。 これは何? プロセス間でファイルディスクリプタを転送するためのライブラリです。 ユースケースは少ないと思いますが、いろいろとがんばればMySQLのコネクションをプロセス間で共有する、とかで…
https://github.com/winebarrel/Rua 1.9系のバグがつぶせたらリリースの予定。 RubyForgeにホストしてもらってる他のプロジェクトも、おいおい移行の予定。 Please fork it!
http://libarchive.rubyforge.org/ githubに移してリリースしました いくつかのバグ修正 間抜けな感じのライブラリ名の変更 libarchive 2.8.4でのビルド 絶賛fork希望中です。
http://rubyforge.org/tracker/?atid=29382&group_id=7583&func=browse うう、ごめんなさい。早めに対応します。 あ、Ruaのあれにも手をつけてない。。。…全部githubに上げるかな
10/23 追記 twitterから流れてくる方がいるようなので、もっとちゃんとしたのを作ってキチンとメンテされてる方がいるので、そちらの方をオススメしておきます。(なんか変な日本語だ。。) http://github.com/miyucy/handlersocket http://github.com/wineba…
mod_rubyでさくっと実装してみた。 /usr/lib/ruby/1.8/apache/s3.rb require 'base64' require 'net/http' require 'openssl' require 'singleton' require 'time' Net::HTTP.version_1_2 module Apache class S3 include Singleton BucketName = "my_bucket…
require 'rubygems' require 'base64' require 'cgi' require 'net/http' require 'nokogiri' require 'openssl' require 'time' Net::HTTP.version_1_2 def aws_sign(secret_access_key_id, date, bucket, path) string_to_sign = "GET\n\n\n#{date}\n/#{bu…
スレッドを使って並列ダウンロード。 #!/usr/bin/env ruby require 'rubygems' require 'base64' require 'cgi' require 'net/http' require 'nokogiri' require 'openssl' require 'time' Net::HTTP.version_1_2 def aws_sign(secret_access_key_id, date, …
やりたいことがシンプルなわりにサンプルがほとんど見つからなかったので、メモしておきます。 require 'base64' require 'net/http' require 'openssl' require 'time' Net::HTTP.version_1_2 def aws_sign(secret_access_key_id, date, bucket, path) stri…
http://bayon.rubyforge.org/ リリースしました。 クラスタリングツールbayonのRubyバインディングです。g++じゃないとビルド出来ない。。。と思います。たぶん。
以下のエラーを吐いているわけですが。 ~# ruby test.rb ruby: /usr/local/include/google/sparsehash/densehashtable.h:464: bool oogle::dense_hashtable::test_empty(const google::dense_hashtable_const_iterator&) const [with Value = std::pair, Key…
これを読んで何となく思いついた。 ERBのメソッドを書き換えればどうとでもできるなあ。やりたくないけど。 require 'erb' class ERB class Compiler # :nodoc: def compile(s) out = Buffer.new(self) content = '' scanner = make_scanner(s) scanner.scan…
http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/kirisame/ext/?root=svn require 'kirisame' client = Kirisame::Client.tcp('127.0.0.1', 3306, 'root', nil, 'mysql') qs = client.query('show tables', 'show databases') qs.run_all qs.each_with_in…
存在しない関数があるのにWarningが出ないな…と思っていたら、extconf.rbで作ったMakefileのCFLAGSに-Wallがないだけだった。 デフォルトのCFLAGSがどっからきているのかたどってみたら、最終的にはRubyをビルドしたときのconfig.statusまで行きついた。 「-…