Body and Mind Hacking (An experience with physical therapy and conferences.)

ng-conf 2015 logoSo recently I went to the excellent ng-conf in Salt Lake City, Utah. Going to conferences has always been something that I have enjoyed to one degree or another, and ng-conf was no different. The people have a passion for what they do, and how they do it. Except for one person, which I will relate later.

Going to ng-conf opened my eyes, again, as to why I am a developer and why I love what I do. Sometimes what is needed to take a look at yourself and your condition is to do something different for a while, and the conference did that for me. It allowed me to think about the work I am doing and see the architecture I develop through the eyes of the presenters and the people I met at the conference. This fresh perspective is something I will take back with me to my team, and I sincerely hope that I can give them at least a fraction of the energy and insight I gained from going.

Meeting other developers and talking with them in a positive manner is a great way to learn new things, introspect the things you are doing, and to come up with better solutions for things that have been pain points in the past. Doing this is similar to my experiences with physical therapy that I have had recently. (See that segue there? As smooth and soft as a gravel driveway.)

I’ve had back pain for years, many people do. You wouldn’t see commercials about it, billboards, internet ads, and all manner of snake oil offering ways to cure it if it wasn’t a big problem today (at least in the United States). I’ve lived with it, done some exercises, gone to a gym and hired a physical trainer for a while to see if I could solve it. Inevitably, it comes back, and recently the pain has been one that has been more localized than what I was used to, at times preventing me from standing up out of a chair or picking up things from the floor. Sounds bad, right? You would think I was eighty, but I’m not, not for a while yet anyway.

The situation was intollerable, and I want it gone. (I’m not out of complete pain yet, but I am working on it.) So I did the sensible thing, I talked with my doctor. I had talked with my doctor before about the pain, so he knew it was a recurring issue, and he listened as I described the slightly newer kind of pain I was in. He gave me some possible areas the pain could be coming from, and some of the options I had in treatment. I love my doctor, because he’s both a person, and a knowledgeable medical practitioner, and has intelligent and reasonable discussions with me about my care.

So after talking it over with him, we both knew I didn’t want something more invasive like surgery, or even imaging, which I had done a few years back. Physical therapy sounded the best, and the main reason I chose it is the same reason I enjoy going to conferences. It gives me perspective on myself, shows me things that are part of me yet I am not aware of myself, the invisible things that you don’t see without someone else holding up a mirror and showing them to you.

I wanted physical therapy because I wanted to know what was wrong, but more importantly, have the knowledge to how I could continue to improve and prevent a relapse like had happened before. To get a set of exercises and life changes that could make my pain go away. (My daughter likes to jump up and hug me, which I love, but at the wrong time can murder my back.)

You remember that guy I mentioned earlier? The one that wasn’t passionate about being at ng-conf? I said I would talk about him later, now is later. During one of the first parts of the first day of the conference, I sat down in the audience to listen to the talks. I was enjoying them, listening to them with an open mind and thinking of how at least the concepts of the code being talked about could help my own work, even if the library or code couldn’t be used directly. Inevitably, the man would scoff, or shake his head, or utter a ‘yeah right’ as a point would come up or some new innovation was presented.

It was distracting, but it was even more concerning for me. After all, this man had come to this conference, I assume willingly, and was here to participate right? I have seen developers, people, like him before. I can only assume what his life was like up until I met him, but to me it seemed he was usually under pressure, dealt with timelines, unreasonable expectations, or broken promises. I felt sorry for him, and I also realized, that I have been like him at points in my past. Points I didn’t realize at the time that I had the power within me to change.

Coming back to my physical therapy. Up until I spoke with my doctor, I dealt with my pain. I said to myself that going to the doctor was too much trouble, hassle, he couldn’t do any thing for me, all manner of fleeting excuses that was me telling myself that I could just live with it and be lazy by not having to leave the house on an errand. I was like that man, complaining about the pain, but not actually doing anything about it.

Eventually, the incidents of pain became too much, and I realized that treating the problem now was going to be a lot easier than treating it when I was eighty. Not to mention that I would have many years of pain if I waited that long to treat it. I want my kids to be able to jump on me, and to be a superhero for them. It was that decision that changed me from the man complaining about things, into someone who was taking control over their own body.

I love hacking. I’m a programmer, woodworker, writer, electronics enthusiast, you name it. If it has a puzzle involved, I am all for diving in to solve it.

I decided, and this is important, I had the presence of mind to decide to look at my physical therapy as a puzzle. My back pain is something that I can solve. I need help, information, on how to hack my back, and so I looked for good resources, my doctor, and my physical therapist. That mindset has made a world of difference. I am hacking my back, and I’m getting results.

