<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-9757377</id><updated>2009-12-03T21:48:58.657Z</updated><title type='text'>Wadler's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default?start-index=26&amp;max-results=25'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>267</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9757377.post-4479694070723319902</id><published>2009-11-20T11:38:00.003Z</published><updated>2009-11-20T11:40:45.813Z</updated><title type='text'>A list is an odd creature, take 2</title><content type='html'>A second entry, from Timothy Abraham.&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_cvcVu6XSdag/SwZ_94afYUI/AAAAAAAAAD4/vLIFsmmqglw/s1600/list+snake.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_cvcVu6XSdag/SwZ_94afYUI/AAAAAAAAAD4/vLIFsmmqglw/s400/list+snake.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5406149103797100866" /&gt;&lt;/a&gt;&lt;br /&gt;I have created this animal which represents a list, it's a snake whose tail consists of heads, in the end you'll see that the snake releases air with the empty list in it, this symbolizes the empty list, because the empty list is like air it is something but it is also nothing.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-4479694070723319902?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/4479694070723319902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=4479694070723319902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/4479694070723319902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/4479694070723319902'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/11/list-is-odd-creature-take-2.html' title='A list is an odd creature, take 2'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cvcVu6XSdag/SwZ_94afYUI/AAAAAAAAAD4/vLIFsmmqglw/s72-c/list+snake.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-7714412474006897811</id><published>2009-11-18T11:24:00.002Z</published><updated>2009-11-18T11:28:52.737Z</updated><title type='text'>Visualizing Empires Decline</title><content type='html'>&lt;object width="400" height="225"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6437816&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=6437816&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;An elegant animation by Pedro M Cruz.  Spotted via Boing Boing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-7714412474006897811?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://mondeguinho.com/master/visual-experimentations/visualizing-empires' title='Visualizing Empires Decline'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/7714412474006897811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=7714412474006897811' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/7714412474006897811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/7714412474006897811'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/11/visualizing-empires-decline.html' title='Visualizing Empires Decline'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-8058690732509525225</id><published>2009-11-18T09:41:00.002Z</published><updated>2009-11-18T09:42:23.328Z</updated><title type='text'>Ditto</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos-c.ak.fbcdn.net/hphotos-ak-snc3/hs004.snc3/11161_1271074613262_1121787758_1937707_7583229_n.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 500px; height: 375px;" src="http://photos-c.ak.fbcdn.net/hphotos-ak-snc3/hs004.snc3/11161_1271074613262_1121787758_1937707_7583229_n.jpg" border="0" alt="" /&gt;&lt;/a&gt;A new Internet meme.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-8058690732509525225?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/8058690732509525225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=8058690732509525225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8058690732509525225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8058690732509525225'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/11/ditto.html' title='Ditto'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-7754634748825518056</id><published>2009-11-17T10:44:00.005Z</published><updated>2009-11-17T18:39:24.223Z</updated><title type='text'>A list is an odd creature</title><content type='html'>I mentioned to my first-year students that a list is an odd creature: it has only a head and a tail, where the tail is itself a creature with only a head and a tail, and so on.  I challenged them to produce a picture, and Saulius Lukauskas came up with this:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_cvcVu6XSdag/SwLtchkl5FI/AAAAAAAAADw/E8tXvc-c1dE/s1600/shark.png"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 268px; height: 400px;" src="http://4.bp.blogspot.com/_cvcVu6XSdag/SwLtchkl5FI/AAAAAAAAADw/E8tXvc-c1dE/s400/shark.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5405143577101984850" /&gt;&lt;/a&gt;&lt;blockquote&gt;I have just remembered your request for a picture of a creature, with lots of heads and a tail.&lt;br /&gt;&lt;br /&gt;The closest to this I was able to come up is a shark eating another shark eating ... etc.&lt;br /&gt;&lt;br /&gt;Let's think of shark's head as an element in the list. This way one could think of ":" as shark teeth 'connecting' to other shark (Cons even look like a mark from a bite!). Then the head of the smaller shark is the head of new list, and the tail of the list is the bigger shark.&lt;br /&gt;&lt;br /&gt;If we assume that water is [], then it also works in the bottom case with no elements in the list (no sharks) - only water. And water swallows the shark up to it's head so this also work (shark : []).&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-7754634748825518056?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/7754634748825518056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=7754634748825518056' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/7754634748825518056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/7754634748825518056'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/11/list-is-odd-creature.html' title='A list is an odd creature'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cvcVu6XSdag/SwLtchkl5FI/AAAAAAAAADw/E8tXvc-c1dE/s72-c/shark.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-4568478425836219282</id><published>2009-11-17T10:34:00.004Z</published><updated>2009-11-17T18:41:13.259Z</updated><title type='text'>Mandelbulb</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mandelbulb.s3.amazonaws.com/q85/Power8side-cut-green-small.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 884px; height: 549px;" src="http://mandelbulb.s3.amazonaws.com/q85/Power8side-cut-green-small.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;The quest for the 3D-analogue of the Mandelbrot curve, with some remarkable photos.  Passed on by my colleague Bob Fisher, who knew of my work with students on interactive application, &lt;a href="http://homepages.inf.ed.ac.uk/wadler/mandelbrot-maps/mmaps.html"&gt;Mandelbrot Maps&lt;/a&gt;.  Thanks, Bob!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-4568478425836219282?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.skytopia.com/project/fractal/mandelbulb.html' title='Mandelbulb'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/4568478425836219282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=4568478425836219282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/4568478425836219282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/4568478425836219282'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/11/mandelbub.html' title='Mandelbulb'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-3459115011986862594</id><published>2009-11-10T18:48:00.003Z</published><updated>2009-11-12T22:55:20.202Z</updated><title type='text'>Transforming the Academy: Knowledge Formation in the Age of Digital Information</title><content type='html'>My favorite quote from Edsger Dijkstra comes from his Turing Award Lecture, The Humble Programmer:&lt;blockquote&gt;"In their capacity as a tool, computers will be but a ripple on the surface of our culture. In their capacity as intellectual challenge, they are without precedent in the cultural history of mankind."&lt;/blockquote&gt;I've just listened to the best defense of this thesis that I've ever heard, courtesy of Bob Constable.  A paper on the same topic of his is linked above.&lt;br /&gt;&lt;br /&gt;Other relevant papers on the same subject are Alan Bundy's &lt;a href="http://www.inf.ed.ac.uk/publications/report/1245.html" &gt;Computational Thinking is Pervasive&lt;/a&gt; and Jeanette Wing's &lt;a href="http://doi.acm.org/10.1145/1118178.1118215" &gt;Computational Thinking&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;I was also fortunate to see Jeanette Wing address this topic in her recent OOPSLA keynote.  In the question period, I mentioned Dijkstra's quote, and also my interpretation of it.  I believe that in his usual style, Dijkstra was exaggerating.  I think there are two precedents: the invention of writing and the discovery of mathematics.  Computing give us, with prose and mathematics, a third way to describe our discoveries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-3459115011986862594?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://ecommons.library.cornell.edu/handle/1813/5675' title='Transforming the Academy: Knowledge Formation in the Age of Digital Information'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/3459115011986862594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=3459115011986862594' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/3459115011986862594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/3459115011986862594'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/11/transforming-academy-knowledge.html' title='Transforming the Academy: Knowledge Formation in the Age of Digital Information'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-6976994634990417139</id><published>2009-11-10T09:17:00.002Z</published><updated>2009-11-10T09:23:00.273Z</updated><title type='text'>Cell size and scale</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_cvcVu6XSdag/Svkw507NzbI/AAAAAAAAADo/otjoAaKC3QQ/s1600-h/Screenshot.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 67px;" src="http://4.bp.blogspot.com/_cvcVu6XSdag/Svkw507NzbI/AAAAAAAAADo/otjoAaKC3QQ/s320/Screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5402402998025309618" /&gt;&lt;/a&gt;&lt;br /&gt;A web app from the University of Utah, reminiscent of the Eames' Powers of 10 movie.  It covers microscale but not macroscale.  Any web apps that cover the opposite?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-6976994634990417139?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://learn.genetics.utah.edu/content/begin/cells/scale/' title='Cell size and scale'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/6976994634990417139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=6976994634990417139' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/6976994634990417139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/6976994634990417139'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/11/cell-size-and-scale.html' title='Cell size and scale'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cvcVu6XSdag/Svkw507NzbI/AAAAAAAAADo/otjoAaKC3QQ/s72-c/Screenshot.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-6446258288475445800</id><published>2009-10-14T10:31:00.000+01:00</published><updated>2009-10-14T10:32:07.086+01:00</updated><title type='text'>Conference Collected Wisdom Wiki</title><content type='html'>One output of &lt;a href="http://www.usenix.net/events/wowcs08/"&gt;WOWCS&lt;/a&gt; (the Workshop on Organizing Workshops, Conferences, and Symposia for Computer Systems) is a wiki to collect information on organizing conferences.  I haven't looked at it in detail yet, but I'm putting the link here for future reference.  Collecting experience in this way sounds like a good idea to me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-6446258288475445800?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://wiki.usenix.org/bin/view/Main/Conference/CollectedWisdom' title='Conference Collected Wisdom Wiki'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/6446258288475445800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=6446258288475445800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/6446258288475445800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/6446258288475445800'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/10/conference-collected-wisdom-wiki.html' title='Conference Collected Wisdom Wiki'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-8148801451076944427</id><published>2009-10-14T10:29:00.000+01:00</published><updated>2009-10-14T10:30:24.434+01:00</updated><title type='text'>Robin writes a book (and you get a copy)</title><content type='html'>Here is your chance to be a patron of the arts.  Robin Sloan, the author of Mr. Penumbra (see earlier blog entry), is writing a book.  Sponsor him, and you get a copy and updates on the book's progress.  Progress reports include use of Google ad-words to choose the lead character's name, and a short story about flying written during a flight from San Francisco to New York.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-8148801451076944427?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.kickstarter.com/projects/robinsloan/robin-writes-a-book-and-you-get-a-copy' title='Robin writes a book (and you get a copy)'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/8148801451076944427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=8148801451076944427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8148801451076944427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8148801451076944427'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/10/robin-writes-book-and-you-get-copy.html' title='Robin writes a book (and you get a copy)'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-3416538847010249158</id><published>2009-09-23T14:43:00.003+01:00</published><updated>2009-09-23T15:19:50.925+01:00</updated><title type='text'>Mr. Penumbra’s Twenty-Four-Hour Book Store</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://robinsloan.com/storage/24hr-cover.jpg"&gt;&lt;img style="display:block; margin:0 10px 10px 0; text-align:center; cursor:pointer; cursor:hand;width: 500px; height: 732px;" src="http://robinsloan.com/storage/24hr-cover.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;William Gibson stopped setting his novels in the future, saying that the present had caught up with science fiction.  Another illustration is this intriguing fantasy from &lt;a href="http://escapepod.org/"&gt;Escape Pod&lt;/a&gt;, written by Robin Sloan and read by Stephen Eley.  The story originated in a misread twitter, and was published on a blog, and adapted for this podcast.&lt;blockquote&gt;Mr. Penumbra has a database, believe it or not. The books aren’t shelved according to title or subject (do they even have subjects?) so the database is crucial. It runs on an old Mac Plus, but I copied it onto my laptop and, over the course of a few customer-free nights, mapped it onto a 3D model of the store. (If this sounds impressive to you, you’re over 30.)&lt;/blockquote&gt;I was intrigued by the author's vision of the Google campus.&lt;p&gt;And while I'm at it, let me heartily commend &lt;a href="http://escapepod.org/"&gt;Escape Pod&lt;/a&gt; itself, my favorite thing to listen to while doing the ironing.  I'm slowly working through their back catalogue of two hundred stories.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-3416538847010249158?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://escapepod.org/2009/09/10/ep215-mr-penumbras-twenty-four-hour-book-store/' title='Mr. Penumbra’s Twenty-Four-Hour Book Store'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/3416538847010249158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=3416538847010249158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/3416538847010249158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/3416538847010249158'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/09/mr-penumbras-twenty-four-hour-book.html' title='Mr. Penumbra’s Twenty-Four-Hour Book Store'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-2134509119785767120</id><published>2009-09-23T14:36:00.003+01:00</published><updated>2009-09-23T15:17:10.736+01:00</updated><title type='text'>Peter Landin obituary</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2009/9/22/1253634439381/peter-landin-001.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 460px; height: 276px;" src="http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2009/9/22/1253634439381/peter-landin-001.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Olivier Danvy delivered a lovely memorial to Peter Landin at this year's ICFP, but it was light on some of Landin's politics.  Richard Bornat penned this excellent remembrance for the Guardian.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-2134509119785767120?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.guardian.co.uk/technology/2009/sep/22/peter-landin-obituary' title='Peter Landin obituary'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/2134509119785767120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=2134509119785767120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/2134509119785767120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/2134509119785767120'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/09/peter-landin-obituary.html' title='Peter Landin obituary'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-759486411626623146</id><published>2009-08-28T13:21:00.003+01:00</published><updated>2009-08-28T13:29:23.146+01:00</updated><title type='text'>Wandering through linear types, capabilities, and regions</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_cvcVu6XSdag/SpfNlKxdwkI/AAAAAAAAADg/Tb5_dapUEHc/s1600-h/Screenshot.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_cvcVu6XSdag/SpfNlKxdwkI/AAAAAAAAADg/Tb5_dapUEHc/s320/Screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5374990718720655938" /&gt;&lt;/a&gt;&lt;br /&gt;A survey by &lt;a href="http://pauillac.inria.fr/~fpottier/"&gt;François Pottier&lt;/a&gt;, which links a number of concepts and clarifies a cluttered landscape.  Spotted via &lt;a href="http://lambda-the-ultimate.org/node/3581"&gt;LtU&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-759486411626623146?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://pauillac.inria.fr/~fpottier/slides/fpottier-2007-05-linear-bestiary.pdf' title='Wandering through linear types, capabilities, and regions'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/759486411626623146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=759486411626623146' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/759486411626623146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/759486411626623146'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/08/wandering-through-linear-types.html' title='Wandering through linear types, capabilities, and regions'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cvcVu6XSdag/SpfNlKxdwkI/AAAAAAAAADg/Tb5_dapUEHc/s72-c/Screenshot.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-6875395704261947877</id><published>2009-08-19T15:06:00.002+01:00</published><updated>2009-08-19T15:10:01.951+01:00</updated><title type='text'>What's Under the Hood of Google's App Inventor for Android?  Scheme!</title><content type='html'>Perhaps not too surprising, as Hal Abelson (of SICFP fame) is involved.  Spotted by Mitch Wand.  Thanks, Mitch!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-6875395704261947877?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://googleresearch.blogspot.com/2009/08/under-hood-of-app-inventor-for-android.html' title='What&apos;s Under the Hood of Google&apos;s App Inventor for Android?  Scheme!'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/6875395704261947877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=6875395704261947877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/6875395704261947877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/6875395704261947877'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/08/whats-under-hood-of-googles-app.html' title='What&apos;s Under the Hood of Google&apos;s App Inventor for Android?  Scheme!'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-8524828338127963478</id><published>2009-08-05T11:59:00.009+01:00</published><updated>2009-08-05T12:44:53.320+01:00</updated><title type='text'>Three resources on climate change</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_cvcVu6XSdag/Snlt0JhALVI/AAAAAAAAADY/qug_o0NBcms/s1600-h/climate-icon.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 114px;" src="http://4.bp.blogspot.com/_cvcVu6XSdag/Snlt0JhALVI/AAAAAAAAADY/qug_o0NBcms/s320/climate-icon.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5366441173663624530" /&gt;&lt;/a&gt;&lt;br /&gt;I recently came across two excellent resources on climate change, and also list a third which I encountered a couple of years back.&lt;br /&gt;&lt;br /&gt;&lt;ul &gt;&lt;li &gt;&lt;a href="http://www.withouthotair.com/"&gt;Sustainable Energy - without the hot air&lt;/a&gt; by David McKay.  The following is quoted from the excellent &lt;a href="http://www.withouthotair.com/synopsis10.pdf"&gt;ten-page synopsis&lt;/a&gt;.  The entire book is available for free on the web&lt;blockquote &gt;Where numbers are used, their meaning is often obfuscated by enormousness. Numbers are chosen to impress, to score points in arguments, rather than to inform. In contrast, my aim here is to present honest, factual numbers in such a way that the numbers are comprehensible, comparable, and memorable. The numbers are made accessible by expressing them all in everyday personal units. Energies are expressed as quantities per person in kilowatt-hours (kWh), the same units that appear on household energy bills; and powers are expressed in kilowatt-hours per day (kWh/d), per person. ... [F]or example, driving an average car 50 km per day uses 40 kWh per day.... [and] covering 10% of the country with wind farms would yield 20 kWh per day per person on average.&lt;br /&gt;&lt;br /&gt;One reason for liking these personal units is that it makes it much easier to move from talking about the UK to talking about other countries or regions. For example, imagine we are discussing waste incineration and we learn that UK waste incineration delivers a power of 7 TWh per year and that Denmark’s waste incineration delivers 10 TWh per year. (1 TWh (one terawatt-hour) is equal to one billion kWh.) Does this help us say whether Denmark incinerates “more” waste than the UK? While the total power produced from waste in each country may be interesting, I think that what we usually want to know is the waste incineration per person. (For the record, that is: Denmark, 5 kWh/d per person; UK, 0.3 kWh/d per person. So Danes incinerate about 13 times as much waste as Brits.) By discussing everything per-person from the outset, we end up with a more transportable book, one that will hopefully be useful for sustainable energy discussions worldwide.&lt;/blockquote &gt;&lt;li &gt;&lt;a href="http://www.cs.uoregon.edu/events/icse2009/images/postConf/Easterbrook-ICSE2009-part1.pdf" &gt;Software Engineering for the Planet&lt;/a&gt; by Steve Easterbrook, a presentation at &lt;a href="http://www.cs.uoregon.edu/events/icse2009/postConf/" &gt;ICSE 2009&lt;/a&gt;: &lt;a href="http://www.cs.uoregon.edu/events/icse2009/images/postConf/Easterbrook-ICSE2009-part1.pdf" &gt;slides part 1&lt;/a&gt;, &lt;a href="http://www.cs.uoregon.edu/events/icse2009/images/postConf/Easterbrook-ICSE2009-part2.pdf" &gt;slides part 2&lt;/a&gt;, &lt;a href="http://groups.google.com/group/se-for-the-planet?hl=en" &gt;discussion&lt;/a&gt;.  Challenges computer scientists to tackle the problems that will let them answer the question "Daddy, what did YOU do during the climate crisis?"  Lists the unique resources we have to bring to bear on one of the key problems facing humanity.&lt;br /&gt;&lt;br /&gt;&lt;li &gt;&lt;a href="http://www.monbiot.com/archives/2006/11/07/heat/"&gt;Heat&lt;/a&gt; by George Monbiot.  Argues that we need to reduce carbon emissions by 90% by 2030, and lays out a plan to achieve this Herculean task.  Attacks sacred cows on both sides of the arguments, both those with their eyes shut to the problem and those that think windmills on houses are the answer.  Doesn't hesitate to point out radical solutions that could work (he envisions how we could replace most use of cars by a sensible network of trains and busses), or to reject solutions that can't work (after extensive consideration of the alternatives, he concludes with regret that the only way to reduce carbon from air travel is to reduce air travel).&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-8524828338127963478?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/8524828338127963478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=8524828338127963478' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8524828338127963478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8524828338127963478'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/08/three-resources-on-climate-change.html' title='Three resources on climate change'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_cvcVu6XSdag/Snlt0JhALVI/AAAAAAAAADY/qug_o0NBcms/s72-c/climate-icon.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-1459724273729144886</id><published>2009-08-04T18:11:00.004+01:00</published><updated>2009-08-04T18:44:18.927+01:00</updated><title type='text'>Engineering Values in IT</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cvcVu6XSdag/Snhy2KS7_CI/AAAAAAAAADQ/QAuVHROGiZQ/s1600-h/cropped.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 216px;" src="http://2.bp.blogspot.com/_cvcVu6XSdag/Snhy2KS7_CI/AAAAAAAAADQ/QAuVHROGiZQ/s320/cropped.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5366165230814231586" /&gt;&lt;/a&gt;&lt;br /&gt;A joint study by The Royal Academy of Engineering, the Institution of Engineering and Technology and the British Computer Society.  The authors include Tony Hoare and Martyn Thomas.&lt;br /&gt;&lt;br /&gt;"This study was undertaken by a group of Fellows of The Royal Academy of Engineering, the British Computer Society (BCS) and the Institution of Engineering and Technology (IET). The group focussed on how greater professionalism could be brought to bear on the tasks of specifying, procuring or developing software-based IT systems."&lt;br /&gt;&lt;br /&gt;The report comes down strongly in favour of promoting chartered engineer status for IT professionals (which is currently rarely found in practice).  The introduction notes university courses should reflect "the fact that most developments involve modifying or interfacing with pre-existing software."  The conclusion points out "Testing is not enough" and "Errors should no longer be regarded as inevitable".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-1459724273729144886?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.raeng.org.uk/news/publications/list/reports/Engineering_values_in_IT.pdf' title='Engineering Values in IT'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/1459724273729144886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=1459724273729144886' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/1459724273729144886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/1459724273729144886'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/08/engineering-values-in-it.html' title='Engineering Values in IT'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cvcVu6XSdag/Snhy2KS7_CI/AAAAAAAAADQ/QAuVHROGiZQ/s72-c/cropped.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-8535414522877191618</id><published>2009-08-03T13:15:00.003+01:00</published><updated>2009-08-03T13:37:28.727+01:00</updated><title type='text'>Objects as Modules in Newspeak</title><content type='html'>Objects as Modules in Newspeak, by Gilad Bracha et al.&lt;blockquote &gt;We describe support for modularity in Newspeak, a new programming language descended from Smalltalk and Self. Like Self, all computation — even an object’s own access to its internal structure — is performed by invoking methods on objects. However, like Smalltalk, Newspeak is class-based. Classes can be nested arbitrarily, as in Beta. Since all names denote method invocations, all classes are virtual; in particular, superclasses are virtual, so all classes act as mixins. Unlike its predecessors, there is no static state in Newspeak, nor is there a global namespace. Top level classes act as module deﬁnitions, which are independent, immutable, self-contained parametric namespaces. They can be instantiated into modules which may be stateful and mutually recursive. Naturally, like its predecessors, Newspeak is reﬂective: a mirror library allows structured access to the program meta-level.&lt;/blockquote &gt;A simple, principled, and intriguing language design.&lt;br /&gt;&lt;br /&gt;Decades ago, one of the major advances in programming language design was the claim that programming-in-the-small and programming-in-the-large require different constructs.  Newspeak (along with Scala) reverses this trend, claiming classes are a good fit for both.&lt;br /&gt;&lt;br /&gt;Type families represent a key example of program structuring that is difficult to support with current type systems (see, e.g., '&lt;a href="http://homepages.inf.ed.ac.uk/wadler/topics/gj.html#parvsvirt" &gt;A statically safe alternative to virtual types&lt;/a &gt;' Kim B. Bruce, Martin Odersky, and Philip Wadler, ECOOP 1998).   Newspeak, by virtue of using late binding everywhere and having no type system, supports type families easily.  Thus, I view Newspeak as posing a key question: what is the type system that will support type families as elegantly as Newspeak?&lt;br /&gt;&lt;br /&gt;Newspeak's innovation of prohibiting a global namespace is also interesting.  Although Newspeak is very much an imperative language, this aspect is right in line with functional languages, as it argues that sometimes making a dependency painfully explicit is the better course, as it supports parameterization and reuse.  In particular, this provides a simple and principled solution to the same problems tackled by complex frameworks for dependency injection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-8535414522877191618?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://bracha.org/newspeak-modules.pdf' title='Objects as Modules in Newspeak'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/8535414522877191618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=8535414522877191618' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8535414522877191618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8535414522877191618'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/08/objects-as-modules-in-newspeak.html' title='Objects as Modules in Newspeak'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-4023540919100290868</id><published>2009-07-31T15:58:00.002+01:00</published><updated>2009-07-31T16:07:42.094+01:00</updated><title type='text'>Mirrors: design principles for meta-level facilities of object-oriented programming languages</title><content type='html'>Mirrors: design principles for meta-level facilities of object-oriented programming languages, by Gilad Bracha and David Ungar.&lt;blockquote&gt;We identify three design principles for reflection and metaprogramming facilities in object oriented programming languages. &lt;i&gt;Encapsulation&lt;/i&gt;: meta-level facilities must encapsulate their implementation. &lt;i&gt;Stratification&lt;/i&gt;: meta-level facilities must be separated from base-level functionality. &lt;i&gt;Ontological correspondence&lt;/i&gt;: the ontology of meta-level facilities should correspond to the ontology of the language they manipulate. Traditional/mainstream reflective architectures do not follow these precepts. In contrast, reflective APIs built around the concept of &lt;i&gt;mirrors&lt;/i&gt; are characterized by adherence to these three principles. Consequently, mirror-based architectures have significant advantages with respect to distribution, deployment and general purpose metaprogramming.&lt;/blockquote&gt;One of the best OO design papers I have read.  I'm convinced, mirrors are the way to reflect; I'm particularly struck by their importance for capability-based security.&lt;br /&gt;&lt;br /&gt;For those of you that don't have ACM access, here is another &lt;a href="http://bracha.org/mirrors.pdf"&gt;link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-4023540919100290868?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://portal.acm.org/citation.cfm?id=1029004' title='Mirrors: design principles for meta-level facilities of object-oriented programming languages'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/4023540919100290868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=4023540919100290868' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/4023540919100290868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/4023540919100290868'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/07/mirrors-design-principles-for-meta.html' title='Mirrors: design principles for meta-level facilities of object-oriented programming languages'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-1383286616555461104</id><published>2009-07-28T12:18:00.002+01:00</published><updated>2009-07-28T12:21:10.306+01:00</updated><title type='text'>Evaluation and Usability of Programming Languages and Tools (PLATEAU)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecs.victoria.ac.nz/twiki/pub/Events/PLATEAU/WebHome/_img4f624103b08882b886b25818dd95f334.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; height: 225px;" src="http://ecs.victoria.ac.nz/twiki/pub/Events/PLATEAU/WebHome/_img4f624103b08882b886b25818dd95f334.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Finally, a workshop on scientific evaluation of programming languages!  Kudos to the organizers, and to Onward! and OOPSLA for serving as host.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-1383286616555461104?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://ecs.victoria.ac.nz/Events/PLATEAU/WebHome' title='Evaluation and Usability of Programming Languages and Tools (PLATEAU)'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/1383286616555461104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=1383286616555461104' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/1383286616555461104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/1383286616555461104'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/07/evaluation-and-usability-of-programming.html' title='Evaluation and Usability of Programming Languages and Tools (PLATEAU)'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-8333542953899646365</id><published>2009-07-09T16:39:00.003+01:00</published><updated>2009-07-09T16:56:14.043+01:00</updated><title type='text'>The Thrilling Adventures of Lovelace and Babbage</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cvcVu6XSdag/SlYSPleXPII/AAAAAAAAADA/rgq0hUOMRr0/s1600-h/lovelace-and-babbage.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 296px; height: 400px;" src="http://2.bp.blogspot.com/_cvcVu6XSdag/SlYSPleXPII/AAAAAAAAADA/rgq0hUOMRr0/s400/lovelace-and-babbage.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5356488865770585218" /&gt;&lt;/a&gt;&lt;br /&gt;Brilliant!  By &lt;a href="http://sydneypadua.com/2dgoggles/"&gt;Sidney Padua&lt;/a&gt;.  Other episodes available via the &lt;a href="http://news.bbc.co.uk/2/hi/technology/8139075.stm"&gt;BBC&lt;/a&gt;.  Spotted via &lt;a href="http://www.boingboing.net/"&gt;Boing Boing&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-8333542953899646365?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sydneypadua.com/2dgoggles/' title='The Thrilling Adventures of Lovelace and Babbage'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/8333542953899646365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=8333542953899646365' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8333542953899646365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/8333542953899646365'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/07/thrilling-adventures-of-lovelace-and.html' title='The Thrilling Adventures of Lovelace and Babbage'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cvcVu6XSdag/SlYSPleXPII/AAAAAAAAADA/rgq0hUOMRr0/s72-c/lovelace-and-babbage.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-7368755389463250747</id><published>2009-07-09T16:34:00.003+01:00</published><updated>2009-07-09T16:38:38.392+01:00</updated><title type='text'>Alligators, revisited</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/K-p3ddhwVrg&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=de&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/K-p3ddhwVrg&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=de&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;An implementation of Bret Victor's &lt;a href="http://wadler.blogspot.com/2007/05/oh-no-alligators.html"&gt;Oh no! Alligators!&lt;/a&gt; by Torsten Strobl.  Thanks to Stefen Mazanek for bringing this to my attention.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-7368755389463250747?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://visual-languages.blogspot.com/2009/07/alligator-eggs-revisited.html' title='Alligators, revisited'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/7368755389463250747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=7368755389463250747' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/7368755389463250747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/7368755389463250747'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/07/alligators-revisited.html' title='Alligators, revisited'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-614784162609039449</id><published>2009-06-30T12:10:00.003+01:00</published><updated>2009-07-09T17:05:08.215+01:00</updated><title type='text'>Pictures created from food</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blogofsorts.files.wordpress.com/2008/04/image004.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 1150px; height: 546px;" src="http://blogofsorts.files.wordpress.com/2008/04/image004.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Spotted by Robby Findler.  They are the creations of &lt;a href="http://www.carlwarner.com/warner.html"&gt;Carl Warner&lt;/a&gt;, who calls them Foodscapes (click through the orange square).  Thanks to plragde for the link to the originals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-614784162609039449?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogofsorts.wordpress.com/2008/04/17/pictures-created-from-food/' title='Pictures created from food'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/614784162609039449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=614784162609039449' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/614784162609039449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/614784162609039449'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/06/pictures-created-from-food.html' title='Pictures created from food'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-493228601475633707</id><published>2009-06-26T18:34:00.002+01:00</published><updated>2009-06-26T18:44:35.340+01:00</updated><title type='text'>QML: Explicit first-class polymorphism for ML</title><content type='html'>Claudio Russo and Dimitris Vytiniotis, QML: Explicit first-class polymorphism for ML, ML Workshop, Edinburgh, August 2009.&lt;br /&gt;&lt;br /&gt;This simple solution is along different lines than ML^F, FPH, and HML.  I like the idea of allowing both explicit and implicit quantification, which was explored years ago by O'Toole and Gifford.  I'm surprised that to make it work they needed to avoid permitting bound variables to be in scope, so their explicit constructs look (alas) quite different than the type abstraction and application of System F.  I'd always thought that having 'rigid' type variables in explicit types was a good idea, but this paper makes an intriguing case otherwise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-493228601475633707?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://research.microsoft.com/en-us/um/people/crusso/qml/index.htm' title='QML: Explicit first-class polymorphism for ML'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/493228601475633707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=493228601475633707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/493228601475633707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/493228601475633707'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/06/qml-explicit-first-class-polymorphism.html' title='QML: Explicit first-class polymorphism for ML'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-421509617961276397</id><published>2009-06-26T15:51:00.002+01:00</published><updated>2009-06-26T15:55:15.101+01:00</updated><title type='text'>The SIGSOFT Impact Project</title><content type='html'>As incoming Chair of SIGPLAN, one of my objectives is to explain to governments and the public why programming languages are important.  Shiram Krishnamurthi points out to me that SIGSOFT has an Impact project with similar goals, and has produced several journal papers, including &lt;a href="http://doi.acm.org/10.1145/1101815.1101818"&gt;The impact of software engineering research on modern progamming languages&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-421509617961276397?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sigsoft.org/impact/index.htm' title='The SIGSOFT Impact Project'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/421509617961276397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=421509617961276397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/421509617961276397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/421509617961276397'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/06/sigsoft-impact-project.html' title='The SIGSOFT Impact Project'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-320081546153007600</id><published>2009-06-09T11:54:00.002+01:00</published><updated>2009-06-09T11:56:23.996+01:00</updated><title type='text'>Subtext</title><content type='html'>A visual programming language based on decision tables.  This &lt;a href="http://subtextual.org/subtext2.html"&gt;video&lt;/a&gt; describes unifying conditionals, switch statements, and polymorphism.  Although the author, Jonathan Edwards, never mentions it, the language appears to be functional (although he compiles into Java).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-320081546153007600?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://subtextual.org/' title='Subtext'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/320081546153007600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=320081546153007600' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/320081546153007600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/320081546153007600'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/06/subtext.html' title='Subtext'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9757377.post-6818075900765582285</id><published>2009-06-01T11:48:00.004+01:00</published><updated>2009-06-01T11:57:12.226+01:00</updated><title type='text'>George Monbiot: Captive Knowledge</title><content type='html'>Monbiot's Heat is my favorite book on climate change.  Here is a column of his, pointing out to the general public the unwelcome, and potentially disastrous, government shift toward emphasizing 'economic impact' in research funding.  Many academics make the same case, but it is good to someone outside the academic community backing this position.&lt;blockquote&gt;Picture Charles Darwin trying to fill out his application form before embarking on the Beagle. "Explain how the research has the potential to impact on the nation's health, wealth or culture. For example: fostering global economic performance, and specifically the economic competitiveness of the United Kingdom ... What are the realistic timescales for the benefits to be realised?" If Darwin had been dependent on a grant from a British research council, he would never have set sail.&lt;/blockquote&gt;Spotted by Maurice Naftalin.  Thanks, Maurice!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9757377-6818075900765582285?l=wadler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.zcommunications.org/zspace/commentaries/3862' title='George Monbiot: Captive Knowledge'/><link rel='replies' type='application/atom+xml' href='http://wadler.blogspot.com/feeds/6818075900765582285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9757377&amp;postID=6818075900765582285' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/6818075900765582285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9757377/posts/default/6818075900765582285'/><link rel='alternate' type='text/html' href='http://wadler.blogspot.com/2009/06/george-monbiot-captive-knowledge.html' title='George Monbiot: Captive Knowledge'/><author><name>Philip Wadler</name><uri>http://www.blogger.com/profile/12009347515095774366</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09574300382043542042'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>