ScottGu Article on LINQ

Scott Guthrie has the best article I've seen so far on LINQ so far. He's glossing over how to do some of the fancier stuff such as supporting all this stuff in your own objects (so instead of just a List and arrays), but overall the article demonstrates LINQ incredibly well.

I wish I were smarter

Seriously, read this article:

Light's Most Exotic Trick Yet: So Fast it goes... Backwards?

I like to read up (or watch up on Nova) on the dumbed-down scientific theories presented for the layman. It's just baffling to me how people can me up with this stuff.

Great Lisp Article

I've been debating learning Lisp over the past few months but never could get into it. I've had Lisp books on my Amazon.com wishlist for quite a while but haven't bought them yet.

So I found this Lisp article via John Lam that describes Lisp in a manner that is incredibly accessible to people without any Lisp knowledge other than "it works on sets" (which makes no sense by itself).

Great article, I'd encourage anyone to read it. I'm actually going to go out and buy my Lisp books that I've been putting off.

Shadowrun PC XBOX360 Game Announced To Fan Outrage

It was announced recently and they now have an official website. They have some forums and so far they're not getting very many supporters of the idea of making a team-based FPS game from a tabletop RPG.

If you're a nerdly like myself, you may know Shadowrun, and you're probably also at least disappointed in the decision to make the game in its current format. It's an odd decision to use an RPG genre for what is essentially a cookie-cutter game nowadays. They could have created their own and not paid the royalties.

The guy who's making the game has a blog post explaining the decision, however the reasoning is a bit short-sighted. The one thing I think should be realized is that unless this game is drastically better than the already near-perfect team-based FPS games out there, there won't be any reason to buy it. If nobody buys it, the reasoning that they're going to have a series of games won't hold up because nobody will pay for a part two if part one never made any money.

Eh, it's a shame they decided to take this route and not a slightly more involved game (like Deus Ex) but still use some of the easier to sell semantics of a FPS game.

Please Please Please Think About Where You Put Your Menu Items

I did some work in InstallShield today and went to check in my merge module to source control. I've never been a multi-keystroke shortcut kinda guy (ALT+P L I for instance) so when I have many menus to navigate through I usually use the mouse, albeit rather quickly. Sometimes when I'm not careful, I'll go a tiny bit too far and hit the next menu item. Usually this is not a big deal, but when you put Check In and Undo Check Out right next to each other it most certainly is a big deal.

This wouldn't be too bad if InstallShield actually gave you a warning before undoing your checkout. Visual Studio.NET gives you a warning. Vault has a warning option (that isn't enabled by default and doesn't affect InstallShield, it's for their UI only), though you'd think that the app hosting the SCCI interface would make sure to warn the user that they're about to lose work.

At least it was a small-ish merge module.

Source Code for the Built-in ASP.NET 2.0 Providers Now Available for Download

Ala Scott Guthrie's weblog, Microsoft released the source code for all the built-in ASP.NET 2.0 providers (membership, site map, session, etc).

I'm actually rather surprised they did this. I'm impressed they would understand the value of showing their source code (not in the way all the anti-MS zealots want) to the various real-world components they have. It's one thing to read an article on MSDN and get a Hello World example, it's another thing to see the code they actually wrote.

IPTV

Ars has a good introduction to IPTV and points out one major problem that has me wondering how useful the technology will be to the average multi-television home: simultaneous streams. IPTV won't similar to cable in that all channels won't get pushed to your house. Instead, only the channels you request will get sent to your house. This means that your phone line's bandwidth is the limiting factor in how many channels you can receive at once.

There are people on tivocommunity.com who frequently talk about having a dual-tuner DVR in their bedroom and two on their main television (and I'm sure they have a TV or two elsewhere) and record on all of them at once. That's up to five simultaneous streams and it's not necessarily going to be possible, considering the bandwidth required for each stream. Plus, if any of the shows are HD signals, then that will cut out 2-3 additional SD streams that can be received.

Even Fios and other fiber-to-your-door services that can achieve much greater speeds than people are used to with standard phone lines aren't fast enough to support the kind of television that the cable companies have gotten everyone used to (both kids watching TV in their room, the parents watching a show in the living room and recording another).

Tivo Home Media Engine For .NET

Everyone who's been unhappy that TiVo only released their Home Media Engine APIs for Java can be a bit relieved. Gary at ByteBuilder has released a version for .NET. It doens't contain a UI toolkit, but it gives you a great start to building .NET server applications that enable your TiVO to interact with them.

I've been packing for the past two weeks (that's about how long ago he put up the code) so I've only barely gotten to look at the code. It's similar to the Java APIs but takes advantage of some .NET specific classes and to un-Java the API. I'm hoping to be able to start building something soon.

Download the source code.

CableCARD Overview On Ars

ArsTechnica has a good overview of CableCARD (what it is, what's coming in the future, what's going to obsolete it). Even though there will potentially be a new technology shortly after CableCARD 2.0 (which offers 2-way communication features for capabilities like video-on-demand and pay-per-view), I still can't wait to get my hands on one of the Series 3 TiVos with CableCARD support. I'm curious, since TiVo constantly updates their software, if it will be able to support the software-only CableCARD successor when it comes out. As long as the runtime environment for the software isn't a hardware component required to be embedded in compatible devices (think secured bytecode interpreter on a chip for instance), I don't see why the Series3 couldn't support it.

What do you do when the owner of a project get hits by a bus

On my other blog, I've posted about the need to keep your work maintainable by other developers on your team. It's a bit rambly and I mostly wrote it because of my recent (past couple years) work on building installers. Here's an excerpt:

I can't even remotely explain how important I feel the "hit by a bus and now we don't have any who knows [x]" behavior in companies is (or rather, the lack of said behavior). I think it's just a common behavior when you have a single person work from start to finish on a given section of a software application: you have the guy who wrote the interface, the girl who wrote the server application, the guy who built the installer. Ask one of them to take over for someone else during a vacation period, and you'll likely get a blank stare and a "it's not my code so I'm not comfortable working on it", or perhaps the work will get done but get done incorrectly, thus requiring the originator of the code to re-implement it correctly.

I've experienced this at every job I've been at. I'm the ALE (Application Level Events) "master" in our product. Aside from Daniel, I'm the only engineer who thoroughly knows the specification. Aside from some coworkers' spelunking through my code, I'm the only one who really knows the server-side code. There are two coworkers who could pick it up really easily though, so the ALE service will be maintainable if I get hit by a bus.