Finally excited about AJAX

I've known about AJAX since the acronym was first coined. I saw the buzz when Google first loosed "suggest" on an unsuspecting community of developers. A palpable murmur swept through online communities as thousands of developers brought up on GETS and POSTS asked, "How are they doing that?"

It turns out that the way Google was doing it was sophisticated, but not revolutionary. In fact, it was a great use of a collection of technologies that had been around for a bit; Google just managed to make them sing together.

The only bad news about AJAX was that it was ugly. No, the apps were beautiful -- it was the code that was ugly. So AJAX went on my personal radar screen of things that were going to change the way I do development... as soon as the kinks got worked out a bit.

The last 6 to 12 months have seen the tempo really start to pick up. In no particular order, we've seen:

  • AJAX-enabled component suites have become common. There are really solid releases from well-known vendors like Infragistics, as well as strong newcomers like ComponentArt.
  • Microsoft's Atlas is nearing release. Like many of their products, they're not breaking too much new ground, but their presence provides a much-needed center of gravity for developers and vendors alike.
  • There has been an explosion of "2.0" sites using AJAX. They're literally everywhere you turn.

I've played with some of these control suites (Atlas, Infragistics, ComponentArt). They're nice. A whole lot nicer than that first Google JavaScript code. But they're still a fair bit of extra work, relative to making the same UI without the whizbang.

So I was just a bit skeptical when I saw a link pop up in some Google search I did about an open-source framework that claimed to produce AJAX-enabled web applications from Windows Forms projects.

Riiiighhhhht.

But it's true. Almost. It's almost true, and that's a whole lot higher than the current bar. The project is called Visual WebGui, and it damned near does exactly that. You develop in a WinForms application using a set of controls from Visual WebGUI (that's the first catch), and when you run it, you've got an application that looks impressively like a WinForms application, but it's running in a browser. And no, not just IE -- I created an app in less than two minutes and ran it in both IE and FireFox.

This project has some serious chops, and they're executing on more than just technology. Visit the web site, and you'll see a well-done web presence, complete with documentation and an impressive collection of video tutorials. Watch one or two and see for yourself if this is all I've made it out to be.

Is it ready for prime time? Not quite, if you want my honest opinion. In playing with this toolset for a couple days, I ran into a few too many cases where I had to blow a form away and start over because I got myself into an unrecoverable error state. This sort of problem isn't a deal breaker if it happens every once in a while, but at the frequency I saw problems, it would be a problem.

I can assure you, though, I'm keeping my eye on this project. I've seen hints that they're going to try to enable Mono support, too, which would score extra points in my book. I doubt this would ever be a mainstream deployment platform, but I think it's important to have that option.

So go take a look - I think you'll be impressed.

Why do I read blogs?

If you've visited LinkedIn lately, you've noticed their new Answers section. I just finished posting an answer to Al Tepper's question: "Why do you read blogs?"

Al asks:
Why do you read blogs?
What is the biggest draw? What keeps you coming back? What gets you commenting? What gets a blog in your RSS reader? What makes you talk to others about a blog?

I began typing what I believed would be a one- or two-line answer, and the next thing you know, I'd rattled off a couple of things that do, in fact, bug me about some bloggers. Here's my reply to Al:

Before RSS became popular, the number 1 factor for me was frequency of updates. Now, however, I'm far more concerned with quality and relevancy. It costs me nothing to add a feed to my reader, and as long as the author respects my time as a reader, I'll leave the feed in my list.

What do I mean by respecting my time? Here are some things that'll cause me to drop a feed:

  • Lack of full-text RSS. I hate "teaser" feeds.
  • Repeating a link without adding any content. If there's a popular story going around, I don't need another link to it. I want you to add value. Explain why you care. If you want to just share links, use Google reader to share it and publish your link blog.
  • Adding a blog entry just for the sake of publishing something. Some of the most valuable feeds in my list publish very infrequently. If you don't have something to say every day, then don't.

