BlockLune's Blog

首页 标签 关于 |

2025 年的图床解决方案

2024-12-03
cloudflareimage-hostings3s3-image-portwebp-cloud-services

作为一个使用 Markdown 进行日常写作的 Blogger,我不可避免地需要使用一个图床服务。过去,我使用过像 sm.ms、路过图床 等公共图床服务,也使用过基于 GitHub 的自建方案,但这些方案都有各自的问题,包括但不限于国内外连接速度较慢、图片被和谐或丢失等。但现在,我有了一个完整的自建解决方案,它基于 Cloudflare R2、S3 Image Port 和 WebP Cloud Services。我在过去的几个月中实践了下面所要说的这个方案,它为我提供了一个稳定、高效的图床服务。一起来看看吧!

cURL 和 httpie 常用命令速查表

2024-12-03
cheat-sheetcurlhttpieterminaltool

cURL 是一个历史悠久、功能强大的发送和接受数据的工具,而 httpie 是一个更加现代化的 HTTP 客户端,提供了更加人性化的命令行体验。本文记录了 cURL 和 httpie 的常用命令和选项,带您快速上手。

Linux 中的权限管理

2024-12-03
chmodlinuxpermission-managementterminal

我在 Linux 中不小心运行了一个错误的 chmod 命令,然后我的 Git 突然就产生了一系列更改,我突然打不开我的文件、查看不了我的目录了!怎么办?在本文中,我将向您介绍 Linux 的权限系统,以及如何使用 chmod 命令来管理文件和目录的权限,让您在遇到类似的情况时不像我那么手忙脚乱。

JWT 与 Paseto - 基于令牌的身份验证的新时代(翻译)

2024-12-02
jwtpasetotranslation

对 JWT vs PASETO: New Era of Token-Based Authentication 一文的中文翻译。原文对 Paseto 和 JWT 进行全面比较,并剖析了它们的核心功能、安全特性和潜在缺点。我在翻译过程中参考了其他资料并添加了一些译注,以帮助您更好地理解原文。

简明开发环境配置指南

2024-11-30
configurationproductivitysoftware-engineeringterminaltoolunixwindows

作为开发者,我们每天都会使用各种机器。一个配置良好的开发环境可以显著提高生产力,让编码变得更加愉快。本指南将指导您配置一个舒适且高效的工作空间。此文主要面向初学者,但经验丰富的开发者也可能受到启发。

打破坏习惯,养成好习惯

2024-11-29
translationvim

对 Habit breaking, habit making 一文的中文翻译,原作者是 Drew Neil。

我的 Vim 和 NeoVim 配置

2024-11-29
configurationideneovimterminaltext-editorvim

本文记录了我在 Vim 和 NeoVim 中的配置。

如何在 Golang 中连接数据库

2024-11-28
databasegolangprogramming-language

本文以 MySQL 和 PostgreSQL 为例,介绍了如何在 Golang 中连接数据库。我将从使用 Docker 创建一个 MySQL 或 PostgreSQL 容器等准备工作开始,逐步引导您完成连接数据库的过程。我会介绍四种方法:使用 database/sql 包,使用 GORM,使用 sqlx,以及使用 sqlc。

Zsh 简明配置指南

2024-11-28
configurationoh-my-zshterminalzsh

作为计算机爱好者,我们每天会花大量时间和 Shell 打交道,一个配置得足够好的 Shell 会让您觉得更加得心应手。这篇博文记录了我的 Zsh 配置。本来,这篇文章只是作为我自己的笔记,所以写得比较随意;同时出于练习英语写作的目的,写成了英文。但后来发现我的朋友们也会参考,所以我将其重置为中文的,并修改完善了一些内容。

简明 Git 教程

2024-11-27
collaborationgitsoftware-engineeringtoolversion-control

本文是一篇面向初学者的 Git 的教程,也可以当作一篇 Git 基础命令的备忘录。此文也包括了一些关于 GitHub 的信息,但如果您想更深入了解,请阅读《简明 GitHub 教程》。

使用 Netlify 边缘函数生成动态 Open Graph 图片(翻译)

2024-11-25
edge-functionnetlifyopen-graghtranslation

对 Generate dynamic Open Graph images using Netlify Edge Functions 一文的中文翻译,原作者是 Sean C Davis。

