June 2009 Blog Posts

Goodbye, Grandma Jeanne

My grandma, Jeanne Ann Illig: 1922 - 2009A couple of weeks ago, on June 11, my paternal grandmother passed away. She had been having some age-related health problems for a while, so it wasn't a surprise, but it was still a sad loss.

We lived next door to my grandparents when I was a kid and visited them a lot. There was a path cut from our backyard to theirs so we could get there without walking along the road. It feels like it wasn't that long ago where she was out playing baseball with us out there. I loved her a lot and those are some great memories I'll have with me always.

Grandma was actually a very talented artist. My family has some amazing pencil drawings she did as a young lady. She didn't pursue it into her later years, but she always encouraged us kids to follow our artistic passions.

From her obituary:

Jeanne Illig, 86, of Milwaukie, passed away Thursday, June 11, 2009. She was born on Oct. 1, 1922, in Minneola, Long Island, NY, to Maurice John and Jeanette (Jahelka) Rethen.

She worked as a long distance operator prior to marriage. She married Carl Illig on Nov. 4, 1944, at Mitchel Field in Long Island.

Jeanne moved to Oregon in 1952; lived in Estacada for 34 years, at Summerplace for 10 years, and has lived in Milwaukie since 2001. She loved square dancing and was a member of the Record Breakers Square Dance Club. She also enjoyed ceramic painting and artwork.

The B-52s at the Oregon Zoo

The B-52s play the Oregon Zoo. Yes, this is a horrible picture. Trust me, it's them.Jenn and I went on a little adventure on Friday night and saw The B-52s live at the Oregon Zoo. The zoo has a pretty awesome concert series going this year and we figured since we'd never been to a concert at the zoo before, this would be a good one to start with.

The tickets let us into the zoo at 4:00p, the doors to the amphitheater opened at 5:00p, and the show started at 7:00p. We got there about 4:30p and the line was already super long, so I guess now we know - get there at 4:00p. We still ended up getting decent seats - not awesome, but decent - about halfway back.

The only real problem was the rain. Between, say, 5:00p and 7:15p it was raining like a torrential downpour, so Jenn and I were sitting on these little lawn chairs we brought, huddled under a blue plastic tarp, sucking down a $25 pizza and a $6 drink. Not a big deal since the opening band, The 88, was okay... but not awesome. (It reminded us a little of the Paul and Storm song "Opening Band.")

Then The B-52s came out and the rain stopped (or, at least, kept to a very, very light drizzle), and people stood up and danced. As much as you can "dance" in the middle of a soaked-out zoo amphitheater, that is, so it was more standing and bobbing up and down. But there was definitely movement.

They totally rocked. I'm a latecomer to the whole B-52s thing, so the stuff I'm most familiar with is off the Cosmic Thing album and a few of the radio hits. They played some that I wasn't familiar with but liked a lot so I ended up doing a little Amazon spree to get a few of the earlier albums. Kate Pierson still has it and is still one of my favorite voices, and Fred Schneider with his unmistakeable sprechgesang style is just fantastic.

Their part of the show ran, oh, maybe an hour and a half, then they were done, but it was a great 90 minutes. Hearing "Love Shack" and "Rock Lobster" live was worth the price of admission. "Knock a little louder, Portland!"

Defragmenting Windows Home Server

I was noticing some of the disk access on my Windows Home Server was running a bit sluggish and I thought about how usually when this happens on other computers, I'll run a defrag... but since Windows Home Server has a different filesystem, you can't really just do a stanard defrag, can you?

Turns out, there are Windows Home Server defrag products.

The two that seem to be the most popular are PerfectDisk 10 and Diskeeper 2009. Both of those have WHS-specific versions that integrate nicely with the WHS console and understand that filesystem. There's a great head-to-head review of these products over at We Got Served. The end result? It's a tie - they are comparable products.

I ended up choosing PerfectDisk based on the price point. It costs just over half of what Diskeeper costs ($50 vs. $80) and I found this coupon code (SUMMERFUN20 - expires June 30) over at Philip Churchill's site that got me $10 off that so I've got WHS defrag for $40. Can't beat that.

