M.C.P.C.

―むり・くり―プラスコミュニケーション


« 2011年3月 | トップページ | 2011年5月 »

2011.04.30

Alienware M11xからMacBookに環境を移行

Alienware M11xのヒンジ部が壊れて、修理に出す決心がついたのですけれども、明日からちょいとばかりでかけるので、Alienware M11xで作業していた環境を、MacBookに移し替える事にしました。

さしあたって、Alienware M11xで使っていたのは、

  • PuTTY(ターミナルエミュレータ:メインの開発はこれでLinuxにログインする事で行っています)
  • Adobe CS3 Design Premium(デザイン用統合ソフト:印刷屋やし……)
  • Microsoft Excel(スプレッドシート:なんだかんだ言って便利やし……)
  • VLC(動画プレイヤー:エッチなビデオ見たいし……)
  • Hamana(画像ビューア:エッチな画像見たいし……)
  • Opera(Webブラウザ:バージョン3を工学部の情報コンセントからダウンロードしていたし……)
  • RealPleyer(動画プレイヤー:ニコニコ動画録画したいし……)

ていうかんじなんですけれども、WindowsでいうPuTTYを、MacではiTerm2に置き換える事で代替できるのでよかったです。さすがにMac版のMicrosoft Excelは買えなかったので、VMWareでWindows Vistaを用意して、Windows用のExcelを入れました。

そのあと、ついついVMWareのWindows Vistaに上記のリストの環境そろえてしまったので、あえてMac OS Xである意味はなくなってしまったのですが……

[パソコン・インターネット] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.04.29

Alienware M11xのヒンジが壊れた

2年持てばいいと思って24回払い金利0%で買ったAlienware M11xなんですが、

4か月でヒンジが壊れました。

これのもうちょっとひどいバージョン。

症状は2段階あり、まずヒンジのLCD側の止めているねじが刺さってる箇所が弱くて取れちゃう。この時点でLCDグラグラし始める。それでもだましだまし使っていると、ついにヒンジの丸いプラスチックが割れてしまう。

デルのサポートに電話しなきゃなあ。確かサポート電話って外国のコールセンターで業務しているらしいですよね……

[パソコン・インターネット] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.04.28

Quota

昨日、ServersMan@VPSでアクセス不能になったタイミングでデイリーバックアップするようにシェルスクリプト打ったですけれども、今日ゴールデンウィークお知らせを打とう思ってviで更新しようと思ったのだけれども、スワップファイルが生成できません、と出て、保存出来ない。

よく調べると、 BlueOnyxで50MBのquotaが50MBとなっていたのでした。

quotaなんて、学生時の計算機実習のとき以来なんで、全くノーマークでした。

BlueOnyx奥深いなあ!

[Web] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.04.27

ServersMan@VPSのエンジニアセットでBlueOnyxで自動アップデート設定していると2011年4月12日以降BlueOnyxにログインできずログインできても80番のHTTPが死ぬ

今朝ちょいとServersMan@VPSのエンジニアセットで構築しているサーバの設定を変えようとBlueOnyxにログインしようとしたらいくらやっても「ログインセッションがタイムアウトしました。再度ログインするには、ユーザ名とパスワードを入力してください。」と出る。

BlueOnyx - News

Solution #1:

Reboot the box from SSH (as root: "/sbin/reboot"). It'll work afterwards. After a massive update like this, a reboot is always a good precaution.

リブートしろと。

今度はport 80のHTTPが接続はするが反応が返ってこない。

とりあえず別のウェブサーバ立ててあわててサイトまるごと転送

DNSで別のウェブサーバにホスト名振る(TTL短くてラッキー)

元のサーバが動かなくなった原因をググる

Linuxる! : Serversman VPS サイトにアクセスできなくなった [linux.eyo.jp]

対策として
/etc/httpd/conf.d/nss.conf を
/etc/httpd/conf.d/nss.conf.bak 保存し
/etc/httpd/conf.d/nss.confを削除