简明 Git 教程:分支与合并

2024-11-25
branchinggitmergingsoftware-engineeringversion-control

Git 强大的分支与合并功能可以应对并行协作的开发情形。一起来看看吧!

简明 GitHub 教程

2024-11-25
gitgithubsoftware-engineeringsshversion-control

我之前写了一篇关于 Git 的教程。在这篇文章中,我将介绍 GitHub 这个与 Git 密不可分的平台。

博客迁移记录:从 Hexo 到 Astro

2024-11-25
astroblog-setuphexo

终于,我决定自己写一个博客!

如何在 Java 中连接 S3 及其兼容服务

2024-11-21
javas3

所谓 S3,指的是 Amazon Simple Storage Service,即 “亚马逊简单存储服务”。比起直接将文件直接存储在本地,将文件存储到专门的服务中有许多优点。本文演示了如何在 Java 中连接 S3 及其兼容服务。

使用 pyenv 和 conda 管理多个 Python 版本

2024-11-15
condaenvironment-managementpyenvpythontool

作为一名计科专业的学生,我经常发现自己的项目需要不同的 Python 版本,每个版本都有自己的依赖关系和库。在这种情况下,拥有一种可靠而高效的方法来管理这些版本就变得至关重要。受 pyenv 与 conda 双轨制:管理 Python 版本和环境 的启发,这篇博文旨在记录我使用 pyenv 和 conda 管理 Python 多个版本的经验。

我的 OSTEP 笔记

2024-11-12
noteoperating-systemostep

Operating Systems: Three Easy Pieces(简称 OSTEP)是一本免费的在线操作系统书籍。我从南大蒋炎炎教授的操作系统课上听说了这本书,又找到了中文翻译出版的 《操作系统导论》,读起来的感觉非常不错。在此记录下读这本书时的一些笔记。

Docker: 是什么? 为什么? 怎么用?

2024-10-28
containerizationdevopsdockersoftware-engineeringtool

作为一个喜欢折腾新玩意儿的人,在网上冲浪时,我经常会去寻找各种各样新式的软件或服务。如果你和我一样也喜欢寻找这些软件,那你可能也会注意到,在安装指南中,越来越多的软件提供了一种使用 Docker 的安装或部署方法。这是什么东西?为什么现在流行使用它?我们又能如何使用它?这篇文章,带你入门 Docker 。

使用 Vue 和 @vueuse/motion 制作带动画的模态框

2024-10-17
javascriptmodal-animationtypescriptvueweb

本文介绍了如何使用 Vue 和 @vueuse/motion 创建一个带有动画的模态框。你可以在 这里 找到最终代码。

使用 Rust 写一个简单的线程池

2024-10-17
concurrencyprogramming-languagerustsoftware-engineeringthread-poolweb-server

线程池是一种多线程处理形式,它通过将任务分配给事先创建好的线程以进行重用,提高了并发性能。本文是一篇阅读笔记,原材料为 Rust 语言圣经 - 进阶实战 1 实现一个 Web 服务器。

阅读材料 4 - 代码审查 | MIT 6.005 学习笔记

2024-09-11
code-hygienecode-reviewdryjavasoftware-engineering

MIT 6.005 Spring 2016 的 OCW 版本的学习笔记。此篇笔记涉及的内容为 Reading 4 Code Review。

阅读材料 3 - 测试 | MIT 6.005 学习笔记

2024-09-11
regression-testingsoftware-engineeringtest-coveragetestingunit-testing

MIT 6.005 Spring 2016 的 OCW 版本的学习笔记。此篇笔记涉及的内容为 Reading 3 Testing。

NextJS 笔记

2024-09-06
full-stacknextjsnotereactserver-componentsweb-development

这是一篇课堂笔记,课程为 Udemy React - The Complete Guide 2024。该笔记包含了该课程中有关 NextJS 的部分内容。

My GDB Cheat Sheet

2024-03-09
ccheat-sheetcppdebugginggdbtool

The GNU debugger is a powerful tool for the debugging of (mainly) C/C++ programs. In this post I document the common operations of gdb and some useful learning resources.

Notes for Algorithms, Part II: Shortest Paths

2024-02-10
algorithmcourseradata-structuregraph-theorynotespanning-tree

