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

推荐订阅源

大猫的无限游戏
大猫的无限游戏
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threat Research - Cisco Blogs
A
Arctic Wolf
S
Securelist
O
OpenAI News
T
Threatpost
Forbes - Security
Forbes - Security
N
News and Events Feed by Topic
S
Secure Thoughts
H
Heimdal Security Blog
S
Security Affairs
P
Privacy International News Feed
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Palo Alto Networks Blog
S
Security @ Cisco Blogs
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
T
Tailwind CSS Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hacker News: Ask HN
Hacker News: Ask HN
T
Troy Hunt's Blog
S
SegmentFault 最新的问题
腾讯CDC
V
Visual Studio Blog
Last Week in AI
Last Week in AI
H
Hacker News: Front Page
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Project Zero
Project Zero
WordPress大学
WordPress大学
NISL@THU
NISL@THU
博客园 - 【当耐特】
博客园 - Franky
Webroot Blog
Webroot Blog
博客园_首页
T
Tenable Blog
雷峰网
雷峰网
Google Online Security Blog
Google Online Security Blog
阮一峰的网络日志
阮一峰的网络日志
V2EX - 技术
V2EX - 技术
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
Lohrmann on Cybersecurity
The Hacker News
The Hacker News

林中阴影

林中阴影 | 关于蓝光刻录的一些调查 林中阴影 | 与IPv6地址战斗 林中阴影 | 半年前的NAS升级 林中阴影 | “智能” 家居笔记:一→两年后的回顾 林中阴影 | 旧手机做RDP客户端的一些尝试 林中阴影 | 一些矿渣的耗电量 林中阴影 | 穷人的IP-KVM远程访问 林中阴影 | 内网访问第三季:在运营商的CGNAT网络下 林中阴影 | “智能”家居笔记,其之二 林中阴影 | “智能”家居笔记,其之一 林中阴影 | 仅IPv6家庭内网服务实现v6+v4双栈访问 林中阴影 | 下载装小蜜监理拍摄的图片 林中阴影 | 几物互联 林中阴影 | 整了个“新”平板 林中阴影 | 获取招商信用卡账单的另一种方法 林中阴影 | 我在GitHub的⭐ 林中阴影 | Python与光学计算,2021 林中阴影 | 你可能并不需要内网穿透 林中阴影 | 2020 林中阴影 | 和(基本上)什么也不能连的电脑传递信息 林中阴影 | 我将贻笑于大方之家 林中阴影 | 一个新主题 林中阴影 | 2019过去了,我…… 林中阴影 | 自动输入剪贴板中的内容 林中阴影 | Unicode与数学公式 林中阴影 | Python中光学计算相关的库/Awesome Python for Optics 林中阴影 | 一本厕纸小说 林中阴影 | 震惊!为了在Windows上访问EXT4分区,他竟然做出了这样的事! 林中阴影 | 我的2018 林中阴影 | 笔记软件踩雷 林中阴影 | 关于BitMEX的杠杆 林中阴影 | 用Cloudflare的v4 API实现动态DNS(DDNS) 林中阴影 | 随机性从哪里来? 林中阴影 | 这次是纽约公共图书馆……而且居然还有第三部分? 林中阴影 | 这次是纽约公共图书馆……的第二天! 林中阴影 | 这次是纽约公共图书馆…… History Data for Bitcoin and Altcoins 林中阴影 | 幂律分布与Zipf's Law 林中阴影 | 学习笔记:神经网络的优化策略 林中阴影 | 最近对博客的改动 林中阴影 | 换了个新域名 林中阴影 | VPS初始化checklist 林中阴影 | 利用kcpraw流量加速 Aeolipile boiling: Your blog (with code and formula) on Steem! Aeolipile update: new theme, link generator and more! 林中阴影 | 离 林中阴影 | 社交恐惧症患者也想用Steem,所以我做了Aeolipile Aeolipile: your code and formula on Steem 林中阴影 | 2017年的fontconfig设置 林中阴影 | 为hugo加入数学公式支持 林中阴影 | 更琐碎的编辑器细节 / Some more trival details about Steemit 林中阴影 | 对Steem的一些细节考察 / A closer look to Steem 林中阴影 | 在Hugo中折叠部分内容 Brave New World: Firefox to Quantum Yesterday Once More: Firefox to Waterfox 林中阴影 | 首都图书馆半日游 林中阴影 | 关于那个IME helper Auto-Switch IME in Vim-Mode-Plus for Atom Editor 林中阴影 | 短消息:联通IPV6 林中阴影 | 迁移到hugo,第三部分:可是我想要更多的feed地址… 林中阴影 | 由wordpress到hugo:I 林中阴影 | 迁移到hugo,第二部分:部署到github 林中阴影 | Dota 2里,什么技能的冷却时间最短? 林中阴影 | 五年 林中阴影 | 为什么已经在Word里用M$的EMF格式了,图像还是不清楚? 林中阴影 | 用nethogs实时监控每个程序的流量使用 林中阴影 | shadowsocks 2016: 一次性认证,KCP及其他 林中阴影 | Deus ex machina 林中阴影 | QArt:更漂亮的QR码 林中阴影 | 我失去了heysh.tk域名 林中阴影 | 一个简单的在线LRC编辑器 林中阴影 | 野路子科研工具二则 林中阴影 | 我有显示器辣 林中阴影 | pentadactyl 和 Firefox 43 林中阴影 | 2014年的总结 林中阴影 | shadowsocks,ipv6和便宜的VPS,还有OpenVPN 林中阴影 | 红色楼梯 林中阴影 | 用于OPENWRT的流量监控脚本:wrtbwmon 林中阴影 | SFW:治疗拖延症的一次有益尝试 林中阴影 | 木漏れ日 林中阴影 | 一次奇怪的firefox故障,还有,一个普通市民是怎么修电脑的 林中阴影 | Mortal 林中阴影 | vim again 林中阴影 | 邪恶的Archlinux 林中阴影 | 十一年前,以及今天 林中阴影 | 贺叶霜的树 林中阴影 | Limited Gear Works 林中阴影 | 永生,其二 林中阴影 | 我的云上逃亡,或,google reader的替代品 林中阴影 | 如果你像我一样主力使用xfce但又觉得GNOME3也许会变得好一点于是安装之后才发现果然还是无法接受 林中阴影 | CATIA是个好软件 林中阴影 | blog再次复活 林中阴影 | 2012-2013 林中阴影 | Texlive 在archlinux上的安装,以及中文字体的设置 林中阴影 | phpwind论坛刷分脚本(可用于openwrt) 林中阴影 | THU课程表导出,油猴脚本,输出vcal 林中阴影 | html5-世界变动率计数器(仮) 林中阴影 | 总结:简单的vCal/iCalendar/.ics格式说明 林中阴影 | Hello Again~ 林中阴影 | chicken
林中阴影 | Beancount试用,半年后
2019-11-07 · via 林中阴影

