かみぽわーる

kamipo's blog

SSDのSecureEraseのやり方

ssd

SSDをずっと使っていると断片化してるのかなんなのかよく知らないけど、だんだん性能が落ちてくるし、彼女と別れることになる。あのころの性能を取り戻すSecureEraseという技があるのでやり方のメモ。SecureEraseをするにはSSDが「not frozen」になってる必…

Debianでperfを使う

チューニンガソンの優勝者がperfというコマンドを使ってCPU時間のプロファイリングをしていたらしい。そんなコマンドはじめて知った…。yumだと以下のように直感的なパッケージで入るそうですが yum install perfDebian Squeezeでperfコマンドはlinux-baseパ…

Apacheが%2Fを勝手にデコードして生きるのが辛いとき

mod_rewriteでの最後の砦 - As a Futurist...をみて、僕もApacheでURLに%2Fを含むリクエストをリバースプロキシするときに困ったことがあったなーというのを思い出した。 AllowEncodedSlashes On RewriteRule ^/(.*)$ http://backend/$1 [QSA,L,P]みたいな設…

Redmineのインストール

REEにRedmineをインストールするときの注意点 rack 1.0.1 が必要 i18n 0.4.2 が必要 rubygems のバージョンが 1.5.0 未満じゃないと動かない REE の rubygems が 1.5.2 なのでバージョンを下げないといけない 以下、Debian squeezeでRedmineを動かすまでの作…

screen -X sessionname hoge で現在のセッションの名前を変更できる

ということをよく忘れてググってるのでメモ。

NAT環境下では net.ipv4.tcp_timestamps = 0 する

NAT環境下に複数ホストがいてそいつらがクライアントのときに、WAN側のサーバに接続が切られるときは net.ipv4.tcp_timestamps = 0 すればいいというのを教えてもらいました! 【緩募】SYN に SYN+ACK じゃないレスポンス受け取って RST しちゃう問題の解決…

MySQL 5.5対応したSpiderストレージエンジンをインストールする

なんか cmake 失敗するなーと思ったら、実行権限がないディレクトリが含まれててその中のファイルが読めないのでよしなに実行権限あたえて cmake してください。 cd /usr/local/src wget "http://launchpad.net/spiderformysql/spider-2.x/2.24-for-5.5.8/+d…

SQLでincrementした値を表示するやつ

MacBook Air 11インチ欲しい!@sugyanさんのSQLでincrementした値を表示する方法を考える - すぎゃーんメモを生DBIでやってみたのとベンチマークとってみた。トランザクションなし Rate dbic teng dbi1 dbi2 dbic 578/s -- -64% -92% -92% teng 1587/s 175% …

xtrabackupをちょっと便利に使う

xtrabackupにはinnobackupexというラッパースクリプトが付属していて、MySQLのプロセスを止めることなくバックアップを取れて便利なんですが、innobackupexでバックアップ取ると以下の点が不満だったりする。 --slave-infoで生成されるCHANGE MASTER文が不完…

東急ハンズでベニヤ板を買うとき

東急ハンズでベニヤ板を275mm×440mmサイズにカットしてもらうときは12枚の倍数で買うと一番コスパがいい。12枚の倍数もいらないときは6枚の倍数で買うのがいい。

MySQL Casual Talks vol.1 おつかれさまでした

MySQL Casual Talks vol.1 おつかれさまでした!当初は開発環境や検証環境構築に便利なMySQL::Sandboxの話でもしようかなーと思ってたんですが、@myfinderさんが「SPIDERの話が聞きたい!」というので今回の発表になりました。内容は以前ブログに書いたVPとS…

ディスクのUUIDを調べる方法

Debian lennyのfstabを見ると /dev/sda1 / ext3 errors=remount-ro 0 1みたいに/dev/sda1とかでデバイスが指定されてるのだけど、UbuntuとかDebianでもsqueezeあたりだと UUID=04a6ba33-73ff-4f9f-a09b-199a83f73dd6 / ext4 errors=remount-ro 0 1みたいにUU…

YAPC::Asia 2010 おつかれさまでした

YAPC::Asia 2010 おつかれさまでした!今年のYAPCは去年のPlack/PSGIのときみたいな目新しいトピックはあまりなくて、この一年でわりと成熟したPerlの開発環境や、ふだんブログなどでは表に出てこないようなサービス運用の舞台裏的なセッションが面白かった…

