Matt Hackmann

MattHackmann

The thoughts and goings-on of some programmer dad.

The Lazy Approach to Design

It's getting to be that time of year again when I begin making preparations for the annual awwnime bracket. Unlike last year, where I split the bracket up into boys and girls, I'm going to head off any "well, this character identifies as..." issues off at the pass and go back to a single bracket. And with the new bracket comes yet another tweaking of the design.

Last year, I requested custom artwork of 2012's bracket winner from a fledgling artist who was active in /r/awwnime. I placed his pieces on the site, mostly working around the existing design. This year I wanted to do something different, partly because I really am coming to loath that design, partly because I want to try something new. That something is mostly eschewing the much pixel pushing and heavily using photography and typography to create the interface.

Carrying on the trend of having the previous year's winner "emcee" the current year's bracket, I picked up a Nedoroid of said winner as the center piece for the design. Nendoroids, for those who have lives, are a chibi style line of figurines that are fully posable and come with a variety of different accessories and faces, allowing you to make many combinations of expressions. Generally, this is not my type of thing being more of the "static" figure type of guy, but for creating a photo based site design, it's quite perfect.

Now, I won't lie. The decision to go with this type of aesthetic was for the look, the other part was because I felt it was going to be simpler to pull off. Which is probably true, if you know how to correctly operate your camera, light your scene, and orchestrate things compositionally. I, sadly, did not know how to do these things very well. As such, this was my first result:

First thing's first, the positioning of the little Tsukiko is way off, gobbling up (pun intended) too much of the center stage, leaving disgusting areas on the side that are trying to be hidden by some falloff gradients. Also, despite my best efforts to color correct the initial image, it still kind of has a urine stained feel to it (much like K-mart). Despite using the same post-processing, the iPhone landing screen was far and away better, if not color wise, certainly compositionally.

Actually, that peeking above the fold arrangement is what I used for all of the app branding, from App Store images to icon. I quite like it.

Not satisfied with the original desktop splash screen and wanting to get the thing coded soon, I gave it another go. I happened to have some banana muffins sitting in the freezer, so I thought that might make a better set piece than the random not-identifiable-as-curry-box in the background. After switching the camera into full manual mode and playing around with poses and lighting, I arrived at this result:

Holy shit, that's so much better! So much better in fact, that almost all post processing was removed in Photoshop leaving only some slight tweaks to the color curves to bring the blues up a bit. Of course, this is but one of at least three screens that I have to do, the remaining two being the nomination and voting screens. Not sure what I'll do for those at this point, but at least I'm getting a feel for the camera and how these photos need to be taken to work well within a web layout.

That'll End Your Fun Real Quickly

Deciding that my Taco Bell supper was too much to weigh on my conscience, I decided that a late night bike ride was the thing to do. This after dark guilt ride is something that happens entirely too frequently. But, that's beside the point.

Before I even get out the door, I was looking for my pump to top my tires off. How something that large can go completely missing is beyond me, but after a solid 10-15 minutes of looking, it was nowhere to be found. So, I decided to just live with the pressure at whatever it was and go. Get outside, start Strava and my music, hop on the saddle, clip in, and away I go... except I don't. As I'm rounding the corner towards the apartment exit, I realize I'm not wearing my helmet. Return home, grab helmet, rinse and repeat. I'm finally on the road.

So, I'm out biking, listening to some tunes and giving my new bike undies a test run. My outfit is said undies, a pair of gym shorts, and my Lockheed-Martin jersey (it has pockets which is handy for holding my hand pump). My ass was comfortable for sure, though there's not enough padding in the crotch. Probably too much information, but there it is.

Again, I'm out biking and not really taking any particular direction. Up over a bridge, under an overpass, around Fry's and to a side road that takes me past the rock climbing place. This drops me out on a road that goes by the Sunnyvale LinkedIn complex. Had I brought my badge, I could have stopped in and raided the pantry, but I didn't so I didn't. As I'm making a left out of that building and onto the road, I hear a loud "pop" behind me. I didn't need to inspect the bike to know what had happened; I'd been struck by the Curse of Jibjab.

One of my coworkers (well, technically two) have the same bike that I do. He blew a spoke on that bike not once, but twice, on the same wheel even. I pulled myself over to the sidewalk, flipped my bike over and began inspecting every spoke on the wheel. Lo and behold, a spoke has been sheared off.

At this point, I'm somewhere on the order of 2-3 miles away from home. I briefly consider my options and decide that, despite the fact that wheel won't even spin freely anymore, it's good enough under load to make it home. I wasn't really keen to the idea of walking that far back in my biking shoes.

So, I slow rode all the way back, worrying the entire time that my immense weight was going to crush the rest of the spokes. Luckily, it went by without incident. I suppose all in all this isn't such a bad ordeal as I was planning on replacing the wheels with something better anyways, but I don't really like being forced into these situations.

Fate, however, has its own plans.

Old Dogs Can Learn New Tricks, It Just Takes Longer

As I sit here whiling away the time trying to put the finishing touches on my Awwnime Bracket app, I realize that the infernal clock ticks away at the minutes, much as it always does. Of course, not that any of this matters since my server is still running in Central time and the dates will be messed up anyways.

