M.C.P.C.

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


« 2011年12月 | トップページ | 2012年2月 »

2012.01.31

キャッシュファイルが壊れることを想定してない作りなのでPlanetが止まっていた

Planet DTP@jp

http://dtpwiki.jp/planet/

というサイトがあるのですが、これはpythonのPLANET PLANETていうシステムで自動的に生成しているサイトで、もう7年ぐらいは稼働しているんだと思うんですけれども、1月27日から停止していました。

pythonのプログラムのエラーはよくわからんのですが、注意深く見ていると、とあるフィードのとあるitemを読もうとした時にエラーが発生しているようで、エラーメッセージの中にlink要素をハッシュのキーとして使おうとしているような感じになっていたのですが、そのlink要素、すなわちパーマリンクが、もう今のRSS内に存在しないものでした。

つまり、過去の情報を取得していて、それが変に残ってしまっているために、エラーになっているということです。

ここまでくれば、「過去の情報→キャッシュファイル!」という連想を働かせ、キャッシュファイルを消すことでPlanet DTP@jpが復活しました。

ファイルベースのキャッシュシステムは、キャッシュが壊れたときの検知ができなかったり、キャッシュが壊れることが想定されていなかったりするので、DISK I/Oが極端に遅くなったりして、ファイルの格納が不安定なシステムを使っている場合は要注意ですね。

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

2012.01.30

VMWare Fusion 4が2012年1月31日まで4900円なので駆け込みで買った

先日TwitterでStuffItの日付バグの事を書いたらact2のアカウントからリプライがあったのでコンタクトを取ったのですけれども、技術的なサポートになるということでact2のサイトでログインした後にある技術サポートフォームに入力することになったわけですけれども、ログイン時にact2のオンラインストアポイントが700円あることに気付き、さらにVMWare Fusion 4が出ていることにも気づき、サポートの返事は音沙汰がないのだけれども、ついついVMWare Fusion 4の2012/1/31までの特別価格4900円を買ってしまったのでした。act2のTwitter担当はいい仕事したな。

というわけで、気になる人は駆け込みで買っておけばいいんじゃないかなと思います。以下のリンクはアフィリエイトリンクではないので(LinkShareにログインするのがめんどくさい)。

VMware Fusion 4 - Mac/Windows ソフト・iPhone/Android ガジェット&アクセサリ act2.com [www.act2.com]
※Mac OS X 10.6.7 Snow Leopard以上が必要

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

2012.01.29

SoundEngine 4.60にしたら以前やったMP3読み込み設定が無効になってしまった

iTunesで購入した曲をAndroidで聞きたいので、個人使用の範疇で、ICレコーダにライン入力でつないで録音してMP3に変換しています。その際、数曲まとめて録音して、PC側で分割しているのですけれども、その際にSound Engine Freeを使ってます。

それで、この前Sound Engine Free 4.60がでていたのでダウンロードしてインストールしたのですが、MP3読み書きができなくなりました。そういえば、Sound Engine Free自体はMP3はサポートしていないので、アドオンで対応しているんだったな……

というわけで、検索して、Sound Engine Free 4.60でもMP3の読み書きができる方法を見つけました。

SoundEngine で MP3, AAC(m4a) を読み込む方法 知らなきゃ絶対損するPCマル秘ワザ [daredemopc.blog51.fc2.com]

これでMP3を読み込んで分割できるようになりました。おすすめ!

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

2012.01.28

Googleからまた7500円のAdWordsクーポン来たが、アカウント取れないのにどういうつもりだ

Googleから、また7500円分のGoogle Adwordsクーポンが郵送されて来ているわけだが。

ダイレクトメール送付業務では、送付対象の吟味をしっかりしないんだろうなあと想像はできるものの、「既にAdwordsアカウントをもっている人間」に送るのはさすがに意味ないってわかるだろ。

GMOからも同様にGoogle Adwords クーポンが送られてくるのはもう慣れっこになってるので速攻でゴミ箱行きなわけですけれども(いつも一方的だ)、Googleがこれをやるとシステムがおかしいんじゃねと疑うよね。

せめて、アカウントをもっている人間だったらすでに持っているAdWordsアカウントにクーポン分充足できる、とすればそんなに問題はないのになあとか思います。

そんなら別アカウント作ればいいんでね? とか思い、AdWordsのページに行ってみたら、Opera 11.6.1だとなぜか表示できなかった。このクーポン、どうすればいいんだ。

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

2012.01.27

PS Vita 3G 100時間/180日無料分、1ヶ月で19時間使ってしまった

後先考えずに購入したPS Vitaの3Gバージョンで100h/180日無料のdocomo契約が付いてくるやつなんですけれども、ちょうど1ヶ月たったので、あとどれぐらい時間が残っているかなーとか思ったら、81時間38分残っていると出る。

