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

<channel>
	<title>mvalente.eu/mv.* &#187; Technology</title>
	<atom:link href="http://mvalente.eu/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://mvalente.eu</link>
	<description>Heavy Mental Stuff</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:36:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Panopticlick and Browser Tracking</title>
		<link>http://mvalente.eu/2010/01/28/panopticlick-and-browser-tracking/</link>
		<comments>http://mvalente.eu/2010/01/28/panopticlick-and-browser-tracking/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 11:55:27 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mvalente.eu/2010/01/28/panopticlick-and-browser-tracking/</guid>
		<description><![CDATA[Worried about privacy and sites tracking you even though you have cookies disabled? ( https://panopticlick.eff.org/ )
Solving this is pretty simple, forget about disabling Javascript, uninstalling fonts and other complications: just change the User Agent string ( http://is.gd/7db0G ) to something random (or your fullname).
If you want to do it in Chrome forget about hex editing [...]]]></description>
			<content:encoded><![CDATA[<p>Worried about privacy and sites tracking you even though you have cookies disabled? ( <a href="https://panopticlick.eff.org/">https://panopticlick.eff.org/</a> )</p>
<p>Solving this is pretty simple, forget about disabling Javascript, uninstalling fonts and other complications: just change the User Agent string ( <a href="http://is.gd/7db0G">http://is.gd/7db0G</a> ) to something random (or your fullname).</p>
<p>If you want to do it in Chrome forget about hex editing files nonsense. Just run Chrome like this: chrome  &#8211;user-agent=&#8221;Mario Valente User Agent&#8221;</p>
<p>Result: &#8220;Your browser fingerprint appears to be unique among the 77,330 tested so far.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2010/01/28/panopticlick-and-browser-tracking/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Flash vs JS/Canvas discussion</title>
		<link>http://mvalente.eu/2010/01/13/the-flash-vs-jscanvas-discussion/</link>
		<comments>http://mvalente.eu/2010/01/13/the-flash-vs-jscanvas-discussion/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 17:56:15 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mvalente.eu/2010/01/13/the-flash-vs-jscanvas-discussion/</guid>
		<description><![CDATA[Some months ago: 
&#8220;mvalente: Pq Flash vai morrer: acessibilidade, UI diferente, SEO, -speed. E pq js+css faz tudo&#8221; 
&#8220;mvalente: Nao discuto :)&#8230; Em 5 anos o Flash vai estar no mm &#8220;nicho&#8221; em q estao as Java applets (ie. +- nulo)&#8221; 
&#8220;mvalente: Who needs AIR, Flash, Silverlight, JavaFX and other crap http://is.gd/bKQb JS + Canvas, baby&#8221;
Feel [...]]]></description>
			<content:encoded><![CDATA[<p>Some months ago: </p>
<p>&#8220;mvalente: Pq Flash vai morrer: acessibilidade, UI diferente, SEO, -speed. E pq js+css faz tudo&#8221; </p>
<p>&#8220;mvalente: Nao discuto :)&#8230; Em 5 anos o Flash vai estar no mm &#8220;nicho&#8221; em q estao as Java applets (ie. +- nulo)&#8221; </p>
<p>&#8220;mvalente: Who needs AIR, Flash, Silverlight, JavaFX and other crap <a href="http://is.gd/bKQb">http://is.gd/bKQb</a> JS + Canvas, baby&#8221;</p>
<p>Feel free to search for Flash in my twitter archive (starts in March 2007 ends in February 2009; I dont chat on twitter anymore) <a href="http://mvalente.eu/Files/mvalentetwitterhistory.html">http://mvalente.eu/Files/mvalentetwitterhistory.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2010/01/13/the-flash-vs-jscanvas-discussion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Requirements for a Modern Web Development Framework</title>
		<link>http://mvalente.eu/2009/11/25/requirements-for-a-modern-web-development-framework/</link>
		<comments>http://mvalente.eu/2009/11/25/requirements-for-a-modern-web-development-framework/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 19:44:37 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvalente.eu/?p=1018</guid>
		<description><![CDATA[For the last 2 years or so I have been harping about a Future Web Development Framework and about how Javascript Will Save Us All. And even 2 years before that (4 years ago) I had actually come to the conclusion that Javascript would be the next big language and the one that would invest [...]]]></description>
			<content:encoded><![CDATA[<p>For the last 2 years or so I have been harping about a <a href="http://mvalente.eu/?s=web+development+framework&amp;x=0&amp;y=0">Future Web Development Framework</a> and about how <a href="http://mvalente.eu/page/3/?s=javascript">Javascript Will Save Us All</a>. And even <a href="http://mvalente.eu/2007/07/13/server-side-javascript/">2 years before</a> that (<a href="http://vitordomingos.com/wlog_old/index.php?entry=entry051005-180312">4 years ago</a>) I had actually come to the conclusion that Javascript would be the next big language and the one that would invest my time in for the next 10 years (2005-2015).</p>
<p>Aditionally, 2 years ago I <a href="http://mvalente.eu/2007/10/07/a-future-web-development-framework-application-logic/">hinted at the need and possibility</a> that Javascript should be used at in all of the <a href="http://mvalente.eu/2007/12/05/javascript-in-all-of-the-tiers/">tiers of aplication development</a>. And 1 year ago, at <a href="http://codebits.eu/">Codebits</a>, I restated the need for a <a href="http://www.slideshare.net/mvalente/serverside-javascript-hope-and-opportunity-introducing-starbucks-js-web-framework-presentation-762180">totally Javascript-based, REST-accessible, JSON-formatted web development framework</a>. I tried to challenge people at Codebits to work in it, but no such luck. I also <a href="http://github.com/mvalente/starbucks">tried to start developing it</a> but it was a no go: I dont have as much patience for coding as I used to (age is a bitch) and the context for serverside Javascript development just wasnt right (lack of standards, lack of OS API access, etc). And even having some Javascript interpreters (like <a href="http://code.google.com/p/jslibs/">jslibs</a> which is what I was using at the time) with access to stuff like files and sockets wasnt much of a help: its not very much fun to try and reinvent the wheel writing a webserver from the (socket) ground up.</p>
<p>Well, things have changed a lot in this past year. The <a href="http://commonjs.org/">ServerJS/CommonJS</a> group has been doing a lot of work on standardising a unified JS API. And there&#8217;s been a lot of work done on top of several Javascript interpreters/compilers/VMs (like Spidermonkey, Rhino, V8, etc) to provide for basic system level functionality. Plus a lot of Javascript-based basic blocks have been developed (like Narwhal, Nitro, Node, Awesome, Lawnchair, DjangoDE, PURE, etc) that allows us to get more concrete about what is needed and what can be done.</p>
<p>So its time to once again <a href="http://en.wikipedia.org/wiki/LazyWeb">tell the Lazyweb</a> what I think is needed or (better yet) what I want in a new web development framework that lasts for 10 years. Here goes:</p>
<ul>
<li>I want it to be Javascript based. All of it. No Erlang, Python, Ruby, etc in sight. I want the frontend/View/presentation in Javascript. I want the appserver/Controller/logic in Javascript. I want to program the appserver in Javascript. I want the DBserver/Model/data in Javascript.</li>
<li>I want all the Javascript code to be compliant with the CommonJS standards. The code should be portable to any of the existing engines (Spidermonkey, Rhino, V8, flusspferd, Jaxer, Helma, etc) although I would touch anything Java-based with a long pole, so please make it work on Spidermonkey or V8.</li>
<li>I want all the data to be JSON formatted and REST-accessible. The data on the database should be stored as JSON data and accessible via REST. The appserver API should be REST-based, accept JSON-formatted parameters and return JSON-formatted results. The templating system should accept JSON-formatted data for rendering the view and make REST JSON-formatted calls to the appserver.</li>
</ul>
<p>If this isnt clear enough, let me refer some analog components that are written in other languages and what is already available in JS:</p>
<ul>
<li>for the database I want CouchDB but written in Javascript. <a href="http://github.com/janl/awesome">Awesome</a> or <a href="http://brianleroux.github.com/lawnchair/">Lawnchair</a> might be starting points. The endpoint would be something like <a href="http://www.persvr.org/">Persevere</a> but without the Java/Rhino dependency. Maybe <a href="http://github.com/kriszyp/pintura">Pintura</a> is *it*&#8230;</li>
<li>for the appserver I dont have the right analog. Of course that it must support <a href="http://jackjs.org/jsgi-spec.html">JSGI</a>. But *the* most important thing: it can not and must not allow the generation of HTML and the return of HTML to the browser/client! All methods/functions should only accept parameters and return results in <a href="http://docs.turbogears.org/1.0/JsonifyDecorator">JSONified </a>format. Maybe <a href="http://www.nitrojs.org/">NitroJS</a> could be *it*. If it threw away the <a href="http://www.nitrojs.org/docs/*templates">sucky template format</a>. Completely. No templates on the serverside. No serverside HTML generation. Pure HTML is the new template standard (see below).</li>
<li>URL routing should use the object hierarchy on the appserver as default. Explicit URL routing (static or using regexp) would have to be done explicitly.</li>
<li>for the presentation layer I want pure HTML+JS. The browser should be the only component responsible for rendering templates. The clientside part of the framework should make all calls to the server using REST/AJAX and providing JSON-formatted parameters. No GET or POST parameters. It should only accept JSON-formatted results. No HTML. Standard HTML is the only templating system needed. Page elements (DIV, SPAN, etc) should have an &#8220;id&#8221; as an identifier for serverside databinding. If a page has a tag/field with &#8220;id=xpto&#8221; then that tag/field should be filled with the contents of the &#8220;id&#8221; key returned from the server in a JSON string. A good starting point would be <a href="http://beebole.com/pure/">PURE</a>, but without using &#8220;class&#8221; as the databinding identifier (&#8221;id&#8221; should be the standard).</li>
<li>I want the appserver to have features that Zope has had for years: I want <a href="http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/Acquisition.stx">acquisition</a> (aka <a href="http://en.wikipedia.org/wiki/Prototype-based_programming">prototype-based programming</a>, aka <a href="http://ajaxian.com/archives/grokking-prototype-based-oo-in-javascript">JS object-orientedness</a>). I want a <a href="http://www.zopetopia.com/Services/Zope/ZopeManage.png">through-the-web management interface</a>. I want <a href="http://pypi.python.org/pypi/dm.zopepatches.zclasses/">ZClasses</a>. I want automatic form generation for classes/objects and an automatic management (CRUD) interface for objects.</li>
</ul>
<p>So, how&#8217;s that? It&#8217;s Xmas anyway, so I can ask for whatever I want. Gimme, gimme&#8230; Or I can start working on it&#8230; Who&#8217;s with me? I can be the Main Bitcher, Overall Architect and Project Manager.</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2009/11/25/requirements-for-a-modern-web-development-framework/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>You Aint Seen Me&#8230;</title>
		<link>http://mvalente.eu/2009/08/30/you-aint-seen-me/</link>
		<comments>http://mvalente.eu/2009/08/30/you-aint-seen-me/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 21:25:28 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mvalente.eu/2009/08/30/you-aint-seen-me/</guid>
		<description><![CDATA[&#8230; http://is.gd/2I9dw &#8230; rawight?
]]></description>
			<content:encoded><![CDATA[<p>&#8230; <a href="http://is.gd/2I9dw">http://is.gd/2I9dw</a> &#8230; rawight?</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2009/08/30/you-aint-seen-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netboot</title>
		<link>http://mvalente.eu/2009/08/27/netboot/</link>
		<comments>http://mvalente.eu/2009/08/27/netboot/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 01:26:22 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mvalente.eu/2009/08/27/netboot/</guid>
		<description><![CDATA[Brilliant http://www.netboot.me/
]]></description>
			<content:encoded><![CDATA[<p>Brilliant <a href="http://www.netboot.me/">http://www.netboot.me/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2009/08/27/netboot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O Poder da Internet</title>
		<link>http://mvalente.eu/2009/08/25/o-poder-da-internet/</link>
		<comments>http://mvalente.eu/2009/08/25/o-poder-da-internet/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 16:07:41 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mvalente.eu/?p=746</guid>
		<description><![CDATA[&#8220;O poder da Internet deve servir o Mundo&#8221;
Não serve nem deve servir. A Internet serve o individuo, transfere poder das organizações e do colectivo para o individuo. Uma afirmação colectivista e socialista cuja consequência lógica é a submissão da Internet a uma qualquer entidade supranacional (ONU? EU?) e a retirada de direitos digitais aos cidadãos [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em><a href="http://www.ionline.pt/conteudo/19767-diogo-vasconcelos-politicos-orquestram-inteligencia-colectiva">&#8220;O poder da Internet deve servir o Mundo&#8221;</a></em></strong></p>
<p>Não serve nem deve servir. A Internet serve o individuo, transfere poder das organizações e do colectivo para o individuo. Uma afirmação colectivista e socialista cuja consequência lógica é a submissão da Internet a uma qualquer entidade supranacional (ONU? EU?) e a retirada de direitos digitais aos cidadãos (confidencialidade, anonimidade, privacidade).</p>
<p><strong><em>&#8220;A tecnologia não resolve problemas, as pessoas resolvem problemas.&#8221;</em></strong></p>
<p>Precisamente. Pessoas. Possivelmente agregadas em grupos por vontade própria. O que não resolve problemas: colectivos impostos, partidos e políticos, entidades supranacionais e supraindividuo.</p>
<p><strong><em>&#8220;Os políticos do presente e do futuro têm de orquestrar a inteligência colectiva.&#8221;</em></strong></p>
<p>Não têm nada. A inteligência colectiva orquestra-se a si própria. A inteligência colectiva de uma colónia de formigas não é orquestrada por ninguém. A inteligência colectiva de um cérebro também não, não é preciso ninguém a orquestrar os neurónios.</p>
<p><strong><em>&#8220;Devem impor-se pela confiança. O seu desígnio não é um conceito de justiça meramente formal, mas o desenvolvimento das capacidades para que cada um atinja o seu potencial.&#8221;</em></strong></p>
<p>Cá está. Mais uma das várias afirmações que trai o tom geral da entrevista, um tom de descentralização, poder distribuido, capacidade dos individuos. No fundo, no fundo, as pessoas e cidadãos são umas bestas que precisam que os politicos se imponham e lhes orquestrem a vidinha para que possam atingir o seu potencial.</p>
<p>Para além do discurso bonito, é uma agenda compreensivel para quem representa não só uma multinacional mas também o poder politico (um partido).</p>
<p>Em tudo o resto é uma boa entrevista.</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2009/08/25/o-poder-da-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Massive Attention Surplusses Reduction</title>
		<link>http://mvalente.eu/2009/08/25/the-massive-attention-surplusses-reduction/</link>
		<comments>http://mvalente.eu/2009/08/25/the-massive-attention-surplusses-reduction/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:45:33 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mvalente.eu/?p=735</guid>
		<description><![CDATA[In his latest post Seth Godin talks about an attention shortage (or drought) and the creation of an attention surplus due to the Internet.
This goes agains the theories of attention economies: &#8220;&#8230;in an information-rich world, the wealth of information means a dearth of something else: a scarcity of whatever it is that information consumes. What [...]]]></description>
			<content:encoded><![CDATA[<p>In his <a href="http://sethgodin.typepad.com/seths_blog/2009/08/the-massive-attention-surplus.html">latest post</a> Seth Godin talks about an attention shortage (or drought) and the creation of an attention surplus due to the Internet.</p>
<p>This goes agains the theories of <a href="http://en.wikipedia.org/wiki/Attention_economy">attention economies</a>: &#8220;&#8230;in an information-rich world, the wealth of information means a dearth of something else: a scarcity of whatever it is that information consumes. What information consumes is rather obvious: it consumes the attention of its recipients. Hence a wealth of information creates a poverty of attention and a need to allocate that attention efficiently among the overabundance of information sources that might consume it&#8221;.</p>
<p><span id="more-735"></span></p>
<p>I dont think that there ever was an attention shortage. Maybe in medieval times or up until the early XX century. But since then, I believe that the supply of attention has been more or less constant. At least from the producer&#8217;s side which, in this case, is the consumer. Confused? You see, it is us who are usually consumers that produce attention; media companies buy it from us, they are attention consumers (pun intended). And in at least the last 50 years we&#8217;ve had more or less the same ammount of attention to suply (ie. the time we spent watching TV or reading the newspaper).</p>
<p>The attention shortage was only apparent due to the fact that the market was ineficient, cornered by big media companies, with only major players playing it. And thus media companies made a lot of money by buying attention cheaply (from us) and selling it with a large profit margin to advertisers who didnt have any other choice for buying attention.</p>
<p>If anything, there was a <a href="http://en.wikipedia.org/wiki/Economic_surplus">consumer surplus</a>: media companies were benefitting by being able to purchase (consume) a product (our attention) for a price less than they would be willing to pay (ie. cheap).</p>
<p>The truth of the matter is that, while the supply of attention has been more or less constant, competition for segments of the attention market has been hugely increased by the Internet. Before the Internet, only big companies were able to produce attention-consuming products and thus distorted the attention market. With the Internet we have watched a huge decrease in the costs of producing attention-consuming products. That has increased the number of producers who are now fighting for a piece of the attention market. This is the problem that TV and newspapers are facing. And the Internet has also increased our ability to find and acquire (ie. spend our attention) this wealth of attention consuming information produced through the Internet.</p>
<p>That doesnt mean that we will now shift to a market where we, as attention producers, will get a better price for our attention thus creating a producer surplus. Far from it. The fact that our attention can now be acquired more easily and that more people are producing attention actually means that the value of our attention is getting smaller.</p>
<p>In short: the attention market is being subjected to increased competition and is being driven to near-perfect competition, to a market equilibrium. At this point the previous consumer surplus (the media companies advantage) is reduced to zero as well as economic profit. There is no surplus, no economic surplusses, no aditional attention created. The Internet is just allowing for an efficient market for producers and consumers to match each other. A long tail market&#8230;</p>
<p>Like Seth states, the unanswered question is how to address this long tailed attention market and do something profitable with with the available attention. I&#8217;m pretty sure that marketers will get smart before long and will know how to take advantage of the hyperlocal, hyperspecialized nature of every long tail market. And hopefully stop producing funny comercials with chimps. Although I disagree that the media companies are doing a much better job. They are looking at specific audiences, handfuls of tiny micromarkets. Which, I think, makes sense from their perspective as producers of attention consuming products.</p>
<p>But I believe that the &#8220;problem&#8221; (or opportunity) to crack is something much bigger: what do you do when attention is no longer scarce? How can one take advantage of an abundance of attention? How can one create economic value and advantages and make money in an efficient market?</p>
<p>Maybe the answer isnt trying to play the market. Maybe the answer is to become the market. Or at least to provide its marketplace infrastructure. <a href="http://futurefeedforward.com/front.php?fid=95">Open Attention Exchange</a> anyone? I&#8217;d go into it if I wasnt <a href="http://seedcapital.pt/">focused on other things</a>&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2009/08/25/the-massive-attention-surplusses-reduction/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thin Server Architecture</title>
		<link>http://mvalente.eu/2008/03/17/thin-server-architecture/</link>
		<comments>http://mvalente.eu/2008/03/17/thin-server-architecture/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 23:30:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2008/03/17/thin-server-architecture/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente
From: mvale&#8230;@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: Thin Server Architecture
Date: Sun, 16 Mar 08 23:30:21 GMT
  As usual on the Internet, the same idea seems to bubble up
 from several people all at once.
  For the last 2 years or so, I&#8217;ve been thinking a lot about
 web app architecture and app server frameworks. [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: Thin Server Architecture<br />
Date: Sun, 16 Mar 08 23:30:21 GMT</p>
<p>  As usual on the Internet, the same idea seems to bubble up<br />
 from several people all at once.</p>
<p>  For the last 2 years or so, I&#8217;ve been thinking a lot about<br />
 web app architecture and app server frameworks. My thinking<br />
 has led to an approach that I&#8217;ve been trying to explain in<br />
 some previous posts.</p>
<p>  But now Peter Svensson has given it a name:</p>
<p>    Thin Server Architecture<br />
    <a href="http://unclescript.blogspot.com/2008/02/thin-server-architecture.html">http://unclescript.blogspot.com/2008/02/thin-server-architecture.html</a></p>
<p>  Sounds like a nice buzzword and a nice TLA: TSA.</p>
<p>  Peter has gotten together a group of people (me included) and<br />
 kickstarted a working group, already working on putting up some<br />
 clustered information in a place of its own:</p>
<p>   Thin Server Architecture Working Group<br />
   <a href="http://www.thinserverarchitecture.com/">http://www.thinserverarchitecture.com/</a></p>
<p>  Meanwhile, while researching on the subject, I got a couple of<br />
 aditional links that are important for our thinking and for my<br />
 continuing posts about a future web framework:</p>
<p>  How Nexaweb Works<br />
  <a href="http://www.nexaweb.com/home/us/index.html@cid=2295.html">http://www.nexaweb.com/home/us/index.html@cid=2295.html</a></p>
<p>  Developing Rich Internet Applications with Declarative Markup<br />
  <a href="http://rockstarapps.com/wordpress/wp-content/uploads/2007/08/java-basedria.pdf">http://rockstarapps.com/wordpress/wp-content/uploads/2007/08/java-basedria.pdf</a></p>
<p>  Slides 6-9 are especially interesting. In slide 9 you can easily see<br />
 what TSA is all about: its represented by the 4th stack, the one where<br />
 the app container has only UI stuff (view+logic) and server side you<br />
 only have biz logic and data.</p>
<p>   &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2008/03/17/thin-server-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Future Web Development Framework &#8211; Template View</title>
		<link>http://mvalente.eu/2008/02/14/a-future-web-development-framework-template-view/</link>
		<comments>http://mvalente.eu/2008/02/14/a-future-web-development-framework-template-view/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 18:43:21 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/02/14/a-future-web-development-framework-template-view/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente
From: mvale&#8230;@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: A Future Web Development Framework &#8211; Template View
Date: Wed, 13 Feb 07 18:43:21 GMT
  I should start this post (hopefully the last detail before
 going into a synthesis post) by remembering some words from
 my initial post in this series:
  &#8220;Meanwhile, lots of stuff has come up: [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: A Future Web Development Framework &#8211; Template View<br />
Date: Wed, 13 Feb 07 18:43:21 GMT</p>
<p>  I should start this post (hopefully the last detail before<br />
 going into a synthesis post) by remembering some words from<br />
 my initial post in this series:</p>
<p>  &#8220;Meanwhile, lots of stuff has come up: Django, Pylons,<br />
 TurboGears, Ruby on Rails, you name it&#8230; I dont want to<br />
 go over extensively why I dont like any of them, but let<br />
 me just state this: if the &#8220;framework&#8221; allows for the<br />
 mixing of layout/design/HTML with code/programming, for<br />
 me is enough of a disqualifier.&#8221;</p>
<p>  The problem, as I stated before, is that current frameworks<br />
 stuff a lot of power into the templating languague. And that<br />
 is not only unnecessary but its a bad, bad thing.</p>
<p>  If you dont understand why 1) embedding Python/PHP/Ruby/etc<br />
 in HTML is bad or 2) outputting HTML from Python/PHP/Ruby/etc<br />
 is worse, I&#8217;m not even going to try and explain. Not only<br />
 because that means you are clueless but also because someone<br />
 else has done it better that me:</p>
<p>  <a href="http://www.stringtemplate.org/about.html">http://www.stringtemplate.org/about.html</a><br />
  <a href="http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf">http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf</a></p>
<p>  Now the problem is that although I agree with this paper and<br />
 the rules set forth in it, I disagree with the implementation.<br />
  Allowing for &#8220;$var&#8221; statements in the templates is still, in<br />
 my view, some form of entanglement and breakup of the MVC pattern.</p>
<p>  What would be the best way to do it? Well look no further than<br />
 some already existent template engines:</p>
<p>  PyMeld<br />
  <a href="http://entrian.com/PyMeld/">http://entrian.com/PyMeld/</a></p>
<p>  HTMLTemplate<br />
  <a href="http://freespace.virgin.net/hamish.sanderson/htmltemplate.html">http://freespace.virgin.net/hamish.sanderson/htmltemplate.html</a></p>
<p>  Meld3<br />
  <a href="http://www.plope.com/software/meld3">http://www.plope.com/software/meld3</a></p>
<p>  They allow for the insertion of values (data binding) through<br />
 the use of HTML element attributes. Both HTMLTemplate and Meld3<br />
 create new attributes (&#8221;node&#8221; and &#8220;meld:id&#8221; respectively) but<br />
 PyMeld does it better: it simply uses the &#8220;id&#8221; attribute to do<br />
 value replacement. This is, in my opinion, the best way to do<br />
 a templating system. And there&#8217;s no need to make it &#8220;powerful&#8221;<br />
 through the introduction of loop control and other stuff like<br />
 Genshi or Zope Page Templates.</p>
<p>  Does this mean that I have found my perfect templating engine?<br />
  No. You see, these are serverside templating engines and the<br />
 template/view should be implemented at the client level, if you<br />
 want to adhere to the MVC pattern.</p>
<p>  What I would like is something like these templating engines:</p>
<p>  Ajax Pages<br />
  <a href="http://ajax-pages.sourceforge.net/">http://ajax-pages.sourceforge.net/</a></p>
<p>  Javascript Templates<br />
  <a href="http://www.fishwasher.com/jst/">http://www.fishwasher.com/jst/</a></p>
<p>  Trimpath Junction Javascript Templates<br />
  <a href="http://code.google.com/p/trimpath/">http://code.google.com/p/trimpath/</a></p>
<p>  Unfortunately all of these engines make the usual mistake of<br />
 introducing new syntax to HTML (the &#8220;$var&#8221; problem or variants<br />
 thereof instead of relying on the existing HTML markup, namely<br />
 the &#8220;id&#8221; element markup.</p>
<p>  To sum it up, what I would rely like is a Javascript implementation<br />
 of Meld.</p>
<p>  Aditional templating functionalities that might not be provided<br />
 through the use of the &#8220;id&#8221; attribute (although I think that it<br />
 would be all that is needed) could be added through the use of<br />
 aditional semantic potential to existing HTML markup with Javascript.<br />
  See for example Inc, for JS code include (although I would prefer<br />
 for this to be done through the implementation of the &#8220;src=&#8221; attribute<br />
 for DIVs.</p>
<p>  <a href="http://johannburkard.de/blog/programming/javascript/inc-a-super-tiny-client-side-include-javascript-jquery-plugin.html">http://johannburkard.de/blog/programming/javascript/inc-a-super-tiny-client-side-include-javascript-jquery-plugin.html</a></p>
<p>  &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2008/02/14/a-future-web-development-framework-template-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RESTful DB and App Servers</title>
		<link>http://mvalente.eu/2007/12/09/restful-db-and-app-servers/</link>
		<comments>http://mvalente.eu/2007/12/09/restful-db-and-app-servers/#comments</comments>
		<pubDate>Sun, 09 Dec 2007 19:40:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/12/09/restful-db-and-app-servers/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente
From: mvale&#8230;@ruido-visual.pt (Mario Valente)
Newsgroups: mv
Subject: RESTful DB and App Servers
Date: Sun, 09 Dec 07 19:40:21 GMT
  Like I said before, most of the week&#8217;s linkage
 has had to do with CouchDB or, generally speaking,
 to do with JSON-formatted REST-accessed database and
 application servers.
  http://mvalente.eu/cat.cgi?JavaScript%20in%20All%20of%20the%20Tiers
  http://del.icio.us/mvalente
  CouchDB is sure fun to [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: RESTful DB and App Servers<br />
Date: Sun, 09 Dec 07 19:40:21 GMT</p>
<p>  Like I said before, most of the week&#8217;s linkage<br />
 has had to do with CouchDB or, generally speaking,<br />
 to do with JSON-formatted REST-accessed database and<br />
 application servers.</p>
<p>  <a href="http://mvalente.eu/cat.cgi?JavaScript%20in%20All%20of%20the%20Tiers">http://mvalente.eu/cat.cgi?JavaScript%20in%20All%20of%20the%20Tiers</a><br />
  <a href="http://del.icio.us/mvalente">http://del.icio.us/mvalente</a></p>
<p>  CouchDB is sure fun to use, but its Erlang dependency just<br />
 pisses me off. </p>
<p>  <a href="http://couchdb.org/">http://couchdb.org/</a><br />
  <a href="http://code.google.com/p/couchdb/">http://code.google.com/p/couchdb/</a><br />
  <a href="http://jan.prima.de/~jan/plok/archives/108-Programming-CouchDB-with-Javascript.html">http://jan.prima.de/~jan/plok/archives/108-Programming-CouchDB-with-Javascript.html</a></p>
<p>  The way that I&#8217;ve been thinking about a new web development<br />
 framework indeed involves a REST interface and JSON or XML<br />
 formatted data. But I just think that a) you might as well<br />
 standardise the programming languague used at all tiers (and<br />
 that means Javascript) and b) you should have REST/JSON as<br />
 interface not only to the DB tier but also to the logic tier.</p>
<p>  Sure enough there are some alternatives if you want to go<br />
 that way.</p>
<p>  Basura DB (Python based JSON/REST DB implementation)<br />
  <a href="http://www.intertwingly.net/code/basura/">http://www.intertwingly.net/code/basura/</a><br />
  <a href="http://intertwingly.net/blog/2007/09/24/Tests-Id-Like-CouchDB-to-Pass">http://intertwingly.net/blog/2007/09/24/Tests-Id-Like-CouchDB-to-Pass</a></p>
<p>  Persevere (Java based)<br />
  <a href="http://code.google.com/p/persevere-framework/">http://code.google.com/p/persevere-framework/</a><br />
  <a href="http://www.ibm.com/developerworks/web/library/wa-aj-objmap/">http://www.ibm.com/developerworks/web/library/wa-aj-objmap/</a></p>
<p>  Robaccia (Python based web framework includes a RESTful JSON server)<br />
  <a href="http://bitworking.org/news/restful_json_server">http://bitworking.org/news/restful_json_server</a></p>
<p>  JSONStore<br />
  <a href="http://taoetc.org/97">http://taoetc.org/97</a></p>
<p>  DBSlayer (HTTP/JSON interface for MySQL databases)<br />
  <a href="http://code.nytimes.com/projects/dbslayer">http://code.nytimes.com/projects/dbslayer</a></p>
<p>  But aditionally to databases, I&#8217;m thinking more in line with<br />
 the proposed RADAR architecture of having the REST interface<br />
 also available for the app server. There arent as many options<br />
 here&#8230;</p>
<p>  The RADAR Architecture<br />
  <a href="http://pragdave.pragprog.com/pragdave/2007/03/the_radar_archi.html">http://pragdave.pragprog.com/pragdave/2007/03/the_radar_archi.html</a></p>
<p>  Naked Objects<br />
  <a href="http://www.nakedobjects.org/tutorial/index.shtml">http://www.nakedobjects.org/tutorial/index.shtml</a></p>
<p>  NetKernel<br />
  <a href="http://www.theserverside.com/news/thread.tss?thread_id=47695">http://www.theserverside.com/news/thread.tss?thread_id=47695</a><br />
  <a href="http://www.1060research.com/netkernel/">http://www.1060research.com/netkernel/</a></p>
<p>  And sure enough all of the above is typically Java-based (yuck!),<br />
 with some other languages thrown in (Python, Erlang), but none<br />
 goes all the way and standardises on Javascript as the implementation<br />
 language and the glue language. Apparently I am not the only one<br />
 considering this idea&#8230;</p>
<p>   Alt Framework<br />
   <a href="http://marcello.cellosoft.com/projects/alt/">http://marcello.cellosoft.com/projects/alt/</a></p>
<p>   Simile&#8217;s Exhibit Framework<br />
   <a href="http://simile.mit.edu/exhibit/">http://simile.mit.edu/exhibit/</a></p>
<p>   &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2007/12/09/restful-db-and-app-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
