2008年6月30日月曜日

VMwareでLinuxの時間がずれるのをなんとかする(時刻同期)

まずはここを参考にLinuxのゲストOSで時計の進むスピードが狂うのをなんとかしときます。

さらにゲストOSをサスペンドしているとOS上の時計もサスペンドされるので、どんどんゲストOSの時計が狂ってきます。そういうときはntpとcronを使って時刻同期をします。

最初はntpdのサービスを起動して時刻同期しようと思いましたが、全く時刻同期してくれないので、cronでntpdateを実行することにしました。
(2008/08/05追記 NTPサーバのポートが開いてないのが原因でした)

crontabに次のように設定します。環境はCentOS
$ vi /etc/crontab

*/3 * * * * root ntpdate 192.168.0.19

これは3分ごとにLAN内のNTPサーバと時刻同期をします。

外部のNTPサーバに短い間隔で問い合わせを行うと迷惑になるのでLAN内にNTPサーバを構築しましょう。ここを参考に。

あとntpdが起動しているとntpdateできないので止めときましょう。
$ /etc/rc.d/init.d/ntpd stop
$ chkconfig ntpd off

<2009/01/19 追記>
VMware Toolsをインストールしても時刻同期してくれる。インストールの仕方はこの記事を参照。コメントで指摘があったので追記。

<2009/08/24 追記>
メールサーバーの設定をやっていて気付いた。cronが動くたびにrootにメール送信されるとうざい。ここでも書いたけど/etc/crontabを編集して
MAILTO=””
にする。

<2009/09/01 追記>
crontabに直接書くのはスマートでないので、/etc/cron.d/ディレクトリに次のような設定ファイルを作成して対応する。

# vi /etc/cron.d/ntp

#
# cron-jobs for ntp
#

MAILTO=""

*/3 * * * * root /usr/sbin/ntpdate 192.168.0.19

2008年6月27日金曜日

8980円で本鮪&大とろフルコースと苺又はメロン食べ放題

私はよくバイクで温泉行ったり、お寺に行ったり、おいしいものを食べにいったりしますが、たまにはツアーもいいかもしれない。

ここなんか8,980円で本鮪&大とろフルコースと苺又はメロン食べ放題なので結構いいんじゃないかな?

SQL Server 2005 Express でリモート接続(ログイン)を許可

テストでSQL Server 2005 Express Editionをインストールして試そうとしたけど、リモートでログインできない・・・。

サービスと接続のセキュリティ構成からリモート接続を許可してあるか確認。

image

Standard Editionだとこれでさくっとログインできたのですが、Express Editionだとさらに設定が必要みたい。ここを参考に。

SQL Server 2005 ネットワークの構成→SQLEXPRESSのプロトコル→TCP/IP→プロパティでIP AllのTCPポートが1027になっているのを1433に変更。そしてSQL Serverのサービスを再起動。

image

これでもできなかったら、コマンドプロンプトで
c:>telnet (サーバーのIP) 1433
を打ってみて接続できれば、SQL Serverの設定。できなければファイヤーフォールの設定だと思う。

2008年6月26日木曜日

【Linux】CentOSへffmpegのインストール

コンパイルに必要なツールをインストールしておく。

$ yum install gcc gcc-c++
$ yum install automake libtool

携帯動画の変換も行うので下記のコーデックをインストール

ここを参考にyumの追加パッケージを入れるとちょっと楽ができる。
$ yum install a52dec-devel faac-devel lame-devel
でも一応ソースからコンパイルしてみた。

faacはここからダウンロードしてきてコンパイル
$ tar xzvf faac-1.26.tar.gz
$ cd faac
$ sh bootstrap
$ ./configure
$ make
$ make install

faad2はここからダウンロードしてきてコンパイル。
$ tar xzvf faad2-2.6.1.tar.gz
$ cd faad2
$ sh bootstrap
$ ./configure
$ make
$ make install

AMR-NBとAMR-WBをここからダウンロードしてきてコンパイル。

$ tar jxvf amrnb-7.0.0.2.tar.bz2
$ cd amrnb-7.0.0.2
$ ./configure
$ make
$ make install

$ tar jxvf amrwb-7.0.0.3.tar.bz2
$ cd amrwb-7.0.0.3
$ ./configure
$ make
$ make install

