Tag: SiReFaSo’

ゴーストポップアップを動かしてみた

 - by Don

ゴーストポップアップSiReFaSoからデータを取得するよう改変してみました。

サンプル



  • Emily/Phase4.5

ダウンロード

オリジナルのゴーストポップアップとは若干使用法が異なります。詳しくは同梱のサンプルをご覧ください。

その他

今回のためにSiReFaSoの仕様をMarble Note JSON APIに合わせようと若干の修正を施しました。ただし、そもそもの仕様が全く異なるため部分的な互換性のみに留まっています。

Marble Noteほど高機能ではないですが、ゴースト配布サイトのプレビューに利用するなど、十分遊べるのではないかと思います。

SiReFaSoメンテ完了のお知らせ

 - by Don

予定していたSiReFaSoのメンテナンスが無事完了しました。2時間余りの間ご不便をお掛けしました。

今回再登録できなかったゴーストの一覧を以下のURLにまとめてあります。robots.txtによるアクセス拒否とMD5不一致が原因となっております。

今後

実はそう遠くない将来、もう1回メンテナンスの必要が出てくる予定です。現在利用している画像配信サーバが使えなくなるアナウンスがあったため、別の方法を検討します。現状の利便性を維持するのも厳しくなってきましたが、可能な限り続けていきたいと考えておりますので、今後ともよろしくお願い致します。

SiReFaSoメンテナンス予告(2013-08-17)

 - by Don

2013-08-17 (土) 15:00 にSiReFaSoのメンテナンスを行います。メンテナンス中は新規登録が一時的に利用できなくなりますのでご了承ください。また、登録されているゴーストのデータを全削除し、登録し直す作業を行います。作業終了までゴーストの更新確認ができなくなりますので併せてご了承ください。

詳細

今回のメンテナンスは内部的なシステムの更新に留まるため、現行からの仕様上の変更はありません。メンテナンス後はこれまでと同様にご利用できます。

その他

試験運用時の登録作業中に以下のゴーストで登録エラーが発生し登録できないことを確認しました。

桜花亭の冒険者

MD5不一致: ttp://cardghost.web.fc2.com/myghost/sakuratei/ghost/master/descript.txt

原因: たぶんSister’s Complexのdescript.txtに入れ替わってる

ロスト・ユー・サムウェア

MD5不一致: ttp://earlduant.web.fc2.com/LostYouSomewhere/ghost/master/descript.txt

原因: ASCIIモードでFTP転送したかFC2サーバの御乱心

プラナリアン

MD5不一致: ttp://greenfish.futene.net/ghost/pla/ghost/master/descript.txt

原因: ASCIIモードでFTP転送したかNinjaサーバの御乱心

銀夜のソプラノ

MD5不一致: ttp://mft.pv.land.to/Ghost/Soprano/install.txt

原因: ASCIIモードでFTP転送したかland.toサーバの御乱心

人体視願/ヴィイ

MD5不一致: ttp://project-h.sakura.ne.jp/ghost/net_n/ghost/master/descript.txt

原因: ASCIIモードでFTP転送したかsakuraサーバの御乱心

+Schnee+

MD5不一致: ttp://telisiru.masa-mune.jp/update/ghost/master/descript.txt

原因: ASCIIモードでFTP転送したかNinjaサーバの御乱心

喫茶ねこねこ

404: ttp://twincat.island.ac/myghost/Twincat_Tearoom/shell/master/descript.txt

原因: たぶん誤削除

その他、ここには載せませんがrobots.txtでアクセス拒否の意思表示が見られたいくつかのサーバ上のゴーストも登録除外となります(前バージョンのSiReFaSoのバグにより誤登録されていました)。

DAU-Crawler/3.0 Release

 - by Don

DAU/Crawler

本日、SiReFaSoのコアエンジンであるDAU-Crawler/3.0をリリースしました。

DAU-Crawler/2.0からの変更点としては以下の通りです。内部的な処理の変更がメインで、外見上や仕様上の違いはありません。

  • Python 2.5からPython 2.7へ移行
  • Kay FrameworkをPython 2.7のものに差し替え
  • データストアAPIをDBからNDBへ移行
  • backendの処理をBackendsからModulesへ移行
  • 画像処理ライブラリをpypngからPILへ差し替え
  • robots.txtの解釈に関するバグの修正

SiReFaSoへの適用

SiReFaSoはまだDAU-Crawler/3.0への差し替えはしていません。しばらく別サーバで試験運用をしてから差し替えようと思います。

