使用可縮放時間軸視覺化 400 萬個維基百科事件
使用可縮放時間軸視覺化 400 萬個維基百科事件
Lortex 開發了一個可縮放的時間軸介面,將來自 Wikipedia 和 Wikidata 的 400 萬個事件進行視覺化。該專案作為一個為期刊應用程式設計的自定義時間軸 UI 的展示,並利用了基於 Kotlin Multiplatform 的高效能技術棧。
技術架構與技術棧
該應用程式使用以 Kotlin 為核心的現代技術棧構建,以確保跨平台相容性與效能。核心組件包括:
- 前端 UI: 使用 Compose Multiplatform 來構建使用者介面,實現歷史事件的可縮放空間佈局。
- 跨平台邏輯: 在整個專案中廣泛使用 Kotlin Multiplatform (KMP) 來在不同目標平台之間共享邏輯。
- 通訊: 前端透過 Kotlinx-RPC 與後端進行通訊。
- 後端與基礎設施: 系統由託管在 Hetzner 機器上的 Postgres 資料庫驅動。
為了整理龐大的數據集,開發者使用了 PageRank 來為事件評分,以確保從 Wikipedia/Wikidata 匯入的最重要事件在視覺化中獲得優先權。
使用者體驗與效能觀察
雖然該專案因其空間佈局而獲得了正面回饋,但使用者回報了在不同環境下的不同效能表現:
- 流暢的效能: 部分使用者回報在 Linux Gnome 與 Firefox 上有流暢的體驗。
- 穩定性問題: 其他使用者在 Firefox 上遇到即時凍結,並在 Android 上的 Chrome 遇到功能失效。
- 載入狀態: 使用者注意到在初始載入期間缺乏視覺回饋,部分使用者回報螢幕空白長達 30 秒。
資料準確性與 UI 限制
社群回饋突顯了關於資料解析與時間精確度的特定問題:
- 資料錯誤: 引用了一個資料錯誤的例子,即某個地點的郵遞區號被錯誤地解釋為年份(例如,一個事件出現在 760251 年)。
- 時間精確度: 使用者觀察到,當年份縮小到大約一個像素的大小時,UI 會崩潰。這顯示了在處理極高精確度時間戳(例如大爆炸之後的秒級事件)時的限制,這需要更高位元的時間戳儲存方式。
- 時態一致性: 有人注意到,預定於未來發生的事件目前使用過去式標記,這對於預測性事件可能會造成誤導。
社群觀點
使用者對將類似的可縮放時間軸介面應用於其他技術領域(例如系統日誌與指標分析)表示了興趣。其他人則將該專案與現有的工具(例如