0%

写在最前

自制一个 C++ 的 Parser Combinator,并用它写一个 json 的 parser,目标是代码尽可能简洁且便于理解(换句话说,就是一个玩具)。文章分为几个阶段,每一阶段后都有相应的代码,方便渐进式学习。

前置知识:基本的模板元编程,基本的 STL 用法,对 C++17 和 C++20 的特性有一些了解。但是如果你愿意查阅 cppreference,那么不需要任何前置知识了。

Read more »

本文将介绍如何使你真正拥有在 Amazon 上购买/借阅的电子书(也就是破解 Kindle 电子书)。

注:本文为综述,只是介绍一下几种可能的方法,并不会提供步骤。

Read more »

对于函数式的编程语言,柯里化是语法(或者语法糖)的一部分。但是 C++ 要实现柯里函数,就要 lambda 套 lambda,就很不方便,于是我就想用模板元编程来实现一个把函数柯里化的函数。

注:以下代码用到了 C++20 的特性。

Read more »

算是整理一下玩过的和想玩的联机合作游戏(几乎全是 Steam 平台上的),顺便做一些推荐。

排名不分先后,不包含任何大型联机游戏。

Read more »

记录一下阅读推理小说后的感想,由于好些都记不清了,顺便重读一下。

另外,由于这篇文章是给自己看的,所以完全不会避讳剧透。

Read more »

双向搜索其实也写过好多次了,但是以前一直没意识到自己写的双向 Dijkstra 是假的,然后看了看网上的中文博客,前几个也都是假的,所以就写了这篇文章,不过也没人看就是了。

Read more »

这篇文章的主要目的是记录我在使用 Linux 的过程中遇到的坑和相应的解决方案,次要目的是帮助读者快速构建一个舒适的 Linux 使用环境。后文的描述基于 Arch Linux 和 KDE 的方案,大部分也适用于 Kubuntu 用户。

UPDATE 2018.11

  • 关于 QQ 的安装和使用,现在有两个选择,其一是 Crossover (中国区定价也不贵,如果想省钱可以找 15 的 crack),其二是 AppImage 封装好的 wine-QQ(github)。
  • 一年来也遇到了一些影响使用的 bug,每一次更新都无法预料体验究竟变好了还是变差了。
  • 已经成为 KDE 的脑残粉了,美观、功能强大、内置应用体验一致,已经不能奢求更多了。

UPDATE 2017.10

  • 重装了系统,现在选择了基于 arch 的发行版 majaro(桌面环境还是 KDE),安装确实方便挺多,也称得上是开箱即用。
  • 这两个月 shadowsocks-qt5 的最新版本很不好用,估计是依赖的问题(github 上 issue 不断)。所以还是选择了 shadowsocks-libev 命令行版本,配合 polipo socks5 转 HTTP 代理(其实不怎么用得到)。

发行版的选择

起初我选择的是 Ubuntu,其主要原因有如下几点:

  • 用户的基数大,遇到问题能够方便得找到相应的解决方案
  • “网易云音乐”、“搜狗输入法”等应用提供的安装包是 Deb 包( Ubuntu 可以直接安装,而 Debian 家族以外的发行版无法直接使用)

在使用 Ubuntu 将近一年后,我选择了 Arch Linux,它不仅拥有对我而言 Ubuntu 所有的优势,还提供了额外的便利:

  • 官方仓库和用户软件仓库(AUR)提供了我想要的全部,包括上文中的“网易云音乐”和“搜狗输入法”。
  • 拥有官方 Wiki,对于解决实际问题和学习 Linux 很有帮助
  • 没有预装可有可无的软件包,用户拥有更大的选择余地
    Read more »