Trash Bird Fix

Uncategorized
Haven't posted in a while, mostly because my life has been a complete fucking wreck for the past year or so. Anyway. I fixed the trash bird with a chrome extension. (more…)
Read More

Minecraft – A Software Engineer’s Experience Part 2

Uncategorized
First, you should probably read Minecraft – A Software Engineer’s Experience Part 1. August of this past year is a blur to me - a month remembered in terms of Minecraft. I spent the entire month enthralled with the possibilities the open-ended game allowed, playing most evenings and weekends, habitually. Early on in the game my friends who played with me told me that I needed food to survive. They did this shortly after they had ridded our world of food, slaughtering all of the animals on the island and cooking the resulting meat for their own food stores. Minecraft emulates the real world with incredible detail in a number of ways, and one of those ways is in spawning an animal every once in a good long while. Two…
Read More

Minecraft – A Software Engineer’s Experience Part 1

Uncategorized
After years of pestering, my friend Justin convinced me to try Minecraft one evening this past summer. That was early in August. Thanks to Justin, I do not remember August, September, or October of 2014 in terms of real life - I remember these months of my life in terms of Minecraft. --- That first night, I purchased the game, joined his server, and spawned alone on a tiny island in a massive ocean. The island about 10 feet deep and 100 feet long. There was a tree, and a bunch of light tan and green 8 bit blocks to walk around on. I was surrounded on all sides by an ocean comprised of cubes of water. One tree, some sand, some grass, some dirt, and an incomprehensible stretch of…
Read More

Pikmin – The Video Game Interview Question

Uncategorized
For the past decade and a half, Pikmin has been my most favorite game of all time. As a software engineer with an affinity for automation, tooling, and efficiency - Pikmin struck a chord with me like no other game had before. Pikmin is a unique twist on real time strategy games (such as the command and conquer series, warcraft, or starcraft), where resource gathering equates to winning the game. That is, Pikmin is an RTS without a strong battle tactics mechanic. Instead of becoming the greatest war general, Pikmin simply encourages you to gather enough resources to move forward while using time wisely. What sets Pikmin apart from many other video games in the genre is that the game has concurrent goals. It is complex enough to allow multi-tasking…
Read More

Codes well, struggles with being an adult.

Uncategorized
When I was younger, I promised myself I'd never turn out like my parents and their always-frustrated, always-busy, sad circle of friends, and yet.. --- When my grandfather was coming to town, he would mail a copy of a heavily detailed itinerary to everyone in Texas. He grew up in Texas, had his family in Virginia, and retired in Colorado. One of his children lived in Colorado nearby, and the other three ended up back in Texas. All of grandmother's kin stayed in Texas all along, so one could argue the OCDish over-the-top itinerary was necessity - they had a lot of folks to visit when they made their annual road trip. My grandfather's name was Joe. When Joe came to town, he always had one item on the itinerary…
Read More

Styling the Contextual Action Bar ActionMode Divider or Splitter for Android

Uncategorized
My coworker and I spent a good deal of time this morning attempting to change the style / color of the Android ActionBar's Contextual Action Bar divider between the checkmark action button and the rest of the bar. You see this divider or splitter in the image below on the right side of the red boxed area: We had trouble finding the answer because the ActionBar is a complex beast with N embedded widgets or modes and unclear terminology / documentation regarding this particular issue. The Contextual Action Bar's ActionMode view is subtly different from a normal ActionBar and has its own limited subset of differently-named styles. Many searches, blog posts, and stack overflow threads later, we finally found the right terminology for this, the button is not a normal…
Read More

The Objective Sea

Uncategorized
Developers love to make lists. We're not always great at organizing our lists or sharing them with the world, but boy do we love making lists. It seems like I learn about a great new library, or trick, or tool from a peer developer, or hacker news every few days. Earlier this year I started writing a personal list of these resources in a spreadsheet, and after a few days there were over 250 items in my secret little spreadsheet. I discussed this list-making with a few of my fellow developers and we agreed it would be awesome to combine our lists and make something like nshipster and one thing well blended together. If nshipster and one thing well had a baby, it would be our new blog, The Objective…
Read More

Fix Crittercism’s lack of logging

Uncategorized
Crittercism does not log exceptions to the console, which sucks while you're developing. To fix this, you can proxy their exception handler with your own, something like this: @implementation AppDelegate void myExceptionHandler (NSException * exception){ NSLog(@"Caught top-level exception: %@: %@\nStack:\n%@", exception.name, exception.reason, [NSThread callStackSymbols]); crittercismHandler(exception); } static NSUncaughtExceptionHandler* crittercismHandler; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [Crittercism enableWithAppID:@"your app id"]; crittercismHandler = NSGetUncaughtExceptionHandler(); NSSetUncaughtExceptionHandler(&myExceptionHandler); .... } If you use several libraries that auto-install their own exception handlers, such as flurry + testflight + crittercism, you can use this proxying trick to get out of exception handling hell. You may also want to consider the GTMStackTraceFromException function from the Google Toolbox For Mac to log a full stack trace.
Read More

Life in the information age (a response to PRISM)

Uncategorized
I apologize up front for my rambling style. I promise these first few jaunts/missives connect up at the end. A few years ago, I saw a profoundly disheartening and disturbing movie, Taken. The movie portrays a james-bond-alike saving a young abducted person from being sold to a highest bidder. In the end, the girl was predictably saved, and all evil-doers were vanquished (or at least held at bay until the inevitable sequel) - and all was right with the world. The disheartening part of the film was not the ending, but, instead, the realization that the world the movie portrayed was very real, and the ending in many cases, is not at all what the movie would have you believe. You hear urban legends of these types of things, and…
Read More