通过 Hexo 博客完成 NIP-05 验证
让 Hexo 在生成时包含.well-known 目录编辑 config.yml,添加如下配置: 12include: - ".well-known/**" 转换公钥格式Damus 生成的 npub 开头的公钥不能直接用,要先转换成十六进制格式的公钥。可以用这个网站来转换。 把 npub 开头的公钥粘贴进 damus key 一栏,hex key 会自动计算出来,复制 hex key 的内容备用。 创建文件在 source 目录下新建一个名为.well-known 的目录,然后在.well-known 目录中创建 nostr.json,填写如下信息: 12345{ "names": { "你的用户名": "刚刚转换得到的hex key" }} 在本地运行 hexo clea..
更多无线HDMI还是有线HDMI,亦或是KVM?
Foreword 刚好看到有人讨论怎么解决PC从卧室连到客厅TV的问题,年初刚好实践了一波,可以分享一下经验 https://www.v2ex.com/t/925767#reply33 无线HDMI 无线HDMI目前大概有三种方案,这里就按照无线频段来分,每种应对的情况都不太一样,可能有的地方也叫什么毫米波HDMI,就是个噱头而已,本质上就是WIFI而已,以下例子都是随便搜的,不做任何推荐,具体的要实际测试 2.4G 无线HDMI 这种使用2.4G的,最多1080P60HZ,可能有的还是1080i,挺搓的,2.4G由于被占用的非常多,很容易受干扰。这种只推荐在户外使用,或者在网络信道特别干净的地方用。对于这个没啥高要求的,只要求能显示,可以考虑一下。 5.8G 无线HDMI ..
更多Office365订阅一次免费5年
Foreword 这Bug都1年多了吧,怎么还没修,真的离谱。简单说Office365订阅只需要付费一次,可以续订最多5年,非常离谱 Office365订阅 https://www.microsoft.com/zh-cn/microsoft-365/buy/compare-all-microsoft-365-products?tab=1 这个bug只有家庭版和个人版可以用,其他版本应该不行。 直接官网订阅一个月,不要买一年的,订阅当日是不能取消订阅的,会提示错误,要等0点以后 用支付宝或者银行卡直接买就行了 https://account.microsoft.com/services/microsoft365/details#billing 到了第二天,进到..
更多文心一言与ChatGPT短评
Foreword 最近类ChatGPT非常火爆,但是我并不看好,谈一谈我自己的观点 对比 文心一言 文心一言是16号发布的,我十七号拿到了测试资格 https://yiyan.baidu.com/ 简单的解释一下人工势场,测试结果只能说十分离谱了。 不是很清楚百度的数据源到底是什么,但是很明显百度这个实在是差太远了,基本等于胡扯。 AI的未来是什么 我觉得是可信数据 自然语言理解与知识库 Summary …. Quote 先放着
更多JDBC 的事务和隔离级别
这里简单写一下我对 JDBC 的事务和隔离级别的理解。 名词解释事务数据库事务是 DBMS 执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。一个事务一定是具有原子性(atomic)、一致性(consistency)、隔离性(isolation)、持久性(durability),即 ACID。一个事务会包含一个或多个数据操作语句(data-manipulation statements) 和查询语句。通常来说,事务会依照如下的流程执行: 开始一个事务 执行一系列操作或查询语句 如果没有发生错误,则提交这个事务,并将其结束 如果发生了错误,则回滚这个事务,并将其结束。 ACID Atomic 原子性,即一个事务内的所有操作都被作为一个整体看待,要么全部成功,要么全部失败 Cons..
更多看懂 ParallelGC 的日志
在排查垃圾回收相关的问题时,一个必不可少的技能就是要能看懂 Java 的垃圾回收日志。本文将介绍打印 GC 日志相关的 JVM 参数,以及使用不同参数时 JVM 将会打印出的日志内容。 JDK 版本123openjdk version "1.8.0_232"OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_232-b09)OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.232-b09, mixed mode) 示例代码在演示过程中,我们将通过在死循环中构造大对象的方式来触发垃圾回收 12345678public class GCExample { public static void ..
更多Java 的线程安全,以及死锁
刚才面试的时候被问到了关于线程安全和死锁的问题,有点露怯,故赶紧查漏补缺,记录于此。 线程安全 线程安全是程序设计中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的公用变量,使程序功能正确完成。 乐观锁与悲观锁 乐观锁:认为在使用数据时,不会有别的线程修改数据,所以不会加锁,只在更新时判断之前有没有被别的线程更新了数据。比如在数据库中设置一个 version 字段,在更新前先查询该字段的值,然后在写入时比较数据库中的值是否与之前查询到的值相同。 悲观锁:认为自己在使用数据的时候,一定有别的线程来修改数据,因此在获取数据的时候先加锁,确保数据不会被线程修改。 如何保证线程安全 syncronized 关键字,举例:ConcurrentHashMap。是悲观锁。 锁升级机..
更多Spring bean 的作用域
在 Spring 中,那些由 IoC 容器所管理的对象被称之为 bean。而一个 bean 的定义,其实只是一个 “蓝图”,指导着 Spring 如何去创建这样一个 bean。而在这个蓝图中,有一个属性叫做 “作用域”,它规定了这个 bean 的可见范围。这里我们看一下 Spring 的 bean 都有哪些作用域。 支持的作用域我们先来看一下 Spring 支持哪些作用域。 作用域 说明 singleton 在 Spring 容器中仅存在一个 bean 的实例,bean 以单例形式存在。这是默认的作用域 prototype 每次从容器中获取 bean 时,都将生成一个新的实例,即相当于每次都执行 new xxxBean() request 在 HTTP 请求 (reque..
更多Spring Boot 自动配置的原理
在使用 Spring Boot 时,最使我们收益的一个功能就是它的自动配置。但是,用了这么久的自动配置功能,有没有想过它是怎么实现的?本文将从源码入手,一步一步搞明白 Spring Boot 自动配置的原理。 我这里就用一个简单的 Eureka server 的项目来举例。实际上只要是个 Spring Boot 项目就可以,我只是懒得再创建一个新的项目了。 它的启动代码我们都很熟悉,是这样子的: 123456789@SpringBootApplication@EnableEurekaServerpublic class EurekaServer { public static void main(String[] args) { SpringApplication.run(Eure..
更多循序渐进写一个 Servlet (5) - Filter
Servlet(Server Applet),全称 Java Servlet,是用 Java 编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。本系列将一步步地写出一个 Servlet 程序。 这篇博文将演示如何创建和使用 filter。 什么是 Filter当客户端向 servlet 容器发送请求时,请求通常会直接发送到 servlet 进行处理,就像下图这样: 但是,如果希望在请求被 servlet 处理之前和之后,再进行一些附加的处理,就可以使用 Filter 完成。 一个常见的使用场景是,在 filter 中定义如何检查请求是否合法,比如请求头中是否携带了有效的认证和鉴权信息;或者可以在 filter 中针对请求和响应记录日志。 怎么使用 Filterjav..
更多