Sunday, December 23, 2012

Using Google Drive to Automatically Back Up "My Documents" in Windows 7

In the past, I've been pretty bad about backing up my files.  It's always been too much of a pain messing around with CDs or DVDs, and I'm too much of a cheapskate to get an external hard drive for the exclusive purpose of doing a backup.  It's also something that would still require intervention from me, meaning I'm not likely to do it regularly.

Since beginning to use Google Drive anyway, it occurred to me that perhaps I could start backing up my files without also having to screw around with it all the time.  It turns out not to be totally straightforward.

First, when installing Google Drive on your computer, make sure to put the Google Drive folder somewhere you actually want it to be.  The default location isn't necessarily bad, but it wasn't great for me.  While there are instructions for moving the Google Drive folder after the fact, they didn't work in my case - I had to delete it and have Google Drive create a new one in the correct location.

Second, navigate into your user account folder and right-click "My Documents."  Open up the Properties dialog box.  One of the tabs is "Location."  I used the "Move..." button to move "My Documents" to a new location within Google Drive.  While I did give that folder a name, it didn't get created that way - it was created as "My Documents," only within my Google Drive folder.  That's fine with me, so I just let it happen that way.

I did a little bit of testing and it does seem to have broken the recent documents links in Office.  So, be warned.  However, the libraries folders and start menu shortcuts work correctly and by default, things will save into the new location.  So all in all, I'm okay with how that turned out.  Google Drive is now syncing all of my stuff, which was the goal.  I think I now have my computer taking care of that important but annoying backup task for me.  Future migrations to new computers should also be more straightforward, using Google Drive to pull the contents I want on a new computer back down from the cloud.

Tuesday, December 04, 2012

Distributed Processing and Robot Taxis

I went to a seminar earlier today that was concerned with getting networked dynamic systems to pursue their own goals and then merge on a common state at the end of a certain time interval.  Pretty abstract, and I have to admit that the math was impenetrable to me.  But it got me thinking - what if the systems went to a distribution, rather than a single point?  And, what if the times were arbitrary and mismatched?

I really, really want my next car to be able to self-drive.  It seems feasible, too, if I can hold out for a few years.  One of the things that commentators bring up with self-driving cars is that the model of individual car ownership may lose a lot of its advantage.  If cars can drive themselves, why should a car have to wait for its owner to get back?

In New York, people take taxis under certain circumstances.  Taxi drivers know the times and places when people want taxis the most, and try to put themselves there.  This works well for knowledgeable taxi drivers because they can stay quite busy, and works relatively well for potential customers, as long as they follow a common pattern.  It's not so great for someone doing something a little unusual, though, the taxi fleet has a limited ability to scale, and the way that taxis are leased by drivers often means that the taxi fleet is operating well below the capacity of the equipment.  Drivers get tired, and don't use all 24 hours.  (Nor would I want them to!)

Imagine if a city had a fleet of self-driving taxis that networked with one another and reported their states to a central dispatcher.  Further, imagine that the dispatcher could receive calls via cell phone or app.  The communication was a key aspect of the seminar today.

The selfish vs. team aspect of the individual systems' behavior was a big part of the seminar's theme.  But instead of having synchronized behavior changes, the taxis would decide based on different weights assigned to their needs at different times of day.  During commute hours, all reliably operable taxis would stay available until they picked up fares.  During lower-traffic periods, fuel and maintenance needs would be assigned greater importance.

The team aspect of the taxis' behavior would be to try to maintain a certain geographic distribution, with varying densities based on frequency of calls.  A lot of taxis would attempt to travel to areas with historically greater call frequency when available, while fewer taxis would station-keep in areas with low demand.  By networking with nearby taxis, taxis could put themselves in the right places to maintain the right gradient in available taxi density.  Having all taxis maintain good records and download information to the same place would facilitate development of really good statistics about when and where the demand was.  Taxis would know to go to residential areas in the mornings, to bring people into commercial cores, they'd know to be around offices for evening rush hour, they'd know when the bars close.  Because the taxis would be trying to maintain a distribution as a team, this behavior wouldn't imply abandoning a neighborhood - a few taxis would still stay in areas with lower call frequency in order to maintain the right proportional distribution of taxis, so someone using a vehicle against the general pattern wouldn't have a taxi too far away.

