惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

AsyncX

V3 博客重构 第三期-用Notion进行网页收藏/订阅管理/阅读数据查看 第二期-Vitepress配制指南 使用MCSManager搭建泰拉瑞亚服务器 额外技能-如何穿手串 [更新]首考PTE的一些问题/快速入门 重构博客,底层换成Astro时候遇到的问题 熵,生命 如何使用Mac玩双人成行 解决手柄无法在Macbook玩星露谷的问题 什么在阻止我们走向主观来说更好的生活? 雅思首考的一些感受 如何听更好音质的歌 苏州三天行 毕业,以及短期的安排 近日&首阳 在MacOS配制Rime(鼠须管)输入法 更换主力浏览器为Arc浏览器 为hexo博客添加黑暗模式(使用darkmode.js) 语言规范可以帮你更好得到答案 删掉抖音,重拾RSS 简单注册ChatGPT的方法 2023年,一些回顾 让你的MacBook更顺手一点 第一次养猫发现的一些事 绑架代替购买了一只小猫 数字藏品? 近些天和对于科幻的一些看法 如何配置一个静态博客的工作流
第一期-Beancount使用体验
2023-05-01 · via AsyncX

前言

为了督促自己自律一点,持续更新博客,我打算将应用软件类的使用心得教程类作为一个栏目写。一是这样方便大家对工具类的博客进行索引,二也可以对大家的软件的选择起到引导性作用。 言归正传,官网是这么描述Beancount的。Double-Entry Accounting from Text Files.即为从文本调用的复式簿记

什么是复式簿记?

复式簿记是一种把每笔交易都记录到复数个账户中的簿记方法,简单来说就是“有得必有失”。

当你从你的B账户为A支付了$x$元,那么你的账户就损失了$x$元,损失的这份价钱转变为了A的价值,而单独对于你的B账户,作为支付方损失了A的价值。但此时对你来说你所具有的财富仍然保持不变,这个例子使用Beancount的记录如下:

2023-05-01 * "买了A"
  Assets:Cash                            -X CNY
  Expenses:Shopping                      +X CNY

这样记账的好处是什么?

由于复式簿记的前提是收支守恒,那么遇到以下例子也会很方便记账: 你和甲,乙三个人去吃饭,总共花了$3X$元,甲帮你垫付了$\frac{1}{2}$的钱,乙也帮你垫付了$\frac{1}{2}$的钱,你需要分别还给他们,这时使用Beancount的记录如下:

2023-05-01 * "和甲乙吃饭"
  Assets:Cash                            -X CNY
  Liabilities:Jia                      +X/2 CNY
  Liabilities:Yi                       +X/2 CNY

这个例子中的收支依旧为0,区别和上面的则在于支出项为两个人(复数个),在遇到此类情况,复式簿记的优势就体现出来了。

如何使用Beancount来进行记账

安装

Beancount可以用以下方法安装,并同时安装fava-Beancount的实用性UI。

python -m venv BEANCOUNT
source BEANCOUNT/bin/active
pip install beancount
pip install fava

结构

记账作为一个持久性的项目,需要具备如下特点:

  • 准确性
  • 持久性 而Beancount作为记账软件可以额外提供的:
  • 永久性
  • 安全性 我从这里开始将用最快可投入使用的语言进行描述。 首先的首先,你需要创建一个main.bean来令fava进行读取操作,这个bean文件更类似于索引功能。
;账本信息
option "title" "main" ;账本名
option "operating_currency" "CNY" ;账本货币
2001-08-06 custom "fava-option" "language" "zh"
include "accounts/assets.bean" ;资产账户设置及初始化
include "accounts/liabilities.bean" ;负债账户设置及初始化
include "accounts/expenses.bean" ;支出账户设置
include "accounts/income.bean" ;收入账户设置


;交易记录
include "2023/2023.bean" ;2023账本

其次,你需要创建用于支付的项目和用于支付的账户。

account/assets.bean
2001-08-06 open Equity:OpenBalance ;用于账户初始化,支持任意货币
2001-08-06 open Assets:Card:9806 CNY ;尾号9806的银行卡
2001-08-06 open Assets:Card:2437 CNY ;大学银行卡
2001-08-06 open Assets:Alipay:Name CNY ;支付宝
2001-08-06 open Assets:Wechat:Name CNY ;微信

需要强调的地方:账户的名字必须大写,你需要为所有的账户制定货币单位(CNY)。 此外,还需要创建付款项,这里我参考了其他记账软件的项目:

account/expenses.bean
2001-08-06 open Expenses:Other CNY
2001-08-06 open Expenses:Dining CNY
2001-08-06 open Expenses:Shopping CNY
2001-08-06 open Expenses:Transportation CNY
2001-08-06 open Expenses:Entertainment CNY
2001-08-06 open Expenses:Electronics CNY
2001-08-06 open Expenses:Clothing CNY
2001-08-06 open Expenses:Pets CNY
2001-08-06 open Expenses:Daily CNY
2001-08-06 open Expenses:SnacksandBeverages CNY
2001-08-06 open Expenses:FruitsandVegetables CNY

你还需要按照以上格式创建负债账户和收入账户,前缀分别为Liabilities:XXIncome:XX,这些均放置于main.bean同目录的account文件夹内。

最后,创建账本。我是按照年/月来进行账本的分类,每月进行汇总。你无需自己创建,我将模板放在本文最后。

使用

安装完成且正常创建后,在main.bean同目录下输出fava main.bean --port 8888打开服务,main.bean为账本项目,--port 8888为在端口8888打开网页,指定端口防止了Mac电脑默认端口的冲突。打开localhost:8888,你可以看到直观的数据。

到这一步,就已经完成安装了。

工作流

Notion 月账单模板

通过两个select记录资金的出和入,每月导出一次到 beancount 进行统计。

如果有可以解决通过 Notion 多对一 /多对多记账的更好方案和脚本欢迎 pr 。

脚本和年度账本模板:A5yncX/notion-to-beancount