mond-tech 忍者ブログ
焼肉屋さんが大好きです。いや、そうでも無い。 たぷたぷになってきてピンチです。
19
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

さっきのエントリついでに。

普通に、英数をCapsLockにする、でやると、
IMEを切り替えるたびCapsLockがかかる珍現象に見舞われるのでダメ。

CapsLockと、何か要らないキーを入れ替えて、入れ替えたキーにIME切り替えを割り当てる。

英語キーマップに無い、無変換を、IME切り替えに割り当てて、CapsLockを右Ctrlに割り当てる

キー入れ替えで

/3A7B
/9D3A

IME起動キーで

007b

PR
知らない人が居たので、何となく投稿。困るよね、確かにこれ。
設計した人間何考えてるのか脳みそ開けて見てみたい、よりむしろ、
脳みそ引き抜いて河原に捨てたいよね。

AutoHotKey使うと良い。超手抜きの方法で説明。

http://www.autohotkey.com/download/

インストーラー版をDL。何も考えずインストール。


適当な場所に、kill_browser_button.ahkと言う名前でファイルを作って

<!Left::Send,{Left}
<!Right::Send,{Right}


を書き込む。

\Program Files\AutoHotkey\Compiler\Ahk2Exe.exeを実行。

Required ParametersのSourceで、さっきのkill_browser_button.ahkを指定。
Converと押すと、kill_browser_button.exeが作成されるから、それを実行すればOK。
後は、この実行ファイルをスタートアップに指定しておけば良い。




#!/usr/bin/perl

use strict;

use Proc::Fork;
use POSIX;

chdir '/';
close $_ for *STDIN, *STDOUT, *STDERR;

run_fork {
child {
POSIX::setsid;
while(1) {
# daemon operation.
}
}
parent { exit; }
};

AnyEventのechoサーバサンプル


#!/usr/bin/perl

use AnyEvent;
use AnyEvent::Socket;
use IO::Handle;

$| = 1;

my $HOST = '192.168.1.200';
my $PORT = 9999;

tcp_server $HOST, $PORT, sub {
my ($sock, $host, $port) = @_;
autoflush $sock 1;
print "Client connected: $host($port)\n";
my $watcher; $watcher = AnyEvent->io(
fh => $sock,
poll => 'r',
cb => sub {
my $data = <$sock>;
$data =~ s/\r?\n//g;
if ($data eq 'quit') {
print "Client disconnected: $host($port)\n";
undef $watcher;
return;
}
print "$data by $host($port)\n";
print $sock "[$data]\n";
},
);
}, sub {
my ($fh, $host, $port) = @_;
print "Echo server is listening on $host($port)\n";
};
AnyEvent->condvar->recv;


WEBには、sysread、syswriteのサンプルしかないんだよね。
バッファリングされちゃうからsys*系使うんだろうけどautoflushしちゃえば良い。
変数が開放されたタイミングで走る関数を定義する事が出来る。
AnyEventのサンプルコード見てもらえれば解かる通り、これを用いたコードは、
使い手側に、一見、使いもしない謎の変数確保を強要されるので、気持ち悪い事になる。
普通には使わない方が良いと思う。DESTROY、MooseならDEMOLISHでやれば良い。

#!/usr/bin/perl

use AnyEvent::Util;

my $guard1 = create_guard(1);
my $guard3 = hoge();

{
my $guard4 = create_guard(4);
}

undef $guard3;
undef $guard1;

sub hoge {
my $guard2 = create_guard(2);
return create_guard(3);
}

sub create_guard {
my ($no) = @_;
return AnyEvent::Util::guard {
warn "Destroy $no";
};
}

2, 4, 3, 1の順でクロージャが呼ばれる。
Copyright c mond-tech All Rights Reserved
忍者ブログ / [PR]
にほんブログ村 IT技術ブログ Webサイト構築へ