気分も顔付きもすこぶる良く,今後の黄金日の基準にしたい日だった。何らかの黄金状態なのは間違いないが,黄金状態も高次化し過ぎて分類が難しくなってきたため,定義を見直す必要がありそうだ。とりあえず,肉体の完成に向けた確かな手応えを得られているのは嬉しい。
ある種の黄金状態の常として,身体感度の鋭敏化により音楽を聴くのが非常に楽しかったので,音楽関連の輪郭整備が捗った。
私にとってはそんな黄金日だったが,また芸能人の自殺報道があった。考えてみれば,見かけの成功と幸福が一致しないなんてことはサービス開発に限ったことではなく,サービスの完全な成功と同じように人間の完全な成功もまた極めて得難いものだ。それに手を伸ばしていることの意味はよく考えないといけないと思った。
検討作業など。
CSS アイコン補完のための @icn
の実装イメージが概ね固まった。
これまで CSS で画像アイコンを利用する場合はパディングに background-image
を当てていたが,HTML の記述量を増やしたくないため,HTML はそのままに,@icn
で同等の処理を実装することにした。
どの道,要素を動的挿入することになるため,ここで動的引連 SVG も選択肢として残すことにした。複雑な図形の表現のために,部分的に SVG を利用したいことがあるものの,CSS だけではそこまで気の利いたことは出来ない。単純な引連 SVG は HTML の肥大化を招くし,出与え URL も保守性の観点から避けたい。
もっとも,SVG 自体が簡潔な記法ではないので,CSS では表現しにくく,なおかつラスター画像より合理的な場面というのはそこまで無いかもしれない。あくまでも行き詰まりを防ぐための選択肢として残しておく。
むしろ,CSS アイコンの制約を基準として利用して,CSS で無理なく表現出来る程度に用合いアイコンの単純性を保つべきなのだろう。
新生全知検索整備,ページ付け求頼改良,サイトマップ改良,不具合修正など。
これまでサイトマップは全知検索ページャー同様,一定輪数を LIMIT
句・OFFSET
句で区切ったページを返していた。OFFSET
句の値が多くなると遅くなるため,最大でも最新10,000輪(100輪×100ページ)が限度だった。upub
導入後は更に低速化したため,9,000輪まで減らしていたが,それでも後半になると応答時間が10秒以上になることがあった。
今回のページ付け求頼改良で時印を使ったページ付けに移行しようとしていたため,これをサイトマップにも応用出来るのではないかと考えていたが,サイトマップの場合,サイトマップインデックスで各サイトマップ URL の一覧を生成する必要があり,この効率性が問題だった。HTML 隠しの利用も考えたが,タイミングも難しく,大袈裟過ぎる気がしていた。
サイトマップの場合,各ページの輪数が揃っている必要はないのだから,一定期間で区切ってしまえばいいのではないか,ということに気付いてからは速かった。
まず,デライト上で最古の時印(2012-02-10 19:09:33
)から現在時刻までを30日で割って必要なページ数を割り出し,サイトマップインデックスは従来通りの形式(/see?pg=[n]
)で生成する。dg_see()
ではページ番号から期間を計算してその範囲内で上限輪数までの最新輪郭情報を返す。上限輪数はとりあえず10,000輪にしておいた。数値は様子を見ながら調整していく。
インターフェイスはそのまま利用したため修正は最小限で済み,互換性も維持出来たが,元々 dg_see()
に余計な列が多い問題があったのでそのあたりも最適化しておいた。
実作業は出振るい・手定めまで正味3時間ほどで済み,結果として,サイトマップの速度・ページ数・対応期間の長さがはるかに向上した。現在時刻が基準なので,上限輪数から漏れた分も待っていれば載ることになる。ここまでページ数が多いサイトでは網羅性と効率性を完全に両立させることは不可能なので,ここが良い落とし所だろう。デライト特有の要求に適ったサイトマップ設計という,大きな問題がまた一つ解決した。
輪数取得改良,前後景時印の導入などを経て,サイトマップは高負荷求頼が発生しやすい最後の箇所になっていたため,これでデライトの安定稼動における不安要素が払拭出来た。ページ付け求頼改良を急いでいた理由でもあったが,最近の出振るいで,全知検索でもページ番号の直接指定に上限を設けたため,高負荷求頼の問題は一応解決している。これでページ付け求頼改良の優先順位が少し下がった。
デライトは,黄金週間初日となる明日29日,4度目の宣伝攻勢(第四次宣伝攻勢)を始める。これを機に,中断していた「一日一文」の日課も再開することにした。
デライトはいま,包括的な改良構想によって「新生デライト」に生まれ変わろうとしている。今回の宣伝攻勢のコンセプトは“新生デライト開発実況”だ。この一日一文も含めて,開発状況や開発者の考えなどについて積極的に発信していきたい。
3度の宣伝攻勢から得た教訓は色々とあるが,4度目の宣伝攻勢を目前にしてつくづく感じていることは,結局,やってみなければ分からない,ということだ。
ソフトウェア開発をやっていると,ここが悪い,あそこが分かりにくいなどといったことばかり考えてしまいがちだ。とりわけデライトは新奇に見える代物なので,開発者も利用者も,“デライトの問題点”について考え込み過ぎる嫌いがある。
問題点を地道に改善していくのは当たり前のことだが,問題点ばかり見ていると,「問題があることが問題」であるかのような錯覚に陥りがちだ。問題のないソフトウェアなど存在しないので,これは「木を見て森を見ず」の罠でもある。広く使われている全てのソフトウェアは,それぞれに問題を抱えながら,それぞれの役割を果たしている。その全体像を見ずに問題の大きさを正しく見ることは出来ない。
そもそも,使いやすい UI,分かりやすい文書……などと全てを兼ね備えた優等生的なソフトウェアが世の中にどれだけあるだろうか。使いにくかろうが分かりにくかろうが,バグだらけであろうが,“使う必要”があれば使われる。それが現実だ。ツールも文書も,必要ならユーザーが作り始める。昔からそうやってソフトウェアは共有されてきた。
そこに革新性があればなおのことだ。誰でも戸惑いなく使える革新的なソフトウェア──そんなものは夢の中にしか存在しない。デライトがそうであれば,私はとっくに世界一の有名人にして世界一の大富豪になっている。冷静に考えれば馬鹿馬鹿しい話だが,知らず知らずのうちにそれに等しいことを考えてしまうのが認知バイアスの怖さだ。
デライトを普及させる上で最大の課題,換言すれば,最も手っ取り早い道筋は何かといえば,デライトが目指していることを理解してもらい,共感してもらい,必要としてもらうことに他ならない。またこういう文章を書き始めた理由だ。
デライトは,よくあるメモサービスに出来るだけ近付けた知能増幅(IA)サービス,名付けて「知能増幅メモサービス」だ。一時期,「最も使いやすいメモサービスを目指す最も使いやすい知能増幅サービス」と表現していたこともあるが,研究室臭いものになりがちなこの種のソフトウェアとしてはすでに驚くほど簡易的で,その点の達成度は決して低くないはずだ。
とはいえ,全く新しい領域を目指している以上,新しいやり方を理解して慣れてもらうしかない部分はどう頑張っても残る。デライト初心者が戸惑いがちなところは,デライトの目的のためにあえてそうしていることが多い。多くの人にとっての分かりやすさだけを基準にして最終的に出来るのは,微妙に使いにくい,よくあるメモサービスだ。レーシングカーの難しさだけを問題視してオモチャの車にするわけにはいかない。
2年ほど前に公開してから,デライトにはそれなりに多くの人が来てくれた。例に漏れず,大半の人は黙って去り,一部の人はサービスの問題点を指摘して去っていった。私が開発者として一番痛切に感じていたことは,そうした問題点を大きく感じさせるほどの利用動機の小ささだった。「ここが使いにくい」などと言い残して去っていった人達が本当に言いたかったことは,「それでもと使うほどの意義を見出せなかった」ということなのだと思う。
事実,デライトの使いにくさや分かりにくさを改善して利用者が増えた試しがない。いま日常的に利用してくれているのは,あらゆる面でいまとは比べ物にならないほどデライトが貧弱だった時期に,どこかで私がデライトについて語っているのを見て,その可能性に興味を抱いてくれた人達だ。
デライトの意義を理解した人にとってデライトの問題は決して大きくない。開発者として,そう確信出来る地点にようやく来られた気がしている。あとは伝え方の問題なのだろう。
もう一つ,商売において陥いりがちな罠に,「生存者バイアス」としてよく知られた認知バイアスがある。成功例の背後にある屍の山に,人は気付きにくい。そして,成功や失敗の要因として語られることは,結果論でしかないことが多い。デライトが成功するもしないも,結局は「運」によるところが大きい,ということだ。
例えば,売れっ子の芸能人がみんな親しみやすく万人受けするタイプかといえば,全くそんなことはない。癖が強く,とっつきにくそうな人も多い。彼らは売れたから「それが良い」と言ってもらえるけれども,同じ特徴を持っていても売れずに「だから駄目なんだ」と言われている人がごまんといる。万人受けしそうなタイプならタイプで,売れなければ「無個性でつまらない」などと言われる。その差は,巡り合わせとしか言いようがない。
勝てば官軍ではないが,デライトの“とっつきにくさ”とされていることも,何かのきっかけで話題になってしまえば“面白さ”になりうる。その程度のことでしかないのかもしれない。
「結局は運」というのは投げ遣りなようでいて,実は非常に前向きな覚悟が必要な考え方でもある。粘り強く試行を繰り返していくこと以上に成功を確かなものにする道はない,ということだからだ。奇跡のような偶然も,サイコロを振り直し続ければ必然に近付いていく。
そしてこのデライト自体,すでにソフトウェア開発における奇跡的な生存例だ。ソフトウェア開発の世界では,デライトよりずっと低い目標を掲げていても,成功どころか動く物すら出来ずに頓挫していくプロジェクトがごまんとある。その中にあって,これだけの大風呂敷を広げ,この品質で実装・運用され,少ないながらも利用者がいて,ちょっとした収益化まで出来ている。こんなサービスは世界を見渡しても他にない。
そんな奇跡がなぜ起きているのか。それはやはり,「粘り続けたから」としか科学的な説明のしようがない。デライト自体は公開から2年を越えたばかりのサービスだが,研究期間を含めると20年近い歴史がある。その全てが無駄なくデライトに結実している。
運を味方に付け,デライトの成功という奇跡を起こすために,ひたすら粘り続ける。これを新生デライトの完成に向けた宣伝攻勢の所信表明としたい。