ConoHaに移行してみたConoHaというVPSでコミュニティ支援をしているらしいので、TwitterでRubyでも使わせてもらえるかなとつぶやいたところ、使えますよというありがたいお言葉が。成瀬さんや柴田さんと相談してCIで使わせてもらうことになりそう。今までこのサイトはboron.rubyist.netに間借りしていたがそろそろVPSに移行しようかなと思っていたので、試しに移行してみることにした。100GB、月額976円)。標準のCentOSでもよかったけど、FreeBSDのカスタムイメージが提供されていてvirtioもサポートされているようだったので、ひさしぶり(10年以上ぶり?)にFreeBSDにした。実際のスペックはこんな感じ(dmesgより)。1リソースがもったいないのでchkbuildを動かしてみた。HEADに移行したけど、これについては後で書く。tDiaryは最初はgemで4.0.2を入れるつもりだったけど、tdiary-contribが動作しない問題やRDスタイルが動かない問題に当たってしまったので、gitでHEADを入れることにした。installしたところ上手く動くようになった。image_ex.rb最後のimage_sizeはimage_ex.rbプラグインのために必要なのだが、そもそもimage_ex.rbの画像リサイズ機能を最近だれも使っていないようで、ドキュメントにはRAAからimage_size.rbをインストールするように書いてあるけど、もはやRAA自体が存在しない。gemでインストールできるimage_sizeの方は互換性がないようなので、image_ex.rb側をgemのimage_sizeでも動作するように修正してtdiary-contribにコミットしておいた。移行エントリを書いたら早速障害に当たってしまった。収容ホストcnode-a3032にてIPv4・IPv6通信不可(ローカルネットワーク・追加IP含む)Webのコンソールでログインしたらアドレスが取れていなかったので、DHCPのままだったのを静的に設定するように修正したところ、とりあえず通信はできるようになった。パケットロスが多いようだ。msping6した時にv6の逆引きの設定をしていなかったのに気付いたので設定しておいた。メールでも連絡が来ていて対応は早そうなので、早く復旧するといいなあ(ipfwの設定ミスとかだったりして)。追記:ipfwを止めてデフォルトゲートウェイにpingしてもパケットロスするのでやっぱりConoHa側の問題かな。ms追記2:原因は「外部からの不正通信の影響」とのことだった。下記日時におきまして、ConoHaのVPSに障害が発生しておりました。ご利用のお客様には大変ご不便をお掛けいたしましたことを深くお詫び申しあげます。収容ホストが正常に通信できない状態となりましたので、再起動を実施。サーバーに収容のVPSが正常に起動したことを確認いたしました。RailsでMySQLを使う際のcollation周りの問題についてRailsでMySQLを使う時のcollation周りの注意点のメモ。db:create:allとかすると、デフォルトではcollationがutf8_unicode_ciになるが、大文字小文字や半角全角を区別しないだけならまだしも「パ」と「バ」の区別もされない。欧米の人にはutf8_unicode_ciの方が都合がいいんだろうけど。以下のページの手順でutf8_general_ciやutf8_binに変更しておくとよい。ActiveRecordでデフォルトの照合順序を変更するvalidates_uniqueness_ofのcase_sensitiveオプション以下のページで指摘されているように、validates_uniqueness_ofのcase_sensitiveオプションはデフォルトがtrueなので、大文字小文字を区別しないcollationのテーブルでもBINARYキーワード付きで大文字小文字を区別しない検索をしてしまう。その2collationが*_ciの時はいちいちcase_sensitiveオプションを指定しないといけないけど、DRYじゃない。collationを参照してデフォルトの動作を変えるプルリクエストを送ってみたけど、あまり反応がない。RDBMSによってデフォルトの動作を変えたくないのかもしれないけど、それならデフォルトのcollationをutf8_binにするべきだ。このあたりRailsでMySQLを使っている人は不満に思っていないのだろうか。それともHerokuの影響で今時はみんなPostgreSQLなんだろうか。バックアップから復旧できたからよかったけど。ハードウェア交換を実施するようなので、これで安定するといいなあ。下記日時におきまして、ハードウェア交換を実施させていただきます。ご利用のお客様にはご不便をおかけいたしますが、何卒ご理解ご協力のほどお願い申しあげます。10.0-RELEASEが出ていたのでアップグレードした。lib?というエラーが出るため、~/.rbenv/versions/trunkにtrunkを手動でインストールして凌ぐことにした。目に付いた変更点はデフォルトのコンパイラがclangになった。パッケージ管理システムがpkg(前のpkgng)になった。pkgはDebianのAPTみたいな使い方ができて便利そう。移行後はpkg2ngでパッケージデータベースを変換するのを忘れないように。あと、FreeBSDのapache24はなぜかmod_slotmem_shmが含まれていないのでmod_proxy_balancerが使えなくて、以前は手動でビルドしていたのだが、せっかくpkgでバイナリパッケージを管理できるようになったのであまりソースからビルドしたくない。結局nginxを使うことにしてお茶を濁した。Vitaを購入して朧村正というアクションRPGをやっていたのだが、やっと鬼助編の真エンディングを見ることができた。このゲームは鬼助編と百姫編に分かれていて、それぞれクリアすると刀が手に入るのだが、両方の刀を装備して再度ラスボスを倒すと別パターンのエンディングを見ることができる。魔窟の刀をすべて集めて鍛冶を行うとタイトルにもなっている朧村正を手に入れることができて、朧村正を装備してラスボスを倒すと真のエンディングを見ることができるのだ!(つまりすべてのエンディングを見るためには合計6回クリアしないといけない)ラスボスを倒すと、なぜかヒロインの虎姫が命を落とす前にタイムスリップして、悪代官の悪事が暴かれ、虎姫の命が助かるという都合のいい展開。これもなぜかよくわからないが、この島国にはもう敵がいないとか言って虎姫と別れ、旅に出る。勝ったらまた戻って来るらしい。クレジット表示が終わると最後はアメリカっぽいところに鬼助が...誰と戦うんや。百姫編ではまた別エンディングがあるらしいが、レベルを上げないと朧村正を帯刀できないので正直もうめんどい...。昔懐かしい横スクロールアクションゲームなので、僕みたいに今時のゲームについていけないおっさんにおすすめ。アクションに自信がない人は、無双モードというイージーモードだと楽に戦える(正直魔窟は無双モードじゃないと勝てる気がしない)。