[メモ] 07 August 2010 はてなブックマーク - AWSのEC2、LargeInstanceでのQ4Mベンチ結果 Twitterでつぶやく

AWSのEC2、LargeInstanceでのQ4Mベンチ結果

忙しいけど。
参考までにはっつけておきます。
・AmazonEC2(Large)+EBS
・AMIはami-57f28d05のUbuntu10.04LTS 64bit版
・mysqlはaptで導入、データディレクトリはEBS上
・Q4Mは0.9.4でconfigureは下記
./configure CPPFLAGS=-I/usr/include/mysql  
--with-mysql=/home/ubuntu/src/mysql-dfsg-5.1-5.1.41
テスト結果は、もっと読むで
» 続きを読む

[メモ] 09 July 2010 はてなブックマーク - Q4M on Ubuntu10.04 Twitterでつぶやく

Q4M on Ubuntu10.04

MySQLのQueueエンジンであるQ4MをLucidで利用するためのメモ。
ここを参考にインストール。
環境は OS: Ubuntu 10.04 64bit / Mem: 4GB / CPU: Phenom 9550 2.2GHz

▽ Q4Mについてはこちら
Q4M - a Message Queue for MySQL
http://q4m.31tools.com/

▽ インストール
1、 入れておくもの
sudo apt-get install libmysqld-pic mysql-server dpkg-dev libssl-dev

2、 mysqlのソースDL
sudo apt-get source mysql-server

3、 Q4Mダウンロード、解凍
mkdir -p ~/src
cd ~/src
wget http://q4m.31tools.com/dist/q4m-0.9.4.tar.gz
tar xvzf q4m-0.9.4.tar.gz

4、 Q4Mビルド
cd q4m-0.9.4
./configure CPPFLAGS=-I/usr/include/mysql --with-mysql=/tmp/mysql-dfsg-5.1-5.1.41
make
sudo make install
mysql -uroot -p -f mysql < support-files/install.sql


▽ テスト

※ 先にtestというdatabaseを作っておくこと!
1、 テストで利用するPerlライブラリインストール
sudo apt-get install libdata-compare-perl liblist-moreutils-perl
これ入れないとテスト実行中に下記の様なエラーがでる。
t/02-queue-cond.t ......................... Can't locate Data/Compare.pm in @INC (@INC contains:
/etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5
/usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at t/02-queue-cond.t line 6.
BEGIN failed--compilation aborted at t/02-queue-cond.t line 6.
とか
t/05-multiwait.t .......................... Can't locate List/MoreUtils.pm in @INC (@INC contains:
/etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5
/usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at t/05-multiwait.t line 10.
BEGIN failed--compilation aborted at t/05-multiwait.t line 10.
# Looks like your test exited with 2 before it could output anything.

2、 テスト実行
DBI_PASSWORD='DBのパスワード' ./run_tests.pl

3、 テスト結果
t/01-base-rnd_pos.t ....................... ok   
t/01-base.t ............................... ok
t/02-queue-cond.t ......................... ok
t/02-queue-owned-delete.t ................. ok
t/02-queue.t .............................. ok
t/03-queue-error-wait.t ................... ok
t/03-queue-error.t ........................ ok
t/04-blob-cond.t .......................... ok
t/04-blob.t ............................... ok
t/05-multireader.t ........................ 1/4

Multireader benchmark result:
Number of messages: 6400
Number of readers: 32
Elapsed: 3.444 seconds
Throughput: 1858.207 mess./sec.

t/05-multireader.t ........................ ok
t/05-multirw.t ............................ 1/4

Multi-reader-writer benchmark result:
Number of messages: 6400
Number of readers: 32
Elapsed: 7.188 seconds
Throughput: 890.400 mess./sec.

t/05-multirw.t ............................ ok
t/05-multiwait.t .......................... 1/4

Multi-reader-writer benchmark result under semi-starvation:
Number of messages: 6400
Number of readers: 32
Elapsed: 14.024 seconds
Throughput: 456.349 mess./sec.

t/05-multiwait.t .......................... ok
t/06-multi.t .............................. ok
t/07-trans.t .............................. ok
t/08-forward.t ............................ ok
t/09-pqueue-single-table-wake-listener.t .. ok
t/09-pqueue-single-table.t ................ ok
t/10-largedata.t .......................... skipped: set BIG_TESTS=1 to run theese tests
t/11-conc-compact.t ....................... ok
All tests successful.
Files=19, Tests=70718, 595 wallclock secs ( 8.33 usr 0.54 sys + 103.71 cusr 5.08 csys = 117.66 CPU)
Result: PASS

▽ Q4M関連参考
mixi Engineers’ Blog » Q4M
http://alpha.mixi.co.jp/blog/?cat=19

ハタさんのブログ(復刻版) : Q4MをPHP(PDO)で
http://blog.xole.net/article.php?id=719

Unbuntu 9.10 Server に MySQL 5.1 と InnoDB Plugin と Q4M をインストール。 - Cafe L@ Bebop
http://d.hatena.ne.jp/norizo3/20091112/1257956754

[Linux] 03 July 2010 はてなブックマーク - はいはい、いつものJavaのフォント設定 for Ubuntu10.04 Twitterでつぶやく

はいはい、いつものJavaのフォント設定 for Ubuntu10.04

自分的にはUMLで必須のastah*をUbuntu10.04のSun版JDK環境で利用してたらいつも通り豆腐になりましたから、いつも通りフォント設定書き換えましょう。

1、設定ファイル読み込みの順番が関係するのでまず既存の設定ファイルを移動する。
fontconfig.bfc > fontconfig.properties.src > fontgonfig.properties > ディストリ別フォント設定ファイル っぽい
cd /usr/lib/jvm/java-6-sun/jre/lib
sudo mkdir fontconfig_backups
sudo mv fontconfig.* ./fontconfig_backups
sudo mv fontconfig_backups/fontconfig.properties ./
ちなみに/usr/lib/jvm/java-6-sun/jre/lib/fontconfig.properties/etc/java-6-sun/fontconfig.propertiesへシンボリックリンクされてる。

2、フォント設定ファイルのkochiとsazanamiのパスをtakaoへ書き換える。

filename.-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/takao/TakaoGothic.ttf
filename.-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/takao/TakaoGothic.ttf
filename.-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/takao/TakaoMincho.ttf
filename.-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/takao/TakaoMincho.ttf

awtfontpath.japanese-kochi=/usr/share/fonts/truetype/takao
awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/takao

以上でフォントの豆腐状態が解消するはず。

[Linux] 01 July 2010 はてなブックマーク - UbuntuでAeroSnapのScript版 Twitterでつぶやく

UbuntuでAeroSnapのScript版

ええ、別にWindows使わなくても困ってはいませんけどWindows7のAeroSnapあれは良いですね。
特にワイドになってからブラウザを最大化で使うのは気が引けます。FullHDで最大化とかしたら特に気が引けちゃうわけです。
でも、液晶2枚よりHD1枚の方が予算的にも通りやすいのでそんな環境ではやっぱりAeroSnapですね。
AeroSnap風処理

ちなみにAeroSnapが分からない人のために説明しておくとWindows7から導入された機能で、ウインドウを左隅へドラッグ&ドロップすると左半分最大化、右隅へだと右半分最大化、上だと普通に最大化というAppleのJobsならこれだけで5分はプレゼンできそうな気の利いたかつ洒落た機能です。

Windowsメインのひとはこれだけで7に乗り換えるメリットがあると言っても過言じゃないと思います。



で、長くなったわけですが、UbuntuのCompizでAeroSnapを実現する方法がないかと探したところ色々ありました。代表的なのは下記です。

Get Aero Snap in Ubuntu | OMG! Ubuntu!
http://www.omgubuntu.co.uk/2009/11/aero-snap-ubuntu-linux.html

でも、これはあんまり嬉しくないです。なぜならドラッグ&ドロップじゃなくてもマウスポインタがエッジにくるとポコポコとアクティブウインドウのサイズが変わっちゃうからです。

で、探していたら有りました。

Ubuntu Forums - View Single Post - [ubuntu] Aero Snap function?
http://ubuntuforums.org/showpost.php?p=9399292&postcount=95

簡単に言うと、エッジに来たときにこのスクリプトを実行してマウスデバイスを検査して押下されている場合はループ処理して、ボタンが解放されたらループ終了してアクティブウインドウの最大化的なことをやってます。
上記のUbuntu Forumsに掲載されているコードはLeftだけなのでちょこっと弄ってLeft,Top,Right対応版(conpizsnap.sh)を用意しました。

▽使い方
1、 Left,Top,Right対応版(conpizsnap.sh)をダウンロードして任意の場所に配置。

2、CompizConfig設定マネージャーとwmctrlをインストール
sudo apt-get install compizconfig-settings-manager wmctrl
3、システム > 設定 > CompizConfig設定マネージャ を開く

4、コマンド を開く

