<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<copyright>Copyright 1998-2013 Tweakers.net B.V.</copyright>
		<pubDate>Fri, 24 May 2013 10:46:57 GMT</pubDate>
		<lastBuildDate>Fri, 24 May 2013 10:46:57 GMT</lastBuildDate>
		<docs>http://tweakers.net/reviews/76</docs>
		<description>Tweakblogs.net is de weblog service van Tweakers, de grootste hardwaresite en techcommunity van Nederland.</description>
		<image>
			<link>http://tweakblogs.net/</link>
			<title>Tweakblogs.net</title>
			<url>http://tweakimg.net/g/if/logo.gif</url>
			<height>60</height>
			<width>60</width>
			<description>Tweakblogs.net</description>
		</image>
		<language>nl-nl</language>
		<link>http://glamour.tweakblogs.net</link>
		<title>Coding Glamour</title>
		<webMaster>frontpage@tweakers.net</webMaster>
		<item>
			<title>Getting started on Firefox OS apps with AngularJS</title>
			<link>http://glamour.tweakblogs.net/blog/8717/getting-started-on-firefox-os-apps-with-angularjs.html</link>
			<description>The part that amazes me most about working day to day with Firefox OS is the incredible way that the existing web eco-system can be reused to target mobile phones. We have seen this with using Weinre to remote debug the FFOS system, using emscripten to cross compile C code into javascript, or just the ease of reusing jQuery within your Firefox OS app; something that I would have killed for back in...</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/8717/getting-started-on-firefox-os-apps-with-angularjs.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/8717</guid>
			<pubDate>Wed, 20 Feb 2013 10:21:28 GMT</pubDate>
		</item>
		<item>
			<title>A decent terminal experience on Windows</title>
			<link>http://glamour.tweakblogs.net/blog/8564/a-decent-terminal-experience-on-windows.html</link>
			<description>Two years ago I would&#39;ve never guessed that I would be completely hooked on using the terminal. However, after moving to an operating system that had a decent terminal underneath I soon became a command line junky. Time to improve the retarded beast that they call &#39;cmd.exe&#39; in Windows by adding some real terminal experience.

Yes, I&#39;m aware of PowerShell. But the &#39;yet another syntax&#39; is not for me.

The thing that annoys me the most is the inability to easily copy and paste text. On OS/X I can do this through CMD+C, CMD+V, and keep CTRL+C for terminating programs; on Linux I can use CTRL+SHIFT+C, but on Windows:Right-click and choose &#39;Mark&#39;Drag selectionRight clickGo somewhere, right click againAnd choose &#39;Paste&#39; Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/8564/a-decent-terminal-experience-on-windows.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/8564</guid>
			<pubDate>Sun, 30 Dec 2012 12:19:25 GMT</pubDate>
		</item>
		<item>
			<title>Node.js&#39;s null terminator of death</title>
			<link>http://glamour.tweakblogs.net/blog/8476/node-punt-jss-null-terminator-of-death.html</link>
			<description>Recently we embraced our new &#39;review for security&#39; strategy, that included a security 101 given by yours truly and a very big messages like &#39;Don&#39;t reinvent the fucking wheel&#39;. Just saying.



Working on this subject intensively also learned me to really really test for security. Developers, and I&#39;m not an exception here, are focussed on code quality, feature stability and security is not always on their radar. And that&#39;s a shame because reviewing for security really gives you this &#39;Dade Murphy&#39; hackers feeling. Meet me at the &#39;null terminator of death&#39;. Read more &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/8476/node-punt-jss-null-terminator-of-death.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/8476</guid>
			<pubDate>Mon, 19 Nov 2012 17:29:41 GMT</pubDate>
		</item>
		<item>
			<title>Building Wordpress sites in the cloud</title>
			<link>http://glamour.tweakblogs.net/blog/8051/building-wordpress-sites-in-the-cloud.html</link>
			<description>As part of the new features that we launched two weeks in Cloud9 IDE we&#39;ve added support for Python, Ruby and PHP as server side languages besides node.js. That&#39;s not just it, because users have full freedom over the VM that we run your code on so they can install any platform they like (C++ development in the cloud f.e.). The cool thing is that it&#39;s now possible to bring all sorts of already existing applications into Cloud9, without relying on third parties to do the actual Apache hosting etc. because you&#39;ll just get an Openshift server. In this post I&#39;ll show a step by step demo of how to use Cloud9 to build a Wordpress application without leaving the browser.

