Latest Entries

Pardon Even More Dust

Posted on Sunday, June 28, 2009 at 11:49 AM by bfish

Since my last post it has become apparent that my RSS feeds have been on the fritz. Everything should be settled by now. Apologies for inadvertently spamming everyone's feed readers.

Pardon the Dust

Posted on Sunday, June 28, 2009 at 02:18 AM by bfish

Something is different...

glFont Still Going Strong

Posted on Saturday, September 27, 2008 at 11:57 AM by bfish

After 10 years, glFont is still quite popular. Version 1 was released in 1998, and version 2 in 2002. Even though the latest release is over 6 years old, I still receive emails from users on a regular basis. This month alone has seen more than the average, including one from a commercial game studio wanting clarification on the license so they can start using it in their products.

Unfortunately, over the past 10 years, probably about half of the emails I receive are the "I have a bug in my program, can you fix it?" type, with source code attached. I find that a lot of people that attempt to start using glFont don't even have a basic knowledge of OpenGL. Most of the time the attached code is some random OpenGL boilerplate sample taken from somewhere on the web with some glFont calls thrown in. My consolation is the fact that glFont has been used in many commercial products and successful hobbyist projects.

To this day I have received not a single cent for glFont, which is fine. I think at one point I threw in a note that said "donations welcome" (I was a poor student at the time), but nobody seems to have taken me up on that. People wonder why I never charged for it, but I think that's obvious: it wouldn't have helped anyone that way. Getting frequent emails that say stuff like "Thanks for your wonderful tool!" etc., is satisfaction enough.

Now, if I'll ever get around to releasing version 3 that has been sitting on my hard drive since 2004...

Some More Good Reading

Posted on Wednesday, June 18, 2008 at 10:07 PM by bfish

Some more good C++ reading materials that I left off my last post for some reason:

  • mr-edd.co.uk: I don't exactly remember how I stumbled upon this guy's blog originally, but it's always highly interesting. This guy knows his stuff, and he pushes the languages in ways that sometimes make it look foreign (which isn't a bad thing, because it stretches your brain). Highly recommended for anyone who wants to learn something new.
  • Visual C++ Team Blog: This is the official blog for the Microsoft Visual C++ team. Sometimes there is some really neat information posted here, sometimes not. Worth perusing for the good information, in my opinion.

Adventures in Source Control

Posted on Friday, June 6, 2008 at 02:30 AM by bfish

