<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DeShong.net</title>
	<atom:link href="http://www.deshong.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.deshong.net</link>
	<description></description>
	<lastBuildDate>Mon, 29 Mar 2010 21:12:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-RC1-15022</generator>
		<item>
		<title>Goodbye Schematic, hello Yahoo!</title>
		<link>http://www.deshong.net/2010/03/goodbye-schematic-hello-yahoo/</link>
		<comments>http://www.deshong.net/2010/03/goodbye-schematic-hello-yahoo/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 21:10:51 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[Georgia]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=540</guid>
		<description><![CDATA[After four and a half years, I will be leaving Schematic for Yahoo!. My first day with Yahoo! will be April 5th, where I&#8217;ll be working from their Atlanta office. I&#8217;m not at liberty to tell you what I&#8217;ll actually be working on, though&#8230;sorry! I look forward to joining the ranks of former Schemers Robert [...]]]></description>
			<content:encoded><![CDATA[<p>After four and a half years, I will be leaving <a href="http://schematic.com/" target="_new">Schematic</a> for <a href="http://yahoo.com/" target="_new">Yahoo!</a>.  My first day with Yahoo! will be April 5th, where I&#8217;ll be working from their Atlanta office.  I&#8217;m not at liberty to tell you what I&#8217;ll actually be working on, though&#8230;sorry!</p>
<p>I look forward to joining the ranks of former Schemers <a href="http://robertswarthout.com/" target="_new">Robert Swarthout</a> and <a href="http://paulamsbary.com/" target="_new">Paul Amsbary</a>, and fellow PHP community members such as <a href="http://www.derekville.net/" target="_new">Derek Gathright</a> and <a href="http://blog.libssh2.org/" target="_new">Sara Golemon</a>.</p>
<p>I&#8217;m sad to make this move as I&#8217;ve seen Schematic grow from ~120 people up to near 400.  We&#8217;ve added <a href="http://www.schematic.com/#/ContactUs/" target="_new">offices around the globe</a> and <a href="http://touch.schematic.com/" target="_new">entire business units</a>.  I&#8217;ve had the opportunity to work with some <a href="http://maggienelson.com/" target="_new">incredibly</a> <a href="http://www.josephjorgensen.com/" target="_new">talented</a> <a href="http://www.pabloviquez.com/" target="_new">developers</a>, <a href="http://chrisbray.com/" target="_new">technology leaders</a>, project managers, and account managers.  I&#8217;ve worked on some <a href="http://store.ovi.com/" target="_new">amazing</a> <a href="http://www.turner.com/" target="_new">projects</a> with some of the most <a href="http://turner.com/" target="_new">appreciative</a>, <a href="http://nokia.com/" target="_new">cutting-edge</a> clients you could ever ask for.</p>
<p>Before joining Schematic, I worked for <a href="http://www.interactiveone.com/" target="_new">Community Connect Inc.</a> (now Interactive One) for almost five years, building and maintaining functionality across various social networking sites, such as <a href="http://blackplanet.com/" target="_new">BlackPlanet.com</a>, <a href="http://asianave.com/" target="_new">AsianAve.com</a>, and <a href="http://migente.com/" target="_new">MiGente.com</a>.  I enjoyed this product-centric environment where any developer could take ownership of a product, then watch it grow and flourish over time.  These opportunities are a bit more rare in the agency world, where you&#8217;re generally building, delivering, then moving on to the next big effort.</p>
<p>I&#8217;m very excited to get back into a product-focused environment.  I&#8217;ll have the opportunity to sharpen my skills with <a href="http://developer.yahoo.com/yui/" target="_new">client-side technologies</a>, along with other languages and platforms.  I&#8217;m very much looking forward to focusing 100% of my time on architecture and development as I might have gotten a little rusty over the past year or two.</p>
<p>So, thanks, Schematic!  It&#8217;s been fun, but it&#8217;s time for me to perfect my <a href="http://yodelstudio.yahoo.com/us/" target="_new">Yahoo! yodel</a>.  Best of luck to you!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2010/03/goodbye-schematic-hello-yahoo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Technical New Year&#8217;s Resolutions 2010</title>
		<link>http://www.deshong.net/2009/12/technical-new-years-resolutions-2010/</link>
		<comments>http://www.deshong.net/2009/12/technical-new-years-resolutions-2010/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 03:43:52 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=445</guid>
		<description><![CDATA[I try to do this every year by New Year&#8217;s Eve, but I&#8217;m a little late this year! Reflecting on my 2009 PHP/technical New Year&#8217;s resolutions, I ended up doing pretty well despite some unexpected challenges. Zend_Log_Writer_Mail made it into the standard library, so that takes care of my Zend Framework line item to some [...]]]></description>
			<content:encoded><![CDATA[<p>I try to do this every year by New Year&#8217;s Eve, but I&#8217;m a little late this year!  Reflecting on my <a href="http://www.deshong.net/2008/12/phptechnical-new-years-resolutions-2009/">2009 PHP/technical New Year&#8217;s resolutions</a>, I ended up doing pretty well despite some unexpected challenges.</p>
<p><a href="http://framework.zend.com/manual/en/zend.log.writers.html#zend.log.writers.mail">Zend_Log_Writer_Mail made it into the standard library</a>, so that takes care of my Zend Framework line item to some extent.  I didn&#8217;t propose anything new, though, but at least it&#8217;s something!</p>
<p>My goal to <a href="http://phparch.com/magazine/index/108">write for php|architect</a> was realized in October with the <a href="http://www.deshong.net/2009/11/publish-or-perish/">publication</a> of &#8220;Make It Mobile with PHP and Open Source Tools.&#8221;</p>
<p>I spoke at <a href="http://mobilecampatlanta.org/">iPhone/Mobile Camp Atlanta 2009</a> with a modified version of <a href="http://www.deshong.net/2008/09/slides-zendcon-2008-rickroll-to-go/">“Rickroll To Go With WURFL, PHP, and Other Open Source Tools”</a>, which was a great, low-stress speaking engagement.  Hopefully it will take place again in 2010, because I&#8217;d love to participate again!</p>
<p>It&#8217;s been a busy but productive year for work-related technical projects as I helped lead a team to re-launch a medium-scale B2B marketing site for a large cable television network.  That went over with a great degree of success.  In 2009, my project roles tended to lean more towards non-development leadership roles, such as Solutions Architect.  Late in the year, I&#8217;ve been acting as the technical lead and a developer, which has been nice.  It looks like I may get to do more architecture and development work in 2010, so that will be a nice shift in gears.</p>
<p>In June, <a href="http://www.flickr.com/photos/bdeshong/sets/72157619246941218/">our daughter, Madeline</a>, was born, which was definitely the highlight of the year.  Then in September, we were affected by the <a href="http://en.wikipedia.org/wiki/2009_Georgia_%28U.S._state%29_floods">2009 Georgia floods</a> when <a href="http://www.flickr.com/photos/bdeshong/sets/72157622428758762/">our house in Austell, GA was flooded</a>.  Then came the <a href="http://www.flickr.com/photos/bdeshong/sets/72157622679374552/">reconstruction</a> and all of the headaches that came with that.  So, the last half of 2009 was a wash&#8230;no pun intended.  <img src='http://www.deshong.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>But, the horrible year of 2009 is now over!  Looking forward to 2010, I&#8217;ve got a few things I want to tackle:</p>
<ul>
<li><strong>Get back on the conference circuit:</strong> I avoided travel in the first half of 2009 due to Madeline&#8217;s arrival.  I had planned to pick things back up in the last half of the year, but the flood kind of complicated those plans.  Hence, I wasn&#8217;t seen at <a href="http://zendcon.com/">ZendCon</a> or <a href="http://www.phparch.com/">php|works</a>.  I want to get back on the conference and speaking circuits in 2010 &#8212; I need to write some new abstracts and manage to speak a few times.  I&#8217;ll be starting in May at <a href="http://atlantaphp.org/">Atlanta PHP</a>, tentatively talking on profiling and optimizing PHP applications with <a href="http://jakarta.apache.org/jmeter/">JMeter</a> and <a href="http://xdebug.org">Xdebug</a>.</li>
<li><strong>Write another article:</strong> I&#8217;d like to maybe write another article, either for <a href="http://phparch.com/">php|architect</a> or some other development- or systems administration-centric magazine.  Writing an article is relatively simple, and gratification comes much sooner than with, say, a large book.  I enjoy using my learnings from the real world to help impart knowledge on the masses, even if it only helps a single person.</li>
<li><strong>Branch out; learn a new language(s):</strong> I consider myself an advanced-to-expert PHP developer.  I&#8217;ve focused on LAMP/<a href="http://blogs.oracle.com/opal/">OPAL</a> development for eight years now.  I&#8217;d love to dabble in other languages such as Java, Ruby, Python, and so on.  I&#8217;m also very rusty with C and C++, and my Objective-C/Cocoa skills could use some more refinement.  I need to set a goal to build a specific, simple application, and build it in as many languages as possible.  The challenge with this is time &#8212; I only have so much of it with work- and family-related commitments, but that&#8217;s what late weekend nights are for, right?  Right?</li>
<li><strong>Release an iPhone app in the App Store:</strong> I&#8217;ve got at least a half a dozen iPhone apps at various stages of completion in my personal SVN repository.  They&#8217;re in need of more thorough ideas, or design, or a little bit of both.  Once I hit a brickwall, I tend to lose momentum.  This year, I need to barrel through those brickwalls and get something released to the public.  I don&#8217;t want to get rich; I just want to be able to take an app from start to finish.  I dropped the ball on this in 2009, so it&#8217;s time to commit to it and get serious.  I may start off slow with a desktop app idea that needs to see the light of day.</li>
</ul>
<p>So, here I am once again: starting a new year with a new set of resolutions.  I can safely say that 2009 has been the most difficult year of my life, but I&#8217;m glad to see that it&#8217;s over, even though it&#8217;s been bittersweet.</p>
<p>With all of this behind me, I&#8217;m re-energized and looking forward to the new challenges that 2010 has in store.  As long as they don&#8217;t involve any natural disasters, I think I can get through this year.</p>
<p>Happy New Year to everyone!  Thank you again for the support you have shown during the ups and downs of 2009, too.  See you all in 2010.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2009/12/technical-new-years-resolutions-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Publish or perish&#8221;</title>
		<link>http://www.deshong.net/2009/11/publish-or-perish/</link>
		<comments>http://www.deshong.net/2009/11/publish-or-perish/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 01:33:40 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=424</guid>
		<description><![CDATA[&#8220;&#8216;Publish or perish&#8217; refers to the pressure to publish work constantly to further or sustain a career in academia.&#8221; Many years ago, my old boss at Community Connect Inc. (now Interactive One), Michael Montero, was having an article published in the September 2002 issue of Sysadmin Magazine. Around that time before the article was published, [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="http://en.wikipedia.org/wiki/Publish_or_perish">&#8216;Publish or perish&#8217;</a> refers to the pressure to publish work constantly to further or sustain a career in academia.&#8221;</p>
<p>Many years ago, my old boss at Community Connect Inc. (now <a href="http://www.interactiveone.com/">Interactive One</a>), Michael Montero, was having <a href="http://portal.acm.org/citation.cfm?id=766723.766733">an article</a> published in the <a href="http://portal.acm.org/toc.cfm?id=766723&#038;type=issue">September 2002 issue of Sysadmin Magazine</a>.  Around that time before the article was published, Mike enlightened all of us software developers on the &#8220;publish or perish&#8221; idea &#8212; write articles, speak at conferences, etc. in order to enhance your development career.</p>
<p>I always took that advice to heart.  It made sense to me.  If you&#8217;re good at something, you use your communication skills to better yourself and make yourself known.  Whether it&#8217;s writing an article, writing a book, or speaking at a conference, it&#8217;s important to share your experiences and impart your knowledge to others.</p>
<p>So, that was one of my big goals for the year.  I&#8217;ve done the conference thing for a while now, so <a href="http://www.deshong.net/2008/12/phptechnical-new-years-resolutions-2009/">I wanted to make 2009 the year of writing</a>.  By writing, I mean writing code, and writing an article.  So, by the time this is posted, my <a href="http://phparch.com/">php|architect</a> article, &#8220;Make It Mobile with PHP and Open Source Tools&#8221;</a> will have been published.</p>
<p>I started it early in the year and finished it in mid-April, many months ahead of the deadline.  It&#8217;s basically my &#8220;Rickroll To Go&#8230;&#8221; conference talk, but in a written form.</p>
<p>It&#8217;s not some huge triumph of an article&#8230;it&#8217;s not going to win any awards&#8230;but it&#8217;s representative of a goal I set out to accomplish and succeeded at.</p>
<p>So, if you&#8217;re reading the issue, enjoy!  If you&#8217;re not, <a href="http://phparch.com/magazine/subscribe">go subscribe to php|architect</a>!</p>
<p>Also, special thanks <a href="http://naramore.net/blog/">to</a> <a href="http://www.treelinedesign.com/">my</a> <a href="http://phparch.com/">php|architect</a> <a href="http://mtabini.blogspot.com/">crew</a> for giving me this great opportunity.</p>
<p>I&#8217;d like to do some more writing in 2010 (maybe some non-PHP writing, too?), so maybe you&#8217;ll see me in print again next year.  Thanks for reading!  Please send along any comments, questions or feedback via <a href="mailto:brianNOSPAMFORMEATdeshongDOTnet">email</a> or <a href="http://twitter.com/bdeshong">Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2009/11/publish-or-perish/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>&#8220;Rickroll To Go&#8230;&#8221; ZendCon Session audio posted!</title>
		<link>http://www.deshong.net/2009/07/rickroll-zendcon-session/</link>
		<comments>http://www.deshong.net/2009/07/rickroll-zendcon-session/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 20:23:38 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Scalability]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=239</guid>
		<description><![CDATA[My ZendCon 2008 talk, “Rickroll To Go With WURFL, PHP, and Other Open Source Tools”, was just released at Zend DevZone as ZendCon Sessions episode #23! If you&#8217;re just now finding my blog from there, welcome! And thanks to Eli White, Community Relations Manager for Zend, for selecting it for posting. You can get all [...]]]></description>
			<content:encoded><![CDATA[<p>My ZendCon 2008 talk, <a href="http://www.deshong.net/2008/09/slides-zendcon-2008-rickroll-to-go/">“Rickroll To Go With WURFL, PHP, and Other Open Source Tools”</a>, was just released at <a href="http://devzone.zend.com/public/view">Zend DevZone</a> as <a href="http://devzone.zend.com/article/4871-The-ZendCon-Sessions-Episode-23-Rickroll-To-Go-With-PHP-WURFL-and-Other-Open-Source-Tools">ZendCon Sessions episode #23</a>!</p>
<p>If you&#8217;re just now finding my blog from there, welcome!  And thanks to <a href="http://eliw.com/">Eli White</a>, Community Relations Manager for <a href="http://zend.com/">Zend</a>, for selecting it for posting.</p>
<p>You can get all of the relevant info using the links below:</p>
<p><a href="http://www.deshong.net/2008/09/slides-zendcon-2008-rickroll-to-go/" target="_new">Slides and videos of the presentation materials</a><br />
<a href="http://devzone.zend.com/article/4871-The-ZendCon-Sessions-Episode-23-Rickroll-To-Go-With-PHP-WURFL-and-Other-Open-Source-Tools" target="_new">ZendCon Sessions page with audio</a><br />
<a href="http://devzone.zend.com/content/audio/zendcon_sessions/zendcon_sessions_podcast_023.mp3" target="_new">MP3 audio of the presentation</a><br />
<a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=310085132" target="_new">iTunes DevZone podcast</a></p>
<p>Enjoy, and thanks for listening!  Find me on <a href="http://twitter.com/bdeshong">Twitter</a> or <a href="mailto:brianNOSPAM@deshong.net">email me</a> if you&#8217;d like to discuss the materials.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2009/07/rickroll-zendcon-session/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://devzone.zend.com/content/audio/zendcon_sessions/zendcon_sessions_podcast_023.mp3" length="43557296" type="audio/mpeg" />
		</item>
		<item>
		<title>iPhone/Mobile Camp Atlanta 2009</title>
		<link>http://www.deshong.net/2009/07/iphonemobile-camp-atlanta-2009/</link>
		<comments>http://www.deshong.net/2009/07/iphonemobile-camp-atlanta-2009/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 15:18:12 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Georgia]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=233</guid>
		<description><![CDATA[This weekend, I attended iPhone/Mobile Camp Atlanta at the King Plow Arts Center. It was great to meet some new, non-PHP-specific faces in the southern iPhone and mobile communities. The crowd seemed to be quite tech-heavy, rather than business-heavy. As such, I learned some new things such as how to handle analytics on the iPhone [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend, I attended <a href="http://iphonecampatlanta.org/">iPhone</a>/<a href="http://mobilecampatlanta.org/">Mobile Camp Atlanta</a> at the King Plow Arts Center.</p>
<p>It was great to meet some new, non-PHP-specific faces in the southern iPhone and mobile communities.  The crowd seemed to be quite tech-heavy, rather than business-heavy.  As such, I learned some new things such as how to handle analytics on the iPhone (use <a href="http://www.flurry.com/">Flurry</a>), how to reduce latency when using <a href="http://developer.apple.com/audio/overview.html">Core Audio</a>, and some new-to-me information on parsing XML on the iPhone.</p>
<p>I also dusted off my talk, <a href="http://www.deshong.net/2008/09/slides-zendcon-2008-rickroll-to-go/">“Rickroll To Go With WURFL, PHP, and Other Open Source Tools”</a>, trimmed it down for a 30-minute timeslot, and presented it as &#8220;WURFL, Device Identification, and Mobile Media&#8221;.</p>
<p>My talk seemed to go great because, hey, what talk with a little <a href="http://www.youtube.com/watch?v=oHg5SJYRHA0">Rickrolling</a> and <a href="http://www.youtube.com/watch?v=rog8ou-ZepE">Ice Ice Baby</a> isn&#8217;t going to be a hit, right?  It was tough to keep it to that smaller timeslot, but it seemed to work well.  I was followed by everyone&#8217;s favorite Microsoft evangelist, <a href="http://blogs.msdn.com/glengordon/">Glen Gordon</a>, who was speaking on all things Microsoft.</p>
<p>I definitely walked away with a continued motivation to actually produce a useful Cocoa and/or iPhone app <a href="http://www.deshong.net/2008/12/phptechnical-new-years-resolutions-2009/">sometime this year</a>, so I&#8217;d better hop to it.  It&#8217;s the ideation part that&#8217;s tough for me, though.  And all of the graphic design can be a bit demotivating, too, but there are creative ways to handle that.</p>
<p>Anyways, it was a great event!  Hopefully they&#8217;ll conduct one again next year!  Special thanks to <a href="http://widgetpress.com/">Jonathan Freeman of Widgetpress</a> (and all involved) for organizing the event!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2009/07/iphonemobile-camp-atlanta-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL replication and the sync_binlog option</title>
		<link>http://www.deshong.net/2009/05/mysql-sync-binlog/</link>
		<comments>http://www.deshong.net/2009/05/mysql-sync-binlog/#comments</comments>
		<pubDate>Thu, 28 May 2009 01:16:13 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Scalability]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=217</guid>
		<description><![CDATA[Recently I&#8217;ve been focusing on MySQL replication for a project at work. On this particular project, I&#8217;m acting in a Solutions Architect role and have been since about September of 2008. Because of my background in systems administration, I tend to get myself into situations where I become the Schematic-side sys admin on projects. This [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been focusing on MySQL replication for a project at <a href="http://www.schematic.com/">work</a>.  On this particular project, I&#8217;m acting in a <a href="http://en.wikipedia.org/wiki/Solutions_Architect">Solutions Architect</a> role and have been since about September of 2008.</p>
<p>Because of my background in systems administration, I tend to get myself into situations where I become the Schematic-side sys admin on projects.  This involves things like deployment processes, getting development, staging, and production environments setup, and now, setting up <a href="http://dev.mysql.com/doc/refman/5.0/en/replication.html">MySQL replication</a>.  This is probably because a) I&#8217;m probably bad at delegating these things to others, b) I&#8217;m kinda&#8217; good at it, and c) let&#8217;s be honest, I&#8217;m a control freak, so I like knowing the servers hosting my apps are setup in a meticulous manner.</p>
<p>In short, we&#8217;re running MySQL 5.0.45 on RedHat Enterprise Linux 5 (I know, I know&#8230;RedHat and MySQL 5.0&#8230;boo&#8230;but it&#8217;s okay).  We&#8217;re required to replicate our production database to a secondary machine for backup purposes.  This way, if our production server dies, we can manually failover to the slave (once we enable writes to it, of course), then swap the two back once the production server is back up.</p>
<p>All in all, this site is rather low-traffic at around 20,000 dynamic page views per day.  Factoring in US-based users in an 11 hour time period, that&#8217;s about 1,800 request per hour, or right around 0.5 page views per second.  We&#8217;ve got a single server in production that&#8217;s acting as our webserver and database server; it&#8217;s got a RAID array in it that was all setup by the group hosting the application (so I don&#8217;t know tons about it, but it&#8217;s new, quality hardware).</p>
<p>I&#8217;m using my master database for reads and writes in Production.  Again, the slave is really only required for live backup-type purposes.</p>
<p>Now, I&#8217;m no expert on MySQL replication, but I&#8217;ve learned a lot these past few weeks.  So I&#8217;m going to share one big caveat here.  Please correct me as you see fit!</p>
<p>MySQL&#8217;s got a <a href="http://dev.mysql.com/doc/refman/5.0/en/replication-options-binary-log.html#sysvar_sync_binlog">sync_binlog</a> configuration option.  You typically set it in my.cnf, and its value is an integer from 0-n.  This value determines how many <a href="http://dev.mysql.com/doc/refman/5.0/en/binary-log.html">binary log</a> writes need to occur before its contents are flushed out of the buffer and onto disk.  With it set to zero, your operating system just determines when the buffer is flushed to disk.</p>
<p>I have a database migration process that copies table structures and their data from PostgreSQL into MySQL, then basically migrates that data into the appropriate tables in the new MySQL instance.  It involves the transformation of a lot of data.  It&#8217;s a sizable, complete data set for 8+ year old system that&#8217;s not the prettiest, best normalized data model in the world.</p>
<p>Per recommendations in <a href="http://www.amazon.com/High-Performance-MySQL-Jeremy-Zawodny/dp/0596003064/ref=sr_1_2?ie=UTF8&#038;s=books&#038;qid=1243472126&#038;sr=8-2">High Performance MySQL</a>, <strong>I had my <code>sync_binlog</code> value set to 1 in Production</strong>.</p>
<p><strong>When I was performing a test migration to Production recently, the process took about 3 hours.</strong>  Wow.  Thanks, MySQL!  It normally takes about 90 minutes in Staging, if that.</p>
<p>In digging around Google and MySQL.com, I found that a non-zero value for <code>sync_binlog</code> causes more disk seeks to flush the binary log to disk.  The benefit of having it set to <code>1</code> is so that every transaction can be written to the binary log, which is then flushed to disk upon commit.  Then, if your server happens to die, the last completed transaction will always be present in the binary log on disk, so you never have to worry about, say, missing a transaction replay on your slaves.  However, this results in a lot more disk activity on your master.</p>
<p>I set <code>sync_binlog</code> to <code>0</code> and re-ran my migration.  It ran in 90 minutes &#8212; <strong>that&#8217;s a 50% performance gain</strong>!  Now, if you do the math, this makes sense.  It&#8217;s one less disk seek and write per-transaction, so this result totally makes sense.  Hooray for numbers, right?</p>
<p>I&#8217;m willing to gamble the integrity of data on my slave for the 50% performance increase.  <small>(remind me of this post in 6 months when I&#8217;m kicking myself over this for some reason, okay?)</small></p>
<p>With no binary logging enabled (i.e. in our dev environment), this process takes about 20 minutes.  This makes sense &#8212; far less disk writes during the process.</p>
<p>Another way to workaround this would be to keep your binary logs on a physically separate disk.  However, I don&#8217;t have that luxury at this point, so that&#8217;s not an option for me.  If I had my druthers, this is how I&#8217;d handle the problem, but&#8230;no dice for now.</p>
<p>Anyways, my main point: if you are willing to gamble with every single transaction being replicated to your slave in the event of a crash, perhaps you can set <code>sync_binlog</code> to <code>0</code>.  If you&#8217;ve got a separate disk to devote to your binary log, by all means, set it to <code>1</code>!  There are other concerns around this are related to battery-backed disk cache, which you can read a bit more about in <a href="http://www.mysqlperformanceblog.com/2006/05/27/jeremy-cole-on-mysql-replication/">Jeremy Cole&#8217;s post</a> on MySQL replication.  You can also see some handy <a href="http://www.mysqlperformanceblog.com/2006/05/19/group-commit-and-xa/">benchmarks</a> that compare MySQL with and without binary logging.</p>
<p>Finally, I&#8217;ll admit this is a bit of a knee-jerk reaction post.  I&#8217;ve done a bunch of research on this, but it&#8217;s not all quite fleshed out in my mind yet.  I get the whole cause and effect in theory, but I haven&#8217;t dug into MySQL source or other materials to <em>really</em> understand what&#8217;s going on behind the scenes.</p>
<p>MySQL replication is a tricky thing.  It&#8217;s great when it works, but understand that there are overhead tradeoffs in using it!  I&#8217;m sure I&#8217;ll learn more in the weeks and months following our launch, so I look forward to sharing more of my successes and/or pains on this.  Comments, feedback, and flames such as &#8220;OMG, you&#8217;re so wrong Brian!&#8221; and &#8220;Brian is a n00b!&#8221; are welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2009/05/mysql-sync-binlog/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vim mapping: Bringing PHPUnit skeleton test class code up to Zend Framework standards</title>
		<link>http://www.deshong.net/2009/03/vim-mapping-phpunit-skeleton-to-zf-standards/</link>
		<comments>http://www.deshong.net/2009/03/vim-mapping-phpunit-skeleton-to-zf-standards/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 16:31:57 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=190</guid>
		<description><![CDATA[I write a lot of unit tests. I like to apply our coding standards, which are based on Zend Framework coding standards, to these test classes. I also hate writing the skeleton test classes from scratch, especially with PHPUnit will do this for me. You just have to run: phpunit --skeleton-test Your_Class &#8230;and it generates: [...]]]></description>
			<content:encoded><![CDATA[<p>
I write a lot of unit tests.  I like to apply our coding standards, which are based on <a href="http://framework.zend.com/manual/en/coding-standard.html">Zend Framework coding standards</a>, to these test classes.
</p>
<p>
I also hate writing the skeleton test classes from scratch, especially with <a href="http://phpunit.de/">PHPUnit</a> will do this for me.  You just have to run:</p>
<pre>
phpunit --skeleton-test Your_Class
</pre>
<p>&#8230;and it generates:</p>
<pre>
PHPUnit x.y.z by Sebastian Bergmann.

Wrote skeleton for "Your_Class" to "./Your_ClassTest.php".
</pre>
</p>
<p>
Fresh off of the skeleton generation, the test class will have a few little things in it that are against Zend Framework standards.  The Vim map below fixes these standards violations:</p>
<ol>
<li>Fixes method opening brace placements from <code>public function testFoo() {</code> to <code>public function testFoo()[NEWLINE + 4 SPACES]{</code></li>
<li>Changes all <code>$this->object</code> to <code>$this->_object</code></li>
<li>Changes <code>protected $object</code> to <code>protected $_object</code></li>
<li>Changes comments &#8220;@todo Implement testFoo()&#8221; to &#8220;Basic test of testFoo()&#8221; with a &#8220;@return void&#8221;; note that you should write more appropriate comments as needed!</li>
</ol>
<p>
Place this in your ~/.vimrc file:</p>
<pre>
map zfunit :%s/function test\(.*\) {/function test\1\r    {/g \
    \|%s/@todo Implement \(.*\)$/Basic test for \1\r     *\r     * @return void/g \
    \|%s/\$object/\$_object/g \
    \|%s/this->object/this->_object/g<CR>
</pre>
</p>
<p>
To run it, just open your offending class file in vim and type <code>zfunit</code>.  You will then see output of:</p>
<pre>
X substitutions on X lines
Y substitutions on Y lines
</pre>
<p>Take a look at your file now &#8212; voila!  All fixed.  No manual moving of those annoyances to conform to the standards.
</p>
<p>
Enjoy!
</p>
<p>
<strong>NOTE:</strong> The above applies to usage of PHPUnit with the <em>default</em> skeleton template.  You can provide alternate templates in your <code>PHPUnit/Util/Skeleton/Template</code> directory by adding your equivalent <code>*.tpl</code> file for the particular template to address the issues outlined here.  Thanks for keeping me in line, <a href="http://sebastian-bergmann.de/">Sebastian</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2009/03/vim-mapping-phpunit-skeleton-to-zf-standards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Rickroll&#8230;&#8221; goes to print with php&#124;architect!</title>
		<link>http://www.deshong.net/2009/01/rickroll-goes-to-print-with-phparchitect/</link>
		<comments>http://www.deshong.net/2009/01/rickroll-goes-to-print-with-phparchitect/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 03:23:14 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=180</guid>
		<description><![CDATA[One of my accomplishments during 2008 was preparing and presenting a new talk, &#8220;Rickroll To Go With WURFL, PHP, and Other Open Source Tools&#8221;. This talk focused on some of the challenges with delivering content to mobile device users, such as limited bandwidth, limited resources on the device, and varying device support for video and [...]]]></description>
			<content:encoded><![CDATA[<p>One of my accomplishments during 2008 was preparing and presenting a new talk, <a href="http://www.deshong.net/2008/09/slides-zendcon-2008-rickroll-to-go/">&#8220;Rickroll To Go With WURFL, PHP, and Other Open Source Tools&#8221;</a>.  This talk focused on some of the challenges with delivering content to mobile device users, such as limited bandwidth, limited resources on the device, and varying device support for video and audio formats.  It illustrated how to use tools such as the <a href="http://pecl.php.net/imagick/">imagick extension</a> and <a href="http://ffmpeg.org/">FFmpeg</a> to deliver content and an experience that was optimized for mobile devices.
</p>
<p>
Or, another way to refer to it: if you were ever at a PHP conference and heard of some dude Rickrolling a group during his talk, that was me.
</p>
<p>I gave this talk at <a href="http://atlantaphp.org/">Atlanta PHP</a>, <a href="http://www.zendcon.com/ZendCon08/public/schedule/detail/123">ZendCon 2008</a> and <a href="http://phpappalachia.org/">PHP Appalachia</a>, and received positive reception and feedback in all cases.
</p>
<p>
Now, in trying to knock out my <a href="http://www.deshong.net/2008/12/phptechnical-new-years-resolutions-2009/">New Year&#8217;s resolutions</a>, I am adapting this talk into an article for <a href="http://phparch.com/">php|architect</a>, which will be published around October 2009.
</p>
<p>
I&#8217;ve only got 3,000 words to work with, so I may not be able to address all three major content areas &#8212; images, video, and audio &#8212; but I&#8217;ll do what I can.  The <a href="http://www.phparch.com/c/phpa/magazine/about/authors,editorial_calendar">focus of the issue</a> will be &#8220;graphic manipulation,&#8221; so focusing on the image portion may end up making the most sense given the word limitations.  You don&#8217;t want to read more than 3,000 words worth of my ramblings anyway.
</p>
<p>
So, keep your eyes open for that issue later in the year!  Also, special thanks to <a href="http://naramore.net/blog/">Elizabeth Naramore</a>, <a href="http://www.treelinedesign.com/">Beth</a> <a href="http://twitter.com/e3BethT">Tucker Long</a>, and <a href="http://mtabini.blogspot.com/">Marco Tabini</a> for the opportunity to grace the pages of their fantastic publication with my words, ideas, and experience.
</p>
<p>
Also, another special thanks to my co-workers JP Crevoiserat and <a href="http://www.josephjorgensen.com/">Joseph Jorgensen</a> who worked with me on a project that inspired the talk and this article.  And as always, a special thanks for <a href="http://schematic.com/">Schematic</a> for always supporting the community-related efforts of its employees.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2009/01/rickroll-goes-to-print-with-phparchitect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Factory Method pattern; ATLPHP tonight!</title>
		<link>http://www.deshong.net/2009/01/factory-method-pattern-atlphp-tonight/</link>
		<comments>http://www.deshong.net/2009/01/factory-method-pattern-atlphp-tonight/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 21:59:51 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=169</guid>
		<description><![CDATA[I&#8217;ll be giving a &#8220;mini-talk&#8221; on the Factory Method pattern at Atlanta PHP this evening. Who doesn&#8217;t love the Factory Method pattern, right? Good stuff. A link to a PDF of the slides is below. I struggled to come up with a cool example, but an one related to cars was the best that I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be giving a &#8220;mini-talk&#8221; on the <a href="http://en.wikipedia.org/wiki/Factory_method_pattern">Factory Method pattern</a> at <a href="http://atlantaphp.org/">Atlanta PHP</a> this evening.
</p>
<p>
Who doesn&#8217;t love the Factory Method pattern, right?  Good stuff.  A link to a PDF of the slides is below.  I struggled to come up with a cool example, but an one related to cars was the best that I could do.  You&#8217;ll find some PHP-specific example code in the slides, too.
</p>
<p>
<a href="http://brian.deshong.net/talks/2009/atlphp/factory_method_pattern/factory_method_pattern.pdf">Grab the slides (PDF)</a>
</p>
<p>
For further reading on the Factory Method pattern and other classic design patterns, you can always grab a copy of <a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=pd_bbs_sr_1?ie=UTF8&#038;s=books&#038;qid=1231451809&#038;sr=8-1">Design Patterns: Elements of Reusable Object-Oriented Software</a>.  Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2009/01/factory-method-pattern-atlphp-tonight/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Seven Things</title>
		<link>http://www.deshong.net/2009/01/seven-things/</link>
		<comments>http://www.deshong.net/2009/01/seven-things/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 06:06:24 +0000</pubDate>
		<dc:creator>Brian DeShong</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.deshong.net/?p=145</guid>
		<description><![CDATA[I&#8217;m getting in on this &#8220;Seven Things&#8221; deal by way of being &#8220;tagged&#8221; by Ben Ramsey. And yes, Ben, while I am technically your &#8220;boss,&#8221; we&#8217;re all still on vacation, so&#8230;that doesn&#8217;t count now. Or something. Cut it out. So, here are my seven things, which have been rolling around my head all day. Here [...]]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;m getting in on this &#8220;Seven Things&#8221; deal by way of being &#8220;tagged&#8221; by <a href="http://benramsey.com/archives/seven-things/">Ben Ramsey</a>.  And yes, Ben, while I am technically your &#8220;boss,&#8221; we&#8217;re all still on vacation, so&#8230;that doesn&#8217;t count now.  Or something.  Cut it out.
</p>
<p>
So, here are my seven things, which have been rolling around my head all day.  Here we go:
</p>
<ul>
<li>I&#8217;m a triplet.  My other two brothers, <a href="http://flickr.com/photos/bdeshong/2826026702">Brad and Brent</a>, live in Baltimore and Kansas City respectively.  We were born one-minute apart.  Brad is also in the IT industry working for the government, while Brent is working for my Dad at <a href="http://midwesttowers.com/">Midwest Towers</a> in estimating, sales, repairs, etc. for <a href="http://en.wikipedia.org/wiki/Cooling_tower">cooling towers</a>.
<li>I started coding in BASIC on an Apple IIe around 4th or 5th grade.  I later expanded into GWBASIC on DOS, and took Pascal and other programming classes in high school.  Around age 14, I released various shareware applications written (and compiled!) in QuickBASIC under the name <em>Untitled Software</em>.  I received a handful of registrations for my &#8220;most popular&#8221; product, &#8220;Master Menu III,&#8221; which was a DOS-based application launcher (complete with VGA mode screensavers!).  My most distant registration was from the Netherlands, so I just gave him a free license in order to not deal with currency exchange stuff.</li>
<li>While working at <a href="http://bestbuy.com/">Best Buy</a> from Summer 1997 to December 1998, I had the <a href="http://flickr.com/photos/bdeshong/2374952865/">opportunity to wear the Idea Box costume</a> during a holiday season.  You can&#8217;t see them, but I&#8217;m wearing blue and yellow elf shoe covers over my shoes.  I also couldn&#8217;t talk, would just have to wave and shake hands with people.  My friends would come in the store, so I&#8217;d see them outside the mesh on the &#8220;B&#8221; in &#8220;Best&#8221; and break the no-talking rule.  Occasionally I&#8217;d roam around the store being goofy, while trying to not knock things over.  It was a great time!  Normally, I worked in the Media Department, which sold music, movies, and software.  Loved that job!</li>
<li>I moved from the suburbs of Kansas City, MO to New York City at the ripe old age of 19.  I was offered a job with <a href="http://benefitscheckup.org/">VitalAging (now BenefitsCheckUp.org)</a> as a Systems Administrator.  I had nothing to lose, so&#8230;why not?  Then I stayed there seven years before moving to Atlanta.  Brooklyn, represent!</li>
<li>After moving to the NYC area, I continued and completed my undergraduate education at <a href="http://www.baruch.cuny.edu/">Baruch College, CUNY</a> by going to school in the mornings and evenings, while still working full-time.  It was tough, but worth it.  I got my degree in Computer Information Systems (more business-, accounting-, and management-focused), which has turned out to be very practical.  I wish I had algorithms, compilers, and all of those other low-level Computer Science courses, but the practical things have served me very well.</li>
<li>I met my <a href="http://flickr.com/photos/bdeshong/3088101112/">wife</a>, found my job at <a href="http://schematic.com/">Schematic</a>, and my last Brooklyn apartment on <a href="http://newyork.craigslist.org/">Craigslist (NYC)</a>.
<li>I have a long family history of being a huge fan of <a href="http://hooters.com/">Hooters</a> (the restaurant).  I&#8217;ve been going there since I was pretty young.  Whenever we&#8217;d travel as a family, we&#8217;d stop at locations during our trip.  My Dad actually collects the menus for all of the ones be visits &#8212; he must have 50 to 60 at this point.  I once drove from Boston to NYC via Rhode Island just to be the first DeShong to visit a location in that state.  And yes, I took a menu and mailed it to my Dad.  I go for the food, though &#8212; I&#8217;ll even get takeout (when my wife refuses to go), which proves my devotion to the food.</li>
</ul>
<p>
And here are my lucky seven!
</p>
<ul>
<li><a href="http://robertswarthout.com/">Robert Swarthout</a> because I want to see if he&#8217;ll actually step up and write this blog post&#8230;and because he&#8217;s a co-worker of mine and a fellow Atlantan</li>
<li><a href="http://iamgraham.net/">Graham Christensen</a>, one of the youngest dudes in PHP, for having just visited Georgia, the state I now call home</li>
<li><a href="http://www.shawnstratton.info/">Shawn Stratton</a> for being another fellow Atlantan, and for that time we randomly bumped into each other at the Envelope Building downtown</li>
<li><a href="http://brian.moonspot.net/">Brian Moon</a> for being my PHP Appalachia 2008 &#8220;Team Haystacks&#8221; teammate, and a fellow southerner</li>
<li><a href="http://blog.casey-sweat.us/">Jason Sweat</a> for attending my talk(s) at php|tek 2008, and having some awesome feedback.  And for having an awesome last name?</li>
<li><a href="http://usrportage.de/">Lars Strojny</a> for proving some comments and feedback on my Zend_Log_Writer_Mail proposal</li>
<li><a href="http://debuggable.com/">Nate Abele</a> for being the CakePHP and OmniTI dude, and for that time a handful of us went drinking and to the Comedy Cellar in NYC</li>
</ul>
<p>
And, of course, the rules:</p>
<ul>
<li>Link your original tagger(s), and list these rules on your blog.</li>
<li>Share seven facts about yourself in the post &#8211; some random, some weird.</li>
<li>Tag seven people at the end of your post by leaving their names and the links to their blogs.</li>
<li>Let them know they&#8217;ve been tagged by leaving a comment on their blogs and/or Twitter.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.deshong.net/2009/01/seven-things/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
