Saturday, June 25, 2005 11:40:13 AM
This post is intended to be a playful counterpoint to Gonzalo's post about the Bad Bug Reporter and the Chocolate Factory. Though I also am serious in pointing out some major problems with the latest mono release I hope this will be taken with the good humor intended.
Once upon a time there was a web developer who worked very hard to become the best web developer he could and was always learning and improving.? His web software ran on the leading proprietary operating system of the day but one day he found out about a thing called mono that would allow his software to run on linux and other unix like operating systems. He was overjoyed at this discovery and began using mono and linux to run his software.? He found a few things he had to do differently to make sure his software always worked on mono and linux but by following a few key guidelines he could be usually get his new features working. By and by he discovered bugs in mono and he would report them to the mailing list and the answer was usually "Its fixed in svn" which meant that if you had the same version of mono as the mono developers the bug was not there. So he would wait for the next release and yes usually the problem was fixed which was good.? Then he realized that if he was to be taken seriously as a bug reporter he must setup a machine to use the same code from svn that the mono developers use so that the answer could not be "Its fixed in svn".? This was not an easy task for the web developer, he struggled long and hard and had to read a lot of documentation and learn a lot of things new to him in order to get setup like a mono developer. But he was persistent and eventually he got there and was able to report bugs that were not fixed in svn.
From time to time he would find a bug that he could work around and he would not bother reporting it because he was busy developing new features for his software and since he had found a workaround that solved the problem for him there was no pressure on him to take the time to create a test case. For he had learned that a bug report without a test case was frowned upon by the mono developers. They like test cases so they can run the tests when they make changes and try not to introduce new bugs or bring old ones back to life and he understood that and could relate to their position.?
Then one day a release called 1.1.8 came along that had a lot of problems. The developer filed a bug report for one of them but really wanted to be working on his new features instead of creating test cases for a whole bunch of bugs.? He felt that there would be not as much need for test cases if the mono developers were eating their own dogfood and running their sites on mono instead of php and other technologies.? He theorized that if they did this they could test the new releases of mono on their own sites before making a release and this would surely improve the quality of the releases because problems would be very obvious to the mono developers if they were happening on their own sites.? Since this developer was working hard to make really good web site software that runs on mono he even wished that the mono developers would use his software for their own sites. If there were features they needed he would build them.? All the mono developers would have to do is ask.
The web developer decided that he could not take the time to create test cases for all the problems he found but he would blog about them. Here is what he blogged:
Here are steps to produce bugs in mono 1.1.8
Create a web user control with a private property foo. Add the control to a web page and put an attribute in the markup Foo="bar" This will raise an error on mono 1.1.8 but not on 1.1.7 or on Windows
Create an asp Hyperlink like with a navigate url this in a repeater and it works in previous versions of mono and Windows
but in mono 1.1.8 the server tags end up as part of the url
There were even more bugs reported by users of the web developers software that the web developer could not reproduce himself but maybe that just means "Its fixed in svn"
The web developer continues working away on his software and maintains his hope that one day the mono developers will start to eat their own dogfood on a regular basis and maybe even consider using his software to run their sites.? We will have to stay tuned to see if he is a dreamer or just another bad bug reporter.
Wednesday, June 22, 2005 2:50:37 PM
In follow up to my previous post about using Sarissa to implement Ajax techniques in mojoPortal, I'm happy to say that Ajax.NET is now an open source project . Michael replied to my previous post and said he is going to make it open source and he has also announced it on his blog and setup a project at SourceForge. He hasn't posted any files yet or specified the license but hopefully that will happen soon. I look forward to trying it out!
Saturday, June 18, 2005 11:50:38 AM
A new release of mojoPortal is available on the download page. This version includes the new Friendly Url Mapper, Blog Category and Calendar Navigation and other micellaneous improvements.
I didn't include the new Ajax enabled feature I mentioned in my previous post in this release becuase I still need to do more testing. It will definitely be in the next release and will probably be in svn sometime tomorrow.
As always, if you have any problems please post in the forums.
Friday, June 17, 2005 3:01:28 PM
There's been a lot of buzz in the blogosphere lately about Ajax, a way of richening the UI experience in browser based applications. Everyone is trying to catch up with Google and the cool UI things they have done with GMail and Google Suggest. You can do some really cool things on a web page without posting back the page you are viewing to the server by using asynchronous web requests back to the server using built in features of the browser to make XmlHttp requests.
I have to admit that I'm excited about the possibilities myself but it strikes me a little funny to think this is something totally new because I was doing stuff like this 5 years ago using Xml Data Islands in IE. Of course I was only doing this on intranet applications where you had a guarantee of the browser being IE. The exciting thing today is that all the major browsers have some kind of support for these features so now it is possible to do these really cool things in public web sites.
In the ASP.NET quadrant of the blogosphere there is a lot of buzz about Ajax.NET by Michael Schwartz. Prominant "open source" ASP.NET projects out there like Community Server are using this free library to put a little Ajax magic into their applications while they wait for the built in support for some of this magic in ASP.NET 2.0. Unfortunately Ajax.NET while free, is not open source. You only get the dll for free. Michael made some noise about making the source code available a while back but it hasn't happened and I'm not under the impression that its going to. Now don't get me wrong I'm not criticizing Michael, if he doesn't want to make his code available thats his decision and I respect that but if he did I would use it in mojoPortal.
In my day job I'm a corporate developer and I'm very pragmatic. If I need some special functionality that might take quite a bit of time to develop myself I will look for an open source solution. If I can't find an open source solution I will look for at least a free solution and if I can't find that I will consider a commercial solution. Usually the applications I'm building are to solve some business need and to solve it quickly and third party controls can be very helpful in letting you focus on the business problem instead of tackling some complex UI issue that is just incidental to the project. For example last year I was working on a project at work for an intranet application where the user would enter a lot of information about a particular insurance claim. One of the pieces of information was to enter the service provider that did the work to resolve the claim and we needed to make sure this data matched one of the providers in the database so to prevent errors a dropdown list seemed more appropriate than a free text field in the UI. The problem was that there were thousands of providers and that would make one whopping long list for a dropdown in a web page which would guarantee poor performance if it was fully populated and would also be a usability nightmare since no-one wants to scroll through thousands of items in a drop down to find the one they want. What we needed was a smart dropdown that would match against what the user was typing and offer suggestions from the database that matched to ensure data consistency. This is the kind of thing that is not so hard to do in desktop applications but is quite a bit trickier in a web page. I considered trying to implement this myself but the company was willing to buy third party controls if needed and wanted the application in a hurry. If Ajax.NEt had been out at the time I probably would have looked at it but instead we went with a commercial solution called DbCombo. It worked well (in IE, but degrades to different functionality in other browsers) and was very fast. It met the needs of the project so we bought it and the company I work for has been very happy with the features it provides.
Thursday, June 02, 2005 5:57:38 PM
DotNetRocks has been on my radar for a little over a year now but I never listened to it until recently. I don't have time to listen to it at work or at home which is the main reason I'm so late to the party.
This spring I got an iPod and have been listening to audio books from audible.com to reduce the pain of my 1 hour commute each way to work but I finally remembered to go download some mp3 files of DotNetRocks shows. This week I've been listening to them on the drive and its great, there's over a year of shows out there and so far I've listened to interviews with Miquel de Icaza, Charles Petzold, and Paul Sheriff. Good stuff, it really does rock. I'm also pretty sure Carl Franklin and friends wrote and recorded the music segments of the show which is pretty cool. Seems like a lot of developers are also musicians like me.