CakePHPで画像のリサイズを行うために便利なコンポーネントがありました。Thumbmakeコンポーネント。詳しい使い方はこちらから。
元の画像をアップして、Thumbmakeコンポーネントでいじればリサイズはとても簡単。リサイズの種類は3種類。私は、横に合わせてリサイズをするので、このコンポーネントで十分です。
開発して公開していただいた作者に感謝です。
とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。
CakePHPで画像のリサイズを行うために便利なコンポーネントがありました。Thumbmakeコンポーネント。詳しい使い方はこちらから。
元の画像をアップして、Thumbmakeコンポーネントでいじればリサイズはとても簡単。リサイズの種類は3種類。私は、横に合わせてリサイズをするので、このコンポーネントで十分です。
開発して公開していただいた作者に感謝です。
So-net SNSサービスが終了との発表がありました。So-net SNSは、OpenPNEの大きな事例として注目していました。また、So-net SNSで運営しているSNSに参加していました。
終了の理由として、収益と運営にかかるコストのバランス、ユーザー数の伸びとのことですが、無料で広告だけでサービスするのは辛いものがあります。
OpenPNE自体は、PHPとMySQLが動くサーバーがあれば簡単に動作するので、私のほうに連絡いただければ設定はできますが、サーバー設定料と使用料はいただきます。OpenPNEのソースコードを読み込んでいますので、カスタマイズも可能です(ちょっと宣伝モードです)。
今は、無料のサービスはいろいろありますが、いつサービスを停止するのがわかりません。以前は、写真のアルバムサービスをどこにするかを考えていましたが、継続してサービスしてくれることが大事です。
たとえば、FlickrとかPicasaウェブアルバムとか、写真ファイルを預かってくれるサービスがありますが、永遠にサービスをやってくれるとは限りません。預けて手元のデータを消してしまうと、突然のサービス停止なんてなると痛い目を会うことになりそうです。やはり、クラウドコンピューティングは永続的ではありません。バックアップを手元に残す必要はありそうです。
PHPでプログラムを作っていると、null,false,0,array(),””の違いを忘れてしまうこと。どんな関数で判定すれば区別するかです。今までは、empty()で判定していましたが、細かく判定できる比較表をPHPのサイトて見つけました。知らないのは自分だけだったかも・・・・。
「PHP 型の比較表」を見れば一目瞭然です。その他、==と===との比較の一覧も載っています。参考までに・・・・。
ちゃんとマニュアルを見るべきでした。
これは悩みました。
例えばCakePHPのサイトのように、RecipeとTagとが多対多の関係でhasAndBelongsToMany(HABTM)で定義されているとき、レシピに複数のタグを追加するには、Recipeモデルで
$data['Tag’] = array(1,2);
$this->create();
$this->saveAll($data);
なんてすればいいのですが、その関係を削除したいことがあります。単純に
$data['Tag’] = array();
$this->create();
$this->saveAll($data);
とすると、全くTagには影響はありませんでした。ではどうすればいいかというと、正解はこのサイト(リンク切れ注意)。Thanks!。
array()をarray(false)にすればいいのですね。
$data['Tag’] = array(false);
$this->create();
$this->saveAll($data);
これはわかりませんでした。でも、何かおかしな仕様ですが、しかたありません。
CakePHPでMySQLを使うと、phpMyAdminでみると日本語で格納したテキストが文字化けする件。app/config/database.phpの設定をGoogleで検索して確認しました。
参考にしたサイトは、ここ。
MySQLのマニュアルを読めよ。> 自分
'encoding' => 'utf8'
にしなければいけないところ、
'encoding' => 'utf-8'
にしていました。何て単純なミスなの。> 自分
Excelファイルに時間がセルにあると、PHPのプログラムから正しい値が読み込むことができません。
使ったPHPのExcelファイルを読み込むライブラリは、Spreadsheet_Excel_ReaderとPHPExcel。どちらもダメ。ソースを追ってみたがわからない。03:00と時間を読み込むと、0.125になる。Excelで書式を変えてみると、0:febfeb:になってしまう。何か、ライブラリ側で書式の設定があるかも。
仕方ないので、Excelファイル側で書式を文字列にしてもらうことにする。後で解決策があれば、変更しましょう。
Spreadsheet_Excel_Readerは、セルに何も値を格納していなければ、PHPで取り出した配列には何も出てこないのね。nullか空白文字を期待してアクセスすると変数の未定義エラーになる。Spreadsheet_Excel_Readerクラスのvalメソッドを使わなければいけない。配列を追っていくときには注意。
後、Excelのブック内のシート数はどこにも格納されていないのね。いろいろと使いにくいところがある。
Googleから自社製スマートフォン「Nexus One」が正式発表されましたね。記事によると携帯電話向けOS「Android」を採用した似たような端末が日本でも発売されるとのこと。しかし、ソフトバンクとドコモだけらしい。
今使っている携帯電話はauです。この辺りは、auは遅れている。早く出さないと、乗り換えるよ。> au
CakePHPで実現するBaserCMSというCMS(コンテンツ管理システム)をここのサイトから知りました。
BaserCMSのサイトでマニュアルを見てみても、どんなことができるかわかりませんでした(見落としているかもしれません)。おそらくメニューの生成と、ページをWebの管理ページから作成、ブログやフォーラムの配置ができるものと推測されます。BaserCMSは、企業向けのサイトができるとは謳っていますが、具体的な機能があるか書かれていないのは残念です。やはり自分でBaserCMSをインストールしてみないといけないのでしょうか? 自由に管理ページまで触れるデモサイトがあればいいのですが。あと、ユーザーフォーラムに記事が0というのも寂しいです。
CMSは、ユーザーにとってはWeb上でページを追加できることが一番のメリットと思いますが、開発側からはモジュールの追加による機能の追加がメリットかもしれません。用意されているモジュールを組み合わせてサイトを構築できるというのはありがたいです。
CakePHPの上で開発されていることは、PHPで有名な某CMSよりは、モジュールを作成してカスタマイズの見通しがよいと考えられます。この点は、BaserCMSはCMSの正しい方向かもしれません。
実は今日、ニュースリリースやお知らせのページをユーザーが作成したり、カレンダーで日程を表示したりなど、CMSで実現できそうな案件がお客様から来ましたが、一から開発ということになりそうで、費用とスケジュールが合わないのでお断りの連絡を入れたところでした。BaserCMSのようなCMSが具体的になっていけばいいかもしれません。
OpenPNEでSNSを運用しているお客様の要望で、デジタルカメラで撮った画像ファイルを何も加工せずにアップしたいとのこと。単純にOpenPNEの画像ファイルのサイズ容量を増やすだけではできなかった。
参考にしたのは、以下のサイト。
つまり、OpenPNEの設定以外に、PHPのphp.iniの設定と、MySQLの設定もしなければいけないとのこと。PHPとMySQLの設定はこちらではできないので、現在サーバー管理者に依頼をしている。
OpenPNEの画像の格納処理のソースを読んでいると、画像データはそのままバイナリではなくBASE64でエンコードしてからテーブルに格納しているのですね。
先月納品したサイトでバグ発生。更新した商品を新しい順に表示できない。このサイトは、別のシステムからXMLファイルで商品データをインポートしている。
原因は、XMLファイルに格納されている商品の更新日付が、マイクロ秒付きで格納されていることだった。つまり、こんな型式。
2009-11-04 18:08:50.382221
もらったXML構造の仕様書には、YYYY-MM-DD H:i:s形式で秒までしか格納しないと書かれているが、そこは大人の対応で、こちらが対応する。
使っているUNIX時間に変換する関数strtotimeは、PHP4ではマイクロ秒に対応していないのが原因だった。しっかりPHPのマニュアルにも書いてあった。マイクロ秒は結局は無視されるようだが。
というか、マイクロ秒が入ってくるなんて考えていなかった。マイクロ秒が入ってくればエラーにしておけばよかったかも。実は、テスト環境がPHP5で本番がPHP4というのも問題かもしれない。