<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>Advogato blog for NickElm</title>
    <link>http://www.advogato.org/person/NickElm/</link>
    <description>Advogato blog for NickElm</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Thu, 24 Jul 2008 22:13:04 GMT</pubDate>
    <item>
      <pubDate>Mon, 27 Aug 2001 11:24:29 GMT</pubDate>
      <title>27 Aug 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=17</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=17</guid>
      <description>&lt;p&gt;
Woohoo! &lt;a href="http://www.advogato.org/proj/3Dwm/" &gt;3Dwm&lt;/a&gt; 0.3.0 has been &lt;a
href="http://oss.medialab.chalmers.se/pipermail/3dwm-announce/2001-August/000017.html"&gt;released&lt;/a&gt;.
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.


&lt;p&gt; &lt;p&gt;
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. 

</description>
    </item>
    <item>
      <pubDate>Wed, 22 Aug 2001 08:27:02 GMT</pubDate>
      <title>22 Aug 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=16</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=16</guid>
      <description>&lt;p&gt;
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 &lt;a
href="http://oss.medialab.chalmers.se/cgi-bin/viewcvs.cgi/3Dwm/NEWS?rev=HEAD&amp;content-type=text/vnd.viewcvs-markup"&gt;major&lt;/a&gt;
release. Lots of stuff has been done since the last one in
the beginning of June. 


&lt;p&gt; &lt;p&gt;
Other cool and important stuff is the new &lt;a
href="http://www.3dwm.org/docs/tutorial/clock-tutorial.html"&gt;3Dwm
tutorial&lt;/a&gt; that I put together recently, and the &lt;a
href="http://www.linuxpower.org/display.php?id=212"&gt;interview&lt;/a&gt;
that just came up on &lt;a
href="http://www.linuxpower.org"&gt;LinuxPower&lt;/a&gt;.

</description>
    </item>
    <item>
      <pubDate>Sat, 11 Aug 2001 20:08:22 GMT</pubDate>
      <title>11 Aug 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=15</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=15</guid>
      <description>&lt;p&gt;
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. :)


&lt;p&gt; &lt;p&gt;
So, on with the updates: Tying together many parts of the
3Dwm source code in preparation for the &lt;a
href="http://oss.medialab.chalmers.se/pipermail/3dwm-dev/2001-July/000224.html"&gt;0.3.0
release&lt;/a&gt; I will be putting out shortly. I am currently
looking at how to design the configuration file stuff for
the display server, and &lt;a href="http://www.xml.org" &gt;XML&lt;/a&gt;
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).

</description>
    </item>
    <item>
      <pubDate>Fri, 27 Jul 2001 12:48:11 GMT</pubDate>
      <title>27 Jul 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=14</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=14</guid>
      <description>&lt;p&gt;
A quick update between compiles: CSG seems to be &lt;a
href="http://www.3dwm.org/images/screenshots/sshot_010726-5.jpg"&gt;working&lt;/a&gt;
(as can also be witnessed  &lt;a
href="http://www.3dwm.org/images/screenshots/sshot_010726-6.jpg"&gt;here&lt;/a&gt;,
&lt;a
href="http://www.3dwm.org/images/screenshots/sshot_010726-3.jpg"&gt;here&lt;/a&gt;,
and &lt;a
href="http://www.3dwm.org/images/screenshots/sshot_010726-2.jpg"&gt;here&lt;/a&gt;).
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.


&lt;p&gt; &lt;p&gt;
Must. Finish. Thesis.


&lt;p&gt; &lt;p&gt;
Out.

</description>
    </item>
    <item>
      <pubDate>Thu, 19 Jul 2001 13:58:20 GMT</pubDate>
      <title>19 Jul 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=13</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=13</guid>
      <description>&lt;p&gt;
Away from my current &lt;b&gt;CSG&lt;/b&gt; 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. 


&lt;p&gt; &lt;p&gt;
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
&lt;b&gt;visitors&lt;/b&gt;, &lt;b&gt;decorators&lt;/b&gt; and &lt;b&gt;composites&lt;/b&gt;
came along! 


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

</description>
    </item>
    <item>
      <pubDate>Mon, 16 Jul 2001 09:33:30 GMT</pubDate>
      <title>16 Jul 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=12</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=12</guid>
      <description>&lt;p&gt;
I'm still here, burning the midnight oil (well, not
&lt;i&gt;really&lt;/i&gt;) while almost everyone else here at the &lt;a
href="http://www.medialab.chalmers.se"&gt;Medialab&lt;/a&gt; are off
on vacation and frolicking in the sun. Lucky for me, there
isn't much sun to speak of here, and the weather is actually
best suited for being indoors and working.


