• 博客说旨在全收录优质的中文个人博客,提供博客收录、文章聚合展示等功能,欢迎来这里发现有趣的博友以及他们的最新动态!如果您拥有一个独立博客,就赶快申请加入吧!

又刮到别人车了,第三次报保险!

唉,自认为也算个老司机,没想到在熟悉的地方(自家小区)“翻车”了,买的保险终于又用上啦! [...]

[完整摘要]

拾月周刊(第39期):有福吃粮

本周封面:有福吃粮。 [查看全文...]

[完整摘要]
· 3小时前
· 166次浏览 ·

被截断的表情符,差点让我怀疑人生

本文探讨了在保存博客文章时,由于包含 Emoji 或特殊字符而导致 MongoDB 报错的问题。作者在尝试保存文章时,遭遇了 `DataIntegrityViolationException` 异常,经过调试发现,问题源于使用 `substring` 方法截取字符串时,导致 Emoji 的代理对被截断,产生了不合法的 UTF-8 编码。由于 Java 的字符串是基于 UTF-16 编码,普通字符和高位字符(如 Emoji)在内部表示上有所不同,因此简单的字符截断容易导致非法字符出现。为了解决这一问题,作者建议使用 Unicode 码点进行截断,以确保字符串按完整字符处理。通过使用相关 API,如 `codePointCount()` 和 `offsetByCodePoints()`,可以有效避免截断问题,从而确保在保存到 MongoDB 时不会出现编码错误。整体而言,文章强调了处理字符串时需关注字符边界,以提高开发体验。

[完整摘要]

实例到期,阿里99计划启动

AI摘要 博主的阿里云服务器实例到期,由于预算限制,决定不再以活动价续费,转而启动阿里99计划。阿里云服务器主要用于挂载旧博客以保证备案有效性。通过宝塔面板,博客迁移顺利,访问速度提升。博主计划不再续费其他云资源,保留搬瓦工和阿里云99,一年费用约四五百。 此内容根据文章生成,不代表个人观点,仅用于文章内容的解释与总结 前两天收到阿里的短信,提醒博主有一个服务器实例即将到期。这个实例也是之前趁活动买的,不到一百块一年,可以以活动价续费两次,配置是1H2G。现在到期也是活动续费后的最后一次,预算着无法再以活动价续费了。 很早之前博主就在阿里云物色新的服务器替代方案,在之前博客云计划中有提高过,阿里云的服务器主要是用来挂载旧博客,用来保证备案的有效性。当然,事实上主要是为了保证备案的有效性。因为博客主域名是走的阿里备案,所以必须要解析到所在服务器厂商。 因此,对服务器的配置也没啥要求,能挂旧博客,能保证备案域名解析上就行。无奈,阿里云似乎一直没有新的服务器优惠活动,一直就只有那个99计划。直到618过了,到期短信接二连三的提醒下,博主不得不接受这个事实,只能开启阿里99计划。 博客迁移很顺利,通过宝塔面板建站。所有操作都是可视化的。站点文件,数据库文件导出来再导入新的面板即可。这也相当于变相的给旧博客提升了访问速度,现在大家看到的旧博客就是进阶版的:https://blog.liuqingwushui.top/ 搬瓦工的服务升级和阿里云99计划,让博主之前所制定的云资源计划功亏一篑,再次诠释了什么叫真正的计划赶不上变化。哎~不过总归是越来越好就行。 现在博客所拥有的云资源服务器如下: 等其他的陆续到期就不续费了,暂定是保留搬瓦工和阿里云99吧。这两个加起来一年就四五百了。

[完整摘要]

初识 Java 及数据类型 | Java语言基础

