Mortgage calculators

By the magic of Twitter I learned from sizeof about a contest for the “sexiest mortgage calculator”. While my graphics skills leave much to wish for and I won’t participate, I found some cool links for mortgage calculators out there. I wish I knew about these when I was buying a house.

Edit: I did decide to participate and while I did not win, I had a lot of fun learning Silverlight 3. Here are the submissions that won. Pretty cool, I must admit. They all tend to use standard JavaScript, Google Charts and Flash.

Congrats to the winners!

New Mower

My old lawn mower has something wrong with the engine – it smokes a lot and comes to a rapid halt once it gets hot. Obviously that’s not very usable.
To finally cut my jungle of a yard I decided to get a new one. Rather than shelling out $300 for a brand new mower, I turned to craigslist. As always, it worked. I found one I liked, the price was right, so I got it. I just wish the seller had more faith in people – he actually made me go to an ATM since he would not accept personal check. Old people…

Anyway, the mower works great! It has a bag so I don’t have to rake. And it’s really quiet, too. Already did the lawn, looking forward to next time =)

Edit:The mower was $90. I decided not to try to talk the seller down; it seemed like he really needed the money.

Pleasant surprise from Microsoft

A while back I listened to Scott Hanselman’s podcast with Noah Richards about the new Visual Studio 2010 editor. It is a from scratch rewrite using WPF technologies. Noah mentioned that Microsoft will provide many hooks to the editor (via MEF), to make extensibility a snap. The overall message was that culture at Microsoft is slowly changing and that Microsoft is becoming more open (Noah’s apparently being called an “open source communist” by some old-timers).

I am a die hard fan of an open sorce Java editor (yes, Java!) called jEdit. It has many many features, but I love it for its block editing. I often find myself switching from Visual Studio to jEdit to massage my code. I decided to send some comments and suggestions to the VS editor team. I made two simple videos comparing block editing of VS and jEdit and forwarded them to Noah and his product managers. They were interested, but asked me to provide some use cases. This is what I came up with.

Today I searched the blogsphere and what do you know. It seems that Microsoft really did incorporate my feedback. Check out the video Brittany Behrens posted. Looks like she covered all my use cases (fortunately she changed the “dump” method name to a more pc “print”). Noah also blogged about the new features.

You can only imagine how pleasantly surprised I was to see that Microsoft is actually serious about taking feedback from the community. This definitively makes me want to contribute more. And I am that much more excited to give Visual Studio 2010 Beta2 a spin =)

Edit: ScottGu mentiones the box selection in his blog post. It made the VS2010 RTM.

Diamond – Java 7 new feature

I spotted an article on InfoQ summarizing new futures of the upcoming JDK 7. Coming from a Java background, I was really curious to see what’s in store. The article noted several “small language enhancements”, so I binged around (yes, I actually used bing), and found the presentation slides from JavaOne by Joe Darcy.

While many of the enhancements make sense, I was really stunned by the “diamond operator” (page 64 of the slides). The point of it is to reduce typing when declaring generic types. Why specify the type twice, if you can do it in one spot?

This reminded my of the var keyword in C# and the C++0x’s new incarnation of the auto keyword. The difference is that the diamond operator occurs on the right-hand-side, while the type is specified on the left. Doesn’t seem like a big deal, but in my opinion this idea is very short sighted.

By having the type on the right-hand-side, both C# and C++ allow much more flexibility. They can handle not only type inference of generics, but pretty much of anything. Specifying type on the right is very natural, and mimics assignment “from right to left”. It seems silly of Java to ignore this obvious and proven strategy and instead introduce a new operator. This will be confusing for those programmers who do work with many different languages, and will make Java feel out of place and underpowered. For comparison, this is what Java could have had if it adopted the “auto” keyword:

The above (or their equivalents) are already available in C# 3.0 and in draft C++0x. Unfortunately (judging by Joe’s comments) Java 7 will be released without such type inference mechanisms. Disappointing, very disappointing…