Tuesday, November 20, 2007

Akamai MSDN Download Manager sucks!

 Richard's Braindump: Problems with the new MSDN Download Manager

I agree with Richard, the new MSDN download manager is worse than horrid. I've ran into every one of the problems reported but these in particular really chap my ass:
  • Close IE and the download manager closes. It asks you if you really want to close it, but it doesn't matter what you say... it will close anyway. When you re-open it, your download will be corrupt and you'll have to start over again from the beginning.
      
  • It'll just randomly tell you it can't download because of persistent network problems... and you can't resume because your file is corrupt.
     
  • If you have pop-up blocking on in IE 7 (which is the default) you might never get the download manager installed. It pops up a new browser window, which IE blocks, then the main page refreshes so fast you never see the notification that there was a blocked pop-up.
I have additional complaints too.
  • Adding additional files to the download manager sometimes (and by "sometimes" I mean "nearly always") closes the download manager... which as we discussed already, corrupts any files it was already downloading.
     
  • Manually pausing a download also usually corrupts it.
      
  • When it asks if you want to start the download all over again, and you say yes, it usually can't... so you have to remove the file from the manager, go back to the MSDN page then re-click the link.... which will close your download manger and corrupt the rest of your files!
And even if they fix these major technical problems, there are other issues I have with it:
  • Files are either downloading, or paused. There isn't a way to put them in any particular order in the queue and download them sequentially... so if you want to pull in 5 files, but you want 1 file immediately, then the rest to finish up whenever you have to pause all the downloads except the one, wait on it to finish, then manually resume the others.
     
  • There doesn't appear to be any mechanisms in place to allow you to throttle how much bandwidth it uses.
     
  • It allocates the disk space before the download starts. I HATE that. If you only have 1gig downloaded so far, it should not be taking up 4gig on my hard drive. When I'm low on disk space I can't start the download and have it coming down while I go and clean up some drive space. I have to clean up the space before I can start downloading. Minor issue, but still annoying.
Seriously, this thing is a total piece of shit... Why can't you just give me a damned link?

I have a download manager than works really good. I can control what files come down, in what order, how much bandwidth to use, and how many files to work on at a time (I use ReGet for those of you that may be curious).

Come on, just give me a regular old hyperlink or put it up on an FTP or something.

Considering that an MSDN Premium Team Suite subscription costs $10,000 up-front and around $3500/year for renewal fees,  it isn't too much to ask for is it?


Monday, November 5, 2007

Microsoft Money... still sucking...

The world of personal finance software is one of my least favorite. Anyone developing in this market has a tough job. People are idiots, and personal finance itself is especially designed to cleverly imitate real accounting yet completely fail to make any logical sense at all.

So I am never surprised at the crazy junk I see in personal finance software. The system it targets is moronic in the extreme, and the target user is assumed to equal that standard. 

But I'm a special idiot... one that uses Microsoft Money. I have tried Quicken, but I find their junk just a tad more annoying than MS Money but for different reasons. I also detest Qicken's license terms and marketing strategies. In contrast, Microsoft's lack of strategy in the personal finance market is quite refreshing. So I keep using MS Money even though I hate it.

The most annoying thing about MS Money is that they somehow makes it mandatory to upgrade to the new version every year. Somehow the old version just ends up "breaking" over time until you eventually get pissed enough to upgrade. I have no idea how they manage this, but eventually my old copy just sorta stops working right. Last time it was the fact that it wouldn't work after a patch for IE came out (and no fix available for the old version naturally). This time it just stopped being able to talk to my bank one day.

Every time I upgrade, I end up being amazed at how little was actually improved, or even changed from the previous version and equally amazed at just how many annoying "features" are still exactly as annoying as before. There always seem to be a couple of things I really like that manage to disappear from each version, and one or two new features show up that I don't care about at all. So each time I curse myself for forking over yet another $50 instead of just taking the time to put together my own spreadsheet in Excel... but I still I upgrade anyway.

Among my biggest complaints is the default "basic" checking account register. It completely lacks seriously important features, features I'd consider quite "basic"...  like the fact that it is missing the entire right-click menu and has no obvious alternatives for useful things like creating a reoccurring bill from an entry in the register, or marking transaction as reconciled, etc. It is also not obvious that you are even in a "basic" mode, nor that there an "advanced" mode that you could be using instead. Sure, there is a "Basic Register" icon, complete with text label at the top of the page, but it blends in so well that I never even noticed it until someone pointed it out to me. The "basic" mode just make the application feel like a piece of crap that doesn't do much of anything.

Fortunately, I do know about advanced mode, despite not having noticed the icon. I know this because I had used older versions where the advanced features were enabled by default. When I first upgraded to a version with the "basic" register and saw that those features had gone missing, I located how to enable them again via the online help. But the "advanced" register isn't exactly "advanced".  It just adds a few minor details to the list of transactions, turns on the right-click menu, and that's about it. But getting advanced mode enabled sure does requires an hell of an advanced level of skill. That icon at the top of the page isn't even clickable to toggle the mode! Instead, enabling the advanced register remains something that I have to look up in the online "help" feature each time because it is cleverly hidden deep within the not-so-fun "options" section of the program. Fortunately the online "help" is one of the few really well done parts of the application, and provides clear instructions for how to enable the missing functionality.

