作者: Cik

  • Win10Win11系统中Bitlocker提示等待激活解决办法

    Win10Win11系统中Bitlocker提示等待激活解决办法

    问题描述

    • 打开控制面板–>系统和安全–>BitLocker 驱动器加密选项里面发现硬盘上面提示“正在等待激活 BitLocker”,如下图所示:

    取消Bitlocker命令说明

    • 以“管理员权限”打开命令提示符(CMD)

    • 操作 Bitlocker 命令说明

    manage-bde -?        -->查看帮助
     
    manage-bde status;  -->查看状态
     
    manage-bde -on C:    -->加密 c 盘,并开启 bitblocker
     
    manage-bde -off C:   -->取消加密,并关闭 bitblocker
    

    解决 Bitlocker 正在等待激活解决办法

    • 以“管理员权限”打开命令提示符(CMD)

    • 使用【manage-bde -off 硬盘盘符:】按下回车取消正在等待激活。

    • 示例:比如这里取消 E 盘的正在等待激活命令【manage-bde -off E:】,按下回车键,如下图所示表示操作成功;

    • 表示关闭 BitLocker 完成

  • Windows11开启旧版右键菜单

    Windows11开启旧版右键菜单

    Windows11开启旧版右键菜单

    • 以管理员身份运行:Windows PowerShell,输入以下代码并回车,然后重启电脑生效
    reg add "HKCUSoftwareClassesCLSID{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}InprocServer32" /f /ve
    

    Windows11恢复系统本来的右键菜单

    • 以管理员身份运行:Windows PowerShell,输入以下代码并回车,然后重启电脑生效
    reg delete "HKCUSoftwareClassesCLSID{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f
    
  • CIKTab 新标签页

    CIKTab 新标签页

    CIKTab 新标签页是一款简约美观、功能强大的浏览器起始主页,极致的个性化配置,满足您的各项要求,提高工作效率!支持创建/分享个人导航页,方便快捷的美化您的浏览器,提升浏览器主页与新标签页使用体验!

    点击按钮直达

    网页版 Google Chrome Microsoft Edge

    特色功能说明:

    • 独特的小组件设计让信息展示充满美感

    • 聚合多个主流搜索引擎,支持一键快捷切换搜索

    • 全屏自由拖拽,支持卡片放置在任意位置

    • 舒适的动画,让您切换自如,感受丝滑

    • 支持多设备登录和即时数据同步

    • 支持数据本地备份,离线也能用

    • 支持导入、导出本站数据,管理随心

    • 支持众多小组件供您自由选择!

    • 支持批量导入本地书签,方便一键管理

    • 分类切换支持滚动翻页、循环滚动等多种模式

    • 自定义自定义静态、动态、纯色以及渐变壁纸

    • 点击时间一键切换极简模式,享受纯净壁纸界面

    • 支持提交分享您觉得不错的网站资源

    • 支持他人标签页导出数据迁移至当前标签页

    部分截图

  • CikGen 安全随机密码生成器

    CikGen 安全随机密码生成器

    在账号安全愈发重要的今天,弱密码、重复密码已成为网络攻击的重灾区。为了让每一位用户都能轻松拥有高强度、高唯一性的密码,CikGen 应运而生 —— 一款专注安全、高度可定制的随机密码生成器浏览器扩展,以极简操作、强大功能,成为你日常上网的安全助手。

    一、安全为本,拒绝密码风险​

    CikGen 以安全为核心设计原则,全程在浏览器本地生成密码,不上传、不存储、不泄露任何数据,从源头杜绝密码泄露风险。摒弃 “123456”“生日拼音” 等易破解弱密码,通过随机算法生成包含大小写字母、数字、特殊符号的复杂组合,有效抵御暴力破解、字典攻击、撞库等常见威胁,让每一个账号都拥有专属 “安全锁”。​

    同时,插件支持高度可定制密码规则:自由调整密码长度、勾选所需字符类型,适配网站、APP、系统等不同场景的密码要求,兼顾安全性与实用性,满足个性化使用需求。

    二、六大核心功能,好用更省心​

    1. 护眼深色模式,长时间使用更舒适​

    搭载专属深色主题设计,低蓝光、高对比度界面,有效缓解眼部疲劳,无论是夜间办公还是日常使用,都能带来温和舒适的视觉体验,兼顾美观与护眼需求。​

    2. 响应式布局,适配多场景使用​

    采用1200px 宽敞布局,搭配全响应式设计,无论在电脑端大屏还是小窗口浏览,界面都能完美适配,操作区域清晰不拥挤,密码生成、设置调整一气呵成,无任何使用门槛。​

    3. 状态持久化,数据不丢失​

    创新状态持久化功能,页面切换、浏览器重启、标签页刷新时,自动保留已生成的密码数据与设置偏好,无需重复操作,随时调取使用,告别数据丢失烦恼。​

    4. 实时统计,安全看得见​

    内置实时统计模块,清晰显示密码强度等级、可用字符数量、已选字符类型数,直观掌握密码安全等级,帮助你快速优化密码配置,打造真正无懈可击的强密码。​

    5. 批量生成,效率翻倍​

    支持批量生成密码,单次最多可生成 50 个,满足多账号注册、密码批量更换的需求,告别逐个生成的繁琐,大幅提升账号管理效率,拒绝 “一码通用” 的安全隐患。​

    6. 历史记录,管理更便捷​

    自动保存所有生成的密码记录,支持关键词搜索 + 分页查看,历史密码快速检索、一键复制,无需手动记录,让密码管理更有序,日常使用更高效。

    三、轻量化扩展,便捷触手可及​

    作为浏览器扩展插件,CikGen 无需下载独立软件,不占用设备内存,安装即用,点击浏览器图标即可快速唤起,随开随用、随关随停,完美融入日常上网流程,不干扰正常使用。​

    无论是职场人士管理工作账号、学生党保护社交平台,还是普通用户守护支付、邮箱等重要账户,CikGen 都能以安全、简洁、高效的体验,成为你数字生活的安全守护者。

    使用插件

    Google Chrome Microsoft Edge

    截图

  • Qoder、Codex、Cursor 谁才是编程神器?

    Qoder、Codex、Cursor 谁才是编程神器?

    在 AI 编程工具快速普及的今天,Qoder、Codex、Cursor成为了开发者最常对比的三款工具。我经过长时间实际使用,从上手难度、代码生成、使用体验、适用场景等方面,分享最真实、接地气的使用感受,帮大家快速选对适合自己的工具。

    Cursor是目前最受欢迎、最接地气的 AI 编辑器,核心优势是开箱即用、极度顺滑。它基于 VS Code 深度改造,界面布局、快捷键、插件生态完全沿用 VS Code,老用户几乎零学习成本,打开就能直接写代码。它的实时补全能力非常强,敲几个字符就能快速生成整行、整段代码,逻辑通顺、语法规范,写前端页面、接口逻辑、业务代码都很高效。内置的 AI 助手支持一键修 bug、解释代码、批量修改文件,甚至能直接运行命令、优化项目结构。免费额度足够日常开发,Pro 版功能更强大。唯一小缺点是中文理解能力一般,但完全不影响主力开发,是普通开发者的首选。

    Qoder作为国产 AI IDE,主打中文友好、工程化强、国内稳定。它最大的亮点是对中文需求、中文注释的理解非常精准,用自然语言描述功能,就能快速生成符合需求的代码,特别适合国内开发者。它对大型项目、多文件、多模块的支持更出色,修改一处代码能自动关联相关文件,减少漏改、错改问题,在后端开发、微服务、企业级项目中优势明显。国内网络访问流畅,加载速度稳定,不会出现卡顿或延迟。不过界面和传统 IDE 有一定区别,需要短暂适应,生成速度比 Cursor 稍慢,更偏向工程化、长期项目开发。

    Codex是 OpenAI 推出的代码大模型,也是 GitHub Copilot 的底层技术,代码生成能力扎实、通用性强。它支持多种编程语言,生成的代码结构清晰、兼容性好,适合复杂逻辑、算法编写。但它并不是独立编辑器,主要以 API、插件形式集成在其他开发工具中,普通用户使用需要额外配置,上手门槛偏高。它更适合技术开发者做二次开发、工具集成、模型调用,而不是直接用于日常写代码。中文支持较弱,对国内开发者的习惯适配不足,日常编码体验不如前两款工具。

    综合来看,三款工具定位不同、各有所长。追求简单高效、顺手好用,日常开发首选 Cursor;注重中文环境、工程化项目、国内稳定使用,选 Qoder 更合适;需要模型集成、二次开发、技术研究,再选择 Codex。

    维度 Cursor Qoder Codex
    形态 AI 编辑器 (VS Code 内核) 独立 AI IDE 模型 / 插件 / API
    上手 零成本 (VS Code 用户秒会) 中等 (新界面) 偏技术 (需集成)
    补全速度 ⚡极快 (Tab 就用) ⚡⚡较快 (思考更全) ⚡较快
    中文支持 一般 ✅极强 一般
    多文件 Agent 强 (自动改一堆文件) 极强 (多点联动) 弱 (单文件为主)
    免费额度 有 (每月有限) 有 (每日次数) 有限 (按量计费)
    付费 Pro $20 / 月 约 ¥69 / 月 按 token / 订阅
    适合谁 全栈 / 前端 / 日常开发 中文 / 后端 / 大型项目 集成 / 二次开发

    最后再来说说OpenAI Image 2使用体验

    这段时间一直在 ChatGPT 里实测 OpenAI Image2,当然博客的文章封面全部由OpenAI Image 2生成,日常做海报、产品实拍、配图,提示词抓准「风格 + 主体 + 文字标注 + 负面避雷」四要素,Image2 性价比拉满,普通用户随手写写就能产出能用的成品图。

  • PHP 8.4.21同时安装 OPcache 和 mbstring 后出现 502

    PHP 8.4.21同时安装 OPcache 和 mbstring 后出现 502

    mbstring 扩展本身并不会导致 502 错误。 如果同时安装了 OPcache 和 mbstring 后出现的 502,问题几乎可以肯定是 OPcache 引起的

    为什么安装了 OPcache 就会 502?

    问题的根源在于 PHP 8.4.21 版本中,OPcache 扩展的 JIT(即时编译)功能与当前环境存在不兼容。这可能会导致 PHP-FPM 进程因为”段错误”而崩溃,Nginx 在无法连接到后端时就会返回 502 错误。

    解决方案(二选一)

    方案一:关闭 OPcache 的 JIT 功能(推荐,保留基础缓存)

    这个方法可以保留 OPcache 的脚本缓存加速能力,同时解决 502 错误。

    1. 定位配置文件:
      在宝塔面板的 软件商店 -> PHP 8.4 设置 -> 配置文件 中修改。

    2. 修改参数:
      在配置文件中找到 opcache.jit_buffer_size 这一行,将其值改为 0。如果找不到这行,可以手动添加。

    修改前:

    opcache.jit_buffer_size=128m
    

    修改后:

    opcache.jit_buffer_size=0
    

    这个修改会关闭 JIT 功能,但 OPcache 的字节码缓存功能依然生效,对绝大多数网站的性能影响很小。

    最后重启 PHP

    方案二:暂时卸载 OPcache 扩展

    如果修改 JIT 配置后问题依旧,或者想彻底排查,可以直接卸载 OPcache 扩展。

    1. 在宝塔面板的 PHP 8.4 设置中,切换到 安装扩展 标签页。

    2. 找到 opcache,点击 卸载。

    3. 卸载后网站会立即恢复正常。

  • Twikoo评论系统魔改

    Twikoo评论系统魔改

    Twikoo 评论系统魔改记录

    最近对博客里的 Twikoo 评论系统做了一些二次开发,主要围绕前端体验和博客主题适配展开。

    这篇只记录改造方向,不展开核心逻辑。

    改造内容

    这次主要调整了评论区的前端体验:

    • 评论输入框 UI 重新整理
    • 表情、图片、AI 评论按钮收纳到左下角工具胶囊中
    • 移动端按钮尺寸缩小,避免换行和拥挤
    • 评论方式按钮重新排版
    • 深色模式单独优化配色
    • 默认头像 CDN 做了适配调整
    • Twikoo 前端资源统一放到 Hexo 静态目录

    前端资源路径

    博客中引用的 Twikoo 前端文件路径为:

    /pluginsSrc/twikoo/twikoo.all.min.js
    

    对应 Hexo 项目目录

    source/pluginsSrc/twikoo/twikoo.all.min.js

    这样可以把二开后的 Twikoo 前端文件作为博客静态资源统一管理。

    页面初始化

    博客页面中仍然通过 twikoo.init 初始化评论系统。

    示例:

    twikoo.init({
      envId: 'https://twikoo.example.com',
      el: '#twikoo'
    })
    

    其中 envId 指向 Twikoo 服务地址,前端 JS 文件则走博客自己的静态资源路径。

    这次魔改重点不是重写 Twikoo,而是让它更贴合自己的博客主题。

    主要优化了评论输入框、移动端显示、深色模式和头像显示等细节。整体思路是尽量保留 Twikoo 原有能力,只在影响实际体验的地方做定制。

  • Codex史诗级大BUG

    Codex史诗级大BUG

    高强度使用Codex的宝子们注意一下,你的磁盘可能正在遭受核打击。

    Codex当前在流式任务和长时间运行时,会以极高频率往~/.codex/
    logs_2.sqlite狂写TRACE日,这样的强度可以直接把消费级SSD直接写废,

    Codex史诗级大BUG?

    Codex 当前在流式任务和长时间运行时,会以极高频率往 ~/.codex/logs_2.sqlite 狂写 TRACE 日,这样的强度可以直接把消费级 SSD 直接写废。

    快检测一下自己有没有中招:

    提示词:帮我检测 ~/.codex/logs_2.sqlite 是否因 TRACE 日志持续高频写盘?

    如果真的中招了,再输入这个提示词赶紧止损吧
    提示词:中招了就直接先备份,再用 SQLite trigger 拦截 logs 表, 并 checkpoint/truncate WAL,最后采样确认 MAX(id) 和 WAL 不再增长。

  • 为什么越来越多的网站开始采用前后端分离?

    为什么越来越多的网站开始采用前后端分离?

    为什么越来越多的网站开始采用前后端分离?

    从传统的 PHP 网站,到如今流行的 Vue、React、Go、Node.js,越来越多的项目都开始采用「前后端分离」架构。那么,它到底解决了哪些问题?又为什么逐渐成为现代 Web 开发的主流?

    前言

    如果你接触过早期的网站开发,应该对这样的架构并不陌生。

    浏览器发起请求,服务器负责处理业务逻辑、查询数据库、渲染 HTML 页面,最后再返回给浏览器。

    整个流程看起来十分简单:

    浏览器
       │
       ▼
    PHP / Java / ASP.NET
       │
       ▼
    MySQL
    

    对于小型网站来说,这种模式开发效率很高,但随着业务越来越复杂,它的局限性也开始逐渐显现。

    什么是前后端分离?

    很多人第一次听到「前后端分离」,都会误以为只是把一个项目拆成两个项目。

    其实并不是。

    前后端分离真正的核心思想只有一句话:

    页面负责展示,服务负责数据。

    浏览器不再直接请求页面,而是通过 API 获取数据。

    整个流程变成了:

    浏览器(Vue / React)
            │
            ▼
         REST API
            │
            ▼
    Go / Java / Node.js
            │
            ▼
     MySQL / Redis
    

    后端不再负责拼接 HTML,而是统一返回 JSON 数据。

    前端则根据这些数据完成页面渲染。

    为什么越来越多人选择这种架构?

    1、一套接口,多端共享

    传统网站通常只有 PC 页面。

    后来又陆续出现了:

    • H5 页面
    • 微信小程序
    • Android App
    • iOS App
    • 桌面客户端

    如果还是采用传统模式,就意味着需要重复开发很多业务逻辑。

    而前后端分离之后:

    Vue
    React
    Flutter
    UniApp
    小程序
       │
       ▼
     同一套 API
    

    所有客户端都可以调用同一套接口。

    开发效率得到大幅提升。

    2、前端体验更流畅

    现代前端框架拥有很多优秀的能力,例如:

    • 组件化开发
    • 路由管理
    • 状态管理
    • 动画过渡
    • 局部刷新

    用户切换页面时,不需要重新加载整个网站。

    整个操作体验会更加丝滑。

    这也是为什么现在很多网站看起来更像一款桌面软件。

    3、后端更加专注

    以前的后端开发需要同时负责:

    • 页面模板
    • HTML
    • CSS
    • SQL
    • 业务逻辑

    项目越来越大之后,代码会变得非常臃肿。

    采用前后端分离之后,后端只需要关注:

    • 用户认证
    • 数据处理
    • 权限控制
    • API 设计

    页面展示完全交给前端完成。

    职责更加清晰,也更容易维护。

    前后端分离有哪些优势?

    总结下来,大致可以归纳为下面几点。

    优势 说明
    开发效率更高 前后端可以同时开发
    多端共享 一套 API 支持多个客户端
    更容易维护 职责划分更加清晰
    更方便扩展 后续增加 App、小程序成本更低
    部署更加灵活 前端、后端可以独立部署

    对于中大型项目来说,这些优势非常明显。

    有没有缺点?

    任何架构都不是万能的。

    前后端分离同样存在一些问题。

    SEO

    如果只是普通 SPA 应用,搜索引擎可能无法很好地抓取页面内容。

    因此现在很多项目都会采用:

    • SSR(服务端渲染)
    • SSG(静态站点生成)
    • ISR(增量静态生成)

    来兼顾 SEO 和用户体验。

    项目数量增加

    以前只有一个项目。

    现在可能会变成:

    frontend
    backend
    gateway
    nginx
    redis
    mysql
    

    开发、部署、运维都会稍微复杂一些。

    不过随着 Docker 的普及,这些问题已经没有以前那么明显了。

    所有项目都适合前后端分离吗?

    其实并不是。

    如果只是:

    • 企业官网
    • 个人博客
    • 宣传页面
    • Landing Page

    传统开发模式依然非常高效。

    但是如果项目包含:

    • 用户中心
    • 管理后台
    • App
    • 小程序
    • 开放 API
    • 第三方接入

    那么采用前后端分离会更加合适。

    我的理解

    在我看来,前后端分离最大的意义,并不是使用了 Vue、React 或者 Go。

    真正重要的是:

    让不同的系统各司其职。

    前端专注于用户体验。

    后端专注于业务逻辑。

    数据库专注于数据存储。

    每一层都有自己的职责。

    当项目越来越大时,这种架构带来的维护优势会越来越明显。

    如果这篇文章对你有所帮助,欢迎收藏、分享,也欢迎交流你对前后端分离架构的理解。

  • 聊聊嵌入式数据库

    聊聊嵌入式数据库

    提到数据库,大多数人首先想到的都是 MySQL、PostgreSQL 或 Redis。但近年来,越来越多的桌面应用、浏览器扩展、边缘计算、IoT 设备,甚至一些后端服务,也开始选择使用嵌入式数据库。那么,什么是嵌入式数据库?它又有哪些优势?

    什么是嵌入式数据库?

    嵌入式数据库(Embedded Database)是一种直接集成到应用程序内部的数据库。

    它不像 MySQL 或 PostgreSQL 那样需要单独安装数据库服务,而是作为一个库文件随程序一起运行。

    也就是说:

    • 没有数据库服务器
    • 没有独立进程
    • 不需要监听端口
    • 不需要额外部署

    应用程序可以直接读写数据库文件。

    整个架构更加轻量。

    与传统数据库有什么区别?

    传统数据库通常采用客户端 / 服务端架构。

    应用程序
        │
        ▼
    MySQL Server
        │
        ▼
    数据库文件
    

    而嵌入式数据库则更加简单。

    应用程序
        │
        ▼
    嵌入式数据库
        │
        ▼
    数据库文件
    

    整个过程不需要网络通信,也没有额外的数据库服务。

    常见的嵌入式数据库

    目前比较流行的嵌入式数据库主要有下面几种。

    数据库 特点 适用场景
    SQLite 最经典、最成熟 手机 App、桌面软件
    BoltDB Go 原生 KV 数据库 Go 项目、本地配置
    bbolt BoltDB 的维护版本 Go 服务
    BadgerDB 高性能 LSM 数据库 缓存、本地索引
    Pebble CockroachDB 使用 高性能 KV
    LevelDB Google 开源 浏览器、缓存
    RocksDB Facebook 开源 大数据存储
    LMDB 内存映射数据库 高性能读取

    不同数据库各有特点。

    例如 SQLite 更偏向关系型数据库。

    而 BoltDB、BadgerDB 更适合作为 Key-Value 存储。

    为什么越来越受欢迎?

    1. 部署简单

    这是最大的优势。

    很多 Go 项目最终只需要一个可执行文件。

    如果数据库也是嵌入式的,那么部署时甚至只需要:

    app
    data.db
    

    无需安装:

    • MySQL
    • PostgreSQL
    • Redis

    整个部署过程非常简单。

    2. 性能并不差

    很多人认为:

    "没有数据库服务器,性能会不会很低?"

    实际上并不是。

    由于嵌入式数据库:

    • 没有网络通信
    • 没有 Socket
    • 没有 TCP
    • 没有 SQL 解析(部分数据库)

    很多简单读写场景反而更快。

    特别是:

    • 配置读取
    • 缓存
    • 日志
    • 本地索引

    性能往往非常优秀。

    3. 更容易发布

    很多开源项目都会提供:

    Windows
    
    Linux
    
    macOS
    

    三个版本。

    如果依赖 MySQL。

    用户还需要:

    安装数据库

    初始化

    创建用户

    导入 SQL

    配置连接

    而嵌入式数据库只需要:

    下载
    
    启动
    
    开始使用
    

    用户体验会好很多。

    4. 数据天然本地化

    很多桌面软件都会把数据保存在:

    config.db
    
    history.db
    
    cache.db
    

    复制数据库文件即可完成:

    • 备份
    • 迁移
    • 恢复

    不需要额外导出 SQL。

    有没有缺点?

    当然有。

    不适合高并发写入

    虽然很多嵌入式数据库支持并发。

    但对于:

    • 电商
    • 社交平台
    • 大型论坛

    这种高并发业务。

    仍然推荐:

    • MySQL
    • PostgreSQL

    因为它们拥有更加成熟的事务管理。

    不适合多台服务器共享

    嵌入式数据库本质上还是一个本地文件。

    例如:

    server-a
        │
    data.db
    
    server-b
        │
    data.db
    

    两台服务器不能同时写同一个数据库文件。

    因此:

    分布式

    主从同步

    读写分离

    这些能力通常需要额外实现。

    哪些项目适合使用?

    下面这些场景,其实都很适合。

    • 浏览器扩展
    • 桌面应用
    • Electron 项目
    • CLI 工具
    • NAS 应用
    • IoT 设备
    • 单机服务
    • 本地缓存
    • 配置中心
    • 日志系统

    很多人每天都在使用 SQLite。

    例如:

    • 微信
    • Chrome
    • Firefox
    • VS Code(部分数据)
    • Android
    • iOS

    它们内部都有 SQLite 的身影。

    Go 为什么喜欢嵌入式数据库?

    近年来越来越多 Go 项目开始采用:

    • bbolt
    • BadgerDB
    • Pebble

    原因很简单:

    Go 推崇:

    一个二进制文件完成部署。

    如果数据库也采用嵌入式。

    整个项目最终可能只需要:

    app
    config.yaml
    data.db
    

    部署体验非常优秀。

    这也是很多个人开发者和开源项目喜欢它的重要原因。

    选择数据库,不是追求"最强",而是找到最适合自己项目的方案。