駆け抜けたTropyやTropyの設計判断を真似て書いてみる。
Tropyを知る
雑談しながらリンクを貼るスレ@新月掲示板の書き込みがきっかけ。 面白いというよりも、悔しいというのが先だった。 以前似た要素を持つソフトを作り、全く受けなかったからだ。 それはTropyから編集機能とランダムジャンプ機能を取り除いたものだった。
FukTropyを作る
参考リンク: 駆け抜けたTropy
FukTropyを作ろうと思ったのは本家のソースが公開されていなかったから。 ここで先んじて公開すれば、多くのサイトで使われるだろうと読んだ。 しかしその直後に本家の稼働が停止、ソースの公開に至る。 目論みは外れた。
どんな機能を実装すればいいか、最初からわかっていたので、 作るに時間はかからなかった。 こういう仕事はあまり生産的ではないのだろうけど、楽しい。 本当にこれでうまくいくのか、と疑問を抱えながら作業するのが 本当に生産的な仕事だと思う。 それは辛いものでもある。
Pythonでコードを書くと早くできるので好き。 実質2〜3時間で最初の版が完成。
Ajax版を作る
Tropy上でアドバイスがあったことが1つ。 負荷を軽くするため、できるだけCGIを使いたくなかったのが1つ。 AjaxとJavaScriptを勉強してみようと思ったのが1つ。 今は書き込み以外にはCGIは使わない。
Tropicalを知る
表示ページがそのまま編集ページというのは、 今考えてみるとWikiの一種にあったような気もするけど、 最初見たときはとにかく驚いた。 まだ名前がなかった頃のTropyを見たときよりも驚いた。 結城さんの紹介で「最初から編集モード」と書いてあったのに、見たら驚いた。
早速FukTropyにも採用した。
設計判断
- オリジナルはIDが8桁の数字なのにFukTropyはMD5ハッシュ(32桁の英数字) になっていのは?:
- 前回作った「くっつきブログ」で パスワードをMD5ハッシュに変換して保存した。 今回もMD5を使いたかった。
- 明らかに覚えられなさそうなIDにすることで、 覚えるなというメッセージにしたかった。 オリジナルはUNIX時刻だと思い込んでいた。
- MD5ハッシュの生成に時刻と書き込み内容を使っているのは?:
- 衝突を避けるため。
- 当初はPermalinkアンカーを使っていたのは?:
- URLを記録するなら僕はアドレスバーを見るので、 アドレスバーにはIDを出したくなかった。
- アドレスバーにIDを出すとランダム用のURLとPermalinkの2つが必要で、 ランダムジャンプのときのアクセス数が2倍になってしまう。 これを避けたかった。
- 5秒お待ちくださいは?:
- オリジナルでは待ち時間にはページに何も表示されない。 そのため2度ほどリロードしてしまった。 負荷を下げるためにメッセージを出すようにした。
- 背景色が固定なのは?:
- その方が安心できるから。 色は2chと同じ。
- 行数が無制限なのは?:
- どの程度に制限すればよいのかわからなかったので。 繰り返すけど、 最初作ったときはオリジナルのソースはまだ公開されてなかった。
- Powered by 表示があるのは?:
- 「blogch」のデザインを考えてくれた人が、 Powrded by blogchと入れてくれたので、それを踏襲している。
- 改行を改行として扱うのは?:
- 2chと同じにするため。
- Fuktommy作品で記法は揃えたい。 URLの自動リンクを考えていたのもそのため。
- Ajax版でPermalinkを出していないのは?:
- CGIのみ版では編集のときにどうしてもPermalinkが必要になる。 HTMLソースを読めばすぐわかる。 Ajaxだともうちょっと隠せる。
- アドレスバーにPermalinkがあるとき、 リロードなしでランダム表示用のURLに切り替える方法がわからなかった。 Tropix みたいにすればできる。
- ページリストを先に取得するのは?:
- その方が負荷が軽そうだったので。 書き込み以外ではCGIは使わなくてよくなった。
- 反面、XMLを直読みされるとつまらなくなる。
- ページリストがあるのに「戻る」リンクがないのは?:
- 便利すぎてつまらないかと思ったので。
- 白黒で平面的なデザインなのは?:
- Tropicalの真似。 ボタンを平面にしたのは雰囲気を揃えるため。
- 書き込みをしてもSaveの色が変わるだけでわかりやすい変化がないのは?:
- 無愛想な方が面白いと思ったので。
- Saveボタンが最初は灰色なのは?:
- はてなの伊藤さんの真似。
- Saveできなかったと思って連打する人を予想したため。
- Create,Randomのボタンは灰色ではなく隠しているのは?:
- ON,OFFの区別を、もっとはっきりさせるため。
- 行数制限をしていないためサイドバーが出るのだが?:
- たくさん書ける方を優先した。確かに見た目が悪い。