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.

Wednesday, December 18, 2013

A Christmas Magic Miracle!

Our family has a complicated relationship with Santa Claus.  Not the big man himself, of course. He's a busy man.  Instead, we mostly talk to Harold, whose job lies somewhere between account manager and case worker.  Last year, we also met Candy, who is an Elf on the Shelf, but not the spying kind.  She's an Elf In Training, and was sent out in the field to observe a family.  It's a bit like a residency.

Candy's in the second year of her fieldwork, now, and she's mellowed a bit. She doesn't pull quite as many pranks, and the ones she does pull are less messy.  Also she didn't show up until the fifth of December. (Last year she arrived the Saturday after Thanksgiving.)

All this is prologue so you understand our first Christmas miracle, and how I pulled it off.

Christie and I have the Christmas Crud, which mostly just congestion and aches. It's the cold that will not go away.  The other night, we were both beat, and we fell asleep right after the kids.  That block of time between about 9 and 10 pm is normally our elf time, when we have a quick conference, Christie tells me her plan, and we execute. But we slept through it, and honestly forgot until Thing One asks "Why didn't Candy pull any pranks last night?"

Oh, crap.

Christie, smooth as silk, says, "Well, Harold told me that sometimes an elf will take a night off when she's saving up her magic for something really big the next night." which solves the immediate problem, but creates a new one.

Flash forward to that evening, when Thing One, snuggled up on my lap, looks over at Candy and says, "I really hope her big trick tonight is to bring me a new Wild Kratts episode.  One I've never seen before."

My kids don't watch live TV; they watch Roku.  And they know which Wild Kratts episodes are on Amazon, which ones are on Netflix, and which ones are on YouTube.  They know that the picture quality on YouTube isn't that great, but that it has episodes that aren't anywhere else.  They know that the PBS Kids app doesn't have very many episodes, but that it sometimes gets new episodes that aren't streaming anywhere else.  So this is not an unreasonable hope.  New episodes do just show up on occasion, though not often.

We ended up stringing oversized ribbon around the living room, and slinging Candy in one of them like a hammock. Not very tricksy, but visually impressive, which is often enough for a five year old and an almost three year old.

And then, lying in bed, I remembered the Tivo.  Sadly, we don't use it much.  I love the interface, but it's not friendly to pre-literate kids, and mine love to drive the remote.  Also, their viewing habits have been shaped by Netflix, not broadcast. When they get hooked on a show, they want to watch every episode, then come back to their favorites again and again.  And again. And again. Seriously? Again? Yes, again.

But even if they don't watch anything on the Tivo, I still use it. It records the shows that Christie and I would watch together if we watched TV anymore, which we really don't.  And when the kids get addicted to a new show that's on one of the few channels we actually get, I set a Season Pass. Last month I took it a step forward and told our household PC to automatically transfer Wild Kratts recordings to the PC for safekeeping. That sounds like it'd be really complicated, but it's literally just a matter of checking a box in the Tivo Desktop software.

I checked, and there was indeed an episode saved on the PC that wasn't available streaming online yet (thanks to the lag between broadcast and streaming that most shows have).

Why, you might wonder, do I save episodes from the Tivo to my PC if we're not going to watch them on the Tivo?  Because the Tivo Desktop software lets me convert them for iPhone, iPad, and other portable devices.

Now comes the final piece of the puzzle: Plex.  I installed the Plex Media Server on our home PC earlier this year, and ripped some of the kids' favorite movies so we could stream them to the Roku without having to open up the A\V cabinet of blinky lights and buttons that beg to be pushed. And the 'converted for iPad' files that the Tivo Desktop produces are Plex-compatible, provided you change the filenames a bit.

Which is why Candy had a note in her hand that said, "Check the TV", and how the TV had on it a brand new episode of Wild Kratts, one that my kids had never seen before.

Tuesday, December 10, 2013

Girls Love Robots Too

photo by SpaceyJesse licensed under CC
My daughter is a scientist, an explorer, a superhero, and an author. She is an Amazon princess and with a secret identity and an undercover spy.  She loves Wonder Woman and Batman; Minecraft and Toca Hair Salon, Wild Kratts and My Little Pony; Zombies and ballerinas, Lego City and Lego Friends. 

My point? She and I are both tired of the gender-centric toys. If she wants to be a scientist who wears a sparkly tiara with her lab coat, fine by me.  But I am tired of needing to field tough questions from her like, "Why aren't there Minecraft shirts for girls at Target, Kohls, or Wal-Mart?"  "Why is it so hard to find superhero shirts for girls?" " Why don't the girl superheros get as many toys, books, or even any lego sets? "

By coincidence, my holiday shopping experiences have spurred me to start this blog during National Computer Science Education Week. So, in honor of raising a girl that can do everything boys can do... and knows it, get your daughter (and your sons) involved in the Hour of Code! http://csedweek.org/