差し替え時にはDAU-Crawler/2.0の時と同様、全てのデータを削除した上で再度登録し直す作業が必要となります。メンテナンスには相当の時間がかかるため、スケジュールが決まり次第Disc-2に告知する予定です。

更新の目的

特に仕様上の変更は無いのですが(バグフィックスはあるけど)、Googleさんに「いつまでもPython 2.5使ってんじゃねーよ*すぞ(意訳)」って言われたので、ついでに色々まとめて更新したのでした。

SoSiReMiは?

SoSiReMiも更新しないといけませんが、こちらはまだメドが立っていません。SiReFaSoが片付いたら手を付けようと思います。

SiReFaSoの巡回間隔の変更

 - by Don

本日、以下のサイトにてメンテナンスを行いました。

内容は先週お知らせした通り、Google App Engineからの催促に応えたものです。

HRDに移行後もこれまで通りの動作を確認しましたが、1つ不都合が生じました。

リソース消費量の増加

以下の画像は20:30現在におけるSiReFaSoのリソース消費量です。

HRD

16:00にリセットされるので、4時間半経過した時点でDatastore Read Operationsという項目が3分の1消費されていることになります。これはSiReFaSoの設計において、登録時や巡回時にデータを更新する時に消費される項目なのですが、このままいけば明日の16:00まで持たないと考えられます。リソース消費量が100%になると、サイトがダウンして閲覧できなくなります(これまでにも何度か登録や更新が多い日にダウンしましたが)。

9:00追記

朝起きたらこんな感じでした。

hrd2

今日は16:00まで巡回はストップしておきます。

対策

リソース消費量削減のため、SiReFaSoの巡回間隔を、「1時間に1回」から「2時間に1回」に変更しました。もっとリソースを節約した設計を考えるべきところですが、前回の大幅な設計変更の際に既にかなりの節約を達成しており、これ以上は乾いた雑巾を絞るに等しい状態です。当面はこの巡回間隔で様子を見ながら、他の対策を考えることにします。

補足

1回の更新(巡回)で5~6%程度の消費を確認しています。最低でも24回+新規登録・更新用に数回=計30回分くらいは確保したい→1回の更新で3%の消費を目指す必要があります(HRDに移行する前はこのくらいだったんですけど)。かなり難題です。

またSoSiReMiとMiDoLaSoにも同じ影響がありますが、元々のリソース消費量があまり多くないのでまだ対策を打つほどではありません。でもSoSiReMiの場合は新規公開時にダウンロード数が跳ね上がるのでそれで落ちることがあるかもしれません。

SiReFaSoの登録情報を更新する

 - by Don

SiReFaSoに登録された情報を更新したい場合、SiReFaSoManagerを使う必要はありません。既に登録済みの情報を更新しようとしてSiReFaSoManagerで再登録しようとすると、homeurlやdirectoryの変更でない限りはエラーとなります(homeurlやdirectoryの情報も、SiReFaSoManagerを使わずに変更できます)。このあたりの仕様で誤解されることが多いので、登録情報を変更したい場合の方法をまとめてみました。

配布サイトURLを変更したい

descript.txtのcraftmanurlを変更してネットワーク更新します。

craftmanurl,http://new.example.com/

SiReFaSoの巡回により自動的にデータが更新されます。

ゴースト名や作者名を変更したい

上記と同様、descript.txtのnameやcraftman,craftmanwなどを変更してネットワーク更新します。

name,新ポスト
craftman,your-name
craftmanw,お名前

SiReFaSoの巡回により自動的にデータが更新されます。

プレビュー画像(ゴーストの立ち絵)を更新したい

surface0.png、surface10.png(バルーンの場合はballoons0.png、balloonk0.png)、それぞれに対応するPNAファイル、シェル(バルーン)のdescript.txt(use_self_alphaのチェック用)などを変更してネットワーク更新します。

SiReFaSoの巡回により自動的にデータが更新されます。

ディレクトリ名を変更したい

install.txtのdirectoryを変更してネットワーク更新します。

materiaやCROWでupdates2.dauを作成している場合、install.txtをネットワーク更新に含めることができません。SSPで作成するか、ゴースト配布系自動化システムをお使い下さい。

directory,new-directory

SiReFaSoの巡回により自動的にデータが更新されます。

以前のディレクトリ名でSiReFaSoにアクセスした場合でも、新しいディレクトリ名にリダイレクトされます。

例:

homeurlを変更したい

