返回首页
24小时热榜
我在多个项目中使用Claude Code,这些项目有不同的约定和一些共享的代码库,这正如现实世界中的情况一样。手动管理配置文件(.claude/rules/、mcps.json、settings.json)变得繁琐,因此我为此构建了一个本地网页用户界面。
这个项目最初是叫claude-config,但随着我加入其他项目(如Gemini、AG、Codex等),它已经迁移到coder-config。
主要功能:
- 规则、权限和MCP服务器的可视化编辑器
- 项目注册表,用于在代码库之间切换
- “工作流”功能,将相关的代码库(前端 + API + 共享库)分组,以共享上下文
- 在包含的文件夹中自动加载工作流
- 还支持Gemini CLI和Codex CLI
安装:
```
npm install -g coder-config
coder-config ui # 在 http://localhost:3333 上启动 UI
coder-config ui install # 可选,在MacOS上自动启动
```
它还可以作为PWA安装,并驻留在你的任务栏中。
开源,本地运行,无需账户。
欢迎反馈和贡献!
抱歉,目前还没有机会在其他操作系统(Linux/Windows)上进行测试。
大家好!<p>我创建了SHDL(简单硬件描述语言),作为一种将硬件描述简化到其绝对基础的实验。<p>在SHDL中,没有算术运算符,没有隐式位宽,也没有高级构造。你需要从逻辑门和导线显式构建一切,然后以层次化的方式组合更大的组件。这个目标不是合成或性能,而是理解:当抽象被去除时,数字系统实际上是什么样子的。<p>SHDL配有PySHDL,这是一个Python接口,允许你加载电路、输入信号、逐步模拟并观察输出。在底层,SHDL将电路编译为C语言以实现快速执行,但语言本身保持故意简洁和透明。<p>这并不是为了取代Verilog或VHDL。它的目标是:- 从基本原理学习数字逻辑 - 实验HDL和语言设计 - 教授或可视化复杂硬件如何从简单门电路中产生。<p>我特别希望能收到关于以下方面的反馈:- 语言设计选择 - 哪些感觉不必要的限制与教育价值 - 这种“反抽象”HDL对你是否有用。<p>代码库:<a href="https://github.com/rafa-rrayes/SHDL" rel="nofollow">https://github.com/rafa-rrayes/SHDL</a><p>Python包:PySHDL在PyPI上<p>为了让这个更具体,以下是几个用SHDL编写的小示例:<p>1. 全加器<p>组件 FullAdder(A, B, Cin) -> (Sum, Cout) {<p><pre><code> x1: XOR; a1: AND;
x2: XOR; a2: AND;
o1: OR;
连接 {
A -> x1.A; B -> x1.B;
A -> a1.A; B -> a1.B;
x1.O -> x2.A; Cin -> x2.B;
x1.O -> a2.A; Cin -> a2.B;
a1.O -> o1.A; a2.O -> o1.B;
x2.O -> Sum; o1.O -> Cout;
}</code></pre>
}<p>2. 16位寄存器<p># clk必须在两个周期内保持高电平以存储一个值<p>组件 Register16(In[16], clk) -> (Out[16]) {<p><pre><code> >i[16]{
a1{i}: AND;
a2{i}: AND;
not1{i}: NOT;
nor1{i}: NOR;
nor2{i}: NOR;
}
连接 {
>i[16]{
# 在clk上捕获
In[{i}] -> a1{i}.A;
In[{i}] -> not1{i}.A;
not1{i}.O -> a2{i}.A;
clk -> a1{i}.B;
clk -> a2{i}.B;
a1{i}.O -> nor1{i}.A;
a2{i}.O -> nor2{i}.A;
nor1{i}.O -> nor2{i}.B;
nor2{i}.O -> nor1{i}.B;
nor2{i}.O -> Out[{i}];
}
}</code></pre>
}<p>3. 16位进位加法器<p>使用 fullAdder::{FullAdder};<p>组件 Adder16(A[16], B[16], Cin) -> (Sum[16], Cout) {<p><pre><code> >i[16]{ fa{i}: FullAdder; }
连接 {
A[1] -> fa1.A;
B[1] -> fa1.B;
Cin -> fa1.Cin;
fa1.Sum -> Sum[1];
>i[2,16]{
A[{i}] -> fa{i}.A;
B[{i}] -> fa{i}.B;
fa{i-1}.Cout -> fa{i}.Cin;
fa{i}.Sum -> Sum[{i}];
}
fa16.Cout -> Cout;
}
}</code></pre>
嘿,HN,我独自开发了 DreamsJar。这是一款原生的 SwiftUI 应用,旨在以可视化的方式跟踪储蓄目标——你可以为自己想要储蓄的东西创建“罐子”,并在过程中记录存款。
这个想法源于我希望有一种比电子表格更简单,但又比仅仅查看银行余额更具实感的工具。我希望储蓄能够让人感觉到进步,而不仅仅是数学计算。
它的工作原理如下:
- 为一个目标(假期、新笔记本电脑等)创建一个罐子
- 设置目标金额和时间线
- 记录存款,观察罐子逐渐填满
- 在达到10%、25%、50%、75%时庆祝小里程碑
该应用使用 Swift/SwiftUI 和 SwiftData 构建。免费版允许你设置一个目标。
付费版(每月 $3.99 或终身 $49.99)解锁无限目标、iCloud 同步、自定义提醒和存款历史。
一些我觉得有趣的技术决策:
- 使用 SwiftData,并为 CloudKit 兼容性设置了明确的应用支持存储路径
- 在用户测试显示用户流失后,将首次创建目标的步骤从 11 次点击简化到约 6 次点击
- 在某些设置视图中不得不放弃 async/await,以避免 @MainActor 死锁——最终使用基于回调的 API 和延迟加载
如果你对构建过程、SwiftUI/SwiftData 的痛点或 App Store 审核流程有任何问题,我很乐意回答。
在网上看到的,已经使用了一段时间。
为了使人工智能系统的自动分析、复制和学习变得困难,编程语言应该具备哪些特征?你有什么想法吗?