お知らせ: にーやんのブログ 2 に移転しました。こちらのブログは、2009 年末までに削除します。

スポンサード リンク

無料版 XREA 向け広告配信サーバーに不正なファイルが設置されていた件(解決済)

xreaサーバクラック簡易まとめ - おいおい、ふざけんなやxrea! - m-birdとFreeBSDの同棲日記 経由。

2008-06-09 頃から 2008-06-17 の 18 時頃にかけて、XREA の無料版向けに広告を配信しているサーバーに不正なファイルがアップロードされていたそうです。ただし現在は、「17日18時の時点で、サーバーを初期状態に戻し復旧して」(無料ユーザー向け広告配信サーバーの不具合について - XREA&CORE SUPPORT BOARD)いるということです。

今回アップロードされていた不正なファイルには古いバージョンの Adobe Flash Player (バージョン 9.0.115.0 以前)の脆弱性をついたスクリプトが含まれており、広告が表示されるだけで「オンラインゲームのアカウントハッキングを行うウィルスがダウンロード・実行される状態」(無料版広告から ウィルス拡散の恐れ - XREA&CORE SUPPORT BOARD)だったとのことです。Adobe Flash Player を現時点での最新版 9.0.124.0 に更新していれば問題はないとのことです。

詳しくは XREA からの発表をご覧下さい。

お詫びとお願い

私が借りている XREA のサーバーのうち、無料版を利用しているのは AviSynthマニュアル翻訳プロジェクト です。2008-06-09 頃から 2008-06-17 18 時頃のあいだに、AviSynthマニュアル翻訳プロジェクト を閲覧された方は、念のため、アンチウイルスソフトでウイルスチェックを行ってください。また、Adobe Flash Player を最新版に更新することをおすすめします。

今のところ私の方に連絡はありませんが、もし今回の件でご迷惑をおかけした方がありましたら、大変申し訳ありませんでした。また、私自身が今回の事態に気づくのが遅かったこともあり、報告が遅くなりましたことも、あわせてお詫びします。

なお、にーやんのぺーじAviSynth Wikiniiyan.net は有料版の XREA+ を利用しているため、今回の一件とは無関係です。

関連リンク

2008-06-18 23:48 追記

Subtitle フィルタで文字または文字の縁の色を透明にする方法

AviSynth 2.5.8 RC1 のヘルプを見ていて気づいたのですが、Subtitle フィルタで文字の色(text_color)と文字の縁の色(halo_color)の透明度を設定することが可能になっています。更新履歴を見ると、AviSynth 2.5.8 から追加される機能のようです(2.5.8 RC1 で動作確認済み。それ以前については不明)。

設定方法は簡単です。これまでは 16 進数を使って「$RRGGBB」という形式で R(赤)、G(緑)、B(青)をそれぞれ指定していました。透明度を指定したい場合は、さらに「$AARRGGBB」というように A の部分に 16 進数でアルファ値を指定すればよいのです。

たとえば、

$00000000

なら、完全に不透明な黒に、

$FF000000

なら、完全に透明になります。

もう少し例を挙げます。

# クリップの生成
BlankClip(1, 320, 240, color=$eaeaea)
# halo_color=$ff0000 と同じ
Subtitle("transparent?", y=0, size=48, text_color=$336699, halo_color=$00ff0000)
# 文字の縁の色を半透明に
Subtitle("transparent?", y=40, size=48, text_color=$336699, halo_color=$80ff0000)
# 文字の縁の色を完全な透明に
Subtitle("transparent?", y=80, size=48, text_color=$336699, halo_color=$ffff0000)
# 文字の色も縁の色も半透明に
Subtitle("transparent?", y=120, size=48, text_color=$80336699, halo_color=$80ff0000)
# 文字の色を透明に、縁の色を不透明に
Subtitle("transparent?", y=160, size=48, text_color=$ff336699, halo_color=$00ff0000)

サンプル画像

なお、従来通り「$RRGGBB」という形式で指定した場合は、完全に不透明な色(つまりこれまでと同じ)になります。

