<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d13405220\x26blogName\x3dPavan+Podila\x27s+Blog\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://pavanpodila.blogspot.com/search\x26blogLocale\x3den_US\x26v\x3d2\x26homepageUrl\x3dhttp://pavanpodila.blogspot.com/\x26vt\x3d-3240902251102105728', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe", messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { 'blogger-ping': function() {} } }); } }); </script>

Thursday, June 30, 2005

Google Maps API

Google Maps API

Finally it's time to explore the world from my computer. The power of Google Maps is at the hands of the Developer. This opens up tremendous opportunities to do interesting things. I will blog about my attempts later.

Monday, June 27, 2005

WebParts: A Portal Framework

I prototype should be my new nickname. Have been prototyping lot of the new ASP.NET 2.0 feature list. Some are not even documented. But there are some good folks at M$ who care to put that on their blogs so that mortals like me can leech. The MSDN-2 is pretty barren at the moment with only stubs for the various sections. Hopefully that will change soon with an imminent shipping date for VS 2005.

One of the coolest and certainly rich feature is WebParts: A complete portal framework. I think it's fun leaving aside the long-hours-of-internet-search-for-documentation. Fortunately WebParts leverages the SharePoint portal framework so some of the undocumented stuff can be found there. I am particularly curious about the SharePoint SmartParts. With WebParts in place, we don't even need a SharePoint portal anymore. SmartParts can be hosted on a vanilla IIS with ASP.NET 2.0.

My MSN is the place to be if you still don't know what WebParts is all about. You will need a Microsoft Passport account like Hotmail to really see the Personalization feature of WebParts.

I wonder how is DotNetNuke pitted against WebParts. A comparison should be in order.

Wednesday, June 22, 2005

www.hibernate.org - Why This Project Is Successful?

www.hibernate.org - Why This Project Is Successful?

Some good things to learn from this project. Pretty general and will apply to any project, may be just leaving out the open-source part :)

Tuesday, June 21, 2005

GRYNX �� Laptop on the wall - WallTop

GRYNX �� Laptop on the wall - WallTop

Someday I'll have this on my wall

Saturday, June 18, 2005

My FireFox extensions

Over time I have found these firefox extensions to be extremely useful. For my own records, in case I decide to do a reformat+OS install, I am listing my set of plugins:
  1. ForecastFox
  2. Download Manager Tweak
  3. FlashGot
  4. GoogleBar
  5. IEView
  6. Mouse Gestures
  7. Tab Clicking Options
  8. Gmail Notifier
  9. AdBlock
  10. Aardvark
  11. BlogThis
  12. Sage
If there are more out there which people have found to be useful, I would certainly want to know.

Friday, June 17, 2005

The Artima Developer Community

The Artima Developer Community

This is a fantastic weblog for all great articles on OO design. I was referred here by the Team System website for the article How to Use Design Patterns. The article is an interview of Erich Gamma on how to / how not to Design Patterns. In many ways this is the most misunderstood topic in OO design.

The resources section in that article points to two books


  • Head First Design Patterns

  • Refactoring to Patterns

Great find for the day!!!

Thursday, June 16, 2005

'You've got to find what you love,' Jobs says

'You've got to find what you love,' Jobs says

This article is a must read for everyone. I thoroughly enjoyed it and has made me realize a couple of things. Hope it helps others as well.

Tuesday, June 14, 2005

The 80-20 rule of Software design

My Manager at the company where I intern was just back from TechEd 2005. We had a long discussion about the various tools, technologies that were introduced and some of the sessions that he attended. I particularly liked one of the comments that he made about software design. This was something he picked up in one of the Cabana sessions. A Cabana session is gathering of small group of people who discuss/debate on a particular topic.

He pointed out that no one should strive to design with a goal to meet 100% of the needs. This is particularly true when one is developing a framework/ platform/ library for general use. It is just not possible to encompass all possible cases. There is a balance that has to be maintained about the extensibility/scalability of the design and the needs of the customer. This balance is 80-20, where 80% of the cases can be handled and rest 20% is left untouched.

Extensibility is good to a certain extent but cannot be stretched to any extent. Beyond a certain point it is upto to the customer to probably redesign/rethink the approach to accommodate within the confines of the software design. If the needs are such that the design cannot handle, it only shows that the library/tool is not fit for the requirements at hand. It is a sign of looking at other possibilities. But this will get handled anyway during the prototyping stage. Hopefully.

Saturday, June 11, 2005

Will Team System 2005 render NUnit useless?

Previously the most widely used tool for Unit testing with C# was NUnit. However with the introduction of the Team System 2005 by Microsoft, TDD has become tigthly integrated. It is now possible to do a wide variety of tasks:

  1. Point and click Test stub creation
  2. Visualize the code coverage
  3. Integrated Test Manager (TestRunner)
  4. Custom test list creation
  5. Both Manual and Automated testing support
  6. .... probably some more that I have missed
With such an integration, I wonder if any C# developer would continue using NUnit. Probably only to support the existing tests. But any new development will most probably use the Team System tools. The testing tools already look promising and they should only get better by the November 7 release of Visual Studio 2005.

