Well, I made it to 37. And, in the usual internet custom of blogging something reflective and profound when your birthday comes around, well… here I am, jumping on the bandwagon, contributing my part to that large batch of published information in the category of “Well, It Matters To Me.”

I don’t really feel 37 mentally, though my hair is more gray now than it’s ever been, so it’s starting to show externally. I don’t exercise like I should (because, frankly, it’s boring as crap) so I’ll claim being out of shape as well.

But I feel like I’ve done a lot, or at least enough to satisfy my definition of “a lot,” so I think there’s something to be said for that. My daughter, Phoenix, is now two and a half and the energy she exhibits puts tropical storms to shame. I think in that respect keeping up with her is something that keeps me young, though it keeps me exhausted at the same time.

I go to the chiropractor every month and I was mentioning to him how I always figured that I’d get into better shape as she got older. You know, she starts out as a baby and doesn’t require too much of my energy, but as she gets older and I have to keep up, I’d gradually get stronger and in better shape and everything would work out. “That’s, uh, that’s really not how it works,” he said, as he caused my spine to make a pretty awful cracking noise.

I think the biggest thing I’ve found as I get older is that I have a lot less time. When you’re young and single, you can just put your shoes on and head out to see a movie. You can go to the comic store on a whim and hang out for a couple of hours. Want to do a total dungeon siege in Skyrim? Go for it. You won’t be neglecting anyone and as long as you have a pizza, you’re set to go.

Now I’ve got a loving wife and a crazy kid. I wouldn’t trade them for the world. Seriously, they’re the best people I know and I can’t imagine life without them. So keep that in mind when I say this: There are times when I feel like I’ve lost something of myself and that my time feels a bit “held hostage.”

I still make it to the comic store, but it’s more monthly than weekly. I don’t hang out as long. And I’m having to become way, way more selective about what I read – not because of budget, but because I don’t have time to read. I spent a couple of magical hours a week or two ago finally getting to read the 2011 annual for one of the comics I get and reading through a full year-and-a-half of stories for another comic.

Evenings? Fuhgeddaboudit. Get home, toddler’s already there. You gotta be daddy from the time you get home until 8 when she goes to bed. You might get a reprieve if you hand her the iPad (she can figure out Netflix herself and find something to watch). Between 8 and 10 it’s nice to have an adult conversation that won’t be interrupted by a toddler, so it’s husband time. Usually that means you can do something that doesn’t require too much attention while you watch a movie together or something like that. But it’s not much. Nothing where it’d require any actual focus.

When I do get time, it’s an exercise in extreme time optimization. I might get, say, four hours while Jenn takes Phoe to the zoo. What do I do? Well, I really would like to go eat at this restaurant that Jenn’s not so into, but that means 15 minutes there, 30 to eat, 15 minutes back – nope, that’s an hour of my four. Skip eating, I have no time for that. OK, let’s say an hour of reading comics, 30 minutes of failing to learn guitar using Rocksmith, an hour to try and actually make headway in Skyrim… you get the idea. It’s a near minute-to-minute itinerary. And there are so many things I want to do. I want to learn electronics (got the books, got some Snap Circuits…). I want to make a little movie with the Muppet Whatnot Jenn got me. I’m taking online bartending classes (just for fun, not for career change). I have comics to read, home media center stuff I want to work on… you get the idea. That doesn’t even count the little things around the house that need to be fixed/re-painted/etc.

I just haven’t the time.

Maybe that’s really what it means to get older. You just don’t have the time anymore, so you have to really prioritize and just give up on some of the things you’d rather do.

But the good stuff is really good. Watching Phoenix just get into the Batman is Brave! book (and want to hear it over and over) is awesome. Hearing the crazy stuff she comes up with – words and phrases I had no idea she knew – is amazing.

So, here I am. 37. I’m not sure this is where I envisioned myself being, but it’s not a bad place to be. I can’t really say I have a “five year plan” because, I mean, I don’t know what I’m eating for dinner tonight. I don’t even remember what I ate for dinner last night.

And maybe that’s OK.

gaming, xbox comments edit

When Xbox One was first announced the whole game licensing thing, admittedly, had me a little worried.

I don’t buy stuff from iTunes because the DRM has always been a pain in the ass. I have an iPod, my wife has an iPod, we each have our own separate user accounts, and making sure that music or videos that I buy are playable on her device is just a huge pain.

I have a few Kindle books, but I find that Kindle DRM is also a pain in the ass. I buy a book, my wife wants to read it… and it’s (of course) not one of the books that’s “eligible” to be loaned to someone. The publisher or whomever has locked it down. My wife has to physically borrow my Kindle to read it, which means I can’t read any of my other books. That’s crap.

