<bgsound src="http://www2.cs.uh.edu/~ppsarda/Share/Gentle%20Melody.ogg" loop=infinite>

From Ideas to Innovations...


Wednesday, January 24, 2007

I have moved

Find me at http://puneetsarda.com


Tuesday, June 06, 2006

On Error Reporting in UI

With .NET, it became quite common for Developers to use exception handling. Error handling was now possible in a very systematic way.

However, when it comes to informing the user about an exception or even trivial errors on the his part, there are 3 classes of applications I have seen.

The first one is the one which shouts at the users for making mistakes. Message Boxes popping everywhere for every small mistake the user made or any exception he caused. Informative messages to recover from error is one thing but showing message boxes for validation mistakes is just too much.

The second one is where error reporting has some subtleness in it. There would be icons to indicate what has gone wrong, what fields are mandatory etc... This is a much "classier" approach than the previous one where you keep increasing messageboxes and hence the number of clicks for the user. Errorproviders in Winforms and Validation Controls in ASP.NET are a good example of the 2nd kind.

However the third kind and the one I prefer the most are the ones which take a step before implementing the above subtleness. They take care to make the UI experience such that the user has minimal opportunity to cause errors or validations. For a simple example, we use a third party product as a plugin in our system. When our user searches for information using that product, even before the results have come, he hits the "Add" button to add something to the shopping cart. This almost always results in an exception or the plugin crashing. Simply disabling the "Add" button till the results are back would not only avoid this crash but also give a visual cue to the user that he needs to wait. In situations like this, instead of working on educating the user for such things, I believe, it is the programmers job to manage such intricacies.

So for your apps, make sure your error reporting is subtle and the opportunity for the user to make errors or exceptions happen is minimal.


Sunday, June 04, 2006

Code Samples for WPF Session.

I have uploaded the samples and presentation for the WPF session at NJ Code Camp. You can get it via this link. I have modified images for copyright reasons. Also I have not included the font for same reason.

WPF Bloggers -- Find them via this link.

I am thankful to all those who attened my session and voted for me. I won the Best Speaker award thanks to your votes. Thank you for your appreciation.

If I promised you something in the session that I would post on my blog but forgot to do so, please let me know.


Saturday, June 03, 2006

WPF Session at NJ Code Camp

I had a great time speaking at the NJ Code Camp on 3rd June. For those of you who attended my session, I will be posting my slides and code on the njcodecamp.org on monday night. I will also post all the reference material and links to various resources with the same.


Wednesday, May 24, 2006

Video issues with WPF

The north face demo is really cool to watch online but what if you want to run it on your machine. Well I tried that and guess what...as soon as I tried to run it I got BSOD. I thought maybe its worth another shot but no ...hit F5 in Visual Studio and there's BSOD.

So I read the message on BSOD and it was talking about nv4_disp.dll. Something wrong with this file..well the name indicated it had to be the Nvidia Graphics card on my machine. So googled a bit on the net and found thats lots of people have issues with the same dll...(how good it feels when you know you are not the only one caught in this mess :d).

The first step for any such issue is the device driver. I checked my version and saw that it was dated to something in 2005. I have a Nvidia Ge GForce 6400 card and when i tried to look in Nvidia's site for the latest driver for this one... guess what...I don't find any. (See the Products supported link on the left pane for your card) I downloaded whatever they had just to give it a shot but when installing, it gave me messages that this driver does not support this card. So my search continued and I found something at Guru3D. These guys have a great repository of drivers for virtually any graphics card in the world.

So now with the latest drivers, I can run a simple movie as well as a complex app like the northface. My suggestion...even when upgrading drivers...make sure u get a stable version not the beta's ...does not have to be the latest if it works for your cards and gets your app running. To get video you will need Media Player 10 installed, I have not tested Media Player 11.

If driver upgrades don't solve your problems...start googling!!


Tuesday, May 23, 2006

Beta 2 out!!

The beta 2 of WinFx runtimes is out. Get all the stuff you need to program some cool apps from here. Also the May 2006 CTP of Expression Interactive Designer is out. Get it here.


Sunday, April 30, 2006

On being a Software Engineer

Money magazine and Salary.com recently listed the 50 best jobs and Software Engineer is the No.1. It feels nice to be in a profession which the world holds in such high regard.

I work as a Software Engineer at Fidelity Investments in Rhode Island. I enjoy my work and on a daily basis look forward to going to my cube and working on my project. It gives me pleasure that after years of education and academic achievements, finally I now work on something that will be used by a real user. Or many real users.

To a common man, software development is a combination of acronyms ( which they dont understand or partially do) + internet + .Net + Java + Google. I guess you could also throw Intel and Apple in there. To explain to a common man what you do as a software engineer can be a big ordeal. I remember the days when I had selected it as my undergraduate major (back in India), anyone and everyone had just one question for me : Do you work in hardware or software? It was hard not to laugh at the question and politely say both....which would make them all the more surprised and curious as to how can you be doing both....maybe you are too smart.

I look at it as one of the most profound and practical ways to manage Complexity. This is one domain which runs just on the basis of ideas. If you have an idea and want to see it take form and do something for you, grab a programming language, an IDE to help you program in it and you are pretty much set. Resources will probably be the last thing to hold you back and lack of ideas will probably be the first one. My expertise is in .NET, C# being my fav language to program in and Visual Studio my fav IDE.

However, that last statement above changes a lot of things when said just by itself. The probabilty of finding C#/.NET on a developer's resume is almost that same as finding his name and email address. You would probably also find a list of certifications in there. However, neither of them give you any clue whatsoever on what software developement is all about--- Managing Complexity, Designing Solutions and doing that in a disciplined fashion --- and what are his skills with respect to that.

A side effect of such a multitude of people with the same skill set (on paper) is the lack of regard for the ones who genuinely are much more than just those acronyms. To tell someone you are a .NET Developer is probably not the best way to introduce yourself as a Software Engineer. Sadly people have built in their minds a notion of a .NET Dev as a guy with a bunch of certifications and one who can churn out code out of the Visual Studio IDE. Software design, architecture, principles are nowhere to be seen. I have also met people with research background who believe that being a Software Developer (especially with expertise in a "hot" technology) is no big deal...anyone can do it.

I design solutions. I come up with innovative ways to handle conflicting parameters. Today I implement it in .NET, tomorrow maybe some other platform. But the central idea is to come up with reusable and extensible designs which solve real world problems. And there are many more people like me in this field, way better than what I am. But I aspire to be better than them someday. To meet such developers in conferences and to have some of them as my mentors shows me that there is an elite lot which is not bound by technologies or corporations but rather with fundamentals which frame this very field. That they talk in terms of concepts and ideas, designs and interactions instead of windows and linux, .net and java.

Donald Knuth right calls Software Development as an Art. There could not be any better analogy for it. Only an artist can give form to that abstract idea in himself and bring it to life as a beautiful piece of software. Lets just remember, no paper can tell you who is an artist and who isn't. His work sure can!! And the true artist is the one who creates his piece of work for the sheer joy of making it, not for the financial or other benefits.