一位系统管理员病逝后,不懂技术的妻子来 Reddit 感谢网友帮她拆掉满屋服务器,并决定自己去学 IT
几个月前,Reddit 的系统管理员社区(r/sysadmin)来了一位特殊的求助者。她的丈夫是一名资深系统管理员(SysAdmin),当时正因重病躺在医院里搏斗。为了搬到离医院更近的地方照顾他,完全不懂技术的妻子必须拆掉丈夫在家里衣帽间搭建的一整套复杂服务器机柜(Homelab),但她面对满屋子的网线、机架和设备无从下手,生怕不小心弄坏了丈夫的心血。
11 月 1 日,这位妻子(ID:icsk8grrl)回到社区发了一篇后续帖。她在帖子里说,丈夫在 ICU 住了大约两个月后还是不幸离世了,但万幸的是,他在离开前从人工诱导昏迷中醒了过来,全家人一起陪刚满 3 岁的女儿过了生日。
去世前几天,因为丈夫身体太虚弱,连距离医院只有 8 分钟车程的家都回不去。夜班护士悄悄协调了好几个医疗小组,推着全套维生设备和便携呼吸机,把他带到了医院大门外。在仅有的 10 分钟里,他最后看了一眼夜空,3 岁的女儿指着天上的月亮和金星给他看,他对着女儿露出了灿烂的笑容。
【留给家人的机柜与温情】
在这个经常自嘲“打工人随时会被公司轻易替代”的论坛里,这位妻子特意提到了丈夫生前的两家雇主。她说,丈夫的前东家提供了巨大的帮助,而现任雇主在他患病的 3 年里极其慷慨和体贴,最后还专程来参加了葬礼,“和我们一起痛哭”。
而在网友的指点和帮忙下,她找人安全拆掉了那套紧挨着热水器、装在发烧友级 SilverStone 机箱里的家庭服务器,把所有零件分类贴好了标签,只留下衣帽间地板上“5 万颗散落的随机螺丝”。现在,她正在新家清理衣帽间,准备把丈夫生前躺在病床上从二手市场淘来的 9U 小机柜重新装起来。
因为丈夫生前最常潜水逛的就是这个版块,她决定去报一些基础的 IT 课程,至少学会自己更新设备、做好日常网络安全,甚至打算接过丈夫的班:“也许 5 到 10 年后,我也会作为一名系统管理员回到这里。又或者 20 年后,回来的是我们的孩子。”
这周,他们 3 岁的女儿人生第一次尝试玩电脑游戏,自己学会了用方向键、鼠标、数字键和空格键玩《星露谷物语》(Stardew Valley),而且已经学会在睡觉时间为了多玩一会儿跟妈妈讨价还价了。妻子在评论区里还半开玩笑地向网友倒苦水:丈夫生前精通西班牙语,留下一堆没贴标签的神秘 U 盘不敢乱插,还有一个保持了 1780 天的多邻国(Duolingo)打卡纪录,完全不懂西语的她现在每天都在拼命帮他续火苗。
【给所有技术人员的托付】
在帖子的最后,她给所有习惯在家里折腾复杂网络和设备的工程师留了一段很实在的提醒:
“友情提醒大家:去买份人寿保险,准备一个密码管理器,并把主密码共享给你的伴侣或直系亲属。另外,请一定要提前聊聊那些沉重的话题——比如维生支持要用哪种、维持多久,选火葬还是土葬,如果有告别仪式你想穿什么衣服、放什么音乐。”
评论区里,成百上千名平时只聊服务器宕机、漏洞补丁和裁员的系统管理员纷纷破防致敬。有人借用《星际牛仔》的台词向他道别,也有人写下了一句属于老网管的祝福:“他现在去了一个网线永远按颜色对齐、没有打印机故障、DNS 也永远不会挂掉的地方。”
Ash Wu retweeted
如果我是蔣萬安幕僚,遇到沈伯洋這種對手會很頭痛。
標準選戰絕對打不贏,靠傳統動員效果有限,假設傳統動員2000人,可以引來2萬的中間選民(總有人猶豫不決,看到那邊有2千人在支持,就順勢過去聽看看的)
但是今天洋流漂過去,直接把1.5萬全部吸走,我那2千人動員直接算白花的,多來幾次,光遊覽車錢、便當錢、場地費,真的會吃不消。
打市政題,需仰賴團隊內有政論戰將存在,但蔣萬安身邊只剩下幾個會嘴不會打的笨蛋(殷瑋),這些人連常識題都打不好,每次小小案件都擴大再擴大,弄到下不了台,只好昧著良心寫一堆唬嚨人的講稿,叫蔣寶背熟了去講一遍就算是過了。
本來風災算是表現一下市長力的最佳時機,沈伯洋再怎樣也不是市長,他無從在風災題作答,蔣寶只要適當的出現在鏡頭前作作熬夜指揮的樣子,各部會不要出大錯,至少也可以賺不少分。
結果這題被黑猩猩雙手拿掃帚的畫面完全比下去了,蔣萬安的單手掃地連黑猩猩都不如。
辯論會是蔣萬安陣營被逼不得不上的一役,也會是他們正面對決的最後一次吧?我猜。
這場我只看了一些片段,但看得出來蔣寶就是在背稿,而幫他擬搞的人完全錯估了沈伯洋的風度,他們大概以為沈伯洋一定會拿蔣寶的弱點拼命罵,結果人家好好的在講自己的政見,變成蔣寶湊上去求對方揍自己一頓。
選戰到這裡,國民黨陣營想贏的話,正面作戰已經不會有用了,接下來不外乎以下幾招:
1、栽贓:從每一個想得到的地方製造罪名灌到沈伯洋頭上,就算是憑空製造出一個情婦,國民黨大概也敢做。
網路闢謠不能停,務必讓謠言死在火苗階段。
2、物理攻擊:大家都知道國民黨幹過什麼血案,這邊就不用贅述了。
3、作票:這也是國民黨老招,所以希望台北的戰友們,開票時儘量去各地監票,老前輩的智慧記得帶著,就是手電筒(老虎鉗現在比較用不上了)。
手電筒不要光靠手機的,現在很多LED手電筒流明數都不錯,體積也不大,值得帶著備用。
沈伯洋做了一個候選人能做的事了,我們也有我們小市民可以做的事,大家加油!
SDK 58 is out 🙌
This SDK is built for iOS 27. Apps on SDK 58 will be ready for Duo on day one 📖.
The release also includes App Intents for Siri, 2x faster clean Android builds, faster Expo modules, and a CLI built for your coding agent.
Changelog: expo.dev/changelog/sdk-58
Upgrade: 𝚗𝚙𝚡 𝚎𝚡𝚙𝚘 𝚒𝚗𝚜𝚝𝚊𝚕𝚕 𝚎𝚡𝚙𝚘@^𝟻𝟾.0.0 --𝚏𝚒𝚡
Ash Wu retweeted
expo-device-hub, new from @expo, turns your browser into a local device dashboard 📱
- live stream of every iOS sim + Android emulator
- tap, swipe, scroll, type in the page
- boot and shut down without Xcode or Android Studio
- flip dark mode, and more
bun expo install expo-device-hub, then bun expo start. The link prints in your terminal :)
Build uncompromising high-performance, high-fidelity apps with React. What you see is not the Apple Messages app, nor is it meant to be 1:1. Rather it serves as an aspirational and real example of UI/UX that is possible.
Every detail from the bubble animations to keyboard gestures to scroll view insets and safe areas to parallax timestamps required care and attention.
Quality UIs come from caring hard. The little chat bubble tails that morph away when the next message animates in. Timestamps that scroll at a different rate than the bubbles. Peek gestures powered by UIKit that lift a chat bubble, tail and all, with a gentle haptic pulse.
The subtle shadow of the text composer and responsively sliding down the keyboard in pixel-perfect concert. The composer shrinking its width to fit iPhone’s rounded bezel. The beautiful Liquid Glass refractions have the level of glassiness chosen by the user (new in iOS 27).
Scroll view insets that adjust to fit the home bar and keyboard dynamically, creating a sense of depth as the chat bubbles are slightly visible as they scroll under the keyboard. Keeping the keyboard on screen if the prior screen already presented it. Sliding the keyboard and composer with the screen when the user drags to navigate back.
I am excited to explore using the new iPhone Duo view controllers natively with React when the time comes. There is always room for innovation and improvement.
This chat demo runs at 120 FPS on iOS 27 even on my phone that’s four versions old now. There are several approaches to high-performance lists. I explored a new Expo scroll view that uses the native gesture systems along with react-native’s VirtualView (codenamed “Fling” to reflect the speed of flinging a scroll view), which Meta’s React team designed to prioritize scroll momentum with React’s scheduler. There are tradeoffs with other scroll strategies for how the scroll views gracefully degrade, and they can be swapped out based on what’s best for your app’s use case.
And, by virtue of using modern React, high-priority events like user gestures can preempt lower-priority ones like a network response.
Let us dispel any myth that using React requires compromising on beautiful, smooth, user-friendly UI/UX that Uses the Platform.
Let us dispel any myth frame-perfect UI coordination is not achievable. The Hermes thread and the UI thread can coordinate when needed, like for controlled text inputs.
Let us dispel any myth that React Native’s performance is impacted by a bridge, let alone has a bridge. Bridgeless JSI and the Fabric renderer are here for apps that use the New Architecture.
What about Android? The app runs and I’ll share a screenshot from my cloud agent’s emulator. With some attention to detail dedicated to Android I’m confident crafted UX is attainable. I’ve spent my tokens once and have a structural head start everywhere.
One more thing! Most of this chat’s application code is written with <div>, <span>, <button>, and other familiar elements. The styling is mostly CSS, including linear-gradient(), background-attachment: fixed, and semantic platform colors that adapt to dark mode. Not just appearance - CSS Animations and CSS Transitions run entirely natively.
There are a handful of custom native components written in Swift and Kotlin, like the chat bubbles and a custom CAShapeLayer and UIBezierPath for the tails. Native coding is a first-class feature.
The way to think about building beautiful apps this way is React and Native, not React vs. Native. Aspire high and raise your ambitions for what is possible!
Here's what I think about the @ShopifyEng RN → native migration article:
When I rebuilt the Expo Go UI using Jetpack Compose last year, I already felt that all declarative UI frameworks are fairly similar in use, and that agents do a good job migrating between them when it comes to presentation layers. So I'm not surprised Shopify found it possible to fairly quickly rewrite an existing RN app into two separate native codebases. That was always the easier part.
I think the main problem lies in making sure the business logic layer doesn't diverge when there's nothing keeping it together. We introduced a few minor differences between the two Expo Go platforms despite trying very hard not to.
And consistency vs platform feel is one more question of taste, not something an agent will always solve for you.
I don't think react-native will go away, but I definitely feel react-native is evolving, will evolve further, and I have a couple of predictions:
➡️ More and more low level UIs as native components (either ExpoUI or local expo modules with native code files mixed with JS).
Agents are great at writing presentation layers, so why bother having JS lists with all that complexity and perf costs?
➡️ OTAs are more important than ever, prepare for changes ahead of time.
Slow app store review times vs cheap code push people to allow more customisability from JS, essentially treating the JS layer as server driven UI.
➡️ New UI paradigms mean RN remains valuable.
Think custom, per-user interfaces (made for you UIs streamed inside chat, customizable apps etc.) – you need an interpreted higher level abstraction layer that's easier to define and has an SDK.
➡️ Focus on brownfield with no clear set boundaries. Agents pick and choose if they want to build experiences in native or in JS, with most components/APIs/libraries available both as JS and native entrypoints.
In general: I don't think the falling cost of writing lower level code makes abstractions automatically obsolete. You get for free a lot of community effort on deciding/mapping platform quirks, stuff that would cost tokens and engineering effort otherwise, or even worse, would be missed and be a long-running paper-cut in your app.
I think it makes it necessary to make abstractions lock-in free. Use these opinions and higher level components when they make sense and give value, use lower level super easily and cheaply otherwise.
That's why I'm excited about stuff like Expo UI, the new modules API, our @swmansion libraries that work for both RN and native, and all the other effort we did as a community to make mixing those approaches possible and pain free.
Moving from Graphite to gh stack, but not used to the new commands yet? I made gtstack, a small compatibility shim that maps familiar gt commands to gh stack and shows the native commands it runs—handy as a learning bridge.
github.com/hSATAC/gtstack
我能走到今天,全靠我自己的努力。深藍!給我加點!讓我看看你的極限!
