This is a note for 4.4 Shortest Paths, Algorithms, Part II.

Testing Typescript project with Mocha and Istanbul NYC

2024-02-08
javascriptmochanyctestingtypescript

Mocha is a popular JS test framework, and Istanbul is a popular JS test coverage tool. How to use them when it comes to Typescript? This post shows a simple demo.

Introducing hexo-blockquote2note

2024-02-04
hexomarkdownnext-themesoftware-engineeringtool

I use Hexo with the NexT theme to build my blog. I wrote this plugin to solve a pain point I've encountered in this workflow.

A very interesting VimGolf

2024-01-28
quicksorttoolvimvimgolf

VimGolf.com is a good place for vimers to practice and improve their vim skills. This post records my experience of solving a very interesting VimGolf game -- Quicksort.

Git Commit 信息速查表

2024-01-27
cheat-sheetcommit-messagegitsoftware-engineering

供我自己使用的 Git Commit 信息速查表,使用 ChatGPT 整理。

Two Way Binding in Vue3

2024-01-26
typescriptvue

A simple two way binding example in vue3.

简单 CMake 例子

2023-12-03
build-systemccmakedata-structuresoftware-engineering

一些简单的 CMake 例子,记录以供复习查阅。

Note for Intro to Machine Learning

2023-11-12
decision-treemachine-learningmean-absolute-errornotepythonrandom-forest

This is a note for the course on Kaggle: Intro to Machine Learning.

Python 中的 Getter 和 Setter(翻译)

2023-10-17
getter-setteroopproperty-decoratorpythontranslation

Getter and Setter in Python 的中文翻译,原作者是 @adarsh_verma。

Awesome CLI Apps

2023-10-09
clicommand-lineterminaltoolunix

This is a list of some awesome CLI (command-line interface) apps.

Notes for Machine Learning Specialization: More numerically accurate code examples

2023-08-14
aicourseramachine-learningnotesoftmaxtensorflow

This is a note for the Machine Learning Specialization.

Notes for Machine Learning Specialization: Vectorization

2023-08-09
ailinear-algebramachine-learningnotepythonvectorization

This is a note for the Machine Learning Specialization.

Notes for 《tmux Productive Mouse-Free Development》

2023-08-05
noteproductivityshellterminaltmuxunix

Notes for tmux Productive Mouse-Free Development written by Brian P. Hogan.

Tmux 快速入门(翻译)

2023-08-04
productivityterminaltooltranslationunix

对 How to Install and Use Tmux 一文的中文翻译,原作者是 @l9c。

Notes for Algorithms, Part II: Minimum Spanning Trees

2023-08-03
algorithmcourseradata-structurejavaminimum-spanning-treenote

This is a note for 4.3 Minimum Spanning Trees, Algorithms, Part II.

Notes for Algorithms, Part II: Directed Graphs

2023-07-29
algorithmcourseradata-structuredigraphjavanote

This is a note for 4.2 Directed Graphs, Algorithms, Part II.

Notes for Algorithms, Part II: Undirected Graphs

2023-07-27
algorithmcourseradata-structuregraph-theoryjavanote

This is a note for 4.1 Undirected Graphs, Algorithms, Part II.

Notes for Nand2Tetris: Virtual Machine I: Stack Arithmetic

2023-07-19
nand2tetrisnoteprogramming-languagesoftware-engineeringstack-machinevm-abstraction

This is a note for Nand2Tetris unit 7 (Part II, Unit 1).

Notes for Nand2Tetris: Assembler

2023-07-17
assemblernand2tetrisnoteprogramming-languagepythonsoftware-engineering

This is a note for Nand2Tetris Unit 6.

Notes for Machine Learning

2023-07-14
aicourseralinear-regressionlogistic-regressionmachine-learningnoteoctavepython

Here are my notes for course Machine Learning taught by Andrew Ng.About exercise: I didn't do the original version exercise which depends on Octave or Matlab, but a third-party Python version (See nsoojin/coursera-ml-py).

Notes for Nand2Tetris: Computer Architecture

2023-07-12
assembly-languagecomputer-architecturecourserahardware-designnand2tetrisnote

This is a note for Nand2Tetris Unit 5.

joshuto: A great file manager in terminal

2023-07-12
file-managerrustterminaltoolvim-like