&lt;p&gt; &lt;p&gt;
Disappointing weather aside, what is it that keeps me
working here when I really should be off on vacation? My
master thesis, of course. For certain reasons (more
specifically, an attractive job offer), I &lt;i&gt;need&lt;/i&gt; to
finish it this summer (I will present it at the end of
September), and so here I am, toiling away at &lt;a
href="/proj/3Dwm"&gt;3Dwm&lt;/a&gt; for at least eight hours a day.
It actually is quite fun, and I am getting a lot of work
done. 


&lt;p&gt; &lt;p&gt;
My current order of business is implement CSG
(&lt;i&gt;constructive solid geometry&lt;/i&gt;) support in 3Dwm and
integrating it with the 3Dwm scene graph. This is an
interesting problem, and I am pouring a lot of time and
creativity into my solution. Currently, I am thinking of
using an &lt;b&gt;object-based&lt;/b&gt; algorithm to generate an
intermediate &lt;i&gt;boundary-representation&lt;/i&gt; (b-rep) of the
CSG tree (as opposed to an &lt;b&gt;image-space&lt;/b&gt; one where you
render directly from the CSG representation), probably with
the use of BSP trees. This scheme will let me use
hierarchical caching of the different components of the CSG
tree, something that is very important in a distributed
system as the 3Dwm display server.


&lt;p&gt; &lt;p&gt;
Anyway, back to work! There are lots of polygons to split
and vertices to generate.

</description>
    </item>
    <item>
      <pubDate>Tue, 10 Jul 2001 08:56:40 GMT</pubDate>
      <title>10 Jul 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=11</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=11</guid>
      <description>&lt;p&gt;
Well, &lt;a href="http://www.linuxtag.org" &gt;LinuxTag 2001&lt;/a&gt; is
over. Me and Rob are back from Stuttgart, Germany, and
resting up after four days of standing around on the show
floor for eight hours talking to interested people and
demonstrating &lt;b&gt;3Dwm&lt;/b&gt; in action. In retrospect, the show
was a great success, and I think that we really showed the
visitors something they had not seen before. I am
anticipating that this will help spread the word on 3Dwm
even further.


&lt;p&gt; &lt;p&gt;
In addition to demonstrating the system to visitors at our
booth, we also got the opportunity to discuss design and
development issues with some of the &lt;a
href="/project/berlin"&gt;Berlin&lt;/a&gt; developers, notably Tobias
Hunger (&lt;a href="http://www.advogato.org/person/hunger/" &gt;hunger&lt;/a&gt;), Mourad
DeClerk, and Marco Herrn. Too bad that &lt;a
href="/person/stefan"&gt;Stefan&lt;/a&gt; didn't make it this year,
yesterday we were able to exchange some great ideas at the
exhibition. 


&lt;p&gt; &lt;p&gt;
We were also approached by a French guy who invited us to
the &lt;b&gt;LinuxWorld Expo Paris 2002&lt;/b&gt; where we would get a
free
booth with furniture. Unfortunately, I am not all that sure
that we will be able to get funding for going there. We'll
see what turns up. 

</description>
    </item>
    <item>
      <pubDate>Mon, 18 Jun 2001 07:22:11 GMT</pubDate>
      <title>18 Jun 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=10</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=10</guid>
      <description>&lt;p&gt;
My third full week here at &lt;a
href="http://www.medialab.chalmers.se"&gt;Chalmers
Medialab&lt;/a&gt;, and I'm desperately trying to think of a way
to avoid having this diary entry follow the normal pattern
of me banging my chest about what I'm doing. Well, don't
think I can help it, so here goes: 


&lt;p&gt; &lt;p&gt;
&lt;a href="http://www.advogato.org/proj/3Dwm" &gt;3Dwm&lt;/a&gt; is still my number one
passion, and will likely continue to be so for a very long
time. This summer marks two full years that the system has
been in development. That's quite an accomplishment by
someone who used to have the attention span of a moth when
it came to working on projects! Earlier, projects used to be
exciting the first few weeks or months, and then decline in
interest before they died out altogether. Ahh, what
impressive projects have died at my hands! ;) So, there must
be something special about 3Dwm for me.


&lt;p&gt; &lt;p&gt;
At the moment, I'm cutting my teeth on the event mapping in
the system. The problem is rather simple: how do we map raw
input events from a wide number of heterogenous input
devices to input commands that the system can recognize?
Also, there comes the issue of &lt;b&gt;global events&lt;/b&gt;, i.e.
events concerning system-wide things like view control and
system commands that should not be possible to override. &lt;a
href="/person/stefan"&gt;stefan&lt;/a&gt; has helped me gain some
insight here, and my current solution involves a
special-purpose logic language to perform these things. We
will see how it goes.

