Only the End

Aristotle taught us that stories should have a beginning, a middle, and an end. And so, for thousands of years our stories have had a beginning, a middle, and an end. But how many real stories have all three elements in equal measure? All stories start and end. They have something that happens inbetween. But these are arbitrary divisions.

Perhaps there is a story that is all beginning. It is meant to inspire you to fill in your own middle and end. Or perhaps there is a story that is focused on tying up loose ends from an elided beginning and middle. Or perhaps you have a story that more closely mirrors real life. It is all about the middle, the now. There are things that went on before and there are things that will go on later but the story is focused on the moment.

Isn’t that how we experience our lives? Shouldn’t our stories reflect our own experiences, at least some of the time. It’s nice when a story comes all neatly packaged with its Aristotelian components but isn’t it more realistic when you only get whatever pieces that were at hand?

It certainly makes a nice theory. Now it only remains for me to see if I can actually write a story based on these principles. The proof is, as they say, in the pudding.

The noise outside got quieter and quieter. She knew that something was happening but she was scared. There was a clanging noise from the middle of the courtyard right outside the barn where she had been awaiting the return of the clerk who had started this whole search for the hidden realm.

A crow cawed and the young man sat on the bench. He had come a long way since he had left his apartment with his walking cane and his little canine companion. They had found the journey long and arduous but rewarding as well.

It only remained to deliver the trophies and they would be on their way home, at least until new competitors vied  for the title. Then they would have to accelerate their program to discover new artifacts from the Golden Age and keep their civilization intact.

Sweet dreams, don’t forget to tell the people you love that you love them, and most important of all, be kind.

Turning Over Another New Leaf

I should be working on the book tonight but I’m procrastinating. I will put some time in on it after I write this post. I was inspired today to commit to blogging daily. I’ve even figured out a way that I can make it happen. I will spend some of the time in the morning when I’m writing my 1000 words to write a blog post. That will leave me some of my words for journal type stuff and the rest for a blog post. That means the blog posts will be around 500-750 words. That’s not a bad length for a blog post. See you tomorrow and good night.

Teaching an Old Dog a New Trick

And so my Christmas break begins. The large aerospace company for which I work is primarily a manufacturing company. As such it can’t afford to keep the lines running when over half of the employees are taking vacation so, to keep everyone happy, we get one less week of vacation than other companies and instead, the company starts the Christmas holidays on Christmas eve and carry it on through New years day. This year that means that by taking four days of vacation I can be off for seventeen days. That is a good deal.

In past years I have started the break with the best of intentions but usually by the time January rolls around, I haven’t achieved any of the plans that I made at the beginning of the break. This year I’m starting the break. With the help of a nifty little application called Airtable I have come up with a super todo list to support a new strategy I have come up with. I have created a list of tasks. Each task has a group of tags associated with it, like “domestic” or “chore” or “ham radio” or “artistic” or “musical”. It also has a status, and a completion date. Every task starts with a status of “TODO” and a completion date that is blank. When I complete a task, I change it’s status to “Done” and fill in the completion date.

I can create multiple views of the list and each list can apply a filter that determines which items are shown. For instance, I have one view with a filter that only shows tasks with a status of “TODO”. Another view only shows tasks with a status of “Done”. I can create a view with a filter that shows tasks with a completed date after a start date and before an end date. This allows me to keep track of what I do and when. The plan is to try to balance the things that I do that are chores with the things that I do that are recreational. That way, I can feel like I accomplished something in both domains at the end of the Christmas break. I’ll update you next year and let you know how it worked.

WordPress App on My iPad

I downloaded the WordPress iPad app and I’m trying it out with this post. It is about as easy as any iPad text app can be. I will probably prefer it to my Star Trek themed app. Let’s face it, writing on an iPad without an external keyboard is hunt and peck any way you slice it. If you’re dedicated enough, you could post to a blog using Morse code. It wouldn’t be much different than this.

An Agile Team of One

I am developing some software at work by myself. I have worked on several different styles of Agile team in the past, e.g. Scrum and XP, and I decided to think a little about what Agile practices are appropriate for a team of one.

First up, the daily tag-up, otherwise known in some circles as “the Scrum”, doesn’t serve the same purpose that it does on a larger team. You probably should set aside a moment, perhaps first thing in the morning, to review your progress from the day before, identify any obstacles you need to address to proceed, and make note of what you intend to do today. That should take very little time since you don’t have to explain what you mean to anyone else. Communication is the benefit and the major time sink, of the Scrum.

Next, a backlog is useful. I consider it another name for my todo list but it is a little more formal than some todo lists. I keep it sorted in order of highest priority first. I mark each major item with a status, e.g. ready, in-work, waiting on <resource> etc. I also use an outliner to keep track of my backlog so that I can easily represent subtasks.

