9 ms·
The program is the database is the interface
- CuriousCosmic 4y agoIs there a reason to homeroll your accounting like this vs using one of the plain text accounting tools and their scripting interfaces?
- Temporary_31337 4y agoOne reason NOT to do it would be any legal repercussions if this is used for anything more than some kind of home budgeting. When you are reconciling the accounts, you shouldn’t miss items as described in the article.
- ozim 4y agoMostly reason is because it is interesting. I could use liber office calc for my accounting as well. But for playing with code it is perfect combo for a problem I can tackle and a problem I am interested enough to solve. For accounting my own things I am also quite safe not much harm that can be done :)
- TeMPOraL 4y agoCoding to learn the domain. Correcting for conceptual model mismatch between you and the tool. Possibly both at the same time. Take Ledger: I've approached it repeatedly over the years, but I always struggled with it. Not because of double-entry accounting: that part I get. It's everything else that's confusing to me, because the tool - like every other tool in this space - seems to be written for an American audience that eats Equities, breathes Liabilities, commutes between Accounts Payable and Accounts Receivable, and do 99% of their finances through the stock market. For a simple person from middle of nowhere in Europe, this is a completely alien mental framework. I think in terms of having dollars, paying in them, getting paid in them, occasionally borrowing them to or from someone else. Every time I read through Ledger's docs, I stumble on the same set of problems, like "wtf is this whole accounts payable / accounts receivable business", or "if this is a small-scale accounting/budgeting tool, why half of the docs are about managing stock prices?!". So yeah, I end up doing most of my personal finances with ad-hoc Emacs Lisp in an Org Mode document, or throwaway Excel sheets, and each time I do it I understand ever so slightly more about finances. For anything non-trivial, I just mail an accountant.
- rawoke083600 4y agoI absolutely hear you :) I think "personal accounting(wrong word)" is like the note-taking-app-craze ! It's yet to be solved for the 'common-man'. I'm talking about a 'first-practical' THEN 'correct system'. Versus the current 'First CORRECT then practical' philosophy of the current solutions (Money, Sage, Pastel etc) Every few years I go "THIS" year I'm going to do proper finance records with one of the accounting programs like a real adult ! Then I'm soon bored to tears or frustrated by all the things I don't know about accounting (my fault not the subject's fault) or the apps I then quickly revert to a "money-in-bank / days-left-in-month" 'accounting-system' and a fin.txt in Dropbox where I write down some things...
- marttt 4y agoFellow European here. I'm currently transitioning my accounting from Ledger (used it for 5+ years) to PTA, a tiny Perl program by OpenBSD dev Ingo Schwarze: https://mandoc.bsd.lv/pta/ https://mandoc.bsd.lv/pta/ As compared to Ledger, the journal entries are much less verbose, mostly fitting on a single line: https://cvsweb.bsd.lv/~checkout~/pta/journal.example.en?rev=1.2&content-type=text/plain https://cvsweb.bsd.lv/~checkout~/pta/journal.example.en?rev=... As you can see, it also utilizes traditional account numbers (listed in a separate Chart of Accounts file) instead of Ledger's Account:Subaccount form. PTA also has Debit and Credit, so all amounts are positive, whereas Ledger uses "+" and "-". For me, the PTA approach feels much safer, since basically everybody (including the auditors) in my country are probably used to this kind of system and a numbered Chart of Accounts. Less confusion. Interestingly, while converting my .ledger file to .pta, I discovered a lot of mistakes that seem to be linked to either the system Ledger uses -- or, rather, me not understanding it. I was also fairly inexperienced with double entry accounting when I started with Ledger. But replacing +/- with Debit/Credit accounts pointed those errors out, somehow. Here's the author discussing PTA and comparing it to Ledger&friends. Also a great discussion on plain text accounting in general: http://www.undeadly.org/cgi?action=article;sid=20200928123430 http://www.undeadly.org/cgi?action=article;sid=2020092812343...
- vlz 4y agoThis is like Jupyter notebooks for clojure with UI elements. Certainly helpful for small applications. Jupyter seems to have community support for other languages though[1] including clojure, so it would be nice to see how that compares. [1] https://github.com/jupyter/jupyter/wiki/Jupyter-kernels https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
- simongray 4y agoClojure also has Clerk, which is like Jupyter, but more befitting Clojure's overall philosophy: https://clerk.vision/ https://clerk.vision/
- Kinrany 4y agoNext step: UI components a-la http://witheve.com/ http://witheve.com/
- andai 4y agoThis looks really interesting, why did they stop working on it?
- TuringTest 4y agoExperimental programming languages based on completely novel concepts are difficult to program, and even more difficult to disseminate and monetize.
- foobarbecue 4y agoMaybe because he got absorbed by TigerBeetle.
- evnc 4y agoThey posted on HN about why, some years ago: https://news.ycombinator.com/item?id=16227130 https://news.ycombinator.com/item?id=16227130 tl;dr it was hard to monetize, experimental research not really well fitting the startup model, but at the core of it I think it lacked a compelling, concrete problem to solve. Eve was an amazing tool with a lot of potential, and an unclear story of how a person might actually want to use this tool in their life.
- distortionfield 4y agoIt's a really interesting tool. They should've focused this on the personal knowledge management crowd, I feel like they would eat that shit up for a research focused environment.
- bmacho 4y agoI don't like UI components. I don't want to drag things on screen and put them on each other to something to happen. Can't we have TUI instead, with fixed position menus, sane shortcuts, search bar for actions and options and such? Just the other day I was wondering about how we have the touchscreen ticket vending machines for ~10 years now, and they are still not working when the whether is sunny or rainy. Moving the cursor with physical buttons was a much better construction.
- Twisell 4y agoWhenever I stumble on an article like that*, I can't stop wondering why do so many developers think that SQL is hard/clunky in comparaison? *(any article where author seemingly rebuild a database engine from scratch with maybe 0,1% to 1% of features count present in any RDBMS including sqlite)
- TuringTest 4y ago> why do so many developers think that SQL is hard/clunky in comparison? > A database introduces a different data model - I have to translate between database data-types and my programming languages native data-types. The key concept is explained in this sentence in the article. It doesn't matter how difficult or simple it is; the problem is that it's a different model, so it creates translation inefficiencies and makes it more difficult to reason about. The object-relational impedance mismatch is a known problem; having data in one place and format, accessed through a single programming model will typically be easier than a separate service with a different language and model, no matter how efficient.
- RobotToaster 4y ago(my)Sql in itself can be quite powerful, although it seems it's advanced features are underused. I wonder about going the other way, and turning SQL into a full scripting language.
- TuringTest 4y ago> turning SQL into a full scripting language That's what PL/SQL and T-SQL basically are. They work, but they have a somewhat weird programming model, halfway between programming and declarative sql but being neither, with table cursors and stateful SQL queries. And of course, their scope is limited to interacting with the database itself, not the outer world.
- ttfkam 4y agoPartial list for Postgres: • pl/pgsql (a pl/sql clone) • pl/perl • pl/python • pl/v8 (JS, LiveScript, and CoffeeScript) • pl/java • pl/r • pl/lua • pl/rust • pl/ruby • pl/sh • pl/scheme • pl/julia Or at least that's where you can define arbitrary procedural/functional logic for result sets within a language oriented toward set theory and transformation.
- TuringTest 4y agoSince its inception, computers were based on the model of a machine traversed by data that are processed like sausages in a mincer, as data was fed directly on hardware which had code assembled as physical wires. However, the software part of the machines is made of the same material as the data, so they are much closer to what current programming languages seem to imply. It is natural that they tend to converge, especially in Lisp-like languages, into a type of program where the structure has code and data intermingled, which organically co-evolve in the directions in which problem solving takes it. Instead of a machine with a processing pipeline, a closer metaphor might be the phloem of plants, the living cells that transport food, and which form part of the plant's structure and grow along with it. (BTW I've coined a name for that kind of self-rendered cells, processed in place as collections of data sharing the same structure; I call them 'wits' - as in, the minimum unit of meaning; in parallel to bits as the minimum unit of information. And if you look closely, you'll begin to see that a lot of modern programming systems have them everywhere. So you may want to use this term 'a wit' to describe the concept explained in the article.)
- DougMerritt 4y agoPossibly related: "Seme, the smallest unit of meaning recognized in semantics". [1] [1] https://en.wikipedia.org/wiki/Seme_(semantics) https://en.wikipedia.org/wiki/Seme_(semantics)
- TuringTest 4y agoThanks, I'll take a look. A wit would be the smallest unit of meaning in computing, then. I.e. the smallest part that needs processing beyond that of a primitive.
- DougMerritt 4y agoI forgot to mention that I like your idea. And yeah, semantics and computing are related in a complex way, but certainly are not the same thing. I was distracted, trying to think of where I'd seen something like that in science fiction, and now I think (but can't check right now) that Robert Heinlein's novelette "Gulf" had something about the smallest unit of thought; the "psychon" or some such. There may also have been something in Keith Laumer's "The Great Time Machine Hoax", but I'm less sure about that.
- habibur 4y agoAnother alternate is to use Excel. The downsides being [compared to this one] : - Excel is more bulky. Takes time to start. - You are forced to use Excel's editor, and not any editor of your choice.
- andreareina 4y ago- Your programs are not portable (guess what VLOOKUP is in the Spanish version)
- dtech 4y agoThey are portable, you can open a file made in Spanish Excel in the English Excel and vice-versa and always see VLOOKUP in English Excel. It's "just" that since the formula language is also localized, you'll need the Excel localization(s) you know to work on it.
- andreareina 4y agoI stand corrected!
- samsquire 4y agoThis is interesting. I do wonder what the ergonomics of querying data is for people who are unfamiliar with your APIs, they may prefer to query the data with SQL or a cursor based API. The volcano model for querying in SQL databases is useful but I've never implemented that. (Kind of hard to query about though on Google) https://www.computer.org/csdl/journal/tk/1994/01/k0120/13rRUwI5TRe https://www.computer.org/csdl/journal/tk/1994/01/k0120/13rRU...
- alxmng 4y agoSo, a spreadsheet?
- pvillano 4y agoa better spreadsheet, at least for the person using it
- marttt 4y agoI've had a similar experience using the sam [1] text editor in command line mode, basically like a REPL. Filtering and modifying data using sam's "structural regular expressions". Rob Pike, the author of sam, specifically points out in the linked paper that the command language is great for manipulating multi-line "records". Add the ability to { nest { expressions } } + very flexible file system IO (e.g. pipe selection to an external command and return the result), and you have a really nice recursive querying language. I specifically like it because of how easy it is to refine the query/regex substitution when it didn't yield the expected result. 1: http://doc.cat-v.org/plan_9/4th_edition/papers/sam/ http://doc.cat-v.org/plan_9/4th_edition/papers/sam/ (In particular, scroll to the "Structural Regular Expressions" section.)
- blatant303 4y agohttps://www.hyperfiddle.net https://www.hyperfiddle.net
- jokethrowaway 4y agoyou could also just have a string tag field, avoiding some inference which need to be often overwritten I use your typical boring spreadsheet and it's mostly just numbers and strings with a few sums for totals
- pvillano 4y agoyou might be interested in https://youtu.be/HB5TrK7A4pI https://youtu.be/HB5TrK7A4pI "We Really Don't Know How to Compute!"- Gerald Sussman (2011) [1:04:18]