之前发过一期简单的入门《 Java 上的HelloWorld,怎么这么多细节?》 ,接下来将会是系统地学习Java之旅~ JavaSE & JavaEE Java Standard Edition Java Enterprise Edition 开发桌面应用和简单服务器程序 用于开发大型、分布式企业应用和Web应用 核心语言特性和基本API(如I/O、网络、GUI) 企业级API(如Servlet、JSP),特性更广泛、复杂 适合小型和中型应用 适合大型应用 可在标准JVM上运行 需要特定的应用服务器 Java的发展历史 Java之父 —— 詹姆斯·高斯林(James Gosling),Sun 公司(后被Oracle收购) 1995年PC互联网时代,5月时以Java名称发布,提出“Write once, run anywhere.”口号。 能实现跨平台的主要原因就是编译后的 *.class 文件,可以跨平台运行。 JDK安装和后续文章环境说明 环境:JDK安装路径不要有中文,以后装软件里面也不要有中文。如果是多个Java版本请设置PATH指定命令行中使用的开发环境版本(如果是IDE内,直接软件内切换即可) 集成开发环境IDE:IDEA Community 2022.1.4(社区版)免费,软件寻找:Bing搜索idea→IntelliJ IDEA→“下载”按钮→软件图片右下角“其他版本”→看第二列Community部分的,下拉找到2022.1.4中 2022.1.4 – Windows x64 (exe) 后续文章中的环境(如果没有特殊说明的话): Windows 11、 JDK17(17.0.9)、IDEA Community 2022.1.4 如果向他人请教Java编程中的疑问,请先附上自己的环境~ PATH配置路径:(Windows 11)右键任务栏的开始选择设置→系统...

[完整摘要]

本站启用 Brotli 压缩