Way back in 2006 I had an interesting email conversation with my friend Jeff Hansen about Gentoo Linux, source control, and other things. I used to work with Jeff back at the TALL Group. He now works for a company called Card Access doing Linux kernel development. (He's also a genuine, real-life Nintendo World Champion--for 3 years in a row.)

Anyway, Jeff asked if I'd ever tried git for version control. At the time, I was still using CVS. Not long after that I started using Subversion and left CVS behind for good (thank goodness). Subversion has worked out relatively well for me over the past few years, and it was such an improvement over CVS that I never really gave serious thought to looking at anything else.

git has since come up in a few conversations with both Jeff and another friend in recent months, and as a result I've had an item on my mental to-do list to investigate it. Over this past weekend I finally took some time to read up on it. I also watched a rather lengthy, but quite informative presentation that Linus Torvalds himself gave on git at Google. You can watch it here: Tech Talk: Linus Torvalds on git.

I've read that Linus likes to ruffle feathers, but it's funny actually seeing him do it instead of just reading about it. git came about because Linus was looking for a source control system to replace BitKeeper that met certain criteria (distributed, fast, etc.) and decided that everything out there was crap. He states: "The end result was that I decided I can write something better than anything out there in two weeks, and I was right." He slams CVS, Subversion, Perforce (which I have never used), and pretty much every source control system out there except git (obviously) and Mercurial (which I have also never used).

At another point in the video, he says, "You can disagree with me as much as you want, but during this talk, by definition, anybody who disagrees is stupid and ugly, so keep that in mind." Probably the most confrontational thing he did was to call the designers of Subversion morons, and then directly calling any Subversion contributors in the audience "stupid." (These quotes are taken from a transcript of the video.)

Linus' interesting personality aside, I've found a lot of aspects of git really intriguing. His technical arguments on all of the major points are really solid. I've actually been playing around with it and there are a few things that I really, really like:

  • It really is FAST. Unbelievably fast. I was skeptical at first, but no longer. It's waaay faster than SVN.
  • Branching and merging really are easy, just like Linus claims. I actually imported one of my SVN repositories into git and did a merge of two branches there that I had been putting off, and it went swimmingly.
  • I really like being able to continue working on the repository while offline. I don't know how many times I've copied a Subversion repository (in addition to the working directory) to my laptop so I could continue working on a project without net access.

Some other things I like about git, but which I haven't verified or played around with yet:

  • Because it's distributed, you don't have to worry about commit access to a central repository. This seems really, really cool.
  • The storage format is supposed to be very efficient due to compression and some other things.
  • git actually tracks the content in files, not files themselves, so apparently you can track the history of specific pieces of code even if that code gets moved between files.
  • git guarantees your data integrity. Given a single SHA1 commit identifier, you can verify that your entire project's data is exactly the same as when it was committed, so nobody can come in and corrupt your repository without you finding out about it.
  • git has a command called bisect, which helps you track down the specific commit at which a bug was introduced. Basically it helps you do a binary search on the project through time, which cuts down on your reproducing time until you actually find the bug.

git seems really promising, and I'm going to keep playing around with it. I never thought I would find a compelling reason to switch from Subversion but I might just be wrong!

Good Reading

Posted on Sunday, June 1, 2008 at 11:07 PM by bfish

As a huge fan of C++, I'm always interested in learning new things from people that have been much more involved with the language over the years than I have. I've been subscribing to a couple of blogs for some time now that have been very educational, and I thought I'd share.

Herb Sutter

Herb Sutter is currently the chair of the ISO C++ standards committee and has been involved with the C++ standardization process for quite some time (if not the entire time). As such, he's incredibly expert and reading his work is always enjoyable.

Sutter's Mill

Recently his writings have focused on concurrency issues. He's got a whole series of articles on synchronization, multi-processing, etc. that have been published on Dr. Dobb's Journal (you can find links to the articles on his blog).

In addition, his non-blog website is also great reading, especially his old (but still relevant) series Guru of the Week. He's got a lot of really great gems in there and it's really worth reading through all of them in my opinion.

Andrew Koenig

Andrew Koenig has also been involved in the standardization process, and is the father of argument dependent name lookup in C++, which is also known as "Koenig lookup."

Selective Ignorance

He tends to write more about C++ and programming philosophy in general, and doesn't get into the nitty gritty like Herb Sutter. Nevertheless, still interesting reading.

Enjoy!

Epic Games Acquires Chair Entertainment

Posted on Thursday, May 22, 2008 at 12:44 AM by bfish

While browsing gamedev.net this morning (Or was it yesterday? I can't seem to remember...) I read an interesting piece of news that stated that Chair Entertainment had been acquired by Epic Games, the makers of the Unreal Engine.

I met one of the co-founders of Chair, Geremy Mustard, back in Utah while I was attending BYU. At the time he was working on an Xbox/PC game called Advent Rising. Later, his brother and another fellow by the name of Ryan Holmes founded Chair.

I can't remember if I mentioned this in the past or not, but I actually did stop by Chair in Provo, UT late last year and met with Geremy to talk about the possibility of working there. They didn't really have a need at the time and I wasn't really looking to move back to Utah, so it either did or did not work out, depending on how you look at it.

Anyway, Geremy & Co. are fantastic fellows and it's really cool to see their success in being acquired by a very high-profile, well-known games company. I wish them the best of luck as a "wholly owned subsidiary" of Epic.

For more information, you can see the press release.

SVN and WinMerge

Posted on Saturday, May 17, 2008 at 04:33 PM by bfish

Today I went looking for a good diff viewer on Windows. Typically if I'm doing heavy diff viewing, I switch over to my Linux box and use KDE's kompare. kompare is an excellent tool, and you can pipe the output of Subversion straight into it to get a nice graphical view:

$ svn diff | kompare -o -

However, sometimes I really wish I had more than just viewing svn's diff output manually on Windows, hence the search for a good Windows diff viewer. I found a nice, open-source one called WinMerge. I had quite a bit of trouble integrating it with svn on the command line though, because WinMerge doesn't seem to accept diff output from stdin.

After a bit of digging I found this tidbit by a guy named Joshua Flanagan. Although it involves creating a Windows batch file (blech), it seems to do the trick and I have a nice diff viewer now. We'll see how I like it, and I'll keep everyone posted.

I Beat My Prior Record

Posted on Tuesday, April 22, 2008 at 09:43 PM by bfish

Get a Job, Take Over the World

Posted on Sunday, April 20, 2008 at 10:49 PM by bfish

I am pleased to announce that I have accepted a position with Bungie! I will be relocating to the Seattle area soon and am looking forward to working with some amazingly talented and creative individuals. This is absolutely incredible opportunity, and really, I could go on and on and on about just how excited I am. However, in the interest of brevity (and because all of my relocation preparations, including a recent trip to Seattle to find housing, have left me quite exhausted and bloodshot at the moment), I will save some thoughts for another post.

My start date has been set, leaving me with just enough time to wind down some contracts here and take care of relocation preparations and logistics. Next stop: world domination!