Vistaのパーティションを Acronis Disk Director でコピーしてみた

Acronis Disk Director Suite 10 を使いました。

結果は問題なかったです。

引っかかったポイントがあるので、それだけ備忘録として。

Vista の OS 部分のパーティションをコピーした後、プライマリパーティションにすること。

そのパーティションをアクティブにすること。

そして、一度 Vista のインストール DVD を利用して、修復を行うこと、です。

パーティションをコピーしただけだと、NTLDR が HDD の起動パーティションを認識しないんですね。

そのため、Windows ディレクトリを探しに行くけれども指定された ID の HDD が見つからないため、エラーして止まってしまいます。

dhtmlgoodies.comのカレンダーコントロールを使う

dhtmlgoodies.com さんで配られているカレンダーコントロールを使う際、日本語で利用するための設定です。備忘録です。

dhtmlgoodies_calendar.js は、基本的にはそのまま HTML 内で呼び出せるとても便利なスクリプトなのですが、日本語用のコードがありません。

いくつか、以下の様なコードを加筆修正しました。

まず、言語コードを以下に設定します。

var languageCode = ‘ja’;

switch(languageCode) のケースに、以下の様な日本語用のコードを追加します。

 case “ja”: /* Japanese */
  var monthArray = [‘1月’,’2月’,’3月’,’4月’,’5月’,’6月’,’7月’,’8月’,’9月’,’10月’,’11月’,’12月’];
  var monthArrayShort = [‘1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’10’,’11’,’12’];
  var dayArray = [‘月’,’火’,’水’,’木’,’金’,’土’,’日’];
  var weekString = ‘週’;
  var todayString = ‘本日’;
  break;

必要に応じて、本日の表示のフォーマットを指定します。 

var todayStringFormat = ‘[todayString] [year]/[monthString]/[day] ([UCFdayString])’;

個人的には、利用しているイメージのフォルダを指定したいので、修正します。

var pathToImages = ‘images/’; // Relative to your HTML file

日曜始まりにしたければ、weekStartsOnSunday を true にします。

var weekStartsOnSunday = true;

ファイルが EUC-JP で書かれているので、それ以外の文字コードを利用しているのであれば、HTML 側からインクルードするときには文字コードも指定してあげましょう。

<script type=”text/javascript” src=”js/dhtmlgoodies_calendar/dhtmlgoodies_calendar.js” charset=”euc-jp”></script>

以上です。

Blackfish SQLで DB を新規作成する

せっかくの便利 DB の Blackfish SQL なのですが、ちょっと作ろうと思ったら引っかかってしまいました。

引っかかったのは、DB の新規作成の方法が判らない、ことです。

悩んだと言うほどではないですが、すぐに見つからない人で GUI でどうにかしたい人向けに情報を残しておきます。

  1. 「データエクスプローラ」をアクティブにして、「BLACKFISHSQL」を選択
  2. 右クリックで「新規接続の追加」
  3. 「プロバイダ名」を「BLACKFISHSQL」に、「接続名」を適当に付けて「OK」ボタン
  4. 作成した接続名を右クリック「接続の変更」
  5. 「サーバー名」を「localhost」などに、「データベース名」をパス付きで適当に付けて、「拡張」ボタンをクリック
  6. 「create」プロパティを「true」にして「OK」ボタン
  7. 「接続の追加」ダイアログボックスの「OK」ボタンをクリック

以上です。6番目の項目が重要で、これが無いとエラーするのみです。

たったこれだけなんですが、判りづらいですね。ドキュメントにも載っていないし。

せっかく良いものなんだけど、情報が足りないなぁ・・