UPDATE 1/26/2010: I noticed after about a couple of weeks of PerfectDisk for WHS use that I was getting health warnings every three or four days on my WHS system disk. At first I thought I was going to have to replace the disk, but on a hunch I disabled defragmentation of the system drive. While the warnings on the system drive stopped, I did get a warning on another drive, so I disabled PerfectDisk on the WHS entirely. Since then I haven't gotten any disk health warnings. I've run all the disks through extensive diagnostics so I have to blame PerfectDisk for the warnings. I'm going to post to their user community and see if anyone else is having the same issue, but in the meantime, YMMV.

UPDATE 2/5/2010: I've started talking with PerfectDisk support about the issues I'm seeing. I'll keep updates running on the explanatory blog entry.

posted @ Monday, June 22, 2009 8:22 AM | Feedback (1) | Filed Under [ Media ]

Levels of Plagiarism

OK, so I'm familiar with those blogs that basically just scrape your RSS feed and steal your content word-for-word, and I'm a victim of several of those myself. It's always annoying when someone refers me to one of the articles on those blogs and then I'm like, "Uh... yeah... I wrote that. Months ago."

I just got an anonymous comment, though, that pointed me to a new and interesting level of that sort of content theft. The funny thing is, they accused me of being the thief. Anonymously, but still, the accusation bugs me.

The article in question is my set of instructions for getting the most out of Twhirl. I posted that back on April 22, 2008. The anonymous comment told me I had plagiarized an article on a blog that was posted on February 18, 2009. The URL of the ripped-off article is http://www.themoxiemomblog.com/headline/how-to-easily-create-a-customized-twhirl-color-scheme (I'm not hyperlinking it because I'm not giving that ripoff any Google juice. Note, also, that IE8 crashes on certain pages on that site... I don't know if it's trying to do something malicious or if that's just IE8, but you've been warned.)

This copy actually required a human being to reword the article. It's got exactly the same points, the same steps to create a custom Twhirl theme, everything... but sentence structure was switched. For example:

My sentence: Turn off "prefix tweets with sender's name."
Their sentence: You can turn off the prefixing of tweets with the sender's name.

My sentence: Turn off "mark received tweets as new."
Their sentence: Turn off all new tweets as being marked.

If you open the articles side-by-side, it's a blatant theft of my content, yet I'd classify this as far more annoying than the robotic theft of my content wholesale because this level of theft actually requires a human to tweak it. And the fact that someone accused me of stealing my own content? ARGH.

Find Deadlocks with Typemock Racer - And Get a FREE License!

Typemock released a new tool you can use to identify potential deadlock conditions via unit tests called Typemock Racer. If you've wondered how to test thread safety and such, this is for you.

Plus, with the release, they're giving away free licenses. Try Racer out, blog about the experience, and tell Typemock about it, and you'll get a license for Racer. The full details are over on the Typemock blog.

posted @ Wednesday, June 17, 2009 7:50 AM | Feedback (0) | Filed Under [ .NET ]

Claimed my Facebook Username

Just claimed my Facebook username. You can now find me at:

http://www.facebook.com/tillig

If you haven't gotten yours, you can get one at http://www.facebook.com/username/

First come, first serve!

Netflix Integration with Windows Media Center - Poor Quality

I finally got a chance to try out the Netflix integration with Windows Media Center last night, and I have to say - the playback quality is horrible. Like, really, truly bad.

The test:

  • Pick a movie from my instant queue. From that movie, pick a section as the test.
  • Watch the section of the movie from the Xbox 360.
  • Watch the section of the movie through Windows Media Center (Silverlight based player).
  • On the same PC as the Windows Media Center test, watch the section of the movie through the normal Netflix streaming player (Windows Media Player based player).

I ran the test. The results:

  • The Xbox 360 had the best picture and sound quality. Streaming was smooth with no hiccups and the video came through in HD. Initial video buffering was fast and playback started in a couple of seconds.
  • The standard Netflix player (Windows Media Player based) was the next best. The video wasn't as high quality as the Xbox 360, but the video was smooth and watchable, and the audio was reasonable. Initial video buffering was fast and playback started in a couple of seconds.
  • The Windows Media Center integrated player (Silverlight based) was unwatchable. The video looked like it wanted to stream in HD, but something (network? processor speed? video card?) wasn't liking it so much, so the video was very jumpy, like you'd see about half a second of video, it'd freeze, the sound would stop, then the video would resume, the sound would resume, and the whole stuttering effect would repeat. Initial video buffering literally took like ten full minutes - I left the room, got a drink, came back, and it was still going.

