Fork me on GitHub

2007/09/04


このエントリーをはてなブックマークに追加
muumoo.jpPlaggerで取得したGoogleブックマークのフィードを整えるFilter:GoogleBookmarksFeedを書いたけど日本語消えちゃう (管理人日記)という記事より。
喜んだのもつかの間、日本語の文字を含むタグやコメントを書くと、その文字が消えてしまうようです。Plaggerではありがちな問題なような気がしますが、このPluginでも起きてしまいました。
確かに、ブラウザ上からだと日本語は見えるんですが、どうやらGoogleさんはUser-Agentを見て勝手にencodingをISO-8859-1に変えておられるようです。
# curl -L 'https://www.google.com/bookmarks/?output=rss' -u username:password
<?xml version="1.0" encoding="ISO-8859-1"?><rss vers
...
config.yamlの先頭に
global:
  timezone: Asia/Tokyo
  user_agent:
    agent: Mozilla/5.0
を入れたら取得出来ました。
ブクマコメントで書こうかと思いましたが、記事が半月程前のものなので管理人さんも見てないかと思い、記事にしました。

それよりも...LivedoorClip.pmで
Plagger [info] plugin Plagger::Plugin::Subscription::Config loaded.
Plagger [info] plugin Plagger::Plugin::UserAgent::AuthenRequest loaded.
Plagger [info] plugin Plagger::Plugin::Filter::GoogleBookmarksFeed loaded.
Plagger [info] plugin Plagger::Plugin::Publish::LivedoorClip loaded.
Plagger [info] plugin Plagger::Plugin::Bundle::Defaults loaded.
Plagger [info] plugin Plagger::Plugin::Aggregator::Simple loaded.
Plagger [info] plugin Plagger::Plugin::Summary::Auto loaded.
Plagger [info] plugin Plagger::Plugin::Summary::Simple loaded.
Plagger [info] plugin Plagger::Plugin::Namespace::HatenaFotolife loaded.
Plagger [info] plugin Plagger::Plugin::Namespace::MediaRSS loaded.
Plagger [info] plugin Plagger::Plugin::Namespace::ApplePhotocast loaded.
Plagger::Plugin::Aggregator::Simple [info] Fetch https://www.google.com/bookmarks/?output=rss
Plagger::Plugin::UserAgent::AuthenRequest [info] Adding credential to Google Search History at www.google.com:443
Plagger::Cache [debug] Cache HIT: Aggregator-Simple|https://www.google.com/bookmarks/?output=rss
Plagger::Plugin::Aggregator::Simple [debug] 200: https://www.google.com/bookmarks/?output=rss
Plagger::Plugin::Aggregator::Simple [info] Aggregate https://www.google.com/bookmarks/?output=rss success: 15 entries.
Died at C:/Perl/site/lib/WWW/Mechanize.pm line 1705.
なエラーが出る。なんぞ?
とりあえずcpan upgrade行ってきます。

追記1
GoogleBookmarksFeedで、tagsは1個でも配列で返ってきてそうだったので以下のように修正してます。もしかしたら間違ってるかも
*** GoogleBookmarksFeed.pm.orig Tue Sep 04 11:39:49 2007
--- GoogleBookmarksFeed.pm  Tue Sep 04 11:40:15 2007
***************
*** 22,28 ****
              $args->{entry}->body($orig_body);
              $context->log(info => "Parsing Google Bookmarks title " . $args->{entry}->permalink);
          }
!         if (my @orig_tags = @{$args->{orig_entry}->{entry}->{$ns}->{bkmk_label}}) {
              $args->{entry}->tags(@orig_tags);
          }
      }
--- 22,28 ----
              $args->{entry}->body($orig_body);
              $context->log(info => "Parsing Google Bookmarks title " . $args->{entry}->permalink);
          }
!         if (my @orig_tags = $args->{orig_entry}->{entry}->{$ns}->{bkmk_label}) {
              $args->{entry}->tags(@orig_tags);
          }
      }
追記2
大嘘ついてました。tagsは1つの場合は文字、2つ以上の場合は配列で戻るみたいです。
*** GoogleBookmarksFeed.pm.orig Tue Sep 04 11:39:49 2007
--- GoogleBookmarksFeed.pm  Tue Sep 04 14:54:17 2007
***************
*** 22,29 ****
              $args->{entry}->body($orig_body);
              $context->log(info => "Parsing Google Bookmarks title " . $args->{entry}->permalink);
          }
