preg_replaceでutf8文字列からコントロール文字を削除する。
Unicode文字プロパティなるものを使うと、コントロール文字は「\p{Cc}」と表記できる。
最初、
$ret = preg_replace('@\p{Cc}@', '', $utf8string);
とやっていたのだけど、どうもうまく動いていない。
結論、
$ret = preg_replace('@\p{Cc}@u', '', $utf8string);
PHP: Unicode 文字プロパティ - Manual に「PHP 4.4.0 および 5.1.0 以降、UTF-8 モード を設定した場合に」と書いてあったのを見逃してた。。。
Iceweasel で URL を / 終わりで指定すると2回アクセスされる?
アクセスの都度、DBにレコードをInsertする index.php を書いたのだけど、1アクセスにつき2レコードがInsertされるので悩んだ。
調べてみると・・・
Iceweasel で http://hoge.com/fuga/ にアクセスすると、サーバ側では、get fuga/index.php が 連続で2回呼ばれてた。
該当バージョンは・・・
$ dpkg -l | grep iceweasel ii iceweasel 3.0.6-3 lightweight web browser based on Mozilla ii iceweasel-gnome-support 3.0.6-3 Support for GNOME in Iceweasel ii iceweasel-l10n-ja 1:3.0.6+debian-1 Japanese language package for Iceweasel
念のため、別ブラウザ(Epiphany/2.22)も調べたが再現せず。従って Iceweasel の問題のようだ。(apache2側の問題ではなさそう)
一次資料見ればいいじゃない。
元の報道番組見たわけではないが、記事書いた人に踊らされている。
何はともあれ。一次資料見ればいいじゃない。と思った。
はてなブックマーク - 民主党「渋滞しそうな高速道路は無料化しない。選挙前は言いにくかった」|デジタルマガジン
30.高速道路を原則無料化して、 地域経済の活性化を図る 【政策目的】 ○流通コストの引き下げを通じて、生活 コストを引き下げる。 ○産地から消費地へ商品を運びやすいよ うにして、地域経済を活性化する。 ○高速道路の出入り口を増設し、今ある 社会資本を有効に使って、渋滞などの 経済的損失を軽減する。 【具体策】 ○割引率の順次拡大などの社会実験を実 施し、その影響を確認しながら、高速 道路を無料化していく。 【所要額】 1.3 兆円程度
ところで、マニフェストだけど、民主と自民でアプローチの仕方がまったく違うよね。
まだ見たこと無い人は、さっと見てみるといいよ。
提案書として考えると、民主党のがいいのかね? だがプレゼンうけするのは、自民党っぽい気もする。
民主党マニフェスト
自由民主党マニフェスト
EccPC701SD-X 最適化&プチフリ対策
最適化はそこそこやってたんだけど、久々に使ってみると、SSDのプチフリが強烈すぎて、もうね。使えないレベル。こんなのだったっけ?調べてみると、701SD-Xは使用時間に比例してどんどんひどくなるらしい。地雷踏んじゃったかな。で、結論としては、使えるレベルに復旧できた。OSレベルの設定見直しは、購入時点でやっていたので、その他の対策を実施した。
FlashFire導入
EWFとかいうのは失敗したときのリスクが大きそうだったので導入せず。代替でFlashFireを見つけた。これお勧め。
FlashFire: SSD Accelerator
メモリ増設は実施せず。
これまでの対策で使えるレベルに復帰したので、標準の512Mのまま使ってます。
firefoxのキャッシュ先をramディスクに変更。
そもそもメモリ512Mしかないので、それをramディスクに割り当てるのはもったいないのですが、キャッシュの更新って頻繁にあるでしょうから、あえて割り当ててみた。たったの32Kですが。。。
ERAM for WindowsNT3.51/4.0/2000/XP Ver 2.20 ドライバを使用
firefoxのキャッシュ先をRAMDiskへ変更
仮想メモリを0にしてたら、アプリがたまに強制終了する。
そんなにたくさんのアプリ立ち上げて無いんだがな。まぁ、512Mしかないから。。。SDカードスロットにあまってた1Gを刺して、これを仮想メモリ用に割り当てて使ってます。
andLinuxインストールした。
普通に使えてます。(そもそも、これをやりたかった)
debian lenny に nilfs2 をインスールする。
lenny(stable)のパッケージを使う。
公式 NILFS Download にOSに応じたインストール方法がまとめられています。要約すると、次の通りカーネルに応じたmoduleと、toolのパッケージをインストールするだけです。
aptitude install nilfs2-modules-2.6.26-2-686 aptitude install nilfs2-tools
簡単ですね。しかしながら、lenny(stable)でインストール可能な nilfs2 は 2.0.6 と古いです。
新しいのを使いたいので、stable以外を探してみます。
なお、stable以外からのパッケージの借り方は debian lenny(stable) で stable 以外のパッケージを使う。 - gounx2の日記 を参照ください。
lenny-backports のパッケージを使う。
nilfs2は kernel 2.6.30 からカーネル本体に含まれています。これを backports からインストールしてみます。
まず、2.6.30があるか確認
$ aptitude search linux-image-2.6.30 p linux-image-2.6.30-bpo.1-486 - Linux 2.6.30 image on x86 p linux-image-2.6.30-bpo.1-686 - Linux 2.6.30 image on PPro/Celeron/PII/PIII/P4 p linux-image-2.6.30-bpo.1-686-bigmem - Linux 2.6.30 image on PPro/Celeron/PII/PIII/P4 p linux-image-2.6.30-bpo.1-amd64 - Linux 2.6.30 image on AMD64
念のため、出所を確認してからインストール&リブート
$ apt-cache policy linux-image-2.6.30-bpo.1-686 linux-image-2.6.30-bpo.1-686: インストールされているバージョン: (なし) 候補: 2.6.30-5~bpo50+1 バージョンテーブル: 2.6.30-5~bpo50+1 0 1 http://www.backports.org lenny-backports/main Packages $ sudo aptitude install linux-image-2.6.30-bpo.1-686 : $ sudo reboot : $ uname -a Linux debianlenny 2.6.30-bpo.1-686 #1 SMP Wed Aug 5 18:28:33 UTC 2009 i686 GNU/Linux
nilfs2のパーティションをマウント
$ sudo mount -t nilfs2 /dev/sdb1 /nilfs mount.nilfs2: WARNING! - The NILFS on-disk format may change at any time. mount.nilfs2: WARNING! - Do not place critical data on a NILFS filesystem.
警告出すようになったんですね。(stable のパッケージでは警告でませんでした)
自己責任でってことで。
次にツールを入れようとしたんですが、残念ながら
$ aptitude search nilfs2-tool i nilfs2-tools - Continuous Snapshotting Log-structured Filesystem $ $ apt-cache policy nilfs2-tools nilfs2-tools: インストールされているバージョン: 2.0.6-1 候補: 2.0.6-1 バージョンテーブル: 2.0.14-2 0 200 http://ftp.jp.debian.org squeeze/main Packages *** 2.0.6-1 0 500 http://ftp.jp.debian.org lenny/main Packages 100 /var/lib/dpkg/status
lenny-backports には nilfs2-tools が存在しませんでした。仕方がないので、testing の 2.0.14 を使うことにします。
(kernel 2.6.30 上で、2.0.6のツールを使うとエラーになります。ioctlまわりのI/Fが変ったようです)
仕方がないので、squeeze(testing) から nilfs2-tools をインストールする。
goun@debianlenny:~$ sudo aptitude install nilfs2-tools/testing パッケージリストを読み込んでいます... 完了 : 以下のパッケージが削除されます: module-assistant{u} nilfs2-source{u} 以下のパッケージが更新されます: nilfs2-tools 更新: 1 個、新規インストール: 0 個、削除: 2 個、保留: 6 個。 102kB のアーカイブを取得する必要があります。展開後に 684kB のディスク領域が解放されます。 先に進みますか? [Y/n/?] y
あれっ、2パッケージ削除されるみたい。
まぁ、いっか。。。
一応コマンド動いてるようです。
debian lenny(stable) で stable 以外のパッケージを使う。
基本 lenny(stable) を使っているが一部パッケージを stable 以外から持ってくる方法を書きます。
注意点
/etc/apt/sources.listの設定
(使わないものはコメントアウトしておいた方がよい)
# lenny(stable) deb http://ftp.jp.debian.org/debian/ lenny main non-free deb-src http://ftp.jp.debian.org/debian/ lenny main non-free deb http://security.debian.org/ lenny/updates main non-free deb-src http://security.debian.org/ lenny/updates main non-free deb http://volatile.debian.org/debian-volatile/ lenny/volatile main deb-src http://volatile.debian.org/debian-volatile/ lenny/volatile main # lenny-backports deb http://www.backports.org/debian lenny-backports main contrib non-free deb-src http://www.backports.org/debian lenny-backports main contrib non-free # squeeze(testing) deb http://ftp.jp.debian.org/debian/ testing main non-free deb-src http://ftp.jp.debian.org/debian/ testing main non-free # sid(unstable) deb http://ftp.jp.debian.org/debian/ unstable main non-free deb-src http://ftp.jp.debian.org/debian/ unstable main non-free
lenny-backports用 公開鍵インストール
updateすると次のように公開鍵が無いと言われます。
$ sudo aptitude update : 取得:16 http://security.debian.org lenny/updates/main Sources [47.2kB] 発見 http://security.debian.org lenny/updates/non-free Sources 583kB を 3s 秒でダウンロードしました (156kB/s) パッケージリストを読み込んでいます... 完了 W: GPG error: http://www.backports.org lenny-backports Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY EA8E8B2116BA136C W: これらの問題を解決するためには apt-get update を実行する必要があるかもしれません
公開鍵をインストールしてから再度updateします。
$ sudo aptitude install debian-backports-keyring $ sudo aptitude update
設定ミスしていないか念のため確認
設定を誤るとupgradeでtestingやsid環境へ移行してしまうかもしれません。upgrade を -s オプションを付けて確認します。
$ sudo aptitude -s safe-upgrade
インストールのミス防止の為に。
1.情報を最新にしておく。
aptitude update
2.インストールしたいパッケージの使用可能なバージョン等を確認する。
apt-cache policy パッケージ名
3.明示的にアーカイブ名(stable,lenny-backports,testing,unstableなど)も指定する。
(さらに慎重にするなら -s オプションでテストしておく)
aptitude install パッケージ名/アーカイブ名
例えば、libapache2-svn をインストールしたいとき。まず apt-cache policy で使用可能なバージョンを調べる。
$ apt-cache policy libapache2-svn libapache2-svn: インストールされているバージョン: (なし) 候補: 1.5.1dfsg1-4 バージョンテーブル: 1.6.4dfsg-1 0 90 http://ftp.jp.debian.org unstable/main Packages 1.6.3dfsg-1 0 100 http://ftp.jp.debian.org testing/main Packages 1.5.1dfsg1-4 0 500 http://security.debian.org lenny/updates/main Packages 1.5.1dfsg1-2 0 500 http://ftp.jp.debian.org lenny/main Packages
以上より、アーカイブ名を指定すれば希望のバージョンをインストールできる。
aptitude install libapache2-svn/unstable -- 1.6.4dfsg-1 をインストール aptitude install libapache2-svn/testing -- 1.6.3dfsg-1 をインストール aptitude install libapache2-svn/stable -- 1.5.1dfsg1-4 をインストール
アップグレードのミス防止の為に。
1.情報を最新にしておく。
aptitude update
2.アップグレードされるパッケージを確認
apt-show-versions -u
例
$ apt-show-versions -u libmagick++10/lenny upgradeable from 7:6.3.7.9.dfsg2-1~lenny1 to 7:6.3.7.9.dfsg2-1~lenny3 libmagick10/lenny upgradeable from 7:6.3.7.9.dfsg2-1~lenny1 to 7:6.3.7.9.dfsg2-1~lenny3 libruby1.8/lenny upgradeable from 1.8.7.72-3 to 1.8.7.72-3lenny1 libxml2/lenny upgradeable from 2.6.32.dfsg-5 to 2.6.32.dfsg-5+lenny1 libxml2-utils/lenny upgradeable from 2.6.32.dfsg-5 to 2.6.32.dfsg-5+lenny1 python-libxml2/lenny upgradeable from 2.6.32.dfsg-5 to 2.6.32.dfsg-5+lenny1
3.アップグレード
aptitude safe-upgrade aptitude full-upgrade -- 不要パッケージの削除も行う。