You'll notice I keep referring to "feeds" rather than blogs. That's purely intentional. If you're not doing RSS, and doing it right, you're probably off my radar. That's also how I share with others, by the way -- I use Google reader, and I publish my shared feeds.

Related Links
http://www.fullfeeds.com -- The Campaign against partial RSS feeds
My Google shared links feed

Yahoo! buys MyBlogLog

You've probably noticed the MyBlogLog sidebar on the left of this site. In case you haven't checked into it, this is a social networking tool for bloggers, linking like-minded blog writers and readers, as well as introducing readers to blogs they might not have noticed otherwise. I've been a member for almost two months, and I really like it.

So does Yahoo! -- they just announced that they bought MyBlogLog for a little over $10M -- read more here.

Windows Home Server – Good or Evil?

If you're watching any of the news from CES, you've seen announcements about Microsoft's new Windows Home Server. When I initially heard about this, I was really excited, but when I started to learn more, my excitement faded, to be replaced with nervousness and even bitterness.

What changed my mind after my initial take, and will I ever come back to the Windows Home Server Camp?

First, let me catch you up if you haven't seen the announcements (links at the end of this story). The idea here is that Microsoft wants to own the home-NAS (Network Attached Storage) market. They understand that just as storage became a problem of critical proportions for businesses, it's also becoming a problem for homes.

This is true, and I applaud Microsoft for recognizing the problem.

To be fair, there are a handful of really, really nice features in this product, most of which are available elsewhere, but in true Microsoft fashion, are not available in an integrated platform that I could reasonably expect my parents, for instance, to operate. My favorite features:

  • Backup. Plug in the device, load a client on your windows PCs, and they get backed up.
  • Restore. (Makes sense, doesn't it?) Pop a restore CD into your lobotomized client and restore from the Home Server.
  • Media streaming. A good thing, but I'm not crystal clear on what breadth of client will really be able to use this.
  • Remote access. Get to your files, and even your desktop via the Home Server using your Windows Live ID.

Ok, so it's all good, right? What could I possibly be nervous about?

Let's start with the easy stuff.

  • Windows client. I suppose I should have seen this one coming, but it's still damned disappointing. There's absolutely no technical reason why this couldn't be an open platform. Despite the olive branch that Microsoft appeared to extend when they made their recent marketing deal with Novell, this is where the rubber hits to road, and there's nothing open about this platform. Maybe I'll be proved wrong before this thing releases. I hope so.
  • Live ID. Here's another winner. Why, oh why, do I need a Windows Live ID to access my files? Anybody? Buehler?? I'd be ok if Windows Live wanted to provide something like DynDNS support so Mom & Dad don't have to figure out how to configure dynamic address support. But please, please don't make this the only way to access my files. Given my earlier experience with Windows Live services, I'm cringing at the very thought of Microsoft holding my files hostage.

Now, some concerns that may be a little less obvious:

  • Network speed. Not mentioned in any of the press releases I've seen, the price of admission here is Gigabit speed, hopefully with jumbo packet support for quick file transfers.
  • "RAID is for bugs." I actually saw this in an interview with on of the product management people for this product! I'm not opposed to the idea of technical innovation  I really like what these guys are doing for backups, for instance, by storing each distinct file only once no matter how many PC's it's found on.  I really don't like the attitude that makes Microsoft feel they can completely discount the technical merits of RAID without explaining what they're doing differently. Read the datasheets, for example, on Infrant's X-Raid (below), and you'll be able to see precisely how they improve on RAID without throwing out the parts that work. Microsoft needs to come clean on this before I'm going to start uploading tax returns and baby pictures.
  • Adding external disks. This could be a really great idea, but again, I'd like to see some technical background. Specifically, I'm concerned about speed here. The "plug-in" support appears to be USB-based, and not SATA. Please, publish some benchmarks so I can be assured that I'm not going to slow my NAS to a crawl if I need to expand it.

It's early yet, and there's a while to go before we'll know the whole story. In the mean time, I really hope we see some more information not just marketing hype about the tech that makes this product go.

Related Links

Paul Thurrott's SuperSite for Windows: Windows Home Server Preview. This is, by far, the most complete breakdown of Windows Home Server I've seen so far. Read this article first if you haven't heard anything about this product.

Windows Home Server cures Digital Amnesia (sorry - Microsoft has since taken this site down). By contrast, here's Microsoft's marketing site for Windows Home Server (built in collaboration with HP and AMD). This site is long on fluff and sparkle, and very, very short on information.

Engadget : Windows Home Server. As always, Engadget is a great source of breaking news, and they're once again covering the big announcements well.

cek.log : Windows Home Server This is Charlie Kindel's blog. Charlie is the General Manager for Windows Home Server, and he plans to release some more info on Home Server soon via his blog. I'll watch this space for more news.

AMD Positioning Itself For Home Server Market The HP product that's featured in Microsoft's announcement is an implementation of AMD's reference architecture for this product. AMD has an important toe-hold with this product, and I'd like to seem them succeed, if only to keep the processor market kicking with competition.

Infrant ReadyNAS+. Here's a glimpse of what this product looks like when it's built on open standards. I'm a big fan of Infrant -- until Home Server came along, I felt they were hands-down the class act in home and SMB-oriented NAS. You could also check out Buffalo, but Infrant strikes me as a bit more solid and mature.

Steve Lacey -- Hands-on with Infrant ReadyNAS Here's Steve Lacey's experience unboxing and setting up an Infrant NAS. This is the competition.

VM Products – you really do get what you pay for

Virtualization is the greatest thing since sliced bread, except when it's a big pain in the neck. We've got a VM host that our IT administrator set up to support development and testing machines. It's a real nice box -- a Dell server with a pair of Xeons and 32GB of RAM.

Unfortunately, we spent money on the metal, but skimped on the software. Our guy used Microsoft's Virtual Server on this box, largely because it's free and "it's from Microsoft, so it must be good."

Sigh.

Yes, in general, it's good. Performance has been fine, and management is tolerable, though not great. I ran into a brick wall today, though, that really highlights why you need to consider a higher-end product for a large-scale server (our machine currently hosts around 30 VM's).

