特定の2つのタグが付けられたバグ検索

7章 マルチカラムアトリビュート(複数列属性) より 特定の2つのタグが付けられたバグ検索といった少し複雑な処理も、簡単に記述できます。 BugsテーブルとTagsテーブルが1対多の関係のとき、"printing"と"performance"という2つのタグが付いたバグの検索をど…

交差テーブルを参照するテーブルの外部キー

3章 IDリクワイヤド - 3.5.3 自然キーと複合キーの活用 より 現実問題として、複合主キーがどのようにフレームワークでサポートされているか等については良く知りません。 1つ注意すべき点は、複合主キーを参照する外部キーもまた、列の組み合わせでなければ…

参照テーブルとアプリケーションの値リスト

10章 サーティーワンフレーバー(31のフレーバー) より ENUMのかわりに参照テーブルを使うという話。基本的にはやってみたいと思うアイディアだった。 すると、多くのプログラマーは、アプリケーションコードの側にも値のリストを定義し、手でメンテナンスす…

SQLでfloat型を使うということ

9章 ラウンディングエラー(丸め誤差)より floatを使う場合に精度に注意すべきという点については同意です。 SELECT * FROM Accounts WHERE hourly_rate = 59.95; このため、account_idが123の行hourly_rate列にサイド59.95を割り当てても、リテラル値59.95と…

カスケード更新のパターン

