網頁效能檢測指標

FCP : First Contentful Paint (首次內容繪製),下載後的瀏覽器第一次渲染任何文字、圖片(包含背景圖片),以及非空白的 canvas… 的時間, 也就是頁面上呈現第一個 DOM 元素的時間,可能不是從伺服器載入的第一個元素,但它是 User 看到的第一個元素。 TTI : Time to interactive (可互動時間) 從 FCP 開始 User 多久以後可以跟這個畫面互動的所需時間 TBT :Total Blocking Time(總阻塞時間) 在 FCP 到 TTI 之前,實際上 測量 main thread 被 long task (超過 50ms) block 的加總時間 Hydration : WEB 技術從SSR (後端渲染) 演進到 CSR (前端渲染),但是 Hydration 這一塊重複的 Overhead 是不必要的,目前有一個 Qwik 框架(angular 之父 Miško Hevery也是核心成員),克服了這一個問題。這一塊問題的重視主要是在 B2C的網站,有 UX 實驗當網站下載時間每慢 1 秒 則損失 10% 的User,對 2B 影響較小 (企業系統很多寫得很爛反應時間超過 50秒甚至動不動就掛掉很扯都可以接受了!...

2022-11-17 · 1 分鐘 · Randy IN tech

Virtual FIDO (軟體式 FIDO2)

看到 Virtual-FIDO 。這個專案的目標是 : Virtual FIDO is a virtual USB device that implements the FIDO2/U2F protocol (like a YubiKey) to support 2FA and WebAuthN. Features Support for both Windows and Linux through USB/IP (Mac support coming later) Connect using both U2F and FIDO2 protocols for both normal 2FA and WebAuthN Store credentials in an encrypted format with a passphrase Store credential data anywhere (example provided: a local file) Generic approval mechanism for credential creation and login (example provided: terminal-based) 這個專案利用 USB/IP Server 連接 USB ,模擬 USB/CTAP protocols 來提供 U2F/FIDO2 服務 看起來打算用 encrypted file(因為要跨 OS) 來保護機密 (是一個缺點) 看 Issues 是有針對這一點與 export credentials 的方便性做討論...

2022-10-26 · 1 分鐘 · Randy IN tech

go 官方的漏洞檢查工具(govulncheck)

Go security team 發表了 Vulnerability Management for Go 官方的漏洞管理掃描工具。 其中一個 govulncheck client 工具,可以針對二進位(binary)或程式原始碼(code base)掃描產生 call stack。 以官方維護的Go vulnerability database 儲存已知跟社群回報的漏洞(CVEs and GHSAs), 背後的 Schema 以OSV, Open Source Vulnerability format v1.3 格式儲存跟封包傳輸, 所以開發者事實上可以寫自己的 HTTP GET API(參考) 搭配 Go 官方釋出的OSV Json Parser 就可以開發自己的檢測工具,不然用現成的就好。 # For source code $ govulncheck ./... # For Binary $ govulncheck $HOME/go/bin/my-go-program 試掃 grabit 漏洞 來試掃之前寫的 side project 股票: grabit[changelog], 執行以後出現 7 個漏洞,都是golang 原生的 xml, encoding, http, 有明確的行數與解釋等資訊,如下...

2022-09-15 · 4 分鐘 · Randy IN tech grabit

網頁的14KB vs 15KB 對效能影響(TCP slow start)

從 A 14kb page can load much faster than a 15kb page(endtimes.dev)的對於網頁大小 14KB vs 15KB 的速度差異比 15KB vs 16KB 大很多的討論,其核心原因在於 TCP Slow Start 演算法 所造成。 再查了 Mozilla 的 TCP Slow Start / 14KB rule,原來在 TCP Slow Start 演算法中的第一個 response packet 是 14 KB,Server ACK是 28KB。 大部分 Server 實作 TCP slow start 的 initial window 仍是 10 個 TCP packets (少數 Server 已修改增加至 30 個 packets) (Ethernet standard 中一個 TCP packet 的 Max Size 是 1500 bytes)...

2022-08-25 · 1 分鐘 · Randy IN tech

PKCE: Proof Key for Code Exchange

PKCE (Proof Key for Code Exchange) 是 OAuth2.0 擴充規範RFC7636。 其主要目的是: 預防 CSRF 跟 Authorization Code(state) 被惡意攔截,補強了 OAuth2 的缺點。 並在 OAuth 2.0 Authorization Code Grant 明確建議了所有 Client 都要使用 PKCE。 Line 開發手冊中有圖說明了比較了 PKCE 的優缺點 - Benefits of implementing PKCE for LINE Login

2022-08-04 · 1 分鐘 · Randy IN tech

supabase

昨天看到 Supabase, 它的 slogan 是 Give Your Database Superpowers 感覺蠻厲害的,裝了一下:有 Self-hosting docker 版本。 它目的是幾乎模仿firebase 的功能, 但是是以 postgreSQL 為核心,並在上層作封裝。 特色 open source 封裝 postgreSQL 有 platform 和 Self-hosting(Docker) 兩種版本,其中 Self-hosting 是完全免費 Realtime PostgREST 用 Kong 當 API Gateway Storage 目前支援 S3 相當強悍的 Authentication / Authorization 一次跑 8 個 container 如下 ⠿ Container supabase-kong Stopped 2.9s ⠿ Container supabase-studio Stopped 2.7s ⠿ Container supabase-storage Stopped 10.8s ⠿ Container supabase-auth Stopped 0....

2022-06-24 · 1 分鐘 · Randy IN tech

物聯網通用標準 : Matter

由亞馬遜、蘋果、Google、「連接標準聯盟」(Connectivity Standards Alliance, CSA)聯合發起的『Matter』, 其前身是 2019 年建立的 CHIP (Project Connected Home over IP), 這個標準摘要 同時具備互通性和安全性 Application-layer 免專利費 降低 IoT 裝置商開發成本 提高不同品牌商產品之間相容性 IP Based,使用者不需要考慮使用裝置、平台是否相容,透過 IP 即可互動存取 硬體安全晶片 預計在 2022 年底正式推出 參與廠商 Google、Amazon、Apple、IKEA (DIRIGERA)、Legrand、NXP、Resideo、 Samsung SmartThings 想到 - 柯南劇場版《零的執行人》就是 IoT 恐攻的想像, 不曉得 Matter 標準的到來是不是讓編劇可以再寫一集劇場版 ?

2022-06-17 · 1 分鐘 · Randy IN tech

數位車牌取代傳統車牌

新創公司 Reviver 的數位車牌 RPlate 發布 美國密西根州啟用數位車牌 Reviver™ Announces Official Launch of Digital License Plate Sales in Michigan, Now Available to Vehicle Owners 。密西根成為全美第三個核發數位車牌的州,另外兩個是加州及亞利桑納州。 RPlate 面板是電子紙 E-Ink 接內建電池版(4G LTE版) 約持續5年、或接車子電力版(附 GPS), 可換車牌底色 客製顯示文字,例如:Stolen、Keep Distance 防竊 異常可通知手機App 可設置地理圍欄(Geofencing) 遠端追蹤 訂閱制: 每月19.95美元(LTE) 及 24.95美元(GPS Pro 版) 代客泊車追蹤模式 整合車牌連網,推出名為 RFleet 車隊管理功能,協助企業統一登記商業車輛與監控物流

2022-06-15 · 1 分鐘 · Randy IN tech

Year 2038 BUG !

古老問題了,即使影響十分廣泛也很嚴重,但是因為時間還久吧 !? 所以普遍被認為只要在 2038 年前修復即可,並沒有那麼有急迫性。 什麼是 Y2038 ? Year 2038 problem,也被稱作 Y2038、Y2k38、Unix Y2K、Epochalypse、Friday 13th Bug,一種時間格式儲存上的臭蟲。 主要是因為以前在設計 timestamp 時使用 signed-32-bit (4-Bytes) 來儲存計算的秒數,而4 bytes能儲存表示的最大時間是 2038年1月19日3時14分07秒,在這個時間點之後的系統無法正常工作。即使用 unsigned-32-bit 儲存,例如比特幣的 timestamp, 也只能延後到 2106 年。 影響層面 作業系統 到 2038 年前,大概剩 Embedded systems 或 IoT 設備這類不會大幅更換。 其他桌機/雲設備/機房主機,按照現在的發展大概都會被汰換掉成 64 位元。 Binary file formats 從 wiki 上看起來至少使用 32位元 time_t 編碼的有 ZIP 檔案。 而像現在最流行的以 json-based 往上長的格式,就不會造成此問題,因為一定是用 string 傳遞, 如果會發生問題,也是會發生在 json parser 這一端,看你用什麼去接。 programming language golang : go 沒有這個問題,因為 Time 本身就是用 64 bit 儲存...

2022-05-23 · 1 分鐘 · Randy IN tech

LUNA, UST 5月 24小時崩跌 97%

本週幣圈最大事 穩定幣 穩定幣:目的跟比特幣/以太幣等暴漲暴跌的相反,也就是追求穩定價格波動不大的虛擬貨幣,目的設計用來結算或避險。 在區塊鏈上每發一個幣,就在銀行裡儲存對應的 1 美元資金作保障,例如: USDT 和 USDC。 之所以穩定是靠掛鉤傳統法幣做抵押。 Terra 穩定幣的變型 Terra 是 30 歲的韓國人 Do Kwon 新創業的區塊鏈計畫,他的 Terra 計畫,已經成為全球第三大穩定幣。 但是 Terra 是靠演算法製造穩定,Terra 發行了兩個幣,一個叫 UST(TerraUSD),一個叫 LUNA , 基於「演算法」沒有直接跟美元或法定貨幣掛鉤的穩定幣。 UST 和 LUNA UST(TerraUSD) 是全世界最大的演算法穩定幣(穩定幣中的前三名,僅次於 USDT 和 USDC), 1 UST 對應 1 美元,LUNA 是 UST 的後備儲存金庫。 透過兌換法幣(美元)的演算法,使得市場上的 (1) 若 LUNA 幣數量減少,則價格上漲; UST 增多,則價格開始下降 (2) 若 LUNA 幣數量增多,則價格下降; UST 減少,則價格開始漸漸上漲 UST算法穩定幣的原理就是靠市場上 UST 與 Luna 的互相套利演算法, 來維持跟美元 1 : 1 的掛鉤,也就是說持有 10 UST 就等於持有10美元。...

2022-05-15 · 2 分鐘 · Randy IN tech