homeurlの変更に限らないですが、サイトの移転をする場合は.htaccessによるリダイレクトを設定します。

以下のような内容のテキストファイル(文末には改行必須)を作成し、名前を".htaccess"として保存し、FTPクライアントで以前のサイトのトップディレクトリにアップロードします(レンタルサーバーによっては.htaccessが利用できない場合があります)。

Redirect permanent / http://new.example.com/

これで旧URLにWebブラウザでアクセスすると、自動的に新URLに転送されます。

Webブラウザのみならず、Google先生も新URLを移転先とみなして検索結果に反映するようになります。サイト名で検索した時に旧URLがいつまでも上位に表示されるような状況を回避できます。

SSPでネットワーク更新した場合もリダイレクトを検出して新URLの更新ファイルを取得しに行きます。旧サイトの更新ファイルを使ってhomeurlを書き換え、次に新サイトの更新ファイルにより最新の状態になる、という2回のステップを踏む必要もなくなり、homeurl変更のための手間も省ける他、ユーザに対しても大変親切です。

SiReFaSoもこの方式(301リダイレクト)でのリダイレクトを検出した場合、移転とみなしてhomeurlの書き換えを行い、以降の巡回では新URLを使用するようにしています。

このサイトも以前に引越しを経験しております。旧URLからは301リダイレクトにより転送しています。

参照:cloudControlからPHP Fogへの移行 | すくりや

SiReFaSo自身も移転を経験しております。旧URLからは301リダイレクトにより転送しています。

参照:サイト移転時のリダイレクト関連のメモ

登録データを抹消したい

install.txtに"robots,noindex"を追記してネットワーク更新します(SiReFaSoの独自仕様)。

install.txtをネットワーク更新に含める方法についてはdirectoryの変更で説明した通り、ゴースト配布系自動化システムの利用を推奨します。

robots,noindex

SiReFaSoの巡回により直ちにデータが抹消されます。SiReFaSoManagerによる登録も、この記述がある限りは無効になります。

その他

既に登録したデータも、MD5不一致エラーやupdates2.dauに含まれたデータの誤削除(install.txt等)による404エラーの状態が1週間続くと自動的に削除されます。こうした事態を防ぐためにもゴースト配布系自動化システムの利用を推奨します。

SiReFaSoメンテナンス完了のお知らせ

 - by Don

SiReFaSoのメンテナンスが完了しましたのでお知らせします。

変更内容

駄デベWikiの方に最新の仕様を反映させておりますが、主なものを以下にご紹介します。

登録要件の厳格化

まず、SiReFaSoの登録要件である以下の3点を厳格に実装し直しました。

  1. 入手可能である
  2. 更新可能である
  3. 製作者の意志に反しない

1つ目の条件として、craftmanurlがリンク切れになっていないかどうかチェックする機能を追加しました。

2つ目の条件として、updates2.dauに定義されていながら更新ファイルが存在しなかった場合、存在してもMD5ハッシュ値が一致しない場合なども更新エラーと認識するようになりました(SiReFaSoが必要とするファイルのみで、すべてのファイルをチェックしているわけではありません)。

3つ目の条件として、登録者が登録内容を書き換えることができなくなりました。あくまでも製作者の更新用サーバーにあるファイルに記述されている内容を基に登録されます。また、巡回する毎にrobots.txtにアクセスし、それに従うように変更しました。本来検索クローラが従うべき手順です。

以上の3つの条件を満たすため、以前のSiReFaSoで後付けで実装されたものもありますが、中途半端な実装であったため、今回のメンテナンスを機にちゃんと実装し直しました。

以前のデータを登録し直す際に、前述の条件を満たさず登録出来なかったものの一覧が以下のURLにまとめてあります。

h:id:sirefaso:243585843001153319

robots.txt対応前に登録されたものや、(製作者でなく)登録者がdescript.txtを書き換えて登録したものなどが大半のようです。本来登録されるべきでなかったものについては、やむを得ないと考えます。

更新用サーバの状態によってrobots.txtの内容を正しく返さない事例を3件ほど確認しています。タイミングによっては(製作者の意志に反して)登録されてしまう可能性もありますが、その場合はそのようなサーバ(NinjaとかNinjaとかNinjaとか)を用意した製作者側が負担すべき問題であると考えます(登録作業時に1件登録されてしまいましたが、今回は手動で削除しました)。

また、サーバの応答が悪く、登録作業時に何度も失敗したのが以下のものです。

h:id:sirefaso:243603435103865141

