Saturday, April 26, 2008

First Toastmasters Speech

I presented my first speech at Toastmasters this past week. It's the icebreaker, and the topic should be a familiar one. The handbook suggests a speech about you. It helps club members know you better, and makes preparation easy.

I wrote my speech out - once, twice, three times. I practiced it in front of a mirror at home, timing myself to get an idea about the pace. I presented it in the car on the way into work. I felt ready on Tuesday.

I've always liked public speaking. I got over my fear early. My high school required two years of public speaking, so I had to take classes in my freshman and junior years. Both were taught by a rough and tumble man who was an assistant coach on the football team. He was a terrific speaker who knew how to prepare us well, but he wasn't above mixing it up with students who were unruly.

I had no problems in my freshman year. That was a time of "tracking", so I was in the highest track with a lot of students who were similarly serious minded. However, there was a scheduling conflict in my junior year, so the only section I could get was a class loaded with football players who were anxious for a shot at their coach. I learned to have no fear of the crowd there. I got to the point where I'd prepare on the way to the podium. My measure of success was how well I quieted the class. I began to think of myself as a pretty good speaker.

During my working career I had a few opportunities to speak. I had to present a paper to a large audience at Worcester Polytechnic Institute. The room was full when I explained my doctoral dissertation at a company conference. But I didn't get much practice or additional instruction. One day my boss decided to send me to a week-long class on public speaking. I was miffed when I heard it. Me? I don't need any help. I'm already a master! But I went anyway, and I was glad that I did. We were filmed during our presentations. I found it painful to see and hear myself. I learned a few good things from that class. The most important lesson was that I still had a very long way to go to be a good speaker.

All this went through my mind as I strode to the podium on Tuesday. I took a deep breath before starting. I could feel my voice shaking when I began to speak, but I remained calm and got into the rhythm of it. I had a problem with timing. The speech was supposed to be 4-6 minutes long. The red flag went up before I was ready to wrap things up. I didn't prepare enough; I'll have to spend more time on my next effort.

The club had an invited speaker join us: Douglas C. Comstock. He won the speech and tall tales contests at a recent regional competition, and he was gracious enough to come in and give his prize winning speech to us. I was knocked out by his skill. This is a man who knows how to imagine, prepare, and present a topic. He even had an encore: he had prepared a second speech for possible presentation in the next round, and he asked us to give him feedback on it. It was an emotional talk about the death of a beloved brother-in-law that had me choking up as I listened.

I was amazed by the feedback that the club gave. Even someone as talented as Doug Comstock was soliciting and receiving excellent comments. The suggestions were not fan boy fawning, either. Praise and encouragement were mixed in with points that were objective and pointed.

I got some great feedback from my reviewer. I have a very long way to go to become Doug Comstock. But I'm already thinking about a second speech. I sent an e-mail to the club president to ask how frequently people make speeches. Would I be hogging the podium if I gave four speeches this year? He said I should go for it. I'm going to start writing that second speech soon. I'd love to get 4-6 under my belt this year.

I'd like to ask Doug some questions. How often does he speak? Does he do this for a living or a hobby? What is the inspiration for his speeches? How does he prepare? He provided an e-mail address. Perhaps I'll send those questions along and see how he responds.

Saturday, April 19, 2008

A Pain In The Neck

I love to swim. It's been my primary form of exercise for my entire adult life. However, I learned late. I was terrified of being in water over my head when I was a kid. I was skinny, and the water always seemed too cold. I missed out on proper coaching, training, and competing.

After my junior year in college, at the tender age of 21, I was dumped by the woman I was seeing during the school year. I was home for the summer at my parents' house with little to do except go to work every day. I had dedicated my life to playing basketball during my teen years, but the hours of practice couldn't make up for the lack of height, hops, and skill. I would go running every night after work, but I noticed that my ankles and knees would hurt after long runs. I didn't think it would be a good idea to be running every day when I was old, like thirty. So I cast about for an exercise alternative that would be easier on my poor joints.

