<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://ricardozuasti.com/wp-atom.php">
	<title type="text">ricardozuasti.com</title>
	<subtitle type="html">Random thoughts about programming</subtitle>

	<updated>2012-05-16T12:34:51Z</updated>

	<link rel="alternate" type="text/html" href="http://ricardozuasti.com" />
	<id>http://ricardozuasti.com/feed/atom/</id>
	

	<generator uri="http://wordpress.org/" version="3.3.1">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ricardozuasti" /><feedburner:info uri="ricardozuasti" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by/3.0/" /><entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Using mustache.java templates with Struts 2]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/rMSav9AFTQ8/" />
		<id>http://ricardozuasti.com/?p=260</id>
		<updated>2012-05-16T12:34:51Z</updated>
		<published>2012-05-16T12:34:51Z</published>
		<category scheme="http://ricardozuasti.com" term="Articles" /><category scheme="http://ricardozuasti.com" term="Java" /><category scheme="http://ricardozuasti.com" term="Tips" /><category scheme="http://ricardozuasti.com" term="Web related" /><category scheme="http://ricardozuasti.com" term="java" /><category scheme="http://ricardozuasti.com" term="mustache" /><category scheme="http://ricardozuasti.com" term="mvc" /><category scheme="http://ricardozuasti.com" term="struts" /><category scheme="http://ricardozuasti.com" term="templating" /><category scheme="http://ricardozuasti.com" term="web" />		<summary type="html"><![CDATA[A friend recently recommended I take a look at the Mustache templating engine. It&#8217;s clean, simple and designer friendly, and promotes logic minimization on the template side (I don&#8217;t like the term &#8220;logic-less&#8221;, I don&#8217;t think you can get away with absolutely zero logic). To try it out I decided to build a simple Struts [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/using-mustache-java-templates-with-struts-2/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/using-mustache-java-templates-with-struts-2/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/using-mustache-java-templates-with-struts-2/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Web development frameworks &#8211; part 2 : Play Framework 2.0]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/bePppZwLeSg/" />
		<id>http://ricardozuasti.com/?p=238</id>
		<updated>2012-05-09T17:23:09Z</updated>
		<published>2012-05-09T17:21:08Z</published>
		<category scheme="http://ricardozuasti.com" term="Articles" /><category scheme="http://ricardozuasti.com" term="Java" /><category scheme="http://ricardozuasti.com" term="Web related" /><category scheme="http://ricardozuasti.com" term="framework" /><category scheme="http://ricardozuasti.com" term="java" /><category scheme="http://ricardozuasti.com" term="playframework" /><category scheme="http://ricardozuasti.com" term="web" />		<summary type="html"><![CDATA[As the first candidate of our evaluation series we reviewed the Play Framework v2.0. The tutorial and reference documentation used for this article is all available from the Play documentation site. The first part of the article will go over the set of tasks we proposed to do with each framework, then moving on to [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/web-development-frameworks-part-2-play-framework-2-0/#comments" thr:count="13" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/web-development-frameworks-part-2-play-framework-2-0/feed/atom/" thr:count="13" />
		<thr:total>13</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/web-development-frameworks-part-2-play-framework-2-0/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Choosing a web development framework &#8211; part 1: options and criteria]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/1932O3obFnE/" />
		<id>http://ricardozuasti.com/?p=232</id>
		<updated>2012-05-02T20:14:00Z</updated>
		<published>2012-05-02T20:14:00Z</published>
		<category scheme="http://ricardozuasti.com" term="Articles" /><category scheme="http://ricardozuasti.com" term="Java" /><category scheme="http://ricardozuasti.com" term="Web related" /><category scheme="http://ricardozuasti.com" term="django" /><category scheme="http://ricardozuasti.com" term="framework" /><category scheme="http://ricardozuasti.com" term="gwt" /><category scheme="http://ricardozuasti.com" term="java" /><category scheme="http://ricardozuasti.com" term="playframework" /><category scheme="http://ricardozuasti.com" term="python" /><category scheme="http://ricardozuasti.com" term="RoR" /><category scheme="http://ricardozuasti.com" term="ruby" /><category scheme="http://ricardozuasti.com" term="spring" /><category scheme="http://ricardozuasti.com" term="struts" /><category scheme="http://ricardozuasti.com" term="web" />		<summary type="html"><![CDATA[At my company we are evaluating which web development framework we will use for the next few years. Since our last evaluation we have been using Java application servers powered by Struts 2 as MVC, Tiles as templating engine, jQuery for Javascript awesomennes, DWR for AJAX calls and MyBatis as ORM. But we think it&#8217;s [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/choosing-a-web-development-framework-part-1-options-and-criteria/#comments" thr:count="13" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/choosing-a-web-development-framework-part-1-options-and-criteria/feed/atom/" thr:count="13" />
		<thr:total>13</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/choosing-a-web-development-framework-part-1-options-and-criteria/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Preventing CSRF in Java web apps]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/UIyEnegBhFM/" />
		<id>http://ricardozuasti.com/?p=212</id>
		<updated>2012-04-17T12:28:26Z</updated>
		<published>2012-04-17T12:28:26Z</published>
		<category scheme="http://ricardozuasti.com" term="Java" /><category scheme="http://ricardozuasti.com" term="Security" /><category scheme="http://ricardozuasti.com" term="Web related" /><category scheme="http://ricardozuasti.com" term="csrf" /><category scheme="http://ricardozuasti.com" term="java" /><category scheme="http://ricardozuasti.com" term="owasp" /><category scheme="http://ricardozuasti.com" term="web" />		<summary type="html"><![CDATA[Cross-site request forgery attacks (CSRF) are very common in web applications and can cause significant harm if allowed. If you have never heard of CSRF I recommend you check out OWASPs page about it. Luckily preventing CSRF attacks is quite simple, I&#8217;ll try to show you how they work and how we can defend from [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/preventing-csrf-in-java-web-apps/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/preventing-csrf-in-java-web-apps/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/preventing-csrf-in-java-web-apps/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Sometimes it&#8217;s easier to just write your SQLs]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/6AMtI8Fk-IY/" />
		<id>http://ricardozuasti.com/?p=153</id>
		<updated>2012-04-10T12:20:51Z</updated>
		<published>2012-04-10T12:20:51Z</published>
		<category scheme="http://ricardozuasti.com" term="Articles" /><category scheme="http://ricardozuasti.com" term="Java" /><category scheme="http://ricardozuasti.com" term="Performance" /><category scheme="http://ricardozuasti.com" term="database" /><category scheme="http://ricardozuasti.com" term="hibernate" /><category scheme="http://ricardozuasti.com" term="java" /><category scheme="http://ricardozuasti.com" term="mybatis" /><category scheme="http://ricardozuasti.com" term="orm" />		<summary type="html"><![CDATA[Object-relational mapping (in the JPA compliant sense) is so ubiquitous nowadays in the Java development scene, that we rarely question ourselves if we really need it, and if not using it may be a better option. In my experience, some systems benefit from using JPA technology (most systems actually), but some do not, in fact [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/sometimes-its-easier-to-just-write-your-sqls/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/sometimes-its-easier-to-just-write-your-sqls/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/sometimes-its-easier-to-just-write-your-sqls/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Java concurrency examples &#8211; Fork/Join framework]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/IlWp-JpgvyA/" />
		<id>http://ricardozuasti.com/?p=160</id>
		<updated>2012-04-04T15:34:52Z</updated>
		<published>2012-04-04T15:34:52Z</published>
		<category scheme="http://ricardozuasti.com" term="Articles" /><category scheme="http://ricardozuasti.com" term="Java" /><category scheme="http://ricardozuasti.com" term="Performance" /><category scheme="http://ricardozuasti.com" term="concurrency" /><category scheme="http://ricardozuasti.com" term="java" /><category scheme="http://ricardozuasti.com" term="quicksort" />		<summary type="html"><![CDATA[In the previous posts about the java.util.concurrent framework, I introduced what for me is the core of the package and what you will use the most on real-world applications. Going further with the topic, it&#8217;s worth to know the new fork/join framework introduced in Java 7. The pros and cons of this framework over the [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/java-concurrency-examples-forkjoin-framework/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/java-concurrency-examples-forkjoin-framework/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/java-concurrency-examples-forkjoin-framework/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Java concurrency examples &#8211; Getting feedback from concurrent tasks]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/QTxbwU-RRMs/" />
		<id>http://ricardozuasti.com/?p=162</id>
		<updated>2012-03-29T23:59:29Z</updated>
		<published>2012-03-29T23:59:29Z</published>
		<category scheme="http://ricardozuasti.com" term="Articles" /><category scheme="http://ricardozuasti.com" term="Java" /><category scheme="http://ricardozuasti.com" term="Performance" /><category scheme="http://ricardozuasti.com" term="concurrency" /><category scheme="http://ricardozuasti.com" term="java" />		<summary type="html"><![CDATA[Picking up from where I left off in my last post about the java.util.concurrent package, it&#8217;s interesting and sometimes mandatory to get feedback from concurrent tasks after they are started. For example imagine an application that has to send email batches, besides from using a multi-threaded mechanism, you want to know how many of the [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/java-concurrency-examples-getting-feedback-from-concurrent-tasks/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/java-concurrency-examples-getting-feedback-from-concurrent-tasks/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/java-concurrency-examples-getting-feedback-from-concurrent-tasks/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Using a relational DBMS as a multi server concurrency control]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/7y5Ne9Qy6fs/" />
		<id>http://ricardozuasti.com/?p=171</id>
		<updated>2012-03-27T03:44:25Z</updated>
		<published>2012-03-27T03:44:25Z</published>
		<category scheme="http://ricardozuasti.com" term="Articles" /><category scheme="http://ricardozuasti.com" term="Tips" /><category scheme="http://ricardozuasti.com" term="cloud" /><category scheme="http://ricardozuasti.com" term="concurrency" /><category scheme="http://ricardozuasti.com" term="database" />		<summary type="html"><![CDATA[Sometimes you just don&#8217;t want or need the complexity of a fancy distributed transaction manager or complicated RPCs to coordinate a concurrent job amongst a farm of servers. Here is a very simple and efficient way to achieve a lock/release type of concurrency control in a farm-like architecture using nothing but a few SQL sentences [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/using-a-relational-dbms-as-a-multi-server-concurrency-control/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/using-a-relational-dbms-as-a-multi-server-concurrency-control/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/using-a-relational-dbms-as-a-multi-server-concurrency-control/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Java concurrency examples &#8211; Parallel data processing]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/4IZ3Kz8Aar0/" />
		<id>http://ricardozuasti.com/?p=150</id>
		<updated>2012-03-27T04:00:19Z</updated>
		<published>2012-03-22T13:15:08Z</published>
		<category scheme="http://ricardozuasti.com" term="Articles" /><category scheme="http://ricardozuasti.com" term="Java" /><category scheme="http://ricardozuasti.com" term="Performance" /><category scheme="http://ricardozuasti.com" term="concurrency" /><category scheme="http://ricardozuasti.com" term="java" />		<summary type="html"><![CDATA[Version 5 of the Java platform introduced a high level concurrency API, located in the java.util.concurrent package. It allows for a much elegant and intuitive multi-threaded programming. I know this is old news for some, but I have found that most programmers still rely on the Thread class and Runnable interface to solve most concurrent [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/java-concurrency-examples-parallel-data-processing/#comments" thr:count="5" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/java-concurrency-examples-parallel-data-processing/feed/atom/" thr:count="5" />
		<thr:total>5</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/java-concurrency-examples-parallel-data-processing/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>ricardoz</name>
						<uri>http://www.spartanjava.com</uri>
					</author>
		<title type="html"><![CDATA[Give options, not configuration nightmares]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ricardozuasti/~3/-a4-8yiCExU/" />
		<id>http://www.ricardozuasti.com/?p=95</id>
		<updated>2012-03-21T11:43:02Z</updated>
		<published>2012-03-21T11:43:02Z</published>
		<category scheme="http://ricardozuasti.com" term="Articles" /><category scheme="http://ricardozuasti.com" term="methodology" /><category scheme="http://ricardozuasti.com" term="productivity" /><category scheme="http://ricardozuasti.com" term="software engineering" /><category scheme="http://ricardozuasti.com" term="usability" />		<summary type="html"><![CDATA[You have probably heard about convention over configuration, specially if you follow Ruby on Rails, the Play Framework or similar projects. Taken from Wikipedia: Convention over configuration (also known as coding by convention) is a software design paradigm which seeks to decrease the number of decisions that developers need to make, gaining simplicity, but not [...]]]></summary>
		<link rel="replies" type="text/html" href="http://ricardozuasti.com/2012/give-options-not-configuration-nightmares/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://ricardozuasti.com/2012/give-options-not-configuration-nightmares/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://ricardozuasti.com/2012/give-options-not-configuration-nightmares/</feedburner:origLink></entry>
	</feed>