liba52はここからダウンロードしてきてコンパイル
$ tar xzvf a52dec-0.7.4.tar.gz
$ cd a52dec-0.7.4
$ ./configure
$ make
$ make install

lameはここからダウンロードしてきてコンパイル
$ tar xzvf lame-398.tar.gz
$ cd lame-398
$ ./configure
$ make
$ make install

/usr/local/libにパスを通しておく。
$ vi /etc/ld.so.conf.d/local.conf
/usr/local/lib
$ ldconfig

ffmpegをここからダウンロードしてきてコンパイル。full checkoutのリンクから。 subversionを使ってダウンロードしてきてもOK.

subversionを使う場合は
$ yum install subversion
$ svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
私が使用したrevisionは13836

$ cd ffmpeg
$ ./configure --enable-libamr-nb --enable-libamr-wb --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-liba52 --enable-gpl --enable-nonfree --enable-shared

$ make
$ make install

nonfreeなので、ここは必読。要は再配布できない。

あとでffmpeg-phpを使うために--enable-sharedをつけとく

試しに変換してみると失敗・・・

Unknown encoder 'mp3'

と怒られた。最近は -acodec 'libmp3lame' としないと駄目らしい。

<2008/07/05> --enable-sharedを追加

<2008/08/13> コーデックを全てコンパイルからやってみた。

<2009/02/21> ffmpegのバージョンを知りたい場合は下記コマンドで。 $ ffmpeg -version

2008年6月25日水曜日

オープンソースの基礎知識のメモ

エクスブリッジではオープンソースの技術を使うことが多いのですが、

オープンソースって何?

フリーソフトと何が違うの?

という質問にプロとして答えられなければなりません(いつかは)。そこでまず読む必要があるのがここのサイト。wikipediaもわかりやすい。

オープンソースはライセンスがいろいろあって、そこはわかりにくいですが、今まで技術的にかなり助けてもらっているし勉強にもなっているので、自分でもオープンソースのソフトウェアの開発に貢献したいなぁと思っています(いつかは)。

2008年6月24日火曜日

リモートデスクトップのセキュリティ

Windowsサーバを立ち上げているとリモートデスクトップで管理するのが便利。前の記事も参考に。

でも心配になったのがセキュリティ。昔はこのリモートデスクトップ用のポート(3389)をターゲットに不正なパケットを送信するとWindowsを強制終了することができたらしい。記事

一応リモートデスクトップのプロトコル(RDP)はちゃんと暗号化されているらしい。Microsoftの解説サイト

ポートを変更する場合はここを参考に。

2008年6月23日月曜日

【xyzzy】multi-modeをちょっと変更

私が愛用しているxyzzy

特定のタグに囲まれたエリアを各モードに変更して表示できるmulti-modeを大変便利に使っていますが、PHPファイルなどのようにファイルの最初にタグを書くと、モード変更してくれない。

これに対応するためにmulti-modeのソースを変更しました。392行目あたり

(if (and (> tfp fp) (< tep ep))
    (setq fp tfp ep tep func (nth 2 one-list))
  (setq fp (max tfp fp) ep (min tep ep))
  ;(msgbox "up ~A ~A / ~A ~A/ ~A" tfp tep fp ep nowpoint)
  )

これを下のように修正。

(if (and (>= tfp fp) (< tep ep))
    (setq fp tfp ep tep func (nth 2 one-list))
  (setq fp (max tfp fp) ep (min tep ep))
  ;(msgbox "up ~A ~A / ~A ~A/ ~A" tfp tep fp ep nowpoint)
  )

イコールを追加しただけ、修正後はbyte-compile-fileして、ダンプファイルを消せばOK.

あと変更する際に忘れてたxyzzyのコマンドをメモ。

  • eval-buffer・・・バッファ全体を評価する。messageなどのデバッグ文を書いてこのコマンドを打つと適用される。

2008年6月20日金曜日

【Linux】Gpac(MP4Box)のコンパイル→インストールメモ

実行したいのはここにあるような

mp4box -add output.3gp -brand mmp4:1 -new output_mod.3gp
というコマンド。

ffmpegはここにあるようにyumでさくっとインストールできるのですが、mp4boxはソースからコンパイルしないと駄目みたい。しょうがなくコンパイルしたときのメモ。

