Latest Publications

iPhoneのSafariでサイト表示が崩れていたのを修正

iPhone5のSafariでサイトの表示確認をしたら
表示がかなり崩れていた。

CSSが適応されていないようだったが
完全にではなく、一部が適応されてにない様子。

MacとつないでWebインスペクタで確認したところ
CSSは読んでいるもののなぜか途中で切れていた。

他のiPhoneやiPadで見るとそんなことはなく
端末の問題として、設定からSafariの
「Cookieとデータを消去」をすると解決。

フレームワークなどでのPHPシステムが重い時の対処

CakePHPで、ローカルではサクサク動くシステムが
サーバーに載せたら対した処理でもない部分で異常に重い。
ページを開くだけで1分以上かかるなど遅すぎ。

原因は単純で、PHPのメモリ設定が小さすぎただけ。
フレームワークはそのページの処理自体は単純でも
共通部分の処理の読み込みなどでそこそこメモリが必要。

ちなみにいつも忘れるのでphp.iniの場所を探すには

php --ini

同じドメインで複数のCakePHP2を動かした時の500エラー

一時的に同じドメインの、メインとサブディレクトリで
別々のCakePHP2を動かす必要が出た。

過去のサーバーでは問題なく動いていたが
同じ構成でも特定のサーバーでだけ500エラーが出る。

それも、どちらか片方だけ。
debugを一度2にすると動くようになるが
そうすると他方がエラーになる。

結局、サブの方のcore.phpに

Configure::write('Cache.disable', true);

を追記して解決。

なぜかキャッシュに同じものを見に行っていたようで
それがエラーの原因だった模様。
片方を、キャッシュそのものをしないようにした。

PHPのバージョンなどが原因かも。

phpのssh2.soのエラー解決

サーバー環境をいろいろといじっていたら、
PHPが下記のようなエラーを出すようになった。
何を変えたことで発生したかは不明。

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: undefined symbol: php_checkuid in Unknown on line 0

ssh2.soやlibssh2.soを再インストールしても
エラーメッセージが多少変わるものの治らず。

結局、ssh2-0.12をソースからコンパイルする時に下記のオプションを付けて解決。

./configure --with-ssh2 --with-php-config=/path/to/correct/php/bin/php-config

php-configのパスは下記で探した。

sudo find / -name "php-config*"

大変だった。

MacでWindowsのexeに関連付けた特定の拡張子ファイルを開く

Mac(mountain lion)でWindowsのプログラムを使うためのwineというものがある。
exeファイルをwine経由で起動させることにより実行が可能。

ただ、exeファイルだけではなく
特定の拡張子をプログラムに関連付けをし
ファイルをダブルクリックするだけでそのプログラムで開くようにしたい。

今回実施したいのはjwwのファイル。
他でも同じ方法でできるはず。

プログラムファイルであるjw_win.exeをダブルクリックで開くようにはすぐできたが
データファイルのfilename.jwwをダブルクリックすることでjwwと共に開くのに苦労した。

まずはwineのパスを調べる。
インストールした方法によるが、自分はNXWineというアプリで入れたので
/Applications/NXWine.app/Contents/Resources/bin/wine
にあった。
jw_win.exeのパスも調べておく。

MacのAutomaterでApplicationを選び、Run Shell Scriptをダブルクリックして右側にウィンドウを出し
入力を「as arguments」にした上で

/Applications/NXWine.app/Contents/Resources/bin/wine start /unix "/pathToJwwFile/jw_win.exe $1"

とする。

後はこのApplicationに適当な名前を付けてどこかに保存。
これで、このApplication経由でjwwファイルを起動すると
$1の部分にjwwのファイルパスが入り、jw_win.exeがwine経由で起動することになる。

関連付けは、どれか適当なjwwファイルを右クリックしてGet Infoを選び
Open withのところで先ほど作成したApplicationを選択し、
その下のChange Allボタンで他のjwwファイルもすべてこのApplicationで起動するようにする。

(追記)
上記でjw-cadは使用できるようになったものの
なぜか印刷してもできず。(印刷キューに出てこない)

色々と試した結果、macportsよりwine-1.7.2を
インストールすることで解決。

上記のパスは下記に変更。

/opt/local/bin/wine start /unix "/pathToJwwFile/jw_win.exe $1"

PHPを5.4にしたらCakePHP2.xがエラーに

core.phpに下記を追記して解決。

Configure::write('Error', array(
    'handler' => 'ErrorHandler::handleError',
    'level' => E_ALL & ~E_DEPRECATED & ~E_STRICT,
    'trace' => true
));

PHPやコマンドで画像比較

2つの画像を比較して、変化したかを調べる方法を探していたら
Libpuzzleというツールがあることを発見。
PHPでもコマンド(CUI)でも使えるということで自分の用途にぴったり!

インストールは下記を参考にさせてもらった。

PHP5.4でLibpuzzleを使って画像の類似度判定を行う – 波打際のブログさん

コマンドでも下記のように使える。

$ puzzle-diff img1.jpg img2.jpg

Adwordsの金額指定支払

金額を自動支払いにしていると
使った分だけ後払いで支払うことになるが
請求の都合などで切りの良い数字にしたい時には手動支払いを行う。

これをたまにしかしないため
その支払い画面がどこにあるかいつも迷ってしまうのでメモ。

Snapshot 2013:09:02 11:35

jenkinsでgitリポジトリ指定時のエラー

stdout: 
stderr: Host key verification failed. 
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

known_hosts不足だった。
/var/lib/jenkins/.ssh/known_hosts
に追記して解決。

MySQLのカラム順番変更

SQLとしては順番は関係ないけど見ててわかりやすいように整理するために。

ALTER TABLE テーブル名 MODIFY カラム名 データ型 after 移動させる一つ上のカラム名;