4章 キーレスエントリ(外部キー嫌い)より カスケード更新について考えてみる。 ON UPDATE、ON DELETE句には、RESTRICT, CASCADE, SET NULL, SET DEFAULT, NO ACTIONが指定できる。ただしMySQLにはSET DEFAULTは無い。 CREATE TABLE Bugs ( ... FOREIGN KEY (…

SQLアンチパターンメモ

SQLアンチパターンを読んだのですこしずつ思ったことをメモしていこうと思います。 この本は読んで納得するというよりは、考えるきっかけを与えてくれる本だと思います。長い歴史の中で今になってこういった本が出てきたというのがSQLの不思議な運命を象徴し…

Chef勉強会をUstで見てた

おなかがすいたので手短に。 http://kokucheese.com/event/index/74459/ http://togetter.com/li/460798 chefはググラビリティが低いのでタグなどにはopschefを使おう。ここの日記のタグも直した chef / vagrantでどこまでやるか、Capistranoなどとどう組み…

vimの話に自動字幕をつけたら壮大な話になった

Youtubeに「自動字幕」あるいは「文字起こし」という、動画の音声から自動的に字幕をつけてくれるすごい機能があるというのを知ったので、自分の動画でやってみました。 元動画は2010年のオープンソースカンファレンス北海道でのvimの話です。以下文字起こし…

2012年はこんな年でした

PHPに関しては前のエントリを参照。 JavaScript 某所でJavaScript 「再」入門やUnderscore.jsを題材に勉強会をしました。去年から興味があったknockout.jsに加え、Backbone.jsやAngularJSなどをいじってみました。 イベント Sapporo.js、アジャイルサムライ…

個人的2012年のPHPの話題振り返り

PHP

Symfony2/Silex関連 Create your own framework... on top of the Symfony2 Componentsを読んだ - iakioの日記 Symfony2のControllerResolverを読む - iakioの日記 Symfony2/SilexのControllerResolverを読む2 - iakioの日記 私の今年最初の日記は、Fabien P…

SaCSS vol.40とSapporo.js-2012.12.16にいってきた

12/15, 12/16にそれぞれいってきました。 SaCSS SaCSS 40回特別記念スペシャル vol.40 札幌のウェブ制作を一歩先に!を開催します | THE HAM MEDIA BLOGid:tricknotesの「ブラウザサイド MVC 入門」という発表がありました。 SaCSS vol.40 で「ブラウザサイ…

AngularJSの Dependency Injection

AngularJSのチュートリアルをやったりドキュメントをみたりしている。いわゆるData Binding系のフレームワークで、そのバインドの仕方も興味あるところなんだけど、Testacularで知られるようにテストのしやすさにもずいぶん気を使っているようで、DIの仕組み…

たった数行のコードでひたすらアイドル水着画像をあつめるのをGoutteで書いてみた

PHP

あくまで勉強になると思って、あくまで勉強になると思って、Goutteでやってみました。 たった10行のコードでひたすらアイドル水着画像をあつめる - UT Startup Gym たった3行のコードでひたすらアイドル水着画像をあつめる(Rubyだよ) - maeharinの日記 Gou…

PhoneGapのconfig.xmlとcordova.xml

androidなんてHelloWorld程度しか知りませんが、なんとなくPhoneGapをやってみました。で、ドキュメントのドメインホワイトリストガイドには ホワイトリストのルールは res/xml/cordova.xml で見つけることができ、 要素によって宣言できます。 って書いてあ…

PHPUnitがファイル1つで動くようになったよ!

まだあまり話題になっていないようなので。PHPUnitは以前はPEARでインストールするのが主流でしたが*1、最近ファイル1つをダウンロードするだけで使えるようになりました。http://pear.phpunit.de/get/phpunit-3.7.5.pharこれをダウンロードして実行するだけ…

"Mock Roles, not Objects"をPHPで写経してみた

php

モックによるインターフェイスの発見 - Digital Romanticismを参考にしつつ、「モックをロールせよ(pdf)」をPHPで写経してみました。https://github.com/iakio/mrno-php 最初はPHPUnit_MockObjectを使おうと思っていたけど上手く書けなかったのでMockeryとPh…

EasyPHPでインストールしたPHPをコマンドプロンプトから使う

PHP

今まで知らなかったけどこれいいね。 EasyPHP | Install a local WAMP server : PHP 5 VC9, Apache 2 VC9, MySQL 5, PhpMyAdmin, Xdebug and Modules on Windows XP/Vista/Seven いわゆるWamp environment。気に入ったところは 管理者権限なくてもインストー…

Sapporo.js-2012.08.26にいってきた

Sapporo.js | Sapporo.js-2012.08.26 を開催します今回はarray.slice(), array.sort(), array.splice()について学びました。個人的には、配列をコピーしたい場合にarray.slice()が使えるというのが勉強になりました。 > var a = ['foo', 'bar', 'baz'] undef…

antのmodifiedセレクタ

php

Template for Jenkins Jobs for PHP Projects を試してます。antのbuild.xmlを手書きするのなんて何年ぶりだろう。 <target name="lint" description="Perform syntax check of sourcecode files"> <apply executable="php" failonerror="true"> <arg value="-l" /> <fileset dir="${basedir}/src"> <include name="**/*.php" /> <modified /> </modified></include></fileset></arg></apply></target>

PHPUnitのDBUnit拡張をPHPUnitの外側で使う

php

DBUnitにはXML、YAML、CSVや任意のSQLを使ってDataSetを定義し、それらをINSERT、DELETE、UPDATE、TRUNCATEする機能があります。 第8章 データベースのテスト これらの機能をPHPUnitを使わずに呼び出すこともできます。

Chef-soloでyumリポジトリを追加する(Node.jsのインストール)

前回使った http://community.opscode.com/cookbooks/yum で、鍵やリポジトリの追加もできるので、 を使ってNode.jsをインストールしてみます。 yum_key "RPM-GPG-KEY-tchol" do url "http://nodejs.tchol.org/RPM-GPG-KEY-tchol" action :add end yum_repos…

VagrantとChef-soloについて学んだいくつかのこと

ホストはWindows7、ゲストはCentOSです。 Vagrantのインストール http://vagrantup.com/ からダウンロードします。インストーラーが出来て便利になりましたね。 とりあえず起動 どのBoxがよいのかよくわからないけどとりえあず今はminimal-centos-56使ってい…

PHPUnitのMockが生成するコード

PHP

PHPUnitのMockはコードを生成してeval()しているわけだけれども、PHPUnit_Framework_TestCase#getMockBuilder()の引数に存在しないクラス名を渡すと、そのクラスを生成するコードも出力する。どんなコードを生成しているかはこのように確認できる。

Symfony2/SilexのControllerResolverを読む2

PHP

ところで、Silex\ControllerResolverにはこんなコードがあるんですがこれは何をやってるんでしょうねえ。 protected function doGetArguments(Request $request, $controller, array $parameters) { foreach ($parameters as $param) { if ($param->getClass…

Symfony2のControllerResolverを読む

php

"Create your own framework... on top of the Symfony2 Components"を読んで、Symfony2とSilexに興味がわいてきたので色々実験してみました。とりあえず"Create your own framework..."でやったCalendarをSilexでどう実装するかを考えてみます。Silexといえ…

Create your own framework... on top of the Symfony2 Componentsを読んだ

PHP

2ヶ月前にブックマークした"Create your own framework... on top of the Symfony2 Components"を写経しつつやっと読みました。面白かったです。フレームワークがどのような問題を解決しようとしているか、という話もありますが、それよりSymfonyやSilexをや…

2011年はこんな年でした

ほぼPHP。ちょっとJavaScriptとC#。お遊びでOCamlとCommon Lisp Android買った 実家より遠いところにはいかなった はじめてTDDBCに参加した はじめてえにしテックカフェに参加した 転職した 今年グっときた動画。 アジアカップ2011 問題の暴行シーン ‐ ニコ…

Windowsでphpunit --colors

あるいはコマンドプロンプトでANSIカラーを表示させる方法。Windowsのコマンドプロンプトでphpunit --colorsすると、 こんな感じになります。ゲンナリです。グリーンにならないならテストに対する意欲も半減です。コマンドプロンプトに色を付けるには、SetCo…

TDD Boot Camp 札幌 2.3に参加してきた

TDD Boot Camp 札幌 2.3 : ATND お題はボーリングのスコア計算システム。PHPチームで参加してきました。ドキュメントを見ようとしたら、PHPUnitのサイトに全然接続できなくてどうしようかと思いましたが、githubでドキュメントのソースのxmlを見ながらどうに…

deliciousで幸せになれる呪文

一時期は存続が危ぶまれたhttp://www.delicious.com/ですが、自分用のブックマークというよりは、何か調べごとがある時にはとても重宝しています。 例えばCakePHPについて調べようと思った場合、それとは別の軸のタグも使って検索するようにしています。 htt…