<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for joshb</title>
    <link>http://www.advogato.org/person/joshb/</link>
    <description>Advogato blog for joshb</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Fri, 24 May 2013 05:21:19 GMT</pubDate>
    <item>
      <pubDate>Sat, 13 Sep 2003 19:09:38 GMT</pubDate>
      <title>13 Sep 2003</title>
      <link>http://www.advogato.org/person/joshb/diary.html?start=3</link>
      <guid>http://www.advogato.org/person/joshb/diary.html?start=3</guid>
      <description>Here are a couple of screenshots from an OpenGL-based 3D game engine I've been coding in my spare time for a while:

&lt;p&gt; &lt;p&gt; &lt;a href="http://joshbeam.com/screenshots/engine_09-13-2003_1.png" &gt;screenshot 1&lt;/a&gt;

&lt;p&gt; &lt;p&gt; &lt;a href="http://joshbeam.com/screenshots/engine_09-13-2003_2.png" &gt;screenshot 2&lt;/a&gt;

&lt;p&gt; &lt;p&gt; Some if its features right now are fully dynamic lighting, md2 model loading, stenciled shadow volumes (not shown in either of these screenshots because my ancient video card, a Voodoo3 2000, doesn't have a stencil buffer, and it's too slow in software rendering to get a good shot), particles, smoke, heightmaps, and simple AI (you can see two characters fighting eachother in screenshot 2). It's written in C++ and uses SDL for input and such.

&lt;p&gt; &lt;p&gt; Maybe some day I'll get around to releasing something based on this. The only bad thing about 3D/game development for me is that I can't create very good art to use (the model used in screenshot 2 is the "rhino" quake2 model, which I got from &lt;a href="http://www.planetquake.com/polycount" &gt;polycount&lt;/a&gt;, and all of the textures were made with GIMP filters). Oh well.</description>
    </item>
    <item>
      <pubDate>Sat, 14 Jun 2003 00:31:41 GMT</pubDate>
      <title>14 Jun 2003</title>
      <link>http://www.advogato.org/person/joshb/diary.html?start=2</link>
      <guid>http://www.advogato.org/person/joshb/diary.html?start=2</guid>
      <description>Been a while since I've posted anything here.

&lt;p&gt; Last month I wrote a PCX image loader for gdk-pixbuf. With the help of some &lt;a href="http://www.advogato.org/proj/GTK+/" &gt;GTK+&lt;/a&gt; hackers, it's now in the &lt;a href="http://www.advogato.org/proj/GTK+/" &gt;GTK+&lt;/a&gt; HEAD cvs branch. I guess it'll be in the 2.4 release.

&lt;p&gt; Recently I implemented dynamic lightmaps and stenciled shadow volumes with OpenGL, and put a &lt;a href="http://joshbeam.com/software.html" &gt;demo on my website&lt;/a&gt;.</description>
    </item>
    <item>
      <pubDate>Wed, 12 Feb 2003 23:29:06 GMT</pubDate>
      <title>12 Feb 2003</title>
      <link>http://www.advogato.org/person/joshb/diary.html?start=1</link>
      <guid>http://www.advogato.org/person/joshb/diary.html?start=1</guid>
      <description>Been working on prtunnel quite a bit lately after a few weeks of inactivity. The IPv6 support was pretty cool to work on, and it seems to work well. Now what's really needed are some prtunnel packages/ports for Debian, FreeBSD, OpenBSD, etc. (anyone interested in helping out with that?)</description>
    </item>
    <item>
      <pubDate>Fri, 3 Jan 2003 00:42:22 GMT</pubDate>
      <title>3 Jan 2003</title>
      <link>http://www.advogato.org/person/joshb/diary.html?start=0</link>
      <guid>http://www.advogato.org/person/joshb/diary.html?start=0</guid>
      <description>&lt;p&gt;I spent a couple of hours today working on a new daemon mode for prtunnel. There's one daemon process that listens for new connections; when a connection is made, it forks a child process to handle the connection and the daemon process goes back to listening.

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;The only trouble I had was with waiting for the daemon's children after they're done. The first working solution I had was to make the bound socket non-blocking, put the accept(2) call in a loop, and, when no connection is returned, do a waitpid(2) and usleep a bit inside the loop. That was just too bad of a hack. The current solution is to use a SIGCHLD handler to waitpid(2) and have the accept(2) call loop when it's interrupted. This seems to work OK and will probably be in the next release.

&lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;That's it for tonight as far as coding goes. Happy new year, everyone!</description>
    </item>
  </channel>
</rss>
