github commit如何泄露个人信息 —— 记一次惊险的“自我开盒

一个github commit如何泄露个人信息 —— 记一次惊险的“自我开盒” 在开源世界里快乐地提交代码,是每个程序员的日常。但在 GitHub 网页上看着自己帅气的头像和昵称时,你可能不知道,底层的 Git 记录可能早就把你的真实姓名和邮箱扒得底朝天了。 前几天,我就亲身经历了一次惊险的“自我开盒”。 事件经过 事情的起因很简单:我给一个开源项目修了个 Bug,兴冲冲地写好代码,git commit,然后 git push 到我自己的 Fork 仓库,最后在 GitHub 网页上开启了一个 Pull Request(PR)。 看着网页上绿色的 “Open” 标签,提交记录里显示着我的 GitHub 昵称和头像,一切看起来都那么完美、极客、且匿名。直到我顺手在终端里敲下了一行命令…… 发现问题 我在翻 git log 时无意发现,我的真实姓名拼音和私人邮箱赫然躺在提交历史里! 起初我以为只是本地显示的问题,毕竟去 GitHub 网页上看那个 PR 时,Commit 列表里明明写的是我的网名。为了验证,我点进了那个 Commit 的详情页,并在浏览器网址最后面加了一个 .patch,按下了回车。 纯文本页面加载出来的那一刻,我倒吸一口凉气。在最顶端第二行,白纸黑字写着: From: 我的真实姓名 <我的真实私人邮箱> 原来,GitHub 网页端的昵称只是一层“视觉伪装”。Git 的底层逻辑是认邮箱的,只要你本地 Git 配置(git config)里用的是真名和真邮箱,当你推送到云端时,GitHub 就会把这些底层数据永久记录下来。即使网页上给你套了个滤镜,任何一个把代码 git clone 到本地的人,或者爬虫程序,都能轻易地读取到你的隐私信息。 好在 PR 还没有被原作者合并(Merged),主动权还在我手里。一场与时间赛跑的隐私保卫战开始了。 解决方案 为了彻底抹除这些痕迹,我摸索出了一套标准的“急救”工作流: 1. 关闭 PR (Close PR) 这是止损的第一步。如果带有真名的提交被合并到了上游主仓库,那神仙也难救了(只能去求源项目的管理员帮改历史)。 我立刻在网页上点击了 Close pull request,切断了这段代码进入主分支的可能。 ...

反人类的谷歌Antigravity

