Life Update: February 2023

So, since I'm turning 18 in a week, It seemed like a nice time to make a post like this. A little progress update for myself. I can look back on it later in life once I've become a level 9000 pansexual hacker witch in a chaotic polycule with 47 wives.

School

School is going. I want it to end immediately. My highschool gives me the nice opportunity to take classes at a local community college, some of which are remote, so I've capitalized on that and basically trimmed down my schedule to the point that I'm on-campus for less than two hours a day. That's nice. Despite that, though, I've been doing horribly with my schoolwork. It's due to a combination of the relative difficulty of the remaining classes I need to graduate and me simply having gotten myself in a horribly unproductive mindset. Hopefully in the worst-case scenario I'll be able to offset any bad grades at the end of the year by unhealthily cramming for my finals.

Work

Trying to get this one in order. For the past few months I've basically been an unemployed lil gremlin watching the few thousand dollars I had saved up in my bank account slowly drain away from gas and car loans and stupid purchases and things like that. I'm trying to get myself employed as a cashier at a thrift store for now, which will hopefully work out soon enough.

I tried throwing my resume at a few tech jobs. To no-one's surprise, they didn't want to hire a minor in high school with no industry experience and an ice-cream-bar addiction. It was worth the try anyways, though. I'm going to make another attempt once I make it through highschool and will hopefully get myself a decent-paying job without too much hunting. Ideally I won't have to go through college for a CS degree and I can just move to an apartment somewhere nice.

Project: Snakebox

The static site generator that made the blogpost you're reading right now! I love her very much and she's served me well, but unfortunately her source code has started to get a bit silly and unmaintainable. My efforts at refactoring it have just made me lose more and more hope of the prospect of fondling the codebase into something I'm satisfied with. The outcome seen here makes sense in retrospect, though, since the language I chose (C) was basically the worst choice for the outcome I wanted to achieve. I get very excited at the prospect of attempting to create a well-written C codebase, so I'm sad to see it go, but it's going to have to be replaced with Ruby. Yesterday and today I went ahead and wrote around 90% of the parsing code for the document format, and the result is around one-fifth of the equivalent C code :P.

We also have the advantage, when we're using a scripting language like Ruby, of making a system for writing extensions and custom logic very easy, because it takes less work to write higher-level code. I was trying to write the C iteration of snx so that it would be flexible, making it easy to add custom output formats and things like that, by organizing the source code and header definitions so that those parts were relatively divorced from the rest of the program, but it wasn't really going anywhere that could be considered remotely "easy". The new Ruby-infused version will basically be more like a library. It'll take a few lines of code to construct an executable that'll accept a standard set of commandline arguments and generate your site for you, but you can take the more "automatic" steps and modify them, or do them yourself.

Project: Voyage

I started this one a while ago, and I haven't worked on it much since. It's a game. I don't know if anyone other than me will ever want to play it, though, because it's a weird autistic brain-child of mine and it confuses even me when I'm the one actively trying to design it. That's fine though, because it's fun. Basically it's a sort of Programming Game where you get a world filled with an infinite two-dimensional array of squares, and you're an "organism" with a "heart" that resides in one of these squares (a "room"). Your rooms are filled with "wires", that are activated every heartbeat, and can do things like moving to adjacent rooms, or bending spacetime so that two rooms not physically adjacent to each other are bridged together. The other cool thing about this theoretical game world is that there's a physical realm to go alongside the two-dimensional one, and you'd be able to navigate it in all its 3D-rendered glory.

This one is the least likely to get anywhere, because I haven't felt like working on it in a while, but we'll see.

Project: CGD

CGD stands for Catgirl Daemon. It's named that because I thought it would be funny, and because it'll make me more emotionally attached to the finished program. The plan I have is actually a bit ambitious though. Right now we have the (work-in-progress) previously-mentioned Daemon, which will mostly be used for IPC on your favorite POSIX system. A bit like dbus , except instead of just having a global set of public "objects" you can operate on, you're passed references to "objects" that may or may not be private and/or temporary. Anyways, why I wanted to make that is, I'm planning on making an entire User Application Layer and Desktop Environment of some sorts. I can't rant about too much of the specifics since I haven't fleshed them out yet myself, but it'll be designed to provide a much better framework for access to resources on your machine, and for interactions between those resources. For example, if you wanted to open a URL in your favorite web-browser, you could access some interface to create a resource associated with it, and then you could operate on that. In this hypothetical web-browser scenario the browser itself also wouldn't be the one managing your tabs, because they'd be globally registered in your Catgirl Daemon and would support interfaces that allow for pleasant indexing and navigation that could be facilitated by your window manager.

This is the one I most want to go somewhere, because I've been trying to come up with an idea like this for years. We'll see though. I might write a more detailed blogpost later.

Conclusion

Yay! A lot of things feel like they might be coming together soon. I might start writing some smaller blogposts too, ones more centered around specific programming adventures I have and things like that.