2025-10-02 21:03:43
“用树莓派打造家庭 2TB 网络硬盘”
“树莓派 + WD 硬盘:轻松为孩子的 Mac 提供共享存储”
“家庭文件共享不再难:自制树莓派网络硬盘”
“让树莓派变身 2TB 家庭共享硬盘”
“为孩子的 Mac 节省空间:树莓派网络硬盘实战”
前两年,我给两个孩子各买了一台 MacBook Pro。弟弟的那台当时大概六百多买的,SSD 只有 256GB,所以经常硬盘爆满,只能不断删除下载的文件、dmg 安装包之类的。用了一段时间后,MBP 的 ~/Caches 目录也会变得很大,虽然可以临时清理,但这只是治标不治本。
我就跟孩子说,你可以把一些文件放到云盘上,比如 OneDrive、Google Drive,或者我给你接个 USB 硬盘挂到电脑上。OneDrive 有“本地不占空间、数据存到云端”的模式,很省地方,但免费空间只有 5GB。Google Drive 免费空间是 15GB,可用于邮件、照片和 Drive 共享。
孩子不太喜欢用 USB 硬盘,一方面得接电源,另一方面得用 Type-C 转 USB 接口,很麻烦,也不想总插着。
我想到家里有树莓派,可以接一个移动硬盘,通过文件共享,把家里几台电脑都挂接成网络硬盘(Map Network Drive)。于是,我找了几个抽屉,找到一个 2TB 的西部数据(WD)硬盘,3.5 寸的,需要外接硬盘盒,正好前几个月折腾数据时买了一个。
之前挂在HPZ800服务器的D盘。
为了确保硬盘没坏道,我用 CrystalDiskInfo 检查了一下,还让 ChatGPT 帮我看了健康状态——2.3 年通电时间,没有坏道,一切正常。
第一步,把硬盘接到树莓派上,直接用 USB,但需要额外电源。我找了一个插座,勉强可以在鞋柜里塞下两个插头:一个 3.5 寸硬盘盒和树莓派 4B。
然后 SSH 登录树莓派,发现硬盘是 NTFS 格式,需要挂载一下:
mkdir /mnt/usb
mount -t ntfs-3g /dev/sdb1 /mnt/usb
其中 /mnt/usb 是挂载目标目录,需要先创建。
如果想开机自动挂载,只需在 /etc/fstab 添加一行:
UUID=<ID> /mnt/usb ntfs-3g defaults,uid=1000,gid=1000,umask=0000,nofail,x-systemd.device-timeout=10 0 0
<ID> 是硬盘的 UUID,可以通过 lsblk -f 查到。
文件共享最简单的方法是安装 Samba:
sudo apt install -y samba
安装完成后,编辑 /etc/samba/smb.conf 添加以下内容:
[usb2share]
path = /mnt/usb
browseable = yes
writable = yes
guest ok = no
create mask = 0777
directory mask = 0777
valid users = pi
valid users 可以写多个用户,用空格分隔,也可以用 @ 表示群组。用户必须是 Linux 本身存在的账号。
设置 SMB 密码:
sudo smbpasswd -a pi
重启服务:
sudo systemctl restart smbd
在 Windows 上,可以在“此电脑”里右键“添加网络驱动器”,输入地址:
\\192.168.IP地址\usb2share
输入用户名和密码,勾选“记住密码”即可添加网络硬盘,用起来跟本地硬盘差不多。
在 Mac 上,可以在 Finder 按 Command + K 添加服务器,同样输入 树莓派的IP地址、用户名和密码即可。
我给两个孩子和老婆各建了一个目录,让他们把数据放到自己的目录下,2TB 够用一段时间了。
有了这个网络硬盘,分享数据也方便多了(电影、照片等),再也不用通过 WeChat、Whatsapp 或 Google Drive 分享——这些方式要么不方便查找历史文件,要么照片会被压缩。
真好,一下子又让树莓派多了一个用途,不再是积灰的机器了。
英文:Found a 2TB Old Hard Drive – Still Young and Healthy
2025-10-01 04:00:35
从这个月开始,娃正式入读了剑桥最“卷”的私校 —— Perse(学术实力特别强)。学校在市中心,上下班高峰期堵得厉害,原本二十分钟的路程,经常能堵成一个多小时。幸好学校有校车,不过是要收费的,一学期大约300英镑,折合下来单程2.5英镑,其实也算合理。相比之下,公校的校车是免费的,由政府出资。
Perse的校车有两条路线,其中一条会经过Madingley Park & Ride,早上7点35分发车。所以我每天早上7点就得起床,先叫娃,再收拾一下,大概7点20准时出门。有一次是媳妇送的,结果只晚了一分钟,最后只能自己开车把娃送到学校。还好她上班方向顺路,不算太麻烦。
下午放学接娃的时间是4点50分左右,有时候会晚几分钟。不过下午不像早上那样紧张,最大的压力还是每天早上怕赶不上校车。
记得第一天接娃的时候,迟迟不见他下车。后来司机示意我上车找,才发现娃还不知道该什么时候下车。幸亏司机眼神好,看出我在等人,不然下一站就是Cambourne了,要是去那边接,可得多花半小时车程。
每天早上大巴一到,就能看到一群娃从车里下来。天气冷了,他们基本都会待在车里等,不会提前下车。
一想到接下来的五年,几乎每天都要这样早晚接送,就觉得挺辛苦的。每天早上被强制开机还是挺难受的。
2025-09-29 19:07:26
每年我都会收到微软的来信,因为我持有几股微软股票(RSU),所以也是股东。信中会邀请我参加微软的年度股东大会,并列出需要讨论的一些决议,同时包含股东提出的建议,例如“支持”或“反对”。上一次收到的信中,其中有一项议题是关于是否将比特币纳入公司资产负债表。可惜的是,微软股东投票决定不采纳这一提案。
在2024年12月10日举行的微软年度股东大会上,股东们以压倒性多数投票反对将比特币纳入公司资产负债表的提案。该提案由保守派智库“公共政策研究中心”(National Center for Public Policy Research)提出,建议微软将1%至5%的现金储备投资于比特币,以对抗通货膨胀并实现资产多元化。
尽管比特币价格在投票前一周突破了10万美元大关,微软董事会仍坚持反对该提案,理由是比特币的高波动性不符合公司对流动性和稳定性的需求。微软首席财务官艾米·胡德(Amy Hood)在会议中表示,公司已经在持续评估包括加密货币在内的多种资产类别,但比特币目前不适合用于公司财务管理。
提案的支持者中,包括MicroStrategy公司董事长迈克尔·塞勒(Michael Saylor),他在会议前发布了一段视频,强调比特币作为“数字黄金”的潜力,并建议微软将现金流、股息回购和债务等转化为比特币,以增加公司市值。
然而,根据Decrypt的报道,最终只有约2823万股微软股份支持该提案,占投票总数的不到1%,而超过51亿股股份投了反对票。微软在提交给美国证券交易委员会的文件中表示,股东投票结果将很快公布。
根据GeekWire消息,尽管微软拒绝了将比特币纳入资产负债表的提案,但公司并未完全排除未来投资加密货币的可能性。微软董事会在声明中提到,虽然当前不适合将比特币纳入公司资产,但将继续关注加密货币的发展,以便在未来做出明智的决策。
这一投票结果反映了企业在考虑是否将比特币纳入资产负债表时,仍需权衡其高波动性与潜在收益之间的风险。尽管一些企业已开始将比特币作为资产储备的一部分,但微软的决定表明,主流科技公司在这一问题上仍持谨慎态度。
微软股东大会的这一决定可能对其他大型企业产生示范作用,尤其是在加密货币市场仍面临监管不确定性的背景下。未来,随着市场和监管环境的变化,更多企业可能会重新评估是否将比特币纳入其资产负债表。
英文:Microsoft Shareholders Reject Proposal to Add Bitcoin to Balance Sheet
本文一共 900 个汉字, 你数一下对不对.2025-09-29 06:18:26
《GE Vernova:AI淘金热里的“卖铲子”,从没落到翻倍大赢家》
《从帝国余晖到AI电力新贵:GE Vernova股价暴涨背后的逻辑》
《AI电力危机来临,GE Vernova如何逆袭成最大赢家?》
《GE 拆分后的惊喜:Vernova搭上AI能源超级周期》
《卖铲子的人最赚钱:GE Vernova与AI时代的电力生意》
过去很长一段时间,美国通用电气(GE)被视为一个“没落的工业帝国”——从最辉煌的道琼斯成份股,到因为业务庞杂、管理僵化而被迫瘦身、拆分。
但是,谁能想到呢?当年大家对 GE 的衰落唏嘘不已,如今它拆分出来的三家公司(GE Aerospace、GE Healthcare、GE Vernova)却纷纷股价大涨,尤其是 GE Vernova ——在过去一两年股价暴涨,成为资本市场追逐的明星。
我去年装修房子时把手里的 GE 股票都清仓了,现在一看真是拍大腿:要是继续持有,今天至少能翻倍。
表面看,它只是一个传统的能源与电力设备公司,和 AI、芯片这些热门科技股似乎八竿子打不着。
但其实,AI 的快速发展,正在引爆全球对电力的需求。
AI 模型训练和数据中心:每一家大模型公司(OpenAI、Google、Meta 等)都在疯狂扩建数据中心。一个数据中心耗电量可以等于一个中等城市。
电力基础设施短缺:美国本就存在电网老化问题,如今突然叠加 AI 需求,出现所谓的“电力危机”。
新能源转型加速:各国承诺碳中和,风电、太阳能需求激增,而 GE Vernova 正是新能源装备、电网解决方案的重要供应商。
一句话:没有足够的电力,就没有 AI 的未来。而 GE Vernova,恰恰卡在了这个时代风口。
当年 GE 拆分时,很多人觉得这是“卖家求生”,没什么前景。
但事实证明,这种“聚焦战略”让每个子公司都能专注在自己最有优势的赛道:
从资本市场的表现来看,拆分不仅没有让价值缩水,反而释放了更大的潜力。
我的感慨:
当然,股市永远没有“早知道”,但 GE Vernova 的故事再次说明:趋势真的比个股更重要。
当一个时代需要电力,电力公司自然就会被重新估值。而 GE,这个一度被认为“老掉牙”的名字,如今又一次走在了浪潮前沿。
GE 在这波 AI 浪潮里,也算是个“卖铲子的”。别人忙着挖金矿(训练大模型、建 AI 应用),而 GE Vernova 提供电力和能源基础设施,就像淘金热里卖铲子的人,最后往往稳赚不赔。
2025-09-27 03:22:38
微软研究院十年前的 ResNet图片识别模型把Chessly识别成波斯猫。[捂脸]
Chessly是英短,虽然毛并短,估计不是纯的英短/British Short Hairs(杂交来的)。
在Chessly的每年疫苗本上写的是英短,但是她的毛很长,更像是英长/British Long Hairs。
ResNet(残差网络)由微软研究院在 2015 年提出。它通过残差结构解决了深层神经网络中的退化问题。
ResNet-50 是其中一个常用版本,总共有 50 层。
残差模块的计算方式是:
这种跳跃连接(shortcut connection)可以避免梯度消失,让更深的网络更容易训练。
输入图像大小通常为 224×224。
主要阶段:
英文:Chessly (British Short Hairs) Classified as Persian Cat by ResNet-50
本文一共 353 个汉字, 你数一下对不对.2025-09-22 18:23:14
Python 基础排序算法:基数排序详解与示例
Python Radix Sort 教程:整数、负数和浮点数排序
Python 数字排序指南:从整数到浮点的基数排序实现
高效排序算法讲解:Python 中的基数排序应用
Python 排序算法全解析:Radix Sort 的用法与实例
基数排序是一种非比较型排序算法,它通过按位对数字进行排序来完成排序。与直接比较整个数字(如快速排序或归并排序)不同,基数排序将元素根据其数字或字符分配到“桶”中,然后逐位处理。
对于整数,基数排序通常从最低有效位(LSD)到最高有效位(MSD)进行排序。这样可以保证稳定性,在处理完所有位后得到有序数组。
—
示例:对数组 [170, 45, 75, 90, 802, 24, 2, 66] 进行排序:
此时数组已经排序完成。
—
def counting_sort(arr, exp):
n = len(arr)
output = [0] * n
count = [0] * 10
for num in arr:
index = (num // exp) % 10
count[index] += 1
for i in range(1, 10):
count[i] += count[i - 1]
for i in range(n - 1, -1, -1):
index = (arr[i] // exp) % 10
output[count[index] - 1] = arr[i]
count[index] -= 1
for i in range(n):
arr[i] = output[i]
def radix_sort(arr):
if not arr:
return arr
max_num = max(arr)
exp = 1
while max_num // exp > 0:
counting_sort(arr, exp)
exp *= 10
# 示例
arr = [170, 45, 75, 90, 802, 24, 2, 66]
radix_sort(arr)
print("排序后的数组:", arr)
—
排序后的数组: [2, 24, 45, 66, 75, 90, 170, 802]
—
def radix_sort_positive(arr):
if not arr:
return arr
max_num = max(arr)
exp = 1
while max_num // exp > 0:
counting_sort(arr, exp)
exp *= 10
def radix_sort(arr):
negatives = [-x for x in arr if x = 0]
radix_sort_positive(negatives)
radix_sort_positive(non_negatives)
negatives = [-x for x in reversed(negatives)]
return negatives + non_negatives
# 示例
arr = [170, -45, 75, -90, 802, 24, -2, 66]
sorted_arr = radix_sort(arr)
print("排序后的数组:", sorted_arr)
—
浮点数也可以通过将它们转换为整数来使用基数排序。常用方法:
以下示例使用**缩放法**对正浮点数进行排序:
def radix_sort_floats(arr, precision=2):
# 将浮点数缩放为整数
factor = 10 ** precision
int_arr = [int(x * factor) for x in arr]
radix_sort(int_arr)
# 转回浮点数
return [x / factor for x in int_arr]
# 示例
arr = [3.14, 2.71, 1.41, 0.99, 2.0]
sorted_arr = radix_sort_floats(arr)
print("排序后的浮点数:", sorted_arr)
—
排序后的浮点数: [0.99, 1.41, 2.0, 2.71, 3.14]
—
—
—
基数排序是一种快速的按位排序算法,可以处理整数、负数和固定精度浮点数。在适用场景下,它能提供线性时间性能。通过对浮点数进行适当转换,基数排序的适用范围可以扩展到整数之外。
英文: A Complete Guide to Radix Sort in Python with Examples
本文一共 796 个汉字, 你数一下对不对.