Thursday, June 09, 2005

Why do we think so often of abstraction?

I read somewhere that Computer Science is the science of abstraction. As a developer we continuously try to hide the details so as to deal with the problem at hand more easily. Such details are essential to get the work done but beyond that it is the ease of programmability that takes over control. Abstraction is definitely a key element in developing software.

Abstraction exists at different levels and at each level we try to provide ease of programmability. As we go to the architecture level, we need abstraction not just to hide details but to hide the variability of the system. Take the case of interacting with different kinds of databases to store data. At the backend layer, we don't want to deal with database specific code because it is possible to change the database at the later date, say for performance reasons. Thus we try to hide this fact by providing a layer of abstraction. Here we are trying to abstract the variability of the database.

Ease of programmability and hiding variability seem the only two compelling reasons for abstraction.

Wednesday, June 08, 2005

The "Metro" document format

If you have not already heard about it, here it is: Microsoft is coming up with a new XML-based document format called Metro. The name sounds cool but is the technology? PDFZone carried out an interview with Adrian Ford, CTO of Global Graphics, the Microsoft partner that is working to bring up the Metro specification and also a prototype implementation.

Metro is planned for the Longhorn release and would also change the print subsystem of Windows. There will be new capabilities added that would allow richer printing. Ford discusses some of this in this interview. I am sure some of this work has rubbed on the Office 12 XML formats.

Some say the Metro format is in direct competition to Adobe's PDF. I feel, in the end, both will co-exist.

Tuesday, June 07, 2005

Outlook Add-ins

Discovered the TechEd blog today. Will follow it till it gets over on June 10. Some of the videos are available via podcast.

Developing Outlook add-ins has become much more easier with the Visual Studio Tools for Office System. I squeezed in a half hour to quickly develop a small add-in that just displays the number of tasks. However I also learnt the architecture and how add-ins were developed earlier (COM add-ins). I think it would be cool to have a FeedReader right inside Outlook 2003. Most of the necessary tools and UI are already available. One of these days I should take this path and explore little more.

Monday, June 06, 2005

Visual C# Developer Center : C# Programming Videos

Visual C# Developer Center : C# Programming Videos

I am always curious to know what is in store for the coming version of the .NET platform. I found this link out of a search for such information. Anders talks about the new C# 3.0. I guess lot of it is influenced from the C-omega language. Check out for more.

hiPod R1 Proposals - Apple Design & Prototype - The Apple Collection

hiPod R1 Proposals - Apple Design & Prototype - The Apple Collection

Would love to own one of these.

Sunday, June 05, 2005

High on Avalon

The best way to get upto speed with a new technology is to start a Pet-Project. Just this time, the technology was Avalon, the new Presentation subsystem for Windows Longhorn and the project, a Blogger Client. I always wanted my own blogger client which would have all the nice features I wanted.

I have divided the project into 2 stages. In the first stage, the client would only be able to read news using the Atom API. This is because I blog mostly on Blogger.com and they support Atom. I got hold of Atom.NET that provides a library for reading/writing Atom feeds. That taken care I started exploring XAML. Here is the basic interface I came up with. Notice the cool Gel button on the top-right corner. Enjoyed creating that.



The Atom.NET library returns the blog entry text as HTML. To display it well I need a WebBrowser control. Unfortunately Avalon still does not have a WebBrowser control but Windows Forms has one. But how would I use a WinForms control in Avalon? Enter the WindowsFormsHost class that supports embedding a WinForms control inside Avalon. Did a little bit of configuration to disable the context menu on the IE control and there I had it: a neatly embedded IE control inside an Avalon Application.



Next I will spend some more time understanding Styles/Themes in Avalon. That would spruce up the App.

Saturday, June 04, 2005

Webcast is my Movie time

The greatest revelation for me after coming to US is the ability to watch Webcasts without always downloading them. This is a great benefit because there are many cool things that I get to learn just by watching these webcasts. The webcasts that I am talking about are primarily on .NET technologies and everything concerning it. Some of my favorite shows are .NET Rocks, MSDN TV, the .NET Show and any other On-Demand webcasts that are put up on MSDN and other places.

MSDN TV: http://msdn.microsoft.com/msdntv/archive.aspx
.NET Rocks: http://www.dotnetrocks.com/
the .NET Show: http://msdn.microsoft.com/theshow/

Friday, June 03, 2005

Team System 2005 is amazing

Microsoft has a great new Visual Studio lined up for developers. I feel they have brought a product that they must have been using internally for a long time. My internship at Landmark has given a great platform to explore the new .NET Framework 2.0, ASP.NET 2.0, Visual Studio Team System and ofcourse Visual Studio 2005 Beta 2. It is just so enjoyable to use these products and develop software. Want to get nose deep into this!

Check out:
http://lab.msdn.microsoft.com/teamsystem/

On the site you will find links to On-Demand Webcasts that present the features of Team System 2005. A must see for all eager developer minds.