Monday, October 24, 2005 8:35:21 PM
I've been listening to .NET Rocks on my 50 minute drive to work for most of the summer and fall and I was very fortunate tonight to catch Carl Franklin and Richard Campbell at the Nashville Visual Studio .NET Users group meeting where they were putting on a presentation as part of their .NET Rocks VS 2005 Road Trip. It was great getting to meet those guys in person, after listening so long I felt like I knew them but they are even more fun in real life. Billy Hollis was also there which was very cool. Carl's presentation was on the cool things coming in VB.NET 2005 and Richard talked about the cool new things in the 2.0 version of the compact framework as well as some great info on the latest mobile hardware in the phone and pda space. They had a lot of cool mobile device toys to show off. I learned a lot from both of them. During the shwag giveaway at the end of their presentation Carl played and sang several versions of Clementine in the vein of a lot of different artists, it was hysterical, there were versions like the Beach Boys, Neil Young, Black Sabbath, Willie Nelson, and more. Apparently this is known as the Clementine Principle. Carl is just a great musician.
Since they always give away a lot of shwag on their shows I thought I would give them some shwag for a change so I burned some copies of the Mono Live CD and gave them to Carl and Richard. After the presentation some of us went out and had a beer with them in their RV and they recorded a .NET Rocks show with us! I got a brief interview and talked with them about mojoPortal, my cross platform web site framework project as well as The Mono Project and the Mono Live CD. It was a lot of fun, I can't wait to hear the mp3 when it comes out. Way cool!
Sunday, October 23, 2005 7:08:16 AM
For about 3 weekends now I've been thrashing with getting OpenLDAP setup and working on my Suse 9.3 machine so I could test some work contributed to mojoPortal by TJ Fontaine for supporting LDAP authentication. I read a lot of great tutorials but I always ran into some trouble. I did manage to get OpenLDAP running and was able to query it but I had problems getting the YaST and Samba integration working. I would run net getlocalsid and it would say it couldn't get either secret but I figured ok at least I can query it but I needed some users with the right schema elements especially a mail attribute. I was using the Samba shema which has a mail property but when I would try and set that using ldapmodify and a .ldif file it would give errors like that wasn't a valid attribute. I think the trouble had something to do with Samba being setup before I configured LDAP and then trying to change the Samba setup to use LDAP it got funky. I decided to try Edd Dumbill's tutorial on my laptop running the latest greatest Ubuntu breezy but it could not find all the needed packages to follow his instructions. I tried updating my sources.list file to see if some of the other repositories had the libraries but for some reason I could not connect reliably to any of the Ubuntu or Debian repositories. Not sure if this is just traffic problems due to the popularity of Ubuntu and the new release or what. I'm sure a linux super guru could have worked past these issues but for a long time Windows guy trying to learn as he goes its been quite a struggle with obstacles at every step. I do plan to give it another try soon with SUSE 10 for my own learning benefit but for now I just needed the shortest path to getting a working LDAP implementation so I can get back to working on mojoPortal.
Then it hit me (just like in the Novell ads ;D) maybe SLES 9 has an easier setup for LDAP, there must be some value added above and beyond what comes in the free version so I downloaded the 30 day eval version last night and installed it this morning. Sure enough you can configure LDAP as part of the install process. Unless I missed something this was not in the Suse 9.3 install. Anyway 30 minutes later I have a working LDAP server and 15 minutes after that I was able to login against it (in mojoPortal) using TJ's changes! Whoohoo!
Now I can get to the parts I need to do like implementing the other 2 data layers to support the new fields and creating upgrade scripts and other things to integrate TJ's changes. I have 30 days before my eval of SLES 9 runs out so I better get working! After that I need to test against Active Directory, in theory it should work the same way. TJ's implementation uses the Novell.Directory.Ldap library that comes with mono. I put this dll into the bin folder of my app on my Windows development machine and was able to compile against it and run under the .NET framework so it will work for mojoPortal installations under Windows or mono.
Saturday, September 17, 2005 4:56:41 AM
Its been over a year since I've played a live music show but I've got a Blind Joe Love blues gig coming up Saturday, October 1st opening up for Fluid Ounces at The Boro Bar & Grill, 1211 Greenland Dr, Murfreesboro, TN
Anyone in the area, hope you can make it. I'll be playing old time acoustic blues in the styles of Robert Johnson, Mississippi Fred McDowell, Big Bill Broonzy and Blind Boy Fuller
Sunday, September 11, 2005 12:12:24 PM
A new release of mojoPortal, an object oriented web site framework targeting mono is now available on the download page.
Highlights of this release are:
- better CSS organisation and 2 great looking new skins by Jasmin Savard
- improvements to forum administration and menu system by Dean Brettle
- improvements for blog category management
- Dutch Culture file by Jan Hussaarts
- a number of bug fixes
Monday, August 29, 2005 6:00:38 PM
A new release of mojoPortal, an Object Oriented Web Site Framework for mono, is now available on the download page.
New this release is the inclusion of NeatUpload by Dean Brettle. NeatUpload, licensed under the LGPL, is an ASP.NET HttpModule for handling file uploads gracefully with a progress bar. It works on Windows with IIS or on Linux/Mac OS X with mono using XSP web server or using mod_mono with apache web server. Pretty sweet! Dean developed this specifically for mojoPortal but I'm sure it will be used in countless ASP.NET projects once the word gets out about it. I really can't imagine an ASP.NET developer that won't want to use it. Previously, mojoPortal shipped with SlickUpload which was disabled by default because it only works on Windows. A similar commercial control ABCUpload I've used before also does not, as far as I know, work under mono. Great work Dean!
Here's a screenshot of the progress bar in action:
you can even stop the upload midstream by clicking the icon.
Also new is the final release of version 2.0 of FCKEditor, previously we were using RC1.
Thanks to Tom Opgenorth for adding a small enhancement to the Links Module to enable specifying the target. He is currently working on adding categories to the Links module allowing you to organize links in a TreeView by category. That will be a cool option. After that project Tom is planning on implementing a new image gallery using nGallery.
mojoPortal now includes, in addition to US English, culture files for Italian, Portuguese, and Czech. If anyone transaltes to additional languages, please send me the translated files.
Friday, August 19, 2005 6:58:27 PM
I'm planning on making a new Content Module for mojoPortal that will be configurable to accomplish the same tasks as the current Html Module and Blog Module and more. To me things like RSS and Comments, Archive View, Categories, Content Rating, Threaded Discussion are all features I would like to make available for any content in mojoPortal so they should just be settings for the Content Module which will be the core of the CMS and you can turn them on or off to suit your purposes whether you are blogging, writing articles, whatever you just configure the module to accomplish it so there will be no need for a separate Blog module for example.
So now Wikis are all the rage it seems and I want to also make this a configuration option so I'm trying to make sure I understand it and invite any of you reading this to fill in the gaps if I don't have the whole gestalt of what a Wiki is. From what I have seen the most salient feature of what is called a Wiki is the fact that it keeps history of every change and therefore people often allow anyone to edit it which makes it stay up to date better or so the theory goes. To me thats it but since I haven't used a Wiki much I realize I may be missing something. The only other major thing I've noticed is that some Wikis have a kind of Wiki markup language. To me that seems like something only a developer could love and not user friendly at all compared to say FCKeditor. So I'm picturing adding an option to keep every change and make it easy to revert to any version for an Administrator and calling the setting Wiki mode. Does that sound legit or am I totally missing some wikiness? If I'm a total newb on this don't hold back, let me know.
Saturday, July 16, 2005 9:01:34 AM
Just got some new goodies from Amazon this week. I love books and movies!
I started out years ago developing applications in MS Access, then VB/SQL, and now .NET but I've always been able to focus on business logic rather than real low level stuff. Since my degree is not in computer science sometimes I feel like I missed out on learning enough of the low level stuff like assembly and C programming and operating system theory. As I get more and more into Linux I really want to learn these things so I'm queueing up some study material. I'm about halfway through 2 other books right now, Robert Love's Linux Kernel Develpment and Code Complete 2nd Edition by Steve McConell. This is my second read of Code Complete since I got so much out of his first edition I had to get the upgrade.
The Art of Computer Programming, Volumes 1-3 Boxed Set
Donald Knuth Hardcover Concrete Mathematics: A Foundation for Computer Science (2nd Edition)"
Ronald L. Graham; Hardcover Code: The Hidden Language of Computer Hardware and Software
Charles Petzold Paperback 3:16 Bible Texts Illuminated
Donald Ervin Knuth Paperback Microcosmos"
Claude Nuridsany; DVD;
I find it fascinating that Donald Knuth who is such an amazing computer scientist also has a book about mysteries of the Bible so I have to check it out. That one hasn't come in yet but I'm already perusing The Art of Computer Programming. It will probably be quite a while before I read and digest all of it, perhaps even several years but I definitely will do it. Its hard to find enough time to do all the things I'm interested in doing especially since most of my free time goes into mojoPortal these days but one thing for sure is I'm never bored.
I can't recommend Microcosmos enough, get it, you will love it. If you've forgotten how magical life really is this movie will help you remember, its just amazingly beautiful.
Sunday, July 10, 2005 1:29:08 PM
I just posted a new release of mojoPortal, my open source web site framework for mono on the Download page.
This release adds the Search feature powered by DotLucene as well as advanced logging capabilities powered by log4net.
The Search is role driven and stays in sync with page view permissions in the db.
There are no changes to the table structures for this release but users of PostgreSQL and MS SQL will need to re-run the stored procedure scripts for upgrading from version 20050618.
You will want to replace every file except maybe your Web.config.
Be sure and back up your site and db before upgrading and as always if you have any trouble please post in the Forums.
Monday, July 4, 2005 7:50:47 AM
I got a good kick out of Martin Fowler's post about Service Oriented Architecture, I have felt for a long time this is a meaningless word that gets bandered about all over the place. Almost anyone who is building web services now calls it Service Oriented Architecture and there is no additional agreed upon meaning to that phrase. To me it sounds like the difference between web services and service oriented architecture is that service oriented architecture means you are now using web services for everything, it does all your data access, it does all your business logic, it solves all your problems, it sounds good when you say it.
I've usually thought of it like this
are useful tool for supporting interoperability between systems
are useful for exposing data to other parties outside your company
are useful for office integration like keeping Excel documents and charts up to date (every company I know has a bunch of manually maintained spreadsheets that consume hours and hours just keeping them up to date)
are useful if you are building internet aware software, I could say Smart Clients but that is another silly buzz word though probably less ambiguous
and Service Oriented Architecture means you are doing all or most of those things
but I have to agree that Service Oriented Architecture is one of those phrases where 2 people could be having a conversation about it and think they are talking about the same thing while each has an entirely different idea about what they mean.
I also think that a lot of the early adopters who are using web services to solve every problem are going to be facing some major re-writing once the security standards for web services get worked out.
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.