mp4boxはGpacのツールらしいのでGpacをここからダウンロード。

コンパイルするために必要なソフトをインストールしておく
$ yum install gcc
$ yum install gcc-c++

あとはここに詳しく書いてあるので、書いてあるとおりに実行していく。

でも一応実行したコマンドをメモ
$ yum install zlib-devel
$ yum install libX11-devel
$ yum install libXt-devel
$ tar zxvf gpac-0.4.4.tar.gz
$ cd gpac
$ chmod 544 configure
$ ./configure --disable-wx
$ make lib
$ make apps
$ make install

コンパイル後にコマンドラインで実行しようとしたら、エラーで怒られた。

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

検索してみると/usr/local/libが共有ライブラリに登録されていないみたい。ここを参考に
$ vi /etc/ld.so.conf.d/local.conf
/usr/local/lib
$ ldconfig
として再度実行。

とりあえずコマンドの実行はできた。

コマンドは
$ MP4Box
と大文字になっているので注意。インストールできたけどコマンドがない!としばらく考えてしまった。

2008年6月19日木曜日

Firefox3インストールしてみたけど・・・イイネ!

Firefox3のダウンロードが可能になったので、早速インストールしてみました。

インストールは無事終了。Firefox2を上書き更新しました。

いくつか対応してないアドオンが無効になりますが、これは気にしない。

個人的にはIrvine ContextMenuが無効になったのは痛いです。なるべく早く対応してくれることを祈ります。

使ってみると、表示スピードが速くなっているのを体感できます。

すばらしい。

その分メモリは多く消費しているようですが、最小化したりするとメモリ解放してるみたいなので、これもfirefox2ではなかったすばらしい機能の一つです。

その他の機能などはここから確認。

さらにIEのシェアが奪われる予感です。

2008年6月18日水曜日

Windows Live Writerを便利に使ってブログ更新

最近は土曜日にまったりとブログを書き溜める時間がなくなってきたので、家でも下書きを書くようになりました。

ブログを書くときはWindows Live Writerを使っていますが、2つのPCで書いていると家で書いたのをメールか何かで送らないといけないのでそれが面倒です。

Bloggerを使っているので、ブラウザ経由で記述して、下書きとして保存しとけば良いのですが、Windows Live Writerの使い勝手からは離れたくありません。

ここでWindows Live Writerのよい所をあげると

  • 登録時にブログサイトのCSSを取得してくるので、投稿後の表示のされ方とほぼ同じ見た目で編集できる(プレビューが必要ない)。
  • 画像をクリップボードから貼り付けることができるので、winshotと連携すると画像を貼り付ける手間がない。
  • 表を挿入するときもWord感覚で簡単。
  • もちろん投稿するときは「投稿」ボタンを押すだけでOK.

ここからはBlogger+Windows Live Writerを使って、自宅で書いた下書きを会社で読み込む方法です。

Windows Live Writerで「ファイル」→「下書きをブログに保存」で下書きをアップロードできるので、会社では「開く」→「(ブログ名)」で下書きを選択して編集・投稿。

簡単。・・・ですが、これに気づくまでに結構時間がかかりました。