5、コマンドタブのコマンドライン0に下記を記入
bash [任意のパス]/compizsnap.sh
6、エッジ割り当てタブでコマンドライン0にLeft,Top,Rightを割り当てる。
→ デスクトップの壁プラグインのフリップとぶつかる場合は無効にする。

以上で幸せなAeroSnapライフが・・・。
誰かシェイクができるようになったらぜひ教えてください。

[メモ] 24 June 2010 はてなブックマーク - Extentionビルドしててpcre.hが存在しないと怒られた。 Twitterでつぶやく

Extentionビルドしててpcre.hが存在しないと怒られた。

PECLのモジュールをビルドしていて、下記の様にpcre.hが存在しないと怒られた。
/usr/include/php5/ext/pcre/php_pcre.h:29:18: error: pcre.h: No such file or directory
In file included from /home/fumitaka/Downloads/oauth-1.0.0/php_oauth.h:47,
from /home/fumitaka/Downloads/oauth-1.0.0/oauth.c:14:
/usr/include/php5/ext/pcre/php_pcre.h:37: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/php5/ext/pcre/php_pcre.h:38: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/php5/ext/pcre/php_pcre.h:44: error: expected specifier-qualifier-list before ‘pcre’
make: *** [oauth.lo] エラー 1

解決方法はlibpcre3-devを入れる。
sudo apt-get install libpcre3-dev

ちなみにlibpcre3-devは
Perl 5 Compatible Regular Expression Library - development files 構文と意味をできるだけ Perl 5 のものに似せた正規表現に対応するための関数の ライブラリです。
だそうです。

あとPHP Extentionの作り方のスライド見つけた。
Extention Writing
http://talks.php.net/show/vancouver-ext/0

[徒然] 21 June 2010 はてなブックマーク - そしておれたちにはブブゼラがある! / And we'd have to vuvuzela! / 然后,我们有呼呼塞拉! Twitterでつぶやく

そしておれたちにはブブゼラがある! / And we'd have to vuvuzela! / 然后,我们有呼呼塞拉!

Vuvuzelas
サッカーに興味ないけど、俺もブブゼラならしたくて勢いでブブゼラアプリ作った。
LetsVuvuzela.jad / LetsVuvuzela.jar
▽ 動作環境
MIDP2.0、CDLC1.1で動作確認はNOKIA E71。
▽ 操作方法
数字の5、またはスペースでブブゼラ!
↑で音量アップ、↓で音量ダウン

---------
I'm not interested in football, but I want to play Vuvuzela!!
So I made Vuvuzela MIDP.
LetsVuvuzela.jad / LetsVuvuzela.jar
▽ Environments
MIDP2.0(CDLC1.1) / Tested on Nokia E71.
▽ Key Assign
"5" or "SpaceBar" Pressed: Playback
"5" or "SpaceBar" Released: Stop
Up: Volume Up
Down: Volume Down

---------
我没有兴趣足球的世界杯,但是我也想做呼呼塞拉!
所以,我做呼呼塞拉MIDP了。
LetsVuvuzela.jad / LetsVuvuzela.jar
▽ 动作环境
MIDP2.0(CDLC1.1) / Nokia E71上测试了.
▽ 键盘方法
"5" or "空格" 一直按: 播放
"5" or "空格" 开放: 停止
Up键: 声音大一点
Down键: 声音小一点

[Linux] 05 May 2010 はてなブックマーク - Ubuntu10.04LTS(Lucid Lynx)入れた時のトラブルとか対策 Twitterでつぶやく

Ubuntu10.04LTS(Lucid Lynx)入れた時のトラブルとか対策

Lucid Lynx Statusbar
9.04から最新のLTSである10.04に移行したので色々メモ

まずは結論からいうとかなりの完成度、ちなみにThinkPad x200s(Desktop版)やNetbook(NetbookRemix)も入れたが得に大きな問題はなく即常用できる環境だといえる。
※Thinkpad x200sについては@smegheadさんがこちらにインストールメモを書いてくれてます。

▽ 感想とか改善点
・ 9.04と比べると起動速度とか終了速度がとても速い。
・ ALC662では音が出ないとか色々あったけど、10.04では解決してた。
・ "CPU 周波数の計測モニタ"のデフォルトでは周波数が変更できないバグが治っている。
システム>システム管理>ハードウェアドライバでバイナリドライバを入れるとちゃんと動作する。nVidiaの設定ツールも正常に動く。TwinViewの設定とか全然問題無し。
・ Qt4の問題だと思うけど、Skypeでアイコン設定しても反映されなかった問題が治ってる。
・ OpenOffice.orgの速度が速い、スプレッドシートでも以前は重かったものがわりとサクサク動く。あとロゴがORACLEになってるよw
・ VLCがセパレート式から元の一体型に戻った!超嬉しい。