なおった!

CentOS 5.5から5.6にすると発生する問題 | Sand Castle Fan [www.sandcastlefan.org]

だったらCentOS 5.6なんて出すなって話だ。BluOnyx画面で自動updateスケジューリングをONにしてるユーザーが居たらいつの間にかWebサービス死んでるんじゃねーか?

ビンゴ!

~~~

これから絶対はまる人増えるね、これ。

僕もいつまでも無責任なことやってられないからサーバはCentOS最小構成からビルドアップするのではなく、BlueOnyxという管理ツールを使った方が、僕がいなくなってもある程度保守できるかなーとか思ったんだけど、自動アップデート機能は無効にしておかないと詰むね。

[Web] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.04.26

rel-tagでタグはhrefで指定するのでかなり制限が

おとといあたりジャグラBBのサイトを見てたら、タグとかあるのに、rel-tag付いてなかったなーとか思いました。

んで、rel-tagなんですが、

rel="tag" · Microformats Wiki [microformats.org]

<a href="http://technorati.com/tag/tech" rel="tag">fish</a>

と書くと、タグとしては「tech」が採用される、という仕様なのは分かった。

んで、

<a href="http://labo.dtpwiki.jp/?category=Script" rel="tag">Script</a>

とか書くと、タグとしては、labo.dtpwiki.jpが採用された(Firefoxの機能拡張Operatorで確認)。

<a href="http://labo.dtpwiki.jp/Script" rel="tag" onclick="return false;" style="font-size: 1px; visibility: hidden">.</a>
<a href="http://labo.dtpwiki.jp/?category=Script">Script</a>

とかしておいた。もうちょっと方法あったのではないかと思う。

[DTP] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.04.25

@niftyのサービスが軒並み終了になっているのな

昔自分が作ったスクリプトを整理していたら、

など、@niftyのサービスに関するものを結構作っていたのですが、これらがサービス終了または終了予定になっていました。

  • アバウトミー→2011年6月30日11:00サービス終了
  • @niftyクリップβ→2011年3月31日サービス終了(エクスポートは2011年5月末)

他にもいろいろ終わるみたい。

@niftyラボ

ニフティに開発の楽園はなかったってことなのかもしれません。僕としては、APIで操作する練習ができたのでよかったんですが。

[Web] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.04.24

新ジャグラBBの動画コンテンツの野良RSS

