Category: PHP

徳丸浩(@ockeghem)さんの著書「体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践」(以下「wasbook」)を読んでいる。

添付のCD-ROMに実習環境としてVMWare Playerとディスクイメージが収録されている。しかし、私の手元の環境はMac / WindowsのVirtual Box。新たにインストールするのは面倒なので、ディスクイメージ(.vmdk)をVirtual Boxで読み込んでみた。


といっても手順は特に難しくない。以下作業メモ。

(さらに…)

12/17(木)、7月に転職した職場で初の社内勉強会を開催した。

内容

テーマと進め方

テーマはTDD(テスト駆動開発)。以前からこのblogをお読みの方には見覚えがあると思うが、前職で行った社内勉強会のネタを焼き直しただけのものである。

具体的には、オブジェクト倶楽部で公開されている「車窓からのTDD」[PDF]の内容をPHP + SimpleTest環境でやってみよう、という内容。2003年のものだが、今でもTDD入門としてものすごく有用なドキュメントである。

会場は社内の会議室。各自にノートPCを持ち込んでもらい、ハンズオン形式で実際にコードを書いてもらいながら進めた。また、ペアプロの前段階として「相方」を設定し、質問や相談などは「まずは相方から」というルールを設定した。

資料

スライドはこちら。

「実装例」として書いたコードはこちら。

「20091217_tdd_source.zip」をダウンロード

(さらに…)

はい、今回も飽きもせずに twitter の小物を晒しますよ、っと。

今回のお題は「twitter のアイコン変更ツール」。普通に twitter のホームから「設定」>「アイコン」とたどって「これはいい画像ですね!」とほめてもらうのもいいが、複数の画像をさくさく切り替えたり、crontab などを使って時間で切り替えたり、なんてこともやってみたい。

そういう用途に適したツールを、「サクッと作る」ことを目標に PHP で実装してみた。web サーバに設置してブラウザから叩いてもいいし、crontab (…とwget) で API 的な使い方をしてもいい。

(さらに…)

9/4(金)、日本オラクル青山センターで開催された「PHPカンファレンス2009 ビジネスデイ」に参加してきた。

10周年を迎えたPHPカンファレンス、今年は「ビジネスデイ」「テックデイ」と初の2日間開催となった。

この手のカンファレンスでは@suno88の「私的不完全議事録シリーズ」がものすごく充実している。さらに、最近は技術評論社の「スペシャルレポート」(随時更新)もすごい速度で更新するので、もはや下手なメモを個人的に取る必要はあまり感じない。いつもありがとうございます。

(さらに…)

SOAPでwebAPIを叩く

仕事でちょっと必要になったので、PHPのSOAP拡張モジュールを使ってみた。わかってしまえばなんということはないのだが、意外と資料が見当たらなかったので手順をメモしておく。

SOAPって何だ?

Simple Object Access Protocol

とくちょう:

  • 通信プロトコル : HTTP
  • SOAP 1.0 : HTTPのみ
  • SOAP 1.1~ : FTP、SMTPなども選択できる
    (現行バージョンは1.2)
  • データフォーマット : XML
    • 「エンベロープ」というメタデータでくるむ
    • 文書本体(Body)の前にヘッダ(Header)をつけることができる(=Optional)

    (さらに…)

    しばらく勉強会だのイベントレポートだの電子工作だのばかりの記事で、ちっともwebプログラミングのエントリをしていなかった。これじゃいかんという一念発起したの(と、諸事情から必要になったの)で、そっち寄りの内容を書いてみることにした。

    …と言っても表題どおり、ImageMagick / PECL::Imagickの使い方がメイン。ドキュメントを読めばわかることから、知らないとハマる落とし穴まで、知ってることは大放出で書くことにする。

    テーマ

    • ImageMagickとPECL::Imagickを使い、PHPでアニメーションGIFの合成を行う。
    • サーバサイドでいわゆる「アバター」の画像を合成する、という使い方を想定している。
    • メジャー3キャリアの3G以降の端末に対応する。

    (さらに…)

    イベントが重なったり連休に突入したりですっかり遅くなってしまったが、社内勉強会もちゃんとやってますよということでエントリ。

    4/22(水)、初登場のkatsumicPHPUnitについて担当してくれた。スライドはこちら。

    内容が有意義なものだったのも素晴らしいし、そのあとテストについてチームで語らうことができたのも素晴らしい。ちゃんと続けていてよかったなぁ、と、最近続けて勉強会の夜は嬉しい気分のまま帰ることができている。

    そしてどうやら、水曜の勉強会のあとはOOPJogが定番化しそうな予感。この日は#2が開催されたので、勉強会終了後、同僚とぞろぞろ走ってきた。

    毎度おなじみ社内勉強会のエントリ。今回は会場に予定していた会議室の隣で深刻なミーティングが行われていたので、4/15開催予定を4/16に変更して行った。

    講師は我がチーム唯一の女性が担当。IIS / ASPで動いてるサイトをLinuxサーバに移植するというプロジェクトを、Symfonyを使って進めている。

    資料はこちら。

    タイトルは私が仮のものとして提示したのだが、まさかそのまま使われてしまうとは。しかもオープニングで「なんだか恥ずかしいタイトルですが…」と言われてしまった。

    とはいえちゃんと開催してくれて、しかも入門としてしっかりした内容にしてくれて、大変感謝している。ありがとう!

    また、技術的なフォローは若者2名が担当してくれた。このチームワークにも感謝したい。

    勉強会終了後はOopJog #1というジョギングイベントに参加してきた。私は年齢も体重も皇居を一周するには頼りないスペックなのだが、なんとか完走したよ!

    ThoughtWorksアンソロジー」を購入したので、以前デブサミ2009で聞いた「オブジェクト指向エクササイズ」をやってみようと思っている。PHPでwebを作るときどの程度応用できるかにも興味があった。

    同じころ。とある機能に仕様追加があったので、他人がずいぶん前に書いた箇所に手を入れる必要が出てきた。当該箇所を探り当て、ソースコードを開いて気絶しそうになった。

    な、なんじゃこりゃ。

    先日勉強会で「ダメコードをdisる」というそれはそれは悪意のあるテーマを取り上げたのだが、そっちのネタにすればよかった、と思うぐらいのコードが綴られていた。

    ちょっと書き足す予定が大幅にリファクタして、やっと機能追加も完成し、私の心も(ほんの少し)晴れやかになった。そんなコードを二度と書かない / 書かせないために、「オブジェクト指向以前エクササイズのススメ」を提唱してみる。

    注:
    以下、とてもレベルの低いエクササイズが続きます。御用とお急ぎでない方のみ続きをどうぞ。

    (さらに…)