I decided to learn how to swim. The instructors at the YWCA were patient and did their best. I continued to work on being comfortable with going up and down doing freestyle, but my poor form necessitated a breathless stop at the end of each length where I'd hang onto the gutter for dear life and pant until the burning stopped in my lungs.

After graduation, I found a job and an apartment complex that had an indoor pool. It was a bathtub, not even 25 yards long, but it gave me the chance to practice my awful freestyle every day. I had a conversation about my difficulties with a friend who said "If you can do ten laps straight without stopping you should be able to do a mile." I took that advice to heart. I went home that night and tried it. He was right! I was hooked.

Somehow I've managed to work swimming into my daily routine. I'd put in my dutiful mile of freestyle every day at lunch. I learned how to do flip turns. I even learned how to do butterfly after I finished grad school. I started swimming with a Masters group eight years ago. Anyone who has been a competitive swimmer is better than I am. Winning high school times that I see in the newspaper are half mine in every distance and every stroke. I'm still glad to be in the water.

Fast forward to my 50th birthday. I'm in the midst of my best swimming year ever. I'm swimming before work in the morning and with my Masters buddies twice a week. The yards are piling up. I feel great! I tell myself that swimming is the best exercise there is, that I don't need anything else. I don't stretch; I don't lift weights; I don't cross-train. There's only swimming, and it's kept me fit for my entire adult life.

I woke up on 4-Mar-2007 with a stabbing, blinding pain in my neck. I iced it and took ibuprofen, but the pain only got worse. I called my doctor, who gave me some strong pain medication and sent me over to a chiropractor. The chiropractor recommended traction twice a day with an over the door traction device. But the pain progressed to the point where I couldn't bend over to put on socks. I had to stay home from work for two days, lying in bed.

Finally I had an x-ray and an MRI done. When my doctor sent me over for the MRI, he said that I should try to get an appointment with a spinal specialist now, because it would take a month for him to squeeze me in. He called me when the MRI result came back and said I had an appointment with the specialist the next day. The disk between my C6 and C7 vertebrae was bulging into my spinal cord.

I was worried when I heard that. It must have been serious if they had to rush me in so quickly. Could it be reversed? Could I end up paralyzed or permanently disabled in some way? Would I ever swim again?

The spinal specialist decided to take the conservative route. He didn't want to do surgery or cortisone shots. He prescribed a pneumatic traction device and twice-weekly physical therapy sessions. "I think you'll heal", he said.

When things were at their worst I turned to the Internet for research and comfort. I Googled for "swim c6 disk" to see if anybody else had ever written about a successful return to the pool after an injury like this. There were a couple of entries on swim forums, but not enough information to be sure. I had no idea how long it would take.

I didn't swim at all for the rest of March; April's yardage total was a big goose egg. When I slid back into a pool again on 11-May I couldn't turn my head to breathe and my right arm was still experiencing numbness and pain. I put on a pair of flippers and kicked on my back for 1000 yards. I found that backstroke wasn't too painful, so I started mixing that in with my kicking.

I ordered a snorkel from Finis that arrived in June. I could do some freestyle without turning my head to breathe. I continued with physical therapy until the end of July. Soon I was able to do freestyle again, turning my head to either side, without the snorkel. I worked my way back to being able to do butterfly and individual medley. I went back to my first Masters workout at the end of August and became a regular fixture again.

I still wasn't out of the woods. I was back in the pool, but the pain and stiffness were still there. I started taking a once-a-week yoga class in September. That made a big difference indeed. I would do an hour's worth at home several times a week to supplement the class. I found that my core strength and flexibility were both much improved.

The fourth quarter of 2007 and first quarter of 2008 have seen the best swimming yardage totals of my life. I keep track of how often and how far I swim so I can gauge how I'm doing. The pain has subsided as the yards piled up. The best indicator of my recovery comes when I sneeze. Last year I would experience searing pain whenever I sneezed or coughed. Now I'm myself again.