(旧ジャグラBBの時の記事はこちら


社団法人日本グラフィックサービス工業会(JaGra)さんのウェブサイト

社団法人日本グラフィックサービス工業会 [JaGra] [www.jagra.or.jp]

には、RSSがあるのに、新ジャグラBB

ジャグラBB - 印刷業のためのWebラーニングサイト:HOME [www.jagrabb.net]

には、RSSがなくて、とても残念です。

~~~

そこで、新ジャグラBBのページをRSSに変換しました(野良RSSです)。

新ジャグラBB 動画コンテンツ [dtpwiki.jp]

1時間に1回の間欠取得です。

JaGraさんが、RSS配信を始めるまでお使いください。無理な気がしますが。

#!/usr/bin/perl
 
use strict;
use warnings;
use utf8;
use DateTime::Format::HTTP;
use Encode;
use URI;
use Web::Scraper;
use XML::Feed;
use YAML;
 
my $link = 'http://www.jagrabb.net/';
my $uri = URI->new( $link );
my $scraper = scraper {
  process '//div[@id="news"]//div[@class="box"]', 'items[]' => scraper {
    process '.title', title => 'TEXT';
    process '.title>a', url => '@href';
    process '.date', date => [ 'TEXT',
      sub {
        s/^.+公開日//;s{[^\d]}{-}g;
        return DateTime::Format::HTTP->
          parse_datetime($_)->
            set_time_zone('Asia/Tokyo');
      }
    ];
  }
};
my $result = $scraper->scrape($uri);
 
my $list;
foreach my $item ( @{$result->{items}} ) {
  my $uri = URI->new( $item->{url});
  my $scraper = scraper {
    process '//div[@id="naiyou-inner"]//div[@class="txt"]', content => 'HTML';
    process '//div[@id="naiyou-inner"]//div[@class="txt"]', summary => 'TEXT';
  };
  my $result = $scraper->scrape($uri);
  $item->{content} = $result->{content};
  $item->{summary} = $result->{summary};
  push @$list, $item;
}
 
my $feed = XML::Feed->new( 'RSS',
          version => '1.0', encode_output => 0 );
$feed->title( 'ジャグラBB 動画コンテンツ' );
$feed->description( 'ジャグラBBの最新動画一覧' );
$feed->author('DTPWiki.jp');
$feed->language('ja');
$feed->copyright('社団法人日本グラフィックサービス工業会');
$feed->link( $link );
 
foreach my $item ( @$list ) {
  my $entry = XML::Feed::Entry->new( 'RSS' );
  $entry->title  ( $item->{title} );
  $entry->link   ( $item->{url} );
  $entry->summary( $item->{summary} );
  $entry->content( "<![CDATA[$item->{content}]]>", );
  $entry->issued ( $item->{date} );
  $feed->add_entry( $entry );
}
 
if ($ENV{GATEWAY_INTERFACE}) {
  print "Content-Type: text/xml; charset=UTF-8;\n\n";
}
print encode_utf8( $feed->as_xml);
 
exit;
 
__END__

印刷業界にRSSを定着させたいんですけれども、どうすればいいんでしょうね。


(2011-04-24 12:05追記)

一寝したら、もうちょっと工夫できることに気付いた。

トップページではなくて、番組一覧で探す(http://www.jagrabb.net/contents_list.aspx)から取得したほうが簡単である。そういう観点で作り直したのが以下のスクリプト。

#!/usr/bin/perl
 
use strict;
use warnings;
use utf8;
use DateTime::Format::HTTP;
use Encode;
use URI;
use Web::Scraper;
use XML::Feed;
use YAML;
 
my $link = 'http://www.jagrabb.net/contents_list.aspx' ;
my $base_url = 'http://www.jagrabb.net/' ;
 
my $uri = URI->new( $link );
my $scraper = scraper {
  process '//table[@id="contents-list"]', 'items[]' => scraper {
    process '//td[@class="c txt"]/a', url => '@href';
    process '//span[@class="images"]/img', img => '@src';
    process '//div[text()=~/公開日/]', date => [ 'TEXT',
      sub {
        tr/[公開日]//d; s{[^\d]}{-}g;
        return DateTime::Format::HTTP->
          parse_datetime($_)->
            set_time_zone('Asia/Tokyo');
      }
    ];
  };
};
my $result = $scraper->scrape($uri);
 
my $list;
foreach my $item ( @{$result->{items}} ) {
  my $uri = URI->new( $item->{url});
  my $scraper = scraper {
    process '//div[@id="naiyou"]//div[@class="txt"]', content => 'HTML', summary => 'TEXT';
    process '//div[@id="propaty"]//div[text()=~/カテゴリ/]/../div[@class="detail"]/img', category => '@alt';
    process '//h2', title => 'TEXT';
  };
  my $result = $scraper->scrape($uri);
  push @$list, {%$item, %$result};
}
 
my $feed = XML::Feed->new( 'RSS', version => '1.0', encode_output => 0 );
$feed->title( 'ジャグラBB 動画コンテンツ' );
$feed->description( 'ジャグラBBの最新動画一覧' );
$feed->author('DTPWiki.jp');
$feed->language('ja');
$feed->copyright('社団法人日本グラフィックサービス工業会');
$feed->link( $base_url );
$feed->modified( $list->[0]->{date} );
 
foreach my $item ( @$list ) {
  my $entry = XML::Feed::Entry->new( 'RSS' );
  $entry->title  ( $item->{title} );
  $entry->link   ( $item->{url} );
  $entry->summary( $item->{summary} );
  $entry->content( qq(<![CDATA[<p><img src="$item->{img}" /></p>$item->{content}]]>) );
  $entry->issued ( $item->{date} );
  $entry->category($item->{category});
  $feed->add_entry( $entry );
}
 
if ($ENV{GATEWAY_INTERFACE}) {
  print "Content-Type: text/xml; charset=UTF-8;\n\n"; 
}
print encode_utf8( $feed->as_xml);
 
 
exit;
 
__END__

んで、XML::Feedを使うと、RSSに画像を付けるとかちょっと凝ったことができないみたいなので、餅は餅屋、ということで、XML::RSSを使ったのが以下のスクリプト。

#!/usr/bin/perl
 
use strict;
use warnings;
use utf8;
use DateTime::Format::HTTP;
use Encode;
use URI;
use Web::Scraper;
use XML::RSS;
use YAML;
 
my $link = 'http://www.jagrabb.net/contents_list.aspx' ;
my $base_url = 'http://www.jagrabb.net/' ;
 
my $uri = URI->new( $link );
my $scraper = scraper {
  process '//table[@id="contents-list"]', 'items[]' => scraper {
    process '//td[@class="c txt"]/a', url => '@href';
    process '//span[@class="images"]/img', img => '@src';
    process '//div[text()=~/公開日/]', date => [ 'TEXT',
      sub {
        tr/[公開日]//d; s{[^\d]}{-}g;
        return DateTime::Format::HTTP->
          parse_datetime($_)->
            set_time_zone('Asia/Tokyo');
      }
    ];
  };
};
my $result = $scraper->scrape($uri);
 
my $list;
foreach my $item ( @{$result->{items}} ) {
  my $uri = URI->new( $item->{url});
  my $scraper = scraper {
    process '//div[@id="naiyou"]//div[@class="txt"]', content => 'HTML', summary => 'TEXT';
    process '//div[@id="propaty"]//div[text()=~/カテゴリ/]/../div[@class="detail"]/img', category => '@alt';
    process '//h2', title => 'TEXT';
  };
  my $result = $scraper->scrape($uri);
  push @$list, {%$item, %$result};
}
my $rss = XML::RSS->new(version => "1.0" ,encode_output => 0 );
$rss->add_module( prefix=>'content', uri=>'http://purl.org/rss/1.0/modules/content/',);
$rss->add_module( prefix=>'annotate', uri=>'http://purl.org/rss/1.0/modules/annotate/',);
$rss->channel(
    title    => 'ジャグラBB 動画コンテンツ',
    link     => $base_url,
    description => 'ジャグラBBの最新動画一覧',
    language => 'ja',
    dc => {
      publisher    => '社団法人日本グラフィックサービス工業会',
      contributor  => 'DTPWiki.jp',
      rights       => '社団法人日本グラフィックサービス工業会',
      creator      => '社団法人日本グラフィックサービス工業会',
    },
    syn => {
      updatePeriod => 'dairy',
      updateFrequency => '1',
    },
);
$rss->image(
    title => 'ジャグラBB 動画コンテンツ',
    url   => 'http://www.jagrabb.net/img/logo-jagraBB.gif',
    link  => $base_url,
);
foreach my $item (@$list) {
  $rss->add_item(
    link  => $item->{url},
    title => $item->{title},
    description => $item->{summary},
    dc => {
      date       => $item->{date},
      subject => $item->{category},
    },
    content => {
      encoded =>  qq(<![CDATA[<p><img src="$item->{img}" /></p>$item->{content}]]>),
    },
  );
}
 
 
if ($ENV{GATEWAY_INTERFACE}) {
  print "Content-Type: text/xml; charset=UTF-8;\n\n"; 
}
print encode_utf8( $rss->as_string() );
 
 
exit;
 
__END__

こっちを運用バージョンにしました。

[RSS] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.04.23

Web::Scraperで新ジャグラBBをスクレーピング

昔、ジャグラBBをスクレーピングして、それからジャグラBBの野良RSSを作り、更にIGASに出展してたJaGRAのブースに突撃して名刺渡して野良RSS作っているよーと言ってきて、「これで今後JaGRA BBのリニューアル時に公式にRSSが付いてくれるだろう。ミッション・コンプリート。」とか思っていたらリニューアル時にRSSが付かずHTML構造が変更になって野良RSSが動かなくなってすげえやる気なくしてかなり放置していました。

M.C.P.C.: ジャグラBBのサイトがリニューアルして構造が変わっていたので、当サイトで生成している野良RSSが空になっています

んで、今回スピードコーディングしようと思って例題として新JaGRA BBをスクレーピングすることにしました。持ち時間30分で最終的にRSS出力まで目指したかったのですが、残念ながら時間切れでスクレーピングだけにとどまりました。

下のスクリプトは、JaGRA BBのトップページの「ニュース・ピックアップ」の番組リストをスクレーピングします。

#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use DateTime::Format::HTTP;
use URI;
use Web::Scraper;
use YAML;
 
my $uri = URI->new('http://www.jagrabb.net/');
my $scraper = scraper {
  process '//div[@id="news"]//div[@class="box"]', 'items[]' => scraper {
    process '.title', title => 'TEXT';
    process '.title>a', url => '@href';
    process '.date', date => [ 'TEXT', sub { s/^.+公開日//;s{[^\d]}{-}g; return DateTime::Format::HTTP->parse_datetime($_)->set_time_zone('Asia/Tokyo'); } ];
  }
};
my $result = $scraper->scrape($uri);
print Dump $result;
 
exit;
 
__END__

ここまで出来たら、XML::Feedに接続してRSS自体は簡単に出力できる。しかし、このままだと、RSSでいうDescriptionが空っぽのままになるので、もう一段スクレーピングして動画紹介ページの説明部分を取る必要があるんですよね。

[DTP] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.04.22

まどかマギカ放送日間違えて早起きするの巻

今日朝4時に起きたのは魔法少女まどかマギカを視聴するためなのだがTwitter情報が混線していて今日ニコニコ動画で配信されると勘違いして朝4時にアクセスしてみて間違いに気付きTwitterで流れているリアルタイム視聴情報を眺めて不貞寝した。

ということで決戦は月曜の朝なんだな。

「魔法少女まどか☆マギカ」アニメ上映会 - ニコニコ生放送 [live.nicovideo.jp]
28739

このページ、今朝のTBSの放送がされるまで、12話のタイトル入ってなかったんだよね。

[アニメ] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.04.21

福島の電波時計の電波送信所が送信再開されたのか

僕が使っていたiPod 3Gに似た電波時計が電池切れたので入れ替えて時刻を合わせようとしたところ、福島の電波時計の電波送信所が停止していたためにいつまでたっても時刻が合わなかったりしましたが、

M.C.P.C.: 福島の標準電波送信所が停波していて電波時計が自動で時刻合わせできなかった

再開したそうです。

福島第1原発:電波時計再開 送信所が40日ぶり発信 - 毎日jp(毎日新聞) [mainichi.jp]

電波時計向けに標準電波を発信する福島県大鷹鳥谷山(おおたかどややま)の送信所が21日、40日ぶりに再開した。送信所は福島第1原発から約17キロの距離にあり、事故で職員が避難した3月12日から停波していた。運営する情報通信研究機構(東京都小金井市)は、一部遠隔操作が可能になったための暫定的再開としている。

実は電波時計の時刻を合わせないままにしておいたのです! 時刻合うかな……

[日記・コラム・つぶやき] | 固定リンク | コメント (0) | トラックバック (2) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

< 最後 « これより前10ä»¶ | 全件