Name: Andrew Bromage
Member since: 2000-05-12 05:25:30
Last Login: 2007-07-20 02:29:55
Homepage: http://andrew.bromage.org/
Notes:
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:
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:
My new month's resolutions are:
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.
slinc
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".
Pseudonym certified others as follows:
Others have certified Pseudonym as follows:
[ Certification disabled because you're not logged in. ]
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
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!