-
SEO优化 TOP NEW
SEO优化 🛄 背景: 提升网站在搜索引擎中排名、方便用户搜索到网站内容。 完备的SEO指南查阅GoogleSEOIntro里面对浏览器的爬取索引录入规则、排名结果呈现、监控调试有详细介绍。这里提取部分重点内容详细介绍. SEO的核心理念 以用户内容为中心,而非以搜索引擎为中心。Rank提高是结果,而非目的。 搜索引擎的基本工作流程 要想优化SEO则需要了解搜索引擎的基本工作流程。简单来说分3个步骤: 爬取 索引 排名 爬取 Google会通过类似GoogleBot的爬虫程序,来爬取网站内容。爬取规则遵循robots.txt文件的规则。 比如BiliBili的robots.txt文件内容如下: 主要目的是规范爬虫行为。 索引 Google会根据爬取的内容,... Read More
-
C++异步编程 TOP NEW
传统C++异步编程,一般结合回调函数来实现。 void asyncOperation() { std::this_thread::sleep_for(std::chrono::seconds(2)); } void task(std::function<void()> callback) { callback(); } std::thread t1(task, asyncOperation); t1.join(); 这种异步编程方式可以应用在基础、简单的场景,在业务体量复杂后会演变成下面这种形态, asyncOperation([&](int result) { // 第一个回调 asyncOperation2(result,... Read More
-
AI内容生成 TOP NEW
官网游戏内容资讯AIGC 背景:2025年人工智能内容生成技术已经非常成熟, 希望利用AI能力提供生产力。搭建一个全自动的资讯内容生成服务, 用于优化SEO生成站点内容被搜索引擎收录索引。 AI接口预研 DeepL API: 传统翻译、文档写作供应商. 结合steam接口游戏内容,生成的内容效果不理想. api收费也贵. DeepSeek API: Ai大模型供应商. 结合Steam接口内容, 调整输入生成效果好, 收费便宜. ⚠️ 注意额度查看, 余额不足服务端会有日志打印。 实现方案如下图: 🪐 效果查看 游戏资讯资讯 赛博朋克内容 项目结构 📜 代码结构 - aigc_server / - aigc_task.js // 定时任务, 负... Read More
-
DFA TOP NEW
在社交媒体内容审核、在线评论过滤、新闻出版等场景中, 为维护内容的健康和合法性。需要过滤可能被认为是不当、冒犯或敏感的词汇和短语。 在实现文字过滤的算法中,DFA是比较好的实现算法。结合敏感词库实现业务也比较简单。 using namespace std; // DFA节点 struct DFANode { unordered_map<char, DFANode*> next; // 下一个节点的映射表 bool is_end; // 是否是敏感词的结束节点 }; class DFAFilter { public: static DFAFilter &Instance() { static DFAFilter inst... Read More
-
DoubleBuffering TOP NEW
在开发Qt桌面客户端过程中会遇到界面元素闪烁的问题。比如listview更新model数据.可以使用双缓冲的技术解决. 双缓冲(Double Buffer) 聊到双缓冲前先说说单缓冲解释一下为什么单缓冲下界面会卡顿.网上关于双缓冲的文章措辞太过学术理解起来不太直观.笔者这里使用一些”人话”希望可以表达清楚. 单缓冲: 图像数据既视图数据, 修改图像数据的同时界面也在刷新, 修改图像数据是一个同步操作, 生成的图像不是一下子被绘制出来的,而是按照从左到右,由上而下逐像素地绘制而成的, 图像不是在瞬间显示给用户, 越是复杂的图像数据闪屏卡顿的现象越是明显. 双缓存: 前缓冲保存图像数据, 后缓冲保存视图数据, 简单理解就是两块内存显示的都是第二块的内... Read More
-
GitWorkFlow TOP NEW
GitFlow Conversion 现在业内比较流行的流行的FDD(Feature-driven-development)WorkFlow有如下三种: GitFlow Github Flow Gitlab Flow FDD Workflow指的是需求是开发的起点, 先有需求再有功能分支(feature branch)或者补丁分支(hotfix branch)。完成开发后,该分支就合并到主分支,然后被删除. 三种不同WorkFlow优劣点参考 如果项目暂时没有完备的CI/CD基建, 需要有清晰可控的分支结构、不要求持续发布推荐采用GitFlow WorkFlow作为项目WorkFlow Bitbucket Git WorkFlow简介 Bitbucket ... Read More
-
UT Intro TOP NEW
背景预研 集成UT需先了解业内常见driven development模式, 参考 1️⃣: TDD(Test-driven development) 强调开发在开发阶段完成红色❤️️>绿色💚>重构流程, 修改失败的红色❤️单元测试改至绿色💚通过、然后在绿色💚的前提下重构简化逻辑, 测试与编码同步面向非开发人员不友好. 2️⃣: BDD(Behavior-Driven Development) 强调业务专家在开发前编写Behavior Script, 开发使用编程语言实现Behavior Script(测试大纲).通过业务专家的行为脚本推动(通过类似[Gherkin]ru软件制作(https://cucumber.io/docs/gherkin/reference/)... Read More
-
Qt5UpToQt6 TOP NEW
⚙️️构建系统差别: qt6不再支持32位 qt6不再需要額外指定編碼 C++语法标准C++14 升级至 C++17 因为qt6源码标准以C++17 msvc generator 升级至 vs2022 ninjia无影响 💻模块、编码差别: Qt6模块取消版本概念 qt6不再額外設定dpi適配 QtGraphicalEffects被棄用 轉為Qt 5 Core Compatibility APIs, 需要安裝Shader tools,Compatibility模塊 RegExp棄用,轉爲RegularExpression FileDialog 不兼容 QtMultimedia Audio不兼容 替換為MediaPlayer s... Read More
-
Trilium TOP NEW
-
Expand Ubuntu Server Disk TOP NEW
-
Dump Analysis Intro TOP NEW
Symbol basics Visual Studio’s default behavior How can I tell if a symbol is loaded and if not why? Configuring Visual Studio’s settings Deep dive on manual symbol loading 总结 参考概念梳理 Symbol basics 什么是符号文件?对于 Microsoft 编译器,这些是作为构建的一部分生成的 .pdb 文件 符号 (.pdb) 文件中有什么内容?它们记录了编译器如何将源代码转换为处理器执行的机器代码 为什么... Read More
-
Qt SrcCode Build TOP NEW
VS2019编译qt源码 🙆🏻♂️️ 动机 🏛️️ 准备 🏗️️ build ☝🏻 使用 VS2019编译qt源码 🙆🏻♂️️ 动机 qt5.15早期开源版本存在部分windows设备渲染卡顿、崩溃问题, 需要升级qt版本解决。然而qt6涉及到GPU渲染部分不支持win7和32位所以需要升级qt5.15后期fixed版本。 note: 从qt5.15后opensrc版本不再提供offcial binary, qt官方online installer只能安装qt6.7.1和qt5.15.2之类的早期小版本官方二进制。 自己手动编译qt源码。并且遵守qt license相关说... Read More
-
Window Native TOP NEW
DWM 在windows平台上开发桌面程序必然会遇到窗口相关的问题, 比如使用Qt创建一个无边框窗口会发现原生窗口的缩放特效、阴影和窗口管理功能失效了, 如何解决相关问题呢,这就需要了解DWM(Desktop Window Manager). windows自从Windows Vista后,引入了DWM Desktop composition. DWM可以实现玻璃窗框、3D 窗口过渡动画、Windows Flip 、Windows Flip3D 、高分辨率支持以及各种功能. // 使能DWM HWND wnd = (HWND)this->GetMainWindow()->winId(); // enable borderless and keep aero effec... Read More
-
Reentrancy and Thread-Safety TOP NEW
-
OpenGL Intro TOP NEW
OpenGL 广义上, 我们常聊的OpenGL是一套用于操作图形、图像的API. 狭义上, OpenGL的明确定义是一套接口规范由Khronos组织维护. 我们电脑上的opengl库由显卡供应商提供, 由于不同供应商对Api的实现不一样, 当OpenGL库表现的行为与规范规定的不一致时, 就会出现相关bug.当产生一个bug时通常可以通过升级显卡驱动来解决, 这也是为什么总是建议你偶尔更新一下显卡驱动. 基本概念介紹 渲染模式(Immediate Mode)、核心模式(Core-profile) 早期的OpenGl使用立即渲染模式(Immediate Mode)这个模式绘制简单但是灵活性和效率不高,随着时间的推移开发者对绘图细节的掌控有更多的需求, 从OpenGL3.2开始,规范... Read More
-
BuildSystem Intro TOP NEW
构建系统 构建系统是用于自动化运行编译、链接, 简化构建流程的软件开发工具. 为什么需要构建系统参考: Why We Need Build Systems 通常, 我们使用构建系统来管理软件开发的以下部分或全部方面: source code organisation 源代码组织 source code inter-dependecies 源代码相互依赖 managing third party libraries 管理第三方库 compilation options 编译选项 code generation options 代码生成选项 program linker configuration 程序链接器配置 post build proce... Read More
-
Jekyll Intro TOP NEW
-
GithubPage Intro TOP NEW
记录搭建StaicBlog 想搭建一个静态博客, 用于工作上的知识总结. 但又不想折腾服务相关的内容. 希望能更关注于内容, 遂花了点时间了解了一下GithubPage和jeklly.实践下来确实简介、方便好用. 核心流程: 明确GithubPage和jeklly概念 GithubPage是GitHub提供的一个静态站点托管服务. jeklly是一个静态站点生成器. 结合自己的理解总结汉化了一个版本jeklly文档 GithubPage官方支持托管jeklly站点。非常适合不熟悉前端开发的同学搭建自己的静态博客. 创建站点 <username>.github.io为个人站点, 相关操作在... Read More