<?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/"
	>

<channel>
	<title>mlynn.org</title>
	<atom:link href="http://www.mlynn.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mlynn.org</link>
	<description>Web based closet for my wordpress musings</description>
	<lastBuildDate>Sat, 19 May 2012 14:33:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Excel Project Planning Spreadsheet Version 2</title>
		<link>http://www.mlynn.org/2012/05/excel-project-planning-spreadsheet-version-2/</link>
		<comments>http://www.mlynn.org/2012/05/excel-project-planning-spreadsheet-version-2/#comments</comments>
		<pubDate>Sat, 19 May 2012 14:00:43 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1735</guid>
		<description><![CDATA[The Excel Project Planning spreadsheet has been a handy tool for many of the projects I&#8217;ve worked on and I&#8217;ve continued to tweak and add features it. Therefore, I thought I&#8217;d add this post to talk about some of the enhancements and provide a link to the updated version. Enhancements from Version 1 to Version [...]]]></description>
			<content:encoded><![CDATA[<p>The <a title="Excel Project Planning Spreadsheet" href="http://www.mlynn.org/2012/05/excel-project-planning-spreadsheet" target="_blank">Excel Project Planning spreadsheet</a> has been a handy tool for many of the projects I&#8217;ve worked on and I&#8217;ve continued to tweak and add features it. Therefore, I thought I&#8217;d add this post to talk about some of the enhancements and provide a link to the updated version.</p>
<p><a href="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-19_09.16.141.png"><img class="alignnone size-large wp-image-1737" title="Screenshot-2012-05-19_09.16.14" src="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-19_09.16.141-1024x489.png" alt="" width="580" height="276" /></a></p>
<h2>Enhancements from Version 1 to Version 2</h2>
<h3>Task color coding based on progress against current day</h3>
<p>As you can see from the attached image, the Gantt cells are now color coded.</p>
<p><span style="color: #008000;"><strong>A &#8211; Green</strong></span> cells indicate work that was scheduled and has been completed (100%) as indicated in column F.</p>
<p><span style="color: #ffcc00;"><strong>B &#8211; Yellow</strong> </span>cells indicate that tasks were scheduled and more than 50% of the task has been completed but the start date is now in the past.</p>
<p><span style="color: #ff0000;"><strong>C &#8211; Red</strong></span>. Cells are filled with <strong><span style="color: #ff0000;">Red</span></strong> when tasks are scheduled to have had work completed but have not yet started and the start date has come and gone.</p>
<p><span style="color: #062d88;"><strong>D &#8211; Dark Blue</strong></span>.  As in version 1 of the Excel Project Planning Spreadsheet, cells filled with <strong><span style="color: #003366;">dark blue</span></strong> indicate work is scheduled to be started and completed on these dates.</p>
<h3>Today&#8217;s Date &#8211; What/If Analysis</h3>
<p>I&#8217;ve added a field and some conditional formatting noted in the above image by <strong>label E</strong> &#8211; which enable you to analyze the project as if today&#8217;s date were progressing beyond the actual date/time when you&#8217;re viewing the project planning spreadsheet.</p>
<p>Clicking the spinner in cell C29 &#8211; either up or down will increment the value of Today&#8217;s Date.  This will cause the conditional formatting in the Gantt area to show you what the project color coding will look like based on current progress on the date provided in cell B29.</p>
<p>This will also highlight another enhancement that I made to make progress against the current date a bit more obvious.  You&#8217;ll notice the dates that appear at the top of the Gantt area that are filled with the project dates (eg: 5/19).  These will now appear in a <strong><span style="color: #808080;">Grey</span></strong> filled font as they drift into the past.</p>
<p><img class="alignleft  wp-image-1741" style="margin: 5px;" title="Conditional Formatting, Manage Rules" src="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-19_09.56.55-1024x482.png" alt="" width="406" height="191" /></p>
<p>All of these new enhancements have been accomplished using conditional formatting combined with functions.  To view these, select the cells where the formatting appears and from the home tab, click conditional formatting, then manage rules.</p>
<p>Here&#8217;s a link to the spreadsheet download.</p>
<a class="downloadlink" href="http://www.mlynn.org/wp-content/plugins/download-monitor/download.php?id=14" title="Version2 downloaded 1 times" >Excel Project Plan v2 (1)</a>
<p>I hope you enjoy the new features.  Please <a title="Twitter" href="https://twitter.com/#!/mlynn" target="_blank">Tweet</a>, Like or G+ if so!  Also, if you have a feature request, feel free to comment or use the <a title="contact" href="http://mlynn.org/contact">contact </a>page to reach me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2012/05/excel-project-planning-spreadsheet-version-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Excel Project Planning Spreadsheet</title>
		<link>http://www.mlynn.org/2012/05/excel-project-planning-spreadsheet/</link>
		<comments>http://www.mlynn.org/2012/05/excel-project-planning-spreadsheet/#comments</comments>
		<pubDate>Sat, 12 May 2012 15:24:46 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[gantt]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1706</guid>
		<description><![CDATA[Project planning and progress tracking is an essential part of any successful project, no matter the size. Part of ensuring success is communicating progress with project stakeholders. For small projects, simple meetings will suffice, but anything involving more than a couple of tasks and people typically requires some form of formal project documentation. While Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>Project planning and progress tracking is an essential part of any successful project, no matter the size.  Part of ensuring success is communicating progress with project stakeholders.  For small projects, simple meetings will suffice, but anything involving more than a couple of tasks and people typically requires some form of formal project documentation.  While Microsoft Project is a great tool, not everyone uses it and while they have a &#8220;viewer&#8221; version, sometimes it just doesn&#8217;t seem worth the hassle.  You may want to use a <a href=http://www.mlynn.org/2011/06/gantter-project-a-great-free-way-to-manage-projects/>Gantter</a> a free Microsoft Project alternative, sometimes I think it&#8217;s just easier to use Excel.  While it&#8217;s not free &#8211; it&#8217;s certainly popular, easy to use and offers the ability to export and/or save as PDF files for easy sharing.</p>
<div id="attachment_1710" class="wp-caption alignleft" style="width: 310px"><a href="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_09.42.31.png"><img class="size-medium wp-image-1710" title="Excel Project Plan Example" src="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_09.42.31-300x191.png" alt="Excel Project Plan Example" width="300" height="191" /></a><p class="wp-caption-text">Excel Project Plan Example</p></div>
<p>This is why I almost always create a project plan using Microsoft Excel when embarking on a project. In this tutorial, I&#8217;ll walk through the steps I took to create a sample Excel-based project planning spreadsheet with a nifty gantt project schedule that shows who&#8217;s doing what, when and how complete the tasks are.</p>
<h2>Features</h2>
<p>I&#8217;ve included some important features in this example.  Most notably is the gantt schedule view of the project which automatically provides a view of who is performing what tasks on what date.  The example includes logic to skip around weekends and non-working days as well as a separate column to track progress against tasks or goals.</p>
<p>To start, I&#8217;ve taken a screenshot of my example and I&#8217;ve broken it down into the basic sections.</p>
<p>The image below shows the various sections needed to create a basic Excel Project Planning Spreadsheet. Each section is labeled A through F.</p>
<div id="attachment_1712" class="wp-caption alignnone" style="width: 310px"><a href="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_09.38.30.png"><img class="size-medium wp-image-1712" title="Excel Project Planning Example" src="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_09.38.30-300x112.png" alt="Excel Project Planning Example" width="300" height="112" /></a><p class="wp-caption-text">Excel Project Planning Example</p></div>
<h2>Section A &#8211; The What</h2>
<p>Column A contains a simple list of the tasks you&#8217;ll be looking to achieve.  Start simple but try to get this as complete as possible before moving on to the other sections of the plan.</p>
<h2>Section B &#8211; The Who</h2>
<p>Column B in our project planning spreadsheet contains &#8216;the who&#8217;.  Who will be performing or responsible for the tasks in column A?  This can be a comma separated list but keep all references to a single cell.  One thing to consider is whether or not you want to format the cells to wrap &#8211; or simply expand the columns so all of the values can be seen.  If you choose to wrap the cell&#8217;s contents, note that the schedule section (F) will contain irregular height&#8217;s.</p>
<h2>Section C &#8211; The When</h2>
<p>Columns C and D contain the start and the end dates for when the <em>who</em> will complete the <em>what</em>.</p>
<h2>Section D &#8211; The Length</h2>
<p>Column E is our first computed value and will display the working days between the start in column C and the end of the task in column D.  We use the Excel function networkingdays() to compute this value.</p>
<pre class="brush: plain; title: ;">
=NETWORKDAYS($C4,$D4)
</pre>
<h2>Section E &#8211; Progress (In Percent)</h2>
<p>Showing progress is a critical part of communication during any project.  Using Excel&#8217;s Conditional Formatting, we can get pretty flashy.</p>
<p>The image below shows the sequence of steps to follow in order to conditionally format column F as data bars representing the total percentage complete for the task in column A.  You&#8217;ll want to make sure you select the cells in column F and format them as %, then follow the steps in the image below.</p>
<p><strong>Step 1.</strong> Select the Cells in Column F that will be formatted.</p>
<p><strong>Step 2.</strong> Make sure you have the &#8220;Home&#8221; tab active and click the Conditional Formatting Dropdown</p>
<p><strong>Step 3.</strong> Select the Data Bars Option and</p>
<p><strong>Step 4.</strong> Select one of the Gradient Fill options.</p>
<p><a href="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_10.21.37.png"><img class="alignnone size-full wp-image-1715" title="Conditional Format as Percentage Complete" src="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_10.21.37.png" alt="" width="812" height="800" /></a></p>
<h2>Section F &#8211; The Gantt Chart (Visual Schedule)</h2>
<p>This is one of the coolest parts of this tool.  Having the ability to visually represent who will be doing what at what specific date is extremely powerful.  To accomplish this, we could simply fill out the project dates in Row 1 starting with column H and manually select the cells that represent the active work schedule for each row using a manual color fill but that would be silly, since we have the data and Excel gives us the ability to conditionally format the cells to represent when active work will be taking place throughout the schedule.</p>
<p>We will start by providing the headings for this section in Row 1 starting in Column H.  Type the first date you expect work to begin into Row 1, Column H.</p>
<p><a href="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_10.37.49.png"><img class=" wp-image-1718 alignright" title="Excel Format as Month/Day" src="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_10.37.49-300x251.png" alt="Excel Format as Month/Day" width="144" height="121" /></a></p>
<p>With H1 selected hover the mouse over the bottom right corner of that cell and the cursor should change to a cross shape.  Clicking the bottom right corner when the cursor shows the thinner</p>
<p>cross shape and dragging horizontally across row one will fill in the sequential dates for the project schedule.  Make sure you go back and select these dates and format them as Month/Day.</p>
<p>Now, we can move on to the tricky part where we tell Excel to color fill only those cells associated with days where work will be performed.  To do this, let&#8217;s start by highlighting the entire schedule area where the color fills will appear.  Next, we will select Conditional Formatting and select New Rule.</p>
<p>Select &#8220;Use a formula to determine which cells to format&#8221;.  This will give us the opportunity to provide a custom formula which will let us leverage the start date in column C, the end date in column D as well as the schedule date in Row 1 Columns H onward to programatically determine which cell should be formatted to contain some color to indicate that work will be performed on this scheduled date.  The following is the formula I&#8217;m using to make this determination.</p>
<pre class="brush: plain; title: ;">
=AND(H$1&gt;=$C3,H$1&lt;=$D3, WEEKDAY(H$1)&lt;7,WEEKDAY(H$1)&gt;1,NOT(NOT(ISNA(VLOOKUP(H$1,'Non-Working Days'!$A$2:$A$7,0,FALSE)))),$F3=1)
</pre>
<p>Let&#8217;s start from left to right and examine how this formula does it&#8217;s magic.  The first thing to know about conditional formatting is that we must craft a formula that evaluates to true.  If the formula evaluates to true, then Excel will apply the formatting rules we specify&#8230; otherwise it will leave the cell unformatted.</p>
<p>We start with an </i>AND</i> function.  This provides us with the ability to specify multiple conditions, each must evaluate to true.  Next, we provide two  test conditions: </p>
<pre class="brush: plain; title: ;">
H$1&gt;=$C3, H$1&lt;=$D3
</pre>
<p>This test condition asks the question is the value of H1 greater than or equal to the value of cell C3.  The dollar sign simply locks us to the first row when we continue evaluating each subsequent cell.  Since we know that Row 1, Column H starts with the first scheduled project date and Row 3, Column C contains the start date for the task in row 3, we&#8217;re basically asking the question does the heading date in Row 1 column H fall between the start date and the end date for the task in row 3.  If so &#8211; we&#8217;re on our way to understanding that something is going to happen on this date and we&#8217;ll need to color in the cell.</p>
<p>Next, we want to make sure we&#8217;re not making folks work on Saturday or Sunday and as such, we&#8217;re not coloring in any of the schedule blocks for non-working days.  We accomplish this by comparing the date in Row 1, Column H with the days of the week that are between Sunday (1) and Saturday (7).  the Weekday function returns a number from 1 to 7, Sunday being 1 and Saturday being 7.</p>
<pre class="brush: plain; title: ;">
WEEKDAY(H$1)&lt;7,WEEKDAY(H$1)&gt;1
</pre>
<p>&nbsp;<br />
If all goes well and we&#8217;ve passed the previous conditional tests, we know that a) work is scheduled for this date and b) we&#8217;re not on a weekend.  Now, we will just want to make sure that we&#8217;re not working on a date when the client (or we) are not scheduled to work.  This may be because of a scheduling conflict or because of a holiday, for example.</p>
<p>I chose to maintain a list of these non-working dates in a separate location &#8211; Sheet 2 for example.  The formula simply performs a VLOOKUP function to locate the value of the working date in Column H, Row 1 within the list of non-working days that we created in sheet 2.  I&#8217;m also checking that we don&#8217;t return a #N/A value which happens when the VLOOKUP function doesn&#8217;t find a specific value.</p>
<p>Lastly, I&#8217;m checking in the percentage complete column (F) for the current task to see if the value is equal to 1&#8230; which means the task is complete.  I&#8217;m doing this because I want to color fill the cell with green to indicate the task is complete.  We&#8217;ll duplicate the entire conditional function and use another color to indicate that work still needs to be completed on this specific project date.</p>
<p>If you&#8217;ve done this correctly, it should look something like the following image.<br />
<a href="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_11.06.22.png"><img src="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_11.06.22-300x142.png" alt="Excel Project Planning Conditional Formatting Gantt Chart" title="Excel Project Planning Conditional Formatting Gantt Chart" width="300" height="142" class="alignnone size-medium wp-image-1720" /></a><br />
&nbsp;</p>
<p>The image below shows the dates represented in the gantt section with color fills &#8211; either green for completed work, or blue for work scheduled but still not complete.</p>
<p><a href="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_11.50.40.png"><img src="http://www.mlynn.org/wp-content/uploads/2012/05/Screenshot-2012-05-12_11.50.40-300x175.png" alt="" title="Gantt Showing Scheduled and Completed Work" width="300" height="175" class="alignnone size-medium wp-image-1730" /></a></p>
<p>From this point, you&#8217;re mostly complete.  I like to add some finishing touches, like data input validation in the schedule area to prevent users from attempting to put data there; Labels for the weekends and non-working days, etc.  We could also automate some more items here &#8211; such as adding VBA macros to automate addition of tasks, but this should suffice for starters.</p>
<p>I&#8217;ve prepared a sample which you are welcome to download and customize to your liking.  Click the following link to download the example used in this post.  If you like tutorial, please consider retweeting or liking using the social buttons just under the article title.</p>
<p><a class="downloadlink" href="http://www.mlynn.org/wp-content/plugins/download-monitor/download.php?id=13" title="Version1.0 downloaded 69 times" >Excel Project Planning Gantt Spreadsheet (69)</a><br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2012/05/excel-project-planning-spreadsheet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mobile Detection and Redirection &#8211; Updated</title>
		<link>http://www.mlynn.org/2012/04/mobile-detection-and-redirection-updated/</link>
		<comments>http://www.mlynn.org/2012/04/mobile-detection-and-redirection-updated/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 01:19:12 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1696</guid>
		<description><![CDATA[A user of my Mobile Detection and Redirection script examples dropped by to comment and let me know that the scripts are working &#8211; but the mobile sites are not being indexed by google.  This is due to the fact that I neglected to include the Googlebot-Mobile User Agent in the function that detects mobile [...]]]></description>
			<content:encoded><![CDATA[<p>A user of my <a title="Mobile Detection and Redirection Script Examples" href="http://www.mlynn.org/2010/06/mobile-device-detection-and-redirection-with-php/" target="_blank">Mobile Detection and Redirection script examples</a> dropped by to comment and let me know that the scripts are working &#8211; but the mobile sites are not being indexed by google.  This is due to the fact that I neglected to include the Googlebot-Mobile User Agent in the function that detects mobile users and redirects them appropriately.  A quick change to the code and we&#8217;re all fixed up&#8230; thanks to John!</p>
<p>&nbsp;</p>
<p>Here&#8217;s the updated downloadable code with examples.</p>
<a class="downloadlink" href="http://www.mlynn.org/wp-content/plugins/download-monitor/download.php?id=1" title="Version0.2 downloaded 4154 times" >Mobile Browser Detection and Redirection Scripts (4154)</a>
]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2012/04/mobile-detection-and-redirection-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet Module List Shows Funny Graphic Characters with PuTTY</title>
		<link>http://www.mlynn.org/2012/04/puppet-module-list-shows-funny-characters-with-putt/</link>
		<comments>http://www.mlynn.org/2012/04/puppet-module-list-shows-funny-characters-with-putt/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 11:04:02 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[annoyances]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[puppet enterprise]]></category>
		<category><![CDATA[putty]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1679</guid>
		<description><![CDATA[Fix the annoying problem where PuTTY shows funny graphic characters where it should show nice line graphics by changing your PuTTY Terminal Translation setting to UTF-8.]]></description>
			<content:encoded><![CDATA[<p>Puppet is a configuration management tool that enables you to configure and maintain software and configurations across a wide variety of machines &#8211; rather than doing things manually.  Puppet enables you to package software and configurations into something called modules.  You can create these modules by hand or download some freely available modules from the repository available at http://forge.puppetlabs.com.</p>
<p>This post is just a quick note on how to fix a minor, annoying problem encountered when using puppet from the command line over a PuTTY session. The problem can be reproduced using the following command which lists the modules you&#8217;ve got installed in your puppet module repository.</p>
<p><code><br />
[root@puppetmaster ~]# puppet module list<br />
/etc/puppetlabs/puppet/modules<br />
âââ camptocamp-tomcat (v0.0.1)<br />
âââ puppet-wordpress (v0.0.2)<br />
âââ puppetlabs-motd (v1.0.1)<br />
/opt/puppet/share/puppet/modules<br />
âââ puppetlabs-pe_accounts (v1.0.2)<br />
âââ puppetlabs-pe_compliance (v0.0.6)<br />
âââ puppetlabs-pe_mcollective (v0.0.43)<br />
âââ puppetlabs-stdlib (v2.3.1)</p>
<p></code></p>
<p>Notice the occurance of <code>âââ </code>. These characters are supposed to be translated by PuTTY into sweet looking line graphics. However, the default translation setting for your PuTTY Terminal session is set to Western European.</p>
<p><a href="http://www.mlynn.org/wp-content/uploads/2012/04/Screenshot-2012-04-05_06.49.291.png"><img class="alignnone size-full wp-image-1688" title="Screenshot-2012-04-05_06.49.29" src="http://www.mlynn.org/wp-content/uploads/2012/04/Screenshot-2012-04-05_06.49.291.png" alt="" width="609" height="541" /></a></p>
<p>If we change this setting to <strong>UTF-8</strong>, we&#8217;ll see the characters get translated properly into the line graphics intended by puppet.</p>
<p><img class="size-full wp-image-1686 alignnone" title="Screenshot-2012-04-05_06.52.38" src="http://www.mlynn.org/wp-content/uploads/2012/04/Screenshot-2012-04-05_06.52.381.png" alt="" width="392" height="58" /></p>
<p><a href="http://www.mlynn.org/wp-content/uploads/2012/04/Screenshot-2012-04-05_06.54.421.png"><img class="alignnone size-full wp-image-1687" title="Screenshot-2012-04-05_06.54.42" src="http://www.mlynn.org/wp-content/uploads/2012/04/Screenshot-2012-04-05_06.54.421.png" alt="" width="426" height="224" /></a></p>
<p>Hope this helps!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2012/04/puppet-module-list-shows-funny-characters-with-putt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create a Simple Document Viewer with ExtJS</title>
		<link>http://www.mlynn.org/2012/01/create-a-simple-document-viewer-with-extjs/</link>
		<comments>http://www.mlynn.org/2012/01/create-a-simple-document-viewer-with-extjs/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 22:41:12 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Examples]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1549</guid>
		<description><![CDATA[A west region with a treeview control and a center panel with details that change as you select items from the treeview.  This type of interface is ubiquitous and yet creating something like this to simply view documents may seem very difficult for folks that haven't worked with javascript.   This article will explain how to create your own custom document viewer.]]></description>
			<content:encoded><![CDATA[<p>A document or report viewer is simply a tool that can be used to provide quick, indexed access to various PDF report files, image files or even word documents.  You can easily index your documents as you author them but some versions of PDF tools don&#8217;t permit this.  Another option would be to create a Microsoft Powerpoint slideshow &#8211; but this doesn&#8217;t give you the left-hand navigation tree capabilities of an indexed Adobe PDF (for example.)</p>
<p>I wanted to create a tool that could be used to provide visual access to many individual documents while presenting an easy-to-navigation tree structure based on the groupings or categories of these documents.</p>
<p>This article will provide the tools and examples necessary to enable you to create a simple, light-weight, portable (zip and go), cross-browser, web-based (serverless) document viewer.  The intent is to have an archive that you can mail or carry on a thumb drive and distribute freely to customers, prospects or colleagues to enable quick and easy viewing and access to a collection of PDF or other files.</p>
<p>As I always do&#8230; let&#8217;s cut to the chase&#8230; looking for the downloads or source code?<br />
<a class="downloadlink" href="http://www.mlynn.org/wp-content/plugins/download-monitor/download.php?id=12" title="Version1.0 downloaded 259 times" >Simple Document Viewer Example Application (259)</a></p>
<p>Before we start, I&#8217;ll also point you to <a href="http://mlynn.org/docviewer-1.0/">the working demo / example</a>.</p>
<p><a href="http://www.mlynn.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-29-at-3.30.24-PM.png"><img class="alignleft size-medium wp-image-1563" style="border-image: initial; margin-left: 5px; margin-right: 5px;" title="Screen Shot 2012-01-29 at 3.30.24 PM" src="http://www.mlynn.org/wp-content/uploads/2012/01/Screen-Shot-2012-01-29-at-3.30.24-PM-300x186.png" alt="" width="300" height="186" /></a>A west region with a treeview control and a center panel with details that change as you select items from the treeview. This type of interface is ubiquitous and yet creating something like this to simply view documents may seem very difficult for folks that haven&#8217;t worked with javascript. The document viewer application was created to provide a mechanism for viewing collections of sample reports.  A design goal for this application was for it to be completely standalone – not requiring any additional software or web server to view the documents.</p>
<p>At the heart of this system is a perl script &#8211; parse_csv.pl. This is a perl script that was written to create a javascript object notation assignment (JSON) used to populate a treeview control for the purpose of displaying example pdf reports with previews. In order to use this package to create your own custom file or report viewer, you must create a comma separated value (CSV) file with the following values.</p>
<p><code>REPORTFILE,PREVIEW,GROUP,TITLE,DESCRIPTION</code></p>
<p>Column 1 &#8211; Report file specifies the name of the PDF report file that will be downloadable from within the viewer.</p>
<p>Column 2 &#8211; Preview file specifies the name of the preview or thumbnail image that will be presented in the details pane of the viewer application.</p>
<p>Column 3 &#8211; Group specifies the treeview group where this report will be grouped.  You should sort your csv file so that groups are stored together.</p>
<p>Column 4 &#8211; Title specifies the title of the report and will be displayed in the details pane of when the user clicks on the report in the treeview.</p>
<p>Column 5 &#8211; Description specifies the details of what the report will show.</p>
<p><strong>Example</strong></p>
<pre class="brush: plain; title: ;">
REPORTFILE,PREVIEW,GROUP,TITLE,DESCRIPTION
reportfile_number_one.pdf,preview_of_report_file_one.png,Group One, Example of a Report File One,This report shows some serious stuff.
reportfile_number_two.pdf,preview_of_report_file_two.png,Group One, Example of a Report File Two,This report shows some more serious stuff.
reportfile_number_three.pdf,preview_of_report_file_three.png,Group Two, Example of a Report File Three,This report shows some more serious stuff.
reportfile_number_four.pdf,preview_of_report_file_four.png,Group Two, Example of a Report File Four,This report shows some more serious stuff.
reportfile_number_five.pdf,preview_of_report_file_five.png,Group Two, Example of a Report File Five,This report shows some more serious stuff.
reportfile_number_six.pdf,preview_of_report_file_six.png,Group Three, Example of a Report File Six,This report shows some more serious stuff.
reportfile_number_seven.pdf,preview_of_report_file_seven.png,Group Three, Example of a Report File Seven,This report shows some more serious stuff.
</pre>
<p>You may include the column headers in your file &#8211; however, ensure that you use the <code>--skipheader</code> flag when executing the parse_csv.pl script.</p>
<p><strong>Requirements</strong><br />
Perl.  The parse_csv.pl script is written in perl so you will need an environment were you can execute perl scripts.  A subrequirement is that I&#8217;m using some libraries that you may not have installed in your perl environment.</p>
<p>Checkout <a title="http://search.cpan.org" href="http://search.cpan.org">http://search.cpan.org</a> if you get some errors about missing libraries.</p>
<p>Here&#8217;s an overview of the process to create your own custom document viewer.</p>
<ol>
<li>Download the <a class="downloadlink" href="http://www.mlynn.org/wp-content/plugins/download-monitor/download.php?id=12" title="Version1.0 downloaded 259 times" >Simple Document Viewer Example Application (259)</a> package.  This will contain everything you need to</li>
</ol>
<p>create and customize your own self contained document viewer.  Self contained</p>
<p>means that you don&#8217;t even need to host these documents and the viewer on a web</p>
<p>server&#8230; you can simply open the index.html file from a browser.</p>
<ol>
<li>Review the directory tree for the example package.</li>
</ol>
<pre class="brush: plain; title: ;">
.
|-- css     Style Sheets
|-- extjs    Javascript Library for the treeview and panel components
|-- images    Various supporting image files (like icons, etc.)
|-- js    Javascript source files
|-- reports    Report directory - this is where you'll place the reports, pdfs and preview thumbnail files that will be displayed in the viewer.
|-- scripts    Scripts used to create and customize your viewer
</pre>
<ol>
<li>Since you&#8217;ll be creating your own document or report viewer, you&#8217;ll probably want to delete the contents of the <strong>reports</strong> directory.</li>
</ol>
<ol>
<li>Create the report files that you’ll be displaying in the document viewer.  Report files can be PDF, PowerPoint (ppt) or Word Document (doc) files.  Typically, the report file examples are multi-page pdf files.  Once you have the report files, copy them into the reports directory in the base of the example package.</li>
</ol>
<ol>
<li>Create a screenshot, or preview image that will be displayed in the preview section of the details panel when viewing the report.  zScreen is a great, free utility that lets you capture portions of your screen and save them to files.  I prefer ‘png’ format because of smaller size.  You’ll need to create one preview image for each report you plan to display in the document viewer.  Copy or place these preview image files into the reports directory along side the actual pdf or ppt report files.</li>
</ol>
<ol>
<li>Now you&#8217;ll need to create a comma-separated file that contains the names of your report files, the groups they&#8217;ll be displayed in, the document titles and a description of each.  As previously mentioned the format for this file is REPORTFILE, PREVIEW, GROUP, TITLE, and DESCRIPTION.  You can find an example in the scripts directory in a file called example.csv.</li>
<li>Create the documents.js file.  This is the file which contains the Javascript Notation (JSON) which is used to populate the treeview control as seen in this image.  The package contains a script named parse_csv.pl and can be found in the scripts directory of the example package.  This script should be run from the main directory of the archive and must be provided several command line options in order to execute properly.  The following is an example execution of the script:</li>
</ol>
<p><code>scripts/parse_csv.pl --csvfile scripts/example.csv --outputfile js/documents.js</code></p>
<p>This was executed from the base directory of the example archive file.  The –csvfile argument tells parse_csv.pl where to file the csv file that you created in step 5.  The –outputfile argument tells parse_csv.pl where to write the json.</p>
<p>It is important to note that the script assumes that you have not modified the directory layout and that you are storing your reports and previews or thumbnails in the “reports” directory.  You may run the script with “—help” to obtain additional information and options.</p>
<p><code>$ scripts/parse_csv.pl --help</code></p>
<p><code><br />
Usage: scripts/parse_csv.pl --csvfile &lt;filename&gt; [--outputfile &lt;filename.js&gt;]<br />
[--outputfile &lt;outputfilename&gt;] controls the output javascript filename - defaults to stdout<br />
[--reportdir &lt;reportdirectory&gt;] specifies the directory where the pdf files may be stored<br />
[--thumbdir &lt;thumbnailedirectory&gt;] specifies the directory where the thumbnail or preview image files may be stored<br />
[--htmltitle &lt;htmltitle&gt;] specifies the title to be used in the report viewer html file<br />
[[--overwrite] | [--nooverwrite]] - controls whether the output file will be overwritten<br />
</code></p>
<p>The following is an example of the resultant documents.js file that is created.</p>
<pre class="brush: plain; title: ;">

var json=[{&quot;iconCls&quot;:&quot;group&quot;,&quot;text&quot;:&quot;Group One&quot;,&quot;children&quot;:[{&quot;content&quot;:&quot;reports/reportfile_number_one.pdf&quot;,&quot;description&quot;:&quot;This report shows some serious stuff.&quot;,&quot;size&quot;:&quot;16.23 KB&quot;,&quot;published&quot;:&quot;01-29-2012&quot;,&quot;iconCls&quot;:&quot;pdf&quot;,&quot;preview&quot;:&quot;reports/preview_of_report_file_one.png&quot;,&quot;text&quot;:&quot;Example of a Report File One&quot;,&quot;id&quot;:&quot;1&quot;,&quot;leaf&quot;:&quot;true&quot;},{&quot;content&quot;:&quot;reports/reportfile_number_two.pdf&quot;,&quot;description&quot;:&quot;This report shows some more serious stuff.&quot;,&quot;size&quot;:&quot;16.23 KB&quot;,&quot;published&quot;:&quot;01-29-2012&quot;,&quot;iconCls&quot;:&quot;pdf&quot;,&quot;preview&quot;:&quot;reports/preview_of_report_file_two.png&quot;,&quot;text&quot;:&quot;Example of a Report File Two&quot;,&quot;id&quot;:&quot;2&quot;,&quot;leaf&quot;:&quot;true&quot;}],&quot;id&quot;:0.0960750988024337},{&quot;iconCls&quot;:&quot;group&quot;,&quot;text&quot;:&quot;Group Three&quot;,&quot;children&quot;:[{&quot;content&quot;:&quot;reports/reportfile_number_six.pdf&quot;,&quot;description&quot;:&quot;This report shows some more serious stuff.&quot;,&quot;size&quot;:&quot;16.23 KB&quot;,&quot;published&quot;:&quot;01-29-2012&quot;,&quot;iconCls&quot;:&quot;pdf&quot;,&quot;preview&quot;:&quot;reports/preview_of_report_file_six.png&quot;,&quot;text&quot;:&quot;Example of a Report File Six&quot;,&quot;id&quot;:&quot;6&quot;,&quot;leaf&quot;:&quot;true&quot;},{&quot;content&quot;:&quot;reports/reportfile_number_seven.pdf&quot;,&quot;description&quot;:&quot;This report shows some more serious stuff.&quot;,&quot;size&quot;:&quot;16.23 KB&quot;,&quot;published&quot;:&quot;01-29-2012&quot;,&quot;iconCls&quot;:&quot;pdf&quot;,&quot;preview&quot;:&quot;reports/preview_of_report_file_seven.png&quot;,&quot;text&quot;:&quot;Example of a Report File Seven&quot;,&quot;id&quot;:&quot;7&quot;,&quot;leaf&quot;:&quot;true&quot;}],&quot;id&quot;:0.119647523478733},{&quot;iconCls&quot;:&quot;group&quot;,&quot;text&quot;:&quot;Group Two&quot;,&quot;children&quot;:[{&quot;content&quot;:&quot;reports/reportfile_number_three.pdf&quot;,&quot;description&quot;:&quot;This report shows some more serious stuff.&quot;,&quot;size&quot;:&quot;16.23 KB&quot;,&quot;published&quot;:&quot;01-29-2012&quot;,&quot;iconCls&quot;:&quot;pdf&quot;,&quot;preview&quot;:&quot;reports/preview_of_report_file_three.png&quot;,&quot;text&quot;:&quot;Example of a Report File Three&quot;,&quot;id&quot;:&quot;3&quot;,&quot;leaf&quot;:&quot;true&quot;},{&quot;content&quot;:&quot;reports/reportfile_number_four.pdf&quot;,&quot;description&quot;:&quot;This report shows some more serious stuff.&quot;,&quot;size&quot;:&quot;16.23 KB&quot;,&quot;published&quot;:&quot;01-29-2012&quot;,&quot;iconCls&quot;:&quot;pdf&quot;,&quot;preview&quot;:&quot;reports/preview_of_report_file_four.png&quot;,&quot;text&quot;:&quot;Example of a Report File Four&quot;,&quot;id&quot;:&quot;4&quot;,&quot;leaf&quot;:&quot;true&quot;},{&quot;content&quot;:&quot;reports/reportfile_number_five.pdf&quot;,&quot;description&quot;:&quot;This report shows some more serious stuff.&quot;,&quot;size&quot;:&quot;16.23 KB&quot;,&quot;published&quot;:&quot;01-29-2012&quot;,&quot;iconCls&quot;:&quot;pdf&quot;,&quot;preview&quot;:&quot;reports/preview_of_report_file_five.png&quot;,&quot;text&quot;:&quot;Example of a Report File Five&quot;,&quot;id&quot;:&quot;5&quot;,&quot;leaf&quot;:&quot;true&quot;}],&quot;id&quot;:0.423250772097287}]

var htmltitle='Example Report Viewer;'
</pre>
<p>Notice that the script determines the proper filetype and assigns the appropriate icon class – pdf for pdfs, ppt for ppts, etc.  Also note that the script determines the file size and date created.  These attributes are displayed in the details panel when viewing the documents.</p>
<p>Again&#8230; here&#8217;s the goods:<br />
<a class="downloadlink" href="http://www.mlynn.org/wp-content/plugins/download-monitor/download.php?id=12" title="Version1.0 downloaded 259 times" >Simple Document Viewer Example Application (259)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2012/01/create-a-simple-document-viewer-with-extjs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing a bug in the Graceful Sidebar Plugin</title>
		<link>http://www.mlynn.org/2011/09/testing-a-bug-in-the-graceful-sidebar-plugin/</link>
		<comments>http://www.mlynn.org/2011/09/testing-a-bug-in-the-graceful-sidebar-plugin/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 16:31:54 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1428</guid>
		<description><![CDATA[Debbie dropped by to let me know of a bug in the Graceful Sidebar Plugin. This post is testing out some fixes for the bug.]]></description>
			<content:encoded><![CDATA[<p>Debbie dropped by to let me know of a bug in the <a href="http://www.wordpress.org/extend/plugins/graceful-sidebar-plugin">Graceful Sidebar Plugin</a>. This post is testing out some fixes for the bug.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2011/09/testing-a-bug-in-the-graceful-sidebar-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test Post &#8211; Testing WPGeocode</title>
		<link>http://www.mlynn.org/2011/08/test-post-testing-wpgeocode/</link>
		<comments>http://www.mlynn.org/2011/08/test-post-testing-wpgeocode/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 01:06:52 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1406</guid>
		<description><![CDATA[&#8211; IP Address of the reader &#8211; City of the reader [wpgc_state_name] &#8211; State name of the reader &#8211; Two letter State code of the reader &#8211; Country name of the reader &#8211; Two letter Country code of the reader &#8211; Latitude of the reader &#8211; Latitude of the reader]]></description>
			<content:encoded><![CDATA[<p>38.107.179.229 &#8211; IP Address of the reader<br />
Glendora &#8211; City of the reader<br />
[wpgc_state_name] &#8211; State name of the reader<br />
CA &#8211; Two letter State code of the reader<br />
United States &#8211; Country name of the reader<br />
US &#8211; Two letter Country code of the reader<br />
34.1321 &#8211; Latitude of the reader<br />
-117.8511 &#8211; Latitude of the reader</p>

]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2011/08/test-post-testing-wpgeocode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graceful Sidebar Version 1.0.13 Released!</title>
		<link>http://www.mlynn.org/2011/07/graceful-sidebar-version-1-0-13-released/</link>
		<comments>http://www.mlynn.org/2011/07/graceful-sidebar-version-1-0-13-released/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 02:00:59 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Internationalization]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1390</guid>
		<description><![CDATA[Support for the popular qTranslate plugin has been implemented inside the Graceful Sidebar Plugin. qTranslate enables bloggers to internationalize their content directly in the wordpress administrative console. qTranslate has a support forum that appears to be active with some good suggestions for using the plugin on your site. Cheers to Ozden for the suggestion to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mlynn.org/wp-content/uploads/2011/07/image_carrousel.jpeg"><img src="http://www.mlynn.org/wp-content/uploads/2011/07/image_carrousel.jpeg" alt="" title="image_carrousel" width="215" height="215" class="alignleft size-full wp-image-1394" /></a><!--:en-->Support for the popular <a href=http://www.wordpress.org/extend/plugins/qtranslate>qTranslate</a> plugin has been implemented inside the <a href=http://www.wordpress.org/extend/plugins/graceful-sidebar-plugin>Graceful Sidebar Plugin</a>.  <a href=http://wordpress.org/extend/plugins/qtranslate/>qTranslate</a> enables bloggers to internationalize their content directly in the wordpress administrative console.  qTranslate has a <a href=http://www.qianqin.de/qtranslate/forum/viewforum.php?f=3>support forum</a> that appears to be active with some good suggestions for using the plugin on your site.  Cheers to Ozden for the suggestion to support this helpful plugin!<!--:--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2011/07/graceful-sidebar-version-1-0-13-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Geocode WordPress Geolocation Plugin Version 1.0.0 Released!</title>
		<link>http://www.mlynn.org/2011/07/wp-geocode-wordpress-geolocation-plugin-version-1-0-0-released/</link>
		<comments>http://www.mlynn.org/2011/07/wp-geocode-wordpress-geolocation-plugin-version-1-0-0-released/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 19:57:13 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Geolocation]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1376</guid>
		<description><![CDATA[WP Geocode Wordpress Geolocation Plugin Version 1.0.0 Released!]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mlynn.org/wp-content/uploads/2011/06/wpgeocode.png"><img src="http://www.mlynn.org/wp-content/uploads/2011/06/wpgeocode.png" alt="" title="wpgeocode" width="300" height="228" class="alignleft size-full wp-image-1369" /></a>I&#8217;ve always been fascinated by the possibility of understanding and leverage as much data as possible about a web site visitor or blog reader.  The fact of the matter is that there is a lot of data available if you&#8217;re willing to dig a bit and use the tools available.  You&#8217;re probably aware that information is transmitted to the web sites you visit as part of the conversation between your browser and the web server.  However, what&#8217;s not readily known is the amount of data that can be derived from other sources such as your IP Address (which, incidentally is also a component of the browser-web server exchange.)</p>
<p><a href=http://maxmind.com>Maxmind</a> is a geolocation server provider that publishes a database of information related to specific blocks of IP Addresses.  This information is refreshed regularly and can be leveraged to provide information about the city, state, zip code and other information about your web site visitors.  Maxmind offerstwo classes of product offerings &#8211; free and paid.  The free and paid versions of their databases differ only in the granularity of detail.</p>
<p>The WPGeocode Geolocation Plugin that I just released relies on the free database and can be leveraged by wordpress bloggers to customize content based on geographic information for their visitors.  The plugin can be used to incorporate geo-data into posts or pages and can also be used to display content conditionally based on these geographic details.</p>
<p>The plugin implements wordpress shortcodes that provide these data elements.  For a complete listing of the shortcodes and additional details on the plugin, please visit <a href=http://www.wpgeocode.com>WPGeocode.com</a>.  You can download the latest version of the plugin from the <a href=http://www.wordpress.org/extend/plugins/wpgeocode>WordPress Plugin Site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2011/07/wp-geocode-wordpress-geolocation-plugin-version-1-0-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graceful Sidebar Version 1.0.12 Released!</title>
		<link>http://www.mlynn.org/2011/06/graceful-sidebar-version-1-0-12-release/</link>
		<comments>http://www.mlynn.org/2011/06/graceful-sidebar-version-1-0-12-release/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 21:38:12 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.mlynn.org/?p=1363</guid>
		<description><![CDATA[Some kind folks commented on the wordpress extend plugin page for the Graceful Sidebar Plugin requesting support for shortcodes. Ask and ye shall receive! Version 1.0.12 has been release with support for shortcodes. Shortcodes are tags that can be incorporated in wordpress pages or posts which get translated into different content. For example, I can [...]]]></description>
			<content:encoded><![CDATA[<p>Some kind folks commented on the <a href=http://wordpress.org/extend/plugins/graceful-sidebar-plugin>wordpress extend plugin page</a> for the Graceful Sidebar Plugin requesting support for shortcodes.  Ask and ye shall receive!  Version 1.0.12 has been release with support for shortcodes.  Shortcodes are tags that can be incorporated in wordpress pages or posts which get translated into different content.  For example, I can include a shortcode which tells me what city you live in by leveraging my WP Geocode Plugin.  This plugin populates a number of shortcodes that get translated into geography based information about the reader.  </p>
<p>Your City: Glendora<br />
Your State: CA<br />
Your IP: 38.107.179.229</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mlynn.org/2011/06/graceful-sidebar-version-1-0-12-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

