<?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' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-35583500</id><updated>2011-06-08T02:39:24.219-04:00</updated><title type='text'>Flapjax Development Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael Greenberg</name><uri>http://www.blogger.com/profile/17752327998242049897</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35583500.post-6398086102338187986</id><published>2007-09-18T20:27:00.000-04:00</published><updated>2007-09-18T20:28:03.145-04:00</updated><title type='text'>Flapjax in Denmark</title><content type='html'>&lt;p&gt;
Shriram will be speaking about Flapjax at three venues in Denmark:
&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;The &lt;a href="http://jaoo.dk/speaker/Shriram+Krishnamurthi"&gt;JAOO&lt;/a&gt;
  Conference, 2007-09-24&lt;/li&gt;

&lt;li&gt;University of Aarhus, 
  &lt;a href="http://www.brics.dk/pilambda/"&gt;Pi-Lambda Seminar&lt;/a&gt;,
  2007-09-25&lt;/li&gt;

&lt;li&gt;DIKU/ITU/Roskilde,
  &lt;a href="http://www.coplas.org/"&gt;Copenhagen Programming 
  Language Seminar&lt;/a&gt;, 2007-09-27&lt;/li&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-6398086102338187986?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/6398086102338187986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=6398086102338187986' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/6398086102338187986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/6398086102338187986'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2007/09/flapjax-in-denmark.html' title='Flapjax in Denmark'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-9151804564338756630</id><published>2007-09-06T10:36:00.000-04:00</published><updated>2007-09-06T10:38:20.005-04:00</updated><title type='text'>Flapjax in India</title><content type='html'>&lt;p&gt;
Shriram will be giving two presentations on Flapjax in India, both in
the context of larger education- and research-related events.  The
first will be on Monday, December 17, at the Technopark in Trivandrum,
hosted by IIITM-K.  The second will be on Saturday, December 22,
somewhere in Bangalore.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-9151804564338756630?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/9151804564338756630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=9151804564338756630' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/9151804564338756630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/9151804564338756630'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2007/09/flapjax-in-india.html' title='Flapjax in India'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-6746060589769978380</id><published>2007-08-16T10:31:00.000-04:00</published><updated>2007-08-16T10:38:16.916-04:00</updated><title type='text'>Lifting Tutorial</title><content type='html'>While not a material development for Flapjax, this &lt;a href="http://www.weaselhat.com/2007/08/11/lifting-in-flapjax/"&gt;tutorial on lifting&lt;/a&gt; explores some of the internals of Flapjax: how events and behaviors are implemented, and how plain old JavaScript can operate on Flapjax data structures.  It should be accessible to readers familiar with the language, no crazy academic credentials required.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-6746060589769978380?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/6746060589769978380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=6746060589769978380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/6746060589769978380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/6746060589769978380'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2007/08/lifting-tutorial.html' title='Lifting Tutorial'/><author><name>Michael Greenberg</name><uri>http://www.blogger.com/profile/17752327998242049897</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-2707068518703909068</id><published>2007-08-02T22:05:00.000-04:00</published><updated>2007-08-02T22:07:55.027-04:00</updated><title type='text'>Commercial Feedback (Suppressed)</title><content type='html'>&lt;p&gt;
The folks at &lt;a href="http://www.untyped.com/"&gt;untyped&lt;/a&gt; have written a research conference paper about their &lt;a href="http://www.untyped.com/untyping/archives/2007/08/a_scheme_case_s_1.html"&gt;experiences building a commercial Web application&lt;/a&gt;.  Unfortunately the page limit forced them to excise their feedback about Flapjax.  Their blog post has a bit of both positive and negative feedback about Flapjax.  We hope to work with them to fix the problems so they'll have a more positive report in the future!
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-2707068518703909068?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/2707068518703909068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=2707068518703909068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/2707068518703909068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/2707068518703909068'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2007/08/commercial-feedback-suppressed.html' title='Commercial Feedback (Suppressed)'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-814553097477521708</id><published>2007-05-09T15:03:00.000-04:00</published><updated>2007-05-09T15:07:28.672-04:00</updated><title type='text'>Data Flowing Down Telegraph Avenue</title><content type='html'>Flapjax is the inspiration for a very elegant &lt;a href="http://cobol.cs.berkeley.edu:8008/wiki164/index.php/Project_5"&gt;project&lt;/a&gt; in the compilers course at Berkeley.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-814553097477521708?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/814553097477521708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=814553097477521708' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/814553097477521708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/814553097477521708'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2007/05/data-flowing-down-telegraph-avenue.html' title='Data Flowing Down Telegraph Avenue'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-117112529378116540</id><published>2007-02-10T11:32:00.000-05:00</published><updated>2007-02-10T11:37:12.086-05:00</updated><title type='text'>Tierless Tieranny</title><content type='html'>&lt;p&gt;
There's a new buzzword sweeping through Web programming circles:
&lt;em&gt;tierless&lt;/em&gt; languages.  These are languages that help nullify
the traditional three-tier architecture from the perspective of a
programmer.  So far, so good (to some extent, anyway).  What baffled
me was that I was recently at a meeting about Web programming and Web
services, at which Web programming languages were classified into two
kinds—tiered and tierless—and Flapjax was put into the former
category.
&lt;/p&gt;

