読者です 読者をやめる 読者になる 読者になる

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…

fork()した子プロセスが同じrand()を返す

PHP

第13回 LOCAL PHP部 勉強会でvimの話をしてきました

この手のイベントに参加するの、、、というか仕事以外で人と会うの何ヶ月ぶりだろうというくらい引き込もってましたが。 第13回 LOCAL PHP部 勉強会 : ATND 言い忘れてたことや補足など 去年のOSCでもvimの話をしてるのでこっちも見てね!! http://d.hatena.n…

5年遅れのブラウザリロードをPHPで

PHP

2006年頃、ブラウザリロードブームというのがあった。エディタでファイルを保存したら自動的にブラウザがリロードしたら便利だよねという話。 CSSファイルを保存すると同時にブラウザをリロード - Weblog - hail2u.net あーこれならPHPでも出来そうじゃん。…

mqのrebase

Mercurial Queueを使ってる時に元ソース側を更新しつつ、再度パッチを適用する、というのを上手くやるには、"hg qsave"とか"hg push -m"なんかを使う、なんてのも見かける。 http://mercurial.selenic.com/wiki/MqMergePatches http://mercurial.selenic.com…

InnoDBのネクストキーロックによるデッドロックの例

あまりMySQLのことは自信ないですが。一見問題なさそうに見える操作でデッドロックしてしまうケースがあったので動画にしてみました。 SELECTしてみて「有ればUPDEATE、無ければINSERT」や、あるいは「有れば何もせず、無ければINSERT」を行ないたい場合に、…

mqのパッチを並べかえる

Mercurial Queueのパッチの順序を並べ替えるには、hg qpop -aして.hg/patches/seriesファイルを編集する、みたいな話を聞いたことがあったけど、最近はhg qpush --moveでできるらしい。 # 準備 $ hg init $ hg qinit $ hg qnew patch-1 $ hg qnew patch-2 $ …

2010年はこんな年でした

仕事的には、今年はとてもPHPだせ 前半はわりと色んなイベントに参加してたけど後半は息切れ 2010-01-30 Ruby勉強会@札幌-12 多バイト文字列の検索アルゴリズム 2010-02-13 LDD10Winter C言語でPostgreSQLを拡張する 2010-06-26 OSC2010Hokkaido 今更聞けな…

bashの履歴展開

最初にUNIXを触ったのは10数年前で、そのUNIXがどんなものだったかもシェルが何というものだったかも知らずに使ってたんですが、とにかくその時使っていた環境には、シェルにreadlineはありませんでした。何で当時は、"!"で履歴展開をよく使ってました。今は…

kindle(for PC)の書体いろいろ

Kindle買っちゃおっかなぁと思いながら、Kindle for PCでamazon.comの色んな本のサンプルを眺めてます。で、結構本によって組版が違うんだなぁということに気付きました。オライリーの本には最初の方に「Conventions Used in This Book」、和書だと「この本…

static website generatorっぽいソフトウェアを集めてみた

結構沢山ありますね。実際試したりとか全然してません。下のリストの中ではざっと見た感じ nanoc が有名っぽい。 sphinxもよく使われてますが、こっちは document generator みたいなタグ付けされて、Javadoc や Doxygen の仲間と分類されていることが多いよ…

そもそも最短の関数って何だろう

PHP

string(1) "_" [1]=> string(2) "dl" [2]=> string(2) "pi" [3]=> string(3) "tan" [4]=> …

与えられた引数をそのまま返す最短のビルトイン関数って何だろう

PHP

Rubyの文字列内の式展開みたいなことをPHPでやる方法として、与えられた引数をそのまま返す関数を作っておいて文字列内で可変関数として呼び出すという方法がある。 http://twitter.com/#!/iakio/status/21577621837 http://www.php.net/manual/ja/language.…

PHPってfoo()[0]みたいなこと出来なくて不便だよねって話

PHP

