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

良いお年を!

今年ももう終わりですね。なんとなくこの一年を振り返ってみます。 全体的なこと 今年の出来事で一番大きかったことは @ngyuki ←このアカウントで本格的に Twitter 始めたことですかね。後 GitHub とか Qiita とか QA@IT とか。 東京に来てPHPやRDBMS界隈の…

Git. remote HEAD is ambiguous, may be one of the following

git

git remote show origin でタイトルのようなメッセージが出てきて何なのか気になったのでメモ。 Git. Remote HEAD is ambiguous - Stack Overflow。 リモートの master と development が同じコミットを指しているので「リモートの HEAD がどちらなのかを特…

FreeNAS 8.2.0 の init: getty repeating too quickly on port /dev/ttyv0, sleeping 30 secs

困った FreeNAS を 8.2.0 にアップデートしたところ、ログに次のようなメッセージが延々と繰り返し表示されるようになりました(>_<) Dec 4 09:30:51 freenas init: getty repeating too quickly on port /dev/ttyv0, sleeping 30 secs 恐らく・・・ (init) g…

PHP 5.3.1 以前では fclose で明示的にアンロックされてしまう

PHP

この記事「PHP5.3.2以降ではfcloseで自動的にアンロックされない - 徳丸浩のtumblr」で PHP 5.3.2 から fclose で自動的に flock が呼ばれなくなったというのを知り衝撃を受けました。 衝撃だったのは PHP 5.3.1 以前は fclose で明示的に flock されている …

CentOS5 の KVM ゲストを VMware ゲストに移行

VMware vCenter Converter で簡単に出来るかと思ったのですが上手くいきませんでした (P2V はできるけれど V2V は出来ないのでしょうか? あるいはディスクが virtio だったからなのかもしれません)。 しかたがないので手作業で試行錯誤して頑張りました!…

CentOS6 の KickStart とシリアルコンソールのエコーバック

「CentOS6 + KVM(libvirt)」なゲストの KickStart で、セットアップ中のメッセージをシリアルコンソール(virsh console)に流しつつ、セットアップ後のカーネルパラメータでもシリアルコンソールを有効にするために下記のように指定してみたところ、セットア…

Shift_JIS なのに丸数字が使われた XML を SimpleXML で読み込む

PHP

稀にある encoding="Shift_JIS" であるにも関わらず丸数字が使われている XML は、 SimpleXML で読むと次のようなエラーになり読むことが出来ません(DOM も libxml に基づくので同様です)。 simplexml_load_file(): ~~~ parser error : switching encod…

はてなブログ1周年おめでとう!

はてなブログ1周年おめでとう! id:hatenablog 私にとってはつい昨日の出来事だが、君たちにとっては多分1年前の出来事だ

LiveReload を Windows7 + FireFox + プロキシ環境 で使用する

なにかの勉強会で LiveReload というディレクトリを監視してファイルに変更があるとブラウザを自動的にリロードするというステキアプリの話を知り、Mac 専用とのことで ksg と思ってたのですが・・・ Downloads - LiveReload Windows でも大丈夫そうじゃあな…

プライベートな Composer リポジトリを作成する

Git

Composer のプライベートなリポジトリがあればいいなーと思って Composer のサイトを眺めていたら、思っていたより簡単にできました。ちょっとした社内ライブラリとかの配布を管理するのに便利かもしれません。 ディレクトリ構成 一連の作業をひと通り終える…

CentOS6 で remi から php や mysql をインストールするための yum の設定

注:これは Qiita に投稿した内容と同じです epel リポジトリを追加します(remi-release-6 が依存している)。 rpm --import http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/RPM-GPG-KEY-EPEL-6 rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/d…

ブログ引っ越ししてきました!

ブログ引っ越ししてきました! http://d.hatena.ne.jp/ngyuki/

カスタムエラーハンドラ(set_error_handler)から例外を投げるとスコープ内の変数が例外から参照される

PHP

前回と同じような話ですが、カスタムエラーハンドラ(set_error_handler)から例外を投げると、関数やメソッドの引数に使っていないただのローカル変数でも、例外から参照されてしまいます。 サンプルコード _str = $str; echo __METHOD__ . " $this->_str\n…

オブジェクトが例外の呼び出し履歴に参照されてデストラクタが呼ばれない

PHP

PHP でリソース開放などの後処理をデストラクタに行わせるのは無理がありそうなので finally が早く使えるようになるといいなーとは常々思っていましたが、また新たに次のような期待に反してデストラクタが呼ばれないケースが見つかりました。 サンプルコー…

KVM のゲストOSのルートパーティションの拡張を行う

KVM で qcow2 形式のイメージをルートパーティションに使っているゲストで、パーティションの拡張をやったのでメモっておきます。 構成 ホスト・ゲストともに CentOS 6.3 ゲストのディスクイメージは qcow2 形式の 1 台のみ。全領域がルートパーティション *…

PHP のソケット通信で1つのホストに複数アドレスが返る場合の優先されるアドレス

