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.