2025-08-22
Zero length non breaking space
public static String cleanup(String networkData) {
return networkData.replace((char)65279, ' '); // zero length non breaking space.
}
2025-07-16
2025-05-30
引: 「君主立憲」變成「美式民主」的演變史 從這段歷史看 香港民主和中國民主的障礙
原著 LINK: (pay wall) https://www.patreon.com/posts/she-hui-guan-ce-118337524
論壇上全文引文 (不是我): https://lihkg.com/thread/3922453/page/1
AI 縮寫:
君主立憲與民主的關係可以追溯至歷史演變。君主立憲最初是一種貴族主導的寡頭政治,平民沒有參政權,因為大多數人對政治漠不關心,僅滿足於生活安定。殖民主義的興起改變了這種情況,尤其是在沒有貴族傳統的殖民地。殖民地由於行政成本低,人民被賦予更多自由,但也因此缺乏政治代表。當殖民地被徵稅時,富有的地主階級要求政治地位,提出「納稅人應有參政權」的主張。
英國議會拒絕讓殖民地人民參與本國政治,殖民地因此轉向獨立。美國的民主制度從英國君主立憲制演變而來,但取消了君主和貴族,改以「納稅人」作為核心,形成金權政治。美式民主以財富為基礎,經濟權力等同政治權力,階級分化明顯。雖然當年民主被視為低格調的制度,但因北美土地資源豐富,投票門檻低,普及度相對較高。
AI 評價:
這篇文章邏輯清晰,層層遞進地闡述了君主立憲與民主的歷史脈絡,特別是君主立憲中的貴族血緣與美式民主中的金權結構對比鮮明,觀點新穎。然而,文中對殖民地與宗主國之間的矛盾論述較長,部分段落可進一步縮減以提升精煉度。此外,對民主「格調低」的評價雖有歷史依據,但用詞稍顯主觀,可補充更多對比案例增加說服力。
2025-05-28
2025-05-24
2025-05-12
臨終謬誤
https://www.hjorthjort.xyz/2018/02/21/the-deathbed-fallacy.html
🔥🔥: 216 | 💬: 101 | 🗓️ 2025-05-10
文章批判了人們常引用臨終者悔恨(如“應多陪家人”“少些憂慮”)來指導當下生活的誤區,稱之為臨終謬誤。作者提出三點質疑:1. 臨終狀態不具代表性,將死之人的需求與人生黃金期截然不同;2. 我們誤解過去的自己,當下判斷未必優於年輕時的選擇;3. 時代差異被忽視,老一輩的遺憾未必適用於當代人。最後指出,盲目追隨“臨終清單”可能適得其反,應結合現實需求與幸福學研究,而非被虛構的“未來自我”綁架。
2025-05-07
文摘:三權分立和三權分離
2025-04-29
有意義的工作
2025-04-24
2025-04-22
supabase的AI, functions和API
再探了一下 supabase.
之前我想好了新app的 data tables. 當然只是草稿了 table name 和相關欄位名. 面對 supabase 介面, 我當然不想再用 GUI 慢慢建立數據表. 我看到了它內置的 AI 命令介面: 右上角綠色菱形.
AI
那我就說
follow tables please create them in effortapp schema: i will list the table name, followed by a colon, then fields. you try to define the type for them. and also you can see the FK between them.
user: id, email, name
team: id, name
project: id, name, team id, start date, end date, ....
然後它就生成了相關的 create table SQL, 一鍵完成. 看了一下, 連 foreign key 也是正確的. 當然我用的約定俗成的命名慣例應該有幫助.
我再來:
also create two many-to-many tables to link up relevant tables.user_in_team: link up user and team
task_by_user: link up task and user.
當然也完美運行, 2 個多對多的關係表也完成了. 甚至連 on delete cascade 也寫好.
我還打開 entity diagram 看了一下, 應該沒問題.
Database Functions
然後我看到 supabase function. 也許是相當於 oracle 的 stored procedures. 問了AI確認, 我就叫它為幾個表都寫上 CRUD:
create CRUD functions for user, team.... tables. execute the code directly.
似乎它不會立即運行, 我還是要手動按一下運行鍵. 一下子20個 function 就出現了.
API
我想到, 這麼好的東西, 也許可以經 HTTP 使用吧, 那豈不美妙?
當然是可以的:
POST https://<your-supabase-url>/rest/v1/rpc/create_user
Authorization: Bearer <your-jwt-token>
Content-Type: application/json{
"p_email": "user@example.com",
"p_name": "User Name"
}
好吧, 似乎連 Vercel 都可以省去了...
2025-04-16
分享企業利潤
據說,楊振寧一針見血地指出,現在的無人飛機、無人汽車駕駛、無人商店、無人酒店、無人銀行,這些無人化不可怕。可怕的是這些無人機器的勞動成果如何去分配,不能把財富集中到少數人手中。如果集中到少數人手中,可能是窮人更窮,富人更富。
我思考了一下。
首先係企業做事。利潤分給員工的只係薪水。薪水水平係市場決定,人多了就賤,你不做也有人做。那企業股東分的自然多一點,因為股東是有限人數。所以一般人可以想辦法成為股東,分享利潤。有幾個方法:創業;盡早加入新創公司取得股分;加入上市公司工作以優惠價買入股分;身為散戶在股市買入好公司的股分。
所以見到資本家在搶,你不要指責。你也可以成為資本家,至少和他們分享企業利潤。
富人更富是真的。
窮人更窮,這種情況是眼界窮,見識窮。拓寬視野,學習富人,自然可以走出困境。
2025-04-11
諸葛亮-誡子書
以下翻成現代中文, 力求簡潔:
夫君子之行,靜以修身,儉以養德。非澹泊無以明志,非寧靜無以致遠。夫學須靜也,才須學也。非學無以廣才,非志無以成學。慆慢則不能勵精,險躁則不能冶性。年與時馳,志與歲去,遂成枯落,多不接世。悲守窮廬,將復何及!
DeepSeek:
君子的修養之道,以沉靜修身,以儉樸養德。不淡泊則難顯志向,不寧靜則難達遠境。學習須心靜,才干靠勤學。不學則才識淺,無志則學業廢。懈怠則難求精進,浮躁則難塑心性。年華易逝,壯志隨歲月消磨,終至枯敗凋零,大多無益於世。到老徒守貧舍,悔之晚矣!
(譯文說明:采用簡潔明快的現代漢語,保留原文對仗結構。將"澹泊"譯為"淡泊"更合現代用法,"險躁"譯為"浮躁"更貼切。用"年華易逝"替代直譯"年與時馳",以"悔之晚矣"收束,強化警示效果。整體控制在120字內,符合當代閱讀習慣。)
2025-04-07
2025-04-06
step to create a vercel project with nodes
- create a github repo with gitignore of node.
- clone repo to local.
- at the directory, npm init to setup node app
- local run vercel to setup a new project and deploy. use default settings.
- confirm at vercel site the new project should be created.
- access root will be 404.
2025-03-31
WhatsApp 作默認app
2025-03-28
中國想要的世界秩序
BBC:
近年, 中國快速崛起,於是就有衝動尋求符合自身利益的秩序安排。那麼中國想要什麼樣的世界秩序 ?
簡單來說,就是一種「更少互相干預」的秩序,各個國家「各掃門前雪」,這種環境更適合威權統治者生存,中國經常說「互不干涉」、「相互尊重」,都是基於這種訴求。 換言之就是「主權優先」,而非「人權優先」。
基於這種秩序,一國不能以自己的人權標凖干預另一國,而西方國家認為人權是超越主權的普世價值。
2025-03-25
AI vibe coding 心得
實戰了幾輪, 付出真金白銀體驗, 有些體會:
DO:
- 最好先有一個 database schema, 同 AI 交待這個schema, 他會少犯錯.
- 直接給他看 ER 圖也可以, 如 cloude 甚至注意到 ER 圖內的 relationship. 用圖的話, 要指定用哪一款數據庫. (mysql? oracle? prostgresql? ... )
- 不用圖, 給 CREATE TABLES 也可以
- 要設定好主鍵 PK 和外鍵 FK.
- 在第一個提示就說好要求和細節. 就當你只有一次機會, 長一點沒關係.
- 為了日後人手接力, 要交待: 平台為何 (如 Vercel), 有什麼數據庫 (如 Supabase), 它們用什麼方法連 (Supabase data API), 用的語言是什麼 (javascript), 要用什麼主要技術 (node js). 如果是 web app, 交待要用的 js 庫 (如 JQuery), CSS (如 bootstrap), template engine (如 Pug), 相關技術的 preference (如 HTMX).
- 每次改動不要太多, 要限制他改的範圍.
- 及時TEST, 及時追加修正.
- 提醒AI要一並修改相似功能.
- 如DEBUG有阻礙, 盡量目測發現更多線索提供給AI.
- 處理有登入情況時, 提醒AI要為各功能加上token或cookie. 不然這些功能在加上LOGIN後可能會FAIL.
2025-03-23
Domain setup
Typed subdomain, rather than root domain ‘losiu.org’ into the setting. It seems promissing. Let me wait for few hours for the certificate. Finger crossed.
update: all good now.
2025-03-22
2025-03-21
Using Calendar
I don’t know why people still don’t use calendar well today. Arranging meeting in regular emails, reschedule and cancel in emails as well. The efficiency is very low.
Just use the calendar function at your platform, for God’s sake!
2025-02-18
下載AI模型時,我下載了什麼
在文件層面,下載AI模型時,我下載了什麼?
DeepSeek回答:
當您下載AI模型時,您實際上是在下載包含模型參數和結構的文件。這些文件通常包括以下幾個關鍵部分:
模型架構:這定義了模型的結構,例如神經網絡的層數、每層的類型(如全連接層、卷積層等)以及層之間的連接方式。架構可以用代碼(如Python腳本)或配置文件(如JSON、YAML)表示。
模型參數:這些是模型在訓練過程中學習到的權重和偏置。參數通常以二進制文件形式存儲,如TensorFlow的.ckpt文件或PyTorch的.pt文件。
元數據:這可能包括模型的訓練配置、版本信息、輸入輸出格式等。元數據有助於理解和使用模型。
依賴項:有時下載的包還包括模型運行所需的庫和依賴項,確保模型能在特定環境中正確執行。
示例代碼或使用說明:為了方便用戶使用,下載的模型文件包中可能包含示例代碼或文檔,指導如何加載模型並進行推理。
下載的文件格式取決於使用的框架和工具。例如:
TensorFlow:可能下載.pb(Protocol Buffers)文件或.h5(Keras模型)文件。
PyTorch:通常下載.pt或.pth文件。
ONNX:下載.onnx文件,這是一種開放的模型表示格式。
總之,下載AI模型時,您獲得的是模型的“藍圖”和“知識”,這些文件使得您可以在本地或其他環境中部署和使用該模型。
2025-02-10
2025-01-24
收據打印機
技能獲得!
連了 2 部收據打印機到網路上,其中一部連上了現金抽屜。今晚開始了艱苦的摸索。
先是想找一些別人的程式庫。沒想到很少人玩這個,用 swift 的尤少。幾個還是用 CocoaPod 發放,這太舊了,他媽的我的 Mac 上連 Ruby 都過時了。沒理由為了個 Pod 動到系統的 Ruby,這他媽太扯了。果斷放棄所有的 Pod。
這時心想直接控制打印機不會太難吧。果然查到 EPSON 製訂的 ESC/POS 指令表,全世界的收據打印機看來都會遵守。看去是用 TCP 連上去之後,往它傳送二進位指令就好了。但這網路似乎有點麻煩,又沒經驗。誰會想到寫 iOS app 還要玩 socket?
然後找到一個 swift 寫的程序,作者是大陸人,註解居然打中文。這個連程式庫都不是。本想放棄,但一想,看他怎麼傳指令吧。好,居然是藍牙版的。這裡有一堆在藍牙上搜索並過濾打印機的邏輯。這對我沒有用。忽然想起在另一個庫看到連接LAN的碼。不如結合一下?
於是結合兩個程序,弄了個物件出來。成功了!直接傳送中文字都能出。繁體字呢?改用UTF8出了亂碼。好吧,這是國內產的打印機,用回國標碼好了。OK,它包括了繁體字宋體。能出!最怕的編碼問題都解決了。一維條碼也能印。
二維QR-CODE沒來得及搞,但應該沒問題。
另外也試了個把全部東西畫成一張圖輸出的,也是可以。但是它是腳先出來,而且筆畫不夠清晰,不是太理想。還是用前面那個。
2025-01-16
2025-01-15
Read google firestore data to SwiftUI list view
- Define a struct to model the data object we care about.
- Then to have a class (not struct) subclassing ObservableObject with a @Published array of that model. The class has a method to read the data and decode it to the model and map the returned documents to the array.
- Sort it if necessary.
- Pass the array to a List view.
2025-01-14
Use google sign in in Swift (iOS) with Firebase
The documentation on Google is fucking out of date.
Finally we find here:
https://medium.com/@matteocuzzolin/google-sign-in-with-firebase-in-swiftui-app-c8dc7b7ed4f9
To keep a copy, below I copy the code part, which is the out-dated part of Google's guide.
2025-01-08
Javascript 字串夾入變數
javascript 原來可在字串夾入變數, 只要用反單引號表示字串即可. (`)
function anchor(href,text){return `<a href="${href}">${text}</a>`;}