海豹尼尔现在有一个游戏要摧毁电池角。
返回首页
最新
我感到困惑的是,为什么在启动我的Mac时,Wi-Fi符号会亮起,尽管我还没有输入密码。<p>我进行了测试,在远离我的Wi-Fi网络的地方,它并不会亮起。<p>苹果的支持页面上说:“在带有Apple Silicon的Mac上,如果开启了远程登录并且有网络连接,可以在重启后通过SSH解锁FileVault。”以及“使用SSH解锁FileVault需要网络连接,并且在某些配置中使用FileVaultPolicy与平台单点登录。”[1][2]<p>这意味着Wi-Fi密码将存储在FileVault加密卷之外。(在哪里?)<p>这很好,但即使“远程登录”对我来说是关闭的(也没有SSO/MDM),它仍然连接到Wi-Fi。我从未选择过将Wi-Fi密码默默地从FileVault保护中移除。<p>当然,他们可能会对这些信息进行“安全隔离”或其他处理,但这并不是同一回事。这类似于我在iOS 17中遇到的iCloud密码同步自动启用问题[3]。安全模型在没有用户同意的情况下发生了变化。存储的内容和位置并不明确。<p>他们只是决定某些内容在用户过去做出选择后可以自动更改。<p>我认为我并没有过度反应。这看似是一件小事,但它显示了他们如何(以及确实会)做出这样的改变。<p><pre><code> [1] https://support.apple.com/en-ca/guide/security/sec8447f5049/web
[2] https://support.apple.com/en-ca/guide/deployment/dep82064ec40/web
[3] https://news.ycombinator.com/item?id=38648725</code></pre>
一段时间以来,我一直在努力深入了解移动生态系统。由于谷歌(Android)和苹果(iOS)在移动生态系统中占据的双头垄断地位,开发者在构建和维护优秀的移动应用时面临很大困难,尤其是当你是一个独立开发者,而用户界面/用户体验并不是你的强项时。
因此,我与朋友 @xuu 一起进行了一些实验,构建了一个小型的 Go 应用框架,结合了 HTMX、DaisyUI/TailwindCSS 和 Service Workers,并使用了一些非常有效的小技巧,这让我成功开发了三款相当精致的移动应用(即可以安装到主屏幕的渐进式网络应用,PWAs)。
如果有人对使用网页技术构建下一个移动应用感兴趣,并愿意尝试 Swag,我非常欢迎反馈和建议!
KiCad,一个PCB电子设计自动化(EDA)套件,现在可以在浏览器中使用,您可以通过链接尝试,里面有一个演示项目,或者您可以上传自己的项目。推荐使用Firefox,Chrome也不错,Safari则“可以使用”。
我们是Emergence Engineering,一家来自匈牙利的开发公司,主要专注于富文本编辑器和冲突自由数据类型(CRDT)。PCBJam最初是我(Viktor,首席技术官,前电气工程师)的个人爱好项目,但随着时间的推移,我投入了越来越多的精力,产品的构思逐渐成型。在过去几个月里,我们开始更加专注于这个项目,这也是我们第一次接近最小可行产品(MVP)的成果。
这个项目充满乐趣,带来了大量的学习和改进:
- 我认为一定有办法在网页上模拟PCB画布的OpenGL代码。确实有很多方法,但都存在许多bug。结果发现,如果添加合适的中间调试步骤,编写与KiCad的图形抽象层兼容的WebGL代码更快。我(与Claude一起)实现了这些功能,并在每一步与原生版本进行了比较,然后应用程序第一次加载时就正常工作了。在此之前,我花了几周时间追踪奇怪的模拟bug。
- 有一个旧的wxWidgets网络移植作为起点,这对我们帮助很大,但将其提升到KiCad所需的水平是一个漫长(且仍在进行中)的任务。感谢ahilss!
- 在网页上使用Pthreads:通过Emscripten,可以移植多线程应用程序(用于设计规则检查(DRC)、软件3D渲染器)。许多Emscripten特性(Asyncify、Pthreads、本地异常)之间存在冲突,但这是可行的。
- 使用本地异常的Asyncify:Asyncify(用于使WASM代码暂停然后调用JS,模拟阻塞的C++调用,通过直接重写WASM)与本地异常不兼容,即使在最新的Binaryen版本中,它也无法在catch块内暂停。如果您编写一个新的Binaryen传递,它就可以,这样可以使包的体积缩小30-40%,应用程序加载时间从10秒缩短到1秒。
- 优化包大小是一项有趣的挑战。我们刚刚将Open CASCADE移动到一个单独的懒加载WASM模块,从180MB减少到130MB(24MB brotli),仍然使用-O1。-O2/-Oz等将比看起来更复杂。
每天还有大量类似的问题。
几个月前,我的pcbnew几乎无法加载,运行缓慢,稍有不慎就会崩溃,而现在整个应用程序已经可以正常工作。虽然仍然存在一些bug,但现在感觉已经非常接近原生应用。
我们积累了很多知识和代码,想要通过博客文章分享,主线合并我们的更改到Binaryen/KiCad/wxWidgets,但我想先专注于发布。我们的wxWidgets移植与核心非常接近,KiCad大约有150个核心文件被修改(主要是构建脚本,也有一些代码更改)。目标是尽可能保持与主线的一致性,并最终合并。
我们肯定会提供一个免费版本,以及大约每月30美元的付费版本,适用于更大或封闭的项目,未来还会有可选的付费AI集成、自托管、企业功能以及原生和移动版本。
我们的目标是在KiCad的基础上构建一个产品(协作、AI集成、共享、集成),有点像当年红帽对Linux的做法。我们正在全力以赴使其功能完善,预计在一个月左右推出第一个版本。
当然,我们站在那些创造了KiCad和wxWidgets的人的肩膀上,希望尽可能回馈和贡献。如果您有好的建议,请告诉我。我发布过几个中等成功的开源项目,但从未作为贡献者参与过。所有前端代码都是GPL(必须如此),如果您愿意,可以运行这个项目。
您可以在以下链接找到源代码: [https://github.com/emergence-engineering/pcbjam](https://github.com/emergence-engineering/pcbjam)。
我们公司的官网是:[https://emergence-engineering.com/](https://emergence-engineering.com/)。
我们的糟糕着陆页是:[https://www.pcbjam.com/](https://www.pcbjam.com/)。
FerroTerm 是一个终端仿真器(xterm/vt100)/库,使用 Rust 编写并编译为 WebAssembly。<p>它的速度大约是 xterm.js 的四倍,后者被 VSCode 等应用程序使用,并且提供了广泛的规范覆盖。<p><a href="https://datanoisetv.github.io/ferroterm/" rel="nofollow">https://datanoisetv.github.io/ferroterm/</a><p>希望能得到一些反馈,想听听大家希望用它构建什么。