<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>PHP on Justin Carmony</title>
		<link>https://www.justincarmony.com/tags/php/</link>
		<description>Recent content in PHP on Justin Carmony</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Thu, 16 Nov 2017 20:00:45 +0000</lastBuildDate>
		
			<atom:link href="https://www.justincarmony.com/tags/php/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Talk: Getting Started with Big Data using BigQuery &amp; PHP - Utah PHP Usergroup</title>
				<link>https://www.justincarmony.com/2017/11/16/talk-getting-started-with-big-data-using-bigquery-php/</link>
				<pubDate>Thu, 16 Nov 2017 20:00:45 +0000</pubDate>
				<guid>https://www.justincarmony.com/2017/11/16/talk-getting-started-with-big-data-using-bigquery-php/</guid>
				<description>&lt;h2 id=&#34;slides&#34;&gt;Slides&lt;/h2&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t have a copy of the slides for this presentation. However, they were near identical to the presentation I gave at the &lt;a href=&#34;https://blog.justincarmony.com/2018/11/06/talk-ddms-journey-into-big-data-with-bigquery-with-ksl-and-deseret-news/&#34;&gt;Google Cloud Platform SLC meetup.&lt;/a&gt; My daughter was only a few weeks old, so my whole family was operating on very little sleep, and I forgot my power cord for my brand new MacBook Pro. Won&amp;rsquo;t make that mistake again.&lt;/p&gt;&#xA;&lt;p&gt;Here was a tweet after the Meetup:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: Docker, PHP, and Live Demoing - What could go wrong? - Utah PHP Usergroup</title>
				<link>https://www.justincarmony.com/2016/05/19/talk-docker-php-and-live-demoing-what-could-go-wrong-utah-php-usergroup/</link>
				<pubDate>Thu, 19 May 2016 20:00:18 +0000</pubDate>
				<guid>https://www.justincarmony.com/2016/05/19/talk-docker-php-and-live-demoing-what-could-go-wrong-utah-php-usergroup/</guid>
				<description>&lt;p&gt;This presentation was a ton of fun. In a room with a dozen or more engineers and did a live demo of using Docker. We made environments for local development and then showed how to use them in production. We talked about our experience at DDM running Docker in production, where it made sense, and tradeoffs to be aware of.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: Scaling &amp; Managing Asynchronous Workers (and staying sane!) - PHPNW15</title>
				<link>https://www.justincarmony.com/2015/10/04/talk-scaling-managing-asynchronous-workers-and-staying-sane-phpnw15/</link>
				<pubDate>Sun, 04 Oct 2015 20:00:18 +0000</pubDate>
				<guid>https://www.justincarmony.com/2015/10/04/talk-scaling-managing-asynchronous-workers-and-staying-sane-phpnw15/</guid>
				<description>&lt;p&gt;I had the absolute privilege of flying out to Manchester, England to give this presentation. It was a total blast.&lt;/p&gt;&#xA;&lt;h2 id=&#34;video&#34;&gt;Video&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=bTcyuzJkxIg&#34;&gt;https://www.youtube.com/watch?v=bTcyuzJkxIg&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;slides&#34;&gt;Slides&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://speakerdeck.com/justincarmony/scaling-and-managing-asynchronous-workers-and-staying-sane&#34;&gt;https://speakerdeck.com/justincarmony/scaling-and-managing-asynchronous-workers-and-staying-sane&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;abstract&#34;&gt;Abstract&lt;/h2&gt;&#xA;&lt;p&gt;There comes a point in time with a website when eventually need to do something in the background. There are always cron jobs, but eventually those either don&amp;rsquo;t scale well, or are not responsive enough. Learn about how to help your website efficiently scale by using workers. We&amp;rsquo;ll touch briefly the fundamental theory behind workers and how to easily implement them. We&amp;rsquo;ll learn about several different technologies to help manage workers such as Beanstalkd, Supervisord, Redis, and others. We&amp;rsquo;ll show a live demo of PHP workers performing tasks and you&amp;rsquo;ll leave with sound understanding of how to implement workers in your own application.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: Writing Interactive User Interfaces with PHP &amp; React.js - PHPNW15</title>
				<link>https://www.justincarmony.com/2015/10/03/talk-writing-interactive-user-interfaces-with-php-react-js-phpnw15/</link>
				<pubDate>Sat, 03 Oct 2015 20:00:46 +0000</pubDate>
				<guid>https://www.justincarmony.com/2015/10/03/talk-writing-interactive-user-interfaces-with-php-react-js-phpnw15/</guid>
				<description>&lt;p&gt;Wow, this talk. I had warned myself when I started speaking I would never, ever be one of those speakers who came ill-prepared and bombed a talk. It took being ~30 talks in my speaking career where I let my guard down, and at one of my very favorite conferences, I blew it. (Ok, maybe not bombed it, but I didn&amp;rsquo;t do well to my standards)&lt;/p&gt;&#xA;&lt;p&gt;Ok, I didn&amp;rsquo;t totally blow it, but if you watch the video (I was almost tempted not to post it) feel free to skip the live demo. What happened is my first part of my talk went incredibly fast, and then I ran into technical difficulties with my live demo (which I didn&amp;rsquo;t prepare or harden very well in advance). What was the worst part is because I took so long trying to get my live demo to work, I had well-prepared content I had to rush.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: Writing Interactive User Interfaces with PHP &amp; React.js - Utah PHP Usergroup</title>
				<link>https://www.justincarmony.com/2015/07/16/talk-writing-interactive-user-interfaces-with-php-react-js-utah-php-usergroup/</link>
				<pubDate>Thu, 16 Jul 2015 20:00:24 +0000</pubDate>
				<guid>https://www.justincarmony.com/2015/07/16/talk-writing-interactive-user-interfaces-with-php-react-js-utah-php-usergroup/</guid>
				<description>&lt;p&gt;This was my dry-run for my upcoming talk at PHP North West 2015. Check out that talk for the final copy of the slides.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Happy Birthday PHP</title>
				<link>https://www.justincarmony.com/2015/06/08/happy-birthday-php/</link>
				<pubDate>Mon, 08 Jun 2015 18:07:33 +0000</pubDate>
				<guid>https://www.justincarmony.com/2015/06/08/happy-birthday-php/</guid>
				<description>&lt;p&gt;Whew, it has been a busy day.&lt;/p&gt;&#xA;&lt;p&gt;Today I saw so many of my friends posting their thoughts on PHP and it’s 20th birthday. It is pretty incredible how far it has come, and how much of the web it powers. I wish I had more time to post my history with PHP, my first websites, my first security vulnerabilities, my first successes, and failures, etc.&lt;/p&gt;&#xA;&lt;p&gt;But alas, it has been a very busy day. I woke up and went to work at a job I absolutely love. I then came home to my family in our wonderful home and made forts with our 2-year-old son. Then to wrap up the evening I worked on some PHP code for a project at work that we’re demoing tomorrow. It went by really quick.&lt;/p&gt;</description>
			</item>
			<item>
				<title>X-Requested-With, AJAX Requests, and Android WebViews</title>
				<link>https://www.justincarmony.com/2015/03/11/x-requested-with-ajax-requests-and-android-webviews/</link>
				<pubDate>Wed, 11 Mar 2015 18:20:17 +0000</pubDate>
				<guid>https://www.justincarmony.com/2015/03/11/x-requested-with-ajax-requests-and-android-webviews/</guid>
				<description>&lt;p&gt;Today we ran into an interesting problem with certain pages of our website not loading for Android users inside their Facebook Apps. We dug down and ran into several red herrings, but ultimately found the problem.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The Problem&lt;/h2&gt;&#xA;&lt;p&gt;If you Google for “X-Requested-With”, or the &lt;code&gt;$_SERVER&lt;/code&gt; variable name in PHP &lt;code&gt;HTTP_X_REQUESTED_WITH&lt;/code&gt; you will likely find many posts stating that it is a method for detecting AJAX requests. Most major JavaScript libraries and/or frameworks like &lt;a href=&#34;http://jquery.com/&#34;&gt;jQuery&lt;/a&gt; will set the &lt;code&gt;X-Requested-With&lt;/code&gt; HTTP header for any AJAX requests. So if you Google &lt;code&gt;X-Requested-With&lt;/code&gt; or &lt;code&gt;HTTP_X_REQUESTED_WITH&lt;/code&gt; you will see blog posts &amp;amp; StackOverflow answers about detecting AJAX requests.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: Top to Bottom PHP Profiling - Lone Star PHP 2014</title>
				<link>https://www.justincarmony.com/2014/04/26/talk-top-to-bottom-php-profiling-lone-star-php-2014/</link>
				<pubDate>Sat, 26 Apr 2014 20:00:04 +0000</pubDate>
				<guid>https://www.justincarmony.com/2014/04/26/talk-top-to-bottom-php-profiling-lone-star-php-2014/</guid>
				<description>&lt;h2 id=&#34;slides&#34;&gt;Slides&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://speakerdeck.com/justincarmony/top-to-bottom-php-profiling&#34;&gt;https://speakerdeck.com/justincarmony/top-to-bottom-php-profiling&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Why You Should Attend a Tech Conference</title>
				<link>https://www.justincarmony.com/2013/10/15/why-you-should-attend-a-tech-conference/</link>
				<pubDate>Tue, 15 Oct 2013 06:37:33 +0000</pubDate>
				<guid>https://www.justincarmony.com/2013/10/15/why-you-should-attend-a-tech-conference/</guid>
				<description>&lt;p&gt;Ever since 2006 I had always wanted to go to a technology conference. I&amp;rsquo;d see titles of talks for ZendCon and think &amp;ldquo;Wow, that would be cool to learn about!&amp;rdquo; In 2009, I finally went to the Utah Open Source Conference (now called OpenWest), and I was blown away with all the stuff to learn. Then, in 2011, I shelled out my own money and flew to Chicago for PHP Tek, and it cost me around $3,000 after conference ticket, flights, hotel, &amp;amp; other expenses while at Chicago.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ubuntu 12.04, PHP 5.4, Apache2, and ppa:ondrej/php5</title>
				<link>https://www.justincarmony.com/2013/08/01/ubuntu-12-04-php-5-4-apache2-and-ppaondrejphp5/</link>
				<pubDate>Thu, 01 Aug 2013 02:06:49 +0000</pubDate>
				<guid>https://www.justincarmony.com/2013/08/01/ubuntu-12-04-php-5-4-apache2-and-ppaondrejphp5/</guid>
				<description>&lt;p&gt;Okay, wow, what a doozy. I guess this is a lesson in why you want to be careful of the PPAs you use on your Ubuntu servers.&lt;/p&gt;&#xA;&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;&#xA;&lt;p&gt;The very popular ppa:ondrej/php5, a Personal Package Archive for Ubuntu 12.04, upgraded from PHP 5.4 to PHP 5.5. This would require a newer version of Apache (v 2.4). If you upgraded Apache from 2.2 to 2.4, you would likely run into apache configuration issues.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: High-Performance Websites with Scalable Workers - Dutch PHP Conference 2013</title>
				<link>https://www.justincarmony.com/2013/06/07/talk-high-performance-websites-with-scalable-workers-dutch-php-conference-2013/</link>
				<pubDate>Fri, 07 Jun 2013 20:00:19 +0000</pubDate>
				<guid>https://www.justincarmony.com/2013/06/07/talk-high-performance-websites-with-scalable-workers-dutch-php-conference-2013/</guid>
				<description>&lt;h2 id=&#34;slides&#34;&gt;Slides&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://speakerdeck.com/justincarmony/high-performance-websites-with-scalable-workers&#34;&gt;https://speakerdeck.com/justincarmony/high-performance-websites-with-scalable-workers&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: High-Performance Websites with Scalable Workers - OpenWest 2013</title>
				<link>https://www.justincarmony.com/2013/05/02/talk-high-performance-websites-with-scalable-workers-openwest-2013/</link>
				<pubDate>Thu, 02 May 2013 20:00:10 +0000</pubDate>
				<guid>https://www.justincarmony.com/2013/05/02/talk-high-performance-websites-with-scalable-workers-openwest-2013/</guid>
				<description>&lt;h2 id=&#34;slides&#34;&gt;Slides&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://speakerdeck.com/justincarmony/high-performance-websites-with-scalable-workers&#34;&gt;https://speakerdeck.com/justincarmony/high-performance-websites-with-scalable-workers&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>First Serious Attempts with PHPUnit, Composer, and the Omniture API</title>
				<link>https://www.justincarmony.com/2013/03/19/first-serious-attempts-with-phpunit-composer-and-the-omniture-api/</link>
				<pubDate>Tue, 19 Mar 2013 23:12:46 +0000</pubDate>
				<guid>https://www.justincarmony.com/2013/03/19/first-serious-attempts-with-phpunit-composer-and-the-omniture-api/</guid>
				<description>&lt;p&gt;At work we use Omniture for our web analytics, and for a long time I&amp;rsquo;ve wanted query our Omniture Data to run some internal reports. I discovered that Omniture has a &lt;a href=&#34;https://developer.omniture.com/en_US/documentation/sitecatalyst-reporting/c-overview-6&#34;&gt;restful reporting api&lt;/a&gt;, and after using it for a little bit I decided it would be nice to write a wrapper library for it.&lt;/p&gt;&#xA;&lt;p&gt;Since I had recently taken the &lt;a href=&#34;http://grumpy-learning.com/&#34;&gt;PHP Testing Bootcamp from Chris Hartjes&lt;/a&gt;, I decided I wanted write it using Test Driven Development and really get my feet wet. I also decided I wanted to make the library compatible with &lt;a href=&#34;http://getcomposer.org/&#34;&gt;Composer&lt;/a&gt;. After the weekend was over, I had &lt;a href=&#34;https://packagist.org/packages/deseretdigital/site-catalyst-reporting&#34;&gt;an almost finished library&lt;/a&gt; that just requires some more work to be done, but I learned a great deal that I thought I&amp;rsquo;d share.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Vagrant &amp; PHP: Our Success Story At The Deseret News</title>
				<link>https://www.justincarmony.com/2012/09/15/vagrant-php-our-success-story-at-the-deseret-news/</link>
				<pubDate>Sat, 15 Sep 2012 20:36:11 +0000</pubDate>
				<guid>https://www.justincarmony.com/2012/09/15/vagrant-php-our-success-story-at-the-deseret-news/</guid>
				<description>&lt;p&gt;The simple world of LAMP is fading fast into the distance. When I first started developing websites, you&amp;rsquo;d just drop your PHP code in a document root, configure it to connect to a mysql database, and that was it.&lt;/p&gt;&#xA;&lt;p&gt;Now-a-days, you have frameworks that need to be setup, include paths that need to be changed, modules that need to be installed, web servers that need to be configured for your routing, etc. Then you might not just have MySQL, but Redis, Mongo, Couch, Memcached, Postgres, or any other dozen other servers. Then in Production you might have load balancers, multiple web servers, clusters of databases, and the list goes on.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Refactoring or Rebuilding: Working with Legacy Code</title>
				<link>https://www.justincarmony.com/2012/08/31/refactoring-or-rebuilding-working-with-legacy-code/</link>
				<pubDate>Fri, 31 Aug 2012 00:08:43 +0000</pubDate>
				<guid>https://www.justincarmony.com/2012/08/31/refactoring-or-rebuilding-working-with-legacy-code/</guid>
				<description>&lt;p&gt;Everyone has some form of Legacy code, and at my new job we have plenty of it. The Deseret News has been around in paper format since 1850, and has had a web presence since 1996. I can still find parts of our codebase for running with &lt;a href=&#34;http://en.wikipedia.org/wiki/Sybase&#34;&gt;Sybase&lt;/a&gt; and &lt;a href=&#34;http://en.wikipedia.org/wiki/Vignette_Corporation&#34;&gt;Vignette&lt;/a&gt;. Fortunately, most of the code we work with is much more modern using the latest PHP with an in-house MVC framework. However, there is still one big piece written in a less than ideal system. Its still PHP, but much more hacked together. It is our backend CMS system for controlling the website. It is painful to use, and we get many complaints all the time about it. When I joined the company three months ago, I was told we were going to completely rewrite it. Three months later, the &amp;ldquo;rewrite&amp;rdquo; of the CMS is still ages away and we&amp;rsquo;re continuing to hack to support requested changes.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP Tek 12 Recap</title>
				<link>https://www.justincarmony.com/2012/05/29/php-tek-12-recap/</link>
				<pubDate>Tue, 29 May 2012 23:34:40 +0000</pubDate>
				<guid>https://www.justincarmony.com/2012/05/29/php-tek-12-recap/</guid>
				<description>&lt;p&gt;I started writing this on the plane on my three hour flight back to Salt Lake City. I have to say that &lt;a href=&#34;http://tek12.phparch.com/&#34;&gt;php|tek 12&lt;/a&gt; this year was very excellent. It was great to catch up with many people, and meet so many more. This was my first year as a speaker, which was a lot of work, but very worth it. I&amp;rsquo;m hoping to be able to speak again in the up coming years.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: Blazing Data with Redis - Utah Open Source Conference 2012</title>
				<link>https://www.justincarmony.com/2012/05/01/talk-blazing-data-with-redis-utah-open-source-conference-2012/</link>
				<pubDate>Tue, 01 May 2012 12:00:00 +0000</pubDate>
				<guid>https://www.justincarmony.com/2012/05/01/talk-blazing-data-with-redis-utah-open-source-conference-2012/</guid>
				<description>&lt;p&gt;I gave this talk at the Utah Open Source Conference in May 2012, the same year&#xA;I presented it at PHP Tek.&lt;/p&gt;&#xA;&lt;div class=&#34;embed&#34;&gt;&#xA;  &lt;iframe src=&#34;https://www.slideshare.net/slideshow/embed_code/13049093&#34;&#xA;          title=&#34;SlideShare presentation&#34; loading=&#34;lazy&#34;&#xA;          allowfullscreen frameborder=&#34;0&#34;&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://www.slideshare.net/JustinCarmony/blazing-data-with-redis-20&#34;&gt;Blazing Data With Redis (and LEGOS!)&lt;/a&gt;&lt;/strong&gt; from &lt;strong&gt;&lt;a href=&#34;http://www.slideshare.net/JustinCarmony&#34;&gt;Justin Carmony&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP-FPM, Nginx, PHP_VALUE, and Multiple Values</title>
				<link>https://www.justincarmony.com/2012/04/24/php-fpm-nginx-php_value-and-multiple-values/</link>
				<pubDate>Tue, 24 Apr 2012 05:34:57 +0000</pubDate>
				<guid>https://www.justincarmony.com/2012/04/24/php-fpm-nginx-php_value-and-multiple-values/</guid>
				<description>&lt;p&gt;Quick little post on a problem I had while trying to use &lt;a href=&#34;http://phpadvent.org/2010/profiling-with-xhgui-by-paul-reinheimer&#34;&gt;XHGui&lt;/a&gt; with my Nginx/PHP-FPM setup. I needed to be able to pass the auto_prepend_file and auto_append_file settings to PHP-FPM from Nginx. In apache you can declare multiple php_value settings. However, when I did the same in nginx, it would only reflect the second setting. Turns out you need to set all of your php_value&amp;rsquo;s in Nginx in a single string, and you separate them by new line characters. Here is how it should look:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Standing on the Shoulders of Giants</title>
				<link>https://www.justincarmony.com/2012/04/10/standing-on-the-shoulders-of-giants/</link>
				<pubDate>Tue, 10 Apr 2012 15:43:06 +0000</pubDate>
				<guid>https://www.justincarmony.com/2012/04/10/standing-on-the-shoulders-of-giants/</guid>
				<description>&lt;p&gt;A few weeks back I had the opportunity to be on the Voices of the Elephpant podcast to talk about Redis and the Utah Open Source Community with &lt;a href=&#34;http://blog.calevans.com/&#34;&gt;Cal Evans&lt;/a&gt;. You can &lt;a href=&#34;http://voicesoftheelephpant.com/2012/04/10/interview-with-justin-carmony/&#34;&gt;listen to the episode on the VotE website&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Cal had sent me the questions before hand, and so I had jotted down a few things to mention during them. However, when we got to talking about the Utah Open Source Community, I forgot to mention one of the things I had written down to say, and that is this: I would not be where I am in my career, and would not have this great FOSS community in Utah, if it where not for the Shoulders of the Utah FOSS Giants that I stand on. (&lt;a href=&#34;http://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants&#34;&gt;Standing on the Shoulders of Giants&lt;/a&gt;)&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP, Sessions, __sleep, and Exceptions</title>
				<link>https://www.justincarmony.com/2012/03/23/php-sessions-__sleep-and-exceptions/</link>
				<pubDate>Fri, 23 Mar 2012 16:48:43 +0000</pubDate>
				<guid>https://www.justincarmony.com/2012/03/23/php-sessions-__sleep-and-exceptions/</guid>
				<description>&lt;p&gt;Today I ran into a problem where my PHP Application would throw this fatal error:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Fatal error: Exception thrown without a stack frame in Unknown on line 0&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Which is so much fun, because it doesn&amp;rsquo;t have a line number, so I had no direction as to what exactly was causing the problem. Some quick googling came up with &lt;a href=&#34;http://www.compdigitec.com/labs/2009/08/02/solving-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/&#34;&gt;this website&lt;/a&gt; stating the following error:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Most often, the error will appear if you use an exception handler combined with an error reporting to exception handler by converting it to an ErrorException, then there a suddenly a whole new magnitude of ways to throw errors within the exception handle, especially if E_NOTICE, E_STRICT and/or E_WARNING errors are converted. This form most often occurs when you use variables without first initializing them. This error may be preventable by wrapping the exception handler within a try/catch block.&lt;/p&gt;</description>
			</item>
			<item>
				<title>SMS Nagios Notifications with PHP &amp; Twilio</title>
				<link>https://www.justincarmony.com/2012/01/31/sms-nagios-notifications-with-php-twilio/</link>
				<pubDate>Tue, 31 Jan 2012 01:12:14 +0000</pubDate>
				<guid>https://www.justincarmony.com/2012/01/31/sms-nagios-notifications-with-php-twilio/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve had a few requests to share my &lt;a href=&#34;http://www.nagios.org/&#34;&gt;Nagios&lt;/a&gt; SMS notifications using &lt;a href=&#34;http://www.twilio.com/&#34;&gt;Twilio&lt;/a&gt;. I&amp;rsquo;m almost embarrassed to share them, since they are so dead simple. There was another plugin out there to do the same, but it was a lot more advanced and more work to setup, so I wrote my own in PHP.&lt;/p&gt;&#xA;&lt;p&gt;In the past I would just use my iPhone&amp;rsquo;s email-to-txt email address. However, when I received the txt message, it wasn&amp;rsquo;t formated very pretty, and it would have a different &amp;ldquo;From Number.&amp;rdquo; So if we had a crazy day, I would have 20-30 message threads in my iPhone all about Nagios. I&amp;rsquo;ve been lazy in the past, and didn&amp;rsquo;t clear them out until I had about 200 of them, and it was a lot of &amp;ldquo;swipe, delete, swipe, delete, swipe, delete&amp;rdquo; to get rid of them.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP Workers with Redis &amp; Solo</title>
				<link>https://www.justincarmony.com/2012/01/10/php-workers-with-redis-solo/</link>
				<pubDate>Tue, 10 Jan 2012 18:20:10 +0000</pubDate>
				<guid>https://www.justincarmony.com/2012/01/10/php-workers-with-redis-solo/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve come across an awesome combination of tools for managing PHP Workers, and thought I&amp;rsquo;d share.&lt;/p&gt;&#xA;&lt;h3 id=&#34;why-workers&#34;&gt;Why Workers?&lt;/h3&gt;&#xA;&lt;p&gt;Sometimes there are situations when you want to parallel process things. Other times you might have a list of tasks to accomplish, and you don&amp;rsquo;t want to make the user wait after pressing a button. This is where &amp;ldquo;Workers&amp;rdquo; can come in. They are independent scripts that run along side of your application, performing tasks, or &amp;ldquo;jobs.&amp;rdquo;&lt;/p&gt;</description>
			</item>
			<item>
				<title>My 2011 Recap</title>
				<link>https://www.justincarmony.com/2011/12/31/my-2011-recap/</link>
				<pubDate>Sat, 31 Dec 2011 02:00:20 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/12/31/my-2011-recap/</guid>
				<description>&lt;p&gt;As I look back on 2011, its been a pretty fun year technology &amp;amp; work wise. While I have a few more draft posts to finish up, I thought I&amp;rsquo;d hit some highlights from the past year.&lt;/p&gt;&#xA;&lt;h3 id=&#34;php&#34;&gt;PHP&lt;/h3&gt;&#xA;&lt;p&gt;Its been a fun year with the &lt;a href=&#34;http://uphpu.org/&#34;&gt;Utah PHP Usergroup&lt;/a&gt;. I look forward to it each month, and if you&amp;rsquo;re in Utah, you definitely should come. We&amp;rsquo;ve had a lot of interesting talks, such as running your app in different clouds, several MySQL Forks and NoSQL stuff.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Setting Up Nginx &amp; PHP-FPM on Ubuntu 10.04</title>
				<link>https://www.justincarmony.com/2011/10/25/setting-up-nginx-php-fpm-on-ubuntu-10-04/</link>
				<pubDate>Tue, 25 Oct 2011 03:50:59 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/10/25/setting-up-nginx-php-fpm-on-ubuntu-10-04/</guid>
				<description>&lt;p&gt;This is another wonderful setup that I&amp;rsquo;ve found myself using rather than the traditional Apache &amp;amp; mod_php setup.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-nginx&#34;&gt;What is Nginx?&lt;/h2&gt;&#xA;&lt;p&gt;Nginx (pronounced engine-x) is a fast, powerful, lightweight web server. I won&amp;rsquo;t go into the theory under-the-hood, but it&amp;rsquo;s focus is high concurrency with low memory usage. So while Apache is more robust in supporting many different features, nginx focuses on handling the important features very quickly. I still use Apache internally for our SVN &amp;amp; Trac web server. Heck, even at this time I&amp;rsquo;m using Apache to host this blog. However, Dating DNA, Clipish, CEVO, Alienware Arena, and some other high traffic sites/apis use nginx.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Preparing a VMWare Ubuntu Guest OS</title>
				<link>https://www.justincarmony.com/2011/09/13/preparing-a-vmware-ubuntu-guest-os/</link>
				<pubDate>Tue, 13 Sep 2011 07:11:09 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/09/13/preparing-a-vmware-ubuntu-guest-os/</guid>
				<description>&lt;p&gt;I forget these steps all the time, so I figured I should record them here.&lt;/p&gt;&#xA;&lt;p&gt;A lot of times VMWare will auto-install the VMWare tools for you when you first setup your VM. However, many times after setting it up I&amp;rsquo;ll do updates, and updates to the kernel will be applied, knocking out the VMWare Tools changes. These tools are used for things like file sharing between the guest and host.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: Profiling PHP Applications - Utah PHP Usergroup</title>
				<link>https://www.justincarmony.com/2011/07/21/talk-profiling-php-applications-utah-php-usergroup/</link>
				<pubDate>Thu, 21 Jul 2011 20:49:11 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/07/21/talk-profiling-php-applications-utah-php-usergroup/</guid>
				<description>&lt;p&gt;I gave this talk at the Utah PHP Usergroup early in my speaking career.&lt;/p&gt;&#xA;&lt;h2 id=&#34;slides&#34;&gt;Slides&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.slideshare.net/JustinCarmony/profiling-php-applications&#34;&gt;https://www.slideshare.net/JustinCarmony/profiling-php-applications&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;embed&#34;&gt;&#xA;  &lt;iframe src=&#34;https://www.slideshare.net/slideshow/embed_code/8658934&#34;&#xA;          title=&#34;SlideShare presentation&#34; loading=&#34;lazy&#34;&#xA;          allowfullscreen frameborder=&#34;0&#34;&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;</description>
			</item>
			<item>
				<title>Working with Middle-Scale Websites</title>
				<link>https://www.justincarmony.com/2011/07/19/working-with-middle-scale-websites/</link>
				<pubDate>Tue, 19 Jul 2011 00:02:40 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/07/19/working-with-middle-scale-websites/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been thinking about this idea for awhile, and I thought I would put a name to the thought. I brought up this idea while I was giving my &amp;ldquo;Real Life Scaling&amp;rdquo; presentation at the Utah Open Source Conference in 2009. Here is the problem I think most individuals in the web development face:&lt;/p&gt;&#xA;&lt;p&gt;Hopefully at some point, your website gets a lot of traffic. Yay, you&amp;rsquo;ve reached your goal of getting good traffic, but it is soon followed by issues with performance and load. I like to call these the growing pains of a website. So as a web developer, I suddenly have the epiphany of &amp;ldquo;Hey, I need to scale my website!&amp;rdquo; What follows next is the biggest mistake a web developer can make:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Published: High Performance Data with Redis and PHP - php[architect]</title>
				<link>https://www.justincarmony.com/2011/07/01/published-high-performance-data-with-redis-and-php-phparchitect/</link>
				<pubDate>Fri, 01 Jul 2011 12:00:00 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/07/01/published-high-performance-data-with-redis-and-php-phparchitect/</guid>
				<description>&lt;p&gt;An article for the July 2011 issue of php[architect].&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;There are times when MySQL, or another RDBMS, cannot perform under certain&#xA;circumstances, such as high volumes of reads and writes. While there are many&#xA;other data store options, there is an excellent candidate when raw speed is a&#xA;must. This article will describe when Redis might be a great fit for your&#xA;application.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.phparch.com/magazine/2011-2/july/&#34;&gt;Read more — get the issue&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Node.js, Evented I/O, and a Cup of Tea</title>
				<link>https://www.justincarmony.com/2011/06/02/node-js-event-driven-development-and-tea/</link>
				<pubDate>Thu, 02 Jun 2011 16:30:42 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/06/02/node-js-event-driven-development-and-tea/</guid>
				<description>&lt;p&gt;All Arthur Dent really wanted was a cup of tea.&lt;/p&gt;&#xA;&lt;p&gt;I was reading &lt;a href=&#34;http://en.wikipedia.org/wiki/The_Restaurant_at_the_End_of_the_Universe&#34;&gt;The Restaurant at the End of the Universe&lt;/a&gt; by Douglas Adams, and I found a humorous example of event driven programming. So I thought I would share.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-story&#34;&gt;The Story&lt;/h3&gt;&#xA;&lt;p&gt;Arthur Dent was one of the last surviving humans after Earth had been destroyed to make way for a new hyperspace bypass. He was living on a spaceship known as the &amp;ldquo;Heart of Gold,&amp;rdquo; which onboard had an amazing piece of equipment called the &amp;ldquo;Nutri-Matic Drinks Synthesizer&amp;rdquo; which &amp;ldquo;claimed to produce the widest possible range of drinks personally matched to the tastes and metabolism of whoever cared to use it.&amp;rdquo;&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL, Redis, and a Billion Rows - A Love Story</title>
				<link>https://www.justincarmony.com/2011/05/23/mysql-redis-and-a-billion-rows-a-love-story/</link>
				<pubDate>Mon, 23 May 2011 15:20:35 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/05/23/mysql-redis-and-a-billion-rows-a-love-story/</guid>
				<description>&lt;p&gt;This last week we pushed live a very large architecture change for &lt;a href=&#34;http://www.datingdna.com/&#34;&gt;Dating DNA&lt;/a&gt;. For those who know me, and have heard me talk about the Dating DNA Scoring System, they know how big of a problem we faced. For those who don&amp;rsquo;t know, let me give some background:&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-problem&#34;&gt;The Problem&lt;/h3&gt;&#xA;&lt;p&gt;With Dating DNA, our goal was to display a compatibility score with &lt;strong&gt;every other user&lt;/strong&gt;. This score is generated by taking two sets of answers to our 20 page survey, and running it through our algorithm. While it is super convenient for our users, this poses a problem. We wanted not only for people to be able to visit a profile and see a score, which is easy to generate a score on demand. We wanted our users to be able to &lt;strong&gt;browse&lt;/strong&gt; other profiles sorted &lt;strong&gt;by&lt;/strong&gt; their score with them. This requires us to &lt;strong&gt;pre-generate&lt;/strong&gt; and &lt;strong&gt;store&lt;/strong&gt; these scores, and then later query them.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Attending PHP Tek 2011</title>
				<link>https://www.justincarmony.com/2011/05/14/attending-php-tek-2011/</link>
				<pubDate>Sat, 14 May 2011 15:24:20 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/05/14/attending-php-tek-2011/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/2011/05/tek11.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2011/05/tek11-300x89.png&#34; alt=&#34;&#34; title=&#34;tek11&#34;&gt;&lt;/a&gt;I&amp;rsquo;m excited to say I will be attending PHP Tek 2011 in one week. This will be the first &amp;ldquo;PHP&amp;rdquo; conference I&amp;rsquo;ve attended, and hope I will learn a lot while also having some fun. It&amp;rsquo;ll be nice to meet some people who I&amp;rsquo;ve only talked to online.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve always wanted to attend a PHP conference for quite some time now, but it seemed for several years either it wasn&amp;rsquo;t in the budget, or I was just too busy. But I kept hearing great things about Tek, and it&amp;rsquo;s organizers, so when the Call for Papers opened up for Tek 11 this year, I submitted. Unfortunately I wasn&amp;rsquo;t able to make it on the presenter list, so I immediately registered and booked my flights so I wouldn&amp;rsquo;t find an excuse later on to not go.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Node.JS, LAMP, and The Future</title>
				<link>https://www.justincarmony.com/2011/04/29/node-js-lamp-and-the-future/</link>
				<pubDate>Fri, 29 Apr 2011 23:35:37 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/04/29/node-js-lamp-and-the-future/</guid>
				<description>&lt;p&gt;I just read an article about &amp;ldquo;&lt;a href=&#34;http://metamarketsgroup.com/blog/node-js-and-the-javascript-age/&#34;&gt;Node.JS and the JavaScript Age&lt;/a&gt;.&amp;rdquo; It was from a very &amp;ldquo;enthusiastic&amp;rdquo; point of view. My guess is they had tinkered around with Node.JS and using with client-side JavaScript rebuilding their Dashboard. You can do some pretty cool stuff with it, and it has a lot of potential. It is very easy to install and get going, much like Redis. Here ia an excerpt from the article:&lt;/p&gt;</description>
			</item>
			<item>
				<title>First PHP Project - Tournament Brackets</title>
				<link>https://www.justincarmony.com/2011/04/12/first-php-project-tournament-brackets/</link>
				<pubDate>Tue, 12 Apr 2011 20:47:01 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/04/12/first-php-project-tournament-brackets/</guid>
				<description>&lt;p&gt;I mentioned on my twitter account that my very first project in PHP is used in production today, and I had a few people ask me what it was. So I thought I would show some examples of it in action. While I had done other things in PHP, this was the first time I had sat down and built someone by myself instead of just modifying someone else&amp;rsquo;s code. I built it for the very first time back in 2005, and since then have had to update it a few times. But it is still used regularly to host CEVO&amp;rsquo;s tournaments.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP Itch to Scratch: Object Notation</title>
				<link>https://www.justincarmony.com/2011/04/12/php-itch-to-scratch-object-notation/</link>
				<pubDate>Tue, 12 Apr 2011 07:07:16 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/04/12/php-itch-to-scratch-object-notation/</guid>
				<description>&lt;p&gt;Marco Tabini, co-founder of &lt;a href=&#34;http://www.phparch.com/&#34;&gt;php|architect&lt;/a&gt; and &lt;a href=&#34;http://blueparabola.com/&#34;&gt;Blue Palabora&lt;/a&gt;, posed an interesting topic: &lt;a href=&#34;http://blog.tabini.ca/2011/04/is-php-running-out-of-itches-to-scratch/&#34;&gt;Is PHP running out of itches to scratch?&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I think it’s fair to say that the pace at which PHP core is being developed has slowed down considerably over the past couple of years, while the development of many projects based on it, like programming and application frameworks, has sped up and continues to grow at a fast pace.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;He goes on to point out some of the reasons for the slow down of development for the PHP Core. But at the end, he states it ultimately boils down to find a better way to bring features build downstream back upstream.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How I Became a Web Developer &amp; CTO</title>
				<link>https://www.justincarmony.com/2011/02/23/how-i-became-a-web-developer-cto/</link>
				<pubDate>Wed, 23 Feb 2011 11:57:56 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/02/23/how-i-became-a-web-developer-cto/</guid>
				<description>&lt;p&gt;&lt;em&gt;Note: many of the screenshots of websites I had done in the past are from the &lt;a href=&#34;http://www.archive.org/web/web.php&#34;&gt;Internet Archive&lt;/a&gt; and many of the images are missing. But it can give an idea on the projects I had worked on. One day I&amp;rsquo;ll try and track down the original files and update the screenshots.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Today some memories came from when I first started with web development. So before I forget anymore of the details, I thought I would share my &lt;em&gt;unique&lt;/em&gt; way I became a web developer. I never went to school to learn Computer Science or Information Systems. I&amp;rsquo;ve had a total of 2 programming classes, which were my in sophomore and junior years of High School, one of which we lovingly nicknamed Warcraft 101, because we would spend the entire time getting out butts kicked in &lt;a href=&#34;http://en.wikipedia.org/wiki/Warcraft_II:_Tides_of_Darkness&#34;&gt;Warcraft 2&lt;/a&gt; by my classmate Daren (We all got A&amp;rsquo;s, we had just finished the entire coursework in 2 and a half weeks).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Using GIT with SVN</title>
				<link>https://www.justincarmony.com/2011/02/21/using-git-with-subversion/</link>
				<pubDate>Mon, 21 Feb 2011 19:50:10 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/02/21/using-git-with-subversion/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2011/02/500px-Git-logo_svg.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2011/02/500px-Git-logo_svg-300x109.png&#34; alt=&#34;&#34; title=&#34;500px-Git-logo_svg&#34;&gt;&lt;/a&gt;Over the last two and a half years, since the day I presented on &lt;a href=&#34;https://www.justincarmony.com/2008/11/13/speaking-utah-php-usergroup-streamlined-web-development/&#34;&gt;Streamlined Web Development with SVN&lt;/a&gt;, I&amp;rsquo;ve been hearing about the Source Control Management tool called &amp;ldquo;&lt;a href=&#34;http://git-scm.com/&#34;&gt;git&lt;/a&gt;.&amp;rdquo; I kept reading about it online, seeing it on the schedules for conferences, and hearing it about it in the different Open Source groups here in Utah. I have been a big time Subversion (SVN) user for several years now, and it has solved my problems&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP, SoapClient, SoapServer, and Timeouts</title>
				<link>https://www.justincarmony.com/2011/02/13/php-soapclient-soapserver-and-timeouts/</link>
				<pubDate>Sun, 13 Feb 2011 00:50:58 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/02/13/php-soapclient-soapserver-and-timeouts/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2011/02/soap.jpg&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2011/02/soap-150x150.jpg&#34; alt=&#34;&#34; title=&#34;soap&#34;&gt;&lt;/a&gt;I ran into an extremely frustrating problems while trying to add a test script for some PHP web services. I won&amp;rsquo;t go into detail on all the different things I went through to debug this problem. But here is what it all boiled down to:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;I have a SOAP Web Service that extends PHP&amp;rsquo;s internal SoapServer class that serves hundreds of thousands of remote devices. Every now and then, our server will have a hiccup and our Web Service won&amp;rsquo;t return valid responses. However, nginx will return requests just fine. So, to monitor the Web Service, I wrote a PHP script using SoapClient to read the WSDL, make several SOAP calls, and make sure the responses are valid.&lt;/p&gt;</description>
			</item>
			<item>
				<title>RESTful Web Services &amp; Nirvana</title>
				<link>https://www.justincarmony.com/2011/01/28/php-restful-web-services-and-nirvana/</link>
				<pubDate>Fri, 28 Jan 2011 22:21:10 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/01/28/php-restful-web-services-and-nirvana/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2011/01/buddhist_circuit_a5_index.jpg&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2011/01/buddhist_circuit_a5_index-227x300.jpg&#34; alt=&#34;&#34; title=&#34;buddhist_circuit_a5_index&#34;&gt;&lt;/a&gt;I&amp;rsquo;ve been hearing, reading, and talking a lot &lt;a href=&#34;http://en.wikipedia.org/wiki/Representational_State_Transfer&#34;&gt;REST&lt;/a&gt;, &lt;a href=&#34;http://www.ibm.com/developerworks/webservices/library/ws-restful/&#34;&gt;RESTful Web Services&lt;/a&gt;, &lt;a href=&#34;http://www.recessframework.org/page/towards-restful-php-5-basic-tips&#34;&gt;how to implement them&lt;/a&gt;, and &lt;a href=&#34;http://tomayko.com/writings/rest-to-my-wife&#34;&gt;even how to explain to your wife about it&lt;/a&gt;. Then I see or read &lt;a href=&#34;http://www.slideshare.net/Wombert/designing-http-interfaces-and-restful-web-services-phpbnl11-20110128&#34;&gt;presentations&lt;/a&gt; about what is and what is not RESTful Web Services. I&amp;rsquo;ve created and consumed quite a few web services, so while I&amp;rsquo;m not a leading expert in the field, I have a lot of experience with them. So instead of explaining over and over again to different people my thoughts on the subject, I&amp;rsquo;m writing about them. For those who have a short attention span, I&amp;rsquo;ll sum up my feelings of the subject in one sentence for you, and then explain in detail for those interested.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP, Nginx, and Output Flushing</title>
				<link>https://www.justincarmony.com/2011/01/25/php-nginx-and-output-flushing/</link>
				<pubDate>Tue, 25 Jan 2011 04:01:00 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/01/25/php-nginx-and-output-flushing/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2011/01/nginx-logo.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2011/01/nginx-logo-300x77.png&#34; alt=&#34;&#34; title=&#34;nginx-logo&#34;&gt;&lt;/a&gt;Alright, so one of the few hangups I&amp;rsquo;ve ran into with moving from &lt;a href=&#34;http://httpd.apache.org/&#34;&gt;Apache&lt;/a&gt; to &lt;a href=&#34;http://nginx.org/&#34;&gt;Nginx&lt;/a&gt; was output buffering. Now, we have a few administrative tools we use to perform large operations on our library and data. These scripts can take normally 3-5 minutes to run, and they output their progress and what step they are on as they run. The way they do this is after ever step in PHP I issue the same two commands:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Debuging with PHP, Stack Traces, and Redis</title>
				<link>https://www.justincarmony.com/2011/01/10/debugging-with-php-stack-traces-and-redis/</link>
				<pubDate>Mon, 10 Jan 2011 23:22:56 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/01/10/debugging-with-php-stack-traces-and-redis/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2011/01/php-logo.jpg&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2011/01/php-logo-300x210.jpg&#34; alt=&#34;&#34; title=&#34;php-logo&#34;&gt;&lt;/a&gt;A cool new trick I found with debugging pieces of code and how often they get executed. We were running into a problem where an expensive query was being called more frequently than I thought it should. This query was only found inside of a single member of a class. However, this class, which retrieves a user&amp;rsquo;s photo album, is used all over the place. So it was really hard to determine exactly where the unneeded queries being executed from.&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL Sleeping Connections &amp; PHP</title>
				<link>https://www.justincarmony.com/2011/01/08/mysql-sleeping-connections-php/</link>
				<pubDate>Sat, 08 Jan 2011 20:51:48 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/01/08/mysql-sleeping-connections-php/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2011/01/mysql_logo.gif&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2011/01/mysql_logo.gif&#34; alt=&#34;&#34; title=&#34;mysql_logo&#34;&gt;&lt;/a&gt;&lt;strong&gt;If you want to skip to the explanation, just read below. But before then, here is a little background.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;a-little-background&#34;&gt;A Little Background&lt;/h2&gt;&#xA;&lt;p&gt;On January 2nd, we started to run into some serious performance problems with &lt;a href=&#34;http://www.datingdna.com/&#34;&gt;Dating DNA&lt;/a&gt;, so we began the process of going and deciding what were our problems, and how to optimize them. At the beginning, the Database was the bottleneck. It would get flooded with requests, and unable to handle them all, each query would slow down. We were using a tool called &lt;a href=&#34;http://www.jetprofiler.com/&#34;&gt;Jet Profiler&lt;/a&gt; (which I will post about more in detail later), but here is a graph it would output before we started out optimizations:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Creating Chatroom / Walls with Redis &amp; PHP</title>
				<link>https://www.justincarmony.com/2011/01/08/creating-chatroom-walls-with-redis-and-php/</link>
				<pubDate>Sat, 08 Jan 2011 00:15:16 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/01/08/creating-chatroom-walls-with-redis-and-php/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2011/01/shot_1290206640.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2011/01/shot_1290206640.png&#34; alt=&#34;&#34; title=&#34;shot_1290206640&#34;&gt;&lt;/a&gt;&lt;em&gt;Preface: This is not a step-by-step tutorial, but more of an outline on what I did. Also, I wrote this really quickly before heading off to dinner, so if there are parts that are unclear, or you have questions about, please leave a comment!&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This last week has been a roller coaster for us at &lt;a href=&#34;http://www.datingdna.com/&#34;&gt;Dating DNA&lt;/a&gt;. We had an excellent holiday season, but with mass volume of new sign ups our servers started to slow down. Severely. Something you never want to have happen. So over this last week I&amp;rsquo;ve worked about 80 hours (though I&amp;rsquo;m a salary employee, woohoo&amp;hellip; :P) and implemented a lot of new performance boots, and I have about four or five blog posts worth of discoveries I need to write. So before I forget them, I&amp;rsquo;m going to write them.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Using Cloud Files w/ CDN for Clipish Library</title>
				<link>https://www.justincarmony.com/2010/12/30/cloudfiles-with-cdn-hosts-clipish-library/</link>
				<pubDate>Thu, 30 Dec 2010 22:19:40 +0000</pubDate>
				<guid>https://www.justincarmony.com/2010/12/30/cloudfiles-with-cdn-hosts-clipish-library/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2010/12/rackspace_logo.gif&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2010/12/rackspace_logo-150x150.gif&#34; alt=&#34;&#34; title=&#34;rackspace_logo&#34;&gt;&lt;/a&gt;Over the last two days we&amp;rsquo;ve moved our &lt;a href=&#34;http://www.clipish.net/&#34;&gt;Clipish&lt;/a&gt; Library from serving the files locally on our web server to &lt;a href=&#34;http://www.rackspacecloud.com/cloud_hosting_products/files/&#34;&gt;Rackspace&amp;rsquo;s Cloud Files&lt;/a&gt; service. It is similar to &lt;a href=&#34;http://aws.amazon.com/s3/&#34;&gt;Amazon S3,&lt;/a&gt; however since we were already using Rackspace Cloud Servers, we thought it would be easier to just keep it all under the same roof. The actual changes in code for using Cloud Files only took about 2 hours, but I had to write a script to loop through our entire library and populate Cloud Files with our current library. What is great is in the future when we add items, our code will automatically add files to Cloud Files via their API. Here is our network graph after switching (Item #3):&lt;/p&gt;</description>
			</item>
			<item>
				<title>New Job: CTO of Dating DNA</title>
				<link>https://www.justincarmony.com/2010/10/19/new-job-cto-of-dating-dna/</link>
				<pubDate>Tue, 19 Oct 2010 06:45:02 +0000</pubDate>
				<guid>https://www.justincarmony.com/2010/10/19/new-job-cto-of-dating-dna/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/2010/10/small-logo.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2010/10/small-logo.png&#34; alt=&#34;&#34; title=&#34;small-logo&#34;&gt;&lt;/a&gt;I&amp;rsquo;ve had a few friends ask me about my current employment, and if I ended up switching jobs. So I thought I would answer them here, or at least have somewhere to point them to. &lt;strong&gt;The answer is: yes and no.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;A quick recap: a few months ago I was given the chance to apply for a position at &lt;a href=&#34;http://www.aruplab.com/&#34;&gt;ARUP Laboratories&lt;/a&gt;, which is the medical testing facility for the University of Utah. It is a great company to work for, and listed by Forbes&amp;rsquo; as one of best companies to work for. During the interview process, when I made it past the initial rounds and was invited down to interview in person with the developer team, I told my biggest client (&lt;a href=&#34;http://www.datingdna.com/&#34;&gt;Dating DNA&lt;/a&gt;) I was interviewing with ARUP. If I got the job, I wouldn&amp;rsquo;t be able to do the same volume of work they needed from me, and they would have to find someone else.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sharing Sessions Across Multiple Servers With Memcache</title>
				<link>https://www.justincarmony.com/2010/09/15/sharing-sessions-across-multiple-servers-with-memcache/</link>
				<pubDate>Wed, 15 Sep 2010 08:52:15 +0000</pubDate>
				<guid>https://www.justincarmony.com/2010/09/15/sharing-sessions-across-multiple-servers-with-memcache/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2010/09/memcached-logo-200x152.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2010/09/memcached-logo-200x152-150x150.png&#34; alt=&#34;&#34; title=&#34;memcached-logo-200x152&#34;&gt;&lt;/a&gt;These last few days have been full of quickly implementing things I&amp;rsquo;ve only read about, but hadn&amp;rsquo;t done for myself.&lt;/p&gt;&#xA;&lt;p&gt;One situation was looking at splitting web traffic across multiple servers. In our case, we had only 2% of our website that would spike and increase our load by %1000 percent (I&amp;rsquo;m not joking) for a short period of time. So instead of doing traditional load balancing, we opted for routing specific functions to a custom subdomain that would run on another server. That way if the thousands of crazy video game players (you know who you are), slam the servers trying to get a cool skin for their online avatar, it would only take down that one section.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP HipHop – What It Means</title>
				<link>https://www.justincarmony.com/2010/02/03/php-hiphop-what-it-means/</link>
				<pubDate>Wed, 03 Feb 2010 16:32:04 +0000</pubDate>
				<guid>https://www.justincarmony.com/2010/02/03/php-hiphop-what-it-means/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2010/02/HipHop_logo_white.png&#34; alt=&#34;HipHop_logo_white&#34; title=&#34;HipHop_logo_white&#34;&gt; There has been a lot of &lt;a href=&#34;http://www.readwriteweb.com/archives/facebook_gets_faster_debuts_homegrown_php_compiler.php&#34;&gt;speculation&lt;/a&gt; about PHP, Facebook, and a big announcement. Over the last few weeks, several predominate PHP community members were invited to the Facebook offices to check something out. Facebook asked the PHP members, as Ben Ramsey put it, to &amp;ldquo;make a gentleman&amp;rsquo;s agreement that I wouldn&amp;rsquo;t talk until FB is ready.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Well, Facebook has made their &lt;a href=&#34;http://developers.facebook.com/news.php?blog=1&amp;amp;story=358&#34;&gt;announcement&lt;/a&gt;, and it is called HipHop. Here is an excerpt:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Teaching PHP This Year</title>
				<link>https://www.justincarmony.com/2010/01/16/teaching-php-this-year/</link>
				<pubDate>Sat, 16 Jan 2010 18:34:41 +0000</pubDate>
				<guid>https://www.justincarmony.com/2010/01/16/teaching-php-this-year/</guid>
				<description>&lt;p&gt;I will be giving short presentations on PHP for beginners at the monthly Utah PHP Usergroup. Here is the annoucement:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Greets all,&lt;/p&gt;&#xA;&lt;p&gt;Being in my seat, I&amp;rsquo;ve heard from many people over the course of this past&#xA;year who have lost / changed employment. I know there is concern by many&#xA;who are employed as to what will happen long term. The reality of the matter&#xA;is this, though. Recession or no, change happens and the best way to be&#xA;ready for it is to have a great skill set. To that end, we are&#xA;restructuring the way our meetings will be.&lt;/p&gt;</description>
			</item>
			<item>
				<title>My 2009 Technology Recap</title>
				<link>https://www.justincarmony.com/2009/12/23/my-2009-technology-recap/</link>
				<pubDate>Wed, 23 Dec 2009 18:55:31 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/12/23/my-2009-technology-recap/</guid>
				<description>&lt;p&gt;Its been two years now that I&amp;rsquo;ve been a more or less &amp;ldquo;serious blogger.&amp;rdquo; I had using the term blogger, since when people hear about blogs, they think of people either detailing their entire lives, or pumping some angel. For me, blogging has just been a way to share information with people I know locally, and those I don&amp;rsquo;t even know who find my blog via searching. I&amp;rsquo;ve had a few spurts where I blogged quite frequently, but for the most part it was just here and there.&lt;/p&gt;</description>
			</item>
			<item>
				<title>My PHP User Group Experience</title>
				<link>https://www.justincarmony.com/2009/11/27/my-php-user-group-experience/</link>
				<pubDate>Fri, 27 Nov 2009 10:46:09 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/11/27/my-php-user-group-experience/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been meaning to blog about this for awhile now, but never got around to it. I woke up and couldn&amp;rsquo;t sleep only 1 hour before heading out for some Black Friday madness. Might as well make some use of me being awake.&lt;/p&gt;&#xA;&lt;p&gt;I will have to say that belonging to a local PHP user group has been an awesome experience. A little over a year ago I somehow stumbled upon the &lt;a href=&#34;http://uphpu.org/&#34; title=&#34;Utah PHP Usergroup&#34;&gt;Utah PHP Usergroup&lt;/a&gt;, ran by a now good friend Victor Villa. I had no idea other people were meeting on a monthly basis to talk about PHP and web development stuff. I joined their IRC channel on freenode, and I instantly found a great little resource for myself. Within two months of regularly using the IRC channel, I decided to drive the hour down to where the meetings are held. I now go almost every month whenever possible. I miss now and then due to family functions and such, but for the most part I make the trek down from Ogden to Murray to enjoy the meetings. There are a few things that I found local user groups (LUGs) can provide others that I&amp;rsquo;d like to share.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Presentation: Real Life Scaling</title>
				<link>https://www.justincarmony.com/2009/10/11/presentation-real-life-scaling/</link>
				<pubDate>Sun, 11 Oct 2009 18:39:44 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/10/11/presentation-real-life-scaling/</guid>
				<description>&lt;p&gt;Here are my slides for the presentation that I gave at the Utah Open Source Conference on Friday. It was an awesome conference, and I am glad that I was able to be involved.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.slideshare.net/JustinCarmony/real-life-scaling-a-tale-of-two-websites&#34; title=&#34;Real Life Scaling: A Tale of Two Websites&#34;&gt;Real Life Scaling: A Tale of Two Websites&lt;/a&gt;&lt;a href=&#34;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=reallifescaling-ataleoftwowebsites-small-091010143045-phpapp02&amp;amp;stripped_title=real-life-scaling-a-tale-of-two-websites&#34;&gt;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=reallifescaling-ataleoftwowebsites-small-091010143045-phpapp02&amp;amp;stripped_title=real-life-scaling-a-tale-of-two-websites&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;View more &lt;a href=&#34;http://www.slideshare.net/&#34;&gt;presentations&lt;/a&gt; from &lt;a href=&#34;http://www.slideshare.net/JustinCarmony&#34;&gt;Justin Carmony&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you have any questions or comments, please feel free to leave them below.&lt;/p&gt;</description>
			</item>
			<item>
				<title>&#34;Nerfing&#34; a PHP Object</title>
				<link>https://www.justincarmony.com/2009/09/20/nerfing-a-php-object/</link>
				<pubDate>Sun, 20 Sep 2009 18:26:35 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/09/20/nerfing-a-php-object/</guid>
				<description>&lt;p&gt;I was trying to think of something with PHP I could blog about that would be short and sweet. Then I thought of something that a good friend of my taught me: &lt;strong&gt;nerfing objects&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Many times while working with PHP and bigger frameworks, you&amp;rsquo;ll have classes that extend classes that extand classes. We have an &lt;a href=&#34;http://en.wikipedia.org/wiki/Object-relational_mapping&#34;&gt;ORM system&lt;/a&gt; that interfaces our Database with PHP classes. This makes accessing and updating information easy for us. So lets say we have a class called &amp;ldquo;Post&amp;rdquo; that stores a blog post. Our ORM class just takes a few lines of code to hook up our &amp;ldquo;Post&amp;rdquo; class to the &amp;ldquo;posts&amp;rdquo; database tables. We just extend our base DataObject, which contains all sorts of references to other class isntances. Long story short, this PHP code is awesome, but there is one issue.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Scheduled Posts in WordPress</title>
				<link>https://www.justincarmony.com/2009/09/19/scheduled-posts-in-wordpress/</link>
				<pubDate>Sat, 19 Sep 2009 18:33:35 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/09/19/scheduled-posts-in-wordpress/</guid>
				<description>&lt;p&gt;So I&amp;rsquo;ve already had a few mess ups with the scheduling of posts in WordPress, where I on accidentally schedule it for an odd time, or publish it immediately. So I&amp;rsquo;m trying to find a plugin to help me keep track of scheduled posts. I&amp;rsquo;ve found a plugin for my dashboard, so it shows what it upcoming, but doesn&amp;rsquo;t help me easily manage them. What I&amp;rsquo;m looking for is something that allows me to re-schedule my posts quickly. Lets say I have 7 scheduled posts, one for each day. Now lets say some major news breaks, and I want to blog about it. But I want it to be current, and not wait 7 days by putting it at the end of my schedule. I could publish it immediately, but then I want to bump my entire schedule by a day.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Speaking: Utah Open Source Conference 2009</title>
				<link>https://www.justincarmony.com/2009/09/16/speaking-utah-open-source-conference-2009/</link>
				<pubDate>Wed, 16 Sep 2009 18:00:13 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/09/16/speaking-utah-open-source-conference-2009/</guid>
				<description>&lt;p&gt;I will be speaking this year at the &lt;a href=&#34;http://www.utosc.com/&#34; title=&#34;Utah Open Source Conference&#34;&gt;Utah Open Source Conference&lt;/a&gt; this year. My presentation is &amp;ldquo;Real Life Scaling: A Tale of Two Websites.&amp;rdquo; Here is the abstract:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Scaling is a real issue for many websites. However, many developers try to implement solutions used by the giants of the internet: Google, Facebook, Twitter, WordPress, etc. However, many of these techniques are designed for very unique and high demand situations. Implementing these techniques prematurely to smaller websites can lead to overly-complex solutions that can be difficult to manage, and even hinder progress.&lt;/p&gt;</description>
			</item>
			<item>
				<title>So You Want To Be A Web Developer?</title>
				<link>https://www.justincarmony.com/2009/09/14/so-you-want-to-be-a-web-developer/</link>
				<pubDate>Mon, 14 Sep 2009 14:54:35 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/09/14/so-you-want-to-be-a-web-developer/</guid>
				<description>&lt;p&gt;&lt;strong&gt;&lt;tangent&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This last week I&amp;rsquo;ve been talking with my brother Brack, who to say the least, absolutely abhors his job. Well, maybe abhor is a little strong, but he is extremely frustrated and unsatisfied. He works at a air force base in the human resource department and he basically helps provide statistical data for departments on who, what, and where to hire new help. Since he is a &amp;ldquo;wiz&amp;rdquo; at solving problems, computers, and making this more efficient, he has streamlined his work process with several nifty Excel spreadsheets and Java programs. He can now take a weeks worth of work and do it in one morning.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Talk: Effective Caching with PHP &amp; Memcached - Utah PHP Usergroup</title>
				<link>https://www.justincarmony.com/2009/08/20/talk-effective-caching-with-php-memcached-utah-php-usergroup/</link>
				<pubDate>Thu, 20 Aug 2009 20:00:20 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/08/20/talk-effective-caching-with-php-memcached-utah-php-usergroup/</guid>
				<description>&lt;h2 id=&#34;slides&#34;&gt;Slides&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.slideshare.net/JustinCarmony/effectice-caching-w-php-caching&#34;&gt;https://www.slideshare.net/JustinCarmony/effectice-caching-w-php-caching&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;embed&#34;&gt;&#xA;  &lt;iframe src=&#34;https://www.slideshare.net/slideshow/embed_code/1891609&#34;&#xA;          title=&#34;SlideShare presentation&#34; loading=&#34;lazy&#34;&#xA;          allowfullscreen frameborder=&#34;0&#34;&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;</description>
			</item>
			<item>
				<title>Writing Effictive PHP Caches with Memcached</title>
				<link>https://www.justincarmony.com/2009/06/24/writing-effictive-php-caches-with-memcached/</link>
				<pubDate>Wed, 24 Jun 2009 22:52:15 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/06/24/writing-effictive-php-caches-with-memcached/</guid>
				<description>&lt;p&gt;**** Update: I gave a presentation at the Utah PHP Usergroup about memcached that went really well. Here are the slides I used:*&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.slideshare.net/JustinCarmony/effectice-caching-w-php-caching&#34; title=&#34;Effectice Caching w/ PHP + Caching&#34;&gt;Effectice Caching w/ PHP + Caching&lt;/a&gt;&lt;a href=&#34;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=memcachedandphppresentation-090821151850-phpapp02&amp;amp;stripped_title=effectice-caching-w-php-caching&#34;&gt;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=memcachedandphppresentation-090821151850-phpapp02&amp;amp;stripped_title=effectice-caching-w-php-caching&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;View more &lt;a href=&#34;http://www.slideshare.net/&#34;&gt;presentations&lt;/a&gt; from &lt;a href=&#34;http://www.slideshare.net/JustinCarmony&#34;&gt;Justin Carmony&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Delayed, yet again, at the airport. Time to get this article written once and for all.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;This is a rough draft, I still need to go through and proof read this article. However, several friends were anxious to read it, so here it is rough for now. :P&lt;/em&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Utah Monthly Geek Lunch</title>
				<link>https://www.justincarmony.com/2009/05/28/utah-monthly-geek-lunch/</link>
				<pubDate>Thu, 28 May 2009 19:27:28 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/05/28/utah-monthly-geek-lunch/</guid>
				<description>&lt;p&gt;Just thought I&amp;rsquo;d advertise this a little. I&amp;rsquo;m going to this month&amp;rsquo;s Geek Lunch in Layton at Pad Thai. I&amp;rsquo;ve never actually been there before, but I&amp;rsquo;ve heard goo things. If you&amp;rsquo;re in the Layton area on Friday around 12:30 to 2:00, come have some Thai food! They are also having one in SLC and Provo area. Here is the info:&lt;/p&gt;&#xA;&lt;h3 id=&#34;salt-lake-county&#34;&gt;Salt Lake County&lt;/h3&gt;&#xA;&lt;p&gt;Fri, May 29, 12:30pm – 2pm&#xA;My Thai, 1425 S 300 W, SLC, UT (&lt;a href=&#34;http://sn.im/hyon2&#34;&gt;map&lt;/a&gt;)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Steamlined Web Development Presentation Video</title>
				<link>https://www.justincarmony.com/2009/05/27/steamlined-web-development-presentation-video/</link>
				<pubDate>Wed, 27 May 2009 14:41:26 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/05/27/steamlined-web-development-presentation-video/</guid>
				<description>&lt;p&gt;Alright, it looks like the Victor at UPHPU has gotten my presentation up on Steamlining your web development. Since it was the first night Victor had tried to capture video &amp;amp; audio to mesh them together, the video on the presentation is a little bit further ahead than the audio.  However, I think the presentation went quite well. You can view all the UPHPU meeting videos &lt;a href=&#34;http://uphpu.org/meetinglibrary/&#34; title=&#34;PHP Video Tutorials&#34;&gt;here&lt;/a&gt;. Here is the presentation I gave:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Memcached: Simple, Effective, and Powerful</title>
				<link>https://www.justincarmony.com/2009/05/20/memcached-simple-effective-and-powerful/</link>
				<pubDate>Wed, 20 May 2009 16:12:01 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/05/20/memcached-simple-effective-and-powerful/</guid>
				<description>&lt;p&gt;Realizing once again I haven&amp;rsquo;t written a blog post for quite some time, I thought I would just write a few smaller posts on things I&amp;rsquo;ve learned these last few months. Hopefully I can get back into the habit of blogging regularly again.&lt;/p&gt;&#xA;&lt;p&gt;This last month I finally broke down and learned how to use &lt;a href=&#34;http://www.danga.com/memcached/&#34;&gt;memcached&lt;/a&gt;.  While I have known about memcached for a very long time, I just never got around to using it. While I heard it was beyond easy to implement, I still assumed it would take a few days to get the hang of it and figure out its quirks. However, when the forces of high load on a webserver and the file-based caching system that I have previously used were found to be too I/O intensive, I had no choice but to take the plunge.&lt;/p&gt;</description>
			</item>
			<item>
				<title>XAMPP for Mac - My Frustrations &amp; Solutions</title>
				<link>https://www.justincarmony.com/2009/02/14/xampp-for-mac-my-frustrations-solutions/</link>
				<pubDate>Sat, 14 Feb 2009 23:15:34 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/02/14/xampp-for-mac-my-frustrations-solutions/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/2009/02/xampp-objectdock.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2009/02/xampp-objectdock.png&#34; alt=&#34;&#34; title=&#34;xampp-objectdock&#34;&gt;&lt;/a&gt;These last few days I&amp;rsquo;ve been trying to get &lt;a href=&#34;http://www.apachefriends.org/en/xampp.html&#34;&gt;XAMPP&lt;/a&gt; to work on my MacBook Pro these last couple of days and it has been &lt;em&gt;&lt;strong&gt;frustrating&lt;/strong&gt;&lt;/em&gt;! It seemed I kept running into more and more problems. For those who don&amp;rsquo;t know, XAMPP is tool for developers to run a LAMP stack (Linux, Apache, MySQL, PHP) on your machine locally. I&amp;rsquo;ve been running it on my Windows machines for years, and I have been running my production servers on Linux.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Aptana Studio – PHP IDE Alternative to PDT, Zend Studio</title>
				<link>https://www.justincarmony.com/2009/02/07/aptana-studio-php-ide-alternative-to-pdt-zend-studio/</link>
				<pubDate>Sat, 07 Feb 2009 05:09:53 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/02/07/aptana-studio-php-ide-alternative-to-pdt-zend-studio/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2009/02/aptana-studio-240x300.jpg&#34; alt=&#34;aptana-studio&#34; title=&#34;aptana-studio&#34;&gt;The other day I ran into another option as an IDE for PHP. If you&amp;rsquo;ve been following my blog, I&amp;rsquo;ve been a big user of &lt;a href=&#34;http://www.justincarmony.com/blog/tag/pdt/&#34;&gt;Eclipse PDT&lt;/a&gt; (&lt;a href=&#34;http://www.eclipse.org/pdt/&#34;&gt;http://www.eclipse.org/pdt/&lt;/a&gt;) and &lt;a href=&#34;http://www.justincarmony.com/blog/tag/zend-studio/&#34;&gt;Zend Studio&lt;/a&gt; (&lt;a href=&#34;http://www.zend.com/en/products/studio/&#34;&gt;http://www.zend.com/en/products/studio/&lt;/a&gt;). There is a third one to add to the list, &lt;a href=&#34;http://www.aptana.com/&#34;&gt;Aptana Studio&lt;/a&gt;. It is built on-top of the Eclipse framework, like PDT and Zend Studio. It has several extensions: Python, Rails, PHP, and others. If you&amp;rsquo;ve read my post on &lt;a href=&#34;https://www.justincarmony.com/2009/01/16/consumer-linux-when-and-how/&#34;&gt;Consumer Linux&lt;/a&gt;, I talk a lot about &amp;ldquo;Power &amp;amp; Polish.&amp;rdquo; Here is my definition:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Great PHP Article: Leadership in Software Development</title>
				<link>https://www.justincarmony.com/2009/01/25/great-php-article-leadership-in-software-development/</link>
				<pubDate>Sun, 25 Jan 2009 18:24:48 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/01/25/great-php-article-leadership-in-software-development/</guid>
				<description>&lt;p&gt;I just read a &lt;a href=&#34;http://blog.calevans.com/2009/01/25/leadership-in-software-development/&#34;&gt;good article&lt;/a&gt; on PHP Development by Cal Evans, an active member in the PHP community. Its about managers, developers, and the problems they face in the IT industry. Here is an excerpt:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;There are very few professions that combine the creativity involved in good software development and the rigorous deadlines, often imposed from the outside. Hurry up and create! The ideas have to keep flowing, they have to be scheduled, and they have to be completed on time. If you have to go figure something out, go. But make sure you are back after lunch and make sure your schedule doesn’t slip. Developers, especially now as we work in Web years, are under increasing pressure to “Get it out the door fast!”.&lt;/p&gt;</description>
			</item>
			<item>
				<title>List of 50 PHP Tools</title>
				<link>https://www.justincarmony.com/2009/01/21/list-of-50-php-tools/</link>
				<pubDate>Wed, 21 Jan 2009 18:08:58 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/01/21/list-of-50-php-tools/</guid>
				<description>&lt;p&gt;Found a &lt;a href=&#34;http://www.smashingmagazine.com/2009/01/20/50-extremely-useful-php-tools/&#34;&gt;great article&lt;/a&gt; listing popular tools that every PHP developer should be away of. Here is an excerpt:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt; is one of the most widely used open-source server-side scripting languages that exist today. With over 20 million indexed domains using PHP, including major websites like Facebook, Digg and WordPress, there are good reasons why many Web developers prefer it to other server-side scripting languages, such as Python and Ruby.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&amp;amp;lang=php&amp;amp;lang2=ruby&#34;&gt;PHP is faster&lt;/a&gt; (&lt;em&gt;updated&lt;/em&gt;), and it is &lt;a href=&#34;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&#34;&gt;the most used scripting language&lt;/a&gt; in practice; it has detailed documentation, a huge community, numerous ready-to-use scripts and well-supported frameworks; and most importantly, it’s much easier to get started with PHP than with other scripting languages (Python, for example). That’s why it makes perfect sense to provide the huge community of PHP developers with an overview of useful tools and resources that can make their development process easier and more effective.&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes</title>
				<link>https://www.justincarmony.com/2009/01/13/mysql-40-million-rows-myisam-innodb/</link>
				<pubDate>Tue, 13 Jan 2009 05:13:08 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/01/13/mysql-40-million-rows-myisam-innodb/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2009/01/logo_mysql.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2009/01/logo_mysql-296x300.png&#34; alt=&#34;&#34; title=&#34;logo_mysql&#34;&gt;&lt;/a&gt;&lt;em&gt;&lt;strong&gt;Warning: This blog post is NOT a walk-through or tutorial. If you don&amp;rsquo;t know what you&amp;rsquo;re doing, you could seriously screw up your database. This is just talking theory and ideas on how I solved my problem.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The other night (really, the other morning) I had the wonderful pleasure of trying to convert a table with 40 millions from MyISAM to InnoDB. The reason for the conversion was this table had a high amount of queries, and a high amount of writes. With this table growing and updating daily, the table locks were killing us. Because MyISAM needs to peform a lock on the entire table, we would have dozens of queries backlog as locks and writes were taking place. It was causing the site to screech to a halt, waiting for the locks the be released. It was a total nightmare.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Characteristics of Good PHP Code</title>
				<link>https://www.justincarmony.com/2009/01/12/characteristics-of-good-php-code/</link>
				<pubDate>Mon, 12 Jan 2009 01:20:02 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/01/12/characteristics-of-good-php-code/</guid>
				<description>&lt;p&gt;At the time I am sitting in the Las Vegas airport waiting for a very delayed layover flight to San Diego. Wonderful weather causing all sorts of headaches. So I&amp;rsquo;ve decided to make the best of my time by writing the introductory article to a series of PHP articles. I&amp;rsquo;ve had this idea for a while, and now I&amp;rsquo;m going to finally sit down and write it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;A Different Type of Article&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Bad Website Usability - TGI Fridays</title>
				<link>https://www.justincarmony.com/2008/12/13/bad-website-usability-tgi-fridays/</link>
				<pubDate>Sat, 13 Dec 2008 01:36:54 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/12/13/bad-website-usability-tgi-fridays/</guid>
				<description>&lt;p&gt;Here is a little usability lesson for everyone: vertical text can be very hard to read, especially when it is rotated. Here is a &lt;a href=&#34;http://screencast.com/t/xjWwhZIDem&#34;&gt;video&lt;/a&gt; taken of &lt;a href=&#34;http://www.tgifridays.com/menus/Menus.aspx&#34;&gt;TGI Friday&amp;rsquo;s website&lt;/a&gt;. Hopefully this can be a lesson for web developers about how frustrating these kinds of techniques can be for users.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://content.screencast.com/users/JustinCarmony/folders/Jing/media/8605f50b-0ac2-41aa-b4dd-560fc711a627/bootstrap.swf&#34;&gt;http://content.screencast.com/users/JustinCarmony/folders/Jing/media/8605f50b-0ac2-41aa-b4dd-560fc711a627/bootstrap.swf&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP Singletons, Sub-Classing, and HAS-A Relationships</title>
				<link>https://www.justincarmony.com/2008/12/03/php-singletons-sub-classing-and-has-a-relationships/</link>
				<pubDate>Wed, 03 Dec 2008 06:37:53 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/12/03/php-singletons-sub-classing-and-has-a-relationships/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been very busy these last fews weeks and have neglected making any posts. While there are a variety of subjects I&amp;rsquo;d love to post about, they&amp;rsquo;ll most likely have to wait until the next year. However, I thought I might be able to throw up a quick example of how to use PHP Singletons and extending public classes.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;http://en.wikipedia.org/wiki/Singleton_pattern#PHP_5&#34;&gt;Singleton Pattern&lt;/a&gt; &amp;ldquo;is a &lt;a href=&#34;http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29&#34; title=&#34;Design pattern (computer science)&#34;&gt;design pattern&lt;/a&gt; that is used to restrict &lt;a href=&#34;http://en.wikipedia.org/wiki/Instantiation_%28computer_science%29&#34; title=&#34;Instantiation (computer science)&#34;&gt;instantiation&lt;/a&gt; of a class to one &lt;a href=&#34;http://en.wikipedia.org/wiki/Object-oriented_programming&#34; title=&#34;Object-oriented programming&#34;&gt;object&lt;/a&gt;.&amp;rdquo; (Wikipedia) In PHP, a singleton is created by making the constructor protected or private. &amp;ldquo;How do you create an object then?&amp;rdquo; Its done in two parts. First, you make a static class variable that is private, to hold the instance. Second, create a static function to return the instance. Here is an example:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Speaking: Utah PHP Usergroup – Streamlined Web Development</title>
				<link>https://www.justincarmony.com/2008/11/13/speaking-utah-php-usergroup-streamlined-web-development/</link>
				<pubDate>Thu, 13 Nov 2008 17:41:51 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/11/13/speaking-utah-php-usergroup-streamlined-web-development/</guid>
				<description>&lt;p&gt;Next Thursday, November 20th, at 7 PM Mountain Time (9PM EST, 6PM PST) I will be speaking at the Utah PHP Usergroup meeting on &amp;ldquo;Streamlined Web Development.&amp;rdquo; I will be speaking with Kevin Carter from &lt;a href=&#34;http://www.codegreene.com/&#34;&gt;Code Greene&lt;/a&gt;. Here is the annoucement on the &lt;a href=&#34;http://uphpu.org&#34;&gt;UPHPU website&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I’m very pleased to announce the topic for November’s UPHPU Meeting : Streamlined Web Development using a VCS (Version Control System) and Trac.&lt;/p&gt;&#xA;&lt;p&gt;Starting the meeting off will be Code Greene’s Kevin Carter. Kevin, who has used Git in a production environment for several months now, will be presenting a primer on how to get started with Git. Additionally, he’ll cover the advantages of distributed source code control and possibly some topics on using git in an svn eniroment. His blog can be found at &lt;a href=&#34;http://dexterthedragon.com&#34;&gt;http://dexterthedragon.com&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL - Does Table Exist w/o Throwing Errors</title>
				<link>https://www.justincarmony.com/2008/11/04/mysql-does-table-exist-wo-throwing-errors/</link>
				<pubDate>Tue, 04 Nov 2008 00:34:33 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/11/04/mysql-does-table-exist-wo-throwing-errors/</guid>
				<description>&lt;p&gt;There are times where you would like to know if a table exists before executing an query. Most solutions require having MySQL throw an error saying &amp;ldquo;table does not exist,&amp;rdquo; but I prefer a cleaner way. I found on this forum post a clean way to do it:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/* example with table name: table_name */&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;SHOW&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;TABLES&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;LIKE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;table_name&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This solution will return 1 row if it exists, and 0 rows if it doesn&amp;rsquo;t. Here is a PHP example using this:&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP Design - Biggest Database Oversights</title>
				<link>https://www.justincarmony.com/2008/10/25/php-design-biggest-database-oversights/</link>
				<pubDate>Sat, 25 Oct 2008 07:56:44 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/10/25/php-design-biggest-database-oversights/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2008/10/database-vector.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2008/10/database-vector.png&#34; alt=&#34;&#34; title=&#34;database-vector&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Over the last three years I&amp;rsquo;ve had the opportunity to work on several PHP projects, some of them having grown rapidly and required to scale quickly. Three in particular have been a fantastic learning experience for me. Now I don&amp;rsquo;t consider myself a total expert, but I thought I would share my experiences. Many PHP developers are self-taught, like I was, and are learning PHP to be able to create dynamic websites. Many haven&amp;rsquo;t had studied or learned best practices for Object-Oriented Programming (OOP). They are web designers first, and programming in PHP is just a way to do things simple HTML can&amp;rsquo;t do.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP Video Tutorial – Getting Started – Installing XAMPP</title>
				<link>https://www.justincarmony.com/2008/10/15/php-video-tutorial-getting-started-installing-xampp/</link>
				<pubDate>Wed, 15 Oct 2008 01:32:30 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/10/15/php-video-tutorial-getting-started-installing-xampp/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2008/10/12381.jpg&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2008/10/12381-300x90.jpg&#34; alt=&#34;&#34; title=&#34;12381&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve decided to give this a try and make a video on Installing &amp;amp; Running XAMPP, the easy to instal web stack for developing websites on your own computer. This video is for beginners who need help walking through the installation of XAMPP.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.justincarmony.com/blog/videos/php_tutorial_xampp/php_tutorial_xampp.html&#34;&gt;&lt;strong&gt;View Video Tutorial - Installing XAMPP&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you have any questions or comments, feel free to leave them here. If you enjoyed this tutorial and are in need of a web server, check out &lt;a href=&#34;http://www.shareasale.com/r.cfm?b=113509&amp;amp;u=301560&amp;amp;m=15960&amp;amp;urllink=&amp;amp;afftrack=&#34;&gt;Layered Tech&lt;/a&gt;, a server host that I &lt;a href=&#34;http://www.justincarmony.com/blog/recommendations/layered-tech/&#34;&gt;highly recommend.&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Local LAMP Developement &amp; User Content</title>
				<link>https://www.justincarmony.com/2008/10/10/local-lamp-developement-user-content/</link>
				<pubDate>Fri, 10 Oct 2008 20:37:26 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/10/10/local-lamp-developement-user-content/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve come up with a simple solution for handling user uploaded content when trying to work in a local development environment. I&amp;rsquo;ve installed XAMPP on my windows machine and at the beginning of every week I take a database snapshot and update my local database. I had a pretty smooth system going with one problem: user uploaded content.&lt;/p&gt;&#xA;&lt;p&gt;When working with social networking sites, many times they allow for users to upload their own videos, pictures, etc. My current project wasn&amp;rsquo;t different, but I didn&amp;rsquo;t want to download 80GB of user content every week to store on my PC. I wanted a way to point my browser to the live server to get recent images, etc.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Zend Studio vs PHP Development Tools</title>
				<link>https://www.justincarmony.com/2008/09/24/zend-studio-vs-php-development-tools/</link>
				<pubDate>Wed, 24 Sep 2008 17:41:44 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/09/24/zend-studio-vs-php-development-tools/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2008/09/zend-studio-vs-pdt1.jpg&#34; alt=&#34;zend-studio-vs-pdt.jpg&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;http://www.zend.com/en/products/studio/&#34;&gt;Zend Studio&lt;/a&gt; (ZS) for the last two years. It is developed by &lt;a href=&#34;http://www.zend.com/&#34;&gt;Zend&lt;/a&gt;, the company behind &lt;a href=&#34;http://www.php.net/&#34;&gt;PHP&lt;/a&gt;. The very first time I used it and it was able to auto-complete my custom PHP classes I was sold. With version 6 of Zend Studio, they integrated Zend Studio with &lt;a href=&#34;http://www.eclipse.org/&#34;&gt;Eclipse&lt;/a&gt;, a popular IDE framework. I&amp;rsquo;ve been mostly happy with the new version, where as in some areas I felt that things were took a step back.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP 6 Books - Did I Miss Something?</title>
				<link>https://www.justincarmony.com/2008/09/23/php-6-books-did-i-miss-something/</link>
				<pubDate>Tue, 23 Sep 2008 02:46:30 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/09/23/php-6-books-did-i-miss-something/</guid>
				<description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update 01-21-12: since I was contacted by the Author of one of these books, and a few years have gone by and I&amp;rsquo;m more familiar with the publishing industry, I was unfair to place blame on the author for the decision to market these books as PHP6. Authors have almost no say in how their books are marketed. Thus, the blame for these types of tactics, rest solely on the publisher.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPress &amp; OOP</title>
				<link>https://www.justincarmony.com/2008/09/22/wordpress-oop/</link>
				<pubDate>Mon, 22 Sep 2008 02:55:21 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/09/22/wordpress-oop/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2008/09/wordpress-oop.jpg&#34; alt=&#34;wordpress-oop.jpg&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been hacking around with WordPress these last few weeks, and I&amp;rsquo;ve loved using it so far. My only concern has been that WP seems to be coded with the desire to be compatible with PHP 4.3. I just wonder when WordPress will take a OOP approach to it&amp;rsquo;s design. It would make things more simple for new developers.&lt;/p&gt;&#xA;&lt;p&gt;I would love for WordPress 3.0 to have an OOP approach. I would love for one of the goals of WP 3.0 would be for it&amp;rsquo;s OOP core would be taken and used in another other website. A great example would be with a Dating Website I&amp;rsquo;m working on. It would be great to be able to have members have their own blogs and we could have it 100% integrated with our system. Right now I feel like it would take a lot &amp;ldquo;hacking&amp;rdquo; methods to get it to work, and when upgrades to WordPress would come it would be hard to upgrade. I really think WP needs to bite the bullet and make the change to OOP.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Web Development 10-Years Ago &amp; Now</title>
				<link>https://www.justincarmony.com/2008/07/16/web-development-10-years-ago-now/</link>
				<pubDate>Wed, 16 Jul 2008 01:43:55 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/07/16/web-development-10-years-ago-now/</guid>
				<description>&lt;p&gt;This week&amp;rsquo;s &lt;a href=&#34;http://lorelle.wordpress.com/2008/07/10/blog-challenge-describe-your-software-then-and-now/&#34;&gt;blogging challenge&lt;/a&gt; was our computer software now and then. Lorelle talked about the different versions of WordPress over time. I thought it was an interesting article.&lt;/p&gt;&#xA;&lt;h3 id=&#34;10-years-ago&#34;&gt;10 Years Ago&lt;/h3&gt;&#xA;&lt;p&gt;I started web development back in 1997. My tools back then were:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Notepad - That right, the one and only. It was how most people did their websites back in the day. It hasn&amp;rsquo;t changed much over the years.&#xA;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2008/07/notepad1033311561616.gif&#34; alt=&#34;Notepad1033311561616.gif&#34;&gt;&lt;/li&gt;&#xA;&lt;li&gt;Adobe Photoshop v4 - The must have program for image editing:&#xA;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2008/07/400-1-1.jpg&#34; alt=&#34;Adobe Photoshop 4.0&#34;&gt;&lt;/li&gt;&#xA;&lt;li&gt;Dreamweaver 1.0 - Thats right, I&amp;rsquo;ve been with dreamweaver since the beginning! (Sorry, I couldn&amp;rsquo;t find a screenshot)&lt;/li&gt;&#xA;&lt;li&gt;ws_ftp95 - This old school FTP program was the bomb in my eyes since day 1. Boy have things come a long.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Technology wise I was serving up static HTML pages. When I had mastered Dreamweaver&amp;rsquo;s template system, I was able to run a website with 20+ pages not too bad. It was definitely interesting. Every time I made a change, it would go through and update every single page, and then I would upload every page to the server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL &amp; PHP  – SQL_CALC_FOUND_ROWS – An easy way to get the total number of rows regardless of LIMIT</title>
				<link>https://www.justincarmony.com/2008/07/01/mysql-php-sql_calc_found_rows-an-easy-way-to-get-the-total-number-of-rows-regardless-of-limit/</link>
				<pubDate>Tue, 01 Jul 2008 20:30:48 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/07/01/mysql-php-sql_calc_found_rows-an-easy-way-to-get-the-total-number-of-rows-regardless-of-limit/</guid>
				<description>&lt;p&gt;Here is a little trick I found awhile back. I faced a challenge several months ago where I had to query a large, complex data result from MySQL. I &amp;ldquo;paged&amp;rdquo; through the results using LIMIT and OFFSET. However, I wanted to know the total number of rows w/o the LIMIT. The previous coder accomplished this by a query before appending the LIMIT statement at the end. This turned out to be very inefficient due to MySQL put together the 10000+ rows and sent it to PHP ready to be parsed, only to have the function mysql_num_rows() to be executed on it.&lt;/p&gt;</description>
			</item>
			<item>
				<title>LT PACT 2008 - Day 1</title>
				<link>https://www.justincarmony.com/2008/06/27/lt-pact-2008-day-1/</link>
				<pubDate>Fri, 27 Jun 2008 06:31:52 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/06/27/lt-pact-2008-day-1/</guid>
				<description>&lt;p&gt;Whew, today was a good day. I took a lot of notes and over the next few days I&amp;rsquo;ll be blogging on the different topics. Hopefully you&amp;rsquo;ll enjoy.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP Practices: Buffering your autoload</title>
				<link>https://www.justincarmony.com/2008/06/24/php-practices-buffering-your-autoload/</link>
				<pubDate>Tue, 24 Jun 2008 02:44:56 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/06/24/php-practices-buffering-your-autoload/</guid>
				<description>&lt;p&gt;I spent 2 hours working on a problem with PHP, Doc-Types, and a website. We started to see symptoms across our website where we would get a 12px space on the top of the page on IE7 (Internet Explorer 7) and FF3 (FireFox 3). We started combing through the HTML markup our website was returning, and parsing it via &lt;a href=&#34;http://www.getfirebug.com/&#34; title=&#34;FireBug - FireFox Web Developer Plugin&#34;&gt;FireBug&lt;/a&gt; I could tell that something was causing our page to parse in correctly.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Zend Studio – Basic Intellisense Tutorial</title>
				<link>https://www.justincarmony.com/2008/04/26/zend-studio-basic-intellisense-tutorial/</link>
				<pubDate>Sat, 26 Apr 2008 19:51:13 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/04/26/zend-studio-basic-intellisense-tutorial/</guid>
				<description>&lt;p&gt;I thought I would throw together a little video on how make the most out of Zend Studio&amp;rsquo;s intellisense using PHP Doc Blocks.&lt;/p&gt;&#xA;&lt;p&gt;`&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;[A Flash demo stood here. It is no longer viewable.]&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;`&lt;/p&gt;&#xA;&lt;p&gt;Full Resolution Download: &lt;a href=&#34;http://www.mediafire.com/?wmzqmyelmox&#34;&gt;http://www.mediafire.com/?wmzqmyelmox&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Five common PHP design patterns that aren&#39;t used enough</title>
				<link>https://www.justincarmony.com/2008/03/07/five-common-php-design-patterns-that-arent-used-enough/</link>
				<pubDate>Fri, 07 Mar 2008 16:09:34 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/03/07/five-common-php-design-patterns-that-arent-used-enough/</guid>
				<description>&lt;p&gt;&amp;ldquo;This article explains five widely used design patterns in PHP with sample code to demonstrate each pattern. Intermediate level.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;I can&amp;rsquo;t say how many PHP programmers that could benefit from using these &amp;ldquo;design patterns.&amp;rdquo; So many times PHP, and PHP coders, make me feel like we&amp;rsquo;re just writing hacks all day. A solid understanding of these patterns and when to use the can make large projects better and more sound. It is so easy to write a complex website. It is a total pain trying to maintain it. These patterns are all about maintaining code, not just writing it.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHP5.x or PHP6 - Argument for Type-Hinting: Better IDEs</title>
				<link>https://www.justincarmony.com/2008/01/02/php5x-or-php6-argument-for-type-hinting-better-ides/</link>
				<pubDate>Wed, 02 Jan 2008 22:59:38 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/01/02/php5x-or-php6-argument-for-type-hinting-better-ides/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve read some posting lately about PHP6, the Meeting Notes by the Developers, etc. that deal with type-hinting, especially scalar type hinting. Here is my reasoning why PHP should allow for more type-hinting scenarios: it allows IDEs to be more powerful. An example would be auto completion. Many times an IDE can&amp;rsquo;t possibly know what is being returned by a function or what is stored a variable because PHP is not strongly typed.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Retrieve Current Module/Controller/Action inside View Script / Layout Script</title>
				<link>https://www.justincarmony.com/2007/12/31/retrieve-current-modulecontrolleraction-inside-view-script-layout-script/</link>
				<pubDate>Mon, 31 Dec 2007 21:19:04 +0000</pubDate>
				<guid>https://www.justincarmony.com/2007/12/31/retrieve-current-modulecontrolleraction-inside-view-script-layout-script/</guid>
				<description>&lt;p&gt;Before I forget to do this again I&amp;rsquo;m going to make a post on how to get the current Module, Controller, and Action while inside a View Script or Layout Script.&lt;/p&gt;&#xA;&lt;p&gt;Here is the most correct way to do it:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$front&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Zend_Controller_Front&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getInstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$request&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$front&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getRequest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$module&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$request&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getModuleName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$controller&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$request&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getControllerName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$action&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$request&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getActionName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, here is the &lt;em&gt;&lt;strong&gt;incorrect way&lt;/strong&gt;&lt;/em&gt; I attempted to do this the first time:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$front&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Zend_Controller_Front&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getInstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$request&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$front&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getRequest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$module&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$request&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getParam&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;module&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$controller&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$request&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getParam&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;controller&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$action&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$request&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;getParam&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;action&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I found some odd behavior because sometimes while in the default module it would return default, but other times it would return a null. I&amp;rsquo;m not sure if this is a bug or not, but the most sure way to retrieve the desired result is using the appropriate methods of getModuleName(), etc.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
