Re:

感銘高き名言は「1%のひらめきがなければ99%の努力は無駄である」(トーマス・エジソン)

2009年09月

camp_10_jp_camp01

.jp値下げキャンペーンしてます!

安いです!

本題とは関係ありませんが、加筆しておきました。



さて、バージョンによりInnoDBのconfigure有無、オプションの違いがあるので、つまづかないためにメモっときます。

意外に細かい。


3.23ではMySQL-Maxバイナリディストリビューションにのみ組み込まれており、MySQL-3.23.34a以降(3.23系)では--with-innodbオプションでコンパイルの必要があります。

まぁ今後使うことはないと思うので、気にする必要はない気がします。


4.0系〜5.1.2まではデフォルトで組み込まれているのでオプションは不要です。

不要な場合のみ--without-innodbオプションを指定します。

http://dev.mysql.com/doc/refman/4.1/ja/innodb-in-mysql-3-23.html


5.1.3から、InnoDBを有効にするには--with-innodbオプションが復活。5.1.9で廃止されています。

廃止されたオプションに変わり、5.1.11から--with-plugins=innobaseとしてInnoDBを有効にします。

http://dev.mysql.com/doc/refman/5.1/en/configure-options.html

なお、利用できるプラグインは--helpで表示される以下です。

Available plugins are: partition daemon_example ftexample archive blackhole csv example federated heap ibmdb2i innobase myisammrg myisam ndbcluster.



廃止された--with-innodbオプションは、Warningは出力されるものの、たぶん--with-plugins=innobaseのエイリアスとしてInnoDBは有効になります。


なお有効になっただけで、利用するには/etc/my.cnfの設定が必要で、innodb_ から始まるコメントアウトを適宜外して設定。


InnoDBが有効になっていない状態でmysqlデーモンを起動すると、エラーログに以下のように出力されているのです。(そんな変数は知りません!と)

[ERROR] /usr/local/libexec/mysqld: unknown variable 'innodb_data_home_dir=/var/lib/mysql/'

(innodb_data_home_dirが設定の始めに引っ掛かるので)

_IGP3669

しばらくの間、PCで地デジをコピフリ録画するときは配線を変えて…と手間だったので、2分配器を買いました。

こんなんでも2,000円近くします。


ミラチェアを買ったときの楽天ポイントを使っての購入です。

先のエントリーで詳解Objective-Cも合わせ、ポイントを消化し終えました。(本で1,000円程足が出たけどね。)

可能な限り楽天は利用したくないです。


vlcsnap-2009-09-29-22h07m31s69

面接アポミスのため夕方の面接が来週に延期になったのを受けて(送信履歴には残ってるのに何故メールが届いてないんだ?!)、ベッドでゴロゴロしながら詳解Objective-C読んでたら…いつのまにか寝てた!

気がついたら、ロンハーの石田純一スペシャルの後半。

面白かったぞ。

スペシャルで見る東尾理子さん、きれいでした。意外とタイプかもしれない。


番組が終わってチャンネル替えたら、つまらないものまね番組ながら、ちょうど本田朋子アナが相川七瀬さんのものまねで歌ってた!!

歌い終わったあとをキャプチャしてみたので貼ってみます。

意外にも、髪型で普段の好感とは温度差が…。(ヅラのせいだと思うけど)

明日のグータンヌーボは必見です!
(フジテレビ 2009年9月30日 22時〜)

vlcsnap-2009-09-29-22h06m57s242

vlcsnap-2009-09-29-22h06m59s5

vlcsnap-2009-09-29-22h07m05s63

vlcsnap-2009-09-29-22h07m23s251

vlcsnap-2009-09-29-22h07m39s155

_IGP3663

はじめから買っておけば良かったんだろうけど、まぁ、iPhone SDKやcocoa、Objective-Cの入門書を先にざっと読んだあと。

基礎理解がちょっとあるだけでも、本を眺めたときの拒絶感がグッと減ること間違いなし。

読書の秋ですから〜夜長を技術書にささげてみては如何。


PHPでいうところの

$list = array("id"=>"1","name"=>"hoge","created"=>"2009-09-29 00:00:00");

なんて連想配列をperlにてハッシュで表現した場合、each関数などでループ処理すると順番に取り出しますが、その順番は上記の記述における順番とは違い、期待とは違う場合があります。

PHPの場合なら

foreach($list as $key => $val){
print "$key:$val<br />\n";
}

結果

id:1
name:hoge
craeted:2009-09-29 00:00:00

となりますが、perlの場合

while(($key,$val)=each(%list)){
print "$key:$val<br />\n";
}

結果

created:2009-09-29 00:00:00
name:hoge
id:1

とか。


そこで、期待したとおりに出力させるためにモジュールをインストール!


そのモジュールがTie::IxHashです。

CPANにてインストールしました。

# cpan

初めに初期設定メッセージがいろいろ出てくるので、基本はデフォルトのままEnterしていけば良いと思います。

必要なプログラムパスを確認してくるところで、gzip, tar, make, lynxは最低限あるように配慮して続け、Parameters for the 'make install' command? []と確認してくるところでUNINST=1と入力し、"古いモジュールがあった場合には消す"オプションを設定します。

ちなみに、先に設定してしまっていた場合は、

# cpan

> o conf make_install_arg UNINST=1

として設定を変更可能。(なお o conf で一覧が見られ、同様にして他も変更できます。)

その後もproxy設定不要ならそのままEnter、地域やミラーサーバは適宜選択。

以上でCPANの利用準備完了です。


>install Tie::IxHash

で、目的のモジュールがインストールできます。

抜ける場合は q または Ctrl+D で。


あとはモジュールをロードしてハッシュを設定すれば、期待どおり挿入順に取り出せます。

#!/usr/bin/perl

use Tie::IxHash;

tie %list,'Tie::IxHash';

%list = ('id'=>'1','name'=>'hoge','created'=>'2009-09-29 00:00:00');

while(($key,$val)=each(%list)){
print "$key:$val<br />\n";
}


ドキュメントやサンプルは以下を参照。

http://search.cpan.org/~gsar/Tie-IxHash-1.21/lib/Tie/IxHash.pm

↑このページのトップヘ