上海图书馆书籍搜索项目

上海图书馆的图书搜索一直不好用,速度慢,体验差,我经常要给小朋友找书,深受其困,所以自己VibeCoding了整个项目。 这个项目重构了一次。第一回因为思虑不周、规划不清晰,再加上模型不给力,消耗殆尽了我的耐心。最终我只让第一个项目的 AI 总结了PRD,然后把PRD喂给第二个从零开始规划的AI。 第二次就比较顺利,只微调了2个小时(时间也不短) 对话记录见: [[Agent Vibe Coding交互:上海图书馆查询项目01]] [[Agent Vibe Coding交互:上海图书馆查询项目002]]

 · zx

安装GBrain手记

Gbrain( https://github.com/garrytan/gbrain )是 GarryTan 在 Github 上分享的一个给 AI 提供长期记忆,并且围绕长期记忆的使用的一个应用。 安装的过程中有一些坑,主要是因为这个应用使用到了向量数据库,而我本地没有已经成手的向量数据库,如果用云上的版本数据同步比较复杂,而且有额外的使用费用。最后虽然跑通了,但是没用向量数据库,只是可以使用关键词来搜索。 目前还没来得及应用,还是在搜集整理信息的阶段。后续看看会不会有意外收获。

 · zx

Obsidian + Hugo 博客工作流使用指南

终于开始要把WordPress迁移到Hugo的工作完成的差不多了,感谢AI,也启用了Obsidian,通过md文档链接所有。AI帮我写了一个指南。 一、Obsidian 模板配置步骤 1. 启用核心插件"模板" 打开 Obsidian 进入 设置 → 核心插件 找到并启用 模板 (Templates) 插件 2. 配置模板插件 进入 设置 → 模板 (Templates) 模板文件夹位置:选择 .obsidian/templates 日期格式:设置为 YYYY-MM-DD 时间格式:设置为 HH:mm:ss 二、可用模板 1. 新博客文章 - 用于发布到 Hugo 使用场景:当你写好一篇文章,准备发布到博客时使用。 位置:放在 content/posts/YYYY/MM/ 目录下 使用方法: 在 content/posts/ 下按年月创建文件夹(如 2026/04/) 右键文件夹 → 新建笔记 按 Ctrl+P (或 Cmd+P on Mac) 打开命令面板 输入 模板: 插入模板 (或 Templates: Insert Template) 选择 新博客文章 填写 title(文章标题) 根据需要修改 category 分类 Front Matter 说明: ...

 · zx

给微软同学讲Vibe Coding

今天在雷浩总的组织下,我给来自前微软的同学们分享了一场我的 Vibe Coding 实践阶段总结。把最近3个月的实践做了阶段总结,并觉得未来3个月不可限量。 ![[vibe-coding_20260328151714_41120_3.jpg]] ![[vibe-coding_20260328153942_41125_3.jpg]]

 · zx

修改AsrTools项目手记

自从大模型编程流行以来,我已经用大模型辅助编程做了很多小工具,比如半自动把小米摄像头同步到本地并按天打包生成录像文件的脚本、双击切换Windows代理服务开关的脚本等等很多。但是在做项目辅助编程时一直没有成功案例,因为在我的实践过程中,大模型经常出乎我意料的改掉一些东西,一些单一的功能还好,涉及到项目工程本身的架构比较复杂、一个需求点涉及多处改动的(比如前后端分离的项目等),模型生成代码的比我检查理解的速度都快,实在不太能做过程管理。我又没有那么多编程经验判断它改得对不对,只能通过它改好后执行程序来进行验证。 但这次遇到一个比较刚需的需求,而且原项目有并不复杂,我就大胆尝试去改项目了。 项目地址:从 https://github.com/WEIFENG2333/AsrTools 和VS Code Assit 对话如下: 人类: 在 asr_gui.py 文件中,在 def init_ui(self):函数内增加一个新按钮,可以一键清理已成功的任务,先只增加这个按钮,逻辑后面单独写。注意不要在此函数外增加任何代码 AI: 已成功在 init_ui 方法中添加了清理按钮。修改内容如下: 创建了一个水平布局 button_layout 来放置按钮。 将现有的 self.process_button 添加到该布局中。 添加了新的 self.clear_btn 按钮,并连接到 self.clear_success_tasks。 将 button_layout 添加到主布局中,使两个按钮水平排列。 按钮已添加完成,逻辑方法 clear_success_tasks 可以后续单独实现。 人类: 下面请增加清理逻辑函数并检查整个功能。 AI : 已成功添加了 clear_success_tasks 方法到 ASRWidget 类中。修改内容如下: 方法遍历表格的所有行,倒序检查第二列(状态列)的文本是否为 “已处理”(表示成功完成)。 如果匹配,则删除该行,并计数删除的数量。 删除后,根据删除数量显示相应的 InfoBar 提示(成功清理或无任务可清理)。 最后调用 self.update_start_button_state() 更新按钮状态。 检查清理功能是否完成: ✅ 功能已实现:能够删除所有状态为 “已处理” 的任务行。 ✅ 倒序删除:防止索引错位。 ✅ 用户反馈:通过 InfoBar 显示清理结果。 ✅ 状态更新:清理后更新 “开始处理” 按钮的启用状态。 ✅ 适应现有代码:使用 self.table(TableWidget),而不是 QListWidget。 ...

 · zx

期权回购提示词

背景和目的 你是一个资深程序员和产品经理。我想编写一个可以在网页中运行的程序,这个程序的目的是解决命题“我该不该行权”,背景是帮助互联网公司的员工在公司未上市时,公司发的一些期权,公司会每半年回购一次。但是由于中国的个税是累进税制,那就导致了如果一个人的工资正好处于累进税制的边界点,而一旦行权回购,那么当年的收入总额就会超过个税累计的临界值而进入下一档,这样就得不偿失。为了避免这个情况,我想做这么样一个程序,帮助这些员工去计算当年。要不要回购。 背景信息 工资薪金收入个税 工资、薪金所得,是指个人因任职或受雇而取得的工资、薪金、奖金、年终加薪、劳动分红、津贴、补贴以及与任职或受雇有关的其他所得。 工资个税预扣预缴计算公式 当月个税 = (累计收入 - 累计五险一金 - 累计专项附加扣除 - 累计减除费用)x 预扣税率 - 速算扣除数 - 累计已缴纳税额 应纳税所得额= 累计税前工资收入 - 累计五险一金(个人缴纳部分) - 累计专项附加扣除 - 累计减除费用 累计应纳税额 = 应纳税所得额 x 税率 - 速算扣除数 当月应纳税额 = 累计应纳税额-累计已缴纳税额 累计减除费用 = 员工当年在职月数 x 5000 个人所得税税率表 级数 累计预扣预缴应纳税所得额 预扣税率 速算扣除数 1 不超过36000元的部分 3% 0 2 超过36000元至144000元的部分 10% 2520 3 超过144000元至300000元的部分 20% 16920 4 超过300000元至420000元的部分 25% 31920 5 超过420000元至660000元的部分 30% 52920 6 超过660000元至960000元的部分 35% 85920 7 超过960000元的部分 45% 181920 ...

 · zx

腾讯网络广告屏蔽(个人搜集)

oa.com###mask_div00 oa.com###mask_div01 oa.com###mask_div02 oa.com###mask_div03 oa.com###mask_div04 oa.com###mask_div05 oa.com###mask_div06 oa.com###mask_div07 oa.com###mask_div08 oa.com###mask_div09 oa.com###mask_div10 oa.com###mask_div11 oa.com###mask_div12 oa.com###mask_div13 oa.com###mask_div14 oa.com###mask_div15 oa.com###mask_div16 oa.com###mask_div17 oa.com###mask_div18 oa.com###mask_div19 oa.com###mask_div20 oa.com###mask_div21 oa.com###mask_div22 oa.com###mask_div23 oa.com###mask_div24 oa.com###mask_div25 oa.com###mask_div26 oa.com###mask_div27 oa.com###mask_div28 oa.com###mask_div29 oa.com###mask_div30 oa.com###mask_div31 oa.com###mask_div32 oa.com###mask_div33 oa.com###mask_div34 oa.com###mask_div35 oa.com###mask_div36 oa.com###mask_div37 oa.com###mask_div38 oa.com###mask_div39 oa.com###mask_div40 oa.com###mask_div41 oa.com###mask_div42 oa.com###mask_div43 oa.com###mask_div44 oa.com###mask_div45 oa.com###mask_div46 oa.com###mask_div47 oa.com###mask_div48 oa.com###mask_div49 oa.com###mask_div50 oa.com###feed_right_btn tencent.my.xiaoshouyi.com##.pg-pm-wrap xiaoshouyi.com###pagecontent > canvas.xsy_water_mark km.woa.com##.select-feedback-tip km.woa.com##.question-show-warning km.woa.com##.km-block.suggested-repliers km.woa.com##.km-tui-footer km.woa.com##.relative.post-reward-area km.woa.com##.confidentialnew km.woa.com##.bottom-bar-item.pointer.km-feedback km.woa.com###km_ikm_new km.woa.com##.right-border.subtract-margin-top.qr-code-share csig.lexiangla.com##.know-action-panel csig.lexiangla.com##.footer csig.lexiangla.com##.bg-sprites.icon-qr-code-s.icon-operation csig.lexiangla.com##.know-action-panel csig.lexiangla.com##.comment-operate > .mr-m.left ||csig.lexiangla.com/api/v1/staff/watermark* ...

 · zx
cyber-glasses-4685055_960_720

视频点播类服务和CDN服务的区别

一句话简述:CDN是IaaS层网络服务,和产品形态和业务关联不大;视频点播是PaaS层服务,除了在网络层有分发和缓存等机制之外,更在视频处理、视频质量、播放体验上有CDN没有的功能,不是同一个维度的产品。 以下就视频点播独有而CDN没有的产品特性做一简述。 播放器SDK能力 播放方式:URL播放、H.264播放、Dash协议播放 格式支持:RTMP、FLV、HLS、MP4等 VID播放:同时对视频下发多个清晰度的播放地址 播放加速:预加载和0首帧 播放控制:开始、结束、暂停、恢复、快进、倍速、循环、续播 精准搜索:精准到帧级别 清晰度动态切换:根据客户所处网络环境自动下发相应清晰度的视频文件 缩略图预览 播放失败重试媒体处理能力 依托于云端服务,视频点播可以对视频内容的画质增强和修复、智能转码、HDR、客户端超分、蒙版/外挂字幕、低成本转码、倍速转码、高清低码、智能超分、智能插帧、SDR增强、SDR2HDR、水印贴片能力,以及对音频内容的降噪、生成字幕等能力。 播放器SDK和手机自带H5的差别 播放器SDK可以保证体验一致,手机自带H5的页面体验以来于手机本身,体验不一致,APP无法预测客户端行为,带来测试无法覆盖到导致的使用风险; 播放器SDK统一了底层播放能力,编解码器有处理各种音视频的能力,手机自带H5依赖于手机自己的解码器,会导致视频播放失败、卡顿、跳帧、马赛克、黑屏、没声音等由于编解码导致的问题; 播放器SDK有支持比如Dash播放的能力,手机H5不支持(Dash播放可理解为不打断客户播放的前提下,切换视频分辨率为超清/高清/流畅等的能力); 播放器SDK支持播放失败重试等功能,手机H5由于是被动接受数据,并不能感知到视频是否被正确播放; 播放器SDK支持与抖音播放体验一致的0首帧加速,手机H5不支持; 播放器SDK由于调用的是直接操作系统底层能力,相较于手机H5(基于浏览器转译后发送给操作系统),响应速度快; 播放器SDK有智能IO策略:通过智能化的IO策略,减少网络、磁盘操作,从而减少电量消耗,手机H5基于浏览器转译,电量会增加 9% ~ 23%; 播放器SDK有精细化播放策略:基于起播流程优化、异步解码器加载、网络DNS预解析、连接复用等多种技术手段,优化起播速度,相较于手机H5,起播首帧提升50ms以上; 播放器SDK有流控策略:精细化起播水位控制,动态调整缓存buffer节省带宽消耗,手机H5直接拉取全部视频没有网络优化策略; 播放器SDK支持端到端加密,手机H5不支持(也就意味着视频在网络中传输是裸奔的,谁拿到都能看); 播放器SDK支持客户端问题上报,手机H5需要另外单独设计数据埋点和指标体系; 播放器SDK支持硬解码(播放器直接调用CPU,效率高);手机H5基于浏览器规则,播放能力受限,效率低; 播放器SDK支持超分(即网络传输720P的视频,实际播放1080P的视频,在客户端计算后播放),手机H5不支持。 其他服务特性 首帧时间、百秒卡顿时长、中断率、未起播量 单点追查 告警监控 利用AI能力生成整段视频的精彩剪辑 播放统计QoS维度:播放量,实际播放量,播放失败率,首帧时间 播放统计QoE维度:完播量,用户数,人均播放时长,人均播放数 专业服务支持 DRM 加密算法 – Dash协议播放:Dynamic Adaptive Streaming over HTTP,是一种自适应比特率流技术Server端将媒体文件切割一个个时间长度相等的切片(Segment),每个切片被编码为不同的码率/分辨率。Client端通过评估自身的性能和带宽情况,下载相应码率和分辨率的切片。带宽好,下载码率高的切片;带宽差,下载码率低的切片。因为不同质量的切片在时间上是对齐的,所以在不同质量的切片之间切换的话,自然是顺畅的,从而达到无缝切换的效果。

 · zx
ide

从Mac开箱开始 设置一个开发环境

今年(2022 年)我在过去几年使用了 MacBook Pro 2015 后购买了新的 MacBook Pro 。 在这里,我想与您分享我使用 的用于 Web 开发的 Mac 设置。 MACBOOK PRO 规格 14英寸 Apple M1 Pro 配备 10 核 CPU、16 核 GPU 和 16 核神经引擎 32 GB 内存 512 GB 固态硬盘 QWERTY = 英语(国际) macOS 蒙特雷 系统偏好 Dock 从 Dock 中删除用不到的应用程序 自动隐藏 较小的Dock “在 Dock 中显示最近的应用程序”关闭 “显示打开的应用程序的指示器” 打开 电池->“显示百分比” 展示 夜晚模式 安全 触控 ID 通知 关闭,日历除外 Siri 禁用 触控板 触碰点击 指向和单击 -> 查找和数据检测器关闭 键盘 文本 禁用“自动大写单词” 禁用“添加带双空格的句号” 禁用“使用智能引号和破折号” 用 " 做双引号 用 ' 做单引号 Spotlight 禁用 Spotlight(应用程序和系统偏好设置除外) 任务控制 角热点:全部禁用 发现者 侧边栏: 激活所有收藏夹 将库移至收藏夹 隐藏所有标签 显示所有文件扩展名 30 天后从垃圾箱中删除项目 查看 -> 显示预览(例如图像文件) 分享 “更改计算机名称” 还有终端: sudo scutil –set ComputerName “newname” sudo scutil –set LocalHostName “newname” sudo scutil –set HostName “newname” “确保禁用所有文件共享” 安全和隐私 打开文件保险箱 将浏览器添加到“屏幕录制” 存储 删除 Garage Band 和声音库 删除 iMovie 触控板 速度:9/10 可访问性 滚动速度:6/8 系统偏好设置(终端) 从终端覆盖更多系统首选项… ...

 · zx
facebook-5445671

各种自媒体尺寸(微信、抖音、小红书等)

备需: **微信公众号: ** 头像:240x240 封面:900x383 小图:200x200 封面(横版):1080x608 公众号内容引导图:900x500 二维码名片:600x600 横版二维码:900x500 超链接配图:600x200 **抖音视频号: ** 视频封面(横版):1920x1080 视频封面(竖版):1242x2208 抖音个人背景:1125x633 视频边框:1242x2208 **微博: ** 主页封面图:980x300 微博长图:800x2000 头条封面:980x560 焦点图片:540x260 **小红书: ** 头像:400x400 背景图:1000x800 小红书封面(竖版):1280x1706 小红书封面(横版):1706x1280 小红书配图(竖版):900x1200 小红书配图(方版):1080x1080 小红书配图(横版):1200x900 **其他: ** 手机海报:1080x1920 小程序封面:520x416 朋友圈封面:1280x1184 长图海报:800x2000 条漫:1000x2500 TB Banner:1920x700 电商海报(横版):1200x1920 电商海报(竖版):1920x1200

 · zx
沪ICP备15008885号-1 | 沪ICP备15008885号-2 | 沪ICP备15008885号-3 | 沪ICP备15008885号-4 | 沪ICP备15008885号-5
沪ICP备15008885号-6 | 沪ICP备15008885号-7 | 沪ICP备15008885号-8 | 沪ICP备15008885号-9 | 沪ICP备15008885号-10
沪ICP备15008885号-11 | 沪ICP备15008885号-12 | 沪ICP备15008885号-13