トップ 最新 追記

yoggy's diary

〜せかいのすみっこから〜


2008-03-10

Net::Twitterのメモ

タイムラインを取ってきて表示するだけのサンプル。tail -fみたいに表示できるようにすると面白いかも?

 #!/usr/bin/perl
 use Net::Netrc;
 use Net::Twitter;
 use encoding 'utf-8';

 #  login
 my $mach = Net::Netrc->lookup('twitter.com') or die "can't read twitter account information from ~/.netrc...";
 my $login = $mach->login;
 my $pass  = $mach->password;
 my $twit = Net::Twitter->new(username=>$login, password=>$pass);

 my $timeline_ref = $twit->following_timeline();
 foreach my $s (@$timeline_ref) {
   print "$s->{user}{name} : $s->{text}\n";
 }

ログインに必要な情報はNet::Netrcを使って.netrcから取得しています。~/.netrcに

 machine twitter.com
 login ユーザ名
 password パスワード

みたいな行を書いておくとOKです。

#久しぶりにPerlを使ったら、参照の使い方を忘れていて小一時間はまってしまった罠(汗


2008-03-13

dd_parallel_test.pl

少し思うところがあって、単にddを並列起動してダミーデータを書き込むだけのプログラムを作ってみたり。

#!/usr/bin/perl

use threads;
use Time::HiRes qw(gettimeofday tv_interval);

$dir          = "/mnt/tmp/";
$size_m       = 50;
$parallel_num = 32;
$test_count   = 50;

my @ts;

print "dd_parallel_test start!!!\n";
my $st = [gettimeofday];

foreach my $n (1..$test_count) {
  print "test_count = $n\n";

  @ts = ();
  foreach my $i (1..$parallel_num) {
    my $t = threads->new(\&dd_exec, $i, $dir, $size_m);
    push(@ts, $t);
  }
  foreach my $t (@ts) {
    $t->join;
  }
}

my $diff = tv_interval($st, [gettimeofday]);
print $i . "dd_parallel_test finished...time=$diff(sec)\n";

#
sub dd_exec
{
  my ($i, $dir, $size_m) = @_;
  my $st = [gettimeofday];
  print "start thread $i(dir=$dir, size_m=$size_m M)\n";

  my $tmp_file = "$dir/tmp_file.$i";
  my $cmd = "dd if=/dev/urandom of=$tmp_file bs=1M count=$size_m >/dev/null 2>&1";
  system($cmd);

  $cmd = "rm -rf $tmp_file";
  system($cmd);

  my $diff = tv_interval($st, [gettimeofday]);
  print $i . "finished...time=$diff(sec)\n";
}

トップ 最新 追記

2003|01|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|
2010|01|02|03|