やっとこさっとこ新鯖にApacheを移行


 さくらのVPSで動いているこのblogですが。
 さくらのVPSがv3になり、同じお値段で何とこの性能、しかも今なら移行期間を一ヶ月分無料、みたいなことになってたので移行してる訳ですよ。
 で、俺の借りてる鯖は諸方面の小さいサービスを集約してるんで、めんどくせーの何の。

 そんな細かいサービスを一つ一つ移転してたんですが、ようやく、ようやっと、Apacheの移転を決行したのであるよ。
 いやー、WordPressの移転は特にめんどくせーなー全くもう。それを二つ続けてやらなきゃならなかったから、もうめんどくせーの何のって。
 exportしてimportするだけで手軽かつ安定した素晴らしい移転機能にはなるんだけど、プラグインとかテーマとかごちゃごちゃカスタマイズが進んでくるとなあ…。

 で、ここが新鯖です。メモリ1GBは偉大だ。512MBの五倍くらいの広さじゃね。って書くとすごいバカっぽいですが、「それなりに自由に使えるスペース」は旧鯖だと128MBくらいだったから、割と正しいんじゃなかろーかと。
 既にDNSは移転が済んでるし、IRCは使ってるとは思えない雰囲気だし連絡も付かないから終了でいいのかもしれないし、残るは何だろ。まあ大したもんは無いな。気が重いのはメールくらいか。月末には間に合うだろう。間に合わないとサービス途切れるが(笑)。

 んで、油断してたら「携帯で見えないぜー」と言われる。がーん。
 エラーログを見ると、何かKtai Styleのezweb.phpの390行目でKtaiService_E
Zweb::$pictograms
プロパティが存在しないとか言われてた。ふむふむ。チラ見じゃ分からんな。んー。停止するか。一番気になるのはパケット代だけど、どれだけ変わるのかという気もするし、うちを携帯で見る人となると定額になってそうな気もするしなあ…。どうなんだろう実際。


WP SyntaxHighlighterに乗り換えた


 SyntaxHighlighterありますよね。ソースコードをかっこよく表示してくれる奴。

def fizzbuzz(n):
  for i in xrange(1, n+1):
    if i % 15 == 0:
      yield 'FizzBuzz'
    elif i % 5 == 0:
      yield 'Buzz'
    elif i % 3 == 0:
      yield 'Fizz'
    else:
      yield i

こんな感じに。

 今まではEasy Google Syntax Highlighterって奴を使ってたんですよ。
 選定の理由は、導入時の記事によると、2.0系じゃないと折り返しが使えないから、らしい。確かに折り返し大好きだからな俺。水平スクロールバーとか出したくない。本当はテーマもfluid-width系が欲しいんだけど、どうも好みのテーマが見付からなくて。昔の俺ならテーマくらい楽しく作ってただろうけどなあ。
 それと、プラグインへの依存は少ない方がいいんで、ショートコード系よりpreタグ系がいい。
 で、このプラグインは両者を満たしてたんで、深く考えずに使ってたんだけど。

 全然関係無いプラグイン情報を検索してたら、WP SyntaxHighlighterってのが最近の人気っぽいとか。ほほう。
 調べてみると、2.0も3.0も選べて、preタグ系で、しかもclass指定も今までのプラグインと同じで、細かい設定もかなり自由自在で、もうこれは使うべきだろうと思いました。
 何でこれを最初から入れてなかったんだろう、と思ったら、初版公開が2011/5/2だった。なるほど、当時はまだ無かったのか。

 という訳で、入れ替え。表向きの変化はほぼ無いけど。


s3cmdのmultipart uploadでunexpected errorが出る奴の対策


 前にも書いたけど、tarをgpgにパイプした奴をsshでリモホにコピーして、リモホ側でs3cmdでAmazon S3に上げさせる、とかやっている訳ですよ。
 で、5GBを超えたら、マルチパートアップロードが必要なのな。s3cmdは1.1から対応。ただしβ。
 つーことで、1.1.0-beta3で上げてたんだけど、毎回エラー吐くのさ。こんな奴。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   An unexpected error has occurred.
 Please report the following lines to:
  s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Problem: KeyErr: 'elapsed'
S3cmd:   1.1.0-beta3

