Doctacosa

software

Once in a while, I'll mention my TODO list. It's where I list what I want to do, note possible ideas, keep track of the status of my ongoing projects, and more. Where does this beast actually live, though?

The truth is, it's not regrouped in a single location. As things stand right now, I'm using three main tools to keep track of all these elements. But why three?

The main one that I've mentioned before is OneNote. It's designed to do just that: write down notes and sort them out as you go. The way the application is structured works well for me: you have several notebooks (I have a Development one), broken down into sections (Interordi, IOBoard, Creeper's Lab, ...), which are in turn broken down into pages (Priorities, Future updates, Ideas, History, etc.). Each page is a freeform text page, with formatting support, so I can write things however I want. I usually make generous use of bullet points that get divided into subsections. Having text pages lets me see a lot of items at once, and I like having a global overview. Bonus, OneNote is available for basically every platform ever and synchronizes easily, so I'm not tied to any device.

Another one that I've been relying on is Visual Studio Code with a few additional plugins. My main coding software also happens to make an interesting note keeping system. The way things are displayed ends up somewhat similar to OneNote, but there's a reason why I use this: to easily share with others. My development notes for the Creeper's Lab are there, in Markdown format, which I can then easily copy and send elsewhere. I use this method to share the information with the staff, so they have an idea what I'm working on. The pages are pushed online, where a simple viewer allows casual browsing. Fun fact: this Markdown viewer is open source and available on my GitHub account!

Part of this family of tools is Microsoft To Do, another app that's available on multiple platforms. While I've tried using it as a replacement to OneNote, it didn't quite work for me: like others, you can choose to sort your notes across multiple projects and sections, but the individual tasks have to be entered one-by-one in their own fields. This means I can't see as many elements at a glance and I can't easily move an entire section somewhere else like I would with a text document. However, I found a use for it: tasks with a deadline. I have self-repeating tasks with notifications for the daily servers list voting, the monthly Kenorland rotation, the newsletter preparation, and more. This way, I don't need to remember when something is due. Likewise, I had a note today to remind me to write this post!

While this set has been working well enough for me for quite a while now, I'm never 100% happy with what I have, as there are always small details I wished worked differently. Who knows, maybe I'll find something more to my liking in the future!

#tools #software

– Doctacosa

Last month, I covered the hardware I use to work on my ongoing projects. Even more important is the software itself. Quite a few of them have become critical to my workflow, and here's a tour of the main items.

Git

I explained working on three different computers. I'll often be editing the same project across multiple devices, and it's important that I keep my code up to date on each. How should I do that? Copy files back and forth? There's a huge risk of errors by accidentally overwriting more recent additions with older versions. Place everything on a USB key? Not bad, but if you lose it, you're toast. Been there, done that. (I found backups... eventually).

Enter Git. This software's main goal is version control. Basically, each change I do is logged separately, with an explanation message and the date. This creates a list of all modifications ever done, going back to the beginning of a project. More importantly, these changes can be pushed to a central server, then pulled on multiple computers. In my case, I use the same dedicated hardware that runs the game servers as a storage location. This way, as long as I've got an Internet connection, I can send or obtain my latest changes with a single click! I've also started putting some of my code on GitHub, which is something I'm planning to revisit in a later post.

OneDrive

Besides code, there are other things I want to store: reference images, graphic libraries, documentation, draft files and more. In this case, I use Microsoft's OneDrive to store it all. Similar to Google Drive, Dropbox and other services, OneDrive lets you put your files in a special folder that gets stored on remote servers. You can then access them from other computers at will, and any changes are automatically kept in sync. I had my doubts at first on how well it could handle potential conflicts, or accidentally overwrite content, but it's proven over time to be very sturdy. As a bonus, all the files can also be accessed in any web browser in case I want to reference something in a pinch.

OneNote

I'll frequently mention taking a note of something, say something about checking through my notes, or refer to the mighty TODO list. That's something that I keep in OneNote. It's a note taking application that lets you organize everything in Notebooks, then in Sections, then furthermore in Pages. That way, you can break down and organize your thoughts without them becoming a huge, messy pile. I used to keep everything in separate, plain text files, but this adds a key feature to the mix: the ability to access my notes everywhere and keep them in sync. This means I can do what I want on any computer at home, on my phone, or even from work when I get a sudden idea.

Visual Studio Code

Last but not least, my favorite code editor: Visual Studio Code. This project is still young as it was first released only a bit over 4 years ago. It shares its name with his bigger brother Visual Studio, but that's where the relation ends as it's handled by another team on a different engine. There are two key points that made me adopt it:

1- Its speed: the thing is FAST, no matter what computer you try to run it on. The always responsive interface makes it a pleasure to work on.

2- The range of plugins available. While it can do quite nicely on its own, it can be extended to support a lot of programming languages and features, from the obvious to the more obscure.

The Git usage I mentioned as my first point? Built-in and ready to go, so I can compare my changes right as I make them.

While I use multiple other tools, these really form the backbone of my current flow. All have proven to work well, are modern and pretty much frustration free, to the point where I see my current setup as the best I've ever had.

#tools #software

– Doctacosa

There are quite a few tools I use to complete my tasks. Either hardware or software, these can be critical to getting good results and make the development process smooth. Here's a look through my current hardware setup!

The desktop

Desktop computer

My desktop computer, Dominion, is the latest addition to the line-up. Newly built at the beginning of summer, I assembled this to offer high performance so it'd be able to take on any task I throw at it. One of my critical choices went to the RAM, which I now have 32 GB of. When I develop and test new features for the Minecraft servers, I'll sometimes have my full lineup of development software loaded, plus a Bungee instance, plus two or three servers, plus two clients all running at the same time. That's a lot of memory used up, as Minecraft can get very hungry! This computer can thankfully take it like a champ. This is also what I use to create image renders of the various player builds.

The laptop

ThinkPad laptop computer

My trusty ThinkPad laptop, nicknamed Wagon, has been with me for several years now. While not a speed demon, it's a sturdy piece of hardware with a long lasting battery life and a decent performance. For the longest time, this was my main development machine, and I can take it with me to work from almost anywhere.

As some of you might have heard, my previous desktop died early last year. I ended up using the laptop as my main computer, connecting it to external monitors, keyboard and mouse for a more comfortable setup, and it proved to work so well that I delayed replacing the desktop by over a year.

The tablet

Surface Go tablet

The tablet I call Signal, while not my latest addition, is one that I've only recently started experimenting with as a work tool. This Microsoft Surface Go tablet has limited capacity but it surprised me with decent performance results after running some tests, so I installed my development environment to see how that'd perform. While I won't run any Minecraft servers on this, it's working great for lighter tasks, such as working on a website or web tool. Use its touchscreen, add in a Bluetooth keyboard, maybe a wireless mouse, and it's a capable enough setup! As a bonus, it's extremely small and light to carry. This allows me to indulge sudden ideas, as pictured here where I made improvements to the forums while riding a train.

That's it for the hardware aspect! In a later update, I'll cover the software mainstays that allow me to make the above work.

#tools #software

– Doctacosa