3作者: norbert515大约 1 个月前原帖
在过去的几个月里,我一直在开发一个受到Flutter启发的TUI框架,使用Dart编写。<p>该API的设计模仿了Flutter,包括StatefulComponent、setState()、Row、Column、Expanded和ListView等组件。<p>最近关于TUI性能的讨论增多,我认为Dart实际上是编写TUI的一个很棒的语言。它可以编译成快速的本地代码,支持跨平台,并且具有良好的开发者体验。开发时使用JIT编译(支持热重载),生产环境则使用AOT编译。<p>非常酷的是状态热重载。如果你对文件进行了修改并保存,Nocterm会实时更新TUI,而无需重启。<p>在底层实现方面:<p>- 差异渲染:虚拟终端缓冲区,仅重绘已更改的单元格<br> - 声明式组件模型(与Flutter相同):组件 → 元素 → 渲染对象管道<br> - 45个以上的组件:布局、滚动、文本输入、Markdown、动画、鼠标支持<br> - 内置测试框架:推动组件、发送按键、断言终端状态<br> - 主题支持:6个内置主题,自动检测终端的深色/浅色模式<p>示例:<p>```dart void main() async { await runApp(Counter()); } class Counter extends StatefulComponent { int _count = 0; Component build(BuildContext context) { return Focusable( onKeyEvent: (event) { if (event.logicalKey == LogicalKey.space) { setState(() => _count++); return true; } return false; }, child: Center(child: Text('Count: $_count')), ); } } ```<p>我尝试过几个现有的TUI框架,但缺少我所喜爱的Flutter开发体验,因此我自己构建了一个(无论好坏……)。<p>我一直在使用Nocterm来构建vide_cli(<a href="https://github.com/Norbert515/vide_cli" rel="nofollow">https://github.com/Norbert515/vide_cli</a>),这是一个终端中的编码助手。<p>还有一些很酷的功能即将推出,比如在替代屏幕模式下的虚拟文本选择。由于TUI应用程序接管了终端,正常的文本选择会失效。这个功能在框架层面重新实现,使用户可以自然地选择和复制文本。<p>代码库:<a href="https://github.com/Norbert515/nocterm" rel="nofollow">https://github.com/Norbert515/nocterm</a><p>欢迎对架构、热重载实现或其他任何问题进行提问。
2作者: tavro大约 1 个月前原帖
我在计划一篇博客文章时遇到了这个“谁掌控互联网”的图表(https://upload.wikimedia.org/wikipedia/commons/e/ed/Who-Runs-the-Internet-graphic.png),这让我开始思考互联网服务提供商的角色。 显然,这是一个高度简化的问题。互联网治理是一个复杂的话题,但从你的经验和视角来看,互联网服务提供商是“邪恶”的存在吗?谁真正掌握着互联网的权力?
6作者: cmuir大约 1 个月前原帖
Daydream团队即将启动新的Daydream AI视频项目,这是一个为期两周的实操项目,面向从事实时AI视频开发的开发者和创意技术专家。<p>该项目将于2月9日至20日举行。参与者将获得一对一的支持和云基础设施的访问权限,并有机会与其他在这一领域进行开发的人士一起合作。在这两周内,我们将发放超过5000美元的奖品。参与是免费的,申请截止日期为2月6日。<p>申请链接:<a href="https://daydream.live/interactive-ai-video-program?utm_source=hackernews&utm_medium=social&utm_campaign=aivp_cohort2" rel="nofollow">https://daydream.live/interactive-ai-video-program?utm_source...</a><p>欢迎随时询问有关项目或技术的问题。