&lt;p&gt;
Allow me to strenuously object.
&lt;/p&gt;

&lt;p&gt;
It helps to draw some simple pictures.  First, there's the tiered
world:
&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/4949/1895/1600/65113/three-tier.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/x/blogger/4949/1895/320/536118/three-tier.png" alt="" border="0" /&gt;&lt;/a&gt;

&lt;p&gt;
In a tierless world, you write a single program, in which you can
annotate some parts of the code as running on the client.  As for the
database part, you effectively program in a stylized supersubset [sic]
of the language, which an optimizer knows to translate to efficient
SQL.  The picture for the tierless world is either the same, or just
one big blob (technically, it's a blob that unfolds into the tiered
picture).
&lt;/p&gt;

&lt;p&gt;
Of course, this is all wonderful if you have control over the server
and the client, or if your client wants to talk to one server only.
As soon as it tries to gather data from multiple servers—as in a
mashup—you lose this level of control, because you can't approach
Google and ask, “Would you please rewrite your module in my new
programming language?” (Well, you can ask, but you can also guess
their answer.)  At that point, the notion of tierlessness ceases to
make sense, because you can't meaningfully control the world.
&lt;/p&gt;

&lt;p&gt;
So where does Flapjax sit?  We &lt;em&gt;do&lt;/em&gt; provide one for data storage,
but that should really be thought of as a special case: a lightweight
specialization of the general Web service API.  In general, we
emphasize speaking to multiple servers and provide language and
library support for doing so.
&lt;/p&gt;

&lt;p&gt;
There is an intermediate world, represented by Hop:
&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/4949/1895/1600/219708/hop.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/x/blogger/4949/1895/320/22686/hop.png" alt="" border="0" /&gt;&lt;/a&gt;

&lt;p&gt;
In the Hop model, the broker lets you get around current JavaScript
restrictions by making the broker the single agent who can talk to
multiple sites.
&lt;/p&gt;

&lt;p&gt;
We thought for a while about whether we should adopt the Hop broker
model, but ultimately rejected it.  Here's why.  Where should the
broker run?  Running it on the client is attractive in that the client
can then, for instance, serve up local files; but I'm not going to be
able to run the client when I'm in an Internet cafe.  So perhaps it
should run on the server; but in that case, it's just another server,
and the fact that it speaks to other servers is of no real relevance
(since servers have always had the freedom to do that, and exercise
that freedom transparently).  Furthermore, the security issues that
surround circumventing the same-domain restriction are complex, and
the broker is not a sufficient solution.  Finally, it &lt;em&gt;is&lt;/em&gt; nice
to be able to communicate with the local host (for files, for
instance).  But if you have a language already well-tuned to
communicating with services, the broker becomes just another service,
and does not need a distinguished status.  So that's the Flapjax
model:
&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/4949/1895/1600/182344/flapjax.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/x/blogger/4949/1895/320/509384/flapjax.png" alt="" border="0" /&gt;&lt;/a&gt;

