さて、タイトルにもいれましたが(長い)

PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/imagick.so’ - libMagickWand.so.2: cannot open shared object file: No such file or directory in Unknown on line 0

これの解決方法をご紹介していきたいと思います。

CakePHP3 はじめました.

すっごい今更なんですが、ようやく時間が空いたので少し手を付けてみることに。

Model 周りの変更パねぇっす。

実は、CakePHP3 が beta リリースされた頃から触ってたんですが(去年?から今年の初めにかけて)、Model 周りの情報がまったくまとまっておらず、日本語で解説されているような記事が一切無い状況。(Qiita にはいくつか上がってたんですが、まったく理解できず)

英文から手探りで QueryBuilder とか Entity を色々理解しようとするもの、読むのに時間がかかってしまって断念しておりました。

というわけで、今日以降ちょくちょく CakePHP3 にてハマったポイントなどを更新していこうと思います。

この本の紹介が CakePHP2 じゃなくて、CakePHP3 だったらいいなぁ...。

Beginning Cakephp and Li3 2016

新品価格
¥6,682から
(2015/8/1 23:00時点)


こういうところに吐き出さないと覚えていられない年齢になりました、白音です。
さて、今回は久しぶりに技術的なお話を。Qiita に書けって? ごもっとも。

最近 Git を使い始めて色々遊ぶようになったのですが、ブランチをフラフラしている間に今作業中のブランチがどのブランチだったのか結構忘れます。
間違って push した時にはもうね。チェックしなかった自分が悪いことに愕然としつつ、疲れの所為にするしかありません。

というわけで、今自分がいるディレクトリのブランチを常に表示できないかなぁと思ったわけです。
まぁインターネット上には様々な先駆者がいらっしゃるので、その方達に敬意を払いつつここに備忘録として纏めておきます。

動作想定環境は CentOS です。Mac での解説が巷にあふれていますが、Mac なんて面白そうなオモチャを持ってないので CentOS でいきます。
Windows は嫌。
当時 Git が世に出始めたころ、興味本位で使おうとしていろんなものをインストールさせられた挙句、うまく動かなかったトラウマしかない。 殊更、今の Gitに関してもフロントエンドのソフトウェアが使いづらい。
結局小細工しようとすると Windows 版 Cygwin から離れられないなら、もうリモートにある CentOS でいいや。

前置きが長くなりましたが、いよいよ具体的な手順に入ります。

個人的に使ってみたかったのと、今お世話になってる企業さんが Chatwork API を利用していたので作ってみた。

https://github.com/sirone/chatwork_cakephp

よろしく!
あ、Packgist とか初めて利用してみました。

https://packagist.org/packages/cakephp/chatwork_cakephp ※2014/10/03 修正.
Sorry, I made a mistake.
The correct URL "https://packagist.org/packages/sirone/chatwork_cakephp".
Thanks, Mark S.

んで、Travis も。
https://travis-ci.org/sirone/chatwork_cakephp

うん、Travis で TDD って結構癖になるかも。
Jenkins より面白い。
あとこっちが環境用意しなくていから楽。メモリ不足で落ちたりしなくて楽。
欠点と言えばディレクトリ構造が見えないところ?
.travis.yml を正常に動くまで何回もコミットしなおして、やっと通ったらいつの間にか 29 回も言ってた罠。(このうち7,8割が .travis.yml の修正. ファイルパス直したり、コマンド名 typo したり...。)

まぁとにかくこれでひと段落。よし。

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB DB PRESS plus)

新品価格
¥2,786から
(2014/9/29 19:31時点)

CakePHPで学ぶ継続的インテグレーション

新品価格
¥4,320から
(2014/9/29 19:35時点)

JS,CSS 関係弄ってて思ったこと

色々参考にするサイトの先々で、ふと思うこと。

フロント側の開発者、デザイナって、他人がコーディングしたものを少し改良しただけで
「これ自分が作ったよ!」とか、平気で言っちゃえる文化なの?

最近 JS でアコーディオンとか CSS でアコーディオンとかよく使う機会があって
jQuery でやるか、CSS3 の transition で動きを付けるかで色々悩んでサイトを見たりしている。
そしてよく、以下のような体験をすることが多い。

