覺得自己浪費太多時間?
想知道自己廢了多久qq
有瀏覽器插件可以用嗎
有 但好像不能同步 🥲
想要🥺
- 支援用同帳號來同步設定 & 使用紀錄
- 使用行為分析 (有 dashborad 可以看)
怎麼用🥺
帳號資料同步
登入 & API Key
sequenceDiagram participant User as User(Chrome Extension) participant API as Backend API participant Google as Google Auth User->>API: Navigate to /login API->>User: Redirect to Google Login Note over User,Google: URL: https://api.example.com/login User->>Google: Login at Google Google->>User: Redirect to /login/callback with code Note over User,Google: URL: https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=https://api.example.com/login/callback User->>API: Access /login/callback?code=xxx API->>User: Set token in cookie (includes user_id) Note over User,API: URL: https://api.example.com/login/callback?code=xxx User->>API: Request /get-api-key with cookie API->>User: Validate cookie token and return user's api_key Note over User,API: URL: https://api.example.com/get-api-key
使用者行為紀錄
怎麼確認一個人完全死掉了
聽他心跳
不對
黃金急救時間
心跳正常/停止 示意圖
所有的心跳停止均小於黃金急救時間 -> 活著
完全死亡 --> 完全停止做某件事了
做一件事的時候
會有兩種情況
- 在弄東西的時候…
- 點擊
- 打字
- 同個 tab 被導到其他ㄉ url
- 切換 tab
- 導致你沒在操作瀏覽器的原因
- 參考文件(pdf, word, excel, …)
- 聯絡軟體
盯著螢幕想我現在在幹嘛
黃金急救時間
後端加上定義好的黃金急救時間
1 | heartbeat_diff_threshold = timedelta(minutes=2) |
就可以計算做一件事的區間ㄌ
使用者統計分析 (Summary)
- 某個 domain (YT, IG, FB) 使用分析
- 網站分類
- …
這… 聽起來負擔有點重
假設每個使用者平均每 3 秒有一個動作, 經過 1 小時
3600 / 3 = 1200
每個使用者一小時會有 1200 條紀錄 !!!
那 100 個人的話 不就會有 120000 條…
太累ㄌ 要給其他人慢慢做
但是
這樣的架構有什麼問題
如果每個 worker (負責進行統計ㄉ程式) 收到的使用者行為紀錄在時間上很不連續
會很容易造成
- 統計時間段重疊
- 如果在存活時間內的 heartbeat 只有一個? 我該丟掉嗎? 還是?
怎解?
- 使用分散式鎖, 對同一時間段上的統計對象上鎖, 以保證在多個副本中的資料相依順序
蛤? 你在說什麼?
沒關係 我也不知道 所以我們沒這樣做
- 直接一次丟一大包在時間連續且為同個 user 的 heartbeat records 給那些 worker
直接在 client 端做掉
但是但是 好像還有一個東西可以講
其實在每個批次處理中
都是對一堆資料分群
那讓每一個批次做更多事 一次寫入更多統計數據
好像會更好
可是可是
larger batch size --> longer wait time
longer wait time --> longer latency
怎麼辦
Additive increase/multiplicative decrease???
- Message Arrival Rate (msg_rate)
- Batch Size (batch_size)
- Ticker Timeout (ticker_timeout) or Wait Time
Tech Stack
後端
- Python + FastAPI
- postgreSQL
- rabbitmq
- rust (ETL)
redis?
Chrome Extension 開發流程
Wakatime Extension + Stay Focused Chrome Extension
未來展望
使用行為分析 (GenAI)
Record and Chat History as RAG
ChatBot with RAG-based response
監控
但人呢?
如果把辦公室比喻成工廠的話
那員工就是機器
舉 RD 來說
那編輯器呢
Open Source VSCode Extension
Online Coding Editor
這樣其實蠻過分的XD
browser is all you need
什麼是紀錄
Notion 生活管理 ??
效率不升反降 ?!
Automation
- Sync Focus
- WakaTime
Still Deffective
- 你也有可能話太多時間時不時在 review 自己的使用情況
習慣
Thanks.