<?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>solidcode</title>
	<atom:link href="http://solidcode.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://solidcode.com</link>
	<description> it's what i do</description>
	<lastBuildDate>Fri, 03 Sep 2010 05:35:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>MGD-175 Open Source Web Solutions: WordPress Plugin Development Tips</title>
		<link>http://solidcode.com/2010/09/mgd-175-wordpress-plugin-development-tips/</link>
		<comments>http://solidcode.com/2010/09/mgd-175-wordpress-plugin-development-tips/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 06:13:44 +0000</pubDate>
		<dc:creator>Neil Simon</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://solidcode.com/?p=2378</guid>
		<description><![CDATA[The DandyID Services WordPress Plugin displays the social identity favicons of the blog author and displays them in the sidebar as favicons only, or a favicons list. The plugin calls the REST interface DandyID return_services() API &#8212; which returns the data as XML. The DandyID web API is listed on Programmable Web &#8212; a useful [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://wordpress.org/extend/plugins/dandyid-services/" target="_blank">DandyID Services WordPress Plugin</a> displays the social identity favicons of the blog author and displays them in the sidebar as <a href="http://billso.com/" target="_blank">favicons only</a>, or a <a href="http://www.shericandler.com/" target="_blank">favicons list</a>. The plugin calls the <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank">REST</a> interface <a href="http://www.dandyid.org/api/documentation/return_services" target="_blank">DandyID return_services() API</a> &#8212; which returns the data as XML. The DandyID web API is listed on <a href="http://www.programmableweb.com/api/dandyid" target="_blank">Programmable Web</a> &#8212; a useful web API directory.</p>
<p>The plugin, written in PHP, has several well-documented examples of helpful WordPress plugin features.</p>
<p>See how the <a href="https://plugins.svn.wordpress.org/dandyid-services/tags/1.5.9/readme.txt" target="_blank">readme.txt</a> maps to the <a href="http://wordpress.org/extend/plugins/dandyid-services/" target="_blank">hosted plugin pages</a> and the <a href="http://wordpress.org/extend/plugins/dandyid-services/screenshots/" target="_blank">5 hosted screenshots</a>.</p>
<p>The main code module <a href="https://plugins.svn.wordpress.org/dandyid-services/tags/1.5.9/dandyid-services.php" target="_blank">dandyid-services.php</a> has examples of:</p>
<ul>
<li>Creating a sidebar widget.</li>
<p></p>
<li>Processing returned XML that is PHP4 and PHP5 compatible.</li>
<p></p>
<li>Storing and retrieving wp-database options in an array.</li>
<p></p>
<li>Embedding the plugin name and version-number into a &lt;div&gt; tag that appears on all blog pages that render the plugin. (useful for debugging &#8212; many versions of the plugin can be out there in the wild)</li>
<p></p>
<li>Localization for international language support.</li>
<p></p>
<li>Creating an options page for admin plugin configuration, including HTML that renders radio buttons and checkboxes.</li>
<p></p>
<li>Caching the DandyID API results &#8212; on a busy blog, the plugin only calls the DandyID API once every 2 hours.</li>
<p></p>
<li>A plugin activation hook that creates initialized, defaulted wp-database options.</li>
<p></p>
<li>A plugin deactivation hook that cleanly removes the plugin wp-database options.</li>
</ul>
<p>Here is the <a href="https://plugins.svn.wordpress.org/dandyid-services/tags/1.5.9/" target="_blank">WordPress maintained repository</a> that contains all of the DandyID Services Plugin files for the current release. It is packaged as a zipfile when it is downloaded from WordPress.</p>
<hr />
<p>The <a href="http://wordpress.org/extend/plugins/peoplepond/" target="_blank">PeoplePond WordPress Plugin</a> retrieves &#8220;about me&#8221; information from <a href="http://peoplepond.com/" target="_blank">PeoplePond</a>, and creates (or refreshes once daily) the About page on a blog.</p>
<p>The main code module <a href="https://plugins.svn.wordpress.org/peoplepond/tags/1.1.9/peoplepond.php" target="_blank">peoplepond.php</a> has the following examples:</p>
<ul>
<li>Hooks <a href="http://codex.wordpress.org/Function_Reference/the_content" target="_blank"> the_content()</a> with a filter hook, causing the plugin code to be called each time any page renders. If it&#8217;s the About page, the PeoplePond API is called (only once per day max) to update the About page content.</li>
<p></p>
<li>Uses <a href="http://codex.wordpress.org/Function_Reference/wp_insert_post" target="_blank">wp_insert_post()</a> and <a href="http://codex.wordpress.org/Function_Reference/wp_update_post" target="_blank">wp_update_post()</a> to create and update the content of blog posts.</li>
</ul>
<p>Here is the <a href="https://plugins.svn.wordpress.org/peoplepond/tags/1.1.9/" target="_blank">WordPress repository</a> that contains all of the PeoplePond Plugin files for the current release.</p>
]]></content:encoded>
			<wfw:commentRss>http://solidcode.com/2010/09/mgd-175-wordpress-plugin-development-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boulder Startup Week &#8211; PHP Hacking Demo</title>
		<link>http://solidcode.com/2010/05/boulder-startup-week-php-hacking-demo/</link>
		<comments>http://solidcode.com/2010/05/boulder-startup-week-php-hacking-demo/#comments</comments>
		<pubDate>Wed, 05 May 2010 17:47:29 +0000</pubDate>
		<dc:creator>Neil Simon</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://solidcode.com/?p=2333</guid>
		<description><![CDATA[This code demonstrates: - Using PHP to create a command-line utility. - Passing in arguments from the command-line. - Calling the Weather Underground REST API (returns XML). - Extracting the weather text from the returned XML. Thanks to Ryan Cook for organizing this Boulder Startup Week session. #!/usr/local/php5/bin/php &#60;?php /*****************************************************************************/ /* This demo was created [...]]]></description>
			<content:encoded><![CDATA[<p>This code demonstrates:<br />
- Using PHP to create a command-line utility.<br />
- Passing in arguments from the command-line.<br />
- Calling the Weather Underground REST API (returns XML).<br />
- Extracting the weather text from the returned XML.</p>
<p>Thanks to <a href="http://twitter.com/cookrn">Ryan Cook</a> for organizing this <a href="http://boulderstartupweek.com">Boulder Startup Week</a> session.</p>
<pre>
#!/usr/local/php5/bin/php
&lt;?php

/*****************************************************************************/
/* This demo was created by Neil Simon for Ryan Cooks PHP Hacking Session    */
/* Boulder Startup Week, 05/05/2010                                          */
/*****************************************************************************/
/* Module ........ get_forecast.php                                          */
/* Description ... (1) Uses PHP to create a command-line utility             */
/*                 (2) Passes arguments in from the command-line             */
/*                 (3) Calls the Weather Underground REST API (returns XML)  */
/*                 (4) Extracts the weather text from the returned XML       */
/* Usage ......... get_forecast.php {zip5}                                   */
/* Example ....... get_forecast.php 80304                                    */
/*****************************************************************************/

// First executable line, calls main()
main ($argc, $argv);

function main ($argc, $argv)
    {
    // Initialize to failure, set to 0 upon success
    $rc = 1;

    // Ex: $argv[0] get_forecast.php
    // Ex: $argv[1] 80304
    if ($argc != 2)
        {
        printf ("Usage ..... get_forecast.php {zip5}\n");
        printf ("Example ... get_forecast.php 80304\n");
        }
    else
        {
        // Extract option value
        $zip5 = $argv [1];

        // Get weather lines of text
        $weatherForecastLinesArray = array ();

        // Get lines of weather text
        if (getWeatherForecast ($zip5, $weatherForecastLinesArray) == 0)
            {
            // Display lines
            foreach ($weatherForecastLinesArray as $weatherForecastLine)
                {
                printf ("%s\n", $weatherForecastLine);
                }

            // Successful
            $rc = 0;
            }
        }

    // Returns status code to the operating system
    return ($rc);
    }

function getWeatherForecast ($zip5, &#038;$weatherForecastLinesArray)
    {
    // Initialize to failure, set to 0 upon success
    $rc = 1;

    // Create a constant that points to the REST API
    define (WUNDERGROUND_API_URL,
    "http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=$zip5");

    // Get the weather text -- returned as XML
    if (($wundergroundStr = file_get_contents (WUNDERGROUND_API_URL)) == FALSE)
        {
        printf ("ERROR: file_get_contents (WUNDERGROUND_API_URL) failed.\n");
        }
    else
        {
        // Create the XML array from the returned data
        $wundergroundXml = new SimpleXMLElement ($wundergroundStr);

        // Extract the text fields
        $forecastday = $wundergroundXml->txt_forecast->forecastday [0];
        $weatherForecastLinesArray [] = $forecastday->title;
        $weatherForecastLinesArray [] = $forecastday->fcttext . "\n";

        // Successful
        $rc = 0;
        }

    return ($rc);
    }

?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://solidcode.com/2010/05/boulder-startup-week-php-hacking-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Matters Most</title>
		<link>http://solidcode.com/2009/08/what-matters-most/</link>
		<comments>http://solidcode.com/2009/08/what-matters-most/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:56:13 +0000</pubDate>
		<dc:creator>Neil Simon</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://solidcode.com/?p=1165</guid>
		<description><![CDATA[What matters most is how you program. Technologies come and go, but good working practices last forever. The easiest mistakes to fix are the ones you don&#8217;t make.]]></description>
			<content:encoded><![CDATA[<p>What matters most is how you program.</p>
<p>Technologies come and go, but good working practices last forever.</p>
<p>The easiest mistakes to fix are the ones you don&#8217;t make.</p>
]]></content:encoded>
			<wfw:commentRss>http://solidcode.com/2009/08/what-matters-most/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Top People Skills for Developers</title>
		<link>http://solidcode.com/2009/04/top-people-skills-for-developers/</link>
		<comments>http://solidcode.com/2009/04/top-people-skills-for-developers/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 02:10:35 +0000</pubDate>
		<dc:creator>Neil Simon</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://solidcode.com/?p=476</guid>
		<description><![CDATA[Be Friendly People like to work with people they like. A genuine smile and a positive attitude goes a long way. Respect everyone &#8212; you can learn from everyone. Be Collaborative Work hard to build concensus among stakeholders. Be willing to compromise. If you don&#8217;t agree with an idea, suggest creative alternatives that can incorporate [...]]]></description>
			<content:encoded><![CDATA[<h3>Be Friendly</h3>
<ul>
<li>People like to work with people they like.</li>
<li>A genuine smile and a positive attitude goes a long way.</li>
<li>Respect everyone &#8212; you can learn from everyone.</li>
</ul>
<p></p>
<h3>Be Collaborative</h3>
<ul>
<li>Work hard to build concensus among stakeholders.</li>
<li>Be willing to compromise.</li>
<li>If you don&#8217;t agree with an idea, suggest creative alternatives that can incorporate the idea in different ways.</li>
</ul>
<p></p>
<h3>Be a Great Listener</h3>
<ul>
<li>What does the user really need?</li>
<li>It&#8217;s not what you want &#8212; it&#8217;s what they want.</li>
<li>Listen objectively. Ask open ended questions. Allow everyone the opportunity to speak.</li>
</ul>
<p></p>
<h3>Deliver Some Early Pieces Quickly</h3>
<ul>
<li>Lets your user know you&#8217;ve been listening.</li>
<li>Gives users an opportunity for feedback.</li>
<li>Keeps the conversation going in a positive direction.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://solidcode.com/2009/04/top-people-skills-for-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
