Tuesday, September 30, 2014

Organizing a 21st Century Family

At the moment, we need to keep straight the schedules of two working parents, two kids (at two different schools), and two grandparents just up the street, one of whom is only semi-retired and travels a lot as a consultant.  How do we keep it all straight? The short answer is "just barely". The longer answer is Google Calendars.  At the moment, I have five calendars synced to our various devices and computers.  Some, like my work calendar, are only on my devices, but several of the calendars are relevant enough to all of us that we needed a way to display them at home, since our lives are only going to get more complicated, not less.

I briefly considered using paper.  I recently started using a recipe box (with actual paper recipe cards) again, and find it superior to any electronic interface I've used.  Unfortunately, our schedules change frequently enough that I would have to add 'print off calendar page' as a daily to-do, and that wasn't an appealing option.

I have long wished someone would invent a device that would solve this problem.  I've had a couple of ideas over the years of what that might look like.  Maybe a digital photo frame that could also connect to Google Calendars?  How about a home phone with wifi and a touch screen? I can think of all kinds of uses for something like that!  Several companies came close to what I wanted (Chumby, for example) only to fold, get acquired, or otherwise fail to perfectly execute my dream device.

At some point, I started eyeing our iPad 1. Christie won it at a trade show back when it was the hot device of the moment, and it served us well for many years.  Now, however, it's running iOS 5.0.1 in an iOS 8.0.2 world. Even relatively simple apps like Netflix drag and crash enough to make it more frustrating than fun.I mounted it over our phone charging station with a few Command hooks, then started looking for an app that would display a calendar, a clock, and a weather forecast.

I never found one that ran under iOS 5 that I was happy with, but even the ones I didn't like were a step in the right direction.  I finally ended up just creating a web page that uses iframe tags to embed the data I wanted into a table that laid it out the way I wanted:
The clock is from http://free.timeanddate.com, the forecast is from http://forecast.io, and the calendars are coming via http://www.google.com/calendar.

I'm using Chrome for iOS to get the minimalist look I wanted, and the embed are all sized so that it fits just so.  Here's the code (with some redactions):

<html>
<table>
<tr>
<td>
<iframe frameborder="0" height="230" src="http://free.timeanddate.com/clock/i4ce2mc9/n109/fs88/ftb/ts1" width="350"></iframe>
</td>
<td>
<iframe frameborder="0" height="230" id="forecast_embed" src="https://forecast.io/embed/#lat=11.11&amp;lon=-11.11&amp;name=Columbia, MO" target="_blank" type="text/html" width="624"> </iframe>
</td>
</tr
<tr>
<td colspan="2">
<iframe frameborder="0" height="480" scrolling="no" src="https://www.google.com/calendar/embed?title=My%20Calendars&amp;showTitle=0&amp;showPrint=0&amp;showTabs=0&amp;showTz=0&amp;height=400&amp;wkst=1&amp;bgcolor=%23cccccc&amp;src=youremail%40gmail.com&amp;color=%232952A3&amp;src=yourgroup.calendar.google.com&amp;ctz=America%2FChicago" style="border: solid 1px #777;" width="100%"></iframe>
</td>
</tr>
</table>
<script id="jsbin-javascript">
if (/mobile/i.test(navigator.userAgent) && !window.location.hash) { window.onload = function () {
  window.scrollTo(0, 1);
}; }
</script>
</html>


You'll have to put in your own latitude and longitude for the forecast, and embed your own calendar (instructions here). The meta tag at the top reloads the page every ten minutes to keep the weather forecast fresh, and the javascript at the bottom is a bit of trickery to force Chrome to hide the navbar when that reload happens.

Set autolock on the iPad to "never", and you've got yourself a family calendar that always stays current.

Wednesday, April 9, 2014

Backing up a LEGO Batman game on iOS

Everyone knows that the LEGO console games are awesome. And the iOS ones are pretty good, too. But the port of LEGO Batman from console to iOS is particularly awesome, and is very toddler-friendly (assuming you don't object to occasional screentime for a toddler). Except. Right at the beginning, it asks whether you want to continue or start a new game. And if you start a new game, you lose everything you've done up to this point, including all the cool characters you've unlocked, levels you've beaten, and any in-app purchases you may have made.

Just try to explain to a 3 year old why he can't play as Aquaman anymore.

It's a solveable problem, though. What you need is a file manager for iOS. There are several out there. I use iFunBox, which gets the job done, but there are probably many others that would do just as good a job with a less cluttered interface.

Make sure that the LEGO Batman game is not running on your device (including in the background). Plug your device into your pc, and navigate to the LEGO Batman app, and look for the file named savegame.dat. Save that to somewhere safe.  If somebody accidentally deletes the game, you can drag this file from your desktop (or wherever) into the proper folder on your iOS device, and you're back to playing as the king of the seven seas.

You can also use a similar process to move a saved game from one device to another, so your kids aren't fighting with Mom over who gets to use the iPad with the 'good' game on it.

Oh, and you can also use this software to move Minecraft worlds from one iOS device to another. If you're into that sort of thing.