返回首页
最新
我开发了Quit All,一款用于戒除坏习惯的iPhone应用程序。
主要理念是,大多数习惯追踪器在复发后提供帮助,但渴望是在此之前就会发生。Quit All具有SOS模式,配备计时器、GIF/提示、连续记录、复发日志、储蓄、里程碑、危险时段统计以及iOS小部件。
YouTube演示:
https://www.youtube.com/watch?v=qwNK4rqOY88
App Store:
https://apps.apple.com/us/app/quit-all-break-every-habit/id6760978934
网站:
https://quit-all.com
嗨,HN,
这是三个开源的 Pulumi 提供程序(defang-aws、defang-gcp、defang-azure),它们将类似 Docker Compose 的项目转化为真实的基础设施,部署到相应的云平台:包括 VPC、子网、负载均衡器、无服务器容器(ECS Fargate、Cloud Run、Container App)、构建、托管的 PostgreSQL、Redis、LLM 以及公共/私有 DNS。
一次开发,随处部署:这三个提供程序都暴露了相同的 Compose 形状接口。它们包含相同的 Pulumi 资源:项目、构建、服务、Postgres、Redis 和 LLM。Compose 服务映射中的每个服务都被配置为这些资源之一。在不同云之间迁移应该像更改导入一样简单,其他无需更改。项目资源设置了用于服务发现的私有 DNS,因此 Compose 服务可以使用其 Compose 服务名称进行连接。
这些提供程序是从头用 Go 重新编写的,基于我们过去两年所开发的(内部)TypeScript Pulumi 代码。我们尚未达到完全功能,但我们鼓励大家使用它们并分享反馈。
Pulumi 工具生成 TypeScript、Python、Go 和 C# 的 SDK。该仓库为所有云提供了这些语言的示例,例如:
```javascript
const app = new defang_aws.Project("demo", {
services: {
web: {
image: "nginx:latest",
ports: [{ target: 80, mode: "ingress", appProtocol: "http" }],
},
},
});
export const endpoints = app.endpoints;
```
几点说明:
- Compose 接口是有主观性的。我们检查服务需求并将其映射到具体的云资源。例如,在 GCP 上,没有暴露端口的服务将运行在 Compute Engine 上,而不是 Cloud Run。
- 可移植性是在 Compose 级别。每个云的行为不同:IAM、本地容器等。API 是相同的,但实现方式不同。
- 项目资源拥有共享基础设施(VPC、构建管道、DNS、负载均衡器)。独立的服务、Postgres、Redis 资源跳过这些,因此服务需要一个构建好的镜像。
- 许可是双重的:提供程序引擎采用 AGPL-3.0,因为我们希望分支能够回馈社区。生成的 SDK 采用 Apache-2.0,因此在您自己的 Pulumi 代码中没有 copyleft。
- 我们在等待 Pulumi 开发者合并我们的注册 PR,因此注册表仍然反映旧的 v1 提供程序文档。
- 支持运行时“配置”,即参数,使用 ConfigProvider 接口,也支持插值。
仓库链接:[https://github.com/DefangLabs/pulumi-defang](https://github.com/DefangLabs/pulumi-defang)
欢迎深入探讨 Compose 转换的工作原理、API 在不同云之间的差异(以及原因)、为什么选择 Pulumi 而不是 CDK/Terraform,或者云特定的权衡(AWS 使用 ECS+ALB,GCP 使用 Cloud Run 并可选回退到 CE,Azure 使用 Container Apps)。
- Lio
嘿,HN,我想分享一个我制作的工具,用于创建高尔夫球场的距离手册。
几年前,我最初编写了一个Python工具,从OpenStreetMap中提取数据,自动计算相关距离,然后生成距离手册的图像。如果你想查看原版,可以在这里找到: [https://github.com/npilk/hacker-yardage](https://github.com/npilk/hacker-yardage)。
但是,对于大多数业余高尔夫球手来说,Python是一个相当大的技术障碍。最近我意识到,大部分相同的功能可以整合到一个JS应用程序中。Claude为我完成了大部分移植工作。
最终的结果是OpenYardage。你可以搜索一个高尔夫球场,工具会为你自动生成距离手册。
我欢迎任何反馈或想法!Python版本仍然有一些我尚未能够移植的功能,主要是用于可视化坡度的地形数据。
源代码可以在这里找到:[https://github.com/npilk/openyardage-web](https://github.com/npilk/openyardage-web)。