ruby

Trying to complete prepared statement support in mysql2 gem

There is currently no prepared statement support in mysql2 gem. However, there is a discontinued work on it in a incomplete branch by Aaron Patterson. I am trying to take over the left over tasks.TODO list: statement.c function names incon…

Haml/sassのエンコーディング指定

Haml -# coding: utf-8 Sass @charset "UTF-8" @charset "UTF-8";て書いてて1時間強はまった。セミコロンが余計

ruby1.9 + MySQL + SequelでUTF-8問題を避ける

メモ my.cnf: cat etc/mysql/conf.d/charset.cnf [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 [mysqldump] default-character-set=utf8 mysql2 gemを使う (MySQL/Rubyはエンコーディング対応してない) Sequelから接続するとき…

ftplugin/ruby.vim

require_relativeがハイライトされるようにするなど。 kouhei@havana:~$ cat .vim/ftplugin/ruby.vim nnoremap <buffer> <silent> K :Refe<CR> setlocal include=^\\s*\\<\\(load\\\|\w*require\\\|require_relative\\\\)\\> syn keyword rubyInclude require_relative</cr></silent></buffer>

mkmf.rbで$CFLAGS << '-Werror'をつかう

try_funcがgcc warning出すのを避けるぱっち require 'mkmf' # replace f**king try_func def try_func(func, libs, headers = nil, &b) headers = cpp_include(headers) try_link(<<"SRC", libs, &b) or #{headers} /*top*/ #{MAIN_DOES_NOTHING} int t() {…

ruby1.8 / ruby1.9.1(ruby1.9.2p0)をdebianのupdate-alternativesツールで切り替える方法

元ネタの元ネタ:Rails Oceania Google GroupのDavid Lee氏 元ネタ:pk stuff氏 http://krnjevic.com/wp/?p=209いつも忘れるのでメモ。debian(ubuntuも?)には、cloneや同じソフトウェアの異なるバージョンを管理するために、update-alternativesというユー…

ruby拡張中でUTF-8 Stringを生成する

ruby1.9からm17n対応されたStringクラスだけど、何も考えずにruby拡張からrb_str_newするとエンコーディングが未指定の状態になって String#sizeとかが正しい値を返さなくなる。よって、外部拡張からのString生成時にはバイト列がUTF-8文字列だと明示的にエ…

日本語(UTF-8)が通るncurses-ruby環境の構築

topぽいUIの監視ツールが作りたかったのでncursesを使ってみたけどUTF-8文字列が文字化けして表示できなかったので解決策をメモ。ncursesはそもそもマルチバイト文字の表示に対応していないので、その対応版であるncurseswを使う必要がある。 多くのディスト…

rack upファイルとか

config.ru: #!/usr/bin/ruby require 'rubygems' require 'rack' require 'sinatra' $: << File::dirname(__FILE__)+"/.." require 'app' run Sinatra::Application config.yml: --- chdir: /home/xxxx/xxxx user: www-data group: www-data port: 14567 ser…

Squidとの連携

アクセス量が多いことが予想された為、Squidをフロントに置く構成に。実際の構成は Squid(cache) => lighttpd(revproxy/vhost) => thin(dynamic contents)という感じ。ここで、thinが配信する動的コンテンツが全てsquidでキャッシュに載らない問題が発生。原…

FastCGIがいろいろうまくいかない

http://sinatra-book.gittr.com/に書いてあるFastCGI用設定は2010/5/4現在outdated。 set :logging, false set :server, "FastCGI" のみでいいはず。しかしPATH_INFOは空になるので、REQUEST_URIから適当にとってきてやる class Rack::Handler::FastCGI clas…

マイグレーションが動かない

マイグレーションのバージョン番号はschema_infoテーブルで管理されているので、それをみてやる。リセットしたいときはdropしてやる。

stick with global constant DB

気持ち悪かったので@db = Sequel.newしてたけど問題おきすぐる。

Debian/lennyで新しいRubyGemを使う

gem update --systemを無理矢理するより、apt-pinningを使った方がまだマシだとおもうよ! gem update --systemをかけてしまうと、apt管理されていたファイル構成が変わったりするので正しくremoveできなくなったりとても危険。 kouhei@pubsrv:~$ cat /etc/a…

call/cc

d:id:hayamiz:20080221:1203606996に対抗して…。(call/cc call/cc)をrubyで書くとこうなる。下のコードは自分で書いたのだが、未だに完全に理解できた気がしない。 #!/usr/bin/ruby def ccc; yield callcc {|cont| cont}; end ccc do |a| p "aaa" a.call(a) …

Inheritable Attributesについて

元ネタ:http://railstips.org/2006/11/18/class-and-instance-variables-in-ruby Ruby on Railsでの実装:http://www.koders.com/ruby/fid1F286C43B89819E4D009281393E1ECAAC371B700.aspx?s=def#L10クラス変数とクラスのインスタンス変数の中間的なもの。

libpolatskのRubyインターフェース

目的 管理コンソールを作りたい→Rubyインターフェースつくってirbをコンソールにした方が柔軟性高い Ruby Extension一度書いてみたかった デバッグを容易に。プロトタイプをRubyで設計とか libpolatskをWeb系の用途にも使えないかな? 実装にあたって そもそ…

Ruby拡張の作成 using Autotools

extconf.rb(mkmf.rb)で作ったMakefileだとC++標準ライブラリのヘッダーがなぜか読めなくなったり、Autoconfと思いっきり内容がかぶるのでAutotoolsオンリーでRuby拡張を作ってみた。基本的にはruby.hインクルードしてlibrubyにリンクするだけなのだが、Mac O…

Ruby製レイトレーサー: nyyatr

http://websvn.nyaxtstep.com/viewvc.cgi/sandpit/ruby/raytracer作業時間6時間はやっぱりかかりすぎ。画像ライブラリ選定に1時間、RSpecの使い方覚えるのに1時間とかやっぱりおかしい。結局ライブラリは使わずppmを自力で吐いてるしね。 それらしき画像…

謎エラー

以下急に再現しなくなった。なんだったんだろう?頻度は少なくなったけどまだ起きている模様。

書き初め

#!/usr/bin/ruby x = "nyaxtstep" a = x[1,1].upcase + x.reverse[1,1] + "a" + (2008 / 1 / 1 / 17.6).to_i.chr + " ".succ b = ["Old"[0]-1, a[(2+1)/2], a.downcase[0]-2].map {|i| i.chr}.join('') c = (tmp=[]; "Let".each_byte {|i| tmp << i-4}; tmp.…

外部イテレータ in ruby

標準添付されているGeneratorライブラリを使えばいいみたい。 #!/usr/bin/ruby require 'generator' teststr = 'abcde'.split('') # teststr.each {|c| puts c } g = Generator.new(teststr) puts g.current # => a puts g.next # => a puts g.next # => b p…

やってみた。

ということで、ここで問題。以下の二つのプログラムをfor/whileを使わずにイテレータで書き直してみていただきたい。私はどちらの例も、イテレータで書いた方がずっと美しいと思うのだが、いかがだろう。 http://satoshi.blogs.com/life/2007/10/ruby.html …

ConfigPP: preprocessor for configuration files

DL: http://websvn.nyaxtstep.com/viewvc.cgi/configpp/configpp.rb svn://home.nyaxtstep.com/configpp/configpp.rb 概要 設定ファイル管理用プリプロセッサです。複数の異なる環境で設定ファイルを共有したい場合に使います。 目的 全く同じ設定ファイルを…

ローカル変数隔離してeval

ローカル変数が"cpp"(と"_erbout")だけの新規スコープを作ってそこでevalしたかった。現在の実装ではメソッド内メソッドを定義してやってそこのbindingでevalしてます。もっといい書き方があれば教えてください。

ConfigPP

コンフィグファイル用のプリプロセッサがあればいいなと思って書いてる。erbをバックエンドにする方向性で。明日公開する。今日の進捗:http://websvn.nyaxtstep.com/viewvc.cgi?view=rev&revision=500

ウィンドウが閉じられるとアプリケーションも終了するようにする。

元ネタ(objc)。RubyCocoaでやる方法。 Interface Builderにて File's Owner→ControllerクラスインスタンスへCtrlドラッグ。 File's OwnerのdelegateにControllerクラスインスタンスを設定。アウトレット変数delegateにConnect。 (これでControllerクラスがNS…

RubyCocoa一日目 つづき

次はActionを試してみる。 Action/TargetはSignal/Slotモデルにかなり似ている。というか何か違いがあるのかな? ActionがSlotに相当。

RubyCocoa一日目

「入門 Cocoa」のp70で作る日付表示AppをRubyCocoaでカンで作ってみる。某flex日記を真似して作業ログをつくってみた。

RubyCocoa勉強メモ

http://www.google.com/notebook/public/17204077664538055246/BDSaYIgoQw6GSrsoi Cocoa関連ブックマーク: http://b.hatena.ne.jp/nyaxt/cocoa随時追記