NickElm is currently certified at Journeyer level.

Name: Niklas Elmqvist
Member since: 2000-07-05 07:59:13
Last Login: N/A

FOAF RDF Share This



Interested in free software (of course), graphics programming (mainly 3D using OpenGL (preferably in Mesa), but also some Direct3D), virtual reality, three-dimensional user interfaces, object-oriented analysis and design, software architecture, compiler design, and functional programming languages (Haskell, mainly).

Developer in the Berlin project, where I'm currently responsible for adding 3D user interface functionality to the system. Founder and project coordinator of the 3Dwm project, a testbed and research platform for three-dimensional user interfaces. Done quite a bit of graphical programming, both on desktop systems as well as on virtual reality devices, and puts a lot of effort into system design.


Recent blog entries by NickElm

Syndication: RSS 2.0

Woohoo! 3Dwm 0.3.0 has been released. Granted, this was Wednesday last week, but the rest of the week was too hectic for me to be able to get a diary entry in somewhere. I'm already preparing for 0.3.1, which will be a bugfix release and will remedy some of the minor problems that have appeared since 0.3.0 hit the street.

In totally unrelated news, my girlfriend Johanna has received an Au Pair position in Milan, Italy, and will be gone for nine months. This is both good and bad news: good, since this is what she has been wanting to do for some time now, and I'll get to visit Italy for the first time ever; bad, since this means that I won't get to see her that often and I am going to miss her like crazy. Oh well.

Hacking away at 3Dwm almost feverishly now, I am just an hour or so away from release. Writing this as the system is compiling (which is taking more and more time). Everything is ready for the new release, including updated documentation, translations of most of the vital documents, some new autoconf checks, and, of course, the source itself. This is going to be a major release. Lots of stuff has been done since the last one in the beginning of June.

Other cool and important stuff is the new 3Dwm tutorial that I put together recently, and the interview that just came up on LinuxPower.

Throat a bit sore, nose a bit runny, thesis on schedule. Wait, I just realized that my diary entries tend to be a bit arrogant in tone. I'd better cut down on this high-and-mighty attitude that seems to plague some many people around here; better to walk softly and carry a big stick. :)

So, on with the updates: Tying together many parts of the 3Dwm source code in preparation for the 0.3.0 release I will be putting out shortly. I am currently looking at how to design the configuration file stuff for the display server, and XML is rather high on the list. We are also looking at texture coordinate generation and ways of doing it within the existing framework of the scene graph. Still routine stuff, but it will be nice to get a new release out the door soon(ish).

A quick update between compiles: CSG seems to be working (as can also be witnessed here, here, and here). I had just enough time to stop and congratulate myself before continuing. I need to incorporate all this cleanly under a nice and elegant interface and hide all the nasty implementation details from the client programmer.

Must. Finish. Thesis.


Away from my current CSG implementation for a quick breather. This stuff is getting pretty complex, and I'm not sure whether my solution is very efficient and/or nicely designed. My approach to software design these days is very much based on my gut feeling as opposed to sitting down for hours with UML diagrams and design guidelines before doing anything. And this is after four years of university CS training! That only proves that design is a very individual process. I prefer to sketch my designs in code in something akin to XP, while others want (need to?) work it all out on paper before they implement something.

It's funny how design patterns change your life. Not that I didn't use them even before they had a name (of course I did), but I can't for the life of me remember how I used to think about stuff like trees, traversals and factory functions and so on. Actually, by now, I'm having a hard time remembering how I used to traverse trees before visitors, decorators and composites came along!

Ahh, well, enough with this, now it's time to go back and pick up where I left off with this CSG code.

13 older entries...


NickElm certified others as follows:

  • NickElm certified graydon as Master
  • NickElm certified stefan as Master
  • NickElm certified pvg as Journeyer
  • NickElm certified claw as Journeyer
  • NickElm certified bruce as Journeyer
  • NickElm certified jwz as Master
  • NickElm certified alan as Master
  • NickElm certified raph as Master
  • NickElm certified bfulgham as Journeyer
  • NickElm certified advogato as Master
  • NickElm certified fusion94 as Journeyer
  • NickElm certified aoliva as Master
  • NickElm certified tigert as Master
  • NickElm certified nixnut as Apprentice
  • NickElm certified rasmus as Master
  • NickElm certified sdt as Journeyer
  • NickElm certified Ward as Master
  • NickElm certified steveh as Journeyer
  • NickElm certified exwired as Journeyer
  • NickElm certified Guillaume as Master
  • NickElm certified hunger as Journeyer
  • NickElm certified chalky as Journeyer

Others have certified NickElm as follows:

  • stefan certified NickElm as Journeyer
  • bruce certified NickElm as Journeyer
  • nixnut certified NickElm as Journeyer
  • steveh certified NickElm as Master
  • exwired certified NickElm as Journeyer
  • dneighbors certified NickElm as Journeyer
  • hunger certified NickElm as Journeyer
  • Guillaume certified NickElm as Journeyer
  • adulau certified NickElm as Journeyer
  • khazad certified NickElm as Journeyer
  • Uraeus certified NickElm as Journeyer
  • fxn certified NickElm as Journeyer
  • baux certified NickElm as Journeyer
  • freeworld certified NickElm 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