Psvitadocomorest
▲結構使ったね

みんなといっしょしかやってねえぞ。100h/6ヶ月って結構使い切れてしまうものなのではないか。

180日後または100時間使いきったあたりで延長すると、4980円かかるんですよね。180日前に使いきってしまうなら、イオンSIMとかも検討したほうがいいのかもしれません。

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

2012.01.26

はてな自動投げ銭スクリプトをはてなブログbetaに対応させた

昨日書いた、

HTML::AccountAutoDiscoveryがはてなブログbetaに対応していない件

で、HTML::AccountAutoDiscoveryを使わなければよくね? 的なアプローチではてなブックマークWebHook用投げ銭スクリプトがこちらとなります。

Filename: throw.cgi

#!/usr/bin/perl
 
# throw.cgi ブックマークしたら投げ銭します。
# 説明:http://blog.dtpwiki.jp/dtp/2009/06/web-hook-645b.html
# 2009-06-07 ver 0.0.1 ファーストポスト
# 2009-10-03 ver 0.0.2 最新のMechでも動くように
# 2012-01-26 ver 0.0.3 はてなブログ対応
 
 
use strict;
use warnings;
use CGI;
use Config::Pit;
use Encode;
use HTML::AccountAutoDiscovery;
use utf8;
use WWW::Mechanize;
 
# 初期設定
my $url_sendpoint = 'https://www.hatena.ne.jp/sendpoint';
my $send_point = 10; # 送信するポイント(はてな手数料別)
my $login;
my $config = pit_get('hatena.ne.jp');
die "not preset account data in Pit." if !%$config;
my $my_id    = $config->{id      } or die 'id not found.';
my $password = $config->{password} or die 'password not found.';
my $auth_key = $config->{auth_key} or die 'auth_key not found.';
 
my $q = CGI->new;
my $mech = WWW::Mechanize->new;
$mech->agent_alias('Windows IE 6');
 
{ # メインルーチン
  # 認証
  if ( $q->param('key') ne $auth_key ) {
      die "Authentication failed";
  }
  # メソッド確認
  if ( $q->param('status') eq 'add' ) {
    # エントリーの情報
    my $req = $q->Vars();
    nagesen( $req );
  }
  # はてなブックマークWeb Hook用リザルト
  print $q->header('text/plain');
  print 'ok';
}
exit;
 
sub nagesen {
  my $req = shift;
  my $url = $req->{url};
  my @account = HTML::AccountAutoDiscovery->find( $url );
  unless( @account ) { @account = find_hatenablog( $url ); }
   
  sub find_hatenablog {
    my $url = shift;
    use LWP::Simple;
    my @r;
    my $c = get( $url );
    $c =~ s/.+(<html.+?>).+/$1/so;
    if ( $c =~ m{data-admin-domain="http://blog.hatena.ne.jp"} ) {
      if ( $c =~ m{data-author="(.+)"} ) {
        push @r,{account => $1, service => 'http://blog.hatena.ne.jp' };
      }
    }
    return  @r;
  }
  
  foreach my $item ( @account ) {
    my $send_id = $item->{account}; # account name
    send_hatenapoint( $req, $send_id );
    last; # HTMLに複数のIDを埋め込んでいた場合最初の人の分
          # だけ対応(同じ人がID埋め込みまくるとポイント
          # 送信しまくるのを防ぐ)
  }
  return;
}
 
sub login_hatenapoint {
# はてなにログインします
  $mech->get( $url_sendpoint );
  # ログインを促す画面に遷移済
  $mech->follow_link( text => mech_encode('ログイン') );
  # ログイン画面に遷移済
  $mech->set_visible( $my_id, $password );
  $mech->submit();
  # ログイン済み画面に遷移済
  $mech->follow_link( text => mech_encode('こちら') );
  # 投げ銭画面に遷移済
  $login = 1;
  return;
}
 
sub send_hatenapoint {
# はてなポイント送信をします
  my $req     = shift;
  my $send_id = shift;
  unless ( $login ) {
    login_hatenapoint();
  }
  # ログイン済みの状態
  $mech->get( $url_sendpoint );
  # はてなポイント送信のページに遷移済
  # ポイント送信メッセージ組み立て
  my $send_message = decode('utf8', $req->{title})
    ."($req->{url}) をブックマークしました。投げ銭いたします。"
    .'投げ銭スクリプト:http://svn.coderepos.org/share/lang/'
    .'perl/misc/hatenabookmark_webhook_nagesen/';
  # ポイント送信用パラメータ入力
  $mech->set_visible(
    $password, $send_id, $send_point,
    undef, # 匿名にしたい場合は1
    mech_encode( $send_message )
  );
  $mech->submit();
  # confirm画面に遷移済
  return unless $mech->title() eq mech_encode(
    'はてな ポイント付きメッセージ送信確認'); # 送信確認ページ?
  $mech->click_button( value => mech_encode('送信する') );
  #open my $fh, '>', 'log.html';
  #print $fh $mech->content();
  #close $fh;
  return;
}
 
