<?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>Rich Buggy &#187; sydphp</title>
	<atom:link href="http://buggy.id.au/tag/sydphp/feed/" rel="self" type="application/rss+xml" />
	<link>http://buggy.id.au</link>
	<description>Developer, Manager, Entrepreneur</description>
	<lastBuildDate>Sat, 22 May 2010 12:09:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Auto Increment in SugarCRM</title>
		<link>http://buggy.id.au/2010/05/22/auto-increment-in-sugarcrm/</link>
		<comments>http://buggy.id.au/2010/05/22/auto-increment-in-sugarcrm/#comments</comments>
		<pubDate>Sat, 22 May 2010 12:09:09 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[sugarcrm]]></category>
		<category><![CDATA[sydphp]]></category>

		<guid isPermaLink="false">http://buggy.id.au/?p=369</guid>
		<description><![CDATA[Earlier today I posted about creating a DateTime Picker in SugarCRM. A second problem I had was creating an auto increment field. This turned out to be slightly more difficult than the datetime picker. Again you need to edit your vardefs.php but this time you add the following to your field. 'auto_increment' =&#62; true, You [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today I posted about creating a <a href="http://buggy.id.au/2010/05/22/datetime-picker-in-sugarcrm/">DateTime Picker in SugarCRM</a>. A second problem I had was creating an auto increment field. This turned out to be slightly more difficult than the datetime picker. Again you need to edit your <code>vardefs.php</code> but this time you add the following to your field.</p>
<pre>'auto_increment' =&gt; true,</pre>
<p>You then need to manually alter the table structure so the <code>id</code> field is a unique index instead of a primary key then add your new column to the database as an <code>auto_increment</code> field and the tables primary key. I also found that if you try to install the module on another system it will fail because it can&#8217;t create the table properly. You can solve that by creating the table then installing the module.</p>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2010/05/22/auto-increment-in-sugarcrm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Date/Time Picker in SugarCRM</title>
		<link>http://buggy.id.au/2010/05/22/datetime-picker-in-sugarcrm/</link>
		<comments>http://buggy.id.au/2010/05/22/datetime-picker-in-sugarcrm/#comments</comments>
		<pubDate>Sat, 22 May 2010 11:04:34 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[sugarcrm]]></category>
		<category><![CDATA[sydphp]]></category>

		<guid isPermaLink="false">http://buggy.id.au/?p=366</guid>
		<description><![CDATA[Recently I needed to add a date/time field to a custom SugarCRM module. Sadly the module builder doesn&#8217;t include support this and the documentation is pretty bad. Eventually I managed to solve my problem and the solution is suprisingly simple. After adding a date field to the form I edited my vardefs.php file. You&#8217;ll find [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I needed to add a date/time field to a custom SugarCRM module. Sadly the module builder doesn&#8217;t include support this and the documentation is pretty bad. Eventually I managed to solve my problem and the solution is suprisingly simple.</p>
<p>After adding a date field to the form I edited my <code>vardefs.php</code> file. You&#8217;ll find the file in <code>custom/modulebuilder/packages/<em>package_name</em>/modules/<em>module_name</em>/</code>. Find the field and change it&#8217;s type to <code>datetime</code>.</p>
<p>Next you need to change your views. They&#8217;re located in <code>custom/modulebuilder/packages/<em>package_name</em>/modules/<em>module_name</em>/metadata</code>. In my case I wanted to the edit view to show a datepicker plus a time combo. I found the field and added</p>
<pre>'type' =&gt; 'Datetimecombo'</pre>
<p>After that I deployed the package and my module was now saving as a date/time and in the edit view I could set both the date (using a date picker) and time (using drop down lists).</p>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2010/05/22/datetime-picker-in-sugarcrm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unit tests</title>
		<link>http://buggy.id.au/2009/08/28/unit-tests/</link>
		<comments>http://buggy.id.au/2009/08/28/unit-tests/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 13:09:06 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[sydphp]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://www.buggy.id.au/?p=330</guid>
		<description><![CDATA[I just read a post asking if my unit test take too long. In it the author suggests that 5 minutes is long and asks if anyone has solved this problem. This reminded me of a discussion I had with some developers about 12 months ago about unit testing in which my argument was simply [...]]]></description>
			<content:encoded><![CDATA[<p>I just read a post asking if <a href="http://www.advogato.org/person/robertc/diary/111.html">my unit test take too long</a>. In it the author suggests that 5 minutes is long and asks if anyone has solved this problem. This reminded me of a discussion I had with some developers about 12 months ago about unit testing in which my argument was simply that unit tests need to be comprehensive and not necessarily quick.</p>
<p>There are many projects where the unit tests take several hours to run. This shouldn&#8217;t matter during development when you&#8217;re probably only interested in a few unit tests as most test tools provide a way to filter the tests that are run. You only need to run the entire test suite prior to committing or during continuous integration.</p>
<p>Having said all of that I can recommend using memory tables if your database supports them. The operations are generally a lot faster as the database doesn&#8217;t need to write to disk.</p>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2009/08/28/unit-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating to the Zend Framework</title>
		<link>http://buggy.id.au/2009/07/15/migrating-to-the-zend-framework/</link>
		<comments>http://buggy.id.au/2009/07/15/migrating-to-the-zend-framework/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 01:57:02 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[sydphp]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.buggy.id.au/?p=247</guid>
		<description><![CDATA[I don&#8217;t usually blog about work but I think this may interest some people. Late last year we trialled the Zend Framework in a small application. A few months ago we begun the process of converting our main PHP application to it. The migration is still in the early stages so some of this may change [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t usually blog about work but I think this may interest some people. Late last year we trialled the Zend Framework in a small application. A few months ago we begun the process of converting our main PHP application to it. The migration is still in the early stages so some of this may change rapidly.</p>
<p>We decided on the Zend Framework because it was component based. This was important because we have an existing code base with a regular release schedule. Stopping development while we converted the application wasn&#8217;t an option so we needed something that could be integrated slowly.</p>
<p>So how are we doing this?</p>
<p>The first task was to replace the applications module structure with auto loading. While this reduced the number of files that needed to be included to process a request the biggest advantage was making the code more visible to the developers. Prior to this classes were hidden 2, 3 or 4 levels deep in modules. The immediate impact was finding a number of classes that were no longer required.</p>
<p>Next I was expecting to replace some of the more discrete components like logging but it didn&#8217;t turn out this way. Because of the applications development schedule work instead focused on migrating from our custom MVC to the Zend Framework MVC.</p>
<p>After writing a bootstrap file  we created controllers and actions. The release cycle wasn&#8217;t long enough to completely convert the old MVC so the new actions simply call the old code. This approach allowed us convert the front controller (without session management and authentication) in about a day and means that new code can be written using the Zend Framework instead of our old framework.  Custom routing was required to emulate some of the old URLs.</p>
<p>The session management and authentication took about to day to sort out on its own. All of the controllers share a common base class. It&#8217;s init() function provides some common functionality:</p>
<ol>
<li>Initialize the view</li>
<li>Initialize the session (except the API or AJAX controllers)</li>
<li>Set all actions as requiring authentication</li>
</ol>
<p>Starting sessions is done in the controllers init() function instead of the bootstrap file so we can prevent sessions from being started for API calls. This is important because we get a large number of API calls and none of them requires a session. The other important task for init() is to mark some actions as not requiring authentication.</p>
<p>Authentication itself takes place in the controllers preDispatch() function. This provided backwards compatibility with the way the application previously worked.</p>
<p>More recently we&#8217;ve begun removing static methods from business logic so that we can use dependency injection to make testing easier. I&#8217;ll post about this next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2009/07/15/migrating-to-the-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic forms using Zend_Form</title>
		<link>http://buggy.id.au/2009/06/21/dynamic-forms-using-zend-form/</link>
		<comments>http://buggy.id.au/2009/06/21/dynamic-forms-using-zend-form/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 02:31:12 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[sydphp]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.buggy.id.au/?p=260</guid>
		<description><![CDATA[While most forms contain fixed fields there are occasions when you need a form to be dynamic and adjust itself based on user input. The adjustment could be as simple as altering the options in a drop down list or as complex as adding/removing fields. In this post I&#8217;m going to cover how to create [...]]]></description>
			<content:encoded><![CDATA[<p>While most forms contain fixed fields there are occasions when you need a form to be dynamic and adjust itself based on user input. The adjustment could be as simple as altering the options in a drop down list or as complex as adding/removing fields. In this post I&#8217;m going to cover how to create a dynamic form using Zend_Form and jQuery. I&#8217;ll use the example of a registration form that prompts the user for their country and state. The requirements are pretty simple:</p>
<ol>
<li>It should only prompt for a state if the country has states.</li>
<li>The state list should only show states for the selected country.</li>
<li>The form should degrade gracefully so it works without Javascript</li>
</ol>
<p>To start I&#8217;m going to create a World class. This class has two functions. The first returns a list of countries. The second returns a list of states for a specified country or a list of all countries that have states plus the states in those countries. You might like to retrieve this information from a database but for simplicity I&#8217;ll hard code the information into the class.</p>
<pre>class World
{
    static private $_countries = array(
                       "AU" =&gt; "Australia",
                       "NZ" =&gt; "New Zealand");

    static private $_states = array(
		        "AU" =&gt; array(
		            "ACT" =&gt; "Australian Capital Territory",
		            "NSW" =&gt; "New South Wales",
		            "NT" =&gt; "Northern Territory",
		            "QLD" =&gt; "Queensland",
		            "SA" =&gt; "South Australia",
		            "TAS" =&gt; "Tasmania",
		            "VIC" =&gt; "Victoria"));

    public function getCountries()
    {
        return self::$_countries;
    }

    public function getStates($country = null)
    {
        if ($country === null) {
            return self::$_states;
        }
        if (array_key_exists($country, self::$_states)) {
            return self::$_states[$country];
        }
        return null;
    }
}</pre>
<p>Next I&#8217;ll create a class for the form (RegForm) by extending Zend_Form. This gives our registration form all of the advantages you get from Zend_Form including input filtering and validation. The form elements will be added in the constructor so that creating a new form is all you need to do to use it.</p>
<p>As our form needs to adapt based on user input the constructor needs to accept the user input as one of its parameters. This allows us to adjust the form elements based on the user input. All code using these parameters needs to be extremely careful as the user input has not been filtered or validated yet.</p>
<pre>class RegForm extends Zend_Form
{
    public function __construct($world, $params)
    {
        parent::__construct();

        $countries = $world-&gt;getCountries();
        $countryKeys = array_keys($countries);
        $thisCountry = isset($params['country']) ? $params['country'] : $countryKeys[0];
        $states = $world-&gt;getStates($thisCountry);

        $country = new Zend_Form_Element_Select('country');
        $country-&gt;setLabel('Country')
                -&gt;setMultiOptions($countries)
                -&gt;setValue($thisCountry)
                -&gt;setRequired(true);
        $this-&gt;addElement($country);

        $state = new Zend_Form_Element_Select('state');
        $state-&gt;setLabel('State');
        if ($states !== null) {
            $state-&gt;setMultiOptions($states)
                  -&gt;setRequired(true);
        } else {
            $state-&gt;setRegisterInArrayValidator(false);</pre>
<pre>        }
        $this-&gt;addElement($state);

        $submit = new Zend_Form_Element_Submit('submit');
        $submit-&gt;setValue('Add User')
               -&gt;setRequired(false);
        $this-&gt;addElement($submit);
    }
}</pre>
<p>There are two important things that RegForm does:</p>
<ol>
<li>The state options are adjusted to match the selected country.</li>
<li>The state is not validated if the country does not contain states.</li>
</ol>
<p>This means that our form will work exactly the way you expect Zend_Form to work. Without Javascript if you select a country and submit the form then the state list will adjust and display an error that the previously selected state was invalid. After you select a valid country and state the form will validate. If the selected country does not have states then the form with validate regardless of the selected state (providing there are no other errors).</p>
<p>I then need to create the controller.</p>
<pre>class AccountController extends Zend_Controller_Action
{
    public function indexAction()
    {
        $params = $this-&gt;_getAllParams();
        $world = new World();
        $form = new RegForm($world, $params);</pre>
<pre>        if ($this-&gt;_request-&gt;isPost() &amp;&amp; $form-&gt;isValid($params)) {
            // The form was valid!!
        }
        $this-&gt;view = $form;
    }
}</pre>
<p>Finally we can add Javascript to alter the form in browser. If you&#8217;re using the forms render() function then the Javascript will look something like this.</p>
<pre>    var countries = &lt;?php echo json_encode($this-&gt;world-&gt;getCountries()); ?&gt;;

    var states = &lt;?php echo json_encode($this-&gt;world-&gt;getStates()); ?&gt;

    function updateStates() {
        var state = $("#state");
        var country = $("#country");
        var hasStates = false;
        jQuery.each(states, function (cc, slist) {
            if (cc == country.val()) {
                hasStates = true;
                state.html('');
                jQuery.each(slist, function (code, name) {
                    state.append('&lt;option value="' +  code + '"&gt;' + name + '&lt;/option&gt;');
                });
            }
        });
        if (hasStates) {
            $("#state-label").css("display", "block");
            $("#state-element").css("display", "block");
        } else {
            $("#state-label").css("display", "none");
            $("#state-element").css("display", "none");
        }
    }</pre>
<pre>    $().ready(function () {
        $("#country").change(function () {
            updateStates();
        });
        var state = $("#state");
        if (state.val() == null) {
            $("#state-label").css("display", "none");
            $("#state-element").css("display", "none");
        }
    });</pre>
<p>This code takes care of hiding the states if they are not required and adjusting the states based on the selected country without needing to submit the form. With minimal effort I&#8217;ve been able to create a dynamic form using Zend_Form to do most of the hard work. Users with Javascript enabled get an A grade experience while those without Javascript can still use the form.</p>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2009/06/21/dynamic-forms-using-zend-form/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Microsoft Open Source Information Evening</title>
		<link>http://buggy.id.au/2009/06/10/microsoft-open-source-information-evening/</link>
		<comments>http://buggy.id.au/2009/06/10/microsoft-open-source-information-evening/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 08:52:15 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[sydphp]]></category>

		<guid isPermaLink="false">http://www.buggy.id.au/?p=270</guid>
		<description><![CDATA[While chatting with Nick Hodge about tomorrows panel session at Remix09 he mentioned that he was hosting a series of open source information evenings with Jorke Odolphi later this month. I&#8217;m sure many in the open source community are skeptical about any Microsoft involvement in open source but they do seem to be making an [...]]]></description>
			<content:encoded><![CDATA[<p>While chatting with Nick Hodge about tomorrows panel session at Remix09 he mentioned that he was hosting a series of open source information evenings with Jorke Odolphi later this month. I&#8217;m sure many in the open source community are skeptical about any Microsoft involvement in open source but they do seem to be making an effort to get along and even help those who want to bring open source to Windows. Importantly the evening is about two way communication and not just a crafted message. If you&#8217;re interested in attending you can register at <a href="https://www.microsoft.com.au/events/register/home.aspx?levent=750528&amp;linvitation">https://www.microsoft.com.au/events/register/home.aspx?levent=750528&amp;linvitation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2009/06/10/microsoft-open-source-information-evening/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Second Yahoo!7 Open Session</title>
		<link>http://buggy.id.au/2009/05/19/yahoo7-open-session/</link>
		<comments>http://buggy.id.au/2009/05/19/yahoo7-open-session/#comments</comments>
		<pubDate>Tue, 19 May 2009 11:33:31 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[sydphp]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.buggy.id.au/?p=255</guid>
		<description><![CDATA[I received this yesterday from Rob at Yahoo!7. For the second of our Yahoo!7 Open Sessions we have Philip Tellis, Sunnyvale  based Yahoo! geek coming to chat about performance.  Philip will explain why performance is everything and give you some hints and tips on how to create &#8220;websites on speed&#8221;. Philip has spoken on various [...]]]></description>
			<content:encoded><![CDATA[<p>I received this yesterday from Rob at Yahoo!7.</p>
<blockquote><p>For the second of our Yahoo!7 Open Sessions we have Philip Tellis, Sunnyvale  based Yahoo! geek coming to chat about performance.  Philip will explain why performance is everything and give you some hints and tips on how to create &#8220;websites on speed&#8221;.</p>
<p>Philip has spoken on various topics at several international conferences including Linux Bangalore, <a href="http://foss.in/" target="_blank">FOSS.IN</a>, Freed.in, Ottawa Linux Symposium, Ubuntulive and Yahoo!&#8217;s Front end engineering conferences. He has covered topics ranging from opensource applications, education and new technological ideas, to project management and new web development technologies.</p>
<p>Philip is in Sydney for the webdu event <a href="http://www.webdu.com.au/" target="_blank">http://www.webdu.com.au/</a> so we&#8217;re pleased he can also drop by the Sydney Yahoo!7 office for the Open Session.</p>
<p>The stuff you need to know:<br />
*       Philip Tellis, Performance guru and Yahoo! Geek<br />
*       6pm, Monday 25th May<br />
*       Yahoo!7 offices, Level 2, Pier 8&amp;9, 23 Hickson Road, Millers Point<br />
*       Numbers are limited so registration is a must.</p>
<p>To register go to: <a href="http://upcoming.yahoo.com/event/2570945/" target="_blank">http://upcoming.yahoo.com/event/2570945/</a></p>
<p>For more information about the Yahoo Developer Network: <a href="http://developer.yahoo.com/" target="_blank">http://developer.yahoo.com/</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2009/05/19/yahoo7-open-session/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>50% off at php&#124;a</title>
		<link>http://buggy.id.au/2009/04/25/half-price-phpa/</link>
		<comments>http://buggy.id.au/2009/04/25/half-price-phpa/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 13:52:24 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[sydphp]]></category>

		<guid isPermaLink="false">http://www.buggy.id.au/?p=173</guid>
		<description><![CDATA[If you&#8217;re a PHP Architect reader (or thinking of becoming one) then you may be interested in this: @mtabini I feel like celebrating for no reason. 50% off everything at php&#124;a (except #tek09) with this coupon code: LVQ0-Q1XN-AV6C (24hrs only!)]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a PHP Architect reader (or thinking of becoming one) then you may be interested in this:</p>
<blockquote><p><strong><a title="Marco Tabini" href="http://twitter.com/mtabini">@mtabini</a></strong> I feel like celebrating for no reason. 50% off everything at php|a (except #tek09) with this coupon code: LVQ0-Q1XN-AV6C (24hrs only!)</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2009/04/25/half-price-phpa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yahoo! maps versus Google maps</title>
		<link>http://buggy.id.au/2009/04/20/yahoo-maps-versus-google-maps/</link>
		<comments>http://buggy.id.au/2009/04/20/yahoo-maps-versus-google-maps/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 13:43:42 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[sydphp]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://buggy.id.au/?p=168</guid>
		<description><![CDATA[Over the last two days I&#8217;ve found a couple of hours to play with both Yahoo maps and Google maps. It&#8217;s my first attempt at building an application that plots data on a map. After starting with Yahoo I quickly moved to Google. The main reason for switching was because the Yahoo (API) maps don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last two days I&#8217;ve found a couple of hours to play with both <a title="Yahoo! Maps" href="http://au.maps.search.yahoo.com/search/maps/">Yahoo maps</a> and <a title="Google Maps" href="http://maps.google.com.au/">Google maps</a>. It&#8217;s my first attempt at building an application that plots data on a map. After starting with Yahoo I quickly moved to Google. The main reason for switching was because the Yahoo (API) maps don&#8217;t include street maps for Australia. This seemed kind of strange as <a href="http://maps.yahoo.com.au">maps.yahoo.com.au</a> does include them. A quick check of some US cities and London showed that they did have street maps so I think I set it up correctly.</p>
<p>Currently it displays a marker on the map for every data point. The next challange is:</p>
<ol>
<li>Only include markers that will be rendered on the current map,</li>
<li>Combining markers as the user zooms out.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2009/04/20/yahoo-maps-versus-google-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>March SydPHP is tonight</title>
		<link>http://buggy.id.au/2009/03/05/march-sydphp-is-tonight/</link>
		<comments>http://buggy.id.au/2009/03/05/march-sydphp-is-tonight/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 02:30:58 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[sydphp]]></category>

		<guid isPermaLink="false">http://www.buggy.id.au/?p=148</guid>
		<description><![CDATA[The March Sydney PHP Group meeting is on tonight. Once again it will be hosted by Mobile Messenger. If you&#8217;re planning to attend then meeting in the foyer downstairs (17 York St) from 6.20]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://sydphp.org/2009/03/01/march-meeting-5-days/">March Sydney PHP Group meeting</a> is on tonight. Once again it will be hosted by Mobile Messenger. If you&#8217;re planning to attend then meeting in the foyer downstairs (17 York St) from 6.20</p>
]]></content:encoded>
			<wfw:commentRss>http://buggy.id.au/2009/03/05/march-sydphp-is-tonight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
