なんでテストを書くの?

思ったとおりに動いていることを確認する ちょっとずつ確認しながら進んでいくとつまらないバグがなくなる。 プロダクトコードの振る舞いのリスト テストメソッド名で振る舞いを説明する。 テストコードなのでウソの(疑わしい)ドキュメントとならない。 (--t…

PHPカンファレンス2012メモ #phpcon2012

気になったところのみ。 基調講演 マルチバイト(mb_*関連)がネイティブサポート デフォルトの文字コードがUTF-8に → htmlspecialchars()注意 絵文字もネイティブサポートへ。 Composer RubyでいうBundler的なライブラリ依存管理の仕組み。 Symphony2を始めと…

herokuでbootstrap入れたらActionView::Template::Error ('twitter/bootstrap.less' wasn't found.

twitter bootstrap railsを使ったら職が見つかり彼女も出来て背も3センチ伸びました。 ↑が親切すぎたので何も考えずにやってたらherokuでエラーがでてハマった話。 twitter-bootstrap-rails入れてherokuにデプロイしたらエラーが出る $ git push heroku mast…

herokuにrailsアプリをデプロイする(Error H10 ってなに;;)

railsによるアジャイルWebアプリケーション開発第4版を読んだので早速herokuでアプリでも・・・ と思ったらRubyもrailsも初心者で結構つまづいたのでメモ。herokuへのサインアップ等は終わってるものとします。 Hello Worldまでは以下が参考になりました。 h…

github でサブアカウント、ユーザー切り替え

Githubでサブアカウントを使おうとしてもSSH公開鍵が同じだと同じユーザーと判断されてしまうため、そのままだとユーザー切り替えとか簡単には出来ません。以下やりかたメインアカウントの設定は既にできてるものとします。 まずはサブアカウントの準備 サブ…

SSHしか通らないサーバーで適当なポートに立ち上げたサービスにアクセスする

railsとかjsTestDriverとかJenkinsとか最近ではPHPのビルトインウェブサーバーもそうなんですが、コマンド一発サービス起動して後はブラウザからアクセスするだけで利用できるものがよくあります。 でも、サービスを起動したサーバーでは開けてるポートが限…

git svn switch --relocate 的なことをする (patch利用)

git

http://d.hatena.ne.jp/do_aki/20110530/1306751266 ↑で紹介されているような .git/config を書き換える方法が使えない場合の話です。 (旧svnリポんジトリが時すでに削除済み とか)新gitワーキングツリーに手動でブランチを移植する感じでがんばります。 …

「それより俺のテストを見てくれ。こいつをどう思う?」「すごく・・・日本語です・・・・」

「それより俺のテストを見てくれ。こいつをどう思う?」「すごく・・・日本語です・・・・」 オラっち、日本語でテストメソッド名を定義するんダーーイ PHPって、メソッド名を日本語で定義できます(文字コードUTF-8なら)。PHPでTDDワークショップで初めて…

自分用にインストールしたpearを使おうとしてredeclareみたいに文句言われた場合

PHP

丁度ファイル入出力が絡むテストを書いて、めんどくさいなー、と思っていたところに http://blog.yuyat.jp/archives/1280 ↑でvfsStreamというものが紹介されていたので試そうとしたらひっかかったのでメモ。 とりあえずCache_Casualのテストを実行してみる t…

PyrusでプロジェクトローカルなPEARライブラリインストール : PHP Advent Calendar jp 2011 Day 10

PHP

PHP Avent Calendar jp 2011の10日目、[twitter:@calpo22]です。 →前日「includeとextractの組み合わせでテンプレート処理を作る。PHPのAdvent Calender #9 - それマグで!」※追記 2012/09/16 PHPが古いとかの事情がなければ、今はライブラリの依存管理にはc…

session_set_save_handler()でカスタムセッションハンドラ設定したらFatal error: Class not found

PHP

複数のwebサーバーでセッション情報共有するのにmemcached使うためにカスタムセッションハンドラ設定したら ばっちり定義してるはずのクラスがなかったことになっててびびった話。 問題のあったスクリプト クラスHogeを定義 writeハンドラでnew Hoge()

SSLでエラー ssl_error_rx_record_too_long (-12263)

SSL

ブラウザにssl_error_rx_record_too_longと出力されて接続できない。エラーログには↓のように出る。 [Mon Sep 19 22:46:23 2011] [error] [client xxx.xxx.xxx.xxx] Invalid method in request \x16\x03\x01 一般的な原因 以下のような理由でhttpd.confのSSL…

quickrun: Specified outputter is not registered: buffer

vim

久しぶりに:BundleInstall!して、quickrun.vimがVersion0.5.0になったら動かなくなっちゃったけど、 vim scriptもgitもよく分かってなかったので前のバージョンを使うようにするのに苦労したからメモ。[追記 20110906] ちゃんと新しいvimを使ってればこんな…

root権のない一般ユーザーでも開発環境でCI(Jenkins/PHPUnit/Phing)してみたい (中編)

前回の続き、pearでPHPUnitインストールなど。 自分用pearの準備 pear自体はPHPについてくるので誰でもつかえると思うんですが、インストール先が/usr/local/phpとかだったり、そもそもpearが古かったりするので自分用のを入れましょう。 .pearrcの生成 /hom…

root権のない一般ユーザーでも開発環境でCI(Jenkins/PHPUnit/Phing)してみたい (前編)

JenkinsやPHPUnitやPhingの導入についてのありがたいまとめはいっぱいあります。 世の中のJenkins/PHPUnitのインストール情報はroot権ある人用 (当たり前) レガシーな開発環境にはPHPUnitなんぞ入ってなかったりします。 そのわりにポートはしっかり閉じられ…

uncaught exception: Syntax error, unrecognized expression: [@name=hoge]

jQuery1.2.6からjQuery1.6.2にアップデートしたらこんなのが出てきた。 jQuery内部でエラーが出てる 確か1.3でセレクタのエンジンがSizzle変わったといってたのでそのせいかしら。なんとも今更な。 昔の話しすぎて日本語の情報があんまり情報が引っかからな…

RDD (Release Driven Development) リリース駆動開発

とりあえずリリースして様子を見る、という開発手法。 ちょっと変更してすぐリリース 変更がちょっとなのでバグを埋め込みづらい 変更がちょっとなのでバグがあっても対処しやすい 変更に対する反応を確認しやすい 変更が大きいと、何が原因でこんな反応が返…

恥知らずなTDD使いがいた!

俺はRDDを使い手なんだがプロジェクトリーダーがが残念なことにTDDを使ってきたので「お前それで良いのか?」と言うと「何いきなり(テスト書かずに)実装してるわけ?」と言われた。 俺の前プロジェクトチームがTDDの熟練者なのだがおれはいつもデスマーチに…

テストコードのディレクトリ構成

今日のレガシー対応 ディレクトリ構成のお手本が見つからない PHPUnitのテスト用ディレクトリ構成はこうしなさい、みたいなのが見つからなかったので悶々と悩み続け・・・ Rails的なディレクトリ テストの内容でディレクトリを分けるか・・・ test |-- fixtu…

privateメソッドのテスト

今日のレガシー対応 privateメソッドをテストハーネスに入れた あるクラスのprivateメソッドのテストをしたい class Hoge { public pubMethod(){ $this->meth1(); ・・・ $this->meth2(); ・・・ } private meth1(){ ・・・ } private meth2(){ ・・・ } } …

PHPでTDD&CIワークショップ に参加してきました

勉強会は初めてで敷居が高いもののどうしてもテストがうまく書けなかったのでヒントをもらおうと、勉強会に勉強しに行った素人です。とても勉強になりました。レガシーコードに立ち向かう気力も頂きました。ほんとうにありがとうございました。 以下、TDD等…

既存システムでTDDするのが難しい理由

TDDしたい、CIしたいと思ってもなかなか導入できない。何でだろう? PHP製WebアプリケーションでのTDDを学び始めた現時点の気持ちまとめ。 Seleniumを使うような高いレイヤーのテスト どんなテストを書けばいいのかわからない 例えばDBから商品情報取ってペ…

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣 を読んだ

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣作者: Venkat Subramaniam,Andy Hunt,木下史彦,角谷信太郎出版社/メーカー: オーム社発売日: 2007/12/22メディア: 単行本(ソフトカバー)購入: 35人 クリック: 995回この商品を含むブログ (291…

requestAnimationFrame < よーしおまえらー、アニメーションにsetInterval使うなよー

より適切なものが追加されたのでそっちを使いましょう。 setInterval/setTimeout → requestAnimationFrame; これまでは setInterval function render(){ // アニメーション 1フレーム分の処理 } setInterval(render, 1000 / 60); これはもう古い。 これから…

JavaScript The Good PartsとJapaScriptパターンを読んだ

読んだ後の感想 JavaScript The Good Parts (´_`) 経典 JavaScriptパターン (´_`) JavaScript The Good Parts 強い思想に基づいた断定的な物言い 神はJavaScriptを作られた。 そこには善いパーツと悪いパーツがあった。 善悪の区別のつかぬ開発者はこれを使…

CSSだけでサイズ不定画像の中央を正方形に切り抜きサムネイル (かんたん!)

CSS

前に書いた記事より良さそうな方法が見つかったので。 長方形の画像を正方形に切り出してサムネイルとする サンプル CSSだけでサイズ不定画像の真ん中へんを正方形に切り抜きサムネイル - jsdo.it - share JavaScript, HTML5 and CSS 解説 HTML <a href=""> <img class="architrave_image" src="1pxの透過gif"> </a> CSS .arch…

John Resig「jQuery1.5.2から1.6.1へのアップデートでattr()のコードを書き換える必要はない」

jQuery1.6が出たとき、attr()の動作が変わっていてひと悶着あったんですが、このほどその辺が考慮された1.6.1が出ました。ひゃっほぅ まぁ僕はなぜかjQuery1.2.6を使い続けているので対岸の火事だったわけですが。 1.5.2から1.6へのアップデートで.attr('che…

GoogleAnalyticsのレポートから自分のアクセスを除外する方法

除外する手段はいろいろあるが・・・ カスタムフィルタで除外する対象を指定します。 IPアドレスやブラウザなどいろいろ指定できるものはありますが、どれも自分一人を特定するには向かないものです。なのでcookieを使って自分が使っているブラウザを除外対…

長方形の画像を正方形に切り出してサムネイルとする (画像サイズばらばらの場合&CSSのみで実装)

CSS

2011/05/17 画像タグのみ版追加→CSSだけでサイズ不定画像の中央を正方形に切り抜きサムネイル (かんたん!)長方形の画像の中心部を正方形に切り出してサムネイル表示したいんだけど、縦横比が定まってない画像の場合ってどうやって中心部を切り出したらいい…

「JavaSE Development Kit (JDK) not found」TitaniumのAndroid開発環境でつまづいている人に伝えたいただ一つのこと

「JDK無いって言われたら "< Back"ボタン押せ!」 JDKあるのに無いって言われてインストールできない ↓こんな感じ 環境変数はJAVA_HOMEもPATHもCLASS_PATHも設定したのに・・・ 原因はそんなことではなく http://stackoverflow.com/questions/4382178/androi…