Matt Hackmann

MattHackmann

The thoughts and goings-on of some programmer dad.

11 years ago...

Eleven years ago (to the day, I believe), I began my term at Walmart, back when it was still spelled with a dash. At that time, I took this picture:

While I was visiting folks in September, I found my old vests back (which is to say my brother had held on to them all this time). Having hauled them back to the Bay with me, I decided that I'd dress up as old cashier Matt for Halloween and wore the vest to work. Here's that same picture updated for modern times:

Looking back, I realized I was quite proud to be working at that store. Moreso than anything, I was probably just happy to have a job, but looking back on it, there was something to be proud of. During my not-quite-two years there, I went from quiet coder to a sociable person who could hold his own in the world. I worked in almost every department in the store in an attempt to be one of the most versitible people there. It was also slightly self-serving in that it allowed me to do something slightly different a lot, but that shit looks amazing in the eyes of management. I topped out at cashier "management", which is really just ensuring the front-end was well manned and that cashiers get their breaks/lunch on time, gaining me the coveted red coat. It didn't last, as I went to cart pusher for the last few months there, but in retrospect, I'm pretty proud of what I accomplished in the little time I was there.

It wasn't a luxurious job, but I'll treasure what that time meant to me... always.

CNC - Create Nice Crafts

... or computer numerical control.

As was touched upon previously, I am the owner of a shiny CNC machine.

This thing excites the hell out of me because I basically have a tiny little wood shop robot that can make art, and parts, and gifts, and who knows what else. There's only one thing complicating the matter

Turns out it's not as simple as saying "print" like my 3D printer. No, there's much to know about endmills, feed rates, router speeds, plunge rates, and a whole plethora of maths and terminology. In the above, I tried to make a grid of holes, but these all failed in various ways. The holes were all lopsided and, towards the end of the milling operation, the whole router would take this weird turn too early and would chew up the rest of the work. I was confused and getting a bit frustrated and down on the whole thing.

Luckily, I am not the only one throwing a CNC party. In fact, I'm the last one on the bandwagon. Between myself and a couple of other coworkers, we're kind of trudging through this world together, exchanging knowledge and tidbits as we learn them. It was during these CNC talk lunches that I overheard what my problem might be.

Check the belt tension.

Well, that fixed everything. There's still some things to consider like non-manual dust collection (I currently follow the router with a vacuum hose) and contraptions to hold the stock material down. But, you've gotta admit. That hunk of cherry is a sexy piece of wood. Let's have another glamour shot.

I'm now stoked to start making a bunch of cool shit. Perhaps we'll being seeing more on the blog this month :O

Hobbies, Hobbies, Hobbies

In the last several months, I seem to have gotten into this kick of trying out hobbies. Not sure if it's some middle age crisis thing or what, but it's been an interesting journey.

Off the top of my head, the things I've given a shot to are:

  • Making beer and wine
  • Automating stuff in my apartment
  • Testing out various small electronics projects (so much soldering...)
  • Lots of research into arcade machine repair (lots of YouTube videos on the subject)
  • Attempting actual repair of old NES machines (lemme know if you need your cartridge connector refurb'd. I can do that all day!)
  • CNC milling

The electronics binge particularly has been a hell of a lot of fun. I've yet to actually fully complete a project, but I've prototype'd an LED matrix, a camera shutter timer, and a rhythm game controller. I've done quite a bit of research into circuit board etching and think I've settled on a good solution that relies on fewer caustic chemicals. I just need to design up a board to test all that out with. Combine all that with the CNC machine and I'm hoping to bring some spit and polish to those projects I mentioned.

In future posts, I'll probably elaborate more on some of these builds and what I've learned from them. In the mean time, my mad scientist desk probably needs some decluttering...

チャレンジ

I doubt that title's even gonna render correctly...

Let's not beat around the bush, here: this blog has been a fucking ghost town for quite some time now. Last year was quiet, but the only thing I've written at all this year is an out-of-nowhere post about a frog watering contraption. Kind of sad, really. It's not that I don't have anything to write about, necessarily, but can't quite figure out the "correct" way to write it. One thing leads to another, and that generally lead to nothing in the end.

That brings us to here. At the suggestion of my dearest mother, we'll be doing one of those post-a-day challenges for the month of November. She's started off by writing about how she's slowly becoming an evening alcoholic (I kid, I kid), but I'm not sure where to begin.

2016 has been a rather strange year, for sure. It might actually be one of my busiest on record, but it doesn't really feel like I've accomplished anything. Here's a bulleted list of things that may or may not become posts later:

  • Spent a couple weekends in snowy Tahoe with friends
  • Threw not one, but two little parties at my apartment
  • Quit LinkedIn
  • Visited Japan
  • Started working at Twitch
  • Quit working at Twitch
  • Meandered around in unemployment for a while
  • Started working at LinkedIn again
  • Made a road trip to Seattle, visiting friends and family along the way
  • Housed a friend and colleague from work for a week
  • Various other ancillary things

The work nonsense is certainly the "low hanging fruit" of this blog escapade, so I'll probably start on that tomorrow.

In the meantime, this is a post with words that hasn't really said anything in particular. Good thing this is a quantity and not quality challenge!

The Automated Warner Waterer

youtube video

Out of nowhere, a blog post!

I'm currently in possession of my brother's frog whilst he gets his new life set up. I love the little guy (the frog, not my brother), so I'm okay with this. The only downside is that it does keep me attached to my place to care for him (again, the frog) at a time in my life where I can do whatever the hell I want whenever the hell I want.

To that last point, I booked a rather spur of the moment trip to visit good ol' devbus over the long weekend. Now, the frog (who from hereon out will be referred to as "Warner") can live with some neglect, particularly on the food side of things. I'll only be gone four days, which should be fine. Still, he should be kept moist regularly and that's been weighing on my soul.

Enter the Automated Warner Waterer! (Or, "aww" for short)

The Supplies

Excluding the Pi and the box which I already had, I spent about $25 for everything. Not too shabby. Oh, and this isn't meant to be a blog-by-blow tutorial. I'm not instructables...

Building It

The water pump and tubing stuff came together pretty easily, the stuff that I figured would be difficult. Despite it being drip tubing, I wound up punching some holes as the pump wasn't strong enough to force the water through. Other than that, cake all the way.

Setting up the script and such to control it via the Raspberry Pi turned out to be trickier, or the part I figured would be easy. Some stuff I learned:

  • The Pi has 5v out, which is great for my relay card. But the GPIO pins are only 3.3v, something my relay card did not like. An NPN transistor fixed this.
  • The relays themselves are active when they're pulled low, something I do not recall when messing with them before. Had to do some rewiring so that the pump would be off when the relay is engaged (which is basically all the time when the Pi is on). This of course means that if the Pi loses power, that pump will always be on.
  • When running something as a cron job, you don't get the benefits of running with that user's shell. So, when you run node, you need to absolute path to that

The Result

The way everything is set up now, I can manually water Warner by running the script through SSH, but it's also set to water for fifteen seconds every day at 3PM. In addition to that, it will reboot the Pi at 3:01PM, resetting the GPIO pins and shutting off the pump just in case something went wrong and the script hung with the pump on. MY CODE HAS LIVES IN THE BALANCE.

A pretty good way to spend half a day and it'll make me feel more at ease while I'm away.