ホーム » 未分類 (ページ 76)
「未分類」カテゴリーアーカイブ
USB接続の最小マイコン
スラド にて USB に挿す CPU が紹介されている。小さいながらも14pin程の配線が引き出せそう。 関連ネタで、サンハヤトの jouet bleu なる製品も紹介されている。これな実験でも使っている H8/3664 の方が、触りやすいか…
民主・永田さんはめられた?
堀江もん事件の疑惑メールで民主の永田議員が辞めるらしい。 ネットでは、メールの真偽鑑定ネタで盛り上がっている。 でも偽物としても、ネタが上がってから、 小泉さんがガセと完璧に決めつけるまでの時間が短すぎると思うんだがなぁ….
# 自分でガセネタ流したんちゃうかぁ~♪?
ママ読んどきね…
コマンドを使って…
ネットワークの設定のトラブルを解決する方法の解説。
社内でフリーソフト使用厳禁っつーのなら…
# ママ読んどきね…
ツールを使って…
ツールを使ってもええんなら、こーゆーのもできまっせ!
UWB,ZigBee だってさ。
聖火の点火(開き直りだな…)
聖火の点火方式は毎度ながら『どう点ける?』に工夫している。 でも今回の点火方式は、『開き直り』を感じる。
聖火は、ローマで凹面鏡を使い苦労して火をつけ、絶対火が消えない特殊な箱やら、 予備の火やら、聖火リレーでも最悪の事態を想定した予備の火が入った箱が併走したり、 やたら工夫をしている。 日の光を起源とする火が聖火台まで届くことに意味があるんだと思っていた。 今回は、聖火が花火のリレーで聖火台に達する演出。 でもこれじゃ『燃焼現象が隣り合う燃焼現象を引き起こす』という聖火のリレーの原則に あわねぇじゃん… だけど、以前は火矢が聖火台を 2m ほど外れても火がついたり FN 気化したガスに引火したんだ…と無理に納得させてたり… /FN ということもあったし…。 明らかにリレーが成立しなかった事例から、開きなおったな…
ということで、現象のリレーが無意味になるのは時代の流れあるね…
だから、天皇家の男系 DNA のリレーも開き直ればいいんじゃねぇの…
オリンピック開幕(フィギアスケートに期待)
いよいよ冬期オリンピックが始まった。 個人的には、フィギアスケートに期待している。 といってもフィギアに興味を持ったのは、学生の頃に姉の見ていた少女漫画で、 スケートネタのものがあった時から。 トービル・ディーン組のボレロが懐かしい。 でも、どちらかというと、試合は見ててハラハラするから、 結果が出た後のエキシビションの方がいい。『美味しい所』だけ見れるというのもあるけど…
今年は村主、荒川 FN この人 TV での雰囲気をみてたら、絶対『アネゴ』だぞ! /FN 、安藤 FN 村主と比べて、対比的にえらく『口のサイズ違うなぁ』… /FN と期待できる人が多くて面白い。
風邪ひき
昨日から風邪をひいたみたい。けだるさや発熱がありインフルエンザを疑うけど、 どうもインフルエンザではなかった様。 でも、38.6 が出ると、体中節々が痛かった。
味真野小学校で出前授業
高専の地域貢献ネタとしての出前授業にて、AIBO を使ったロボットのデモ。 といっても、私はみつくんの学校をみてみたくてオマケ。
てらなす
年度末ということでガッコにて、物品購入。 学生さんの成績データの保管で、学科のサーバに保存しているが、 パケット盗聴なども考えると、自室内に大きなファイル保管が欲しい。 ということで、NAS の導入実験も兼ねて、BUFFALO の TeraStation を購入。RAID5 で保存可能なうえに、Windows サーバに認証問い合わせもできる製品。 どうせ中身は Linux + Samba なんだろうが、これなら Samba サーバに認証させて、 smbfs にてマウントさせりゃ、Linux のファイルシステムとしても十分使えそう。 FN 導入したのは、0.6TB(RAID5時:0.48TB) でテラには少し足りない… /FN
ということで、廃棄の PC9801 鎮座していたラックを回収し、別に購入する Windows マシンと一緒にパソコンのセッティングしなおしを予定している。 うーん、楽しそう…
qmail の送信データ数のカウント
MRTG にて qmail の送受信のメール数をカウントしようと、 qmailmrtg をインストールしようとするが、 multilog やら qmail の起動スクリプトの変更やら、後々面倒そう。 ということで、カウント用のプログラムをちょいと作る。
logcount.pl
Debian には、log 関係のプログラムも色々あるみたいだけど、 設定もややこしそうで、Perl FN ログ整理ということで『C で高速化?』とも思ったが、汎用性を考えると正規表現は 欲しいし、試しに作った Perl でも十分すぎる速度であった。 /FN で作ってみる。
設定ファイル記録した正規表現に、パターンマッチした行の数をカウントすることにする。 またリアルタイムに計数したいので、前回読み込み終了した場所を保存しておき、 次回は seek で途中から行うことにする。
≪ /etc/mrtg.d/qmail.conf : qmail の受信・送信の履歴をカウントする正規表現ファイル ≫
\w+ qmail: \d+\.\d+ starting delivery \d+: msg \d+ to remote
\w+ qmail: \d+\.\d+ starting delivery \d+: msg \d+ to local
≪ /etc/cron.d/qmail-smtp : 5分おきにログファイルをカウント ≫
1-56/5 * * * * root if [ -x /etc/mrtg.d/logcount.pl ]; then
/etc/mrtg.d/logcount.pl -c /etc/mrtg.d/qmail.conf
-s /var/run/logcount.txt /var/log/syslog 2>&1;
fi
≪ /etc/mrtg.d/qmail-mrtg.sh : MRTG 用のデータを作るプログラム ≫
#!/bin/bash
/usr/bin/tail +2 /var/run/logcount.txt | /usr/bin/head -2
/usr/bin/uptime | cut -d, -f 1
echo qmail
≪ /etc/mrtg.d/logcount.pl : カウントするプログラム ≫
#!/usr/bin/perl
use Getopt::Std ;
# カウント情報を保存するファイル
$stats = "/var/run/logcount.txt" ;
# Usage: logcount.pl -c 設定ファイル -s 計数ファイル ログファイル
# 設定ファイル
# 1行毎にログファイルとパターンマッチする正規表現を記載
# 計数ファイル
# 先頭行は、最後に読み込んだファイル位置
# 残りの行は、パターンマッチした行の数
getopts( "c:s:" ) ;
$config = $opt_c if ( $opt_c ne "" ) ;
$stats = $opt_s if ( $opt_s ne "" ) ;
# 設定ファイルの読み込み
open( CONF , "$config" ) || die( "Can't open $config\n" ) ;
for( $size = 0 ; $line = ; $size++ ) {
next if ( $line =~ /^#/ ) ;
$line =~ s/\s+$// ;
$regex[ $size ] = $line ;
}
close( CONF ) ;
# 計数ファイルの読み込み
if ( ! -f "$stats" ) {
open( STAT , ">$stats" ) || die( "Can't open $stats\n" ) ;
close( STAT ) ;
}
$seek = 0 ;
if ( open( STAT , "+<$stats" ) ) {
$seek = 0 + ;
for( $j = 0 ; ($j < $size) && ($line = ) ; $j++ ) {
$count[ $j ] = 0 + $line ;
}
}
# ログファイルを開く
$logfile = shift( @ARGV ) if ( @ARGV > 0 ) ;
open( LOG , "$logfile" ) || die( "Can't open $logfile\n" ) ;
@stat = stat( LOG ) ;
if ( $stat[ 7 ] < $seek ) {
$seek = 0 ; # 切り詰められたら先頭から読み直し
} else {
seek( LOG , $seek , SEEK_SET ) ;
}
# ログファイルの読み込み
while( $line = ) {
#print $line ;
if ( $line =~ /\n$/ ) {
($date , $logdata) = ($line =~ /^(\w+\s+\d+\s\d+:\d+:\d+)\s+(.*)$/) ;
# パターンマッチする表現を求める
for( $i = 0 ; $i < $size ; $i++ ) {
$rex = $regex[ $i ] ;
if ( $logdata =~ /$rex/ ) {
$count[ $i ]++ ;
break ;
}
}
$seek = tell( LOG ) ;
} else {
last ; # 追記中で行末が無いデータなら処理せず終了
}
}
close( LOG ) ;
# 計数ファイルを更新
seek( STAT , 0 , SEEK_SET ) ;
print STAT "$seek\n" ;
for( $i = 0 ; $i < $size ; $i++ ) {
print STAT $count[ $i ]."\n" ;
}
close( STAT ) ;