We have two Xbox 360s at my house - one upstairs, one downstairs. My wife and I each have an Xbox Live account. Sometimes I want to play a game upstairs while she plays a different game downstairs (or vice versa). Sometimes we buy two copies of a game so we can play each other

So when I saw that there was this whole licensing discussion going on, I have to say, I headed for anti-DRM territory and got sort of scared.

However, it was pretty early and the details were sketchy. Some of the stuff sounded like the same crap - “Anyone can play your games on your console - regardless of whether you are logged in or their relationship to you.” That’s how the Xbox Live Arcade works now, where it gets licensed both to your user account and to a particular console. That doesn’t account for the multi-console household like we have, which makes some things really hard. If I buy some Rock Band tracks on one console, but we want to play on the other console… I have to be logged in. Having had the red ring of death three times, I’m no stranger tothe stupid “license transfer” process to move from one console to another. Seeing this come back with “even more move toward digital-only content” had me scared.

I also got scared by the notes about trading in disc-based games. “…Publishers can enable you to trade in your games at participating retailers.” That sounds like Kindle to me. Book publishers can allow me to loan people my Kindle books but almost none do. Why would I believe game publishers would be any different?

Some of the stuff did sound pretty cool - the “ten-person family sharing” thing was actually pretty great. I could buy a game, play it, and loan it to my uncle in the next state without having to mail him a disc. They had also figured out how to give your games to other people when you’re done with them, which is also pretty slick.

The once-every-24-hours-phone-home thing didn’t bother me a bit. I don’t play many online/multiplayer games, but I’m always connected to the network and I’m always signed in with my profile. It doesn’t bug me if they want to run a ping once a day. I’m sure it’d be connected to other services more often than that for other things anyway. I know a lot of folks were worked up about that one. I think that’s a mountains-out-of-mole-hills thing, but that’s just me.

But I guess that’s all kind of moot now, since they’ve changed their tune. We’re basically going back to the original model, which doesn’t hurt my feelings but does make me wonder what could have been. It sounds like there are some folks who are pretty disappointed that we’re going back to same-old-same-old and I’m a little disappointed, too, but probably not as much as this guy on Gizmodo.

I think the problem with the Gizmodo point of view is that there were a lot of hopes listed about things that could have been with the new licensing model but no actual concrete facts. Let’s address each of the points in that article:

  • Each game you buy would be tied to your account: That’s not necessarily a good thing. I mentioned the trouble I’ve had in the past in properly being able to loan Kindle books and in the XBLA content I’ve purchased. I think this is a fixable problem, but it wasn’t addressed in the original communication.
  • Publishers could create hubs to resell games: “Could” is a key word there. We’ve heard no intention from anyone that it would happen. And I’m not super interested in going to each individual publisher’s hub to resell stuff. What happened to the free market?
  • Publishers could make money on resold games: That is true. I’m not convinced that’s a benefit to me.
  • New games could be cheaper because publishers will make that money on resold games: Again, “could” is a key word. I’ve yet to see a console release where games for the new console were cheaper than the previous generation. What’s the impetus to lower the price?
  • You’d get a better return on your used games: That sounds like it’d be up to these hypothetical markets we have no information on. It’d be possible, but no guarantees.
  • We know this is possible because of Steam: I think there are a lot of factors that went into making Steam what it is today. FWIW, I’m not a Steam user or a PC gamer. It’d be nice to see other examples of similar marketplaces working - one example is not sufficient evidence beyond proving something is technically possible. Michael Jordan has a 48” vertical leap. I don’t see a ton of other folks pulling that one off.
  • Sharing games would have been cooler: I’ll give them this one. That 10-person family sharing thing sounded neat.

I’m not sure going back to the “old way” was the right choice, but maybe pulling a few things back? What if you had the 10-person-sharing-plan AND a “five-console-ownership” plan? I register the two consoles I own, my wife registers those same consoles, and now the games will work on those consoles OR with the people on my plan? Honestly, that’d be perfect. You might get people abusing it, registering consoles they don’t own, but they’ll do that with the family plan anyway.

Or a guarantee that I can trade in disc-based games rather than “publishers can allow me to?” I want full control over the content I purchased. It’s mine. Once you throw “publishers can allow this or that” into the mix, all bets are off. I’ve stopped listening because you just rented me content instead of selling me content.