</description>
    </item>
    <item>
      <pubDate>Sun, 22 Apr 2001 14:43:07 GMT</pubDate>
      <title>22 Apr 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=9</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=9</guid>
      <description>&lt;p&gt;
Still chiselling away at the &lt;b&gt;event propagation&lt;/b&gt; stuff
in &lt;a href="http://www.advogato.org/proj/3Dwm/" &gt;3Dwm&lt;/a&gt;. I actually spent Easter
in &lt;a href="http://www.hemavan.nu" &gt;Tarnaby/Hemavan&lt;/a&gt; a
Swedish ski resort, so I haven't had the chance to do much
than work on my tan and my downhill skiing, but now I am
back in front of my computer again.  My current challenge is
computing the bounding volumes for the scene graph nodes and
making sure that changes to these are propagated correctly
in the graph. When toiling away at the design for this
mechanism, I realized that this, and many similar things,
are actually simply events that need to be routed and
handled in the scene graph.


&lt;p&gt; &lt;p&gt; &lt;p&gt;
Armed with this discovery, I am now rebuilding lots of the
scene graph code to also contain a generalized event
framework. This will not only make it easy to add internal
events like the bounding volume computation mechanism, it
will also be excellent for input events that needs to be
routed and handled by &lt;b&gt;controllers&lt;/b&gt; in the scene graph.


&lt;p&gt; &lt;p&gt; &lt;p&gt;
Me and my friend &lt;a
href="http://www.astud.chalmers.se/robkar97/"&gt;Robert
Karlsson&lt;/a&gt;, also a member of the &lt;a
href="/proj/3Dwm"&gt;3Dwm&lt;/a&gt; core developers, are going to be
attending a press seminar at the &lt;a
href="http://www.arkitekturmuseet.se"&gt;Museum of
Architecture&lt;/a&gt; in &lt;a
href="http://www.stockholm.se"&gt;Stockholm&lt;/a&gt; on the 24th of
April. We will be presenting the project and demonstrating
the &lt;b&gt;wearable computer&lt;/b&gt; that we will use as a hardware
platform for the system.

</description>
    </item>
    <item>
      <pubDate>Tue, 3 Apr 2001 12:15:48 GMT</pubDate>
      <title>3 Apr 2001</title>
      <link>http://www.advogato.org/person/NickElm/diary.html?start=8</link>
      <guid>http://www.advogato.org/person/NickElm/diary.html?start=8</guid>
      <description>&lt;p&gt;
Well, well, it was a while since I last posted something
here, but I saw that &lt;a href="http://www.advogato.org/person/steveh/" &gt;steveh&lt;/a&gt;
has been doing some updates, so I thought I should do, too.
After all, we're both in the same boat, especially now when
we are getting back into &lt;a href="http://www.advogato.org/proj/3Dwm" &gt;3Dwm&lt;/a&gt;
again.


&lt;p&gt; &lt;p&gt;
Yes, I've been gone for a while since around Christmas, busy
with personal stuff and school. A fun little incident
involving an emergency operation got me hooked on the
project again, though, and here I am. :) Now for some
updates on 3Dwm...


&lt;p&gt; &lt;p&gt;
3Dwm and &lt;a href="http://www.medialab.chalmers.se" &gt;Chalmers
Medialab&lt;/a&gt; recently teamed up with &lt;a
href="http://www.xybernaut.com"&gt;Xybernaut&lt;/a&gt;, the market
leader in &lt;b&gt;wearable computers&lt;/b&gt;, to integrate 3Dwm on
the wearable platform. Just a few weeks ago, we received a
shipment of two wearable units complete with some very
interesting peripherals, including a head tracker and a data
glove. Very, very cool. We will be spending the next three
months at integrating 3Dwm on the platform and adapting it
to use the amazing capabilities that are available. Maybe
this will be the first niche for 3Dwm that can gain
widespread use of the system?


&lt;p&gt; &lt;p&gt;
At the moment, I am looking into &lt;b&gt;event propagation&lt;/b&gt; in
the 3Dwm &lt;b&gt;scene graph&lt;/b&gt;. Input events and intersection
testing in the scene graph are the most challenging parts of
this mini-project, but the technical solution is very akin
to collision detection using bounding volumes and I think
that a lot of my current work will be usable for view
frustum culling if done right.


&lt;p&gt; &lt;p&gt;
Anyway, enough with the updates, it's back into design and
analysis for me now.

</description>
    </item>
  </channel>
</rss>
