<?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>Matthew Turland</title> <atom:link href="http://matthewturland.com/feed/" rel="self" type="application/rss+xml" /><link>http://matthewturland.com</link> <description></description> <lastBuildDate>Tue, 15 May 2012 02:29:07 +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>Sideloading Google Play apps onto a Kindle Fire</title><link>http://matthewturland.com/2012/03/15/sideloading-google-play-apps-onto-a-kindle-fire/</link> <comments>http://matthewturland.com/2012/03/15/sideloading-google-play-apps-onto-a-kindle-fire/#comments</comments> <pubDate>Fri, 16 Mar 2012 01:05:58 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[Android]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=904</guid> <description><![CDATA[I recently turned 30. My wonderful wife and mother got together and purchased a Kindle Fire tablet for me to go along with the Samsung Captivate Android phone I currently own. While some apps are better on the tablet than the phone, there are some I like to have on both like TinyShark. Sadly, not [...]]]></description> <content:encoded><![CDATA[<p>I recently turned 30. My wonderful wife and mother got together and purchased a <a
title="Kindle Fire - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Kindle_Fire">Kindle Fire</a> tablet for me to go along with the <a
title="Samsung Galaxy S - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Samsung_Galaxy_S#In_the_United_States">Samsung Captivate</a> Android phone I currently own. While some apps are better on the tablet than the phone, there are some I like to have on both like <a
title="TinyShark - Android Apps on Google Play" href="https://play.google.com/store/apps/details?id=com.exigo.tiny">TinyShark</a>. Sadly, not all apps available in <a
title="Home - Google Play" href="https://play.google.com/store">Google Play</a> are available in the Amazon App Store and there&#8217;s no easy way to get access to the former from a Kindle without rooting it. So, I did some digging and managed to find an alternate way to <a
title="Sideloading - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Sideloading">sideload</a> them, no rooting required.</p><p><strong>Obligatory disclaimer</strong>: I&#8217;m not responsible for any damage that might occur by following these instructions. Use them at your own risk. Also, be aware that being able to install an app from Google Play onto a Kindle doesn&#8217;t mean that the app will work on the Kindle. (An example of this is the app for Google Play itself, which immediately dies when you try to run it.) This is due to any number of differences in hardware, Android implementations, etc.</p><p>Here&#8217;s what you&#8217;ll need:</p><ul><li>A Kindle Fire</li><li>An Android device* with access to Google Play, like my Captivate</li><li>A computer with the <a
title="Android SDK | Android Developers" href="http://developer.android.com/sdk/index.html">Android SDK</a> installed</li></ul><p>* It&#8217;s possible that an emulator run using the SDK can be used in place of an actual device.</p><p>On the Android device, install whatever app you want to sideload onto your Kindle, then go to Settings &gt; Applications &gt; Development and check the USB debugging option. Now hook the Android device to the computer with a micro USB cable.</p><p>On the computer, open up a terminal and go to the <code>platform-tools</code> subdirectory within the SDK directory. Run this command (which I got from <a
title="Hey, Skype: the mid-90′s called… – Intrepidus Group - Insight" href="http://intrepidusgroup.com/insight/2011/04/hey-skype-the-mid-90s-called/">this post</a>), which uses the <a
title="Android Debug Bridge | Android Developers" href="http://developer.android.com/guide/developing/tools/adb.html">adb</a> utility:</p><p><code>adb shell pm list packages -f</code></p><p>Each line of the command&#8217;s output will be in this format:</p><p><code>package:<strong>[path]</strong>=<strong>[namespace]</strong></code></p><p>Open up a web browser and go to the page on Google Play for the app you want to sideload. The URL of that page will look like <code>https://play.google.com/store/apps/details?id=<strong>[namespace]</strong></code> where <code><strong>[namespace]</strong></code> will match the <code><strong>[namespace]</strong></code> portion of a line from the command&#8217;s output. Note the corresponding <code><strong>[path]</strong></code> portion of this line.</p><p>Now go back to the terminal and run this command, substituting the path you found for <code><strong>[path]</strong></code>:</p><p><code>adb pull <strong>[path]</strong></code></p><p>This will copy the APK file from the Android device to the computer.</p><p>Unplug the micro USB cable from the Android device and plug it into the Kindle. You may need to disconnect and reconnect the computer&#8217;s end of the cable to allow it to mount the Kindle as a storage device, which should happen automatically.</p><p>On the Kindle, hit the gear icon on the top right, select More &gt; Device, and make sure Allow Installation of Applications From Unknown Sources is turned on. Now hit the Home button at the bottom of the screen, then Apps near the top, then Store on the top right. Search for and install the <a
title="Amazon.com: ES File Explorer: Appstore for Android" href="http://www.amazon.com/EStrongs-Inc-ES-File-Explorer/dp/B004HN2FY0">ES File Explorer</a> app.</p><p>From the computer, use a filesystem browser to access the mounted Kindle storage and copy the APK file from the computer to a directory on the Kindle. I used the <code>Documents</code> directory.</p><p>Back on the Kindle, open the newly-installed ES File Explorer. It should give you access to the directory on the Kindle where you copied the APK file and allow you to open and install it.</p><p>Open your sideloaded app on your Kindle and enjoy it!</p><p><strong>Update 3/28/12</strong>: This post was linked in the <a
title="Reviews and News on Tech Products, Software and Downloads | PCWorld" href="http://www.pcworld.com/">PCWorld</a> article <a
title="Get More Out of Your Kindle Fire Tablet: Five Tips | PCWorld" href="http://www.pcworld.com/article/252821/get_more_out_of_your_kindle_fire_tablet_five_tips.html">&#8220;Get More Out of Your Kindle Fire Tablet: Five Tips.&#8221;</a> It&#8217;s got some good information and I recommend giving it a read.</p> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2012/03/15/sideloading-google-play-apps-onto-a-kindle-fire/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>WordPress SyntaxHighlighter font size fix</title><link>http://matthewturland.com/2012/02/13/wordpress-syntaxhighlighter-font-size-fix/</link> <comments>http://matthewturland.com/2012/02/13/wordpress-syntaxhighlighter-font-size-fix/#comments</comments> <pubDate>Tue, 14 Feb 2012 02:41:20 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[WordPress]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=890</guid> <description><![CDATA[I use WordPress for this web site. To pretty up source code examples in my posts, I use the excellent SyntaxHighlighter Evolved WordPress plugin. The WordPress theme I use, Fluid Blue, does something with its CSS such that it and SyntaxHighlighter appear to conflict. The result is that source code examples processed by the plugin [...]]]></description> <content:encoded><![CDATA[<p>I use <a
title="WordPress › Blog Tool, Publishing Platform, and CMS" href="http://wordpress.org/">WordPress</a> for this web site. To pretty up source code examples in my posts, I use the excellent <a
title="SyntaxHighlighter Evolved « Viper007Bond.com" href="http://www.viper007bond.com/wordpress-plugins/syntaxhighlighter/">SyntaxHighlighter Evolved</a> WordPress plugin. The WordPress theme I use, <a
title="Fluid Blue « Srini's WordPress Lab" href="http://srinig.com/wordpress/themes/fluid-blue/">Fluid Blue</a>, does something with its CSS such that it and SyntaxHighlighter appear to conflict. The result is that source code examples processed by the plugin are displayed with a font size that&#8217;s too small to read comfortably.</p><p>In doing some digging, I learned about the <a
title="Child Themes « WordPress Codex" href="http://codex.wordpress.org/Child_Themes">child themes</a> feature of WordPress, which allows you to effectively extend an existing theme. I created a directory under <code>wp-content/themes</code> called <code>fluid-blue-custom</code>. In this directory, I created a <code>styles.css</code> file with these contents:</p><pre class="brush: css; title: ; notranslate">/*
Theme Name: Fluid Blue (Custom)
Template: fluid-blue
*/

