codex 需要提前安装 superpowers
代码已开源 https://cnb.cool/abigmiu/mTimer
无法通知, 应该是我没有开发者账号的原因
让 codex 完善需求文档用户只需要写简单的几句需求,确定大体方向, 然后告诉codex 让他自己完善需求, 期间, codex 会根据用户写的简要需求进行详细补充。
确认执行
这一句输完之后, codex 全自动运行, 直接出来了一个可打包, 可运行的app。 app 大小仅500 KB。
================================
包括 下面的ai博客,一个 266 次调用,实在是amazing
从需求截图到可运行的 macOS 菜单栏倒计时:mTimer ...
前言在 macOS 上直接使用终端运行 Codex 时,它默认会发送系统通知。但这个通知机制有一个明显限制:它依赖终端环境本身。
一旦你在下面这些场景中使用 Codex,通知就会“消失”:
VSCode 内置终端
远程服务器 / 云开发环境(如 cnb)
非 macOS 系统
但 Codex 的任务往往是异步且耗时的,比如跑一轮代码修改、重构或者分析。如果没有通知,很容易切走干别的事情,回来才发现早就跑完了。
我的需求很简单:
无论 Codex 在哪里跑,只要执行完成,就给我发一条即时通讯通知。
好在 Codex 官方已经预留了一个非常干净的扩展点:notify。
Codex 的 notify 机制是什么?在 OpenAI 官方文档中,有一段对 notify 的说明(原文见官方文档):
Codex 在特定事件发生时(目前主要是 agent-turn-complete),可以调用一个外部程序,并把事件信息以 JSON 参数的形式传给它。
换句话说:
Codex 不负责“怎么通知”,它只负责“在什么时候把事件广播出去”。
你可以用这个事件去做任何事:
弹系统通知
...
我的第一个java 项目(半成品)
这是一个小说项目,地址 github, 只有很少的接口,
以前有过nestjs 的开发记录,spring boot 的形式和nestjs差不多。controller, server, entity,这3层基本上就可以进行增删改查了。不过java的语法比较来说还是繁琐的。 光一个ArrayList 添加数据要一直new 对象,不能直接添加。
这个项目主要是学习spring boot 的基本用法和中间件的基本用法,redis, rabbitmq,es搜索。 都只做了简单的增加和查找, 其实我使用了ai来提需求和设计实现。 Ai 写的很详细, 容错重试什么的都有写上去, 不过目前对我来说实在是太复杂了。后面的话可能进行继续完善。
这篇文章就主要记录一下基础知识:
ElasticSearch12345678910111213141516171819@Configurationpublic class EsConfiguration { @Value("${elasticsearch.host}") ...
这是我新搭建的生活博客,用edgeone加速, https://blog.deffun.top, 遇到一个问题, 就是edgeone 代理我的博客,就是不论怎么配置,生成的文章地址都是源站地址。
在gemini3 pro的帮助下,解决了。 这里记录下。
edgeone 配置静态资源可以缓存,非静态资源就没必要缓存了, html 是动态生成的, 也不需要缓存
typecho 配置在 config.inc.php 的最后面加上
123456/** 1. 欺骗 Typecho,让它认为当前域名是 blog.deffun.top */$_SERVER['HTTP_HOST'] = 'blog.deffun.top';/** 2. 告诉 Typecho 当前是 HTTPS 访问 (防止循环重定向和样式丢失) */$_SERVER['HTTPS'] = 'on';define('__TYPECHO_SECURE__', true);
在前面, 我们edgeone 配置的 hosts 是源 ...
element el-pagination current-page 赋值无效分析elementel-pagination current-page 赋值无效分析
先看组件 高亮的页面是 1 ,但是应该是高亮的 2.ElPager
12345<li :class="{ active: currentPage === pageCount, disabled }" class="number" v-if="pageCount > 1">{{ pageCount }}</li>
发现由 currentPage(props) 控制高亮。由于是 props 。 往上找组件ElPagination
1234567<pager currentPage={ this.internalCurrentPage } pageCount={ this.internalPageCount } ...
不同环境同一函数的加载优化以前写了一个 h5 App ,要和原生 App 进行交互。 代码是这样的:
12345678910111213141516import type { IAppVersion, ICompany } from '@/models/My';import iosBridge from '../helpers/IosWebview.js';export function isIos() { const ua = navigator.userAgent; const isIOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); return isIOS;}/** * 返回状态栏高度 */export function getStatusHeight() { return new Promise((resolve) => { if (isIos()) { ...
cnb 如何持久化mysql 和 rediscnb 如何持久化mysql 和 redis1. 安装 mysql 和 redis123456789101112131415161718services: mysql: image: mysql:5.7 container_name: mysql environment: # 密码 MYSQL_ROOT_PASSWORD: a12346789 # 允许本地连接 MYSQL_ROOT_HOST: '%' ports: - "3306:3306" redis: image: redis:alpine container_name: redis ports: - "6379:6379"
在 cnb 环境启动的时候需要使用这个dokcer-compose 文件启动, 我是这样进行启动的,首先创建持久化文件夹(这一步非必要,我知识用来调试的),然后正常使用docker compose 启动 ...
远程主机开发(cnb) 使用 gemini cli
😀 gemini cli 需要打开浏览器进行验证,但是远程开发环境是没有浏览器的。所以我们需要转发到本机电脑进行验证,本文使用 cnb[!https://cnb.cool] 平台进行测试
步骤1. 远程主机安装 gemini clipnpm install @google/gemini-cli -g 这一步根据自己环境进行修改 npm yarn 都行
步骤2. 获取授权urlgemini --debug
找到url 参数里面的 redirect_url 解析 redirect_uri 参数,识别 localhost 后的端口号。例如,如果 redirect_uri 为 http://localhost%3A21165%2Foauth2callback ,则端口为 21165 使用 ssh 进行端口转发,我这里为了方便直接用的vscode
electron 踩坑指南📝 Vue 打包后页面空白,vue router 要使用 hash 模式
Electron 打包后 Vue 界面空白?Vue Router 历史模式的坑与解法 | F2E 前端技术论坛
Edgeone 使用记录
😀 在 discord 弄到一个 edgeone 的兑换码,于是便用了上来。 说实话,腾讯是真的免费,比如COS送免费6个月的20G流量, 对比下来, 阿里云的费用就贵一点,不过腾讯的东西还是有一点不足的:COS 上传成功就没有回调。
图床
有条件的可以选用 cloudflare r2 存储, 这个免费10G容量,免费流量
我的图片是存在七牛云的,有免费的 10G http流量,不过https流量就付费了,可以直接在 edgeone 里面绑定一个域名然后转发到七牛的cdn域名,这样访问的时候edgeone就会缓存了。注意方框内的一定要选 http 和使用源站域名,不然就会走七牛云的https 流量 或者无法访问。
这里注意,在edgeone上定义的域名,也可以进行上传。经测试,直接通过edgeone的域名上传和通过七牛云的域名上传一样的效果。
静态网站代理你现在看到的这个网站是由 notionNext 渲染的, 原来是部署在 vercel 上面的,但是访问效果实在不理想。可以选择在edgeone 上加一个域名然后映射到vercel的域名上。 也可 ...











