September 20th, 2005

How to Sort a Multi-Dimensional Array

Yes, the title is a mouthful. But unfortunately with classic ASP, trying to make sense of an unsorted array is much worse. It is quite often the case, especially when retrieving data from a database, that it may end up in an array which is not ordered perfectly, perhaps due to incorrect data type settings. And of course, ASP would provide us with no intrinsic array sorting mechanisms. This article will explain how to take the array of that data, and hand it off to a function to sort it based on whichever dimension you specify, also with the ability to handle various data types.
Read on…

September 20th, 2005

Portable Database Functions

Want to write a rock-solid, dependable application, but in record time? Code efficiency is the key! This article provides useful tools and ideas to speed up your database interactions in ASP, as well as a best-practice you just might be convinced to adapt for your database-driven applications.
Read more…

September 20th, 2005

Creating Test and Production Sites with Only One IIS Server

The need to separate live code from development code cannot be stressed enough. However, depending on the project, the size of the company, or just plain old budgetary constraints, it may be fairly infeasible to have an entire server dedicated solely to developing and enhancing code. This article will show you how you can obtain the necessary 'buffer zone' in your application, with only one server. This includes both the code, and the database!
Read more…

September 20th, 2005

Easy Error Management

Tired of hunting down mysterious bugs which users have reported (perhaps incorrectly) within your application? Having a problem with VBScript’s IsNumeric() function? These few tricks will serve to make your application more user-friendly, but more importantly help you prevent, locate, and fix errors even if no one reports the bug!
Read more…

September 20th, 2005

Why I Advocate Open Source

My first real exposure to Open Source software was in the summer of 2000. I was a student, wondering how I could afford an office suite for my desktop. My conscience quashed the possibility of piracy, but I still felt so morally opposed to paying hundreds of dollars for a word processor and spreadsheet, which was all I wanted.
That was when I discovered StarOffice. An alternative to Microsoft Office, it was functionally comparable, had a reasonably similar interface, but most importantly it was FREE! Though I made the common mistake of confusing Open Source with Freeware, I've since learned the true meaning Open Source/Free Software, and grow steadily more attached to it.

I believe a quick run-down of what Open Source is would be useful. To qualify as true open-source, a piece of software must:

  • be freely redistributable
  • the source code must be available for examination and modification
  • not restrict discriminate against any person, groups, or field of endeavor
  • be licensed in such a way that does not restrict use with other software, or confine the usage
    to a particular technology or interface

This idealistic, utopia-esque philosophy begs a number of serious questions. Does this mark the demise of paid software? Or does it rather spell the end of innovative software and quality support thereof? (after all, who wants to innovate and support for free?) Also, free software sounds great for the home user with limited needs, but can big businesses really be confident in the security and reliability of something created by a community of hobbyists?

I'd like address these questions one at a time. Firstly, can we expect the world to stop paying for software, will Microsoft soon be brought to its knees? Honestly, I don't believe that will happen anytime soon. For one thing, just because a piece of software is open-source, that doesn't mean it can't be sold, it simply means that it's redistribution can't be restricted after the sale. Think of Red Hat, they sell their Enterprise version of Linux, with profits growing faster than almost any other software company in the world!

But that's not the nature of the question. The real question is whether or not closed-source paid software will soon be a thing of the past. And once again, I don't think this will happen either. The reason for this, is that even though there are many ethical developers trying to give us the functionality we need via open software, software giants such as Microsoft are able to keep us interested in things we don't need. I have two examples of this:

1. Microsoft Office vs. OpenOffice (the open-source code base behind StarOffice). Open Office is free, has all of the functionality that most users need, and even some that MS Office lacks, such as PDF exporting. However, Microsoft is able to pour money into design and usability, two things that are often last considerations with an open-source project. Thus we have nice 3D menus, draggable toolbars, instantaneous translation of selected text into a variety of languages. Do we need these things? Well, we didn't know that we did, but once you get used to them we expect them, they become our needs.
2. Linux vs XP. Sorry to use Microsoft again, but they're the perfect candidate. Though Linux may be the OS of choice for the technophile, it's just getting to the point where it meets a home user's needs, with web browsers and multimedia players and office suites. But XP goes beyond. If you connect your digital camera, XP says 'hey, you've just connected a camera, would you like me to transfer the pictures? And once I'm done, would you like me to order you prints with your credit card?'. Once again, this is not functionality we need, but the fact that the majority of desktops run XP proves that people are still willing to pay for a little more usability.

So in my humble opinion, paid software (and not just games) still has a bright future, so long as it keeps up with user demands and security patches!

The second question has really two components, but both more or less ask the same question. Without the normal motivation ($$$), how can we rightly expect programmers to want to give out innovative ideas, and then provide support for them?
Innovation truly needn't be a concern when we're considering Open Source. The majority of products are fueled by not just one, but a group of creative minds. And of course being open-source, anyone within the 'community' of those who have the product may modify the code. This provides the unique environment in which one small idea can snowball into the next innovation. Also of note is the fact that most of the participants are professionals and hobbyists who do the work for intellectual stimulation, their creative minds just bursting with great ideas. So yes, you can always count on Open Source software being on the very bleeding edge of technology. Mozilla Firefox is the perfect example of this, the open-source web browser that's re-awakening the browser wars though not yet at version 1.0!

But what if something goes wrong? Well this is one of the true beauties of Open Source. You see, a company can opt to sell support for their product, or a subscription to the support service, such as does Redhat. If you have the technical skills, you can delve straight into the code yourself, to seek out and squash the bug. But most importantly, as a user of Open Source you're part of that Utopian society, a community of bright, ethical people who have encountered similar problems and are willing to share their resolutions. A great example of this is Mambo OS, which has numerous 3rd party website dedicated entirely to supporting (freely) and enhancing the product. Are you a little more comfortable now?

The third question would be the most important, as it involves the potential adoption of Open Source by big companies. Can the security, reliability, and scalability needs of a huge corporation be met by Open Source. In one word, YES. In more words, I'll quote the Open Source Initiative:
“Open source promotes software reliability and quality by supporting independent peer review and rapid evolution of source code.” Yes, due to the very nature of the development model, a single piece of software must pass [and be enhanced] by many persons and even many teams. There should rarely be a need to download a security patch or a service pack, because there's usually no revision deadlines forcing code out the door before it's ready.

I prefer to let statistics speak for themselves. Apache server, one of the original big open-source projects, has three times the share in web serving as IIS, being utilized on 68.71% of active World Wide Web servers. The governments of Thailand, Cambodia, Laos, Myanmar, and Vietnam are all moving to Linux, the open-source operating system. There are many organizations, governments, and school boards making the switch to OpenOffice. There's no denying that Open Source is establishing some prominence in the soft-world.

Now I can't convince you to move entirely into the Open Source arena. But if anything, please consider it, make a search on SourceForge.net the next time you're upgrading or need a new program or software suite. Try out Firefox and OpenOffice, it can't hurt! Who knows, maybe you'll soon be rolling out the next popular Linux distribution! If so, I hope you make a killing in merchandising! (I promise I'll buy a t-shirt)

« Previous PageNext Page »