Make: 3D Printer!

I grew up on Star Trek. It was an escape for my imagination and it was a place where technology, albeit fictional technology, usually played a part in saving the day. Scotty, the ship’s chief engineer on the Enterprise, would often complain about the impossibility of a request, but always managed to come through. Smart people, whether the First Officer, the Doctor, the Engineer or even the Captain, were never denigrated for being intelligent and using that intelligence to save the day, one one-hour episode at a time

It wasn’t until Star Trek: The Next Generation, though, when they introduced the replicator. On the show, the replicator could be used to produce any material or object, so long as the pattern existed on file. So, Captain Picard could walk up and request “Tea, Earl Grey, Hot” and the tea along with the cup would magically appear.

We’re nowhere near that kind of technology today, but the 20th century is filled with examples of science fiction serving as fodder to help foster new ideas. The flip phone cellphone looked like it did because they modeled it after the communicator from Star Trek. Actual physicists and engineers will talk about things like Warp Drives and tractor beams which don’t exist, but they wonder if they could some day.

3D printers have been around awhile, but much like the PC in the early 80s, mass production and the reduction in cost of technology have caused the price to drop enough that the current state of the technology is increasingly accessible to the average person. It’s not sufficiently advanced for it to be interesting or useful to most folks, but for the tinkerers and the dreamers, it’s enough to make it interesting!

Most consumer grade printers available today print using a couple of variations of plastics, PLA and ABS. One is corn-based and the other is petroleum based.

The current generation have the ability to take in this plastic material, run it through a hot tip and extrude it in 3d space for a given X,Y,Z coordinate in the build space of the printer.

Typically, the technology uses a layered approach and prints the base of the object then prints layers upon very narrow layers until the object is eventually finished. I think it looks a bit as though a hot glue gun were married to a computer which could think in three dimensions.

I purchased a Printrbot Simple Metal after watching the technology for the last few years. I’ve been reading yearly reviews that Make Magazine produces yearly, watching the price come down as the quality increases. I chose this model because it was a reasonable trade-off between price and quality as well as openness of the technology. This particular model is modifiable to accept either PLA or ABS materials as well as others that are based on this basic technology. They also didn’t lock in the consumer to only use their branded materials as some others have done, following the printer approach of using DRM so that you can only a manufacturers materials with their printer.

This particular printer has a build volume of 6” cubed, which is mid-range for consumer printers. I can also mod the printer to handle up to a 10” cubed volume for a reasonable cost, but for now that’s sufficient.

Here’s my setup in my garage for the 3d printer. I have it in the garage because of both noise and the smell. My wife, though very understanding, is likely to respond poorly to the smell of melting plastics permeating the house. The noise isn’t bad, but it’s not silent by any stretch.

Garage Setup

The first thing I was directed to do was print several small boxes. This is to allow me to dial in the printer accurately. This went fine and I adjusted the printer accordingly once I figured out the right settings.

Next I wanted to print a shroud for the fan which blows air on to the extruder. The shroud would focus the air flow and is supposed to result in more consistent quality.

In the next pic you can see the results of my first attempt to print the shroud.

Failed Shroud Print

As you can see, it did not go well. The blue tape on the bed of the printer is simply blue painters tape. It gives a reasonably grippy surface for the print, but it’s not infallible. In this case, I printed on the same tape that I’d used to calibrate earlier and it appears that the shroud came loose from the build plate. Of course, the printer doesn’t know that, so it merrily goes about printing the remainder of the shroud, not realizing it’s gone from printing usefully to making modern string art.

LESSON 1 Change the tape between prints

LESSON 2 Print times are larger than any rational person would like.

The shroud took something like an hour, so I lost time when the first build failed and more time and materials to print it again. But, the printer is in the garage, so if the print fails, I won’t know till I go check, which I did roughly every 20 minutes. And, all I can do once it does fail is cancel the print and clean up the mess and decide whether I’ll try again.

Here is a pic of the results of my first nights attempts. As you can see, the pile of the left represents the successful prints. The pile on the right are the failed prints. Those piles are roughly 50/50, meaning my confidence in doing anything more complicated is not high at this time.

Success/Failure Ratio

I did try to print a little robot which has moveable joints, mostly in the legs, shoulder and neck. Sadly, my success with the printable joints was also about 50% and it took two tries to get him to print.

LESSON 3 Start reducing the number of variables to increase the odds of success.

Right now I basically try and print and see how it goes. Roughly half the time it works and half the time something goes wrong with the print coming loose or messing up in some number of ways.

I need to figure out why they’re messing up and what knobs and levers I have access to to make it more predictable. There are a plethora of configuration options in the software that controls the printer. Right now I’m using a basic setup and haven’t yet dug deep in to those other options.

Additionally, I suspect I’ll want to try with the other main material, ABS. That means an upgrade to my machine to add a heated bed and perhaps a new extruder. The PLA is very rigid and not very forgiving and I believe I may get better accuracy and results with ABS. Additionally, you can get different effects from ABS because you can sand it and even dip it in solutions to get a smoother finish, options that don’t exist for PLA.

That means this next phase is about trying to understand how to get the most out of this printer. I can’t treat it like a paper printer and hit Print and walk away. The technology is just not there, yet.

It’s a fair question to ask: What are the requirements for people to start buying these in volume for their homes?

I think we can look back to the days of the personal computer to answer that question. Having lived through those dark ages lo these many decades past, my belief is that killer apps were what caused people to adopt those early computers. And that meant two things:

  1. Games
  2. Business Applications (spreadsheets and word processors)

Because my crystal ball is terrible, I don’t yet know what the parallel would be for 3d printers.

Also, the technology needs to be much more reliable.

My first computer, a Commodore PET, was built out of sheet metal steel and the body could be lifted like the hood of a car and it even had a steel rod to hold the upper half up. This was necessary, at least in part, because I occasionally had to reach in to the guts of my computer to reseat the bus connector that connected the video to the main board. Imagine having to do something similar to a computer or a video game system today. We expect them to work and if they stop, as often as not, many people will throw it out and buy another one.

Here are the things I think will happen in the next decade to bring this technology in to the home:

  1. Prints have to succeed 95+% of the time, preferably 99%
  2. The speed of the printer has to be measured in minutes, not hours.
  3. The variety of materials and the characteristics of those materials needs to be sufficiently broad. This would include things like metals, ceramics, wood-like, teflon, rubber, etc. Did you know some people are already experimenting with printable food using chocolate and sugars and other ingredients? The food synthesizer of the original Star Trek doesn’t seem so far away now.
  4. The tools to make or re-mix a new thing need to be easy to use. Current tools and software require a great deal of patience and knowledge before you can be effective.
  5. The technology will probably be paired with a build-in low-cost scanner.

Back when I was making the case to my Dad to try and justify spending the then prodigious sum of $300 for my first computer since I didn’t have that money, he asked me a very rational question: “What are you going to do with this?” I didn’t have a great answer then, because I hadn’t had a computer before, but I probably talked about learning how to program and writing games, both of which I would later do for a ridiculous number of hours. That first computer undoubtedly put me firmly down a path which has paid off that investment many, many times over.