あとインストール前に、下記のリリースノートを一読しておくと良いと思う。
LucidLynx/ReleaseNotes/ja
https://wiki.ubuntu.com/LucidLynx/ReleaseNotes/ja

ちなみにnVidiaのベンダ純正ドライバインストーラとは互換性がありませんって書いてあるので注意。

▽ 環境
CPU: PhenomII x4 940BE
M/B: SOYO SY-N8V-RL MCP78V、GeForce8100系
Mem: 8GB
VideCard: GeForce9400(オンボードとは別に利用)
SoundChip: Realtech ALC662

▽ 既存環境のバックアップ
インストール直前にコンソールで行った。
具体的には.(ドット)で始まるファイルの移動、下記のような感じで移動しておく。コピーするとキャッシュとか結構サイズ大きかったりするので注意。
mkdir dot_files
for n in $(ls -a|grep -e "^\.[a-zA-Z0-9]"); do mv $n ./dot_files ; done

で、インストール後に必要なものは適宜戻してやればOK。そのままにしておくと、やたらと古い設定とか引き継いじゃって最新の環境を満喫できなかったりすることがあるのでこうしてる。
.dropbox関連、.Skype関連、.google関連は書き戻すと履歴などもちゃんと復活する。

▽ インストール
RAIDを利用しているのでaltenateの64bitをインストール。
起動時にF6で起動オプションに下記を追加しないとSATAのドライバが有効にならずハードディスクが見つけられない。
pci=nomsi

また、この際のBIOSでのIDEモードはLinuxAHCIを設定、おそらくAHCIでもOK。ちなみに色々失敗するようなら末尾のquiet splash --などを削除して起動ログをちゃんと見ると良い。

▽ Grubとか
ブートローダのGrubがGrub2になってる。起動時にShift連打で起動オプションが開く。
あと/boot/grub/menu.lstはなくなって
/boot/grub/grub.cfg
になった。
当然、インストーラと同様に初回再起動前にGrubあげてpci=nomsiを設定、再起動後にgrub.cfgにもpci=nomsiを追加する。

▽ 日本語リミックスのパッケージをインストール
Ubuntuの日本語環境
http://www.ubuntulinux.jp/products/JA-Localized#repository

上記Ubuntu 10.04 LTSの場合に従ってインストールする。

--
他にもインストール後のトラブルとか設定とか結構長いので、この後ろに続く。
--
» 続きを読む

[メモ] 22 March 2010 はてなブックマーク - ECCUBEの管理画面でリダイレクト先が異常な件の傾向と対策 Twitterでつぶやく

ECCUBEの管理画面でリダイレクト先が異常な件の傾向と対策

管理画面にログインしてもURLがおかしくなってリダイレクトに失敗する現象の傾向と対策。
主に、LAMP環境でECCUBEのinstall.phpで定義してあるHTML_PATHにシンボリックリンクを含むディレクトリが利用されていると発生する。
# ホスティングサービスなんかだと、ユーザは知らなくてもリンクが利用されていたりFTPでは隠蔽されていたりするのでみんな遭遇してるのでは無いかと思う。

▽ 対策
LC_Page.phpのgetRootPathメソッド以下、255行目(2.4.3の場合)にある下記
$htmlPath = str_replace("\\", "/", HTML_PATH);

を、以下のように書き換える。
$htmlPath = str_replace("\\", "/", realpath( HTML_PATH) );

▽ ポイント
URLを合成する際になぜかHTML_PATHをリアルパスへ展開後、再びリアルパスを排除するというやり方を取っているのだけれど、そのリアルパスを排除する部分ではHTML_PATHをリアルパスへ展開していないために展開したHTML_PATHが排除されずに妙な事になってしまう。

[Programing] 20 March 2010 はてなブックマーク - 超軽速BTSのStarbug1をamalgamation版Sqlite3で半生静的ビルドのメモ Twitterでつぶやく

超軽速BTSのStarbug1をamalgamation版Sqlite3で半生静的ビルドのメモ

starbug1
@smegheadさんがOSSで公開されている超軽速BTS Starbug1(日英中対応)についてはこちらを見てください。

Starbug1 Official WebSite - start

http://starbug1.sourceforge.jp/start