Then MS Money has the "basic" bills tracking system as the default too. In a misguided fit of "simplification", the developers of the default bills tracker helpfully allow you to choose to pay a bill using automatic payment (a.k.a. Bill Pay), electronic payment (e-pay), or by writing a check... But they thought that a "direct draft" bill was just too fucking complicated for the "basic" user, so that option isn't available unless you turn on the advanced bill tracking system. It's almost like they missed the fact that nearly every utility company on the planet pushes direct draft payment options like it was high-grade cocaine... Even people like me that prefer a push payment system over a pull payment system often end up with one or two drafts each month. In my case, some of my utilities actually give a discount if you agree to let them draft your payment. But, according to the crack MS Money development team I now know that only "advanced" users would need direct draft as a bill payment option. Thanks guys.

Then you have odd shit. Like the fact that, even in basic mode, MS Money encourages you to track your gross pay, taxes, withholdings, etc. from your paycheck. Most average joe home-users are obviously people that need to track the exact amount of their 401K deductions, but they would never need anything as advanced as fucking direct draft!

Anyway..

I find this "basic" vs. "advanced" thing to be a very obvious sign of poor UI design. After-all, it isn't as if there are THAT many "advanced" things you can do. Seems to be there should be just one account register, and just one bill tracking system. Then, by using good UI design, the software can helpfully arrange commands in a way that isn't confusing. The saddest thing is, the "advanced" register and bill tracking systems are actually quite easy to use once you figure out how to enable them. But most average joe home-users will never even learn that there is an advanced mode at all, much less get it turned on. Instead, most people would just think MS Money sucks and would not bother to use it... and, after asking around, this seems to be exactly what most people really do think.

Thursday, November 1, 2007

asp.net - Web Site vs. Web Application

For more info, see my follow-up article: ASP.NET: web site vs. web application project - Part 2 

A few years ago, when I first got a look at asp.net 2.0, it was clear to me that there must have been some serious changes inside the development team at Microsoft. ASP.NET 1.x was a huge leap forward in server side web application frameworks, but it was also geared to an object oriented audience. While it did support direct data access from web pages and everything-in-one-file styles, Visual Studio's use of asp.net encouraged a more tiered design with clean separation of presentation, business, and data access. It also encouraged OO  design by making inheritance, namespaces, and assemblies all obvious, simple, and the default way of things.

By the time asp.net 2.0 was coming out,  more agile languages were getting all the buzz. PHP was still relevant and Ruby on Rails was shaping up to be the next big contender. By that time Java's JSP, the only other heavy OO platform that still mattered, had fallen flat on its face. So it wasn't exactly a surprise that there was a focus within asp.net 2.0 towards the "less is more" philosophy of quick, dirty, do-what-I-mean design. Codeless databinding, master pages, skins, themes, and configuration driven providers for common stuff like membership, profiles, personalization, etc. were all expected.

But what make several of us step back was the new compilation model and the "project-less" web site... er... project. Aside from being one of the most impossible to name mechanisms, it was also a breaking change in how asp.net was done. The new compilation model threw out the visual studio project file itself, took asp.net back to the "compile-on-the-fly" concept, all but eliminated the use of namespaces within a web site, and radically altered the way UI template and the associated code-behind were arranged.

But for those of us doing serious web frameworks in large or complex environments, the web site model had some serious drawbacks. The biggest for me was having to manually deal with namespaces, which the UI and code designers would fight every step of the way (until you finally gave up and just let it pile up in one big default namespace). The loss of the visual studio project files was also painful, and it lead to an awkward "exclude from project" mechanism where the only way to get Visual Studio to ignore a file was to physically rename it. Large web sites with lots of code suffered horribly in performance because so many helpful visual studio features, like refactoring and the verification compiler had to sift through every file in the project with no guidance from project configuration.

Microsoft seemed to notice the problem, and resurrected the old project model in what they called the "Web Application" Project. This was essentially a retro-fitted clone of the old project model complete with designer generated code files (updated to take advantage of partial classes though). The new project type brought back namespaces, and once again encouraged clean OO design patterns. It also became apparent over a very short time that Microsoft itself would consider the web application model the new "enterprise" project type while the web site project type was more for the beginner and casual developers. For example, Team system's testing, build, and deployment work great with the web application project, but work poorly if at all with web site projects. But the new project type also brought with it the need to compile everything in advance, and used a different mechanism to associate UI and code-behind files that was incompatible with dynamic compilation.

With Visual Studio 2008 Microsoft is keeping both project types. But I think they are missing an opportunity. While the web application project and web site projects both have advantages and disadvantages, there doesn't seem to be a compelling reason for some of the features to be mutually exclusive.

I for one would love to see a hybrid project type. Keep the project file to organize the site and give us a place to put visual studio specific settings. But switch it use the dynamic compilation model from web site projects. Dynamic compilation and xcopy deployment were powerful ideas, and I can't see any reason they can't be used still. The verification compiler can be optimized quite a lot by having access to a project file... exclusions can be dealt with elegantly, and the whole thing can be sped up. For other code though, you could choose to continue to compile to an assembly in advance, or leverage the app_code folder for dynamic compilation, or a combination of both. And of course, keep the namespaces and configurable compiler options.

I'd love to see a web project type that keeps the best of web site and web application projects both. Give me control over the project's structure, namespaces, and compilation but also give me xcopy deployment, dynamic compilation (using my settings), and keep a consistent way of associating an asp.net UI file to its code-behind without requiring the designer generated code file and full compilation.

Oh well, maybe in the next release.