@import url(&quot;../fluid-blue/style.css&quot;);

body .syntaxhighlighter code, body .syntaxhighlighter .gutter { font-size: 12px !important; }</pre><p>The <code>Template</code> line of the comment block indicates that this theme is a child theme of the existing Fluid Blue theme that resides in the <code>wp-content/themes/fluid-blue</code> directory. The <code>@import</code> line pulls in the <code>styles.css</code> file from that directory, after which I can apply any CSS overrides I like. The last line is a CSS rule specific enough to override applicable rules from the parent theme in order to increase the font size to something more easily readable.</p><p>It appears <a
title="SyntaxHighlighter Evolved « Viper007Bond.com" href="http://www.viper007bond.com/wordpress-plugins/syntaxhighlighter/comment-page-10/#comment-235530">I&#8217;m not the only one</a> who&#8217;s encountered this issue, so I hope this post helps someone else.</p> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2012/02/13/wordpress-syntaxhighlighter-font-size-fix/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Setting up EC2 for Drupal with Puppet</title><link>http://matthewturland.com/2012/02/13/setting-up-ec2-for-drupal-with-puppet/</link> <comments>http://matthewturland.com/2012/02/13/setting-up-ec2-for-drupal-with-puppet/#comments</comments> <pubDate>Tue, 14 Feb 2012 00:29:06 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[Drupal]]></category> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=881</guid> <description><![CDATA[I&#8217;m currently working on a project that involves running Drupal on Amazon EC2. To save time in setting up future new VM instances, I decided to take the opportunity to learn puppet. For the time being, I&#8217;m using a single VM to run the full LAMP stack and running puppet without a server by copying [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m currently working on a project that involves running <a
title="Drupal - Open Source CMS | drupal.org" href="http://drupal.org/">Drupal</a> on <a
title="Amazon Elastic Compute Cloud (Amazon EC2)" href="http://aws.amazon.com/ec2/">Amazon EC2</a>. To save time in setting up future new VM instances, I decided to take the opportunity to learn <a
title="Documentation | Puppet Labs - Introduction to Puppet" href="http://docs.puppetlabs.com/guides/introduction.html">puppet</a>. For the time being, I&#8217;m using a single VM to run the full LAMP stack and running puppet <a
title="Documentation | Puppet Labs - Puppet Labs Documentation" href="http://docs.puppetlabs.com/#part-one-serverless-puppet">without a server</a> by copying my puppet manifest to the VM and using <a
title="Documentation | Puppet Labs - Tools" href="http://docs.puppetlabs.com/guides/tools.html#puppet-apply-or-puppet">puppet&#8217;s apply command</a> to apply it locally. However, this manifest can easily be adapted for a multi-VM environment. After some tinkering, I came up with the code below.</p><pre class="brush: ruby; title: ; notranslate">class web {
    package { 'httpd':
        ensure =&gt; 'present',
    }

    package { 'php':
        ensure =&gt; 'present',
    }

    # Update this to use your respective time zone value
    exec { 'php_config':
        command =&gt; '/bin/sed -i &quot;s/^;date.timezone =/date.timezone = \'America\/Chicago\'/g&quot; /etc/php.ini',
        require =&gt; Package['php'],
    }

    service { 'httpd':
        ensure =&gt; 'running',
        enable =&gt; true,
        hasrestart =&gt; true,
        hasstatus =&gt; true,
        subscribe =&gt; Package['httpd', 'php'],
    }

    # Drupal requirements
    package { ['php-pdo', 'php-mysql', 'php-xml', 'php-gd', 'php-mbstring']:
        ensure =&gt; 'present',
        require =&gt; Package['php'],
    }
}