自从2017年开始,我一直使用 网易有钱 记账。不得不说,如果像某落水狗讲的那样,“中国人不在乎隐私”的话,这确实是一个非常好用的APP,下载账单、导入数据一气呵成,连余额宝的利息都能够算得分毫不差——

直到最近,大概是骂挨得太多,或是界面里终于塞不下更多广告,这个APP①用“维护中”挡住了所有同步按钮,并且②停止了维护。

用8元买回了本属于自己的数据后,我想起之前听说过的Beancount。于是,我给那些数据找到了一些新用途。

冷启动

首先,我阅读了这篇博文,搭起了Beancount。接着,我又写了一些其它的脚本

自动建立收支账户

之前的理财软件大多会提供一些初始分类,比如说mint所用的类别列表在这里。 对于本人1之前的账本,有过记录的大概是这样几类:

{'交通,', '交通,打车', '交通,机票', '交通,火车', '人情,', '住房,', '住房,家具', '住房,家纺', '住房,物业水电', '住房,装修', '其他,', '医疗,', '医疗,药品', '娱乐,', '娱乐,电影', '投资亏损,', '文教,', '文教,书刊', '文教,文具', '旅行,', '旅行,景点门票', '旅行,酒店', '汽车,', '购物,', '购物,数码', '购物,日用', '购物,玩具', '购物,电器', '购物,美妆', '购物,运动用品', '购物,鞋服', '购物,饰品', '通讯,', '通讯,话费', '零食烟酒,', '零食烟酒,水果', '零食烟酒,烟酒', '零食烟酒,茶水', '零食烟酒,零食', '零食烟酒,饮料', '餐饮,', '餐饮,三餐', '餐饮,食材'}