If you want to see the quickest demo possible, sign up for Cloud9 at c9.io, log in via GitHub and create an index.php file:
PHP:&#38;lt;?php
echo &#39;Hello world&#39;

When you now click the &#39;Debug&#39; button we spawn a shell version of PHP that echoes &#39;Hello world&#39; back to you. To run it via Apache go to the run panel, select &#39;Apache+PHP&#39; and re-click &#39;Debug&#39;.

 Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/8051/building-wordpress-sites-in-the-cloud.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/8051</guid>
			<pubDate>Wed, 11 Jul 2012 13:20:35 GMT</pubDate>
		</item>
		<item>
			<title>Rate limited website scraping with node.js and async</title>
			<link>http://glamour.tweakblogs.net/blog/7818/rate-limited-website-scraping-with-node-punt-js-and-async.html</link>
			<description>So yesterday a job description at my previous employer popped up in my facebook stream which reminded me of the programming excercise that we included in the interview process just before I left the company. In short it comes down to:Funda has an API that lets you do queries, the response is paged, max. 25 objects at a timeThe API is rate limited at about 100 req./minuteRequest all pages for a given queryCount the times a realtor ID is in the resultAggregate and sum the realtor ID&#39;s and create a top 10 list of realtors with the most objectsScraping this is pretty easy, but the rate limiting got me thinking. A great library for doing queue work like this (create a large list of URLs to scrape, then do it 4 at the same time or something) is async by caolan, but it lacks real rate limiting. Room for improvement! Read more &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/7818/rate-limited-website-scraping-with-node-punt-js-and-async.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/7818</guid>
			<pubDate>Wed, 25 Apr 2012 17:30:52 GMT</pubDate>
		</item>
		<item>
			<title>Inheritance in javascript</title>
			<link>http://glamour.tweakblogs.net/blog/7779/inheritance-in-javascript.html</link>
			<description>Inheritance in javascript blijf verdomd moeilijk, zoals ik deze week weer tegenkwam toen ik een vriend hielp in het porten van wat AS3 code naar javascript. Vandaar wat ready to use code snippets en een kleine uitleg om inheritance toe te passen.

Javascript kent een aantal manieren om code te mixen, maar ze zijn globaal onder te verdelen in inheritance en mixins. Inheritance is prettig voor een object structuur die je in een taal als Java of C# zou schrijven. Single inheritance van classes, als in Object-&#38;gt;GameObject-&#38;gt;Person-&#38;gt;Enemy. Elk van de parent classes zou ook los kunnen bestaan, en de classes mogen zelf state bijhouden. Mixins hebben meer weg van abstracte classes, en zijn bedoeld om behavior te laten erven, sla er dus geen state in op want dan loop je tegen scoping issues aan. Je kunt meerdere mixin&#39;s in 1 object mixen voor multiple-inheritance-like behavior.