Amazon 検索サイト「amabiki(あまびき)」を更新

amabiki - Amazon 検索 を更新しました。Google App Engine を使った Amazon.co.jp/Amazon.com/Amazon.co.uk 検索サイトです。

Google App Engine SDK 1.0.2 でクエリ文字列を含む URL のデータが取得できない件の影響が気になりましたが、更新しても問題なく動いているようです。

主な変更点

  • 追加: Amazon.co.uk 対応。
  • 修正: Internet Explorer 6/7 で、お取り置き欄の商品のダブルクリックが動作しなかったのを修正。
    • HTML に onDblClick 属性を埋め込んでいたのを、JavaScript でイベントを追加する方式に変更。
  • 変更: 商品リンクのコードを微調整。
  • 追加: フッタにリンク(App Engine と Amazon)を追加。

Google App Engine SDK 1.0.2 でクエリ文字列を含む URL のデータが取得できない件(解決済)

注: この問題は、Google App Engine SDK バージョン 1.1.0 で修正済みです。

Google App Engine SDK が 1.0.2 にバージョンアップしたので、さっそくインストールしてみました。念のため、1.0.1 をアンインストールしてから、1.0.2 をインストールしました。

ところが、試しに動かしてみると、検索結果がつねに 0 になったり、商品情報なしになります。そこで、簡略化したスクリプトを使って、ちゃんとデータが取得できているのか確認してみました。

確認用のスクリプト

# -*- coding: utf-8 -*-

# モジュールのインポート
import wsgiref.handlers
from google.appengine.ext import webapp

# Google App Engine ハンドラ
class Fetch(webapp.RequestHandler):
    def get(self):
        # Amazon ECS の URL
        request_url = 'http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=(以下略)'
        # Google AppEngine urlfetch
        from google.appengine.api import urlfetch
        xml_data = urlfetch.fetch(request_url).content
        # 出力
        self.response.headers['Content-Type'] = 'application/xml'
        self.response.out.write(xml_data)

# main
def main():
    application = webapp.WSGIApplication(
                                        [('/', Fetch)],
                                        debug=True)
    wsgiref.handlers.CGIHandler().run(application)

if __name__ == "__main__":
    main()

取得した XML 形式のデータをそのままブラウザに表示するだけのものです(Amazon ECS の URL は省略してありますので、そのままでは動きません)。

結果

すると、

リクエストには、Serviceパラメータが含まれていません。リクエストに Serviceパラメータを追加し、再度リクエストを実行してください。

というエラーメッセージが返ってきました。Amazon.com の場合は、

Your request is missing the Service parameter. Please add the Service parameter to your request and retry.

でした。

Service パラメータは、Amazon ECS の URL の「Service=AWSECommerceService」の部分でちゃんと指定してあります。にもかかわらず、このパラメータが含まれていないということは、「urlfetch.fetch()」に渡した後に URL の文字列が正しく処理されていないのでしょうか。

