TheFleet (Dec 14th, 2019 - ~April 13th 2020)
TheFleet, a project I undertook proposed by Diana Coman on Dec 14th, 2019, came to a halt around April 13th, 2020. The project failed for multiple reasons, perhaps all of which stemmed from a lack of drive to see it completed. I thought it worth some time to reflect on what I learned from the project I undertook for 4 months. To do that reflection I've collected a list of the articles I wrote about TheFleet and have reread each one to see what are the takeaways I should remember for my next endeavour.
1. Setting up Trinque's Logbot on Centos 6 With SBCL Quiclisp, Swank, and Postgres
Writing this article saved me time later on. I'll always document a server setup procedure (or any other setup) going forward.
2. TheFleet - A Systematic Exploration of the IRC Space
I recall that when I first discussed this project with diana_coman I thought its purpose was to find other productive individuals conversing on irc. But she informed me that it was better to aim for a "systematic exploration," i.e. see what's there - instead. This is a key piece of advice when approaching anything. Goals need to be changed as you gain information, so it's better to stay goalless, minus the aim of shedding light on what you're exploring.
Given how long this (incomplete) endeavor took in the end, it's amusing to read diana_coman refer to TheFleet as a small project. To excuse be fair to myself I was bussied with other tasks as I worked on TheFleet: building a computer, saltmines work, and writing a couple of articles a week. But because I don't have neatly organized timelogs, I don't know exactly how/where I was losing time.
Another small point - when I outlined the project I thought one of the objectives should be to create a nice visual interface for viewing the data. This is probably because of a value system I've picked up from working in the Silicon Valley world, where one is incentivized to build a nice displaying dashboard for management dishing out cash.
3. Progress Report on TheFleet
In this progress report I address my "lisp problem." I was acting like a day trader while programming - clicking and turning knobs until I found the correct lines of code to get a list of channels from different servers. Again, I should have focused on building up an understanding of my program. There were various issues I was running into with regards to threading, memory management, lisp itself, how the irc protocol worked, etc. Instead of trying to fix my gaps of knowledge I kept tweaking the code - in the form of taking stabs in the dark - until I got a list of channels from some networks.
4. A Few Thoughts on Lisp and Programming in General
In the above article I go over the points about lisp I just mentioned. I also question the usefulness of Common Lisp on a modern machine because of the bloat sbcl adds, but jfw notes that sbcl has a smaller source than the code required to interpret my other choice language, python. In any case, I think that I've greatly overestimated the power of CL. This came from some masturbatory reading of all the hyperbole of how great a language it is. It has perhaps slight syntactic advantage over python, but it is not in and of itself a magic language vastly superior to all others - at least not without a competent operator using it on an actual lisp machine.
5. Fleetbot Pseudocode Bugs and Fixes and The New Next Steps
This article is painful to reread. What makes the article so terrible is that I am attempting to write the pseudocode of TheFleet but I just end up writing this bloat that is more tedious to read than the code itself. This came from my misguided attempt to be thorough. What I should have produced is a reduction that highlights the main points of the code. But I did get something out of writing this article - the careful review of the code I did in preparation revealed bugs.
6. Ircbot No Suicide on Reconnect
This is one lasting accomplishment of TheFleet - a published fix of a bug found in a few pieces of republican software. I could have written a fix that allows the bot reconnect in more scenarios. But this would have required a slightly larger vpatch. I choose the smaller vpatch so that it would be more didactic.
7. TheFleet Overview
This article was a revision of my bloated pseudo-code piece. The stupidity detected here was that I claimed to be concerned about paying some paltry amount of fiat to rent a server. This reveals how my financial decisions are often completely illogical and emotionally based. I actually didn't even cancel my subscription for TheFleet servers until I wrote this article, so clearly I didn't really care about the money.
8. TheFleet Test Run Results
This was an overview report on the results of the first (and ultimately only) collection of data. Nothing to note here really other than I may still want to study how virtual memory works, since my first attempt at logging was screwed up by an OOM error that I never figured out.
9. TheFleet Next Steps With Data Collection
In this final article before TheFleet project was abandoned all together, I sidestepped the current goal of analyzing the data I had by saying I needed to fiddle with something else first. The main problem is I give myself a timeline that is not concrete. I said "Once I have a system I am content with for assigning the next channels to my VMs running TheFleet, I will plan how to analyze the collected data." A system I am content with is unspecified and thus I can forever stall as I work on this unspecified goal.
***
After a small amount of contemplation, I think the import points to remember for my next project are:
I. Pick something I'm excited about.
II. Set concrete goals with timelines, updating them as new information comes to light.
III. Keep a work timelog that is specific. An example is the timelog found in my guitar practice series.
IV. Document anything that may be used again in the future.
V. When choosing what to work on next, tend towards that which increases understanding.