Hatena::Groupdann

dann's blog このページをアンテナに追加 RSSフィード

Fork me on GitHub

2008-08-08

みんなの声部分でQ4M

みんなの声部分でQ4M - dann's blog を含むブックマーク はてなブックマーク - みんなの声部分でQ4M - dann's blog みんなの声部分でQ4M - dann's blog のブックマークコメント

http://alpha.mixi.co.jp/blog/?cat=19

  • Level2分散でJoinができないので、全員の声用DBを用意。
  • みんなの声は数日で消すためデータ量は問題にはならない
  • Writeの負荷が高くなるのを防ぐために、Q4MでQueueingしてから、一定間隔でMasterに書き込み

少しずつ、JobQueueを使う実例がでてきてるなぁ。Q4MとMvalveを暇見つけてさわりたい。

Mac::ITunesでiTunesに一括曲登録

Mac::ITunesでiTunesに一括曲登録 - dann's blog を含むブックマーク はてなブックマーク - Mac::ITunesでiTunesに一括曲登録 - dann's blog Mac::ITunesでiTunesに一括曲登録 - dann's blog のブックマークコメント

つい最近iPod touchをもらったので活用すべく簡単なスクリプトを書いてみました。

#!/usr/bin/env perl
use strict;
use warnings;
 
use Mac::iTunes;
use File::Find::Rule;
use Path::Class;
use Cwd;
use Perl6::Say;
 
our $itunes;
 
main();
 
sub main {
    my $playlist_name = $ARGV[0] || "myfavorites";
    my $songs_dir = $ARGV[1] || getcwd;
 
    setup_itunes();
    create_playlist($playlist_name);
    my $songs = find_songs($songs_dir);
    add_to_playlist( $playlist_name, $songs );
}
 
sub setup_itunes {
    $itunes = Mac::iTunes->controller;
    $itunes->activate;
}
 
sub create_playlist {
    my $playlist_name = shift;
    if ( $itunes->playlist_exists($playlist_name) ) {
        say "$playlist_name already exists\n";
        return;
    }
    $itunes->add_playlist($playlist_name);
}
 
sub find_songs {
    my $songs_dir = shift;
    my @files = File::Find::Rule->file()->name('*.mp3')->in($songs_dir);
    \@files;
}
 
sub add_to_playlist {
    my ( $playlist_name, $song_files ) = @_;
    foreach my $song_file ( @{$song_files} ) {
        $itunes->add_track( $song_file, $playlist_name );
    }
}
 
__END__

# gistscriptそのまま埋め込みはできない?