墨穗app.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v1.0.165 · 墨穗笔记
笔记

Notebase墨穗
静水流深,落墨成穗。

0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →

笔记

0
加载中...

工具

0

此页用于记录用户反馈问题后的每一次改进

关于

笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

不想公开、只想临时给人看:点“分享”生成一条带密码和有效期的链接,到期自动失效,你也能随时撤销。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势

// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

从仓库地板到微软商店——一个波兰22岁独立开发者的技术旅程

2026-07-07编程开发

大概在去年的这个时候,我的破笔记本风扇在94°C的高温下尖叫,键盘烫得手腕都放不住。那个声音成了我每个夜晚的背景音。我就在这种环境下写代码,因为害怕一旦停下来,我就会像之前12个死掉的项目一样,悄无声息地消失。就像我自己差点在22岁时做的那样。

上周,那种恐惧得到了我完全没想到的回应。我在这台尖叫的笔记本上一个人写的Windows监控工具——PC Workman,竟然在微软商店上线了。不是随便扔个ZIP包或者“git clone一下”,是正儿八经的商店列表,跟我从小以为只有大公司才能做的软件待在一起。

然后,三天后,一个测试者告诉我这玩意儿根本没法用。

这两句话都是真的。这篇文章讲的就是这两件事之间的距离——因为只有这段距离,才是一个里程碑真正值得写下来的东西。

那个你永远看不见的数字跨过了界线

有种版本的我在22岁就放弃了。没有戏剧性的时刻,就像电源轨从12伏慢慢掉到11.9、11.8,每次读数都还在“规格范围内”,直到某一天这个数字就是不对了,而你根本不知道是什么时候发生的。

我到底是怎么发现那天来了、又怎么拒绝接受的,这背后的故事比较个人化。我在另一篇文章《找回自己的人》里详细讲过,就不在这里重复了。但那个隐喻很重要,因为它最终会体现在代码里:阈值永远抓不住缓慢的下降,你只会在数字已经错了的时候才发现。记住这一点,后面讲电压监控的时候会用到。

仓库

在荷兰待了九个月。四份工作,七个住处。每天步行15公里扫描条码,时薪3.5欧元。12小时轮班,然后晚上再花4-6小时在那台2014年的笔记本上写代码。

圣诞节前三天,那些对我笑了好几个月的人又笑了,说:“你没通过试用期。明天再见吧。还有,搬出公寓。”

12月22日。我还没来得及说完话,行李箱就已经摆在了门口。还有两条狗在另一个国家等我。剩下的钱大概只够撑一个月。

(那天晚上我站在走廊里用不是母语的语言大喊我不是恐怖分子,阻止一个男人把我赶到大街上。说来话长,改天再写。)

那天晚上我没有打开招聘网站。我打开了编辑器,开始重写第四版。三周后,1月20日,我发布了第一个.exe。

这是我这一年里最真实的一句话:做点东西。提交点代码。看着进度条走。感觉自己存在。 这可不是什么励志海报,这是生存。

我到底做了个什么

PC Workman告诉你电脑为什么慢——不是告诉你“你电脑慢”,这个你自己知道,而是告诉你为什么。它通过一个叫hck_GPT的助手跟你对话,这个助手完全跑在你本机上:90个意图,九层路由器,没有云,没有API密钥,没有任何东西离开你的电脑。

问“这是病毒吗?”它会检查是谁真正签了那个文件,而不是相信文件名。问“我应该升级什么?”它会读取你自己的负载历史,指出真正的瓶颈是什么。

我本来可以花一个下午搞个pip install openai就完事了。但我没这么做。一个能读你机器数据的监控工具,却要打电话给陌生人的服务器来解释这些数据,这本身就是个矛盾。所以hck_GPT运行在规则引擎和可选的本地模型上,你问的任何东西都不会离开你的房间。

但真正让我失眠的部分是内存。

地球上的每个监控工具在你关掉它的那一刻就会忘记你。HWiNFO、Afterburner,第二天再打开,它们会用跟所有机器一样的基准线来画你的78°C。我接受不了这个。

一个监控工具能给的最有用的数字不是温度本身,而是这个温度对你来说正不正常。所以每条读数都会被归类到五个工作负载桶中的一个,每个桶都有自己的学习基线,用Welford累加器不断更新。每个桶只存三个数字,从不重新计算:

def _welford_add(acc, x):
    """Fold one sample into a running accumulator (Welford, 1962)."""
    n = acc["n"] + 1
    delta = x - acc["mean"]
    mean = acc["mean"] + delta / n
    acc["n"] = n
    acc["mean"] = mean
    acc["M2"] = acc["M2"] + delta * (x - mean)

玩游戏时82°C:正常。闲着不动时82°C:出问题了。同样的数字,完全相反的结论——根据的是你自己的历史数据,而不是一张规格表。

电压监控用了这个项目里最古老的数学:中位数和MAD(中位数绝对偏差),加上1984年的Nelson规则,专门用来抓那种缓慢的下降——阈值永远抓不住的那种。

还记得前面说的电源轨吗?我本人就是这样在规格范围内慢慢下降了三年的,所有人都包括我自己都发誓没什么问题。我给自己造了一个从未有过的报警器。来自六十年代的统计学,用来照看电源。无聊、可预测,但这正是我信任它们的原因。统计学不会产生幻觉。人会。

有人用每小时19兹罗提的工资看着我的眼睛说:“再努力点,工资会涨的。”工资从来没涨过。但数学至少从来没骗过我。

微软说不行,然后微软说行

