投稿

6月, 2008の投稿を表示しています

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

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

私はよくバイクで温泉行ったり、お寺に行ったり、おいしいものを食べにいったりしますが、たまにはツアーもいいかもしれない。ここなんか8,980円で本鮪&大とろフルコースと苺又はメロン食べ放題なので結構いいんじゃないかな?

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

イメージ
テストでSQL Server 2005 Express Editionをインストールして試そうとしたけど、リモートでログインできない・・・。サービスと接続のセキュリティ構成からリモート接続を許可してあるか確認。Standard Editionだとこれでさくっとログインできたのですが、Express Editionだとさらに設定が必要みたい。ここを参考に。 SQL Server 2005 ネットワークの構成→SQLEXPRESSのプロトコル→TCP/IP→プロパティでIP AllのTCPポートが1027になっているのを1433に変更。そしてSQL Serverのサービスを再起動。これでもできなかったら、コマンドプロンプトで
c:>telnet (サーバーのIP) 1433
を打ってみて接続できれば、SQL Serverの設定。できなければファイヤーフォールの設定だと思う。

【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 installfaad2はここからダウンロードしてきてコンパイル。
$ tar xzvf faad2-2.6.1.tar.gz
$ cd faad2
$ sh bootstrap
$ ./configure
$ make
$ make installAMR-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 installliba52はここからダウンロードしてきてコンパイル
$ tar xzvf a52dec-0.7.4.tar.gz
$ cd a52dec-0.7.4
$ ./configure
$ make
$ make installlameはここからダウンロードしてきてコンパイル
$ tar xzvf lame-398.tar.gz
$ cd lame-398
$ ./configure
$ make
$ make install/usr/local/li…

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

エクスブリッジではオープンソースの技術を使うことが多いのですが、オープンソースって何?フリーソフトと何が違うの?という質問にプロとして答えられなければなりません(いつかは)。そこでまず読む必要があるのがここのサイト。wikipediaもわかりやすい。オープンソースはライセンスがいろいろあって、そこはわかりにくいですが、今まで技術的にかなり助けてもらっているし勉強にもなっているので、自分でもオープンソースのソフトウェアの開発に貢献したいなぁと思っています(いつかは)。

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

Windowsサーバを立ち上げているとリモートデスクトップで管理するのが便利。前の記事も参考に。でも心配になったのがセキュリティ。昔はこのリモートデスクトップ用のポート(3389)をターゲットに不正なパケットを送信するとWindowsを強制終了することができたらしい。記事。一応リモートデスクトップのプロトコル(RDP)はちゃんと暗号化されているらしい。Microsoftの解説サイト。ポートを変更する場合はここを参考に。

【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などのデバッグ文を書いてこのコマンドを打つと適用される。

【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
と大文字になっているので注意。インストールできたけどコマンドがない!としばらく考えてしまった。

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