The time from first pain to recovery has been 13.5 months. The spinal specialist said something to me that I thought was funny: "All the traction, all the exercises, all the physical therapy is really just a way to take your mind off it. The one thing that heals this kind of injury is time."

I read that this is a common injury for men my age, and 70-80% of them recover fully. There were a lot of nights when I feared that I'd fall into the 20-30% of men who couldn't come back from this. I wanted so badly to find stories from people who were in my situation, who could tell me that it would be all right.

So if your neck hurts, your arm is numb down to the elbow, you can't lie down for a full night's sleep because of the pain, and you're wondering if you'll ever see the end of it, take heart. I'm feeling great now, and so can you.

Sunday, April 13, 2008

About My Blog Title

I've had two careers in my life. My education and 16 years of my working life were in the field of mechanical engineering. One of the best courses I took in graduate school had to do with fracture mechanics. One of the topics it deals with is predicting the likelihood of brittle fracture and growth of small cracks into larger ones. You'll see the term "crack propagation" in papers on the subject.

My father was born in Ireland and emigrated to America when he was a young man. He came here in search of better economic opportunities. He found that and more: he met my mother, married her, and had a raft of kids. He became a US citizen. He thought he'd reached the Promised Land. He had little to look forward to in Ireland at the time. He didn't want to be a farmer.

Now Ireland has become the Celtic Tiger of the EU. The population is young, educated, and staying home to work in high-tech industries that have sprung up. I was lucky enough to go back a few years ago and see the town where my father grew up.

One thing I learned while I was there was the Irish slang for conversation: "craic", pronounced like "crack". "Having a craic" means sitting around with your friends and having a lively discussion.

So the title of my blog is an attempt to be clever and pay homage to my former profession and my father's homeland.

Exposed In Public

I joined a local Toastmasters club recently. I started attending meetings in January and finally bit the bullet to become a member a month ago. I've always liked public speaking. I even fancy myself to be somewhat good at it, if not being terrified at the thought can be considered "good". Whether I'm as effective as I imagine is quite another matter; hence the new membership. I thought it would give me a chance to practice and to learn that craft from the bottom.

The meetings are fun. The club meets in a conference room where I work. There's an agenda for every meeting that is rigorously adhered to. There are roles to play, rituals to follow, rules to enforce. There's a portion called "table topics", where individuals are asked to come up and speak for 1-2.5 minutes on a randomly assigned topic. At the end of each meeting ballots are distributed, and best speech and table topic are voted on. I've spoken on a table topic twice, and both times I was voted "best table topic" for the day.

I'm going to give my first speech in nine days, and I have to admit that I'm a little nervous about it. It's not the speaking that concerns me, it's the topic. The first speech is intended to be an ice breaker. The new prospective Toastmaster-in-training should talk for 4-6 minutes about a topic that they know well: themselves.

I started writing out what I wished to say this morning, and I'm finding it to be a "naked in public" experience. I feel exposed! I don't know the audience so well. How far should I go? The two first speeches I've seen focused on family, education, and employment history. Everyone else in the club is so young. Will they laugh if I say that I remember when Kennedy was shot? I have vague memories of the image of the funeral on a black-and-white television in a neighbor's house. My friend's mother was weeping hysterically, but I didn't understand why.

I can hear their reaction now: "Black and white television!? Ted Kennedy was shot!? Dude!"

Will that expose me as a member of their parents' generation? As if my gray hair didn't give that away already. I feel the cold hand of ageism on my shoulder.

The Internet is making privacy harder to maintain. Blogging like this on the Internet feels like I'm on a soapbox, standing on Speaker's Corner in London, yammering away for an audience that could include the entire connected planet. I don't have a Facebook page yet, but most people in my family do - except for my older sisters and me. Is this a generational thing?

I don't know that I've had a single reader yet. I've told no one that I've got a blog. There hasn't been a single comment left. I don't know if Blogger makes it possible to find out how may views my page has had. I'm trying to find a voice for myself, and blogging on technical and personal topics seems like a good way to go.