VPとSPIDERを使って任意のテーブルを別ホストに移行する

MySQLのVPストレージエンジンとSPIDERストレージエンジンを使って、任意のテーブルを別ホストのMySQLに簡単に移行するスクリプトを書きました。 ※ただしPRIMARY KEYがあるものに限るVPとSPIDERを使って任意のテーブルを別ホストに移行する — Gistに置いてあ…

libjpeg-turboでjpegの変換が速くなる

巷でlibjpeg-turboというやつが速いというのを聞いたので試してみる。今回はaptで入れた以下のモジュールでベンチマークしてみた。いちおうサーバはさくらのVPSでOSはUbuntu 10.04 LTSです。 Image::Magick 6.5.7 Imager 0.72 GD 2.39 Image::Imlib2 2.02 ふ…

mycachedがmsgpack対応してた

mycachedを入れようと思ってtrunkのコード見てたら、mycachedのレスポンス形式にmsgpackが追加されてた。知らなかった。msgpack-0.4.3のインストール。 cd /usr/local/src wget http://downloads.sourceforge.net/project/msgpack/msgpack/cpp/msgpack-0.4.3…

Q4Mのインストール

cd /usr/local/src wget http://q4m.31tools.com/dist/q4m-0.9.4.tar.gz tar zxvf q4m-0.9.4.tar.gz cd q4m-0.9.4 ./configure --with-mysql=/usr/local/src/mysql-5.1.50 make && make install /usr/local/mysql/bin/mysql -u root -f -v mysql < support-f…

mysqlにhandlersocket pluginを入れる

ほぼまっさらなUbuntu 10.04 LTSにmysql-5.1.50を入れたので、リリースされたばかりのhandlersocket pluginを入れたときのログ。 付属のMakefileがインストールパス決め打ちだったので、直に/usr/local以下に入れるようにしてます。あとよくわからなくて苦労…

MySQLのconfigureオプションを知りたいとき

MySQLのバイナリパッケージとか、自分がコンパイルしてないMySQLのconfigureオプションを知りたいときはmysqlbugスクリプトを使うとよいです。 % VISUAL='grep "Configure command" 1>&2' /usr/local/mysql/bin/mysqlbug > /dev/null Configure command: ./c…

Ubuntu 10.04 LTSにgroongaストレージエンジンを入れる

さくらのVPSにUbuntu 10.04 LTSを入れたので、まっさらな状態からgroongaストレージエンジンを入れるまでのログ。groonga-0.7.6のインストール。 sudo chown kamipo /usr/local/{,*} sudo aptitude install build-essential pkg-config sudo aptitude instal…

Muninのグラフを動的生成にする

通常だとMuninは5分毎に対象ホストの全てのグラフを生成するんだけど、Debianにはmunin-cgi-graphというCGIが付いていて、オンデマンドに参照してるグラフだけを生成することができる。やり方はmunin.confに graph_strategy cgiと書くとバッチ処理で生成され…

Spiderをバイナリパッケージからインストール

今日はDeNA Technology Seminar #2ですが、皆さんSpiderの予習復習は大丈夫でしょうか。 Spiderのチュートリアルといえば@nippondanjiさんのエントリーを見るのが一番だと思いますが、ちょっと試してみたいときにmysqlのコンパイルから始めるのは大変なので…

phpの論理演算子と三項演算子

php

社内IRCでphpの論理演算子の話題が出てたので、phpで僕が嫌いな論理演算子と三項演算子の挙動について。 % perl -e 'print("hoge" || "fuga");' hoge % ruby -e 'print("hoge" || "fuga");' hoge % python -c 'print("hoge" or "fuga");' hoge % js -e 'prin…

mysqlでクエリのコメントがshow full processlistに表示されないときの対処法

人力検索twitterで聞いたらすぐ解決しました。 SELECT /*!99999 helllo world */ ... というBKがありますぉ RT @kamipo: mysqlでクエリにコメント書いても show full processlist 見るとパースされて消え去ってて無念だ…。 #mysql2010-05-26 15:39:06 via we…

MySQL(InnoDB)でCOUNTしたくないとき