class mysql {
    package { 'mysql-server':
        ensure =&gt; 'present',
    }

    service { 'mysqld':
        ensure =&gt; 'running',
        enable =&gt; true,
        hasrestart =&gt; true,
        hasstatus =&gt; true,
        subscribe =&gt; Package['mysql-server'],
    }

    # Equivalent to /usr/bin/mysql_secure_installation without providing or setting a password
    exec { 'mysql_secure_installation':
        command =&gt; '/usr/bin/mysql -uroot -e &quot;DELETE FROM mysql.user WHERE User=\'\'; DELETE FROM mysql.user WHERE User=\'root\' AND Host NOT IN (\'localhost\', \'127.0.0.1\', \'::1\'); DROP DATABASE IF EXISTS test; FLUSH PRIVILEGES;&quot; mysql',
        require =&gt; Service['mysqld'],
    }
}

class {'web': }
class {'mysql': }</pre><p>With this code saved to a file called manifest.pp (.pp being the file extension for puppet manifests), I can spin up a VM and do the following to set it up:</p><pre class="brush: bash; title: ; notranslate">scp -i key.pem manifest.pp ec2-user@host:~/
ssh -i key.pem ec2-user@host
sudo yum upgrade -y
sudo yum install -y puppet
sudo puppet apply manifest.pp
rm -f manifest.pp
exit</pre><p>At this point, I have a basic Apache/MySQL/PHP configuration capable of receiving a Drupal 7 installation.</p> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2012/02/13/setting-up-ec2-for-drupal-with-puppet/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Top 10 Posts of 2011</title><link>http://matthewturland.com/2011/12/29/top-10-posts-of-2011/</link> <comments>http://matthewturland.com/2011/12/29/top-10-posts-of-2011/#comments</comments> <pubDate>Fri, 30 Dec 2011 00:27:04 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[Node.js]]></category> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=857</guid> <description><![CDATA[Following in the trail blazed by the likes of Cal Evans and Chris Cornutt, I decided to post a list of the posts on this blog that have received the most traffic this year along with some related commentary. However, in the spirit of Charles St. Michael, I decided to up the number of posts [...]]]></description> <content:encoded><![CDATA[<p>Following in the trail blazed by the likes of <a
title="Top three posts of 2011 | Postcards From My Life" href="http://blog.calevans.com/2011/12/29/top-three-posts-of-2011/">Cal Evans</a> and <a
title="Top three posts of 2011 at blog.phpdeveloper.org" href="http://blog.phpdeveloper.org/?p=425">Chris Cornutt</a>, I decided to post a list of the posts on this blog that have received the most traffic this year along with some related commentary. However, in the spirit of <a
title="Iliketosayfukalot's Channel - YouTube" href="http://www.youtube.com/iliketosayfukalot">Charles St. Michael</a>, I decided to up the number of posts from three to 10. So, here we go:</p><h3>10. <a
title="Matthew Turland » Blog Archive » Building PHP-GTK with Cairo Support on Ubuntu Jaunty" href="http://matthewturland.com/2009/04/25/building-php-gtk-with-cairo-support-on-ubuntu-jaunty/">Building PHP-GTK with Cairo Support on Ubuntu Jaunty</a> &#8211; 2009-04-25</h3><p>Very interesting that this post was in the running at all. It&#8217;s over two years old, goes back five Ubuntu versions, and deals with PHP 5.3.0RC1 (current is 5.4.0RC4) and PHP-GTK when Cairo support was relatively new. (There&#8217;s now <a
title="PECL/Cairo 0.3.0 released! - Michael's Weblog" href="http://mgdm.net/weblog/peclcairo-030-released">a separate PECL extension</a> for it now.) If you want to learn more about this, you should definitely check out <a
title="Dreaming of Dawn" href="http://elizabethmariesmith.com/">Elizabeth Smith</a> and <a
title="Michael Maclean" href="http://mgdm.net/">Michael Maclean</a>.</p><h3>9. <a
title="Matthew Turland » Blog Archive » Renaming a DOMNode in PHP" href="http://matthewturland.com/2010/02/09/renaming-a-domnode-in-php/">Renaming a DOMNode in PHP</a> &#8211; 2010-02-09</h3><p>It seems this isn&#8217;t as uncommon a problem as I would have thought. Sadly, in the 22 months that have passed since I authored the post, it seems the DOM extension hasn&#8217;t been updated further to support the DOM 3.0 standard or the <code>renameNode()</code> method mentioned in this post.</p><h3>8. <a
title="Matthew Turland » Blog Archive » PHP_CodeSniffer Article in php|architect" href="http://matthewturland.com/2011/04/28/php_codesniffer-article-in-phparchitect/">PHP_CodeSniffer Article in php|architect</a> &#8211; 2011-04-28</h3><p>It&#8217;s nice to see this post get attention even if was just a brief hand-waving to point people to the article, which is one of two I wrote for php|architect Magazine this year. It&#8217;s also nice to see that despite being seen by some as a more menial facet of quality assurance, other people consider it important enough to read the article and take something away from it.</p><h3>7. <a
title="Matthew Turland » Blog Archive » 'New SPL Features in PHP 5.3' Hits php|architect" href="http://matthewturland.com/2011/02/01/new-spl-features-in-php-5-3-hits-phparchitect/">&#8216;New SPL Features in PHP 5.3&#8242; Hits php|architect</a> &#8211; 2011-02-01</h3><p>Another post that was just hand-waving to an article that dealt with a topic I saw as underrated. The article followed my php|tek 2010 session and preceded a Zend webinar this year on the same topic.</p><h3>6. <a
title="Matthew Turland » Blog Archive » Process Isolation in PHPUnit" href="http://matthewturland.com/2010/08/19/process-isolation-in-phpunit/">Process Isolation in PHPUnit</a> &#8211; 2010-08-19</h3><p>Between views and comments, it seems I wasn&#8217;t the only one who ran into this head-scratcher. However, if memory serves, I think there are plans to remove this feature from PHPUnit in future versions.</p><h3>5. <a
title="Matthew Turland » Blog Archive » Node.js: A Beginner’s Perspective" href="http://matthewturland.com/2010/10/19/node-js-a-beginners-perspective/">Node.js: A Beginner’s Perspective</a> &#8211; 2010-10-19</h3><p>The post is about a year old now, and sadly I haven&#8217;t done anything of merit with Node.js since (though I hope to change that), but it seems the community is still as vibrant and growing as it ever was. Heck, you can even <a
title="davidcoallier/node-php - GitHub" href="https://github.com/davidcoallier/node-php">integrate PHP-FPM with Node via FCGI</a> now. Node is definitely a technology to continue keeping your eye on if you don&#8217;t already use it.</p><h3>4. <a
title="Matthew Turland » Blog Archive » PHPUnit and Xdebug on Ubuntu Karmic" href="http://matthewturland.com/2010/01/03/phpunit-and-xdebug-on-ubuntu-karmic/">PHPUnit and Xdebug on Ubuntu Karmic</a> &#8211; 2010-01-03</h3><p>It&#8217;s surprising that this post is still relevant since there have been four Ubuntu releases since the version that this post deals with. I&#8217;ve since moved over to Fedora 16, at least for now, and it seems to address most of my regular needs. I may look at <a
title="And the best distro of 2011 is ..." href="http://www.dedoimedo.com/computers/best-distro-2011.html">other distributions like Mint</a> later on.</p><h3>3. <a
title="Matthew Turland » Blog Archive » Models in Zend Framework" href="http://matthewturland.com/2010/03/26/models-in-zend-framework/">Models in Zend Framework</a> &#8211; 2010-03-26</h3><p>Even though it&#8217;s over a year old now, I think this post gets the traffic it does because there&#8217;s not really one prescribed way to build models and because the existing documentation describes a number of components that can be used to build models, but doesn&#8217;t really offer specific guidance on how to approach it. Bit of a double-edged sword, I suppose.</p><h3>2. <a
title="Matthew Turland » Blog Archive » New SPL Features in PHP 5.3" href="http://matthewturland.com/2010/05/20/new-spl-features-in-php-5-3/">New SPL Features in PHP 5.3</a> &#8211; 2010-05-20</h3><p>I published this post on the same day that I gave my session on the topic at php|tek 2010. It&#8217;s one of my longer and more content-rich posts and I&#8217;ve updated it on occasion as I&#8217;ve had cause to update the benchmarks that go along with it. Good to see that interest in SPL seems to be rising.</p><h3>1. <a
title="Matthew Turland » Blog Archive » Database Testing with PHPUnit and MySQL" href="http://matthewturland.com/2010/01/04/database-testing-with-phpunit-and-mysql/">Database Testing with PHPUnit and MySQL</a> &#8211; 2010-01-04</h3><p>While I love that this post is driving as much traffic to my blog as it is, I do want to get around to contributing related documentation to the PHPUnit project. Hopefully that will happen soon. In the meantime, you can also read more about this topic in the Testing chapter of <a
title="Matthew Turland » Blog Archive » PHP Master Published by SitePoint" href="http://matthewturland.com/2011/10/21/php-master-published-by-sitepoint/">my most recent book</a>.</p><p>So, one big take-away from this post has been that most of my high-traffic posts were written last year rather than this year. I can&#8217;t say it&#8217;s very surprising since, looking back, a number of my posts from this year were of the hand-waving variety. I&#8217;m hoping to publish more content-rich posts more frequently in 2012. I won&#8217;t call it a resolution, because I&#8217;d likely be jinxing myself in the process, but I will say that I&#8217;ll make my best attempt.</p><p>Best wishes to everyone in the new year.</p> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2011/12/29/top-10-posts-of-2011/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Appearance on the Engine Yard Podcast</title><link>http://matthewturland.com/2011/12/16/appearance-on-the-engine-yard-podcast/</link> <comments>http://matthewturland.com/2011/12/16/appearance-on-the-engine-yard-podcast/#comments</comments> <pubDate>Fri, 16 Dec 2011 22:34:11 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=853</guid> <description><![CDATA[The wonderful folks at Engine Yard invited me and my friends and fellow co-authors Lorna Jane Mitchell and Davey Shafik to be guests on an episode of their PHP podcast with our good mutual friend Elizabeth Naramore as our host. We discuss our recently published book PHP Master: Write Cutting Edge Code, how SitePoint brought [...]]]></description> <content:encoded><![CDATA[<p>The wonderful folks at <a
title="Ruby On Rails Cloud Hosting PaaS | Managed Rails Development | Engine Yard Platform as a Service" href="http://www.engineyard.com">Engine Yard</a> invited me and my friends and fellow co-authors <a
title="LornaJane | Lorna Jane Mitchell&#039;s Website" href="http://www.lornajane.net" class="broken_link">Lorna Jane Mitchell</a> and <a
title="Davey Shafik" href="http://daveyshafik.com">Davey Shafik</a> to be guests on <a
title="Ruby Cloud | Ruby Support | Engine Yard" href="http://www.engineyard.com/podcast/s01e51-php-master-writing-cutting-edge-code" class="broken_link">an episode</a> of <a
title="Cloud Out Loud | Engine Yard's Ruby on Rails Podcast" href="http://www.engineyard.com/podcasts/PHP">their PHP podcast</a> with our good mutual friend <a
title="The Blog of ElizabethN" href="http://naramore.net/blog/">Elizabeth Naramore</a> as our host.</p><p>We discuss our <a
title="Matthew Turland - Blog Archive - PHP Master Published by SitePoint" href="http://matthewturland.com/2011/10/21/php-master-published-by-sitepoint/">recently published</a> book <a
title="Home - PHP Master: Write Cutting-Edge Code" href="http://www.sitepoint.com/books/phppro1/">PHP Master: Write Cutting Edge Code</a>, how <a
title="SitePoint - Web Design, Web Development, Freelancing, Tech News and more" href="http://www.sitepoint.com/">SitePoint</a> brought us together to work on the project, what it was like to write the book, and some reflections on the experience from each of us.</p><p>If you&#8217;ve heard about the book and not read it or been curious as it, I heartily recommend <a
title="Ruby Cloud | Ruby Support | Engine Yard" href="http://www.engineyard.com/podcasts/PHP">giving it a listen</a>.</p> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2011/12/16/appearance-on-the-engine-yard-podcast/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>PHP Master Published by SitePoint</title><link>http://matthewturland.com/2011/10/21/php-master-published-by-sitepoint/</link> <comments>http://matthewturland.com/2011/10/21/php-master-published-by-sitepoint/#comments</comments> <pubDate>Fri, 21 Oct 2011 13:46:14 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=841</guid> <description><![CDATA[I&#8217;m very happy to announce that I&#8217;ve had a second book published: &#8220;PHP Master: Writing Cutting-Edge Code.&#8221; This time, I had the honor and pleasure of co-authoring the content with my good friends and peers in the PHP community Lorna Jane Mitchell and Davey Shafik and working with the excellent team at SitePoint to make it available [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m very happy to announce that I&#8217;ve had a second book published: <a
title="Home - PHP Master: Write Cutting-Edge Code" href="http://www.sitepoint.com/books/phppro1/">&#8220;PHP Master: Writing Cutting-Edge Code.&#8221;</a> This time, I had the honor and pleasure of co-authoring the content with my good friends and peers in the PHP community <a
title="LornaJane | Lorna Jane Mitchell's Website" href="http://www.lornajane.net/">Lorna Jane Mitchell</a> and <a
title="Davey Shafik" href="http://daveyshafik.com/">Davey Shafik</a> and working with the excellent team at <a
title="SitePoint » Web Design, Web Development, Freelancing, Tech News and more" href="http://www.sitepoint.com/">SitePoint</a> to make it available to you. The book covers a number of fundamental skills for professional PHP developers including web services, design patterns, security, testing, and more. If you&#8217;re in the market for such a PHP title, I encourage you to consider checking it out.</p> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2011/10/21/php-master-published-by-sitepoint/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>New Articles on PHPmaster.com</title><link>http://matthewturland.com/2011/10/16/new-articles-on-phpmaster-com/</link> <comments>http://matthewturland.com/2011/10/16/new-articles-on-phpmaster-com/#comments</comments> <pubDate>Sun, 16 Oct 2011 21:22:06 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=836</guid> <description><![CDATA[I recently started writing articles for PHPmaster.com, a site managed by SitePoint that syndicates PHP tutorials, opinions, and news. You can check out these articles, &#8220;Documentation Makes the World Go Round&#8221; and &#8220;Integrating Amazon S3 using PEAR&#8221;, at either phpmaster.com or sitepoint.com. If you prefer getting your news via Twitter, check out @phpmasterdotcom or @sitepointdotcom. [...]]]></description> <content:encoded><![CDATA[<p>I recently started writing articles for <a
title="PHP Tutorials, Opinions and News from the worlds best PHP Developers » PHPmaster.com" href="http://phpmaster.com/">PHPmaster.com</a>, a site managed by <a
title="SitePoint » Web Design, Web Development, Freelancing, Tech News and more" href="http://www.sitepoint.com/">SitePoint</a> that syndicates PHP tutorials, opinions, and news. You can check out these articles, <a
title="Documentation Makes the World Go Round - phpmaster" href="http://phpmaster.com/documentation-makes-the-world-go-round/">&#8220;Documentation Makes the World Go Round&#8221;</a> and <a
title="Integrating Amazon S3 using PEAR - phpmaster" href="http://phpmaster.com/integrating-amazon-s3-using-pear/">&#8220;Integrating Amazon S3 using PEAR&#8221;</a>, at either <a
title="PHP Tutorials, Opinions and News from the worlds best PHP Developers » PHPmaster.com" href="http://phpmaster.com/">phpmaster.com</a> or <a
title="SitePoint » Web Design, Web Development, Freelancing, Tech News and more" href="http://www.sitepoint.com/">sitepoint.com</a>. If you prefer getting your news via <a
title="Twitter / Home" href="https://twitter.com/">Twitter</a>, check out <a
title="PHP Master (phpmasterdotcom) on Twitter" href="https://twitter.com/#!/phpmasterdotcom">@phpmasterdotcom</a> or <a
title="SitePoint (sitepointdotcom) on Twitter" href="https://twitter.com/#!/sitepointdotcom">@sitepointdotcom</a>. Hope you find the articles useful.</p> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2011/10/16/new-articles-on-phpmaster-com/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>ledger stats</title><link>http://matthewturland.com/2011/09/02/ledger-stats/</link> <comments>http://matthewturland.com/2011/09/02/ledger-stats/#comments</comments> <pubDate>Fri, 02 Sep 2011 13:26:33 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[ledger]]></category> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=823</guid> <description><![CDATA[Occasionally, I need to take a break from the projects I&#8217;m working on. How do I do that? By working on another project, of course! Just over a year ago, I found ledger and began using it to manage my household finances. Some people may find that sort of thing boring, but I think it&#8217;s [...]]]></description> <content:encoded><![CDATA[<p>Occasionally, I need to take a break from the projects I&#8217;m working on. How do I do that? By working on another project, of course!</p><p>Just over a year ago, <a
title="Matthew Turland » Blog Archive » Ledger and Building It From Source on Ubuntu 10.04" href="http://matthewturland.com/2010/07/01/ledger-and-building-it-from-source-on-ubuntu-10-04/">I found ledger</a> and began using it to manage my household finances. Some people may find that sort of thing boring, but I think it&#8217;s it neat to look at the past year&#8217;s worth of transactions, get a bird&#8217;s eye view of our spending, identify trends, and so forth.</p><p>I&#8217;ve had it in the back of my mind lately that I&#8217;d like a better and preferably more visual way to do those things. After perusing through a few charting libraries, I found that <a
title="Highcharts - Interactive JavaScript charts for your webpage" href="http://www.highcharts.com/">Highcharts</a> seem to do what I needed. Among other things, it provides a plugin for the the JavaScript library I&#8217;m most familiar with: <a
title="jQuery: The Write Less, Do More, JavaScript Library" href="http://jquery.com/">jQuery</a>.</p><p>I already had a bit of <a
title="PHP: Hypertext Preprocessor" href="http://php.net/">PHP</a> code lying around to parse ledger&#8217;s XML output, give me a monthly spending breakdown by account, and output it in CSV format. I lifted the parsing logic, wrote some more PHP to search transactions by several criteria based on form input, implemented a very simple plugin system to consume the search results and output various charts, and wrote a few simple plugins. Thus, <a
title="elazar/ledger-stats - GitHub" href="https://github.com/elazar/ledger-stats">ledger stats</a> was born.</p><p>It&#8217;s still in a very rough prototypical stage, but it&#8217;s got enough functionality for others to start playing around with it. Feel free to fork it on GitHub and suggest improvements.</p> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2011/09/02/ledger-stats/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Android Emulator Can&#8217;t Find AVD</title><link>http://matthewturland.com/2011/08/09/android-emulator-cant-find-avd/</link> <comments>http://matthewturland.com/2011/08/09/android-emulator-cant-find-avd/#comments</comments> <pubDate>Wed, 10 Aug 2011 00:46:47 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[Android]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=813</guid> <description><![CDATA[I ran into a small gotcha recently when creating a new Android project in Eclipse. The first time I went to run it on an AVD, I received an error in the console output: [2011-08-09 19:14:46 - Emulator] emulator: ERROR: unknown virtual device name: 'avd' [2011-08-09 19:14:46 - Emulator] emulator: could not find virtual device [...]]]></description> <content:encoded><![CDATA[<p>I ran into a small gotcha recently when creating a new Android project in Eclipse. The first time I went to run it on an <acronym
title="Android Virtual Device">AVD</acronym>, I received an error in the console output:</p><pre>[2011-08-09 19:14:46 - Emulator] emulator: ERROR: unknown virtual device name: 'avd'
[2011-08-09 19:14:46 - Emulator] emulator: could not find virtual device named 'avd'</pre><p>The first few results in Google didn&#8217;t turn up any useful information. The culprit turned out to be buried in the Eclipse UI.</p><ol><li>If the Package Explorer view isn&#8217;t already active, activate it by selecting Window &gt; Show View &gt; Package Explorer.</li><li>In the Package Explorer view, right-click on your project and select Run As &gt; Run Configurations.</li><li>In the right half of the Run Configurations window, select the small Target tab.</li><li>On the far right side of the window, use the scrollbar to scroll to the bottom of the Target tab&#8217;s contents.</li><li>Find the text box labeled Additional Emulator Command Line Options. It probably has a value like this: <code>-cpu-delay 0 -no-boot-anim -avd avd</code>.</li><li>Change the value of the text box to look like <code>-cpu-delay 0 -no-boot-anim -avd <strong>AVD Name</strong></code> where <code><strong>AVD Name</strong></code> (which defaults to simply <code>avd</code>) is the name of the AVD you&#8217;ve created for this project. In other words, if you open the Android SDK and AVD Manager window (Window &gt; Android SDK and AVD Manager), the value you should use in place of <code><strong>AVD Name</strong></code> within this text box is the same value that appears in the AVD Name column of that window for the desired AVD. So, if your AVD is named MyProjectAVD, the value of the text box should be <code>-cpu-delay 0 -no-boot-anim -avd MyProjectAVD</code>.</li></ol> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2011/08/09/android-emulator-cant-find-avd/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>php&#124;tek 2011 Slides</title><link>http://matthewturland.com/2011/05/27/phptek-2011-slides/</link> <comments>http://matthewturland.com/2011/05/27/phptek-2011-slides/#comments</comments> <pubDate>Fri, 27 May 2011 16:17:07 +0000</pubDate> <dc:creator>Matthew Turland</dc:creator> <category><![CDATA[Conferences]]></category> <category><![CDATA[PHP]]></category><guid
isPermaLink="false">http://matthewturland.com/?p=794</guid> <description><![CDATA[If you attended my sessions at the php&#124;tek 2011 conference, thank you! I&#8217;ve linked to my slide decks below. Simply extract them and open the HTML files in any browser. Also, if you haven&#8217;t already done so, please take a moment to use the links below to leave feedback. Thanks in advance! Accessing Web Resources [...]]]></description> <content:encoded><![CDATA[<p>If you attended my sessions at the php|tek 2011 conference, thank you! I&#8217;ve linked to my slide decks below. Simply extract them and open the HTML files in any browser. Also, if you haven&#8217;t already done so, please take a moment to use the links below to leave feedback. Thanks in advance!</p><ul><li>Accessing Web Resources with PHP session &#8211; <a
title="Accessing Web Resources with PHP - php|tek 11 Session" href="http://matthewturland.com/wp-content/uploads/webscraping-tek11.zip">slides</a>, <a
title="Talk: Accessing Web Resources with PHP - Joind.in" href="http://joind.in/3386">feedback</a></li><li>Creating Desktop Applications with Titanium and PHP session &#8211; <a
title="Creating Desktop Applications with Titanium and PHP - php|tek 2011 Session" href="http://matthewturland.com/wp-content/uploads/titanium-tek11.zip">slides</a>, <a
title="Talk: Creating Desktop Applications with Titanium and PHP - Joind.in" href="http://joind.in/3391">feedback</a></li><li>Introduction to Android Development unconference session &#8211; <a
title="Intro to Android Development - php|tek 11 Unconference" href="http://matthewturland.com/wp-content/uploads/android-intro-tek11.zip">slides</a>, comment on this blog post to leave feedback</li></ul> ]]></content:encoded> <wfw:commentRss>http://matthewturland.com/2011/05/27/phptek-2011-slides/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc
Page Caching using disk: enhanced
Database Caching 20/32 queries in 0.008 seconds using apc

Served from: matthewturland.com @ 2012-05-17 16:19:59 -->
