<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://www.untyped.com/untyping/wp-atom.php">
	<title type="text">Untyping</title>
	<subtitle type="text">Weblog of Untyped, software developers for internet, desktop and mobile.</subtitle>

	<updated>2010-02-02T14:16:12Z</updated>
	<generator uri="http://wordpress.org/" version="2.9.1">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://www.untyped.com/untyping" />
	<id>http://www.untyped.com/untyping/feed/atom/</id>
	

			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Untyping" /><feedburner:info uri="untyping" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
		<author>
			<name>Noel</name>
						<uri>http://www.untyped.com/</uri>
					</author>
		<title type="html"><![CDATA[Is the iPad the beginning of the end for Intel?]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/wXQenIk1bts/" />
		<id>http://www.untyped.com/untyping/?p=271</id>
		<updated>2010-02-02T14:16:12Z</updated>
		<published>2010-02-02T14:16:12Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Uncategorized" />		<summary type="html"><![CDATA[Much has been written about the iPad since its launch. I&#8217;m sympathetic to the concerns about the closed nature of the iPad, and I think the iBookStore (along with the Kindle) is going to have a big effect on the book market, but I want to focus on something I haven&#8217;t seen much discussed: the [...]]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2010/02/02/is-the-ipad-the-beginning-of-the-end-for-intel/">&lt;p&gt;Much has been written about the iPad since its launch. I&amp;#8217;m sympathetic to the concerns about the closed nature of the iPad, and I think the iBookStore (along with the Kindle) is going to have a big effect on the book market, but I want to focus on something I haven&amp;#8217;t seen much discussed: the &lt;a href="http://www.brightsideofnews.com/news/2010/1/27/apple-a4-soc-unveiled---its-an-arm-cpu-and-the-gpu!.aspx"&gt;A4&lt;/a&gt; chip powering the iPad.&lt;/p&gt;
&lt;p&gt;What you need to know about the A4 is this: at its core is an ARM &lt;a href="http://www.arm.com/products/CPUs/ARMCortex-A9_MPCore.html"&gt;Cortex-A9 MP&lt;/a&gt; CPU. ARM cores also power the iPhone and about every other smartphone out there. Intel just can&amp;#8217;t compete in this market as their chips require too much power. This weakness is, paradoxically, a result of their greatest strength: the Intel instruction set. Even the most modern Intel chip still retains the ability to execute code for the ancient 8086. This ensures you can run just about any program ever written for an Intel machine on the latest CPU, giving Intel an enormous software base to leverage. However supporting this instruction set comes at a cost. The 8086 instruction set is not a good fit for modern CPU designs, and the instruction set has accreted decades of cruft to try and wedge modern features into it. To get acceptable performance all modern Intel chips have vast amounts of silicon devoted to instruction decoding; that is, the process of turning instructions into so-called micro-ops, which are what the CPU actually executes. All this silicon takes power, which is why ARM handily beats Intel on performance-per-Watt.&lt;/p&gt;
&lt;p&gt;Now this wasn&amp;#8217;t an issue for Intel even a few years ago. But we&amp;#8217;re seeing three things that ought to make them worried. The first is the iPad, showing that little devices can grow bigger and perhaps move into the PC market, in much the same way PCs took over from the scientific workstations of Apollo, DEC, Sun and others. The second is the increasing concern for performance-per-Watt from people like Google and Amazon whose huge server farms power the major Internet services. The third is open source software, and particularly GCC&amp;#8217;s support for just about every CPU on the market. This means the software can be easily recompiled for a new architecture. Suddenly Intel&amp;#8217;s dominance doesn&amp;#8217;t seem so assured.&lt;/p&gt;
&lt;p&gt;So perhaps in a few years ARM will become the dominant architecture, rather than Intel. Apple have already shown that switching architecture (twice!) isn&amp;#8217;t so painful. And as someone who has been writing an &lt;a href="http://github.com/noelwelsh/assembler"&gt;Intel assembler&lt;/a&gt; for fun I can&amp;#8217;t say I see this as a bad thing.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/wXQenIk1bts" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2010/02/02/is-the-ipad-the-beginning-of-the-end-for-intel/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2010/02/02/is-the-ipad-the-beginning-of-the-end-for-intel/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2010/02/02/is-the-ipad-the-beginning-of-the-end-for-intel/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dave G</name>
						<uri>http://www.untyped.com</uri>
					</author>
		<title type="html"><![CDATA[Kahupdate 2]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/x4D2XGegoh0/" />
		<id>http://www.untyped.com/untyping/?p=261</id>
		<updated>2010-01-31T18:03:46Z</updated>
		<published>2010-01-31T18:01:05Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Kahu" />		<summary type="html"><![CDATA[We&#8217;ve just uploaded another weekly update to Kahu, including a few bug fixes and the following new features:
Automatic closure of tickets
We had a lot of requests for this feature from support teams. Tickets in the resolved state are now automatically closed after a week. An email is sent to the person who raised the ticket, just in case there is [...]]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2010/01/31/kahupdate-2/">&lt;p&gt;We&amp;#8217;ve just uploaded another weekly update to Kahu, including a few bug fixes and the following new features:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Automatic closure of tickets&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;We had a lot of requests for this feature from support teams. Tickets in the resolved state are now automatically closed after a week. An email is sent to the person who raised the ticket, just in case there is still a problem.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Better navigation on booking pages&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;Each of the booking pages gets five new navigation buttons to make it easier to move around. In left-to-right order these are previous week,&lt;em&gt; previous day&lt;/em&gt;, &lt;em&gt;next day&lt;/em&gt;, &lt;em&gt;next week&lt;/em&gt;, and &lt;em&gt;jump to today&lt;/em&gt;. The selected day is also highlighted in week views, making it easier to see where you&amp;#8217;re looking.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Delete and deactivate people&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;Last week we added the ability to delete teams and resources; this week we&amp;#8217;re adding the ability to delete people. To avoid confusion, we&amp;#8217;ve made it so you can&amp;#8217;t delete a person if they own any bookings, have raised any tickets, or have authored any ticket comments. Instead, we&amp;#8217;ve added the option to deactivate a person&amp;#8217;s account.&lt;/p&gt;
&lt;p&gt;Inactive people cannot log in, and they don&amp;#8217;t show up on the &lt;em&gt;People&lt;/em&gt; page unless you are an administrator. However, they still appear on bookings, tickets and the like.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;What are we currently working on? Well, it&amp;#8217;s a biggie. We&amp;#8217;re updating our in-house tools for doing mass-imports bookings, resources and people. This should make it far easier for schools to do bulk imports of data from Management Information Systems such as &lt;em&gt;SIMS&lt;/em&gt; and &lt;em&gt;Facility&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The tools should be available in the next week or so. In the meantime, as ever, please &lt;a href="http://www.getkahu.com/contact"&gt;get in touch&lt;/a&gt; if you need help with your data.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/x4D2XGegoh0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2010/01/31/kahupdate-2/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2010/01/31/kahupdate-2/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2010/01/31/kahupdate-2/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dave G</name>
						<uri>http://www.untyped.com</uri>
					</author>
		<title type="html"><![CDATA[Kahupdate]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/7hAePUM08q4/" />
		<id>http://www.untyped.com/untyping/?p=250</id>
		<updated>2010-01-31T17:53:28Z</updated>
		<published>2010-01-24T19:41:45Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Kahu" />		<summary type="html"><![CDATA[It&#8217;s been a week since BETT and already we&#8217;re seeing lots of sign-ups to Kahu. We decided to start this news feed to keep everyone up-to-date with the new features we&#8217;re adding and with our plans for the future.
Today we launched an update with a number of new features:
Fortnightly repeating events
We had a lot of [...]]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2010/01/24/kahupdate/">&lt;p&gt;It&amp;#8217;s been a week since BETT and already we&amp;#8217;re seeing lots of sign-ups to Kahu. We decided to start this news feed to keep everyone up-to-date with the new features we&amp;#8217;re adding and with our plans for the future.&lt;/p&gt;
&lt;p&gt;Today we launched an update with a number of new features:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Fortnightly repeating events&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;We had a lot of interest at BETT from schools with fortnightly repeating timetables. So much interest, in fact, that we added this feature on the train on the way back to the office. Timetable managers and booking coordinators now have access to this repeat type when creating/editing a booking series.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Delete&lt;/em&gt;&lt;em&gt; resources and teams&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;Administrators can now see little trash can icons next to each item on the resource and team lists. Clicking on the icon takes you to a confirmation page where the consequences of deleting the item are laid out in plain English.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Speed improvements&lt;/em&gt;&lt;em&gt; on all booking pages&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ve been working hard on our database queries, optimising things here and there to make bookings pages between 20 and 30% faster. There&amp;#8217;s more to come in this department too.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This news feed on the dashboard!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="font-style: normal;"&gt;News on features and bug fixes, delivered straight to your door!&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;We&amp;#8217;re already working on our next update, which we plan to release in the next couple of weeks. Watch this space for more information!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/7hAePUM08q4" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2010/01/24/kahupdate/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2010/01/24/kahupdate/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2010/01/24/kahupdate/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dave G</name>
						<uri>http://www.untyped.com</uri>
					</author>
		<title type="html"><![CDATA[Announcing Kahu]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/wNAXXjGZnJk/" />
		<id>http://www.untyped.com/untyping/?p=243</id>
		<updated>2010-01-24T19:06:53Z</updated>
		<published>2010-01-17T22:22:24Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Front page" /><category scheme="http://www.untyped.com/untyping" term="Kahu" />		<summary type="html"><![CDATA[We are proud to announce the launch of <em>Kahu</em>, our new resource management software for schools and colleges, developed in partnership with <a href="http://www.responsetech.co.uk">RTS Technology Solutions</a>. Check <a href="http://www.getkahu.com">getkahu.com</a> to find out more!]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2010/01/17/announcing-kahu/">&lt;p&gt;We are proud to announce the launch of &lt;em&gt;Kahu&lt;/em&gt;, our new resource management software for schools and colleges, developed in partnership with &lt;a href="http://www.responsetech.co.uk"&gt;RTS Technology Solutions&lt;/a&gt;. Check &lt;a href="http://www.getkahu.com"&gt;getkahu.com&lt;/a&gt; to find out more!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/wNAXXjGZnJk" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2010/01/17/announcing-kahu/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2010/01/17/announcing-kahu/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2010/01/17/announcing-kahu/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Noel</name>
						<uri>http://www.untyped.com/</uri>
					</author>
		<title type="html"><![CDATA[Biased Guide to DEFUN 2009]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/dUchInn_s_Q/" />
		<id>http://www.untyped.com/untyping/?p=225</id>
		<updated>2010-01-25T01:00:36Z</updated>
		<published>2009-07-10T10:49:42Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Front page" />		<summary type="html"><![CDATA[The DEFUN 2009 schedule has recently gone up. We haven't seen many posts about it, so here's our take on what looks good.]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2009/07/10/my-biased-guide-to-defun-2009/">&lt;p&gt;The &lt;a href="http://www.defun2009.info/blog/tutorial-schedule/"&gt;DEFUN 2009&lt;/a&gt; schedule has recently gone up. I haven&amp;#8217;t seen many posts about it, so here&amp;#8217;s my take on what looks good. DEFUN is looking pretty good for Scheme, which is a pleasant surprise; it is well known that Scheme is not mainstream at ICFP. There are &lt;a href="http://www.defun2009.info/blog/tutorial-schedule/implementing-domain-specific-languages-with-plt-scheme/"&gt;three&lt;/a&gt; &lt;a href="http://www.defun2009.info/blog/tutorial-schedule/how-to-develop-web-applications-with-plt-scheme/"&gt;awesome&lt;/a&gt; &lt;a href="http://www.defun2009.info/blog/tutorial-schedule/how-to-start-using-scheme-on-an-embedded-device/"&gt;tutorials&lt;/a&gt; on the schedule, covering DSLs, web programming, and embedded programming respectively. I&amp;#8217;m particularly excited by the DSL tutorial, given by &lt;a href="http://www.cs.utah.edu/~mflatt/"&gt;Matthew Flatt&lt;/a&gt; and &lt;a href="http://barzilay.org/"&gt;Eli Barzilay&lt;/a&gt;. It is my belief that PLT Scheme is the best platform available for developing DSLs, but not many people are aware of its full abilities. I hope this tutorial will go a way to getting the information out there.&lt;/p&gt;
&lt;p&gt;Session &lt;a href="http://www.defun2009.info/blog/tutorial-schedule/ametaprogramming-ajax-apps-with-static-types/"&gt;A5(c)&lt;/a&gt; most intrigues me of the remaining tutorials. &lt;a href="http://www.impredicative.com/ur/"&gt;Ur/Web&lt;/a&gt; throws a whole pile of research into type systems at the problem of developing web applications. Through the power of dependent types Ur/Web claims to eliminate invalid HTML, invalid SQL, code-injection attacks, and bunch of other issues. I certainly want to better understand how it works, and perhaps see if we can apply some of the metaprogramming ideas to our own libraries.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re interested in DEFUN you&amp;#8217;ll probably also be interested in the &lt;a href="http://cufp.galois.com/2009/schedule.html"&gt;CUFP 2009&lt;/a&gt; schedule. I should be at both, as well as most of ICFP. If you&amp;#8217;d like to chat, drop me an email.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/dUchInn_s_Q" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2009/07/10/my-biased-guide-to-defun-2009/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2009/07/10/my-biased-guide-to-defun-2009/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2009/07/10/my-biased-guide-to-defun-2009/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dave G</name>
						<uri>http://www.untyped.com</uri>
					</author>
		<title type="html"><![CDATA[Libraries update]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/jn0KBj0T580/" />
		<id>http://www.untyped.com/untyping/?p=216</id>
		<updated>2010-01-25T01:00:48Z</updated>
		<published>2009-06-05T07:20:41Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Code" /><category scheme="http://www.untyped.com/untyping" term="Front page" />		<summary type="html"><![CDATA[We produce a lot of open source code at Untyped, all of which is available from our Subversion repository. You can check out a read-only copy of our repository at any time.]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2009/06/05/libraries-update/">&lt;p&gt;We produce a lot of open source code at Untyped, all of which is available from our &lt;a href="http://svn.untyped.com/"&gt;Subversion repository&lt;/a&gt;. You can check out a read-only copy of our repository at any time. If you want to work on a branch without getting commit access to our repository, you might find &lt;a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html"&gt;git-svn&lt;/a&gt; or &lt;a href="http://www.selenic.com/mercurial/wiki/SubversionToMercurialHowto"&gt;Mercurial&amp;#8217;s Subversion integration&lt;/a&gt; useful. If you&amp;#8217;d like to collaborate on development (and we&amp;#8217;re open to all kinds of collaboration, including student/academic work) it is probably simplest to drop us an email (noel or dave at untyped dot com) to arrange things. There is a lot of stuff in there, so here&amp;#8217;s a quick summary of the most interesting things we are currently working on.&lt;/p&gt;
&lt;p&gt;&lt;a title="Snooze" href="http://svn.untyped.com/snooze"&gt;Snooze&lt;/a&gt; is our flagship database abstraction layer, comparable to Hibernate or ActiveRecord. Snooze 2, which is out on &lt;a href="http://planet.plt-scheme.org/display.ss?package=snooze.plt&amp;amp;owner=untyped"&gt;PLaneT&lt;/a&gt; now, contains a robust query language and support for whole-model validation. Development on the version 3 of the library is underway, with emphasis on caching and inter-struct relationships.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://svn.untyped.com/mirrors"&gt;Mirrors&lt;/a&gt; is our library for programmatic generation of XHTML and Javascript. It allows you to build blocks of code using a syntax similar to Scheme&amp;#8217;s quoted lists. Rendering is done at compile-time as far as possible, so you get the convenience and compositional properties of quoted lists with the speed of PHP-style mechanisms. We intend to add support for CSS in a future release.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://svn.untyped.com/delirium"&gt;Delirium&lt;/a&gt; is our web UI testing library, similar to &lt;a href="http://seleniumhq.org/"&gt;Selenium&lt;/a&gt; but with the expressive power of &lt;a href="http://planet.plt-scheme.org/display.ss?package=schemeunit.plt&amp;amp;owner=schematics"&gt;SchemeUnit&lt;/a&gt;. Versions 2 and 3, both on PLaneT, have equivalent feature sets: version 2 supports PLT 4.1.3 and earlier, while version 3 supports PLT 4.1.3 and upwards.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://svn.untyped.com/smoke"&gt;Smoke&lt;/a&gt; is our UI creation library (the partner library to Mirrors, pun definitely intended). While we have deployed this in a number of production applications, the interface is subject to constant tweaking so we haven&amp;#8217;t published it to PLaneT. You can still get hold of the code from SVN and play with it, though!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://svn.untyped.com/dispatch"&gt;Dispatch&lt;/a&gt;, our controller-to-URL mapping library, has been partly subsumed as its core features have been rolled into PLT&amp;#8217;s &lt;a href="http://docs.plt-scheme.org/web-server/dispatch.html"&gt;web-server/dispatch&lt;/a&gt; library. There is still room for both systems, though, as the PLT library is built with simplicity in mind, whereas Dispatch was built to simplify web development. We plan on &amp;#8220;rebooting&amp;#8221; the Dispatch franchise with a version that wraps web-server/dispatch with some new features.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://planet.plt-scheme.org/display.ss?package=schemeunit.plt&amp;amp;owner=schematics"&gt;SchemeUnit&lt;/a&gt;, Noel&amp;#8217;s excellent unit testing package, is as strong as ever. A version recently got rolled into PLT core, but you can still get the PLaneT package for the latest updates from Noel. Note that SchemeUnit&amp;#8217;s code is hosted at &lt;a href="http://schematics.sf.net/"&gt;Schematics&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Other points of interest:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://svn.untyped.com/unlib"&gt;Unlib&lt;/a&gt; is still going strong, with new shorthand &lt;a href="http://planet.plt-scheme.org/package-source/untyped/unlib.plt/3/15/planet-docs/unlib/require.html"&gt;require/provide&lt;/a&gt; syntaxes that can fetch stuff directly from SVN, a more humane version of &lt;a href="http://planet.plt-scheme.org/package-source/untyped/unlib.plt/3/15/planet-docs/unlib/keyword.html"&gt;keyword-apply&lt;/a&gt;, and some utilities to support &lt;a href="http://planet.plt-scheme.org/package-source/untyped/unlib.plt/3/15/planet-docs/unlib/syntax.html"&gt;dotted identifiers&lt;/a&gt; in our other libraries.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://svn.untyped.com/excel"&gt;Excel&lt;/a&gt;, as its name suggests, is a library for creating Excel files in functional drawing style. It supports all the basics: formulae, inter-cell references, number formats, fonts, borders and fills, conditional formatting, and cell validation.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://svn.untyped.com/autoplanet"&gt;Autoplanet&lt;/a&gt; is a tool for deploying applications without having to worry about changing dependencies. It creates an application-local PLaneT cache and can be configured to download and install packages from PLaneT, SVN, or the local filesystem.&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/jn0KBj0T580" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2009/06/05/libraries-update/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2009/06/05/libraries-update/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2009/06/05/libraries-update/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Noel</name>
						<uri>http://www.untyped.com/</uri>
					</author>
		<title type="html"><![CDATA[Flapjax: Second Batch]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/20DsmqqaaN8/" />
		<id>http://www.untyped.com/untyping/?p=212</id>
		<updated>2010-01-25T01:00:08Z</updated>
		<published>2009-04-17T15:53:52Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Web development" />		<summary type="html"><![CDATA[Flapjax is the awesome functional reactive Javascript library from Brown PLT.  We had a good experience with Flapjax some time ago, but in the interim it seemed that the project died. Turns out it was just hibernating. In the last few days Flapjax 2.0 has been released, along with a tech. report describing the [...]]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2009/04/17/flapjax-second-batch/">&lt;p&gt;&lt;a href="http://flapjax-lang.org/"&gt;Flapjax&lt;/a&gt; is the awesome functional reactive Javascript library from &lt;a href="http://www.cs.brown.edu/research/plt/"&gt;Brown PLT&lt;/a&gt;.  We had a &lt;a href="http://www.untyped.com/untyping/2007/01/19/flapjax-in-action/"&gt;good experience&lt;/a&gt; with Flapjax some time ago, but in the interim it seemed that the project died. Turns out it was just hibernating. In the last few days Flapjax 2.0 has been released, along with a &lt;a href="http://www.cs.brown.edu/research/pubs/techreports/reports/CS-09-04.html"&gt;tech. report&lt;/a&gt; describing the system in more detail than the somewhat brief documentation.&lt;/p&gt;
&lt;p&gt;To celebrate I coded up a small &lt;a href="http://github.com/noelwelsh/flan/tree/master"&gt;animation library&lt;/a&gt; for Flapjax. It&amp;#8217;s hosted on Github, not our usual &lt;a href="http://svn.untyped.com/"&gt;Subversion server&lt;/a&gt; as I wanted to gain a bit more experience with Git.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/20DsmqqaaN8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2009/04/17/flapjax-second-batch/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2009/04/17/flapjax-second-batch/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2009/04/17/flapjax-second-batch/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Noel</name>
						<uri>http://www.untyped.com/</uri>
					</author>
		<title type="html"><![CDATA[More State on the Web]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/rYBuvSG83BA/" />
		<id>http://www.untyped.com/untyping/?p=208</id>
		<updated>2010-01-25T01:00:19Z</updated>
		<published>2009-03-26T13:35:04Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Web development" />		<summary type="html"><![CDATA[As a followup to The State of State on the Web I want to mention stateless servlets, a relatively new feature of the PLT web server that make continuations (even) more usable. Stateless servlets are essentially a kind of servlet with serializable continuations. A serialized continuation can then be stored on the hard disk, in [...]]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2009/03/26/more-state-on-the-web/">&lt;p&gt;As a followup to &lt;a href="http://www.untyped.com/untyping/2009/03/20/the-state-of-state-on-the-web/"&gt;The State of State on the Web&lt;/a&gt; I want to mention stateless servlets, a relatively new feature of the PLT web server that make continuations (even) more usable. &lt;a href="http://docs.plt-scheme.org/web-server/stateless-servlets.html"&gt;Stateless servlets&lt;/a&gt; are essentially a kind of servlet with serializable continuations. A serialized continuation can then be stored on the hard disk, in the URL, in a cookie, or using any other mechanism you desire. This gets around the issue of memory consumption that is a concern with normal continuations. I don&amp;#8217;t have a lot of experience with this kind of servlet, but Jay&amp;#8217;s experience is that they are faster than normal servlets and the continuations are typically less than 100 bytes (and so can easily be encoded in a URL). Very nice!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/rYBuvSG83BA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2009/03/26/more-state-on-the-web/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2009/03/26/more-state-on-the-web/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2009/03/26/more-state-on-the-web/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Noel</name>
						<uri>http://www.untyped.com/</uri>
					</author>
		<title type="html"><![CDATA[The State of State on the Web]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/H1gE73JxSjk/" />
		<id>http://www.untyped.com/untyping/?p=205</id>
		<updated>2010-01-25T01:00:36Z</updated>
		<published>2009-03-20T13:25:25Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Web development" />		<summary type="html"><![CDATA[There seems to be a miscomprehension that continuation based and RESTful web apps are mutually exclusive.  Witness Nagare proudly proclaiming “no explicit URL routing / mapping &#8230; no global session object &#8230; no REST” as if continuation based frameworks were violently in opposition to these features. This is not the case.  Fundamentally the [...]]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2009/03/20/the-state-of-state-on-the-web/">&lt;p&gt;There seems to be a miscomprehension that continuation based and RESTful web apps are mutually exclusive.  Witness &lt;a href="http://www.nagare.org/"&gt;Nagare&lt;/a&gt; proudly proclaiming “no explicit URL routing / mapping &amp;#8230; no global session object &amp;#8230; no REST” as if continuation based frameworks were violently in opposition to these features. This is not the case.  Fundamentally the issue is about managing state, and continuations, cookies, and friends are all approaches to solving the problem of encoding state over a stateless protocol.  At Untyped we develop web apps that use a combination of continuations, RESTful URLs, and cookies for managing state and I believe this is the correct way to approach the problem.  I hope this post will convince you of the merits of our approach.&lt;/p&gt;
&lt;p&gt;Before looking at the tradeoffs of the different approaches I want to summarise continuations and their use in web applications.  Simply put, the continuation of a program is what happens next.  In the program &lt;code&gt;(+ 5 (+ 2 1))&lt;/code&gt; the continuation of &lt;code&gt;(+ 2 1)&lt;/code&gt; is to evaluate &lt;code&gt;(+ 5 [])&lt;/code&gt;, where I&amp;#8217;ve written &lt;code&gt;[]&lt;/code&gt; to indicate the place where the value of &lt;code&gt;(+ 2 1)&lt;/code&gt; goes&lt;a name="#footnote-1-src"&gt;&lt;/a&gt;.  Now in Scheme we can capture a continuation, store it in a variable, and generally pass it around like any other value.  This means we can effectively suspend a computation (by capturing a continuation) and then resume it at some time in the future (by invoking the continuation, which in Scheme appears as any a function application).&lt;/p&gt;
&lt;p&gt;Now let&amp;#8217;s look at what continuations do for web applications.  A continuation-based framework associates a specific server state with a URL, which it does by capturing a continuation when a response is sent to a user.  Everytime the user visits that URL they visit the same server state, invoking the captured continuation. As the user navigates around the site they build a history of server states that can be revisited using the back and forward buttons.  This has several advantages.  Firstly, if you don&amp;#8217;t use mutation the back button will just work, because the user is just back to the same program state.  Pretty neat.  Furthermore, continuations give you procedure call semantics in your web app.  Because a continuation is resumed when a URL is visited, to your program it appears as if the user&amp;#8217;s request is the returned value of the function that sends your response.  It&amp;#8217;s as if you were using &lt;code&gt;display&lt;/code&gt; and &lt;code&gt;read&lt;/code&gt; on the web.  This makes programming a lot simpler. For example, if you want to forward the user to a login page you just call the login page function, and it will return to the right place.  No need to pass that page a URL to redirect the user to.  This can be incredibly productive.&lt;/p&gt;
&lt;p&gt;Now we&amp;#8217;ve seen some of the advantages of continuations, we must consider the cases where the model falls down.  There are two main issues: server load, and scope.  Server load is simple.  Every time you store a continuation on the server you use up some memory (RAM or disk space).  At some point you have to reclaim that resource, so people may see “continuation expired” pages if they leave a long time between visits (though this is no worse that session expiry, which is quite common). Often a website has pages that are just displaying the results of simple queries to a database.  These pages have no interesting state and using continuations in this case is wasteful of resources.  Here RESTful approaches are appropriate, and we use them with, for example, &lt;a href="http://jay-mccarthy.blogspot.com/2009/03/url-based-dispatching-in-plt-web-server.html"&gt;the web server&amp;#8217;s dispatchers&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Scope is another issue with continuation-based apps.  Recall that continuation-based frameworks associate a particular URL, meaning a particular browser window (or tab), with a particular server state.  There are some kinds of state that should be shared across all browser windows.  Login information is a prevalent example.  If I login to a site via one browser window, and then visit that site in another browser window I expect to already be logged in.  This isn&amp;#8217;t possible with continuations, as they are per window.  Cookies, on the other hand, are per browser.  So storing my login status in a cookie is the right thing to do.&lt;/p&gt;
&lt;p&gt;In summary, RESTful approaches (URL routing, for example), cookies, and continuations are complementary and all have a place in web applications.  Don&amp;#8217;t think, for example, that is you use continuations you automatically reject everything RESTful!  Finally, the Anton of Straaten addressed this issue from a different direction in his &lt;a href="http://ll4.csail.mit.edu/slides/rest-slides.pdf"&gt;LL4 talk&lt;/a&gt;.  Check it out for a different take on the problem.&lt;/p&gt;
&lt;p&gt;&lt;a name="footnote-1"&gt;&lt;/a&gt; Equivalently we could say the continuation of &lt;code&gt;(+ 2 1)&lt;/code&gt; is &lt;code&gt;(lambda (x) (+ 5 x))&lt;/code&gt;.  This realisation is the key to continuation passing style, a program transformation useful in compilers and, perhaps surprisingly, AJAX web applications.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/H1gE73JxSjk" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2009/03/20/the-state-of-state-on-the-web/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2009/03/20/the-state-of-state-on-the-web/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2009/03/20/the-state-of-state-on-the-web/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dave G</name>
						<uri>http://www.untyped.com</uri>
					</author>
		<title type="html"><![CDATA[Untyped open source repository: open for business]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Untyping/~3/7Kpa5IztOl4/" />
		<id>http://www.untyped.com/untyping/?p=190</id>
		<updated>2010-01-25T01:01:28Z</updated>
		<published>2009-01-27T11:32:37Z</published>
		<category scheme="http://www.untyped.com/untyping" term="Code" />		<summary type="html"><![CDATA[It's been a long time coming, but we are proud to announce the launch of the Untyped open source repository! Now everyone can get hold of the latest code for our open source libraries.]]></summary>
		<content type="html" xml:base="http://www.untyped.com/untyping/2009/01/27/untyped-open-source-repository-open-for-business/">&lt;p&gt;It&amp;#8217;s been a long time coming, but we are proud to announce the launch of the &lt;a href="http://svn.untyped.com"&gt;Untyped open source repository!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This public Subversion repository houses the source code for our open source projects, including popular PLT Scheme packages such as &lt;a title="Dispatch on PLaneT" href="http://planet.plt-scheme.org/display.ss?package=dispatch.plt&amp;amp;owner=untyped"&gt;Dispatch&lt;/a&gt;, &lt;a title="Snooze on PLaneT" href="http://planet.plt-scheme.org/display.ss?package=snooze.plt&amp;amp;owner=untyped"&gt;Snooze&lt;/a&gt; and &lt;a title="Mirrors on PLaneT" href="http://planet.plt-scheme.org/display.ss?package=mirrors.plt&amp;amp;owner=untyped"&gt;Mirrors&lt;/a&gt; as well as a few things you won&amp;#8217;t find on &lt;a href="http://planet.plt-scheme.org"&gt;PLaneT&lt;/a&gt;.  It&amp;#8217;s all free and open source, but please make sure you agree to our &lt;a href="http://svn.untyped.com/README"&gt;terms of use&lt;/a&gt; before you get stuck in.&lt;/p&gt;
&lt;p&gt;You can check out any or all the projects using command line SVN. For example:&lt;/p&gt;
&lt;pre&gt;  svn co http://svn.untyped.com/mirrors/trunk mirrors-trunk&lt;/pre&gt;
&lt;div&gt;It&amp;#8217;s no-frills at the moment &amp;#8211; SVN and web browser support only &amp;#8211; but we plan to prettify things in the future. See the &lt;a href="http://svn.untyped.com/README"&gt;README&lt;/a&gt; file for more information.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/Untyping/~4/7Kpa5IztOl4" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.untyped.com/untyping/2009/01/27/untyped-open-source-repository-open-for-business/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.untyped.com/untyping/2009/01/27/untyped-open-source-repository-open-for-business/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.untyped.com/untyping/2009/01/27/untyped-open-source-repository-open-for-business/</feedburner:origLink></entry>
	</feed>