たとえば、MySQL を使ったお手軽メッセージキュー実装 - ドワンゴ 研究開発ブログに出てくるようなInnoDBをメッセージキューのように使っているときに、キューにどれだけメッセージが溜まってるかを確認したいとき、普通に考えるとCOUNTすると思う。 SELECT …

InnoDB PluginとXtraDBのオプションのメモ

mysql 5.1.42 InnoDB Plugin 1.0.6 XtraDB 1.0.6-9 の場合。InnoDB -> InnoDB Pluginで増えたオプション innodb_adaptive_flushing ON innodb_change_buffering inserts innodb_file_format Antelope innodb_file_format_check Antelope innodb_io_capacity …

MariaDBでスレッドプーリングを使うには

configureオプションで--with-libeventを指定してbuildしないとスレッドプーリングは使えナッシブルです!とりあえず自分のmacbookには以下のようにして入れてます。 ./configure --prefix=/usr/local/mariadb --with-charset=utf8 --with-extra-charsets=co…

mysqld_multiの設定例

mysqld_multiでググると、そんなにブクマされてるわけでもないのに いつもid:sasata299のブログが一番上に出てくる。 mysqld_multiで複数のmysqldの一括管理 - (゚∀゚)o彡 sasata299's blog これはもう、はてダでmysqld_multiのエントリ書いたら勝つる! そこ…

git diffのメモ

git

gitにはworking copyとindexとlocal repositoryがある。はず。そんで % git diffはworking copyとindexのdiffで % git diff --cachedはindexとlocal repositoryのdiffで % git diff HEADはworking copyとlocal repositoryのdiff。で合ってると思う。

debianでiptablesのip_conntrack_maxを変更する

ip_conntrack の最大値を変更するには、/etc/sysctl.conf に次の内容を追記します。 # Maximum number of conntrack net.ipv4.netfilter.ip_conntrack_max = 524288あとは、この設定を有効にするために、次のコマンドを実行します。 $ sudo sysctl -p iptabl…

ゲートウェイサーバにncプロセスが溜まる

だいぶ前の話だけどメモ。 なんかゲートウェイのサーバにncプロセスが溜まっていくから仕方なくcronでkillall ncしてるけどこういうもんなのかな。 http://twitter.com/kamipo/status/1572388197 @kamipo ncの-w Nでタイムアウト指定しても残りますかね? ht…

rubygems 1.3.5にupdateするにはまず1.3.1にする

今までrubygems入れるときは最新のソースからcheckinstallで入れてたから気づかなかったけど、aptで入れてupdate_rubygemsしようとしたらうまいこといかなくて、調べてみたらそういうことだった。 % sudo aptitude install rubygems % sudo gem install ruby…

OSが32bitか64bitか判定する方法

twitterで教えてもらった。 % perl -le 'print "@{[~0, 2**32-1, 2**64-1]}"'~0とかいう発想は思いつかなかったなー。 参考 Twitter / hirafoo: @kamipo sizeof(long) ... Twitter / ktat: @kamipo perl -e 'print ~0' ...

WAN側にVIPで付け替えたIPにWAN側から繋がらなくて困った

そもそも繋がってる状態からだと、繋がらない状態に戻す方法がわからなくて再現手順の検証が大変だったけど、もしも同じ状況になった人がいたら、少なくとも僕はこうやったら解決できましたよというメモ。そこらへんで売ってる市販のルータでアンナンバード…

シェルでエスケープシーケンスを出力する

echoだとこんな感じ。 % echo -e "hoge\tfuga"最近のシェルだとprintfを使ったほうがいいらしい。 % printf "hoge\tfuga\n"

John the Ripperでパスワードの強度を調べる

パスワードを平文で保存しとくのはもってのほかだけども、ハッシュ化してれば見られても安心かというとそうでもない。 パスワードクラッカーのJohn the Ripperを使うと簡単なパスワードはハッシュ化しててもすぐにばれてしまう。 # aptitude install john -y…

initramfsの中身を見る

もしinitramfsに新しいドライバが追加されたか気になるときは、以下の手順で確認できる。 # mkdir /tmp/initrd # cd /tmp/initrd/ # gunzip -c /boot/initrd.img-`uname -r` | cpio -ivd # ls -l lib/modules/`uname -r`/kernel/drivers/net/r* -rwxr--r-- 1…