Without human drivers, robo-taxis could be operative during almost all hours, with a greater proportion refueling and undergoing maintenance at off times.  They could potentially serve many more fares in a day, and without a human driver, they could be cheaper.  Maybe a fleet of robo-taxis would fit into the right need to take a few cars out of parking lots and spaces, maybe off the roads entirely - they'd reduce people's need to drive to work "just in case" or because they'd be carrying something heavy for a small part of their return trip.

Sunday, December 02, 2012

More on Gadgets

Over the last few weeks, I've tried a few different heart rate monitors.

The first was the Polar RS 300X.  I was given this by a teammate.  Depending on the accessories used, the RS300X can measure heart rate, speed, and speed by counting strides.  It's designed more-or-less assuming running.  The RS 300X can remember intervals workouts with up to three intervals and any number of repeats.  This means that it can remember a warmup, a work unit, and a cooldown, or intervals using two or three intervals, but not the warmup or cooldown.  I had the heart rate sensor only, no GPS sensor, and in that setup, the device can remember structures only by time - distance and location can't play into it.

In practice, this meant that I could program mine to follow my current running workout pretty well, as long as I guessed the amount of time taken by my warmup reasonably well.  But if I was doing something more complex than a warmup, run, and cooldown, I'd have had to change the program for different parts of the workout.

As far as recording, the Polar tracked elapsed time and time spent in each heart rate zone.  Heart rate zones are manually configurable, as percentage of max heart rate only.  I track my training volume and the Polar does a cool training load measurement, but it makes it difficult to figure out things like trends over the course of a race, or to do a Lactate Threshold measurement protocol easily.  The Polar does have a lap button, so all the same information can be broken out by laps.

I want to be able to see my heart rate on a time axis.  Being able to see my lap times this way in the past has told me a bit about how my speed at a race compares to how I feel at a race - they're not the same thing.  So if I can measure heart rate at all, I want to be able to measure it pinned to time and location in a way that lets me mix it into the same set of data.  I was also very curious about Garmin's Advanced Workout feature.

The next device that I tried was the Garmin ForeRunner 405CX.  This thing is big!  It's a GPS and Garmin's tcx format seems to be pretty dominant as a standard for a lot of the fitness software to use.  So uploading to Strava and Garmin's own site, Garmin Connect, is pretty easy.  The 405 also has the Advanced Workout feature I was so curious about.  It's quite straightforward to program a pretty involved workout protocol with this feature.  So far, I haven't done much with it, but I now have my run workout setup so that the warmup lasts until I press the lap button, then I do the work unit and it ends automatically at the preset time.  It can be set with alerts to help me maintain the same pace or effort level, something I find handy since sometimes my mind wanders and I slow down and sometimes I go out too fast, and I've been trying to limit speed so I don't hurt myself again.  The advanced workouts are quite straightforward and transparent.  I'm a fan.

As far as recording, being able to see pace and heart rate together has made it easy for me to set up pace guides for a run that I want to be in heart rate zone 2.  With the Polar, I could only set them up for the heart rate itself, and it turns out to take a couple minutes for my heart rate to reach its steady-state rate when I come up to speed, and about a minute for it to drop down to its steady-state walking rate when I stop running.  So using pace directly means that I don't have that delay.

I still haven't gotten to doing a LT test, but it was easy to set up the protocol as a workout.  Garmin Connect can show average heart rate broken up by lap, so it'll be easy to read threshold rate right off the main screen describing the workout.

Since the 405 was a loan, I still had the question of which device to talk my "sponsor" out of.  The current model is the 410, and another model, the 610, has a similar feature set but uses a touchscreen instead of the weird bezel used by the 405 and 410, and it adds a distinct cycling mode.  It's also smaller.  I decided to go for the 610.

I played with it some today and went for a run with it.  The separate running and cycling modes are pretty cool - the training screens are already set up according to the sport, and playing with one sport's screens won't mess up the other's.  So in running mode, it displays pace and there's no cadence screen while in cycling mode, the display shows speed and there's a cadence screen ready should I get the appropriate toy to be able to measure it.  Pretty cool.  An irritation I had with trying to load workouts onto the 405 has also been solved by the 610 - I can put several advanced workouts on it without having to do the little hack required to save more than one onto the 405.

I'll be curious to try to follow some more complex workouts with the 610 over the next season, but so far it's looking very promising for doing the two things I'm looking for - guiding me through a workout that I'd lose track of on my own and giving me more data about what actually happened during a race.