goo blog サービス終了のお知らせ 

FREEBOX IV

かりっちのブログ 《 超個人的メモブログ 》

【文字コード】UTF-8NとUTF-8

2006年09月16日 | Tips

 unicodeのストリームのビッグエンディアンかリトルエンディアンを表示するために、
Byte Order Markというのが決まっています。 UTF-8でもBOMを使うことについては
UTF & BOMに、「使ってもいいがUTF-8では意味がない」とあります。 
現在、エディタ等のツールで単にUTF-8というとこのBOM付きということになっています。逆にBOMのないのをUTF-8Nと区別するようです。
 しかし、Netscape Navigator 4.7xでは、BOM付きのUTF-8は先頭にゴミがあるとみなします。また、IANAのエンコード方式には、UTF-8しか定義されていません。ここでのUTF-8の目的はNetscape Navigator 4.7xでも多国語文字を混在させることだからです.

・HTMLファイルの場合 : UTF-8N (BOM無し)

・httpレスポンスやmetaヘッダのcharsetsの場合 : UTF-8、

とすることになります。ご注意ください。

参照先

【エンディアン】

例えば16進数で 0x1234ABCD という4バイトのデータを、データの上位バイトからメモリに「12 34 AB CD」と並べる方式をビッグエンディアン (big endian)、データの下位バイトから「CD AB 34 12」と並べる方式をリトルエンディアン (little endian) という。 その他に「34 12 CD AB」あるいは「AB CD 12 34」のように並べる方式もあり、DECのPDP-11やVAXシリーズで使われていたことからPDPエンディアンなどと呼ばれるが、現在ではほとんど見られない。

ビッグエンディアンは人間にとって直観的にわかりやすいという利点があり、一方リトルエンディアンはコンピュータにとって処理しやすい(多倍長加算の起点は最下位バイトであることなど)という利点がある。

SunのSPARC、MotorolaのMC68000、PowerPC G5等は「ビッグエンディアン」を採用

インテルのx86系などは「リトルエンディアン」を採用

ARMアーキテクチャのCPU、Transmeta社のCrusoe、Hewlett-Packard社のPA-RISC、G4までのPowerPCなど、エンディアンを切り替えられるバイエンディアン (bi-endian) のものも存在する。

参照元

【IANA】

 インターネット上で利用されるアドレス資源(IPアドレス、ドメイン名、プロトコル番号など)の標準化や割り当てを行なっていた組織。1998年10月、インターネット資源の管理・調整を行なう国際的な非営利法人ICANNが設立されたため、IANAが行なっていた各種資源の管理はICANNに移管された。現在では、IANAはICANNにおける資源管理・調整機能の名称として使われている。

参照元


【PHP】ヒアドキュメント

2006年09月16日 | Tips

<?php
echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': x41
EOT;
?>

(注)
非常に重要なことですが、閉じる側のIDがある行には、セミコロン (;)以外の他の文字が含まれていてはならないこ とに注意して下さい。これは、特にIDはインデントしてはならないと いうことと、セミコロンの前に空白やタブを付けてはいけないことを 意味します。
恐らく、最もやっかいな問題は、行末が復改文字 (r)でなく、改行(n)とも 呼ばれるフォームフィードのみであることもあり得ることです。 マイクロソフト Windows は、行末記号としてシーケンス rnを使用しています。このため、Windowsのエ ディタでスクリプトを書いている場合には、ヒアドキュメントが動作 しない可能性があります。しかし、多くのプログラム用のエディタは、 ファイルをUNIXの改行文字で保存する機能を有しています。


【PHP】CentOSで利用するpear

2006年09月10日 | Tips

予めlynxコマンドをインストールしておく必要があります。
(もしかしたら,phpをインストールした時に,既に使えるのかも・・・)

# lynx -source http://go-pear.org/ | php

【XML_Tree】
XMLパーサとして、XML_Treeを使うが日本語に対応していないので、XML_Tree_Exで拡張する.(素晴らしすぎる)

# wget http://www.hawk.34sp.com/phps/XML_Tree_Ex.zip
# unzip XML_Tree_Ex.zip
# chmod 644 *.php
# mv *.php /usr/share/pear/XML

《使い方》
<?php
    require_once "XML/XML_Tree_Ex.php";
    // XML_TreeEx のインスタンス作成
    $tree =& new XML_Tree_Ex();
    // XML文書を構造体に代入。
    $root =& $tree->getTreeFromString($xml_str);
?>

【参考URL】
Hawk's W3 Laboratory
PEAR マニュアル


【PC】 スペック覚書

2006年06月14日 | Tips

[Main PC]

CA : Cooler Master Centurion5 CAC-T05(500x200x435mm)[HP]
PW : Owltech Seasonic SuperCyclone SS-430HB/S [HP]
KB : Logicool diNovo Cordless Desktop DN-800 [HP]

CPU : Intel  PentiumD processor 820 [HP]
CPUCooler : Scythe 峰COOLER (SCMN-1000)[HP]
MB : Intel D945GNT [HP]
MM : I-ODATA DX533-512M/ST (PC2-4200 240pin DIMM 512MB) x 2 [HP]
GB : Aopen Aeolus6600(PCX6600-DV256H(J)) [HP]
HD : Hitachi Deskstar T7K250 (HDT722525DLA380) [HP]
DVD : LG GSA-4167BB[HP]
FD : Owltech FA-404MX [HP]