Firefox3のダウンロードが可能になったので、早速インストールしてみました。インストールは無事終了。Firefox2を上書き更新しました。いくつか対応してないアドオンが無効になりますが、これは気にしない。個人的にはIrvine ContextMenuが無効になったのは痛いです。なるべく早く対応してくれることを祈ります。使ってみると、表示スピードが速くなっているのを体感できます。すばらしい。その分メモリは多く消費しているようですが、最小化したりするとメモリ解放してるみたいなので、これもfirefox2ではなかったすばらしい機能の一つです。その他の機能などはここから確認。さらにIEのシェアが奪われる予感です。

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で「ファイル」→「下書きをブログに保存」で下書きをアップロードできるので、会社では「開く」→「(ブログ名)」で下書きを選択して編集・投稿。簡単。・・・ですが、これに気づくまでに結構時間がかかりました。↓「開く」を選択したときの画面。開発プレビュー版なので英語表記ですが(^^;

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

私が愛用しているWindows Live Writerですが、これをインストールするためにはWindows Live おすすめパックを導入すると他の役に立ちそうなツールも一緒にインストールできて便利。・・・と思って、自宅マシンにインストールしようと思ってもなぜかエラーで失敗する現象に遭遇してしまいました。イベントログのエラーで検索してみてもよくわからず。結局Windows Live Writer単独でインストールすると無事できたので、もし出来ない人がいたらお試しあれ。マイクロソフトのダウンロードセンターからダウンロードできます。Writer Zoneにいけば、開発プレビュー版もダウンロードできます。

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

Windows XPのSP3が公開された次の日に自宅マシンにインストールしてみましたが、OS起動時になぜか強制終了し再起動を繰り返す現象にぶち当たってしまいました。ネットで検索してみると、どっかのメーカーのマシンで起きるみたいですが、私のマシンは自作マシン。セーフモードさえできない状態なので、しょうがなくクリーンインストール。クリーンインストール直後にSP3をインストールすると、これは素直にインストール完了。起動も問題なく、他のドライバ、ソフトをインストールしたあとでも正常に動作しました。そのあと別の問題で結局今はSP2に逆戻り・・・余計な時間を使ってしまった。家のマシンならともかく、会社のマシンにはまだインストールできないなー。多くの企業でもSP3の適用を禁止しているみたいです。

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

YouTubeのAPIを使っていろいろやっているところですが、そのドキュメントが日本語で表示できるようになりました。ニュース記事英語でもなんとなく読めますが、やっぱり読むスピードが全然違うのでうれしい限りです。このときにYouTubeへアップロードするコードを書いているので、そこからリファレンスへリンクできます。日本語表示したい場合は右上の「English」を「日本語」へ。

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

はまると痛いネットワーク。これでもいろいろと勉強して詳しくなっているつもりですが、ツールを使って監視できるようになりたいので、そのためのメモ。とりあえず「ネットワーク 監視 SNMP」というキーワードでGoogle先生に聞いてみるといろいろと詳しくなりそうなページが出てくる。時間があったら読んでおこう。あとここの記事の途中で書いてある「Wireshark」というツールも気になるところ。こんなツールも使いこなせるとネットワークトラブルも恐くないかも?

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

Gimpはオープンソースの画像編集ソフト。Windows版、Linux版、Mac版もあるらしい。Wikipediaが分かりやすい。大学の研究室にいたころはGimpを使って画像編集してました。懐かしい・・・。でもPhotoshopを使うようになってからは、ほとんどPhotoshopで画像編集を行いますが、Gimpでも(慣れれば)(ほとんど)同じことが可能です。Photoshopを買うお金がない場合はGimpをマスターしてみてもよいかも。日本語版は直感的に分かりにくい訳があったりする。でも、すばらしいソフト。

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

イメージ
リモートデスクトップを使うとFTPとか使わずにファイルを転送することができます。接続先が対応している必要があるのでWindows 2003 Server以上が必要。WindowsXPは試してない。Windows 2000 Serverでは駄目でした。まずはここを参考にリモートデスクトップを最新にします。古いのでもできるけどね。転送速度が速くなっているらしいので、最新にしとくのをおすすめします。リモートデスクトップを立ち上げてオプション→ローカルリソース→詳細を開くと下のような画面が出てきます。ここで選択したドライブがリモートデスクトップで接続したあとにマイコンピュータから別ドライブで参照できます。1ファイルぐらいなら元のPCで「コピー」しといて、リモートデスクトップの画面で「貼り付け」すれば自動的に転送してくれます。あとLinuxでもリモートデスクトップを使うツールがあります。ここ参考サイト

【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()で確認する。

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

order by で昇順ソートするとNULLの表示順がDBによって変わってきます。SQL Serverの場合は一番最初。PostgreSQLとOracleは最後。これを意図的に並び替える場合はorder by句にcase文を記述します。実際のコード例はここを参考に。Oracleの場合はnulls firstを記述すればコントロールできるみたいです。

正規表現で文字列の否定

イメージ
入力チェックなどでお世話になる正規表現ですが、これがなかなか奥が深い。複雑な正規表現は一体何をしているのか解析するだけでも一苦労。この前壁にぶつかったのが 「ある特定の"文字列"を含まないようにチェックをかけたい」 というもの。ある特定の1文字を含まないような正規表現は簡単ですが、文字列となると、これが結構難しい。たとえば「a」と「b」は含まれていていいけど、「ab」という文字列は駄目という場合。なんとなく ^[^(ab)]+$ でいけそうな気がするけど、これでは駄目。ちなみに正規表現を試したいときはここのサイトを利用すると便利。どれがマッチしたのかを視覚的に表示してくれるので、とってもわかりやすい。「ab」の文字列を否定する場合は「b」の前に「a」がないという記述をしないと駄目らしい。ここを参考に。実際の正規表現はこんな感じ。 ^(([^b]|[^a]b)|[^a]a)+$ちなみに頑張って正規表現でチェックする必要はない。<2009/05/14 追記>
コメントで教えてもらったサイトが分かりやすく解説しているので、そちらも参考に。

【PHP】sprintfで桁埋め

やりたいときに忘れているspintfのメモ。0で桁埋めしたいときは次のようなコードを記述。$sTest = "test%02d";
for ($i=0; $i<20; $i++) {
    $sResult = sprintf($sTest, $i);
    echo $sResult . '<br />';
}これはtest01, test02・・・のように画面に表示する。PHPマニュアルはこちら

【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

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

にGPLライセンスについて書いたので、その続編で今回はBSDライセンスについて整理。とりあえずwikipediaへGPLライセンスと違って「無保証」であることの明記と著作権表示をすればソースコードを公開しないで配布(頒布)可能。なので商用化がしやすい。元々のBSDライセンスは開発者に対する謝辞(宣伝条項)を表示しなければならなかったため、複数のBSDライセンスを組み合わせてソフトを開発した場合、表示しなければならない宣伝条項だけで複数のページを占有してしまう問題があったが、現在はその宣伝条項が削除された「New BSD ライセンス」が一般的らしい。さらに元々のBSDライセンスはGPLライセンスと共存できない。BSDライセンスが抱える問題GPLライセンスと矛盾する or 矛盾しないライセンス一覧はこちら。<2009/7/22 追記>
ライセンス条項の日本語訳をまとめたサイトがあったので覚え書き。OSI承認オープンソースライセンス 日本語参考訳