I think the real failure here was in the communication about the licensing model. We got a couple of press releases with some bullet points but no real detailed information. Particularly around the resale hubs and so on - all that was talking-head-level-stuff, no real concrete… anything. I think a lot of fears could have been assuaged by just having those details ready up front. Can you show me one of these resale hubs? Can you give me any idea about where prices might start in there? What have publishers actually said about this stuff? There’s a lot of fear, uncertainty, and doubt there, and I think it fueled the masses. They should have been ready with a ton of details, but they weren’t, and now we are where we are.

What I’m curious about is if they’ll “phase in” the new model. Start off with the old, but then add components in one at a time. You can buy a disc-based game, but if you buy a digital game… now you have that 10-person-sharing-plan - a benefit of going digital instead of disc. Get people used to some of the cool parts without doing the “rip-off-the-bandage” approach to changing it up. I don’t see why they couldn’t.

I love the Disney Parks Blog. They post interesting stuff (if you’re a Disney fan like me), particularly if you’re into behind-the-scenes things.

Today’s post on Mickey and the Magical Map is cool and tells you about how they put that show together.

Seeing some of that behind-the-scenes stuff reminds me of a time back when I was younger, maybe… I don’t know, 10? There was some sort of promotion going on at a local department store. I think it was JC Penney, but I don’t remember exactly. They had some Disney character artists touring through and they’d give little demonstrations every hour and show you how to draw the characters.

I remember being really excited to see it, sitting on the floor in front of a small raised platform that had a chair and a drawing table. A bunch of other kids had gathered around, too, and we were all anxious to see what was going to happen.

Eventually a lady came out and talked all about drawing the characters - how you could imagine all of them as basic shapes, then sort of “tweak” the shapes to get a little closer to what you wanted. Donald Duck’s head is basically round, while Chip and Dale’s heads are more oval. That sort of thing. Looking back, it was all sort of basic drawing techniques - putting the cross-shaped guidelines on the head to place the eyes and nose, and so on. Simple stuff when I look at it now, but so inspiring and magical when you’re young, watching your favorite characters basically materialize in front of you from some simple pencil marks.

The artist gave her drawings away to the audience members as she finished them. I remember wanting one really badly but not getting one, being jealous of the kid in front of me who got the one of Chip.

I also got an opportunity back in college to work for a short amount of time at Will Vinton Studios. It was really cool to see the little sets that the stop motion animation was done on, how the cameras and the figures all came together to create this magical moving picture. I ended up writing some conversion tools for Kuper motion control cameras to help integrate computer animation with physical camera movements so computer animation and clay animation could coexist. I don’t know how useful it was, but I heard they liked it and used it quite a bit.

I still love seeing that stuff. How the animation is done, how the shows are put together… and when I see it, and remember, it makes me wish I was part of that magic. That I was helping to put on the shows, or create the animation, or make that happen for other people. My friends Sheldon and Jason are doing that, and I admit it makes me a little jealous.

Hey, Pixar… need any remote developers in Oregon?

dotnet, vs comments edit

In working on some NuGet packages, one thing I wanted to do was set up some configuration files in preparation for SlowCheetah integration. Instead of seeing a folder structure like this in the project…

  • ~/Config
    • MyConfig.config
    • MyConfig.Debug.config
    • MyConfig.Release.config

I wanted to see the file dependencies set up like you usually get with Web.config:

  • ~/Config
    • MyConfig.config
      • MyConfig.Debug.config
      • MyConfig.Release.config

That’s not really a straightforward thing to do, as it turns out.

Luckily, NuGet provides your package the ability to have a PowerShell script run at install time, and part of what it passes you is a reference to the EnvDTE project into which the package is being installed.

EnvDTE is the way you automate Visual Studio for things like custom tools and add-ins. I’ve messed around with EnvDTE before (though lately I prefer using CodeRush for my automation tasks) so this wasn’t too hard to get back into. Here’s the script for Install.ps1:

param($installPath, $toolsPath, $package, $project)
# Sets the configuration files to have dependent transforms (.Debug/.Release).
# Selections of items in the project are done with Where-Object rather than direct
# access into the ProjectItems collection because if the object is moved or doesn't
# exist then Where-Object will give us a null response rather than the error that
# DTE will give us.

$configFolder = $project.ProjectItems | Where-Object { $_.Properties.Item("Filename").Value -eq "Config" -and  $_.ProjectItems.Count -gt 0 }
if($configFolder -eq $null)
{
  # Upgrade scenario - user has moved/removed the Config folder
  # or has moved/removed the configuration files out of the folder.
  return
}

