Sequel + Ruby/MySQL

最初に結論。Sequel で Ruby/MySQL を使いたい場合は、オプションで :compress => false をつければOK。 以下、経緯。 Ruby 1.9.2 で Sequel を使ってみたら DB から取得した文字列のエンコーディングが全部 ASCII-8BIT だったので、ソースを読んでみたとこ…

ディスクイメージファイルを拡張する

KVM の仮想マシンのディスクイメージを raw format で作成して運用していたんだけど、容量が不足してきたので拡張しようとしたら色々と厄介だったので備忘録代わりに手順をメモっておく。

TokyuRuby会議01へ行ってきた

TokyuRuby会議01へ行ってきました。 真っ昼間から酒と食べ物をつまみつつ Ruby に関係したりしなかったりする内容を語る、たいへん楽しいイベントでした。プログラムの前半も終わっていないのに「会場が酒臭い」とか「カオス」とか言われてしまうような勉強…

Git で過去の commit の Author を書き換える

Git

git-log を見ていたらメールアドレスを間違えていたのに気づいたので、何とか書き換えられないかと試行錯誤してみた。 その結果、git-format-patch でパッチ作って sed とかで書き換えた後、git-am で取り込み直せば Author を書き換えられることが分かった…

DataMapper + MySQL でカラムごとに COLLATE を指定する

DataMapper + MySQL ではデフォルトの COLLATE として utf8_general_ci が使われるため、文字列の比較の際は大文字・小文字やアクセント符号が無視されてしまう。大文字・小文字を区別したい場合は utf8_general_ci の代わりに utf8_bin を指定しなければい…

Debian Ruby 1.9 会議に参加してきた

