<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Conal Elliott &#187; graphics programming</title>
	<atom:link href="http://conal.net/blog/tag/graphics-programming/feed" rel="self" type="application/rss+xml" />
	<link>http://conal.net/blog</link>
	<description>Inspirations &#38; experiments, mainly about denotative/functional programming in Haskell</description>
	<lastBuildDate>Thu, 25 Jul 2019 18:15:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.17</generator>
	<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2F&amp;language=en_US&amp;category=text&amp;title=Conal+Elliott&amp;description=Inspirations+%26amp%3B+experiments%2C+mainly+about+denotative%2Ffunctional+programming+in+Haskell&amp;tags=blog" type="text/html" />
	<item>
		<title>New Pajama wiki</title>
		<link>http://conal.net/blog/posts/new-pajama-wiki</link>
		<comments>http://conal.net/blog/posts/new-pajama-wiki#comments</comments>
		<pubDate>Wed, 13 Sep 2006 23:18:00 +0000</pubDate>
		<dc:creator><![CDATA[Conal]]></dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[infinite graphics]]></category>
		<category><![CDATA[Pajama]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/new-pajama-wiki/</guid>
		<description><![CDATA[Edits: 2008-11-24: The wiki broke a few months ago, after a server change. I&#8217;ll restore it someday, when I get Pajama into releasable shape. I set up a new wiki for Pajama (interactive, continuous, web-embeddable images). Please try it out and leave comments on the wiki or email them to me. I&#8217;m very interested in [&#8230;]]]></description>
				<content:encoded><![CDATA[<!-- 

Title: New Pajama wiki

Tags: graphics programming, infinite graphics, Pajama, wiki

URL: http://conal.net/blog/posts/new-pajama-wiki/

-->

<!-- references -->

<p><strong>Edits</strong>:</p>

<ul>
<li>2008-11-24: The wiki broke a few months ago, after a server change.  I&#8217;ll restore it someday, when I get Pajama into releasable shape.</li>
</ul>

<!-- without a comment or something here, the last item above becomes a paragraph -->

<p>I set up a <a href="http://pajama.conal.net">new wiki</a> for Pajama (interactive, continuous, web-embeddable images).  Please try it out and leave comments on the wiki or email them to me.</p>

<p>I&#8217;m very interested in help with Pajama, particularly:</p>

<ul>
<li>Replacing the remaining old code from <a href="http://conal.net/Pan">Pan</a> (done while I was at Microsoft Research).  Most of the code has been rewritten and simplified, including the complicated code motion stuff (common subexpression elimination and loop hoisting), code generation (nicely exploiting Java), and GUI construction.</li>
<li>Getting it whipped into shape to be a open source project.</li>
<li>Applying the (domain-independent) compiler to other domains (sound, 3D, &#8230;).</li>
<li>Improvements to the wiki, including easier uploading of examples and automatic generation of galleries.</li>
<li>Integration of Pajama and <a href="http://pajama.conal.net/Eros">Eros</a> (end-user syntax-free authoring of functional programs).</li>
</ul>

<p>On wiki software selection:  After looking around at different engines, including a visit to #wiki and <a href="http://www.wikimatrix.org/">WikiMatrix</a>, I picked MoinMoin. It satisfies my requirements nicely: Java applet embedding (as generated by the Pajama compiler), free, wysiwyg page editing and a friendly implementation/extension language, namely Python. Then I started learning Python, which is a reasonably nice programming language for customizing the wiki server. My first Python program is a wiki macro that makes it fairly easy to embed Pajama effects in a wiki page.</p>

<div align="center"><a href="http://conal.net/Pajama"><img src="http://conal.net/Pajama/thumbnails/tiled_lens_checker_cool_thumbnail.png" /></a></div>
<p><a href="http://conal.net/blog/?flattrss_redirect&amp;id=29&amp;md5=b53b97106bfa5b0d5ea134df8b0504d8"><img src="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png" srcset="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@2x.png 2xhttp://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@3x.png 3x" alt="Flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/new-pajama-wiki/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2Fposts%2Fnew-pajama-wiki&amp;language=en_GB&amp;category=text&amp;title=New+Pajama+wiki&amp;description=Edits%3A+2008-11-24%3A+The+wiki+broke+a+few+months+ago%2C+after+a+server+change.+I%26%238217%3Bll+restore+it+someday%2C+when+I+get+Pajama+into+releasable+shape.+I+set+up+a+new+wiki...&amp;tags=graphics+programming%2Cinfinite+graphics%2CPajama%2Cwiki%2Cblog" type="text/html" />
	</item>
		<item>
		<title>P.S. to &#8220;Pajama site improved&#8221;</title>
		<link>http://conal.net/blog/posts/ps-to-pajama-site-improved</link>
		<comments>http://conal.net/blog/posts/ps-to-pajama-site-improved#comments</comments>
		<pubDate>Fri, 14 Apr 2006 01:24:00 +0000</pubDate>
		<dc:creator><![CDATA[Conal]]></dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[Pajama]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/ps-to-pajama-site-improved/</guid>
		<description><![CDATA[Please see this this January post for an overview of Pajama. Pajama now runs on Java 1.4 and up, not just 1.5, thanks to Retroweaver, a class file rewriter.]]></description>
				<content:encoded><![CDATA[<p>Please see this <a href="http://conal.net/blog/posts/pajama/">this January post</a> for an overview of Pajama.</p>

<p>Pajama now runs on Java 1.4 and up, not just 1.5, thanks to <a href="http://retroweaver.sourceforge.net">Retroweaver</a>, a class file rewriter.</p>

<div align="center">
<a href="http://conal.net/Pajama"><img src="http://conal.net/Pan/Gallery/transparent/crop_swirl_checker_100.png" />
</a></div>
<p><a href="http://conal.net/blog/?flattrss_redirect&amp;id=27&amp;md5=823fa5cadebb0feb0fa1638ef5c44d34"><img src="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png" srcset="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@2x.png 2xhttp://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@3x.png 3x" alt="Flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/ps-to-pajama-site-improved/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2Fposts%2Fps-to-pajama-site-improved&amp;language=en_GB&amp;category=text&amp;title=P.S.+to+%26%238220%3BPajama+site+improved%26%238221%3B&amp;description=Please+see+this+this+January+post+for+an+overview+of+Pajama.+Pajama+now+runs+on+Java+1.4+and+up%2C+not+just+1.5%2C+thanks+to+Retroweaver%2C+a+class+file+rewriter.&amp;tags=graphics+programming%2CPajama%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Pajama site improved</title>
		<link>http://conal.net/blog/posts/pajama-site-improved</link>
		<comments>http://conal.net/blog/posts/pajama-site-improved#comments</comments>
		<pubDate>Tue, 11 Apr 2006 20:04:00 +0000</pubDate>
		<dc:creator><![CDATA[Conal]]></dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[Pajama]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/pajama-site-improved/</guid>
		<description><![CDATA[The Pajama site is much prettier &#38; friendlier now, thanks to Holly. She organized the image effects into several groups (with overlap), chose settings to show them off, and added “toy tips” suggesting what to try. I would love to get comments and suggestions.]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://conal.net/Pajama">Pajama</a> site is much prettier &amp; friendlier now, thanks to <a href="http://hollyc.com">Holly</a>.  She organized the image effects into several groups (with overlap), chose settings to show them off, and added “toy tips” suggesting what to try.</p>

<p>I would love to get comments and suggestions.</p>

<div align="center">
<a href="http://conal.net/Pajama"><img src="http://conal.net/Pajama/thumbnails/hybrid_swirled_half-space_thumbnail.jpg" /></a></div>
<p><a href="http://conal.net/blog/?flattrss_redirect&amp;id=26&amp;md5=5741c7afd482ed070d73b7e863e1edbf"><img src="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png" srcset="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@2x.png 2xhttp://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@3x.png 3x" alt="Flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/pajama-site-improved/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2Fposts%2Fpajama-site-improved&amp;language=en_GB&amp;category=text&amp;title=Pajama+site+improved&amp;description=The+Pajama+site+is+much+prettier+%26amp%3B+friendlier+now%2C+thanks+to+Holly.+She+organized+the+image+effects+into+several+groups+%28with+overlap%29%2C+chose+settings+to+show+them+off%2C+and+added...&amp;tags=graphics+programming%2CPajama%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Pajama!</title>
		<link>http://conal.net/blog/posts/pajama</link>
		<comments>http://conal.net/blog/posts/pajama#comments</comments>
		<pubDate>Wed, 11 Jan 2006 20:13:00 +0000</pubDate>
		<dc:creator><![CDATA[Conal]]></dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[infinite graphics]]></category>
		<category><![CDATA[Pajama]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/pajama/</guid>
		<description><![CDATA[I am working on a new implementation, called Pajama, of the image synthesis embedded language Pan, this time generating Java applets. The advantages over Pan will be Easy to run examples. Anyone with Java 1.5 or better can simply visit a web page to see and interact with the examples.Examples run on all major platforms [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I am working on a new implementation, called <i>Pajama</i>, of the image synthesis embedded language <a href="http://conal.net/Pan">Pan</a>, this time generating Java applets.  The advantages over Pan will be</p>

<ul> <li>Easy to run examples.  Anyone with Java 1.5 or better can simply visit a web page to see and interact with the examples.</li><li>Examples run on all major platforms (wherever Java 1.5 runs), while Pan ran on Windows only.</li><li>The Pajama compiler runs on all platforms supporting GHC and the java compiler. In contrast, the Pan compiler ran only under Windows and only with Microsoft&#8217;s Visual C++ compiler. Worse yet, Pan used a GUI library (WTL) that Microsoft no longer supports. I haven&#8217;t been able to run the Pan compiler for quite a while now.
</li> </ul>

<p>The disadvantage of Pajama over Pan is speed. Trig speed is quite a bit slower, and I suspect array accesses are also. Mustang (Java 1.6) improves trig performance considerably, though only with the server JVM, but almost everyone would be using the client JVM. I hope speed improves over time.</p>

<p>Quite a lot of Pajama is already working.  I have first examples running <a href="http://conal.net/Pajama">here</a>.  More on the way.</p>

<div align="center">
<a href="http://conal.net/Pan/Gallery/cornucopia/"><img src="http://conal.net/Pan/Gallery/transparent/cornucopia/small/05.png" /></a>
</div>

<p><span style="font-weight: bold;">April 13 edit</span>:  Pajama now runs on Java 1.4 and up, not just 1.5, thanks to <a href="http://retroweaver.sourceforge.net/">Retroweaver</a>, a class file rewriter.</p>
<p><a href="http://conal.net/blog/?flattrss_redirect&amp;id=24&amp;md5=6729e9609d4b1fd1090e3ca0609110e1"><img src="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png" srcset="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@2x.png 2xhttp://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@3x.png 3x" alt="Flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/pajama/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2Fposts%2Fpajama&amp;language=en_GB&amp;category=text&amp;title=Pajama%21&amp;description=I+am+working+on+a+new+implementation%2C+called+Pajama%2C+of+the+image+synthesis+embedded+language+Pan%2C+this+time+generating+Java+applets.+The+advantages+over+Pan+will+be+Easy+to+run...&amp;tags=graphics+programming%2Cinfinite+graphics%2CPajama%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>
