<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>MySQL on Justin Carmony</title>
		<link>https://www.justincarmony.com/tags/mysql/</link>
		<description>Recent content in MySQL on Justin Carmony</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Mon, 24 Oct 2011 18:43:25 +0000</lastBuildDate>
		
			<atom:link href="https://www.justincarmony.com/tags/mysql/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Setting Up Percona Server 5.5 on Ubuntu 10.04</title>
				<link>https://www.justincarmony.com/2011/10/24/setting-up-percona-server-5-5-on-ubuntu-10-04/</link>
				<pubDate>Mon, 24 Oct 2011 18:43:25 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/10/24/setting-up-percona-server-5-5-on-ubuntu-10-04/</guid>
				<description>&lt;p&gt;I&amp;rsquo;m deploying some new servers today, and I realized I hadn&amp;rsquo;t documented my steps on my blog. So here are a few posts detailing my setup process.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-percona-server&#34;&gt;What is Percona Server?&lt;/h2&gt;&#xA;&lt;p&gt;Percona Server is a fork of MySQL Server. So what does that mean? For the past few years, MySQL has had some &amp;ldquo;interesting&amp;rdquo; developments from the business stand point. Being bought by Sun, which was then sold to Oracle, and a lot of &amp;ldquo;drama&amp;rdquo; surrounding all of that. In turn, what seems to have happened is MySQL&amp;rsquo;s development stalled or slowed down as it took a back seat to the legal sides of things.&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>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>Restoring Large MySQL Dump - 900 Million Rows</title>
				<link>https://www.justincarmony.com/2011/04/07/restoring-large-mysql-dump-900-million-rows/</link>
				<pubDate>Thu, 07 Apr 2011 03:05:12 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/04/07/restoring-large-mysql-dump-900-million-rows/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2011/04/mysql-logo2.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2011/04/mysql-logo2.png&#34; alt=&#34;&#34; title=&#34;mysql-logo2&#34;&gt;&lt;/a&gt;This last weekend I had a fun opportunity of restoring roughly 912 Million Rows to a database. 902 Million belonged to one single table (902,966,645 rows, to be exact). To give an idea of growth, &lt;a href=&#34;https://www.justincarmony.com/2009/01/12/mysql-40-million-rows-myisam-innodb/&#34;&gt;the last time I blogged&lt;/a&gt; about this database we had about 40 million rows. This giant table, the &amp;ldquo;Scores&amp;rdquo; table, is has a very small schema: two ints, a tiny int, and a DECIMAL(5,2).&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;Our current backup system uses mysqldump. It dumps a 25 GB sql dump file, which compresses to about 2.5GB using gzip. The last time we needed to restore a backup it was only about 9GB, and it took several hours.&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>MySQL Stored Procedure, NAME_CONST, and Character Sets</title>
				<link>https://www.justincarmony.com/2011/02/02/mysql-stored-procedure-name_const-and-character-sets/</link>
				<pubDate>Wed, 02 Feb 2011 07:12:35 +0000</pubDate>
				<guid>https://www.justincarmony.com/2011/02/02/mysql-stored-procedure-name_const-and-character-sets/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2011/02/mysql_logo.gif&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/wp/2011/02/mysql_logo.gif&#34; alt=&#34;&#34; title=&#34;mysql_logo&#34;&gt;&lt;/a&gt;For a Project I had helped work on, they recently needed to move servers and in the process upgraded from MySQL 5.0 to MySQL 5.1.41. They ran into some quirks with 5.1 and I thought I would document our work-a-rounds for them.&lt;/p&gt;&#xA;&lt;p&gt;We were having serious performance problems with a Stored Procedure that would be called by a Windows Client on thousands of machines. Before on 5.0 it would take under 0.02 seconds, and now it was taking 25-35 seconds. In this stored procedure we would call a query something like this:&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>Large MySQL Conversion &amp; InnoDB</title>
				<link>https://www.justincarmony.com/2010/10/16/large-mysql-conversion-innodb/</link>
				<pubDate>Sat, 16 Oct 2010 03:01:32 +0000</pubDate>
				<guid>https://www.justincarmony.com/2010/10/16/large-mysql-conversion-innodb/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.justincarmony.com/images/wp/2010/10/logo_mysql.png&#34;&gt;&lt;img src=&#34;https://www.justincarmony.com/images/2010/10/logo_mysql-150x150.png&#34; alt=&#34;&#34; title=&#34;logo_mysql&#34;&gt;&lt;/a&gt;Over the last week at &lt;a href=&#34;http://www.datingdna.com/&#34;&gt;Dating DNA&lt;/a&gt;, we&amp;rsquo;ve re-engineered our internal mail system that users use to send messages to each other. It took a few days longer to convert and re-engineer everything, but we finally made the change. With the exception of two small bugs, it all went off without a hitch. But before all the different things I learned doing it fade, I wanted to document them here.&lt;/p&gt;&#xA;&lt;p&gt;First off, converting from one large set of InnoDB tables to a new structure. I&amp;rsquo;ve done &lt;a href=&#34;https://www.justincarmony.com/2009/01/12/mysql-40-million-rows-myisam-innodb/&#34;&gt;something similar in the past&lt;/a&gt;, and I think I&amp;rsquo;ve honed in a little bit more the technique. So here are some thoughts regarding doing this process.&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>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>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>Data Backups - There Are No Excuses</title>
				<link>https://www.justincarmony.com/2009/04/19/data-backups-there-are-no-excuses/</link>
				<pubDate>Sun, 19 Apr 2009 00:04:48 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/04/19/data-backups-there-are-no-excuses/</guid>
				<description>&lt;p&gt;Today I just had the terrible experience of having a database lose data, need to restore, only to not have a recent backup. If you haven&amp;rsquo;t had this experience before, please, take this serious. My wife was home for lunch as it happened, and she watched as the blood drained from my face. It only took a few seconds for the loss to happen, and immediately I knew exactly what the repercussions where. The immediate second thought that passes through your brain is &amp;ldquo;Where are my backups?&amp;rdquo; That is when I realized I didn&amp;rsquo;t have my nightly backups set up on this server. I quickly checked the file date on the last known backup I had.&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>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>The Dangers of Twitter!</title>
				<link>https://www.justincarmony.com/2009/01/08/the-dangers-of-twitter/</link>
				<pubDate>Thu, 08 Jan 2009 07:00:34 +0000</pubDate>
				<guid>https://www.justincarmony.com/2009/01/08/the-dangers-of-twitter/</guid>
				<description>&lt;p&gt;Over Christmas my wife and I visited my father in San Diego, CA. Several members of my dad&amp;rsquo;s side of the family were there, and one day we had a discussion about being &amp;ldquo;wired.&amp;rdquo; What does that exactly mean? Well, how fast would a person respond after any form of electronic communication were to be sent.&lt;/p&gt;&#xA;&lt;p&gt;We decided, that hands down, my father was the most wired. One evening my wife and I stayed in the car while my father ran into a grocery store to pick up something quickly. I made a tweet about our trip to Barnes &amp;amp; Nobel, and how I spend so much money there. By the time my father came back to the car three minutes later, he commented to me about my tweet. He had set up that all my tweets are sent to his phone. I laughed and told him he definitely was the most wired.&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>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 &#39;08 - Overview of Experience</title>
				<link>https://www.justincarmony.com/2008/06/27/lt-pact-08-overview-of-experience/</link>
				<pubDate>Fri, 27 Jun 2008 22:52:45 +0000</pubDate>
				<guid>https://www.justincarmony.com/2008/06/27/lt-pact-08-overview-of-experience/</guid>
				<description>&lt;p&gt;I just left the last session of the &lt;a href=&#34;http://www.layeredtech.com/ltpact/&#34;&gt;LT Pact &amp;lsquo;08 conference&lt;/a&gt; and it has been fun. I&amp;rsquo;ve learned a lot and there were a lot of common themes among the conference. I&amp;rsquo;ll briefly touch on the themes and over the next week or so I&amp;rsquo;ll be writing more in-depth on each one. Besides, I need to enjoy Las Vegas while I&amp;rsquo;m here and not just blog.&lt;/p&gt;&#xA;&lt;h3 id=&#34;virtualization--cloud-computing&#34;&gt;&lt;strong&gt;Virtualization &amp;amp; Cloud Computing&lt;/strong&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Virtualization is the future of server hosting. It won&amp;rsquo;t be optimal for all scenarios of course, but there are so many advantages to virtualization that they can&amp;rsquo;t be passed up:&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