Aさんのサイトで見たコードを実際に試す => もう少し使い勝手がいいものがいいなぁ...記述量も多いし...
Bさんのサイトで見たコードを実際に試す => ...もう少し使い勝手がいいものが...... ん、デジャヴ?

出自を明らかにしていて、「自分なりにこうしてみたよ!」みたいなのは良いんだけど、
何故か元の CSS で記載されていた webfont が一切削られていて、独自に矢印画像作ってたりとか。
しかもその画像の高さや横幅が元のフォントとサイズが1~2pxズレてて、どのブラウザで見ても微妙にずれてる。

詰めが甘い。

しかもそれを「改良したよ!」ってドヤ顔で広めているからたちが悪い。それは改良じゃなくて「自己満足のためのカスタマイズ」だ。
そうしてクソースが広まり、みんなが真似をし始めて、質の悪いフロントエンジニアができていくんだろうな、と思った。
そういう点では、立派な改悪だろ、とか思った。

ちなみにこの話には落ちがあって、A さんは B さんの情報を元に「改良したよ!」と言っているのだが
B さんもまた別のフロントをやっている人で、元々その人が webfont について一切記述をしていなかった。
(記述漏れ?面倒くさがり?webfont知らなかった? いずれにしてもそれでお金もらえる仕事できてるんだね...的な)

だからそのサイトのままの情報でサンプルを作成すると、
本来表示される矢印(webfontで表示)が表示されていなかったりして、どえらくお粗末なものだった。

本当の最初、海外の出自サイトを見てみたらびっくり.
綺麗に CSS, JS が用意されており(所謂CSS,JSのショーケース)足りないものはなかった。

どう見ても技術的に怪しい人たちが、「俺が作った!」「これは新しい!」「こんなの見たことない!」「便利、早業!」とか、まるで CM のように技術を広げている所は要注意だと思った。

まぁうちのブログもそれを避けようとして、結局具体的なソースコードを外に出せてないっていうのも一理あるわけで。

共有を急げば曖昧な情報を垂れ流してしまう恐れがある。
情報を固めていると、その技術はどんどん古くなっていく恐れがある。

迅速に、正確に。

それが出来たらいいなぁ。

違う...そうじゃないんだよ...

ttp://www.phpbook.jp/cakephp/install/index1.html

この方を例に上げてしまうのは忍びないけど、そうじゃないんだよ、と。
何がそうじゃないんだよなのか、というと...

Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for '9.0/no DST' instead in C:\pg\Apache\Apache2.2\htdocs\cake\lib\Cake\Cache\CacheEngine.php on line 45

って Warning が出た時に、どうして↓のようなことが言えるんだ...

php.iniを編集できない場合には、Warningに表示されているように「(CakePHPをインストールしたディレクトリ)\lib\Cake\Cache\CacheEngine.php」を開き45行目に「date_default_timezone_set('Asia/Tokyo');」を追加して下さい。

違うよ...そうじゃないんだよ......

フレームワークっておいそれと手を下しちゃダメでしょ。
「初心者に分かり易く解説してるんだ」とでも言っちゃうわけ?
初心者をなんだと思ってるの?

そんなだから、残業してまで糞コード垂れ流して、酷い疲労感と達成感から変なモノが見え始めた挙句に自己満足しながら「やっぱオブジェクト指向で作ったコードは美しい!」とか動かないコードに対して評論しちゃう自称プログラマ、自称エンジニア、自称 SE が増えるんだよ!

と、つらつらと感情を隠さずに書けばこんな感じ。
ここで問題だな、と思うのは、初心者をターゲットにした時の「ベター」の扱い方。

結構初心者に分かり易く、という体で書かれた書籍は山ほどある。
猫でもわかる、なんてよくお世話になりました、ありがとうございます。

