アーカイブ

2009 年 11 月 のアーカイブ

CentOSで添付メールを送信する

2009 年 11 月 25 日 コメントはありません

uuencodeというコマンドが必要になるのでパッケージのインストール

# yum -y install sharutils

パイプでつないであげる。

$ uuencode ファイルパス 添付ファイル名 | mail 送信先

対話モードにならないので件名などはオプションで指定。

$ uuencode ファイルパス 添付ファイル名 | mail -s '件名' 送信先
カテゴリー: 日記 タグ:

FizzBuzz

2009 年 11 月 18 日 コメント 12 件

ワンライナーで気持ち悪く

php -r 'for($i=1;$i<101;$i++)echo$i%15?$i%5?$i%3?$i:"Fizz":"Buzz":"FizzBuzz","\n";'

ロジック的にはこっちのが好き

php -r 'for($i=1;$i<101;$i++)echo($s=(!($i%3)?"Fizz":"").(!($i%5)?"Buzz":""))?$s:$i,"\n";'

エラーださないでこれが最短?

php -r 'for(;$i++<100;)echo$i%3?$i%5?$i:"":"Fizz",$i%5?"":"Buzz","\n";'

forの部分と三項演算子部分を更に短く

カテゴリー: 日記 タグ:

PHP5.3.0でsymfony1.0系でpropelコマンド実行時にエラーがでる

2009 年 11 月 18 日 コメントはありません

php5.3にしてからsymfony1.0系でsymfonyコマンドの一部でエラーがでるようになった。

$ ./symfony propel-build-model
....
[phingcall] Unable to return 'affix' for unknown CreoleType:

BUILD FINISHED

propelコマンドを使ってもmodelの生成ができない。
調べてみたところ、以下の方法で解決。
symfony framework forum: symfony 1.0 => Snow Leopard ? longvarchar
symfony以下lib/vendor/creole/CreoleTypes.phpの39行目を以下のように修正。

PHP
        //const TEXT = 17;
        const TEXT = 30;

で、調べてみたところPHP5.3.0だとこういうことらしい。

PHP
<?php
Class Hoge
{
  const A = 1;
  const B = 1;
  public static $piyo = array(
      1 => 1,
      1 => 2,
      );
  public static $fuga = array(
      self::A => 1,
      self::B => 2,
      );
}
var_dump(Hoge::$piyo, Hoge::$fuga);

実行結果。

array(1) {
  [1]=>
  int(2)
}
array(1) {
  [1]=>
  int(1)
}

PHP5.3.0のバグ?
PHP5.3.1RC4でも変わらず。

カテゴリー: 日記 タグ:

CentOSで携帯動画をストリーミングできるファイルを作成する

2009 年 11 月 9 日 コメント 15 件

rpmforgeリポジトリを利用できるようにする。

# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

ffmpeg関連をインストール。
依存関係あるものをもってきたいのでffmpegもインストールするが、rpmforgeのものはaacを利用できないため、後でソースからコンパイルするので削除する。

# yum install lame faac faad2 nasm x264 xvidcore ffmpeg zlib-devel libX11-devel libXt-devel faac-devel lame-devel xvidcore-devel gcc gcc-c++
# yum remove ffmpeg

opencore-amrのインストール。
現在のffmpegだとlibamr関連が変わっている。
rpmforgeのものは0.1.1でリポジトリのffmpegに適合しないのでソースからコンパイル。

# cd /usr/local/src
# wget http://sourceforge.net/projects/opencore-amr/files/opencore-amr/0.1.2/opencore-amr-0.1.2.tar.gz/download
# tar xzf opencore-amr-0.1.2.tar.gz
# cd opencore-amr-0.1.2
#  ./configure
# make
# make install
# cd ..

共有ライブラリに認識させる。

# echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf
# /sbin/ldconfig

ffmpegをSubversionリポジトリからインストール。
リビジョン 20483でした。

# cd /usr/local/src
# svn export svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
# cd ffmpeg
# ./configure --enable-gpl --enable-libmp3lame --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxvid --disable-ffplay --disable-ffserver --enable-libfaac --enable-shared --enable-nonfree --prefix=/usr/local
# make
# make install
# cd ..

環境変数にLD_LIBRARY_PATHを追加。
bashrcに追加しておく。

$ echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib" >> ~/.bashrc
$ source ~/.bashrc

gpac(MP4Box)のインストール。
docomoストリーミングファイル作成に必要。

# cd /usr/local/src
# wget http://downloads.sourceforge.net/gpac/gpac-0.4.5.tar.gz
# tar xzf gpac-0.4.5.tar.gz
# cd gpac
# chmod u+x ./configure
# ./configure
# make lib
# make apps
# make install
# cd ..
$ ffmpeg -i video.flv -y -async 1 -vcodec mpeg4 -s 240x176 -r 14.985 -b 192 -acodec aac -ac 1 -ar 16000 -ab 80 -f 3gp docomo.3gp
$ MP4Box -add docomo.3gp -brand mmp4:1 -new docomo_str.3gp
カテゴリー: 日記 タグ:

VMware ESXiでゲストOSのコピー

2009 年 11 月 6 日 コメントはありません

メモ

  1. コピーしたいOS(guest)の電源を落とす。
  2. コピー元と同じ構成でHDDなしの仮想マシン(clone)を新規作成する。
  3. sshでESXiにアクセスし、ディスクイメージをコピーする。
  4. 先ほど作成した仮想マシンでHDDにコピーしたディスクイメージを指定する。
  5. 仮想マシンを起動し、ネットワーク設定をする。

3のコマンド

~ # vmkfstools -i /vmfs/volumes/vmdk/guest/guest.vmdk /vmfs/volumes/vmdk/clone/clone.vmdk
カテゴリー: 日記 タグ:

ISO-2022-JP-MS

2009 年 11 月 5 日 コメントはありません

mbstringで利用できる文字コードは「mb_list_encodings()」で取得できる。
が、実際は数多くあるAliaseも利用可能。
使用可能な文字コード名と MIME 名、エイリアスの一覧
ISO-2022-JP-MSはPHP5.2.1から利用でき、JISに比べて機種依存文字も利用可能になっている。
?とか機種依存文字、SJISの外字領域も保持できる。
JISとISO-2022-JPは違うんですって

カテゴリー: 日記 タグ: