2008-12-01から1ヶ月間の記事一覧
mbstringを愛用している日本のPHPerならphp.iniのmbstringセクションで必ずと言っていいほど目にする設定、mbstring.func_overload。 これを有効にするとmail()やstrほげほげ()がmb_send_mail()やmb_strほげほげ()にオーバーロードされて、mail()関数を呼び…
PHPでもJavaやその他の言語のようにストリームにフィルタを挟むことが出来るようだ。 これを使うと透過的に圧縮処理を行ったり、Base64変換を行ったり、文字エンコーディング変換を行ったりできるとのこと。 公式マニュアルのストリーム関数をざっと眺めてみ…
今時の言語はだいたいガベージコレクションが備わってるんだけど、デストラクタが使える言語と使えない言語があったり、JavaはGCのタイミングが……などと言われたりするので、GCにはどんな種類があるのか調べてみた。 自分はGCに詳しいわけでもなんでもなくて…
PHPが内部的に変数をどのように保持していて、どのように処理しているのかをこれ以上にないぐらいわかりやすく解説している記事がある。 特にリファレンスがどのように扱われているのかが例を挙げながら詳しく書かれているので、(PHPが好きか嫌いかはさてお…
backtick演算子(バッククォートで実行するやつ) shell_exec() exec() passthru() system() pcntl_exec() popen() proc_open() このうちbacktick演算子とshell_exec()は等価らしい。 ……どれ使えばいいんだyp! といつも思うので、実際に試してみた。 shel…
PHPのマニュアルを眺めてたら日の出とか日の入りの時刻を取得する関数があったんだけど、こんなん誰が使うんだよ(;´Д`) 少なくとも標準で組み込まれてる必要ねーだろうよ。 そもそもどうやって計算してるんだ? どれだけの精度があるんだ? 日の出/日の入り…
PHPといえば「ほーむぺーじ」を作るためにあるような言語なわけだが、何故か自分はコマンドラインアプリを作る機会が多い*1ので、引数のパースについて少し考えてみる。 対象ファイルとスイッチのオンオフ程度なら$argvを回しながら自前でパースしても事足り…
やはり日本語版特有のパッケージやマルチメディア系のパッケージとかも入れたいのでリポジトリを追加してみる。 Japanese Teamのリポジトリを追加 8.10(Intrepid)の場合 wget -q http://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-ke…
会社のPCはLinuxデスクトップなんだけど、お客さんは圧倒的にWindowsが多いので、オフィス文書とそのフォントがアレでコレでどうにもこうにもな状態。 MSゴシック等のフォントがない*1のはもちろん、GNOMEのフォント設定をM+IPA系フォントに設定しているので…
register_globals.php
本体のSSDには一切手を触れずに、USBメモリを挿したときだけeeeUbuntuを使えるようにしてみたので、その手順のまとめ。 最低限次のサイトは読んでおく。またはインストールしながら読む。 http://2.csx.jp/livecdroom/ http://2.csx.jp/livecdroom/eeepc_tip…
今年は田んぼとミカン畑しかないド田舎に帰省することになったので、暇つぶしできるものをってことで流行りのULCPCを買ってしまった。 会社のディスプレイよりも解像度が高いヘビー級のノートPCは持ち運びできんよ……。 11月ぐらいからずっと情報を集めていて…
php.iniのmbstring.internal_encodingやmb_internal_encoding()はPHPスクリプト自体の文字エンコーディングとは関係ない。 これらはmbstring系の関数が内部で処理するためのエンコーディング指定だ。 なのでinternal_encodingにShift_JISを指定したからとい…
少し前に「マルチバイト対応の文字列折り返し処理」というエントリを書いたけど、その中でpreg_split()だとうまくいくのにmb_split()だとうまくいかない処理というのがあった。 で、今日たまたま似たような処理を書いていたんだけど、何故かmb_split()でもう…
UbuntuにDebianのパッケージをそのまま入れてはいけない。 らしい。 たぶんほとんどはそのまま動くと思うんだけど、ディストリビューションが違う以上は構成も違うわけで、下手すると動かないどころか依存関係をぶっ壊してシステムオワタ\(^o^)/になるかも…
今までVARCHARで持っていたデータを、数値しか入れないってことでINTEGER型に変えることになったんだけど、ALTER TABLEがうまくいかなくてプチハマリ。 ALTER TABLE foo ALTER COLUMN bar TYPE INTEGER; 何の考えも無しにやってみたら案の定エラーになった。…
少し前にVMware-serverのバージョンが1.0.8になったのでアップデートしようと思ったら、vmware-install.plの途中で「カーネルコンパイルに使用されたgccのバージョンとインストールされてるgccのバージョンが違うよ」と言われてインストールできなかった(強…