這可是在組織裡奪權的好方法啊!尤其當CTO是大廠,例如Google出身,又沒有真的學過組織管理的情況下。
#我沒有在影射最近出事的某新創
This effect is really common in software. The Android dev community spent 10+ years doing something called “Clean Architecture”, just to end up realizing that most of it was not needed 🤷♂️
Folks would create 5+ layers of code that couldn’t touch each other for some reason, so they’d throw an interface between every pair of them, then force mapping pojos from one layer to another. All that just to build a simple app.
This effect is very hard to escape. The way it happens is:
- someone learns a new concept that sounds revolutionary in theory.
- People start writing and talking about it in complex terms as if it was rocket science, just to position themselves as an authority on the topic and grow their personal brand.
- A whole scene is created out of a concept that was meant to be a trivial thing, to the point that there is a major force pushing every dev in the community to do the same.
Usually only a handful of devs are smart/brave enough to study it with a critical eye and propose alternatives. Mostly because they are hardly pushed back by the whole community when they do so, since the big majority of devs simply follow what everyone else says, and never try to actually understand the concepts and why they exist.
歐盟的新電池法,看起來又是想跟Apple對幹,不過我覺得這很好解啊,而且Apple早就有對應的機制了,什麼都不用改,只要以後賣到歐盟的iPhone把機器裡面的電池拔掉,然後附上下面這個連結就好
apple.com/shop/product/mgpg4…
最近看到不少消息指稱OpenAI的Sam Altman是反社會人格者,好奇問了一下ChatGPT跟Claude,結果有點有趣。
chatgpt.com/share/69d8ee35-3…
claude.ai/share/ab284c1b-ddd…
ChatGPT用一種邏輯陷阱的方式幫Sam Altman辯護,某個角度來說,「訓練得蠻好的」😂
Apple50周年を記念したWebアプリをつくりました。
- その名も『My Apple50』
- 初代iPhone風のホーム画面
- 11個のアプリが使える
- 特別なフレームでのカメラ撮影
- 自分だけのApple年表
- 全部無料
Apple好きの人、全員に使ってほしい!!!
myapple50th.bitta.jp
#Apple50
#MyApple50
前陣子遇到一個 Swift JSON encode 的 bug,如果自訂了 Dictionary 的 key (conform CodingKeyRepresentable),JSONEncoder 還是會把它套用 encoding strategies。我的情況是會把一個 [“USD”: 30.0] 這樣的 dict 轉成 {“u_sd”: 30.0} 這樣的json。
github.com/swiftlang/swift-f…
Hit a Swift JSONEncoder bug: custom Dictionary keys (CodingKeyRepresentable) still get transformed by keyEncodingStrategy. ["USD": 30.0] becomes {"u_sd": 30.0} 😢
Fixed it and opened issue/PR. Would appreciate help getting it reviewed! 🙏
github.com/swiftlang/swift-f…
github.com/swiftlang/swift-f…
github.com/swiftlang/swift-f…
I think Windows hates me.
xitter.cf/shivahuang/status/1833…
I told you 🤭
cc @zonble
Excited to announce Claude for Open Source ❤️
We're giving 6 months of free Claude Max 20x to open source maintainers and core contributors.
If you maintain a popular project or contribute across open source, please apply!
claude.com/contact-sales/cla…
I've written a Swift port of NanoID.
The highlights:
- Written in modern Swift 6 with full Sendable concurrency support
- Matches the official JS API
- Covered by comprehensive tests
- Optional integration with swift-dependencies from @pointfreeco
github.com/ShivaHuang/swift-…
And there is one companion package, IDGenerator, a keyed registry of generators that decouple your code from any specific generation strategy.
github.com/ShivaHuang/swift-…
This package is heavily inspried by swift-dependencies.
If you already fimiliar with swift-dependecies, you would love how to organize multiple ID generators like this:
struct UserRepository {
@Dependency(\.idGenerators.userID) var userID
}
struct LogFileManager {
@Dependency(\.idGenerators.logFilename) var logFilename
}












