Ubuntu 8.10 Serverを使ってみた

CentOSにも飽きてきたのでUbuntuのサーバ版を試してみることにした。 サーバ版は日本語Remixとかはないのでubuntu.comの方から落としてくる。 インストール デスクトップ版とは違ってキャラクタベースのGUIインストーラ。 手動でパーティションを編集すると…

UbuntuサーバにSubversionを入れる

Ubuntuサーバが無事に動いたので、続いてSubversionを入れてみる。 こんな感じの環境を考える。 Apache経由でアクセス出来るようにする。 SSL+Digest認証に限定する。 リポジトリ毎のアクセス認証にも対応する。 Subversionのインストール sudo apt-get inst…

UbuntuサーバにTracを入れる

Subversionに続いてTracを入れてみる。 こんな感じの環境を考える。 インタアクトの日本語版(Trac-ja)にする。 データベースはSQLiteにする。 必要なPythonモジュールもパッケージで入れちゃう。 FastCGIで動かす(Apacheを重くしたくない)。 SSL+Digest認…

ctimeがファイルの作成時刻とは限らない

statで取れる情報の中にはatime, mtime, ctimeがあって、ファイルのアクセス時刻や更新時刻がわかるわけだけど、ctimeって作成時刻だと思ってたら違ったよ! いや、どうやらOSによって異なってくるらしい。Windowsの場合は作成時刻で、Linuxの場合は状態変更…

古いカーネルを削除する(CentOS)

サーバから/bootがいっぱいでカーネルアップデートできない旨のメールが飛んできたので古いカーネルを削除することにした。 /bootの中には古いカーネルが20個ぐらい溜まっていた。 これをひたすら消していくのは面倒くさい。というかあるバージョンを一式消…

Linuxを消してWindows XPを入れ直そうとしてはまった

