Pseudonym is currently certified at Journeyer level.

Name: Andrew Bromage
Member since: 2000-05-12 05:25:30
Last Login: 2011-02-10 05:28:06

FOAF RDF Share This



Compiler writer, visual effects programmer, web developer, JAPH, you name it. There are way too many interesting things in the world.

Currently working at InQuirion hacking text retrieval systems. (Z39.50 is fun.)

Geeky interests:

  • Formal languages and parsing theory.
  • Compiler design and code optimisation
  • Programming languages, particularly declarative ones
  • Software engineering, and the theory thereof
  • High- end 3D computer graphics
  • Text database management
  • Modern operating system design


Articles Posted by Pseudonym

Recent blog entries by Pseudonym

Syndication: RSS 2.0

Does anyone have an autoconf recipe for detecting whether or not the export keyword works in your C++ compiler?

The autoconf archive has nothing (probably because gcc pre-3.x doesn't support export so it's hard to test), unfortunately. It's difficult because to test it properly, you need to compile two separate files (one with, say, exported template body, and another which instantiates the template) and see if linking correctly works.

I realise, of course, that there are varying degrees of "works" when it comes to export. :-)

Any suggestions would be gratefully received. I'll post a summary.

I had a brilliant idea last night. No details will be made public yet, but I think I've worked out a way to make photon map-based global illumination almost independent of the size of the geometry database. At any rate it should bring memory usage down to the point where you could do a large frame over a small number of render nodes at the cost of a small amount of help from the modeller.

Unfortunately, it probably won't work for caustics (or at least it won't work as well), and it's completely incompatible with the Renderman interface (so my REYES stuff isn't any help here). Still, this is exciting stuff and I can't wait to start implementing it. Now all I need is a ray tracer to build this on top of...

Fortunately, I don't work for anyone working in visual effects any more, so the IP is all mine. Mine, I tell you!

Maya's API is a joy to program once you understand the dependency graph model. 3DSMax's API, by contrast, is the worst pile of effluent that I've ever had the misfortune of being forced to deal with.

Just thought I'd share.

Just in case anyone was expecting a response to Sunir's diary entry, here's the deal:

  • I've apologised to Sunir for some stuff, and he's apologised to me for some stuff. All apologies were accepted and everything is quite friendly.
  • The Wiki pages are deleted because neither Sunir nor I want them there at the present time. We don't need another reason.
  • Some of the assertions in Sunir's diary entry and on the notes that he put up after the Wiki entries were reinstated by "Reini" are factually incorrect. The details are not important.

My new month's resolutions are:

  • I must not try to start a new project when in the middle of Release Hell(tm).
  • I must not announce a project until there's more to see than a few blank pages.

End of story.

2 Apr 2001 (updated 2 Apr 2001 at 07:46 UTC) »

Long time no blog

Now working for Dot C. Just delivered a certain product which I'm not allowed to talk about (but it's no secret that it has something to do with Alias|Wavefront Maya).

BTW, ajv is right: working in Melbourne for US dollars kicks just about every appropriate part of the anatomy. You have the best of all worlds. I live in two blocks from Lygon St Carlton, too, so I never want for good coffee. It just doesn't get better than this.


This weekend, I officially threw away the throwaway copy of slinc. I'm now rewriting it in Haskell instead of C++. While I like C++ a lot for many applications, I've decided that compilers and C++ are not a good fit.

The obvious way to implement an abstract syntax tree in C++ is using the composite pattern, with the various passes implemented using virtual functions. Adding a pass means altering every object, even if the pass only needs to act on a small part of the tree. This encourages bigger passes which do more, which can make youre code quite unclear. A much better fit is algebraic types, so that's what I'm doing. That way, I'm not punished for wanting to implement lots of small passes.

Of course, any language with strong typing, algebraic types and pattern matching would probably be up to the job. I just happened to install ghc for an unrelated reason (I tutor first year CS students in Haskell), so I figured "why not".

13 older entries...


Pseudonym certified others as follows:

  • Pseudonym certified Skud as Master
  • Pseudonym certified nate as Journeyer
  • Pseudonym certified cpw as Apprentice
  • Pseudonym certified plundis as Journeyer
  • Pseudonym certified taj as Journeyer
  • Pseudonym certified Johnath as Apprentice
  • Pseudonym certified thorfinn as Journeyer
  • Pseudonym certified benno as Journeyer
  • Pseudonym certified mirwin as Apprentice
  • Pseudonym certified nymia as Journeyer
  • Pseudonym certified bekj as Journeyer

Others have certified Pseudonym as follows:

  • Skud certified Pseudonym as Journeyer
  • mobius certified Pseudonym as Journeyer
  • plundis certified Pseudonym as Apprentice
  • taj certified Pseudonym as Journeyer
  • jrf certified Pseudonym as Journeyer
  • thorfinn certified Pseudonym as Journeyer
  • benno certified Pseudonym as Journeyer
  • burtonator certified Pseudonym as Journeyer
  • ahosey certified Pseudonym as Journeyer
  • cpw certified Pseudonym as Journeyer
  • zealot certified Pseudonym as Journeyer
  • Andree certified Pseudonym as Journeyer
  • Katja certified Pseudonym as Journeyer
  • chakie certified Pseudonym as Journeyer
  • hiddenpower certified Pseudonym as Journeyer
  • shlomif certified Pseudonym as Journeyer

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page