VMware ESXi はデフォルトでプロミスキャスモードがOFF

2009 年 4 月 19 日

VMware ESX系(たぶんVMware Serverも)では仮想ネットワークをいくつも作れるのですが、
そのネットワークにどっかネットワークをVPNで持ってきてブリッジさせたい時、デフォルトの設定ではできません。
VPNツール(OpenVPNやPacketix)などでネットワークのブリッジをするためにはそのNICがプロミスキャスモードに対応していないとだめですが、デフォルトで拒否する設定になっているので動作しません。
以下のような設定にすることでプロミスキャスモードを利用可能にすることが出来ます。
プロミスキャスモードの設定

munin-node-win32でメモリーのグラフが出ない問題

2009 年 4 月 9 日

実家のサーバー達の状態をmuninというソフトを利用してグラフ化している。
http://www.koni-net.com/munin/
この春にサーバーをリプレースした際にLinuxだけでなくWindows Serverの情報もグラフ化したいと思った。
muninは cronで動くグラフ生成と munin-nodeと呼ばれるリクエストに対して状態を返すノードで出来ている。
Windows で動くmunin-nodeがあればmuninで楽にWindowsの情報もグラフ化できるなと思い探した。
http://sourceforge.net/projects/munin-nodewin32/
見事に、munin-node-win32という素晴らしいのがSoruceForgeであった。
最新版の1.5をインストールしてみたが、メモリのグラフがうまく表示されない。
HDDの温度などのグラフも表示できないが、これは別のツールを入れて必要があると書いてあった
メモリーは特に外部のツールは必要ではないにも関わらず 表示が出来ない。
解決法を探したところ
グラフ生成側の方の設定を少し変えればちゃんとグラフが表示出来るようである。
CentOSでは以下の通りでなおった。
/etc/munin/munin.conf
[windows] #ここからWindows Serverの設定
address 192.168.1.3 # Windows ServerのIPアドレス
# 以下でメモリーが表示出来ない問題を解決
memory.swap.label swap
memory.swap.draw STACK
memory.swap.info Swap memory used.

NetcatでLAN内のLinux同士のファイル転送

2009 年 4 月 9 日

知り合いに教えて貰った方法なのですが、実家でサーバーのリプレースでとても役に立ったので紹介。
LinuxからLinuxにファイルを転送するのはscpやNFS、FTPなどを利用するのが一般的だが、
転送先にSSHが動いてない時や容量が大きすぎてとてもscpを使う気が起きないとか、
そこまで使いまくるわけでもないのでNFSやFTPを建てるのは面倒ってときにNetcatが便利です。
先に転送先の方で、「nc -l 1234 > img.bin」 (-l は listenモードオプション)
転送側の方で、「nc 転送先IP 1234 < img.bin」
のようにやることで(1234はポート番号)、簡単にファイルを送ることが出来ます。
いくつもファイルがある場合はtar.gzなどでまとめてから送ってもいいですね。

url_forやlink_toでparamsを追加する方法

2009 年 4 月 8 日

Ruby on Railsで現在のparamsを保持してさらになにかparamsを付け加えるようなリンクを作りたい場合がある。
検索結果のソート用リンクなどである。
Railsでリンクは基本的に link_to を使って楽にリンクを作ることが出来る。
これはurl_forと同じように動作してくれる。
link_to “結果を降順に” :overwrite_params=>{ :result_order=>”desc” }
のように書くことで すでに検索ワードなどが入っているようなURLにさらにresult_orderのパラメータを追加することができる。
もちろん url_for でも同様のことが可能だ。

ID3Lib のUnicode出力

2009 年 2 月 14 日

自分のMP3を瞬時に検索して聞けたらいいなーってことでMP3をMySQLに格納することに。
MySQL関係はPHPでこれまで扱ってきたんだけど、PHPだとMP3のID3タグを複雑に処理することが出来ない。
実際は不可能じゃないけど、PHPでバイナリ処理するなんてちょっと考えたくない。
ってことでml_ipod関係で使い慣れたID3Libを使って読み出してMySQL++を使ってMySQLにデーターを突っ込むことに。
ところが、ID3Libでいろいろ問題が発覚した。
ID3タグ規格はもともとマルチバイト文字を意識して作られていないのでShift-JIS形式だと問題が発生する場合が多い。
で、全てをUnicodeで処理するのが適切なのだがID3タグのUnicodeは一般的にUTF16が使われる。
ID3Libには GetRawUnicodeText() 関数が用意されていて、uint16 の配列で文字列を返してくれる。
しかし、どうもiconvなどで別の文字コードへ変換ができない。
どんな値が返っているか覗いて調べていると、どうもビットが反転している。
utxt = field->GetRawUnicodeText();
result = (ushort)(((utxt[i] & 0×00ff) << 8) | ((utxt[i] & 0xff00) >> 8));
上記のようにしてビットを反転することで無事使うことが出来た。
ちゃんと調べてないので詳しい原因は不明。
とりあえず報告しておこうかと思ったけど、もう既知のバグっぽい。

