Skip to main content

Posts

The Rise of Catbusters

I started on a game a while back that I hoped would only take a few months to complete. TL;DR it took me two years of part-time work but opened many new avenues of exploration and adventure. I was once a little embarrassed when a kid asked me if I had created a game yet when they found out I was a programmer. It seemed like such a disappointment to them when I said I hadn't yet, like, why else would you become a programmer? I realized that it was time to actually make a game. So I decided to make a multiplayer mobile VR wave shooter. The multiplayer and mobile VR requirements were important to me. I wanted to make something I could play with my kids or friends. So I developed it to be somewhat kid-themed. I wanted the baddies to be animals or robots too. No blood.  Originally it was going to be robot bunny attacks. I made some concept designs. The players would have vegetable-based weapons like radish blasters and cabbage bombs. Ultimately, this design did not come to fruition. I...

Markdown Notes with Unotes

I've just published a Visual Studio Code extension for note taking. It turns VS Code into a sweet note editor. It's called Unotes . (think  numéro uno ) I created this because I needed it. I take notes on whatever I do. School, work, books, online courses, computer work, home projects... you name it. Keeping notes in digital format is great because you can sync them between computers and access them anywhere over the web. I'd used and loved OneNote in Windows for many years, all through grad school and beyond. Then last year I switched jobs and started working exclusively in Linux. That meant I had to use the web application to maintain my OneNote notes. This frustrated me because it was ugly and slow. I explored other options with the following requirements: Free Cross-platform Open text-based format Image and basic styling support Theme-able (dark) Sync-able between devices Searchable WYSIWYG editor Visual Studio Code + Markdown seemed lik...

Raspberry Pi Zero Printer Server

For Christmas I got a Raspberry Pi Zero-W  single-board computer. They cost around $10 and are amazingly tiny and use very little power. My goal was to attach this to the usb printer (HP LaserJet 1020) in my home to share it on the network without having to have a desktop computer attached to it and running all the time. This would be much cheaper than buying a new wireless enabled HP printer ($200). Also this would give me a good excuse to play with one of these little single-board computers... There were a few hurdles to get everything working but I did succeed after some googling and tinkering. It's been working like a champ so far and now I can print from all our home computers and Android phones. I mostly followed  this tutorial . Here are the steps to set this up... Download the Lite version of  Raspbian . This is a minimal Linux distro based on Debian.  Use Etcher (or something similar) to copy the Raspbian image to a micro SD disk (you don't need t...

Low Poly Dino

I did some more low-poly modelling in Blender. This time I was inspired by my son's baby blanket. I usually use a box modelling technique. Here is a rendering...

NPM for Qt (Finally!)

Survival of a Language To have a thriving ecosystem, what does a programming language need? Short Answer: A Good Package Manager A package manager is a set of tools that help automate the installation, configuration, removal, and updating of libraries and programs. Package managers are key to an effective build system because they take the pain out of loading and organizing the correct versions of dependencies to create a consistent build. They can also be a gateway for module exploration. This discovery method can save developers loads of time they would have spent re-inventing the wheel. What Makes a Good One? A good program manager should have the following attributes: Cross-platform Free Easy Fast Deterministic Browse-able Promotes quick evaluation Examples C# Nuget JavaScript / Node NPM / Yarn Python PIP Anaconda PyPl Go go get Ruby RubyGems Rust Cargo Crates.IO Java Maven Gradle PHP PEAR PE...

Modifier Power

Blender is an awesome tool for motion graphics . After watching some workflow videos by Midge Sinnaeve (a.k.a the Mantissa) I was totally blown away by some of the things that are possible using Blender's modifier stack. You can really create complex and interesting animations with a pretty simple setup. I decided to take a creative challenge by making an image using only a sphere. So here is my 2-hour project. Here is the modifier stack I used in Blender. The ability to animate a texture and affect the modifiers was made possible by using a VertexWeightEdit modifier as shown below. Modifier Stack Texture key-framed values The animated curves were part of another project where I experimented with creating curves from particle animations. Also something I learned from Midge.

Dealing with DPI in Qt

Qt is an awesome framework for building responsive desktop applications. Before releasing an application though, you will need to deal with issues involving DPI. Depending on your target OS there are a few options and issues to consider. Qt gives some helpful information  here . On Windows you need to understand that there are 3 levels of dpi-awareness your application can have. By default a Qt application declares itself dpi-aware , either per-screen-awareness for Windows 8.1+, or system-wide-awareness for older Windows versions. This means that you will need to do some work to make your application adjust appropriately. The Easy Way If you are targeting Windows only , then there is an easy solution to make a dpi-unaware application look good on all displays. Simply tell windows that your application is dpi-unaware and Windows will scale the application window so it looks normal on high-dpi displays that have fonts scaled. Just add a qt.conf file to your applicatio...