<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>defmacro.org</title>
    <link>http://www.defmacro.org/</link>
    <description>Ramblings on Lisp, Haskell, C++, compilers, web frameworks and more.</description>
    <language>en-us</language>

    <item>
      <title>Fractal - A Direct3D Demo of Natural Phenomena</title>
      <link>http://www.defmacro.org/ramblings/fractal.html</link>
      <description>
	Fractal is a Direct3D demo I wrote a number of years ago to
	showcase real-time procedural generation of natural phenomena
	on modern GPU hardware (GeForce 2, at the time). The demo
	implements the four elements - earth, fire, air (clouds and
	wind), and water. Procedural generation of natural phenomena
	was my passion before Lambda Calculus took over my life.
      </description>
      <pubDate>Wed, 02 Apr 2008 02:44:53 EST</pubDate>
      <guid isPermaLink="true">http://www.defmacro.org/ramblings/fractal.html</guid>
    </item>
  
    <item>
      <title>Querying s-expressions in Common Lisp</title>
      <link>http://www.defmacro.org/ramblings/s-query.html</link>
      <description>
	One downside of using Common Lisp to get things done is that
	occasionally libraries taken for granted in other languages
	are missing. I was using the excellent S-XML library to
	convert XML to s-expressions, when I realized that Common Lisp
	has no library equivalent in functionality to an
	implementation of XQuery.
	  
	I needed to extract quite a bit of information from the
	s-expressions I acquired. Using CAR, CDR, MEMBER, and FIND
	quickly became infeasible. I had to roll my own query
	mechanism. It took me about twenty minutes to produce an
	acceptable solution. It's only around 45 lines of code.
      </description>
      <pubDate>Tue, 01 Apr 2008 22:11:17 EST</pubDate>
      <guid isPermaLink="true">http://www.defmacro.org/ramblings/s-query.html</guid>
    </item>
  
    <item>
      <title>A Lambda Calculus Reducer</title>
      <link>http://www.defmacro.org/ramblings/lambda-reducer.html</link>
      <description>
	About a month ago I decided to buy some time from society by
	doing a trial run of graduate studies - I took some Computer
	Science courses at Stony Brook University. The first homework
	for the Programming Languages course was to write a lambda
	calculus reducer - a task I happily jumped on. A few hours
	later I had it implemented in 105 lines of Haskell code.
      </description>
      <pubDate>Sun, 24 Feb 2008 16:55:04 EST</pubDate>
      <guid isPermaLink="true">http://www.defmacro.org/ramblings/lambda-reducer.html</guid>
    </item>
  
    <item>
      <title>A User Interface Definition Language in Common Lisp</title>
      <link>http://www.defmacro.org/ramblings/ui-dsl.html</link>
      <description>
	I like HTML in the same way I like PDF - as a document
	serialization format that does a reasonable job and that I
	never want to modify by hand. This is one of the main reasons
	I started Weblocks framework - I never wanted to write a line
	of HTML again. Ironically, I ended up writing a lot of HTML
	and learning more about its quirks, accessibility issues, and
	CSS hooks than I ever wanted to, but I finally ended up with a
	high level user interface definition language embedded into
	Common Lisp. Finally, HTML is out of my life, for good. Being
	lazy does pay off.
      </description>
      <pubDate>Wed, 13 Feb 2008 21:32:43 EST</pubDate>
      <guid isPermaLink="true">http://www.defmacro.org/ramblings/ui-dsl.html</guid>
    </item>
  
    <item>
      <title>Continuations-Based Web Applications in Common Lisp With Weblocks</title>
      <link>http://www.defmacro.org/ramblings/continuations-web.html</link>
      <description>
	Aside from Weblocks, three frameworks I know of do a good job
	dealing with control flow - Seaside, UCW, and PLT. Proper
	control flow management is difficult to implement - it
	requires continuations, which most languages don't
	support. Because frameworks with good control flow management
	are so rare, most people don't understand what they're
	missing. In this article I'll describe the problem and how it
	is solved in Weblocks using continuations. A live Weblocks
	demo that showcases a practical implementation of these
	concepts is available.
      </description>
      <pubDate>Tue, 20 Nov 2007 23:42:55 EST</pubDate>
      <guid isPermaLink="true">http://www.defmacro.org/ramblings/continuations-web.html</guid>
    </item>

  </channel>
</rss>
