Archive for the Stuff Category

Work++; // Again!

I’ve been slacking. No, really, mega slacking. Its been almost two months since I wrote something here. Earlier, I wrote about my latest employment opportunity at PWLabs. Well, that job ended abruptly. There was nothing wrong with that job, I enjoyed it fully, but several days after I started, I got a call from a recruiter that works for McAfee (Yes, the anti virus maker). Impeccable timing! He hooked me up with the dev team at McAfee and we had a phone interview. That, eventually, blossomed to a full 5 hour interview (you heard me correctly, 5 Hours!) where I took two tests on top of an in-person interview. Needless to say, I got the job and my brief career at PWLabs came to a close.

The stuff that they have me doing right now is guarded with an NDA, but its mostly going to be Win32 programming. My experience at BumpTop and at Strike Technologies helped me get my foot in the door. I always avoided huge Corporate jobs but this one actually made me excited.

For those that don’t know, McAfee’s engineering department is located in Waterloo, so the drive from Toronto is a bit time consuming. I ended up buying a 2008 Hyundai Accent for the trip, it’s not a bad car. Nevertheless, I will be moving down to this area eventually. Some places that I was looking at are in Cambridge, Kitchener, and Guelph. But that won’t happen for a few years anyway.

Coder Burn-Out

Its been a while since I wrote something here, and with good reason. I have gotten to the point where I do not want to look at code when I come home. I am on the edge of burning out. Thankfully, my vacation starts in a few days. But this blog post is not about my fun-in-the-sun vacation, rather its about the politics of being a programmer.

A few days ago I had a conversation with a friend about coder burn-out. Most specifically, should a manager push the programmer to the brink of burning-out in order to move the project along? I say, yes. To a point. Pushing a programmer to work that extra bit is natural, and happens quite frequently in the industry. It gives that extra boost when the projects needs it. But, it is similar to adding nitrous oxide to an engine to get extra horsepower. If you don’t give the engine a break, it will break down. Pistons will seize, gears will grind, and the engine will come to a screeching halt. Much like an engine, all this can happen to a programmer (just it wouldn’t be as violent, at least, I hope not). From personal experience, when a burn-out happens, I cannot look at code. It literally makes me unproductive, sluggish, and resistant to coding. Moreover, I start to neglect personal projects and duties (such as this blog) that once made me happy.

Fortunately, I am nowhere near the point where I hate programming, but my pet projects have not seen progression in weeks. My vacation is coming up and it will be a breath of fresh air into a stuffy room. What I am wondering is, how do other people deal with coder burn-out? What are your strategies or things that you do to relax and get your bearings back?

Some GameDev Math Resources.

I’ve been scouring the internet for some decent resources on math, collision detection, and physics, so here are some:

More to come, later.

Real-Time Collision Detection

With all the craziness that last weekend brought, one of which was a book I ordered from Amazon. Just like the title says its a book about collision detection within 2D and 3D environments. It’s a bit on the expensive side, about $50, but its worth every penny. I had a chance to read the first 5 chapters on Sunday. It started off with a quick math primer and then dove head first into how collision detection works. It has a few chapters on bounding volumes and space partitioning; the two topics I have been obsessing over for the last few weeks.

Possibly the best thing about this book when compared to my other math books is that it explains the concepts with code, more then with math. For most programmers, this is a godsend. Reading a few lines of code is much easier (at least, for myself) then trying to comprehend or remember mathematical symbols.

Regardless, If you’re building an engine of some sort (Graphical, Physics, etc), this book is definitely an asset. Collision detection is not only used in physics engines, it is the core functionality of Octrees and Scene Management. Ergo, it is an integral part of an engine. Although, I don’t recommend this book to novices, or people that do not have any 3D engine building knowledge under their belt. It is Math and Algorithm heavy and requires substantial engine design theory.

EDIT: Looking through some of the supplementary books from the Morgan Kaufmann series, they all seem very interesting. If those books are of the same quality as the Real-Time Collision Detection book, then this entires series of books will end up on my bookshelf very soon. It’s something to be desired.

To OSG, or not to OSG.

I have been working on my game engine (Which still does not have a name; Suggestions are appreciated) for a while now. It has seen its share of refactors ever since I started on it back in 2006. But recently, I have come to a fork in the road. I am overwhelmed with the amount of things that I need to keep track of which makes me second guess some of my design decisions that I have made. One of which, is weather or not to write my own scenegraph or to use a stock one, say, OpenSceneGraph.

From experience, I can tell you that the amount of time that it would require to learn, implement, and test OSG’s implementation would be comparable to the amount of time it would take me to write one from scratch. I have been plagued with these sorts of decisions ever since I started the rewrite of my code. The benefits of using a library over writing your own can only be determined by the ease of use of the library. For example, if its easy to build, incorporate and debug then it probably is better to choose it then to write one from scratch. In the case of OSG, the library is big. No, its Massive!

I am still not convinced that OSG would be worth using over my own implementation, simply because of the learning curve and the work required to properly incorporate it into my engine. I would literally have to wrap my engine around OSG, rather then have it work symbiotically. That just does not sit well with me. Regardless, I will still poke around inside OSG and learn how their scenegraph implementation works.

Where is my trusty Bearded Axe, its time for some hacking!

Apple Is Covering All Bases.

I don’t use iTunes or an iPod but I found this rather hilarious. Someone pointed out that the iTunes EULA has this sentence in it:

“You also agree that you will not use these products for […] the development, design, manufacture, or production of missiles, or nuclear, chemical, or biological weapons.”

My plans of attaching an iPod to my new sidewinder in the hopes of playing Wagner’s Flight of the Valkyries as it flies towards my foe just got thrown out the window. Darn it.

Yet Another Guest Lecture!

I was just told that Richard Stallman is going to be in Mississauga today to give a talk about free software. The talk, which is being co-sponsored by the Department of Mathematical and Computational Sciences and U of T’s Knowledge Media Design Institute, will be non-technical, and members of the general public, along with computer scientists and engineers, are encouraged to attend. Unfortunately, The talk is right in the middle of my working hours. But regardless, I’m sure that he will be in town again.

If anyone is interested in going, Here is the info:
Date: Thursday, July 5, 2007
Place: Matthews Auditorium (Room 137), Kaneff Centre, University of Toronto Mississauga, 3359 Mississauga Rd. N.
Time: 5:00 pm

The Man, Himself.

I just got word that Bjarne Stoustrup, the creator of C++, will be giving a lecture at University of Toronto. This is such a great opportunity for anyone in the area to see this man in person. Although, the topic of the lecture is still up in the air, the sheer fact of meeting a legend amongst the coder community is thrilling. This man has been an inspiration to many people, including myself and many of my colleagues at school. Here is the Information:

Event: Bjarne Stoustrup at University of Toronto
Title: “C++0x Support for Generic Programming”
Host: IEEE Toronto Computer Chapter
When: Friday, July 20 at 6:30pm
Where: Bahen Centre for Information Technology, University of Toronto

I will post more details as I get them.

|