2008-01-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のバージョンが違うよ」と言われてインストールできなかった(強…
ブクマしようと思ったら、新しいブックマークレットがリリースされました!みたいな表示が出てたので入れ替えてみたら、ブクマ画面がページ内にインラインで表示されて格好よくなった! んだけど、どうやら対象のページにcreateElementでscriptタグを生成し…
SPLのArrayObjectはコンストラクタの第二引数やsetFlags()でフラグを指定できるのだが、これの意味がよく分からなかったので調べてみた……けどやっぱりよくわからなかったので実際に試してみた。 コンストラクタの説明を見ると「setFlags()を見ろ」と書いてあ…
一行n文字で自動的に折り返しする処理が必要になったのでその辺から拾って済ませようと思ったら、マルチバイト文字をきちんと処理できないものばかりで困った。特に半角カナとか記号が鬼門。 というわけで仕方なく自分で作った。 業務で必要なものだったから…
PHP: parse_ini_file - Manual定数も ini ファイル上でパースされます。 そのため、parse_ini_file() をコールする前に ini ファイル上の値として定数を定義した場合、返り値に統合されます。 ini ファイル上の値だけが評価されます。(from http://jp.php.n…
PHPにはSPL(Standard PHP Library)という便利……というほどには充実してないライブラリがあるんだけど、いまいち知名度が低いようで、あまり使ってるのを見たことがない。標準で組み込まれてるのに。 ちなみにC言語からプログラムを覚えた身としては、どうし…
例の件について、Ubuntu日本語フォーラムを見に行くとこんなことが書いてあった。 Ubuntu日本語フォーラム / Xlib11をインストールしたらCompizの動作がカクカクにNVIDIAの特定のドライバを使っていると(さらに特定のアプリケーションを 動作させていると、…
昨日Ubuntuのアップデートを行ったらlibx11が新しくなったようなんだが、それと同時にCompizの2D描画がめちゃくちゃ重くなって不安定になった。 もっさりしてイライラするとかいうレベルじゃなくて、引っかかるような感じで描画が止まったり乱れたりすること…
http://kjirou.sakura.ne.jp/mt/2008/10/python_unicode.html例えば、ユニコード型文字列の内、漢字のみ("一"〜"龥")をマッチさせる場合 l = re.findall(u"[\u4e00-\u9fa5]+", "ひらがな漢字カタカナascii".decode("utf-8")) print l[0].encode("utf-8") #…
注意:以下の内容はUbuntu Desktop版での話です。Server版はまた別です。 ポートは塞がれているというよりは開けてないだけ 「Ubuntuでは標準で全てのポートが閉じているのでファイアウォールの設定は不要」などという文章をよく見かけるのだが、これはもの…
PostgreSQLで日本語が格納されているカラムをORDER BYでソートさせたら明らかにおかしい順序で返ってきた。 test=# select name from test_table order by name asc; name - 試験 てすと テスト てすとです 試験データ テストデータ test (7 rows) こんな感…
sshにはX11 Forwardingというオプションがあって、これを使うと比較的安全にリモートのアプリケーションを手元で実行できる。いや実行してるのはリモート側だけど。 localhost $ ssh -X remotehost といった感じで-XをつけてやるとX11 Forwardingが有効にな…
すっかりUbuntu生活にハマってしまったので、3年前に買ったLaVie G type RXにもUbuntuを入れてみた。 120GBの2.5インチHDDに入れ替えて、Windows XPとUbuntuのデュアルブート環境を構築。 手順はこんな感じ。 LaVieの再セットアップディスクを使ってXPをイン…
ハマったのでメモ。 Shift+Alt+Tabで逆回りできない UbuntuでもWindowsのようにAlt+Tabでウィンドウが切り替えられるわけだが、何故かShift+Alt+Tabで逆回りに選択することができない現象に出くわした。会社のPCではちゃんと逆回りで動いている。 Compizの場…