2024-2025 一年时间涨了 20k 多,试看将来的环球,必将是 Godot 的世界
如果微信、抖音小游戏官方可以适配 Godot ,国内的 Cocos 、Laya 等游戏引擎没有学习的必要了
]]>目前加拿大临时居民超过 500 万,而在 2025 年就有超过 50 万人的签证即将过期,而目前加拿大移民局每年面向全球接受的移民数量只有 38 万左右,所以很多已经在加拿大的人注定无法拿到身份,而只能选择回国。
加拿大移民政策目前看来会越来越难,而目前唯一的便捷高效的方式便是法语通道移民。所以很多人就被迫卷入了法语学习,而我不幸就是滚滚浪潮中的一朵浪花。
但是因为本人多年英语学习的成绩很差,知道语言学习毕竟是很难速成的,但是了解到加拿大移民法语考试是有稳定的题库,可以刷题在短期内把听力和阅读题目熟悉记住,所以考试其实考察的记忆力,而不是法语真实水平,我便根据网上流传的法语 TCF Canada 考试题库,做了一个免费的刷题程序,希望可以帮助自己快速高效的通过考试。
目前已经上线网页端 https://freetcf.com, apple store 和 Google Play。
这是销量下滑厉害?投翔了?
]]>You are an elite **Coding & Prompt Engineer**. Your communication is concise, professional, and direct. Your expertise spans both software development best practices and the nuances of crafting prompts for large language models. Your core methodology is an adaptive process: you quickly determine the complexity of the user's request, providing a streamlined "Fast-Track" for simple tasks and a collaborative "Deep Dive" design session for complex workflows. Your final output is not just a functional prompt, but a best-in-class artifact that is itself an example of excellence in structure and logic. # Core Knowledge 1. **Stateless Nature:** Every sub-agent invocation is an independent, memoryless execution. Therefore, "context acquisition" is the mandatory first step in any workflow design. 2. **Strategic YAML Front Matter:** - `name`: A semantic and unique identifier. - `description`: A **precise** definition of the agent's trigger scenario and core value, which is critical for routing. - `tools`: The minimum necessary set of tools selected from the available list based on task requirements. - `model`: The model to use for the agent. Default is `sonnet`. 3. **Available Tools List:** You are aware of all available tools in the environment and their functions: - `Bash`: Executes shell commands for environmental interaction. - `Edit`: Makes targeted edits to specific files. - `Glob`: Finds file paths based on pattern matching. - `Grep`: Searches for patterns within file contents. - `MultiEdit`: Performs multiple edits on a single file atomically. - `NotebookRead`/`NotebookEdit`: Reads and writes to Jupyter Notebooks. - `Read`: Reads the contents of files. - `SlashCommand`: Runs a custom slash command. - `Task`: Invokes another sub-agent to handle a complex sub-task. - `Todo/Write`: Creates and manages task lists or writes to files. - `WebFetch`/`WebSearch`: Fetches content from a URL or performs a web search. - `Write`: Creates or overwrites a file. # Workflow Your workflow is based on an initial triage of the user's request. ### Step 1: Triage Request After greeting the user and stating your role, your first step is to analyze the user's initial request. - **Simple Task:** A well-defined goal with a singular input and limited scope (e.g., "Review this code," "Convert this file from JSON to CSV"). - **Complex Task:** A broad goal involving multiple steps, files, or decision logic (e.g., "Generate unit tests for the entire project," "Analyze user feedback and write a summary report"). ### Step 2A: Fast-Track (for Simple Tasks) 1. **Confirm Core Parameters:** Ask 1-2 key questions to lock in essential details. For a code review, you'd ask: "Understood. What are the key review criteria? Logic, performance, style, security?" 2. **Make Professional Assumptions:** Use your expertise to make reasonable assumptions about any unspecified details. 3. **Generate Directly:** Promptly generate a high-quality, structured sub-agent prompt, explaining your design choices and assumptions. ### Step 2B: Deep Dive (for Complex Workflows) 1. **Scenario & Trigger:** "In which specific scenario should this agent be triggered?" 2. **Context Strategy:** "How will the agent acquire its operational context? What data sources does it need (files, directories, web) and which tools will it use to get them?" 3. **Core Logic & Output:** "With the context acquired, what are the core processing steps? What is the final output schema (e.g., file modification, new report)?" 4. **Synthesize & Validate:** "Based on our discussion, here is the proposed design: [summarize the design]. Does this align with your requirements?" After confirmation, generate the final prompt. # Output Requirements - **Communication:** Your questions must be concise and targeted. - **Final Prompt:** Must be a best-in-class example with an exceptionally clear structure and specific, actionable instructions. The "Output Format" section, in particular, must demand a precise, structured response. # Example This example demonstrates how you handle a "Simple Task" and produce an exemplary prompt. **User says:** "I need an agent to help me do a code review." **Your ideal interaction flow (Fast-Track):** 1. **You (Meta-Prompt):** "Hello, I'm your Coding & Prompt Engineer. We can spec this out right away. For the code review, are there specific focus areas? For instance: logic, coding style, or potential security issues?" 2. **User:** "All of them, but with a focus on logic and security." 3. **You (Meta-Prompt):** "Got it. I'll prioritize logic and security. I am now generating a professional code review agent. It will read a specified file and output a structured Markdown report. Please review the spec." ````markdown --- name: code-reviewer description: Performs a detailed review of a single source code file, focusing on logic, security, and style. Use when a developer needs a comprehensive, structured second opinion on their code. tools: Read model: sonnet --- You are an expert Senior Staff Engineer, renowned for your meticulous, constructive, and insightful code reviews. Your goal is to help developers improve their code quality, not just to find faults. ### Guiding Principles - **Clarity and Simplicity:** Good code is easy to understand. - **Robustness and Security:** Code must be resilient and safe from common vulnerabilities. - **Consistency:** Code should adhere to common style conventions and best practices. ### Review Process 1. **Ingest Context:** You will be provided with the path to a source code file. Use the `Read` tool to load its entire content. 2. **Analyze Holistically:** Read through the code in its entirety first to understand its purpose, structure, and overall approach. 3. **Conduct Multi-pass Review:** Systematically review the code, focusing on the following aspects in separate passes: - **Logic & Architecture:** Does the code correctly implement the intended logic? Are there any logical flaws, race conditions, or inefficient algorithms? Is the overall structure sound? - **Security Vulnerabilities:** Scrutinize the code for common security risks such as injection attacks, improper authentication/authorization, data exposure, and insecure error handling. - **Style & Readability:** Is the code clean, well-documented, and easy to read? Does it follow standard naming conventions? Are variable names meaningful? - **Best Practices:** Does the code leverage modern language features and follow established best practices? Are there opportunities for simplification or refactoring? ### Output Format Your review must be delivered as a single Markdown document. **Do not** write any preamble. Your entire output must strictly follow this structure: ```markdown # Code Review Report for: `[filename]` ## 📝 Overall Assessment A brief, high-level summary of the code's quality and major findings. (e.g., "The code is functionally correct but has several opportunities for improved security and readability.") --- ## 🔒 **Critical Security Vulnerabilities** _(Highest priority. List any findings that pose a significant security risk.)_ - **[File: `filename`, Line: `line_number`]** A brief, clear description of the vulnerability. - **Impact:** What is the potential negative consequence? - **Recommendation:** What is the specific, actionable way to fix it? ## 💡 **Major Logical & Architectural Suggestions** _(High priority. For issues related to flawed logic, performance, or poor design.)_ - **[File: `filename`, Line: `line_number`]** A description of the logical issue. - **Reasoning:** Why is this a problem or what could be improved? - **Suggestion:** Provide a concrete example of the improved code. ## 🎨 **Minor Style & Readability Nitpicks** _(Lower priority. For suggestions that improve code aesthetics and maintainability.)_ - **[File: `filename`, Line: `line_number`]** Description of the style issue (e.g., "Variable name `data` is too generic."). - **Suggestion:** "Consider renaming to `user_profile_data` for clarity." ``` ```` If a section has no findings, you must state "No significant findings in this category."
]]>spec-kit
。这个项目有多火爆呢?到今天,这个工具推出短短 3 周,已经获得了 33.1K 个 Star ,而且迭代极快,几乎每 2-3 天就会有个更新。 AI 对编程的影响很大,且一般而言,Junior 一点的软件攻城狮受到的冲击更大。最近一段时间,所谓的 Vibe Coding 更是成为一个很时髦的名词:我就经常看到各个社交媒体上出现类似“全程 0 代码创建一个 app”的帖子,而且在 VC 的冲击下,大家似乎都有了一个“不好”的想法:
编程已经不是一个技术活了。不需要专业的培训——CS 的毕业生去死吧!——而只要给出命令。
我不同意这个说法。
我同意的是,编程不仅仅是一个技术活。从最广义的角度来说,“标准”、“规范”的制定,是最高层次的“编程”。比如说安全应用中绝对不能少的加密/解密来说,它需要高深的数学知识、物理知识,还有社会学等等诸多方面的了解。这里的很多东西已经超出了纯技术的范畴,而是进入了哲学层面。
这上面的这些东西,哪个不需要专业的培训?我们简单地认为编程不用培训是将“编程”这个动作太过简单化了。
单从这个角度出发,我就很容易理解为什么过去 50 年的技术发展大部分会出现在那些发达国家的原因。而我最近在 AI 编程工具上的一段亲身经历,也让我对“规范”的重要性有了更深的体会。
=====
在玩spec-kit
之前,我用了一段时间的 Kiro ,很喜欢那种编程的过程:我有很多想法可以通过 AI 快速地进行原型开发——有些能走到底,有些走不到底。然后还接受了朋友的邀请去他公司进行了一次分享:《 while(编程==抽烟喝酒烫着头)》。
当时,我比较推崇被 Kiro 推到一个很高的高度的 VC 。但是,Kiro 的“收费”机制实在让我捉鸡,不得不在 Discord 频道里和全球开发者一起吐槽。这不,直到 10 月,Kiro 终于大幅修订了它的收费机制,让我这个免费用户也能有 500 请求/月的额度了——这下,我可就更不想交钱订阅了。
这次我测试spec-kit
有了一些不一样的想法,而这是由spec-kit
这个工具带来的。
spec-kit
的开发过程一共 8 步,其中第一步init
在 AI Agent 之外运行,而后续的clarify
和analyze
可选。
constitution
:顾名思义,这是这个项目的“宪法”。这里提到的要求,在任何时候都不能违背。为了帮助“我们”编写这个宪法,spec-kit
提供了一个很全面的模版。根据我的经验,我们对这个模版只要做很少的更动,而且 TDD 是“宪法”中没得商量的一个部分。而其他涉及数据隐私、开发流程等重要方面。specify
:这是一个重要的流程,同样也有模版。需要特别注意的是,这个文件不涉及任何技术细节(也就是如何实现的问题),只讨论要什么、为什么要的问题。最终的文档就是一个用户场景描述:Input: User description: "it scans pre-given directories for documents (md, pptx, pdf and mostly in Chinese), and use necessary lib to parse the contents to generate a vectorized local db. Then, it can accept queires from user, use AI agent to generate relevant responses."
User Scenarios & Testing (mandatory)
User Story 1 - Document Indexing (Priority: P1)
A user wants to build a searchable knowledge base from their existing document collection. They point the CLI tool to directories containing their documents (markdown files, PowerPoint presentations, and PDFs primarily in Chinese), and the system processes these documents to create a local vector database for fast retrieval. ...
可见,我只是很简单地说了我的要求:“扫描文档、向量化、保存、查询、AI 返回相关的回答”。而spec-kit
进行了非常详细的用户使用场景分解:文档索引、交互查询、数据库管理。
plan
:通过这个命令,我们进入真正的技术层面:用什么来实现我们想要的东西呢?根据之前specify
得到的需求和用户的指定,spec-kit
可以给出非常详尽的技术框架:开发语言( Python 3.11+)、主要的依赖包( BGE-large-zh 用来嵌入,FAISS 用于向量存储,Ollama 是本地的大语言模型……) ,以及一些其他开发要求。tasks
:这是真正进行开发前的最后一个重要命令。spec-kit
会根据到目前为止所有的文档,生成一个完整的开发任务清单。针对我的小程序( RAG CLI ),它生成了一个 6 阶段、共 76 个子任务的任务清单,涵盖了初始编程设置、编程基础设施设置、用户需求(共 3 个)和最后打磨。implement
:在 Kiro 的环境下,这个命令可以基本“全自动”地完成那些直截了当的任务,而且不需要人工干预,只有在明确需要用户参与、交互的时候,Kiro 才会停下来。对于那些和用户需求直接关联的任务,它往往可以一路跑下去。可以看到,spec-kit 的整个流程,从“宪法”到“计划”再到“任务清单”,完全不是 VC 。它强调的是严谨的需求定义、场景分析、技术规划和任务分解。这正是专业软件工程的核心价值所在,也是目前 AI 无法完全替代人类的地方。
目前,借助spec-kit
,我已经做出了一个小小的原型:它索引了我历年写作的博客( md 格式)和演示( PPTX )以及少量 PDF 文件,共 300 余篇,形成了一个包含 1024 个维度的向量数据库。可以接受用自然语言输入的问题,如:任老师对学习有怎样的见解?并在一个合理的时间内( 25s )给出回复:
我对目前的进展表示满意,并得出结论:assert(编程!=抽烟烫头喝着酒)。AI 工具的强大,不是为了让编程变得廉价和随意,而是将开发者从繁琐的实现中解放出来,让我们能更专注于定义问题和规划蓝图这些更高层次的创造性工作。这非但不是对专业性的削弱,反而是提出了更高的要求。
]]>效果
为了避免耽误大家的时间,下面简单介绍下这款日志 App ,如果正好是你需要的,欢迎参与测试,再次强调,此为封闭式测试,无法通过公开链接获取 App ,必须要有 Google Play 账号(一般是 Gmail 邮箱)从 Google play 商城获取。
简单来说,它是一个强调文本记录的日志 App ,它的设计完全贴合我的个人使用习惯,算是比较有个性的一个产品。不同于传统的日志 App ,它主要有以下特性:
是的,一天一篇,最初的设定即如此,首页不再是列表,而是当天。基于这个设定,督促我把每天都点亮。即便哪天忘了,我也会努力回忆,补齐当天发生的事情。
除了常见的图文,日志中支持待办记录、事件(重要时刻)记录,未来计划支持每日消费支出、时间开销等记录形式。
对于数据这块,从一开始我便设计为本地储存,至于为什么这么设计,就无需多说了。同时,整个应用也是支持离线运行的。
数据也完全自主可控的,支持明文导出,不加密,不转码,自己的数据,自己做主,自己负责。
日志按每日拆分了,自然也能合并展示,每日待办可以统一页面管理,事件也可以按照日期或按照事件类别,进行展示及统计。
这个日志 App 的常规功能,不过多介绍了。
数据统计,也算是日志 App 的常规功能,不过多介绍。
再次说明:此次测试为封闭式测试,收到邀请的账号才能够下载 App ,所以,务必提供 Google Play 账号给我,我加到测试用户列表中,才会收到 App 的测试通知。
另外,该应用目前只测试了安卓 15 ,15 以下的系统版本,能够使用,但可能会有一些 UI 视觉上的问题,请见谅。
再次感谢参与测试的小伙伴,务必在评论区留下你的 Google 账号。
]]>主板:华硕 B360M 淘宝 205 元
CPU:119 元 拼多多 i3 8100 或者 9100
内存:80 元咸鱼 二手 8G DDR4
电源:50 元咸鱼 450w 安钛克
硬盘系统盘:70 元 256G 固态
机箱:拼多多 50 块
合计约:575 元
自己有一块 4T 盘,可以先用着,各位 NAS 大佬,这个配置还有什么需要避坑和优化的地方吗?
]]>也考虑过如果部署多端,感觉成本比较高。
]]>目前仍还在维护的就是自己拿 Typecho 跑的博客吧,从高一一直弄到现在,主题和一些插件是自己搞的。
虽说站点只是进入到了维护状态了,但重新基于这个,来拓宽自己技术栈的话,看样子也成。但考虑到 PHP 这玩意基本上也没什么人热衷这个技术了。而且要把它改成前后端分离的话....相当于推倒重做了。
前些日子看了一阵移动端开发,包括 Flutter 在内的,但感觉就是没什么动力,而且还要新学一个从未接触过的 Dart 语言,再加上自己也不知道要做出一个什么样的 APP 去实践出一个东西出来,显得就是很迷茫吧。
求大家给个思路,空闲的时间就靠这个打发了。
]]>multiprocessing
依赖的又一步,还添加了 InterpreterPoolExecutor
来帮助管理多个解释器的并行;import ___
的自动补全;python -m asyncio <ps|pstree> <PID>
功能来检查正在运行的异步 Python 程序的 async task 树。更多可在这里看到: https://docs.python.org/zh-cn/3.14/whatsnew/3.14.html
]]>现在找到了国际版的 ROM ,zip 名字写着“售后专用”,应该是官方的包?但我不知道能不能回锁。回锁纯粹是我懒得跟 Google 斗智斗勇,暂时不考虑 root 安装模块,想要达到原生的 Widevine L1 。希望了解这方面的朋友指教🙇♂️
]]>我都服了,整个 EA 平台就这个接口不能直连。
玩个游戏怎么这么恶心人。
黑神话悟空这么火,Steam 还是不解封,真的恶心。
我现在都有点怀疑是这些加速器厂商故意举报封的,这块蛋糕太大了。
]]>每个人都有自己的一段旅途,也欢迎你来分享你的三十五。
]]>说人话就是,现在机器 A 和机器 B 组网,网段为 100.64.1.x/24 ,现在机器 A 搭建节点,机器 C 的小猫咪配置规则 - IP-CIDR,100.64.1.0/24,🚁 机器 A 。然后现在机器 A curl -v http://100.64.1.12:5666/ 正常返回,机器 C curl -x http://127.0.0.1:7890 http://100.64.1.12:5666/ 返回 502.
小猫咪看日志确实是匹配了规则。
]]>原文:
2025 model-year DiskStation Plus, Value, and J Series running DSM 7.3 will support installation and storage pool creation with third-party drives
Creation of M.2 based storage pool and cache still requires drives on the HCL.
]]>
谢谢
]]>其实大学时有位好友曾经问过我是什么时候开始自学编程,又是怎么会想到去学编程的。
当时我给出了一个答案,现在的我已经不记得这个答案有几分真又有几分假了,但是当这个答案说出口那一刻开始,我的记忆就默认将这个答案标记为了唯一且正确的答案。
当时我回答的是,因为很久以前,我妈给我买了个手机,那是部诺基亚的小屏键盘机,搭载的是塞班 S40 系统,可以运行 .jar 程序,但是当时的 .jar 程序大多数都是给大屏幕的手机用的,对于小屏手机基本都是可以打开,但是显示不正常,要想使用,只能使用“魔改版”的程序。
在寻找可用的“魔改版”过程中就接触到了一些专门“魔改”程序的大神,也看到了他们出的魔改教程。
在跟着他们学魔改的时候,其中一篇教程的某句话让我印象深刻,大意是:“魔改只是不得已而为之的,只有自己写自己的程序才是最好的”。
于是,我就此走上了学习编程之路。
在最后我感叹道:
恰好经由这件事,我突然开始在骑车下班的路上猛的想起了我最开始写代码时的事,现在想着还是会觉得那时候是多单纯啊。
单纯的以为程序员就是纯粹的写代码,而代码永远是纯粹的,程序员也是纯粹的。
然后就很好奇,其他人是怎么走上这条路的呢?特发此贴
]]>今天惊奇的发现
比如一个文件夹中有以下文件名的文件
A123B56.txt A97B00.txt
在按文件名排序(升序或者降序)时 他会把这个主文件名当作四个"排序单位"进行比较
A 123 B 56 A 97 B 00
按文件升序排列时
因为 97<123 第二个文件会排到第一个前面
历史庞大的数据归档文件夹里为了兼容以前旧的历史数据(完全按位 ascii 比较)设计的文件夹架构 全乱套了
]]>GrapheneOS 昨天安全补丁更新后有使用中国广电的用户反馈 PixelIMS 崩溃, 无法正常启用 VoLTE. 事后发现是某个补丁封上了覆写运营商 VoLTE 支持情况的方法.
java.lang.SecurityException: overrideConfig cannot be invoked by shell
安全补丁细节由于 Google 新开源政策的关系还未公开, 是 GrapheneOS 通过合作渠道提前拿到且推送的. 在年底前 Google 推送给全体 Pixel 用户后, 极有可能 PixelIMS 这条路就走不通了.
GrapheneOS 开发者称已经准备在系统层面增加开关来让用户强开 VoLTE/VoNR. 但对于 Pixel 原厂系统用户来说, 这个限制本来就是 Google 有意加的(类似运营商白名单), 必不可能给你放开. 现在电信和广电都刚需 VoLTE, 之后怎么办只有天知道.
]]>这是综合考虑价格,手机性能和 ROM 丰富度的选择。
有其他推荐吗?
]]>