惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
有赞技术团队
有赞技术团队
IT之家
IT之家
博客园 - 聂微东
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
小众软件
小众软件
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
量子位
月光博客
月光博客
博客园 - 【当耐特】
博客园 - 叶小钗

V2EX

我用 AI 写代码,但终端管理反而成了累赘——于是我做了 codux [调研] 各位在公司都用什么 ide 和 agent 写代码? 老运维 share 一个运维平台 看到有公司考核 token 指标,很好奇大家上个月的 AI 账单是多少 GLM-Coding 调用持续报错: z.ai 的 Lite 套餐几乎无法使用,官方 Pro/Max 是否稳定? 现在还有什么渠道可以稳定安全地使用 Claude 吗? 上海漕河泾内推,本组有 2 个 hc,一个后端,一个前端,预算都是 20k 左右,不打卡,氛围好 如果 V2EX 上有一组不永久保存聊天记录(比如只保存 7 天或者 24 小时)的聊天室,那么会开启哪些有用或者有趣的可能? gemini cli 貌似挂了,一直返回 403 第一次在自媒体上赚到钱 收集了最近在使用的低价 GPT, Gemini,邮箱等 AI 会员的小店合集 讨论个大实话:现在企业还在说 AI 编程提效 20%, 30%的,真的太落后,没用懂 AI。因为包括很多前沿公司,已经狂奔到提效 200%-500%的情况 [招聘][远程][币安] 前端/后端/QA/iOS/Android 至少 3 年以上经验 目前有大量 HC 欢迎投递 Chatgpt Pro 用量用不完的可以开这些设置 面试的时候好像遇到钓鱼了,给各位避个坑 cursor 年续费 22 号到期, 自动续费是否还是老的计次套餐呢 被两件破事毁掉的一下午,琐碎的内耗消磨人的精力 使用 Planet 存储 Codex 的会话或者重要信息 如果业务部门领导不要你开发功能,而是要求你教会它用 claude code 开发功能,你会怎么做? 分享一个 MacOS 接绿联 CM818 USB 转 DP 转接器使用感受 我的 HR 朋友 10 年老 Java ,非全大专,大家帮忙看看简历 开源了一个 AI 口语练习工具,音素级发音评分,完全免费可自部署 V2EX 上有哪些你觉得很有趣、印象深刻的妹纸? 字节为啥不出个国内版 Vercel? 有在大马的朋友吗? 问个运营商问题 你们在有领导的公司大群发过的最大胆的消息是什么 公司裁员,目前没有工作。想试试摆摊,做一个移动鲜啤打酒车 我的硬盘 Memblaze Pblaze 5 Linux 下不识别,给 Linux 内核提交了补丁, AI 说有望被合并 只有我一个人觉得 codex 不好用?
[送码] 维护了快一年的会员订阅管理工具 — 口袋订阅,最近大...
iPocket · 2026-05-26 · via V2EX

一个苹果 iOS 原生制作的会员订阅管理工具 —— 口袋订阅,维护了快一年了,总体很稳定了,非常感谢国内外的朋友反馈,特别是一个老外叫 Jimmy ,好像非常喜欢我这款产品,他发现 bug 总是发邮件给我,邮件里有和他对话的几十封邮件了,真的非常感谢,也很开心。
产品主打简约,可以快速添加会员订阅,快速查找会员订阅,其他功能,订阅 APP 里该有的应该都有。然后可以通过长按别的 APP 分享到 口袋订阅 快速添加,也可以通过搜索 APP/网站 名称来快速添加,其他功能我倒觉得没那么重要,主要看个大概的费用。
APP 不搜集你的任何数据,这里其实有个缺点,就是你想改善你的产品的时候,没有数据,就会发现无从下手,你根本不知道用户在哪个页面体验不好😂,全靠用户从其他渠道反馈,邮件、小红书等。如有苹果开发者也可以一起交流下这方面的经验。
App Store 地址: https://apps.apple.com/cn/app/%E5%8F%A3%E8%A2%8B%E8%AE%A2%E9%98%85-%E8%AE%A2%E9%98%85%E7%AE%A1%E7%90%86%E4%B8%8E%E8%B4%A6%E5%8D%95%E6%8F%90%E9%86%92/id6752631319
https://i.imgur.com/RApyBOD.png
留言抽 20 个永久会员,明天收市后按上证指数抽出,因为我发现我送的很多兑换码感觉被机器人秒了
抽奖程序由 GPT 提供,代码如下
```javascript
(async function lottery() {
const drawTime = "2026-05-27 18:00:00"; // 开奖时间
const postUrl = "https://example.com/post/123"; // 帖子链接
const shIndex = "3123.45"; // 上证指数,建议用字符串,避免小数精度问题
const replyTotal = 1000; // 回复总数
const winnerCount = 20; // 抽奖个数
if (!drawTime || !postUrl || !shIndex) {
console.error("开奖时间、帖子链接、上证指数不能为空");
return;
}
if (!Number.isSafeInteger(replyTotal) || replyTotal <= 0) {
console.error("回复总数必须是大于 0 的安全整数");
return;
}
if (!Number.isSafeInteger(winnerCount) || winnerCount <= 0) {
console.error("抽奖个数必须是大于 0 的安全整数");
return;
}
if (winnerCount > replyTotal) {
console.error("抽奖个数不能大于回复总数");
return;
}
async function sha256Hex(text) {
const data = new TextEncoder().encode(text);
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
return Array.from(new Uint8Array(hashBuffer))
.map(b => b.toString(16).padStart(2, "0"))
.join("");
}
function hexToBigInt(hex) {
return BigInt("0x" + hex);
}
async function randomInt(seed, counter, maxExclusive) {
const max = BigInt(maxExclusive);
const space = 1n << 256n;
const limit = space - (space % max);
while (true) {
const hash = await sha256Hex(seed + ":" + counter.value);
counter.value++;
const num = hexToBigInt(hash);
// 拒绝采样,避免简单取模产生偏差
if (num < limit) {
return Number(num % max);
}
}
}
async function drawWinners(seed, replyTotal, winnerCount) {
const winners = [];
const swapped = new Map();
const counter = { value: 0 };
for (let i = 0; i < winnerCount; i++) {
const remaining = replyTotal - i;
const r = await randomInt(seed, counter, remaining);
const selectedIndex = i + r;
const selectedValue = swapped.has(selectedIndex)
? swapped.get(selectedIndex)
: selectedIndex + 1;
const currentValue = swapped.has(i)
? swapped.get(i)
: i + 1;
swapped.set(selectedIndex, currentValue);
winners.push(selectedValue);
}
return winners;
}
const rawSeed = [
`开奖时间=${drawTime}`,
`帖子链接=${postUrl}`,
`上证指数=${shIndex}`,
`回复总数=${replyTotal}`,
`抽奖个数=${winnerCount}`
].join("|");
const seedHash = await sha256Hex(rawSeed);
const winners = await drawWinners(seedHash, replyTotal, winnerCount);
const sortedWinners = [...winners].sort((a, b) => a - b);
console.log("========== 抽奖结果 ==========");
console.log("原始种子:");
console.log(rawSeed);
console.log("");
console.log("种子 SHA-256:");
console.log(seedHash);
console.log("");
console.log("中奖楼层:");
console.log(winners.join(", "));
console.log("");
console.log("中奖楼层,升序:");
console.log(sortedWinners.join(", "));
console.log("============================");
})();
```