✨ 二十一岁,繁花盛开。

二十一岁了,到了小时候觉得很遥远的年纪。不知道是什么时候形成的习惯,每年生日都会发一篇博客,纪念这一岁的自己。翻到以往生日发的博客,更加能感叹时光之流逝,自己的成长。对于二十一岁,我还一点都没有准备好。每年生日,正好都是清明时节。长沙的春日,繁花盛开了。二十一岁,也正是繁花盛开的年纪。是时候开始具体地思考这个问题:「你想活出怎样的人生?」我认识的大多数年长的鼹鼠,都希望自己当初能够听从梦想,而非恐惧。——《男孩、鼹鼠、狐狸和马》

从零开始,配置一套现代前端工具链

现代前端应用框架(如 Next.js、Nuxt.js 等)都直接集成了完整的工具链,按照官方文档做,一行命令就可以配置完毕。这整套工具在我们调试和构建项目时,在背后做了大量工作。虽然这有助于快速上手,但是非常不利于我们了解其中的原理。然而,各种工具纷繁复杂,文档浩如烟海。由于工具之多,即使文档再友好、工具本身再易用,也很难快速入门。本文将带你踏上一段旅程,从一个空文件夹开始,一步一步添加工具,最终配置一套完整的前端工具链。在其中,我们可以对各个工具的概念、用途和原理有一个比较

全新个人网站 Daydreamer 设计开发手记

想写一个新的个人主页很久了,甚至基于 Next.js、Nuxt.js 分别做过雏形,但是都半途而废。寒假接触到了早有耳闻的 Astro.js,这个框架简洁优雅的设计吸引了我。于是一发不可收拾,开发了全新版本的主页,并将各种页面和博客系统也集成进了这个主页。在设计和开发的过程中有无数的纠结和思考,特此记录下来。Bento 式布局我是看了少数派的《何为 Bento 式布局,怎么生产力工具网站都在用?》这篇文章,想到用 Bento 的风格做一个个人网站的。Bento 式布局各种信息

找寻一个简易的 Kindle 书摘管理方案

上学期,我购入了 Kindle 并决定将它离线使用。Kindle 的阅读体验确实一流,但是由于亚马逊生态的封闭,从 Kindle 导出书摘、笔记就有些困难。书摘导出的困难在阅读时的划线批注,存储在哪里呢?将 Kindle 连接电脑后,观察挂载的硬盘目录,会发现书籍对应的 mobi 文件同目录下有一个同名的以 .sdr 结尾的文件夹,文件夹中有拓展名为 .mbs 和 .mbp1 的文件,这便是 Kindle 保存我们的阅读信息的地方,包括阅读时的划线、阅读位置、书签等各种信息。

Yubikey 安全密钥折腾记(2):使用入门

自从上次使用 Cloudflare Zero 的优惠买下两个 YubiKey 之后,这俩玩意被我搁置了一个学期。原因之一是学习成本不低,关于它们的文档、教程都充斥着不少不太了解的名词、概念,令人望而却步。于是经过查阅各种资料,在这篇博客中我将(用白话文)介绍我从零开始的 YubiKey 入门之旅。Yubico 与 YubiKeyYubico 是一家美国的公司,是 YubiKey 的制造商。(这家公司似乎对东亚某国有一定政治倾向。这一点我不了解也不评论。)YubiKey 是这家

Gandalf:用 prompt injection 与 AI 大战三百回合!

Gandalf 可以作为一个有趣的 prompt injection 练习靶场。我们作为攻击方需要通过对 AI 的问答猜出密码(后端接的是 OpenAI 的 GPT),而每一关 AI 的防御(极力避免说出密码的措施)都会不断加强。这个游戏里,AI 的许多回应往往让人哭笑不得。快来与 AI 大战三百回合吧!⚠️ 注意:本文可能包含剧透。建议亲自在 Gandalf 体验后再阅读。Your goal is to make Gandalf reveal the secret pass

xss-labs 通关教程

xss-labs 是一套基于 PHP 的 XSS 靶场,以闯关的形式让我们体验各种 XSS 漏洞利用方式。虽然已经是很多年前的了,但其中基本的 XSS 漏洞依然很有意义。一共有 20 关,每一关的目标都是实现弹窗(alert(1)),如果成功就会自动进入下一关。环境搭建克隆这个代码仓库的代码,其中是 xss-labs 的 PHP 源文件。只要放在 PHP 环境下即可,推荐使用 XAMPP 或者 Docker。部署完成后,访问 index.php,就可以看到入口了:Warm U

在 HNU 信息院的 Apple Silicon 生存指南

2020 年末,Apple M1 横空出世,2021 年刚高考完的我看着「吊打 Intel」的性能对比图,以及 MacBook Air 优雅又近乎极端的无风扇设计,毫不犹豫地入手了。虽然只能用 macOS,虽然是 arm 架构的芯片,但是「反正我本来就讨厌 Windows」,不管这么多了!那时候的我并没有意识到,这个选择会给大学学习带来怎样的麻烦。在大学里,不少课堂上要用到的软件都是 Windows 专有的,实验也大多是 x86 only 的……这给我带来了无数额外的折腾。特

CSAPP Bomblab 题解

这应该是我写过最长的实验报告了……做的时候就感觉到,不愧是 CMU 的镇系神课,游戏化的关卡设计和埋藏的彩蛋都给人做下去的动力。所以虽然有点难(富有挑战性),但是很有意思。实验环境我个人进行本实验的环境是 Kali GNU/Linux Rolling x86_64。HNU 课程组的老师给每个同学都生成了不同的 bomb,所以以下只是我的 bomb 的答案与解析。/*********************************************************

rCore Tutorial Chapter 1 练习

这是 rCore Tutorial Book 第一章「应用程序与基本执行环境」的练习。课后练习编程题Program 11. 实现一个 linux 应用程序 A,显示当前目录下的文件名。#include <dirent.h> #include <stdio.h> int main() { DIR *dir = opendir("."); struct dirent *entry; while ((entry