New server

Tone and I spent a bit of today setting up a new server for some contract work we have lined up for the second half of this year. It’s a fairly old machine (cat /proc/cpuinfo reveals a Pentium 2 300, and cat /proc/meminfo reveals 160 megs of RAM), but it should do the job. We decided to use Ubuntu Server with LAMP and after a few hiccups, everything seems to be working.

I’ve installed WordPress from the source tarball rather than the Ubuntu package. Partly because the latest tarball is version 2.0.3 compared to Ubuntu’s 2.0.2, but mostly because of general negative feedback regarding the WordPress Ubuntu package on various forums. The detailed installation instructions on the WordPress homepage are fairly straight-forward. I used pwgen -s to generate some of the required passwords for MySQL and such.

I still need to setup the domain name, virtual hosting (for seperate client and team areas), and access control. I’d look into that tomorrow and post again.

New Norcia Visit

After returning from Sydney, Heidi and I visited Australia’s only monastic town, New Norcia. It was founded over 150 years ago as a Spanish Benedictine Catholic mission and it’s heritage listed for its architecture and historical significance.

Seriously, would you ever expect to see something like the Abbey Church out in the middle of the rural Western Australia?:

Our trip was fairly routine; We went on a walking tour of the town, peroused the art gallery (a weird mix of old painting and donated modern works), attended Vespas (evening prayer with the monks), stayed overnight at the hotel, walked a bit of the heritage trail, and made sure to pick up some famous New Norcia Bread before heading home.

Overall, the entire trip was very relaxing. The thing that struck me was that it’s just so much quieter out there than in Perth (which itself is an order of magnitude quieter than Sydney).

Continue reading for a few more notes and couple more scenic photos.

Continue reading “New Norcia Visit”

Missing DVDs

At some point between living in Sydney last year and living in Perth now, Heidi and I have unwittingly shed a few DVDs.

We’re not sure if we lent them to someone (which I strongly suspect), if we simply lost them (which we’d both be surprised by), or if something untoward has occured (which heidi suspects).

If anyone has the following, or knows where they may be, please let me know:

  • Grave of the Fireflys
  • My Neighbours the Yamadas
  • Kiki’s Delivery Service
  • Nausicaa of the Valley of the Wind
  • Laputa: Castle in the Sky
  • Porco Rosso
  • Pom Poko
  • Futurama: Season 1
  • Futurama: Season 2
  • Futurama: Season 3
  • Futurama: Season 4 (?)

Comments are still disabled for non-members, but you can e-mail me at gamefreedom `at` gmail.com.

Holiday = no blogging (but it’s over now)

I’ve been on holiday for the last two weeks, and I’ve managed to avoid using a personal computer for at least 12 consecutive days over that time.

It was good; very good. However, I’m getting back into things here in Perth and that includes blogging from now on. Look forward to photos from Sydney and New Norcia, as well as a few delayed video game reviews.

Fortitude

I was reading a recent interview with Michael Berg. He’s the father of Nicholas Berg, an American businessman beheaded in 2004 by a man believed to be al-Zarqawi, the recently killed al Quaeda leader.

Here’s a blurb from the interview:

O’BRIEN: No, no. And we have spoken before, and I’m well aware of that. But at some point, one would think, is there a moment when you say, ‘I’m glad he’s dead, the man who killed my son’?

BERG: No. How can a human being be glad that another human being is dead?

The complete transcript of the interview is available on the CNN website.

GPU programming notes

I’ve been writing an OpenGL application using OpenGL Shading Language (GLSL) shaders, framebuffer objects (FBOs), and draw buffers (DBs). I’ve come across a few gotchas along the way and made a few notes.

Follow the jump to find out more about how to get started, what to look out for, and a couple of the hacks I’ve used to make my shaders do what I want them to do. (Specifically, I describe how to clear colour attachments to different values and how to store tags in a floating point channel.)

Continue reading “GPU programming notes”

Pizza coupons

The price you pay for (crappy) pizzas in Perth depends primarily on whether or not you have coupons:

  • Price without coupons = “We might as well get decent pizza elsewhere (at one of those gourmet places).”
  • Price with coupons = “Well, at least it’s cheap…”

If you’re in the market for cheap pizza (ie. you’re a student or buying for an event), you probably only really want it if you have a coupon. Cheap pizza places here almost always accept competitor’s coupons, so you just need to obtain a coupon for one place.

A quick look around reveals that the Pizza Hut website offers coupons that you can download, print, and use. However, you need to register first. Luckily we have Bugmenot.com, the online website that lets users “find and share logins for websites that force you to register”.

Anyhow, this is the first account that comes up on Bugmenot:

Not quite as good as webmaster@pizzahut.com.au, but fairly amusing.

Code snippets: GLEW and assert

I’ve been using GLEW to handle my OpenGL extensions and I like using assert when developing test programs that require certain extensions.

The thing I like about assert is that it exits the program and prints out the error, file, and line number. That’s more of less what I would do using more lines of code (meaning more chance of stupid errors) or my own macro (why reinvent the wheel?). It also encourages the use of descriptive variable names (like “num_draw_buffers” instead of “n”) so that the error output is more meaningful.

Here’s a snippet from some recent code:

glewInit();

/* These extensions must be supported */
assert(glewGetExtension("GL_ARB_vertex_shader"));
assert(glewGetExtension("GL_ARB_fragment_shader"));
assert(glewGetExtension("GL_ARB_texture_rectangle"));
assert(glewGetExtension("GL_EXT_framebuffer_object"));
assert(glewGetExtension("GL_ARB_draw_buffers"));

/* There must be at least 2 draw buffers */
{
    GLint num_draw_buffers;

    glGetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, &num_draw_buffers);

    assert(num_draw_buffers >= 2);
}

Finally, if you ever decide that you don’t need assertions (because your code is clearly perfect), #define NDEBUG disables them. Good stuff!

Pure Pwnage E3 Special

I’ve been fairly busy in “real life” and haven’t been posting much, but I thought that this deserves a mention. PurePwnage were at E3 and filmed an 8 minute special feature.

They even have their own in-browser flash video player (all the rage now). The image above is a screen-grab… I wonder how many people won’t bother reading this and will just try to click on it…