Inheritance
Allereerst lenen we wat code uit node.js. Omdat deze functie afhankelijk is van Object.create voegen we deze toe aan browsers die deze nog niet hebben middels een workaround van Ben Newman.
JavaScript: Object.create = function (o) { 
 if (arguments.length &#38;gt; 1) { 
 throw new Error(&#39;Object.create implementation only accepts the first parameter.&#39;); 
 } 
 function F() {} 
 F.prototype = o; 
 return new F(); 
};

var inherits = function (ctor, superCtor) {
 ctor.super_ = superCtor;
 ctor.prototype = Object.create(superCtor.prototype);
 ctor.prototype.constructor = {
 value: ctor,
 enumerable: false
 };
}; Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/7779/inheritance-in-javascript.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/7779</guid>
			<pubDate>Thu, 12 Apr 2012 16:54:12 GMT</pubDate>
		</item>
		<item>
			<title>Live file sharing met socket.io en node.js</title>
			<link>http://glamour.tweakblogs.net/blog/7238/live-file-sharing-met-socket-punt-io-en-node-punt-js.html</link>
			<description>File uploading is altijd een pain in the ass geweest, upload limits, geen progress informatie, geklooi met Flash plugins voor multiple file selection. Gedoe. Maar nu hebben we de File API, socket.io en node.js. Alvast filmpje van het eindresultaat:

Video

Zit daar in dan?Aan de achterkant een simpele node.js server met:Een laagje socket.io die als proxy dient voor het doorgeven van data tussen clientsEen beetje express en ejs om HTML te serverenDrag and drop API om bestanden in de site te slepenFile API om de data te lezen&#38;lt;progress&#38;gt; element voor de statusSocket.io om de data gebuffered door te sturen Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category></category>
			<comments>http://glamour.tweakblogs.net/blog/7238/live-file-sharing-met-socket-punt-io-en-node-punt-js.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/7238</guid>
			<pubDate>Thu, 27 Oct 2011 15:00:46 GMT</pubDate>
		</item>
		<item>
			<title>Nerd tshirts met obfuscated javascript</title>
			<link>http://glamour.tweakblogs.net/blog/7223/nerd-tshirts-met-obfuscated-javascript.html</link>
			<description>Het begin:



Het resultaat (uitvoeren in Chrome of Firefox console):
JavaScript:__=!($=[$=[]])+$;_=$[$]+&#39;&#39;;$_=({}+$);$_[-~(($=-~$)&#38;lt;&#38;lt;-~$)]+__[-~$]+$_[$]+_[~-$]+_[$=-~$]+(($&#38;lt;&#38;lt;$)+~-$)
Geinspireerd door deze blogpost nu zelf maar eens bezig geweest met het (expres) obfuscaten van javascript. Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/7223/nerd-tshirts-met-obfuscated-javascript.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/7223</guid>
			<pubDate>Mon, 24 Oct 2011 09:08:59 GMT</pubDate>
		</item>
		<item>
			<title>Schizofrene code met node.js</title>
			<link>http://glamour.tweakblogs.net/blog/7211/schizofrene-code-met-node-punt-js.html</link>
			<description>Allereerst een kleine update, op 1 oktober ben ik overgestapt van de de gevestigde orde naar de wondere wereld van een startup. Niet alleen cultureel een verschil, maar ook een shift van .NET naar javascript, van Solr naar Redis, van SVN naar Git en van een Xeon workstation naar een Macbook Air. En nog belangrijker, van tafeltennis naar tafelvoetbal. Voor de mensen die niet 74 feeds in Google Reader hebben zitten: Cloud9 is een IDE, vergelijkbaar met Eclipse of Visual Studio, maar volledig draaiend in de browser; het is &#39;c9.io&#39; intikken en gaan. Debugging, stack exploration, versiebeheer, you name it.

Cloud9 is helemaal gebouwd in javascript, de client is gebouwd op APF, een open source framework voor web applicaties dat intern is ontwikkeld (heeft wel wat weg van Webforms). De backend draait op node.js, een event-based framework voor het schrijven van server side applicaties in javascript. Doordat node vanaf design geschreven is met het idee dat alle code event-driven moet werken heb je bijna geen blocking calls, en kunnen je threads sneller vrijgegeven worden: ergo: je kan meer requests handlen in je web server (gesimplificeerde weergave ).

Direct spelen met alle code
Het leuke van werken aan een IDE is dat je features die je zelf handig vind gewoon kan inbouwen, zoals het met een klik laten klonen van de GitHub repository waar alle code samples uit de blogpost zitten. Ergo, om alle code uit deze post in hun echte context te zien en meteen te runnen klik hier en druk hierna op &#39;Run&#39;. Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/7211/schizofrene-code-met-node-punt-js.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/7211</guid>
			<pubDate>Thu, 20 Oct 2011 09:59:19 GMT</pubDate>
		</item>
		<item>
			<title>&#34;Dus euh, jij voert dan die huizen in?&#34;</title>
			<link>http://glamour.tweakblogs.net/blog/6577/dus-euh-jij-voert-dan-die-huizen-in.html</link>
			<description>&#38;quot;Maar, dat funda dat is toch wel af?&#38;quot;; &#38;quot;En dat doe je dan in je eentje neem ik aan?&#38;quot;; &#38;quot;Maak jij dan de foto&#39;s ofzo?&#38;quot;; zomaar een paar citaten die in de afgelopen 2,5 jaar zijn langsgekomen tijdens feestjes. Daarom het enige echte dev-overzicht van funda, met hopelijk een verklaring hoe we 20 man fulltime bezig kunnen houden met het knutselen aan de site. Kan ik daarna mooi bit.ly/neeikvoergeenhuizenin hierheen laten linken en op een t-shirt printen.

Dus, hoeveel man loopt daar nou rond?
In totaal bestaan we uit een man/vrouw of 50, waarvan er ~ 20 zich bezig houden met techniek, verdeeld over de volgende disciplines:- 1 Groot leider- 1 Software architect- 2 Project managers- 2 Testers- 4 User experience designers (waarvan 1 groot leider)- 1 Release manager / interne technisch applicatiebeheerder- 10 Software developers, waarvan 7 intern, en 3 op locatieEn daarnaast nog 3 applicatiebeheerders die voornamelijk voor ons werken, maar in dienst van onze applicatiebeheer-partij zijn.

Maar, die site verandert toch nooit?
Wel dus! Maar naast werk aan de sites funda.nl en fundainbusiness.nl hebben we ook nog een mobiele site, een iPhone app, een API, etc. De meeste tijd gaat echter zitten in ons makelaarportaal, de funda desk, waar we tools hebben voor het beheer van alle panden, media en kantoorgegevens. Omdat er voor producten die we daar aanbieden betaald moet worden, hebben we tevens een grote set aan business rules + aanverwante programma&#39;s die dit allemaal in goede banen leiden. Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category></category>
			<comments>http://glamour.tweakblogs.net/blog/6577/dus-euh-jij-voert-dan-die-huizen-in.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6577</guid>
			<pubDate>Wed, 18 May 2011 13:37:13 GMT</pubDate>
		</item>
		<item>
			<title>OAuth provider in .NET</title>
			<link>http://glamour.tweakblogs.net/blog/6538/oauth-provider-in-net.html</link>
			<description>Om maar eens met een auto-analogie te komen: wanneer je (iets te onbetrouwbare) neefje iets uit de kofferbak van je auto moet halen, kan het een onveilig gevoel geven om hem direct de sleutel van je nieuwe A4 te overhandigen. Hij kan immers met die sleutel de auto starten, wegrijden en je no-claim om zeep helpen. En doet hij het niet nu, dan kan hij de sleutel kopi&#235;ren en het morgen proberen. Zou het niet mooi zijn om een sleutel te geven die alleen werkt op de kofferbak?

Zelfde geldt voor 3rd parties die bij jouw data willen. Wanneer een applicatie alleen een lijstje met de huizen die jij bewaard op funda wil tonen, waarom zou je dan je gebruikersnaam en wachtwoord moeten geven? Daar kan de applicatie immers &#225;lles mee. Daarom: OAuth.

An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications.
&#38;quot;If you&#39;re storing protected data on your users&#39; behalf, they shouldn&#39;t be spreading their passwords around the web to get access to it. Use OAuth to give your users access to their data while protecting their account credentials.&#38;quot;

OAuth is dus een open protocol waarmee je 3rd parties toegang kan geven tot data van je gebruikers, zonder dat de gebruiker zijn wachtwoord met de 3rd party hoeft te delen. Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/6538/oauth-provider-in-net.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6538</guid>
			<pubDate>Wed, 11 May 2011 15:45:24 GMT</pubDate>
		</item>
		<item>
			<title>Google Analytics in MVC</title>
			<link>http://glamour.tweakblogs.net/blog/6508/google-analytics-in-mvc.html</link>
			<description>Wanneer je iets in je MVC applicatie wil implementeren dat op (bijna) elke pagina terug moet komen, zoals Google Analytics, is dat een probleem dat lastig te tackelen is. Tactieken die ik in de praktijk heb gezien:1. Een baseclass maken met daarop de property &#39;GoogleAnalyticsTag&#39;, en alle Masterpages van dit model laten overerven. In de masterpage vervolgens &#38;lt;%= Model.GoogleAnalyticsTag %&#38;gt; doen.2. In je action &#39;ViewData[&#38;quot;GoogleAnalyticsTag&#38;quot;]&#39; zetten, om geen afhankelijkheid op alle modellen te hebben.3. Een losse action maken, en in je masterpage &#39;&#38;lt;%=Html.RenderAction(&#38;quot;GoogleAnalytics&#38;quot;, &#38;quot;SomeController&#38;quot;)%&#38;gt;&#39;.3 is op zich de &#39;way-to-go&#39; wat mij betreft, maar in tegenstelling tot 1. en 2. waar je in je action (of model) de GA tag zet heb je hier geen action context meer. En dus zag de code er in een van onze applicaties uit als:
C#:var url = HttpContext.Current.Request.Url.PathAndQuery;
var tag = &#38;quot;&#38;quot;;

if (url.StartsWith(&#38;quot;/koop/&#38;quot;)) tag += &#38;quot;koop/&#38;quot;;
if (url.StartsWith(&#38;quot;/huur/&#38;quot;)) tag += &#38;quot;huur/&#38;quot;;

if (new Regex(@&#38;quot;/(koop|huur)/[\w-]+/\w+-\d+-[\w-]+/&#38;quot;).Match(url).Success) {
 if (url.Contains(&#38;quot;omschrijving&#38;quot;)) tag += &#38;quot;object-omschrijving&#38;quot;;
 if (url.Contains(&#38;quot;fotos&#38;quot;)) tag += &#38;quot;object-fotos&#38;quot;;
}

// etc. etc. etc.
Ononderhoudbaar, buggevoelig, en super hacky. Dat kan mooier! Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/6508/google-analytics-in-mvc.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6508</guid>
			<pubDate>Thu, 05 May 2011 13:14:21 GMT</pubDate>
		</item>
		<item>
			<title>iOS like Javascript photo gallery breakdown</title>
			<link>http://glamour.tweakblogs.net/blog/6492/ios-like-javascript-photo-gallery-breakdown.html</link>
			<description>Vandaag een breakdown van de swipe-events in de photo gallery die we op onze mobiele website gebruiken. Verwacht niet een line-to-line breakdown, maar alleen de wijzigingen die hebben moeten doen om van onze more-or-less statische versie een versie te maken die swipe events ondersteunt.

Let&#39;s get it started
Omdat we gebruik willen maken van de &#39;touchmove&#39; events gebruiken we een zelfgeschreven jQuery plugin die de interface iets handiger maakt: jquery.(s)wipe.js. De syntax voor deze plugin is:
JavaScript:$(&#39;#een-element&#39;).wipe({
 wipeStart: /* */,
 wipe: /* */,
 wipeEnd: /* */
});
We kunnen aan deze events functies koppelen waardoor we alle logica voor het swipen op &#233;&#233;n plaats hebben. Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/6492/ios-like-javascript-photo-gallery-breakdown.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6492</guid>
			<pubDate>Tue, 03 May 2011 12:23:11 GMT</pubDate>
		</item>
		<item>
			<title>Mobiele website live</title>
			<link>http://glamour.tweakblogs.net/blog/6476/mobiele-website-live.html</link>
			<description>Voor een ieder die benieuwd was naar de touch-photogallery in deze post: we zijn live! Beschikbaar op m.funda.nl, als je op je desktop kijkt is het aan te raden Chrome of een andere Webkit browser te gebruiken. De Nota Bene&#39;s 1. Wellicht is de DNS server van je provider nog niet bijgewerkt, in dat geval zie je nog de oude site. 2. Koppeling met je profiel op Mijn funda wordt over enkele weken...</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/6476/mobiele-website-live.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6476</guid>
			<pubDate>Fri, 29 Apr 2011 09:46:40 GMT</pubDate>
		</item>
		<item>
			<title>MIX Rollup, deel 1</title>
			<link>http://glamour.tweakblogs.net/blog/6431/mix-rollup-deel-1.html</link>
			<description>
Vorige week gespendeerd in Las Vegas voor de jaarlijkse Microsoft conferentie over User Interaction &#38;amp; Development: MIX. Hier een quick rollup van deze week!

Zondag
Aankomst, en een dag voor de conferentie het schokkende bedrag van $20.75 uit de 5-card poker machine gehaald met 4 azen!
 Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category></category>
			<comments>http://glamour.tweakblogs.net/blog/6431/mix-rollup-deel-1.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6431</guid>
			<pubDate>Wed, 20 Apr 2011 12:29:43 GMT</pubDate>
		</item>
		<item>
			<title>Output Cache Substitution (Donut Caching) in ASP.NET MVC 2 en 3</title>
			<link>http://glamour.tweakblogs.net/blog/6358/output-cache-substitution-(donut-caching)-in-asp-punt-net-mvc-2-en-3.html</link>
			<description>Dynamische pagina&#39;s, of het nou in PHP, CGI of .NET is, hebben het internet gemaakt tot wat het nu is; maar hebben &#233;&#233;n groot nadeel. Voor elk request dient de pagina opnieuw te worden gegenereerd. Oplossing: cachen. Nu hebben we hiervoor in ASP.NET MVC het &#39;OutputCache&#39; attribuut, dat je op elke Action kan zetten:
C#:// cache voor 1 minuut
[OutputCache(Duration = 60, VaryByParam = &#38;quot;id&#38;quot;)]
public ActionResult Detail(int id) {
 // haal model op
 return View();
}

Probleem
Iedereen die deze pagina de komende minuut opvraagt krijgt dezelfde versie te zien. Geen probleem voor pagina&#39;s die more-or-less statisch zijn, maar funest wanneer je bijvoorbeeld login informatie toont! Voeg je bijvoorbeeld Output caching toe aan het standaard ASP.NET MVC 2 project (In VS 2010 -&#38;gt; New Project -&#38;gt; ASP.NET MVC 2 Web Application) dan krijg je de volgende situatie:

Overzichtspagina, je ziet de &#39;last update&#39; datum ter referentie


Nu loggen we in


De pagina wordt uit cache geladen (zie &#39;last update&#39;) maar er staat nog steeds een &#39;Log on&#39; knop ipv. &#39;Logged in as jan&#39;. Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/6358/output-cache-substitution-(donut-caching)-in-asp-punt-net-mvc-2-en-3.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6358</guid>
			<pubDate>Tue, 05 Apr 2011 12:27:41 GMT</pubDate>
		</item>
		<item>
			<title>Validatie zoals UX het wil, met ASP.NET MVC 2</title>
			<link>http://glamour.tweakblogs.net/blog/6329/validatie-zoals-ux-het-wil-met-asp-punt-net-mvc-2.html</link>
			<description>De standaard validatie in MVC 2 gaat er vanuit dat je werkt met &#39;Validation messages&#39; achter je tekstvelden, en een &#39;Validation summary&#39; bovenaan je scherm. Dit werkt snel en out-of-the box, inclusief javascript validatie via jQuery Validate, en ook server side wanneer er geen javascript beschikbaar is (pic via).

Maar... wat als je UX-afdeling dit spuuglelijk vindt? Vandaar dat we bovenstaande gaan transformeren naar:
 Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/6329/validatie-zoals-ux-het-wil-met-asp-punt-net-mvc-2.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6329</guid>
			<pubDate>Tue, 29 Mar 2011 12:23:13 GMT</pubDate>
		</item>
		<item>
			<title>API documentatie genereren uit code?</title>
			<link>http://glamour.tweakblogs.net/blog/6301/api-documentatie-genereren-uit-code.html</link>
			<description>Om het proces van API updates wat te verzachten willen we switchen van een op basis van een Word doc gegenereerd document, naar documentatie op basis van onze code (C#, met XML documentatie). Nu zou dat prima moeten kunnen met SandCastle, maar die genereert de documentatie op basis van onze code, en niet op basis van onze DataContracts. Probleem, want in de uiteindelijke API zijn alleen de data...</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/6301/api-documentatie-genereren-uit-code.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6301</guid>
			<pubDate>Mon, 21 Mar 2011 13:20:14 GMT</pubDate>
		</item>
		<item>
			<title>Video! Preview van touch-based mobile photo gallery</title>
			<link>http://glamour.tweakblogs.net/blog/6282/video!-preview-van-touch-based-mobile-photo-gallery.html</link>
			<description>http://www.youtube.com/watch?v=WjpauZnEm7g//</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/6282/video!-preview-van-touch-based-mobile-photo-gallery.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6282</guid>
			<pubDate>Wed, 16 Mar 2011 13:28:21 GMT</pubDate>
		</item>
		<item>
			<title>MapReduceJS: Een educatief map/reduce framework</title>
			<link>http://glamour.tweakblogs.net/blog/6271/mapreducejs-een-educatief-map-reduce-framework.html</link>
			<description>Downloadlink: MapReduceJS, an educational MapReduce framework implemented in Javascript.

MapReduce is een door Google ontwikkeld framework waarmee bewerkingen in twee stappen op grote sets data kunnen worden uitgevoerd. Elke bewerking is compleet onafhankelijk van andere bewerkingen en ze kunnen daarom eenvoudig worden verspreid over meerdere machines. Standaard voorbeeld hierin is bijvoorbeeld het tellen van woorden in documenten:1. Input: een lijst met documenten2. Map-stap: je krijgt een document binnen, en split deze op spaties. Je retouneert een array met alle losse woorden3. Reduce-stap: je krijgt binnen: het woord, en een array met alle keren dat deze voorkwam in &#225;lle documenten. Deze kan je tellen en teruggeven als output.Dit is goed distribueerbaar omdat stap 2 op een oneinding aantal machines kan draaien. Het splitten van een document is immers een volledig losse stap. Hetzelfde geld voor 3. aangezien je hier alleen hoeft op te tellen en geen andere info nodig hebt.

Maar...
Het testen van MapReduce kan je bijvoorbeeld in Hadoop of MongoDB heeft een aantal nadelen: je moet de software aan de praat krijgen en je data importeren. Vanwege het distributed idee achter MapReduce is het bovendien lastig om te debuggen. Daarom... Lees verder &#38;raquo;</description><dc:creator>creator1988</dc:creator>
			<category>1</category>
			<comments>http://glamour.tweakblogs.net/blog/6271/mapreducejs-een-educatief-map-reduce-framework.html#reacties</comments>
			<guid isPermaLink="false">http://glamour.tweakblogs.net/blog/6271</guid>
			<pubDate>Mon, 14 Mar 2011 13:58:39 GMT</pubDate>
		</item>
	</channel>
</rss>