ノートパッドpad-pad.net





シンプルな紙のノートを置き換えるように設計されたWebサービスnote-pad.netに注目してください。 サイトを開いて何かを記録し、それを閉じることができるように、それを作成しようとしました。 私のノートブックは、画面全体の大きなテキストフィールドと、ページをめくるために設計された右側のボタンの列で構成されています。



ノートブックには36ページあり、追加または削除することはできません。 さらにページが必要な場合は、複数のノートブックを作成できます。 すべてが人生のようです。



当初、このサイトには最小限のオプションしかありませんでしたが、2年で優れた機能を獲得しました:自動保存、ブラウザーでの暗号化、ファイルとしてのメモ帳のダウンロード、ホットキー、メモ帳からのリンクの追跡、ドラッグアンドドロップによるページの並べ替え、検索、および柔軟な外観設定。 ただし、これによりメモ帳の使用が複雑になることはありません。







この記事では、サービスの開発とその技術的特徴についてお話します。



エディター

サービスの中心はテキストエディターです。 ここは複雑だと思われますか? ボタンをクリックするだけで、テキストをサーバーに送信します。それだけです。







実際、すべてがより複雑です。 ユーザーが[保存]をクリックした後、テキストの印刷を続行できます。 その結果、サーバーから応答が来たときに、フィールドのテキストはすでに保存されていません。 この複雑さは、自動保存、ページナビゲーション、ユーザーがサイトを離れようとする、またはタブを閉じようとする試みに重なります。 未保存のテキストがどこにも行かないようにし、間違ったテキストで正しいテキストが上書きされないように、多大な努力を払う必要があります。



「保存済み/未保存」ステータスの表示、およびサーバーとのデータ交換プロセスにも微妙な違いがあります。 一方では、ユーザーがテキストが保存されているかどうかを知ることができるように、表示は常に見えている必要があります。 一方、自動保存をオンにすると、この表示が点滅してテキスト編集の邪魔になることがよくあります。 現在の実装では、自動保存が有効になっている場合、デフォルトでは表示は表示されません。 現在の状態を表示するには、保存ボタンにカーソルを合わせるか、保存に対応するキーの組み合わせを押します。 接続に問題がある場合、サイトはユーザーに自動保存が不可能であり、テキストの安全性を自分で管理する必要があることをユーザーに通知します。



承認と登録





最初は、サイトに許可はありませんでした。 各ノートブックには、シークレットコードとの一意のリンクがありました。 ノートブックにアクセスするには、このリンクを開くだけで十分です。 今、そのような機会があります。 ユーザーが最初にサイトにアクセスし、[メモ帳の作成]ボタンをクリックすると、リンク経由でアクセスできるメモ帳が作成されます。 このため、サービスを使用するための承認は必要ありません。



次に、Loginzaウィジェットがサイトに表示され、人気のあるサイトのいずれかのアカウントまたはOpenIDを使用してログインできるようになりました。 このメソッドを実装したとき、これで十分だと思われました。 しかし、しばらくすると、ユーザーからの苦情が降った。提案された方法は珍しく、不便だった。 心理的問題と建設的問題の両方がありました。 たとえば、Yandexはデフォルトでアクセス許可を記憶することを提案するため、最初のログイン後、Yandexは質問をしなくなります。 ログインは本当に簡単ですが、ログアウトはそれほど簡単ではありません。 サイトのアカウントを終了すると、ユーザーはYandexにログインしたままで、2回クリックするだけでサイトに再入力できるため、データのセキュリティが低下します。 また、別のYandexアカウントを使用した認証は簡単なタスクになります。Yandexに直接アクセスしてログインする必要があります。 ユーザーは、あるサイトでの承認が別のサイトでの承認に影響を与えないという事実に慣れており、そのような動作はユーザーには明らかではないようです。



個人的には、OpenIDは非常に便利ですが、ある時点でユーザーを苦しめることにうんざりしていました。 奇妙なことに、ユーザーにとってこれが最も便利なオプションです。



許可された各ユーザーは、複数のノートブックを作成し、各ノートブックに名前を設定できます。 不要になったメモ帳は削除できます。 各ノートブックはカスタマイズできます。







暗号化

最近暗号化を追加しました。 妄想が私を読んでいるのを知っています(このフレーズが本当に怖がらないことを願っています)。そして、この機能は彼らのために特別に設計されています。 暗号化はAESアルゴリズムに従って動作し、Crypto-JSライブラリが使用されます。 ユーザーのパスワードはサーバーにまったく送信されず、テキストは暗号化された形式でのみ送信されます。



その他の機能

カーソルの下のリンクをたどって、保存、ページめくりに対応するホットキーを設定できます。 さらに、Ctrlキーを押しながらリンクをクリックすると、リンクをたどることができます。 これにより、メモ帳をブックマークストレージとして使用できます。



すべてのインターフェイス要素の色を調整し、アイコンとページ番号の表示を無効にすることができます。



ユーザーはノートブックのテキストを検索できます。



サーバーは、Amazon S3で毎日データをバックアップします。これにより、偶発的なデータ損失の可能性が大幅に減少します。 ノートブックの安全性にも注意することができます。ノートブック全体をテキストファイルとしてダウンロードする簡単な方法があります。



API

ブラウザーは、単純なJSONベースのAPIを使用してサーバーと通信します。 サイトのヘルプセクションには、APIメソッドの説明があります。 そのため、愛好家はサイトを何でも統合できます。 確かに、完全な機能のためのいくつかの方法はまだそこに欠けていますが、愛好家がいる場合、私たちはそれを修正します。



開発

私は一人でサイトを作りました。 最初の作業バージョンは2010年3月に登場し、メインサイトのページに追加された単純なPHPスクリプトでした。



開発の主な原動力は、私がサイトを自分で使用したという事実でした。 ユーザーはほとんどいませんでした(そして今でもほとんどありません)。 1年後、私は自分の力を集めてクライアントの部分を書き直し、そこに落ち着いた混乱に少し秩序をもたらしました。 次に、ユーザーのフィードバックのためにReformalプロジェクトを作成しました。 彼らは私にサービスが欠けていたいくつかのことを言った。



そして先月、私は力を集め、Ruby on Railsを使用してサーバー側を書き直しました。 それでも、2年前にPHPコードに新しい機能を追加することは、1か月に1度検討することは非常に困難です。 ちなみに、サーバー側は非常にシンプルで、完全に書き換えるのにたった1日しかかかりませんでした。



そして最後に、私のノートブックはhabrasocietyに見せることを恥ずかしくないレベルまで成長しました。 コメントでの議論が実り多いものになり、サイトのユーザー数が増え、私の仕事が理にかなっていることを願っています。



収益化の計画はまだありません。 広告を追加したくありません。 有料機能の一部も本当にしたくありません。 しかし、出席者が増加し、ホスティングコストが増加した場合、何かを考え出す必要があります。



将来的には、次の機能を実装する予定です。 それだけです。 オンラインノートブックをお楽しみください。



All Articles