Wow, thanks for the stickies! Love all the activity in this thread. I love our coding comrades!
Hey fellow Hexbearions! I have no idea what I'm doing! However, born out of the conversations in the comments of this little thing I posted the other day, I have created an org on GitHub that I think we can use to share, highlight, and collaborate on code and projects from comrades here and abroad.
I know we have several bots that float around this instance, and I've always wondered who maintains them and where their code is hosted. It would be cool to keep a fork of those bots in this org, for example.
I've already added a fork of @[email protected]'s Emoji repo as another example.
The projects don't need to be Hexbear or Lemmy related, either. I've moved my aPC-Json repo into the org just as an example, and intend to use the code written by @[email protected] to play around with adding ICS files to the repo.
We have numerous comrades looking at mainlining some flavor of Linux and bailing on windows, maybe we could create some collaborative documentation that helps onboard the Linux-curious.
I've been thinking a lot recently about leftist communication online and building community spaces, which will ultimately intersect with self-hosting. Documenting various tools and providing Docker Compose files to easily get people off and running could be useful.
I don't know a lot about GitHub Orgs, so I should get on that, I guess. That said, I'm open to all suggestions and input on how best to use this space I've created.
Also, I made (what I think is) a neat emblem for the whole thing:
Todos
Mirror repos to both GitHub and Codeberg
Create process for adding new repos to the mirror process
I have a silly idea for a project I've been wanting to do for a while: if anyone here has played Minecraft with the ComputerCraft mod, how cool would it be to have a system that takes in a bunch of crafting recipes, then uses them to set up supply chains and automatically manage logistics for a bunch of factories? Like project CyberSyn? When I tried this last year I got stuck on a general design for train stations and code for a train station controller that could manage any number of inputs and outputs, but if some other people could suggest ideas and work on it, it might end up being cool.
Yeah it does, that's what I used on my last playthrough, but I feel like it takes a lot of the fun away because you just end up putting a bunch of machines in a line with ME interfaces connected to them and the ME system handles it all. If you use nothing but Applied Energistics there isn't really any point in trains or airships that other mods add. What I wanted to do was to integrate Create trains into the system and have lots of different factories that would import and export materials via rail.
edit: another thing, AE2 is great for the usecase you usually need in modded Minecraft which is making one-time crafting orders. If you need 5 pistons to build a machine you use AE2 to get those pistons crafted and available in your inventory as fast as possible. That's great, but it's not perfect for everything, and it's actually not very good for the opposite usecase: constant processes that require continuously supplying materials and produce their outputs over time. If you play Minecraft like Factorio you probably will run into a scenario where a mod like AE2 is very tricky to use because it likes to think of everything as sequential orders that are processed step by step, but you'd rather organize production to happen concurrently and find a way to balance the inputs and outputs of all your production lines.
I'm not sure how bad lag would be, the algorithms from Towards a New Socialism aren't incredibly expensive and they only need to run every now and then to figure out how much each factory has to produce to meet the production targets. Once the targets for each factory are calculated, the central part of the system only needs to send a message to each factory saying how much it has to produce, which should be pretty negligible. Then the factories themselves would need to have computers that handle logistics, which was the part I had a lot of trouble with, so maybe that could be more problematic.
Classic buildcraft has even less flexibility sadly, it's just for moving items and fluids around as well as automatically mining or building blueprints.
Pretty cool, gave me some ideas for how to manage trains. Granted, in her game she can just pop the trams in and out of existence arbitrarily, and it looks like she doesn't have a system for handling collisions by dividing the rail network in blocks and using signals to ensure each block is only occupied by one train at a time.
Your idea reminds me of my own little project I've worked on in making decentralized production nodes that solve the problems of how to make supply equal demand and also testing different systems of distribution like a market or beyond.
I am already familiar with input-output tables and how one can use them to solve for the total demand of an economic system given a vector of required final products as input. That is just linear algebra (and is along the lines of how economists like Sraffa, Pasinetti, etc. approach economics) but I wanted to make a system where the decentralized nodes in a network figure it out.
The network is essentially a multilayer network where you can have one layer representing physical flows between factorie, stations, etc., another for monetary transactions (if they exist), and another layer for communication. I haven't looked into the algorithms in Towards a New Socialism though. But I've wanted to read it and see it can be added with the lenses of Input output and network theory. The project you mentioned sounds fun and similar to ideas I had thought about. So I'd be open to bouncing ideas around.
I haven't looked into the algorithms in Towards a New Socialism though
Essentially what you said, input output tables where you solve the system by doing gaussian reduction. IIRC the idea for scaling the system up to a whole economy is that since most of the entries in the table only use a handful of inputs, you can change the data structure and use a sparse matrix instead of a regular 2D array, and there are some tricks that take it from a O(N^2) problem to a O(N) problem for N items.
I think the part of the project for coming up with the production quotas shouldn't be super hard to implement, although making it very automatic can maybe take a while. I wonder if it might be possible to make it so you can just tell the computer, 'add this item to your quota' and have it automatically figure out which crafting recipe to use out of the ingredients it has available in the network, then add a row and column to the table.
In any case, I think the logistics part of the project might be a little bit more involved because it has to work with a lot of different computers as a distributed system. You'd need to coordinate several different factories to import and export materials on the right trains, accounting for everything that is loaded or unloaded from the trains. Computercraft has a horrible thing where computers lose everything about their state when they are unloaded or when the game closes, which means you have to find a way to get the logistics programs to be fully crash-recoverable without ever losing track of where the cargo has gone. To make it even more complicated, you have to figure out a way to handle the train schedules too, unless you want to have trains that are always making the rounds across different factories for no particular reason. IMO the best way to handle the whole rail network is to organize it in loops of a handful of factories that feed a warehouse via a group of trains that picks up exports from those factories and delivers items they ordered from the warehouse, then have a system of trains that goes from warehouse to warehouse completing the middle leg of each order.