sub mech_encode {
# WWW::Mechanize 1.21_01以降の挙動に対応
  my $str = shift;
  if ( ( $WWW::Mechanize::VERSION ) < 1.21 ) {
    $str = encode( 'utf8', $str );
  }
  return $str;
}
 
__END__

2009年10月に一度改定していて、WWW::Mechanizeのバージョンによる差異を吸収していたんだけれども、

M.C.P.C.: はてな自動投げ銭スクリプトを最新WWW::Mechanizeに対応させたが、Mechの動作が変わる境目のバージョンがわからない

その分はCodeReposにコミットするの忘れていたので今回はちゃんとコミットしたよ。

http://svn.coderepos.org/share/lang/perl/misc/hatenabookmark_webhook_nagesen/

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

2012.01.25

HTML::AccountAutoDiscoveryがはてなブログbetaに対応していない件

僕がはてなブックマークでブックマークをすると、はてなブックマークのAPIから僕のサーバ上のCGIにコールバックして、そのページがはてなアカウント所持者であった場合、はてなポイントをプレゼントしているのです。

ブックマーク対象ページがはてなアカウント所持者であるかどうか、というのを判別するために

HTML::AccountAutoDiscovery [search.cpan.org]

というモジュールを使っていまして、一定の書式でHTMLにアカウント名を埋め込んでおけば、このモジュールでアカウントを取得でき、無事にポイントをプレゼントできるという仕組みです。

しかし、この前から運用が始まったはてなブログbetaでは、このHTML::AccountAutoDiscoveryモジュールではてなのアカウント名が取得できません。

まあ、2005年の仕様を2012年のシステムに組み込まなかったということだと思うし、モジュール作った人ははてなを離れてGREEにいるわけだし、そういう意味でこのモジュールを使うのも時代遅れ、ということなのかもしれません。

ともあれ、はてなブログbetaであれば、ルート要素であるhtml要素にdata-author属性として記述されているので、パーザを動かすまでもなく正規表現でぶっこ抜けばいいですよね。

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

2012.01.24

ミームの断絶

僕はこれでも一応エンジニアのはしくれだと思っているのですけれども、エンジニアにとって、自分の作ったシステムと同じものは残っても、それを構成するアーキテクチャが断絶すると悲しくなりませんか?

今日、ちょうど僕の周りの話で、過去に僕が作ったシステムのリストラクチャ(スクラップ&ビルド)がされるという話をされまして、確かに最近エンジニアリングとは縁遠いところにいるのですけれども、来るべき時が来たという感じがしました。

もうちょっとコンセプトを伝えることに力を注ぐべきでした。ひとまず、無念、とつぶやくほかない。

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

2012.01.23

ファスナー壊れた

あるのが当たり前だと思っていたものが急に無くなると困ることってありますよね。

昨日、会社できている仕事着も含めた洗濯物をコインランドリーで乾燥機かけて、今朝仕事着を会社できてみたらファスナーの引っ張る金具(スライダーというそうです)がなくなっていた。やばい!

とりあえず、手でファスナーをぱちぱち留めて、上部はクリップで固定してごまかしましたが、そのうち社長にばれるなー

というわけで、さっきコインランドリーにもう一度行ってみたのですが当然あるわけないわな。掃除のおじさん捨てたよな。

おそらく1ヶ月くらいしたらファスナーを手で締めるのもうまくなっていると思います。役に立たない技術ばかり身に付くな……

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

2012.01.22

MS Pゴシックを大きく使うならせめて大文字Iのセリフをとろうぜ

戦姫絶唱シンフォギア面白いね! そのうちチバソングとかいう単位が出てこないか不安です。

でも、MS Pゴシック使っているので話題ですね。

Symphogear01
▲コメントと同じ書体にすんな

Windows 95時代のMS Pゴシックは、大文字のI(アイ)にはセリフが付いていなかったのですが、今のMS Pゴシックは、セリフつきです。これって、大文字のI(アイ)と小文字のl(エル)が区別付かなかったから改良したんですよね。でも、サンセリフ書体なのにデザイン的にはおかしい。

Symphogear02
▲Windows 98以降のMS Pゴシックはセリフが付いていてうざい

こうするべき。

Symphogear03
▲セリフをとった

そもそも面倒だからMS Pゴシック使わなければいいのにね。

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

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