Recently when I was talking to my wife about 3D printers, she asked a similar question: “What are you doing to do with it?” There was similar hand waving and attempts at justification, but at the end of the day, I don’t need a 3d printer any more than I needed that first personal computer. But now, as then, I’m convinced that this technology is on a similar cusp of enabling amazing things and amazing times and, at the end of the day, I want to experience that joy of learning and joy of discovery much as I did 35 years ago with my first computer. So, what am I going to do? I don’t know, but I’m pretty sure it’s going to be cool!

Up, Up and Away!

I have a very tolerant spouse. This is never more true than her reaction to my taking up a new hobby. I’ve been interested in flying radio controlled for a number of years. A few years ago for my birthday she bought me all the parts to build a flying wing style RC plane. I was very excited to get that present and spent many hours gluing and covering that thing, wiring the motors, following the tiny diagrams and ultimately I had something that looked a great deal like a plane. When I pulled back on the controls, the elevons reacted as expected. When I pushed on the stick to start the motor, the right things happened.

When the day of the maiden flight came, it was a calm and clear spring afternoon. We went over to the local school and I was very excited. I’d read repeatedly that the right thing do to is find a local flying club and have them test it and teach me to fly, but I was having none of that! I am smart, I am independent – I am also congenitally incapable of asking for help. It should come as no great surprise, then, that when I did all the right things to launch my plane, it angled up in to the sky then promptly tipped up and over to one side and took a very impressive header in to the grass. Total flight time: About five seconds. Had there been live test pilots aboard, there would have been no survivors. Nothing broke, but despite trying several more times, we only repeated this same pattern, climb for a moment, but it didn’t seem to have enough oomph to get up and stay in the sky. I suspect it may not have a strong enough motor.

The smart move, then, would be to search out a flying club, but my poor plane sits up on a shelf waiting in my queue of hobby activities to see the light of day once again. Because the alternative would be to ask for help and that’s very, very hard for me.

I told you that story so I could tell you this one.

Quadcopters, sometimes ubiquitously and erroneously called drones, have become increasingly cheap and increasingly powerful. Recognizing that I wasn’t sure I had the patience to build my own, I started by buying a cheap quadcopter that’s no bigger than my palm and flying it in the back yard. And in to the trees. And on to the roof, requiring ladders to effect a rescue. Basically, I was a danger to myself and to my dogs who watched all of this with suspicion and a fair amount of wariness.

This year, I decided I was ready to move on to what I decided was the next level and when Amazon had a good sale, I purchased a DJI Phantom Vision+ quadcopter with camera and gimbal. Where my previous copter was the size of my palm, this is bigger than my head. In fact, there are numerous stories of folks flying these things in to lakes and the backs of people’s heads. You can go to YouTube and find no shortage of spectacular crash videos, often from the perspective of the poor, unsuspecting drone as it lives it’s last moments (before major repairs, at least).

Here is an example of a flight, presumably by an experienced pilot, that did not go as planned and pretty much exemplifies my biggest fear for my new, expensive toy:

So, it was with no small trepidation that I read up on the controls and features of the copter. Roughly a week ago, I took it to a local field/park and was able to take it or its first flight.

You can see the video here:

A few things of note:

  1. Where my tiny copter was pushed around by the least gust of wind, this copter is much beefier and less prone to be knocked about so easily.
  2. The video on this was pretty great, at least for something at this price point. I can take camera shots or video and control both from an app on my phone which is easily mounted to the controls. This also allows me, with some lag, to see what the camera sees. The gimbal kept the footage smooth with little to no jitter. This was pretty great.
  3. I did not crash! I attribute this to me being very careful and having practiced on the smaller copter so I had a decent sense of what would happen when I did something with the controls. I also kept the copter in beginners mode, which was plenty responsive and zippy for me, certainly for a first time flight.
  4. The final shot in the video involved me testing a feature which seemed very cool and very necessary. If you switch off the controller, the copter detects this and goes in to autopilot mode and returns to where it started from (via GPS) and lands itself. This was, by far, the most terrifying part of the trip. As the copter flew towards me and the road behind me, only then did it occur to me to wonder what I was going to do if it just kept going! While it did come about 10’ closer to the road than where it started, it did stay in the park – and missed the fence by only about six feet.
  5. This thing can go 700 meters away from the controller. I think I let it go about 35 meters up in the air and maybe 150 meters away. I was amazed at how tiny the copter was as it was 35 meters above my head. Had there been some catastrophic failure, plummeting from that height would have resulted in nothing but busted bits of copter and a very sad me. The fact that it’s smart enough to return to its landing spot on its own does give me some solace, but it’s still disconcerting.
  6. The conditions were fantastic and I got some really nice views of Mount St. Helens and Mount Hood.

Over time, my real goal is to try this with FPV flying with is First Person View flying. You put on some goggles and you see, in real time, what the copter sees. The better systems will even turn the copter to one side or the other as your look left and right, effectively giving the illusion that you’re flying up there yourself. But, the issue there is that the goggles aren’t build to be worn with glasses and the few that offer adjustable lenses to replace the goggles don’t go anywhere near my prescription. This points me towards having to either get contacts just for this or to hacking a pair of goggles to put in my own lenses from an old pair of glasses. Not ideal, either.

I’m also looking forward to flying this on a morning where we have some ground fog, as we do pretty regularly this time of year. I imagine flying it up and out of the fog to the clear day above and seeing the neighborhood blanketed in fog with occasional trees and houses poking out of the fog. The part that is a bit scary is the notion of having it above the fog and me unable to see it.

I’m very appreciative of having a wife who supports my hobbies as well as the time and money to afford them. In all of those I know I am spoiled. Spoiled, but appreciative!

The Interview

Interviews are interesting things. When I first started out, I thought they were all about me and, in a way, they were. I wanted a job and the company had to establish whether I was worth taking a risk on and giving me the job. As time went on I learned a lesson: As much as an interview is an opportunity for the company to interview the candidate, it should be, at the same time, an opportunity for the candidate to determine if that is someplace he or she wants to work!

This was a lesson impressed upon me by a mentor who pointed out that as much as they are trying to interview him, he’s trying to understand what he can about the products, the company and, most importantly, the people.

Interviewing for a manager position, especially in an engineering organization, can be an additional challenge. Typically you’re coming in to an existing organization where the people already know each other and have, in many cases, been operating just fine without you. Management above is trying to figure out if the new candidate is going to cause more harm than good and the team needs to work really hard to be sure they don’t hire in a new manager who going to make their lives even more difficult. As a result, I found in a recent interview that I had the opportunity to interview with quite a number of folks. I had one all day interview, one half day interview and at least a few of those were via Skype/remote.

In-person interviewing is hard, interviewing with someone via telepresence/Skype is even more difficult because you lose all the information we all gather, consciously and unconsciously, from being in a room with someone. Worst of all is an interview over the phone with no visual feedback. This is often the case with a phone screen and those are really tough to get a good read on someone.

And what I’ve found in the past, and I don’t know whether this was the case at this most recent interview or not, any single person giving the candidate a thumbs down may be sufficient to remove that candidate from consideration. I described this to someone as a painful version of the Dating Game because you’re trying to land a date with everyone you talk to! But, for all of that, I get it: The company is potentially bringing in someone that the team will spend more time with during the work week than they do with family, so choosing wisely is worth the time and considering everyone’s input is important. And, again, from my perspective, it’s equally an opportunity for me to learn about the company and the team as it is an opportunity for them to learn about me.

