Friday, December 28, 2007

Maggiano's Sucks

There's a relatively new chain of Italian restaurants out there called Maggiano's Little Italy. I went there last night with the impression that it's supposed to be an upscale chain.

Wrong. The restaurant charges upscale prices (~$16 for gnocchi), but it's anything but upscale.

For one thing, don't bother getting a reservation. They take unlimited reservations. So even with a reservation, we waited 45 minutes to get seated. Restaurants like this seem to forget that reservations are supposed to be for you as much as they are for the restaurant. Yet, you know this is probably a daily event there. They don't care.

They also give you a massive amount of food. The guy next to me ordered spaghetti and meatballs, which was about 2 pounds of pasta and two meatballs. The food is good like McDonald's is good. It tastes good and is loaded with calories to make it good. The reality of food is that it's not hard to make good tasting food in this world. You can go to Safeway or Dominick's and buy a boxed spaghetti dinner that tastes good because they pile in a bunch of MSG. At Maggiano's, the food is good because they add a stick of butter and a quarter pound of Kraft paramesan to beef to make their "Little Italy" beef dish. Not exactly a culinary experience worth waiting for when you have a "reservation".

Maggiano's is typical Rich Melman fare... a nifty concept restaurant with huge tasty portions for the mindless Chicago suburban eater. I'm not sure what's more shameful, that Melman keeps opening worthless restaurants like this, or that people are falling all over themselves to go back there.

Wednesday, December 26, 2007

What Vista Needs

The reality of Vista is that, even though it sucks, does it matter? All operating systems suck. Vista sucks more than XP and MacOS X and less than say, Windows Me and MacOS 9. But since all OSes suckj, the reality is it doesn't make that big of a difference in your day to day life whether you use Vista or XP.

That doesn't mean that Microsoft doesn't have a big problem on their hands. The hatred of Vista leaves an opening for competition to move in and sell a lot of units.

What Microsoft has to do is look at what Intel did a few years ago.

The Pentium 4 was a hugely flawed chip. Intel shipped millions of them, they made a lot of money, sure. But they knew that the Pentium 4 was flawed very early in its life. So while they were selling Pentium 4s, they scrapped plans to try and build on that architecture and instead went back to the last architecture (Pentium 3/Pentium M) and started from that.

Microsoft should do the exact same thing with Vista. They'll ship millions of copies. Don't be fooled into thinking that this is because the public really likes your product. The only reason people bought Vista is because it's what their $599 Dell came with (usually) . So take a long hard look in the mirror: all operating systems suck, and Vista happens to suck more than the last Windows version.

What's the fastest way out of this problem?

Basically, go back to XP. Rework the UI a little bit, and throw out most of the crap you've messed up with Vista. Drop the insane shutdown menu that took months to develop and is still more complicated than XP. In fact, drop everything except stuff that can easily be installed on top of XP, e.g. WPF, .NET 3.5, etc. If you want to add features to the Windows Explorer, keep the ideas that worked (the Windows-key search box) and drop the things that didn't (Aero glass, the new networking menus, the new save as box, the new path browser at the top of windows.).

And bring back hardware accelerated GDI+ drawing... oh wait, XP has that.

This was done really well, it's a tongue in cheek review of Microsoft's "new" OS, Windows XP, and how great it is to upgrade from Vista.

Saturday, December 15, 2007

Why your fancy new programming language choice is probably going nowhere

This week I was CCed on bunch of email threads discussing new/old programming languages. The general idea thrown around in these threads is switching to a completely different language because it has an inkling of a high level concept that might help you. One example would be a concurrency-oriented functional language like Erlang in a new space, like, for example, desktop Windows applications that could use multithreaded computation.

Ok, here's the problem: once a language is established in a space, it's really difficult to dislodge it. So if one application developer switches to Erlang for Windows programming just because it can deal with concurrency better, that won't start a trend worldwide. That person will write a ton of extra code just to get it to work -- hooking Erlang to the Windows SDK (C++/VB) -- and then who supports it? They do! The problem is that it's not up to you, the application developer as to whether or not the primary language gets dislodged. That's up to the platform provider.

The only new language lately that's making inroads on C++ for Windows application development is C#. Why? Because it's Microsoft, of course. They're the only ones who can push on that sort of thing and make a difference because they'll be the ones to support it, not leaving it to the application developer to either buy third party support or support it themselves.

