twikoo找回管理员密码
twikoo找回管理员密码前言距离上一次维护网站,已经过去很长很长一段时间了。中间那阵子,我一直在调整自己的生活状态,后来又搬到了另一个城市生活,更是完全没了心思去管网站的事。一直到去年年底,域名和服务器同时到期——服务器咬咬牙还是续上了,域名却换成了一个便宜的新域名。之后就是一点一点地把网站内容往新域名迁移,又折腾了新域名的备案。最近备案总算通过,网站也终于重新上线。可结果,发现 twikoo 的暗号和管理员密码早已被忘得一干二净。于是,便有了这篇关于「twikoo 找回管理员密码」的记录。
部署方案说明我的 Twikoo 是通过 Vercel 部署的,数据库用的是 MongoDB。接下来的操作步骤和截图,也都是基于这套环境来展开的。
浏览器控制台找回暗号(HIDE_ADMIN_CRYPT)先解决「暗号」的问题。这个其实不用去翻数据库,直接在浏览器控制台就能看到:
打开网站首页,按 F12 打开开发者工具,切到 Network 面板。
刷新页面,等 twikoo 加载完成后,在 Network 的过滤框里搜索 HIDE_ADMIN_CRYPT。
进到 MongoDB 查看 tw ...
Kotlin 数据类型
Kotlin 数据类型使用var定义变量
var b: Int = 1// val 创建常量val a = 1
所有的数据类型都是对象 Int
public actual class Int private constructor() : Number(), Comparable<Int>public actual abstract class Number { /** * Returns the value of this number as a [Double], which may involve rounding. */ public actual abstract fun toDouble(): Double /** * Returns the value of this number as a [Float], which may involve rounding. */ public actual abstract fun toFloat(): Float /** * Retur ...
Docker 部署 File Browser 文件管理系统
Docker 部署 File Browser 文件管理系统1. File Browser 介绍File Browser 是一款基于 Go 语言开发的开源、轻量级、跨平台的 Web 文件管理工具。
它允许用户通过浏览器访问和管理服务器上的文件,支持 Windows、macOS、Linux 等多种操作系统。
FileBrowser 具备文件的上传、下载、复制、移动、重命名、在线预览及编辑等功能,还提供多用户支持与精细的权限控制,可设置不同用户对文件和目录的访问权限。
此外,它支持连接 FTP、SFTP、S3 等远程存储,方便用户管理远程文件,并且能够通过生成带密码或有效期的外链来实现文件分享。
官网:https://filebrowser.org/GitHub:https://github.com/filebrowser/filebrowser
官网在线体验地址:https://demo.filebrowser.org/用户名: demo密码: demo
2. 安装以下是使用Docker安装的步骤:
创建本地存储目录
# File Browser的数据文件存储目录mkdir -p /my ...
JavaFX初学
JavaFX初学1. Scene Graph(场景图)JavaFX 的场景图是一个树状数据结构,表示应用程序的所有 UI 组件。
层次结构:Stage (舞台) → Scene (场景) → Parent (根节点) → Nodes (子节点)
2. 事件机制JavaFX 使用事件驱动编程模型,基于观察者模式。
主要事件类型:
ActionEvent:按钮点击等
MouseEvent:鼠标相关事件
KeyEvent:键盘事件
WindowEvent:窗口事件
3. 常用容器和布局方法VBox - 垂直排列
VBox vbox = new VBox(10); // 10像素间距vbox.setPadding(new Insets(15)); // 内边距vbox.setAlignment(Pos.CENTER);
HBox - 水平排列
HBox hbox = new HBox(10);hbox.setPadding(new Insets(10));hbox.setAlignment(Pos.CENTER);
BorderPane
BorderPane borderPane = ...
hexo+butterfly目录显示问题
Hexo+butterfly博客网站文章目录编号异常写完文章后在Typora中查看大纲目录正常,但是推送后在网页看到数字编号出现重复问题,如下图
其实就是butterfly这些主题框架都内置了一个目录编号,在butterfly的_config.yml文件中找到toc中的number属性并修改为false即可。
好像next也有这样子的情况,应该也是修改配置文件中的这个属性就可以。
原属性值为true,会自动为各级标题添加编号并在目录显示,如果没有写标号的习惯还想要也可以设置为true
cursor
Cursor一、下载安装下载和安装好像是很傻瓜的,在官网下载了直接安装包点点就ok了,然后在官网注册一下账号并且登录到应用就可以了
官网地址:https://cursor.com/cn
二、配置看起来就是类似vscode的应用,甚至还有一键从vscode导入设置的选项,但是本地电脑没咋用vscode写前端所以没啥可以迁移的
像vscode一样在插件市场安装了一个中文插件将软件汉化,名字是Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code
然后有一个是要配置一下java的开发环境
设置我的JAVA_HOME和MAVEN_HOME,在setting.json中添加了如下内容吗,然后好像是重启就可以辽
{ "java.home": "F:/java/jdk/jdk-11.0.23", "java.configuration.maven.userSettings": "F:/maven/apache-maven-3.9.6/ ...
Linux持续写入的日志如何清理
Linux持续写入的日志如何清理如果一个日志正在持续写入,但是它的内容太多了,占用了很大的内存,这时候如果想要清理的话,直接删除是不行的,因为一旦删除这个文件就不存在了,应用
会因为找不到日志文件而报错。
那么可以通过以下方式清空文件内容:
> application.log或者cat /dev/null > file_name或者echo "">file_name
RAG是什么
RAG是什么RAG 的全称是:Retrieval-Augmented Generation,翻译成中文是:检索增强生成。
说人话就是——让大语言模型(比如 ChatGPT)在生成答案之前,先去找资料(检索)来增强它的知识,再用这些资料来生成更准确的回答。
如何构建一个RAG
前置准备
首先我们需要做数据准备,把你要用的资料收集好,比如:公司内部文档(PDF、Word、Markdown)、FAQ 列表、产品手册等,然后清洗这些数据,比如
去掉无关信息、切分成合理的小段。
然后把每一小段文本用 Embedding 模型转成向量,把这些向量存到向量数据库里,比如 FAISS、Milvus 等。
检索查询
当用户提问时,先用相同的 Embedding 模型把问题也转成向量。然后在向量数据库里用向量相似度搜索,找出最相关的几段资料(比如 Top 5)。这些找到
的内容就是上下文增强材料。
生成回答
紧接着,就可以把用户的问题 + 检索到的资料一起,作为 Prompt 发给大语言模型(LLM)。 这样可以保证模型只在资料范围内生成答案,降低幻觉。
RocketMQ如何保证消息不丢失
RocketMQ的消息想要确保不丢失,需要生产者、消费者以及Broker的共同努力,缺一不可。
首先在生产者端,消息的发送分为同步、异步两种和单向发送(单向发送不保证成功,不建议使用),在同步发送消息的情况下,消息的发送会同步阻塞等待 Broker 返回结果,在 Broker 确认收到消息之后,生产者才会拿到 SendResult。如果这个过程中发生异常,那么就说明消息发送可能失败了,就需要生产者进行重新发送消息。
try { SendResult sendResult = producer.send(msg); // 同步发送消息,只要不抛异常就是成功。 if (sendResult != null) { //重试逻辑 }}catch (Exception e) { //重试逻辑}
异步发送的时候,会有成功和失败的回调,这还是需要在失败回调中处理重试确保成功
// 异步发送消息, 发送结果通过callback返回给客户端。producer.sendAsync(msg, new S ...
RocketMQ如果丢消息了,可能的原因是什么
发送端用了单向发送RocketMQ 提供了一种发送方只负责发送消息,不等待服务端返回响应且没有回调函数触发,即只发送请求不等待应答的发送方式,叫做单向发送。
producer.sendOneway(msg);
用了这种发送方式,是非常有可能发送不成功,导致消息丢失
未处理发送失败的情况
如果使用了同步发送或者异步发送,但是没有处理好异常的情况,没有进行合理的重试,那么也会导致消息丢失
同步
try { SendResult sendResult = producer.send(msg); // 同步发送消息,只要不抛异常就是成功。 if (sendResult != null) { //忽略失败 }}catch (Exception e) { //忽略异常}
异步
// 异步发送消息, 发送结果通过callback返回给客户端。producer.sendAsync(msg, new SendCallback() { @Override public void ...