Here’s a story from a recent interview and then we’ll see what, if anything, I learned.

This was during an all day interview that went from 9am to 4:30. As an introvert and acknowledging that I am, to some extent, performing, it was exhausting!

During one of the slots, I had something happen which has never happened in all my years of job hunting.  It did such a number on me that I was speechless and for a few moments I felt like I might be having a stroke – it was that much of a surprise.

I sat down with one of the engineers and he had his laptop with him.  The very first thing he does after we sit down and he introduces himself is to set the laptop down, point at the screen and in a very serious tone said “Explain this page to me”.

I thought maybe it was some sort of test and at first I wasn’t even sure what he was really asking.  I looked a bit more closely and realized it was the company’s content blocker which was blocking access to a page.  I thought that was a pretty weird thing to explain, but okay.  Then I paused a moment more because I parsed the content of the page a bit more and saw my last name, or rather, Mossor.org. My domain was being blocked by the company content blocker!

Looking up at the URL bar – this seemed like it took five minutes to work out, but I suspect it was closer to 10 seconds that just SEEMED like forever, and saw that he was trying to go to mossor.org but the content blocker was blocking access.  Looking again at the block of text in the middle said the following:

Reason: PORNOGRAPHY

I looked at the guy and he was just giving me a total deadpan expression.  That’s when my brain broke again for somewhere between an hour and five or so seconds.  In the midst of my interview, it was being pointed out to me that MY SITE WAS BEING FLAGGED FOR PORNO!

I stuttered for a moment and then became a bit more indignant because, as I told him, I know every byte on that site and there is NO pornography!  He asked, again, deadpan, if I was prepared to clear this up with company IT and I said, of course!

It was at that point that he he let me off the hook and started laughing.  I know a couple people that work there and one of them had apparently tried to show him something from my site and they found that it was blocked and they both thought it was hilarious that it was blocked due to supposedly pornography.

It was, at the same time, one of the most challenging things that’s ever happened in an interview and, by far, the funniest.  You know, afterwards. After my blood pressure returned to normal. After the tunnel vision went away. After I could make sentences again.

What’s the takeaway from this? I could look at that and say, “Geez, that was a really mean thing to do.” But, I don’t think it was. Or at least I believe that wasn’t the desired intent. I think it takes some guts to do something like that to your prospective manager and I think it tells me a fair bit about the organization that I’d be coming in to. They don’t take themselves too seriously, there’s a sense of humor and a prank, even out of the gate, was fair game. All right, I can work with that!

And, as the Chinese say (and stole from the Klingons) “Revenge is a dish best served cold.”

Note
Image courtesy of http://pixabay.com/en/manager-person-people-group-308474/ and licensed via Creative Commons Public Domain Dedication. For more info, see http://creativecommons.org/publicdomain/zero/1.0/deed.en

Eyes Forward, Eyes Back

It’s cold outside and I am at home, warm and happy and a bit contemplative. The end of the year approaches just a couple of days away. All of this nudges me towards that most dangerous of activities: The Year In Review! And, as a coda to that activity, what are my goals for the new year?

On the professional front, it’s a time of transition. I will be starting a new job early in January. That means new people and the necessity to start building new professional relationships, as well as new responsibilities, new expectations.

Hey, wait, one may ask. Haven’t you only been at your current for a couple of years? Well, yes, it’s been about 30 months (30 months sounds longer than 2.5 years) since I started at VMWare. Roughly a year and a half ago, VMWare spun us out along with some other parts of other companies to form Pivotal, a new “startup” with 1400 folks. A year and a half in to that, the company has decided to reorganize their structure and that resulted in a shuffling of the organizational structure in engineering where I manage. The effect on me is that I went from a job that I liked very much where I managed a great group of people, worked for a boss I respected and liked and helped manage the product that I worked on to a new role called Technical Product Management where, at best, I was responsible for managing the backlog of tasks to be worked by a group of folks that would almost certainly change over time. I lost my connection to my product and my team and frankly that wasn’t appealing. As a result, I began looking via networking with friends and discovered that there was a new opportunity worth pursuing.

It was not a trivial decision. On the upside, I will be an Engineering Manager responsible for the team and the project, the job is downtown which means a shorter commute and easier access to all that downtown offers, but on the downside I would be leaving a known good group of folks and manager working on a product in which I felt invested. And, not for nothing, but it will be much harder for me to get away to play volleyball in the summer.

Some embrace change and that’s a characteristic that I envy on occasion, because it’s not one that I come by naturally. I know it comes down to control. I had more where I was, due to familiarity and the connections that I’d built and I will have less in the new job, at least initially, because I don’t know the people or the political landscape, the challenges that we’ll face or even what it is that I should be worried about. That unknown makes me uncomfortable.

I’ve read that we are at our best when we are uncomfortable. That we learn best, function at our best and excel when out of our comfort zones. Comfort can lead to taking it easy and that can be dangerous, it is true. On the other hand, changing jobs by mixing up your professional life every few years can keep you fresh or it can make you look inconstant.

Since I went to a startup back in 2007, events appear to have conspired to not allow me to be comfortable for long. The economy tanking in 2008 coupled with our startup running out of money led to a move out of the industry I’d worked in since my first job and in to a consulting organization. That company wasn’t successful which led to my most recent job and then the reorganization of that resulted in me, of my own accord, choosing change that I had confidence in rather than the alternative. It all seems explicable in retrospect, but at the time I know there were times I felt as if I was at the mercy of circumstances much more than I was in charge of my own destiny. But, that is the illusion, I suppose: We have far less control over our lives than we think we do. Certainly for someone with control issues, I suspect that’s the case.

In any case, starting early January I will start anew in downtown Portland at eBay as an Engineering Manager. The eBay office in Portland is responsible, in part, for developing the mobile app that runs on the iPhone/iPad, Android devices and Windows devices. In the last 7 years of so, mobile has grown to comprise 45% of the transactions taking place with eBay. The group that I am a part of provides what are called Platform Services to facilitate the mobile applications’ interactions with the backend.

As I said earlier, I will be working downtown, which will be rough savings of five hours per week in commute alone. I will be close to the Cart Food that Portland is so well known for (dangerous, but good!) as well as close to the waterfront – good for walking off the cart food. I’ll be just eight blocks from Christina which is an unexpected but very nice benefit. I also have several friends working downtown, so it’ll be much easier to stay in contact with them, be it taking a walk or lunch. There’s a gym at the base of the building so that removes that objection to working out more regularly.

Speaking of working out and in the spirit of reflection, I managed some focus on my own health this year, which was both necessary and good. I’ve been carrying more weight than is good for me for a while and after a very tough release at work, I decided that I was compromising my own health and decided to start eating better and getting more exercise. As a result, I dropped the weight that I wanted to and as an extra special benefit, brought my blood pressure down to the healthy range after it, too, had been climbing over time. Moving forward in to this next year, I plan on maintaining the healthier eating and exercise. I’ll be turning 50 this year in June and I want to cross that bridge healthy as well as happy. It’s certainly within my grasp, I just need to not lose focus.

