I have been trying to figure out a good project to do with Christian. Something dawned on me as I was driving in to work this morning. Focus on the Family had a program on the radio about how there are not enough hours in the day to do everything that needs to get done. A person has to cheat one thing to do another thing right. It was really a program on setting a priority to spend more time with the family rather than at work. While I was thinking about that, it dawned on me that a great way to spend some time with Christian would be to teach him how to program. Previously, I had gotten a couple of C# programming books and had him start working his way through them. He has gotten a good grasp of object oriented programming in a garbage collected environment, something that is hard to do on your own if you do not have a specific task to accomplish. That is especially true if you are ten or eleven years old.

Well, now we have a project that would be a big help in running our website. It would make a great programming project, too. I have been working with the Python programming language and the wxPython cross-platform GUI libraries lately. There is a development environment that goes with it called Stani’s Python Editor. I would like Christian to know how to use that and the best way to teach that is to sit down at computer together and go through a project. We both enjoy programming and I think it would be a super way to spend some time together. So what are we going to do for a project? We are going to try to automate the posting and maintaining of Kelly’s Betty Blonde comic onto our website. If the project works well enough, we can put the program out as an open source piece of software.

Posting a day’s comic strip now requires multiple steps in several different programs. Kelly first draws, colors, and adds text to her strip in an art book as four individual frames. Then we walk through the following process:

  • Use the XSane program to scan and save each of the individual frames as separate image files into the computer.
  • Use GIMP to open each of the frames to rotate and save them in both the large resolution at which they were scanned and a smaller resolution to insert into a single image with the other frames.
  • Create a new boilerplate image in GIMP with the comic strip title and author at the top and copyright at the bottom.
  • Use GIMP to add the four scanned frames to the boiler plate.
  • Save the image of the accumulated trip in jpg format and a smaller image to be used as a thumbnail.
  • Open Firefox and use the FireFTP addon to upload the strip and its thumbnail to the correct location and modify the filenames on our website.
  • Use the SciTE text editor to update the comic strip index page with the new info.

One thing we are not doing right now that would also be helpful is to add JavaScript to the comic strip page so it is possible to view any of the old strips without leaving the main page. The bigger point though, is that one of the best ways to learn a programming language is to write a program while a more experienced programmer sits behinds you to direct and correct as the program is developed. We can even listen to Pandora while we are doing it.