オンボードのRTL8111CのRX droppedがすさまじい件

最近のオンボードNICの蟹チップはRTL8111Cが多いかと思うんだけども、これ、普通にdebian入れてifconfigしてみたら、インストール直後にも関わらずものごっつい勢いで受信パケットのドロップが増えていってる。 # ifconfig eth0 Link encap:Ethernet HWaddr …

メモリチェッカー memtest86+を入れる

今までメモリ不良の疑いがあるときはknoppixとか外部メディア入れて そこからmemtest86+起動してたけど、これはかなり面倒だった。 そして風の噂でubuntuのブートメニューにはmemtest86+が入ってるらしいことを聞いて こりゃdebianでもできるなと思ってやっ…

Math::BigInt::Liteはx86だとテストが通らない?

前からDBIx::MoCoを入れようとするたびにMath::BigInt::Lite 0.12のテストが通らなくてゲンナリするんだけど 今日x86_64のperl5.10でやったら余裕でテスト通った。 通らないテストはt/bigintpm.incの200行目で、 x86 perl5.8.9 try: $x = Math::BigInt::Lite…

sudoersの%sudo ALL=(ALL) ALL,!/bin/su意味ないからやめた

sudoでsuできないようにしたほうがいい。そう思っていた頃が僕にもありました。root権限でsudoできる時点であらゆる方法でrootになれるようなので %sudo ALL=(ALL) ALLに変えた。sudoでrootになろうとしてる輩は/var/log/auth.logみたらわかるので そういう…

エクセルのオートフィルタのメモ

空白の列が途中にあると、その列でオートフィルタが分断されるから注意!

Vim勉強会 in MTLに行ってきた

すでに一週間ぐらい経過してるので 詳しい内容は以下を参照してもらって Vim勉強会 in MTL に参加してきました - (゚∀゚)o彡 sasata299's blog Vim勉強会 in MTL 行ってきました - サイト更新停滞ちうっ UKSTUDIO - Vim勉強会 in MTLで話してきました 以下、個…

NICの一覧が欲しかった

debianのeth0とかeth1とかが認識順になるせいでNICの指定がめんどくさい。 ifconfig -s |perl -lne 's/(\S+).*/$1/; print unless /^(?:Iface|lo)$/'ifconfig -s |perl -lne 'grep {print unless /^(?:Iface|lo)$/} /(\S+)/'

Smiley Hackathon#4に行ってきた

毎回予定が合わなくて行けなかったSmiley Hackathon #4に行ってきた。ずーっと前からcodereposのコードをgithubに移行しようと思って放置してたのを この機会にやろうと思ったんだけども、結局gitクライアント入れただけで終わった。 portでgit-core入れたら…

Rubyも1.9.1が出ましたね

「Ruby 1.9の歴史が始まる」1.9系初の安定版1.9.1正式リリース:ITpro http://itpro.nikkeibp.co.jp/article/NEWS/20090131/323916/ またRuby 1.9では多言語化が行われ,マルチバイト文字も1文字としてカウントされる。ブロック引数が常にローカル変数となる…

Rails2.3.0 RC1出た

Rails2.3リリースノート訳 : うぇぶたま http://webtama.jp/series/railstips/articles/31Rack統合きたー!あとセッションが遅延ロードになったのが良いね。

再インストール後のメモ

mac

Firefox入れた Xcode Mac Dev Center - Apple Developer MacPorts入れた Dropbox入れた Growl入れた Finder→すべてのファイル拡張子を表示 Terminal.appの環境設定 TAROSITE.NET | Snow Leopard: 入力種別切り替えショートカットの設定 ことえり環境設定→Win…

環境に合わせた改行に変換するワンライナー

alias nlconv='perl -i -pe '"'"'s/\x0D\x0A|\x0D|\x0A/\n/g'"'"

文字列の分割・結合

php

分割 explode ― 文字列を文字列により分割する PHP: explode - Manualstr_split ― 文字列を配列に変換する PHP: str_split - Manualsplit ― 正規表現により文字列を分割し、配列に格納する PHP: split - Manualspliti ― 大文字小文字を区別しない正規表現に…