PT : Canon Pixus MP500 [HP]
SP : ONKYO GX-R3(B) [HP]
DP : SONY SDM-S71 [HP]
       I-ODATA LCD-A173V [HP]

Win2000に137GB以上の容量のハードディスクを認識させるには[EnableBigLba]

# 峰COOLER は素晴らしいですね。リーテルのクーラーでは、CPU温度がどんなに頑張っても
#(グリス等を工夫しても)65℃前後(規定温度64℃)だったのが48℃まで下がり、安心して使える
#温度になりました。しかも、かなり静音です。期待以上でした。
#でも、かなり巨大なので、取り付けるのが大変(狭い・・・)なのと、重さが500gぐらいあるので
#マザーボードに負担が掛からないか少し不安な部分ではあります。

Special Thanks : "koike"

[Server PC]

CA :  Shuttle Zen XPC ST62K(ChipSet : RADEON 9100IGP) [HP]
CPU : Intel Pentium4 Processor 2.40B GHz [HP]
FAN : Owltech F8-S15 [HP]
MM : PC2700(DDR333)-512MB x 2
HDD : MATROX DiamondMax 16(120GB 5400RPM 2MB) [HP]
DVD : Plextor PX-704A [HP]

(※)  CentOS4.3をTV出力でインストールする時のインストールオプション
    boot : linux nofb text


Ruby on Rails

2006年04月08日 | Tips
データベースのテーフル名は「複数型」、その「単数型」がクラス名

id : SMALLINT (5) NOT NULL auto_increment
PRIMARY KEY (id)

【Linux】FedraCore4 samba起動できない

2006年03月10日 | Tips
# /etc/rc.d/init.d/smb start
SMB サービスを起動中: /etc/init.d/functions: line 83: 2339 アボートしました$nice $* [失敗]
NMB サービスを起動中:

というエラーでsambaが起動できないことが有る。原因はSELinuxにあるようだ。
【解決方法】
(その1)
/etc/selinux/config の設定を以下のように変更して再起動
SELINUX=permissive

(その2)
SELinuxは,ファイル等のリソースに「タイプ」と呼ばれるラベルを付与して管理している。(タイプはlsコマンドの「-Z」オプションで閲覧可能)このタイプが適切に付与されないことで,トラブルになることがよくあるため、タイプを初期化することで問題が解決されることが多い。

・全てのファイルのタイプラベルを初期化
# /sbin/fixfiles relabel
(yes no(デフォルトno)の選択が出ますが,通常はそのままリターンキーを押せば問題ない)

・特定のディレクトリをリラベルする
# /sbin/restorecon -v -R <ディレクトリ>


【Linux】CentOS4.2でffmpegをインストールする方法

2006年03月07日 | Tips
CentOS4.2のgcc4だとffmpeg-0.4.9-pre1のコンパイル時にエラーが起きる.
そのため, gcc32でコンパイルする.

compat-gcc-32, compat-gcc-32-c++をインストール.
そして, ffmpegのインストールを

$ ./configure --cc=gcc32 --enable-shared
$ make
# make install

libavcodec は /usr/local/lib にインストールされる。 OS インストール直後の状態では、/usr/local/lib にライブラリパスが通っていないことが多いため、以下のようなエラーが表示される。

ffmpeg: error while loading shared libraries: libavformat.so: cannot open shared object file: No such file or directory

そこで、 /usr/local/lib をライブラリパスに追加登録しなければならない。

/etc/ld.so.conf に以下の行を追加。(既に以下の行が存在すれば、追加の必要はない)

/usr/local/lib

root 権限で ldconfig を実行し、ライブラリパスを更新。

# /sbin/ldconfig

>>ココ

>>ココ

ffmpeg-phpをインストール
phpizeがないので、php-develパッケージが必要。yumで追加インストールする。

# yum install php-devel

ffmpeg-phpをダウンロードし展開。合わせてphpのソースもダウンロード

# cp ffmpeg-php /path/to/php_sources/ext

# cd /path/to/php_sources/ext/ffmpeg-php
# phpize

# ./configure && make

# make install

php.iniに
  extension=ffmpeg.so
を追加

【PHP】MySQL4.1+php 文字化け対策の設定

2006年02月23日 | Tips

基本的にOSもDBも文字コードはUTF8に統一

[/etc/php.ini の設定]
default_charset = "UTF-8"
[mbstring]
; language for internal character representation.
mbstring.language = Japanese

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = UTF-8

; http input encoding.
mbstring.http_input = auto

; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = pass

; enable automatic encoding translation accoding to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
;       portable libs/applications.
mbstring.encoding_translation = On

; automatic encoding detection order.
; auto means
mbstring.detect_order = auto

; substitute_character used when character cannot be converted
; one from another
;mbstring.substitute_character = none;

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
;mbstring.func_overload = 0

【/etc/my.cnfの設定】
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
language = japanese
default-character-set = utf8
init-connect=SET NAMES utf8

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8

[client]
default-character-set = utf8

【CopperminePhotoAlbum /include/functions.inc.php】
function cpg_db_connect()
{
        global $CONFIG;
        $result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']);
        if (!$result) {
                return false;
        }
        if (!mysql_select_db($CONFIG['dbname']))
                return false;
  
  $rtn  = mysql_query( 'SET NAMES utf8',  $result ); //追加
    
        return $result;
}