2017年1月7日土曜日

1月9日(月)午前 1:00〜3:00 メンテナンスのためサービスを停止します

新年明けましておめでとうございます。本年もかわらぬご愛顧のほど、お願い申し上げます。

さて、新年早々ではありますが、データベース・ストレージの空き容量が逼迫してきたため、下記のとおりメンテナンスを実施させていただきます。メンテナンス期間中は Feedeen のすべてのサービスがご利用いただけませんので、あらかじめご了承ください。

日程 : 1月9日(月曜日)午前 1:00〜3:00

メンテナンス内容:

  • データベース・ストレージの拡張
  • データベース・スキーマの変更(保存効率の改善のため)
  • アプリケーションの若干のバグ修正



2016年12月30日金曜日

Chromeにおけるスクロールの挙動変更について

いつも Feedeen のご利用ありがとうございます。運営者の伊藤です。デスクトップ版 Google Chrome において、マウスクリックでフィードアイテムを開いた際の挙動を若干変更しましたので、変更内容および変更理由をご説明させていただきます。


変更内容


Feedeen でフィードアイテムをクリックして開くと、従来はそのフィードアイテムが一番上に表示されるようにスクロールを行っていました。これを Google Chrome においてのみ、「クリックしたアイテムが上から2番目に表示されるようにスクロールする」という挙動に変更いたしました。つまり、クリックしたアイテムのひとつ上のアイテムが表示された状態になります。

この変更は Google Chrome でマウスクリックによってアイテムを開いた場合のみ適用され、他のブラウザ、およびキーボードショートカットでアイテムを開いた場合は従来のまま変更ありません。


変更理由


あるユーザーの方より、「Google Chrome においてマウスクリックでフィードアイテムを閉じようとすると、勝手にスクロールして閉じることができないことがある」という旨のご報告をいただきました。当方でも現象を再現し調査したところ、以下のことが判明しました。

  • アイテムリストの上端付近をクリックすると、数回に一回程度発生する
  • JavaScriptによるものではなく、ブラウザが強制的にスクロールさせている
  • 現象が発生すると、クリックイベントの通知対象もおかしくなる(このため、アイテムが閉じない)
  • アイテムを閉じるときだけではなく、スターなどのクリックでも発生する
  • 発生するのは Google Chrome (Blinkエンジン)のみ
Feedeen 側の JavaScript によるものではないため、 Feedeen 側で現象を直接制御する手段がありません。いくつか考えられる対処も試したのですが、残念ながら回避方法は見つかりませんでした。

そこで、「アイテムリストの上端付近をクリック」という条件に着目し、そのような操作をする機会を減らすため、冒頭のとおりの変更を実施しました。まったくの対処療法なのですが、影響を可能な限り緩和するための措置ということで、ご理解いただければ幸いです。

Google Chromeユーザーの皆様には、ご不便をおかけして申し訳ございません。もし今回の変更になんらかの不都合がある場合は、問い合わせフォームよりご遠慮なくお知らせください。可能な限り対応を検討いたします。

今後とも Feedeen をよろしくお願いいたします。


2016年12月24日土曜日

CSV 形式のインポート・エクスポートができるようになりました

いつも Feedeen のご利用ありがとうございます、運営者の伊藤です。

本日、半年以上にわたり準備を続けてきた、購読リストのデータ構造の抜本的な変更を実施しました。サービス開始初期に実装した古いコードを抜本的に書き直し、今後の機能追加に柔軟に対応できるものを目指しております。

基本的には内部の変更なので、時間がかかったわりにユーザーの皆様への直接的なメリットは少ないのですが、購読まわりで若干の機能追加・修正がありますので、ここでご紹介させていただきます。


購読リストの CSV 形式でのインポート・エクスポート


これまでの OPML 形式に加えて、 CSV 形式でも購読リストのインポート・エクスポートが可能になりました。 CSV 形式ではファビコン URL やフィードの状態(遅延・停止)などの情報もエクスポートされるため、購読リストの完全なバックアップが可能です。

また、エクスポートした CSV を一般的な表計算ソフトで編集し、その結果をインポートすることで、購読リストをまとめて更新できます。具体的な操作方法を「表計算ソフトで購読リストを編集する方法」に掲載しましたので、ぜひご参照ください。


