2001-11-24[n年前へ]
■撤収準備
まずはapacheapache_1.3.22-win32-x86.exeをPortege3490にインストール。後のこともあるので、ポートは8080を使う。
引き続き、namazu…と続けていきたいところだけれど、それをそもそもWinベースのものにするか、しないか、あるいは、VirtualPCのLinux上で再現しておくか迷うところ…。
ちょっと気になって、DHCP接続のVirtualPCのLinuxにWin側からpingを飛ばすとちゃんと返事が帰ってくる。ってことは、VirtualPCのLinux上で再現しておくのが楽かも。自分の手元で完結してるし。うん、うん、それがいい。
あれ、だけどDNS周りをどうしよう?(リンク)
2003-04-12[n年前へ]
■jphotoできた。
ズーミングする写真集を作るツールの「zphoto」はとても綺麗なフラッシュ写真集を作ってくれる。しか〜し、基本的にunix上で動くことが前提で、残念ながらWindowsで動くツールではないのであった。それでは、ほとんど大多数の人は使えないというのに等しいのである…。
というわけで、作ってみましたjphoto。フォルダー内に入っている画像達から、自動的にzphotoモドキのフラッシュ写真集をWindowsで作ることができます。もちろん、本家zphotoに比べると実に小さなことしかできませんが、とにかくWindowsで動くのです。まずはサンプルの出力結果がこんな感じになります。緑の高原で風に吹かれているような、自然の気持ちよさをちょっと狙ってみました。
プログラムの内部からPHPでmingを操作しているので、動作するためにはモジュール版PHPのインストールが必要です。php.ini中に
extension=php_ming.dllという記述をしておくことで、PHPをmingに対応させます。
また、種々の画像ファイルに対応させるためにはSusieプラグインのインストールが必要です。で、肝心のソフトの方は、これ(場所が間違っていたのを直しました)です。詳しくは、コチラで。
が、果たして使う人がいるか…うーむ…。PHPのインストールは簡単だと思うけれど、PHPが必要だというのはなぁ…。
2004-10-23[n年前へ]
2004-12-02[n年前へ]
■WindowsのCUI版zphoto
WindowsのCUI版zphotoが欲しい、という話題。以前は、Windows版もCUIのみだったが、今ではGUI版のみのバイナリが配布されている。そこで、マウスを使いたくない時、だけどコンパイル作業がメンドクサイ時に作ったスクリプトがこれ。あぁ、なんて強引。「マウスは使ってない(あくまで私は)」という強引さ。
use Win32::GuiTest qw( FindWindowLike GetWindowText SetForegroundWindow MouseMoveAbsPix SendMouse GetWindowRect SendKeys);
my $pid = fork;
die unless defined $pid;
if($pid) { sleep 1;
@windows = FindWindowLike(0, "フォトアルバムを作成");
foreach my $win (@windows) { SetForegroundWindow($win);
SendKeys("{ENTER} {TAB}{ENTER}{ENTER}");
} for(my $i = 0;
$i < 61;
$i++){ @windows = FindWindowLike(0, "フォトアルバムが作成されました");
if(@windows > 0){ last;
} else{ sleep 1;
} if($i == 60){ &error("Time Out!");
exit;
} }foreach my $win (@windows){ SetForegroundWindow($win);
SendKeys("{TAB}{ENTER}%{F4}");
} exit;
}system("\"$zphoto\" -o \"$SwfPath\" --photo-width=800 --gamma 1.25 --title \"ppt2zphoto\" $Slides");
exit;
2008-07-31[n年前へ]
■「計測・解析ソフトのハック」が実験系技術者の一番のLifeHack…かもしれない。
「計測・解析ソフトウェア/ハードウェアのハック」が実験系技術者の一番のLifeHack…かもしれない、と思っています。それを逆に言うならば、実験系技術者が費やす多くの時間を、計測・解析ソフトが消費しているということになります。つまり、一番時間を消費している部分の高速化をすることが、全体の高速化に効果的だろう、ということです。
そんなこんなで、何を今更…という、Perlで「シリアル通信とユーザインターフェース自動制御」のやり方を整理しておくことにしました。なぜかというと、経験的に「計測・解析ソフトウェア/ハードウェアのハック」は、シリアル通信制御とユーザインターフェース自動制御でほとんどの場合対応できることが多いから、です。しかも、計測・解析ソフトウェア/ハードウェアを外注したりすると、時間や費用が無視できないほどかかったりするわけで、そういったシステムを簡単に作ることができるということを知っていると、結構便利であるわけです。
たとえば、RBIOシリーズのような汎用(入)出力ボードは、お小遣い程度の価格で「シリアル通信経由でのハードウェア制御をする」ことが簡単にできます。それは、「計測ハードウェアのハック」がとても簡単にできる、ということです。
そして、Windows上(あるいはWindows上で動くソフトウェア)の作業を”勝手に”プログラミングすることができれば、「計測・解析ソフトウェアのハック」も簡単にすることができます。
というわけで、「シリアル通信とユーザインターフェース自動制御」ができれば、「計測・解析ソフトウェア/ハードウェアのハック」を簡単に実現することができるわけです。
とりあえず、たとえば、Perlで「シリアル通信とユーザインターフェース自動制御」を使うには、Win32::SerialPort と Win32::GuiTest という二つのライブラリが必要です。それらのインストールは、コマンドプロンプトから、
ppm install Win32-SerialPortという風に行うことができます。もっとも、インターネットに直接アクセスすることができない Proxy 内部からであれば、
ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd
set HTTP_proxy=http://proxy.hoge.com:8080といったような、Proxy対策の環境変数設定をコマンドプロンプトから前もって行っておくことが必要になります。
set HTTP_proxy_user=hogehoge
set HTTP_proxy_pass=hogehoge
あとは、シリアルポート通信ようのConfigファイルを作る、プログラムを書く、ということだけです。たとえば、
!c:\perl\bin\perlといったライブラリを読み込む宣言をした後に、ソフトウェアのユーザインターフェース周りは、
use Win32::SerialPort;
use Win32::GuiTest qw( FindWindowLike GetWindowText SetForegroundWindow MouseMoveAbsPix SendMouse GetWindowRect SendKeys);
MouseMoveAbsPix(320, 160);というような感じで、マウスやボタンやキーボードを自動で動かすことができます。また、ハードウェア周りは、
SendMouse("{LEFTCLICK}");
SendKeys($fileName);
SendKeys("{ENTER}");
my $conf_file="serialport.conf";という感じで*、スイッチやモータを適当にシリアル通信(とRB-IOのようなお手軽I/Fボードで)制御すれば良い、という具合です。午前中に秋葉原に行って部品を買って、午後にスクリプトを2,30行書けば、それで自動計測・制御システムのできあがり、というわけです。
tie *PORT, 'Win32::SerialPort',$conf_file or die; pushSwitch(0);
close PORT or warn "Can't close serialport:COM*";
sub pushSwitch{
my ($portNo) = @_;
my $text=sprintf "PCT%d%d\n",$portNo,1;
print PORT $text;
}
*(なお、ここで使用している"serialport_conf"は、こういったserialport_conf.plで作成します)