ドットインストール代表のライフハックブログ
はじめに 単体テストとは、システムの構成要素であるクラスやメソッド単位での動作を確認する作業のことを言います。 Webシステムは基本的に不特定多数に公開するものであり、公開前にはきちんとテストを行っておくことが重要です。 PHPにはテストツールとしてPHPUnitという単体テストのツールがあり、PHPUnitを利用するとクラス内のメソッドに対してテスト用のクラスを自動で生成し、効率よくテストすることができます。 PHPUnitを利用して単体テストする場合のプロセスは テスト対象となるクラス、PHPプログラムの作成 1.で作成したクラスからPHPUnit内のクラスを用いてテスト用のクラスを作成 2.で作成したテスト用のクラスに目的に応じてテストメソッドの実体を記述 テスト実行、結果の確認 となります。 本記事では、本連載第4回『GPS携帯を使った口コミサイト構築』の逆ジオコーディング処理をテ
Cassandraも0.6系がついに0.6.4まで出てきて、stableなリリースとして十分に使えるところまで来ましたね。この連載のコードもすべて0.6系では動作するはずですので、ぜひ最新のものに入れ替えて試してみてください。 前回まででデータの投入、更新、削除までをご紹介しました。今回から複数回に分けて検索を重点的に見ていきましょう。 前準備としてデータを投入しておく 検索メソッドの確認の前準備として、まずデータの投入を行います。今回はシンプルな郵便番号のデータを利用します。以下のURLから東京都のデータを取得して、解凍後、データを投入してください。 郵便番号データのダウンロード:日本郵便 URL:http://www.post.japanpost.jp/zipcode/dl/kogaki/lzh/13tokyo.lzh データは説明のため簡易的なデータ構造とします。 キーは郵便番号 デ
iPhone アプリ開発を初めてはや2年。わけわからんレベルからなんとかアプリをリリースするところまでこぎつけました。もともと趣味ではじめた事ですが今は仕事でも iPhone アプリ開発をしています。ここに至るまで自分が調べたことや参考にした文書をアプリの構想からアプリをリリースするまでの手順にそってまとめてみました。 iOSアプリ開発関連の本を書きました 初めて iOS アプリ開発をされるかた向けに「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」という本を書きました。 この記事を読んで iOS アプリ開発に興味を持たれた方におすすめです(2013年2月26日発売)。2015年1月17日にSwiftに対応した改訂版がでました。 本の内容に関する詳しい記事はこちらです。 iOSアプリ開発の本を書きました 初期投資 8400円とプライベートな時間、iPhoneまたは
.pl な config ファイルのコンパイルがとおるかチェックしてみる こんなかんじか。 use strict; use warnings; use Test::More; use Path::Class; use IPC::Open3; use POSIX; for my $file (grep /\.pl$/, dir('config')->children) { my($wtr, $rdr, $err); my @cmd = ($^X, (map { "-I$_" } grep { !ref $_ } @INC), '-c', $file); my $pid = open3($wtr, $rdr, $err, @cmd); waitpid($pid, 0); ok((POSIX::WIFEXITED($?) && POSIX::WEXITSTATUS($?) == 0), $fil
知ってる人は知ってると思いますが、ちょっと「えー!」な感じだったので。 TestCaseオブジェクトのsetUpメソッドやtearDownメソッドは、testメソッドが実行される前後にそれぞれ呼び出されます。つまり、それぞれ、testメソッド数分呼び出されます。これはよくドキュメントに書かれているので知っていると思います。 一方、コンストラクタはどうかというと。。。 背景 最近、テストの数(ファイル数、testメソッド数、assert数)が増えてきて、全テスト実行するのに30分以上かかっています。中には、DBに接続してSQLを実行して想定している結果が返ってくることをテストしていたり、HTTPリクエストを送信してステータスコードやContent-Typeヘッダ、レスポンスボディの中身が一致しているかどうかのテストなども行っているので、それなりに時間がかかるといえばかかるようになっています。
コメント・トラックバックについて 不適切と思われるコメント、本企画の趣旨にそぐわないコメントは掲載されない場合もあります。営業・勧誘目的と思われるコメントに関しても同様と致しますので、あらかじめご了承ください。 記事と無関係な内容のトラックバック、商用あるいはサイト誘導目的のトラックバックについては、当サイト運営者の判断で削除する場合もあることをご了承ください。 コメント投稿時にメールアドレスを公開すると、不特定多数からメールを受ける可能性があります。フリーメールを使用するなどしてご注意ください。 楽天英語の世界:お代わり遠慮願います The Wall Street Journal が英語化を進める楽天のことを取り上げていました。 その中でおもしろかったのが、三木谷社長がTwitter 上で動詞discussの使い方を間違えたことをめぐってネット上のうるさ型たちと、ちょっとした応酬があった
ブログ初ポストはCakePHPを使ったテスト駆動開発です。 CakePHPはユニットテストとしてSimpleTestに対応しています。 SimpleTestをインストールするだけで、モデルやコントローラ、シェル、ルーティングクラスなどのユニットテストが出来るようになります。 今日はこのCakePHPとSimpleTestを使ってテスト駆動開発の流れを説明します。 ただ、僕自身テスト駆動開発を学んだのは去年のCake祭りなので、至らない点が多々あります。 もし何かあれば、コメントでご指摘ください。 今更感もありますが、この場を借りてCake祭りでテスト駆動の指導をしてくださった、@sizuhikoさんに感謝します。 開発手順 まずは開発手順を示します。少し細かいですが、テスト駆動では以下のような順で開発していきます。 設計する。 テストケースを書く。 テストケースをデバッグする。 コー
昨夜寒い寒いと言っていたら、今朝起きたら外が白くてびっくり。 ほとんど溶けかかった様な状態なので、屋根から雪がベランダに滑り落ちてけたたましい音を上げた。 こんな時期に雪がふることがあるんだ。 東京でこの時期の雪は41年ぶりらしくて。ホント、冬用のコートをクリーニングに出してなくてよかった。もっとも、正確に言うとクリーニングに出そうと忘れないように何度も玄関のクリーニング用紙袋に入れたことはあったのだが、朝、家を出る時殊の外寒いことが何度かあって袋から取り出していたのだけど。 Twitter APIを通して、あるユーザの全フォロワーを取得したいと思ったら以下の様な形になる。 ここでは、スクリーン名と設定してあるアイコンの保管位置を取得している。 ミソと言うわけではないが、$info = $twitter->statuses->followers(array("cursor" => -1))
どちらも「同僚」と習うかもしれませんが、実際に使われるときは違いがあります。coworkerは、日本語の「同僚」とほぼ同じ意味。同じ会社の、同じランクの人。上司はbossで、coworkerとはまず呼びません。日本的にちょっと意外なのがcolleague。かなり広い意味で利用可能。「社外の人であっても、一緒に仕事をしたことがある人」が軒並み全てcolleagueとなります。coworker同様、あまり上下関係のないイメージ。日本語だと多分一番近いのは「仕事仲間」だと思いますが、「仕事仲間」よりもより多くのシチュエーションで使われる感じです。colleagueは、社外コンサルタントやコントラクタを多用しがちなシリコンバレーでは大変有効な言葉ですので、覚えておくと便利だったりします。
モダンなPHPの開発環境の構築方法をみていて、「はやく5.3.xに慣れないとなー」とか思っていたら、 "アプリケーション以下に lib/ などとディレクトリを作って、その中に pear コマンドなどでパッケージを入れる+ include_path を調整するのが良い(まあ、だいたいフレームワークがやってるよ)。 <中略> 余談だけど、Ethnaなら pear-local コマンドってやつがあるよ!" という記述が。 なんだってー!CakePHPにはそんな便利なコマンドない! ということで作ってた。 pear_local app/pluginsにディレクトリを展開して cake pear_local install Net_UserAgent_Mobile で、使用可能。 app/vendors/pearにライブラリがインストールされてapp/config/bootstrap.phpに読み込
via. はてなブログ 誰か書くんじゃないかと思いつつ、まあ、お決まりのパターンとしてPHP版も書いてみよう。 PHPのこと見てると、書き方とか取り巻く環境ってあんま変わってないなーとか思いつつ、そして何がモダンなんだっけ?新しければいいのか?って話だけど。 一般的な OSX 環境および Linux 環境における、モダンな PHP 開発環境の構築方法についてまとめてみた。最新のPHPとxdebugがあれば十分。 PHP 5.3.2 のインストール ソースから入れてた時期もあるけどやっぱパッケージが楽だな。。オフィシャルじゃないリポジトリを使えばパッケージで入れられる。 pearとpeclは、パッケージ入れるときに一緒に入れちゃう。 pear や pecl そのものは、PHPよりも頻繁にバージョンアップされるし、パッケージになってたりなってなかったりの管理が面倒だから基本的にpear/pec
なんで作ったかっていうと、ニコニコ動画の外部プレーヤは未だに特定のブログでしか見れないものだと思っていたけど、 実はそうではないことを知ったからです(今さら・・・) 見れるページ http://voidy21.appspot.com/nico_view/index.html こんな感じになる 注意!! 同時に開くととんでもなく重くなるので注意!! ベンチマークにはなるかな・・・ ソース <html> <head> <title>ニコニコ動画を同時に見る系</title> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.4");</script> <script tyep="tex
処理内容 モデル「ModelA」のデータをModelA::save()で更新。 モデル「ModelB」のデータをhasManyの関連を持つデータとともにModelB::saveAll()で作成(トランザクション処理)。 (モデル「ModelB」のデータの作成に失敗した場合はエラー処理後に処理を継続。) モデル「ModelA」のデータをModelA::save()で更新。 $data = array(...); $this->ModelA->create(null); $this->ModelA->set($data); $this->ModelA->save(); ... $data = array(...); if (!$this->ModelB->saveAll($data)) { エラー処理 } ... $data = array(...); $this->ModelA->creat
if ( $blog == " Webエンジニアのためのライフハック " ) { print " 1-byte.jp "; } ホーム1-byte.jpとは 書いてるヒトは CakePHPプラグインのまとめもこれで最後になります。 最後はヘルパーとその他のソースの紹介です。 CakePHP Plugins – A Biblical Retelling 便利なヘルパーたち Graham Weldon’s Gravatar: ヘルパーを使って簡単に君のアプリケーションにGravatarを埋め込んでくれるよ。ベーカリーの記事はここ。 180行のコードで出来たGravatar対応のためのヘルパーです。 Gravatarって何っていう人は公式サイトをどうぞ。 Chris Your’s CakeHelper: “今まで君のCakePHPのビューでHTMLブロックをキャプチャーするクリーンな方法を、
2010年09月12日 エンジニアが最初に発音に気をつけるべき、カタカナ英単語一覧 Tweet エンジニアは普段から英語のテクニカルタームをそのまま利用しているから、結構英語でも意思の疎通がしやすいと言われている。しかし、カタカナで覚えてしまっていると、英語の発音とは大きく乖離してしまう。そこで、本エントリではエンジニアがちょっと気をつけるだけで、発音を改善できるコツを紹介したい。 まず気をつけておきたいのは存在しない母音を発音しないということだ。例は色々あるが、tをトと発音しないように心がけるだけでずいぶん違う。networkはネットワークと発音してはならない。あえてカタカナで書くとネッtワァkという感じだろうか。account, assistant, count, component, Ethernet, element, expert, format, input, insert,
Simulator LauncherはMac OSX用のフリーウェア(ソースコードは公開されている)。iPhoneアプリ開発を行った後、実際に使ってもらって評価を受けたいと思うことは多々あるはずだ。そんな時の配布にはAdHockを使うのが一般的だ。 Simulator Bundlerにドラッグアンドドロップする だがこの方法では多人数に配布するのには向いていない。開発者であれば良いが、レビュワーなどに配布するのは大変だ。そこで使ってみたいのがiPhoneシミュレータ向けにアプリを配布するSimulator Launcherだ。 Simulator LauncherはコンパイルしたiPhoneアプリをドラッグアンドドロップし、インストーラーを生成するソフトウェアだ。インストーラーをダブルクリックするとiPhoneシミュレータが立ち上がってアプリが動かせるようになる。 生成されたインストーラー
昨年、2009年の7月1日に政府のエコポイント申請のためのWebサイトがオープンしたとき、そのWebサイトがセールスフォース・ドットコムのクラウドで作られており、しかも納期はわずか1カ月程度しかなかったはずだ、とPublickeyで指摘しました。 「エコポイント」の申し込み画面はクラウド上に。開発期間わずか1カ月? この記事に対してセールスフォース・ドットコム社長の宇陀栄次氏から「この記事の内容も、正しい状況の理解であり、すばらしいと思います。」と直接コメントをいただき(本人であることを広報経由で確認)、この指摘が事実であることを確認しました。 そのエコポイント開発時の裏話を、先週末9月11日の深夜に宇陀社長が突然ツイッターでつぶやきはじめました。 エコポイントの時の話。昨年の5月28日昼。要件は?とお聞きして、7月1日にサービス開始すること、との返答。登録数は2000万人を想定。当社は法
HTML5 Video Player | FryPlayer スキンが利用可能なHTML5動画プレイヤー実装jQueryプラグイン「FryPlayer」 サイトはロシア語っぽく何を書いてあるかは全く分かりませんが、サンプルコードを見れば使えるはずです。 $('video').FryPlayer( options ); で <video>タグ部分をリッチにデコレーションすることが出来るようです。 幅、高さ、スキン、ボリュームのデフォルト値なんかをoptionsに渡せます 関連エントリ HTML5で動画や音声再生を可能にするライブラリ集 CSSでスキン作成が可能なHTML5動画プレイヤー実装JSライブラリ「Video JS」 CSSでクールにデザインされたHTML5動画・音楽プレイヤー実装JS「MediaElement.js」
興味深いPHPインジェクション (SANS Internet Storm Center Diary 2010/8/31より) SANSインターネットストームセンターのハンドラであるBojan Zdrnjaが、興味深いPHPインジェクションについて伝えている。(掲載日:米国時間 2010年8月31日) ここ最近、PHPインジェクションという攻撃が一気に知名度を上げている。Webサーバのログを確認すれば、PHPインジェクションに関する多数のリクエストを発見できるはずだ。それらは大抵、ボットが既知の(そしてあまり知られていない)脆弱性を悪用できるか試しているだけだ。 様々なPHPインジェクションの脆弱性を悪用する興味深い試みを、読者の一人が自身のWebサイトでキャプチャする事に成功したそうだ。キャプチャにはmod_securityを使用した。リモートのPHPスクリプトが読み込まれるように、変数を
php用のHudsonの設定と言えば、 HudsonでPHPのユニットテスト http://d.hatena.ne.jp/ssogabe/20081102/1225642743 の記事があったりしますが、こちらで紹介されてる設定をそのままコピペしたとしても 近頃(すくなくとも今年4月以降)のhudsonだとパスがうまくいかなかったりします(うろおぼえ) なので、Phingプラグインを使う場合は、ビルドパスとか以下の感じにすると動くと思います。 というか、最近だったらSebastian Bergmann純正のテンプレートにそうのがトレンディーじゃないでしょうかね http://github.com/sebastianbergmann/php-hudson-template あ、PEAR的にはCruise Control&PHPUnderControlがナウでヤングですよ http://wik
今までもPHP案件でCIはしているんだけど、環境にはCruiseControl+phpUnderControlという構成で、これももう古いなぁと思ったのでHudsonに移行してみた。 感触としては、PHP案件でもHudson使うべし、でいいんじゃないかな。 導入 今回導入した環境はCentOS5.3なので、rpmを使ってインストールできる。 sudo rpm --import http://hudson-ci.org/redhat/hudson-ci.org.key wget http://hudson-ci.org/latest/redhat/hudson.rpm rpm -Uvh hudson.rpm なお、当然のことだが、Hudsonを動作させるためにはJDKのインストールが必要なので、先にインストールしておく。 インストールが完了したら自動起動の設定をして、起動する。 /sbin/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く