使用 Beancount 记账篇五:使用 Telegram Bot 简化记账

在了解并使用 [[Beancount]] 的过程中,大多数情况都是通过 VSCode 打开 Beancount 仓库,然后手动进行记录,但是通常情况下消费都是遍布在日常生活中的,不会随时随地都有一个 VSCode 环境,所以就需要一个可以随时随地记账的方法,很早之前想过通过 Alfred,或者通过在线构建一个 Fava 环境,但是一方面 Alfred 手机上并没有,而如果构建一个 Fava 则还有安全性问题,所以一直没有很好的对策,直到有一天我看到有人分享了一篇文章说自己使用 Telegram Bot 来作为 Beancount 的记账,我茅塞顿开。 Read more ...


使用 Beancount 记账篇四:证券交易

在我使用 Beancount 的过程中,让我收益最大的是让我知道了一个词 commodity ,直接翻译为通货,它不等同于金钱,也不是我们理解的钱。但是在记账的过程中使用最多的就是以货币单位,比如 CNY 人民币,USD 美元,HKD 港币来作为 commodity 记账。 Beancount 给我普及了 commodity,它可以是用于交换的任何物品或资源,比如可以是股票,可以是黄金,也可以是期权,也可以是加密货币等。这种灵活性使得 Beancount 在处理不同类型的资产时非常强大。 Commodity 每一个投资标的就是一个 commodit Read more ...


使用 Beancount 记账篇三:限制性股票

通过之前几篇文章的介绍,相信大部分人已经入门了基本的 Beancount 的使用,也能理解[[复式记账]]的魅力。 使用 Beancount 记账篇零:Beancount 入门使用 使用 Beancount 记账篇一:给账户命名 使用 Beancount 记账篇二:各类账单导入 这一篇文章就接着之前的内容,来讲讲如何在 Beancount 下记录期权(或者限制性股票)交易的记账。 RSU(restricted stock units),又被称为限制性股票,restricted 意味着当前无法获得,一般经过特定的时间周期,当其成熟时才 Read more ...


Drools 原理之 RETE 算法