携帯向けサイトでTelリンクのキャリア別対応

2009 年 2 月 10 日

携帯向けサイトでは電話番号をアンカータグを使って、電話をかけるようなリンクや電話帳(アドレス帳)に登録することができる。
基本的に、
<a href="tel:01234567890">電話のリンク</a>
みたいな感じで書ける。
ただ、電話帳(アドレス帳)に登録する際の登録名や読み仮名、ついでにメールアドレスもみたいなこともキャリアよっては出来る様なのだが書き方が様々である。
簡単にまとめると以下の様な感じ

  • アドレス帳に登録する際の名前の属性

    • softbank: memoryname=”小西○○-コニシマルマル”
    • docomo: telbook=”小西○○”, kana=”コニシマルマル”
    • au: 非対応
    • 例(softbank):
      <a href="tel:01234567890" memoryname="小西○○-コニシマルマル">電話のリンク</a>
  • アドレス帳に登録する際のemailアドレスの属性

    • docomo: email=”test@test.aa.bb”
    • softbank: 非対応
    • au: 非対応
    • 例(Docomo):
      <a href="tel:01234567890" telbook="小西○○" kana="コニシマルマル" email="test@test.aa.bb">電話のリンク</a>

FreeBSD lsとか

2009 年 1 月 31 日

長年CentOSを使い続けてきた。
今回ML115にVMware ESXi Serverを入れれたので、いろんなOSで遊んだりしている。
※ML115にVMware ESXi Serverを入れる方法は時間があれば別記事で紹介したい
FreeBSD 7.1をインストールしてみて、これまでLinuxにしかほとんど触れてなかった人間が感じたことなど。
ls の色づけは、ls –color ではなく ls -G で。
Linuxのlsとは根本的に違うので、細かい色分けなどは出来ない。
どうしてもLinuxなlsが良い場合は
/usr/ports/sysutils/coreutils/ にて make install clean
Linuxのcoreutilsが頭にgを付けた形でインストールされる。
つまり、gls –color とかでLinuxっぽいlsを使うことが出来る。
FreeBSDにはrunlevelの概念がない。
詳しくはinit - Wikipediaなどを呼んで貰えれば分かる。
よってX Window Systemを導入したのでrunlevel 5で動かしたいなというわけには行かない。
/etc/ttys あたりを書き換えることで実現が可能。
私も今勉強中なので詳しいことは書けませんw;;

Google Chromeで外部XMLをLoadする

2009 年 1 月 24 日


FirefoxではJavaScriptで外部XMLをLoadするのに以下の方法をとるのが一般的でしたが、Google Chromeではloadメソッドが定義されてないため動作しません。
var xmldoc = document.implementation.createDocument(”", “”, null);
xmldoc.async = false;
xmldoc.load(xmlsrc);
なので以下のように、XmlHttpRequestを利用して取得します。
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open(”GET”,xmlsrc,false);
xmlhttp.send(null);
var xmldoc = xmlhttp.responseXML;
これならFirefoxでもChromeでも大丈夫です。
あと、Firefox3.0からなのですが、
上記の方法で取得したXMLをXPathで操作する際に
一般的に
var rootNode = xmldoc.documentElement;
var resNode = document.evalute(XPath, rootNode, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
で取得してたのですが、クロスドキュメントの違反で怒られます。
var rootNode = document.import(xmldoc.documentElement,true);
ってやってあげないと行けないようです。

Felica SDK

2008 年 12 月 2 日

工シスの近未来マルチメディアで使わせて貰っているFelica のSDKで遊びだした。
これは面白い。
学生証がFelica化するとの噂を聞いたので(携帯でも出来るのFelica機能も使えた)、これは面白い学園祭の本部企画とか出来たりするんではないだろうか。
もう実委OBだけど。
あんまり中身を書けないのが残念です。

nVIDIAのドライバがリモートデスクトップを出来なくする問題

2008 年 10 月 30 日

nVIDIAの最新のグラフィックスドライバーを使うとWindows XPでリモートデスクトップを使えなくなる場合があります。
古いバージョンのドライバにロールバックするなどの対策が各種ページで紹介されていますが、レジストリを書き換えることで解決ができます。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]

“SessionImageSize”=dword:00000080
の値を追加することで解決できます。
【ソース】
http://forums.nvidia.com/index.php?showtopic=67147