ちょっとずつ準備していたWordPressだけど、最低限の環境は整ったので移転することにしました。どちらかというと、はてなダイアリーに不満があるからっていうより、WordPressでやりたい事が増えてきたからというのが理由です。
はてなダイアリーは2008年11月からなので、書き続けて4年強。266エントリー程度書いたみたいです。1年平均で66.5エントリーなので、思ったほど書いてないですね。はてなダイアリーは、はてな記法やシンタックスハイライトなど、プログラマーフレンドリーでいいサービスなんですが、WordPressの自由度が欲しくなりました。
移転しても別に書く内容は変わらず、淡々と書き続けると思います。せっかくWordPressにするので、WordPressのエントリーは増やしていきたいです。
coreserverのPHPは5.2.5がデフォルトだけど、CGIモードにすると5.3.8か5.4.7が使えます。CakePHP2系は5.2.8以上が必要なので、coreserverでCakePHP2系を使うならCGIモードで5.3.8以上のどちらかにしないとです。
ただ、この5.3.8 / 5.4.7にするとcoreserverでのAPC(Alternative PHP Cache)について調べてみた - kanonjiの日記で調べたapc.soが動かない事に気がつきました。ちょっとレスポンスが悪く、APCを使いたいなと思っていたところなので、なんとかしようと、APCをソースからビルドしようと色々やってみました。結果は行き詰まってしまって、お手上げ状態なんだけど、やってみた事をまとめておきます。
Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .phpdextension, or add a AddType application/x-httpd-phpcgi-debug .phpline to your .htaccess file.
見慣れないエラー、多分phpじゃなくApacheのエラーだと思う。
index.html.jaとかindex.html.enとかでApacheだけで多言語化出来る事は一応知ってたけど、phpとか使わないサイトだけど多言語化はするなんて、今までやった事無かった。たまたま、使えそうな機会があったので、やってみました。
ブラウザかのHTTP RequestにあるAccept-Language headerを見て、言語別に振り分けるんですが、複数の言語を優先度付きで設定できたりen-USといったロケールのサブセットも指定できるので、ちょっと予想しにくい動きをします。
この辺も、色々設定してcurlで確認してみたので書いておきます。というか、こっちを書きたい。
mod_negotiation + mod_mime + FileInfo + Multiviews Options ディレクティブを使った多言語化
いまいち、この方法の名前みたいなのが分からないけど、mod_negotiationが主となる方法っぽい。他のmod_mimeやディレクティブは無くてもやる方法もあるみたい*1だけど、今回は全部セットで使います。
今回は、基本的に日本語のロケールが指定してあれば日本語を、それ以外は英語になる様に設定しました。
コンテントネゴシエーション - Apache HTTP サーバ
この機能については、Apacheドキュメントではこのページが詳しい様子。すると、コンテンツネゴシエーションが、この方法の名前ってことになるのかな?なんかしっくりこないけど。
スマートフォンは、それほど真剣に追いかけてないので、たまに見聞きする情報*1からの印象ですが、国産のAndroid端末は大抵地雷だと思っています。それとあわせて、微妙に思わせる情報として入ってくるのが、ドコモのプリインストールアプリが、また電池を食ったり、バグだらけという話。国産端末を持ってないので、今まであまり気にしてなかったけど、ちょっとだけ知っておこうかなと思いました。まぁこれは国産じゃなくてもドコモからなら入ってるわけですが。
ちょっと検索した感じ、Androidの電話帳とは別にドコモが用意した電話帳がプリインストールされていて、それの事っぽい。アプリ名にサービスってついてるのが紛らわしい感じ。これはかなり電池を無駄食いするらしく、更にドコモのプリインストールアプリを消したり無効化しようとしてる人達からみても、なかなかそれが出来ないゾンビのようなアプリになっているらしい。
ITで何かできないかを考えてみる 電話帳サービスとの再戦・その2
スマートフォン不具合速報 : 「android.process.acore」暴走の主因、ドコモ電話帳アプリを無効化せずに抑える方法
無効化やアンインストールではないけど、ある程度、ドコモ電話帳サービスの暴走を軽減する方法がある様です。
MacPortsで$ sudo port install bash-completionしたら、bash-completionのバージョンが2系になってました。1系から変わった部分も有るらしく、補完はちゃんと動くけどGitとプロンプト変数PS1とbash_completionと - kanonjiの日記でセットしたGItのブランチ名をプロンプトに表示するやつが動かなかったので、調べてみました。
$BASH_COMPLETION_DIRというシェル変数がなくなっていて、.bash_profileに書いたif [ -f $BASH_COMPLETION_DIR/git ]; thenというif文が常にfalseになってました。
$BASH_COMPLETION_DIRに代入されていたファイルパスも、基本的には無くなっています。代わりに/opt/local/share/bash-completion/completions/に、各コマンドのcompletionsファイル*1が配置されています。
MacPortsでswftools@0.9.2を入れようとしたら失敗した - kanonjiの日記、MacPortsで入れる代わりに自前でビルドしたライブラリを使ってswftoolsをビルドしてみた - kanonjiの日記で、ビルドする時のライブラリについての知識が足りず困ったので、ちょっと調べてみました。基本的にLinuxについて調べてて、Macについても分かったところがあるって感じです。
ちゃんとまとめるほど理解出来てるわけじゃないので、分かった事を並べる感じで書きます。勘違いしてたり、ちょっと用語がおかしかったりするかもしれません。
LinuxではELF(Executable and Linking Format)という実行ファイルフォーマットがあって、この辺を調べていくとよくELFという単語を見かけます。
Macはというと、Mach-Oという実行ファイルフォーマットが採用されています。
別にUnix(Mac)とLinuxで分かれているわけじゃなく、ELFはBSD系の一部とかSolarisでも使われているんだとか。
Firefoxをまた使っていくことにしたので、アドオンを整理しました。稀に環境を作り直すはめになったり、新しいPCをセットアップして使うことになったり、しないとも限らないので、そういう時のために書いておきます。
Firefoxは、もう長いことFirebugを中心に、開発・制作ツールとしてだけ使ってました。正直、これに関してはChromeのデベロッパーコンソールよりも、Firebugの方がかなり使いやすい。なので、開発用と普段使い用でプロファイルを分けて、両方起動出来る様にしました。それぞれ入れるアドオンも分けています。
$ /Applications/Firefox.app/Contents/MacOS/firefox-bin -p dyld: unknown required load command 0x80000022 Trace/BPT trap
Firefoxのプロファイルを作りたくて、プロファイルマネージャーを開こうとしたら、こんなエラーが出ました。-pオプションを外したり、--helpとかにしても、同じエラーが出ます。
$ arch -i386 /Applications/Firefox.app/Contents/MacOS/firefox-bin -p
あまり細かい事は理解してないですがarch -i386を付けることで、プロファイルマネージャーが起動するようになりました。
Operaがスーパーリロードに対応したという話を聞いて、気になって調べてみました。
Shift/Ctrl+リロード
http://www.forest.impress.co.jp/docs/news/20120328_521811.html
2012年3月27日リリースの11.62でスーパーリロードに対応なんだとか。そんな最近・・・
Shift+リロード
公式な説明見つけられなかったから、もしかしたらCtrl+リロードでもいけるかも?
Ctrl+リロード
IEはShiftじゃなくCtrlでちょっとはまった。IE9はHTML5のサポートとかはかなりモダンブラウザ化してるから、Shiftで出来るようになってたりしないのかなー
ページ遷移(リフレッシュ)
3つ目はちょっと良い名前が思いつかないのですが、リロードではなく、通常の画面遷移での読み込みのことです。アドレスバーにフォーカスしてenterするといった方法で実現できます。むしろこれこそが普通です。
curlコマンドは使ってたけどwgetコマンドが無かったので入れました。どうもcurlだと、リンクを辿ってサイト全体をダウンロードするような機能が無いらしく、wgetの方を使いたくなりました。
それぞれの特徴をまとめますと、wgetはクローラとして、curlは連番ファイルのダウンローダとしての機能が盛り込まれています。
詳しくは引用元にあるけど、こんな特徴になっているらしい。
$ sudo port install wget
$ wget -mkKE http://example.com
| -m | --mirror | -r -N -l inf --no-remove-listing |
-mは、これらを指定した事になる。