This has always been a touchy subject, especially in larger computer firms. But first, let me tell you how I got into Open Source. I started coding in Turbo Pascal 7.0, in about 1996 when I was in Grammar School. I took Turbo Pascal more as an introduction to Programming, instead of a product to do something constructive in.
After Pascal, I was looking into something visual. Hence, I fell into Visual Basic 5.0. Yeah, I know, I'm sorry.
Now this was my first step towards the open source community. I must admit, that I downloaded a pirated copy and ran with it for a while. Now, that was all well and good when I was sitting home playing around with stuff. But when it came to actually, to producing something for a market, you can't (or should I say, shouldn't) do that with pirated software.
After that, I got into web development. For this, there was a plethora of free tools available, for use. So I did that for a while. When I got back to college, I got into C++ (using Visual Studio, but still essentially free). That was a step in the right direction. However, as the semesters went on, we got more into using the .NET library. However, for my web development I never got into ASP.
The First Real Plunge into Open Source - Enter PHP
Bit by bit, web development gave way to web programming. This is where PHP came in. I got more familiar with PHP when I started working on different projects for clients. I chose PHP for a few main reasons:
- Free Documentation: I could learn almost everything I needed through online documentation.
- Cost: My first problem was hosting. ASP hosts used to be almost twice as expensive as their Linux counterparts.
The Open Source Misconception
One of the problems that people have with Open Source is that they think that it's unsupported. People seem to think that open source software is written by a bunch of kids in basements or something. This is not the case, by any means. For example, a lot of the Linux distributions are totally free and totally supported. Wake up people; free doesn't mean unsupported. The whole “You get what you pay for” isn't always true.
What To Do When You Can't Cron
One pet peeve that I have with 1and1 hosting was their lack of Cron Jobs. Cron Jobs are basically the Unix method of scheduling stuff, much like the Windows Task Scheduler. If you're on a Unix/Linux host, then they use cron jobs to schedule their internal activity. But not every host is kind enough to give you the same power to do so. Now that I'm on DreamHost, I don't have this problem anymore, but a lot of shared hosts still lock up the cron jobs. And since hosts like 1and1 aren't too reliable with their backups, doing your own backups becomes, more of less, essential. There are, of course, alternatives if your host doesn't provide you with cron jobs, such as phpJobScheduler (used this a lot back in the day) and pseudo-cron.
How The Other Guys Work
The way these work is that, they keep track of tasks and times every time the cron job is called, but you need to include them in one of your highly accessed pages (e.g. Home page). With phpJobScheduler, you can include the file in your PHP code, or you can include it using the img tag. Using the second (2nd) method spits back a transparent GIF of 1 pixel, so nothing will be displayed on your page and you could even use it within plain HTML pages if you needed to. When this is triggered, it checks the database for time of each task, compares that to the current time, them if x > y it runs the task. Simple really. Since they need to be triggered via a user visit, it's never going to be pin point accurate; this is why you need to include it on a page getting high traffic. Some of the scripts even have an option to build in to help with this. It's a sort of buffer time. This says that even if the specific start time of the task hasn't arrived yet, run it anyway if it's within the buffer amount. You would increase or decrease the buffer based on your anticipated traffic.