諸事情によりLinuxデスクトップからWindows XPに戻すことになったんだが、XPのインストールが真っ黒画面のまま動かないという問題に遭遇した。 状況 HDDは1台 ディスク全体をLinuxで使用していた 丸々潰してXPを入れ直すつもり XPのセットアップCD(実際はDE…

mbstring.func_overloadの罠

PHP

mbstringを愛用している日本のPHPerならphp.iniのmbstringセクションで必ずと言っていいほど目にする設定、mbstring.func_overload。 これを有効にするとmail()やstrほげほげ()がmb_send_mail()やmb_strほげほげ()にオーバーロードされて、mail()関数を呼び…

ストリームフィルタで文字コード変換してみる

PHP

PHPでもJavaやその他の言語のようにストリームにフィルタを挟むことが出来るようだ。 これを使うと透過的に圧縮処理を行ったり、Base64変換を行ったり、文字エンコーディング変換を行ったりできるとのこと。 公式マニュアルのストリーム関数をざっと眺めてみ…

ガベージコレクションの種類

今時の言語はだいたいガベージコレクションが備わってるんだけど、デストラクタが使える言語と使えない言語があったり、JavaはGCのタイミングが……などと言われたりするので、GCにはどんな種類があるのか調べてみた。 自分はGCに詳しいわけでもなんでもなくて…

PHPの内部では変数をどのように扱っているのか知る

PHP

PHPが内部的に変数をどのように保持していて、どのように処理しているのかをこれ以上にないぐらいわかりやすく解説している記事がある。 特にリファレンスがどのように扱われているのかが例を挙げながら詳しく書かれているので、(PHPが好きか嫌いかはさてお…

PHPはコマンド実行関数多すぎだろ

PHP

backtick演算子(バッククォートで実行するやつ) shell_exec() exec() passthru() system() pcntl_exec() popen() proc_open() このうちbacktick演算子とshell_exec()は等価らしい。 ……どれ使えばいいんだyp! といつも思うので、実際に試してみた。 shel…

日の出/日の入り時刻が標準機能とか……これだからPHPは(ry

PHP

PHPのマニュアルを眺めてたら日の出とか日の入りの時刻を取得する関数があったんだけど、こんなん誰が使うんだよ(;´Д`) 少なくとも標準で組み込まれてる必要ねーだろうよ。 そもそもどうやって計算してるんだ? どれだけの精度があるんだ? 日の出/日の入り…

コマンドライン引数の処理あれこれ

PHP

PHPといえば「ほーむぺーじ」を作るためにあるような言語なわけだが、何故か自分はコマンドラインアプリを作る機会が多い*1ので、引数のパースについて少し考えてみる。 対象ファイルとスイッチのオンオフ程度なら$argvを回しながら自前でパースしても事足り…

eeeUbuntuにJapanese TeamやMedibuntuのリポジトリを追加する

やはり日本語版特有のパッケージやマルチメディア系のパッケージとかも入れたいのでリポジトリを追加してみる。 Japanese Teamのリポジトリを追加 8.10(Intrepid)の場合 wget -q http://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-ke…

OpenOffice.orgのデフォルトフォントを変更する

会社のPCはLinuxデスクトップなんだけど、お客さんは圧倒的にWindowsが多いので、オフィス文書とそのフォントがアレでコレでどうにもこうにもな状態。 MSゴシック等のフォントがない*1のはもちろん、GNOMEのフォント設定をM+IPA系フォントに設定しているので…

register_globals()が無くなると聞いて

PHP

register_globals.php

Eee PC 901-16GにUSBメモリベースのeeeUbuntuを導入

本体のSSDには一切手を触れずに、USBメモリを挿したときだけeeeUbuntuを使えるようにしてみたので、その手順のまとめ。 最低限次のサイトは読んでおく。またはインストールしながら読む。 http://2.csx.jp/livecdroom/ http://2.csx.jp/livecdroom/eeepc_tip…

Eee PC 901-16Gを買った

今年は田んぼとミカン畑しかないド田舎に帰省することになったので、暇つぶしできるものをってことで流行りのULCPCを買ってしまった。 会社のディスプレイよりも解像度が高いヘビー級のノートPCは持ち運びできんよ……。 11月ぐらいからずっと情報を集めていて…

PHPスクリプトの文字エンコーディング

PHP

php.iniのmbstring.internal_encodingやmb_internal_encoding()はPHPスクリプト自体の文字エンコーディングとは関係ない。 これらはmbstring系の関数が内部で処理するためのエンコーディング指定だ。 なのでinternal_encodingにShift_JISを指定したからとい…

mb_regex_encoding()でJISが指定できない

PHP

少し前に「マルチバイト対応の文字列折り返し処理」というエントリを書いたけど、その中でpreg_split()だとうまくいくのにmb_split()だとうまくいかない処理というのがあった。 で、今日たまたま似たような処理を書いていたんだけど、何故かmb_split()でもう…

UbuntuにDebianパッケージを入れる際の注意

UbuntuにDebianのパッケージをそのまま入れてはいけない。 らしい。 たぶんほとんどはそのまま動くと思うんだけど、ディストリビューションが違う以上は構成も違うわけで、下手すると動かないどころか依存関係をぶっ壊してシステムオワタ\(^o^)/になるかも…

PostgreSQLで文字型カラムから数値型カラムへ変更する

DB

今までVARCHARで持っていたデータを、数値しか入れないってことでINTEGER型に変えることになったんだけど、ALTER TABLEがうまくいかなくてプチハマリ。 ALTER TABLE foo ALTER COLUMN bar TYPE INTEGER; 何の考えも無しにやってみたら案の定エラーになった。…

UbuntuでVMware入れるときのgccバージョン不一致の件

少し前にVMware-serverのバージョンが1.0.8になったのでアップデートしようと思ったら、vmware-install.plの途中で「カーネルコンパイルに使用されたgccのバージョンとインストールされてるgccのバージョンが違うよ」と言われてインストールできなかった(強…

新・はてなブックマークのブックマークレット

etc

ブクマしようと思ったら、新しいブックマークレットがリリースされました!みたいな表示が出てたので入れ替えてみたら、ブクマ画面がページ内にインラインで表示されて格好よくなった! んだけど、どうやら対象のページにcreateElementでscriptタグを生成し…

ArrayObjectで指定できるフラグ

PHP

SPLのArrayObjectはコンストラクタの第二引数やsetFlags()でフラグを指定できるのだが、これの意味がよく分からなかったので調べてみた……けどやっぱりよくわからなかったので実際に試してみた。 コンストラクタの説明を見ると「setFlags()を見ろ」と書いてあ…

マルチバイト対応の文字列折り返し処理

PHP

一行n文字で自動的に折り返しする処理が必要になったのでその辺から拾って済ませようと思ったら、マルチバイト文字をきちんと処理できないものばかりで困った。特に半角カナとか記号が鬼門。 というわけで仕方なく自分で作った。 業務で必要なものだったから…

parse_ini_file()は定数の影響を受ける罠

PHP

PHP: parse_ini_file - Manual定数も ini ファイル上でパースされます。 そのため、parse_ini_file() をコールする前に ini ファイル上の値として定数を定義した場合、返り値に統合されます。 ini ファイル上の値だけが評価されます。(from http://jp.php.n…

SPLでイテレータを使ってみる

PHP

PHPにはSPL(Standard PHP Library)という便利……というほどには充実してないライブラリがあるんだけど、いまいち知名度が低いようで、あまり使ってるのを見たことがない。標準で組み込まれてるのに。 ちなみにC言語からプログラムを覚えた身としては、どうし…

続・libx11をアップデートしたらCompizが激重&不安定になった

例の件について、Ubuntu日本語フォーラムを見に行くとこんなことが書いてあった。 Ubuntu日本語フォーラム / Xlib11をインストールしたらCompizの動作がカクカクにNVIDIAの特定のドライバを使っていると(さらに特定のアプリケーションを 動作させていると、…

libx11をアップデートしたらCompizが激重&不安定になった

昨日Ubuntuのアップデートを行ったらlibx11が新しくなったようなんだが、それと同時にCompizの2D描画がめちゃくちゃ重くなって不安定になった。 もっさりしてイライラするとかいうレベルじゃなくて、引っかかるような感じで描画が止まったり乱れたりすること…