今時fatalsToBrowserて・・・

知り合いに聞かれた質問に答えてたつもりだったけど、壮絶に誤爆して#plagger-jaへ。
そしたら「今時fatalsToBrowserて」と言われました。
ある意味ラッキーな誤爆だったのだろうか?
KCatch! KCatch! とKCatch.pmをPushされたので使ってみました。

#!/usr/bin/perl
use strict;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);

print CGI->header;
die "ye shall die";

とした場合は、

Software error:

ye shall die at /var/www/test.cgi line 8.

For help, please send mail to the webmaster (webmaster@localhost), giving this error message and the time and date of the error. 

という感じですが、

という風にKCatchを使うと

Catch: Wed Apr 11 20:26:56 2007 [test.cgi:8:die] 
ye shall die at /var/www/test.cgi line 8.
test.cgi with Perl 5.008008 for linux

こんな感じになります。
まだ良く分かっていないのでしばらく使ってみます。

ThumbSenseは非常に便利

ThumbSenseというソフトウェアをかれこれ2年以上使っています。
タッチパッドを動かすときにホームポジションから離れてしまうのを抑制できます。
タッチパッドな人で使った事が無い人は試してみることをお勧めします。
特に、VimEmacs等のホームポジションのまま作業できるエディタになれている人は。


詳細は配布元を見てもらうとして簡単に説明するならば、
タッチパッドに触れている間はキーボードに違うキーを割り振る」事を可能にするソフトウェアです。
主にマウスクリックを割り当てるためのソフトな気がしますが、他のアプリケーションも登録できます。
デフォルト動作では、タッチパッド+Fで左クリック、Dで右クリック等が割り振られています。
慣れると全くホームポジションから動かなくて良くなるので非常に便利です。
っていうか、もう無しではしっくりこないです。


唯一の弱点は真ん中クリックができないことですが、
AutoHotkey等を用いてクリックだけはできるようにして使っています。
なんかいい方法はないのかなぁ・・・。
個人的には必須なソフトだけれど久しく更新が無いのが悲しいです。
類似ソフトとかも知らない(or見つけれない)し。


ThumbSense:タッチパッド用対話技法の提案

Plagger World Tour in 大阪に参加してきました

初めてのPerlコミュニティなイベント参加ということで緊張しましたが参加してきました。
会社を定時ぴったりに抜け出して(?)JRに乗ったものの長岡京(京都)からなので18時30分ぐらいになりました。

さて、今回のセミナーを聞いてPlaggerはやはり熱いなと思いました。
何でもできすぎるPlaggerですが、(主に)Feedを入力として何かをするというのが基本との事。
適当ですがメモをとったのを下記に書いてみます。

  • 「なんてこったPlaggerCPANのほとんどのモジュールが必要だ・・・」
  • (Plaggerの)インストールは大変だけどaptやyum等で多少は楽になる
    • CPAN.pmからはforce install Plaggerしろ(テストでこけても大体大丈夫)
  • Plaggerの最初の動機は記事をメーラで読みたいという所から始まっている
    • 副産物としてGmailのGroupingやDiff等の機能があり便利だ
  • 記事を集める際には自前でWebクローラを用意すると大域その他の無駄なのでBloglinesにやらせれないか?
    • この辺りの思いつきがPlaggerにつながっている
  • Widgetを用いて「はてなブックマークに登録」とかのリンクを表示可能
  • 基本的にFeedの形に変換できたらなんでも可能
  • Plaggerはやろうと思えば何でもできるけど「Feedを元に何かをする」というルールに基づき各Pluginが協調動作していく
  • Plaggerのプレゼンは何度もしているので(プレゼンで話す内容に)飽きてきた by 宮川さん
  • 19:20からの後半は「ペース上げていくからついていけない人は取り残されてください」
  • PlaggerはOutput部分だけを変えると複数の形式での出力を簡単に行うことが可能
  • Plaggerを使ってのOutput部分(Publish::○○というモジュール)は多数ある
    • YouTubeffmpegで変換を行う
    • 上司にばれずにBlogを読むため(?)のPublish::Excellとか
  • 入力部ではCustomFeedを使うと何でも入力にできる
  • それPla」という言葉は宮川さん自身が作ったらしい(違うかも by 宮川さん)
    • でも「それPla」というと「Plaggerでどうするかなんて知らねーよ」とか言われるので使いどころに注意
  • PlaggerのPlugin開発について
    • 基本的にソース嫁

ってことで、いろいろためになる話を聞けて有意義でした。
その後の飲み会にも混ざってきましたが、宮川さんとも話しができてよかったです。
Plaggerの野望の一部を見ることができたなぁとか思えました。

POEをインストールしてみる

基本的に取り残されているから今頃POEなわけで。
というか、POEは大分前にもチャレンジしたことがあるけど、挫折していました。
最近また入門してみようと思ってDocumentを読んでいます。