Traceback (most recent call last):
 File "/usr/bin/s3cmd", line 1800, in ?
   main()
 File "/usr/bin/s3cmd", line 1741, in main
   cmd_func(args)
 File "/usr/bin/s3cmd", line 965, in cmd_sync
   return cmd_sync_local2remote(args)
 File "/usr/bin/s3cmd", line 931, in cmd_sync_local2remote
   output(u"File '%s' stored as '%s' (%d bytes in %0.1f seconds, %0.2f %sB/s) %s" %
KeyError: 'elapsed'

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   An unexpected error has occurred.
   Please report the above lines to:
  s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 Python使いにはお馴染みのトレースバックが埋まってるな。
 とりあえず文中のメールアドレスに報告はしといたけど、挨拶とかめんどくせーからここだけ切り取って他は何も無しだったからか返事も来なかった。うむ。

 で、その後も毎回これが発生するんで、もしもレアなバグとかだと放置されそうで嫌だなあ、と思ってソースを読んでみた。
 ふむ。S3/S3.pyが問題みたいだな。

        response["speed"] = 0 # XXX
        response["size"] = size

ってなってるけど、elapsedってのも必要なんだぜ。あとこれ、speedってダミーだよな。アップロード速度を表示する為だけっぽいから、β版なんでダミーで潰してるんだろう。ならelapsedもダミーで良かろう?

        response["speed"] = 0 # XXX
        response["elapsed"] = 0 # XXX
        response["size"] = size

こんな風に。
 ついでに細かい好みの話だけど、インラインコメントの前には本当ならスペース二個は欲しいなあ、とか。

 で、次のcron発動まで放置してたら無事動いた。めでたし。
 作者なら一度目の報告で即分かるだろうから、追加報告もしなかった。次のバージョンで直ってなかったら報告だな。

 んでもって、今月末にいよいよAWSの無料枠も終わるんだけど、どうせ送信前に暗号化してるんだし、同期型のオンラインストレージサービスに乗り換えた方が安くて手軽なケースもあるかもなあ。うーむ。つってもサーバロケーションを明確に選びたいから、当初の目的を考えればS3かなあ…。東京が地震とかでアレでもデータは残るように、って奴。ただ、そこまで事が大きくなると、海外との接続にかなり問題が出そう。まー、即時復旧を、って事業じゃないからそこはいいか。どっかにデータ残ってりゃいいんだよ系。
 でも、そう考えると、海外に飛ばすよりも大阪とか北海道とかにするのが実はいいんかもなあ…。さくら臭のするロケーションですな(笑)。


NTFSの圧縮属性とアクセス速度への疑問


 NTFSに圧縮属性ってありますよね。ファイルとかフォルダとかのプロパティ→全般→詳細設定→内容を圧縮してディスク領域を節約する、って奴。
 あれの解説で「アクセス速度が低下するというデメリットが」のように書かれてることが多くて、何かが引っ掛かったのだ。

 高圧縮率が期待出来るデータの場合、FDD時代は高速な圧縮を掛けると確実にアクセスが速くなった。FDDのアクセス速度が遅すぎるんで、分かりやすい話である。でもHDDだとどうなんだろ。ましてSSDになると。
 んで、うだうだ考えてるうちに思い出したけど、無圧縮の巨大なテクスチャデータフォルダを全部圧縮属性にしたら、ローディングがはっきりと高速になったことがあったっけ。確かTEATIMEの初期のゲームで。もちろん時代的にHDDで。やっぱ時と場合によりそうだな、HDD辺りだと。
 ついでに、SSDの書き込みも減ると考えると、もっと圧縮属性活用されてもいいんじゃね、って気分が盛り上がってきた。つってもSSDはさすがに読み込み速いから、速度が落ちる可能性もより高まるかもだけど。

 でもPSO2のフォルダ見るぜー。
 む。C++とLuaが使われてるのかPSO2。懐かしい。もうC++とか使う機会無いかもな俺。好きだけどさ。
 んで、データフォルダのでかいファイルを試しにzipしてみて圧縮率の確認、と。うむ。ほとんど圧縮掛からんな。圧縮されてるか暗号化されてるか両方か、だな。よし諦めよう。

追記:
 つーかハードで圧縮掛けるSSDとかもあるんだよな、そういえば。その環境だと、圧縮属性とかただの無駄だな。


Google Drive使用開始


 Google Driveのとこに「サービス始まったら通知したるわ」な(のか?)ボタンがあったんで押しておいたら、一日くらいしてメールが来たんで使ってみる。
 ただ、別アカで見てみたらそっちはまだ通知ボタンしか無かったんで、サービスが普通に始まってるって訳じゃないのかも。

 んで、使い勝手はほぼDropboxかなあ。Driveを使い始めると、Googleドキュメントへのリンクが消えてDriveに置き換わってる感じ。ついでに中のUIもほとんどドキュメントとそっくり。
 txtファイルを試しに置いてみると、最初は同期失敗してたんだけど、しばらくして同期されていた。ふむ。まーそのうち安定するんだろ。最初っから5GBだし、悪くない感じっすな。APIとか公開して自由にやってくれって感じらしいから、対応が進むと面白いですが。S3とか不要になったりしてな。
 あと思ったのは、Web UIだとファイルタイプに対応したWebアプリが普通はクラウド側で決められちゃってる訳で、好きなWebアプリを作ったり使ったり出来る仕組みはあるんかなー、と。Windows的に言うと、好きなソフトを入れて関連付け変えれば自由自在、みたいなアレ。txtとかをGoogle Driveに置いてみると、何となくそんなことを思ったりした。APIにその辺あったら面白いサービスが増えそうっすね。(追記:あるっぽい)

追記:
 規約がとんでもなくアホと話題なので、様子見な使い方しか出来ない感じだなあ、これは。