上篇文章 我们写了 Flarum 二次开发项目的规划,这里也分享一下本地开发与调试 Flarum 的配置的方案,助你快速搭起 Flarum 的本地开发调试环境。

基础软件

关键软件:

Windows 下的额外配置:

  • WSL2
  • Docker Desktop 最好设置 WSL2 backend
  • VSCode Remote WSL 插件(支持 WSL 的本地开发)

阅读全文 »

上篇文 我们介绍了适用 Flarum 的 Docker LNMP 环境的配置,本文将进一步从本地环境搭建、版本控制的设计的角度,介绍一套可操作的 Flarum 项目配置与二次开发迭代方案。

目前本文方案在 0xFFFF 社区 运行良好,它遵循了现有的 Composer 加载,版本管理的机制,可以跟踪本地的修改、随时切换官方分支或定制开发的分支,避免那些诸如定制修改丢失、与最新版本代码难以同步等问题。若你想用 Flarum 搭建论坛并想对它进行二次开发调整,不妨试试本文方案。

本文方案的前置技能要求:

  • Unix / Linux 命令行操作
  • 对 Composer 基础认识
  • 熟练的 Git 操作(基本操作、分支、远程仓库、子模块等概念)

注:本文基于当前最新的 Beta 13 版本 展开,列出的脚本与命令,需要在 Unix 命令行环境运行(Linux 或 macOS,Windows 最好安装 WSL 以及 Docker)。

阅读全文 »

Flarum 是一个简洁的轻论坛程序,交互体验做的十分不错,也有良好的插件扩展机制。接触过的人可能知道,它目前还在 beta,在功能更新和迭代方面不算稳定,部署、修改与定制功能更是一件麻烦的事情。

在 2018 年,我基于它构建了 0xFFFF 社区。经过两年的不断推翻与修改,慢慢沉淀下了一套适合持续迭代的 Flarum 部署与开发迭代方案。

这里主要介绍 Flarum 在服务器和本地开发环境的部署方案。本文假定读者对 Linux 命令行操作、Docker 与 Docker Compose 有基本的了解。相关文件均已开源在 GitHub: zgq354/flarum-docker-env

Why Docker

在 Linux 折腾 LAMP/LNMP 的同学可能经常被各种环境配置的细节问题折磨,诸如 Nginx 配置、“伪静态”(URL Rewrite)、各种文件权限、所有者问题等等。好不容易配置好了,过一两个月可能已经完全忘记,在未来需要修改或更新之时,如西西弗斯受罚一般,重重复复做着相似的事。

基于 Docker,只需要一系列配置文件,就可以从各种各样的针对手动配置解放出来,通过 Git 管理配置的历史版本。可以随时切换环境配置,而不担心因时间的流逝忘记当初是怎么搞的。

接下来会介绍这个方案的细节,若只想把项目跑起来,可以直接跳到本文的 “使用” 小节。

阅读全文 »

B站在 5.3 那天出了一个 演讲视频,当时大概看了一遍,想到互联网正在改变很多现状,还是挺认同B站背后反映的互联网下 “认知盈余” 的现象。但这种表达形式让我感觉十分做作和尴尬,压根谈不上喜欢,也就没多留意细节。

或许也是这样的做作引发的热烈讨论吧,今天在朋友圈注意到了这一画面,在“自由学习新的语言”这一帧画面中,看到了当下在啃书学习领域最流行的 APP — MarginNote,突然意识到了某种差距所在。

阅读全文 »

上篇博文 引出了“硬币模型”,从“抛硬币”的角度描述了计算机数据的最本质属性。同时也介绍了为若干硬币赋予现实意义、实现更多数据在计算机表示的基本思路。

接下来我也会具体展开介绍一下数字、文字、音频、图像、视频在“硬币体系”下的表达,为你带来更直观的印象,本篇将重点介绍“数字”的表达。

1. 放下“硬币”

读过上篇博文的你,大概已经有了解我们说的“硬币体系”,它其实就是数学角度的 “二进制位”,这里先明确一个设定:

二进制位的值抛硬币结果
0反面
1正面

为了更好地表达更复杂的概念,这时候的你需要逐渐放下“硬币”这样的模型,去适应那由符号 0 和 1 构成的数学世界啦。

阅读全文 »