Posts

Showing posts from May, 2011

Get Back On Track

There are hard times, and things can pile up. Don't wallow. Don't spend time trying to feel better.  Try to get back on track. Things can get you down, so you need to borrow energy from others.  Try user groups, pairing, friends, fun programming exercises.  Quit thinking you should be able to do new things all alone.  Getting up to speed is always dicey, and best done with someone who is already up to speed.  If problems are short-term, like a flooded basement, broken lawnmower, minor health troubles, a child's academic crisis,  take time for them so you can get back on track sooner. Get it over with. If the problem is long-term, start building up the emotional muscle to deal with it, which means getting on with life despite the long-term trouble and trying to cope with whatever "long-term trouble" is going to mean. When you're not feeling particularly confident (ie depressed) don't get caught up in large meta-issues. Keep your focus on smaller thing...

GOing to Software Craftsmanship McHenry County

I was a little overwhelmed with how slowly I'm absorbing information, especially while dealing with household issues (like gas fumes from garage and flooding in basement) on top of trying to do something worthwhile (ANYthing) at work. It's just the way life comes at you sometimes. My escape for the night was running out to a meeting of Software Craftsmenship McHenry County (SCMC). This was my second meeting ever.  I mis-timed the trip and ended up a few minutes behind the start of Steven Degutis' slide show. Pizza and pop were in good supply though, so I settled in and enjoyed a presentation on the language Go. Go is a strange little language, but a lot of fun. We had a quick presentation, thankfully mostly consisting of code examples, and then were given time to dive in.  Even though I'd been kind of blue and a little angry all day, I was soon laughing and having a great time while we tried to find ways to clutter a perfectly simple little problem's solution w...

Chicago Code Camp 2011

I spent the day at Chicago Code Camp .  It's a good thing because it's a pretty pure conference for programmers. It's all run by volunteers, all free, all in one day, all short talks (1 hour). CLC had good wifi, plenty of space. Actually, one of the problems we had was finding out where the registration desk and refreshments were "hidden" in the huge Technology Building.  I came in a different door than organizers expected, as did dozens of us who were found wandering the halls.  We like calling that the "mandatory fitness segment." One of the things that is particularly good is that you can quickly guage where you stand with the community, what people want to hear about, and what people want to talk about. The first presentation I attended was on refactoring javascript, and programmers were rapt. They wanted to know about testing and test frameworks, how to do the refactoring steps, and how to incorporate the tests in in CI. The introductory topic...

Agile Coaching Stories

This is your turn to brag, complain, and post observations. If you were on an agile transition, it is likely that your company hired a coach.  The coach may have been awesome, may have been horrible, and may even have been me.   I'm interested in your stories. Were you pleased? Disappointed? Did you learn things you didn't even know you needed to learn? What was the long-term impact on the coach your team, your skillset, or your company?    

Adhesion Example

A while back, Glenn Vanderburg wrote an article about software cohesion v. software adhesion . Today I got a great example of adhesion. We are starting our second year in the house. It is a quirky house and I know it was managed by people who were self-reliant, so there are always some odd surprises here and there. It kind of reminds me of a legacy code base, because the product (house) is pretty good, and mostly meets our needs and many of our desires.  We got it because we liked it and because it fit our price range, and it helps us with other goals (close to train station, 15 minutes from church, nearer friends, nearer my son's school, etc). Today I needed to change a bulb in the upstairs shower for the first time.  I was stymied at first, because the cover didn't have any visible way to remove it.  The glass cover didn't have a catch, didn't screw off, didn't have a release detent that I could twist to release, nothing.  I finally decided that the outer plas...

Organizing Stepwise Considered Harmful

There are different ways to organize repeating code. One is step-wise, in which near-identical steps are stacked together: button1 = QPushButton ( 'Button 1' ) button2 = QPushButton ( 'Button 2' ) button1 . clicked . connect ( lambda : self . on_button ( 1 )) button2 . clicked . connect ( lambda : self . on_button ( 2 )) layout . addWidget ( button1 ) layout . addWidget ( button2 ) The other is subject-wise where the code for button1 is separated from the code for button2: button1 = QPushButton ( 'Button 1' ) button1 . clicked . connect ( lambda : self . on_button ( 1 )) layout . addWidget ( button1 ) button2 = QPushButton ( 'Button 2' ) button2 . clicked . connect ( lambda : self . on_button ( 2 )) layout . addWidget ( button2 ) The step-wise version makes the code repetition more obvious, but the novice code-cleaner is likely to extract constants to variables and leave it alone.  In the second case (subject-wise) the code-cle...

Why Not?

I have officially declared 2011 the year of "Why not?" I don't mean "why not" in the sense of doing anything possible without thinking about it. I'm actually thinking it is a good year to ask why we can't do things, or why we won't do things, because it is interesting to understand the forces behind it. Take personal development. Who among us has done all they planned to do regarding new tech, new languages, projects to start, products to build in the past year? Who would not have benefitted from reading a book, doing some kata, learning a new language, or writing something new? And yet we do not. Let's refuse to commit the Fundamental Attribution Error here, and not say "because they don't care" or "because they're lazy."  A ton of information is available about improving a person's ability to program, or the number of platforms and tools they can program with, and yet most people don't reach beyond the ...