&lt;p&gt;
We don't have a name for this model.  We should, because names lead to
the uptake of ideas.  But the problem is, as Michael Greenberg pointed
out, this model already has a pretty good name.  It's called the
Internet.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-117112529378116540?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/117112529378116540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=117112529378116540' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/117112529378116540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/117112529378116540'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2007/02/tierless-tieranny.html' title='Tierless Tieranny'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-117112508402779769</id><published>2007-02-10T11:28:00.000-05:00</published><updated>2007-02-10T11:31:33.196-05:00</updated><title type='text'>Presentations</title><content type='html'>Shriram will present Flapjax on Friday, February 16 at &lt;a href="http://www.informatik.uni-tuebingen.de/"&gt;Tübingen&lt;/a&gt; and at &lt;a href="http://www.informatik.tu-darmstadt.de/"&gt;Darmstadt&lt;/a&gt; on Friday, February 23.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-117112508402779769?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/117112508402779769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=117112508402779769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/117112508402779769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/117112508402779769'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2007/02/presentations.html' title='Presentations'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116345911808842375</id><published>2006-11-13T18:03:00.000-05:00</published><updated>2006-11-13T18:05:18.096-05:00</updated><title type='text'>Presentation</title><content type='html'>Shriram will present Flapjax at the &lt;a href="http://www.lfcs.inf.ed.ac.uk/events/lablunch/"&gt;LFCS Lab Lunch&lt;/a&gt; on Tuesday, November 14, 2006.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116345911808842375?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116345911808842375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116345911808842375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116345911808842375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116345911808842375'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/11/presentation.html' title='Presentation'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116226939118223190</id><published>2006-10-30T23:34:00.000-05:00</published><updated>2006-10-30T23:36:31.183-05:00</updated><title type='text'>Meet Us!</title><content type='html'>&lt;p&gt;
Want to talk to a developer of Flapjax?  Want us to stop by and
explain what it's all about?  Meet us on the road!  Shriram will be in
several places in the coming months, and would be happy to stop by and
give you the lowdown.  Precise dates are &lt;a
href="http://www.cs.brown.edu/~sk/Contact/Calendar/"&gt;on his
calendar&lt;/a&gt;.  Roughly: in Nov 06 he's in Edinburgh, UK, and can make
it to most places in the UK.  In early Dec 06, he's in Oxford, UK,
Lausanne, Switzerland, and Paris, France.  Most of the rest of Dec 06
he's in Bangalore, India.  In Jan 07 he'll be in Australia, including
a week in Sydney.  He will be traveling a lot during the spring of 07,
including Germany, Portugal, and a few universities in the US.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116226939118223190?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116226939118223190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116226939118223190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116226939118223190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116226939118223190'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/meet-us_30.html' title='Meet Us!'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116165595719286082</id><published>2006-10-23T22:01:00.000-04:00</published><updated>2006-10-24T08:10:34.463-04:00</updated><title type='text'>Application Manager Update</title><content type='html'>&lt;p&gt;
I have added compiler support and a measure of documentation to the Application Manager.  I invite users to &lt;a href="http://www.flapjax-lang.org/flapjax/appManager.jsp"&gt;try it out&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
You need to log in in order to create, upload, and publish applications.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116165595719286082?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116165595719286082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116165595719286082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116165595719286082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116165595719286082'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/application-manager-update.html' title='Application Manager Update'/><author><name>Gregory Cooper</name><uri>http://www.blogger.com/profile/18377419589189607299</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116152934479951517</id><published>2006-10-22T10:58:00.000-04:00</published><updated>2006-10-22T11:02:24.810-04:00</updated><title type='text'>Discussion List</title><content type='html'>&lt;p&gt;
&lt;a
href="http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116013636051632528"&gt;Your
wish&lt;/a&gt; is our command.  We now have a
&lt;a href="http://groups-beta.google.com/group/flapjax"&gt;discussion
list&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
We may not have the config options quite the way you'd want them, so
show a little love.  Do tell us if you see problems.
&lt;/p&gt;

&lt;p&gt;
It may be a bit confusing to have both a blog and a discussion list.
I think the blog is a better medium for posting updates and status
information, while the discussion list is better for code minutiae.
We'll figure this out as we go along.  Advice always welcome.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116152934479951517?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116152934479951517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116152934479951517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116152934479951517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116152934479951517'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/discussion-list.html' title='Discussion List'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116146187309271637</id><published>2006-10-21T16:17:00.000-04:00</published><updated>2006-10-21T16:18:50.420-04:00</updated><title type='text'>Streaming Data</title><content type='html'>&lt;p&gt;
In an 
&lt;a href="http://www.blogger.com/publish-comment.do?blogID=35583500&amp;postID=116078878374627901&amp;r=ok"&gt;earlier
comment&lt;/a&gt;, Julian Morrison suggested creating a
server-side protocol.  I agreed but said we need to do more work
before we can publish something reasonable.  I also pointed to an
interesting bit of ongoing work, namely Opera's
&lt;a href="http://my.opera.com/WebApplications/blog/show.dml/438711"&gt;event
streaming&lt;/a&gt; API, which Kim Burchett brought to our attention.  I
felt it was worth hoisting this from the comment section because I
wanted to point out that APIs like this play directly to Flapjax's
strength.  Of course you can program against an API like this using
callbacks (which would be implementing upcalls), but it'd be so much
nicer to just bind to the data stream and let the language do the
work&amp;#151;which, of course, is just what Flapjax would let you do.
&lt;/p&gt;

