I haven’t gotten a chance to put my media center together yet, but I got a comment that points to a pretty decent article about using the Xbox 360 as a media center extender. It may be easier than I thought. Looks like the .VOB files you rip from DVDs are actually renamed .MPG files, which can be directly streamed. I may have to try this out.
It would be easy enough to have the DVD backups on a drive and a virtual filesystem of symbolic links to all of the VOB files that have renamed targets (so “Cool Movie.mpg” would point to “Cool Movie/VIDEO_TS/VTS_01_1.VOB” and mask the whole rename issue). Wouldnt’ be hard to write a program that generates that filesystem. I’ll have to try it.
UPDATE: There seem to be two problems with the way Gizmocafe does things. First, it’s not really a proper DVD backup solution - it only works if your sole goal is streaming the movie. Half of the reason I’m doing this is as a backup solution. Second, you may have a little bit of fudging to do in the DVD ripping software to get movies with multiple VOB files to work. For example, the movie Borat seems to have three separate VOB files - those would have to be connected to so they could stream in one continuous movie. The Gizmocafe tutorial doesn’t really address that.
Problem: You have a Guitar Hero II X-Plorer controller for Xbox 360 and the whammy bar is loose. You want the whammy bar to tighten up without having to take apart your guitar and you don’t want to go through the exchange process with RedOctane.
Solution: Get four (4) size AS568A-008 (3/16” inside diameter) neoprene o-rings. Slowly push each one over the end of the whammy bar (the neoprene will stretch, but take your time with it because you don’t want to break the ring) and down to the base of the whammy bar as tight as you can. Four rings will cover the entire base of the whammy bar up until the bend. When they’re on, it’ll look like the picture.
The o-rings will generate just enough friction to make it so the whammy bar moves easily but will stay in place when you let go, leaving it in easy grasp for the next time you need it. Putting multiple rings on will keep the bottom one from slipping away from the guitar body and losing friction. Getting them to the bend in the whammy bar makes it just that much more secure because it’ll take more effort for the rings to round the bend and come loose.
Too Much Detail: I tried several ring sizes and materials to get here. Size 8 is just big enough to barely go over the whammy bar end and still fit snugly around the bar proper. Neoprene is the right material because other materials either don’t stretch quite enough or don’t offer enough friction. For example, I bought some rings from the Home Depot plumbing section that had an “oily” or “slick” feel to them because they were probably Buna-N and treated for resistance to oils and liquids. (I blogged about how I was learning too much about o-rings.)
Where To Buy: I bought my o-rings at McMaster-Carr. In the search box on their site, put “AS568A” and it’ll get you to the o-ring page. From there, select the “AS568A Dash Number” as “8” to get the ring size set. Finally, select “Neoprene” as the material. As of this writing, they only carry one product that matches those criteria. It’s a bag of 100 o-rings that costs $2.48 (no, you can’t get a smaller pack or buy individual rings - they’re an industrial supply store, not a consumer goods shop). Shipping was about $5 via UPS ground for me.
We tried this out last night in a feverish game of GH2 and it works pretty well. The rings never had to be pushed down or adjusted, it just worked. A sub-$10 solution and not having to actually open up the guitar? Can’t ask for much more than that.
UPDATE: While I’m happy to help folks out, I’m not in the o-ring business. If you want some o-rings, head over to McMaster-Carr and pick some up.
I subscribe to Consumer Reports and yesterday they sent out a review of hot dogs so folks would know the best kind of dog based on flavor, cost, and… uh… “health content” in preparation for summer BBQs.
Hebrew National was rated the best, with Nathan’s Famous coming in a close second. Now, I’ve had both, and while I like both, there’s just something about a good Nathan’s Famous dog that I can’t get over. It’s sort of like how Krispy Kreme donuts are just… better.
Anyway, that put me in a pregnancy-style craving for hot dogs. Nathan’s Famous hot dogs, to be specific.
After work, Jenn and I went on a mission. A mission for Nathan’s Famous. Unfortunately, there are no Nathan’s Famous restaurants in Oregon, so we had to search out the version you buy at the store (which is also excellent, but doesn’t offer quite the atmosphere of the actual shop).
Costco - no luck. I could have sworn I saw them there at one point, but not today. Fred Meyer… aha! There they are, sort of unobtrusive in the refrigerator case. Come to me, sweet dogs.
Fired up the grill at home, threw the dogs on, and watched the flame fizzle out after about three minutes of cooking because we were out of gas. Not to be stopped, the franks made their way quickly into the oven to be broiled to perfection. (I can’t stand boiled hot dogs. Seriously. No go.)
I ate two, but I swear I could have eaten the whole package. I’ll definitely be partaking this weekend (after refilling the grill tank).
When was the last time you went on a mission for food?
I’ve been converting a .NET 1.1 project over to .NET 2.0 and there are a lot of strongly-typed collections in the project that were generated by CodeSmith. Most of these collections were based on the ArrayList template that came bundled with CodeSmith and all of them used the “GetByKey” facility the generator offered.
I’m trying to reduce the codebase and take advantage of generics where possible to get rid of things like this. To that end, I’ve been converting most of these over to System.Collections.ObjectModel.KeyedCollection<T> (which also jives nicely with FxCop - the generated collections came bundled with several items that set FxCop off).
Ironically, that means I end up generating a very small amount of code (and corresponding XML documentation) for each of these collections - a class derived from KeyedCollection with the appropriate constructor overloads and the override for the GetKeyForItem method. So I made a - wait for it - CodeSmith template to do exactly that.
If you’re a CodeSmith user and you find yourself creating a lot of simple KeyedCollection implementations, grab the template and go to it.