How to become a programmer

In the last couple of days I repeated this more than four times, so let me post it here for any future references.

Two points for those who want to become a programmer.  First, there is no lack of information these days. There are numerous tutorials online and books in print.  There are magazines, classes, mailing lists, search engines, and everything and anything you need.  But all that information won’t make you into a programmer.  In order to become one, you have to program.  There is no way around it.  You have to design your programs, write the code, debug it, test it, document it, and maintain it.  And you should also read good code that other people wrote.  There is no lack of open source projects these days – take the most popular ones and you’ll learn a lot.

Secondly, among all those available resources, I can suggest two books and two books only.  If you read and study both of them, you won’t need to read another book about programming your life time.  The first book is “The C programming language” by Kernighan and Ritchie.  This is an all time classic.  The second book is “Programming Perl” by Larry Wall.  This is a piece of modern literature.

Going for Fedora 8

A new version of my favorite Linux distribution has been released recently – Fedora 8.  I got my hands on the installation DVD (thanks bro!) and tried it straight away.

It didn’t go very well – the installation was hanging up during dependencies check.  I thought maybe it was something simple to fix and checked it with strace, which showed that the installation was looping constantly creating some temporary files and then removing them.  I tried to create these files by hand, but they were immediately removed.  I asked around on #fedora IRC channel, but it was over a weekend and it was rather empty.  No tips were given.

Then I came across Michael’s post that reminded me that I could do an upgrade using Yum package manager, bypassing the installation altogether.   Following the steps in the guide was simple and soon yum started downloading the new packages.  But my Internet connection is pretty slow, it would have taken me about two days just to get the files.   Not much fun to wait.  Instead I decided to copy files from the DVD to /var/cache/yum/fedora/packages/ directory and restart the upgrade process.  Now all I needed to download were the updates that were released since the distribution went public.

A couple of hours later I rebooted into Fedora 8, running the new tick-less kernel (the biggest reason for me to upgrade).  I also noticed that a few fonts packages were updated – fonts are sharper and cleaner.  NetworkManager was upgraded.  And a few other things improved.

I’ve heard a lot of people complaining about sound problems due to a new sound server, but I didn’t have a chance to test it yet.  Other than this though everything seems to be running just fine.

Another Quake 3 impression

As I mentioned earlier, I’m back to Quake 3 battle fields.  I am still trying to remember things, and adjust my brain to how it all works.  While major things are still there, and still important, there have been quite a few small changes.

Quake 3 is very much about mods (modifications).  There are many mods out there, and each of them takes Quake 3 into a different direction – different physics, different graphics, different gameplay.  When I used to play Quake 3 five years ago, the two most popular mods were OSP and RA3.   I never particularly liked RA3, despite its beautiful graphics.  All my time was spent in OSP.

That’s where I started now.  But what I quickly found out is that OSP isn’t as popular now as it used to be.  The mod of the new generation is CPMA, which stands for Challenge ProMode Arena.  It has OSP built-in as an option.  It is also based on the ProMode settings, which we also played sometimes.  But overall, it’s a different thing.

What is different?  Here is a quick overview as I saw it:

  • CPMA is much much much faster than OSP.  It’s unbelievably fast.  OSP was never slow by any means, but CPMA is so much faster that I’ll need a lot of time to adjust.
  • CPMA introduces more moves and enhances the old ones.  Double jumps are there.  Circle jumps.  Strafe jumps are there, but they are much faster now.  There is more in-flight control, as it was in ProMode.
  • CPMA brings in more maps with more tricks.  With all those increased speeds, a new set of maps was pretty much a requirement.  The well-known pro-q3dm6 used to good enough for TDM and 1v1.  With CPMA it feels very small, almost tiny, even for a duel.  CPMA maps are bigger, but not more complex.  They also provide features for all those tricky moves.
  • CPMA uses faster weapon-switching, like it was in ProMode.   Instantly switching between weapons in heated combat adds to intensity of the game.
  • CPMA handles timing differently.  First of all, the timer doesn’t show seconds.  Players are forced into doing timing in their own head.   Although this is not a big problem for a mildly experienced player, it still feels a bit weird.
  • CPMA handles health and armor stuff different.  I’m not sure yet how differently, but it seems that when hit, player loses more health even if he has armor, than he does in OSP.  Also, picking up armor is a bit different now.  Basically, you can’t pickup yellow armor after picking up red, without receiving some damage in between.  Oh, and there is a green armor there too now.  So it works out like this:   green armor is the weakest, then yellow, and then red.