Debian Ruby 1.9 会議という集まりに参加してきた。(参考: http://arika.org/diary/2009/06/04/DebianRuby19Kaigi) Debian、Ruby、ともに仕事でもプライベート環境でも頼っている都合上、今後のパッケージングがどうなるかとか、RubyGems と Debian Package …

ruby-protobuf の fork を GitHub に作った

Google Protocol Buffers の Ruby 実装として ruby-protobuf (Google Code) というライブラリがあるが、それの fork を GitHub に作成してみた。 macks / ruby-protobuf (GitHub) オリジナル版からの変更点は以下の Wiki にまとめている。 http://wiki.githu…

Ruby と FD_SETSIZE 問題

FD_SETSIZE 問題とは、1 つのプロセスで大量のファイルを同時に open するなどしてファイルデスクリプタの値が FD_SETSIZE *1の値を超える(fd >= FD_SETSIZE になる)と標準の fd_set 型で取り扱えなくなり、select(2) が正しく実行できなくなる、という問題…

Linux で TCP クライアントを実装する上での注意点・初級編

「ソケットを直に触るプログラムを書くのは初めてなんですが、何かアドバイスないですか?」みたいなことを聞かれたので、入門書には載ってなさそうな注意点をまとめてみる。 とは言っても、私自身、直にソケットを叩いて C や C++ でプログラムを書いていた…

glibc の wcwidth の話の続き

glibc の wcwidth() の「曖昧な文字幅」についての動作の話の続き。 やっぱり、UTF-8 の charmap を全部書き換えてしまうのは良くないと思い、以下のようにしてみた。 まず、/usr/share/i18n/charmaps/UTF-8.gz を改造して ambiguous width な文字の幅を 2 …

glibc の wcwidth() の「曖昧な文字幅」についての動作

glibc の wcwidth() の動作を自分の手できちんと検証したことがなかったので実験してみた。対象バージョンは Debian lenny に含まれていた 2.7-18。 実験に使ったのは以下のプログラム。 #define _XOPEN_SOURCE #include <stdio.h> #include <locale.h> #include <wchar.h> void print_wc</wchar.h></locale.h></stdio.h>…

Debian lenny の screen の cjkwidth パッチが壊れてる件

あるいは「Unicode の曖昧な文字幅(ambiguous width)問題 その3」。*1 Debian lenny の screen にはGNU screen bug #16666の cjkwidth パッチがあてられていて*2、UTF-8 環境で aptitude とか w3m とかのレイアウトが崩れなくなるぜ……と思ったら全然ダメだっ…

WPA Supplicant on Debian etch

WPA-PSK な無線 LAN ネットワークに繋ぐ必要があったので、Debian etch でどういう風に設定するか調べてみた。 iface eth1 inet dhcp wpa-driver wext wpa-ssid ESSID wpa-psk PreSharedKeyStringwpasupplicant をインストールした後、/etc/network/interfac…

Ruby 1.9 m17n リファレンス (不完全版)

以前書いた記事(Ruby 1.9 の新機能を調べてみた)の m17n がらみの箇所についてコメントやらトラックバックやらをいただいたので、もう少し調べてまとめてみた。 なお、1.9.0 リリース版ではなく、開発版(trunk r14835)で動作を確認している。

Ruby 1.9.0 released?

12/25 23:33 の commit で 1.9.0 は freeze されてリリース……のかな? Tue Dec 25 23:33:55 2007 Yukihiro Matsumoto <matz@ruby-lang.org> * development version 1.9.0 released.でも、svn リポジトリ上で tag が作られた様子は無いので、まだなのかも。 あと、Code Golf 用の g</matz@ruby-lang.org>…

Ruby 1.9 の新機能を調べてみた

1.9.0 のリリースも近いということで、Changes in Ruby 1.9 を参考にしながら Ruby 1.9 trunk (r14828) で遊んでみた。 まあ、ほとんどは上のサイトに書いてあるとおりなんだけど、「おっ」と思った点やその他で気付いた点を以下に列挙。(既に書かれている内…

Ruby で DNS サーバを自作する

プログラマブルな DNS サーバが欲しくなったので、スクリプト系言語で DNS が実装できるかどうか調べてみた。 Perl であれば、CPAN に Net::DNS::Server というモジュールがあるので、これを使えば簡単に DNS サーバが実装できるようだ。 また、既存の実装で…

Ruby で DNS Update (RFC 2136)

Ruby を使って RFC 2136 の DNS Update を実行する方法を調べてみた。 標準添付の Resolv::DNS クラスはルックアップの機能しか無いので、Perl の Net::DNS のようなモジュールを探してみたところ、Perl の Net::DNS を移植したという 2 つのライブラリを見…

帰ってきた筋少ちゃん祭り!

恵比寿リキッドルームに筋肉少女帯を見に行ってきた。筋少のライヴは、渋谷公会堂の最終公演以来だ。 ステージはたいへん素晴らしく、筋少の素晴らしさと自分が今でも筋肉少女帯が大好きなんだということを再確認できた良いライヴだったんだが、そもそも体調…

ThinkPad X60s に Debian GNU/Linux 4.0 (etch) をインストール

ThinkPad X60s に Debian GNU/Linux 4.0 (etch) をインストールしてみた。*1 とは言え、基本的なインストールは有線 LAN (e1000) 経由なら特に詰まることもなく、普通に終了。Xorg も i810 ドライバで普通に起動した。 少しだけひねりが必要だったのは、以下…

ThinkPad X60s DtoD(Disk to Disk) リカバリー領域の移植

ThinkPad X60s を買った。 安かったので HDD 40GB のモデルを購入したんだけど、もちろんそんな容量では話にならないので、さっそく HDD を換装した。 その際 DtoD(Disk to Disk)リカバリー領域を移植したので、その時の記録を残しておこうと思う。なお、本…

Binary Hacks

Binary Hacks が Amazon から届いた。 小ネタ・中ネタといろいろあって面白いし為になるものもあるけど、個人的には佐藤祐介さん(d:id:yupo5656)の C/C++ ネタ(の一部)が書籍の形になってくれたのがありがたい。やっぱり紙でないと読みづらいし。 拾い読みし…

LOUD PARK 06 2日目 → 欠席

昨日の疲労で、とてもではないが幕張メッセまで行けるような状況ではなかったため、欠席。自分の体力の無さへの認識が甘かった。 2日間の通し券を買ったので、実質1万円くらいのチケット代を無駄にしたことになるが、まあ金のことはよしとする。昨日の MEGAD…

LOUD PARK 06 1日目に行ってきた

LOUD PARK 06の1日目を見に幕張メッセへ行ってきた。 ステージを見たバンドは DRAGONFORCE、ZERO MIND、BACKYARD BABIES、CATHEDRAL、DIR EN GREY、ARCH ENEMY、ANGRA、ANTHRAX、MEGADETH。 いくつか不満を感じなくはなかったけど、MEGADETH の "Take No Pri…

Unicode の曖昧な文字幅問題 その2

9月30日の続き。 UTF-8 環境で w3m のメニュー表示が崩れる原因が分かった。俺は GNU screen を常用してるんだが、実はそちらが原因だった。(使っていることを忘れるくらいに使いまくってるため、screen 以外の環境でテストすることを思いつかなかった。間抜…

w3m - Unicode の曖昧な文字幅問題 その1

ふと思いついて、作業環境(Debian sarge)の文字コードを EUC-JP から UTF-8 へ移行することにした。Debian の次期 stable (etch) では UTF-8 が標準になるそうだし。 ほとんどのソフトウェアは locale の設定を変えるだけで問題なく移行できたんだが*1、PuTT…

Xen 3.0.2 + lvm snapshot でハング (その2)

2006-05-21 の続き。(書くのをすっかり忘れてた) Debian sid の lvm2 + libdevmapper を使ったら問題なく動いたので、どうやら sarge の lvm2 + libdevmapper に何か問題があるっぽい。

DISSECTION の Jon Nödtveidt が自殺

DISSECTION OFFICIAL WEB なんと言っていいやら……。 Jon が殺人幇助で逮捕されて活動を停止する前の2枚のアルバム "The Somberlain" と "Storm Of Light's Bane" が名盤なのは議論の余地が無いし、復活アルバムの "Reinkaos" は特にリズム面において活動停止…

大槻ケンヂと橘高文彦 ライヴ! そして筋少再結成へ!!

id:macks:20060521 の時に予約したライヴに友人と行ってきた。 とりあえずセットリストを某所から転載。 1. 踊るダメ人間 2. 日本引きこもり協会のテーマ 3. マタンゴ 4. PARASITE 5. 猫のリンナ 6. 小さな恋のメロディ 7. 青ヒゲの兄弟の店 8. とん平のヘイ…

100までの素数@シェルで 1-liner

http://ll.jus.or.jp/2006/blog/doukaku1 より。 1週間遅れてるけど、短さで勝負。 seq 2 100 | factor | awk 'NF == 2 {print $2}'GNU coreutils と awk が必要。 factor なんていうマイナーなコマンドを知ってるかどうかだけなので、プログラムとしては味…