At the same time, as I look forward, it’s also worth being thankful for things that come to an end. One thing I’ve realized over the years is that it’s often lost on us when we have a good thing when we’re in the middle of it. One of my favorite work experiences, both professionally and personally, was back at Eagle. I worked with great people and worked for people I enjoyed and respected. We had a great work-life balance where folks got along and seemed to enjoy each other. We had Nerf battles in the middle of the day and most folks participated. There were shared events and I cared about those people. At the same time, I don’t think I could appreciate how great that experience was while I was still in it. It was only after it ended, as all things do end, that I realized after it was gone, just how great it was. That realization resulted in a commitment I made to myself to try and appreciate the good things when I was in them, not just after they had ended.

I really enjoyed my last job for many reasons. I worked with a great team of folks who I really enjoyed on a personal level. I worked for a boss who I respected and who I learned from. He gave me challenges but, as the best bosses will, made sure that I was successful at the same time. He helped advance me professionally and looked for opportunities to help me without micromanaging. At the end of the day, he trusted me with his group and for that I’ll always be grateful, both professionally and as a friend. None of us are perfect, but he was and is a good man. That means a lot to me when you work closely with someone. I got to help people with their careers, creating growth opportunities and challenging them to grow. Sadly that effort was not completed, so I regret that I wasn’t as successful as I could have been if I’d had more time, but that is the nature of things like careers and organizations – they are never done, they continue, change and grow. And while I helped where I could, those careers, those people and that organization will continue to grow and change with time, with or without me. My hope is that I had a positive effect while I was there. And, at the same time, I wanted to be aware in the moment, as I am looking back, that I had a good thing and appreciate it then as well as now. So, thanks to the Gem team. I really did enjoy my time there.

Now, it’s eyes forward. My brain, despite my best attempts to just relax and decompress between jobs, has already started thinking about how to prepare for the new job, for the new team, for the new responsibilities. I think it’s going to be a lot of fun!

As we wrap up this year with all of it’s issues and problems all around us, globally, nationally, probably personally and professionally, my only suggestion would be to make sure and appreciate the good things in your life while and when you have them. There is little guarantee in life but change. Nothing lasts forever, so embrace the good things in your life and appreciate them. At the same time, identify a few things in your life that aren’t what you want and start thinking about what steps you can take to start making changes to improve things. Don’t let your life happen to you, be in charge of it, own it, be responsible for it and to it and make it what you want.

I am thankful for a good 2014 and I’m looking forward to the adventures that are sure to come in 2015! Happy New Year, All!

Note
Image courtesy of https://www.flickr.com/photos/ladydragonflyherworld and licensed via Creative Commons Attribution NonCommercial ShareAlike 2.0 Generic (CC BY-NC-SA 2.0). For more info, see http://creativecommons.org/licenses/by-nc-sa/2.0/

 

 

Looking at Apple’s SWIFT

SWIFT_500x500Apple recently made some press with their release of the Swift language. That release provides me an opportunity to do a couple of things:

  • Catch up on what’s going on with the latest Xcode
  • Play with and learn a new language

My first language, roughly a millennia ago, was BASIC and if I sat down to list the number of languages I’ve learned since then, I suspect it’d be between 10 and 20, especially if I count scripting languages like bash/csh and my love/hate relationship with Perl.

At that time, I was self-taught and I can assure you my code demonstrated that. I pored over examples from the few magazines that published code or books that had examples I could type in to figure out how they did what they did.

I had the occasion to look back at a program I wrote which was published in a book of games (you had to type in the games line-by-line with a checksum at the end to determine if you typed it in accurately) and the code might charitably be described as ‘spaghetti’. More accurately, it was clearly the code of someone with a great deal more enthusiasm than knowledge.

In any case, in that BASIC from days of yore, I might have typed the following:


110 LET D=8
120 LET E=12
130 LET RESULT = D + E
140 PRINT "RESULT =";RESULT

I was tickled, to say the least, to see the return of the ‘LET’ keyword in Swift, not only for the reminder of code gone by, but to see that, as with many things, what was once old can be new again!

In Swift, I might now say something like:


1 ​let​ ​apples​ = ​3
2 let​ ​oranges​ = ​5
3 let​ ​​fruitTotal​ = apples + oranges
4 println(​"I have ​\(fruitTotal​)​ pieces of fruit.”)

Not that different, No?

However, not all is as it once was. Where I was limited to upper case variable names, we can now use a variety of unicode. Not entirely sure that in all cases it’s a good idea, but in Swift we can do that following:


let​ ​π​ = ​3.14159


let​ ​你好​ = ​"你好世界"

(Excerpt From: Apple Inc. “The Swift Programming Language.”)

Yes, we can now name our variables after sensible things like Pi, but we can also name them using (the aged Programmer in me shudders slightly) emoji.

For those of us with a C or a C++ background, we can continue to use either /* style comments */ or // Comments.

Because Swift, where possible, is trying to make things easier, both generally and for beginners, we can also leave out declaring data types in many cases.

Swift is smart enough to infer the type based on the value, for example:

let intNumber = 3

let floatNumber = 3.14159

This versus the more explicit approach of C:

int intNumber = 3;

float floatNumber = 3.14159;

Note Given the amount of time I’ve written C code, my fingers REALLY want to keep hitting a semi-colon at the end of the declarations (or any line!), as in the C example above, but in SWIFT, they’ve gone away. I shouldn’t miss them, but clearly my reflexes, at least, do!

For all that Swift felt like a pleasant melange of languages still banging around in my head, there are definitely some new concepts which I still have to wrap my head around.

One of these is the Optional, a notion which doesn’t exist in C or Objective-C.

Basically, and without duplicating the language document, an optional says that a given variable may take on values of a given type, say an Integer or they may take on a nil value indicating that they have no value – not just a zero or something like that, no value at all. This is still a bit of a head scratcher, but if we look at something like the following it becomes a bit more clear:

1 ​var​ ​serverResponseCode​: ​Int​? = ​404

2 // serverResponseCode contains an actual Int value of 404

3 serverResponseCode​ = ​nil

4 // serverResponseCode now contains no value

(Excerpt From: Apple Inc. “The Swift Programming Language.”)

In this example we see that the serverResponseCode can not only hold an Integer value, but it can also, validly, simply be a nil. The question mark (‘?’) allows the programmer to make this explicit.

Related to this, the exclamation point (‘!’) has been overloaded in a similar context to say “I know the optional referenced definitely has a value, so use that”. It looks like this:

1 ​if​ ​convertedNumber​ != ​nil​

2 ​  println​(​"convertedNumber has an integer value of ​\(​convertedNumber​!)​."​)

3 }”

(Excerpt From: Apple Inc. “The Swift Programming Language.”)

Another thing that appears to have gone missing entirely with Swift (and likely not missed by many) is the absence of the ‘&’ or the “address of” operator.

Additionally, one of the challenges with C or Objective-C (or C++) was memory management which, though it improved over time, could still be difficult to manage.

With Swift, Apple has now implemented what they call Automatic Reference Counting (ARC) which should make it more difficult to leak memory (though I’m sure not impossible for the dedicated!) and easier to manage memory in general.

