Advent Calendar 22日目 scanner.l と parser.y の差分を解説してみる

この記事は、 PHP5.4 Advent Calendar 2011 (http://atnd.org/events/22473) 22日目です。
そして同時に do_aki Advent Calendar 2011 (http://atnd.org/events/22834) の 22日目でもあります ;-p

PHP5.4 Advent Calendar 2011 の 21日目は [twitter:@kokkekun] さんの http://k-holy.sakura.ne.jp/wordpress/2011/12/21/callable_typehint/ でした。
23日目は [twitter:@Hiraku] さんの http://blog.tojiru.net/article/242054875.html です。

ぺちぺち *1 を作るに当たって、PHP の Parser や Lexer をそれなりに深く読み込んでいたこともあり、PHP5.4 での変更を詳しく追ってみました。

続きを読む

Advent Calendar 21日目 MySQL において1つのクエリでカラムの値を入れ替える方法

たぶん滅多に使うことはないと思うけれども、必要になって調べたことがあったので掲載。

sample table
CREATE TABLE `sample` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `a` int(10) default NULL,
  `b` int(10) default NULL,
  PRIMARY KEY  (`id`)
);
mysql> select * from sample;
+----+------+------+
| id | a    | b    |
+----+------+------+
|  1 |    1 |    2 |
|  2 |    3 |    4 |
|  3 |    5 |    6 |
|  4 |    7 |    8 |
|  5 |    9 |   10 |
+----+------+------+
5 rows in set (0.00 sec)

例えばこんなテーブルがあった時、

カラム a と カラム b の値を入れ替えたい場合は、以下のようなクエリを発行すればいい。

入れ替えクエリ
UPDATE sample SET a = IF((@tmp:=a), b, b), b = @tmp;
実行結果
mysql> UPDATE sample SET a = IF((@tmp:=a), b, b), b = @tmp;
Query OK, 5 rows affected (0.02 sec)
Rows matched: 5  Changed: 5  Warnings: 0

mysql> select * from sample;
+----+------+------+
| id | a    | b    |
+----+------+------+
|  1 |    2 |    1 |
|  2 |    4 |    3 |
|  3 |    6 |    5 |
|  4 |    8 |    7 |
|  5 |   10 |    9 |
+----+------+------+
5 rows in set (0.00 sec)

あれ? このネタの方がカジュアルじゃなかった!?

Advent Calendar 20日目 Jenkins の PHP コードカバレッジ推移グラフ

以前(11月の末頃)書いてて中途半端になってた記事を手直しして放出。

Jenkins での PHP コードカバレッジ推移グラフの表示について。

続きを読む

Advent Calendar 19日目 Brainf*ck on PHP

PHP で Brainf*ck を実装してみました。

以前 KQ 言語 (http://ideone.com/DDWfy) を見たときに、これって、 Brainf*ck の亜型だよなぁと思い、そう言えば Brainf*ck の実装したこと無かったことに気付いたので、さっくりと PHP で書いてみたモノです。
(なので、これ自体書いたのは結構前だったりする)

続きを読む

Advent Calendar 18日目 デンカレライブに行ってきた

デンカレをご存じでしょうか。正式には電気式華憐音楽集団

電気式華憐音楽集団(でんきしきかれんおんがくしゅうだん。通称: デンカ レ)は、作詞・作曲(電気)とボーカル(華憐)中心から成る日本の 音楽ユニット、ヘヴィメタルバンド。

電気式華憐音楽集団 - Wikipedia より

続きを読む