As stated, I sit here coding in that which I have tried several times before: writing apps for iPhone using the abominations that are Objective-C and Xcode. Now, this isn't my first time in this rodeo. Indeed, in 2012 or 2013 (before LinkedIn was a thing I considered a thing), I purchased a Mac mini in hopes of carving myself a space in the ever expanding "app-o-sphere" and some of those tantalizing dollars that could come with. I did my damnedest to follow learn Obj-C and tried to follow the Stanford iTunes U course, but it was just too much all at once for my brain to process. I quickly got discouraged and gave up. Shortly after the move to California (or perhaps slightly before), I sold the mini and forgot all about that shit.

Then, mid-last year, one of my fellow webdevs at work organized a weekly session in which we would all meet for an afternoon and learn ourselves some iOS development. This arguably went much better, though my mind still had trouble wrapping itself around all those fucking square brackets and the hierarchy of views and view controllers and what have you. Despite being one of the handful that "graduated" that class, I barely pounded out a semi-functional app. Seriously, that thing was (and is) a piece of shit. It was supposed to be an "offline" client for the music page, but never quite made it entirely to that offline mode. I still would like to complete it so I can track my music listenings while biking or driving.

Fast forward to a few months ago. I don't recall how it came around, but as LinkedIn's membership continues its drive towards mobile devices, so too are we trying to scrounge up mobile support internally. One thing lead to another and my name hit a list of people that they wanted trained in iOS. I accepted (perhaps a little begrudgingly), and for one week in August, did nothing but iOS training. Perhaps it was all the repetition, but something about that class made everything stick. Perhaps it's because we were writing actual apps that did actual things and each of those exercises themselves had much repetition. But, when I came out of that class, it was as if the clouds had lifted and the chorus sang out from the heavens. I'd finally grasped these ever elusive concepts that had me so worked up in the months and years prior.

That's not to say I'm an amazing iOS developer. Far from it. However, I've been putzing away at this bracket app with relative ease, only looking up particular things for particular cases when needed. It's odd to see how even the way I've been writing javascript has changed in only the last few weeks. I find myself using Obj-C/Foundation style nomenclature when writing methods (initWithXYAndZ).

So, that's that. I was hoping to get this app submitted tonight, but I just profiled the thing and it's eating up a healthy 500MB+ (all in images), so I need to figure out how to mitigate that.

I do love doing this shit...

What's in a Nap?

The clock says 9:55pm and I have, more or less, just awoken from an evening nap... that lasted two hours. I make no secret of the amount of time I spend napping, but generally it's 20-30 minutes. Two hours is excessive and it's now eaten away at time that I was going to spend working on my bracket app.

I'm not entirely sure why I'm so prone to napping. The most obvious thing to me would be the fact that I keep such terrible hours. My alarm begins going off at 6:20am so I can snooze it a couple of times before rolling into work not too long after 7am. My final sleep generally begins around 12am-1am, which leaves five to six hours for actual sleep. The nap could exist as a little pick me up to make it just a bit farther.

I've also theorized that my job could be part of the reason. Dealing with office work and software development is more taxing than one might think for something that keeps you immobile for nearly 9 hours. Given that my brain has been running at high capacity for that time, once I return home, everything just grinds to a halt. I flop on the couch, flick on the TV, and basically do nothing for the remained of the evening. That is, unless I have some sort of deadline to meet in a project I'm working on.

My final thoughts concerning the naps, somewhat related to the above, is that I may be suffering from mild depression. When I'm at home, lying in my bed, it sometimes takes quite a feat to do anything. I don't feel like playing a video game, or reading a book, or watching TV, or any numerous things that require nearly zero physical or cognitive effort. Hell, sometimes it's so bad I'll even let my stomach go hungry because I don't want to move to make food. Instead I'll just lie in my bed drifting in and out of sleep, going through this same mental cycle as my mind breaches into consciousness. I'm not entirely settled on the depression idea as I've seen real depression play out. I'm a pretty content person most of the time, so I think this is more extreme laziness than anything else.

Alright, there's more words!

Return of the Daily Blog

As has been a semi-recurring thing for the last couple years, I will be attempting to jot my thoughts down once per day on this little corner of the internet I've carved for myself. Not sure what I'll say at this point, but it may be more serious and brain dumpy than the usual fluff affair. Or it may not be, I dunno.

I've barely even said anything over the last few months, so I guess a place to start is by catching up. I feel like my life has taken an interesting turn the last few months. Before moving to California, I was essentially the shining definition of a lone wolf. Wake up, go to work, go home. The only time I socialized with people was during those nine hours in the office. Now, however, I actively spend quite a lot of time (by my standards) away from home and doing things with other people. This evening, for example, I was at a friend's house rolling characters for an upcoming Dungeons and Dragons game, after which we played Munchkin. Pretty standard social fare on paper, but as stated, kind of a big deal for me. Add to this the biking excursions, evenings of drinking, and other random outings with people and I sometimes find myself in that spot of swimming unknown waters and having to figure things out as I go. I hate being in this situation and I know it's a major reason why I shy away from dating. When I don't know the rules, everybody winds up having a bad time, or perhaps a great time at the expense of my psyche.

But, whatever. There's more to say, but I'll leave this here to leave fodder for the future.