各家瀏覽器與工具對於 blur 效果的實際呈現比較

Hacker News 上看到「Blur Radius Comparison (bjango.com)」,原文在「Blur radius comparison」。

重點在這張:

前面九個分成三種效果在三個不同的瀏覽器呈現的結果,然後是 FigmaIllustratorPhotoshopSketch 的效果。

可以看出來在瀏覽器上的部分,大家的 rendering 沒有差太多。

而 Figma 所有 blur 類的效果,在瀏覽器上比較接近的只有 box-shadow,其他三套則是有不同的變化...

Adobe 與 Figma 併購破局

剛剛打開 Hacker News 看到這篇掛在 top 1,Figma 官方宣佈終止與 Adobe 合併的計畫:「Figma and Adobe are abandoning our proposed merger (figma.com)」,原文「Figma and Adobe are abandoning our proposed merger」。

翻了一下維基百科,與壟斷相關的報導有兩個,一個是美國在去年十一月報導的:「DOJ takes aim at Adobe’s $20 billion deal」,另外一個是歐盟在今年二月報導的:「EU regulators to assess Adobe’s $20bn acquisition of Figma」,但這些消息在這種併購案還蠻常見的,這個結果頗意外的...

這樣的話 Figma 會打算上市嗎?

限制流量的方式 (rate limit)

Lobsters Daily 上看到這篇 2017 年的文章,Figma 的工程師講怎麼做 rate limit:「An alternative approach to rate limiting」,只要大一點的站台就會遇到 spammer 之類的攻擊,就會希望實做自動化的機制擋住 spammer。

文章裡面提到了三種方式,第一種 (類) 提到了經典的 Token bucketLeaky bucket,這邊文章提供的演算法是讓每個使用者都會有一筆資料紀錄在 Redis 裡面 (這邊的用法可以抽換換成 Memcached),裡面記錄了最後一次的 access time 以及還剩下多少 token 可以用,接下來就可以照時間計算 token 的補充與消耗:

但這個演算法的缺點是 race condition,需要另外設計一些機制確保操作的 atomic:

不過大多數的實做就算不管 atomic 也還行 OK,只是會比較不精確一點。

第二個方法他叫做 Fixed window counters,這個方法把時間切齊為單位 (像是 60 秒為一個 window),所以可以把起點的時間也放到 key 裡面,然後 value 就是數量:

這個作法的好處就是簡單,而且 Redis 與 Memcached 都有提供 atomic 的 +1 操作。但缺點是可能會發生兩倍以上的 request,像是 5 reqs/min 的限制有可能會有連續的一分鐘內達到 10 reqs/min:

不過我覺得就 antispam 來說算是夠用了,當年 (大概是 2007 或是 2008 年?) 在 PIXNET 時用 C 寫 Apache module 就是把資料丟到 Memcached 裡面就是這樣實做的,然後每次學術網路的實驗室跑來掃站的就會自動被擋 XDDD

第三種方式他們稱作 Sliding window log,就是把每個 request 的 timestamp 都存起來,這個部份用 Redis 的資料結構會比用 Memcached 方便一些:

這個方式在控制上更精確,不過空間成本上就高很多... 這樣算是把常見的實做方式都提到了。

Figma 限縮免費帳號的功能

Plurk 上的這篇看到的,Figma 的 Free Starter Plan 縮減功能:「Starter plan updates」。

這步算是要使用者掏錢出來,進入養套殺裡「殺」的階段了。不過每個編輯者 USD$15/month 以價錢來說還好 (年繳的話還有一些折扣),團隊大多數的 viewer 是不額外收費的。