There are probably a few other things that I haven’t noticed, but even these are make for a sufficient list.  How does it feels now?  Here is how I feel about it after playing a couple of times:

  • Extremely intense!  I still can’t believe how fast this thing is.  It’s painful to watch.  It’s even more so to play.  I can’t blink once over the course of a whole match.   Two main components of this intensity are greatly increased movement speeds and instant weapon switching.
  • Timing and movement is everything.  If you can’t move, you are dead.  Instantly.  If you can move, you are dead instantly anyway.  The only way to survive even a brief fight is to have you health, armor and weapons packed.  And for that you need timing.  Aim is a good addition to the list, but it’s not a requirement.
  • Respawn points are much more important in CPMA than in OSP.  Respawn points are well known (CPMA even highlights in the special way).  When a player enters a game, he is not moving.  For a split millisecond he’s stationary.  That’s an easy target.  And when a player enters a game, he has no armor or weapons (except for a tiny machine gun and a gauntlet).  It’s like shooting fish in the aquarium with a shotgun.   Oh, and there is a sound that notifies your enemies at which point you respawned.
  • Communications in TDM are less important now.  Things are changing too fast – items availability, players locations, etc, to notify team-players about them.  And there is  plenty of stuff going on on its own…

Stay tuned for more of these, as I get more practice…

Born again Quaker

I am back in Quake 3.  It all happened very fast and very unexpected.  I used to play Quake 3 about five years ago, and I have to tell you, we had plenty of fun back then.  But one thing led to another and I dropped out.  I haven’t heard anything about Quake 3, haven’t watched any demos, or haven’t even talked about Quake 3 in the last 5 years or so.

A few days ago I noticed a colleague of mine spending his lunch break chasing someone in pro-q3dm6 map.  I got a overwhelmed by a wave of memories and forgotten feelings and I asked him if I could play a round on his computer.  He agreed.  It turned out, he was playing against my own brother.  My brother, being a mean chap as he is, started playing Quake 3 too, with some guys from the college, but never pushed me to return.  Now that I was chased by him around the arena, I remembered that he mentioned his comeback once or twice.

Anyway, the quick match showed that my Quake 3 skills were gone.  All of them.  Even despite playing on somebody else’s computer, using half-baked configuration, and playing over 150+ ms ping, I still could feel how bad I am in the game.

In a quick chat after the game, my brother mentioned that my laptop should be fast enough to run Quake 3.  Of course, it’s not a gaming station by any means, but it should be sufficient to handle a game written a decade ago or so.  He was right.  I fetched a dusty CD-ROM and installed the game.  A quick Google search over my blog archives helped me to get back my old config file.  And I started practicing with the bots a bit.

Boy, was I ashamed.  Bots were killing me with any weapon on any map in any position on any level of difficulty.  It was almost unbelievable.  Everything was gone.  I couldn’t move. I couldn’t aim. I forgot the maps.  I forgot the controls.  My hands were getting tired after just a few minutes…  It was like I never played Quake 3 in my life, but worse.

Anyway, I got interested in getting back what I once had.  I was never by any means a top player or a particularly skillful one, but I could run around properly and kill a few people even.  I wanted my skills back.

It turned out I wasn’t the only one.  I quickly found another three or four people who wanted to play some proper Quake 3.  We played a few matches on our own server.  It was slow and laggy, but it felt good non-the-less.

I jumped on my connections to find out what happened to the old servers and old people that used to play.  Surprisingly, the server is still up, and there is another new one brought up just a couple of days ago, and there seem to be some interest – a few people play on a daily basis.  Wow!  That was much more than I hoped for.

Today I truly got back into Quake 3.  I played for three hours, and I played with some people who I haven’t seen for the last five years.  I was surprised to see that they remember me, and that they missed me and all that…  So, what have changed?  Here is a briefing:

  • There are more maps and mods than I can remember.
  • There are more servers around.  Back in the days we had like one or two servers with all proper maps and patches.  Now I have four servers in my bookmarks.  And most of them are faster and richer than those that we used to play on.
  • People are more interested in the game.  Five years ago, Quake 3 in Cyprus was more of a fashion game.  Most kids were playing Counter Strike, and Quake 3 was sort of a “change of environment”.  Not many understood it, not many liked it, but many tried it.  With this, a lot of people were passing by.  Now, Quake 3 is a classic game.  Many games have been made since it was released, and most players moved on.  Only those die-hard fans are still around.  And some new blood, people who want to learn the proper game.

A few things changed.  But the main one is still there.  Quake 3 is still a lot of fun.   The years that passed by, the new technologies, the life changing experiences that happened, none of these changed the my attitude towards Quake 3.  And I feel that I am not alone… and it feels like Quake 3 is not just a game, but a lifestyle.

You will probably hear more about my Quake 3 adventures on this blog in the near future.  Until then, happy fragging!

Happy birthday, mom!

(For those of you who don’t know, my mother came to Cyprus last Friday for just a few days to celebrate her birthday.  She is back to Moscow today.)

It was one of the shortest visits so far.  The longest one was when Maxim was born.  Ma stayed with us for a month or so.  There were a few two-weeks and 10-days stays.  There were some 1 week stays.  Those felt short, but we had enough time to pack all the fun in.  With 3 days at hand and all the preparations that had to be done for the actual celebration, we still managed to enjoy plenty of time together.

The celebrations were cool too.  A whole bunch of people, up in the hills with plenty of drinks, food, free time, and good mood – that’s a heck of a combination for great time.  It’s a bit sad that it’s over, but  I’m glad we didn’t spoil a second of it.  It was all fun.

Happy birthday mom.  Hope to see you again soon!