I ran the test on the same physical PC with the same network connection to try to rule out hardware or network issues. I didn't go to the lengths of determining if the two players stream from different back-end servers or anything, though, so there well may be something on the network that caused the issue.

Long story short, though, I'm totally unimpressed. I had high hopes, too. Guess I'll stick with the Xbox 360 streaming for now.

posted @ Monday, June 15, 2009 9:15 AM | Feedback (2) | Filed Under [ Media ]

HD Camcorders and Video Files

Canon VIXIA HF200 HD Flash Memory CamcorderJenn and I picked up a Canon VIXIA HF200 HD Flash Memory Camcorder a bit ago since we didn't have anything that'd capture decent video and we wanted something a little more than those little Flip Video deals that have become so popular.

I've been messing around with it and so far I like it a lot. It's very light, it's easy to work with, and the video that comes out of it is great - we've taken some test videos and played them back from the camcorder directly to the TV and it's beautiful.

That said, I don't want to be one of those people who leaves their videos on the camcorder and just buys new flash memory when it's filled up. That's dumb. I gotta get the videos off the camera onto the computer.

To that end, I looked at what the camcorder records. It uses the AVCHD format (.mts files), which, from what I can tell, is basically "the Blu-ray file format." (Yes, I know that's a technical generality and it's not complete and correct. Just go with me here.) Honestly, I've lost track of all the different file formats for things and what to do with them all. I have my music in Apple Lossless (AAC) and MPEG-4 (also AAC, but not)... I have movies in full VIDEO_TS format (which is sort of MPEG-2 in disguise)... I've got some videos that are DivX, some WMV... and I just want to play the damn things.

So I started some research. Turns out I'm much less "in the know" about how these things work than I thought. Apparently some formats are just "containers" like Matroska (.mkv files) and they might contain video of any format (like H.264) with accompanying audio of any format (like AAC). ARGH.

When this happens, I start playing dumb. I mean, average people buy these things and somehow get them to work, right? They don't go do all the research I do to figure out what's what. That means - time to install the software that comes with the camera.

I did that - installed the bundled software - and it's absolute garbage. The UI is confusing. The manual that comes with the software doesn't actually get installed with the software so you have to go digging on the installer discs to find it. The manual says the software will work with certain disc formats and file types, but it's wrong. In the end, the only thing it does reasonably is copy the original .mts file from the camera... but don't move that file once it's copied over or the bundled software will lose track of it and corrupt your video library. Absolute crap.

I went back to research because there have to be real, decent, non-bundled apps that will do... something... with these .mts files. Turns out I have a few options (including Nero 9 and Cyberlink PowerProducer). I'm also trying to figure out how to maybe get these things to play natively on... some device or another. Playstation 3 will play the files, but Windows Home Server (using old Windows Media Connect) won't share .mts files because it doesn't know them, so I have to sneaker-net them over to the PS3 on a USB stick. I can install a codec or three and get them playing in Windows Media Player, but I have to manually do a File -> Open on them because the extension (.mts) isn't registered to anything. (Yes, I can fix that, but should I?) How do I get Windows Media Center in my other rooms streaming these videos? Is the Cyberlink HD264 pack the answer?

After going through all of this, I returned to my original question - how do average people get these things to work? I decided that they don't. The difference between the average person fighting with this and me, though, is that the average person probably doesn't care that it doesn't work, or gives up in frustration and stops trying. I know enough to be dangerous and I care that it doesn't work. That's a dangerous, stressful combination. Maybe I need to just stop caring.

But if I don't care, who will? And, ultimately, what will become of my videos?

posted @ Monday, June 15, 2009 8:49 AM | Feedback (1) | Filed Under [ Media ]

Picture Taking with Disney Characters

I'm not sure what made me think of this story, but it made me snicker to myself so I thought I'd tell it.

Back in October of last year, Jenn and I went to Disneyland. One of the days we were there, we were wandering around in California Adventure checking out the Pixar attractions and we found a really neat cut-out of Wall-E that you could take your picture with. As we headed over to see it, one of the myriad photographers in the park approached.

"Would you like to get your picture with-"

