2010/02/21

IRCとTwitterの同期

しなです。小ねたをひとつ。

連絡を取るときは,過去にいろいろ作った関係上IRCを使うことが多いのです。
しかし,最近はTwitterもあるので同期できないか調べてみた。

#まぁ某所のログはすでに10年以上たまってるし。
#PCや携帯からもIRCログが読めるので,何とか有効活用したかったってのもあるんだけど。

ググればいくつか出て来るんだが,今回はサーバーを使わない方向で。

といってもLimeChatのサンプルスクリプトにそのもの(「Twitter にポスト」)があるんだけどね。
このままだと /tw ステータス って打ち込まないといけないし。あとめんどくさい。
なのでイベントを変えて処理を追加してみた。


function event::onChannelText(prefix, channel, text)
{
  if (prefix.nick == myNick) {
    // 自分が送信した時の処理
    // Twitter へPOST
    var user = '....';                 // Twitter username
    var pass = '.....';                // Twitter password
    
    var req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req) {
      req.onreadystatechange = function() {
        if (req.readyState == 4) {
          log('POST OK: ' + req.responseText);
        }
      }
      req.open('POST', 'http://twitter.com/statuses/update.json', true, user, pass);
      req.send('status=' + encodeURIComponent(text));
    }

  } else {
    // 受信した時の処理
    // なにもしない
  }
}


あとはLimeChat上の設定でこのスクリプトを使うようにしてやればよい。


しかしクライアントでJavascript使えるのは便利かもな

2010/02/09

Debianにvirtualboxをインストール

2011/07/29 追加:
virtualboxの公式ページが充実しましたね。そこみながらインストールするのが最新版が使えて良いと思います。

最近は同僚に勧められてVMWareからvirtualboxに移りました。いろいろと良い点はあるのですが、個人的に気に入っているのはスナップショットの履歴を取れることや、リモートデスクトップをサポートしていないguest OSにリモートデスクトップでアクセスできることでしょうか。XServerって遅くてイライラするんですよね...。
で、Debian 5.0(lenny)にvirtualboxをインストールしたのでメモ。

# aptitude install virtualbox

aptitudeを使ってサクッと起動しようとすると、モジュールを組み込めと叱られた。

Please install the virtualbox-ose-modules package for your kernel and execute 'modprobe vboxdrv' as root.
VBox status code: -1908 (VERR_VM_DRIVER_NOT_INSTALLED).
終了コード:
0x80004005
コンポーネント:
Console
インターフェース:
IConsole {d5a1cbda-f5d7-4824-9afe-d640c94c7dcf}

rootになって組み込む。

# modprobe vboxdrv

毎回モジュールを組み込むのは面倒なので、/etc/modulesにもvboxdrvを追加しておく。
今度こそ起動...と思ったら、またエラーが出た。

The VirtualBox kernel driver is not accessible to the current user. Make sure that the user has write permissions for /dev/vboxdrv by adding them to the vboxusers groups. You will need to logout for the change to take effect..
VBox status code: -1909 (VERR_VM_DRIVER_NOT_ACCESSIBLE).
終了コード:
0x80004005
コンポーネント:
Console
インターフェース:
IConsole {d5a1cbda-f5d7-4824-9afe-d640c94c7dcf}

どうもvboxusersグループの権限が必要なようだ。てことで、virtualboxを起動したいユーザをグループに追加。

# gpasswd -a ユーザ名 vboxusers

やっと無事に起動。
解像度を自由にいじれるようにするため、ドライバをインストールする。本家で公開されているdebianパッケージからVBoxGuestAdditions.isoイメージを抽出する。

# dpkg-deb -x virtualbox-3.1_3.1.2-56127_Debian_lenny_amd64.deb foo
# find -name \*.iso
foo/usr/share/virtualbox/VBoxGuestAdditions.iso

見つかったisoイメージをGuest OSにマウントさせればドライバをインストールすることができる。

2011/07/01 追記:
バージョンアップされて変わったのか、virtualboxをインストールしただけではリモートデスクトップでアクセスできなくなっていました。拡張パックをインストールする必要があるんですね。気づかずにしばらくあがきました。トップページからExtension Packをダウンロードしてインストールです。

$ wget http://download.virtualbox.org/virtualbox/4.0.10/Oracle_VM_VirtualBox_Extension_Pack-4.0.10-72436.vbox-extpack
$ VBoxManage extpack install http://download.virtualbox.org/virtualbox/4.0.10/Oracle_VM_VirtualBox_Extension_Pack-4.0.10-72436.vbox-extpack

2011/07/29 追記: 今はextpackをダウンロードしてダブルクリックするだけでインストールできました(virtualbox-4.1/Debian Squeeze)。時代の進歩すげー。

2013/08/17 追記: 我ながら何度同じミスをしたら気がすむのだろうか。「リモートデスクトップはコンピュータに接続できません。次のいずれかが原因です。」と出た場合は、きちんとホストOSのIPアドレスを入力しているか確認すること。ゲストOSのIPアドレスではない!