2作者: gethly10 天前原帖
我今天更新了Firefox,立刻发现打开两个YouTube标签页时CPU使用率达到了30%。这真让人烦。<p>还有其他人遇到同样的问题吗?
1作者: sam25610 天前原帖
我并不讨厌 Azure DevOps。相反,在过去五年多的时间里,它对我们组织来说是一个出色的工具。它的安全性相对容易保障,我们有很多优秀的管道来检查我们的代码、进行部署、与第三方服务集成等。我们对组织的运作有很好的可视化了解。 但是……我不禁觉得它跟不上 GitHub 的步伐,现在面临的问题是:如果我们想保持相关性,是否基本上没有选择,只能痛苦地迁移到 GitHub Enterprise? 特别是我们感受到的痛点: 1. Copilot 的 PR 审查在哪里?在 GitHub 上,我只需点击一个按钮,就能获得 Copilot 对任何 PR 的即时初步审查。当然,这并不完美,但基本上是免费的。 2. MCP?好吧,DevOps 终于有了一个 MCP 服务器,而且实际上还不错。但它的推出花了很长时间。这会是一个重复的模式吗?我们必须等上一年才能获得 GitHub 用户立即可以使用的工具? 3. Claude Code。在 GitHub 上,我可以从任何地方给 Claude Code 分配任务——浏览器、桌面、手机——它会在一个小的开发容器中运行,并将 PR 返回给我。同样,这并不总是完美的,但初级开发者的 PR 也不一定完美。而且 Claude Code 不在乎我是否在周五晚上给它分配任务。 所以,标题中的问题是:ADO 是否实际上已经到了生命周期结束的阶段? 我希望答案是否定的,我们可以坚持到情况好转。不过,我开始担心这只是沉没成本谬论。无论如何,有什么希望可以提供吗?
2作者: Frameser10 天前原帖
我想分享一下PNANA,这是一个我用C++和FTXUI构建的轻量级TUI编辑器,最初是为了个人使用,现在已开源。它是一个简约、快速的基于终端的编辑器,专注于简单的编码和编辑工作流程——没有臃肿的功能,只有针对终端使用场景的核心功能。 <p>主要实用特性</p> - 轻量级的C++核心,结合FTXUI实现流畅的TUI渲染,快速启动和低资源占用 - 基本但可靠的编辑功能(语法高亮、行号显示、基本导航) - 简单的构建过程,依赖项极少,易于在Linux/macOS终端上编译和运行 - 早期的LSP集成支持基本的代码补全(仍在完善中,但对常见语言已可用) <p>这确实是一个早期阶段的项目——我构建它是为了满足自己对一个简约、自建的TUI编辑器的需求,同时学习C++/FTXUI。它还有一些粗糙之处(例如,一些LSP问题,定制化有限),并不打算取代成熟的编辑器如Vim/Nano——只是一个小型的开源项目,适合喜欢简约终端工具的人或想学习用C++进行TUI开发的人。</p> <p>任何反馈、bug报告或小建议都非常欢迎。我正在慢慢迭代这个项目,期待从HN社区的见解中学习。</p> 感谢您的关注!
3作者: rafa_rrayes10 天前原帖
大家好!<p>我创建了SHDL(简单硬件描述语言),作为一种将硬件描述简化到其绝对基础的实验。<p>在SHDL中,没有算术运算符,没有隐式位宽,也没有高级构造。你需要从逻辑门和导线显式构建一切,然后以层次化的方式组合更大的组件。这个目标不是合成或性能,而是理解:当抽象被去除时,数字系统实际上是什么样子的。<p>SHDL配有PySHDL,这是一个Python接口,允许你加载电路、输入信号、逐步模拟并观察输出。在底层,SHDL将电路编译为C语言以实现快速执行,但语言本身保持故意简洁和透明。<p>这并不是为了取代Verilog或VHDL。它的目标是:- 从基本原理学习数字逻辑 - 实验HDL和语言设计 - 教授或可视化复杂硬件如何从简单门电路中产生。<p>我特别希望能收到关于以下方面的反馈:- 语言设计选择 - 哪些感觉不必要的限制与教育价值 - 这种“反抽象”HDL对你是否有用。<p>代码库:<a href="https:&#x2F;&#x2F;github.com&#x2F;rafa-rrayes&#x2F;SHDL" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rafa-rrayes&#x2F;SHDL</a><p>Python包:PySHDL在PyPI上<p>为了让这个更具体,以下是几个用SHDL编写的小示例:<p>1. 全加器<p>组件 FullAdder(A, B, Cin) -&gt; (Sum, Cout) {<p><pre><code> x1: XOR; a1: AND; x2: XOR; a2: AND; o1: OR; 连接 { A -&gt; x1.A; B -&gt; x1.B; A -&gt; a1.A; B -&gt; a1.B; x1.O -&gt; x2.A; Cin -&gt; x2.B; x1.O -&gt; a2.A; Cin -&gt; a2.B; a1.O -&gt; o1.A; a2.O -&gt; o1.B; x2.O -&gt; Sum; o1.O -&gt; Cout; }</code></pre> }<p>2. 16位寄存器<p># clk必须在两个周期内保持高电平以存储一个值<p>组件 Register16(In[16], clk) -&gt; (Out[16]) {<p><pre><code> &gt;i[16]{ a1{i}: AND; a2{i}: AND; not1{i}: NOT; nor1{i}: NOR; nor2{i}: NOR; } 连接 { &gt;i[16]{ # 在clk上捕获 In[{i}] -&gt; a1{i}.A; In[{i}] -&gt; not1{i}.A; not1{i}.O -&gt; a2{i}.A; clk -&gt; a1{i}.B; clk -&gt; a2{i}.B; a1{i}.O -&gt; nor1{i}.A; a2{i}.O -&gt; nor2{i}.A; nor1{i}.O -&gt; nor2{i}.B; nor2{i}.O -&gt; nor1{i}.B; nor2{i}.O -&gt; Out[{i}]; } }</code></pre> }<p>3. 16位进位加法器<p>使用 fullAdder::{FullAdder};<p>组件 Adder16(A[16], B[16], Cin) -&gt; (Sum[16], Cout) {<p><pre><code> &gt;i[16]{ fa{i}: FullAdder; } 连接 { A[1] -&gt; fa1.A; B[1] -&gt; fa1.B; Cin -&gt; fa1.Cin; fa1.Sum -&gt; Sum[1]; &gt;i[2,16]{ A[{i}] -&gt; fa{i}.A; B[{i}] -&gt; fa{i}.B; fa{i-1}.Cout -&gt; fa{i}.Cin; fa{i}.Sum -&gt; Sum[{i}]; } fa16.Cout -&gt; Cout; } }</code></pre>