Notes to myself, shared with the world. A collection of projects, thoughts, and ideas — mostly about computers.
See all my blog posts, sorted by year, in my blog archive.
Is your source code developer-friendly? Developers talk about user-friendliness of applications all the time, but don’t often think about whether their own source code is user-friendly. Code tends to rot over time. The documentation gets out of date, configuration files change, little “hacks” are put into place… Eventually, it gets so bad it takes days for a new developer to get his environment set up. And along the way, he has to talk to two or three gurus that know all the little tricks to make things work right. As code ages, it becomes less developer-friendly. As developers, it’s our job to counteract that tendency.
I made a training log for runners in Google Sheets!
Even in the age of Fitbit, GPS running watches, and Strava, a training log in a spreadsheet is a useful tool. Because it’s a spreadsheet, it can be used to analyze data in ways that websites and apps can’t. It’s easy to share with a coach. And some people might find extra motivation from setting a goal and recording their progression over time in a spreadsheet.
The Myth of Code Reuse, a quick video by Iain Lowe, became quite popular on Reddit in /r/programming a few weeks ago. I think the reason for it’s popularity is obvious. Lowe talks about the amount of time developers invest in making code “reusable” with interfaces and abstractions, only to watch that code be replaced a few years down the road. Many professional developers have worked with legacy code bases that frequently use these types of abstractions (designed for “future-proof” code), but found the code to be more complicated than necessary and difficult to work with.
Your resume says a lot about you. Perhaps more than you think. I’ve looked at a fair amount of resumes and when I read a resume, I’m not only interested in the experience that’s listed. I also look at how well the person communicates their ideas in a clear and concise format. A well written and easy-to-read resume can make a good first impression, and a poorly written resume can definitely hurt you.
I recently completed a job search where I had the pleasure of interviewing at several companies. Throughout the process, I developed and refined a list of questions to ask the companies I interviewed with.
I’ve also spent a lot of time on the other side of the interview process, and I’m often surprised when the candidates I’m interviewing don’t have any good questions prepared to ask me. They should want to know how we do things here! Asking good questions during the interview process helps both parties find the right fit, so I decided to share some of the best questions I’ve found.
I recently had to reinstall Windows on one of my personal computers. Although I hardly ever use Windows anymore, I keep it around in case I need to run some software that isn’t compatible with Linux (my primary OS).
After reinstalling Windows, I needed to re-install all my favorite programs so things are there when I need them. In the process, I kept a short list of all the Windows software I like to have installed. Most of it is free or open source, so have a look. Maybe you’ll find something useful.
Have you ever tried to diagnose a test failure and had no idea what’s broken? Maybe you were looking at something like this:
Failed asserting that false is true.
Or, equally as bad:
These are pretty bad failure messages. They have the bare minimum amount of information you might get from a failing test. They tell you something’s broken, and probably give you a line number or a stack trace, but that’s all. They don’t give you very much useful information. In the spirit of Google’s Testing on the Toilet, this is my own rant about one way you can make your tests better.
How much faster does a new SSD make a 2012 MacBook Pro? A lot.
I recently upgraded a 2012 MacBook Pro with a new SSD, and I was blown away by the results. The computer was nearly unusable before the upgrade - it took more than two minutes to boot and about 30 seconds to launch a program like Chrome or Safari. (Although once it finally started, it wouldn’t be too bad to do something simple like surf the web.) Apparently (as you’ll find in comments all over the internet), lots of older MacBooks suffer from really slow responsiveness when running newer versions of macOS. Luckily, the problem can be fixed pretty easily by replacing the OEM hard drive with an SSD – after the fix, the MacBook Pro boots in about 25 seconds and launches programs almost instantly. Overall, the SSD made the computer about four times faster when doing disk-bound operations like booting up or starting a program!
The Hour of Code is an annual event to encourage Computer Science education during Computer Science Education Week. I participated this year by volunteering at an elementary school, where I spent about an hour introducing the students to computer programming through Scratch. I think Scratch is a great way to introduce people (both young and old) to programming because it is simple enough that beginners can get started very quickly, but also powerful enough to create good-looking games (like this Flappy Bird Clone).
On the StackOverflow Podcast, they always ask their guests on the show how they got introduced to programming. Whenever I listen to that segment of the podcast, I always think back to my first experiences with programming, and how I built on those to get where I am today. I like the podcast segment a lot, and I think it’s fun to share these stories. So, in honor of Computer Science Education Week, I’m going to write a blog post about some of my first programming experiences.