One of the other features of Swift, or really an extension built in to their IDE, Xcode, are playgrounds.

Playgrounds allow developers to develop code “live” on a running system and see the effects of changes immediately. Effectively, it’s an excellent way to short circuit the compile/link/run loop of the past in favor of making changes and seeing the results immediately.

Below I’ve linked to the Balloons playground which is a fun way to play with graphics and the Sprite library an see the effects immediately. Using playgrounds, you can also build in documentation and live tutorials and play with them in real time. This strikes me as a very powerful tool for teaching new programmers.

With the release of Swift, Apple is trying to accomplish several things:

  1. Provide cross platform support for application development for both iOS (iPhones and iPads) and OS X (Mac apps)
  2. Provide a powerful language that allows the advanced developers to create applications
  3. Provide a language designed to be easy to use for beginners
  4. Provide a language that allows application to run faster – Apple claims more than 2x faster than Objective-C and more than 8x faster than Python (obviously for some applications)

Any one of these are probably not enough to justify Yet Another Language, but taken in concert, it’s a pretty powerful combination.

I’ve been working through some tutorials for Swift, playing with Playgrounds and knocking some of the rust off the programming parts of my brain and it’s been a great deal of fun.

I haven’t even touched on some of the major advancements that have come with some of the latest iterations of iOS like the SpriteKit and built-in physics engines.

One of my favorite ways to learn, and this has been true since I was a kid, is to either modify an existing program or write something with a graphics element – okay, just call it a game – by way of making learning more fun and I can say I have had fun learning Swift and playing. And, really, at the end of the day, that’s why I started programming in the first place – because it was fun. It’s great to feel that again!

Links:

 

Hacked!

I’ve been using a couple of WordPress installations on my site for a couple of years now, one for the front page and one for the blog.  The main page has been hacked three times in the last three months.  Basically malicious code over-writes the main WP install and does Bad Things ™ and the site is useless after that.

Read more

Hitting the Reset Button

I hit a wall last week. A very big, very real wall of my own making. I became burned out. Now, it’s time to hit that big, red reset button to recalibrate and make sure that I’m actively working towards a better balance in my life.

I enjoy my job. I enjoy the folks that I work with. I’ve had the ridiculous good fortune to like most of the time I’ve been working in my profession. If not always for the quality of the work at hand, at least for the pleasure of working with and interacting with the folks I interact with though out the day.

However, due to my own personality and my own personal tendencies, I fell in to a trap that I trigger every once in a while and that’s the trap of making work the dominant fixture in my life and in my day. And, more than dominant, the thing which I think about and am engaged with to the exclusion of more healthy and fulfilling parts of my life. To be clear: Most/many jobs require this occasionally. That’s okay and reasonable. What’s not okay or reasonable is to do this to the point where the rest of my life suffers and I ultimately become unhappy, burned out and disconnected. That is a thing to be avoided and that’s my responsibility to take the steps to avoid it.

At work, we’ve been working on a couple of very large and critical releases that have been the focus of much of the last year. Those releases are behind us now, mostly, but during the last phases of this last releases, my day came to consist of waking up around 6:15am, putting on my glasses and checking email to see what happened while I was sleeping as my first conscious action. Then, it was in to the shower and getting ready for work followed by driving in to work. Reach work, check email, get on top of email and the issues of the day and work my day. Then a long commute home followed by dinner and wrapping that up by 6:30pm or so. Whatever I chose to do at that time (which did not include, unless I’d done it earlier in the day, exercising because I was pooped), it included checking my phone for email if I wasn’t at my desk in my office at home where I would typically have email up in the background and check that every half hour. Bedtime around 10pm, always checking email before I shut off the electronics, sleep, then wake the next morning to do it all again.

Exercise is easy to (for me) deprioritize during these phases of overwork. The saving grace for me is that my exercise of choice this time of year is playing volleyball outside at lunch time 2-3 times a week which is great exercise and really good for my mood, so if I can, I will fight to make this happen. When the weather turns and makes that impossible, the best I seem to manage is walking for 30 minutes several times a week.

Focusing on eating more healthy is a challenge because I always feel pressed for time, so it’s easier to rationalize eating something that’s quick which, too often, means fast food, eating out or something packaged which is likely not that healthy.

My smartphone is, most of the time, an amazing tool that I cannot imagine being without. But, especially during these periods of stretching myself too thin, it becomes a curse. It’s too bloody easy, just the push of a single app button, to check in with work email and see what’s going on. Then followed, too often, by having to get on the desktop to respond to something or respond from the phone. Updated knowledge is only a click away, followed promptly by the feeling that I need to do something or take care of something because it probably shouldn’t wait until the next day.

When I got on vacation for more than a weekend, I make a commitment to myself (and my very patient wife) that I will disable the connection to work email so it’s at least several clicks away and thus not so easy. This makes it a bit easier to remove myself from that steady stream of input.

What I need to do, and this is one of the things that comes from hitting the big, red reset button, is to make a commitment to stop checking email (at least for a while) once I leave work and until I’m back in to work. That should force my brain to de-couple from the work for a period of time to allow me to recharge. Failure to do that results in me becoming grumpy. Additionally, I realize it makes me so focused on the short term that I can’t do any quality long term thinking, the kind of thinking that can happen when you are not constantly feeling under the gun and over-stimulated.

So, this is my opportunity to make a public commitment to take a pause (which I did this weekend), hit the big, red reset button and make some adjustments.

For me this will be focused on several key areas:

  1. Healthy Eating : I’m going to try and track my food for a while to at least increase my awareness of what I’m eating and when. Along with this, I’m (mostly) dropping soda of any kind and eating after 9pm (dangerous snack time for me).
  2. Get some kind of exercise 5 days a week : I’ll set the bar low, here. At least a 2 mile walk, but more is better.
  3. Unless there’s an emergency, no email between leaving work and arriving at work.
  4. Be mindful of work during work hours and be mindful of how I’m choosing to spend my time in my non-work hours. Don’t let the evening just disappear in a puff of passed time. Some downtime is good, too much is just vegging when I’m not working and that can go too far towards the other extreme. So, time to look at my project list and start doing some of those things.

That’s a good start. I suspect that’s enough to keep me out of trouble for a while.

 

[box type=”shadow”] Note: Images courtesy of https://www.flickr.com/photos/wlodi/ and licensed via Creative Commons
Attribution-NonCommercial-ShareAlike 2.0 Generic (CC BY-NC-SA 2.0). For more info, see http://creativecommons.org/licenses/by-nc-sa/2.0/[/box]

Project: Brisket!

This last weekend I decided to take the plunge and attempt that most manly of pursuits: Making a Brisket. (This for certain values of “manly”)

The results were a mixed bag and I have lots to learn and to try and do better/differently the next time I try this.

I thought it’d be fun to share some of my research, data and results – not the actual brisket, I’m eating that.

Choose Your Meat

This, like most thing surrounding making a brisket, is filled with lots of conflicting data. One thing that was clear is that this was going to be a large piece of meat.

