LWN:确定了会计系统!

手把手教你用STM32F103的普通IO口读取SSI编码器(附完整代码与示波器调试心得) 本文详细介绍了如何利用STM32F103的普通IO口读取SSI绝对式编码器数据,提供完整的硬件连接方案、精确时序控制的软件实现及示波器调试技巧。通过低成本方案实现高精度位置反馈,适用于工业自动化和机器人控制领域。 阅读详情

关注了就能看到更多这么棒的文章哦~

The end of the accounting search

By Jonathan Corbet
May 5, 2023
DeepL assisted translation
https://lwn.net/Articles/925782/

有些事情就是没法加速的。早在 2007 年,编者第一次开始考虑替换一下 LWN 自始至终一直使用的专有的会计系统(proprietary accounting system)。在 2012 年的时候这跟需求变得更加紧迫了,并在 2017 年又重新开始集中精力寻找更好的方案。但又过了五年,才达成某种结论。不过好在终于最终还是达成了目标,LWN 不再使用专有软件来满足会计需求了。

到目前为止一直使用的系统是 QuickBooks,这是公司 1997 年成立之初就开始采用的。长期以来,一直表现出专有系统特有的各种不合适的行为。尽管新版本几乎没有带来什么新的功能,但还是不得不要定期地进行(付费)更新。经常会有 crash;QuickBooks 的用户都知道每隔几分钟就要做一次备份,以避免丢失工作内容。该软件有各种各样的限制,目的都是强迫 "升级" 到 "enterprise" 版本。最近,Intuit 已经完全停止了对桌面版的支持,从而迫使所有用户都使用其按月付费的在线服务。

够了,终于够了。编者花了一些时间回去查看过去曾经考虑过的各种系统。结果发现,为从 QuickBooks 中提取出数据而开发的脚本仍然有效,至少在更新到 Python 3 后(更新得有点晚)。最后,我们选定的胜出方案是 GnuCash。

How the decision was made

有大量的免费会计系统存在于 Linux 系统上。许多都是很复杂,都是用来解决更大的问题的;它们包括库存跟踪功能、客户关系管理功能等。这样的系统操作起来很不方便,而且很难上手。事实上,许多系统似乎是开发出来作为咨询业务(consulting business)的平台的,毕竟肯定没有人会故意让他们的软件复杂和棘手来激励客户购买他们的服务的。LWN 倾向于不以这种方式花费辛苦赚来的钱,毕竟也不需要那些复杂的功能,所以这些系统在早期就被我们放弃了。

另外一个方向上,有一些会计系统是基于纯文本文件和一组相关的程序的。这些系统更容易操作,可以适应大多数需求。这样的系统可以用在 LWN 里,但它们往往缺乏一些有用的功能。例如,支票书写和报告生成往往支持得不是很好。许多操作的用户界面都是直接使用文本编辑器;这通常被视为一种优势,但随着交易数量的增加,这种优势就不那么明显了。为手头的工作而设计的图形界面是有优势的。

GnuCash 绝不是一个完美的程序,但它确实提供了 LWN 所需要的会计功能,以及一个合理的图形界面,以及最低程度的额外复杂性。

2017 年的重新调查的时候列出了新的会计系统必须满足的一些要求:

  • 数据的导入和导出必须可以支持,而且要是相对比较简单的。将我们的 QuickBooks 数据导入 GnuCash,需要使用相应的 Python 绑定支持来编写一些脚本。此后,我们又编写了另一组脚本,从网站和银行账户中导入数据。GnuCash 对银行输出的数据格式导入功能方面实现得非常强大,采用一个贝叶斯(Bayesian)系统将交易分配给账户,但使用脚本的话可以让这个过程更快。

  • 基本的会计操作需要操作简单,毕竟本来就是简单的动作。

  • 也需要能针对我们的法律报告要求生成表格。GnuCash 有一些功能来处理这个问题,虽然不是针对美国的表单。最后,这个任务我们现在只需交给我们的会计师,由他和我们的年税申报一起处理就行。还有一个相关的要求是打印支票,这对一个企业来说是很重要的;下面会有更多关于这个问题的说明。

  • 上面提到了要方便跟 LWN 其他业务整合;Python 绑定的支持使得大多数事情都很容易做。

  • 最后一个要求是该系统的未来有关,就是社区健康程度如何?GnuCash 项目开始于 1997 年,比 LWN 略早;它在四分之一个世纪后仍然在这里,并且仍然在发布。GnuCash 可能不会很快消失。不过它的开发社区比人们所希望的要小,而且进展也不快。