インポート時のオプションを追加


上記とも関連しますが、購読リストのインポート方法やファビコンの取得を選択できるようにしました。各オプションの詳細については「購読リストのインポート・エクスポート方法」をご参照ください。

インポートオプションを指定する画面

インポートするファイルの指定もドラッグ&ドロップで行えるようになりました。

インポートファイルを指定する画面

将来的には Google Drive への直接インポート・エクスポートなどを検討しておりますので、ご期待ください。


モバイルデバイスでのインポート・エクスポート


今回から、モバイルデバイスでも購読リストのインポート・エクスポートができるようになりました。デスクトップ版と同様のオプションも指定できます。

モバイルデバイスでのインポート画面

Feedeen はブラウザベースですので、エクスポートしたファイルの保存方法などは OS やデバイスごとに異なります。少なくとも iOS 10 であれば iCloud Drive への保存が可能で、 Android も運営者の手持ちのデバイスでは SD カードへの保存ができることを確認しております。ご愛用のデバイスでの保存方法は、デバイスのマニュアル等をご参照ください。


日本語ドメインのフィードの購読に対応


お気づきの方も多いかと思いますが、これまで Feedeen は日本語ドメインで配信されているフィードを購読できませんでした。正確には Punycode と呼ばれる形式で指定すれば購読できるのですが、非常に面倒です。

今回、この Punycode への変換を自動で行うように改善し、日本語ドメインの URL を直接購読できるようになりました。これまでのご不便、たいへん申し訳ありません。購読したい日本語ドメインなどありましたら、ぜひ再度ご登録をお試しください。


Readability のサポートを廃止


非常に残念ですが、 Readability は今年 9 月にブックマークサービスを停止しました。このため、今回の更新で Feedeen 側でのサポートも廃止しました。

ユーザーの皆様での作業はとくに必要ありませんが、スターしたアイテムの Readability への保存は行われませんのでご注意ください。


取得障害への抜本的な対策を施しました


機能的な変更ではありませんが、 8 月 29 日に発生したフィードの取得障害について、抜本的な対策を施しました。

取得障害の原因は、クローラ全体を管理するプロセス(マスタープロセス)のメモリ消費がネットワーク遅延により想定以上に増えてしまい、それに影響されて実際の取得処理を担うプロセス(ワーカープロセス)が再起動を繰り返す状態に陥ったことです。

そこで、前述のマスタープロセスを「全体の管理」と「取得タスクの生成」という 2 つのプロセスに分割することで、ネットワーク遅延がワーカーに影響しないよう改善しました。また、ワーカーの起動に失敗した場合はそのままリトライせず、クローラ全体を再起動する仕組みも取り入れました。これにより、取得障害が発生する可能性は格段に低くなったと考えております。今後も可能なかぎり安定したサービス運営に努めてまいります。


今回の更新で、購読リストまわりについてのデータ構造の変更は完了し、メンテナンスや機能追加が容易な状態になりました。しかし、まだフィードアイテムの格納方法は従来のままですので、そちらも同様に変更したいと考えております。まだしばらく機能追加が停滞する状態が続いてしまいますが、ご理解いただければ幸いです。今後とも Feedeen をよろしくお願いいたします。


2016年12月21日水曜日

12月24日(土)午前 1:00〜4:00 メンテナンスのためサービスを停止します

いつも Feedeen をご利用いただき、ありがとうございます。運営者の伊藤です。

先日は急遽メンテナンスを中止してしまい、たいへん申し訳ありませんでした。プログラムの改修が終了しましたので、12月24日(土曜日)午前 1:00〜4:00 の時間帯に、下記の通り Feedeen のメンテナンスを実施させていただきます。

メンテナンス内容:

  • 新しいデータ構造への移行
  • プログラムの更新


今回作業量がいつもより多いため、念のため終了予定を1時間遅らせました。午前4時まではサービスが利用できない可能性があるということで、ご承知おきをお願いいたします。

メンテナンス期間中はご不便をおかけいたしますが、ご理解の程、よろしくお願い申し上げます。


