<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: path code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 16 May 2008 15:23:51 GMT</pubDate>
    <description>DZone Snippets: path code</description>
    <item>
      <title>Dijkstra's Algorithm</title>
      <link>http://snippets.dzone.com/posts/show/4832</link>
      <description>This is a simple O(n^2) implementation of &lt;a href="http://en.wikipedia.org/wiki/Dijkstra's_algorithm"&gt;Dijkstra's algorithm&lt;/a&gt; for finding the shortest paths from a single source to all nodes in a graph.&lt;br /&gt;&lt;br /&gt;Further explanation is given &lt;a href="http://compprog.wordpress.com/2007/12/01/one-source-shortest-path-dijkstras-algorithm/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;#define GRAPHSIZE 2048&lt;br /&gt;#define INFINITY GRAPHSIZE*GRAPHSIZE&lt;br /&gt;#define MAX(a, b) ((a &gt; b) ? (a) : (b))&lt;br /&gt;&lt;br /&gt;int e; /* The number of nonzero edges in the graph */&lt;br /&gt;int n; /* The number of nodes in the graph */&lt;br /&gt;long dist[GRAPHSIZE][GRAPHSIZE]; /* dist[i][j] is the distance between node i and j; or 0 if there is no direct connection */&lt;br /&gt;long d[GRAPHSIZE]; /* d[i] is the length of the shortest path between the source (s) and node i */&lt;br /&gt;&lt;br /&gt;void printD() {&lt;br /&gt;	int i;&lt;br /&gt;	for (i = 1; i &lt;= n; ++i)&lt;br /&gt;		printf("%10d", i);&lt;br /&gt;	printf("\n");&lt;br /&gt;	for (i = 1; i &lt;= n; ++i) {&lt;br /&gt;		printf("%10ld", d[i]);&lt;br /&gt;	}&lt;br /&gt;	printf("\n");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void dijkstra(int s) {&lt;br /&gt;	int i, k, mini;&lt;br /&gt;	int visited[GRAPHSIZE];&lt;br /&gt;&lt;br /&gt;	for (i = 1; i &lt;= n; ++i) {&lt;br /&gt;		d[i] = INFINITY;&lt;br /&gt;		visited[i] = 0; /* the i-th element has not yet been visited */&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	d[s] = 0;&lt;br /&gt;&lt;br /&gt;	for (k = 1; k &lt;= n; ++k) {&lt;br /&gt;		mini = -1;&lt;br /&gt;		for (i = 1; i &lt;= n; ++i)&lt;br /&gt;			if (!visited[i] &amp;&amp; ((mini == -1) || (d[i] &lt; d[mini])))&lt;br /&gt;				mini = i;&lt;br /&gt;&lt;br /&gt;		visited[mini] = 1;&lt;br /&gt;&lt;br /&gt;		for (i = 1; i &lt;= n; ++i)&lt;br /&gt;			if (dist[mini][i])&lt;br /&gt;				if (d[mini] + dist[mini][i] &lt; d[i]) &lt;br /&gt;					d[i] = d[mini] + dist[mini][i];&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[]) {&lt;br /&gt;	int i, j;&lt;br /&gt;	int u, v, w;&lt;br /&gt;&lt;br /&gt;	FILE *fin = fopen("dist.txt", "r");&lt;br /&gt;	fscanf(fin, "%d", &amp;e);&lt;br /&gt;	for (i = 0; i &lt; e; ++i)&lt;br /&gt;		for (j = 0; j &lt; e; ++j)&lt;br /&gt;			dist[i][j] = 0;&lt;br /&gt;	n = -1;&lt;br /&gt;	for (i = 0; i &lt; e; ++i) {&lt;br /&gt;		fscanf(fin, "%d%d%d", &amp;u, &amp;v, &amp;w);&lt;br /&gt;		dist[u][v] = w;&lt;br /&gt;		n = MAX(u, MAX(v, n));&lt;br /&gt;	}&lt;br /&gt;	fclose(fin);&lt;br /&gt;&lt;br /&gt;	dijkstra(1);&lt;br /&gt;&lt;br /&gt;	printD();&lt;br /&gt;&lt;br /&gt;	return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 01 Dec 2007 19:41:53 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4832</guid>
      <author>scvalex (Alexandru Scvortov)</author>
    </item>
    <item>
      <title>Bellman-Ford Algorithm</title>
      <link>http://snippets.dzone.com/posts/show/4828</link>
      <description>This is a simple implementation of the &lt;a href="http://en.wikipedia.org/wiki/Bellman-ford"&gt;Bellman-Ford&lt;/a&gt; algorithm for finding the shortest path from a single source in a graph.&lt;br /&gt;&lt;br /&gt;A detailed explanation is given &lt;a href="http://compprog.wordpress.com/2007/11/29/one-source-shortest-path-the-bellman-ford-algorithm/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;typedef struct {&lt;br /&gt;	int u, v, w;&lt;br /&gt;} Edge;&lt;br /&gt;&lt;br /&gt;int n; /* the number of nodes */&lt;br /&gt;int e; /* the number of edges */&lt;br /&gt;Edge edges[1024]; /* large enough for n &lt;= 2^5=32 */&lt;br /&gt;int d[32]; /* d[i] is the minimum distance from node s to node i */&lt;br /&gt;&lt;br /&gt;#define INFINITY 10000&lt;br /&gt;&lt;br /&gt;void printDist() {&lt;br /&gt;	int i;&lt;br /&gt;&lt;br /&gt;	printf("Distances:\n");&lt;br /&gt;&lt;br /&gt;	for (i = 0; i &lt; n; ++i)&lt;br /&gt;		printf("to %d\t", i + 1);&lt;br /&gt;	printf("\n");&lt;br /&gt;&lt;br /&gt;	for (i = 0; i &lt; n; ++i)&lt;br /&gt;		printf("%d\t", d[i]);&lt;br /&gt;&lt;br /&gt;	printf("\n\n");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void bellman_ford(int s) {&lt;br /&gt;	int i, j;&lt;br /&gt;&lt;br /&gt;	for (i = 0; i &lt; n; ++i)&lt;br /&gt;		d[i] = INFINITY;&lt;br /&gt;&lt;br /&gt;	d[s] = 0;&lt;br /&gt;&lt;br /&gt;	for (i = 0; i &lt; n - 1; ++i)&lt;br /&gt;		for (j = 0; j &lt; e; ++j)&lt;br /&gt;			if (d[edges[j].u] + edges[j].w &lt; d[edges[j].v])&lt;br /&gt;				d[edges[j].v] = d[edges[j].u] + edges[j].w;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[]) {&lt;br /&gt;	int i, j;&lt;br /&gt;	int w;&lt;br /&gt;&lt;br /&gt;	FILE *fin = fopen("dist.txt", "r");&lt;br /&gt;	fscanf(fin, "%d", &amp;n);&lt;br /&gt;	e = 0;&lt;br /&gt;&lt;br /&gt;	for (i = 0; i &lt; n; ++i)&lt;br /&gt;		for (j = 0; j &lt; n; ++j) {&lt;br /&gt;			fscanf(fin, "%d", &amp;w);&lt;br /&gt;			if (w != 0) {&lt;br /&gt;				edges[e].u = i;&lt;br /&gt;				edges[e].v = j;&lt;br /&gt;				edges[e].w = w;&lt;br /&gt;				++e;&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;	fclose(fin);&lt;br /&gt;&lt;br /&gt;	/* printDist(); */&lt;br /&gt;&lt;br /&gt;	bellman_ford(0);&lt;br /&gt;&lt;br /&gt;	printDist();&lt;br /&gt;&lt;br /&gt;	return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 29 Nov 2007 14:55:34 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4828</guid>
      <author>scvalex (Alexandru Scvortov)</author>
    </item>
    <item>
      <title>add a folder to PATH, but not if it is already in PATH</title>
      <link>http://snippets.dzone.com/posts/show/4821</link>
      <description>Often times one uses a single .profile or .bashrc across several hosts.  These hosts may be differently configured, with varying directory locations, and different initial PATH values from /etc/profile.  In situations like this, setting PATH the traditional way -- "PATH=$PATH:/path/to/some/stuff" -- can result in a cumbersomely long PATH that includes inaccessible or duplicate folders.  &lt;br /&gt;&lt;br /&gt;The snippet below nicely handles this problem.  It has been tested on Solaris and Linux.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;AddPath ()&lt;br /&gt;# Add argument to $PATH if:&lt;br /&gt;# - it is not already present&lt;br /&gt;# - it is a directory&lt;br /&gt;# - we have execute permission on it&lt;br /&gt;#&lt;br /&gt;# This snippet is public domain; you may use it freely.  Death to copyright, patents, &lt;br /&gt;# and all other forms of intellectual monopoly.  &lt;br /&gt;#&lt;br /&gt;{&lt;br /&gt;  _folder=$1&lt;br /&gt;  echo " $PATH " | sed 's/:/ /g' | grep " $_folder " &gt; /dev/null&lt;br /&gt;  [ $? -ne 0 ] &amp;&amp; [ -d $_folder ] &amp;&amp; [ -x $_folder ] &amp;&amp; PATH=$PATH:$_folder&lt;br /&gt;  export PATH&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Add some common paths:&lt;br /&gt;AddPath /usr/bin&lt;br /&gt;AddPath /usr/local/bin&lt;br /&gt;AddPath /opt/somepackage/bin&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 28 Nov 2007 18:38:16 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4821</guid>
      <author>jmcvetta (Jason McVetta)</author>
    </item>
    <item>
      <title>Printing out the full path of a resource on the classpath</title>
      <link>http://snippets.dzone.com/posts/show/4489</link>
      <description>// displaying the full path of a resource found by the class loader on the classpath, here the log4j.xml file&lt;br /&gt;&lt;code&gt;&lt;br /&gt;String resourceName = "/log4j.xml"; // pay attention to the leading '/' !&lt;br /&gt;URL location = AnyClass.class.getResource(resourceName);&lt;br /&gt;&lt;br /&gt;if (location != null) {&lt;br /&gt;    System.out.println(location.getPath());&lt;br /&gt;} else {&lt;br /&gt;    System.out.println(resourceName + " not found on the classpath");&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 04 Sep 2007 09:59:44 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4489</guid>
      <author>Archanciel (Jean-Pierre Schnyder)</author>
    </item>
    <item>
      <title>Does a file have a path?</title>
      <link>http://snippets.dzone.com/posts/show/3772</link>
      <description>&lt;code&gt;&lt;br /&gt;; You could use split-path for this, but it's a bit non-&lt;br /&gt;; orthogonal in what it returns when there's no path.&lt;br /&gt;has-path?: func [file [file!]] [find file #"/"]&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 05 Apr 2007 18:18:34 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3772</guid>
      <author>gregg.irwin (Gregg Irwin)</author>
    </item>
    <item>
      <title>Get the path a script was started in</title>
      <link>http://snippets.dzone.com/posts/show/3770</link>
      <description>&lt;code&gt;&lt;br /&gt;boot-path:   does [system/options/path]&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 05 Apr 2007 18:13:29 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3770</guid>
      <author>gregg.irwin (Gregg Irwin)</author>
    </item>
    <item>
      <title>Add a jar file to Java load path at run time</title>
      <link>http://snippets.dzone.com/posts/show/3574</link>
      <description>Sometimes it is necessary to amend the class load path at run time. For example, dynamically adding jar files containing user-configurable JDBC data sources. The way this is done is truly monstrous -- the URL Path format was only revealed when a colleague looked into the Java library sources.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.net.URL;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.net.URLClassLoader;&lt;br /&gt;import java.net.MalformedURLException;&lt;br /&gt;&lt;br /&gt;public class JarFileLoader extends URLClassLoader&lt;br /&gt;{&lt;br /&gt;    public JarFileLoader (URL[] urls)&lt;br /&gt;    {&lt;br /&gt;        super (urls);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void addFile (String path) throws MalformedURLException&lt;br /&gt;    {&lt;br /&gt;        String urlPath = "jar:file://" + path + "!/";&lt;br /&gt;        addURL (new URL (urlPath));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static void main (String args [])&lt;br /&gt;    {&lt;br /&gt;        try&lt;br /&gt;        {&lt;br /&gt;            System.out.println ("First attempt...");&lt;br /&gt;            Class.forName ("org.gjt.mm.mysql.Driver");&lt;br /&gt;        }&lt;br /&gt;        catch (Exception ex)&lt;br /&gt;        {&lt;br /&gt;            System.out.println ("Failed.");&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        try&lt;br /&gt;        {&lt;br /&gt;            URL urls [] = {};&lt;br /&gt;&lt;br /&gt;            JarFileLoader cl = new JarFileLoader (urls);&lt;br /&gt;            cl.addFile ("/opt/mysql-connector-java-5.0.4/mysql-connector-java-5.0.4-bin.jar");&lt;br /&gt;            System.out.println ("Second attempt...");&lt;br /&gt;            cl.loadClass ("org.gjt.mm.mysql.Driver");&lt;br /&gt;            System.out.println ("Success!");&lt;br /&gt;        }&lt;br /&gt;        catch (Exception ex)&lt;br /&gt;        {&lt;br /&gt;            System.out.println ("Failed.");&lt;br /&gt;            ex.printStackTrace ();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 23 Feb 2007 15:24:18 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3574</guid>
      <author>mikewilsonuk (Mike Wilson)</author>
    </item>
    <item>
      <title>absolute path to itself</title>
      <link>http://snippets.dzone.com/posts/show/3394</link>
      <description>// returns absolute path to the file from which the code was executed&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'pathname'&lt;br /&gt;puts(Pathname.new($0).realpath)&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 31 Jan 2007 01:43:44 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3394</guid>
      <author>heliix (Helena Handrkova)</author>
    </item>
    <item>
      <title>fix darwin ports shebang on rails</title>
      <link>http://snippets.dzone.com/posts/show/3273</link>
      <description>&lt;code&gt;ruby -i -pe 'gsub!("#!/opt/local/bin/ruby", "#!/usr/bin/env ruby")' public/dispatch.* script/*&lt;/code&gt;</description>
      <pubDate>Fri, 12 Jan 2007 01:23:01 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3273</guid>
      <author>caffo ()</author>
    </item>
    <item>
      <title>Path parser //Pascal class</title>
      <link>http://snippets.dzone.com/posts/show/2195</link>
      <description>An unit to get the special folders' path under windows and it also parses paths shortcuts in the form "$(shortcut)/folder/file.ext".&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;unit PathParser;&lt;br /&gt;&lt;br /&gt;interface&lt;br /&gt;&lt;br /&gt;uses&lt;br /&gt;  Classes, SysUtils, TypInfo, SysUtils2, ShlObj, ShellApi, Registry, Windows;&lt;br /&gt;&lt;br /&gt;type&lt;br /&gt;  TSpecialFolder = ( sfDesktop, sfAppData, sfTemplates, sfPrograms,&lt;br /&gt;    sfPersonal, sfFavorites, sfStartup, sfRecent, sfSendTo, sfStartMenu,&lt;br /&gt;    sfFonts, sfHistory, sfCookies, sfInternetCache, sfCommonFavorites,&lt;br /&gt;    sfCommonDesktop, sfCommonStartup, sfCommonPrograms, sfCommonStartMenu,&lt;br /&gt;    sfProgramFiles, sfTemporary, sfWindows, sfSystem );&lt;br /&gt;&lt;br /&gt;  TSpecialFolderSet = set of TSpecialFolder;&lt;br /&gt;&lt;br /&gt;  TPathParser = class( TStringList )&lt;br /&gt;  public&lt;br /&gt;    constructor Create( const UseDefaultMap: Boolean = True );&lt;br /&gt;    class function GetSpecialFolder( const Name: TSpecialFolder ): string;&lt;br /&gt;    function Parse( Path: string ): string;&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;&lt;br /&gt;{ TPathParser }&lt;br /&gt;&lt;br /&gt;uses Dialogs;&lt;br /&gt;&lt;br /&gt;constructor TPathParser.Create(const UseDefaultMap: Boolean);&lt;br /&gt;var&lt;br /&gt;  I: TSpecialFolder;&lt;br /&gt;begin&lt;br /&gt;  CaseSensitive := False;&lt;br /&gt;  if UseDefaultMap then begin&lt;br /&gt;    for I := Low( TSpecialFolder ) to High( TSpecialFolder ) do&lt;br /&gt;      Add( RemoveSlash( LowerCase( Copy( GetEnumName( TypeInfo( TSpecialFolder ),&lt;br /&gt;        Ord( I ) ), 3, MAX_PATH ) ) + '=' + GetSpecialFolder( I ) ) );&lt;br /&gt;    Add( RemoveSlash( Format( 'windowsvolume=%s', [ GetSpecialFolder( sfWindows )[1] ] ) ) );&lt;br /&gt;  end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;class function TPathParser.GetSpecialFolder(&lt;br /&gt;  const Name: TSpecialFolder): string;&lt;br /&gt;const&lt;br /&gt;  FoldersMap: array[TSpecialFolder] of Cardinal = ( CSIDL_DESKTOP,&lt;br /&gt;    CSIDL_APPDATA, CSIDL_TEMPLATES, CSIDL_PROGRAMS, CSIDL_PERSONAL,&lt;br /&gt;    CSIDL_FAVORITES, CSIDL_STARTUP, CSIDL_RECENT, CSIDL_SENDTO, CSIDL_STARTMENU,&lt;br /&gt;    CSIDL_FONTS, CSIDL_HISTORY, CSIDL_COOKIES, CSIDL_INTERNET_CACHE,&lt;br /&gt;    CSIDL_COMMON_FAVORITES, CSIDL_COMMON_DESKTOPDIRECTORY, CSIDL_COMMON_STARTUP,&lt;br /&gt;    CSIDL_COMMON_PROGRAMS, CSIDL_COMMON_STARTMENU, 0, 0, 0, 0 );&lt;br /&gt;var&lt;br /&gt;  Res: Bool;&lt;br /&gt;  Path: array[0..MAX_PATH-1] of Char;&lt;br /&gt;  Reg: TRegistry;&lt;br /&gt;begin&lt;br /&gt;  Result := '';&lt;br /&gt;  case Name of&lt;br /&gt;    sfWindows: GetWindowsDirectory( Path, MAX_PATH );&lt;br /&gt;    sfTemporary: GetTempPath( MAX_PATH, Path );&lt;br /&gt;    sfSystem: GetSystemDirectory( Path, MAX_PATH );&lt;br /&gt;    sfProgramFiles:&lt;br /&gt;    begin&lt;br /&gt;      Reg := TRegistry.Create( KEY_READ );&lt;br /&gt;      try&lt;br /&gt;        Reg.RootKey := HKEY_LOCAL_MACHINE;&lt;br /&gt;        Reg.OpenKey( 'SOFTWARE\Microsoft\Windows\CurrentVersion', False );&lt;br /&gt;        Result := AddSlash( Reg.ReadString( 'ProgramFilesDir' ) );&lt;br /&gt;      finally&lt;br /&gt;        Reg.Free;&lt;br /&gt;      end;&lt;br /&gt;      Exit;&lt;br /&gt;    end;&lt;br /&gt;  else&lt;br /&gt;    Res := ShGetSpecialFolderPath( 0, Path, FoldersMap[ Name ], False );&lt;br /&gt;    if not Res then&lt;br /&gt;      raise Exception.Create( ClassName + '.GetSpecialFolder: Error on ShGetSpecialFolderPath' );&lt;br /&gt;  end;&lt;br /&gt;  Result := AddSlash( Path );&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TPathParser.Parse(Path: string): string;&lt;br /&gt;var&lt;br /&gt;  S: string;&lt;br /&gt;  I, I2, Pos: Integer;&lt;br /&gt;begin&lt;br /&gt;  I := 1;&lt;br /&gt;  while I &lt;= Length( Path )-3 do&lt;br /&gt;  begin&lt;br /&gt;    if ( Path[I] = '$' ) and ( Path[I+1] = '(' ) then&lt;br /&gt;    begin&lt;br /&gt;      I2 := I + 2;&lt;br /&gt;      while ( I2 &lt;= Length( Path ) ) and ( Path[I2] &lt;&gt; ')' ) do&lt;br /&gt;        Inc( I2 );&lt;br /&gt;      if I2 &gt; Length( Path ) then&lt;br /&gt;        Break;&lt;br /&gt;      S := Copy( Path, I + 2, I2 - ( I + 2 ) );&lt;br /&gt;      System.Delete( Path, I, I2 - I + 1 );&lt;br /&gt;      Pos := IndexOfName( S );&lt;br /&gt;      if Pos &gt; -1 then&lt;br /&gt;      begin&lt;br /&gt;        System.Insert( ValueFromIndex[Pos], Path, I );&lt;br /&gt;        Inc( I, Length( ValueFromIndex[Pos] ) );&lt;br /&gt;      end&lt;br /&gt;      else&lt;br /&gt;        raise Exception.CreateFmt( '%s.Parse: Vari&#225;vel "%s" inexistente', [ ClassName, S ] ); //I := I2 + 1;&lt;br /&gt;    end&lt;br /&gt;    else&lt;br /&gt;      Inc( I );&lt;br /&gt;  end;&lt;br /&gt;  Result := Path;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;end.&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 15 Jun 2006 18:40:23 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2195</guid>
      <author>jonasraoni (Jonas Raoni Soares Silva)</author>
    </item>
  </channel>
</rss>
