Most of us experience at least one major shift in how we perceive the world. Whether it results from a traumatic event, or from the natural aging process, at some point we find that our old habits no longer serve our current needs. For me, one of these shifts happened earlier this year.
After taking some time to reflect on the experience, I set about summarizing my thoughts into a set of simple guidelines. These guidelines are meant as a motivational tool to keep myself focused on the things that are the most important to me. I called these guidelines the Three Cs.
Continue reading “The Three Cs: Confidence, Creativity, and Compassion”
About a year ago, I started looking into ways to cross-compile Windows applications from within Linux. This brought me to a cool project called MXE (short for M Cross Environment). With MXE, you can use your Linux machine to generate Windows binaries without having to install any virtual machines or compatibility layers. In this post, I’ll walk you through the process of setting up MXE and turning your source code into a Windows program.
Continue reading “Cross-Compiling Windows Applications in Linux with MXE”
While working on the next release of PixelMaestro, I came across a problem of storing long-term data on an Arduino. I have a system in place where configuration changes are sent to an Arduino over USB as byte arrays, and as the Arduino reads the array it applies the changes. The problem is those changes disappear as soon as you restart the device. How, then, does one store persistent data without having to add an SD card or extra memory? Enter EEPROM.
Continue reading “Saving LED Configurations to Arduino Using EEPROM”
In an earlier post, I explained how I used version control software to manage my creative writing documents. Since then, I’ve developed a setup that’s more transparent, easier to work with, and requires less command-line wizardry.
Continue reading “A Novel Approach to Writing with Atom and Markdown”
In an earlier post, I explored the idea of productivity gamification and how it can help increase your motivation. I’ve been testing this over the past few weeks by using an Android app called LifeRPG to track my habits, tasks, and important milestones I wanted to reach. In this post, I’ll go into detail about my LifeRPG setup and how it’s helped me stay focused in my everyday life.
Continue reading “Gamifying Your Life Part 2: How I Use LifeRPG”
Each day begins with a list of tasks I want to accomplish. Whether it’s short-term (writing a blog post) or long-term (working on a programming project), completing each task helps me feel more successful. But sometimes motivating myself can be difficult, and on some days even the simplest tasks can seem insurmountable. In this post, I’ll discuss a strategy I recently found that actually makes everyday tasks seem fun!
Continue reading “Gamifying Your Life”
Today marks the release of PixelMaestro version 0.8! This release introduces several big changes including new features and better performance. To learn more, keep reading or visit the PixelMaestro GitHub page.
Continue reading “PixelMaestro Alpha Version 0.8”
On today’s episode of “Adventures in C++”: sending commands between two Arduinos running the same software. Not just data, but also instructions on how to process and execute that data. Even more, these commands have to be small enough for each Arduino to package, send, receive, unpack, and execute in less than 1/10th of a second.
Continue reading “Building a Lightweight, Arduino-friendly Communication Protocol”
UPDATE: Shortly after posting this, I switched to a different method using a custom data serialization protocol, which you can learn more about here.
One of the coolest things about C++ is how flexible the language is. If you’re faced with a problem that has no apparent solution, chances are you’re just not approaching it from the right angle.
Continue reading “A Functional Alternative to std::function”
In my never-ending (and often misguided) quest to bridge the world of writing and programming, I decided to take a crucial tool from the software world and use it to manage my documents. The result: a powerful (if convoluted) system for drafting and revising documents.
Continue reading “Managing Your Writing with Version Control Software”