RETE 算法是卡内基梅隆大学的 [[Charles L.Forgy]] 博士在 1974 年发表的论文中实现的算法,是一种[[模式匹配算法]]。简易版本的论文发表于 1982 年 (http://citeseer.ist.psu.edu/context/505087/0)。拉丁语的 rete 表示 ”net” 和 “network”。 这个算法设计的目的是为了在大量的规则,Objects(或者说 Facts)中寻找匹配的规则。其核心思想是通过分离的匹配项,根据内容动态的构造匹配树,缓存中间结果,以空间换取时间,降低计算量。 RETE 算法主要可以分 Read more ...


使用 Beancount 记账篇二:各类账单导入

在上一篇如何给 Beancount 账户命名 的文章中,我们已经迈出了 Beancount 使用的第一步,建立一套属于自己的账户系统,之后所有的资金就会在这些账户之间流转。复式记账讲求账户的流入与流出。 那接下来就是 Beancount 真正关键的地方,熟悉并导入以前的帐本。使用 Beancount 就会想着如何将之前的账单导入到 Beancount。 但人的惰性总是让我们不会每一笔交易都事无巨细的记录下来,所以我的方式便是固定一个时间,然后对上一个周期内的账单进行一次性批量处理,比如在信用卡账单日对信用卡消费做处理,或者在月末对微信账单进行处理。 Read more ...


使用 Beancount 记账篇一:给账户命名

在之前整理复式记账 的文章中曾短暂的提及过 Beancount,上一篇文章简单介绍了一下 Beancount,现在经过一段时间的使用,也正好回顾总结一下自己的使用经历和经验。 要入门 Beancount 的使用,其中最重要的第一步便是充分的认识 Beancount 中的账户概念,在复式记账中资金都是在账户与账户之间流转,因此账户就非常重要。但是因为 Beancount 的入门难度要远远超过其他的记账软件,所以迈出第一步就变得至关重要,迈出了这第一步后面就会发现 Beancount 能带来远超预期的收益。 在 Beancount 中内置类几类账户,这几 Read more ...


如何进行有效的讨论 论 Clubhouse

这两天 Clubhouse 非常火热,又使得「声音」这一载体被放到了台前,但听了多个 Room,并没有收获太多,反而是相对较大的「杂音」影响了收听,并且大部分的观点并没有让人眼前一亮的感觉。 而从去年读[[洛克]], [[密尔]]开始,我就在思考什么叫做「有效讨论」,这些先贤们在写下他们流传百世的著作之前,当然有其自身深入地思考,但也绝不是将自己关在小黑屋与世隔绝而诞生了其思想,往往在他们形成自己的思想之前,他们会阅读大量比他们时代更早的作品,也会与他们同时代的伟大思想家进行书信,甚至直接的交流。在这样的思辩和讨论之中,他们最终才会形成自己的思想,这些 Read more ...

2021-02-06 discussion , locke , clubhouse , talk , podcast , voice , sound

使用 Beancount 记账篇零:Beancount 入门使用

说起 Beancount,就不得不提复式记账,在之前的文章里面已经完整的叙述过复式记账是比单式记帐更加科学的记账方法,但是复式记账在目前只被大多数企业所采用,并没有被大众所接受,市面上也依然缺少复式记账的工具。而 Beancount 就是其中比较好用的一个工具。 为什么要用 Beancount 记账 为什么要用 Beancount 记账? 要回答这个问题需要从两个方面说起,一方面是为什么要记账,另一方面是在这么多的记账软件中为什么要用 Beancount。 首先回答为什么要记账,在之前的文章中也提到过,通过记账是认识自己的一种方式,通过周期性的记账 Read more ...


Maven 中的 classifier

今天看 maven-embedder 中定义的引用 [[Google Guice 轻量级依赖注入]] 依赖时,定义了 classifier 标签。故来学习一下 Maven 配置中 classifier 的含义。 首先来看两个例子: <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.2.2</version> Read more ...

2021-01-29 maven , build-tool , java

解决 NoSuchMethodException 错误的方法

问题的出现 在使用 Java Instrumentation API 的时候,因为在应用启动的时候加载了一个 Java Agent,然后在 Java Agent 中依赖的包,和应用内依赖的包产生了冲突,同时使用了 commons.lang3 这个包,但是依赖的版本不一致。导致使用 FieldUtils 的时候出现了 NoSuchMethodError: Caused by: java.lang.NoSuchMethodError: org.apache.commons.lang3.reflect.FieldUtils.getFieldsWithAnno Read more ...

2021-01-27 java , jdk , jvm , methodology

最近文章

  • Aqua Voice 利用语音转文字提升产出效率 之前我介绍过 [[MacWhisper]],[[MemoAI]] ,[[VideoLingo]],[[pyTranscriber]] 等等语音转文字的 AI 工具,但当时我的需求只是将视频中的音频转为文字,或者字幕,但是,随着现在语音转文字技术的发展 ,我越来越意识到手工通过输入法来输入文字的效率非常低。 所以我一直在寻找有没有可能在电脑上直接通过语音来编写文章。
  • HomeShare 让本地电脑文件夹成为文件分享服务器 前些天出门拍了很多照片,回来从 SD 卡导出之后就想有一个可以快速一键分享出去的方法,通过微信传,虽然可以通过笔记一次发送超过 9 张图片,但是还是需要将照片上传到微信的笔记里面,虽然我之前也有使用自己的在线图库,但依然避免不了上传等待的过程,并且如果照片比较大时,等待的时间会很长。所以这几天我一直再想能不能有一个方法可以直接将本地的文件夹共享出来,或者直接让别人将图片一次性发送到我本地。
  • Dola 你的私人智能 AI 助手轻松管理日程 我个人一直使用 Google Calendar 作为日程管理,很久以前也购买了一个叫做 Checker Plus 的 Chrome 插件,可以直接在 Chrome 的插件栏查看日程,并且还可以直接通过自然语言来创建日程,以及在日程之前弹窗提醒,实话说这款插件已经能满足我 90% 的日程安排了。
  • K3s 部署 Bitwarden 我之前一直是在一台机器上使用 Docker compose 安装了 Bitwarden,但是这样存在一个隐患,那就是如果这一台机器宕机了,或者发生任何意外,那么我可能有一段时间无法访问我的所有密码仓库,所以为了避免这样的问题,尤其是在我已经稳定运行 K3s 一段时间之后,我就想着将 Bitwarden 迁移到 K3s 上,并且我希望直接使用 Bitwarden 历史的数据,并且也直接使用原来的域名,密码等等,这样就不需要让我所有的设备重新再登录一遍。那么本文就记录一下我在 K3s 上搭建 Bitwarden ,以及将历史数据迁移到 K3s 中的过程。
  • K3s 中给节点添加标签并实现 Pod 调度控制 给 K3s 中的节点添加标签并实现 Pod 调度是一个非常常见的需求,特别是当你希望某些 Pod 只在特定地理位置的节点,比如美国,日本,上运行的时候。