I have added a practice that I learned from Dave Winer, called Narrate Your Work. It is particularly useful for me since I don’t have the benefit of a colleague to discuss my project with. By narrating my work, I get down the essence of what I’m doing and why so that I can remember what I’m trying to accomplish and the decisions that I have made along the way.

I haven’t had to do any estimating yet so I haven’t done anything like the planning game. I have a suspicion that you need three or more team members for the planning game to work very well. I also haven’t divided the work up into sprints. That seems like over kill for the one person team.

I will be doing periodic evaluations that will correspond somewhat to the end of sprint retrospectives. I think the key here again is that since I don’t have anyone to discuss it with, it is just a matter of taking a moment to think about what I’ve learned to date in the project.

Arduino Mania Strikes Elkton

It all started innocently enough. I had $50 worth of Amazon gift certificates so I bought an Arduino Duemilanove from Hacktronics with part of the money. It came and I was thrilled to start blinking LEDs with it right out of the box. I wrote a little program that flashed “SOS” in Morse code. My wife said, “That’s kind of depressing.” So I changed it so that it sent “LOVE” in Morse code instead.

I don’t know why I am so surprised when things work the way they are supposed to. I think it probably goes back to all the times I built electronics kits and had to troubleshoot them for days to get them to work (if they ever worked at all). In any case, the bug had bit me. I started scouring the Internet for Arduino based projects.

One of the reasons that I was drawn to the Arduino in the first place was the concept of shields. Understand that this was not a new concept to me. The robots at work had been expanded through the addition of daughter cards that plugged into the motherboard. But the Arduino had dozens of shields that interfaced to all kinds of interesting hardware. And the best thing of all was that they were affordable on my next to non-existent budget.

I decided that I was going to build a robot from scratch. I had built a BOEbot and I still love to tinker with it but I had the urge to create a unique robot that was my design from the ground up. Oh, alright. I intended to assemble it from parts but I intended to build many of the boards as kits and assemble all the various pieces to make a unique final product. And what is really exciting is that it wasn’t just possible, it was down right easy.

I decided to build my robot around a chassis consisting of a Clementine tangerine crate that I had saved. I decided to use Google SketchUp to build a scale 3D drawing of the crate so that I could better visualize how I planned to transform it into a robotic vehicle. I managed to draw the crate itself fairly quickly but I’m still working on drawing the rest of the parts of the robot.

I drew up a prioritized list of parts that I thought I would need for the robot. At the top of the list was a Proto Shield. A Proto Shield is a board that has many uses but is often used as a place to mount a mini breadboard for experimenting with various hardware interfaces. The other major item on the list was a Motor Shield. The Motor Shield that I bought has connectors for 2 PWM servos and can control up to 4 bi-directional DC motors.

While I waited for my new hardware to come in, I decided to play with the hardware that I already had. I took one of the Infra-red receivers that came with my BOEbot and an old Sony CD player remote that I found laying around (the CD player had gone to hardware heaven years ago) and decided to see if I could get them to work together using the Arduino as the controller for the IR receiver. I got the circuit hooked up pretty quickly. Note: when building a circuit on a breadboard of one battery operated robot for control by another battery operated device, make sure you use a common ground. I eventually decided to just use the USB power from the Arduino.

Now I was ready for software. I Googled Arduino and IR and found RTFA‘s video on YouTube. I followed the link to his site and downloaded his code as a starting point. I hacked it to work with the particular remote that I was using and before my Proto Shield had even arrived I had created my first Arduino based hardware hack.

Then the hardware arrived. As I was soldering the power plug on the end of the wires coming out of the  9 volt battery holder with switch that I had bought, I decided that I was going to need a better soldering iron than the little pencil style iron that I had used for 30+ years.

The two criteria that I had were that it had to have a switch so that I didn’t have to bend over to plug it in and unplug it every time I used it and it had to have a shielded stand so that I could safely set it down while it was hot. The next day, I want to my friendly neighborhood Radio Shack and decided that the difference in price between the iron that met my minimal requirements and one that was variable digitally temperature controlled was small enough that I couldn’t justify not buying the fancy one.

It took me two evenings working about an hour an evening to assemble and test the Proto Shield. It took about 5 minutes to move the IR receiver circuit over to the Proto Shield and get it working.

Stay tuned. More mania is on the way.

Blog Post from ScribeFire

I download Firefox 3.5 today. While I browsed through the add-ons trying to replace the functionality of the add-ons that 3.5 made obsolete, I came across ScribeFire. It scratched an itch that I didn’t even know I had. Maybe this will help me start posting to my blog on a regular basis again.