作为老一辈 BUG 开发艺术家,我难免有很多经验主义。比如祖传 nginx 配置使用 Gzip 压缩,我从未怀疑过其正确性,直到使用 EdgeOne 后知道了 Brotil 压缩: 节点对资源进行 Gzip 或 Brotli 压缩,减小传输文件大小,提升请求资源的加载速度。若同时开启了 Gzip 和 Brotli 压缩,优先响应 Brotil 压缩。 EdgeOne 优先响应 Brotil 引起了我的重视。搜索后了解到以下关键信息: Brotli 是 Google 在 2015 年 9 月推出的一种压缩算法,相比其他压缩算法具有更高的压缩效率。Brotli 使用变种的 LZ77 算法、Huffman 编码以及二阶文本建模等方法进行数据压缩。Brotli 压缩算法具有多个特点,包括: * 针对常见的 Web 资源内容,Brotli 的性能比 Gzip 提高了 17-25%; * 当 Brotli 压缩级别为 1 时,压缩率比 Gzip 的最高级别 9 还要高; * 在处理不同的 HTML 文档时,Brotli 依然能提供非常高的压缩率。 一言以蔽之,Brotli 除兼容性外优于 Gzip。而这个兼容性排除掉的是 IE 等古早浏览器,另外必须是 HTTPS 下才能使用 Brotli 压缩。 至此再无犹豫,我立即启用 Brotli 压缩替代 Gzip。在 Debian 12 下只需两步: 安装扩展: apt install libnginx-mod-http-brotli-filter 修改 nginx 配置 /etc/nginx/nginx.conf: http { …… brotli on; brotli_comp_level 6; brotli_types text/html text/plain text/css text/xml appl...

[完整摘要]

居民身份证的更换与激活

像银行卡一样,居民身份证也是有使用年限的,我的身份证终止日期是2025年9月23日。 年初就看到各大官媒在说,今年9月份身份证到期的人数很多,建议大家提前去办理,错锋出行为好。 行政中心办理身份证更换业务,需要在上班时间操作。我只能凑个单位组织活动的下午,赶在下班前的一点空余时间,换了件黑色的立领短袖T恤,一路小跑去办理。 到了更换居民身份证的窗口,让我先去拍照处拍照片。摄像师是一位年轻的美女辅警,笑容可掬,招呼我端坐在背景布前的方凳上,指挥我侧脸低头,试拍了一张,觉得脸不够正,又重新拍了一张,让我确认满意后完成拍照。 我爱人一起去的,女人家脸上搽了面油,有些反光,现场还备了粉底,搽了后重新拍,服务态度热情周到。我开玩笑说能不能美颜一下,摄像师笑着回答,我们还是要原汁原味的。 拍了照片,重新来到办事窗口,有个工作人员指引我来到一台机子前,放上旧的居民身份证读取信息,进行核对个人信息;又录取了左右大拇指的指纹信息,每个指纹要录三遍;输入新居民身体证的邮寄地址和手机号码,默认是身份证的地址;最后支付了20元工本费。完成后机子打印出一张“居民身份证领取任证”,说明新的身份证预计在受理后10至15个工作日通过邮政EMS速递送达。 爱人的身份证在机子上读不出来,工作人员问是否办过多张身份证,让她到窗口上办理,没查询到多张身份证,顺利办理了。凭证上有句“收到居民身份证后,本人应在1个月内将新证到就近派出所(或办证中心)进行证件核验;属换证的,还需交回旧居民身份证”被划了线,不知是表示强化,还是作废的意思。 过了10天时间,就收到了新证,邮政还制作了“浙江省第1亿张二代居民身份证纪念封”的封套来包装。新身份证的使用时限是长期,再不用更换了。 爱人拿着新证,到了办证中心,被指引到机子上激活操作,问旧的身份证要不要回收,被告之自己留住纪念,妥善保管就行。我的身份证,她也代为激活了。这和网上的...

[完整摘要]

打台球

打台球是门学问。 小王没学过,但处于新手保护期的他总是能歪打正着地一杆进洞,这让常年混迹台球厅的小李有点看不惯了。小李教育小王,打球是有规矩的,不是说看到那颗球离得最近就打谁,而且球的角度、反弹的落点都是有精妙的物理学知识蕴含其中,若不能深知这里面的规则,就永远打不好球。 说话间,小王又一杆猛推,摆球在桌面反弹了好几下,把一个八竿子都打不着的球撞进了洞里,小李有些恼火,认为这失了台球的风范。 小王不解:「台球桌上的目标是什么?」 小李见这个门外汉问自己领域内的问题,来了精神:「进球得分。」 「那我不是进球了嘛,你管那么多过程干什么。」 他有些着急,解释道:「话不能这么说,台球也是一门艺术一门学问,球的角度也是这门学问必须要领会的东西。」说话间,小王失了一颗球,正好换小李接球。 小李在台面上仔细端详,拿着球杆比划角度、用球杆作为路径计算弹射的入射角与出射角,看上去不像是在打台球,而是在研究一份物理学报告(虽然是最初级的力与反作用力的物理学报告)。经过一番精确的计算,他推杆发球,但是球并没有向他预想的方式行进,最终错失了机会。见没进球,小李有些生气:「你怎么把巧克拿走了,我就说球杆怎么跟摆球打滑了。」 「诺诺诺给你,就好像擦了巧克就能进球一样。」小王学着小李的语气暗讽道,他上去二话不说,找准了某个刁钻的角度,一个用力推杆,白球又是在桌面上来回弹射,又把一个想都没想通的球给撞进了洞里,小王瘪了瘪嘴:「要不要下一把给你拿个量角器来算了,计算那么久还不如我呢。」 「你那是运气好,一般来说新手都有保护期的。」 「行行行,你去玩电脑游戏啊,那上面有折射线瞄准呢。」 「我不想跟你这种不专业的人打球,我在给你讲这门学问里的东西,正是因为是学问,我们才要虚心地接受学习。」 小王又暴力灌进了一颗球,不屑地问道:「那你觉得你学得够多吗,什么球都会吗?」 「这不仅仅是台球,还是力学知识的实际运用。」...

[完整摘要]

乙巳年五月廿七,小雨,崇德观归愿

北京那趟没能去成白云观。原本计划好答辩完过去走一圈,写在去年博客里,算是一个很早就留下的愿望。但那天时间太紧,要赶回重庆、事情堆在一起,最后白云观就成了行程表里被删除的最后一行。也没什么遗憾,只是觉得,如果有个地方能让人收个尾,应该是件挺安稳的事。 答辩那天是阳历六月七日,北京海淀,我说“好像有什么东西,可以收进抽屉里了”。这话讲完,还是觉得有点空。那种“收起来”的感觉,不是来自论文通过,而是来自心里真有个地方,把这段事放进去,锁起来,不再时常反复打开去想。 所以今天下午,去了崇德观。 其实半个月前就来过一次,那是五月初四(6月2日),那天也下着小雨。答辩还没开始,心里没底。那天在山里走了一会,道观不大,人也不多,拜了香,也说了几句话,大致的意思是希望自己能顺利把这段路走完。如果可以,希望能在答辩后回来一趟,把这事讲清楚,也算是和自己有个交代。 今天去了,天气还是一样的小雨。雨不大,不冷,山气湿润,整个人也慢了下来。感谢那段难熬的过程有了结尾,感谢一路上有人推了我一把,也感谢自己当时没放弃。 最近的生活挺乱的。工作上的事、人际上的事,琐碎但消耗人,很多时候觉得烦,也觉得累。今天站在殿外,看见香火一点点燃起来的样子,突然就没那么烦了。不是说事情就解决了,而是觉得可以慢一点,想清楚一点,把重要的事摆在心里,不重要的就顺其自然。 愿望是6月2日许下的,今天,是它结束的地方。没去成白云观,但这一趟崇德观,好像也能把那个“愿”安安静静放下了。不是每一件事都非要在原定的地方收尾,山水有灵,心里有念,愿望就已经到了。 这页翻过去,真的轻了一点,也希望接下来,一切顺遂! 书于遵义,小雨。 乙巳年五月廿七,小雨,崇德观归愿最先出现在重光阁-Jundong's Blog。

[完整摘要]

Velas Weekly Issue 13

大家好,这里是为了不让这个系列变成年更所以临时加更了一期而成功将 Velas Weekly 变成半年更的 Zeee。 这期主要是想报告电波站在今天以及过去6个月间的一些更新与调整。 留言时昵称和邮箱不再绑定 大概这是这次电波站更新的重中之重。但虽说是重磅更新,如果我不提一嘴估计没有人会发现。 自 2019 年 Velas 增设留言功能之初,整个设计就一直是基于“用户登录”的思路写的。 也就是说,在用户第一次留言时,系统会将用户输入的昵称与邮箱注册为一个没有密码的“账号”。之后的每次留言,用户都必须使用相同的昵称和邮箱组合才能使用该“账号”;其他人也无法单独使用某一个曾用过的邮箱或昵称来留言。 这样做最大的好处是可以降低他人“冒充身份”的风险。 举个例子,假设“Z 某”之前曾在电波站留言。那么其他人如果想用这个昵称再次留言的话,就必须先知道“Z 某”的邮箱地址。而由于留言的邮箱是隐藏的,他人无法得知(除非对方的博客中有公开)。所以,只要再次看到“Z 某”的留言,那大概率就是他本人了。 然而,过去六年里我渐渐意识到,这个“天才般的设计”对于一个像博客这样的无账号登陆网站来说是弊大于利的。 首先,很多访客(特别是非博客作者)通常不会特意记住自己上次用过的昵称。如果因为输入邮箱后却反复提示昵称匹配错误,这只会打击他们留言的积极性;此外,也无法避免说有些留言者不想再使用之前的昵称或邮箱的情况。 由于博客对于留言者没有账号找回或资料修改的功能,这类问题只能通过(用邮件)联系站长(我),让站长在后台帮忙找回昵称或是修改资料。即便我在后续更新中,往留言框底下加入了“留言失败时一键反馈”的邮箱模版,但整个流程还是相当麻烦。 之所以我一直没改,是因为这玩意儿牵扯到了电波站的“底层代码”,包括数据库结构与服务端的留言处理逻辑。特别是后续增加了邮件提醒功能与后台留言审核功能之后,这堆代码更是变得愈...

[完整摘要]