在商店上架前两周,我发了一篇文章叫“微软说不行”。我的第一个.msix包被拒绝了。不是因为代码,而是因为一个模糊的磁贴图标和一个指向错误文件的隐私政策链接。一年的电压异常数学和离线AI,最后卡在了一个模糊的PNG上。审阅者是对的,但这依然很伤人。

于是我修好了它。一个清晰干净的图标。一个真正的、可读的隐私政策,放在它该在的地方。一个打了13个补丁的新版本(我的测试者们在等待期间找到的bug)。重新提交。等待。

然后有一天早上:通过了。

一个说“修好这两件事再提交”的拒绝从来就不是真正的拒绝。那是商店在告诉我:你就差这么一点了。

我以为这就是终点了。我错了,而且我错的方式才是这篇文章真正想说的。

“通过”之后的72小时

商店的徽章能证明什么?证明你存在,证明你的文件没问题,证明审阅者打开过你的应用,它启动起来了。但它不能证明什么?不能证明这个东西在别人的机器上也能用。

庆祝完三天后,一个叫Adam的测试者给我发了个截图。游戏内覆盖层——那个专门用来显示温度的东西——显示的是:--,就两个破折号。在他的机器上,这个监控工具是瞎的。一个看不到温度的监控工具,就只是个名字而已。

我已经把它发布到商店了,它已经通过认证了,但对一个不是我的人来说,它就是废的。

那个周末我一直在做尸检,发现了两个失败点。我要坦诚地把它们写出来,因为这是这篇文章里最有价值的东西。

失败一:商店安装的只读陷阱

微软把我的应用安装到了一个应用本身无法写入的文件夹里。商店安装的路径在C:\Program Files\WindowsApps下,这是只读的。我的数据库、学习到的基线、用户偏好——每一次写入都静默地失败了,在每一个商店安装的机器上都是如此。那个本来应该记住你机器的应用,实际上什么都记不住。

失败二:权限的静默降级

即使你解决了路径问题,商店应用还运行在一个叫AppContainer的沙箱里,默认情况下它根本不能通过标准WMI或Ring 0驱动访问硬件传感器。在商店环境里,Get-Counter或OpenAdapter这类API会直接返回空值——不是报错,而是静默地返回空。这就是为什么Adam看到的温度是破折号:应用在运行,传感器在读取,但读取结果全是空的,而代码里没有任何地方处理这个情况。

我是怎么修的

这两个问题其实有同一个根源:我把桌面应用的假设带到了商店环境里。在Win32时代,你写个exe,它默认就能读写它自己的目录,默认就能用管理员权限调用WMI。但在UWP/商店模型里,这些特权全都被收回了。

修复方案分两步:

  1. 存储路径:改用Windows.Storage.ApplicationData.Current.LocalFolder,这是商店应用唯一保证可写的路径。所有用户数据、基线、偏好都迁过去。

  2. 传感器访问:对于商店应用,必须通过Windows.Devices.Sensors命名空间或者使用一个专门的驱动服务来获取硬件数据。我写了一个中间层,检查运行环境——如果是商店模式,就走UWP的传感器API;如果是传统桌面模式,就走WMI。两种路径最终输出同样的数据结构,上层代码完全不用改。

// 伪代码:运行环境检测与适配
if (IsStoreApp())
{
    // 使用 UWP 传感器 API
    var temp = await TemperatureSensor.GetDefault().GetReadingAsync();
    return temp.Celsius;
}
else
{
    // 使用传统 WMI 查询
    var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_TemperatureProbe");
    // ...
}

所以,教训是什么?

商店徽章不代表你的软件能工作。认证不代表你的软件能工作。你的开发机上的测试不代表你的软件能工作。唯一能证明你的软件能工作的,是有人在他自己的机器上运行它,然后告诉你“这东西挺好使”。

我花了11个月做这个项目,花了3周通过认证,花了3天发现它根本不能用。如果Adam没给我发那个截图,我可能现在还蒙在鼓里,以为一切顺利。

所以如果你也在做类似的事情,我的建议是:尽快让真实用户上手测试。不要等到商店上架了才找人。我在发布前有测试者,但测试得不够。我没有在商店沙箱环境里测试过。我没有在别人那台配置完全不同的机器上测试过。这些错误本来都可以避免,但直到那个破折号的截图出现,我才真正意识到问题在哪。

最后说两句

我今年22岁,在波兰,白天在零售店打工,晚上在这台快报废的笔记本上写代码。PC Workman在微软商店上线了,这对我意义重大。但它真正教会我的不是“坚持就能成功”这种鸡汤——而是“你自以为做好了,其实远远不够”这种更残酷但更真实的道理。

代码不会骗你。数学不会骗你。但人会。包括你自己。

所以,测试。测试。再测试。 在别人的机器上测试。在沙箱里测试。在只读目录下测试。在你不信任它的每一种情况下测试。因为等到用户告诉你它坏了的时候,你已经晚了。


PC Workman现在在微软商店上架中。如果你下载了它,发现它在你机器上坏了——请告诉我。我会修。

相似推荐
uBlock Origin 开发版被 Chrome 商店拒绝:一场关于扩展单一用途政策的争议逆向工程实战:我如何绕过亚马逊Kindle网页端的DRM加密Heroku的丑陋秘密:云之王如何背离Rails并欺骗客户Firefox 成为最后一个支持 uBlock Origin 的主流浏览器:广告拦截的终局之战GitHub Codespaces 深度解读:云端开发环境如何重塑编码工作流认知负荷才是关键:软件设计的根本度量
编写使用方法
Markdown 格式 · Ctrl+Enter 确定
0 字新建笔记
欢迎回来
登录你的墨穗笔记账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属墨穗笔记
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

隐私提醒

取消
编辑工具
受控分享
为这篇笔记生成限时 / 带密码的临时链接
关闭