2016年12月14日水曜日

12月15日(木)のメンテナンスは延期します

いつも Feedeen をご利用いただき、ありがとうございます。運営者の伊藤です。

12月15日深夜にメンテナンスを行う予定でしたが、開発上の都合により延期させていただきます。新規機能の一部に混乱を招きやすい仕様があり、改善方法を思いついたので、そちらを実装した後にリリースしたほうが良いと判断しました。直前の延期でたいへん恐縮ですが、皆様により良いものをご提供するためということで、ご理解いただければ幸いです。

新たなメンテナンス日程は後日お知らせいたします。今後とも Feedeen をよろしくお願いいたします。


2016年12月10日土曜日

12月15日(木)午前 1:00〜3:00 メンテナンスのためサービスを停止します

いつも Feedeen をご利用いただき、ありがとうございます。運営者の伊藤です。

12月15日(木曜日)午前 1:00〜3:00 の時間帯に、下記の通り Feedeen のメンテナンスを実施させていただきます。メンテナンス期間中は Feedeen がご利用いただけませんので、あらかじめご了承ください。

メンテナンス内容:

  • 新しいデータ構造への移行
  • プログラムの更新


メンテナンス期間中はご不便をおかけいたしますが、ご理解の程、よろしくお願い申し上げます。

2016年8月31日水曜日

8月29日の再度のフィード取得障害について

いつも Feedeen のご利用ありがとうございます。運営者の伊藤です。

先日の障害があったばかりで心苦しいのですが、8月29日にも約3時間程度にわたってフィードアイテムの取得が停止する障害が発生いたしました。再びご迷惑をおかけすることになり、たいへん申し訳ございません。今回の障害は前回とは異なり、クローラのプロセスがファイルディスクリプタと呼ばれるリソースを使い切ってしまったことで発生しました。以下に障害の内容と対策を説明させていただきます。


障害発生の経緯


8月29日の17:30頃(日本時間)、フィードアイテムを取得する処理のうち、フィード配信元から RSS 等のデータを取得する部分(以下クローラ)で障害が発生し、処理が停止しました。これにより他の部分にもデータが供給されなくなるため、新規の更新が完全に停止することになりました。

19:30頃になり、運営者が異常なエラーを発見し、調査を開始しました。ただ、このとき運営者は外出中で、手持ちのiPhoneからサーバーに接続しての作業だったため、非常に時間を要しました。ようやく20:30頃、クローラを再起動し、暫定的に処理を復帰させました。

運営者の帰宅後、一定時間クローラの動作を監視した後、23:00頃に短時間だけクローラとその他のバックグラウンド処理を停止し、念のため仮想マシンを再起動した後に処理を復帰させました。

以上が障害発生から復旧までの経緯です。


障害の原因


今回の障害の原因は、前述のとおりクローラがファイルディスクリプタを使い切ってしまったことです。このため新規のプロセスの起動にも支障が生じ、エラー終了したクローラの再起動を繰り返す状況に陥ってしまいました。

ファイルディスクリプタを使い切った原因は特定できておりませんが、現象発生時にネットワークの遅延が発生していた形跡があるので、それがきっかけと考えられます。ただ、これまで同様の現象が発生したことはなく、他の要因も関係しているものと思われます。

また、クローラの再起動を繰り返す現象については、再起動失敗のエラーを正しく処理せず、他のエラーと同様にリトライを行ってしまったことが原因です。したがって、再起動失敗時はクローラ全体を終了させ、より上位のプロセスマネージャに再起動を任せることで対処可能です。


今後の対応


現在、データ構造の変更に伴ってクローラにも多くの修正を行っておりますので、それと並行してクローラ再起動処理の修正も進めてまいります。

それらの修正を適用するまでは、当面の間クローラの動作を注視しつつ、念のため一日に一回程度クローラ全体の再起動を行います。


発生原因が異なるとはいえ、フィードアイテム取得処理についての障害を繰り返すことになってしまい、大変申し訳ございません。今回も障害についてご報告くださった方々がおられますので、この場にて恐縮ですが御礼申し上げます。

先日の障害と合わせて対策を進めてまいりますので、今後ともよろしくお願いいたします。