<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:thr="http://purl.org/syndication/thread/1.0">
  <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html" />
  <link rel="self" type="application/atom+xml" href="http://www.insideria.com/atom.xml" />
  <id>tag:www.insideria.com,2009://34/tag:www.insideria.com,2008://34.23153-</id>
  <updated>2009-11-05T20:17:59Z</updated>
  <title>Comments for Flex RIA Performance Considerations Part 1: Getting Started (http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html)</title>
  <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.21-en</generator>
  <entry>
    <id>tag:www.insideria.com,2008://34.23153</id>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.oreilly.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=34/entry_id=23153" title="Flex RIA Performance Considerations Part 1: Getting Started" />
    <published>2008-03-17T19:20:00Z</published>
    <updated>2008-03-17T23:44:31Z</updated>
    <title>Flex RIA Performance Considerations Part 1: Getting Started</title>
    <summary>Now that you&apos;ve had a chance to get your feet wet with Adam and Scott&apos;s outstanding InsideRIA series on Learning Flex From Scratch (LFFS) it&apos;s time to start really thinking about optimizing your apps. Many new developer are just happy to build an application that works without thinking of the consequences of poor architecture, inefficient code, and over-zealous eye candy. Although you may be fine for a while, eventually a lack of concern for performance is going to stop you in your tracks. Thanks to Murphy&apos;s law, this inevitability will occur most often on very large or important projects, and oftentimes after they&apos;re two days away from launch.</summary>
    <author>
      <name>Jun Heider</name>
      <uri>http://www.iheartair.com</uri>
    </author>
    
    <category term="Blogs" />
    
    <content type="html" xml:lang="en" xml:base="http://www.insideria.com/">
      <![CDATA[<strong>Overview</strong><br/>
<br/>
Now that you've had a chance to get your feet wet with Adam and Scott's outstanding InsideRIA series on <a href="http://www.insideria.com/adam_flater_and_scott_sheridan/">Learning Flex From Scratch (LFFS)</a> it's time to start really thinking about optimizing your apps. Many new developer are just happy to build an application that works without thinking of the consequences of poor architecture, inefficient code, and over-zealous eye candy. Although you may be fine for a while, eventually a lack of concern for performance is going to stop you in your tracks. Thanks to Murphy's law, this inevitability will occur most often on very large or important projects, and oftentimes after they're two days away from launch.<br/>
<br/>ﾠ
That being said, the idea behind this series is to arm you with the information you'll need to change the course of your development future and prevent any future crises moments from happening.<br/>
<br/>ﾠ
The other idea behind this series is to post-process the resources that are out there, if necessary, revamp them to be current to today's Flex 3 platform, re-affirm them with additional examples and insights, or extend them in an OOP-like fashion to derive some more comprehensive materials.<br/>
<br/>ﾠ
Right up front, I'm giving credit where credit's due. There are many wicked smart people in the community, and here are articles and presentations from some that I've found throughout my research:<br/>
<br/>
    * A pretty comprehensive article - albeit written in 2004 for Flex 1 - on Flex performance by Brandon Purcell and Deepa Subramaniam:<br/>
      <a target="_blank" href="http://www.adobe.com/devnet/flex/articles/client_perf.html">http://www.adobe.com/devnet/flex/articles/client_perf.html</a><br/>
<br/>
    * An RPC performance article by Michael Herron:<br/>
      <a target="_blank" href="http://www.adobe.com/devnet/flex/articles/rpc_performance.html">http://www.adobe.com/devnet/flex/articles/rpc_performance.html</a><br/>
<br/>
    * Slides from a MAX 2007 talk by David Coletta on Flex performance
      <a target="_blank" href="http://www.colettas.org/?p=187">http://www.colettas.org/?p=187</a><br/>
<br/>
    * A MAX 2006 presentation by David George on creating responsive Flex 2 applications.<br/>
      <a target="_blank" href="https://admin.adobe.acrobat.com/_a300965365/p71169528/">https://admin.adobe.acrobat.com/_a300965365/p71169528/</a><br/>
<br/>
    * Tips for tuning AS3 performance by Matt Chotin. This was an extension of a presentation created by Ted Patrick:<br/>
      <a target="_blank" href="http://www.adobe.com/devnet/flex/articles/as3_tuning.html">http://www.adobe.com/devnet/flex/articles/as3_tuning.html</a><br/>
      <a target="_blank" href="http://www.onflex.org/ted/2006/09/max-actionscript-3-performance-tuning.php">http://www.onflex.org/ted/2006/09/max-actionscript-3-performance-tuning.php</a><br/>
<br/>      ﾠ
    * An RIA Data Loading sampler by RIA Cowboy James Ward:<br/>
      <a target="_blank" href="http://www.jamesward.org/census/">http://www.jamesward.org/census/</a><br/>
<br/>
    * A presentation on AS3 tuning and the AVM2 by Gary Grossman:<br/>
      <a target="_blank" href="http://www.onflex.org/ACDS/AS3TuningInsideAVM2JIT.pdf">http://www.onflex.org/ACDS/AS3TuningInsideAVM2JIT.pdf</a><br/>
<br/>
    * Some sneaky little Flex tricks by the Farata Systems guys:<br/>
      <a target="_blank" href="http://flexblog.faratasystems.com/?p=147">http://flexblog.faratasystems.com/?p=147</a><br/>
<br/>
    * Some RIA performance tips from Chris Korhonen:<br/>
      <a target="_blank" href="http://sourcebottle.net/2007/8/26/performance-tips-for-ria/">http://sourcebottle.net/2007/8/26/performance-tips-for-ria/</a><br/>
<br/>      ﾠ
    * Here are some pages on AS3 optimizations, although you're going to want to double-check them because in my tests some optimizations seem to still hold true while others don't:<br/>
      <a target="_blank" href="http://rozengain.com/?postid=35">http://rozengain.com/?postid=35</a><br/>
      <a target="_blank" href="http://www.danielhai.com/blog/?p=55">http://www.danielhai.com/blog/?p=55</a><br/>
      <a target="_blank" href="http://blog.andre-michelle.com/2005/as3-optimations-suggestions">http://blog.andre-michelle.com/2005/as3-optimations-suggestions</a><br/>
      <a target="_blank" href="http://lab.polygonal.de/2007/05/10/bitwise-gems-fast-integer-math/">http://lab.polygonal.de/2007/05/10/bitwise-gems-fast-integer-math/</a><br/>
      <a target="_blank" href="http://osflash.org/as3_speed_optimizations">http://osflash.org/as3_speed_optimizations</a><br/>
<br/>
<br/>
ﾠHere is a glimpse into the future of this Flex RIA Performance Considerations series:<br/>
ﾠ<br/>
    * Part 2: Application Startup<br/>
    * Part 3: Writing Efficient Code<br/>
    * Part 4: The Display Hierarchy<br/>
    * Part 5: Dealing with Data<br/>
    * Part 6: Flex Framework Containers<br/>
    * Part 7: Flex Framework Controls<br/>
    * Part 8: Custom Components<br/>
    * Part 9: Effects, Animation, and Filters<br/>
    * Part 10: Managing External Resources<br/>
    * Part 11: OPP: Other People's Programming<br/>
    * Part 12: In Closing<br/>
ﾠ<br/>
<br/>
Now, before we get this series underway, if you're new to Flex or new to both Flex and development in general, I highly recommend you take a look at the <a target="_blank" href="http://www.insideria.com/adam_flater_and_scott_sheridan/">Learning Flex From Scratch (LFFS)</a> series in addition to this one. Also, I'll need to clue you in on some tools to use and some general performance tuning concepts.<br/>
<br/>
<strong>Tools</strong><br/>
ﾠ<br/>
One of the key concepts of performance tuning is to establish baseline performance statistics and run multiple tests to make sure you're making improvements. To be able to do this requires some tools to track execution time.<br/>
<br/>ﾠ
If you have the money, I highly recommend you get a copy of <a target="_blank" href="http://www.adobe.com/products/flex/features/flex_builder/">Flex Builder 3 Professional</a>. Reason being, the Profiler that comes with the Professional edition will provide you with the most robust information on code execution out of any tool that's out there.<br/>

<div class="ap_c" style="margin: 16px;"><a target="_blank" href="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp1.png" class="highslide" onclick="return hs.expand(this)"><img src="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp1.png" alt="rp1.jpg" title="Click to enlarge" width="400"/></a></div>
<br/>
If you don't have the money for Flex Builder 3 Professional, you can make use of getTimer() in combination with the global <a target="_blank" href="http://livedocs.adobe.com/flex/3/langref/flash/utils/package.html#getTimer()">trace()</a> function or a logging tool.<br/>
<br/>ﾠ
The concept is, you log a call before and after the code you are optimizing. This package-level function <a target="_blank" href="http://livedocs.adobe.com/flex/3/langref/flash/utils/package.html#getTimer()">flash.utils.getTimer</a> returns the number of milliseconds since the Flash Player was initialized. Based on this, you can figure out the amount of time that code took to run by subtracting the results of the first call to getTimer() from the results of the second call. This concept is illustrated in the code example below:<br/>
<br/>
<div class="acode" style="overflow: auto; padding: 10px;" ><div style="overflow-x: visible;">
<code language="perl">
<pre>
<span class="linecomment">// Elapsed time before running the iteration</span>
<span class="category1">var</span> startTime:<span class="category1">int</span> = <span class="category1">getTimer</span>();ﾠ
<span class="linecomment">// Factor instantiation out of the loop test</span>
<span class="category1">var</span> myArray:<span class="category2">Array</span> = [1,2,3,4,5];
myArray[5000000] = "<span class="quote">jun heider</span>";
<span class="category1">var</span> tempString:<span class="category2">String</span>
<span class="category1">for</span>(<span class="category1">var</span> i:<span class="category1">int</span>=0;i&lt;30000;i++) {
     tempString = myArray[5000000];
}
<span class="linecomment">// Elapsed time after the iteration</span>
<span class="category1">var</span> endTime:<span class="category1">int</span> = <span class="category1">getTimer</span>();
<span class="linecomment">// Lets figure out total time for this particular iteration</span>
<span class="category1">var</span> totalTime:<span class="category1">int</span> = endTime - startTime;</pre>
</code>

</div></div> 
<br/>
To see the results of the code above you can use trace(). This global function works by sending output to the Flex Builder console and can also write to a log file. Take a look at the illustration to see both the necessary code and the output in the console window when the app is run in debug mode.<br/>
<br/>
<div class="ap_c" style="margin: 16px;"><a target="_blank" href="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp2.png" class="highslide" onclick="return hs.expand(this)"><img src="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp2.png" alt="rp2.jpg" title="Click to enlarge" width="400"/></a></div>
<br/>
Now that I've mentioned debug mode, let me tell you what it is. When you're working in Flex Builder, there's two ways to run your application. The first is the standard run mode and the second is debug mode. When your Flex application is run in debug mode, among other things, trace() statements will be executed. Also, to run in debug mode requires a Debug version of the Flash Player.<br/>
<br/>ﾠ
Although trace() is good, it only works in debug mode and there are several logging tools out there that can run both in debug and standard mode execution and make log analysis data used for performance tuning a little bit easier to work with.<br/>
<br/>
<br/>
* RIALogger is an AIR-based logging utility that was created by <a target="_blank" href="http://renaun.com">Renaun Erickson</a>. It offers both filtering and searching your log messages. RIALogger will also allow you to save your log data to a text file. To learn how to use RIALogger, check out Renaun's blog: <a target="_blank" href="http://renaun.com/blog/flex-components/rialogger/">http://renaun.com/blog/flex-components/rialogger/</a> or if you would prefer, just take a look at this illustration.<br/>
<br/>ﾠ
<div class="ap_c" style="margin: 16px;"><a target="_blank" href="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp3.png" class="highslide" onclick="return hs.expand(this)"><img src="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp3.png" alt="rp3.jpg" title="Click to enlarge" width="400"/></a></div>
<br/>
* ThunderBolt AS3 is a logging tool that was built on top of the Firefox Firebug plugin. This logging tool was written by <a target="_blank" href="http://www.websector.de/blog/">Jens Krause (aka sectore)</a>. To learn more about Firebug you can go to <a target="_blank" href="http://www.getfirebug.com/">http://www.getfirebug.com/</a> and to learn how to make use of ThunderBolt AS3 you can go to <a target="_blank" href="http://code.google.com/p/flash-thunderbolt/wiki/ThunderBoltAS3">http://code.google.com/p/flash-thunderbolt/wiki/ThunderBoltAS3</a><br/>
<br/>
Here's a screen capture of ThunderBolt AS3 in use.<br/>
<br/>
<div class="ap_c" style="margin: 16px;"><a target="_blank" href="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp4.png" class="highslide" onclick="return hs.expand(this)"><img src="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp4.png" alt="rp4.jpg" title="Click to enlarge" width="400"/></a></div>
<br/>ﾠ
* REDbug is a tool built on AIR by <a target="_blank" href="http://office.realeyesmedia.com/blogs/jun/">myself</a>, <a target="_blank" href="http://david.realeyes.com/">David Hassoun</a>, <a target="_blank" href="http://john.realeyes.com/">John Crosby</a>, and the rest of the <a target="_blank" href="http://labs.realeyes.com/">RealEyes</a> crew. Although we're running behind on getting out our AIR 1.0 release build, it should be available by the time you read this article. REDbug allows for logging, capabilities tracking, and memory monitoring. It allows you to save and load logged data and was built modularly with goals in mind to add additional functionality to it in the future. To find out more about REDbug go to <a target="_blank" href="http://www.redbugtool.com">http://www.redbugtool.com</a><br/>
Here's a screen shot: <br/>
ﾠﾠﾠ<div class="ap_c" style="margin: 16px;"><a target="_blank" href="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp5.png" class="highslide" onclick="return hs.expand(this)"><img src="http://www.insideria.com/upload/2008/03/flex_ria_performance_considera/rp5.png" alt="rp5.jpg" title="Click to enlarge" width="400"/></a></div>
ﾠ<br/>ﾠ
Hopefully you have some ideas now on the tools you have at your disposal. If you've got the cash I highly recommend Flex Builder 3 Professional edition, but if its not an option any of the above tools will do you well. Also, using FB3 in conjunction with these additional tools is usually how I roll since sometimes you or your testers don't have access to debug mode and a copy of FB3.<br/>ﾠ
<br/>ﾠﾠ
<strong>General Concepts</strong><br/>ﾠ
<br/>ﾠﾠ
As stated before, this series is all about how you can use performance tuning, code optimization, and knowledge of your development platform to make your Flex applications run faster, more efficiently, and with higher end-user satisfaction. By the way, this blog entry is being written on <a target="_blank" href="http://www.buzzword.com">Buzzword</a> - a Flex-based word processor - and I know from <a target="_blank" href="http://www.colettas.org/?p=187">David Coletta</a>, that their development team took performance tuning and code optimization very seriously during development because this application performs very responsively and with much end-user satisfaction.<br/>ﾠ
<br/>ﾠﾠ
Although I don't really have the room here to write an in-depth overview on general performance tuning and code optimization theory, the work's already been done for me. Take a look at <a target="_blank" href="http://en.wikipedia.org/wiki/Performance_tuning.">http://en.wikipedia.org/wiki/Performance_tuning.</a> Some of the things that you're going to be hearing me talk about pretty immediately are:<br/>ﾠ
<br/>ﾠﾠ
<br/>ﾠﾠ
    * Keep best practices in mind throughout development but don't over-optimize too early.<br/>ﾠﾠ
    * Use a systematic approach when profiling application performance.<br/>ﾠﾠ
    * Make incremental changes between tests. Don't change too much at once, otherwise you'll have a harder time figuring out what change increased the performance of your application.<br/>ﾠﾠ
    * There are always trade-offs that need to be made when tweaking your apps to run how they need to run. For instance, you may get it to run faster but the trade-off would cause the application to consume more memory.<br/>ﾠﾠ
    * There are two ways to think about performance. Actual performance: which means one block of code executes faster than another. Perceived performance: when code is written in a manner to make the user feel that code is executing faster.<br/>ﾠﾠ
<br/>ﾠﾠﾠ
<br/>ﾠﾠ
As we move through the series, it is my intention to continue to revisit these concepts in a JIT manner, so if you aren't quite up to speed yet or simply do not feel like checking out the Wikipedia entry, no need to fret.<br/>ﾠﾠ
ﾠ<br/>ﾠﾠ
<strong>Where We Go from Here</strong><br/>ﾠﾠ
<br/>ﾠﾠﾠ
In the next installment of this series, we're going to dive into Flex application startup. During the installment we'll talk of both features and techniques that can be used to get the startup performance of your Flex applications to the levels they need to be. In addition to covering techniques and things that have been around since the days before Flex we're also going to cover some really cool new features that have become available with the launch of Flex 3.<br/>ﾠﾠ
<br/>ﾠﾠﾠ
In the meantime, if you have any ideas on what you'd like to see in this series, feel free to post a comment, I'm alway open to feedback and ideas.<br/>ﾠﾠ]]>
      
    </content>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.23153-comment:2015952</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.23153" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html#comment-2015952" />
    <title>Comment from Adam Flater on 2008-03-17</title>
    <author>
        <name>Adam Flater</name>
        <uri>http://adamflater.net</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://adamflater.net">
        <![CDATA[<p>Thanks for the shout out Jun, and nice post... btw the url for the lffs series is: <a href="http://www.insideria.com/adam_flater_and_scott_sheridan/">http://www.insideria.com/adam_flater_and_scott_sheridan/</a></p>

<p>Highlands hood Inside RIA writer count: 2. ;)</p>]]>
    </content>
    <published>2008-03-17T22:16:16Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.23153-comment:2015956</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.23153" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html#comment-2015956" />
    <title>Comment from Jun Heider on 2008-03-18</title>
    <author>
        <name>Jun Heider</name>
        <uri>http://www.iheartflex.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.iheartflex.com">
        <![CDATA[<p>Yo Adam,  no worries, and thanks! Highlands hood...that's right, that's right... ;-)</p>]]>
    </content>
    <published>2008-03-18T08:13:12Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.23153-comment:2016008</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.23153" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html#comment-2016008" />
    <title>Comment from David Tucker on 2008-03-20</title>
    <author>
        <name>David Tucker</name>
        <uri>http://www.davidtucker.net/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.davidtucker.net/">
        <![CDATA[<p>Great post man.  After your session on this at 360Flex, it changed the way that I code certain processes.  Thanks!</p>]]>
    </content>
    <published>2008-03-20T15:31:45Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.23153-comment:2016033</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.23153" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html#comment-2016033" />
    <title>Comment from Jun Heider on 2008-03-21</title>
    <author>
        <name>Jun Heider</name>
        <uri>http://www.iheartflex.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.iheartflex.com">
        <![CDATA[<p>Thanks for the kind words David!  I'm glad you enjoyed my session, and hopefully this series will be just as enjoyable. :)</p>]]>
    </content>
    <published>2008-03-21T07:16:24Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.23153-comment:2016224</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.23153" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html#comment-2016224" />
    <title>Comment from Autoversicherung on 2008-03-30</title>
    <author>
        <name>Autoversicherung</name>
        <uri>http://autoversicherung-kfz-versicherung.suggestlink.de</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://autoversicherung-kfz-versicherung.suggestlink.de">
        <![CDATA[<p>This is my Favorit Blog. Greatfull Report. Best Regards Autoversicherung</p>]]>
    </content>
    <published>2008-03-30T14:14:31Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.23153-comment:2016230</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.23153" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html#comment-2016230" />
    <title>Comment from Andy on 2008-03-30</title>
    <author>
        <name>Andy</name>
        <uri>http://www.busycode.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.busycode.com">
        <![CDATA[<p>Anyone hire us? We have 42 full time Adobe Flex programmers. Hourly rate is only 10 USD. Our website is <a href="http://www.busycode.com">http://www.busycode.com</a><br />
My email is: cogoing@gmail.com</p>

<p>Thanks,<br />
Andy</p>]]>
    </content>
    <published>2008-03-31T05:40:19Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.23153-comment:2055015</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.23153" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/03/flex-ria-performance-considera-1.html#comment-2055015" />
    <title>Comment from Rahul on 2009-03-12</title>
    <author>
        <name>Rahul</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Hi, <br />
I am an Adobe Flex Developer based in Bangalore. I have successfully delivered projects coming from London, Melbourne, Paris, New York.<br />
I am an expert in RIA development and Widget development.<br />
Here's my website: www.flexfreelancer.com<br />
Email: rahulsood81@gmail.com</p>

<p>Past project work samples are available on request. <br />
Cheers,<br />
Rahul.<br />
GTalk/Skype : rahulsood81</p>]]>
    </content>
    <published>2009-03-12T13:15:23Z</published>
  </entry>

</feed
