ストレージエンジンの実装、4.1、5.0、5.1で結構違うのね

どのバージョンで自作ストレージエンジンの練習をするか悩んでいるわけですが、kdiff3あたりで3つのソースを並べて見てみたりしてるんですが、5.1はプラガブルストレージエンジンになり明らかに一線を画してるのは予想通りではあるんですが、4.1と5.0でも結…

コンストラクタの初期化子

C++

なんてこったい。C++でのハンドラもそこそこ書いてたのに全然理解できてない説浮上。 浮上というか確定。勉強しなおすかな。。class HogeFuga { private: string foo; public: HogeFuga(const char* q) : foo(q) {} // ←ウワサの初期化子 // HogeFuga(const …

unlikelyマクロについて

MySQLのソースやLinuxカーネルのソースを眺めるとしばしば出てくる、 if (unlikely(a == b)){ .... }みたいな構文ですが、これの解説。このunlikelyはマクロ関数で、引数として渡された条件がほとんどの場合に偽になることをコンパイラに教えるものです。コ…

MySQLソースコード解析ことはじめ

環境 FreeBSD-6.2 準備 MySQLソースコードの取得 $ fetch "http://mirror.mysql-partners-jp.biz/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz"; $ tar xzf fetch.out; MySQLコンパイル $ cd mysql-5.0.45; $ CC=gcc CXX=gcc CFLAGS=-g CXXFLAGS=-g ./configure…

GoogleReaderが少し良くなった(でももう一歩)

http://d.hatena.ne.jp/i_youhei/20070830 先日こんな日記を書いたんですが、Google Readerがちょっと良くなりました。 きっとこのブログを読んで改善してくれたんだと思います!(多分違う) http://googlereader.blogspot.com/ 具体的には、ダメ出しをして…

Google Readerのイケてないところ

1. 検索機能がない おたくは何の会社でしたっけ?と聞きたくなります 2. 100件を超えると「100+」となり正確な数がわからない 読んでも読んでも100を下回らないと凹むんです。 3. 範囲指定で「既読」に出来ない。 「All Items」でざーっと読んでタイトルを見…

さくらのブログでセコセコ書いていましたが、このたびはてなに移行しました。

なんとなく、はてなは荒波なイメージがあるので少々ビビリ気味ですw よろしくお願いしまする m(_ _)m

FreeBSD-6.2環境にTritonn-1.0.3をセットアップする

Tritonn(Senna)、チョーいいです http://qwik.jp/tritonn/ http://qwik.jp/senna/TritonnはMySQLに全文検索エンジンのSennaを組み込むためのパッチ(以下、MySQLバインディングパッチ)を開発する、Sennaのサブプロジェクトです。開発者mirこと池田さんのブ…

コミット時に自動的にメールを飛ばすようにする

リポジトリサーバーに入ります。 $ ssh repos.server.co.jpリポジトリディレクトリ内のhooksフォルダに入ります。 $ cd /path/to/repos/hooks $ ls -al drwxrwxr-x 2 root svn_group 512 8 16 16:58 . drwxrwxr-x 7 root svn_group 512 7 30 13:49 .. -rw-rw…

マルチキャスト関連のコマンド(メモ)

マルチキャスト関連のコマンドです。 メモレベルですみません。 map-mbone マルチキャストコネクションマップを表示する mrinfo マルチキャストルータの設定情報を表示する mrouted IP マルチキャストルーティングデーモン mtest マルチキャストメンバシップ…

vimでphp-docのコメントを挿入する

今まで手書きで /** * Hogeするクラス * * @version $id$ * @author fugafuga * @license BSD */とか書いてたんですけど、もっと簡単に挿入できるプラグインがありましたのでご紹介。プラグインのダウンロード http://www.vim.org/scripts/script.php?script…

MySQLのSQLチューニング(IN 演算子)

なかなか面白い結果が出たので備忘録。TBLテーブルに対し add index idx(COL0,COL1)としてある状況では、 SELECT A.* FROM TBL A WHERE A.COL0 = "hoge" AND A.COL1 IN ('A', 'B', 'C');よりも SELECT A.* FROM TBL A JOIN ( SELECT 'A' COL1 FROM DUAL UNIO…

さくらインターネットのレンタルサーバーにRuby On Railsをインストールする

sakuraにプリインストールされているrubyではうまくいかないので、自前で揃えます。 手順は以下のような感じ。 $ export PATH=$HOME/bin:$PATH (bashの場合)# ruby install $ mkdir archives; $ cd archives; $ wget "http://rubyforge.org/frs/download.p…

vim6でPHP関数の補完を行う

まずはワンライナーで辞書作成 php -r ‘$f=get_defined_functions();echo join(”\n”,$f[”internal”]);’ | sort > ~/.vim/dict/php_functions.dict.vimrcに登録 autocmd FileType php :set dictionary+=~/.vim/dict/php_functions.dict set complete+=kC-x,C-…

vim(ver6以上)でPHPのデバッグ(ステップ実行など)をする方法

FreeBSD-6.2で確認しています。1. 事前準備。portsツリーを構築 portsnap fetch && portsnap extract && portsnap update; sudo cp -r /usr/ports/Mk /usr/ports/mk; 2. pythonをインストール cd /usr/ports/lang/python; make install clean; 3. vim(>=6)を…

vim7でomni補完(tabで動作するtipsも)

.vimrcに下記のように書いておくと便利です。 autocmd FileType html :set filetype=xhtml autocmd Filetype html :set omnifunc=htmlcomplete#CompleteTags autocmd Filetype php :set omnifunc=phpcomplete#CompletePHPで、使い方はvimを立ち上げて入力モ…

MySQL 5.0, 5.1 でクラスタを組んでみる

目的 「書き込みするDBの可用性確保」を焦点に、 MySQL4.1以降で実装されているNDB Clusterについて調査・構築・動作テストした。 基本的にはGAになっているMySQL5.0をメインに調査したが、5.0のクラスタは オンメモリという致命的な制限があるため、現在は…

MySQLのレプリケーションでスレーブ側でエラー発生時、そのエラーが発生しているSQL文だけスキップする方法

SHOW SLAVE STATUS 等でスレーブのステータスを見ると、なんらかの原因であるSQL文でエラーが発生していることが稀にあります。 データの整合性的にそのSQL文をスキップしても問題ないことがわかっている場合は下記のSQL文を発行することでスキップさせるこ…

DOPING PANDAのGO THE DISTANCEがカッコ良すぎる件

少し前Yahoo!ミュージックのサウンドステーションなんかにも出てましたが、恥ずかしながら最近DOPING PANDAというバンドをm-floとのコラボ経由で知りまして、80'sエッセンスな打ち込みデジタルサウンドと切れ味鋭いロックの融合感が私的に超ツボにはまってし…

あるフォルダ内の変更をキャッチするデーモンwatchd

FreeBSDのWatchFolderパッケージを使うことで簡単に実現できました。 FreeBSD-4.11にて試しました。 インストール pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-4-stable/All/watchfolder-0.3.3.tgz 設定ファイル /usr/local/etc/watchd.…

六本木 鶏あえず(から揚げとチキン南蛮がオニウマ)

今日はミッドタウン近くの「鶏あえず」に行ってきました。 六本木駅(大江戸線・日比谷線)もしくは乃木坂(千代田線)からアクセスできます。オススメはなんと言っても表題のとおり、から揚げとチキン南蛮。から揚げについては、はなまるマーケットでもとり…

正規表現生成・テストGUIツール KregExpEditor

便利な正規表現ですが、サクサクッと正規表現のテストや生成をしたい場面や、人の書いた正規表現を読むのが非常に辛いといった場面にしばしば遭遇します。 そのような時に便利なツールがこれ「KregExpEditor」。 Xデスクトップ環境であるKDEに付随するツール…

RAID1+0(RAID10) と RAID0+1(RAID01)の説明と両者の違い

おさらい まずはRAID1+0, RAID0+1のおさらいです。RAID 0とRAID 1を組み合わせてパフォーマンスと安全性を同時に向上させます。仮に、どれか一台のディスクが故障しても、データは問題無く読み出せます。これにより、データの安全性はとても高くなり、しかも…

FireFox版Yahoo!ツールバー

FireFox版Yahoo!ツールバーが公開されました。 IE時代実は結構愛用していたので嬉しいです。 http://toolbar.yahoo.co.jp/ヤフーの各サービス、特にメール・カレンダー・ブックマーク・路線・地図などに1クリックでアクセスできるのはやっぱり便利です。Fire…

grubのboot floopyの作り方

% dd if=/dev/zero of=grub.img count=2880 % /sbin/mkdosfs grub.img % syslinux grub.img % sudo mount -o loop,iocharset=cp437 -t vfat grub.img /mnt % sudo /sbin/grub-floppy /dev/loop0 % sudo umount /mntLinux教科書 LPICレベル1 第2版 (単行本(…

portsツリーをアップデートする

FreeBSDのローカルportsツリーをアップデートする手順です。まずはcvsup(GUIなし)をインストールします。 今回はFreeBSD-6用のパッケージを利用しています。 # pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/All/cvsup-without-g…

FreeBSD-6.1でUSB Mass Storage Deviceを使ってみる(今回はminiSD)

FreeBSD-6.1RELEASEのカーネルはデフォルトでUSB Mass Storage Deviceに対応していました。 具体的にはこのあたり。 - # SCSI peripherals device scbus # SCSI bus (required) device da # Direct Access (disks) device pass # Passthrough device (direct…

FreeBSD-6.1でXDMやKDMでグラフィカルログインする。

XDMやKDMはインストール済みの仮定で進めます。 ちなみに、ログインだけでなくシャットダウンなど細かいことができるKDMのほうがXDMよりオススメです。まずはttysの編集です。 # vi /etc/ttys - ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure - の…

自宅マシンをFreeBSD-6.1+KDEにしてみた

自宅マシン(Dimension4400 Pentium4-1.6GHz memory256MB)にFreeBSD-6.1+KDEをインストールしてみましたので、その際の備忘録です。 FreeBSDインストール 1. ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.1 にアクセス 2. 下記ファイルを…

jail環境内ではpingが使えない。tcpdumpも使えない。X11Forwardingもできない(多分)

未解決ですが、遭遇した現象のメモと言うことで。 現象 jail環境内でpingが使えない jail環境内でtcpdumpが行えない jail環境内でsshdでのX11Forwardingが行えない(多分) 環境 FreeBSD-4.11 FreeBSD-6.1 結論 ここ(http://www.gentei.org/~yuuji/support/…