$baseConfig = $configFolder.ProjectItems | Where-Object { $_.Properties.Item("Filename").Value -eq "MyConfig.config" -and $_.ProjectItems.Count -eq 0 }
if($baseConfig -eq $null)
{
  # Upgrade scenario - user has moved/removed the MyConfig.config file
  # or it already has the dependent items set.
  return
}

# Config file exists, so update the properties.
$baseConfig.Properties.Item("SubType").Value = "Designer"

$debugConfig = $configFolder.ProjectItems | Where-Object { $_.Properties.Item("Filename").Value -eq "MyConfig.Debug.config" }
if($debugConfig -eq $null)
{
  # Upgrade scenario - user has moved/removed the MyConfig.Debug.config file
  # or it's already set as a dependent item. (Dependent items show up as children
  # of the file on which they depend, not as a child of the folder.)
  return
}

# Handle the update for MyConfig.Debug.config - set it as BuildAction = None
# and move it to be a dependency of MyConfig.config.
$debugConfig.Properties.Item("ItemType").Value = "None"
$baseConfig.ProjectItems.AddFromFile($debugConfig.Properties.Item("FullPath").Value)

$releaseConfig = $configFolder.ProjectItems | Where-Object { $_.Properties.Item("Filename").Value -eq "MyConfig.Release.config" }
if($releaseConfig -eq $null)
{
  # Upgrade scenario - user has moved/removed the MyConfig.Release.config file
  # or it's already set as a dependent item. (Dependent items show up as children
  # of the file on which they depend, not as a child of the folder.)
  return
}

# Handle the update for MyConfig.Release.config - set it as BuildAction = None
# and move it to be a dependency of MyConfig.config.
$releaseConfig.Properties.Item("ItemType").Value = "None"
$baseConfig.ProjectItems.AddFromFile($releaseConfig.Properties.Item("FullPath").Value)

What this does is switch this .csproj snippet…

<ItemGroup>
  <Content Include="MyConfig.config" />
  <Content Include="MyConfig.Debug.config" />
  <Content Include="MyConfig.Release.config" />
<ItemGroup>

Into this:

<ItemGroup>
  <Content Include="MyConfig.config">
    <SubType>Designer</SubType>
  </Content>
  <None Include="MyConfig.Debug.config">
    <DependentUpon>MyConfig.config</DependentUpon>
  </None>
  <None Include="MyConfig.Release.config">
    <DependentUpon>MyConfig.config</DependentUpon>
  </None>
<ItemGroup>

What I’ve not yet figured out is how to get a new custom element <TransformOnBuild>true</TransformOnBuild> to show up on the MyConfig.config element. From this article on MSDN, it appears there’s a much more involved bit of work to do and I’m not sure that I have access to all the requisite DTE objects from inside the script.

We’ve had a recent issue where Phoenix won’t do something because she claims she’s “scared”.

“Phoenix, can you come over here?”

“No,” she says. “I scared.”

“What are you scared of?” As if we didn’t already know.

“Bears. Bears eat my shoes.”

That’s right, she’s scared of bears eating her shoes. Or her coat. Or my car. Pretty much anything out there is something waiting for a bear to eat it. At night, we have this somewhat covered.

“The bear can’t get you, Phoenix, because you have your unicorn to protect you. Unicorns stop bears.” We’ll hand her this little stuffed unicorn and all is well.

“My un-corn.” Long “u” is a hard sound, I guess, so it’s not “unicorn,” it’s “un-corn.” Whatever.

This morning in the car, though, I didn’t have the unicorn and the bear talk started. I tried to think up something new.

“Daddy, I scared.”

Sigh. No unicorn. Well, let’s just get down to it. “Are you scared of bears?”

“Yes. Bears eat my shoes.”

“I know. But you like dragons, right?”

“I not dragon, I princen.” Hard “s” is also difficult, so “princess” becomes “princen.”

“Yes, you’re a princess… are you princess of the dragons?” I think you Game of Thrones folks see where I’m going with this.

“I princen of dragons!”

“That’s right, you’re the Khaleesi.”

“I kee-see!”

“Now, tell your dragons to stop the bears. Dragons can stop bears.”

“No, I not tell dragons.”

Dammit. “Why not?”

“Dragons scared of bears.”

Are you freaking kidding me? “Are you sure?” Then, out of nowhere…

“PA-KOW! PA-KOW! I shoot bear!”

O_o

Wait, what? “Phoe, you shot the bear?”

“PA-KOW! I shoot bear!”

Um. Well, uh… I’m not really sure where she picked that one up, but… I guess… bear problem solved, right?