It turns out that Microsoft's Virtual Server won't let you overcommit memory. What's that mean? It means that if you have 10 VM's, each configured to use a Gig of RAM, you're going to need 10Gb of RAM on the host, plus a little for overhead. Even if each of these 10 VM's is only really using half of its allocated RAM, MS Virtual Server still needs to reserve all of it in physical RAM.

This, in a word, bites.

VMWare's ESX server, by contrast, lets you set up a minimum size and a maximum size for each VM. The minimum size is still physically reserved, but the difference between the min size and the max size is allocated dynamically when needed (and available). If you stop to think about it, the other resources on the server are already managed this way -- CPUs are shared, disk space is allocated on demand, and so on. Why would you want to be required to supply physical RAM for all of your VM's?

In practice, this limitation is a nagging problem for small-scale servers and workstations, but if you're planning a server installation, you'd be well-advised to weigh the cost of additional RAM for your server when you look at the relatively higher cost of products like ESX server.

Louderback on Today

I turned on the Today show this morning, and Jim Louderback was doing a little bit where he compared devices of a few years ago to those we have today. He looked at early PCs, laptops, and so on.

Since I've seen Jim speak before (going back to the 90's -- yikes!), I was a little disappointed in the content. He seemed to really be trying to tone it down for the crowd this morning, which may have gone over a little better with some of the crowd.

The best part of the interview, though, was him trying to demonstrate a Lenovo convertible laptop / tablet PC. He started with the laptop opened up normally, then showed how it converted into a tablet, and then demonstrated the touch capabilities. He was standing above and behind the tablet, though, so he really wasn't too nimble with the handwriting. The best he could manage was to scribble on the tablet from behind, explaining that you can draw "circles and stuff."

Not really a big leap forward for public awareness of tablet PCs.