A couple of the best pieces of advice:

  1. The quality of the meat is paramount, so buy the best cut you can afford. And, if you can, get a full brisket, not just the flat or the point. That’s the terms for the flat muscle and the point that make up an entire brisket.
  2. You can find a full brisket (around 15 pounds) vacuum sealed and if you can find a good quality cut, this is a good way to go.

We have Cash and Carry around here, so that was a good thing for this exercise. Still, a nearly 15 pound piece of meat at nearly $4 per pound meant this was going to be a spendy project.

BrisketUncooked
Brisket Before

Trim or Not to Trim?

Simply, this is the decision whether you are going to remove any of the fat that runs (probably) along one side of the brisket. I chose to not trim because there seemed to be decent evidence that the fat would help keep the brisket moist and you can always remove it when you’re done and before serving.

Rub

Most brisket experts I read said a rub of some sort was good and that many of these experts used a simple mix of salt and pepper and that doing anything else was largely a waste.

I opted for a simple rub made of some things I had around the house:

  • 2 tablespoons chili powder
  • 2 tablespoons salt
  • 1 tablespoon garlic powder
  • 1 tablespoon onion powder
  • 1 tablespoon ground black pepper
  • 1 tablespoon sugar
  • 2 teaspoons dry mustard

The rub was added after I brushed the brisket with a light coat of vegetable oil to give it something to stick to.

I applied the rub the night before, put the brisket on a large pan, covered it in plastic wrap and let it sit over night.

Wood Chips

I wanted to smoke the meat, too, but I am using a gas grill. This fact may have led to some of the issues that occurred later. In any case, I bought a small bag of hickory chips and soaked them in water overnight by putting them in a bucket and covering them in water. I put a plate on them and a weight on the plate to keep the chips submerged.

 

Hardwood Chips
Hardwood Chips

Pump It Up!

I wasn’t sure I was going to pump, which means use some sort of injection mechanism to insert some kind of liquid in to the meat. This is all to try and make sure you end up with moist brisket.

In the end, because it was cheap to purchase, I did try this and used beef broth.

This probably led to the most embarrasing part of the experience as I clearly did not know what I was doing because when I attempted to inject an ounce of beef broth in to the brisket the night before, it either expanded like a balloon, only to seep out later or it sprayed out comically from some other place like a water balloon with a leak.

Cooking Temperature

Based on my research, I knew I could let the temperature of my grill float between 225 and 250 degrees and it would likely have very little impact on the end success of the project.

Where Does It Go?

The brisket should not be on direct heat. My grill has three burners running from end to end of the grill. So, I turned on the back burner, put the smoker box on that and planned on the brisket covering the front two burners so it would only have indirect heat.

Texas Crutch

The Stall is one of the things that many of the sources talked about. This is where the temperature of the brisket will stick at 150 degrees for a long period time. I won’t duplicate the content here, but if you’re curious about the explanation, you can read about it more here.

When Is It Done?

There is lots of information out there about the right temp or checking doneness by, literally, “sticking a fork in it”. Testing brisket, one article claimed, is where this saying comes from. The writer was from Texas, so there may have been some hyperbole, I don’t know.

I settled on 203-205 degrees as my goal.

How long will it take?

Well, based on my reading, I was prepared for 12 to 14 hours. Working backwards from a goal of actually eating my brisket for dinner on Sunday, I worked backwards and my math said I needed to get up at 4pm to pull the meat out and start the grill. Then, according to my reading, I would need to add more chips every hour or so. Suddenly my major concern was the sleep I was going to miss. Yawn!

Carving

The brisket is made up of those two parts mentioned earlier: the flat and the point. These two pieces were much more easily identified (for me) after cooking.

Some folks separate the flat and the point and cook them at the same time, but separately as the flat can finish more quickly then the point can take a bit longer. I chose not to do this because I lacked any confidence in my ability to separate them before cooking and I didn’t believe my grill had room for both chunks of meat and still allow the brisket to not be on direct heat.

The right way to carve a brisket involves separating the flat from the point and then cutting the flag perpendicular to the grain of the meat. I forgot this in the end and cut parallel to the grain. It still tasted good, but it was one of several areas where I didn’t execute correctly despite my research.

Barbecue Sauce

Some of the sources I read indicate that “real” brisket doesn’t require any sauce or will use something more akin to a gravy than a sauce, but since we’re not in Texas and it’s my damn brisket, I can do what I want and I like barbecue sauce on my brisket.

I was hoping for something with a bit of kick, but in the end I ended up with something sweet that was close to a sauce you might find in Kansas City.

Here is the (nearly) recipe I used:

Kansas City Barbecue Sauce

By Derrick Riches

This variation of the traditional Kansas City BBQ Sauce is a thick sweet sauce with a touch of heat to give it a little kick. This is a great barbecue sauce on BBQ Ribs.

Prep Time: 10 minutes

Cook Time: 30 minutes

Total Time: 40 minutes

Yield: Makes about 3 cups

Ingredients:

  • 1 1/4 cup ketchup
  • 1 cup water
  • 1/3 cup cider vinegar
  • 1/4 cup dark brown sugar
  • 2 tablespoons molasses
  • 1 tablespoon onion powder
  • 1 tablespoon garlic powder
  • 1 tablespoon black pepper
  • 1 teaspoon celery salt
  • 1 teaspoon allspice
  • 1 teaspoon cayenne

Preparation:

Combine all ingredients in a saucepan over a medium heat. Stir constantly for 5 minutes. Reduce heat to low and simmer for 20 minutes, stirring occasionally. Sauce should be thick. Allow to cool. Store in an airtight container. Refrigerate.

Modifications:

  • Added a quarter cup of honey
  • Added 2 tablespoons of hot sauce

Major Steps

Here are the major events that I knew to expect:

  1. Prep for the night before. This would include:
    1. Make and apply the rub, cover and in the fridge
    2. Make the sauce (see above)
    3. Soak the wood chips
  2. Steps for 4am in the morning
    1. Pull out the brisket to let it start to warm
    2. Start the grill
    3. Put chips in the smoker box for the grill
    4. Set up the thermometer (more on this later)
    5. Brisket on the grill
    6. Put the thermometer for the meat in to the meat, in the point, in the thick of the brisket
    7. Go back to sleep for a while
  3. Next steps
    1. Check the smoker box hourly
    2. Check the temperature of the meat and the grill
    3. Wonder why the chips aren’t smoking
  4. When the meat hits 150 degrees
    1. Take it off the grill and wrap (twice) in heavy duty aluminum foil
    2. Add a bit of apple juice because apparently that can help keep the meat moist as well
    3. Re-insert the temp probe in the point, in the thick of the brisket
  5. Monitor the meat
    1. Keep an eye, at least hourly, on the internal temperature of the brisket
  6. Brisket Reaches Done Temperature
    1. Remove it and wrap it in a couple of towels and place all that in to a cooler. This is known as a “false cambrio” and it’s very effective in maintaining the temperature of the brisket for even several hours, but plan on at least an hour to “rest” the brisket before carving it. This allows the moisture to recirculate throughout the brisket.
  7. Carve and Eat!
    1. When you’ve let the brisket rest for a while (at least an hour), take it out and carve it.

End Results

BrisketDone

BrisketLeftovers

Required Gadgets

