2013-01-01から1年間の記事一覧

PHP の E_RECOVERABLE_ERROR エラーレベル

PHP

PHP Advent Calendar 2013 in Adventar の24日目です。 PHP は set_error_handler で↓のようにエラーをハンドリングできます。

Visual Studio Express 2013 で PHP をステップ実行する

PHP

PHP Advent Calendar 2013 in Adventar の20日目です。 今日は IDE を使って PHP をステップ実行してみたいと思います。 Eclipse PDT? PHPStorm? いいえ、そういうのは使いません。 使うのは↓コレです。PHP のスクリプトではなく PHP そのものをステップ実…

PHP の Windows 版でのみ発生する is_dir の奇妙な現象

PHP

PHP Advent Calendar 2013 in Adventar の16日目です。 下記のコード、Windows で実行するとどうなると思いますか?

PHP の参照のあれ

PHP

PHP の参照のあれ PHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪い - なんたらノート第三期ベータ もっと単純にすると次の結果を比べると判りやすい。

PHP と Grunt で ブラウザのアドオンを使わずに LiveReload する

PHP Advent Calendar 2013 in Adventar の13日目です。 前日は @Mankin_jp さんの PHP 〜5.5の入り口として〜 便利なパスワードハッシュ関数を使おう! でした。 ちなみにまだ 5.4 な人は password-compat を使うといいと思います。私はまだメインが 5.4 な…

~/.ssh/config の IdentityFile に秘密鍵ではなく公開鍵を指定する

SSH でログインするときは user@host とか、あるいは -l オプションとかでアカウント名を指定します。 $ ssh ore@example.com # Logged in as ore $ ssh are@example.com # Logged in as are が、たまに同じアカウント名でも認証に使用された公開鍵で実際の…

CentOS6 で libvirt で LXC を使ってみる

少し前に CentOS6 で LXC を使ってみたので、次は libvirt を絡めて LXC を使ってみます。 CentOS6 で LXC を使ってみる - ngの日記 なお、今回もほとんど参考サイトの写経です。 参考にしたサイト http://wiki.centos.org/HowTos/LXC-on-CentOS6 前提 CentO…

ファイルの更新を監視してコマンドを実行するワンライナー

phpunit を実行させるために Grunt を使いましたが・・・ PHP 開発でも Grunt を使う - ngの日記 まあファイルの更新を監視して phpunit(に限らず任意のコマンド)を実行するだけならワンライナーです。 $ inotifywait -e create,delete,modify,move -mr sr…

PHP 開発でも Grunt を使う

PHP Advent Calendar 2013 in Adventar の3日目です。 前日は @matsubo さんの コピペで出来るComposer導入 でした。Composer、私も使ってます。 Grunt とは Node.js で作られた色々な作業を自動化するためのツールです。 普通は Node.js での開発や js と…

MySQL で sql_mode が Strict なときの ENUM 型

下記の2つの記事を読んで「でも sql_mode が Strict なときに ENUM に Invalid な値? 整数値が 0 である値? を合法的に入れる方法あったっけ?」と思ってやってみたら妙なことに・・・ MySQLにおいて真とされる値を調べた - tagomorisのメモ置き場 メモ:…

CentOS6 で LXC を使ってみる

下記の記事で Docker というものを知って少し気になったのですが、Docker を試してみる前に LXC がどんなものなのか試してみたほうがいいかなーと思ったので、手元の CentOS6 で使ってみました。 コンテナ型仮想化「Docker 0.7」リリース。主要Linuxディスト…

virt-install と Kickstart で KVM に CentOS をインストールする

はじめに virt-install と Kickstart を使って X Window なしで KVM に CentOS をインストールします。 Kickstart 定義ファイル Kickstart 定義ファイルを作成します。 RHEL や CentOS を普通にインストールすると /root/anaconda-ks.cfg に Kickstart 定義…

クロージャーの static 変数はインスタンス変数なのか?

PHP

次のコードを実行すると、

Zend Framework 2 でテストごとにDB接続してコネクションが枯渇する

はじめに この記事 の続きです。 Zend Framework 1 で発生した、テストの実行時にDBのコネクションを使い果たしてしまう問題は Zend Framework 2 でも同じように発生します。 この問題に気づいたのは Zend Framework 2 のチュートリアル で Album モジュール…

Zend Framework 1 でテストごとにDB接続してコネクションが枯渇する

はじめに 最近 Qiita に↓このようなものを投稿しましたが、どちらも Zend Framework 2 を使っていて気づいたものです。 PHPUnit の TestCase のメンバはテストが完了するまで解放されない - Qiita [キータ] PHP - SPLのコンテナクラスで循環参照するとGCで回…

CentOS で GitLab を 5.3 から 6.1 にバージョンアップ

CentOS で GitLab を 5.3 から 6.1 にバージョンアップしたのでそのときの手順を残しておきます。 参考 https://github.com/gitlabhq/gitlabhq/blob/master/doc/update/5.3-to-5.4.md https://github.com/gitlabhq/gitlabhq/blob/master/doc/update/5.4-to-6…