I'd have thought he'd have been further off to grab a remote desktop view of the tablet on another PC and pipe that view directly into the video feed so the show could cut to that view while he wrote. It would have been nice to see a real demonstration of the capabilities of the tablet, but we'll have to wait until next time.

AppDev – now running on Drupal

If you've been here before you'll notice a change in the site. I just made a switch from PostNuke to Drupal for a couple reasons. First, you'll recall I had some real problems with spam comments. I believe Drupal will help me get on top of this problem so I can open comment back up for visitors. The second reason for the change is that Drupal offers much better standards support for things like RSS syndication (you should see an icon in your browser now), trackbacks, Technorati and Digg support, and so on.

It should be pretty apparent that there are still some rough edges to clean up. I'll get to these as soon as I can.  Thanks for your patience!

[edit: this post is out of date, but it's interesting as an archival snapshot]

David Findley – Great Blog!

I was trolling for some help on a particularly infuriating MS Team System problem (more on that later...), and stumbled upon a site by David Findley. David's got some great stuff on this site - here's a short list of useful items that grabbed my eye during a quick sweep.

There's more, of course, but you'll have to go read yourself to see the whole list.

My recommendation: add this feed to your RSS reader, pronto, so you never miss another gem.

Oh, yeah - the problem I was having with Team System? Turns out you can't do unit testing on a build server that only has MS Build installed on it. Team System for Developers or Team System for Testers will do the trick, but of course, those are an arm and a leg for a license. It looks like it's possible to add just the testing capabilities using the Team System install.

I ran into this last week when I tried to get a standalone load test to run on one of our servers, and it turns out it needed all kinds of MS assemblies in order to run. I'll try fixing up our build machine for this and see whether I can get it to go. As so often seems to be the case, I feel like I'm assembling my own setup on the fly, and I'm really not sure what the licensing implications are for this.

I honestly don't understand how MS expects people to use Team System -- do they believe people are going to run their builds on the Team Server? On developers' machines? How else does it make sense that the easiest way to get a full install of build machine files is to install an IDE or Team Server???

Sigh.

David's blog was really good, though. -g-

What did I learn in 2006?

I just saw an interesting blog called Instigatorblog, where Ben Yoskovitz has asked readers what they learned in 2006. Although I normally consider myself more of a forward-looking person, this question grabbed my attention a little bit because it's been an eventful year for me.

In January, I was still running a development department for a Business Rules Engine company called Resolution EBS. The original meaning of "EBS" has been lost to history, but for purposes of this discussion, we can assume it meant "Energetic But Sunk", because we were rapidly taking on water.

The first thing I learned, then, was what happens to a company when it dies. I'd been through buy-outs and mergers, but I'd never seen a company just close its doors. We wound inexorably toward that end, and in May, the doors closed for the last time.

The next day, I learned how to file for unemployment. Sigh.

Then, I learned how to conduct a job search. A real job search. I attended a couple meetings of a group called 40 Plus, where the 40, by the way, is intended to be the number of hours you expend on your job search every week, but which sadly also corresponded to the ages of the members. I learned a few things there, but concluded that there were probably better places for me to spend my time.

I started to do some serious networking, which turned out to be a lot of work. I scared up a bunch of leads and started chasing them down. Quickly, it became clear that I was working a sales process, and I was doing it with post-it notes all over my desktop. So I set up SugarCRM and started using it for my job search (read more about this in SugarCRM for Job Search Management - Part 1 and Part 2).

Of course, I ended up getting a new job - I'm an Applications Architect for a local consulting firm, and things are going ok. While the sense of adventure is a bit diminished, so is the drama of seeing your employer exist month-to-month, and that's not a bad thing!

Through it all, I've also learned a bit more about social networking. I'd heard of services like LinkedIn and participated on sites like Joel on Software, but hadn't really appreciated how these services can help build communities. Today, I add sites like MyBlogLog to the list, and I also recognize the role of individuals like Ben.

Thanks to all, and here's to a prosperous 2007!