One of the key things I needed and made this whole process was a dual probe barbecue thermometer – one for the meat, one for the temperature in the barbecue. The one I chose also had a remote so I could carry it around with me. Additionally, it had alarms for low and high temperature on either probe. I didn’t use those this time.

The one I chose was this one from Amazon for $45. It was easily worth the peace of mind and the ability to know whether I needed to adjust the barbecue temperature or when the meat reached the necessary temperatures.

Barbecue Thermometers

I also purchased a cheap smoker box, which is just a metal box with holes in the top and bottom to hold the hardwood chips (choose your favorite flavor – I used hickory).

Data: Time To Cook

It’s not science if you don’t have data and one of the pieces of data I wanted was the temperature versus time. Data below for posterity and so that I can draw upon it next time.

Here is a link to the Google Table doc with my cook times.

Key Learnings

  1. The Texas Crutch did, in fact, decrease the total cook time though it might have been at the cost of the brisket’s signature “bark” or crust.
  2. My sense of taste could not tell you whether my rub made any real difference.
  3. Like many, many things, we get better at the things we practice.  I suspect my second brisket would be better than my first.  But, even with all the research and prep I did, I still made several mistakes which I hope to avoid the next time.

Things I Did Wrong

  1. I should have taken more pictures
  2. I did not really get a “bark” on the brisket. That’s the hard sort of crust which looks almost like it was burned on the outside. This even after turning it hourly for nearly five hours on indirect heat of 235 degrees. Not sure what I did wrong here.
  3. The wood chips didn’t really ever smoke. No clue what I did wrong here, either. One person I talked to said that it’s pretty impossible to get the bark or smoke in a gas grill and recommended a Traeger smoker to address both.
  4. I cut my brisket parallel to the grain and not perpendicular. So, my pieces were long slices/strands of meat. Not sure what difference this would make, but next time I’ll make sure and do this correctly.
  5. I’m not sure this was wrong, but I put the probe in the point (the thickest part of the brisket) which means that by the time it reached 205 degrees, there was a chance the flat part was overcooked. It may have been a bit drier, but was still good. Perhaps I should have pulled it when the flat was done then later removed the point and finished cooking it. I don’t know.

Things That Went Well

  1. The dual probe thermometer was fantastic. I could check temperature from wherever I was in the house with confidence.
  2. The brisket was tasty and now there’s none left – we shared it with family. So, that’s good.
  3. The barbecue sauce was pretty good but I’d like something with a bit more kick.

Conclusion

This was a fun project but also very time intensive. I don’t know of a better way to get good brisket, but it certainly would have been cheaper to just go buy it at our favorite barbecue joint and less time intensive, but that wouldn’t have been as much fun.

When you look at the cost of the gadgets, supplies and brisket itself – taking aside entirely the cost of my time, it was the most expensive dinner we’ve had at home in a very long time. But, I’ll get a good return on the gadgets.

Of course, if I look in to a Traeger smoker, I could really

make an expensive brisket!

I’d recommend trying this, to anyone who is interested, at least once. Getting to eat something you spend hours working on is always rewarding.

Links

Here are a few links to sites I accessed in my research and are well worth checking out, especially the first one which is a pretty definitive course on brisket:

Fears

Before I share mine, pause for a moment and answer for yourself this question: What are you afraid of? Maybe it’s a reasoned fear, maybe it’s an irrational fear. Maybe it’s something you struggle with, maybe it’s something that just is part of who you are and your fine with that. But, what are you afraid of?

My biggest irrational fear is spiders. I can’t stand spiders. And this is at a deep, dark and subconscious level which does not respond well to any kind of rational discussion, so don’t even try.

In fact, my rational brain can discuss quite well all the reasons why spiders are great for humans, eating bad insects, cleaning up as predators of the insect kingdom. I have friends who will carefully take a spider, brush it on to a piece of paper and escort it outdoors. I have even taken, on very rare occasions, a spider at the end of a piece of silk outside rather than kill it. So, if there is sufficient warning and opportunity to think, be rational, be evolved, I may well behave in a way that seems reasonable, even caring towards our eight-legged friends.

However. Should one of those eight-legged monsters have the misfortune to surprise me, or put a web up where my tall head will catch in it while all the shorter folks walk below, well, that bug is going to die. And it’s not the rational, more recently evolved part of my brain that will be put on trial. It’s that deep, dark lizard brain that reacts quickly, from fear, without thought, that will kill that sucker dead.

I can tolerate small spiders, again, if they don’t surprise me. Or Daddy Longlegs, because I think I believe they don’t bite. But, should any of those horrible predator looking critters that appear to be designed for speed and pure killing abilities cross my path or take a run at me or simply surprise me – well, they will die. Assuming they’re not so ridiculously fast that they manage to get away, which may happen. In which case I may have to burn down the building or just move.

I recall a time back in High School biology and some kid had a pet tarantula and we had the opportunity to hold it. Or, rather, he would put it on our hand and let it climb on us a bit. I wanted to do it at least in part to try and deal with my fear. I recall when the big, hairy body was placed on my palm. It was heavy and the ends of the legs were sharp. We’d been told to not move and certainly to not move quickly so as to not risk hurting the spider.

Clearly the beast sensed in me the potential for prey because it decided to screw with me. It started on my palm and promptly decided to start walking up my forearm towards my elbow. As this started to happen I told the kid who owned this satanic beast to get it off me. Now. He just laughed and said it’d be fine. But as it approached my elbow more closely – because clearly it could smell blood close to the surface of my pale, thin skin – I told him it again “Get. It. Off. Me”. And, as soon as that thing was removed, laughing I’m sure, in it’s spidery way, I got a giant case of the heebie jeebies, whipping my arm around and wiping off all the spider cooties.

Other than that, I’m fine with most insects like bees or wasps. I have a healthy respect for them but I’m not afraid of swiping them away, knocking them off or getting stung. I’ve been stung a few times and while it’s not fun, it doesn’t seem to engender the same kind of reaction.

Ditto snakes. No real fear there, though I suspect if it was me face-to-face with something I thought was poisonous like a rattlesnake, I suspect I’d be retreating at a healthy clip. But that just strikes me as good, common sense.

When I was younger and I first got glasses, I was terrified of heights. Not for the heights, per se, but because I was worried about my glasses falling off and losing them. In fact, I did lose them once not long after getting them when I jumped off the end of a dock at a lake and forgot I still had them on. There was much snorkeling and looking for them – ultimately successful – but making me feel pretty badly about putting everyone out.

I used to be both fearful and fascinated at skydiving. The notion of the chute not opening and me plummeting to my death was pretty vivid. So, I went skydiving on my 30th birthday to deal with that fear. And promptly put that in the “don’t need to do that again” bucket, but I’m glad I did it.

Public speaking or speaking in front of strangers is a fear I struggle with, but it’s one I feel I at least have a handle on. I don’t think I’ll ever enjoy it and it probably never be easy, but it definitely fits in the category of “Things that we get better at as we practice”.

For me, it was always about being embarrassed or seen doing something poorly in front of people. That fear of looking stupid kept me from asking girls out or getting up in front of groups when I was in middle and high school. Only after taking some speech classes, taking debate and getting experience under my belt did I really realize that it probably wouldn’t kill me. Probably.

That’s most of the fears that really affect me in any substantive ways.

