月初 AWS 宣布 CloudFront 支援 HTTPS record,號稱可以加速 HTTPS 連線速度:「Boost application performance: Amazon CloudFront enables HTTPS record」。 這邊提到的加速主要來自於 HTTP/3,但傳統的作法會需要先用 TCP 的 HTTP/2 或是 HTTP/1.1 連線,在看到 Upgrade header 後才會用 HTTP/3。 而 HTTPS record 目前最大的用途是讓瀏覽器在 DNS query 時就知道可以用 HTTP/3,不需要透過 Upgrade header 得知,像是 www.google.com 就有 HTTPS record: $ host -t https www.google.com www.google.com has HTTPS record 1 . alpn="h2,h3" … Continue reading "CloudFront 的 HTTPS record 支援"
在「Tell HN: uBlock Origin on Chrome is finally gone」這邊看到的,看起來 Google Chrome 138 關掉 Manifest V2 了。 Manifest V2 support timeline 這邊有當時規劃的時間表: June 3rd 2024: the Manifest V2 phase-out begins. Starting on June 3rd on the Chrome Beta, Dev and Canary channels, if users still have Manifest V2 extensions installed, some will start to see a … Continue reading "Google Chrome 138 關掉 Manifest V2 了"
在 Hacker News 上看到「Top DNS domains seen on the Quad9 recursive resolver array each day (github.com/quad9dns)」這篇,Quad9 的 9.9.9.9 把每天 DNS query 的 Top 500 domain 放出來:「Quad9DNS/quad9-domains-top500」。 Cloudflare 的 1.1.1.1 也有類似的資訊:「Domain Rankings Worldwide」。 不過有些應用有 hard-coded 對 9.9.9.9 查詢,像是 id=44534232 提到 transmissionbt.com 這個名稱: transmissionbt.com (A bittorrent client for macOS) is out ranking youtube, wikipedia, github, etc. Is … Continue reading "Quad9 把最常被 DNS query 的網域公開 (Top 500)"
前幾天先在 Lobsters 上看到「Serving 200 million requests per day with a cgi-bin 」這篇,在講上古時期 (1990?2000?) 實作動態網頁頗流行的 CGI 在現代的硬體上跑起來的情況。 CGI 是將資訊透過環境變數設定後,再用 fork() + exec() 執行 script,其中主要的問題就在於 script 啟動速度不快。像是以前跑 CGI 流行的 Perl script,在以前的 CPU 常常會需要 500ms 以上時間。 當年一般的機器常用的硬體應該都是單一 CPU/core,要到 Pentium 4 (約 2007 年) 才開始有 2 core 的版本,就可以算出來只要超過 2 reqs/sec 網站就會掛掉了。 而常見的解法在文章裡面也有提到,像是 FastCGI 就是將 script 本身常駐,透過 unix socket 或是 … Continue reading "傳統的 cgi-bin 遇到現代的硬體"
在 Hacker News 上看到「Postcard is now open source (contraption.co)」這篇,原文不是重點,反倒是 comment 裡面討論到 Postmark 這家 mail 服務的問題,像是作者自己在 id=44459246 提到: Postcard originally used Postmark. But, Postmark deliverability has been decreasing. And, for the open-source version, I wanted to simplify dependencies. So, I moved it to SES. It works for small lists, but won't scale to massive ones. 另外是 … Continue reading "Postmark 的問題?"
剛剛發現 wiki 又被打倒掛,從 access log 看起來是 bot 透過 proxy 掃,這次光靠 Caddy Defender Plugin 不夠,突然想到這種類型的可以用 DNSBL 處理。 先用 DNSBL Information 把幾個 IP address 丟去看看有哪個 DNSBL 比較適合,找到的是 SpamRATS 這家,看起來他們的 RATS-Spam (spam.spamrats.com) 適合拿來用。 另外找了 Caddy 上的專案,發現 caddy-matcher-dnsbl 這個算新的專案有支援,裝起來測看起來會動,不過實際數量不多,也許之後要再多找一些 DNSBL 來用。 算是多加入一個方法到雞尾酒療法裡面。
看到「How Flightradar24 uses MLAT to counter GPS jamming」這篇提到他們用 MLAT 算飛機的位置,降低飛機經過 GPS 被干擾區域時資料問題 (通常就是戰場附近)。 查了維基百科有「Multilateration」這個條目,這張圖可以說明基本的點子,透過三個圓就可以估算出三維的位置 (也就是三個點的每個點都有一個半徑): 對於 Flightradar24 或是 FlightAware 這些服務來說,收 ADS-B 訊號的站點位置是已知的,再加上用收到時間的差異就能算出飛機的位置,出自「How We Track Flights with MLAT」: We then measure the Time Difference of Arrival (TDOA)—or the time it takes the signal from the aircraft to reach the receiver. By comparing how long it takes … Continue reading "各家飛機即時資訊網站用的 MLAT,定位飛機位置"
在 Hacker News 上看到 Figma 要在 NYSE 上市的消息:「Figma files for proposed IPO (figma.com)」,原文「Figma Files Registration Statement for Proposed Initial Public Offering」反而沒有提到什麼重點,反倒是 Hacker News 上留言給了 Form S-1 的連結:「figma-sx1.htm」,另外也有不少有趣的留言可以看... 畢竟 Form S-1 太長了,看人家拿出來討論的比較省事。 像是 id=44440176 這邊提到了雲端的費用: > The table above does not reflect our renewed cloud hosting agreement with a third-party provider, entered into on May 31, … Continue reading "Figma 送出 Form S-1"
在「Wayback: experimental layer to run X desktop environments on Wayland」這邊看到的專案 kaniini/wayback。 看起來是試著在 Wayland 上面堆出整套 X11 環境的相容層,讓既有的 X11 環境可以在 Wayland 上面跑: Wayback is an experimental X compatibility layer which allows for running full X desktop environments using Wayland components. It is essentially a stub compositor which provides just enough Wayland capabilities to host a rootful Xwayland … Continue reading "在 Wayland 上跑整套 X11 環境的 Wayback"
在 Hacker News 上看到「Why is the Rust compiler so slow? (sharnoff.io)」這篇在講 Rust Compiler 的加速方式,原文是:「"Why is the Rust compiler so slow?"」。 裡面有提到 optimization 是最花時間的部分,但比較有趣的是最後在發表後有人的給的建議,malloc 的差距其實很巨大,作者測試的結果遠超過原來提議的人的幅度: Wesley Moore on Lobsters (via Bluesky) suggested switching away from Alpine, due to the impact that the default allocator can have on compile times: In my experience the allocator can have … Continue reading "Rust Compiler 的加速方法"
居然看到 XSLT:「XSLT – Native, zero-config build system for the Web (github.com/pacocoursey)」,原連結是 GitHub 上的 pacocoursey/xslt。 一開始的 XSLT 可以吃 XML 資料進來 (現在的 XSLT 支援更多種類),然後透過語法轉換成 XHTML,不需要透過 JavaScript。 當年 (2010 年或是更早?) 在弄 Group.NCTU.edu.tw 的時候有用到 XSLT 顯示文章內容,在 webroot/article.xsl 這邊還可以看到 template,以及 webroot/article.php 這邊可以看到 PHP 的部分。 當初會選 XSLT 大概是想玩玩新東西?雖然 XSLT 從 2.0 後就是 turing complete,但真的要寫還是蠻麻煩的,最後沒有流行起來,十多年後才冒出了 JavaScript 的 ecosystem。 不過蠻有趣的是 XSLT 沒有被瀏覽器拔掉支援,大概是也沒鬧出什麼問題,所以就留了下來?反倒是 FTP … Continue reading "XSLT"
OpenAI 的語音轉文字 API 是照語音的長度算錢的,然後昨天還是前天在 Lobsters 上看到的省法,把語音的部分加速就可以了:「OpenAI Charges by the Minute, So Make the Minutes Shorter」。 作者測試發現跑 2x 或是 3x 都還 OK,但 4x 就不行了,然後也有提到這跟原始的語速有關 (很容易推論): More helpfully, I didn’t compare word-for-word, but spot checks on the 2x and 3x versions looked solid. 4x speed was too fast—the transcription started getting hilariously weird. So, 2x and 3x … Continue reading "使用 OpenAI 的語音轉文字 API 的省錢方法:加速語音"
之前在「Let's Encrypt 的六天有效 TLS certificate 計畫」這邊有提到 Let's Encrypt 的 6-day certificate 計畫,當時也有提到 Let's Encrypt 打算用在簽 IP address 的 certificate 上,現在看起來有進度了:「Getting ready to issue IP address certificates」。 看起來是先用 staging 的 CA 簽,不是目前瀏覽器內建信任的那條簽,所以直接開裡面提到的 https://[2602:ff3a:1:abad:c0f:fee:abad:cafe]/ 會出現錯誤訊息,但如果你有安裝 staging CA 的話應該就會過。 除了 browser 端的測試外,應該是要確認內部的系統都正常,尤其是 audit log。
最近 Hacker News 上蠻多 uv 相關的條目,看到「Fun with uv and PEP 723」這篇 (via),透過 uvx 與 PEP 723 組出接近 standalone script 的環境。 一般的 Python script 通常都會需要一個環境 (像是 venv) 把相依性套件都裝起來,而相依性一般都是放在另外一個檔案裡面 (像是 requirements.txt 或是 pyproject.toml),PEP 723 則是提出了 Inline script metadata 的概念,可以在 script 檔案裡面直接指定 dependency: # /// script # requires-python = ">=3.11" # dependencies = [ # "requests<3", # "rich", … Continue reading "uvx 與 PEP 723 的組合"
前陣子試著在 Python 上面定時跑 crawler 抓一些東西寫進資料庫。 因為是偏實驗性質,選擇用 PyPy (PyPy3) 而非 CPython (就是官方版本的 Python),然後搭著 Gunicorn (跑 Flask) + APScheduler + requests,專案的程式碼可以在 app/app.py 這邊看到。 遇到的問題就像標題提到的,跑個半天到一天後發現 job 沒在動了,看 syslog 發現出現了 OSError: [Errno 24] Too many open files 的問題,這種 fd 爆掉的問題就到 /proc/[pid]/fd 下面翻看看是什麼,就看到一堆網路連線沒關,用 netstat 看就可以看到一堆 CLOSE_WAIT 的連線: $ sudo netstat -anp | grep 1598 tcp 25 0 aa.bb.ccc.ddd:33606 54.178.182.254:443 CLOSE_WAIT … Continue reading "APScheduler + requests 遇到 OSError: [Errno 24] Too many open files 的問題"
YouTube’s new anti-adblock measures (via) 這篇在講最近 YouTube 的反擋廣告機制,裡面帶出了不少名詞。 InnerTube 是給 YouTube 自己用的 API: InnerTube is YouTube’s first party internal API that the web client and mobile apps use to interact with videos and get details about them. GVS 比較好理解,就是影音服務: GVS (Google Video Services) is a service that serves video streams for YouTube, Google Drive, and … Continue reading "YouTube 最近 anti-adblock 的機制"
在「Airpass – easily overcome WiFi time limits (tiagoalves.me)」這邊看到的討論,在 id=44338355 給了 command line 的重點: sudo.exec("/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 -z && ifconfig en0 ether `openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`", 原連結把這件事情搞成一個 Electron app,所以在 id=44339173 這邊就被臭 XDDD 200 bytes for the business logic. 47MB for the UI & boilerplate around the business logic. I get that this may … Continue reading "在 Mac 上換無線網路 MAC address 的方式"
前幾天 JavaScript broke the web (and called it progress) (via) 這篇在 Hacker News 上有一些討論。 作者在抱怨現在的前端 JavaScript 框架最主要的目的是 DX (Developer experience),而且會發現代價是犧牲了 UX (User experience),以及帶給 Architecture 與 DevOps 更複雜的事情。 我想說看一下目前不使用 JavaScript 架構前端網頁的方式 (另外一方面也在玩最近很熱門的 Claude Code),我把寫出來的東西丟到 GitHub 上的 https://github.com/gslin/test-cc-20250621,這邊用 Express.js + EJS 去搭。 先嘗試了幾個與 CSS 相關的部分,首先是常常被罵,但大家還是很愛用的 Tailwind CSS,可以利用 command line 指令去掃出來有用到的 class,然後生成固定的 css 檔案掛到業面上,所以靜態類的 class name 看起來都沒問題。 第二個是 … Continue reading "不使用前端 JavaScript 架構架設網頁的方式"
在 Hacker News 上看到 uBlock Origin Lite for Safari iOS 的計畫:「uBlock Origin Lite Beta for Safari iOS (testflight.apple.com)」。 從 GitHub 的 repository 上看起來應該是 gorhill 本人在推的,目前 iOS 版在 TestFlight 上測試,從 Hacker News 上的 comment 可以看出來還不是很穩定,而且效果沒有其他現有方案好,但不少人給 gorhill 很高的評價,而且蠻期待後面更新把這些問題都修正的版本。 除了網頁外,行動裝置上因為都是 app,阻擋能力還是很受限,目前還是得靠 MITM VPN + Root CA 類的方式攔截 HTTPS 內容來處理。
看到「Show HN: Unregistry – “docker push” directly to servers without a registry (github.com/psviderski)」這個作品,作者直接把本地端的 docker image storage 當作 registry:「Unregistry」,可以參考在 Hacker News 上的說明: So I built Unregistry that exposes Docker's (containerd) image storage through a standard registry API. It adds a `docker pussh` command that pushes images directly to remote Docker daemons over SSH. 作者會想要開發的原因是因為他發現每次都是 local -> … Continue reading "直接把本地端的 docker image storage 當作 registry 的 Unregistry"
在「HTML spec change: escaping in attributes」這邊看到的,裡面提到了「Escape "" when serializing attribute values #6362」這個更改。 本來 HTML spec 的文字是: If the algorithm was invoked in the attribute mode, replace any occurrences of the""" character by the string """. If the algorithm was not invoked in the attribute mode, replace any occurrences of the … Continue reading "HTML 規格修改了對 attribute 中 escape 的處理"
昨天看到 FAIR Plugin 更新 0.3.0 版了,這個是先前在「Linux Foundation 宣佈獨立的 WordPress 基礎建設:FAIR Package Manager Project」這邊有介紹到的開放式計畫。 本來的版本可以直接更新上去: 在 0.3.0 的 tag 頁面上可以看到一些資訊,像是後續的版本更新步調會是六個禮拜: Future releases will follow our roadmap and 6 week release schedule. 然後可以看到已經有不少人參與了,畢竟 WordPress 是個蠻大的 ecosystem。
看到「Homomorphically Encrypting CRDTs」這篇 (via),作者想要在跨機同步時使用 CRDT,並且避免中間同步的 server 看到內容而採用 Homomorphic encryption。 點子本身還蠻有趣的,也把 PoC 實作出來了... 不過最後面在「Fundamental Limitations」這段說明目前的技術上還不可行的原因。 首先是 server key 的部分,雖然 key 只需要傳一次,但肥到 123MB,壓縮後也需要 27MB: For starters: encryption keys. In both the simple adding example and the last-write wins register, we generated a key that would be passed to the server. That only needs to happen once, but … Continue reading "Homomorphic encryption + CRDT 的想法"
看到「Resurrecting a dead torrent tracker and finding 3 million peers」這篇的有趣實驗 (via),作者把已經沒續約的 torrent tracker domain 註冊起來後,找台 VPS 掛上去跑 OpenTracker。 這種本來就可以預期會收到很多 client,因為 tracker list 一直都是複製來複製去的,很多人沒在檢查。果然跑起來之後一個小時就看到蠻大的量: After about an hour, it peaked at about 1.7 million distinct torrents across 3.1 million peers! 比較有趣的是他提到的 Cockbox 這個 VPS: Cockbox is a Tor-friendly, privacy oriented Linux/BSD VPS provider. Our automated system … Continue reading "註冊已經過期的 torrent tracker domain 然後掛起來跑 OpenTracker?"
AWS 支援把 ACM 內的憑證匯出:「AWS Certificate Manager introduces public certificates you can use anywhere」。 這個功能其實就是一般外面的憑證商了... 重點在價錢: The exportable public certificates are valid for 395 days and costs $15 per FQDN and $149 per wildcard name. 考慮到可以掛在 AWS 帳單處理會是個優勢,還行?對於不打算採用 Let's Encrypt 的單位算是一個選擇,主要應該是 90 days 與 395 days 的差異。
在 Lobsters 上看到「Security Standards and Name Changes in the Browser Wars」這篇 2014 的文章,裡面提供了當初加密協定 SSL 變成 TLS 的由來。 當初 Netscape 弄出 SSLv2 後變得很熱門,但也發現了不少問題,所以微軟弄出自己的 PCT 準備競爭,不過後來 SSLv3 修掉了不少問題,加上 Netscape 當時的領先地位,IE 還是有支援 SSLv3。 接下來是大老們看到可能的分歧,找到關鍵人物開會取得共識,讓 IETF 來領隊: And we negotiated a deal where Microsoft and Netscape would both support the IETF taking over the protocol and standardizing it in … Continue reading "SSL 變成 TLS 名字的由來"
在翻 PHP 程式的時候突然想到 coding standard 與 coding style 好像有新的規範 (而且有一陣子了),翻「PHP Standards Recommendations」重新熟悉一下。 看起來是在 2019 年的時候推出了 PSR-12,取代了本來的 PSR-2:「New blog, PSR-12 approval and Upgrading PSRs」。 畢竟出來已經很久了,找一下就會有人整理 PSR-2 與 PSR-12 的差異,像是這篇:「Differences between PHP PSR-12 and PSR-2」,可以看到有蠻多是新語法上的規範。 都推出快六年才回頭看的好處是工具支援度都很完整了,除了把文件看過一遍有個印象外,掛 linter 上去掃就可以抓到問題了。
上個禮拜在 Lobsters 上看到「Benchmarking is hard, sometimes ...」這篇,當下看到還沒解就先放著,過一個禮拜後好像還是沒解,但覺得蠻有趣的。 作者遇到的情況是在 176 cores (352 threads) 的機器上跑 pgbench,發現 22 clients 前都正常,但是超過後就卡住,但再上升到 100+ clients 的時候又莫名其妙的恢復了: 研究了蠻多東西,但看起來還是沒找到原因,應該還會繼續定時回頭看一下看看有沒有新的進展...
上個禮拜科技圈蠻熱的新聞,Meta 與 Yandex 在 Android 上利用「後門」的方式追蹤使用者,這邊抓個新聞連結:「Meta and Yandex are de-anonymizing Android users’ web browsing identifiers」,研究團隊發表的頁面則是在這邊:「Disclosure: Covert Web-to-App Tracking via Localhost on Android」。 技術上來說很好理解,就是在 Android 手機上的 app 聽 localhost:12387 之類的 port 提供 HTTP 服務,然後網頁上就有辦法透過 javascript 得到使用者資訊。 由於未告知使用者 + 無法退出 (opt-out),違反的法律注定是一卡車,最大的應該還是歐盟的 GDPR 系列,依照慣例應該是在調查了,要等一段時間才會有後續消息。 研究者發現包括 Meta 家的 Facebook 與 Instagram 的 app 都有做這件事情: We disclose a novel tracking … Continue reading "Meta 與 Yandex 在 Android 上的違法追蹤"
好像是前幾天在 Lobsters 上看到的文章:「performance of random floats」,裡面在講產生浮點亂數效能的問題,不過先被吸引到的是「正確性」的問題,作者在 2023 年的時候寫過方法「Random floating point numbers」。 在 IEEE 754 的格式下,float64 (Double-precision floating-point format) 長這個樣子: 從 bit 換算回實際數字當中對應的公式是: 要產生出 的浮點亂數,先看 與 的表示分別是: 0.0 = 0 00000000000 0000000000000000000000000000000000000000000000000000 ~ 1.0 = 0 01111111111 0000000000000000000000000000000000000000000000000000 (不含) 共有 種可能性。 但你不能直接針對這 62 bits 直接取 random bit。 用例子來說明,把 切半,分別是 與 ,這兩個區間應該要有相同的機率,這邊的 是: 0.0 = 0 00000000000 … Continue reading "產生 [0.0, 1.0) 浮點亂數的方式"
在 Lobsters 上看到「jemalloc Postmortem」,jemalloc 的 Jason Evans (JEmalloc 的由來) 在關掉 jemalloc 的 GitHub repository 後,寫下了 jemalloc 的歷史 (以他的角度)。 他自己也把文章貼到 Hacker News 上:「Jemalloc Postmortem (jasone.github.io)」,不過沒有參與討論。 從文章裡面可以看到先前 Facebook/Meta 投入了不少資源在 jemalloc 上面,但後來公司方向轉變,就沒有太多能量放在 open source project 上面了,最後一個 release 版本是 2022 年五月的版本。 回到 jemalloc 的出現,文章裡面提到了 Lyken,不過我是從 FreeBSD 上開始知道的,當時 FreeBSD 系統預設的 malloc library 從 phkmalloc 換成了 jemalloc 後,大幅改善了多 CPU 環境下的記憶體管理效能。 後來有蠻多人發現在 … Continue reading "jemalloc 收了?"
大約三年前買房子後,兩年半前搬進來,當時設計師 (包含後續的統包) 在玄關是配了感應燈,不過當時配的感應燈是雷達式的太過靈敏,在客廳沙發就很容易觸動燈亮... 做了一些功課後發現紅外線式的可能更適合我們,大概用了兩個多月就決定自己換掉,2022 年十二月的時候在 PChome 24h 上面買了億光的紅外線式感應燈: 安裝其實意外的簡單,因為拉的是 2.0mm 的線,電盤先把玄關斷電後,把產品附的支架換上去,然後把 2.0mm 的線捅進插座後把卡榫卡上就 OK 了: 用了兩年半也沒什麼大問題,直到最近開始有發現偶而會常亮 (不會熄滅),但電盤關掉後再開的時候又正常,網路上翻了一些文章,看起來就是壽命到了之類的問題?回頭過來去看億光吸頂燈的說明: 產品標 25k 小時,換算一下是 2.85 年左右,我算完的時候笑了出來,OK 好像的確是接近了... (因為紅外線 sensor 會是常開) 所以其實算是個耗材的概念?剛好在 PChome 24h 上看到兩件的特價,當時翻了一圈,這個價錢當時翻了一輪甚至比海鮮市場還便宜,就買回來了:
在 Mastodon 上看到的 (出自 https://famichiki.jp/@sleepytako/114647440899976527): 在日本因為同時有 50Hz 與 60Hz 的電網 (可以參考日文維基百科「商用電源周波数」這邊的說明),所以電器會需要標注適用於哪種電網,或是兩種都可以。 傳統的 timer 會利用電網的頻率計時,直接用不同的刻度來表示就不需要複雜的電路設計了 XD
Update:半夜突然覺得好像怪怪的,查資料發現 o4-mini 早就推出了,所以把原文的 o4-mini 部分拿掉。 看到 X (Twitter) 上的這篇: 現在的價錢可以從「Pricing」這頁看到,本來的 o3 大福降價,從 $10/$50 降到 $2/$8,好像可以多丟一些東西測看看效果怎麼樣... 另外推出了 o3-pro,價錢是 $20/$80,暫時應該不會去碰...
看到 X (Twitter) 上的這篇: 現在的價錢可以從「Pricing」這頁看到,主要是推出 o4-mini,input 與 output 的價錢與 o3-mini 相同都是 $1.1/$4.4 (1M input/output tokens),不過 cached input 的部分更低了;另外本來的 o3 則是大福降價,從 $10/$50 降到 $2/$8。 好像可以把手上的應用測看看效果怎麼樣...
看到 Supabase 的「Announcing Multigres: Vitess for Postgres」這篇,找來了 Sugu Sougoumarane 來開發 PostgreSQL 上的 Vitess:「multigres」。 Vitess 是吃 MySQL 協定的 Proxy 軟體,當初 Google 與 YouTube 的團隊開發的,最重要的功能是 sharding。 這次要搞的是 PostgreSQL 上的版本,不過可以看到目前的 GitHub repository 內還是空的,只有先在這篇 PR 說明 license 會是 Apache-2.0: Like Vitess, Multigres will be open source using the same license: Apache 2. You can follow the repo here. 從 … Continue reading "Supabase 打算要開發 PostgreSQL 上的 Vitess:Multigres"
前幾天在「Kagi 訂閱超過 50k 用戶」這邊有提到 Kagi 應該會有活動,昨天發出來了:「Celebrating 50K users with Kagi free search portal, Kagi for libraries, and more...」。 看起來最重要的是讓推出 Kagi Search portal,讓使用者免費用,有點像是 free tier 的概念,不過不確定這邊會有什麼樣的方式計算 quota,會是 per-IP quota 加上 cookie-based 嗎? This means anyone can experience Kagi Search without signing up, with 50 free searches directly from our homepage and 100 more after creating an … Continue reading "Kagi 在 50k 訂閱使用者後的活動"
這次 WWDC 公開的方案:「apple/containerization」。 先前 macOS 上跑 container 的方法先是跑 Linux VM,再用 socket 讓外部使用,這個方式比較大的問題是會受限於 VM 一開始啟動時的記憶體大小。 現在官方推出來的這個方案是過 Apple 自己的 Virtualization.framework 包 container 本身,少了 VM: The Containerization package allows applications to use Linux containers. Containerization is written in Swift and uses Virtualization.framework on Apple silicon. 現在看起來是每個 container 跑在自己的 VM 裡面,然後做的比較輕: Spawn lightweight virtual machines. 剛推出來還有看到不少 commit 在推,應該可以再等一陣子看看... 另外也可以過一陣子看看現有的方案 … Continue reading "蘋果官方推出在 macOS 上跑 Linux container 的方案了 (可以 arm64/x86-64)"
Hacker News 上翻到「Bruteforcing the phone number of any Google user」(via) 這個,作者意外爆破了取得手機號碼的安全漏洞。 主要是發現在測試 Google 服務在頁面沒有 JavaScript 的時候是否能用,意外發現登入頁可以用,而且因為沒有 JavaScript,所以很多現代服務的偵測 bot 技巧都無法使用,這包括了 recovery 的功能: A few months ago, I disabled javascript on my browser while testing if there were any Google services left that still worked without JS in the modern web. Interestingly enough, the username recovery form … Continue reading "暴力法取得 Google 使用者的手機號碼的安全漏洞"
Hacker News 上看到「Kagi Reaches 50k Users (kagi.com)」的消息,這個算是當初 Kagi 自己定的目標: 前陣子有測試 DuckDuckGo 與 Brave Search,品質有差不少 (好很多),不過目前有不少人猜測應該是還沒有被 SEO spammer 針對,畢竟現在還是很小眾的服務。 維基百科上剛好有提到三月底的時候是 43k 左右: Kagi had around 43,403 subscribed members as of March 28, 2025 and 845,200 searches were made that day. 過了兩個多月漲到 50k 了,直接拿 unlimited 算的話大約是 $500k/mo 的收入 (有 $5/mo、$10/mo 以及 $25/mo 的方案),記得在 20k 的時候他們有說當時的收入只剛好付 infrastructure 的部分:「Kagi … Continue reading "Kagi 訂閱超過 50k 用戶"
看到 MariaDB 11.8 LTS 出了:「MariaDB 11.8 LTS Released」。 這是第一個在 MariaDB LTS 上有 HNSW 的版本,對於 embedding 類的搜尋會方便不少,可以想到的是建立 MariaDB replica,然後就可以在上面搜相似物... 另外一個看到有趣的東西是「TIMESTAMP life range extended from 2038 to 2106」這條,這邊的 2038 限制出自於 Year 2038 problem,而 2106 看起來就像是把 SIGNED 改成 UNSIGNED,是個「不要發生在我這代」的概念: Analogous storage constraints will be reached in 2106, where systems storing Unix time as an unsigned (rather than signed) … Continue reading "MariaDB 11.8 LTS"
在 Lobsters 上看到的連結,2018 年的文章提到不要用 DNS over HTTPS:「Why not use DNS over HTTPS (DoH)?」。 最後一段蠻有趣的,提到了過度包裝的問題,當初看到 DNS over HTTPS 時就在想為什麼不走 DNS over TLS 就好: But the protocol itself is a good idea No, it is not. Abusing HTTP as a transport protocol for DNS data adds a unneeded complexity to the protocol. You must add a HTTP … Continue reading "不該用 DoH (DNS over HTTPS) 的原因"
在 Hacker News 上翻到的:「The FAIR Package Manager: Decentralized WordPress infrastructure (joost.blog)」,Linux Foundation 的新聞稿在這邊:「Linux Foundation Announces the FAIR Package Manager Project for Open Source Content Management System Stability」。 這醞釀了有點久,主要是去年 WordPress.com 與 WP Engine 的訴訟事件中,Matt Mullenweg 濫用權限在 WordPress.org 上阻擋 WP Engine 的存取,然後被下初步禁制令阻止這件事情:「WPEngine 拿到對 Automattic 的初步禁制令了」。 這個計畫看起來是要建立基礎建設替代方案,看起來包括 theme 與 plugin。 透過 plugin 的方式安裝後 (Release 0.2.0) 就可以使用?看起來也有提供內建 FAIR plugin … Continue reading "Linux Foundation 宣佈獨立的 WordPress 基礎建設:FAIR Package Manager Project"
Lobsters 上看到的專案:「bearstech/phptop」,方法是用 php.ini 裡面的 auto_prepend_file 在每次頁面讀取前先「安裝」程式碼,把資訊累積氣來後就可以判讀了。 知道哪個頁面慢之後,如果還是不知道原因,就可以再接 Xdebug 抓哪段程式碼慢,算是一套的。 好久沒有用這種方法對 PHP 站台 profiling 了,因為現在想到要記錄時間會直接在 nginx 記錄,都忘記 PHP 端有這個方式,寫起來看看會不會記的久一點... 在 PHP 端記錄的好處是除了時間以外還可以看其他的資訊,這個方式可以看到 peak memory usage 也是個重要資訊。
續上篇「AWS 的 Taipei Region 開了」,剛剛突然想到查了一下,發現一些意外的數字... Amazon S3 所有區域的價錢中,台灣、馬來西亞、泰國都是 $0.0225/GB/mo,比 us-east-1 的 $0.023/GB/mo 低:我一直以為 us-east-1 會是全區最低的價錢? Amazon EC2 所有的區域中,如果拿 t4g.small 來看,印度的 Hyderabad 與 Mumbai 是 $0.0112/hr,遠低於 us-east-1 的 0.0168/hr,其他區域都比 us-east-1 高。 流量的部分倒是沒什麼意外... (啊,HiNet?) 一直以為 us-east-1 會是最便宜的選擇,查了才發現有些例外。
喊了蠻久的 AWS Taipei Region 開了:「Now open – AWS Asia Pacific (Taipei) Region」,如同其他的新 region,要開需要透過 Account 頁面的設定打開: 開了以後就會跳 Enabling 等他跑: 好了以後會變成 Enabled: 在 Amazon EC2 上面開了一台 t4g.small,分配到 43.212.29.66,從 HiNet 過去是: 2.|-- 168-95-170-98.snuh-3331.hinet.net 0.0% 10 1.9 2.0 1.6 2.7 0.4 3.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0 4.|-- 220-128-12-237.pcpd-3332.hinet.net 0.0% 10 2.4 2.2 1.7 3.0 0.3 … Continue reading "AWS 的 Taipei Region 開了"
一樣是因為 Git 統一天下的關係,Canonical 打算要停掉 Launchpad 上面的 Bazaar 了:「Phasing out Bazaar code hosting」。 第一階段先關掉前端: Loggerhead, the web frontend, which is used to browse the code in a web browser, will be shut down imminently. 然後計畫在九月拿掉: From September 1st, 2025, we do not intend to have Bazaar, the code hosting backend, any more. Users need to migrate … Continue reading "Canonical 要停止 Launchpad 上的 Bazaar 了"
Let's Encrypt 發表了「How We Reduced the Impact of Zombie Clients」這篇,在講處理 zombie client 的情況。 這邊講的 zombie client 是指自動化過程的產物:Let's Encrypt 推動自動化更新 certificate 的機制,所以大多數都是透過程式更新 (也就是 client),而遇到系統轉移但舊系統沒有關閉,或是其他類似的情況,導致有些系統雖然已經不是合法的 hostname owner (所以認證會失敗),但還是會一直向 Let's Encrypt 發送請求 (這時候就是 zombie client 了)。 算是因為自動化 ACME 協定而產生的問題,其他沒有提供自動化的 CA 不太會遇到。 Let's Encrypt 遇到的問題是,從發 token 驗證開始是屬於需要被完整稽核的事件,幾乎所有的傳輸內容都要被記錄下來,這會是非常吃資源的情況。而到了 2024 年的時候,Let's Encrypt 發現有一半的請求從未完成 validation (來自於 ~1M 個帳號): In 2024, we noticed … Continue reading "Let's Encrypt 針對無主用戶端的限制"
前幾天看到「Mapping latitude and longitude to country, state, or city」這篇,應該是在 Lobsters 看到的... (不是很確定) Reverse geocoding 是指輸入經緯度,反推出在哪個區域 (國家/州/城市): An app can easily check a user's location (with permission), but figuring out where that location is, is far more difficult. For example, a web app can use geolocation.getCurrentPosition() to get a user's location in the form of latitude … Continue reading "Reverse geocoding 的簡化"
在 Hacker News 上看到「Canonicals Interview Process (dustri.org)」這篇,原文在「My experience with Canonical's interview process」這,裡面有提到 Canonical 的面試情況,看了一下提到的狀況,大概都有耳聞,反而是透過 GDPR 取得面試記錄這件事情還蠻特別的: So I exercised my GDPR rights, and asked to be communicated everything pertaining to my interviews. I got a bunch of documents, and the reason I was rejected was "Culture/behaviour/motivation misalignment." Overall, would-you-hire-wise I got three "strong yes", eight … Continue reading "透過 GDPR 取得面試的記錄?"
您可以订阅此RSS以获取更多信息