When in a terminal, sometimes it's really annoying to keep on typing in cd or something else to browse the files and directories. Can we do it just like what we do in GUI? Then joshuto may be helpful to you.

Notes for Nand2Tetris: Machine Language

2023-07-11
algorithmassemblynand2tetrisnoteprogramming-languagesoftware-engineering

This is a note for Nand2Tetris unit 4.

Notes for Nand2Tetris: Memory

2023-07-09
computer-architecturedigital-logicnand2tetrisnote

This is a note for Nand2Tetris unit 3.

Notes for Nand2Tetris: Boolean Arithmetic and the ALU

2023-07-08
algorithmcourseradigital-logichardware-designnand2tetrisnote

This is a note for Nand2Tetris Unit 2.

Notes for Nand2Tetris: Boolean Functions and Gate Logic

2023-07-08
boolean-logicdigital-circuitshardware-descriptionnand2tetrisnote

This is a note for Nand2Tetris Unit 1.

Python libraries mentioned in CS50P

2023-07-07
cs50pprogramming-languagepythonsoftware-engineeringtool

This is a list of some Python libraries mentioned in CS50P 2022.

Matching IPv4 addresses with RegExp

2023-07-04
ipv4programming-languagepythonregexsoftware-engineering

While solving the NUM3RS problem of CS50P, I was asked to match IPv4 addresses with RegExp.

Notes for Matplotlib

2023-06-29
data-visualizationmatplotlibnotepythontool

Here are some notes for Matplotlib.

Windows 11 中更好的右键菜单

2023-06-22
context-menucustomizationright-click-menutoolwindows

当 Windows 系统迭代到 11 这个大版本后,右键菜单被完全重新设计了。"巨硬" 似乎是想让它更简单、更现代化,但是它选择如何做到这点的方法确实是相当暴力 —— 把那些有用的全藏到二级菜单!对我而言,这真的很痛苦!幸运的是,我们有办法让原来的经典菜单回来,甚至是有限地自定义它,让它更好用!

My personal summary of Stanford CS106L

2023-06-01
cppmodern-cppprogramming-languagesoftware-engineeringstanford

This is CS106L, an in-depth modern C++ language course from Stanford. I enrolled in it at the beginning of April and almost finished it today.

Const Correctness in C++

2023-06-01
const-correctnessconst-interfacecppprogramming-languagesoftware-engineering

This is a note for Lecture 8, CS106L, Spring 2023.

Type Safety and std::optional in C++

2023-05-31
const-correctnesscppprogramming-languagesoftware-engineeringtype-safety

This is a note for Lecture 14, CS106L, Spring 2023.

Move Semantics in C++

2023-05-30
cppmove-semanticsprogramming-languager-value-referencespecial-member-functions

This is a note for Lecture 13, CS106L, Spring 2023.

static_cast and const_cast in C++

2023-05-30
const-castcppprogramming-languagesoftware-engineeringstatic-cast

This is a note for Lecture 8, CS106L, Spring 2023.

Permutations and Combinations in Python (itertools)

2023-05-28
algorithmdata-structureitertoolspermutations-combinationsprogramming-languagepython

Extracted from itertools — Functions creating iterators for efficient looping — Python 3.11.3 documentation

My personal summary of Algorithms, Part I on Coursera

2023-05-12
algorithmcourseradata-structureonline-courseprinceton

As the title says, this is my personal summary of Algorithms, Part I on Coursera.

Installing Ubuntu

2023-04-27
linux-setupsoftware-engineeringterminalubuntu-installationunix

This is NOT a tutorial on how to install Ubuntu. I am just documenting some problems I encountered during my installation.

Set up a blog with Hexo

2023-04-15
blog-setupgithub-pageshexonext-themeweb

This is a simple record of my further attempt to set up a blog with Hexo. I built one on GitHub Page before, using Hexo with the Icarus theme. This time I want to try something different. I also cleaned up my old blog and selectively migrated some old posts here.

Use std::cin.ignore() to keep the user typing until the input meets the requirements

2023-03-25
ccppinput-validationstd-cin

I used to control users' input by making the input a string and process it later. But today, my friend posed this question to me: Can we control input without a char array or string class?

const and constexpr in C++

2023-03-24
const-usageconstexprcppprogramming-language