总而言之,多年前列出的要求已经得到了很好的满足,足以让我们做出改变。

Some further impressions

在许多方面来看,GnuCash 还没有完成开发。例如,很多年来它一直具有使用 SQL 数据库(PostgreSQL、MySQL 或 SQLite)的能力,但本地的 XML 格式仍然在文档里称为 "最稳定和最成熟的",被推荐给大多数用户使用。在 PostgreSQL 中存储数据确实更有效率,使用这个方案时启动时间会稍微快一些。可悲的是,即使在使用 PostgreSQL 时,也不支持多用户访问。另一个例子是对账(reconciliation)过程,它不记得以前的 reconciled value 是什么,而是编造一些奇怪的东西出来。

GnuCash 有报告生成机制,显然投入了大量的精力;该系统被设计为可由终端用户所扩展的。不幸的是,这个扩展语言是 Scheme,而且在大多数情况下文档不足。Scheme 看起来像 Lisp,但并不是真正的 Lisp;熟悉它的人肯定不多。为 GnuCash 创建一个新的报告(或改进一个现有的报告)的工作看起来可能有点令人生畏;请看资产负债表的实现(https://github.com/Gnucash/gnucash/blob/stable/gnucash/report/reports/standard/balance-sheet.scm )就是一个例子。编者最后发现直接在 GnuCash 之外用 Python 创建新的报告更容易。

打印支票的能力一直都在列表中。即使在美国,我们开的支票也比以前少得多,但仍是有这种需要的。GnuCash 具有这种能力,而且它可以与几乎所有的支票格式一起使用。用于添加新支票格式的语言很简陋,但它最终还是能很好地用起来的。GnuCash 的支票打印的一个恼人的特点是,每次打印支票时都必须输入地址信息,即使收件人的地址在 GnuCash 中被存储为一个供应商(vendor)也一样。

这次迁移中我们最大的损失是无法再用我们的会计师能够直接读取的格式将数据导出到他专有的报税系统里去了。不过,他愿意与我们合作,并相信从 GnuCash 生成的报告也是足以完成工作而不需要大量的额外工作(和费用)的。也许他也厌倦了听编者对 QuickBooks 的抱怨,这么多年来,他几乎已经做好准备可能会有任何一个东西来替换它。

最后,GnuCash 足以完成 LWN 需要它做的事情。摆脱了 LWN 运营中使用的一个专有程序,让我们对会计数据有了更好的控制,这种感觉真好。新系统运行得很好,编者正在为等待这么久才做出这一改变而自责。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

【MATLAB代码】UKF组合导航例程,15维状态量、3维观测量。附完整的代码,有中文注释、误差输出图像 摘要 本文提出了一种基于15维误差状态模型的UKF组合导航算法,实现了三维位置、速度和姿态的高精度估计。算法采用严格的误差状态模型,包含位置(3)、速度(3)、姿态(3)、陀螺偏差(3)和加速度计偏差(3)共15个状态量,通过3维GNSS位置观测进行校正。仿真结果表明,相比纯IMU积分,UKF算法能有效抑制误差积累,显著提高导航精度。文中提供了完整的MATLAB源代码,可直接运行并复现三维轨迹对比、位置/速度曲线及误差分析结果。 阅读详情

相关推荐

win10 运行lisflood_8踩过的坑

1、安装cuda及VS2019 https://www.bilibili.com/read/cv7335974/ 2、netcdf.h头文件找不到问题 https://www.cnblogs.com/lyggqm/p/12926974.html https://blog.youkuaiyun.com/u011954296/article/details/54617048 3、编码问题 https://blog.youkuaiyun.com/qq_33485434/article/details/81196843 4、

我的笔记 4115

LWN:Rebecca要跟LWN说再见了!

关注了就能看到更多这么棒的文章哦~A farewell to LWNBy Rebecca SobolDecember 22, 2021DeepL assisted translationh...

Linux News搬运工 359

T12 电烙铁简单程序逻辑

通过分析就可以知道,发热丝本身即是发热体,也是热偶的工作端。怎么可能是热电动势呢,确实,但不要忘了T12-OUTPUT端的电压是PWM波,理论上是有单片机PWM电压为0 v时的,而T12-OUTPUT端的电压此时也应为0。在T12烙铁头中,PID控制算法通过监测温度传感器的输出,计算当前温度与设定温度之间的差异,并根据这一差异调节加热功率,以实现烙铁头温度的精确控制。这段代码实现了一个简单的增量式PID控制器,通过计算当前温度与期望温度之间的差异以及历史偏差值,调节输出控制量,实现对温度的精确控制。

hgkhjkljnl的博客 1万+

LWN: 2021 年初预测的回顾!

关注了就能看到更多这么棒的文章哦~LWN's 2021 retrospectiveBy Jonathan CorbetDecember 22, 2021DeepL assisted tra...

Linux News搬运工 336

链路状态路由协议 OSPF (一)

本章将会学习链路状态路由协议OSPF,理解OSPF的基本概念,工作原理,掌握OSPF配置基本命令。本章重点,OSPF的基本概念,OSPF配置。

yj11290301的博客 3475

【一看就会】Autoware.universe的“规划”部分源码梳理【0】——Planning综述(持续更新中)

单独开一篇planning综述,作为整个规划系列的开篇。本篇综述会持续更新,希望能帮助大家更好的整体理解规划部分。这个部分会持续更新。

weixin_48386130的博客 1963

LWN:2022年底总结!

关注了就能看到更多这么棒的文章哦~Wrapping up 2022By Jonathan CorbetDecember 21, 2022DeepL assisted translationhttps://lwn.net/Articles/917752/又是一年即将过去。这说明现在是时候来重复 LWN 的一个长期传统了:回顾我们在一月份所做的预测,并给予应有的嘲弄。请继续阅读,看看这些预测是如何进行...

Linux News搬运工 833

交换机初始化配置详解

MGMT或称MGT(Management Port,管理端口)是一个可以连接计算机的三层主机端口,如下图所示。只需使用一条双绞线跳线,就可以将计算机的以太网端口与交换机的MGMT端口连接在一起,实现对交换机的配置与管理。也就是说,可以使用MGMT端口代替Console端口实现对交换机或交换机堆叠的网络管理。MGMT端口既可用于交换机的初始化,也可以在交换机初始化完成后,以Telnet、Web浏览器或Cisco CNA方式进行管理。当将计算机连接到独立的交换机时,连接方式如下图所示。

悦分享 1992

LWN:用 !CVE 作为CVE的补充!

关注了就能看到更多这么棒的文章哦~Supplementing CVEs with !CVEsBy Jake EdgeDecember 5, 2023ChatGPT translationhttps://lwn.net/Articles/953738/通用漏洞和利用(CVE, Common Vulnerabilities and Exploits)系统是跟踪各种安全漏洞的一个主要机制,使用普遍存在的...

Linux News搬运工 755

YOLOv8【第一章:基础入门篇·第1节】一文搞定,核心架构深度解析与环境配置!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 2100

最大面积验证码通用解法

最大面积验证码、面积验证通用解法

九月镇灵将的博客 1043

LWN:mseal() 即将确定!

关注了就能看到更多这么棒的文章哦~mseal() gets closerBy Jonathan CorbetJanuary 19, 2024Gemini translationhttps://lwn.net/Articles/958438/2023 年 10 月首次提出的 mseal() 系统调用引发了一些争议。自那以后,它一直静悄悄地开发演进,并且似乎已经达到了相关评论者愿意接受的程度。预计会在...

Linux News搬运工 517

ROS从入门到精通2-1:机器人3D可视化工具——Rviz

本文详细介绍了Rviz是什么?为什么要使用这个工具?清晰地列出了Rviz的安装流程和界面的基本功能元素;讲解了Rviz基本数据类型与话题,并用两个实例深入理解Rviz数据可视化的过程

FRIGIDWINTER的博客 5345

LWN:多代LRU方案的未来!

关注了就能看到更多这么棒的文章哦~Multi-generational LRU: the next generationBy Jonathan CorbetMay 24, 2021Deep...

Linux News搬运工 1242

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LWN: 运行时的检查功能!

关注了就能看到更多这么棒的文章哦~The runtime verification subsystemBy Jonathan CorbetJune 7, 2021DeepL assiste...

Linux News搬运工 565

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LWN:内核的capability analysis!

在内核(及其他领域)中的实际使用可能有助于推动 Clang 社区的开发工作,以改进此分析功能,使其能够常规地用于验证锁定模式。但是,由于它是一个 opt-in 的编译时功能,因此即使需要进一步的工作,相对较早地添加它也可能很有价值。当 Van Assche 使用 breadth-first(广度优先)方法处理 mutex 时,Elver 采用了 depth-first(深度优先)方法,该系列为几个 locking primitive(锁定原语)添加了注解,但仅在明确选择加入的子系统中处于活动状态。

Linux News搬运工 1510

LWN:最近在关注的kernel改动!

关注了就能看到更多这么棒的文章哦~Kernel topics on the radarBy Jonathan CorbetAugust 2, 2021DeepL assisted tran...

Linux News搬运工 523

LWN:folio的最新情况!

关注了就能看到更多这么棒的文章哦~A memory-folio updateBy Jonathan CorbetMay 4, 2022LSFMMDeepL assisted translationhttps://lwn.net/Articles/893512/folio 项目还不到两年,但它已经导致了对内核的内存管理以及文件系统层的重大改变。虽然已经做了很多工作,但仍有不...

Linux News搬运工 1448

LWN:Ghost 发布系统!

关注了就能看到更多这么棒的文章哦~The Ghost publishing systemBy Jonathan CorbetOctober 20, 2022DeepL assisted translationhttps://lwn.net/Articles/911601/WWW 万维网早期具有的吸引力中,有一部分是来自于可以让任何人都能自己创建一个网站并向世界发布有趣的内容。几十年后,这个承诺似乎...

Linux News搬运工 488

LWN:BPF与安全!

关注了就能看到更多这么棒的文章哦~BPF and securityBy Jake EdgeOctober 4, 2023LSSEUChatGPT translationhttps://lwn.net/Articles/946389/eBPF内核虚拟机即将迎来其加入Linux十周年,它已经发展成为生态系统中多种用途的工具。eBPF的创始人,也是其早期开发的主要负责人Alexei Starovoito...

Linux News搬运工 1077

LWN:讨论composefs!

关注了就能看到更多这么棒的文章哦~Debating composefsBy Jonathan CorbetFebruary 16, 2023ChatGPT assisted translationhttps://lwn.net/Articles/922851/去年 12 月,LWN 曾经报道过 Composefs 文件系统,并称针对这些 patch “几乎没有任何反馈”。但是现在情况已经发生了改变...

Linux News搬运工 662

LWN:RDRAND的后续进展!

关注了就能看到更多这么棒的文章哦~A RDRAND followupBy Jonathan CorbetFebruary 26, 2024Zhipu translationhttps://lwn.net/Articles/963281/在最近的一篇文章《Pitchforks for RDSEED》中,我们了解到关于 x86 CPU 上的基于硬件的随机数生成器是否可能失败,是存在一些不确定性的。由于...

Linux News搬运工 350

LWN:如何确定采用dlopen()方式引入了哪些依赖!

关注了就能看到更多这么棒的文章哦~Identifying dependencies used via dlopen()By Daroc AldenApril 16, 2024ChatGLM translationhttps://lwn.net/Articles/969908/最近的XZ后门事件在开源社区中引发了很多关于如何链接和打包软件的讨论。正在讨论的一个可能的安全改进是更改 systemd ...

Linux News搬运工 333

LWN:gccrs开发进展!

关注了就能看到更多这么棒的文章哦~An update on gccrs developmentBy Jonathan CorbetOctober 1, 2024CauldronGemini-1.5-flash translationhttps://lwn.net/Articles/991199/Rust 语言经常被人们诟病的问题是只有一款编译器,这使得很难确定该语言的标准版本,也限制了 Rust ...

Linux News搬运工 1363

LWN:用户空间的影子堆栈!

关注了就能看到更多这么棒的文章哦~Shadow stacks for user spaceBy Jonathan CorbetFebruary 21, 2022DeepL assisted...

Linux News搬运工 2230

LWN:magic 消失了!

关注了就能看到更多这么棒的文章哦~Losing the magicBy Jonathan CorbetDecember 5, 2022DeepL assisted translationhttps://lwn.net/Articles/915163/kernel 项目现在已经有三十多年的历史了。这期间不断有一些开发实践(development practice)出现和消失。曾几何时,人们认为用 "...

Linux News搬运工 8276

LWN:算数溢出的内核防护!

关注了就能看到更多这么棒的文章哦~Arithmetic overflow mitigation in the kernelBy Daroc AldenJuly 1, 2024Gemini-1.5-flash translationhttps://lwn.net/Articles/979747/2024 年 5 月 7 日,Kees Cook 在 linux-kernel 邮件列表中发送了一个提案...

Linux News搬运工 2962
上一篇: LWN:6.4合并窗口的第二部分!
下一篇: LWN:利用SFrame提供更可靠的用户空间调用栈记录!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值