This is part two in our look at open source software, this edition covers how open-source software comes into being and is developed essentially for free!
Normal companies like Microsoft, Google, etc. pay people to develop software, but yet there is often comparable software (Linux, OpenOffice, etc.) which is free, if not better. So how do these free applications stay free? Well in the case of large projects such as Linux and Firefox, they are supported by foundations which collect donations and solicit support to help fund the core developers and to pay for the overhead of running a website.
Most projects, however, begin with a spark from one individual or a group which does the initial development. For small things, maybe it?s just some guy who made a tool for himself and decided to share it. For medium sized projects, the initial release is often sloppy and bug-ridden as it is developed (and thus tested) by a small number of people.
As the project gains popularity (If it ever does), people will start to complain about the bugs and to request features. The developers will usually prioritize those requests and work on them in their free-time (I.E. Slowly). As a project becomes more stable and useful however, individuals and companies (like myself) will start to use the projects. Those people may have different requirements than what the software does out of the box. For instance, my company wanted to be able to use IFrames in CKEditor. Thus it became my job to develop a plugin which could handle this task. When I was done, (and since I?m a very classy open source guy), I sent my work back to the project.
Now it isn't as though anyone can just waltz in and alter the code. Usually the code is stored in what's called an SVN system (Subversion Control System). This system is the perfect solution for managing projects. Here's why. First, everytime a new file is saved, a copy is created. Thus if I were to commit some bad code, it could just be rolled back to an old version, no problem. Second, it can do "branching" of code. This in effect creates a second copy of the code which people can work on for specific reasons. For instance, when a large new feature was introduced to CKEditor, it was first created in a branch so that any problems stemming from this feature could be isolated from the rest of the code changes.
It all sounds complicated, but it's really easy to use. To keep things sane, only the core developers can approve changes to the source code. So once they approve my plugin, it will eventually be integrated in and redistributed as part of the program. Thus even though my company didn?t pay for the program, we paid for the program indirectly. Because my company pays me, and it became my job to work on the project, the project as a whole benefits.
More generally, because each user wants slightly different things out of a program. They will expand the program in the direction of their needs. If we look at the entire user base, this will have the effect of eventually expanding and bolstering the project in all directions.
From a companies/users perspective, they could pay 1000$ for a commercial solution, or could pay their developers 400$ to take open-source software and alter it to fit their needs. For the company/user, this is often more lucrative because they are permitted to directly change the program and will benefit from future development, which is not always the case with commercial software.
So how does the software perform head-to-head? That?s something we?ll look at next time.
Over the past month I've contributed about 10 bug findings, 15 bug patches, 2 plugins, and lots of support hours. Not all of my contributions made it into this release (Some will be in 3.5), but I wanted to take some time to reflect on my second major open-source project involvement. Especially in light of the open-source movement which is constantly growing and becoming more of a debate in the technological community as various companies "embrace" open-source practices, buy open-source companies, or use open-source software.
This will be a multi-part series about Open-Source software, its pros and cons, project life-cycle, and more! So let?s start with a bit of background.
For the uninitiated, one of the biggest trends in software development right now is the open source model. Source code is the raw programming code which produces the programs and sites you use. For example, when you look at my blog, you see HTML, you cannot however see the source code (PHP) which was used to generate this HTML. Also, when you run Word or any other program, you will not find the code which powers that program. Just the EXE.
Open-Source programs on the other hand, usually require that the program be distributed with its source code, and that the source code be kept in a publicly accessible place. So when you use CKEditor on a website, it?s shrunken down, translated and basically unreadable?but it?s easy to get the source code to make changes.
Since the raw-code is available, open-source programs are usually free to use under certain conditions. These include: 1) The source code must always be distributed, 2) The license may not be altered (It?s at the top of every file), 3) Attribution must remain, 4) It may not be used in commercial products. Since this doesn?t fit everyone, many people will offer a second type of license for commercial applications. This allows companies to pay a certain amount of money for a different license which lets them remove references to the original product and to use it in a commercial program.
For example, if I were to use CKEditor to allow you to comment on my site, that?s fine. But if I used it in the same was (for editing comments) in a Content Management System which I sold to companies, I would need a different license. Anyways, there are some core CKEditor developers who presumably use this money as their salary (Including the guy who the editor is named after).
One of the biggest sites for Open-Source software is http://www.sourceforge.net where all projects are open source (or are supposed to be). Projects here include Filezilla, eMule, Azureus, Bittorrent, 7-Zip, Audacity and more. Did you know Firefox is open source? As is the entire Linux operating system. Anyways, it?s kind of a big deal.
Well now you know a little bit of backround about what exactly an open-source project is. There is, of course, a catch which is, it?s all distributed free?and who would work for free? Well that?s something for next time.
In order to make the most of my last weekend of Eurail pass validity, I packed my bags and headed East to Vienna and Budapest. Despite a lingering illness, I had a fantastic time. This was my furthest journey east in Europe to date and also one of the longest.
Every now and then I get the urge to build a 5-star tower, listen to the power line sound effect from Sim City 2000, or report heavy traffic from the cockpit of SimCopter. So when the latest urge struck, I immediately headed over to Abandonia to pick up some games, but quickly ran into problems.
First off, you've probably heard that downloading games is illegal. Well that's usually the case. However when you get as old as I am, some games start to expire and fall into a category of game called Abandonware. It's a moving definition, but generally includes games that are too old for the original manufacterer to distribute it anymore (Or to make a profit from it). Searching abandonware will yield plenty of sites distributing games.
After downloading, SimTower, SimCity, and SimCopter, I tried to install them, only to find they would not install. Now these games are old. They are from the 16-bit game era. Most modern operating systems since Windows 95 are 32-bit, and now the move towards 64-bit systems is occuring. The problem is that Microsoft doesn't include 16-bit support in their 64-bit OSes. Since I have Windows 7 64-bit, I cannot natively play 16-bit games. Well that just wouldn't do so I set off to find alternatives.
After a bit of looking, I came across two options. The first is called VirtualBoxing. It is essentially running an OS within an OS. Usually this requires you to have the second OS, but I came across VMLite which auto-installs Windows XP for you. (Windows XP supports 16-bit software). Minutes later, I was off!
I also ran across a second (Un-tested) solution. This essentially kills off the current OS while your program is running, so not as useful, but easy to try, lightweight, and no risk! If something goes wrong hit ctrl-alt-delete, bring up task manager, go to data-new task, and put in "explorer". Anyways:
Take the below code, save it as a .bat file (Batch File), save and run!
taskkill /f /IM explorer.exe
(Put your app.exe here)
Hope it works for you. Let me know. Also, I've listened to the noise 200 times and I'm 90% sure that the power line noise is actually a guy just going "BZZZZZZZZT".
UPDATE: After experiencing numerous problems playing simcopter with "An unrecoverable error has occurred and SimCopter must quit. Do you want to try and save the game". I found the following thread:
Turns out fast CPUs break the game (Which I should have known from trying to play Jetfighter 3). The solution? Just burn off extra CPU cycles using CPUGrabber. The link in the thread doesn't work, but you can google it. Ahhh, the good old games that go as fast as your CPU can...love it...
A lot of people ask me, is a Eurail pass worth it? Since we covered variable travel costs last post, let's do the fixed travel pass comparison this time.
First, it?s important to research the pass that best fits you. Obviously you get more value the longer your pass is valid for. A one-month global pass is $679, while a three-month is $1189. If you divide this out by weeks, you'll see that you only have to spend ~$100 per week to recoup the 3-month as opposed to over $160 for the one-month.
There are, of course, alternatives. You can get the limited number of days in a certain number of countries variety which will save you some cash. 15 days across 2 months spanning 5 countries (or regions) is only $589.
Even better, there are often ISIC card deals and the saver pass. The new saver pass costs about 1.5x as much as the youth global pass, but enables 2-5 people to travel together. Find four friends and you are doing Europe for dirt cheap. Can you say no brainer?
But unfortunately, no one wanted to come live and travel with you, so you're out on your own trying to find a pass. Probably the most important factor to you is cost. The best way to sum this up is to present my summer travelogue. It's not totally complete, but will give you an idea of what I fit into 3 months while working.
A few notes before diving in. In Italy, I had to pay 10 Euros for a reservation per leg. This ended up taking about 40? out of the above estimate, still...Italian trains were pretty expensive and helped my pass a lot.
Second, this chart doesn't include small trips in the area I took on regional trains. (Ex. Füssen, Dachau, etc.). Lastly, the ticket is also valid on all S-Bahns in Germany, which I also didn't count (I.E. Potsdam-Berlin)
So the numbers speak for themselves here. I priced these by looking up the cheapest trips I could find for next week. It's possible to find cheaper prices if you book a month or so in advanced, or if you take regional trains all the way, but this list is still pessimistic.
The reason it is, is because I am looking a week ahead for trips in the above table. There were many, many times I didn't know what train I was going to take until I got on it. This is the second biggest advantage to the rail pass, total flexibility. I can literally walk onto any train in Germany and be covered. (Some fast-trains in other countries have required reservations for 2-10? which you should still get beforehand). I would have paid much much more for certain journeys had I booked only one day in advanced.
As with all things like this. It depends if it's worth it for you. If you plan to spend the entire time travelling...there's no other way to go. Especially if you are travelling with friends...the saver pass is absolutely the best.
As for my case, I made it worth it. And had the Euro not plummeted, it probably would have been even more worth it. The best part for me was having the freedom to decide Friday afternoon where I wanted to go that weekend. This weekend is still wide open...so who knows where I'll end up!