サーバの調子が良い時に再度登録できるのを祈ることにします。

複数一括登録

今回から、一度に複数の情報を登録できるようになりました。今回の変更に合わせてSiReFaSoManagerも更新しましたが、まだ複数登録のための機能は付けていません。そういった機能を実装する場合は、Pluginという形式では厳しいとも考え、実装は未定です。

登録のためのAPIを駄デベWikiの方に掲載していますので、第三者がクライアントを製作することも可能になっています。

また、複数一括登録対応に伴い、処理時間が長くなる場合に備えて、登録時の結果の通知をクライアントからh:id:sirefasoへ変更しました。登録の受付結果自体はすぐに返されます(登録の成否はその時点ではわかりません)。

影響が大きそうな変更点として2つほど詳細を記載させて頂きました。今後は細かな既知の不具合と、今後見つかるであろう不具合の修正を行う予定です。

SiReFaSoメンテナンス延期のお知らせ

 - by Don

本日予定していたSiReFaSoのメンテナンスを延期することにしました。

理由は、差し替え予定のシステムに不具合が発覚し、まだ原因調査中であり修正が間に合わなかったためです。今回のメンテナンスはその性質上、急を要するものではなく、新しいシステムも信頼性の面で十分ではないので、アップグレードは時期尚早であると判断しました。

次回メンテナンスの予定ですが、まだ決まっておりません。また、メンテナンスに要する時間が当初の見積もりよりも短い時間で済む見込みなので、次回は予告なしに決行し、速やかに入れ替えを完了するつもりでおります。年内には入れ替えを完了したいと考えていますが、システムの作り直しが必要となる可能性もあるため、来年以降になる場合もあり得ます。

しばらくは新規登録についてもこれまで通りお使いいただけますので、ご利用ください。

SiReFaSoメンテナンスのお知らせ

 - by Don

来週の11-25(金)?11-26(土)にかけての深夜11-26(土) 16:00?SiReFaSoのメンテナンスを開始するため、新規登録が一時的に利用できなくなります(予定日時は変更される可能性があります)(変更されてます)

内部的に全く新しい内容に入れ替えるため、全てのデータを一旦削除します。その後、新しくデータを登録し直す作業を行います。

作業は1日では終わりません。場合によっては1週間かかるかもしれません。その間、新規登録ができないことに加え、必要な場合は更新の補足もストップする場合があります。長期間ご不便をおかけすることになりますが、ご了承願います。作業は1日?2日で終わる可能性が高いです。

内部的な話とか

何故こんなに時間がかかるかというと、データの削除・追加の過程で1日分の無料枠のリソースを消費し尽くしてしまうため、翌日リソースが回復するまで作業が続行できないからです。Twitterで例えるなら、連投し過ぎでAPIを使いきってしまい次の1時間まで規制されるみたいな状況です。

現在SiReFaSoには600件以上のデータが登録されていますが、一回の削除・追加で200件が上限と仮定すると1週間というのは妥当な予測であると考えています。データが何もないまっさらな状態で一日放置とかありえますが、落ち着いて見守っていただければ幸いです。

かなりAPI消費量の切り詰めに成功したため、予定より早い時間で作業が完了する見込みです。

メンテナンスの目的

まず、Google App Engineの料金体系が変更になったことへの対応です。現在、毎日平均で無料枠上限の80%程を消費していますが、アクセスの多い日にはこれを超える可能性があり、また今後登録データが増えればサービスを維持できなくなる場合もありえます。上限の50%以下に抑えることが当面の目標です。

次に、機能の改善です。/?page=20など奥のページに、先頭から順に辿らなくてもいきなりアクセスできるようになります。検索で大文字小文字の区別を廃止し、directory名でも検索できるようになります。一件ずつだった登録が一度に複数件登録できるようになります。他にもありますが、詳細はリリース後に再度告知します。

最後に、応答速度の向上です。レスポンスがめっちゃ早くなります(当社比)。体感的にはさほど変わりません。 :(

DAU-Crawler

本日、DAU-Crawler/1.x系最後のリリースを行いました。SiReFaSoでの正常動作が確認できたら2.0をリリースする予定です。1.x系とまったく互換性がないですが、SiReFaSo以外に使われているという話は聞かないので、移行に関するドキュメントは特に用意しておりません。 :)

参考

昨日あったGAE関連イベントの資料を見つけたので勉強中です。非常にタイムリーで役立つ知識が満載で助かります。無料枠でGAEを運用する人は必読です。

Google App Engine 倹約のすゝめ