I have all the navel-gazing fears that most people struggle with. I fear that I’m not a good parent or a good husband and partner. I fear dying horribly or dying alone. I fear being forgotten. I fear not leaving any kind of substantive mark on the world. Those are the kinds of things that will echo through my mind if I’m left listening to my own thoughts for too long. But, the good news for me, at least, is that these kinds of things come and go pretty quickly and I don’t typically get stuck on them for too long. I’m thankful for that.

Fear obviously has an important role in survival, especially to our ancestors. They had rational reasons to fear most of what was out there in the dark because most of it would as happily eat my ancestors as anything else. But most of those fears really don’t serve any kind of purpose any more. There’s no good reason for me to fear spiders, but it’s also not something that substantively affects my life in a negative way. I mean, sure, I look stupid if I stumble in to an armed web and flail about, convinced that I’m about to be taken down by a host of eight-legged assassins, but that’s the worst of it. I guess the measure of whether a fear is something that needs to be dealt with is whether it’s impacting your quality of life. I learned to become more comfortable talking to girls. I learned to be more comfortable speaking in groups. I learned to be able to walk in to a room full of strangers and at least survive the experience. The spider thing may be with me for my entire life, but I can live with that, I suppose.

Happy Birthday To My Son

Twenty-five years ago today, my son was born. I’m going to take this opportunity with him a happy birthday on a quarter century of life lived and wish him a fabulous year ahead as he has a great start on the next twenty-five years.

My son came out weighing about nine and a half pounds. There’s a joke in my family (okay, it’s my joke, but it still applies) and that is the observation that if you kid comes out under nine pounds, it’s because you weren’t trying very hard!

In fact, he was a bit post-term and needed to be induced to come out. I think he was just comfortable and didn’t see a lot of upside in to exiting his comfy pad.

After many, many hours of labor, the determination was made that while he had started down the birth canal, he big ‘ol head kind of got wedged. All brains, that boy. As a result, he had to exit stage right via Caesarian.

From the start he was an easy going baby. Always happy to cuddle, eating well, napping nicely and sleeping through the night within the first six months. In fact, his room had a window to a busy arterial so there was a fair bit of traffic including police cars and fire engines. We were very concerned that the noise would wake the boy up but that was never really a problem. He slept through the occasional cacophony just fine. This would serve him well when he became a teenager and had the ability to sleep for a dozen hours without interruption. It did not serve him well when it came to getting up early in the morning to get to school on time!

I recall when he first started reading by himself. Well, actually, that came a bit later. When we thought he first started reading, we were buying him Goosebumps books. These were kid-friendly and slightly scary. He would go off and read these books and tell us how much he liked them. I started to get a bit suspicious because when I would ask him about them, the details seemed a bit shaky. So, before handing over one of the books to him, I read it myself, then handed it over to him. Sure enough, within a few days he came back and was giving us an enthusiastic review of the book. Unfortunately, it wasn’t actually the story in the book. When I called him on it, he admitted that he couldn’t actually really read it, but really liked getting the books. I suspect we probably set up an expectation with him and he didn’t want to let us down. After all that came out, we worked a bit more directly with him on his reading and in no time he actually was reading the books at a good clip.

The “Harry Potter” books started coming out when he was 11 and that was the same age that Harry was in the first book. He absolutely consumed that entire series, as I did along with him. I recall that for at least one of the books, I had to buy two copies because I didn’t want to wait the two or three weeks it would take him to get through before I could read it!

He and I also used to play video games together. Originally he would sit with me and watch me play DOOM and other first person games. His mom was worried because the graphics were, for the time, fairly bloody and graphic. And they were, but it did not seem to be a problem. Later, he and I would play together or, more likely, competitively. This was fun for me up through Warcraft 2. When Starcraft came out, though, something changed. I knew that I was getting older but what I didn’t understand was how much better he had become! In no time at all my son was consistently handing my ass to me without mercy. This was the first, but certainly not the last time, that my son would best me in something that I used to think I was good at. And, yeah, he was probably 11. Unsurprisingly, playing Starcraft with my son became far, far less fun…

When my son was 13 he was diagnosed with an osteosarcoma in his tibia near the knee. Originally presenting as simply a sore leg, not at all abnormal for a boy whose legs were growing quickly, it was quickly determined to be a tumor and an aggressive one. Because of the proximity to the growth plate, the doctors had to move us quickly because if it got out to the growth plate, the odds were very high that the cancer would get out and in to other parts of his body. As a result, we had to decide quickly the path forward and the best option was still a very hard one: he needed to have his lower leg removed.

Thinking back on this time, I can say it was definitely one of the hardest times of my life and without any hesitation I can say if there’d been any way to take on that tumor myself and save him what he had in front of him, I would have.

What was amazing to me was how well he seemed to take the news, how well he was able to participate in the discussion about options and tradeoffs. He was clear: “What’s the right choice for best odds of getting through this? Let’s do that. Let’s go!” And, very quickly, almost too quickly, it was done and my son was in a hospital bed short the lower portion of one leg.

The next few years were a blur of time in the hospital, brief recovery, lots and lots of rounds of chemotherapy, physical therapy, far too many trips to the hospital and through it all my son being clear that his goal was to get through this to the next thing. And, in less than two years, he was back up on his feet, albeit one of those being a prosthetic which he decorated with stickers or cool covers. Looking back I’m amazed at what a trooper he was. I wish I’d thought at the time that he was almost too okay with things. I suspect, in retrospect, that we should have made sure he was getting counseling to help him deal with all the changes and how his life had suddenly taken a sharp turn to a different path. I think I made a mistake to take his apparent aplomb at face value. I think that was wishful thinking on my part. It’s not the only time I messed up as a parent, but it’s still one that sticks with me.

It’s hard to overestimate the impact having cancer had on my son. You never get to see the other half of “what would he be like if that hadn’t happened”. Funnily enough, that was one characteristic I saw from my son that I think I can work on more. He became very good at making the decision and moving forward, not apparently second guessing himself. That’s something I know I could work on in my own life.

We drifted apart some in his teen years, as often happens, I think, while he tried to work out who he was going to be separate from his parents. I’ve been actively parenting four kids now through the teen years and in all cases we would say “they went to the Dark Side” but I’m also happy to say he came out the other side and I like the young man that emerged from all of that.

My son is smart and funny. He’s sweet and he has good friends he’s close with and has stuck with even as they grow up and grow apart. At twenty five, the boy can grow a beard that would make a young Santa Claus jealous. Certainly I am and certainly those genes didn’t come from my side of the family.

I like the young man he is continuing to become. I see parts of me, I see parts of his mother and I see a great deal that is wholly just who he is. I can tell that parts of how I tried to parent him made their way in and have helped inform who he is as an adult and I can see that there is a large part that is a result of him making choices about who he will be, what his priorities are and what his goals for the future are.

I realize more now than ever that you’re never really done parenting. You’re never done worrying that your kids will be okay and hopefully lead happy and satisfying lives. But, as much as I can be, I’m confident he’s in a good place, he’s on a good path and he’s going to be okay.

Happy Birthday, my son. I love you and I’m proud of you and I’m looking forward to seeing what the next quarter century has in store for you!