<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Technofinancial Singularity</title>
	<atom:link href="http://jfaleiro.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jfaleiro.wordpress.com</link>
	<description>...more notes on information technology and finance</description>
	<lastBuildDate>Sun, 22 Jan 2012 06:58:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jfaleiro.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Technofinancial Singularity</title>
		<link>http://jfaleiro.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jfaleiro.wordpress.com/osd.xml" title="Technofinancial Singularity" />
	<atom:link rel='hub' href='http://jfaleiro.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Tao of QuantLET</title>
		<link>http://jfaleiro.wordpress.com/2010/01/01/tao-of-quantlet/</link>
		<comments>http://jfaleiro.wordpress.com/2010/01/01/tao-of-quantlet/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 00:16:10 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[Financial Engineering]]></category>
		<category><![CDATA[back-testing]]></category>
		<category><![CDATA[crude oil spot price]]></category>
		<category><![CDATA[drift]]></category>
		<category><![CDATA[geometric brownian motion]]></category>
		<category><![CDATA[LIBOR]]></category>
		<category><![CDATA[paper trading]]></category>
		<category><![CDATA[quantlet]]></category>
		<category><![CDATA[shock]]></category>
		<category><![CDATA[spread]]></category>
		<category><![CDATA[trailing stop conditional order]]></category>
		<category><![CDATA[US/EUR]]></category>
		<category><![CDATA[volatility]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=283</guid>
		<description><![CDATA[The meta-model of QuantLET arrange components in terms of Models, Execution Modes, Shocks and Benchmarks, aggregating from the bottom up. As we browse over some of the concepts behind this meta-model we will bring an overall description of the fundamentals behind the QuantLET framework. Models Models represent a very specific problem in terms of dependent [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=283&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The meta-model of <a href="http://quantlet.net">QuantLET</a> arrange components in terms of Models, Execution Modes, Shocks and Benchmarks, aggregating from the bottom up.</p>
<p>As we browse over some of the concepts behind this meta-model we will bring an overall description of the fundamentals behind the QuantLET framework.</p>
<p><a href="http://jfaleiro.files.wordpress.com/2010/01/tao.png"><img class="alignnone size-medium wp-image-290" style="border:30px solid white;" title="Tao of QuantLET" src="http://jfaleiro.files.wordpress.com/2010/01/tao.png?w=300&#038;h=178" alt="" width="300" height="178" /></a></p>
<h1>Models</h1>
<p>Models represent a very specific problem in terms of dependent and independent parameters.</p>
<p>An applied example of an (unrealistic) model would be something like:  given LIBOR, benchmark interest and rates in US, US/EUR spread and crude oil spot price, what is the limit price of a long position and how many pips for a trailing stop in a conditional order with a highest chance of maximized profit?</p>
<p>A typical problem of stochastic optimization.</p>
<p>On this example, independent variables are given by:</p>
<ul>
<li>LIBOR</li>
<li>Benchmark US rates</li>
<li>US/EUR spread in the spot rate</li>
<li>Crude oil spot price</li>
</ul>
<p>And dependent variables:</p>
<ul>
<li>Limit price of the long position</li>
<li>Rate maximum move in the stop loss leg</li>
<li>Exit price of the long position</li>
</ul>
<p>Models might have one or more Execution Modes associated to it.</p>
<h1>Execution Mode</h1>
<p>An execution mode defines source and destination of financial data, represented by a high-frequency stream of events. For the example above, we could think about a few execution modes: simulation, back-testing, paper-trading and production.</p>
<h2>Simulation</h2>
<p>In simulation mode, our model reads a stream of events from an endpoint simulating a synthetic Geometric Brownian Motion with pre-defined parameters for drift and volatility.</p>
<h2>Back-Testing</h2>
<p>In back testing, our model reads a stream of events from historical parameters for each of the independent variables.</p>
<h2>Paper Trading</h2>
<p>In paper trading, our model posts orders to a simulated exchange environment, based on inbound data from real-time live data.</p>
<h2>Production</h2>
<p>Reads inbound data from real-time live inbound channels, posts orders to real exchange channels</p>
<h1>Shocks</h1>
<p>Shocks are re-configuration of execution modes with different parameters. For obvious reasons, not all execution modes allow the association of shocks. On the example before, we could think about a few shocks:</p>
<ul>
<li>Simulation mode, with drifts in the range of (-0.30 to 0.30) in increments of 0.05</li>
<li>Back-testing mode, with LIBOR rates shocked up (or down) in the range  of (-2.0 to +2.00) in increments of 0.1</li>
</ul>
<h1>Benchmark</h1>
<p>A benchmark allows the comparison of results from various shocks, looking for the lowest cost of the optimization function, or any other dimension you could think of. Some examples.</p>
<ul>
<li>Highest single profit in a day</li>
<li>Highest accumulated profit in a period (week, month)</li>
<li>Highest number of profitable periods (days, weeks)</li>
<li>Highest value at risk exposure in a period</li>
</ul>
<p>You can have multiple benchmarks active at any given time, and historical benchmarks are available for comparison.</p>
<h1>The Remaining Framework</h1>
<p>QuantLET is a framework &#8211; and as such it provides many battle tested, time saving components with a number of rich features. A few other pieces of the framework:</p>
<ul>
<li>Tapestry: A powerful framework for data and CPU intensive based on map-reduce abstractions and data partitioning</li>
<li>Dashboard: A UNO-based front-end for OpenOffice family of spreadsheets.</li>
<li>Mediation: Configuration of models, modes, shocks and benchmarks at run-time</li>
</ul>
<p>Among many other features &#8211; check <a href="http://quantlet.net">QuantLET home</a> often for more and updates.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/283/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/283/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/283/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=283&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2010/01/01/tao-of-quantlet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>

		<media:content url="http://jfaleiro.files.wordpress.com/2010/01/tao.png?w=300" medium="image">
			<media:title type="html">Tao of QuantLET</media:title>
		</media:content>
	</item>
		<item>
		<title>Nested Scopes and Cumulative Moving Average</title>
		<link>http://jfaleiro.wordpress.com/2009/12/23/nested-scopes/</link>
		<comments>http://jfaleiro.wordpress.com/2009/12/23/nested-scopes/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 19:41:31 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[Financial Engineering]]></category>
		<category><![CDATA[Toolbox]]></category>
		<category><![CDATA[cumulative moving average]]></category>
		<category><![CDATA[nested scope]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=272</guid>
		<description><![CDATA[Let me try to define the problem with a question: how to mutate variables defined in an outer scope inside an inner function? Let&#8217;s illustrate with an example: cumulative moving averages of real-time price points . In PyQuantLET we define a simple model to read ticks from an inbound endpoint, generate a cumulative moving average, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=272&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Let me try to define the problem with a question: how to mutate variables defined in an outer scope inside an inner function?</p>
<p>Let&#8217;s illustrate with an example: cumulative moving averages of real-time price points .</p>
<p>In <a href="http://quantlet.net/">PyQuantLET</a> we define a simple model to read ticks from an inbound endpoint, generate a cumulative moving average, and forward the result to an outbound endpoint in two lines:</p>
<pre style="padding-left:30px;">f = quantlet.handler.stat.cma()
 [outbound((x, f(x))) for x in inbound]</pre>
<p>Concrete inbound and outbound endpoints are defined as part of the execution mode of this model. A mode of execution could be a simulation in which the inbound endpoint is a real-time feed for trades of a specific underlying, and an outbound plot of price points and cumulative moving average.</p>
<pre style="padding-left:30px;">execute_mode(id='simulation',
     model=cma(inbound=feed(''tcp://localhost:61616?wireFormat=openwire'),
               outbound=graph(['plot']
              )
     )</pre>
<p>Of course, nothing realistic, but that&#8217;s all it takes.  Ok, let&#8217;s now define the function for cumulative moving average (in reality we would use classes for the same purpose, but let&#8217;s stick to this for now):</p>
<pre style="padding-left:30px;">def cma(): // this is wrong
     total, counter = (0,0)
     def result(value):
            total = total + value
            counter = counter + 1
            return total / counter
     return result</pre>
<p>If you try this version, you will get something like this:</p>
<pre style="padding-left:30px;">UnboundLocalError: local variable 'total' referenced before assignment</pre>
<p>The message is self explanatory &#8211; seems like the reason is that rebinding names in a closed scope is not allowed in Python. Nothing like a dictatorship for life&#8230;</p>
<p>So, now the good part &#8211; the solution &#8211; rewrite your function so variables in the outer scope are associated to a container object, see&#8230;</p>
<pre style="padding-left:30px;">def cma():
    total, counter =([0],[0])
    def result(value):
        total[0] = total[0] + value
        counter[0] = counter[0] + 1
        return total[0] / counter[0]
return result</pre>
<p>Looks weird, but works &#8211; you can try yourself</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/272/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=272&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2009/12/23/nested-scopes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>
	</item>
		<item>
		<title>RMS and Protocol Buffers</title>
		<link>http://jfaleiro.wordpress.com/2009/12/03/rms-and-protocol-buffers/</link>
		<comments>http://jfaleiro.wordpress.com/2009/12/03/rms-and-protocol-buffers/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 21:21:58 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[EDA]]></category>
		<category><![CDATA[Large Scale Computing]]></category>
		<category><![CDATA[Software Frameworks]]></category>
		<category><![CDATA[Software Patterns]]></category>
		<category><![CDATA[Protocol Buffers]]></category>
		<category><![CDATA[quantlet]]></category>
		<category><![CDATA[RMS]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=249</guid>
		<description><![CDATA[I was looking into Protocol Buffers as an alternative to represent events in RMS architectures and trying to figure out which of its features are a match for RMS requirements, and which ones might be a drag. As a reminder, RMS is a collection of patterns that are ideal for event-driven, low-latency applications, especially useful [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=249&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was looking into Protocol Buffers as an alternative to represent events in <a href="http://jfaleiro.wordpress.com/2007/07/01/rms-architectures/">RMS architectures</a> and trying to figure out which of its features are a match for RMS requirements, and which ones might be a drag.</p>
<p>As a reminder, RMS is a collection of patterns that are ideal for event-driven, low-latency applications, especially useful in high-frequency finance. <a href="http://jfaleiro.wordpress.com/2009/03/15/rms-event-handling-patterns/">Events in RMS</a> are described in terms of a header and a body. The header is usually a dictionary, and the body must support the representation of elaborate graphs of objects, representing real world analytical use cases. <a href="http://quantlet.net/">QuantLET </a>is an open source RMS framework.</p>
<h2>Protocol Buffers</h2>
<p>“Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data”. Comparisons with other alternatives like XML or JSON come to mind immediately, but just let’s say for now that Protocol Buffer translates to a smaller binary wire format, and therefore transfers are usually done in a fraction of a time of alternatives like XML or JSON.</p>
<h2>Benefits?</h2>
<p>A few features of Protocol Buffers are a great match to represent RMS events and high frequency applications</p>
<h3>Fast</h3>
<p>The transport format is based in a binary format, compact, and therefore really fast for transfers and serialization. It is ideal for high frequency solutions where the expected latency is less than a millisecond.</p>
<h3>Backward Compatible</h3>
<p>We can see that backward compatibility is a notion that is present from the grounds up. The notion of optional attributes and unique identification of fields through a number allow messages to be consumed by older clients as you roll out new versions of your information model.</p>
<h2>Drawbacks?</h2>
<p>A few features of Protocol Buffers that speak against its use as a transport protocol in RMS architectures.</p>
<h3>Not Plain Objects</h3>
<p>In RMS lingo we define ‘plain object’ as a structure capable of describing cyclical graphs of objects, in which objects are represented through an interface allowing access to its members either directly or through getters and setters.</p>
<p>With that definition in mind, Protocol Buffer objects cannot be seen as RMS plain objects. Protocol Buffers objects carry programmatic features – like fluent builders, and binding to language specific structures (like streams in Java or C++).</p>
<p>While bringing benefits, these same features make objects dependent on the framework when Protocol Buffers are not really necessary (in RMS a transport format is only necessary on endpoints, usually during marshalling/unmarshalling and transformation).</p>
<h3>Lacks Inheritance Support</h3>
<p>Ok, I know – Protocol Buffers allows the representation of a quasi inheritance in a few different ways, depending on how you intend on using it.</p>
<p>When a consumer knows in advance the expected subtype of a message, you can simply embed an instance of your base type on the derived type, you can embed subtypes as optional aggregated messages:</p>
<pre>message Animal { // General animal properties.</pre>
<pre style="padding-left:30px;">optional double weight = 1;
extensions 1000 to max;
}</pre>
<pre>message Dog { // Dog-specific properties.
optional float average_bark_frequency = 1; }</pre>
<pre>message Cat { // Cat-specific properties.
enum Breed { TABBY = 1; CALICO = 2; ... }
optional Breed breed = 1;
}</pre>
<pre>extend Animal {
optional Dog dog = 1000;
optional Cat cat = 1001;
}</pre>
<p>Ok, it might work. The problem with that is that you will need to know all the possible derived types in advance, for anything that is a bit more than really trivial use cases this is an impediment. Here is the alternative, for when a  consumer does not know in advance what types to expect, you have to play with a mix of features.</p>
<pre>message Animal reserved 10 {
optional double weight = 1;
optional Color color = 2;
}</pre>
<pre>message Dog extends Animal reserved 10 {
optional float average_bark_frequence = 1;
}</pre>
<pre>message Cat extends Animal reserved 10 {
optional Breed breed = 1;
}</pre>
<pre>message Lion extends Cat reserved 10 {
optional boolean isAlphaMale = 1;
}</pre>
<p>Now the dirty details: the description above is made in a &#8216;protoext&#8217; file, and in order to give you something useful it has to be compiled to produce a proto file like this:</p>
<pre>//@Hierarchi Lion:Cat:Animal
message Lion {
//-- Animal's indices start at 1 because it is the base class (Lifeform does not count since it is an interface)
//@Class Animal
optional double weight = 1;
//@Class Animal
optional Color color = 2;</pre>
<pre>//-- Cat's indices starts at 11 because reserved is set to 10: 10+1
//@Class Cat
optional Breed breed = 11;</pre>
<pre>//-- Lion's indices starts at 21 because reserved is set to 10: 10+10+1
//@Class Lion
optional boolean isAlphaMale = 21;
}</pre>
<pre>//@Hierarchi Dog:Animal
message Dog {
//-- See comments for Lion above
//@Class Animal
optional double weight = 1;
//@Class Animal
optional Color color = 2;</pre>
<pre>//-- See comments for Cat above
//@Class Dog
optional float aveage_bark_frequence = 11;
}</pre>
<p>So you have already compiled it once, and this thing here will have to be compiled again, to give you something you can finally use. You got the picture: yes, it is complicated.</p>
<h2>Alternatives</h2>
<p>So are there any alternatives to Protocol Buffers out there? Yes there are a few, each bringing their own benefits and drawbacks:</p>
<h3>Specialized Types</h3>
<p>You can use a set of collection type of your language of choice to represent graphs through keys and values. Some examples are maps of maps in Java, or dictionary sets in Python. Expensive and loosely typed, I just can’t think of any good reason to use it, you should avoid it if you can.</p>
<h3>Native Serialization</h3>
<p>This is language dependent, and brings its obvious and critical drawbacks. Java’s serialization, Python pickles, C++ streams, and so forth. Of course those formats are hardly interchangeable. In some cases (Java) the format is so large and cumbersome that makes it a hard fit for any serious low-latency application.</p>
<h3>XML</h3>
<p>Large, slow, over engineered, over complicated, human readable (why if it is intended to be used by computers?). I still did not figure out why people seem to like it and its use is so overspread. I can only see justification for XML use away from low-latency solutions, representing maybe complex and text-driven structures like documents.</p>
<h3>JSON</h3>
<p><strong>JSON</strong> (JavaScript Object Notation) is a lightweight data-interchange format, based on a subset of JavaScript. Again, human readable (can someone explain me why this is a good thing?) and supported by virtually any major platform out there. Faster and a bit smarter than XML, JSON is still too slow for low-latency applications.</p>
<h3>SLICE</h3>
<p>SLICE (Specification Language for ICE) is the abstraction mechanism for separating ICE object interfaces from their implementations, on various languages. Really fast and lightweight, the problem is that it forces in the ICE paraphernalia. It is an option if you plan on using the whole stack.</p>
<h2>So?</h2>
<p>Overall, as long as you clearly understand its limitations and pitfalls, and plan a work around them, given the alternatives and pros and cons, Protocol Buffers is a reasonable option to define and transport events and the information model in RMS systems.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=249&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2009/12/03/rms-and-protocol-buffers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>
	</item>
		<item>
		<title>Parallels 5 and Ubuntu 9.10</title>
		<link>http://jfaleiro.wordpress.com/2009/11/30/parallels-5-and-ubuntu-9-10/</link>
		<comments>http://jfaleiro.wordpress.com/2009/11/30/parallels-5-and-ubuntu-9-10/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 19:30:05 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[Toolbox]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[parallels]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=311</guid>
		<description><![CDATA[A few notes on the configuration of a MacBook Pro video resolution (1280&#215;800) in a Ubuntu 9.10 virtual appliance in Parallels 5: Make sure you install Parallels Tools You do that from Parallels menu: Virtual Machine -&#62; Install Parallels Tools Modify X configuration to account for MacBook Pro proper resolution modes jfaleiro@ubuntu:~$ sudo vi /etc/X11/xorg.conf [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=311&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few notes on the configuration of a MacBook Pro video resolution (1280&#215;800) in a Ubuntu 9.10 virtual appliance in Parallels 5:</p>
<ol>
<li>Make sure you install Parallels Tools<br />
You do that from Parallels menu: <em>Virtual Machine -&gt; Install Parallels Tools</em></p>
<p><em> </em></li>
<li>Modify X configuration to account for MacBook Pro proper resolution modes
<pre>jfaleiro@ubuntu:~$ sudo vi /etc/X11/xorg.conf</pre>
<p>enter your admin password, and then change the file, commenting old line and adding a new one with your desired configuration:</p>
<pre>#                Modes   "800x600"
                 Modes   "1280x800" "1152x820" "1024x768"</pre>
</li>
<li>Re-apply configuration to all additional xserver configuration files
<pre><em>jfaleiro@ubuntu:~$ sudo dpkg-reconfigure -phigh xserver-xorg</em></pre>
</li>
<li>Modify the amount of video memory on the virtual machineAgain, the Parallels menu: <em>Virtual Machine -&gt; Configure -&gt; Video </em><em></em>On my case, 16Mb did the job</li>
<li>Finally, a fresh Restart
<pre><em>jfaleiro@ubuntu:~$ sudo reboot</em></pre>
</li>
</ol>
<p>The highest resolution is fine for a full screen view. You can switch Ubuntu ( System -&gt; Preferences -&gt; Display ) to a lower resolution (1152&#215;820 or 1024&#215;768) if you intend on using a window view.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/311/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=311&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2009/11/30/parallels-5-and-ubuntu-9-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>
	</item>
		<item>
		<title>Fink or MacPorts?</title>
		<link>http://jfaleiro.wordpress.com/2009/09/27/fink-or-macports/</link>
		<comments>http://jfaleiro.wordpress.com/2009/09/27/fink-or-macports/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 14:50:36 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[Toolbox]]></category>
		<category><![CDATA[fink]]></category>
		<category><![CDATA[mac os]]></category>
		<category><![CDATA[macports]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=242</guid>
		<description><![CDATA[Finally found some time to get out of my bubble and go over the configuration of a new Snow Leopard installation. Time to make a choice: Fink or MacPorts? For some reason I have *both* wondering around on my hard disk. First of all, they both have to be upgraded to Mac OS X 10.6.1 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=242&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finally found some time to get out of my bubble and go over the configuration of a new Snow Leopard installation. Time to make a choice: Fink or MacPorts? For some reason I have *both* wondering around on my hard disk.</p>
<p>First of all, they both have to be upgraded to Mac OS X 10.6.1 &#8211; so, to the uninstall:</p>
<p>Fink:</p>
<pre style="padding-left:30px;"><code>%%</code> <strong><code>sudo rm -rf /sw</code></strong></pre>
<p>and MacPort:</p>
<pre style="padding-left:30px;"><code>%%</code> <strong><code>sudo rm -rf \
    /opt/local \
    /Applications/DarwinPorts \
    /Applications/MacPorts \
    /Library/LaunchDaemons/org.macports.* \
    /Library/Receipts/DarwinPorts*.pkg \
    /Library/Receipts/MacPorts*.pkg \
    /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 \
    /Library/Tcl/macports1.0 \
    ~/.macports</code></strong></pre>
<p>Finally the installation: I decided to stay with MacPort, seems to provide more packages and most of the tools I usually look for are included &#8211; downloaded the 10.6.1 DMG for it and</p>
<pre style="padding-left:30px;"><code>%%</code> <strong><code>sudo port -v selfupdate

</code></strong></pre>
<p>Simple and straightforward, all works like a breeze.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/242/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/242/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/242/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=242&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2009/09/27/fink-or-macports/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>
	</item>
		<item>
		<title>RMS Event Handling Patterns</title>
		<link>http://jfaleiro.wordpress.com/2009/03/15/rms-event-handling-patterns/</link>
		<comments>http://jfaleiro.wordpress.com/2009/03/15/rms-event-handling-patterns/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 16:20:00 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[EDA]]></category>
		<category><![CDATA[Financial Engineering]]></category>
		<category><![CDATA[Large Scale Computing]]></category>
		<category><![CDATA[Software Patterns]]></category>
		<category><![CDATA[cep]]></category>
		<category><![CDATA[EQL]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[quantlet]]></category>
		<category><![CDATA[RETE]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=186</guid>
		<description><![CDATA[In event driven architectures following RMS patterns you have a few different ways of handling incoming events &#8211; we can think of four different patterns, three of them supported in QuantLET: Specialized Declarative Mostly through a declarative language (CEP guys/gals love that) like EQL or dialects. In other words, a language specialized for event handling [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=186&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In event driven architectures following <a href="http://jfaleiro.wordpress.com/2007/07/01/rms-architectures/">RMS patterns</a> you have a few different ways of handling incoming events &#8211; we can think of four different patterns, three of them supported in <a href="http://quantlet.net/">QuantLET</a>:</p>
<h5>Specialized Declarative</h5>
<p>Mostly through a declarative language (<a href="http://jfaleiro.wordpress.com/2007/04/02/event-processing-patterns/">CEP</a> guys/gals love that) like EQL or dialects. In other words, a language specialized for event handling (DSL). But be advised &#8211; despite of its &#8216;coolness&#8217; and being (most times at least) a time saver and a shortcut it requires specialized skills and tools not available on every corner (translation: lots of $$$).</p>
<h5>Functional Declarative</h5>
<p>Similar to above, one example would be something like a lisp-like dialect. Another example are constructs based on paradigms like map-reduction for large data fabric clusters. All as above applies</p>
<h5>Second-Order Declarative</h5>
<p>Based on inferences derived from second-order logic descriptions. You: &#8220;What? Why are you bringing this up here?&#8221; Me: Well, inference engines, specially <a href="http://en.wikipedia.org/wiki/Rete_algorithm">RETE engines</a>, are basically a correlated forwarded-chain of rules and facts, optimized in a tree-like fashion for speed in which &#8220;triggering&#8221; can be seen as an event&#8217;s action.</p>
<p>A time saver, flexible, and ideal when proper tools and resources are not available.</p>
<p style="text-align:center;"><a href="http://upload.wikimedia.org/wikipedia/commons/9/92/Rete.JPG"><img class="aligncenter" title="RETE Engine" src="http://upload.wikimedia.org/wikipedia/commons/9/92/Rete.JPG" alt="" width="516" height="358" /></a></p>
<h5>Finite State Machines</h5>
<p>Actions are associated to changes in state represented by a directed graph. Conditional transitions are also supported by &#8216;guards&#8217;. Incoming events carry either a next state of the graph, or the indication of a transition. Different types of actions are then performed based on the transition and the association, i.e: actions performed when entering a state (entry), leaving a state (exit), or when changed from one specific state to another (transition).</p>
<h5>Observer-Observable Imperative</h5>
<p>Simplest, but can lead to a lot of code to write that *will* turn into spaghetti if done by the uninitiated. Base yourself on proven paradigms that enforce separation of control and state to avoid adding to your own pain.</p>
<h5>Procedural Imperative</h5>
<p>Read &#8216;anything-else-imperative-except-the-observer-pattern-mentioned-above&#8217; &#8211; Don&#8217;t even think about trying that unless your model is *really* simple&#8230;</p>
<p>Ok &#8212; Now, pick one, any one&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/186/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=186&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2009/03/15/rms-event-handling-patterns/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/9/92/Rete.JPG" medium="image">
			<media:title type="html">RETE Engine</media:title>
		</media:content>
	</item>
		<item>
		<title>Ubuntu Cheat Sheet</title>
		<link>http://jfaleiro.wordpress.com/2009/01/23/ubuntu-cheat-sheet/</link>
		<comments>http://jfaleiro.wordpress.com/2009/01/23/ubuntu-cheat-sheet/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 14:08:40 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[Toolbox]]></category>
		<category><![CDATA[cheat sheet]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=339</guid>
		<description><![CDATA[Selecting which alternate binary to run % sudo update-alternatives --config java Will show you all java alternatives, so you can select which one to run Adding Alternatives of Binaries to run Some binaries do not have alternative versions, or do not come configured as such &#8211; an example is Python % sudo update-alternatives --install /usr/bin/python [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=339&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Selecting which alternate binary to run</h2>
<pre>% sudo update-alternatives --config java</pre>
<p>Will show you all java alternatives, so you can select which one to run</p>
<h2>Adding Alternatives of Binaries to run</h2>
<p>Some binaries do not have alternative versions, or do not come configured as such &#8211; an example is Python</p>
<p><code>% sudo update-alternatives --install /usr/bin/python python  /usr/bin/python2.4 10<br />
% sudo update-alternatives --install /usr/bin/python python  /usr/bin/python2.5 20</code></p>
<p>This case adds versions 2.4 and 2.5 of Python &#8211; then later you can select the version you want with</p>
<pre>% sudo update-alternatives --config python</pre>
<h2>Searching for a file using a string</h2>
<p>You will need apt-file:</p>
<pre>% aptitude install apt-file</pre>
<p>apt-file works on a local image of the repository image:</p>
<pre>% sudo apt-file update</pre>
<p>you can then search for a matching string</p>
<pre>% apt-file search 'tomcat-user'</pre>
<h2>Searching for a package using wildcards</h2>
<pre>% apt-cache search '*tomcat*'</pre>
<p>or</p>
<pre>% dpkg -l '*tomcat*''
</pre>
<h2>Starting/Stopping Services</h2>
<pre>Individual services can be started/stopped through scripts on /etc/init.d, e.g.
<pre>% sudo /etc/init.d/tomcat6 restart</pre>
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/339/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=339&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2009/01/23/ubuntu-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>
	</item>
		<item>
		<title>Promotion Failure? Concurrent Mode Failure?</title>
		<link>http://jfaleiro.wordpress.com/2008/11/02/promotion-failure/</link>
		<comments>http://jfaleiro.wordpress.com/2008/11/02/promotion-failure/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 18:03:40 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[Toolbox]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[concurrent mark sweep]]></category>
		<category><![CDATA[concurrent mode failure]]></category>
		<category><![CDATA[garbage collector]]></category>
		<category><![CDATA[promotion failure]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=324</guid>
		<description><![CDATA[Garbage collectors are so great &#8211; they make malloc()/new()  or free()/delete() look like things from the 19th century. They hide all complexities of memory management, allocation and deallocation from you. Ok, this post is about a few occasions when they do not work so that well. garbage collection (GC) is a form of automatic memory [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=324&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Garbage collectors are so great &#8211; they make malloc()/new()  or free()/delete() look like things from the 19th century. They hide all complexities of memory management, allocation and deallocation from you. Ok, this post is about a few occasions when they do not work so that well.</p>
<blockquote><p><strong>garbage collection</strong> (<strong>GC</strong>) is a form of automatic memory management. It is a special case of <em>resource  management</em>, in which the limited resource being managed is memory.  The <em>garbage collector</em>, or just <em>collector</em>, attempts to  reclaim <em>garbage</em>, or memory occupied  by objects that are no longer in use  by the program.</p></blockquote>
<p>Yes, sounds magical &#8211; let&#8217;s look at two examples of when the magic seems pretty much gone: <em>promotion failures</em> and <em>concurrent mode failures</em></p>
<h2>Promotion Failure</h2>
<p>No, this is not related to your last performance review. Nothing we can do about that. Sorry. This is related to a failure while promoting objects from the younger to older generation space in the heap. You can detect a promotion failure by entries like this on your GC trace:</p>
<pre>nnnnnn.nnn: [GC nnnnnn.nnn: [ParNew (<strong>promotion failed</strong>): (...)</pre>
<p>See, the way promotion of objects work, all younger objects to be promoted have to be allocated in a <em>contiguous </em>address space in the older generation memory.</p>
<p>Almost all cases of that (expensive) failure is due to <em>fragmentation </em>on the older generation area in the heap. This forces compaction to kick in right after that failure.</p>
<p>The most common way to deal with that is to reduce eden size and increase heap size (to a limit of course &#8211; bare in mind that compaction time does not increase linearly with the heap space to be compacted).</p>
<h2>Concurrent Mode Failure</h2>
<p>This is a result of an interruption of the usual (c0ncurrent) collection before completion. It is indicated in the GC trace by something similar to this:</p>
<pre>nnnnnn.nnn: [GC ...: [ParNew: (...) ...: [CMS (<strong>concurrent mode failure</strong>):</pre>
<p>Why is that exactly? The GC algorithm predicts that the concurrent collection will not end before the heap becomes full, so it decides to stop everything and run a full (stop the world) GC.</p>
<p>The cause is usually related to promotion of objects that will become eligible for collection right after the promotion takes place, and not enough time for the concurrent collection to go over the entire heap in time before new objects are promoted. How to deal with that?</p>
<ul>
<li>Make the CMS kick in sooner by reducing the initiating occupancy fraction (-XX:CMSInitiatingOccupancyFraction) to less than the default value</li>
<li>Make CMS life&#8217;s simpler by reducing the size of the heap</li>
<li>Enable incremental mode (-XX:+CMSIncrementalMode)</li>
</ul>
<h2>What Else?</h2>
<p>Moving to a 1.6 environment and using the default JVM configuration in your environment might solve your issue right away &#8211; why? escape analysis. This means that not all short lived objects are allocated on the execution stack, saving precious space on the young generation and avoiding all the promotion issues and the consequences we listed here.</p>
<p>Why did it take Java so long to get there?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=324&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2008/11/02/promotion-failure/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>
	</item>
		<item>
		<title>Spike?</title>
		<link>http://jfaleiro.wordpress.com/2008/10/24/spike/</link>
		<comments>http://jfaleiro.wordpress.com/2008/10/24/spike/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 14:20:35 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[spike]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=345</guid>
		<description><![CDATA[Spike is a fundamental concept in Scrum borrowed from earlier &#8216;Agile&#8217; methodologies. So what is a spike? One or more solutions that cut through all the layers of an architecture Time constrained It is not intended to be thrown away, however there is no commitment on using spikes &#8216;as is&#8217; &#8211; should be driven to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=345&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Spike is a fundamental concept in Scrum borrowed from earlier &#8216;Agile&#8217; methodologies. So what is a spike?</p>
<ol>
<li>One or more solutions that cut through all the layers of an architecture</li>
<li>Time constrained</li>
<li>It is not intended to be thrown away, however there is no commitment on using spikes &#8216;as is&#8217; &#8211; should be driven to allow re-use of ideas and concepts, not format.</li>
</ol>
<p>Basically, Spikes are a tool to reduce uncertainty. Use them often and wisely. And you should be prepared to refer back to them from time to time in search of alternatives, benchmarks and so on.</p>
<p>You should expect some controversy on the definition of a spike. Some authors seem to think that it should not be time constrained, some others question retaining anything from it at all &#8211; use your best judgement.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/345/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=345&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2008/10/24/spike/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>
	</item>
		<item>
		<title>RIA Visualization Frameworks</title>
		<link>http://jfaleiro.wordpress.com/2008/08/08/ria-visualization-frameworks/</link>
		<comments>http://jfaleiro.wordpress.com/2008/08/08/ria-visualization-frameworks/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 16:40:38 +0000</pubDate>
		<dc:creator>jfaleiro</dc:creator>
				<category><![CDATA[Financial Engineering]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[Toolbox]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[javafx]]></category>
		<category><![CDATA[moonlight]]></category>
		<category><![CDATA[openlaszlo]]></category>
		<category><![CDATA[ria]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://jfaleiro.wordpress.com/?p=76</guid>
		<description><![CDATA[In finance (and in most domains for that matter) your information is as good as the way it is presented. Few features on your applications will be more critical than the function of visualization. The example above from MIT&#8217;s financial visualization lab shows price, volume over a time series and instantaneous gain/loss. As you can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=76&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In finance (and in most domains for that matter) your information is as good as the way it is presented. Few features on your applications will be more critical than the function of visualization.</p>
<div class="wp-caption aligncenter" style="width: 489px"><img src="http://lineplot.com/gallery/media/ticks-42.jpg" alt="Price and Volume, 3D" width="479" height="331" /><p class="wp-caption-text">Price, Volume, Gain &amp; Loss in 3D</p></div>
<p>The example above from <a href="http://lfe.mit.edu/research/visualization.htm">MIT&#8217;s financial visualization</a> lab shows price, volume over a time series and instantaneous gain/loss. As you can see this and other similar applications out there resemble a neat 3D gaming interface and not grandpa&#8217;s trading blotter.</p>
<p>Anyway, needless to say, the choice of a framework to support your user experience can go as far as determining the success or failure of your application &#8211; in some cases it can even balance for limitations on other functions  performed in the back-end.</p>
<p>As of now thankfully there are many good options out there. Hands down RIA (rich internet [or interactive in MS parlance] applications) frameworks are best suited for the task. In essence RIA frameworks allow thick, full featured clients to be deployed and launched over the internet. The main current players are JavaFX, Silverlight, Flex, GWT and Openlazslo.</p>
<h2>JavaFX</h2>
<p>The <a href="http://www.javafx.com/">JavaFX</a> platform was announced by Sun about a year ago. A long waited response to something to counter balance deficiencies in the standard Swing/AWT. It is available by default on JRE 6 and can optionally rely on battle tested JNLP for remote deployment, execution and security.</p>
<p>Some of its major limitations come from the fact that even after one year, good development tools are still  not available. Most common development tools are provided as part of the NetBeans IDE, some limited plugins are available for Eclipse IDE. We could not find many commercial applications relying on the framework as well.</p>
<p>Strong points are embedded JDK support, reliance on stable Java protocols and Java language binding and a neat scripting language for view definition, for example:</p>
<pre>Button {
  text: "Click Me"
  action:
    function():Void {
      MessageDialog {
        title: "JavaFX Script Rocks!"
        // This string has a newline in the source code
        message: "JavaFX Script is Simple, Elegant,
         and Leverages the Power of Java"
        visible: true
       }
     }
}</pre>
<p>Defines a button, and a function to be triggered after an action to that button &#8211; this sample code is an exact copy of code found in the <a href="http://java.sun.com/developer/technicalArticles/scripting/javafx/ria_1/#4">scripting tutorial</a>.</p>
<h2>Silverlight</h2>
<p><a href="http://silverlight.net/">Silverlight</a> is MIcrosoft&#8217;s RIA framework for .NET, very popular in financial software shops. Runtime is  supported for Mac and Windows, development environment in Visual Studio requires Windows. Views are declared following XML descriptors as well.</p>
<pre>&lt;UserControl x:Class="DiggSample.Page"
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Digg="clr-namespace:DiggSample;assembly=DiggSample"&gt;
    &lt;Grid Style="{StaticResource TopGrid}"&gt;
            &lt;Button x:Name="btnSearch"
                    Content="Search"
                    Click="SearchBtn_Click"
                    Style="{StaticResource SearchButton}" /&gt;
    &lt;/Grid&gt;
&lt;/UserControl&gt;</pre>
<p>Again, the same usage sample: a button and an action. This code snippet &#8211; reduced for simplicity &#8211; is from Silverlight&#8217;s <a href="http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-1-creating-quot-hello-world-quot-with-silverlight-2-and-vs-2008.aspx">tutorial and samples</a>. Silverlight is target mainly at Windows platforms, Mac is supported as a run time as well. For an open source implementation covering other OSes as of this moment you will have to rely on <a href="http://www.mono-project.com/Moonlight">Moonlight</a>, <a href="http://www.mono-project.com/Main_Page">Mono</a>&#8216;s implementation.</p>
<h2>Flex</h2>
<p>Adobe&#8217;s <a href="http://www.adobe.com/products/flex/">Flex</a> has a commercial and an <a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK;jsessionid=BA63103FBCDA56106EBC3D658186DE7B">open source SDK</a> distribution. Since it was one of the early products on this arena, is the most widely used, specially for public web applications.</p>
<p>It is not an exception when it comes to XML-like language for UI definition called MXML and a &#8220;powerful object-oriented language&#8221; called ActionScript (yes, we need yet another). Below is a sample MXML and script of a Flickr-like photo application.</p>
<pre class="code-java">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"utf-8"</span>?&gt;
&lt;mx:Application xmlns:mx=<span class="code-quote">"http:<span class="code-comment">//www.adobe.com/2006/mxml"</span>
</span>    backgroundGradientColors=<span class="code-quote">"[0xFFFFFF, 0xAAAAAA]"</span>
    horizontalAlign=<span class="code-quote">"left"</span>
    verticalGap=<span class="code-quote">"15"</span>
    horizontalGap=<span class="code-quote">"15"</span>&gt;

    &lt;mx:Script&gt;
        &lt;![CDATA[
            <span class="code-keyword">import</span> mx.collections.ArrayCollection;
            <span class="code-keyword">import</span> mx.rpc.events.ResultEvent;

            [Bindable]
            <span class="code-keyword">private</span> <span class="code-keyword">var</span> photoFeed:ArrayCollection;

            <span class="code-keyword">private</span> function requestPhotos():void {
                photoService.cancel();
                <span class="code-keyword">var</span> params:<span class="code-object">Object</span> = <span class="code-keyword">new</span> <span class="code-object">Object</span>();
                params.format = 'rss_200_enc';
                params.tags = searchTerms.text;
                photoService.send(params);
            }

            <span class="code-keyword">private</span> function photoHandler(event:ResultEvent):void {
                 photoFeed = event.result.rss.channel.item as ArrayCollection;
            }
         ]]&gt;
    &lt;/mx:Script&gt;

    &lt;mx:HTTPService id=<span class="code-quote">"photoService"</span>
        url=<span class="code-quote">"http:<span class="code-comment">//api.flickr.com/services/feeds/photos_public.gne"</span>
</span>        result=<span class="code-quote">"photoHandler(event)"</span> /&gt;

	&lt;mx:HBox&gt;
		&lt;mx:Label text=<span class="code-quote">"Flickr tags or search terms:"</span> /&gt;
		&lt;mx:TextInput id=<span class="code-quote">"searchTerms"</span> /&gt;
		&lt;mx:Button label=<span class="code-quote">"Search"</span>
			click=<span class="code-quote">"requestPhotos()"</span> /&gt;
	&lt;/mx:HBox&gt;

	&lt;mx:TileList width=<span class="code-quote">"100%"</span> height=<span class="code-quote">"100%"</span>
		dataProvider=<span class="code-quote">"{photoFeed}"</span>
		itemRenderer=<span class="code-quote">"FlickrThumbnail"</span>&gt;
	&lt;/mx:TileList&gt;

&lt;/mx:Application&gt;</pre>
<p>There is extensive documentation and tutorials <a href="http://learn.adobe.com/wiki/display/Flex/1b.+Code+Files">available</a>. This code snippet came from there as well.</p>
<p>It is interesting to note the recent swap of designers and developers working on JavaFX and Flex SDK &#8211; some <a href="http://www.artima.com/lejava/articles/javaone_2007_james_ward.html">common strategies</a> on these two arenas started to take shape. It would not come as a surprise if these platforms converge in the near future.</p>
<h2>GWT</h2>
<p>The <a href="http://code.google.com/webtoolkit/">GWT</a> platform from all powerful Google is basically a set of development tools and IDE plugins that allow you to use Java to define RIA solutions. No surprises here as well, although you should not need to manipulate them directly, XML is used again to define GWT &#8220;modules&#8221;. You can find plenty of examples and documentation on GWT&#8217;s <a href="http://code.google.com/webtoolkit/gettingstarted.html">tutorial</a> resources.</p>
<h2>OpenLaszlo</h2>
<p>My favorite, an DHTML (optionally FLASH) based framework, many strong points: stable, open source, simple to deploy, test. A variety of resources to support data biding and scripting. My only comment would be once more, the over use of XML as a language called LZX:</p>
<pre class="programlisting"><span><span class="markup">&lt;</span><code class="sgmltag-element">canvas</code> <code class="sgmltag-attribute">height</code>="<code class="sgmltag-attvalue">200</code>" <code class="sgmltag-attribute">width</code>="<code class="sgmltag-attvalue">500</code>"<span class="markup">&gt;</span>
  <span class="markup">&lt;</span><code class="sgmltag-element">window</code> <code class="sgmltag-attribute">x</code>="<code class="sgmltag-attvalue">20</code>" <code class="sgmltag-attribute">y</code>="<code class="sgmltag-attvalue">20</code>" <code class="sgmltag-attribute">width</code>="<code class="sgmltag-attvalue">150</code>" <code class="sgmltag-attribute">title</code>="<code class="sgmltag-attvalue">Simple Window</code>" <code class="sgmltag-attribute">resizable</code>="<code class="sgmltag-attvalue">true</code>"<span class="markup">&gt;</span>
    <span class="markup">&lt;</span><code class="sgmltag-element">button</code> <code class="sgmltag-attribute">text</code>="<code class="sgmltag-attvalue">My button</code>" <code class="sgmltag-attribute">onclick</code>="<code class="sgmltag-attvalue">this.parent.setAttribute('title', 'You clicked it');</code>"<span class="markup">/&gt;</span>
  <span class="markup">&lt;/</span><code class="sgmltag-element">window</code><span class="markup">&gt;</span>
<span class="markup">&lt;/</span><code class="sgmltag-element">canvas</code><span class="markup">&gt;
</span></span></pre>
<p>Well, self explanatory. A button again and an action. You can embed scripts in LZX as well:</p>
<pre class="programlisting">&lt;canvas height="120"&gt;
   &lt;script&gt;
     <span class="em">&lt;![CDATA[</span>
     for (var i = 0; i &lt; 11; i++) {
       Debug.write(i);
     }
     <span class="em">]]&gt;</span>
   &lt;/script&gt;
&lt;/canvas&gt;</pre>
<p>Again, these examples and many others can be found in <a href="http://www.openlaszlo.org/lps4.1/docs/developers/tutorials/scripting-tutorial.html">Openlaszlo&#8217;s scripting tutorial</a>.</p>
<h2>Finally</h2>
<p>Great options, you might want to try these tutorials and find out which ones fit your use cases better. Sorry if you were expecting this article to provide a definitive answer here, far from that.</p>
<p>This is an active area of development currently, so you should expect many improvements for each of these contenders over the upcoming months.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jfaleiro.wordpress.com/76/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jfaleiro.wordpress.com/76/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jfaleiro.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jfaleiro.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jfaleiro.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jfaleiro.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jfaleiro.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jfaleiro.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jfaleiro.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jfaleiro.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jfaleiro.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jfaleiro.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jfaleiro.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jfaleiro.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jfaleiro.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jfaleiro.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jfaleiro.wordpress.com&amp;blog=452976&amp;post=76&amp;subd=jfaleiro&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jfaleiro.wordpress.com/2008/08/08/ria-visualization-frameworks/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6ca0d385397734ad0b738b28723e1e06?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jfaleiro</media:title>
		</media:content>

		<media:content url="http://lineplot.com/gallery/media/ticks-42.jpg" medium="image">
			<media:title type="html">Price and Volume, 3D</media:title>
		</media:content>
	</item>
	</channel>
</rss>
