Latest Publications

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 移動させる一つ上のカラム名;

phpのcurlでsslサイトにつなぐ

phpからcurlを使ってサイトにアクセスした際に
どうしてもレスポンスが取得できないことが発生。

何もレスポンスがないので原因判明に苦労したが
terminalのコマンドで

curl -I https://example.com -k

と入力すると

curl: (35) Unknown SSL protocol error in connection to example:443

ということでSSLのプロトコルエラーであることが判明。

色々とコマンドを試し、

curl -I https://example.com -k  --tlsv1

で接続できた。

これをphpのcurlでどうやるかも苦労したけど
下記のオプションで、SSLのバージョンを手動指定することで解決。

curl_setopt_array($m,
  array(
    CURLOPT_URL =>'https://example.com',
    CURLOPT_SSLVERSION => 1,
  )   
);

SSLのバージョンは通常、自動判別するけど
サイトによってはそれが上手く動かず
指定をする必要があるみたい。

gitで新規作成ファイルがstatusに上がってこない問題を解決

ファイルを変更したものはgit statusに上がってくるが
新規作成したものは出てこない。なのでaddもできない。
.gitignoreでもそんなことしていないし、原因を探すのに苦労した。

原因は上位ディレクトリの.gitignore。

Macのホームディレクトリにあるドットファイルを
gitで管理しはじめたが
その下位ディレクトリに開発ソースを置いていたので影響を受けてしまった。

プロジェクトの.gitignoreに下記を追加

!*
!.*

無視しない、ということなのでイコール許可するということ。
一旦全部許可した上で、改めて無視ファイルを指定する。

git サブモジュールメモ

gitのサブモジュールを追加

自分の管理しているgitプロジェクトの内部に
プラグインなどとして別のgitプロジェクトを追加したい場合は
サブモジュールとして入れる。

プロジェクトルートで下記。

git submodule add git://example.com/repo.git DIR

サブモジュールの中身は変更しない。
したらgit add できずに modified contentとかって残る。

gitのサブモジュールを展開

git cloneしただけではサブモジュールはディレクトリしかできない。
下記が必要

git submodule init
git submodule update

gitのサブモジュールを削除

サブモジュールのディレクトリを消して
.gitmodulesも.git/configも修正したのに
再度追加しようとすると
already exists in the index
ってエラーが出たら

git rm -r DIR

git submoduleを最新にする

git submodule update

をやって最新にしてたつもりだったのに
実際にはなっていなかった。

submoduleを最新にするには
下記が必要みたい。

git submodule status
git submodule foreach git pull
git submodule status

後はコミットしとく。

git add -A
git commit -m "hoge"
git push

参考記事
git submoduleで各サブモジュールを最新にする – メモの日々(2011-04-13)

vimが文字化けしたので入れなおして修正

サーバーのvimがいつの間にか日本語文字化けするようになっていた。

調べればすぐ解決するだろうと思っていたら
サーバーの文字コード設定や
.vimrcの設定をしても解決せず。

結局、vimを入れなおすことで修正できた。

現在動いているvimのパスを調べて削除してから
下記を実行

cd ~/tmp
wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
wget ftp://ftp.jp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz
wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz
tar jxvf vim-7.3.tar.bz2
tar zxvf vim-7.2-extra.tar.gz
tar zxvf vim-7.2-lang.tar.gz
mv vim72 vim73/
cd vim73/src
./configure --enable-multibyte --with-features=huge --disable-selinux --prefix='/usr/local/vim-7.3'
make
sudo make install
cd /usr/local/bin
sudo ln -s /usr/local/vim-7.3/bin/vim

こちらのページを参考にさせていただきました。
CentOSにVim最新版をインストールする