A while ago, I started a
thread on planning software.
https://permies.com/t/74551/Permaculture-Planning-Software
Lately I've been thinking about diaries (not daiquiris), especially in the context of having a link to ledger (a text based format for double entry accounting, in particular to hledger which is ledger written in Haskell). I managed to get the demonstration
project of a blog for POET (POET is something on top of Mason, which is a bunch of Perl modules). I tried writing it properly, and kept getting some strange errors. So I lef the source code largely alone, and just change the labelling of things in HTML forms to make it look like a diary).
A diary entry for the farm is not a simple title, timestamp, content. There are other things that need to go along. Location is a good example I think. If I go to get dyed diesel for the farm, the location in terms of the diary is the entire farm, as the diesel could be burned anywhere. If I mow the
lawn (the lawn is more than 10% of my farm for some strange reason), this is a big area. If I go to do something on tree 17, that is a quite restricted area of the farm.
So not only do I want to find hooks for ledger type stuff, I want to be able to attach GPS track segments and other things.
While it is nice to be able to write all the diary entries necessary during the day they happen on, it may not happen. And I don't expect this to be unusual. You may be writing about the day in question, about a particular time of the day, an interval of the day (start and stop timestamps), or perhaps an array of similar type time/date entries.
I've seen entirely too many people sit down and write client/server type things and they miss aspects of the conversations, or they don't describe the interactions well
enough. And then there are problems. Back in the days of UNIX and Bell Labs, there was a tendency to write "Little Languages" to solve particular problems. And this follows into using yacc, bison, flex and perhaps the Perl Recursive Descent Parser (and other stuff). If one sat down to write a language to describe an interaction (or conversation), it seemed to be easier to make it consistent and cover all the problems. Otherwise your parser never would build.
Thinking along those lines, I went looking again at blog software, and ran across Swagger. Swagger begot Swagger2, which begot OpenAPI. Apparently the tools out of this "project" can be used to build significant parts of both the client and the server(s). To me, this is like building a little language. Except this all has such things as security built in from the start.
The API specification can be provided in JSON or YAML. I've always hated javascript, so I never tried to learn anything about JSON. But it seems almost eveyrbody loves it. YAML I know a little about, and at least one person thinks the YAML version of an API is easier to understand than the JSON.
I've no idea if this forms a basis to start looking at computational aspects of
permaculture. I think the idea that this incorporates security from the beginning is important.
Today, if we have a well instrumented farm (I don't), we might have RFID tags on all the animals. Let's say we have a scale, which weighs animals as they pass. What happens if the owner of the farm walks across the scale? The animal has a RFID tag, does the owner?
On UNIX, we typically use UID less than 1000 for "system" users. I don't think assigning 1000 system users to a farm is enough. I don't think having 1 million system users is enough. So next step up is 1 billion system users (probably 1024^3) is probably the default. That almost uses up a 32 bit dataspace. So we probably want a 64 bit dataspace for User ID on the farm.
The first animal we put into the system gets the ID 1024^3+1, and so on. In the old days, we might assign UIDs to all the
trees on our farm. What happens if we have trembling aspen? We could have 1000 (more?) aspen on the farm, and they are all the same organism. They are clones. Lots of plant propagate by suckering (or layering). If we coppice or pollard, we generate new entities. So we need some way to relate a specific UID to one or more UIDs.
Which is all wonderful. Except I have even less time to work on this that I might have, because my insurance company has said that I need to "finish" the deck by Sep 30. And I am trying to treat every tree in the world (well, every tree seed in my fridge) as fall rye, and plant them now and get them started for next year (when some might get planted).