&lt;p&gt;
For now we haven't built a binder to the Opera interface for three
reasons: (1) we're not aware of much server-side support for it yet,
(2) it doesn't appear to be a client-side standard either, and (3)
there are some questions about its definition (as usual, Kim gets past
the superficial and asks the relevant questions: see her message on
the Opera site linked above).  But the Internet is definitely moving
in the direction of higher-level data abstractions, and we think
Flapjax is well-suited to them.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116146187309271637?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116146187309271637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116146187309271637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116146187309271637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116146187309271637'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/streaming-data.html' title='Streaming Data'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116146069417707117</id><published>2006-10-21T15:57:00.000-04:00</published><updated>2006-10-21T16:04:43.850-04:00</updated><title type='text'>Networked Persistence</title><content type='html'>&lt;p&gt;
In a 
&lt;a href="http://www.blogger.com/publish-comment.do?blogID=35583500&amp;postID=116078878374627901&amp;r=ok"&gt;comment&lt;/a&gt;,
Neel Krishnaswami asked us to discuss networked persistence.   Here
are some preliminary thoughts on this.
&lt;/p&gt;

&lt;p&gt;
The most important thing about persistence in any context is that it
should fit naturally with the language.  This means lots of things:
internal-external data interchange; persistent storage identification
and management; hooking up to the language's control model; and more.
For now I'll discuss these three points.  Notice that the questions
themselves aren't really about &lt;em&gt;networked&lt;/em&gt; persistence, but the
network will show up in each of the answers.
&lt;/p&gt;

&lt;p&gt;
Data interchange on the Internet naturally demands an &amp;#147;XML story&amp;#148;, and
lots of language research is trying to wrestle with this.  If you step
outside research and spend some time in blog-space or studying Web
service APIs, you see a very interesting trend: the growing acceptance
and even promotion of JSON.  Because JSON obviously integrates nicely
into JavaScript, and its support is increasing, we're ducking the XML
question entirely for now.  In fact, our Web services API
automatically converts XML data into JSON for your convenience.
&lt;/p&gt;

&lt;p&gt;
What is persistent storage?  On a local system, computer scientists
find it useful to categorize at least three different kinds of
storage: the database, the persistent heap, and the filesystem.  (And
that's arguably just a 1970s view of systems.)  We can distinguish
between these along several dimensions: the object model, the power of
query, the style of naming, the interaction with processes, etc.  In
Flapjax, though, many of these dimensions lose their relevance for two
important reasons.  First, we don't have (and don't want) a true
distributed operating system, so the &amp;#147;process&amp;#148; boundary dies at the
network interface (with end-to-end services taking its place).
Second, network latency greatly distorts the cost models.  So some
unification of these concepts may be possible.  For now, Flapjax gives
each user a &amp;#147;home object&amp;#148;; their data are held by fields.  From the
program's viewpoint it's just a persistent object, but the user can
think of fields as a pun for subdirectories, and use the
object-browser like a file-browser.  What we definitely don't have is
a story on search, aggregation, and other functions you get from SQL.
We have various thoughts on this, ranging from leveraging XPath to
letting users define schemas, but (indeed, therefore!) this is very
much an open question.
&lt;/p&gt;

&lt;p&gt;
The control front is somewhat obvious: because Flapjax computations
are time-varying, changes must naturally be pushed to the server, and
server changes must naturally trigger renewed computation on the
client.  Defining this crisply has proven to be somewhat tricky.  One
issue is handling aggregate data, which Michael Greenberg is studying
from first principles.  The other is how to deal with multiple clients
that write simulaneously.  Obviously there is already research on this
topic, but we do have our hands tied by the lack of server-push, the
sheer number of clients that may be accessing a datum, existing APIs,
etc.  We have our own distributed algorithm that helps with this, but
just defining &amp;#147;reasonable&amp;#148; behavior is tricky: if you don't get it
right, a client who is sharing a writeable buffer will see the new
characters they type disappear before their very eyes.
&lt;/p&gt;

&lt;p&gt;
We need to clean things up a little more before we say much.  My
reticence isn't in the usual academic &amp;#147;I have a paper coming up
and I don't want someone to scoop it or find the flaw in it before it
gets in&amp;#148; manner&amp;#151;rather, we really do have more design work
to.
&lt;/p&gt;

