Tuesday, May 29, 2012


I recently purchased some electronic media from Simon & Schuster.

Apparently the technology guys at Simon & Schuster believe in "Java Over Functionality." Unlike most companies that sell DRM-free digital media, I was not given a link to download zip file containing the contents of my purchase.

Instead, I was given a JNLP file, which is nothing more than an XML file. A little Googling revealed that these files should be openable by javaws, a Java Web Starter application. After getting the file to successfully run, I was greeted with a custom download manager. This is great because why offer a simple download that will be managed with my browser's download manager when I can have some half-rate, custom download manager to fudge things up?

So the download manager asked me where I would like to save the file, downloaded each file individually for about twenty minutes, and then told me it was done. There was a big problem, my files where not in the location I specified. In fact, a hard drive search revealed they didn't exist anywhere on my machine.

I tried again, no dice.

So, if Mother Necessity if the driver of invention, then welcome her new baby, ssdownloader. I wrote this Python app up in a little over an hour. It was a good chance to strengthen my weak command of Python, and to actually get the stuff I paid for.

It simply parses the JNLP file to find the other XML file that defines where the actual downloads are. It then loops through that file, grabbing each file and saving it locally. If anyone out there gets frustrated trying to make good on their Simon & Schuster purchases, feel free to use this to make your life happy.

Tuesday, May 1, 2012

500-Mile May

This month I'm going to try to really push myself physically and travel 500-hundred miles on foot or bicycle. To accomplish this goal I will need to travel an average of 16.13 miles per day.

A bicycle ride to work gets me 10 miles each way, giving me a potential 20 mile each workday. Except, on Fridays I go to Bread and Roses after work, which is a 6 mile ride. This gives me 19 non-Friday weekdays, and 4 Fridays, so 19 * 20 + 4 * 16 = 444 miles on bicycle.

That gives me only 56 miles to find elsewhere. In my one-hour lunch-break I can fit a 2-mile walk or a 4-mile run. In practice, presently, I can only run about 2 miles. With 23 work-days, that comes out to 46.  444 + 46 = 490 miles. Now I've only got 10 miles left to make up. This can be done over the weekend, or by walking the dogs after work.

As always, a big factor here is the reality of life. Last weekend Kim came down with a surprise case of appendicitis. That has put the task of transporting the kids before and after work on me for now. So today, the first day of my challenge, I did not ride to work and will not be riding home. I did get a 2.17 mile run in, but that's a far cry from the 16.13 miles I need each day, and not a good start.

I've also got a conference with Athena's teacher on May 8th, so I will not be riding to work that day, but can still ride home. May 10th I will be participating in Aurora's field trip to Saint Augustine. The walking may make up some of those miles though.

I can only assume other life-events will show up, and will have to take them as they come. As strange as it may seem, I don't believe I will actually be able to make my goal. However, I'm going to give it my all and see how it goes.

I will be keeping my activities updated at http://www.google.com/fusiontables/DataSource?snapid=S478383Gdyj

You can also see all of my recorded activities on Runkeeper at http://runkeeper.com/user/maxolasersquad/activity/