でも、そういった初心者向け書籍では「ちょっと待って!」って思うことがチラホラある。(あるよね?あるでしょ?

例えば上記で挙げた例。

Warning が出たからと言って、lib ディレクトリ内にあるファイルをいきなり修正してる。
つまり、フレームワーク自身を修正しちゃってる。

違うでしょ。そうじゃないよね?
経験者じゃないのはわかってるんだけど、それをさも「こうするんです」とか初心者に向けて言わないでほしい。

フレームワークが文句を言ってくるのは、大抵
「あなたがフレームワークを理解できてないよ」
っていう場合。
知っている人からすれば、上記もその一例なわけだ。
もっとベターな書き方がいくらでもある。(ていうか、この場合公式では core.php で修正することが書かれている)

それなのに、そのフレームワークに「文句言うならこうしてやる!」とでも言うかのように
修正を加えるのがさも当たり前!といった教え方はいかがなものだろう?

いくら初心者だからと言っても、習慣は大切だ。
それは特に意味も分からず書いているうちは尚更習慣に従うべきだ。(そうすることで、数々の不意打ちを食らわなくて済むようになるからだ)

上記だってそう。
もしフレームワーク側にエンバグした時のことを考えてみよう。
影響はすべてに及ぶ。
直したところを忘れたとしよう。
影響は長く続く。
しかも初心者は大抵エンバグしたことに気付かない。
何故ならそれ以上に、他の事で精いっぱいだからだ。(インストール、ドキュメント、自分がやってみたいこと、言語、etc...)

初心者だからと言って、説明をなおざりにして良いわけがない。

彼らのような人種は諸先輩方に当たるわけだけど、初心者に向けた情報であったとしても、出来る限りベターな記述を心がけてほしいな、と思った次第。


久々に長い!





















猫でもわかるWindowsプログラミング 第4版 (猫でもわかるプログラミング)


新品価格

¥3,024
から


(2014/4/6 23:09時点)









猫でもわかるゲームプログラミング (猫でもわかるプログラミングシリーズ)


中古価格

¥198
から


(2014/4/6 23:10時点)









詳解CakePHP辞典―2.0/2.1/2.2/2.3対応


新品価格

¥3,456
から


(2014/4/6 23:11時点)



久しぶりに更新

なんかスパム判定されたコメントがいくつかあって、削除されているという...。

で、実は更新しなかったのはほかでもなく、働く場所が変わったからです。
といっても、中の人にとっては日常茶飯事なので気にしてません。

ただ、元の鞘に戻る、といった感じでソーシャルゲームプログラマに戻りました。
やっとかーーー!!!
疲れたぞーーーー!!

というわけで、今は日々を楽しみながらソーシャルゲームの運用に携わっています。
やっぱり自分が慣れ親しんだ環境は良いものだね、仕事も捗るし楽しい。

Bitcasa API は、向こうの方が色々やってくれたおかげで解決。
最終的にはアカウントを作り直して、登録も最初から英名で全部やりなおしたら難なくいけましたとさ。ちゃんちゃん。

Bitcasa API の続きー

>"Does your login have any special characters in your username?"

だそうで。
ユーザ名が日本語で入力してあったので、半角英字にして再度挑戦。


・・・・

撃沈。

というわけで、もう一回サポートに連絡中。

Bitcasa の Help Center すごいよ!
動画投稿できるから、英語が苦手でも簡単に症状の報告ができる! このアイディアは素晴らしい!
そして返信も早いからすぐに確認できる。
ええのう、このサービスを展開してるって感じ。憧れる。

Bitcasa の API が公開されてた!

https://developer.bitcasa.com/

Bitcasa の開発利用者用に API が公開されている!
というわけで、さっそく後日遊んでみる。

今日はもうお風呂入って FF14 やって寝ます、お休みー

追記:
https://github.com/bitcasa/bitcasa-sdk-php
Bitcasa の SDK はここにあったー

更に追記:
なんか、CliendID とかを取得する必要があるんだけど、そこをクリックすると 500 エラーが出て閲覧できないという...。
Forum みてもそれらしい情報ないし、どうなってるんだろうか。
問題の URL は以下の通り。早く試してみたいのにー!
https://my.bitcasa.com/login/dev_portal/

Unity4.3 公開

といっても、公開は English のほうから。
日本語の公式サイトでは Unity 4.2.2 の公開でとどまってる。

追記:
いつの間にか Unity4.3 も公開されてたね!
やったね! Box2D 使える!

使わないけど(´・ω・`)