毎回設定するのでメモ。
1. /boot/grub/grub.conf にカーネルパラメータ追加
nmi_watchdog=0 pci=nommconf
2. インストール直後に追加するパッケージ
kernel-devel kernel-headers system-config-kdump
3. kdump のワーニング対策のため、system-config-kdump で kdump を有効にする
4. VMware tools インストール
毎回設定するのでメモ。
1. /boot/grub/grub.conf にカーネルパラメータ追加
nmi_watchdog=0 pci=nommconf
2. インストール直後に追加するパッケージ
kernel-devel kernel-headers system-config-kdump
3. kdump のワーニング対策のため、system-config-kdump で kdump を有効にする
4. VMware tools インストール
Ubuntu 10.04 で Chrome を開くと「Google Chromeはアップデートの提供を中止しています。お使いのバージョンのオペレーティングシステムには対応していません。」と表示されて邪魔くさい。しかし、やはり表示が早くて便利なので使いたい。
なんと、しばらく放置していた 10.04 の Chrome で上記の表示が無いことを発見。理由を調べるとバージョンによるものだと判明。
27 以降だと上記メッセージが表示され、26 以前だと表示されないらしい。
古いバージョンの deb を検索したところ、以下を発見。
http://95.31.35.30/chrome/pool/main/g/google-chrome-stable/
10.04、まだまだ現役で使います。12.04 のデスクトップは微妙なので。
サーバ側の手順。
$ sudo add-apt-repository ppa:freenx-team/ppa $ sudo apt-get update $ sudo apt-get install freenx $ sudo vi /usr/bin/gnome-session-nx
#!/bin/bash export LC_CTYPE=ja_JP.utf8 export XMODIFIERS=@im=ibus export QT_IM_MODULE=ibus export GTK_IM_MODULE=ibus export USE_XOPENIM=t /usr/bin/xmodmap -e 'keycode 123 = backslash underscore' /usr/bin/ibus-daemon -d -x & /usr/bin/gnome-session --session=$1
$ sudo chmod +x /usr/bin/gnome-session-nx
クライアントの設定。
Desktop > 「Unix」 「Custom」 > 「Settings…」
「Run the following command」で作成したコマンド”gnone-session-nx”を使う。
「gnome-session-nx ubuntu-2d」
「gnome-session-nx gnome-fallback」
Unity-2D で画面は表示されたのですが、解像度が一致していなかったため、以下のように設定。
右クリック > 壁紙の変更 > すべての設定 > ディスプレイ > 解像度
たまたまお客さんが準備されたデータが UTF-8 の TSV だったので、phpPgAdmin で直接インポートしようとしたら色々と対策が必要でした。
1. BOM があるとうまく処理できないので、エディタなどで保存し直すなどして取り除きます。
2. 一行目にはテーブルのカラム名を指定する必要があります。
3. 内部的に fgetcsv 関数を使うので、config.inc.php の末尾から2行目に以下を追加します。
setlocale( LC_ALL, 'ja_JP.UTF-8' );
Windows 8 を使い始めて 1年近く経過しました。大体は安定しているんですが、今までインストールした全てにおいて、普通に使っているはずなのにシステムファイルの破損が発生しています。ほとんどは「サービスが正常に起動しない」「デスクトップ画面が表示されない」など、起動時の問題でした。
個人的には .Net 関係のアップデートやインストールが関係しているように思います。大抵、 .Net 関係の Microsoft Update の後に動作がおかしくなります。原因を解明しても事実上、対策は不可であると思われます。
Surface Pro でもシステムファイルの破損が発生しているので、何か Microsoft の不手際だろうとは思います。
今までのところ、sfc コマンドを使ってリカバリすることで回復しているようです。管理者権限でコマンドプロンプトを開いて、以下のコマンドを実行します。
sfc /SCANNOW
あとは自動的にファイルの修復が行われます。
こんなヲタクじゃないと知らないような手間がかからないよう、なんとかして欲しいですね。
独自開発の CMS で、編集完了したページを公開しようとするとエラーが発生しているようだった。
どうも AJAX で呼び出している PHP スクリプトがタイムアウトしているらしい。
ローカル環境で再現しようとすると、時間はかかるが公開処理は正常にできた。
該当記事をエディタで短くしていくと処理時間が短くなるので、何かしら記事を処理する部分が時間を食っているのはほぼ確実だった。
この CMS ではページを公開する際に、検索用のデータを生成しており、この時、自前の処理で html をパースしていた。
問題はこのパース処理だった。
応急処置として、自前処理ではなく DOMDocument の loadHTML メソッドを使用するようにして、業務に支障がない状態に出来たが、根本対策には html のパースを高速化する必要があった。
mb_ereg 系の関数を使用していたため、preg 系に修正してみたが、今度は Segmentation fault が発生した。どうもデータベースのトランザクション内で正規表現ライブラリをガッツリ使うとメモリが足りないらしい。mb_ereg 系に戻して、再度検討を行う。
よく調べてみると、正規表現を使っている部分は、タグ部分の切り出し時と、切り出したタグ部分の分解だった。タグ部分の切り出し時には mb_ereg に記事全体を渡しており、どうもここが怪しい。
タグ部分の切り出し処理を、正規表現から strpos/substr などの文字列処理関数に修正すると、すばらしい処理速度となり、対策を完了することが出来た。
PHP の正規表現処理は非常に便利なのだが、現時点では大きな文字列の処理には向いていないようだ。
今回のように、処理速度に問題があるようなケースでは、以外な方法のほうが結局速かったりするので、いろんな方法を思いつけるように準備して置かなければならない。
なんかデータベースも MyISAM な MySQL が 1つだけだし、ブログぐらいしか使えねーわ、と思ってた「さくらのレンタルサーバ スタンダード」なんですが、お客様のレンタルサーバを選定することになり、確認してみると、MySQL は 5.5 で MyISAM/InnoDB を 20 個までになってるし、PHP は 5.3.x が選択できるようになっていました。
調べてみると 2011年9月28日にデータベースの機能強化がされさそうです。
1年以上知らなかった。まぁ嬉しいけど。
さっそくこのブログも MySQL 5.5 に移行しました。明らかに表示が早くなりました。
jQuery UI tabs を使ったところ、表示がめちゃくちゃに。なんか Ajax でコンテンツを取得して表示しているよう。
ケースでタグをだんだん削ったりして確認したところ、base タグを指定すると正常に動作しないことを突き止めた。
でも、該当のサイトで base タグを使わないわけにもいかないので、ソースコードを取得してデバッグ。
jquery.ui.tabs.js の該当部分。
function isLocal( anchor ) { + if ( anchor.hash.match( /^#.*$/ ) ) return true; + return anchor.hash.length > 1 && decodeURIComponent( anchor.href.replace( rhash, "" ) ) === decodeURIComponent( location.href.replace( rhash, "" ) ); }
これでいいと思うけどな。
発売日の翌日に Windows 8 Pro にしてから一1ヶ月後、システムを SSD 128GB に再インストールし、起動や Excel の起動が早くて喜んでいました。
しかし、今更ですが SATA3 にするのを忘れていたことに気が付きました。SSD は今では少し遅いと言われる ADATA SP900 ですが、SATA3 に対応しています。マザーボードもチップセットは B75 で SATA3 が1ポートあります。
早速システムドライブのケーブルを、唯一の SATA3 である 0 番に差し込んで電源を投入してみました。BIOS でもちゃんとドライブを認識していることを確認しました。
…が、起動しません。ケーブルを挿し直したりしましたが、ダメでした。
仕方なくもとに戻すと、システムの修復が起動されてしまったため、指示に従って修復して事なきを得ました。ちなみにメールとか仮想マシンとかは別ディスクに置いているので影響はありません。
このようなエラーとなるには、何かしら電気的な問題か信号的な問題が発生しているはずです。思い当たるのは SATA ケーブルです。
マザーボードに付属していた SATAケーブルは SATA3 対応だったはずなので、ケースを引っ張りだして交換してみました。
結果、見事 SATA3 で起動しました。体感では3倍くらい起動が早く感じます。これは感動モノです。
CKEditor のファイルブラウザーとして、無料で使える KCFinder ですが、CentOS 5.8 の PHP 5.1.6 では動きませんでした。
調べたところ、kcfinder/lib/helper_dir.php の “usort($files, “dir::fileSort” ) );” を “usort($files, array( “dir”, “fileSort” ) );” に修正すると動作しました。
以下は、調査の経過です。
1. kcfinder/js/browser/joiner.php で JavaScript エラー
2. 内部で読み込んでいる js ファイルの順番が正しくないために undefined となり中断していた
3. ファイル一覧を作成している kcfinder/lib/helper_dir.php の usort の結果が不正だった
4. ユーザ定義関数を “dir::fileSort” から array( “dir”, “fileSort” ) に変更
5. usort で “class::function” 形式をサポートしているのは 5.3 以降であることを確認
意外と需要がある情報かもしれませんね。