&lt;p&gt;
And, of course, we welcome feedback and prioritization.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116146069417707117?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116146069417707117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116146069417707117' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116146069417707117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116146069417707117'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/networked-persistence.html' title='Networked Persistence'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116131497249668871</id><published>2006-10-19T23:21:00.000-04:00</published><updated>2006-10-21T15:59:18.726-04:00</updated><title type='text'>Compiler!</title><content type='html'>The downloadable compiler is here! (Well, sort of.)

To be precise, the compiler is now available as a web service. You can now download a script which will automatically send your page to our server and return the compiled version. So you can just type:

$ fxc -o mypage.html mypage.fx.html

and it will do the right thing.

&lt;a href="http://www.flapjax-lang.org/compiler/fxc"&gt;Download the script here.&lt;/a&gt; (You might need to right-click and say "Save Link As...".) It will work on any computer with Python. A Windows version, which will not require Python, will be available soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116131497249668871?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116131497249668871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116131497249668871' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116131497249668871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116131497249668871'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/compiler.html' title='Compiler!'/><author><name>Aleks Bromfield</name><uri>http://www.blogger.com/profile/08536847818550015487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116104592637992375</id><published>2006-10-16T20:44:00.000-04:00</published><updated>2006-10-21T15:59:42.816-04:00</updated><title type='text'>IE Progress</title><content type='html'>As you can see, we've not only been making Flapjax work on IE, we've also been testing the demos and gradually adding the IE icon where we're pretty confident.  Of course this is JavaScript-and-browser land, a minefield of incompatibility...but IE support is definitely looking up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116104592637992375?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116104592637992375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116104592637992375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116104592637992375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116104592637992375'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/ie-progress.html' title='IE Progress'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116078878374627901</id><published>2006-10-13T21:18:00.000-04:00</published><updated>2006-10-21T15:59:54.770-04:00</updated><title type='text'>Downloadable Compiler</title><content type='html'>Some of you have asked for a downloadable compiler.

We didn't expect the demand for it so soon, but we're working on a solution to this problem.  Please expect something within the next few days.  We'll announce it here on the blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116078878374627901?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116078878374627901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116078878374627901' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116078878374627901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116078878374627901'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/downloadable-compiler.html' title='Downloadable Compiler'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116077620254832819</id><published>2006-10-13T17:49:00.000-04:00</published><updated>2006-10-21T16:00:04.196-04:00</updated><title type='text'>IE Problems</title><content type='html'>We're aware that there are problems using Flapjax in IE.  We're working on them right now and will have fixes out soon.  Indeed, even as you look some of the demos should be working.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116077620254832819?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116077620254832819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116077620254832819' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116077620254832819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116077620254832819'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/ie-problems.html' title='IE Problems'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35583500.post-116013636051632528</id><published>2006-10-06T08:04:00.000-04:00</published><updated>2006-10-21T16:02:39.916-04:00</updated><title type='text'>Welcome to Flapjax!</title><content type='html'>&lt;p&gt;
This is the notification site for developments about &lt;a href="http://www.flapjax-lang.org/"&gt;Flapjax&lt;/a&gt;, our new language for developing Web applications.  Flapjax has six important characteristics:
&lt;ol&gt;
&lt;li&gt;It is event-driven and reactive.

&lt;li&gt;It reduces unnecessary code with an in-lined template system.

&lt;li&gt;It provides a reactive, persistent store that automatically updates on all clients sharing the same data.

&lt;li&gt;It enables convenient sharing of data with other users.

&lt;li&gt;It implements access-control to channel this sharing.

&lt;li&gt;It provides libraries to connect to external Web services (thereby enabling client-side mash-ups).
&lt;/ol&gt;
Flapjax is built entirely atop (and is syntactically identical to) JavaScript, and can thus run on traditional Web browsers without the the need for plug-ins or other downloads.
&lt;/p&gt;

&lt;p&gt;
Shriram, for the Flapjax Team
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35583500-116013636051632528?l=flapjax.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flapjax.blogspot.com/feeds/116013636051632528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35583500&amp;postID=116013636051632528' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116013636051632528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35583500/posts/default/116013636051632528'/><link rel='alternate' type='text/html' href='http://flapjax.blogspot.com/2006/10/welcome-to-flapjax.html' title='Welcome to Flapjax!'/><author><name>Shriram Krishnamurthi</name><uri>http://www.blogger.com/profile/02956763366608000839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>