But it sure feels cold out here.

Friday, April 11, 2008

Service Oriented Snake Oil

I don't like this service oriented direction that the world is taking.

I understand how it promotes REAL reuse. I see the benefits that eBay, Yahoo!, Amazon, and Google are gleaning from the technology. I like how it breaks functionality out of application stovepipes. It gives us a chance to write distributed components that can deal with clients written in Java or .NET or any other language that can be a web service client.

But does it have to be so bloody complicated?

I think corporate enterprise application development is markedly different from the demands placed on those Internet leaders I mentioned.

What is this buying us that we can't get with other technology?

Contract first XML helps some with the problems of brittle interfaces and promotes looser coupling, but it's not perfect.

Can you model the operation of a large financial institution using REST?

Transactions and ACID are the biggest problem that I see. I think services have to live between transaction boundaries. It's taken a long time for databases to be able to help us with managing units of work. I'm not aware of anything analogous for services. Compensating transactions break encapsulation, in my opinion. How long should an idempotent service wait to be sure that a PUT or POST will "stick"?

BPM, BPEL, and ESBs are leading us down the wrong path when it comes to maintaining ACID properties. It's a great marketing ploy to tell business people that they can create complex process flows using graphical tools to drag & drop a suite of available services onto a palate, connect them up using "simple" logic elements for branching and joining, and then deploying the whole thing under the watchful eye of The Bus. But the moment there's more than one transactional service in that flow you'll have to worry about ACID properties. If the first one succeeds and the second one fails you'll have a mess to clean up.

It's great for vendors to be able to offer wizards to make it easy to churn out services. It's no different from any other remoting technology in that sense. If I write a sensible interface and a solid implementation for it, it's easy to see how I can expose that using RMI, EJBs, servlets, SOAP, or any other remoting technology that I like. So what's so special about web services again? What's different this time?

And the real difficulty isn't addressed by the wizards. At its bottom, what we really have here is a design problem. I think part of the reason why REST is still not widely used in corporate enterprise solutions is that it's an architectural style, not a standard. There aren't tools and wizards and cookbooks out there to tell you how to run your enterprise on REST. You have to think about it and slog your way through a hard problem. It might have worked for the Internet, but I'm not Roy Fielding.

I'm spent my second career as a software developer using curly brace languages - first C, then C++, now Java. I'm sorry to say that I'm getting the nagging feeling that this has all become too hard. There's got to be a better, easier, faster way to develop n-tier web applications that deal with relational databases. I love Java and Spring, but it's still too damned hard. It might be time for me to try another language.

Maybe this is why Ruby and Python and PHP are gaining traction.

Thursday, April 10, 2008

SOAP versus REST

I've been working at writing web services for a large corporation. WS-* has been out there for a while - SOAP, WSDL, all the usual suspects. There are lots of web service implementations - Axis, XFire, WebLogic, all the Java EE app server vendors. There are tools built into every IDE - IntelliJ, Eclipse, NetBeans. With all this machinery in place it ought to be easy, right?

Why does all this feel like EJB 1.0 all over again?

We have Service Component Architecture and Service Data Objects from IBM and a host of others. Why are these such an improvement over session and entity beans?

Where is the simplicity in all this? What is all this complexity buying us?

The alternative is REST. The problem in making that argument is that it's an "architectural style", not a standard. There aren't any REST wizards out there. It's a tough sell when you're being asked to provide direction to a remote team, which is most likely outsourced. It's easier to put a wizard into their hands and tell them to start generating services. Won't that save the world?

The problem is that there's less time to think and design in this world of outsourcing. You can't iterate without change requests and lawyers being involved. Management would like to substitute process and wizards for craftsmen. They would prefer to reduce everything to the lowest common denominator. The perfect solution would be to make it so easy and automatic that secretaries could pump out code on their lunch hour.

Or, better yet, pre-packaged software.

Why is software so difficult? The analogies to buildings and manufacturing don't fit.