CodeIgniterの Scaffolding で日本語が使えない(訳ではないのだが

MySQL を利用しているので、どっかで ’SET NAMES ~’ を送りたいと思っていたら、そのものずばりが goungoun技術系雑記帳 にて紹介されていました。

system/database/DB_driver.php 内で、接続を行い、そのオブジェクトをチェックした直後に、以下のコードで OK なようです。

if ($this->dbdriver == ‘mysql’) {
    $this->simple_query(‘SET NAMES utf8′);
}

dbdriver 名が ‘mysql’ の場合にだけ、simple_query() メソッドを呼ぶわけですね。

これで簡単にテストデータを入力したりチェックしたりが出来るようになりました。

Scaffolding 使わないのであれば、自作の Model とか Controller の初期化時に simple_query() 呼び出せば良いのですけどね。

Windows Vistaのサービスを色々切ってみた

つまるところ、Vista は重いのです。

34個ほど自分の環境では必要ないサービスを停止、手動起動に変更して、1日ほど使ってみました。

ある程度使い込んだ環境なので、元の起動時のメモリは700MBほど消費。
変更後の起動時のメモリは660MBとなりました。

もちろんメモリが空いたことはうれしいことなのですが、それ以上に、実行中の負荷がかなり減っています。

常駐系で、ファイル監視(Defender とか)や Windows Firewall 、Search Indexer などのサービスがありますが、私の環境では他のアプリケーションを利用しているので邪魔であり、重複していて重たいわけです。

それらが動かないだけでも、ずいぶんと体感速度がアップしました。

元々持っている Microsoft のみのサービスのみで動かしているのならば、Vista もそんなに・・とは思わなかったのですが、使い込むにしたがって、色々バッティングしてしまいますね。

Aero はなんとなく切りたくなかったのでそのままですが、本当に体感速度を上げるのであれば、3D 機能が貧弱な(Panasonic CF-Y5を利用)わけですから、切るべきでしょう。

もう少し、問題が無いかを確認してみます。

HTMLファイルでも PHP ファイルとして見なす(php_flag short_open_tag off

先々日、.htaccess を利用することで、.html ファイルも PHP ファイルとして処理する方法を紹介しました。

しかし、そのとき足りなかったことがあるので追記します。

足りなかったのは、<?xml ~?> などのタグが入っている HTML ファイルの場合、<?~?> 部分を PHP として解釈しようとしてしまい、エラーを起こしてしまうのの、回避策です。

知ってしまえば簡単ですが、.htaccess に以下の1行を追加するだけです。

php_flag short_open_tag off

php.ini をいじれる環境であれば、この内容も設定できるのですが、ホスティングサービスなどで動かしたい場合には、今回の方法が有効ですね。

ただし、全ての .html ファイルを PHP として解析しますので、全体のパフォーマンスはわずかながら落ちますので、適用は考えてから行うようにしてください。

山本 悟

xajaxを使ってみた2(E_NOTICE

こんにちは、山本です。

昨日の続きです。

利用しているバージョンは、0.2.5 stable なのですが、問題が起きました。

error_reporting(E_ALL)

を入れていると、xajax.inc.php の747行目に書かれている $sResponse が、未定義なのでエラーしてしまうようです。

xajax.inc.php を直接書き換えるのはいやなので、E_NOTICE だけレポートから外すようにしました。

error_reporting(E_ALL ^ E_NOTICE);

変数未定義のエラーなどでアラートが出なくなりますが、検証済みのコードと言うことで逃げます。

0.5 が stable になる頃には解決して欲しいです。

山本 悟

xajaxを使ってみた

こんにちは、山本です。

標題の通り、xajax を使ってみました。

端的に言えば、JavaScript を(ほとんど)書かずに、PHP のプログラミングテクニックだけを使って Ajax の実装(表現がいまいち)できるクラス群です。

しかし、ちょっとつまずいたことがあるので、メモしておきます。

Smarty との連携を行う場合、私は1つの HTML を生成するのに複数のテンプレートを Smarty 内で include しています。

しかし、printJavascript() を呼ばなければならないのは(安全を考えれば) HEAD タグの内側です。

しかし、Smarty の display() では、その PHP オブジェクトの制御が出来ないため、JavaScript を生成できません。
当然オブジェクトの参照が渡されるわけではないので、{php}{/php} テンプレートタグ内で記述しても意味がありません。

呼び出し側の PHP 内で $Smarty->fetch() して、$xajax->getJavascript() を埋め込む方法も考えたのですが、テンプレートが大きいと単純置換でも無駄が多そうです。

結局、$xajax->getJavascript() を Smarty 変数として渡す方法をとりました。
大丈夫かな。

山本 悟

ZendFrameworkでメールを送ってみた(修正

こんにちは、山本です。

昨日作った ZendFramework のメール送信のサンプルですが、Willcom 端末で上手く表示されない場合がありました。

どうやら、文字コードが8bitエンコードなのが問題のようです。

$mail->setBodyText(mb_convert_encoding(‘テストだ’, ‘ISO-2022-jp’, ‘UTF-8′), ‘ISO-2022-jp’, Zend_Mime::ENCODING_7BIT);

解決する方法は、setBodyText() を呼び出す段階でエンコードを7bitに指定してあげることでした。

このサンプルは UTF-8 で保存しています。

山本 悟

あなたの IT の疑問・不安をすべて解決するコンシェルジュ サービス