<?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>Blogs from RTI &#187; Jan Van Bruaene</title>
	<atom:link href="http://blogs.rti.com/author/rtijan/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.rti.com</link>
	<description>The Real-Time Middleware Experts</description>
	<lastBuildDate>Mon, 16 Aug 2010 22:32:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blogs.rti.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/479f17de79bce18ecb4bca1e1ae1bd8d?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Blogs from RTI &#187; Jan Van Bruaene</title>
		<link>http://blogs.rti.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blogs.rti.com/osd.xml" title="Blogs from RTI" />
	<atom:link rel='hub' href='http://blogs.rti.com/?pushpress=hub'/>
		<item>
		<title>Tim &#8211; the network tool man &#8211; Taylor</title>
		<link>http://blogs.rti.com/2009/05/14/tim-the-network-tool-man-taylor/</link>
		<comments>http://blogs.rti.com/2009/05/14/tim-the-network-tool-man-taylor/#comments</comments>
		<pubDate>Thu, 14 May 2009 14:00:38 +0000</pubDate>
		<dc:creator>Jan Van Bruaene</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Debugging]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=116</guid>
		<description><![CDATA[When I moved to the US a decade ago, Home Improvement was a popular television sitcom, starring Tim Allen as Tim the tool man Taylor, a host of a made up home improvement show. Among the support team, when we learn about a new debugging tool, we frequently joke about &#8216;our network debugging tool belt&#8217;. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=116&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I moved to the US a decade ago, <a href="http://en.wikipedia.org/wiki/Home_Improvement">Home Improvement</a> was a popular television sitcom, starring Tim Allen as Tim the tool man Taylor, a host of a made up home improvement show.</p>
<p>Among the support team, when we learn about a new debugging tool, we frequently joke about &#8216;our network debugging tool belt&#8217;. Over the years, this tool belt has grown to a nice variety of debugging tools, especially when you include platform specific debugging tools. We currently support a great variety of platforms: from the enterprise platforms (Linux, Solaris, Windows) to various embedded platforms, (including VxWorks, LynxOS and Integrity).</p>
<p>Below is a list of the tools we frequently use on support. I am leaving out platform specific tools, tools to monitor how a particular network stack is processing network traffic (e.g <a href="http://en.wikipedia.org/wiki/netsta">netstat</a>) and general operating system debugging tools (<a href="http://en.wikipedia.org/wiki/Vmstat">vmstat</a>, cpustat, <a href="http://en.wikipedia.org/wiki/Lsof">lsof</a>, <a href="http://en.wikipedia.org/wiki/Gdb">gdb</a>, <a href="http://en.wikipedia.org/wiki/Strace">strace</a> etc.).</p>
<p><span id="more-116"></span>One of the most common questions on support is: <em>why are my two DDS applications not communicating?</em> The answer to this question falls into two categories: it is either a general networking / connectivity problem, or it is a configuration problem. Let&#8217;s take a look at the various tools we use to debug.</p>
<p><strong>Tools to verify connectivity</strong><br />
1. <a href="http://en.wikipedia.org/wiki/Ping"><em>ping</em></a> verifies whether you have basic connectivity between two hosts. Not commonly known is that ping can also be used to generate multicast data. This is especially useful when your DDS discovery is using multicast and you are suspecting a multicast or <a href="http://en.wikipedia.org/wiki/Time_to_live">time-to-live (ttl)</a> problem.</p>
<p>For example, you can try to ping 224.0.0.1 which is the all-hosts group. If you ping that group, all multicast capable hosts on the network should answer, as every multicast capable host must join that group at start-up on all it&#8217;s multicast capable interfaces. There is one gotcha, by default when running a Linux kernel 2.6, the capability of ICMP to reply to broadcast/multicast ping message is disabled. Whereas, it is enabled by default in Linux kernel 2.4. You can enable it by disabling <em>icmp_echo_ignore_broadcasts</em> (reference: <a href="http://kerneltrap.org/node/16225">http://kerneltrap.org/node/16225</a>)</p>
<p>If you want to experiment with the time-to-live value many ping implementations allow you to configure this via -t or -T.</p>
<p>2. <a href="http://en.wikipedia.org/wiki/Traceroute"><em>traceroute</em></a> (unix) or <a href="http://en.wikipedia.org/wiki/Tracert"><em>tracert</em></a> (Windows) is a tool to visualize packet path used when sending a packet. It shows you the different hops / routers a packet traverses.</p>
<p>3. <em>rtiddsping</em> is a command line utility found in the scripts directory of your RTI Data Distribution Service installation. It basically does the same thing as ping, but not by using the ICMP protocol, but by using DDS. If you were able to ping the hosts and wonder whether the issue is a problem in how your DDS application is configured, then <em>rtiddsping</em> is a neutral application to verify whether the DDS ping /pong topic is working. Take a look at the various flags to modify the peerlist, ttl, multicast and reliability qos parameters.</p>
<p><strong>Tools to analyze the data on the wire</strong><br />
4. One of my favorite network tools is probably <a href="http://www.wireshark.org">Wireshark</a>. Wireshark, previously called Ethereal, is a free packet sniffer and allows you to inspect the data on the wire. It will decode the packets based upon various protocol dissectors. The DDS wire protocol is commonly known as RTPS &#8211; real-time publish subscribe wire protocol. RTPS dissectors in earlier versions of Wireshark supported an early non-standard version of the protocol. RTPS2 is the dissector which supports the <a href="http://www.omg.org/technology/documents/dds_spec_catalog.htm">OMG standard</a> of the wire protocol. RTI contributed the source of this dissector to the Wireshark community. We also offer it as part of our <a href="http://www.rti.com/products/developer_platform/#PROTOCOL.">RTI Protocol Analyzer</a> product. If you are using RTI Data Distribution Service 4.2 or later, use the RTPS2 dissector.</p>
<p>We use RTI Protocol Analyzer to debug discovery misconfiguration. You can observe which IP addresses are used during discovery announcements or which ports a particular node is contacting. You can also look at whether the reliability protocol needs to repair samples and how many. You are able to filter on Hearthbeats as well as corresponding ACK/NACK packets. Lastly the nice thing about it is that you can save it to a file to share with the RTI support team. We can partake in the analysis of why something isn&#8217;t working as expected.</p>
<p>Make sure you are monitoring the data both at the send and receive side. RTI Protocol Analyzer can only capture what is on its wire. If you can not install RTI Protocol Analyzer on the publisher or subscriber, hooking up a simple hub is a good option. A switch, unless you enable port mirroring, won&#8217;t do the job. (Doh, where did I leave my old hub now?)</p>
<p>5. <a href="http://en.wikipedia.org/wiki/Snoop_(software)"><em>snoop</em></a><em> </em> (Solaris) is a packet sniffer for Solaris. Unfortunately it does not dissect the RTPS protocol.</p>
<p>6. <em>rtiddsspy</em> is a command line utility, found in the scripts directory of your RTI Data Distribution Service installation, which allows you to automatically subscribe to publications in a specific DDS domain. You can observe both the discovery data as well as the user data. Take a look at some of the command line options to filter out particular topics.</p>
<p>7. <a href="http://www.rti.com/products/data_distribution/rtirecorder.html">RTI Recorder</a> is a more complete data recorder. It can be configured to record specific topics and fields to a database which lateron can be queried using sql commands, or can be converted into XML, HTML or Excel. Since we often do not have access to your data source, this is best used in your test lab. You can then share the database file or converted file with us. The nice thing of recorder is that it records a lot more that the user data: also meta information such as time stamps are recorded.</p>
<p><strong>Tools to analyzer the state or configuration of the system</strong></p>
<p>8. We use  <a href="http://www.rti.com/products/developer_platform/#ANALYZER">RTI Analyzer</a> when we suspect a configuration issue: e.g. a quality of service (QoS) mismatch. Another good use case is when you have typo in the topicname. DDS will consider this a different topic. Analyzer will quickly show you all the topics in your system, as well as the qos parameters used by the different DDS entities (reader, writer, publisher, subscriber). The match analysis shows you in one screen which reader/writers are compatible.</p>
<p>One common misunderstanding is that Analyzer can not show you all quality of service paramters of a specific entity. For example resource limits or batching configuration are not shown. This is because those are local configuration parameters and are not sent out during discovery. If the configuration is not sent out during discovery, RTI Analyzer does not know about it.</p>
<p>If you want to want to verify whether you configured your batching correctly, I recommend to use RTI Protocol Analyzer as it will distinguish between regular data and batched data samples. It will even show the indivual batched samples.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/116/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=116&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2009/05/14/tim-the-network-tool-man-taylor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb610b28dc42df2074783aa867fca9d3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jan</media:title>
		</media:content>
	</item>
		<item>
		<title>Be your support engineer&#8217;s best friend</title>
		<link>http://blogs.rti.com/2009/05/07/be-your-support-engineers-best-friend/</link>
		<comments>http://blogs.rti.com/2009/05/07/be-your-support-engineers-best-friend/#comments</comments>
		<pubDate>Fri, 08 May 2009 00:00:04 +0000</pubDate>
		<dc:creator>Jan Van Bruaene</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Debugging]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=105</guid>
		<description><![CDATA[In my previous post, I detailed two resources for answers to commonly asked questions or to look up specific known issues. Of course that requires you to at last know what to ask or look for. Before getting there you probably want to find out more about how the middleware is doing, or in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=105&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my previous post, I detailed two resources for answers to commonly asked questions or to look up specific known issues. Of course that requires you to at last know what to ask or look for. Before getting there you probably want to find out more about how the middleware is doing, or in the event of a defect, contextual information to provide to the RTI support team. Other than a reproducer, the following configuration, error and status information  makes life for a support engineer so much easier.</p>
<p><span id="more-105"></span>RTI Data Distribution Service provides a great amount of information about the status of your real-time distributed system. Being able to collect and log this information is essential to start debugging a DDS based application.  There are several ways to implement a logging system which has minimal impact on performance and does not require a recompile. Before we get to that, let&#8217;s first take a look at what information is available and what will typically be requested by the support engineer.</p>
<p><strong>Configuration Information</strong><br />
The RTI middleware is configured through various Quality of Service (QoS) parameters.  QoS parameters can be specified for different DDS entities: domain participant, publisher/subscriber, and writer/reader. Easy access to the QoS configuration of each DDS entity within an application is a must. At a minimum the list should include QoS parameters which have been changed from the default values. When using version 4.3 or later of RTI’s middleware QoS parameters can be loaded from an XML file. The XML file is an easy way to change the QoS parameters at start up time, but also to share the configuration.</p>
<p>Part of how each DDS application is configured is how it will discover other applications and matching DDS topics. Gathering the following discovery information is key:</p>
<ol>
<li>What is my <em>initial peer list</em> of each domain participant, used to initially announce myself to other applications?</li>
<li>What is <em>multicast receive address</em> used by various domain participants? Is <em>multicast</em> enabled in my DDS application?</li>
<li>What transport are enabled <span>(See: </span><span><em><span style="font-size:10pt;">DDS_TransportBuiltinKindMask</span></em>) </span>and what are the <em>transport properties</em> used by each domain participant? These properties configure the UDP and shared memory transports at a low level.</li>
</ol>
<p><strong>Error logging and status information</strong><br />
By default RTI Data Distribution Service  will log error messages using the <span><em><span style="font-size:10pt;">NDDSConfigLogger</span></em> class to the console. The default verbosity configuration is </span><span><em><span style="font-size:10pt;">NDDS_CONFIG_LOG_VERBOSITY_ERROR</span></em>. We encourage you to log this information to a file, and to allow the verbosity level to be modified either at run time or at start up to include warnings (</span><span><em><span style="font-size:10pt;">NDDS_CONFIG_LOG_VERBOSITY_WARNING</span></em> ) or overall status information (</span><span><em><span style="font-size:10pt;">NDDS_CONFIG_LOG_VERBOSITY_STATUS_ALL)</span></em>.</span></p>
<p style="margin-top:0;margin-bottom:0;"><span> </span></p>
<p style="margin-top:0;margin-bottom:0;"><span><em>DDS status information</em> &#8211; DDS data readers and writers maintain status information which can be queried or can be made available through corresponding callback routines when a change in status occurs. This status information provides a great deal of insight into each entity. Not all of these status fields are indicative of an error. However they will help in debugging a problem or a mis-configuration. It is strongly recommended to instrument the corresponding callbacks and log changes to the following data reader and data writer status fields:</span></p>
<p style="margin-top:0;margin-bottom:0;margin-left:45pt;"><span><span style="font-family:Symbol;"><span>·<span> </span></span></span>DDS Data Reader status info includes: <span> </span></span><span><em><span style="font-size:10pt;">DDS_LIVELINESS_CHANGED_STATUS, DDS_REQUESTED_DEADLINE_MISSED_STATUS, DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS, DDS_SAMPLE_LOST_STATUS, DDS_SAMPLE_REJECTED_STATUS, DDS_SUBSCRIPTION_MATCHED_STATUS</span></em></span></p>
<p style="margin-top:0;margin-bottom:0;margin-left:45pt;"><span><span style="font-family:Symbol;"><span>·<span> </span></span></span>DDS Data Writer status info includes: </span><span><em><span style="font-size:10pt;">DDS_LIVELINESS_LOST_STATUS, DDS_OFFERED_DEADLINE_MISSED_STATUS, DDS_OFFERED_INCOMPATIBLE_QOS_STATUS, DDS_PUBLICATION_MATCHED_STATUS, DDS_RELIABLE_READER_ACTIVITY_CHANGED_STATUS</span></em></span></p>
<p>The DDS Data Writer <span><em><span style="font-size:10pt;">DDS_RELIABLE_WRITER_CACHE_CHANGED_STATUS</span></em> provides a summary of the state of a data writer’s cache of unacknowledged samples written. Logging this continuously will likely have an impact on performance as the callback will be triggered each time all samples have been acknowledged. We recommend to implement the ability to turn this on at start up or at run time as needed.</span></p>
<p><span><em>DDS Data Reader and Writer Cache and Protocol status</em> &#8211; Version 4.3e and later<a target="_blank"> adds statistics information about what is going on at the protocol level. Making this information selectively available will speed up isolation of the problem. The protocol status provides information such as the number of samples pushed, filtered and the status of wire protocol traffic. The cache status provides information about the queue: e.g. number of samples in the reader or writer queue.</a></span></p>
<p style="margin-top:0;margin-bottom:0;">For examples or tips on how to implement the recommended guidelines above, <a href="mailto:support@rti.com">contact RTI support</a> or visit the <a href="http://www.rti.com/support">RTI Customer Portal</a> solution section.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=105&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2009/05/07/be-your-support-engineers-best-friend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb610b28dc42df2074783aa867fca9d3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jan</media:title>
		</media:content>
	</item>
		<item>
		<title>Solutions! Solutions! Solutions!</title>
		<link>http://blogs.rti.com/2009/05/01/solutions-solutions-solutions/</link>
		<comments>http://blogs.rti.com/2009/05/01/solutions-solutions-solutions/#comments</comments>
		<pubDate>Sat, 02 May 2009 01:58:29 +0000</pubDate>
		<dc:creator>Jan Van Bruaene</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Product news]]></category>
		<category><![CDATA[Debugging]]></category>

		<guid isPermaLink="false">http://blogs.rti.com/?p=100</guid>
		<description><![CDATA[Leading the support team at Real-Time Innovations, I get to experience first hand how our customers are using our middleware. The type of questions range from simple how-to questions to more involved inquiries on recommended ways of implementing a particular communication pattern. And of course there is the occasional defect. In my maiden blog post [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=100&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Leading the support team at Real-Time Innovations, I get to experience first hand how our customers are using our middleware. The type of questions range from simple how-to questions to more involved inquiries on recommended ways of implementing a particular communication pattern. And of course there is the occasional defect. In my maiden blog post I wanted to highlight existing resources to get answers to some of these questions.</p>
<p><span id="more-100"></span></p>
<p>Obviously there is RT&#8230; uh &#8230; the documentation. The doc directory as well as the documents section of the <a title="RTI Customer Portal" href="http://www.rti.com/support">RTI Customer Portal</a> (<a href="http://www.rti.com/support">http://www.rti.com/support</a>) includes both the API (in html and pdf) as well as a comprehensive user manual. The nice thing about the RTI Customer portal is that it also allows you to <em>search</em> the API: by version and by language binding. If you colleague advises you to modify the max_heartbeat_retries to tune the reliability protocol, you can quickly figure out that in C++ you need to modify the DDS_RtpsReliableWriterProtocol_t structure.</p>
<p>In the recent release of RTI Data Distribution Service, the Getting Started Guide has been revamped to make the introductory experience more pleasant. The Getting Started Guide not only walks you through a basic example, but quickly introduces you to some common design patterns: how to configure the middleware for reliable messaging, how to achieve high throughput for streaming data and lastly how to send data over unreliable network connections.</p>
<p>Secondly, a great resource for frequently asked questions is our solutions database. Both the <a href="https://www.rti.com/kb/index.html">public knowledge base</a> (https://www.rti.com/kb/index.html), as well as our more comprehensive solutions section of the<a href="http://www.rti.com/support"> RTI Customer Portal</a>, include various code examples (in C, C++, Java) on important DDS concepts: keys, how to use QoS profiles, built-in and custom content filters, typecodes, etc. You can also find answers to questions such as <em>&#8220;What&#8217;s the maximum message size supported by RTI Data Distribution Service&#8221;</em>, and operating specific tips on how to tune your platform for better performance.</p>
<p>Take a look and let us know what is missing. We continuously add more items to this list.  Contact us at <a href="mailto:support@rti.com">support@rti.com</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rtidds.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rtidds.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rtidds.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rtidds.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rtidds.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rtidds.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rtidds.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rtidds.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rtidds.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rtidds.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rtidds.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rtidds.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rtidds.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rtidds.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogs.rti.com&amp;blog=7350090&amp;post=100&amp;subd=rtidds&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogs.rti.com/2009/05/01/solutions-solutions-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eb610b28dc42df2074783aa867fca9d3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jan</media:title>
		</media:content>
	</item>
	</channel>
</rss>