lv の alt screen
lv
便利なんだけど、alternate screen で動作するのがちょっとなぁ。
終了すると今まで表示してたの消えちゃうのが嫌。これってなんか制限できないのかなー。オプションみても特にないようだ。
風邪引いた
オレとしたことが、油断した。
くそう、なさけない。
スパム
ちょっと前から、本文なくて、添付ファイルだけのスパムが結構くるのだけど、うまくはじけなくてうざい。
spamassassinのベイズ学習はきかないっぽいから手動でルール作ろうと思ったけど、なんか一貫性ないし。charsetやヘッダ情報とかもバラバラなんだよなー。
maildropとかで飛ばして自前スクリプトでフィルタリングかね。本文なくて件名に日本語入ってなかったらはじくとか。スクリプト書くのがだるぃ。
開発環境
ANOTHER PIECES - Windows x VMware = 開発環境 Ubuntu Linux : Hasta Pronto.org
開発環境にGUIが必要かどうかという話。
僕らみたいなターミナル上で開発するような技術者の場合、開発環境として主に以下の3つがあると思う。というか僕が持っている環境なのだけどw
- Windows + VMWare(colinux)上のLinux
- OSX
- Linux
で、開発環境としてだけかんがえると3がベスト。
ターミナルは軽いし、svkでコンフリクトでたとき m おすと meld とかのグラフィカルなマージツールをシームレスに立ち上げられたり、まぁとにかくshellからGUIアプリとも連動できるのは良い。
それならOSXでいいじゃんと思うかもしれないけど、僕の評価ではこの3つの中でOSXは最低。
なぜならば良いターミナルアプリがないから。
GUIのemacs使えば良いのかもなーと思いますが、、まぁあくまでターミナルで作業する派としての評価です。
でもLinuxは開発環境としてはすばらしいけれど、常用するには足りないものが多すぎる。
で結局Windows+VMWareの環境になってしまうわけ。
VMWareにGUIをいれるかどうかというのは僕はやっていないけどマシンパワーがあるならありかなと。開発時はVMWareをフルスクリーンにしちゃえば3と同じ状況にできるし。
OSXでもParallelsとかにLinuxいれてとかってのも。。なんか違う気がするけど。
ただまぁLinuxのGUIって満足いく状態にするまでのカスタマイズがだるいからなぁ。
僕はこんな感じで使ってる。WMはpekwm、ターミナルはmlterm。pekwmはキー操作でWindow操作できまくれるのはかなり快適。こういうとんがったWMがあるのもLinuxの利点かな。
UPS買った。
こないだの落雷で停電して、自宅サーバーの一台がたちあがらなくなって(実際はBIOS設定ミスってただけだったのだけど)こまりまくったので UPS 買った。
APC の ES500 とかいうやつ。
とりあえずどんなもんかお試し中。
会社で使ってるメインPC、Macmini、24インチ液晶(2407WEP)つないだところ、管理ツールではバッテリーランタイム21分とでた。へー、結構使えるかも。
Twircにustreamチャット連携機能をつけてみた
IM <-> IRC な Twitter クライアント Twirc に ustream のチャット連携機能をつけてみた。
yaml のコメントアウトはずして適当に修正すれば、自分の twitter の更新が ustream チャットにもポストされるという感じ。
Twirc 自体は非常に安定していて、数ヶ月連続稼動させても余裕で動くのだけど、この新機能はまだ適当なので、ustreamとの接続が切れたりするとそこでとまっちゃったりとか、なんかいろいろおかしいかもしれない。
あとchannel適当に設定すると人のチャンネルにtwitterの更新流せてしまったりとかもするので気をつけて。
夢
なぜかkentaroさんと二人で渡米する夢を見た。
行きの飛行機の中で二人で英会話の練習。
僕はコーヒーを頼んだらコーラが出てきて、kentaroさんはオレンジジュースを頼んだらトマトジュースが出てきていた。
ustream hacks #3 publish movie from your own swf!
次、配信のほう。こいつはすこしやっかいだった。
まず接続は
nc.connect("rtmp://209.85.64.39/ustvVideo/{chid}", { id: "{userid}", sessionid: "{sessionid}", mode: "broadcast", channel: "{chid}", version: "v2.131b" });
とかいう感じ。
chid, sessionidはどちらも配信ページのswfソース部分にある。useridは配信ページを開いたときに http://www.ustream.tv/service.php
とかにPOSTしててその結果に入ってる。
そんで、
ns.publish("live_channel_{chid}", "live");
すれば配信される。はずなのだけど、されない。FMSへの配信自体はうまくいっていて、#2でやった自前再生swfでは再生されるのだけど、ustreamのchannelページではoff airのままだ。
FMSのほうに配信開始用の関数がある模様。それもパケット見てたら見つけることができた。
publish後、
nc.call("channelStatus", new Responder(function ():void { }), "{chid}", "live");
とかいれたら、channelページでも見えるようになった。これでいいのかしらないけど。
ただこれだと、一定時間で接続が切られてしまう。まだなにかあるっぽい。
どうもFMS側からcallBackという名前の関数をよんできていて、それをうけてpongというFMS関数をよぶようになっているようだ。これをしないときられちゃうわけだなきっと。
ので、
nc.client = this;
とかして、thisのクラス内に
public function callBack():void {
nc.call("pong", new Responder(function ():void {}));
}
とかしたら大丈夫になった。OKOK。
これでとりあえず配信もできるようになった。
あと他に callBack()
とおなじように viewersNum(num:Number)
とか定義しておくと、接続人数がかわるたびに呼んでくれるようだ。これで今何人とか取れると。
ustream hacks #2 play movie from your own swf!
にぽたんに続き僕も解析してみました!
ustreamのFMSを自前のswfから使う方法です。#2再生、#3配信、と続きます。
再生は普通にFMSで動画再生するのとほとんど一緒です。URLとか引数とかに気をつけるだけ。その部分だけ書きます。
nc.connect("rtmp://209.85.64.39/ustvVideo/{chid}", { mode: "channel", channel: "{chid}", sessionid: "{sessionid}" });
して、
ns.play("live_channel_{chid}");
以上!
{sessionid}
はプレイヤーのSWFObject部分にありますが、chidは少し見つけにくい。new videoRate('{chid}','XXXX','channel');
とかのやつ。
aptitude upgrade
しようとしたら
W: The "upgrade" command is deprecated; use "safe-upgrade" instead.
とかいわれた。お、お。
man みてみると
- upgrade -> safe-upgrade
- dist-upgrade -> full-upgrade
となったのかな。