Java is a really great example of failing to move in on established spaces. In 1996 or 1997, Java was hugely hyped and being adopted by many. Yet the original "write once, run anywhere" promise made back in 1996 or 1997 has been destroyed by the same old C and C derivatives (C++, Objective-C) on all platforms (Windows, Mac, Linux, Unixes). Because really... why would you bother with Java when your platform API is in a C-language? You'd get the chance to try to shoehorn Java into working in environments constructed entirely around C.

However, Java did make some good inroads into unexplored spaces, namely the web and mobile devices. If a website isn't running PHP in this world, it's probably running Java. And most mobile devices (except iPhone, Qualcomm's BREW and Windows Mobile devices) have Java runtimes.

Speaking of the web. The web is probably the only current area that won't resolve the language issue anytime soon -- at least on the back end. A web application back end interface to the client is comprised of text layout instructions sent to a user client (HTML). You can interface with this easily in any language you want. Open a socket, send HTML through it, done. This is why it's really pretty simple to have a language like Ruby come out of nowhere and get a lot of steam in the web space.

One thing is settled, I think, and that is Javascript is the language we'll be using on the client side. Yes, Flash and actionscript will still be used for widgets and stuff. But Javascript is what you use for applications on the web, like Gmail, because all clients interface with it. Plus, actionscript and Javascript are supposed to merge with ECMAScript 4.

By the way.... the threads included a bonus of the age-old LISP angst that is well known to Slashdot readers. Get over it already. This isn't because of some worldwide anti-LISP conspiracy. The world won't write new code in LISP for the same reason they wouldn't use COBOL. There's no momentum there anymore. So drop the LISP persecution complex.

Sunday, December 09, 2007

Wii vs. Xbox 360

On my walk today, I was wondering why people are so crazy about the Wii that they'd pass up buying an Xbox 360 for almost same price. It makes no sense to me since I feel like I've gotten a ton of value out of my Xbox 360 and I paid $400 when i bought it.
Excel was still open from the last post, so I decided to make yet another chart outlining some of the differences between the Xbox 360 and the Wii. Included are online multiplayer, number of metacritic games over 90 and 80, and some fun items. Enjoy.

TopicWiiXbox 360Advantage
Cost$250 $280/$350Wii
90+ Metacritic Games411Xbox
90+ Non-Nintendo Titles111Xbox
80+ Metacritic Titles1284Xbox
Oversized PersonalityMiyamotoBallmerPush
Internet Gripe"Two Gamecubes Duct-Taped together""Red Ring of Death"Wii
Major ProMotion-based controllerNo Motion-based controllerXbox
Major ConCan't find oneSupports evil empireXbox
Supports HDNoYesXbox
Online MultiplayerSomeMost
Downloadable GamesYesYesPush
Plays Mp3NoYesXbox
Plays DVDsNoYesXbox
Plays Videos from PCNoYesXbox
Media ExtenderNoYesXbox
Cute Mii charactersYesNoXbox
Lame NameYesNoXbox
Requires ExerciseYesNoXbox
Thankfully Not Made ByAppleApplePush

Why you should use H.264 to encode video

I've been doing my homework on the byzantine world of codecs for video and I've come to the conclusion that if you want to compress your video for the widest range of software and hardware, you should do it with the H.264 codec.

Here's a table that demonstrates why.

The orange "Yes" boxes means it requires an additional plugin, but can play it.

H.264 is compatible with pretty much every device and program I use (and most people use). For media playback and sharing, I've switched from WMP to Zune (software) since it can play H.264 out of the box.

Even if you're on Windows, this can show you what a losing proposition it is to encode with Divx and Xvid. You might be able to play them back on your Windows machine, but the only stock machine that plays it back without an additional plugin is your Xbox 360! I'm not really sure why you'd encode with either of these anymore except that they're faster than H.264. Maybe someone can enlighten me in the comments.

WMV is a slightly better choice if you plan on always expecting your audience to be using Microsoft devices, and Silverlight to view the content on the web. It's easy to encode with Windows Movie Maker. However, Flash just published their update the other day that provides H.264 video in the flash plugin. I was using Silverlight video for a website, but I think I'm going over to Flash now that H.264 is provided, and all of my devices support it so well.