How to Profit with the Open Source Community

I love open source software. I love the idea of open source software. Involving people in the development process that would not otherwise get the chance. Tapping into talent that would not normally be available to you. Best of all, giving everyone the opportunity to benefit others as they benefit themselves. I’m always interested in how I can benefit the communities that I’m a part of.

The question that I’m asked most often when I talk to people about open source software is “Who pays for all this?” as well as variants like “Then how do they make money?” or “Won’t people eventually stop working for free?” We live in a capitalistic society, and people don’t understand why someone would work for free when they could be making money. In this article, I’m not going to cling to ideals on why doing something for the community shows more worth than your bank account balance, instead I’m going to explain how open source developers (myself included) do in fact make money by developing quality software for free. Hopefully in the process you will find a way to give back to the community and get your piece of the pie.
Read more

A Marketing Strategy You Can Believe In

Do you remember in the good old days, when you went to the market down the street because you knew the owner, John, and his kids went to school with yours? When you went to the mechanic across town, because you new that Dave wouldn’t ever charge you for something you didn’t need? I don’t, I’m only 26 after all, but I wish I did. I’m tired of choosing a company based on impersonal tv commercials, that the owner of the company may or may not have even seen. I don’t want the cheapest, I want the best value, and I don’t necessarily want whatever the latest celebrity wants.

Building a company is hard work, but I’ve decided to draw a line in the sand. Xavisys is going to be a great company because I stand behind it, and I’m an upstanding, honest person that you can get to know.
Read more

Creative Brainstorming Meeting

Over the weekend I had James Pearson (of Surviving America and Acholi Beads) and Steven Homestead staying at my house. I couldn’t help but take advantage of this abundance of creativity I suddenly found at my disposal. As a developer rather than a designer, I find the creative process to be mysterious, possibly even magical. Seeing phrases like “Enslave the Internet” written on the windows of my home, I was far from disappointed as I was treated to a rare opportunity to take a peek inside the creative mind.
Read more

Google Maps API

I started working some with the Google Maps API, and it’s pretty nice. The documentation is decent, the examples are good, etc. I realized that I’ve come to expect this from Google, so I wanted to take the time instead to point out that this is an exceptional product. For example, I began to look into making the scroll wheel zoom on my maps like they do on the Google Maps site. What does it entail? One line:

map.enableScrollWheelZoom();

However, as great of a product as it is, it seems to be lacking some things. For example, if I want an info window that gives the options to get directions to or from that location, I have to do all that myself. I have to generate the links, and make them replace the content of the info window with a form that I have to make, and I have to make that form run some JavaScript when executed to get the directions. Why? This has GOT to be a common task. Why not build it into the API? However, in the end, that pales in comparison to the real problem. There is no way to validate a Google Maps API key! Instead, you have to load JavaScript using that key, and it uses an alert to announce that the key was bad! No one wants a JavaScript alert to pop up on their page! Since I’m making a WordPress plugin out of this (teaser!), I needed to make sure that the users of my plugin wouldn’t have this issue. I ended up having to override the alert function on the options page for my plugin like this:

var KillAlerts = true;
var realAlert = alert;
var alert = new Function('a', 'if(!KillAlerts){realAlert(a)}');

Then I added a function that runs on page load, re-enables the alerts, and checks if the key was valid:

function load()
{
    // Re-anable alerts
    KillAlerts = false;

    if (GBrowserIsCompatible()) {
        // Key is valid
    } else {
        if (G_INCOMPAT) {
            // Key is NOT valid.
        } else {
            // Can't tell if the Google API Key is valid, due to the browser not being compatible with the Google Maps API.
        }
    }
}

There is no reason that it should be that complicated. They should have a web service where I can send a request to verify a key, or their script should set a global variable rather than send an ugly alert! In the end, it’s a great product, but I would have expected that these kind of rough edges would have been taken care of by now. Google, you make me sad.

Benefits of Web Based

“When we look back on the desktop software era, I think we’ll marvel at the inconveniences people put up with, just as we marvel now at what early car owners put up with. For the first twenty or thirty years, you had to be a car expert to own a car. But cars were such a big win that lots of people who weren’t car experts wanted to have them as well.Computers are in this phase now. When you own a desktop computer, you end up learning a lot more than you wanted to know about what’s happening inside it….Ordinary users shouldn’t even know the words “operating system,” much less “device driver” or “patch.”
There is now another way to deliver software that will save users from becoming system administrators. Web-based applications are programs that run on Web servers and use Web pages as the user interface. For the average user this new kind of software will be easier, cheaper, more mobile, more reliable, and often more powerful than desktop software.”

Paul Graham, 2001

  1. Cross-platform compatibility: Web-based applications can be easily designed to work on any system. It’s why with our products you can use the computer of your choice. Use Unix, Linux, Mac, or Windows equipment! You can even use any combination of systems, allowing you to choose the computer that best for you, rather than the computer that will run your application.
  2. Updates: With web-based applications, updates are applied to one central location, allowing ALL users to benefit immediately from the update, without requiring the user to take any action, and without wasting the user’s precious time with downloading/installing updates.
  3. Immedite availability: Web-based applications do not need to be installed and configured like standard programs. Instead you simply access the online application via your web browser, and you are immediately ready to use it.
  4. Lower minimum system requirements: Web-based applications run on a web server rather than on the user’s system. This allows the vast majority of the application’s memory/CPU requirements to be handled by the server, leaving the user’s have far more reasonable demands on end-user RAM memory than locally installed programs. By residing and running off a provider servers, memory requirements very low. This can save even small companies thousands of dollars in computer equipment!
  5. Fewer Bugs: Web-based applications can be run in a controled environment (web server), leaving them less prone to crashing, especially due to software or hardware conflicts. Also, everyone uses the same version, so there are no backwards compatability issues.
  6. Price: Web-based applications do not require the distribution or marketing infrastructure required by traditional hard copy software. This allows web-based applications to cost a fraction of their hard copy counterparts.
  7. Real time data availability: Web-based applications allow any information that has been input into them to be immediately seen by other users. No need to call them with the info, or send a backup that they need to restore. It’s just there, waiting for them!
  8. Data availability across locations: Web-based applications allow you to use that same real time data availability from anywhere! If you input data at your California location, your regional manager can see it at his house, and your locations in Florida, Maine, even China can see it immediately! Distance is no longer an issue.
  9. Data is safer: Hardware will always fail, however a properly configured server can minimalize or even eliminate the effect of suck problems. Most servers use redundant storage as well as regularly scheduled backups, so a single hardware failure, or even user error, does not result in data loss. Imagine that Sally, a long time employee clicks the wrong thing, and deletes an entire group of customers, and all data associated with them! Now imagine that this doesn’t worry you in the least! You simply roll back all data to 15 minutes ago! And to top it off, you have this same security against hardware failure or even the lates computer virus!