返回首页
24小时热榜
嗨,黑客们!<p>我是一名自学成才的青少年开发者。<p>你是否曾想在互联网上展示你正在做的事情?<p>我一直想这样做,所以我开发了Lynk,这是一款轻量级的macOS应用程序,可以实时跟踪你的活跃应用、窗口标题和每日使用情况,并通过WebSockets广播这些数据。哦,对了,当你切换应用时,它还会自动更新连接的客户端!<p>没有SDK,没有API——只有本地跟踪和一个可以用任何语言进行ping的WebSocket端点。<p>GitHub: <a href="https://github.com/shaileshsaravanan/lynk">https://github.com/shaileshsaravanan/lynk</a>
一个基于终端的Nim网页浏览器。[1] 具备可接受的(因人而异)CSS渲染,支持部分JavaScript,并能够显示内联图像(sixel/kitty)。它还可以使用除http(s)之外的多种协议,如(s)ftp、gopher、gemini等。
Chawan最初是w3m的克隆,用户界面仍然与其相似。然而,架构却有很大不同,页面在独立进程中加载,协议/文件类型的处理被分离到外部二进制文件中。一个有趣的结果是,您甚至可以为自定义内联图像格式注册解码器,尽管这种用例在实际应用中相对较少。
这里有一个展示一些网站渲染效果的画廊:
<a href="https://chawan.net/gallery/index.html" rel="nofollow">https://chawan.net/gallery/index.html</a>
[1]: <a href="https://nim-lang.org" rel="nofollow">https://nim-lang.org</a>
在我们的初创公司,工程师不再直接构建功能。他们构建的是可以与内部工具(如 Zapier、Make 和 N8n)连接的 API。大多数“功能”,例如运行 SQL 查询或在产品 X 被订购时发送推送通知,都是由运营或产品团队利用这些工具构建的。
如果你有想法,就自己构建并发布。这种方式快速、赋权,并且让工程师专注于构建可靠、可扩展、安全的 API。同时,这也迫使我们编写更好、更简洁的 API,使其保持无状态和专注。调试可能会很困难,有时临时解决方案的逻辑会悄然堆积。
我认为这比传统模式要好,后者往往使工程师成为每个新流程的瓶颈。还有其他人尝试过这种设置吗?它在哪些方面存在问题,还是说这已经成为新常态?
你好,HN,
我创建了一个名为 socket-call 的 TypeScript 库(因为缺乏更吸引人的名字),其目标是能够像调用普通函数一样调用 socket.io 事件。
你可以这样在服务器端声明:
```typescript
...
const listenEvents = (services: UserServices) => ({
// 在这里添加你的事件,事件的名称就是函数的名称
login: async (username: string) => {
services._socket.data.user = { username };
console.log(`用户 ${username} 已登录`);
setInterval(() => {
// 调用一个在客户端处理的事件
services.showServerMessage(`你仍然登录着 ${username}!`);
}, 1000);
return `你现在已登录 ${username}!`;
},
});
```
然后在客户端,你可以像正常的异步 JavaScript 函数一样调用它们(你也可以创建客户端事件处理程序):
```typescript
...
const user = socket.addNamespace<UserEmitEvents, UserListenEvents>(
'user'
);
// 调用一个在服务器端声明的事件
user.login(username.value).then((message) => {
console.log('服务器确认消息:', message);
});
// 处理服务器发送的事件
user.showServerMessage = (message) => {
console.log('服务器发送给我们的消息:', message);
}
```
我在自己的项目中使用这个库,并希望能收到关于它的反馈 :-)
我在寻找一个小型库,以便在浏览器中通过简单的鼠标/触控操作和固定相机轻松转换2D和3D对象。<p>就像一个简单的3D编辑器,但不需要用户成为Blender专家。<p>找不到任何轻量级的解决方案,所以我决定自己构建一个。可以想象成Fabric.js,但用于3D。完全基于Three.js/R3F构建。<p>在控制方面借鉴了一些虚拟现实/增强现实交互系统的灵感。<p>欢迎试用,并告诉我你的想法!
你好,HN!
我已经在Canine项目上工作了大约一年。这个项目的起源是因为我厌倦了使用Heroku、Render、Fly等平台来托管我自己构建的一些网络应用,所需支付的费用过高。曾经,我每月为这些云托管支付超过400美元。去年,我将所有的项目迁移到了Hetzner。
对于一台4GB的机器,各个服务提供商的费用如下:
- Heroku = 260美元
- Fly.io = 65美元
- Render = 85美元
- Hetzner = 4美元
(当你需要超过4GB时,这个问题会变得更加严重。)
使用Hetzner的唯一缺点是,没有一个非常简单的方法来处理以下事项:
- DNS管理 / SSL证书管理
- 团队管理
- Github集成
但我想,快速为我的Hetzner实例构建一个类似Heroku的工具应该是很简单的。结果发现这比预期的要困难一些,但经过一年的努力,我取得了一些不错的进展。
Canine最棒的地方在于,它也使得托管任何Helm图表变得非常简单,这些图表几乎适用于任何开源项目,因此从数据库(例如Postgres、Redis)到一些随机的东西,如种子追踪服务器、VPN端点等,都可以轻松托管。
开源项目地址: [https://github.com/czhu12/canine](https://github.com/czhu12/canine)
云托管版本地址: [https://canine.sh](https://canine.sh)
嗨,Sam。
有时候,当我在与ChatGPT深入对话时,会有一些小的后续问题,比如“webhook到底是什么?”但提问会打断对话的流畅性。
如果我们能够在特定消息上开启一个迷你线程——就像Discord或Slack那样——以便提出旁边的问题,而不打乱主要对话,那会怎么样?
目前的“临时聊天”功能是否可以演变成这样的形式——一个与主线程特定部分相关联的侧面对话?
感觉这会让ChatGPT对开发者和深度工作者更有用。
谢谢!