【PHP】配列の空文字キーに関する発見。

とかの時

ってやると

こうなるんだね、初めて知った。

【Javascript】よさげなLightBoxライブラリ。

をみつけたのでメモ。

http://lokeshdhakar.com/projects/lightbox2/

【WordPress】で承認待ちのコメントを一括削除する。

下記SQLを実行。

【CakePHP3】Bakeの流れ。

  • まずDBにテーブルを作成する。 ※例えばusersテーブルを作成する。

  • んで次のコマンドを実行。

これでCRUD機能の完成。

【PHP】で画像を綺麗にリサイズする。

PHPで画像周りの操作をする際はよくGDエクステンションを用いるが、GDの基本リサイズ関数であるimagecopyresized()は縮小した際のジャギがひどく全くもって使い物にならない。 一応フィルタでスムージングもしくはガウシアンぼかしを適用できるが、やるだけ無駄。 そして多少結果がマシになるimagecopyresampled()という関数も用意されているがこれもゴミ。~~ホントゴミ~~。

ということでこれからはPHPで画像の操作をする場合はImageMagickを用いよう。(強制)

Imagickとは

ようはGDより高性能で使いやすいいわゆる神エクステンション。100種類を超す形式の画像読み込みや変換に対応しており、WEBで扱うであろうファイル形式は当然いける。詳細は下記リンク。

http://php.net/manual/ja/book.imagick.php

インストール手順

yumを使おう。

  • とりあえずインストールされているPHPのバージョンを確認。

http://i.gyazo.com/029e75b8904c5e9616af581e28896157.png

  • 今回はremiのPHP5.6を導入。

http://i.gyazo.com/0e209e57a0bf0087515b150764d1ff1e.png

  • php56-php-pecl-imagick-devel.x86_64をインストールする。

※ココから先は環境に依存する(?)場合あり。

ImagickをPHPから読み込む。

  • 先ほどのyum操作でインストールされ、生成されたimagick.soをPHPのインクルードディレクトリにコピーしてやる。 ※自分の場合は下記の感じ。
  • 次にphp.dディレクトリにiniファイルを作成。
  • 下記のように記述。
  • そしたらhttpdを再起動

  • phpinfo()にて下記のように表示されていればインストール成功。

http://i.gyazo.com/1c5a35da23a9e58293ab8a7c6c53400b.png

使ってみる。

とりあえず当初からやりたかった画像のきれいなリサイズと切り抜きをやってみた。 今回は元画像の縦長、横長にかかわらず正方形になるようトリミングし、指定のサイズに縮小する処理を行いたかったのでそれをやる。

これだけ。イヤほんと簡単。しかもめちゃくちゃキレイ。かなり最適化されてる。 ジャギが全く無いしGDはでスムージングを行なった処理と比較しても格が違う。そもそもの画像処理アルゴリズムが違うんだろうけど、GDがどれだけクソかわかる。

しかもサムネイル作成用の関数が用意されていて長さ指定するだけで中央から綺麗にトリミングしてくれるという至れり尽くせりっぷり。画像のフォーマット別に読み込み関数が分かれていない点も最高に使いやすいし、今後画像処理はImagickで行うことを確信した。

【AngularJS, Jasmine】テストの書き方まとめ。

簡単なプロジェクトで練習してみたので自分用にまとめ直し。

  • まずはテスト用の簡単なプロジェクトを準備。ディレクトリ構成は下記の通り。

jasmineフォルダ以下はjasmine Standalone Distributionのファイル群。
testディレクトリ以下にテスト用のファイルを配置している。runner.htmlにアクセスすることでテストが実行される。
今回作成したAngularアプリケーションは、app.jsindex.htmlindexController.jsindexService.jsの4ファイルで構成。
それぞれのファイル内容は下記の通り。

app.js

index.html

indexController.js

indexService.js

index.htmlにアクセスすると画面にhello world.が表示される。見た目はそれでおしまいだが、テスト用に用意したサービスを実行しまくっているので、コンソールには色々と吐かれる。 これらをテストするためにトリガーファイルとなるrunner.htmlを用意する。

runner.html

index.htmlとの違いとして、angular.min.js本体を読み込んだ直後にangular-mocks.jsを読み込んでいる。8行目から14行目はjasmine本体のセットアップ処理なのでこれは必ず必要となる。

ここまでの設定が完了したら、実際にテストを記述していく。 今回はテスト本体をtest\controllers\indexControllerSpec.jsに配置した。

describe()メソッドでテストのセットを作成するようなイメージ。この中にある複数のit()メソッドがそれぞれのテスト内容となる。雰囲気はソースコード内のコメントアウトを参照。

indexControllerSpec.js

で実際runner.htmlにアクセスすると下記画像の通りテストが実行されて、結果を知らせてくれる。

意外と簡単にテストを作成することが出来た。リソースが絡んだテストなんかはまた次回。

【Android】アプリ開発環境の構築手順まとめ。

自分用。

  • 下記ページのeclipseにプラグインをインストールの項目までを実行。
    ※プロジェクト作成の手前。

http://nobuo-create.net/android-develop/

  • 下記ページの目次をすべて実行。

http://kforce-ueda.hatenablog.com/entry/2014/10/03/165445

  • エミュレーターがクッソ重いので下記手順で解決

http://saku-java.be-ourselves.jp/2014/05/18/intel-x86-android-emulator-setting/

【Windows】Antをインストールする。

Apache Ant のダウンロード

  • まずはApache Antの公式にアクセス。

http://ant.apache.org/

  • 左側のメニューからBinary Distributionsを選択。

  • スクロールするとCurrent Release of Antと記述してあるブロックが見つかるので、そこから自分の環境にあったファイルをダウンロードする。

  • 今回はapache-ant-1.9.4-bin.zipをクリックしてダウンロード。

  • ダウンロードが完了したら、zipファイルを解凍して設置したいディレクトリにフォルダごと配置する。

Apache Ant のインストールとPATHの設定

今回は解凍したフォルダをE:\apache-ant-1.9.4に配置してパスを通す。

  • ANT_HOMEの設定

下記画像の通り、ANT_HOMEの項目を追加する。変数値はAntを設置したディレクトリを指定する。

  • PATHの設定

上記の操作で変数ANT_HOMEが追加されたので、次にbinディレクトリまでのパスを通す。
次の通り、変数PATH%ANT_HOME%\bin;を追記する。

これでインストール作業は完了。

コマンドプロンプトを開き下記コマンドを実行して、正常にバージョンが表示されれば成功。