PHP

PHP の stream_socket_client() でリモートサーバと通信する処理を作っていたときに、引数で指定しているホスト名に対して複数のIPアドレスを返すように DNS サーバで設定していたにも関わらず特定の宛先に常に接続されていたので、その原因を調べてみました…

PHPでインスタンスを作成するメソッドをチェーンした場合のオブジェクトの寿命

PHP

以下のコードを実行するとどのような結果になるでしょうか? _id = $id; echo "ctor $this->_id\n"; } public function __destruct() { echo "dtor $this->_id\n"; } public function func($id) { return new self($id); } public static function create($i…

Git でサーバに認証したユーザと Author が同じであることを強制するフックスクリプト

Git

Git は Subversion とは異なり、リモートサーバに認証したユーザと Author や Committer の名前が一致している必要が無いため、認証さえ通れば任意の名前でプッシュすることが出来ます(任意の Author のコミットをプッシュ出来る、の方が正しいか・・・)。…

git clone したときに出来る origin/HEAD というリモートブランチ

Git

git clone でリポジトリを複製したときに、次のように origin/HEAD というリモートブランチが見えます。 $ git branch -r origin/HEAD -> origin/master origin/master これは clone した後に作業ディレクトリにチェックアウトするブランチを示したもののよ…

PHP 5.4 は クロージャーに $this が暗黙的に束縛されるため 5.3 と動作が異なってしまうことがある

PHP

PHP 5.4 ではクラスのインスタンスメソッド内で定義したクロージャーには $this が暗黙的に束縛されてしまうため、次のコードは 5.3 と 5.4 で動作が異なります。

Windows で PHPUnit と vfsStream と phpDocumentor2 を入れる

PHP

(2012/09/03 追記) phpDocumentor2 も入れました。 PHPUnit で vfsStream というものを使うと ファイルシステムのモック なんてことが出来るらしいので入れてみました。 最初に このページ の通りにインストールしようとしましたが上手くいきませんでした。…

三項演算子より if の方が良いこともある

PHP

[PHP] 三項演算子より if の方が良いこともある 追記 2013-06-24PHP は別の変数でもメモリ上は同じ実体を指していたりすることがあるため*1、状況によっては三項演算子より if で分岐した方がいいよー、という話。下記の string_cast_? は単に与えられた引数…

PHPの数字文字列の比較は16進数でも有効

PHP

PHPの数字だけで構成された文字列の比較が暗黙のうちに整数の比較になる話は有名ですが、16進数の文字列でもそうなります。

ldaps のサーバ証明書をブラウザや openssl コマンドで取得する

Redmine の LDAP 認証で ActiveDirectory のアカウントで認証するときのドメインコントローラーとの通信を ldaps にしようとしていたときに、ドメインコントローラーのサーバ証明書を確認したかったのですが、最初はわざわざリモートデスクトップでドメイン…

CentOS6 に MySQL 5.6 を RPM でインストール

MySQL 5.6 を試したくなったので CentOS6 に RPM でインストールしようとしたことろ、少し面倒なことになっていました。 RPM をダウンロードしてインストール 「MySQL :: Download MySQL Community Server」から RPM をダウンロードします。 wget http://dev…

グループ内の上位 N 件を抽出する SQL はストアドでいいんじゃない?

以前書いた「グループ内の上位 N 件を抽出する SQL がうまく書けない(或いは SQL を show status で解析) - ngの日記」ですが、アプリケーション側でループで回す・・・というかストアドプロシージャでやればいいのでは? と思ったのでやってみました。Ora…

CentOS で dhclient で DDNS 登録

CentOS で DHCP を使っているときに DDNS でホスト名の登録も行う方法が、ググってもさくっとは判らなかったのでその方法をメモしておきます。 DNS サーバの設定 DDNS を有効にしておきます。 /etc/named.conf : zone "example.net" { type master; file "zo…

グループ内の上位 N 件を抽出する SQL がうまく書けない

この記事には続きがあります グループ内の上位 N 件を抽出する SQL はストアドでいいんじゃない? - ngの日記 MySQL で簡単に出来そうで出来ない SQL に「グループ内の上位 N 件を抽出する SQL」があります。年に 1 回ぐらいこの問題について考え、毎回同じ…

mysql コマンドのタブでの入力補完を無効にする

普段 SQL を書くときは基本的にタブ文字は使っていないのですが、たまに SQL にタブ文字が含まれていると mysql コマンドのコンソールに貼りつけたときに、タブ文字が入力されなくてうまく貼り付けられないことがあります(「AB」→「AB」のように文字が繋が…

PHP 5.3.15 の CVE-2012-2688 と bug #62432

PHP

PHP の 5.4.5 と 5.3.15 がリリースされましたが、幾つか気になる変更点について内容を確認してみました。 Fixed potential overflow in _php_stream_scandir, CVE-2012-2688 修正差分は次の通りです。PHP Git Repositories - php-src.git/blobdiff - main/s…