被Antihumanity搞虚脱了,所以文章是Gemini 4 Argon在antigravity里面写的,见谅。( 伪安全与真残废:谈谈 Google Antigravity 新版沙盒对开发者体验的毁灭性破坏 近期 Google 对 Antigravity(尤其是 CLI 工具链)进行了一次缺乏基本工程敬畏的静默变更:在未明确更新文档与迁移指南的情况下,将默认执行策略强制切换至底层内核沙盒。这一改动直接摧毁了许多依赖现代工具链的本地工作流,其中最典型的受害者就是已成为 Python 事实标准的 uv。 作为一个主打智能体自主编码的工具,Antigravity 这次更新暴露出的不是技术实力,而是大型科技公司典型的高傲:以“防御性安全”为遮羞布,行破坏开发者体验之实。 一、 粗暴的挂载策略:连现代包管理器都不配拥有路径? 在 Linux/WSL 环境下,新版 CLI 引入了基于 Linux Namespaces 的容器化隔离机制。对于 Agent 工具而言,做执行沙盒在架构设计上无可厚非,但 Antigravity 的实现方式堪称粗糙。 为了所谓的最小攻击面,它对 $HOME 目录采取了极其死板的虚拟挂载与只读覆盖策略。其直接后果是: 用户级工具链被全面抹杀:宿主机的 ~/.local/bin 与 ~/.cargo/bin 被完全隔离在沙盒之外。uv、mise、pnpm 这些标准的用户级开发工具,在沙盒内部直接蒸发。 命令行接口的低劣设计:CLI 暴露了 --sandbox 标志,却连基本的对称参数 --no-sandbox 都未作适配。布尔 flag 抛出标准库的未定义错误,真正控制沙盒启闭的逻辑却被隐晦地塞进了权限预设(Permission Preset)的层级分支下,毫无自解释性。 只管拦截,不管透传:如果要做隔离,合理的做法应当是支持声明式的白名单路径透传(Extra Binds),或者自动将宿主机经过哈希验证的 binary 映射进去。而 Antigravity 选择了最偷懒的方案——直接盖上一个空 tmpfs,留给开发者一个毫无意义的 command not found: 127。 二、 零文档、零引导的“黑盒式”治理 如果一个基建级工具必须做出不向后兼容的 Breaking Change,成熟团队的标准实践是:提供 Changelog、在 CLI 报错中给出语义化诊断信息,并指引开发者如何修复。 ...

我对使用大语言模型来解决软件工程问题的思考

总的来说,我对使用大模型解决软件工程问题持乐观态度。随着Agent Engineering的发展,大模型在需求分析、设计、实现、测试和运维环节均体现了其价值。但要把它用好,我们仍然需要掌握顶层架构,并使用适当的工具和方法随时监督AI的工作。 LLM对软件工程的增益有目共睹。这一点不只是主观上的。已有对照实验发现,LLM 辅助工具能够提升特定开发任务的完成效率(《The Impact of AI on Developer Productivity》 (Peng et al., 2023))。 但面对复杂的软件工程任务,单个LLM的上下文窗口仍会限制它对项目全局的持续把握。而更糟糕的是,即使上下文窗口未满,模型也未必能充分利用其中的信息,尤其是在上下文足够长时容易遗漏长上下文中段的相关内容。(Nelson F. Liu等人的论文《Lost in the Middle》说明了这点)。此外还有很多因素,比如工具数量增长对 Function Calling 选择准确率的影响,干扰信息对模型决策的影响等。 SubAgent或许很诱人,但它也有自己的问题。智能体可能越过职责边界、遗漏重要信息,或者在缺乏验证的情况下让错误继续传播,最终导致任务失败(《Why Do Multi-Agent LLM Systems Fail?》,2025)。 所以,我们必须引入独立的,基于事实的外部机制来约束AI。从而确保整个体系的正确,并确保结果可验证。一个例子是FM-Agent:利用独立的LLM结合调用者的预期生成函数规范,再通过霍尔逻辑式的推理逐步推导后置条件,检查实现是否符合规范,最后生成并执行测试用例来确认潜在缺陷。(《FM-Agent》 Ding et al., arXiv 2026) 当然,上下文工程也是不可少的。限于篇幅,我还是提一个最直观的建议:考虑到“Lost In the Middle”效应,最能影响LLM决策的关键信息在上下文首尾。因此,不要图方便将大段代码直接贴入prompt,它是真的会让模型“变傻”呀。各种agent默认的基于function calling的文件操作是更好的选择。 综上,这也是为什么我们软院人需要学习软件工程。软件工程给我们的,是系统化思维,是设计顶层结构的能力,以及实现这些顶层设计的理论知识。

Learn X in Y Minutes 编程语言快速入门推荐

最近我决定参与一些开源项目,因为高中时折腾过VPS,所以正好认识Openlist。综合对比其它项目后我便决定将它作为我的第一个开源贡献项目。 不过本文的主题不是开源,而是关于编程语言学习。 于是为了看懂Openlist项目,我有(bei)幸(po)开始学习Go语言。 当然,我不可能先找一本几百页的书,然后从HelloWorld,if-else,变量这种所有语言都差不多的地方学——我需要高效的方式来达到足够用的水平。 不过也不能直接问AI呀——AI给的内容往往很细碎,我想要的是体系化的知识。也因此,我开始寻找一个适合有编程经验的人,帮助他们快速入门某种语言的在线资源。 也因此,我遇到了Learn X in Y Minutes项目。该项目非常符合快速入门某种语言。 当然,它不可能让你成为xx语言专家,却足够让你清除这个语言是做什么的,有哪些特性,基本骨架给你摸个八九不离十。 光说还是有些抽象,让我们看一个针对Go语言的例子: func learnFunctionFactory() { // 空行分割的两个写法是相同的,不过第二个写法比较实用 fmt.Println(sentenceFactory("原谅")("当然选择", "她!")) d := sentenceFactory("原谅") fmt.Println(d("当然选择", "她!")) fmt.Println(d("你怎么可以", "她?")) } // Decorator在一些语言中很常见,在go语言中, // 接受参数作为其定义的一部分的函数是修饰符的替代品 func sentenceFactory(mystring string) func(before, after string) string { return func(before, after string) string { return fmt.Sprintf("%s %s %s", before, mystring, after) // new string } } 是的这就是x-in-y网站讲述Decorator的用法的所有内容了。我们很容易看出其优点: 简洁明了 对于已经了解高阶函数、闭包等知识的人,这种写法展示了Go语言也支持这些特性;对于不了解的人,也没有过早引入这些复杂概念。 以代码为主导而不是用自然语言描述一堆不准确、模糊的描述 将成体系的相似内容汇编到一起 作为对比,如果你问AI的话,就会输出下面一大堆。 我相信很多人会喜欢上面那种。 Btw,这个项目还有Github仓库,大家有空可以去捧场。

我让 Hermes 写了一篇博客

这算「自己写自己」吗 是的,这篇文章内容也是hermes外包的 事情是这样的——我一直在折腾自己的 Hugo 博客,写完总是要手动开编辑器、起本地服、hugo new、整理 TOML 前置信息……琐碎得让人想偷懒。 于是干脆把「发博客」这件事整个丢给了我的 agent„Hermes„。 让它帮我起草、把关、提交、推送。 这篇就是你刚读到的结果。 它到底做了什么 流程其实很朴素,没有魔法: 我会话里给出主题:「随便写一篇,主题是我让 Hermes 写了一篇博客」。 它按我 repo 里现有帖子的格式写了一篇(日期、标题、slug、draft=false、TOML 前置信息和中文正文)。 它先起草给我看,我没改动就当确认。 提交、推送,走我已经配好的 GitHub PAT 认证,直推到远程。 远程的 CI 被触发,自动构建部署——新帖就这么上线了。 ##「懒惰」的正当理由 看起来像偷懒,但我更愿意叫它**「把重复劳动外包给会干活的东西」**。写作还是要我来定主题、要认可内容、要对产出负责;机器只负责把「从草稿到上线」这段机械流程跑直。省下的时间,多打几把音游不好吗。 Hermes 端到端跑通了我的博客发布流水线——顺便,这篇就是它的 ep、0.也许我该给它记一功。

一加手机坑爹的清灰功能

坑爹的清灰功能 诚然各手机厂商为了吸引消费者推出的创新功能形形色色,或使人眼前一亮。 不过一加这部手机的“清灰模式”属实有点雷人。 如图,这种清灰的原理是通过播放特定频率的音波,把灰尘抖下来。 但是编程人员没有指定播放设备,因此如果你连接了耳机,那么响的会是耳机而不是扬声器。属于清灰了个寂寞。。。

怎么挑选背景

搞这么多技术内容,本质上的目的还是让我们的博客好看。对此,图片的选择往往是最容易被忽略的部分。 我个人为博客筛选了约数百张图片,对于背景图片的选取略有心得。 1. 明确你需要什么主题的图片 简洁风?风景?动漫? 主题决定了你应该去哪里寻找背景图片。 如果你想要风景图的话,必应每日的风景图(“必应聚焦”)是一个很好的来源。 这里有一个整理每天的必应聚焦的网站。 我个人则选择动漫图片。动漫图片有两个来源: 插画网站,比如Pixiv 社交媒体和群组的推送流 在这里,我们明确了第一个标准——图片符合我们的主题,且符合个人审美。 2. 注意博客页面对你的背景的遮挡作用 很多人光是找好看的插画去了,而博客内容对背景的遮挡作用常常被忽略。 比如,在桌面端,PaperMod的内容框框占据网页的中间$\frac{2}{5}$,那么为了美观,图片的主要内容必须在图片的左右边缘各$\frac{3}{10}$处。 这里的主要内容,当然是一个插画的主题元素,比如人物。如果一个插画主要是人物,那就指的是表现人物神情的部分(这里是面部)。 中间部分被遮挡的图片 反面示例——人物几乎被遮住 3. 不要喧宾夺主 背景图片不要太花导致干扰视线,更不要使得文字内容看不清。 其实这一点有一些主观的成分,只要不要饱和度爆炸明暗对比拉满都差不多。

给hugo+PaperMod博客添加背景图片,包含多端适配、随机背景功能

作为一个静态博客框架,Hugo 的优势在于可以直接白嫖各厂商的静态页面托管服务(如 Cloudflare Pages、GitHub Pages)。而 PaperMod 主题的简约设计则提供了极高的可定制性。 生命在于折腾,选择这两者作为技术栈后,折腾博客的下一站自然就是设置一个好看的背景图片。 给首页加图片 如果只需要给首页加图片,那么只需要加一个 .list 的 CSS 选择器。在 PaperMod 的 DOM 结构中,首页容器带着 .list 类名。我们可以在 assets/css/extended/custom.css 中注入基础样式: .list { background-image: url("/images/background-light.webp") !important; background-size: cover; background-position: center; background-attachment: fixed; background-repeat: no-repeat; } 直接加上背景后会遇到一个很刺眼的问题:首页的文章列表文字是直接覆盖在背景上的。我们需要把第一个帖子加上框框,不然文字会融入背景,导致可读性极差。 PaperMod 默认的首帖(.first-entry)没有预设内边距和边框。我们可以补全它的盒模型,并给框框加上透明效果与毛玻璃质感(Glassmorphism): /* 补全首帖盒模型 */ .first-entry { border-radius: var(--radius); padding: var(--gap); } /* 给卡片框框加上半透明与毛玻璃效果 */ .first-entry, .post-entry { /* 使用 color-mix 复用主题原生变量并混入透明度 */ background: color-mix(in srgb, var(--entry) 80%, transparent) !important; border: 1px solid color-mix(in srgb, var(--border) 60%, transparent) !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } 适应暗色模式 现代 PaperMod 主题切换暗色模式时,会在顶层的 <html> 标签上注入 data-theme="dark" 属性,而不是修改类名。因此我们需要使用 HTML 属性选择器来进行样式覆盖: ...

甜筒是我的罪过啊

今天吃完饭,去“苦沙火乡”买了一支甜筒。边骑车边吃,哪曾想一下路肩甜筒就被颠断了…… 哎,太可悲了太可恨了。 怨我,这就是我的罪孽啊。

AI无法取代人类——以福耀科技大学为例

我是三流大学软件工程学生,但是对AI了解不多。随手写了一点,各位见笑。 福耀科技大学靠谱吗?问一问AI Google Gemini **福耀科技大学非常靠谱。**它不仅不是所谓的“野鸡大学”,反而是目前国内备受瞩目、起点极高的一所“新型研究型大学”。 从目前的现状和发展来看(截至2026年),可以说是中国高等教育改革的一块“试验田”,其实力、资金和生源甚至可以媲美许多传统的985/211名校。 如果你想“混个文凭”或者追求大城市的繁华,这里可能不适合。但如果你有志于在智能制造、机器人、人工智能等理工科前沿领域深耕,想真刀真枪地做科研、进驻顶尖产学研平台,福耀科技大学是一个极其靠谱、性价比极高且充满前景的选择。首批敢于报考这所大学的高分考生,虽然常自嘲为“教育改革的小白鼠”,但实际上他们享受着全国最顶尖的教育资源投入。 Deepseek 关于福耀科技大学是否“靠谱”,目前还没有一个绝对的答案。它是一所极具开创性但也伴随争议的新型大学,其“靠谱”程度取决于你用什么样的标准去衡量。 总的来说,它的起点极高、模式新颖、潜力巨大,但作为一所全新大学,其长期的办学质量和模式能否成功,仍有待时间的检验。 福耀科技大学是一所优点和风险都同样突出的大学。它是否“靠谱”,取决于你的视角: 如果你是看重潜力、勇于接受新事物的学生:这里提供的精英化培养、产业前沿资源和创新模式非常有吸引力。但你需要接受它作为一所新大学在声誉和校友网络上的天然短板。 如果你是追求稳健、看重传统的家长或学生:它的不确定性可能是一个风险点。选择它,意味着押注一个全新的教育理念和模式能够成功。 我的建议是:持续关注它的发展。大学的建设是长期过程,福耀科技大学最终能否成功,取决于其独特的办学理念能否经受住时间的考验,将蓝图变为现实。可以多关注其未来几年的师资建设、科研成果和学生发展情况,再做出判断。 Qwen 综合目前的官方信息和办学进展来看,福耀科技大学(福建福耀科技大学)是非常靠谱的。它并非传统的民办盈利性高校,而是一所高起点、高定位的新型研究型大学。 以下是判断其“靠谱”的几个核心依据: 官方批准,资质正规 福耀科技大学已经正式获得教育部批准设立,具备完全合法的招生和办学资质。 教育部明确其定位为“民办普通本科学校”,但办学性质更偏向于公益性的新型研究型大学。 资金雄厚,公益办学 学校由福耀集团创始人曹德旺先生发起,并由河仁慈善基金会等出资创办。其资金实力雄厚,且明确不以盈利为目的,这意味着学校不会像部分传统民办高校那样过度依赖学费生存,能够将更多资源投入到教学、科研和师资建设中。 顶尖的管理团队与师资力量 校长领衔:由原西安交通大学校长王树国担任首任校长,且其公开表示出任该职“不拿一分钱工资”,纯粹为了教育理想。 师资豪华:学校已初步汇聚了一支高水平、国际化的师资队伍,包括海内外院士15人、全球前2%顶尖科学家56人、国家级高层次人才80人。 此外,还有多位原“985”“211”高校的前校领导加入管理团队。 清晰的办学定位与“小而精”模式 学校突出理工和科技,着重开展制造业科技创新研究,旨在解决中国高端制造业人才短缺的问题。 全日制在校生规模暂定为8000人,走的是“小而精”的精英化培养路线,类似于“民办版的佐治亚理工学院”。 深度的产教融合与国际合作 校企合作:已与海信集团、洲明科技等知名企业签署战略合作,强调“高等教育+AI”深度融合与产教协同。 高校联培:已与同济大学开展联合培养硕士研究生项目,并与香港城市大学、加拿大阿尔伯塔大学等建立了学术合作关系。 招生已步入正轨 学校已于2025年正式在福建、河南、江西、湖南、广西等省份启动本科招生,首批聚焦“智能制造工程”等核心专业。 随着办学步入正轨,2026年及以后计划逐步扩大招生规模。 尽管福耀科技大学在背景、资金和师资上起点极高,但作为一所新成立的大学,在考虑是否报考或合作时,仍需注意以下几点: 历史积淀尚浅:学校的长期教学成果、科研产出、校友网络和社会声誉仍需时间来沉淀和验证。 培养模式要求高:学校注重理工科、全英文或双语教学以及高强度的科研/实践训练。 适合目标明确、有志于投身高端制造业或科研,且自律能力较强的学生。 招生规模小:由于采取“小而精”模式,招生名额有限,录取分数线预计会保持在较高水平。 总结:福耀科技大学是一所由国家教育部背书、顶尖教育家掌舵、实业家巨资支持的正规且极具潜力的高校,整体非常靠谱。如果您或您的家人考虑报考,建议密切关注其当年在您所在省份的具体招生计划、专业设置及录取分数。 为什么AI不靠谱 信息源被污染 计算机科学有一套经典的定理:“输入的是垃圾,那么输出也是垃圾”(Garbage in, garbage out)。 而此类社会组织,必然会在互联网上投放大量的新闻通稿,内容则为抬举和吹嘘自己。如果放在几年前,是为了让有利自己的信息占领搜索引擎的结果;而放到现在,则是为了让AI读到的信息大都对自己有利。 这种操纵舆论的原理很简单:如果一个组织不是很有名,那么关于它的信息总量自然会很少,批评它的信息那就更少了(因为能够辨别的人根本不在乎)。只要让有利于自己的信息填充互联网,那么搜索者大概率看到的都是正面信息。 更高明的操纵者不会完全吹嘘假消息,而是半真半假。它们常常把一个很普通常见的概念吹得很神,对这个领域不够了解的人就会被骗。这类人美国人称为蛇油推销员,中国人称为神棍,高校界称为神棍。 这也就不奇怪,“绝顶聪明”的AI会给刚建立两年规模极小的新生大学站台了——它们获取的语料就是不客观的,答案自然也有失偏颇。 AI没有“生活经历” 这一点描述起来有一些模糊和主观,我会尽可能讲清楚。 AI没有“生活经历”。它的生命就局限于提示词输入开始,到输出token结束为止。所以,他不能从过往经历中反思。 我说的反思,不是“将经验教训融入到模型权重”这种强化学习式的反思,而是“能够结合具体示例”,就像普通的大学本科生根据自己几年的大学经历,就能根据课程,科研项目,导师等种种例子,判断出“福耀科技大学”的性质了。 事实上,这种民间办学,“小而精、研究型”的模式,绝不是福耀首创,就像2018年创立的西湖大学,宣传是由一队知名科学家兴办的,也自称小而精。这类学校是否能办起来,只能经过时间的检验才可知。而经历的时间跨度,不是AI的优势。 此外,也正是因为AI没有人类的“生活经历”,他不能从人类自己的角度来像问题……