I can remember working with plain old Visual Basic, and being able to provide perfectly good solutions for my employers. At home, I played with Java, and I remember the thrill, but Visual Basic was my bread and butter.
Then, I started to work with a broader range of technologies. I noticed that Java programmers and C++ programmers looked down on Visual Basic programmers. Visual Basic may have been lacking many of the features that were available in Java, but it was unfair and untrue to say that Visual Basic programmers came up short when compared to Java programmers. I was in my thirties then, and I chafed at the implication that my years of work experience counted for nothing if I did not use a truly object oriented language. Software I have written is easy to use, and it has generated millions of dollars for my employers.
Programmers have not changed. They still have their prejudices. When I was the director of R&D for Blastradius, the moment I mentioned that we were prototyping a content management system, people would ask, “What are you building it with?†People were more interested in my answer to that question than they were in my ideas about content management.
At the time, I can remember hearing that Java was the only appropriate language for building a content management system. The marketing guys for most of the mainstream products were bragging that they were providing 100% Java, as if it were impossible to do a bad job with Java. Conversely, many developers seemed to feel that it was impossible to do a good job with anything else.
I have nothing against Java; in fact, I am currently using it and I love it. But, I have to laugh at am emerging trend. Java people are beginning to realize that the CMS tools they have been building with Java are inferior to the tools other developers are building with PHP. I am sure that it would have been possible to build good tools with Java, but Java programmers got all caught up in the complexity they seem congenitally predisposed to wallowing in.
Today, I was reading an entry at IndicThreads written by Harshad Oak. Appearently, some Java developers complain that IndicThreads is supposed to be a Java portal, but the site is based on PHP. As he explains, they use PHP for some good reasons. One of which, and I quote, is that the PHP CMSs seemed far more evolved.
The PHP solutions are superior to the Java solutions, I maintain, not because of the merits of the tools but because the merits of the programmers. Harshad Oaks concludes: “Maybe while the Java world was engaged in talking of high end, super techie stuff, with the words ‘enterprise’, ‘transactions’ and ‘SOA’ embedded in every sentence, the PHP guys actually went out and created a lot of simple yet very useful software.â€
We see merit as being an intrisic trait based on talent, knowledge, possessions, tools and ability. However, true merit or real acheivement must be measured by results. As Jesus said, “By their fruits ye shall know them.”
I am not an expert on security, by any means. I can say that I have had virus problems in Windows, and I can clearly remember the ‘I love You’ virus. Our network administrator happened to be standing next to a few servers when the hard drives all started to thrash at once. He shut them down right away and saved us from a lot of damage. We had 200 employees, all of who had received several copies of the virus in an email, many of whom were opening their emails and launching the virus.
I can also say that I have enjoyed the feeling of security I have had while using Linux at home. My machines are protected by a firewall, and most virus attacks target the Windows operating system, I am sure. However, looking at the log files of the two Linux machines I am running on the Internet is scary.
Both server logs show that somebody has been trying to gain control of my machines using SSH, and another shows that someone has been trying to gain access using FTP. The attacks began within hours of my launching the services, and they continue all day. I do not expect anybody to succeed any time soon, but, having seen the user name/password combinations that these attacks are attempting to use, I have definitely begun to use strong passwords.
Some of these attacks must be made by robot programs – the logs show repeated attempts from a single IP address for five minutes, and then the attacks stop. I have yet to look at the techniques that are used to defend against these attacks, but I have been thinking that I could write a daemon to detect the unsuccessful attacks and then automatically configure the server to refuse all connections from the attacking computer for the rest of the day. Before writing any code, though, I am going to look into the tools that are commonly used to defend networks. If my idea is any good, someone has probably done it already.
For now, I just want to end with the following observation: It’s a scary world out there. Imagine trying to sleep in your bed as stranger after stranger trespasses on your property, peeking into the windows and trying all of the doors. Or, imagine trying to shop as a riotous crowd is breaking store windows and trying to make off with the consumer electronics equipment in the display. My logs indicate that that is what the Internet is like – it is like the Wild West: lawlessness abounds.
I am currently working for a government client in Ottawa, Canada, and I have the need to introduce some discipline to the way we communicate and manage our work. Last week, I quickly searched for software that could help us, and I downloaded PHPColab. There may be better tools out there, but this one is good enough for now, thank you very much.
I tried to edit the name of our organization, as it would appear on the PHPColab site, and experienced a bug. It was a real pleasure to read the error message and dive into the code to fix it. In two minutes, I was back in business. What a joy it is to have the source!
For my friends, who may not understand how open source works, especially when money is not involved, I want to explain. I do not sell software. I never have. I write code as a service for my clients. In most cases, they own the code when I am done, and in most cases, this ownership means nothing to them. I am not going over to the darkside, as my friend Joel, who works for Microsoft once joked. I have simply found a way to do business that makes sense to me.
But, buying software costs me money. Recommending commercial software to my clients costs me money, too. Often, my clients reduce the scope of the work given that the project comes with licensing costs – the reduced scope results in a reduced paycheque for me! Why not use open source?
Also, consider this: If I can arrive onsite with tools that I can install on my client’s network on day one, I am delivering value right away. I can charge for that value. More importantly, I am spared the ordeal of writing code that I have written before – even better, I do not have to write a poor man’s version of something that is commercially available. I can get on to the interesting, new and exciting parts of the job.
Why wouldn’t I participate in an open source project? It is not, as my friend Joel might think, a matter of coding for free and getting nothing for my work. I make money from using the tools. I expect that my knowledge and expertise in open source software will help me make good money in the future. The business is changing.
After more than a decade of working with closed source products, I am looking forward to collecting and adopting a host a cool tools. I am also looking forward to contributing to my first open source project.
Note: I get around to posting my next installment on databases this weekend. The kids have been sick. You know how it is.