でもsqliteは既に入っていたりして動的リンクだと競合しそうで試せない人もいるかもしれないので、手軽に利用するためにSqlite3とcgicを静的ビルド化して、ついでにSqlite3に10%程度高速らしいというamalgamation版を使ってみたメモです。

※3/22 追記: ここから
@smegheadさんの本体側でパッチを取り込みかつ、ビルドの方法が大幅に簡単になりました。
Re: 超軽速BTSのStarbug1をamalgamation版Sqlite3で半生静的ビルドのメモ - 週記くらい(BTS開発記)

ですので、以降の文章はまあ参考までということでよろしくお願いします。
---------- ここまで

▽ 環境について
LTSなので使っている人も多いUbuntu8.04.3 JeOS版です。
下準備として下記を行ってください。
sudo apt-get install build-essential gettext rsync

# 以降の方法でビルドしたバイナリを動かすためだけならgettext/rsyncが入ってれば問題ないはずです。

次に下記からそれぞれファイルを落として来てください。
・ starbug1-1.3.10.tar.gz
http://sourceforge.jp/projects/starbug1/
・ cgic205.tar.gz
http://www.boutell.com/cgic/cgic205.tar.gz
・ sqlite-amalgamation-3.6.23.tar.gz
http://www.sqlite.org/sqlite-amalgamation-3.6.23.tar.gz
・ static build用のパッチ
http://blog.makino-style.org/static_option.patch

▽ ビルド準備
全部解凍しちゃってください
for archive in $(ls *.tar.gz); do tar xvzf $archive; done

cgicのビルドをします。
  cd cgic205
make

sqlite3のビルドをします。
  cd sqlite-3.6.23
./configure
make

▽ Starbug1のビルド
まずstarbug1のMakefileにパッチをあてます。
  cd starbug1-1.3.10
patch < ../static_option.patch

つぎにライブラリとヘッダファイルをコピーします。
  cp ../cgic205/cgic.o ./
cp ../cgic205/cgic.h ./
cp ../sqlite-3.6.23/sqlite3.o .
cp ../sqlite-3.6.23/sqlite3.h .

最後に下記のオプションでmakeします。
  make INITIAL_LOCALE=ja_JP IS_STATIC=yes
make webapp

以上でdistの中に半生スタティック版のStarbug1ができてるはずです。
後は本家のドキュメントを参照してください。

[Programing] 14 March 2010 はてなブックマーク - TwitterにRTボタンを追加するUserScript for Chrome/GreaseMonkey(正式版) Twitterでつぶやく

TwitterにRTボタンを追加するUserScript for Chrome/GreaseMonkey(正式版)

RT Button
昨日試しにGMで作ったもの@smegheadさんの助けもあって、Tweetに自動でRTボタンが追加されるようになりました。それぞれLinux、Windowsで動作します。

機能としては非常に単純で、公式のTwitterのインタフェースに"RT"(RTとは?)ができるボタンを追加するスクリプトです。
TwitterのインタフェースとかCSSが変更されると、対応が必要かもしれませんがその時はコメントにでも書き込んでおいてください。



※Chrome版とGreaseMonkey版は微妙に異なるため間違ってインストールすると動作しません。その場合はスクリプトをアンインストールしてから、正しい版を入れ直してください。
▽ GoogleChrome(4以上)の場合は、下記をクリックするだけでExtentionとしてインストールされます
Chrome用 userrt_chrome.user.js

▽ Firefoxの場合はまずGreaseMonkeyのAddonをインストールしてから下記をクリックしてください。
GreaseMonkey用 userrt_gm.user.js

@smegheadさん、ありがとうございましたw
ちなみに@smegheadさんはこちらでCによる高速なバグトラッキングシステムStarbug1をOSSで公開しています。

▽ 追記
3/15 Tweetのテキストボックスが無い場合は、Homeに遷移してテキストボックスにRTを挿入する機能を追加。
3/16 Chrome版のみバグ修正。

▽ 既知のバグ
3/15 Windows版Chrome にてRTがうまく表示されないらしい。CSSのノード追加でNO_MODIFICATION_ALLOWED_ERRが発生。
→ 対応しました。Windows版Chromeではstyleやscriptタグの中身を追加するときは下記の様にしてやらないとちゃんと動作しない模様。
 var scriptNode = document.createElement('style');
scriptNode.setAttribute('type','text/css');
var textNode = document.createTextNode();
textNode.nodeValue = 'CSSとかの値を書き込む';
scriptNode.appendChild(textNode);
«Prev || 1 | 2 | 3 |...| 22 | 23 | 24 || Next»