2007-01-01から1年間の記事一覧

ストレージエンジンの実装、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を立ち上げて入力モ…