Home About the Ghast

Moth

A social life manager for the rest of us

We often see people referred to as "social butterflies", but some of us just aren't like that, we're more of a "social moth" if you will.

I've been daydreaming about creating a software that can manage my social life for me: reminding me that I should have a get together soon, to rate how much I enjoyed spending time with someone, to track how much I like certain restaurants (and ones I need to try), when it's time to reach out to a friend, to remember special facts like their anniversary, their food allergies, or the name of their cat, to track who I have invited (and who flaked again...) And I thought, man, I should really learn how to make that! (especially now that I'm studying COBOL)

What the hell is going on with the version numbers?

While I've drawn some inspiration from Semantic Versioning (SemVer), I've also decided to depart from it in a key way. Semantic Versioning says that software should use the x.y.z form (7.18.3) where the first number (x) is called a major revision that breaks backwards compatibility, where the second number (y) denotes new features that don't break anything, and the third number (z) represents patches and bug fixes. So 7.18.3 would be the 7th version with 18 features added, and since the 18th feature was added, they've put out 3 patches. And that, I'm totally on board with.

But I also want to share my conceptual versions with you as well! And that's not covered under the SemVer at all. So I'll be adding a "+" section, and the number after the plus is the conceptual version. Additionally, they say that builds should start from 0.1.0 since 0.0.1 would be a bug patch for nothing, but in my opinion, I can't start 0.1.0 until I've actually written some code!!! So we're gonna start at 0.0.1 because I'm not even coding yet LMAO.

What does it mean, in a meaningful way, to do a "conceptual version"?

I don't know what anyone else might mean, but in my case I'm referring to making sure I know exactly what I am planning to build (features, interactions) as well as a database structure that supports that. This means I will be working through my ideas, step by step, using Microsoft Access to create a mock up. *Technically Speaking* when the Access database is complete, that could be considered a whole program. However, it's just not possible to turn access into a "real" executable, as far as I know.

mock up of database layout

So when I'm sharing conceptual versions, what you're doing to see are either Access Relationship tables like this simple one I just started, or Obsidian canvas views (most likely).

Styling

If you know anything about COBOL, you'll have an immediate question as to how I plan to interact with the database. For example, will I just write files that execute in the command line? Well, to start with that is probably the case. However, I want to quickly move to GUI because that's just what I'm more familiar with. I read a rumor that COBOL can actually use gui, however this remains unconfirmed. Instead, I expect that I'll style with CSS and HTML (because I know those best) and use something to bridge the middle, like JS and I don't know what else yet. To me the main thing to focus on in the beginning is my database structure.