I have written a post about const in C++ in Chinese before, but it was too verbose and unclear. :( So, I decided to rewrite it.

C++ const 用法汇总

2023-03-24
cconstconst-qualifiercppprogramming-language

最开始只是用 const 来定义常量,学到了指针传参的时候又知道了用 const 来防止一些值的修改,学到类的时候又看到非静态成员函数后边加个 const 来干嘛干嘛,然后么又听说什么顶层 const、底层 const... 真是越学越迷糊了,赶紧做一波整理。

Package managers on Linux (TBC)

2023-03-11
aptlinuxpackage-managertoolunix

This post tries to simply introduce some package managers and their basic usage.

VS Code 中设置显示最大列数边界线

2023-01-13
configurationtoolvscode

很多时候我们会避免一行代码过长,常见的限制有 80 字符、120 个字符等。我希望能在 VS Code 中显示一条边界线来提醒我已经到达这个限制了,需要换行。下边是设置的方法。

C 语言文件操作

2023-01-12
cfile-ioprogramming-languagestdio

简单记录一下 C 语言的文件操作的相关内容。

VS Code 中文乱码问题

2023-01-12
cmdencodingterminalvscodewindows

2023 年 1 月 12 日更新: 找到了方便地改变 Windows 中终端默认编码的方法,所以原来的改变 C/C++ 文件默认编码的方法可以淘汰了。

error: summary string parsing error 错误解决方法

2023-01-11
cclangcppdebugginglldb

直接先说解决方法:在使用 clang 工具链进行编译的时候,添加编译选项 -fstandalone-debug。

Makefile 简单笔记

2023-01-08
build-toolccppmakefilesoftware-engineering

这是一篇笔记,原视频是 @于仕琪 老师的 《Makefile 20 分钟入门,简简单单,展示如何使用 Makefile 管理和编译 C++ 代码》。

C 标准库中 qsort 和 C++ STL 中 sort 的用法

2022-12-08
algorithmccppprogramming-languagesorting

虽然到现在还是不能完全理解 qsort 和 sort 这两个函数的底层原理,但至少,先学会如何使用吧。

求解最大公约数的四种算法

2022-12-04
algorithmcppdata-structureeuclidean-algorithmgcd-algorithm

这是一次计算机导论课的作业。本来对于最大公约数的求解算法,我就只知道一个辗转相除法。原来,其实还有别的一些 ...

初探深度优先搜索(DFS)和广度优先搜索(BFS)

2022-11-22
algorithmdata-structuregraph-traversalstack-queue

深度优先搜索(DFS,Depth First Search)和广度优先搜索(BFS,Breadth First Search),我从来没弄明白过。是时候努力去好好理解一下了。

二维数组到底是啥啊...

2022-11-16
cppdata-structuremultidimensional-arrayprogramming-language

一维数组还是比较容易理解的,但是二维数组,我始终没弄清楚这玩意儿是按照什么规则从二维的样子转成一维然后存起来的,也因此常常犯下下标写反了的错误。我觉得是时候详细地理一理这玩意儿到底是个啥了...

当形参、实参是指针变量...

2022-11-16
ccppfunction-parameterspointer-passing

接《一个有关指针传参的问题》,再理一理这里边的一些问题...

C 语言中使用变量输出小数点位数

2022-11-05
cdynamic-arrayprintf-formattingprogramming-language

这事儿要从一周前讲起,有人在群里问了下面这么一道题,要求用 C 实现...

值传递、指针传递、引用传递

2022-11-05
ccppfunction-argumentsparameter-passingprogramming-language

接上文《一个有关指针传参的问题》,打算结合一些简单的例子系统地梳理一下 C/C++ 中的值传递、指针传递和 C++ 中特有的 引用传递。

一个有关指针传参的问题

2022-11-03
ccppmemory-managementpointer-manipulationprogramming-language

这是我学习指针过程中遇到的一个问题,问过大佬才似乎懂了点,在此记录。顺便记下一句大佬说的话:注意到一点就行,指针其实也就是个存了内存地址的变量,它本身同时也具有内存地址。

C/C++ 中赋值语句的返回值问题

2022-10-27
assignment-operatorccpploop-controlprogramming-language

我曾经一直以为 C/C++ 中赋值语句的返回值不是 0 就是 1 —— 成功执行赋值操作返回 1,没有成功执行就返回 0。直到今天课上的一个例子,才让我知道,原来赋值语句的返回值就是赋的值的大小!

C/C++ 格式化输入输出汇总

2022-10-19
ccppioprogramming-language

本文汇总一下 C 语言 scanf 和 printf 的格式控制方法以及 C++ 的 <iomanip> 库。

挖老婆矿!—— NovelAI 初试

2022-10-15
aiimage-generationnovelaiwaifu-generation

最近一段时间,感觉突然之间,就有很多很多将现实图片二次元化啊,按照每句歌词生成一副画作啊的 AI 绘画应用的图文视频出现。和室友聊天还说是不是最近一段时间 AI 技术突破什么瓶颈突飞猛进了。后来才知道,原来是 NovelAI 泄露了... 这样一来,本地部署方便了起来,于是整了一个玩玩。由于跑 AI 嘛,GPU 比较呼啸,跟挖矿一样,我就戏称我这是在“挖老婆矿”了。

VS Code 的安装与配置基础 C/C++ 开发环境

2022-10-13
configurationcpptoolvscodewindows

我以前学习 C++ 的时候,使用的是 DevCpp 。这个软件让我这个初学者比较舒服的点是,我不用太过详细地考虑编译的过程——新建一个 cpp 文件,写一点小程序,按下 F11,程序运行。我不需要管选择编译器啊、配置编译命令啊啥啥的。但是到 VS Code 这边,这都要我自己做了,对于新手并不是那么友好。这里记录一下我配置 VS Code 的 C/C++ 环境的完整过程,希望对你有所帮助。需要注意的是:学习一下基本的编译链接指令还是很有必要的!

C 语言中与(&&)和或(||)运算符的短路运算

2022-10-11
ccpplogical-operatorsprogramming-languageshort-circuit-evaluation

此篇笔记来源于下边的这个题目。

补记一个用 C++ 实现的 2048 小游戏

2022-10-06
algorithmcppdata-structuregameprogramming-language

校科协的加入有条件,面试前一步是笔试。免去笔试的方法也不是没有,可以做免试题。看了各个组的免试题,发现都好难好难,只有前端组的 2048 敢去尝试尝试。但我有没怎么学过 JS,便想着先用 C++ 实现一下逻辑,再把代码改过去。

C++ 中 cin 与 cout 的转进制输入输出

2022-09-29
cppdecimaloctalprogramming-language

笔者的朋友有道输入八进制输出十进制的题目,他是使用数学方法实现的。笔者隐隐约约记得好像cin和cout有控制输入输出数字进制的方法,查找了一些资料,做一下笔记。

LaTeX 公式基础

2022-09-15
latexmathnoteprogramming-language

用 LaTeX 写数学公式的时候,总记不住一些写法,故在此记录学习笔记。

补记一个用 Vue.js 和 ElementUI 实现的在线抽奖网页

2022-08-26
element-uijavascriptvueweb

这是一个使用 Vue2 + Element UI 写的随机点人 / 抽奖网页应用。

Edge 扩展推荐

2022-08-25
browserchrome-extensionedge-browsertool

2019 年 7 月写过一篇 Chrome 插件推荐的文章,那时候我还在用 Chrome 作为我的主要浏览器。一晃三年过去了,我也早已从 Google Chrome 转入全新 Chromium 内核构建的 Edge 浏览器。微软倒蛮有意思,自己从头开发的东西不咋地,在别人的平台上倒是表现得相当好。由于国内的水土不服啊,我用 Chrome 时总会遇到同步不了的情况,这点的体验在 Edge 这儿得到了很好的改善,也是我用 Edge 的主要原因吧。前些天帮很多同学做新机开荒,也推荐他们就用这款“Win11 原装”浏览器。当然一个浏览器肯定是离不开扩展的,趁着帮他们开荒这个机会,也顺便整理了我认为必备的一些浏览器扩展。

Chrome 插件推荐

2019-07-13
bilibilichromechrome-extensiontoolweb

你可能常年使用着国产的一些浏览器,却也常年遭受着各种弹窗、全家桶的侵扰...你也可能不止一次地听过"Chrome",安装下来后却发现他空空如也,又默默地装回那些国产...那么,让这些插件来拯救你吧