Using square brackets on a returned array : PHP echo array_keys($b)[0];って書けたらいいのに。って話。配列の先頭なら current(array_keys($b)); でいいんじゃない?って話なんだけど、current() が必ず先頭を返すわけでもない。そしたら、reset(array_…

真夏の勉強会ラッシュ中半

後半ってタイトルにしようかと思ったけど、夏はまだ終わりません。 日本PostgreSQLユーザ会 北海道支部 勉強会 日本PostgreSQLユーザ会 北海道支部 勉強会 : ATND 詳細はこちら 日本PostgreSQLユーザ会 北海道支部 勉強会 - iakioの日記 - postgresqlグルー…

真夏の勉強会ラッシュ前半

今年にはいってから結構な量の勉強会に参加させていただいてて、そのたびに何かアウトプットしなきゃと思ってるんだけど全然書けてなくてすいません。8月は勉強会ラッシュです。書かないよりマシ程度に書いておきます。 Ruby勉強会@札幌-15 collect vs mapは…

プログラミングのいろいろとわからないことに全力で答えてみる

ウェビンブログ | 札幌のWebデザイナー・カスタマイズアドバイザー WebbingStudioのよしなし語り わりと直感でプログラムを書いてしまうほうなので、どのように書くのが良いのか、何故そのように書くのかということについて説明するのは結構難しいのですが、…

OSC2010Hokkaidoでの発表「今更聞けないvimの話」の資料と動画を公開しました

ほんと今更ですが、6/26に行なわれたオープンソースカンファレンス2010北海道での発表「今更聞けないvimの話」の資料と動画を公開しました。 発表資料 http://www.youtube.com/watch?v=jJaQz7oZ8xc http://www.youtube.com/watch?v=lB7MORIP9iI 動画はちょっ…

arrayにobjectでアクセスするラッパー

PHP

ここ数ヶ月PHPばかり書いてるのですが、$ary['foo']よりも$obj->fooの方が書きやすいよなぁってのと、未定義のフィールドにアクセスした時にエラーになるようなのが欲しいってのでこんなのを考えてみた。案1 ary =& $ary; } function __get($name) { if (iss…

facebook製PHP拡張XHPが面白い

XHP面白い。単なるcross-site scripting対策以上のものを感じるんだけどうまく魅力を説明できるかどうか。 XHP: A New Way to Write PHP | Facebook FacebookのXHPを導入してみた - おぎろぐはてな XHPはfacebookが作ったPHPのextensionで、PHPのコンパイラ…

Scalaの演算子が顔に見える件

Scalaには、RubyでいうところのEnumerable#injectに相当する/:という演算子があるそうですが、 http://www.scala-lang.org/docu/files/api/scala/Iterable.html#%2F%3A%28B%29 scala> val l = List(1,2,3,4) l: List[Int] = List(1, 2, 3, 4) scala> (0 /: l…

Sapporo.rb-2010.01.26

Sapporo.rb-2010.01.26(Sapporo.rb jpmobile編)にちょっとお邪魔してきました。Rubyに関しては戦力になりそうも無いのでunicode.orgと戯れたりemoji4unicodeのPythonのコードを読むなどしてきました。 Sapporo.rb 2010-01-26 : ATND わすれないうちにemoji4u…

2009年はこんな年でした

お仕事量的には C++ Java PHP イベント的にはLDD-Winter、OSC2009-Do、札幌Ruby会議 pgpool-IIのお手伝い。今年身に付けたスキルを1つと言われれば、PostgreSQLのFE/BEプロトコルはだいぶやりました math-sapporoに参加 jpug-ezoでは好き勝手やってます。来…

$@がターゲットと一致しないケース

久しぶりに地味なエントリを。Makefileのルール内で$@はそのターゲットをあらわします。 TARGET = foo $(TARGET): @echo $(TARGET) @echo $@ 実行: $ make foo fooなんですが、Target-specific Variable Valuesを使うと、$@とターゲットが一致しない場合があ…