Where am I going with this rambling tale? I’m sure that I haven’t been entirely clear on my point, in fact, there are several points inside my narrative, so let me see if I can tease them out for you.

  • If something pains you, do something about it. Gather information you need, and solve that puzzle.
  • Be self-aware. If you don’t look at yourself, you won’t see places you can make change, only feel the pain of the things that are wrong.
  • Get a mirror to help you see. If something is paining you, code, your body, your relationships, anything, then find something or someone to help you get a perspective on it.
  • We only live the one life we have, so why suffer, in any way, to just get through it. Make it the best life you can live. Will you fail at things? Sure. There’s information there, learn from it, and then use that to go at it again.
  • Be critical, but not closed minded. Look at new things with a critical eye and you will always find some grain of knowledge that you can tease out of it that can help you on your journey.

This was written just after the closing of ng-conf 2015. I’m riding a pretty good high of energy and excitement from the things that I learned over the last two days. I’ve also got a head swimming with thoughts and ideas, which accounts for some of the excited ramble above. I hope to organize my thoughts more over the next few days, but I also hope not to lose any of the excitement, the passion, that I have absorbed.

If I do, then you can expect more articles from me here, and I will make the effort to have them be a more focused version of my enthusiasm.

On a positive note…

Reviewing the last several posts, it would appear that for a few months that I have been in the doldrums of despair. While that is partly true, it is not where I have spent the majority of my time.

At work, I’ve been working on several projects dealing with online video, digital publishing, and helping out a team re-architecting several systems within a client’s structure. In other words, work has me busy and it’s been the good kind of interesting.

If you’ve been paying attention to the weather in the mid-western United States, then you can guess that I have been mostly indoors during the record cold and snows this year. It’s put my woodworking, and anything in the garage on hold, almost everything.

Earlier I had a picture of a cat resting in the partly assembled shelves of a bookcase I build last year. That cat, Angel, is kind of the neighborhood cat, and since her original owners didn’t take her in anymore, we’ve had her wintering in the garage. She’s quite happy there, but a little stir crazy like all of us since she can’t go outside. She’s even gotten into the house a few times, and while our dog likes her, the cats in the house, one of which is a daughter of her’s, definitely do not like sharing the house with the newcomer.

I’ve been working on a talk about Grunt, a task running utility that I use at work to reduce the redundant things I do (building, running tests on code, and making deployments). I’ve applied to give a talk at Chicago Code Camp in a few months, and plan to give the talk before then to the people at work.

I was planning on going to the Game Developers Conference (GDC) this year, but that doesn’t seem to be in the cards given the current focus of projects at work. Though I should be seeing Jim Van Verth next month, and he will be speaking there. He is wicked smart, and now works at Google. Sometimes I hope by being in the room with him that I get better at my own math skills.

So until it warms up outside, I plan on continuing the inside hobbies. Oh, I’ve also played far to many games while stuck inside this winter, finishing Batman Arkham Asylum, Arkham City, Tomb Raider, and playing many levels of Orcs Must Die 2 with Erin (my wife). When it warms up, the workshop will be aired out, and I can continue on the secret project. Until then, I am endeavoring to not distract myself from writing and editing the writing I have done. It’s a losing battle right now, but I hope for at least a Pyrrhic victory over my procrastination.

Erin hasn’t seen the Avengers movie yet, and I am making sure that she is fixing that gap in her knowledge now. So until next time, stay warm.

Life, it’s never dull.

[Warning: This is an update post, and may ramble a bit. Carry on!]

Things at the tail end of this year have certainly been interesting. Interesting times indeed, in all of the senses of the word.

You’ve read hear about some of the things that have gone on, and if you haven’t I invite you to take a look. I can wait.

Back? Good.

In addition to family health issues, building a deck, participating in HoNoToGroABeMo, and the normal things like work, raising kids, etc. I’ve been pretty busy. I’ve been working on my Secret Project, though much less of that lately. I’ve built a 3D printer, the PrintrBot Simple, and it’s printing nicely now. I’ve also been researching Machine Learning and Adaptive Bitrate Streaming, trying to see how the former can work with and for the latter.

Over this last week, things continued to be interesting.

On Monday, I was told that my new MacBook Pro had arrived and on Tuesday I had it in my hot little hands. I’ve been working with it and my Windows desktop off and on since then. I will have a post soon about the reasons why I switched to a Mac from Windows, and how my switch has gone so far. A teaser: It’s going pretty well, with the normal bumps of getting used to the different places for the things I normally use.

Tuesday night, I found a fairly heavy package sitting on the kitchen counter when I got home. I have been expecting my Kickstarter order of my FATE Core and FATE Accelerated books (along with a few others) to come in soon, but this package was far too heavy and large for a few books. What could it be?