"Wall-E?" I interrupted.

"-Frollo?" the photographer finished, and motioned to a character standing a few feet away.

I had to think fast on this one. To be honest, I didn't know who Frollo was, but since the actor was standing not too far off, I kind of felt bad. I mean, regardless of who Frollo is, it didn't look like he was as popular as a Jack Sparrow, for example. And how totally offensive would it be that the tourists would rather have their picture taken with a plywood cut-out than with you, the actual costumed character, live in the park?

"AND Frollo, of course," I replied.

We headed over to the Wall-E cut-out, got our pictures there, and then over to Frollo, and got some additional photos. As we walked away, I had to ask Jenn, since we hadn't consulted on this. "Who the fuck is Frollo?"

"I have absolutely no clue," she said. We peeked behind us to get a second look at the character. Nope, no idea whatsoever. Didn't even look remotely familiar.

It was only later in the day when we finally looked him up online. Apparently Frollo is the bad guy from The Hunchback of Notre Dame. Can't say I've seen that one, even to this day.

It makes me wonder if that's sort of punishment or something for the character actors there. "Piss us off, and we'll suit you up as a partly-known character from one of the less popular films! That'll show you!" Or are there actually people who hit the park and look for Frollo?

I might actually make it a game for next time we go to Disneyland - "Find Frollo."

More interesting is the relative scarcity of Alice (from Wonderland). She's my favorite, and I searched the park high and low for her, only to find her and the Mad Hatter making an exit for the break area. Frollo, more accessible than Alice? WTF?

Skipping N-Level Deep Generic Constructors with Typemock Isolator

Typemock Isolator 5.3.1 was released today, and with it the ability to mock base class constructors using a syntax like this:

Isolate.Fake.Instance<Derived>(Members.CallOriginal, ConstructorWillBe.Called, BaseConstructorWillBe.Ignored);

That's pretty cool. But something I uncovered in working through a complex test scenario (and getting a little help from good old Typemock Support) is that you can mock a constructor N-levels deep using a slightly different syntax. The caveat is that it only works on types that have generic type parameters.

Let's say you have a three-level-deep class hierarchy like this:

public class Level1<T>
{
  public Level1()
  {
    throw new NotSupportedException();
  }
}

public class Level2<T> : Level1<T>
{
  public bool Level2WasCalled { get; set; }
  public Level2()
  {
    this.Level2WasCalled = true;
  }
}

public class Level3<T> : Level2<T>
{
  public bool Level3WasCalled { get; set; }
  public Level3()
  {
    this.Level3WasCalled = true;
  }
}

You want to instantiate a Level3<T> object, and you want to run the Level2<T> constructor, but the Level1<T> constructor throws an exception so you want to stop running the real constructors there. It's a little more complex setup, but you can do this:

[Test]
[Isolated]
public void SkipLevel1Constructor()
{
  var fakeBase = Isolate.Fake.Instance<Level1<string>>();
  Isolate.Swap.AllInstances<Level1<string>>().With(fakeBase);
  var fake = Isolate.Fake.Instance<Level3<string>>(Members.CallOriginal);
  Assert.IsTrue(fake.Level2WasCalled);
  Assert.IsTrue(fake.Level3WasCalled);
}

This test will pass. Now, granted, if you're doing something more fancy, the Isolate.Swap.AllInstances call may have some unintended side effects since it'll also intercept new instances of Level2<T> and so forth, but if you're doing something reasonably simple where the Isolate.Swap.AllInstances is OK, here's one way to skip an n-level deep constructor.

UPDATE: It appears you can use Isolate.Swap.NextInstance instead of Isolate.Swap.AllInstances, and that's actually recommended so you have fewer potential side effects. No need to mock all instances if you don't have to.

All of this, of course, gets the "Works On My Box" seal of approval, and the standard "if it totally hoses you or doesn't work for you, sooooooorrrryyyyy" style disclaimer. Also, while I found this during sorting an issue out with Typemock Support, I can't say they "officially support" doing what I'm telling you about here. It just happens to work. Whether it's functioning as designed or whether we're inadvertently exploiting something in the product that will be patched up later is yet to be seen.

Works On My Machine

posted @ Wednesday, June 03, 2009 10:01 AM | Feedback (1) | Filed Under [ .NET ]