Wednesday, August 21, 2013

Tom Mast: Professional Vagrant MMXIII

The past 22 days have been a whirlwind. My lease in Muncie was up at the end of July and since then I've been roaming the state of Indiana. I had been gradually packing and moving stuff since the holidays, but it didn't really matter how much preparation I did. 50+ boomboxes, well over 500 records, and 7 bikes are always going to be a pain to move.

When I finally had my car packed with the final load I said my last goodbyes and hit the road with Lisbeth. Seeing the place I had spent so much time growing up in just fade away behind me was a weird, weird feeling. Memories of my entire career as an aspiring computer scientist filled my mind. My mistakes, my successes, enough to fill an entire book (OK, OK, my mistakes alone are enough).

I am more than happy with the education I received at Ball State. I loved every single one of my Honors courses, and regret not pursuing them in a more focused manner. I have my share of complaints about the CS department, but I feel comfortable with the well-blended knowledge of theory and application that I left with. My personal experiences with a handful of the CS professors have forever shaped my views on the way I approach personal learning, team-based interactions, and how to maintain an excellent work/life balance. On the opposite end of the spectrum, I felt way too often that I was being taught a CS equivalent of the Donnie Darko Fear/Love lifeline.


Our field moves way too fast for you to try and teach me using your slides from 10+ years ago, I'm sorry. 

Life since then has been one long interview process. I sometimes feel that I'm being too picky. I know where I want to work and I know the type of team I want to join. I've turned down potential offers that don't fit this criteria. I was in process at ThoughtWorks, but broke it off. I know I would love the work and it would be great for me professionally, but I just cannot do the 80% travel gig. I know I'll find the place that's right for me. 

Barring the lack of income my life rules right now. I wake up, play with Lisbeth, and then study or work on whatever I want to all day. Want to implement Boyer-Moore or play around with Elasticsearch? Go ahead! One of my goals for the summer was to complete 50 Project Euler solutions, but then I discovered CodeEval where your solutions are ranked based on running speed and memory usage. I set myself a goal to break the top 100 and just recently accomplished it (loadstar81).

I've also been running/cycling on a consistent basis. Growing up we had an old, out of service railroad track right down the road that we used as a walking trail. This has since been converted into a legitimate bicycle trail called the Pumpkinvine Nature Trail


I'm usually not the biggest fan of running, but taking Lisbeth on this trail is awesome. She stays right next to me, even off the leash. While I crave the bustle and technology scene of a big city, it's had to argue with this.





Sunday, July 28, 2013

C++11

I can definitively say that my favorite addition in C++11 is the fact that I can finally write this:
std::vector<std::vector<int>>
Instead of this:
std::vector<std::vector<int> >

Thursday, July 18, 2013

Pimp My Raspi(de)

The summer heat gets to all of us, even our machine friends. I thought I'd give the gift of cool to my Raspberry Pi in the form of some heatsinks.


I realize it's pretty hard to mess up a heatsink, but I'm happy with these little guys. A quick before and after reading (vcgencmd measure_temp) shows a drop of a few degrees Celsius on my stock cpu/voltage Pi. 

My only cosmetic wish is that the second heatsink was more size appropriate for the LAN controller. 

Wednesday, June 26, 2013

Charles Bukowski, Factotum

If you're going to try, go all the way. Otherwise don't even start.
This could mean losing girlfriends, wives, relatives and maybe even your mind. 
It could mean not eating for three or four days.
It could mean freezing on a park bench.
It could mean jail.
It could mean derision.
It could mean mockery--isolation. Isolation is the gift. All the others are a test of your endurance, of how much you really want to do it.
And, you'll do it, despite rejection and the worst odds. And it will be better than anything else you can imagine. 
If you're going to try, go all the way. There is no other feeling like that.
You will be alone with the gods, and the nights will flame with fire. You will ride life straight to perfect laughter.
It's the only good fight there is.

No offense Charlie, but this is complete bullshit. What is success without someone to share it with?

Tuesday, June 11, 2013

Tick Tock


I promised myself I would be better at making lists, so here we go.

Books Tom has read at least halfway through but not finished:
  1. Clean Code
  2. The Ruby Programming Language
  3. Hacking: The Art of Exploitation
  4. The Art of Computer Programming: Fundamental Algorithms
  5. The Pragmatic Programmer
  6. The Algorithm Design Manual
  7. Understanding Comics
Things Tom has plenty of:
  1. Stress from working on Master's thesis
  2. Stress from looking for enjoyable employment
  3. A great girlfriend
  4. A dog that thinks she is a human
  5. Interests
Things Tom will do this summer:
  1. Finish thesis work
  2. Find employment
  3. Complete 50+ Project Euler solutions in at least three different languages
  4. Write some audio effects for Mixxx
  5. Finish the Raspi/Arduino controlled treat dispenser website for Lisbeth
  6. Create a tiled screensaver/installation of public IP cameras using GStreamer
  7. Finish the work I started on a granular synth for Buzztrax

Things Tom does not have, at all:
  1. One focused interest
  2. Free time
  3. A pet Grue
  4. The new Boards of Canada vinyl (why did I order from overseas...)


Tuesday, May 21, 2013

Aaron

Finally got my Spring 2600 issue, this was the opening article. I wanted to share it but couldn't find an electronic version so I apologize for the scan quality. 


Aaron's passing definitely hit me hard. I never even knew the guy, but I feel like I did. Same age, the same interest: Learning/Growing/Fixing.

Saturday, May 18, 2013

Raspberries and Dremel Tools

The official camera module for the Raspberry Pi was just released and I received mine a few days ago. I've had an idea for a neat case for one of my rPis and this was just the kick in the pants I needed to follow through on it. Plus it was nice to get away from my thesis work for a bit.

Backstory: One of my goals for the next few weeks is to get a tracer bullet for a side project involving a  raspPi, an Arduino, a camera stream, and a doggie treat dispenser. I plan to run a Node.js server on the rPi that hosts a game (HTML5/libGDX) starring none other than my dog Lisbeth. If the player wins the game, the rPi will tell the connected Arduino to dispense a dog treat from a servo-driven treat dispenser.  The site will also have a live stream of Lisbeth, who will be alerted by a sound when the game is started. For the bullet a simple "click to win" resulting in the servo turning will be enough for me.

I never purchased an official case for the rPi, wanting to do something creative on my own. I toyed with the ideas of putting together a Lego case but those are all buried away in the depths of my childhood, somewhere far away in the countryside of northern Indiana. A quick search of my apartment provided me with the perfect specimen, an old Panasonic mono boombox (complete with a New Kids on the Block sticker).

I ripped the guts out and went ballistic with a Dremel tool. The rPi sits very comfortably in the back, while the Arduino takes the place of the cassette up front.



I power my rPi through a powered USB hub which I attached to the back of the boombox. Throw in some purple LEDs controlled by the Arduino and we can call it a day!


I'm very pleased with the camera module. I was able to set up RTP streaming from the rPi to my laptop using GStreamer1.0, but haven't been able to embed a stream as of yet.