Posts From June, 2005

The Busy Web Developer and the Bad Dogfood 

Saturday, June 25, 2005 11:40:13 AM Categories: Humor mojoPortal Mono Open Source
Rate this Content 0 Votes

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.

Ajax.NET is now Open Source! 

Wednesday, June 22, 2005 2:50:37 PM Categories: Developer Resources Development Open Source
Rate this Content 0 Votes

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!

mojoPortal Release 20050618 

Saturday, June 18, 2005 11:50:38 AM Categories: mojoPortal
Rate this Content 0 Votes

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.

Open Source Ajax for ASP.NET using Sarissa 

Friday, June 17, 2005 3:01:28 PM Categories: Development
Rate this Content 0 Votes

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.

In mojoPortal, my open source web site framework and content management system, I cannot use commercial solutions to such problems and will not use solutions that are not open source.  Even if DbCombo was free it does not work the same in Firefox as it does in IE so its not a good solution for me. I could use Ajax.NET but since it is not open source I don't want to.  I feel the same way about FreeTextBox which is used in so many so called open source ASP.NET applications like Community Server, DotNetNuke, Rainbow Portal, etc but is not open source itself which to me means that any application that uses them is not entirely open source. Instead I use FCKeditor which is very nice and completely open source. But I digress, the topic of this post is Ajax.  A need has come up in mojoPortal where I need functionality pretty much like DbCombo. Most permissions in mojoPortal are handled by roles but there are cases where you want to give a single user permission on a particular feature instance (like a blog) and it is cumbersome to create a new role just for one user to make this possible. So I added a field for a user id on each feature instance so that permission could be granted to a single user. Since a web site could have thousands or even millions of registered users I can't just use a dropdown list but similar to my corporate project of last year I need to make it easy to find the user you are looking for.  Since I want to keep my project pure open source I started looking for ways to make browser neutral XmlHttpRequests and I found it in the Sarissa Project, which is an open source (LGPL) javascript wrapper that encapsulates the specific implementations in the different browsers and gives you a single javascript API to use in all browsers.  XmlHttpRequests is just one aspect of Ajax and Sarissa supports pretty much everything that is currently called Ajax. Using Sarissa I was able to implement the same feature provided by DbCombo but with the added benefit that it works in Firefox, Mozilla, and IE (maybe others too I haven't tested yet). I've been working on it every evening this week and its working pretty nicely now.  I'm not sure if it will make it into the new release of mojoPortal that I plan for this weekend, but if not this release then the next one in a few weeks. Its a pretty cool feature and the code to do it is rather simple once you know how. I don't doubt that some will scarf the code and use it outside of mojoPortal but I'm totally cool with that. I know I'll be using it in other places instead of DbCombo myself.  I'm sure there will be other challenging UI issues in mojoPortal that I will be able to tackle elegantly with Sarissa so I'm very glad I found it an encourage anyone who is interested to check it out.

DotNetRocks Really Does! 

Thursday, June 02, 2005 5:57:38 PM Categories: Developer Resources
Rate this Content 0 Votes

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.

Copyright 2003-2010 Joe Audette
Donate Money to support the mojoPortal Project. View Joe Audette's profile on LinkedIn View Joe Audette's profile on The Guild of Accessible Web Designers site