To my great surprise, I found that the 3D printer parts for the Eventorbot had arrived! It had been over a year since I backed that Kickstarter, and given that the creator had disappeared for nearly three months, I had resigned myself to never seeing it. The creator had a bout of depression, and in my opinion, was overwhelmed to an extent that he stopped communicating. Which unfortunately made the problem worse.

So now I have parts for a second printer. So what will I do with it?

Well, I’ve written a book on 3D printing, I enjoy learning the technology, so I’m diving into it deeper by putting out a 3D printing show. My friend and former co-producer on The Game Master Show, will be joining me as I delve into the current events of the 3D printing industry, and tackle subjects both beginners and experts of the subjects can learn from.

Is that all? Nope!

Tuesday evening, Erin called me with news about her father. He’s doing much better, still not great, but he’s sitting up, eating, and has a positive attitude. The ICU nurse let Erin sneak the girls in to visit, and he really perked up when he saw them, vowing to get better and get out of the hospital so that he could be with them more.

So after a very interesting several months, more good things than bad are starting to happen. I’d like to take credit for planning it, for navigating my way through the storm, but I can’t. I tried my best to make my own luck, but it wasn’t all me. It was a combination of people, of supporters, of genuine luck (that’s what you call it when you can’t pin down the butterfly that caused the events).

So the light is shining. The deck is nearly done. My beard does itch (go donate!). It’s a good time right now, just in time for Thanksgiving and Christmas, and the start of new year just after.

Life. It’s never dull unless you let it be.

3D Printing: The Stepper Conundrum

Today’s conundrum from my 3D printer has vexed me for three days now.

So, an update since the last one.

Last time, I estimated I was at 60% complete with the build and needed to finish that, install the firmware, get the filament, and begin printing. Well… that was almost what I had to do.

I’ve completed the physical build, as much as I can but more on that later. I’ve installed the firmware and tested that it works with the software on my computer. I’ve even attempted to do a test print to start calibrating the settings. Oh, and I got the filament (after ordering the wrong type of plastic the first time).

Filament, just realized that some of you might not know what that is. Filament for 3D printers is basically thread made of plastic. Really thick thread, but it comes on a spool and is fed into the 3D printer like thread into a sewing machine. It comes in two main sizes 3 mm and 1.75 mm. I am using the 1.75 mm, since it has been found to work better than the 3 mm filament. which sometimes overwhelms the heater that melts the plastic.

So anyway, that’s where the problems started.

The trouble presented itself as an inability to push the plastic out to be printed. It comes out like frosting from a cake funnel, or like toothpaste from a tube, and is supposed to be layered up, one on top of the other, until you have a completed object.

At least that’s the idea.

You see, there’s a motor that pushes the filament into the extruder (that’s the toothpaste tube). The motor is a special kind, called a stepper motor. Named that because it can take individual steps of rotation, unlike most DC motors that just spin. Because it can do this, it can push just a little, or a lot, of plastic through the hot end of the extruder in measured amounts.

Mine however, was not doing that.

What it was doing was pushing a little of plastic out, but then reversing direction and pulling the filament back, then pushing it back in or pulling it out more, depending on fate and whimsy. It wasn’t so whimsical for me though. The melted plastic cools very fast, but ends up leaving little spiderweb threads of plastic as it comes out. I went through a fair amount of plastic in the last three days troubleshooting things.

Something said at work today, along with thinking about all of the settings are available finally led me to the solution.

I had tried everything I could think of over the last few days. Switching stepper motors, switching driver circuits, changing the amount of plastic to be extruded. All of those things done one at a time to see the result of the change, and making note of how it improved or made worse the problem. At work yesterday though, one of my co-workers was wrestling with an issue and it was suggested that while he was going through the same process as I was with the 3D printer (it’s a common troubleshooting process for code), that perhaps he had more than just one problem to fix.

This was no surprise to me, having just come off another project where I was tracking down a bug that led to several other bugs being uncovered and needing fixing before I could fix what the client actually wanted fixed. It wasn’t until I got home and looked through the firmware that I realized there was a setting I missed.

Going through the calculations, I realized that the stepping code wasn’t set correctly for my printer. I adjusted that, but still had a problem. It was a bit better, but still would reverse seemingly at random. I switched stepper drivers again, and voila! a working stepper motor.

So long story short, I have a solution for my problem, and as soon as the new stepper driver arrives, I will have a working printer.

I’m keeping the bad driver board for now, to learn from and see if I can eventually fix it. Right now though, with the deck, the secret project, the 3D printer, NaNoWriMo, and HoNoToGroABeMo coming up, I have enough on my plate to last through November!

If any of you have any questions or suggestions about 3D printing, or stepper motors and their drivers specifically, feel free to drop me a line in the comments.