对这些分类,利用人工智能,为每一项建立了对应的account,形成了一个dict

如果你已经下载了beancount-homemade-importers,你可以用里面的importers/ youqian/accountInit.py来自动建立这些accounts

python importers/youqian/accountInit.py > New_Accounts.bean
# 或:如果之前已经建立了一些账户的话
python importers/youqian/accountInit.py Existing_Accounts.bean > New_Accounts.bean

导入网易有钱的收入、支出数据

Beancount的文档里已经对导入脚本进行了比较详细的说明。从这个例子开始,基本上只要实现几个函数就行。

beancount-homemade-importers中,我写了一个简单的网易有钱导入脚本。在使用之前,需要用excel把默认的xlsx格式转换为收入.csv支出.csv

之后,使用

bean-extract importers/youqian/youqian_expense.import documents.tmp/支出.csv > 支出.bean
bean-extract importers/youqian/youqian_income.import documents.tmp/收入.csv > 收入.bean

来导入。

自动记账

写下这个标题是在2020年6月。在使用beancount半年之后,账本一共增加了270条内容,所需的时间每月不超过1小时。

梳理资金的流向

作为一个单身工薪族,我的主要全部收入来自于工资,在经过一些卡片后,从微信、支付宝和其他地方流走。

用mermaid画的流程图

(这张图是用mermaid画的,这里是源代码)

graph LR;
    linkStyle default interpolate basis
    subgraph one [开销]
    A([支付宝]);
    B([微信]);
    G(["京东、刷卡"]);
    H([理财]);
    end
    subgraph two [收入]
    C[工商银行];
    end
    D[农业银行];
    E([中国银行]);
    F([招商银行]);

    E --> H
    E & F --> A & B
    C -->  E & D & F
    F --> G
    classDef auto fill:#9ACFBF
    class B,E,F auto

其中,有一些银行卡(比如图中的农业银行)每月的转账记录不超过2条,这时候只要手工敲上几行就可以了。对于另外的、日常生活的花费,手动记录带来了大量时间的浪费。这时候,找到流动的枢纽,并对它们的账单进行批量处理,就可以从重复劳动中解放出来。对于我来说,要进行批量处理的节点是中国银行招商银行微信2

写一些脚本

所以,我写了中国银行、招商银行和微信钱包对账单的导入脚本。Beancount拥有比较强大的导入功能,对于简单的、CSV格式的账单文件,只要在自带的beancount.ingest.importers.csv.importer稍作修改就可以了;对于其它较为复杂的账单,可以自行扩展ImporterProtocol的子类,在官方文档中有较为详细的说明。

另外,我还发现了smart_importer,只要简单地增加hook,就可以给导入脚本增加更好的去重、智能猜测分类等更帅气的功能。

在每个账单日运行一次

在账单目录下,我建立了一个TODO文件:

自动导入微信、中国银行和招商(账单日)
手动导入工行和农行

因为微信的账单信息比较多,我一般先从它开始。每月信用卡的账单日,下载微信钱包对账单,然后运行:

bean-extract importers/wechat.import documents.tmp/微信支付账单.csv -f main.bean > temp.bean 

其中,-f用来为smart_importer提供学习素材。

接下来打开temp.bean,检查人工智障智能补充的分类条目有没有什么问题。(大概率问题很多,每个月大部分的时间会花费在这里。)

之后,将temp.bean重命名为一个有意义的名字,并在main.beanimport。接下來对银行账户的导入过程中,smart_importer会自动去除重复账单。

在上面的工作都完成以后,本月的账单也只剩下几条漏网之鱼了。把它们(手动)补充,并用balance命令检查。

并养成“记账的好习惯”

在某些问答网站上,在“相见恨晚的习惯”列表,记账大概能排在top10的位置;同时,在“半途而废的习惯”里,位置大概也在附近。原因并不仅仅是“缺乏自制力”,而是手动记账花费了太多时间,而效果并不是立竿见影的。在付出和反馈不成比例时,放弃就成了唯一的选择。

如果每个月只要十几分钟就可以获得成就感,习惯也就自然地养成了。

又及

我跟你港,这次的内容超适合作Python教程的,还能顺便学英语!只要学会了这个,年薪百万不是梦!

现在诚征 100 个凯子幸运读者给我打钱,我的支付宝是:……

呃,对不起。

以上不代表博主观点。