Thursday, January 11, 2007

OS Projects that I utilize first hand

Open Source has been a sexy tech topic over the last year or more. I think it was finally popularized because of the fact that Windows users had a choice between two decent browsers. Well, they could choose to not use Internet Explorer is more like it. Firefox is the open source software that I use the most, and I would recommend anyone in their right mind technologically to do the same.

However, what is the real open source model about? What are some real OS projects? I'll be giving a list of the most frequenty used open source projects that I use. This is the furthest list from objective as I could make it...so it would probably help if you didn't actually read this.

1.) CentOS 4.4 - A linux package that is based on Red Hat Enterprise 4. There are a couple RH ripoffs (Fedora being the other big one), but I've used CentOS since 1.0. I like it. I can't explain it. It has the same visuals (GNOME, GTK, KDE, X-Windows) as RH...well...I don't know what it is. Perhaps it's the closest thing to what you have to pay RedHat for that one can get. I use CentOS for programming, mainly, but also use it for IRC, AIM, and to hide things from my employeer (four desktops :)).
2.) Python 2.4 and 2.5 - "Object Oriented" programming language. Why do I like Python? Primarily, because it's flipping easy to use. It's powerful (can use C libraries), you can write windows services just as well as linux daemons with it. You can make love to it in the patio. You can use it for any GUI library interface, and in less lines of code than you would with C++. It's clean, meaning, that if you do not indent properly, it will not run. Also, you can compile it if you want to cut down on parsing time. It's great. I use Python anytime I'm able to...I just need to find the write IDE for it (read below). Python.org has an amazing community. The people involved are very helpful. This goes for IRC, mailing list, local listserv's, and the documentation...Oh! The documentation is the best I've seen related to any product so far in my life....far superior to MDSN (IMHO).
3.) Twisted Framework for Python - An asynchronous sockets framework that is used in Python. I use this for writing servers. I wrote a custom protocol (think SSH or FTP) with it...and it works...quickly. There are some problems with using it, but the community is very helpful and always on. They have a great IRC chat, a decent mailing list, and moderate documentation.
4.) Iron Python - Python + .NET = Iron Python. I use this in VS2005, as well as in MonoDevelop. If you want to write Python and use your .NET libraries...you should know that this exists.
5.) Mono - An open source .NET compilier. So, you want to write .NET code, but don't want to pay M$ $500 for their shitty product? Check Mono out. It works on Windows, too, so don't give me that bullshit about opensource is for Linux geeks. It works, even if you're just getting the compilier.
6.) MonoDevelop and Sharp Develop
- Open source IDEs for .NET. These can actually use the Windows version of the csc.exe if you want...otherwise, get Mono with it. MonoDevelop is for Linux, Sharp Develop is for Windows. Neither are as complete as Visual $tudio, but they do what I need them to. AND...I can change it if I don't like it (beat that Mr. Gates). I had some problems initially getting MonoDevelop to work with CentOS, but found that my icon theme was missing a file, so I changed it and now it works.

That's pretty much it. I know there's a lot more OS stuff out there that I used on a daily basis, but to know that there's free support, free software, and not as many angry people at the other end of your questions is why I got into it. So, if you're new to programming, read a book, take a class, and find the real world stuff in OS.