↓「開く」を選択したときの画面。開発プレビュー版なので英語表記ですが(^^;

image

2008年6月17日火曜日

Windows Live おすすめパックがインストールできない?

私が愛用しているWindows Live Writerですが、これをインストールするためにはWindows Live おすすめパックを導入すると他の役に立ちそうなツールも一緒にインストールできて便利。

・・・と思って、自宅マシンにインストールしようと思ってもなぜかエラーで失敗する現象に遭遇してしまいました。

イベントログのエラーで検索してみてもよくわからず。

結局Windows Live Writer単独でインストールすると無事できたので、もし出来ない人がいたらお試しあれ。

マイクロソフトのダウンロードセンターからダウンロードできます。

Writer Zoneにいけば、開発プレビュー版もダウンロードできます。

2008年6月16日月曜日

WindowsXPのSP3はまだ導入しない方がよい?

Windows XPのSP3が公開された次の日に自宅マシンにインストールしてみましたが、OS起動時になぜか強制終了し再起動を繰り返す現象にぶち当たってしまいました。

ネットで検索してみると、どっかのメーカーのマシンで起きるみたいですが、私のマシンは自作マシン。セーフモードさえできない状態なので、しょうがなくクリーンインストール。

クリーンインストール直後にSP3をインストールすると、これは素直にインストール完了。起動も問題なく、他のドライバ、ソフトをインストールしたあとでも正常に動作しました。そのあと別の問題で結局今はSP2に逆戻り・・・余計な時間を使ってしまった。

家のマシンならともかく、会社のマシンにはまだインストールできないなー。

多くの企業でもSP3の適用を禁止しているみたいです。

2008年6月13日金曜日

YouTube APIのドキュメントが日本語対応

YouTubeのAPIを使っていろいろやっているところですが、そのドキュメントが日本語で表示できるようになりました。ニュース記事

英語でもなんとなく読めますが、やっぱり読むスピードが全然違うのでうれしい限りです。

このときにYouTubeへアップロードするコードを書いているので、そこからリファレンスへリンクできます。日本語表示したい場合は右上の「English」を「日本語」へ。

2008年6月12日木曜日

ネットワークの監視に関するメモ

はまると痛いネットワーク。これでもいろいろと勉強して詳しくなっているつもりですが、ツールを使って監視できるようになりたいので、そのためのメモ。

とりあえず「ネットワーク 監視 SNMP」というキーワードでGoogle先生に聞いてみるといろいろと詳しくなりそうなページが出てくる。時間があったら読んでおこう。

あとここの記事の途中で書いてある「Wireshark」というツールも気になるところ。

こんなツールも使いこなせるとネットワークトラブルも恐くないかも?

2008年6月11日水曜日

Photoshopにも負けない画像編集ツール「Gimp」

Gimpはオープンソースの画像編集ソフト。Windows版、Linux版、Mac版もあるらしい。Wikipediaが分かりやすい。

大学の研究室にいたころはGimpを使って画像編集してました。懐かしい・・・。

でもPhotoshopを使うようになってからは、ほとんどPhotoshopで画像編集を行いますが、Gimpでも(慣れれば)(ほとんど)同じことが可能です。Photoshopを買うお金がない場合はGimpをマスターしてみてもよいかも。

日本語版は直感的に分かりにくい訳があったりする。でも、すばらしいソフト。

2008年6月10日火曜日

リモートデスクトップでファイル転送

リモートデスクトップを使うとFTPとか使わずにファイルを転送することができます。

接続先が対応している必要があるのでWindows 2003 Server以上が必要。WindowsXPは試してない。Windows 2000 Serverでは駄目でした。

まずはここを参考にリモートデスクトップを最新にします。古いのでもできるけどね。転送速度が速くなっているらしいので、最新にしとくのをおすすめします。

リモートデスクトップを立ち上げてオプション→ローカルリソース→詳細を開くと下のような画面が出てきます。

image

ここで選択したドライブがリモートデスクトップで接続したあとにマイコンピュータから別ドライブで参照できます。1ファイルぐらいなら元のPCで「コピー」しといて、リモートデスクトップの画面で「貼り付け」すれば自動的に転送してくれます。

あとLinuxでもリモートデスクトップを使うツールがあります。ここ参考サイト

2008年6月9日月曜日

【PHP】携帯向けのサイトでよく利用されるuse_trans_sid

EC-CUBEを携帯で利用する場合、use_trans_sidという設定が有効でないと正常に動作しないということが発覚。このuse_trans_sidってなんだべ?と思い調べてみました。

use_trans_sidというのは同サイトへのリンクの際に自動的にセッション情報を付加させる設定みたいです。phpマニュアル。デフォルトは無効。

でも自動的にという部分が問題となる場合もあるらしく。webアプリケーションの方で自作する場合が多いみたいです。use_trans_sidの問題点を書いたブログ

セッションの継続についてここも参考になります。

ちなみにini_setを使えばPHPでこの設定を有効にすることができます。ini_setで設定できる項目はここを参考に。セッションをスタートする前に記述する必要があります。

ini_set('session.use_trans_sid', '1'); session_start();

効かない場合はconfigure 時に –enable-trans-sid を付けているかどうかphpinfo()で確認する。

2008年6月6日金曜日

【SQL】order byでNULLの表示順を最下位または最上位にする

order by で昇順ソートするとNULLの表示順がDBによって変わってきます。SQL Serverの場合は一番最初。PostgreSQLとOracleは最後。

これを意図的に並び替える場合はorder by句にcase文を記述します。実際のコード例はここを参考に。Oracleの場合はnulls firstを記述すればコントロールできるみたいです。

2008年6月5日木曜日

正規表現で文字列の否定

入力チェックなどでお世話になる正規表現ですが、これがなかなか奥が深い。複雑な正規表現は一体何をしているのか解析するだけでも一苦労。

この前壁にぶつかったのが 「ある特定の"文字列"を含まないようにチェックをかけたい」 というもの。ある特定の1文字を含まないような正規表現は簡単ですが、文字列となると、これが結構難しい。

たとえば「a」と「b」は含まれていていいけど、「ab」という文字列は駄目という場合。なんとなく ^[^(ab)]+$ でいけそうな気がするけど、これでは駄目。

ちなみに正規表現を試したいときはここのサイトを利用すると便利。どれがマッチしたのかを視覚的に表示してくれるので、とってもわかりやすい。

image

「ab」の文字列を否定する場合は「b」の前に「a」がないという記述をしないと駄目らしい。ここを参考に。実際の正規表現はこんな感じ。 ^(([^b]|[^a]b)|[^a]a)+$

image

ちなみに頑張って正規表現でチェックする必要はない。

<2009/05/14 追記>
コメントで教えてもらったサイトが分かりやすく解説しているので、そちらも参考に。

2008年6月4日水曜日

【PHP】sprintfで桁埋め

やりたいときに忘れているspintfのメモ。0で桁埋めしたいときは次のようなコードを記述。

$sTest = "test%02d";
for ($i=0; $i<20; $i++) {
    $sResult = sprintf($sTest, $i);
    echo $sResult . '<br />';
}

これはtest01, test02・・・のように画面に表示する。

PHPマニュアルはこちら

2008年6月3日火曜日

【Linux】IPアドレスを追加する

サーバを構築すると、社内LAN用のIPと外部公開用のIPと2つサーバに割り当てる必要があります。そんなときは次のコマンドを実行するだけ。環境はCentOS

# ifconfig eth0:0 <設定する外部公開用のIPアドレス>

eth0はifconfigで表示されるデバイス名。:0はエイリアス番号。ここを参考に。

ちゃんと設定されたかはifconfigを実行して確認。ちなみに外部に公開するときはファイヤーウォールの設定も確認しましょう。参考

あ、もちろんルータの設定も必要ですよ。

<2008/07/04 追記> これだけだと再起動したら元に戻ってしまうので、 /etc/sysconfig/network-scripts/ifcfg-eth0 をコピーして /etc/sysconfig/network-scripts/ifcfg-eth0:0 を作り、IPアドレスを記述すればOK. 例↓

GATEWAY=192.168.0.3
TYPE=Ethernet
DEVICE=eth0:0
HWADDR=00:0c:29:aa:88:ce
NETMASK=255.255.255.248
IPADDR=xxx.xxx.xxx.xxx

2008年6月2日月曜日

BSDライセンスについて整理

にGPLライセンスについて書いたので、その続編で今回はBSDライセンスについて整理。とりあえずwikipedia

GPLライセンスと違って「無保証」であることの明記と著作権表示をすればソースコードを公開しないで配布(頒布)可能。なので商用化がしやすい。

元々のBSDライセンスは開発者に対する謝辞(宣伝条項)を表示しなければならなかったため、複数のBSDライセンスを組み合わせてソフトを開発した場合、表示しなければならない宣伝条項だけで複数のページを占有してしまう問題があったが、現在はその宣伝条項が削除された「New BSD ライセンス」が一般的らしい。

さらに元々のBSDライセンスはGPLライセンスと共存できない。

BSDライセンスが抱える問題

GPLライセンスと矛盾する or 矛盾しないライセンス一覧はこちら

<2009/7/22 追記>
ライセンス条項の日本語訳をまとめたサイトがあったので覚え書き。

OSI承認オープンソースライセンス 日本語参考訳

Related Posts Plugin for WordPress, Blogger...

Blog Archives