# Journey into the Darkness ## Ch. 10: Clam 9 (The Plan was Terminated) For the most part computers were a means of surfing the web, playing (and obtaining) music, often playing games and occasionally writing. Normal tasks that by many means could be accomplished on just about any of the common operating systems running on a single machine. After the awakening I would spend time reading about distributed computing and the "single system image". The idea of multiple independent machines connected to a network and presenting as just one very powerful system was intriguing, so I'd set out to design the ultimate computer. It would have a blinkenlights console, analog tape storage, a teleprinter and other outdated peripherals. Not only would it cover all of the normal needs in a computer, it would also be used for controlling various home automation and radio control systems. I'd call it "the command center". Of course this bold and expensive idea would never happen as my basic needs couldn't possibly necessitate the construction of such a beast, nor could I ever hope to afford the electric bill to run the damn thing, if I could even obtain all the outdated peripherals and learn how to make them work. Still, the dream would haunt me for many years despite how impractical it was. It must have been no later than 2014 when I first discovered and even installed Plan 9 in the pursuit of that ridiculous cluster. While I was deeply familiar with Windows and had explored dozens of UNIX-like operating systems to some extent, Plan 9 was something else entirely. It felt like stepping into another universe which on the surface appeared familiar, if not primitive and outdated. Further investigation would reveal that it's not so similar at all, and despite my dream of blinkenlights and distributed computers I wouldn't take the time to really get to know this arcane but powerful system, thinking it useless without having multiple networked machines. This is quite unfair on my part since I'd grown used to the expectation of familiar software that would make an OS worthy of daily use for the activities in the first paragraph, but none of those tools were available for Plan 9. As a result of my own ignorance and personal bias the experiment was terminated within a few days, but in 2023 I would co me back with a fresh perspective and a better comprehension of what Plan 9 really was. I'd known about the Plan 9 fork called 9front for several years but was never motivated enough to try it. I'm sure the presentation of the website may have played a part since it gives the impression that 9front is made by hackers, for hackers. Somehow this led me to believe there wasn't any documentation which would later be proved false as I actually read ALL of the FQA instead of just the first few sections. As the pages scrolled by, it became even more clear just how much Plan 9 differs from UNIX-like operating systems. It really is a whole different universe that would require far more than a day or two to really get any use out of it. As I slowly began to understand what Plan 9 was capable of, it seemed apparent that I could probably replace the clambox with simpler shell scripts and maybe even build that ridiculous "command center". We'll briefly depart from the main topic once more to provide some context. As I've mentioned more than once in the story, there was some more recent work on home automation which spawned some lengthy potty-mouthed writing. Officially, the "clambox" is a set of programs written in Go which use TCP sockets to share resources which may include data or hardware devices, with the intention of being used in a distributed environment. The purpose was to use a single LoRa radio as a kind of router to handle multiple LoRa nodes in the system since it seemed cheaper than buying a gateway and learning all the layers of software that comes with using one. The "core clam" was responsible for fetching data from sensors by sending requests through the "router" to their corresponding LoRa node. This would avoid timing collisions from multiple nodes transmitting at the same time since they would only send something when explicitly told to. The data returned would then be accessible through a built-in TCP server so it cou ld be shared with other programs. The core clam even has a built-in command interpreter to add or remove devices and change their update intervals which was accessible through a second TCP server. I called it the clamshell. While the "core clam" handled passive devices like sensors, another program was intended to manage "active devices" like relays and actuators using pre-defined rules and sensor data to determine when some action was required. In order to use the router at the same time as the "core clam", I wrote a multiplex server which would allow multiple programs to share a single serial device, making it accessible over a TCP connection. Somehow my depression would find a way to terminate the clambox project as I convinced myself it was garbage, that my code was a worthless waste of time and that nobody would ever need such a convoluted solution to such a trivial problem... While the core clam, mux server and CLI clamshell front-end were mostly complete, it was never tested on real hardware and would only need a few lines of code changed to see if it would actually work. If the above explanation makes any sense at all, I'm sure you can probably see the resemblance and inspiration of this design. Back to the main narrative, Plan 9 seemed appealing not just for reviving dead clams but also as a potential route to get away from the Linux kernel and all the drama which surrounded the invasion of systemd. The first step was to install it on the Raspberry Pi Zero and find out if it supported networking since a lack of connectivity would render this adventure completely pointless. Oh but there's just *ONE* thing... Plan 9 is a graphical environment which is most certainly NOT usable without a mouse. Like I said, it's a whole other universe which reflects a significant shift away from the "normal" ways of Unix and just about every other operating system I've ever had the pleasure of reading about or experimenting with. There is a similar project which would come later (called Inferno) and is just as different, but in all these years I never bothered to test it. I did get 9front to boot on the Raspberry Pi Zero and was (eventually) able to reach the "desktop", but the whole user interface was most unappealing to me, as was the weirdly high screen resolution which made everything uncomfortably small. I don't think networking was even tested, because I swiftly terminated this experiment within a matter of hours. I'd been using a command line interface almost exclusively for nearly seven years now, two of which were spent on a tiny 8" monitor with 80 columns and 30 rows, not a mouse in sight! I can't go back to full-time GUIs, let alone try to relearn how to use a damn computer because the Plan is unlike anything else in use today, or ever for that matter. But unless I were to buy a new machine, it seemed I was out of options. At this point I started to think the whole idea of relying on a Raspberry Pi Zero or the Udoo Bolt v7 was ridiculous since it would require the use of systemd, with or without a GUI. I was desparate. So for reasons unknown, I went back to testing NetBSD on the Pi, but on a new microSD card. Good thing I did this, because it turns out the old microSD card was the reason it failed before. Suddenly I felt like a gigantic ass because I'd spent so much time trying to get away from Linux, when the simple solution was to just replace the stupid SD card... => index.gmi Index => 11.gmi Next - Settling Down => ../../index.gmi Home