About Me

My photo
I'm a colonist who has declared war on machines and intend to conquer them some day. You'll often find me deep in the trenches fighting off bugs and ugly defects in code. When I'm not tappity-tapping at my WMD (also, known as keyboard), you'll find me chatting with friends, reading comics or playing a PC game.

Sunday, January 20, 2008

Album recommendation - The Goo Goo Dolls

Music is a funny thing...Normally, you go out and buy an album because you like one particular song that's been playing over and over on VH1. When you do buy the album, you realise that the rest of the tracks suck (not always). After a little while, even the song that you really liked isn't so nice anymore because its been done to death on TV. That's why its always a good idea to do a little background check on music. There are lots of sites out there that let you preview a 30 seconds of each track before you buy the album. Use this feature. You'll be able to make a better decision. Unless you're a die-hard fan of the artist, always make sure that the tracks measure up to your taste in music.

That said, I have an album recommendation to make. If there's anyone out there who's into Alternative Rock, give The Goo Goo Dolls a listen. I really love this band and one of my favourite albums is Let Love In. I'm not going to write a review on any of the songs simply because one man's symphony is another man's cacophony.

Sunday, January 13, 2008

MI isn't Mission Impossible

I don't want to start a war of ideas on whether Multiple Inheritance is a good thing or not. I know several good programmers who can't get along without multiple inheritance and there are other smart people who feel that multiple inheritance is detrimental to their work. At the end of the day, it comes down to the simple truth that multiple inheritance is not evil in itself, its the way you use it. Sure, it can trip you up in ways you never thought of before but it can also be a very powerful language feature that makes code more elegant and reusable. A while back, I wrote an article on the common "gotchas" with multiple inheritance in C++ and submitted it to Codeguru. Please feel free to read the article here.

Wednesday, January 9, 2008

Out with the old stuff, Teach the new stuff

I've always wanted to talk about coding in schools, especially C++. I see many schools and colleges that portray to teach C++, but in reality teach the C-style of coding. I find this approach unacceptable. For example, many courses (even MCA) talk about character arrays when in reality the syllabus should be dealing with std::string. As if that weren't bad enough...

I've also noticed that many educational institutions use archaic compilers for C++ coding. This, in my opinion, is infinitely worse. Even if a student wanted to code correctly, he would not be able to do so. The most commonly used C/C++ compiler is Borland's Turbo C++ 3.0 compiler. This compiler does not conform to the C++ '98 standard. A very simple example of this is the boolean data type which the standards approve of but Turbo C++ does not support it. The truth is that Turbo C++ is an obsolete compiler and Borland themselves do not work on it anymore. Continuing to use such a compiler will ensure that you never learn anything that is industry standard. There are quite a few non-commercial compilers that are standards compliant.
1. The MinGW (Minimalistic GNU for Windows) compiler for Windows.
2. GCC (GNU Compiler Collection) for almost every platform.

If you are a student and don't want the hassle of bothering to download and configure a particular compiler for your IDE, then I recommend these IDEs:
1. Microsoft Visual Studio Express Edition
Its the most professional free IDE out there. Of course, it only works under Windows and comes with the Microsoft Compiler.
2. Code::Blocks
I really love this IDE and the best part is that it works on Windows, Linux and now even the Mac OS. It also supports a variety of compilers.
3. Bloodshed Dev C++ 5.0
A great IDE for students. It comes in two flavours - one with the MinGW compiler and another without any compiler. Dev C++ is also exclusively for Windows.
4. Geany
Geany is a newcomer to the scene and I've really noted it for supporting several languages and being extremely light-weight. Geany is also being actively developed for multiple OS platforms.
5. Finally, if you work on Linux, I recommend either KDevelop or Anjuta. I now use Code::Blocks as a standard IDE for both Windows and Linux, though.

If you're going to do stuff, then you have to do it right.

Monday, January 7, 2008

Start Stuff

Hi all! I've been deliberating for some time on whether I should start a blog or not. I guess I've got stuff to talk about and so I've finally taken the plunge. Here's the Disclaimer : "Nothing I've got to say is earth-shattering. Read at your own risk!" First, a little about myself. I am a student pursuing my Master's Degree in Computer Applications which I am due to complete in a few months. As you might have suspected, I am interested in tech talk. That's not the only stuff that I will talk about, though. I love listening to music and once in a while I will try to suggest and maybe even do a review on a good music album. The main reason as to why I've started this blog is so that I can share ideas and information. A lot of my time is spent in coding and I find out nifty tricks or read about such tricks elsewhere. I also come across coding bugs and perhaps if I post solutions to common problems other programmers could benefit from them. I also want to share my views on certain issues in the digital world (Read as : "I want to start a rant"). I play plenty of PC-based games and maybe once in a while I could talk about some of the games that I play. Of course, I welcome comments. If you find some error in a post of mine or just want to chip in with your view, go ahead. The world will be the better for it. Alright then. After all that's been said, let's start doing stuff.