November 22nd, 2008
In all but the most trivial of applications shuttling around lists of objects is a pretty common task. At some point you’ll probably want to compare the lists for equality, and there are several different ways to go about this. Yet despite its performance implications, a simple, loop-based approach is all too typical. We’ve all run across something like this:
// the old way...
List<ComplexType> list1 = new List<ComplexType>();
List<ComplexType> list2 = new List<ComplexType>();
// omitted: add some objects to the lists here
bool isEqual = true;
if (list1.Count != list2.Count)
{
isEqual = false;
}
else
{
foreach (ComplexType c in list1)
{
if (!list2.Contains(c))
{
isEqual = false;
break;
}
}
}
The real problem here is that this is potentially a O(n^2) — O(n*m) operation if you don’t validate that the lists are the same size. Such an approach also usually adds some duplication bloat and, well, it’s just plain ugly.
Read the rest of this entry »
Tags: .NET, anonymous methods, C#, design patterns, generics, LINQ, Software Development
Posted in Software Development | No Comments »
November 15th, 2008
Not unlike the DotNetCRM project, DotNetSurvey has seen little activity and interest over the past year or so. Consequently, I’ve also decided to let it die a peaceful death in hopes of moving on to more productive things, perhaps finally wrapping up the first release of my Community Server to WordPress converter plugin.
Unless I find a new admin for the project, I’ll be removing it from CodePlex at the end of the year. If you have any interest in taking over, please let me know.
klc;
Tags: .NET, DotNetSurvey, open source
Posted in DotNetCRM, DotNetSurvey, Software Development | No Comments »
November 15th, 2008
After two years of working to make DotNetCRM a truly viable open-source CRM platform, I’m throwing in the towel.
It’s been an eye-opening journey to say the least, one that has given me a new-found respect for folks who have been successful at incubating other large-scale, open-source projects. The simple fact is that the product should have gone RTM long ago, a reality that has been chronically plagued by my erratic consulting schedule and lack of any meaningful community support. Perhaps the world just doesn’t need another CRM platform…
In any case, I’d like to offer my heartfelt thanks to those of you who did take the time to contribute, whether if be with development, design, or domain expertise. Your time and has not gone unnoticed, and I hope you’ll consider working with me on other community ventures in the future.
My plan, therefore, is to kill the project on SourceForge at the end of the year (2008).
If you have any interest in taking over, contact me.
klc;
Tags: .NET, DotNetCRM, open source
Posted in DotNetCRM, Software Development | No Comments »
November 12th, 2008
At the risk of sounding a bit like a shill, I’d like to announce that I’m actively assisting a client with the sale of hipaa.com. If you or anyone you know may be interested, please visit the auction site here.
klc;
Tags: healthcare, HIPAA, Webmasters
Posted in Miscellaneous | No Comments »
September 14th, 2008
Over the years, I’ve had the opportunity to work on several large-scale CMS implementations. My presence on those projects, all at different maturity levels and staffed by teams of widely varying experience, have given me insight into a variety of different approaches and notions about exactly what content management is. But any way you cut it, the core objective of any CMS implementation is always the same: maximize value by enabling non-technical users to manage a website in the friendliest way possible.
It makes little difference what platform you choose or what your technological leanings are. Building a CMS is a business-process-driven endeavor, not a technology-driven one. Unfortunately, this tenet is often lost on the teams tasked with a CMS implementation.
Read the rest of this entry »
Tags: architecture, CMS, content management, design, ECM
Posted in Methodology, Software Development | No Comments »
August 21st, 2008
Apparently IM OUTTA YR LOOP on this one, but some folks have been working diligently to create a new programming language based on the shorthand butchery spawned from instant messaging and SMS enabled cellphones. The language, aptly christened LOLCODE, is, well, hilarious.
Take a look at the code samples at the official LOLCODE website.
UR 2B ROFL IMO
klc;
Tags: Software Development, Tools, WTF
Posted in Miscellaneous | No Comments »
August 19th, 2008
A week of up-time on IIS7 has given me some time to really dig in and asses the feasibility of WordPress on a Windows hosting platform. I was particularly interested in testing compatibility of the two, but I also wanted to gauge the performance of the new PHP pipeline in IIS7.
I was pretty impressed with the speed of PHP on IIS7, and setup was painless. Sure there were none of the Apache modules that have become so ubiquitous and configuration was a bit different, but there had to be workarounds. And while I suspect that most PHP applications could be coaxed to run perfectly on an IIS7 box, my final conclusion was that WordPress and IIS just aren’t a good match.
Read the rest of this entry »
Tags: blogging, IIS7, LAMP, linux, open source, PHP, Tools, WordPress
Posted in Software Development, Tools, WordPress | No Comments »
August 11th, 2008
Aside from wrapping my export routine in a WordPress friendly plugin, accurately transforming the URLs from my Community Server website has been the most time-consuming part of the Community Server to WordPress migration. A domain name change further complicated things, quickly devolving URL rewriting into a non-trivial endeavor.
Keep in mind, however, that how you ultimately handle URL rewriting depends largely on where you are relocating to, and how you plan to get there. For example, if you’ve decided to make the switch to an Apache-based hosting solution, your options will be much different that moving to an IIS-based one.
Read the rest of this entry »
Tags: .NET, blogging, Community Server, IIS7, PHP, Tools, WordPress
Posted in Software Development, Tools, WordPress | 4 Comments »
August 2nd, 2008
If you’ve noticed that something looks markedly different here, then you’re right. I recently made the descision to migrate my blogging back-end from Community Server to WordPress and, well, I couldn’t be happier.
That’s not to say that Community Server is a bad product; it’s not. Community Server is a very powerful, enterprise-class collaboration platform — somewhat akin to Sharepoint — with a blog engine thrown into the mix. This makes it incredibly complex, both to install and to manage, a far cry from the no-touch, blog-only deployment of its DotText predecessor. This complexity, combined with a very small online support community, have made Community Server a less than perfect choice for those needing a simple blogging platform.
Read the rest of this entry »
Tags: blogging, Community Server, IIS7, PHP, Tools, WordPress, XAMPP
Posted in Software Development, Tools, WordPress | 2 Comments »
June 29th, 2008
There’s been a marked increase in the affinity for Agile development methodologies over the past few years, and the southeast is no exception. The number of project leaders seeking resources with bone-fide Agile experience seems to at least on-par with those looking for heavyweight contenders, and for good reason: done correctly, Agile works.
That’s not to say that ubiquity is a panacea. First and foremost, lightweight methodologies aren’t the right fit for every situation. And even when they are, adoption is isn’t without it’s challenges. Many of the shops I’ve visited around town recently are struggling with implementations of XP or SCRUM — think changing the tire on a moving dumptruck while you’re reading the service manual, and trying to convince the driver a replacement is necessary, all at the same time.
Read the rest of this entry »
Tags: agile, Methodology, project management, Scrum
Posted in Methodology | 2 Comments »