Feed items

WordPressに移行しました

kanonjiのブログ | Web系の技術ブログな感じ

ちょっとずつ準備していたWordPressだけど、最低限の環境は整ったので移転することにしました。どちらかというと、はてなダイアリーに不満があるからっていうより、WordPressでやりたい事が増えてきたからというのが理由です。


はてなダイアリーは2008年11月からなので、書き続けて4年強。266エントリー程度書いたみたいです。1年平均で66.5エントリーなので、思ったほど書いてないですね。はてなダイアリーは、はてな記法やシンタックスハイライトなど、プログラマーフレンドリーでいいサービスなんですが、WordPressの自由度が欲しくなりました。

移転しても別に書く内容は変わらず、淡々と書き続けると思います。せっかくWordPressにするので、WordPressのエントリーは増やしていきたいです。

[php]coreserverでphp5.3.8用のAPCをビルドしてみたけどうまくいかなかった

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をソースからビルドしようと色々やってみました。結果は行き詰まってしまって、お手上げ状態なんだけど、やってみた事をまとめておきます。

CGIモードのphp 5.3.8にapc.soを読み込んだ時のエラー

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のエラーだと思う。

Accept-Languageを見て言語別に分ける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ドキュメントではこのページが詳しい様子。すると、コンテンツネゴシエーションが、この方法の名前ってことになるのかな?なんかしっくりこないけど。

[Android]ドコモのAndroid端末にプリインストールされてるらしい邪魔なアプリ

スマートフォンは、それほど真剣に追いかけてないので、たまに見聞きする情報*1からの印象ですが、国産のAndroid端末は大抵地雷だと思っています。それとあわせて、微妙に思わせる情報として入ってくるのが、ドコモのプリインストールアプリが、また電池を食ったり、バグだらけという話。国産端末を持ってないので、今まであまり気にしてなかったけど、ちょっとだけ知っておこうかなと思いました。まぁこれは国産じゃなくてもドコモからなら入ってるわけですが。

ドコモ電話帳サービス

ちょっと検索した感じ、Androidの電話帳とは別にドコモが用意した電話帳がプリインストールされていて、それの事っぽい。アプリ名にサービスってついてるのが紛らわしい感じ。これはかなり電池を無駄食いするらしく、更にドコモのプリインストールアプリを消したり無効化しようとしてる人達からみても、なかなかそれが出来ないゾンビのようなアプリになっているらしい。

ITで何かできないかを考えてみる 電話帳サービスとの再戦・その2

スマートフォン不具合速報 : 「android.process.acore」暴走の主因、ドコモ電話帳アプリを無効化せずに抑える方法

無効化やアンインストールではないけど、ある程度、ドコモ電話帳サービスの暴走を軽減する方法がある様です。

[Mac][git]bash-completion2だと$BASH_COMPLETION_DIRというシェル変数が無い件

MacPortsで$ sudo port install bash-completionしたら、bash-completionのバージョンが2系になってました。1系から変わった部分も有るらしく、補完はちゃんと動くけどGitとプロンプト変数PS1とbash_completionと - kanonjiの日記でセットしたGItのブランチ名をプロンプトに表示するやつが動かなかったので、調べてみました。

まとめ

$BASH_COMPLETION_DIRが無くなった

$BASH_COMPLETION_DIRというシェル変数がなくなっていて、.bash_profileに書いたif [ -f $BASH_COMPLETION_DIR/git ]; thenというif文が常にfalseになってました。

/opt/local/share/bash-completion/completions/

$BASH_COMPLETION_DIRに代入されていたファイルパスも、基本的には無くなっています。代わりに/opt/local/share/bash-completion/completions/に、各コマンドのcompletionsファイル*1が配置されています。

[Linux][Mac].soや.dylibや.aファイル、共有ライブラリなどについて調べてみた

MacPortsでswftools@0.9.2を入れようとしたら失敗した - kanonjiの日記MacPortsで入れる代わりに自前でビルドしたライブラリを使ってswftoolsをビルドしてみた - kanonjiの日記で、ビルドする時のライブラリについての知識が足りず困ったので、ちょっと調べてみました。基本的にLinuxについて調べてて、Macについても分かったところがあるって感じです。

ちゃんとまとめるほど理解出来てるわけじゃないので、分かった事を並べる感じで書きます。勘違いしてたり、ちょっと用語がおかしかったりするかもしれません。

LinuxとMacでは仕組みが違う

LinuxではELF(Executable and Linking Format)という実行ファイルフォーマットがあって、この辺を調べていくとよくELFという単語を見かけます。

Macはというと、Mach-Oという実行ファイルフォーマットが採用されています。

別にUnix(Mac)とLinuxで分かれているわけじゃなく、ELFはBSD系の一部とかSolarisでも使われているんだとか。

Firefoxをまた使い始めたのでアドオンを整理

Firefoxをまた使っていくことにしたので、アドオンを整理しました。稀に環境を作り直すはめになったり、新しいPCをセットアップして使うことになったり、しないとも限らないので、そういう時のために書いておきます。

Firefoxは、もう長いことFirebugを中心に、開発・制作ツールとしてだけ使ってました。正直、これに関してはChromeのデベロッパーコンソールよりも、Firebugの方がかなり使いやすい。なので、開発用と普段使い用でプロファイルを分けて、両方起動出来る様にしました。それぞれ入れるアドオンも分けています。

[Mac]古いMacであるLeopardでFirefoxのプロファイルマネージャーを起動する方法

$ /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がスーパーリロードに対応したという話を聞いて、気になって調べてみました。

Opera

Shift/Ctrl+リロード

http://www.forest.impress.co.jp/docs/news/20120328_521811.html

2012年3月27日リリースの11.62でスーパーリロードに対応なんだとか。そんな最近・・・

Firefox, Chrome

Shift+リロード

公式な説明見つけられなかったから、もしかしたらCtrl+リロードでもいけるかも?

IE

Ctrl+リロード

IEはShiftじゃなくCtrlでちょっとはまった。IE9はHTML5のサポートとかはかなりモダンブラウザ化してるから、Shiftで出来るようになってたりしないのかなー

余談

ページ遷移(リフレッシュ)

3つ目はちょっと良い名前が思いつかないのですが、リロードではなく、通常の画面遷移での読み込みのことです。アドレスバーにフォーカスしてenterするといった方法で実現できます。むしろこれこそが普通です。

[Mac]Macにwgetコマンドが無かったのでMacPortsで入れた

curlコマンドは使ってたけどwgetコマンドが無かったので入れました。どうもcurlだと、リンクを辿ってサイト全体をダウンロードするような機能が無いらしく、wgetの方を使いたくなりました。

それぞれの特徴をまとめますと、wgetはクローラとして、curlは連番ファイルのダウンローダとしての機能が盛り込まれています。

wgetとcurlの根本的な違い - ctrlshiftの日記

詳しくは引用元にあるけど、こんな特徴になっているらしい。

インストール

$ sudo port install wget

使い方というか備忘録

サイトを指定してミラー相当をダウンロードする
$ wget -mkKE http://example.com
-m --mirror -r -N -l inf --no-remove-listing

-mは、これらを指定した事になる。