ちなみに、すべての XML データが取得できないかというとそうでもないようです。Amazon 以外のものもいくつか試してみましたが、たとえば私のブログの RSS(http://feeds.feedburner.com/niiyan)は上のスクリプトで取得することができました。しかし、はてなブックマークの最近の人気エントリー(http://b.hatena.ne.jp/hotentry?mode=rss)はダメでした。

素人考えで「クエリ文字列を含む URL の処理に何か問題があるのだろうか」と思ったりもしましたが、試した数が少なく、また問題箇所を突き止めたわけでもないので何とも言えません。もうちょっと調べて見るつもりではいますが、これ以上は Python に詳しくないと無理かもしれません。

まとめ

とりあえず、私が試した範囲でわかったことや気づいたことを、最後にまとめておきます。

  • Google App Engine の SDK を使わずに、Python だけ(urllib とか)でスクリプトを組むと、ECS のデータは取得できる(スクリプト自体には問題がない?)。
  • Google App Engine の SDK のバージョンを1.0.1 に戻したら、意図したとおりに動作した。
    • 1.0.2 のアンインストールでいくつかファイルが残っていたので、いったん削除してから 1.0.1 を入れ直している。
  • オンラインの Google App Engine に置いてあるものは、今のところ、動作しているらしい。
  • 取得できない URL と取得できる URL がある。

追記(2008-05-12)

Issue 341 - googleappengine - Google Code

Google Code の Issue Tracker に私と同じ症状と思われる報告があがっていました。現時点では、まだコメントなどはついていません。

一方、コメントをいただいた mattn さんによれば、1.0.2 でも問題なく取得出来たそうです。

追記(2008-05-15)

修正パッチ

Issue 341 - googleappengine - Google Code にて、jkester さんがパッチを提供されています。「google_appengine/google/appengine/api/urlfetch_stub.py」に対するパッチです。

urlfetch_stub.py を見てみたところ、70 行目と 118 行目で urlparse を使って、パス(path)やクエリ(query)などを取り出していますが、このあとこの query はどこにも使われていないように見えます。jkester さんのパッチは、この query が空でない場合には、path の後ろに ? と query を追加するというもののようです。

実際にパッチを適用してみたところ、Amazon ECS のようにクエリ文字列を含む URL からデータを取得できるようになりました。とりあえず、ローカルで開発する分にはこれで何とかなりそうです。ただ、オンライン(App Engine)上のアプリが動かなくなるのでは、という不安は残りますが……。

ちなみにパッチの適用の仕方については、patch/diff Tips が参考になります。今回のパッチの場合、そんなに量が多くないので、該当部分を手動で修正してもいいと思います(念のため、オリジナルのバックアップを取っておいたほうがいいでしょう)。

改題

初出時のタイトルは「Google App Engine SDK 1.0.2 で Amazon ECS のデータが取得できない件」でしたが、クエリ文字列を含む URL が関係する問題のようなので、記事タイトルを「Google App Engine SDK 1.0.2 でクエリ文字列を含む URL のデータが取得できない件」に改めました。

追記(2008-05-30)

28 日付けでリリースされたGoogle App Engine SDK バージョン 1.1.0 で、この問題は修正されました。

Issue 341 - googleappengine - Google Code

Comment 13 by ryanb+ap...@google.com, Today (6 hours ago)

hi all! thanks for the report, and sorry for the trouble. this should be fixed in 1.1.0.

Amazon 検索「あまびき」を Google App Engine バージョンに移行

Google App Engine - Google Code の勉強もかねて作ってきた Amazon 検索アプリを「あまびき」の新しいバージョンとして公開することにしました。まだ作りかけですが、いろいろ勉強しながら、もうちょっと何とかしていくつもりです。

amabiki - Amazon 検索

デフォルトではメッセージが英語になっていますが、右上の「Japanese」をクリックすると日本語表示に変更されるはずです。

特徴

  • 日本語表示と英語表示の切り替えが可能。
  • Amazon.co.jp と Amazon.com (のどちらか)から検索可能。
  • 画像のドラッグ&ドロップでお取り置き(Cookie を利用)。
    • 2008-05-05 現在、ブラウザを閉じると消えるようになっています。
  • 画像をダブルクリックで商品ページが見られる変態仕様。
  • 簡易 HTML リンク作成機能(商品ページから)。

今後の予定(主なもののみ)

  • JavaScript 無効時の表示を何とかする。
  • ドラッグ&ドロップを活かして何かする。
  • ユーザー認証とデータストアを勉強して、何か機能を追加するか考える。
  • Python を勉強する。

というわけで、まだ途中ですが、「あまびき開発日誌」は休止します。メモは取ってありますので、何か役に立ちそうな情報があれば、別途、記事にまとめるかもしれません。

【追記】新しいバージョンでは、Yahoo! ウェブ検索サービスは利用していません。Amazon Web サービスを使った検索のみ可能です。

Page 3 of 78: « 1 2 3 4 5 6 7 8 9 »