入門は以前も読んだことがありますが、A Beginner's Introduction to POE を読みました。
基本的なPOEの使い方として、複数の接続を受け取るHTTPサーバーが題材になっています。
このサーバーでは計算式を入力すると答えが返ってくるというものです。
若干現在のPOEの構文とは違う点がありますが、最新のPOEで動くSourceも落とせるのでいい感じです。


でも、まだPOEを使ったそれっぽいプログラムは書けません。
精進が足りませんね。

CPANモジュールに色分け機能が追加

release 1.88から色分けが可能となっています。
例えば、make testの際のOKメッセージが青く表示されてればOKだし、
赤で表示されていたらなんらかのエラーがあることが目視できます。


下記のように実行すればOKです。

prompt > perl -MCPAN -e shell
> install CPAN
> reload cpan
> o conf init /color/
(中略)
> o conf commit


私自身の環境としては、putty+screenというCUIオンリーで作業しているので色付けは大歓迎です。
目視で分かりやすいのは非常に重要で、やはりSyntax Highlight等も含め色付けは重要だと思います。
今まで無かったのが不思議なくらいです。

参考: CPAN-1.8801 - query, download and build perl modules from CPAN sites - metacpan.org

UltraVNC SCでサポートを行う

たまに「○○が動かない」等の電話がかかってきます。
説明をしようにもまず使ったことが無いソフトだったり、
そもそも相手側に根本的な知識が足りない(+知ろうとしない)事が多いです。
そんな時は、とりあえずリモートで動かしてしまって解決できる事もあります。
この場合UltraVNC SCが便利ですよ、という事を最近知ったので備忘録もかねて。


UltraVNC SCは、listenモードで待ち受けるUltraVNC Viewerへの接続を簡単に行うツールです。
UltraVNC Serverのインストールをさせる必要も無く面倒が起こりにくいです。
具体的な手順は下記の通りです。

  1. こちらがUltraVNC SC用のバイナリを作成する
  2. こちらUltraVNCのListenモードで待ち受ける
  3. 作成したバイナリをおいた場所を相手に伝え実行してもらう

以上の工程を行えば無事こちらから遠隔操作が可能となります。
以下、実際の作業メモ。


http://ultravnc.sourceforge.net/addons/singleclick.html からcustom.zipをDLし解凍。
中身のhelpdesk.txtの[HOST]の部分を自分のIPアドレス等で指定します。
Portは5500がデフォルトっぽいのでそのままにしておきます。
で、間違えないよう[HOST]の部分は1箇所だけにしておきます。

[TITLE]
           UltraVnc SC

[HOST]
Internet support
-connect www.example.com:5500 -noregistry

[TEXTTOP]
Dubble Click to make a connection

(後略)

出来上がったら、helpdesk.txtをZip圧縮します。
その後、UltraVNC SC Creator tool から先ほどつくったhelpdesk.zipをUploadします。
user/passはfoo/foobarを入力します。
後は出来上がったファイルをダウンロードして適当なServerにUploadします。
相手にはUploadした場所を携帯メール等を用いて伝えるといいでしょう。


こちら(サポート側)の準備はUltraVNCのViewerをDownloadしてlistenモードで立ち上げます。
「vncviewer -listen」とすればlistenモードで立ち上がります。
listenモードはデフォルトでtcp 5500を使用するのでRouterの設定も適宜行ってください。


後は、相手に先ほど作ってもらったファイルをDownloadしてもらって実行してもらえば無事VNCで操作可能となります。
本当は通信経路の暗号化等いろいろ必要ですが、とりあえずはこんなところで。


参考: http://kyms.ne.jp/item/40

CPANのMirrorを作成

ほとんどというか全てぱくりですが、CPAN::Miniを使ってLocalにMirrorを作成することができます。
以前にもこのModuleが気になったことがあったのですが流してました。

うちの環境は非常に低速回線(100KB/s程度)なのでこういうのは非常に助かります。
常時立ち上がっている鯖マシンがあるので毎日cronでMirrorをUpdateしています。
tcsh使ってるので下記のように書いたファイルを用意してcrontab -eしています。
Mirrorとして使うServerは、CPAN Mirrors - metacpan.org から探すことが可能です。

#!/bin/tcsh -f
/usr/bin/minicpan -l /path_to/CPAN/ -r http://ftp.dti.ad.jp/pub/lang/CPAN/ >>& xxx.log

んでもって、Apache1.3で下記のように設定してあげるとLan内のマシンからも参照可能となります。

Alias /CPAN /path_to/CPAN
<Directory /path_to/CPAN/>
    Options Indexes
    AllowOverride None
</Directory>

最後にCPAN::Miniで作成したリポジトリを使うようにCPANの設定を編集します。
良く分からない時は、perl -MCPAN -e mkmyconfigしてみると良いかと。
ちなみに、下記のように完全にLocalのみのリポジトリにすると外部への通信は発生しません。
通常は、urllistの先頭にLocalのリポジトリ、次以降に通常のリポジトリをいれるべきかと。

'urllist' => [q[http://server_machine/CPAN/]],

http://blog.bulknews.net/mt/archives/002069.html