<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Travis Boudreaux » Blog</title>
	
	<link>http://www.travisboudreaux.com</link>
	<description />
	<lastBuildDate>Wed, 21 Dec 2011 00:01:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TravisBoudreaux" /><feedburner:info uri="travisboudreaux" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>How to remove added files from Perforce Before Committing</title>
		<link>http://feedproxy.google.com/~r/TravisBoudreaux/~3/7VLIy8TT2aw/how-to-remove-added-files-from-perforce-before-committing</link>
		<comments>http://www.travisboudreaux.com/how-to-remove-added-files-from-perforce-before-committing#comments</comments>
		<pubDate>Tue, 20 Dec 2011 23:59:55 +0000</pubDate>
		<dc:creator>tjboudreaux</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[perforce]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://www.travisboudreaux.com/?p=203</guid>
		<description><![CDATA[Recently, I&#8217;ve begun using Perforce, and adjusting to it from Subversion and Git usage has been a little bit of a challenge. While attempting to delete a few files that I added and no longer, needed I tried running the following snippet: p4 delete left* and received the following error. leftBottom.png - can't delete (already [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I&#8217;ve begun using Perforce, and adjusting to it from Subversion and Git usage has been a little bit of a challenge.  While attempting to delete a few files that I added and no longer, needed I tried running the following snippet:</p>
<p><code>p4 delete left*</code></p>
<p>and received the following error.</p>
<p><code>leftBottom.png - can't delete (already opened for add)</code></p>
<p>If you&#8217;re trying to delete files in the future and you haven&#8217;t committed them yet, I&#8217;ve found that doing a revert command will solve the issue.  Here&#8217;s the example below that worked for me.</p>
<p><code><br />
p4 revert left*<br />
leftBottom.png#none - was add, abandoned<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.travisboudreaux.com/how-to-remove-added-files-from-perforce-before-committing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisboudreaux.com/how-to-remove-added-files-from-perforce-before-committing</feedburner:origLink></item>
		<item>
		<title>Adding a Background Image to a UITabBar</title>
		<link>http://feedproxy.google.com/~r/TravisBoudreaux/~3/kn0LwaLtGSo/adding-a-background-image-to-a-uitabbar</link>
		<comments>http://www.travisboudreaux.com/adding-a-background-image-to-a-uitabbar#comments</comments>
		<pubDate>Fri, 04 Feb 2011 09:43:37 +0000</pubDate>
		<dc:creator>tjboudreaux</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[UITabBar]]></category>

		<guid isPermaLink="false">http://www.travisboudreaux.com/?p=172</guid>
		<description><![CDATA[Here&#8217;s a little snippet that proves to be useful from time to time, when you need to apply a background image to a UITabBar.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little snippet that proves to be useful from time to time, when you need to apply a background image to a UITabBar.</p>
<p><script src="https://gist.github.com/807202.js"> </script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.travisboudreaux.com/adding-a-background-image-to-a-uitabbar/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisboudreaux.com/adding-a-background-image-to-a-uitabbar</feedburner:origLink></item>
		<item>
		<title>Adding a Background Image to a UINavigationBar</title>
		<link>http://feedproxy.google.com/~r/TravisBoudreaux/~3/fH4IGwhCMlY/adding-a-background-image-to-a-uinavigationbar</link>
		<comments>http://www.travisboudreaux.com/adding-a-background-image-to-a-uinavigationbar#comments</comments>
		<pubDate>Thu, 03 Feb 2011 12:17:15 +0000</pubDate>
		<dc:creator>tjboudreaux</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[UINavigationBar]]></category>

		<guid isPermaLink="false">http://www.travisboudreaux.com/?p=176</guid>
		<description><![CDATA[Here&#8217;s a little snippet that proves to be useful from time to time, when you need to apply a background image to a UINavigationBar.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little snippet that proves to be useful from time to time, when you need to apply a background image to a UINavigationBar.</p>
<p><script src="https://gist.github.com/807206.js"> </script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.travisboudreaux.com/adding-a-background-image-to-a-uinavigationbar/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisboudreaux.com/adding-a-background-image-to-a-uinavigationbar</feedburner:origLink></item>
		<item>
		<title>Adding a Drop Shadow to a UINavigationBar</title>
		<link>http://feedproxy.google.com/~r/TravisBoudreaux/~3/1VpxEGV7tlI/adding-a-drop-shadow-to-a-uinavigationbar</link>
		<comments>http://www.travisboudreaux.com/adding-a-drop-shadow-to-a-uinavigationbar#comments</comments>
		<pubDate>Wed, 17 Nov 2010 13:12:17 +0000</pubDate>
		<dc:creator>tjboudreaux</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[iPhone Development]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[UINavigationBar]]></category>

		<guid isPermaLink="false">http://www.travisboudreaux.com/?p=168</guid>
		<description><![CDATA[For the past few days, I&#8217;ve been trying to figure out a way to apply a drop shadow to all of the UINavigationBar instances without having to create alot of extra work by subclassing the UINavigationBar, and also having to sub class the UINavigationController. After reading a few Stack Overflow posts, I was able to [...]]]></description>
			<content:encoded><![CDATA[<p>For the past few days, I&#8217;ve been trying to figure out a way to apply a drop shadow to all of the UINavigationBar instances without having to create alot of extra work by subclassing the UINavigationBar, and also having to sub class the UINavigationController.</p>
<p>After reading a few Stack Overflow posts, I was able to successfully create a category on UINavigationBar that applies the drop shadow successfully.</p>
<p><script src="https://gist.github.com/703093.js"> </script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.travisboudreaux.com/adding-a-drop-shadow-to-a-uinavigationbar/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.travisboudreaux.com/adding-a-drop-shadow-to-a-uinavigationbar</feedburner:origLink></item>
		<item>
		<title>Finding the Average Value of a column on a Core Data Entity</title>
		<link>http://feedproxy.google.com/~r/TravisBoudreaux/~3/I2vkfdrWp0A/finding-the-average-value-of-a-column-on-a-core-data-entity</link>
		<comments>http://www.travisboudreaux.com/finding-the-average-value-of-a-column-on-a-core-data-entity#comments</comments>
		<pubDate>Fri, 29 Oct 2010 15:30:05 +0000</pubDate>
		<dc:creator>tjboudreaux</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[iPhone Development]]></category>
		<category><![CDATA[core data]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://www.travisboudreaux.com/?p=160</guid>
		<description><![CDATA[I&#8217;ve been having trouble the past few days finding the solution to this question.  It was in the Core Data documentation, but considering how vast it was, I hoped that a simple Google query would have provided my answer. Here&#8217;s the original question over at Stack Overflow, and here&#8217;s a snippet of code I used [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been having trouble the past few days finding the solution to this question.  It was in the Core Data documentation, but considering how vast it was, I hoped that a simple Google query would have provided my answer. Here&#8217;s the <a href="http://stackoverflow.com/questions/3956682/how-can-i-get-the-average-value-of-a-column-with-core-data/4049144#4049144">original question over at Stack Overflow</a>, and here&#8217;s a snippet of code I used to succesfully get the average value of a column on one of Core Data entities.</p>
<p><script src="http://gist.github.com/652963.js"> </script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.travisboudreaux.com/finding-the-average-value-of-a-column-on-a-core-data-entity/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisboudreaux.com/finding-the-average-value-of-a-column-on-a-core-data-entity</feedburner:origLink></item>
		<item>
		<title>Hacking the Hootsuite Chrome Extension</title>
		<link>http://feedproxy.google.com/~r/TravisBoudreaux/~3/Hi-qM0JROCU/hacking-the-hootsuite-chrome-extension</link>
		<comments>http://www.travisboudreaux.com/hacking-the-hootsuite-chrome-extension#comments</comments>
		<pubDate>Mon, 16 Aug 2010 17:19:20 +0000</pubDate>
		<dc:creator>tjboudreaux</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[hootsuite]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.travisboudreaux.com/?p=123</guid>
		<description><![CDATA[Over the past few weeks I&#8217;ve been using Hootsuite alot more, but one of the things that really frustrates me is that I couldn&#8217;t use the Chrome extension as well as I would like, because the modal window would open with a static height, and when I would try to generate the Facebook Preview Image [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few weeks I&#8217;ve been using Hootsuite alot more, but one of the things that really frustrates me is that I couldn&#8217;t use the Chrome extension as well as I would like, because the modal window would open with a static height, and when I would try to generate the Facebook Preview Image and text, the content would run out of the modal window.</p>
<p><a href="http://www.travisboudreaux.com/wp-content/uploads/2010/08/hootsuite-before.png"><img class="alignnone size-large wp-image-125" title="hootsuite-before" src="http://www.travisboudreaux.com/wp-content/uploads/2010/08/hootsuite-before-1024x783.png" alt="" width="573" height="437" /></a></p>
<p>Since Chrome extensions are mash up of HTML, CSS, and Javascript, I figured it wouldn&#8217;t be too difficult to fix this problem. Here&#8217;s what I ended up doing.</p>
<h3>Step 1. Find the Files</h3>
<p>On OSX you can find your Chrome Extensions under ~/Application Support/Google/Chrome/Extensions/</p>
<p><em>* for those of you who don&#8217;t spend alot of time at the command prompt ~ represents the path to the User&#8217;s home directory, which in OSX is /Users/profilename</em></p>
<h3>Step 2. Navigate to line 976 of  js/global.js in the plugin&#8217;s directory and replace it with this.</h3>
<p><script src="http://gist.github.com/522988.js?file=Modifying%20Hootsuite%20Chrome%20Extension"></script></p>
<h3>Step3. Save and Restart Chrome</h3>
<p><a href="http://www.travisboudreaux.com/wp-content/uploads/2010/08/hootsuite-after.png"><img class="alignnone size-large wp-image-124" title="hootsuite-after" src="http://www.travisboudreaux.com/wp-content/uploads/2010/08/hootsuite-after-1024x781.png" alt="" width="573" height="437" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.travisboudreaux.com/hacking-the-hootsuite-chrome-extension/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisboudreaux.com/hacking-the-hootsuite-chrome-extension</feedburner:origLink></item>
		<item>
		<title>Grepping A Log File</title>
		<link>http://feedproxy.google.com/~r/TravisBoudreaux/~3/vXR3xiwg3UY/grepping-a-log-file</link>
		<comments>http://www.travisboudreaux.com/grepping-a-log-file#comments</comments>
		<pubDate>Wed, 17 Mar 2010 04:21:10 +0000</pubDate>
		<dc:creator>tjboudreaux</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Featured Posts]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.travisboudreaux.local/?p=9</guid>
		<description><![CDATA[Scenario: A user takes an online survey. The user&#8217;s record is updated as having taken the test but not completing it. The user claims to have taken the survey, and wants to know what went wrong in the system. Caveat: The user took the test over a month ago. After connecting to the server and [...]]]></description>
			<content:encoded><![CDATA[<p><b>Scenario:</b> A user takes an online survey.  The user&#8217;s record is updated as having taken the test but not completing it.  The user claims to have taken the survey, and wants to know what went wrong in the system.  Caveat: The user took the test over a month ago.</p>
<p>After connecting to the server and combing through the code, you find nothing that indicates an issue should have occurred. In a lightbulb moment, you decide to check the log files for errors.  One small problem.  The log file is 10MB large, and has data in it that goes back over a year. </p>
<p>What should you do? Grep to the rescue. </p>
<p><script src="http://gist.github.com/335426.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.travisboudreaux.com/grepping-a-log-file/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisboudreaux.com/grepping-a-log-file</feedburner:origLink></item>
		<item>
		<title>Validating Robots.txt Files</title>
		<link>http://feedproxy.google.com/~r/TravisBoudreaux/~3/GkxX-luA3oc/validating-robots-txt-files</link>
		<comments>http://www.travisboudreaux.com/validating-robots-txt-files#comments</comments>
		<pubDate>Wed, 10 Mar 2010 04:19:56 +0000</pubDate>
		<dc:creator>tjboudreaux</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[robots.txt]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.travisboudreaux.local/?p=7</guid>
		<description><![CDATA[This week at work, one of my coworkers came across the following scenario. &#13; Months ago, all of the content on our development server for a client&#8217;s domain got spidered. Apparently Google trusted our domain more than the clients, due to a number of factors, so in the organic results, the development server url was [...]]]></description>
			<content:encoded><![CDATA[<p>This week at work, one of my coworkers came across the following scenario.</p>
<p>&#13;</p>
<p>Months ago, all of the content on our development server for a client&#8217;s domain got spidered.  Apparently Google trusted our domain more than the clients, due to a number of factors, so in the organic results, the development server url was outranking the production server url.</p>
<p>&#13;</p>
<p>To alleviate this problem, one of our developers setup a very strict robots.txt file that disallowed all robot traffic, on this development version of the site.</p>
<p>&#13;</p>
<p>Somewhere down the line, this robots.txt file got deployed to the production server. We&#8217;ve since resolved the problems this caused, but we started to wonder if that may have happened to any of our other sites.</p>
<p>&#13;</p>
<p>We have worked on nearly 600 domains in the past few years, so it would be a tedious task to manually check all of these sites.</p>
<p>&#13;</p>
<p>I wrote this little nugget of goodness below to solve this problem.  It pulls a db table of domains that we&#8217;ve worked on, checks to see if bots are allowed on the live site, and generates a report of those sites that aren&#8217;t setup correctly.</p>
<p>&#13;</p>
<p>I plan to expand it a little more, including setting it up on a cron job and generating emails nightly when a domain is setup incorrectly.</p>
<p><script src="http://gist.github.com/323560.js?file=Robots.txt+Spider"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.travisboudreaux.com/validating-robots-txt-files/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisboudreaux.com/validating-robots-txt-files</feedburner:origLink></item>
		<item>
		<title>Updating Related Records With Doctrine Hooks</title>
		<link>http://feedproxy.google.com/~r/TravisBoudreaux/~3/fd4Vy3bV3zk/updating-related-records-with-doctrine-hooks</link>
		<comments>http://www.travisboudreaux.com/updating-related-records-with-doctrine-hooks#comments</comments>
		<pubDate>Tue, 16 Feb 2010 04:17:45 +0000</pubDate>
		<dc:creator>tjboudreaux</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[doctrine events]]></category>
		<category><![CDATA[doctrine hooks]]></category>
		<category><![CDATA[doctrine orm]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.travisboudreaux.local/?p=4</guid>
		<description><![CDATA[On a project that I am currently working on at work, a unique problem presented itself. &#13; Take into account the following relationship: &#13; &#13; The above diagram is incomplete, but signifies the problem we are seeking to solve. The steps field in Profile is an aggregate of the steps that exist in each activity [...]]]></description>
			<content:encoded><![CDATA[<p>On a project that I am currently working on at work, a unique problem presented itself.</p>
<p>&#13;</p>
<p>Take into account the following relationship:</p>
<p>&#13;</p>
<p><img alt="UML Diagram of Users, Profiles, and Activity Logs" src="http://yuml.me/43ffc180" /></p>
<p>&#13;</p>
<p>The above diagram is incomplete, but signifies the problem we are seeking to solve.  The steps field in Profile is an aggregate of the steps that exist in each activity log related to a profile.</p>
<p>&#13;</p>
<p>While this could have been designed to dynamically calculate this field, given the scope of the application, number of users, and the critical nature that steps present to ranking user profiles, it was decided that steps become a field that would be updated manually when it needed to change.</p>
<p>&#13;</p>
<p>Because of this we found a small problem:what happens when a user updates an activity log in such a way, that it changes the value of steps.</p>
<p>&#13;</p>
<p>Thanks to some handy Doctrine Magic, the following snippet provides our solution: postInsert and postUpdate hooks in the ActivityLog model that update the steps field in the related Profile.</p>
<p>&#13;<br />
<script src="http://gist.github.com/283405.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.travisboudreaux.com/updating-related-records-with-doctrine-hooks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisboudreaux.com/updating-related-records-with-doctrine-hooks</feedburner:origLink></item>
	</channel>
</rss>