!         if (my @orig_tags = @{$args->{orig_entry}->{entry}->{$ns}->{bkmk_label}}) {
!             $args->{entry}->tags(@orig_tags);
          }
      }
  }
--- 22,33 ----
              $args->{entry}->body($orig_body);
              $context->log(info => "Parsing Google Bookmarks title " . $args->{entry}->permalink);
          }
!         if (my $orig_tags = $args->{orig_entry}->{entry}->{$ns}->{bkmk_label}) {
!           if (ref($orig_tags) eq "ARRAY") {
!               $args->{entry}->tags($orig_tags);
!           } else {
!               $args->{entry}->tags([$orig_tags]);
!           }
          }
      }
  }
Posted at 11:32 in ソフトウェア::lang::perl
Tagged as: google, perl, plagger, RSS
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip

2007/05/16


このエントリーをはてなブックマークに追加
twitterTwitterが劇的に重いです。twitterTwitterは他のブログシステムとは異なり

  • 更新データ量が小さい為、逆に更新頻度が多くなる
  • ログ系とは言え、ブログなので送信したら直ぐに反映される必要がある
  • APIを公開している分、ポーリングサーバからの負荷が影響する

といった特徴(?)があります。これが理由かどうかは分かりませんが、ここ数日、twitterTwitterサーバからエラーが返る事が多くなりました。

他の、 もごもごもごもごTimelogTimelognowanowa等は、未だ正規なAPIを公開していない分、If-None-Matchチェックを行わないアプリケーション等から集中砲火を浴びにくいのかも知れません。
TimelogTimelog公開されているらしいです

システムの作りにもよりますがRSS等はある種、静的なデータの為、更新さえなければキャッシュさえ見せておけば良いのです。

ただし、twitterTwitterの場合は突発的に人気が出て、しかも当初からAPIを公開した事で、エンジニアにとっての良い教材になってしまいました。
まぁ私もGtkTwitterなんていうツールを作ったりもしてますから、あまりグチャグチャとは言えないのですが...

twitterTwitterにとっては、今回の高負荷を乗り切れるかどうかが今後の運営を変えてしまい兼ねないとも思っています。

繋がらないから、古参ユーザからの関心が薄くなり、負荷対策を施した頃にはユーザが2/3になってた...なんて事にならないよう、早急な対応が望まれます。


私としては、タイムラインは、更新後に直ぐに反映されなくても良いかな...なんて思ったりもします。
更新データはキューとして溜め込み、デーモンで吸い取る。なんて事でも負荷軽減出来るんじゃないかな...っと
もちろん、異論のある方もいるかも知れません。
リアルタイム性が欠ける事でシステムの意味が変わってしまうかも知れません。

ここはtwitterTwitterユーザが、APIの無いが他のサービスへ流れ込むか、「ギーク」で「シュール」なtwitterTwitterに居座り続けるかを、熱く静かに、見守りたいと思います。
Posted at 19:57 in web
Tagged as: API, nowa, RSS, SNS, Timelog, twitter, もごもご
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip

2007/05/15


このエントリーをはてなブックマークに追加
各社ミニブログをリリースする中、結局APIを提供してる所ってほとんど無いんですよね。 出しててもRSSがいいとこ。 #個人的にはRSSはAPIはデータであってAPIじゃない気がする。 まぁ、これから出て来るのかも知れないけと、APIが提供される事でサービスが発展して行く事があまり知られていないんだろうか…とも思う。 APIが提供される事で、ツールが増え、ニーズが増え、既存部のバグが見つかり、開発者を育てる。 最近、アマゾンとGoogleは開発者を育ててるな…って特に思う。 がんばれ!日本のweb開発者陣営よ。 javascriptやperlやphpやjavaやC言語なんかで、サーバアプリをグリグリさせて下さいよ。 若き開発者を育てましょうよ。 APIが出れば、私もlinuxで動くミニブログ用ツール、作りますよ。 余裕があれば!えっ

Posted at 07:45 in その他
Tagged as: amazon, API, google, RSS
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip