@array = split /http/,$string;
こうすれば "http"の前後で文字列を分割できる。 何に使うかというとアクセスログの検索文字列の抽出である。 今は、まず ?で区切って、格納した配列を見て、また区切って、などとやっているのだが、 見逃しや余計な物がくっついてエンコードに失敗したりしている。 区切り文字は1文字でないとダメだと思い込んでいたのだ。
@array = split /http/,$string;
ISCW(Implementing Secure Converged Wide Area Networks)はセキュリティ、IPsecとかファイアウォールとか。
ONT(Optimizing Converged Cisco Networks)はQoS、それに無線とVoIPが加わる。
ONTは黒本をやるところまで行ったのだが結局受験しなかった。
セキュリティやQoSというのは仕事でも触れる技術ではある。必要性は感じないことはない。
でも、これらは実感しにくいんだよね・・・。
ONTとISCWを黒本とかクラムメディアでとってしまおうかと思っていたが、せっかく買ったTSHOOTのガイドをパラパラ見ているとちょっとおもしろそうだ。単なるプロトコルの内容だけでなく、トラブルシュートの方法などが書いてある。これは受かるかどうかは別としてとりあえず読んでみる価値がありそうだ。取るだけなら年明けでもいいんだし。
とりあえず受けてみる。TSHOOT。468ページ。毎日読んでも一日10ページで47日。明日から始めたら12/12までかかる。
だがそれでやっと下準備が整ったにすぎない。間に実機確認をしたり、調べたりすることも必要。かなりのハードスケジュールである。
とりあえず全頁めくってみる。Trouble Ticket というのがある。構成図とshow commandの結果がある。トラブルのサンプルのようなものだ。これが全部で11個ある。これを全部読むだけでもおもしろそうだ。
security, voice, wirelessあたりが嫌だな。
chapter1を読み通した。ここはまだページ数も少なく序の口だが、思ったよりラクに読めた。これならいけるかもしれない。
dynamipsをVista32環境で復活させる。IISのFTPサーバを立てる。が、うまくアクセスできず、インターネット経由でFTPする。configを一定間隔でftpアップロードする archiveという設定を知る。
L3スイッチが必要だ。3550がだいぶ安くなった。EMIとSMIがある。パフォーマンスの問題だけなら安いほうでいいのだが、できることに違いがあるとなると困る。
SMIはRIPくらいしか動かず、EMIだとOSPFやBGPも使えるようだ。ルーティングはルータで、カタリストはL3スイッチとしての機能だけを見るようにすればよさそうだがどうせならEMIがいいな。
L3スイッチが我が家にやってきた!
ついにTCPに直面するときが来ました。SYN, ACK, FIN, セッション、なんのこっちゃ!!
複数台のcatalystをそれぞれvlanで区切って、その区切ったvlan同士をカスケードしてるんだけど、native vlanが一致しないというワーニングがうるさい。
native vlanってなんだっけ・・・と調べたがmode accessで使用している限りは関係ない。
きっとvlan idをあわせればメッセージは消えるだろうがメンドクサイ。
no cdp run
(この件については後日考察する)
use 5.010; say "hello";sayという関数がversion5.10から追加されているそうだ。versionを確認したら5.14なので使ってみたらエラーになったので調べると、
use 5.010;が必要とのことであった。sayは\nをつけなくても改行してくれる。
sub logmsg{ print "$0 $$: @_ at ", scalar localtime, "\n" }
プログラミングPerlのSocketのサンプルにあった一行。perl -MCPAN -e shell
install Net::Twitter
yum install -y openssl-devel
use strict;
use warnings;
use utf8;
use Encode;
use Net::Twitter;
binmode STDOUT, ':utf8';
my $twit = Net::Twitter->new(
traits => [qw/API::REST OAuth WrapError/],
consumer_key => 'YOUR_CONSUMER_KEY',
consumer_secret => 'YOUR_CONSUMER_SECRET',
ssl => 1,
);
$twit->access_token ('YOUR_ACCESS_TOKEN');
$twit->access_token_secret('YOUR_ACCESS_TOKEN_SECRET');
while (1){
my $line;
open(my $file, "<tweets.txt");
rand($.)<1 and $line = $_ while <$file>;
close $file;
my $decoded = Encode::decode('utf8', $line);
$twit->update($decoded);
sleep 3600;
}
exit;
テキストファイルからランダムに1行ずつ選んでツイートする、簡単なボット。 ちょっと手間取ったのは日本語の扱い。 tweets.txt は utf8で保存してあるのだが、なぜかそのまま Net::Twitterに渡すと文字化けする。 リテラルは化けない。 いろいろ調べて、utf8をいったんデコードして渡すという、ちょっと釈然としないやり方で解決。
use Win32::Clipboard;
my $clip = Win32::Clipboard();
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime();
$m = $mon+1;
$text = sprintf ("日報\(2011/%02d/%02d\)",$m,$mday);
$clip->set($text);