Thought for the Day

If it goes without saying, someone should probably say it. How often has this simple advice saved my bacon! No matter how much we share backgrounds, training, and experience, there will always be things we assume other people understand or think of because it's so natural to us. However, we also know the old saying

Object Oriented Programming, and Why the Languages Are Wrong

Object Oriented Programming has been the standard for the industry for decades now. However, as implemented in the various object oriented programming languages, it's more complex and difficult to manipulate than commonly understood. Having worked with a number of object oriented programming languages and non-OOP languages, I thought I'd state the case for avoiding

Pokemon Go Bots: A Case Study

Pokemon Go is a very popular game, and I don't need to say any more than that. What's truly interesting is the hacking community dedicated to developing third-party applications around it. Around the time of release, several clever people reverse engineered the basic API, allowing for the development of useful maps and a number of

CTags: Lightning Fast Project Editing Made Easy

What's the fastest way to get from a function call back to its definition during the editing process? If you're using something like Notepad or an IDE, the answer is usually to search for the file containing the function, open it, and search your way down to the definition. Unfortunately, if you want to

Degree Comparison in the Computer Field (A Structured Rant)

It's a question that I've considered for as long as I've been a legal adult: what do the various computer-related degrees actually mean? What is their value, and which degree is best for which kind of person or job. Today, I'm going to attempt to break down my perspective on four common degrees and

Particular Brand of Lazy: What Makes Engineers Unique

I've alluded previously to a particular brand of laziness that separates a good engineer from the average person. It sounds disparaging at first, but there is an aspect to engineering laziness that is absent from almost every other kind of laziness: Engineering laziness encourages progress How can laziness encourage progress? When we think of laziness, we

Rant: Why we need fewer coders

In fifteen years we'll be teaching programming just like reading and writing ... and wondering why we didn't do it sooner. Words cannot begin to describe how angry everything about this poster makes me. First, let me get the subjective part out of the way: I deeply dislike Mark Zuckerberg. Not only does his social

Quickie: Configuration Headers

We all know (or at least we should know) that we can use #define to create macros that replace names with values during the preprocessor phase of compilation. Sometimes, it's very important for us to have the ability to change large amounts of code very quickly, because we have a new size limit for

Patterns for Kids: The Frog and the Scorpion

Aristotle talked at great length about the essences of things and the accidens of things. The accidens were aspects of appearance that could change (or simply which could be different) while the essences are aspects which one cannot change without fundamentally changing the thing. For example, the accidens of an acorn is a brown

What We Can Learn from Amazon’s Kindle Unlimited Exploit

Best thing ever: discovering an exploit that no one else has found (so far as you know). Worst thing ever: being exploited. Runner up: Learning about a beautiful exploit AFTER the company has implemented measures to stop it. I was recently exposed to an excellent blog post about an exploit of the Kindle Unlimited system. For those