I cancelled “Watchlist” and started over with “Watched”.
I hate how I’ve set the documentation system to look like. I use headers, they’re great, but function/struct documentation… it’s awful. So I’m thinking of some different style for these. I’d like to use “$” so that my documentation software would pick it up. We’ll see!
I’m working on an app that would keep track of what episodes I watched of YouTube/TV series.
It’s going oki. I’m just not really focused on it that much (or on the code part of things, at least).
I also figured out a good way to do headers & documentation comments. (finally)
/* ================================================================================** $Project: Watchlist** $Module: Logic* $File: application.h** $Purpose: Defines the application structure and its associated functions. The* application is responsible for managing the main loop and handling* application-wide resources.** $License: MIT* $Author: The Kumor** ================================================================================ */
/* ------------------------------------------------------------------------* $Name: wht_Text_Init** $Purpose: Initializes a text control with the specified parameters and* creates the control's window as a child of the specified parent control.* * $Parameters:* self: Pointer to the control to be initialized.* x: The x-coordinate of the control's position.* y: The y-coordinate of the control's position.* w: The width of the control.* h: The height of the control.* text: The text to be displayed in the control.* ------------------------------------------------------------------------ */voidwht_Text_Init(wht_Control* self, i32 x, i32 y, i32 w, i32 h, str text, wht_Control* parent);
/* ------------------------------------------------------------------------* $Name: wht_Window* * $Purpose: Window structure for encapsulating properties specific to a* window control, inheriting from the base control structure.* * $Members:* Control: The base control structure for the window,* containing common control properties.* ------------------------------------------------------------------------ */typedefstruct{ wht_Control Control;} wht_Window;
/* ------------------------------------------------------------------------* $Name: wht_Control* * $Purpose: Control structure for encapsulating common control properties.* ------------------------------------------------------------------------ */typedefstruct{ HWND m_Handle; i32 m_X, m_Y; str m_Text;} wht_Control;
Before I make some structs opaque, I’ll leave these variables with m_ prefixes available. But they’re not considered in headers.
I’ll create a documentation software that would parse these comments and C/C++/Lua/etc code and produce a searchable database of things. It’ll also include “sections” ($Section) blocks. But that’s a different project, and isn’t my immediate focus (perhaps late April?)
I figured out IntelliSense at least doesn’t break with these. And as for Visual Studio Code, it even picks up $Parameters section and makes this particular line bigger.
Visual Studio 2022’s autofill / AI is writing 50% of these comments. I also do readmes based on project reports which are partially generated by AI (I mean, 28 pages is a lot of manual labor!). But projects themselves are written fully by me, with help of the autofill for mundane tasks. I’m kind of scared people will look at these projects and be like “lol, that readme’s made by chatgpt” and assume project wasn’t done by a human. But I try not to care. People will say what they want, and in the end, I write code by myself.
-- ================================================================---- Project: Jumper---- Module: Gamemode-- Component: HUD-- File: cl_init.lua---- Purpose:-- Controls client HUD.---- Notes:-- Handles font creation and scaling based on resolution, draws-- custom crosshair, coin count, and time remaining.---- Author(s): The Kumor---- ================================================================
This is what I came up with. Project is self-explanatory, Module would come from architecture, same for component (which is a sub-module, essentially). Purpose is the most important block, Notes is additional information for it. Author(s) is my ego trip.
A Garry’s Mod gamemode “Jumper” would have two modules: Gamemode and Entities. As of right now, there are components such as: Coin, Trampoline, Pickup, Resource, HUD.
I like this header. I made snippets for this π₯Ίπ
// ==================================================
//
// Project: Timetables
//
// Module: Application
// Component: Main
// File: timetables.cpp
//
// Purpose:
// Implements the main command-line interface
// for the Timetables application.
//
// Notes:
// Provides an interactive command interpreter
// that allows users to define, modify, and
// manage scheduled tasks. Integrates the File
// and Command systems to generate timetable
// content and compile the resulting LaTeX
// document into a PDF.
//
// Author(s): The Kumor
//
// ==================================================
I came up with this type of header at the beginning of each file. I no longer have “Modified” and “Created” sections because they’re pretty much a hassle (but sometimes helped me).
I’ve been coding this for a while, but as I said, I didn’t have much free time for these things. Now it’s changed.
This project is primarily for my mom. She wanted an easy way to manage creation of her garden. Mainly with regards to “what vegetables can be next to XYZ”. I’m thinking of using Lua for scripting in the vegetable types and their neighborhoods.
So far I created event system and basic field concept. They’ll have images on them and will flare up with particular color (red for bad neighborhood, orange for so-so, green for ok).
I’m not so much in a rush, but I want to finish this thing. Check it out on it’s repo.
I pretty much finished everything I had to (that wasn’t related to my personal projects). As a result, I now have a lot of time and a lot of mental energy.
I thought I could finally start being more productive. And finally pouring that productivity into my applications I wanted to finish. Such as Garden, Chess, or that Garry’s Mod game mode about jumping.
I’ve set up some artificial deadlines for them.
I’ll also start streaming soon and make the Discord server more ‘inclusive’ / generic.
Tasks are displayed in a nice, fancy way. I plan on making them even fancier, with animations, but that’s the furthest I can push right now. I think I’ll add a subpage where you’ll see all the days you’ve saved.
Now, saving will be done in a filesystem. I plan on not integrating MySQL of any form into this project, mostly because I got mad when trying to work with Apache. Every single web browser just caches .js files and you can’t develop anything. And Apache is needed for PHP to work, which is required to access a database (since it’s serverside).
Also having progress saved in a filesystem could make this portable. And by filesystem I’m talking about just files in a folder. I don’t think a tree is required, but if there’s to be thousands of entries, I may have to divide folders up (NTFS hates folders with 11k+ files or so).
In general, this is a fun little project to work on and distract myself from things I should be doing.