cifs でマウントした先の一部ディレクトリを mount --bind

Windows 上で PHP のコードを書いているプログラマの戯言ですが、非Windows、非PHP でも関係あるかもしれません RHEL 系ディストリだけでしか使えないかもしれません 私は普段 Windows 上でコーティングを行い、そのコードを仮想環境の Linux で動かしていま…

Poderosa で Home/End/Ctrl+→/Ctrl+← を使えるようにする

メインメニューから「オプション → 操作」を開いて、追加キー定義に次の通りに指定します。 Home=0x1b[1~, End=0x1b[4~, Ctrl+Right=0x1b[5C, Ctrl+Left=0x1b[5D 次のキー入力が有効になります。 キー readline のコマンド名 説明 Home beginning-of-line 行…

はてブコメントをニコニコ動画風に表示する Chrome 拡張機能

はじめての拡張機能 ~はてブコメントをニコニコ動画風に表示~ Chrome 拡張機能を作ってみたくなったので練習がてらはてブコメントをニコニコ動画風に表示する拡張機能を作ってみました。 ジョークアプリなので役にはたちません(´・ω・`) インストール 下…

Thunderbirdで自動既読にする技

仕事をしていると「まったく必要ないんだけれど色々なシガラミで受信しなければならないメール」というものがたまにあります。 そういう邪魔なメールを Thunderbird-17.0.6 のメッセージフィルタで上手いこと自動で既読にする方法です。 はじめに 自動既読す…

phpenv を Windows の msysgit で動かす

PHP

phpenv を Windows の msysgit で動かしてみました。 ただし php-build は使わないので PHP そのもののインストールは手動です・・・単にバージョンを切り替えるだけです。 なお、全ての作業は msysgit の bash で行います。 readlink まずは readlink コマ…

MySQL で実行計画によってデッドロックしたりしなかったりするクエリ

わりと珍しそうなデッドロックに遭遇しました。 BEGIN/COMMIT/ROLLBACK などのトランザクション関連のコマンドは使っていない 2接続で SELECT ~ FOR UPDATE だけでデッドロック 外部キー制約やトリガは使っていない 実行計画によってはデッドロックしない…

Zend Framework 2 の ZendDeveloperTools で GitHub API の 403 エラーが表示される

Zend Framework 2.1.5 でデバッグツールバー(ZendDeveloperTools)を入れてみたところ、次のようなエラーが表示されました。 Warning: file_get_contents(https://api.github.com/repos/zendframework/zf2/git/refs/tags/release-): failed to open stream:…

プロキシ環境下で composer でインストール出来なくなった(HTTP/1.0 400 Bad Request)

PHP

なぜか自社の社内から zf2 や phpunit が composer でインストール出来ない・・・少し前まで出来ていたはずなのに $ cat composer.json { "require": { "zendframework/zendframework": ">2.1.3" } } $ php composer.phar install -vvv Downloading composer…

MySQL の `NO_ZERO_DATE` と `NO_ZERO_IN_DATE` で無効な日時を禁止

MySQL は、次のような変な日時を DATETIME に挿入出来てしまいます。 create table tt (dd datetime); insert into tt value (0); /* 0000-00-00 00:00:00 */ insert into tt value (''); /* 0000-00-00 00:00:00 */ insert into tt value ('9999-99-99 99:9…

Poderosa で top コマンドで画面がガタガタに崩れるのをどうにかする

私はデスクトップ機には Windows を使用しているので、ターミナルソフトには Poderosa を使っています。 Poderosa | Free software downloads at SourceForge.net 複数タブが非常に便利なのですが、なぜか top コマンドでタスクの一覧を逐次表示させると表示…

LOCK IN SHARE MODE の使いドコロを間違えてデッドロック

先日、作っていたシステムでデッドロックがわりかし頻繁に発生することが判りました。 RDBMS のデッドロックは必ずしもバグでは無く、無理に対応するよりアプリケーション側でハンドリングしてトランザクションのリトライなどを行った方がいい場合もあると思…

外部キー制約の定義順で DELETE が成功したり失敗したり

2013/04/16 追記 次のようなテーブル定義がありました。 CREATE TABLE t1 ( a INT NOT NULL, PRIMARY KEY (a) ); CREATE TABLE t2 ( a INT NOT NULL, b INT NOT NULL, PRIMARY KEY (a, b) ); CREATE TABLE t3 ( a INT NOT NULL, b INT NOT NULL, c INT NOT N…

GitLab 5.0 を CentOS 6.4 にインストールした

追記 2013/04/08 単に GitLab を動かすだけなら ruby をシステムグローバルにインストールする必要は無いので rvm とか rbenv とか、もしくは /home/git/ruby-1.9.3/ あたりにインストールする方がいいかもしれない。 なんかいろいろ変わったらしいので入れ…

SIGCHLD を SIG_IGN すると mail 関数が false を返す

PHP

以下のコードを実行すると mail 関数が false を返します。