<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>Catch Exception</title><generator>Tumblr (3.0; @catchexception)</generator><link>http://catchexception.tumblr.com/</link><item><title>Excel Formulas for Mint.com</title><description>&lt;p&gt;A little departure from the norm, but if you want to go quickly convert your expenditures from Mint into overall tallies for tax purposes, simply:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Export your Mint data to CSV.&lt;/li&gt;
&lt;li&gt;Import to Excel or equivalent.&lt;/li&gt;
&lt;li&gt;Trim the data down to just the date range you need (Mint doesn&amp;#8217;t allow this out of the box).&lt;/li&gt;
&lt;li&gt;Add a few columns to contain your totals and drop in these formulas:&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;// Total amount spent&lt;/p&gt;
&lt;p&gt;=SUMIF(E:E,&amp;#8221;debit&amp;#8221;,D:D)&lt;/p&gt;
&lt;p&gt;// Auto &amp;amp; Transport&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Auto &amp;amp; Transport&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Auto Insurance&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Auto Payment&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Gas &amp;amp; Fuel&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Parking&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Service &amp;amp; Parts&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Public Transportation&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Bills &amp;amp; Utilities&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Bills &amp;amp; Utilities&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Home Phone&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Internet&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Mobile Phone&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Television&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Utilities&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Business Services&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Business Services&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Advertising&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Legal&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Office Supplies&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Printing&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Shipping&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Education&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Education&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Books &amp;amp; Supplies&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Student Loan&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Tuition&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Entertainment&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Entertainment&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Amusement&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Arts&amp;#8221;,D:D)&lt;br/&gt;,SUMIF(F:F,&amp;#8221;Music&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Newspapers &amp;amp; Magazines&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Movies &amp;amp; DVDs&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Fees &amp;amp; Charges&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Fees &amp;amp; Charges&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;ATM Fee&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Bank Fee&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Finance Charge&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Late Fee&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Trade Comissions&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Service Fee&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Financial&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Financial&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Financial Advisor&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Life Insurance&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Food &amp;amp; Dining&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Food &amp;amp; Dining&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Alcohol &amp;amp; Bars&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Groceries&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Coffee Shops&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Fast Food&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Restaurants&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Gifts &amp;amp; Donations&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Gifts &amp;amp; Donations&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Charity&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Gift&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Health &amp;amp; Fitness&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Health &amp;amp; Fitness&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Dentist&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Doctor&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Eyecare&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Gym&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Health Insurance&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Pharmacy&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Sports&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Home&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Home&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Furnishings&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Home Improvement&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Home Insurance&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Home Services&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Home Supplies&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Lawn &amp;amp; Garden&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Mortgage &amp;amp; Rent&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Investments&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Investments&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Withdrawal&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Sell&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Personal Care&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Personal Care&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Hair&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Laundry&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Spa &amp;amp; Massage&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Shopping&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Shopping&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Books&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Clothing&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Electronics &amp;amp; Software&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Hobbies&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Sporting Goods&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Taxes&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Taxes&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Federal Tax&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Local Tax&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Property Tax&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Sales Tax&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;State Tax&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Travel&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Travel&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Air Travel&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Hotel&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Rental Car &amp;amp; Taxi&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Vacation&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;p&gt;// Uncategorized&lt;/p&gt;
&lt;p&gt;=IF(E:E=&amp;#8221;debit&amp;#8221;,SUM(SUMIF(F:F,&amp;#8221;Uncategorized&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Cash &amp;amp; ATM&amp;#8221;,D:D),SUMIF(F:F,&amp;#8221;Check&amp;#8221;,D:D)),0)&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;</description><link>http://catchexception.tumblr.com/post/18081080802</link><guid>http://catchexception.tumblr.com/post/18081080802</guid><pubDate>Wed, 22 Feb 2012 14:13:00 -0500</pubDate></item><item><title>Outputting PHP arrays to the error log</title><description>&lt;p&gt;Just had another one of those &amp;#8220;I never knew I could do that!&amp;#8221; moments. I&amp;#8217;ve always wanted to dump PHP arrays to the error log, but could never figure out an eloquent way to do it. Then I discovered print_r has an optional second parameter designed to make sending arrays to the log easier.&lt;/p&gt;

&lt;p&gt;$myArray = array(&amp;#8216;foo&amp;#8217;=&amp;gt;&amp;#8217;bar&amp;#8217;);&lt;/p&gt;
&lt;p&gt;error_log(print_r($myArray,true));&lt;/p&gt;

&lt;p&gt;Piece of cake.&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/15347484646</link><guid>http://catchexception.tumblr.com/post/15347484646</guid><pubDate>Thu, 05 Jan 2012 10:45:55 -0500</pubDate></item><item><title>Facebook Insights API</title><description>&lt;p&gt;One can extract the # of times a person has liked a specific URL on a page - just use the &lt;a href="https://developers.facebook.com/docs/reference/api/insights/"&gt;Insights API&lt;/a&gt;. Could be cool to create custom like buttons. Haven&amp;#8217;t run a test on this yet&amp;#8230; may do it later when I have some more time.&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/15312495651</link><guid>http://catchexception.tumblr.com/post/15312495651</guid><pubDate>Wed, 04 Jan 2012 17:43:25 -0500</pubDate></item><item><title>Load an external model in PyroCMS 1.2.0</title><description>&lt;p&gt;&lt;pre&gt;&lt;span&gt;$module = $this-&amp;gt;module_m-&amp;gt;get('external_module_name');&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;$this-&amp;gt;load-&amp;gt;model($module['slug'].'/model_name_m');
$this-&amp;gt;model_name_m-&amp;gt;doSomething();&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/13547668506</link><guid>http://catchexception.tumblr.com/post/13547668506</guid><pubDate>Wed, 30 Nov 2011 10:37:05 -0500</pubDate><category>pyrocms</category><category>codeigniter</category><category>php</category></item><item><title>Adding to the sudoers list</title><description>&lt;p&gt;Yet another thing I always forget about: How to add a sudoer from the command lind:&lt;/p&gt;
&lt;p&gt;visudo&lt;/p&gt;
&lt;p&gt;#Add this line toward the bottom&lt;/p&gt;
&lt;p&gt;username    ALL=(ALL)    ALL &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If visudo is not found, it&amp;#8217;s probably in /usr/sbin/.&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/13501741826</link><guid>http://catchexception.tumblr.com/post/13501741826</guid><pubDate>Tue, 29 Nov 2011 10:37:00 -0500</pubDate><category>server admin</category></item><item><title>"I think the user interface’s get better by watching the user’s use them. It’s very..."</title><description>“I think the user interface’s get better by watching the user’s use them. It’s very humbling”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Bill Atkinson&lt;/em&gt;</description><link>http://catchexception.tumblr.com/post/13462219202</link><guid>http://catchexception.tumblr.com/post/13462219202</guid><pubDate>Mon, 28 Nov 2011 14:38:00 -0500</pubDate><category>quote</category><category>ui</category></item><item><title>DirectTV on JetBlue UX</title><description>&lt;p&gt;Click the DirectTV icon while watching tv on JetBlue to get a channel guide. Channel up and down becomes the select and the DirectTV icon becomes &amp;#8220;Okay&amp;#8221;. Wish they surfaced that better, but it&amp;#8217;s a nice touch.&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/13217722271</link><guid>http://catchexception.tumblr.com/post/13217722271</guid><pubDate>Wed, 23 Nov 2011 15:45:00 -0500</pubDate><category>ui</category></item><item><title>Better Facebook ASync JS</title><description>&lt;p&gt;Facebook&amp;#8217;s &lt;a href="http://developers.facebook.com/docs/reference/javascript/"&gt;async loading&lt;/a&gt; doesn&amp;#8217;t always play nice with other JS loading since it&amp;#8217;s an asynchronous load. It&amp;#8217;s hard to know if it&amp;#8217;ll be there or not. This modification creates an FBProxy object with callbacks just like jQuery. To use it:&lt;/p&gt;
&lt;p&gt;FBProxy.ready(function() {&lt;/p&gt;
&lt;p&gt;  // facebook is ready and the FB object should exist.&lt;/p&gt;
&lt;p&gt;});&lt;/p&gt;
&lt;p&gt;As with jQuery you can add as many callbacks as you want, and if Facebook is already loaded the callback will get fired right away.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script&amp;gt;
&amp;lt;div id="fb-root"&amp;gt;&amp;lt;/div&amp;gt;
	var FBProxy = (function() {
		var public = {};
		public.isReady = false;
		public.callbacks = [];
		
		public.ready = function($callback) {
			if(public.isReady) $callback();
			else public.callbacks.push($callback);
		}

		return public;
	})();

  window.fbAsyncInit = function() {
	FBProxy.isReady = true;
	if(FBProxy.callbacks.length &amp;gt; 0) {
		for(var i=0;i&amp;lt;FBProxy.callbacks.length;i++) { FBProxy.ready(FBProxy.callbacks[i]); }
	}		  	
  }

  // async
  (function(d){
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     d.getElementsByTagName('head')[0].appendChild(js);
   }(document));
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description><link>http://catchexception.tumblr.com/post/13159681484</link><guid>http://catchexception.tumblr.com/post/13159681484</guid><pubDate>Tue, 22 Nov 2011 10:52:00 -0500</pubDate><category>javascript</category><category>facebook</category></item><item><title>Resize an iFrame dynamically using jQuery</title><description>&lt;p&gt;&lt;pre&gt;&lt;code&gt;var iframe = $("iframe");
var iframeElement = iframe[0];
var src = iframe.attr("src").split("?")[0];

iframe.load(function() {
    iframe.attr("height",iframeElement.contentDocument.documentElement.offsetHeight + 30);
});&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/13112715059</link><guid>http://catchexception.tumblr.com/post/13112715059</guid><pubDate>Mon, 21 Nov 2011 10:35:00 -0500</pubDate><category>javascript</category></item><item><title>Thought.</title><description>&lt;p&gt;Yesterday I posted some Trig functions to help me remember. In attempting to remember soh-cah-toa, I realized this is akin to having a happy thought in Peter Pan: Come up with a mnemonic for yourself and you&amp;#8217;ll never forget.&lt;/p&gt;
&lt;p&gt;Mine is my older brother&amp;#8217;s cat. So cat toe. I think of Charles and I&amp;#8217;ll remember the equations.&lt;/p&gt;
&lt;p&gt;And just in case:&lt;/p&gt;
&lt;p&gt;sine = opposite/hypotenuse&lt;/p&gt;
&lt;p&gt;cosine = adjacent/hypotenuse&lt;/p&gt;
&lt;p&gt;tangent = opposite/adjacent&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/13062675796</link><guid>http://catchexception.tumblr.com/post/13062675796</guid><pubDate>Sun, 20 Nov 2011 10:33:00 -0500</pubDate><category>math</category></item><item><title>Trigonometry</title><description>&lt;p&gt;I&amp;#8217;ve always been bad at trig, so it was nice to finally have a breakthrough with some of the math. As with my grid equations, here are the basics for [my] reference.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Get the angle between two points&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;atan2(y2-y1,x2-x1);&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Get the x and y of an object around a radius, given an angle.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;x = cos(radians(angle)) * radius &lt;/p&gt;
&lt;p&gt;y = sin(radians(angle)) * radius&lt;/p&gt;
&lt;p&gt;You can create weird orbits by changing the result of sin. For example:&lt;/p&gt;
&lt;p&gt;y = sin(radians(angle))/2 * radius;&lt;/p&gt;
&lt;p&gt;And of course, add offset X and Ys if your circle isn&amp;#8217;t at 0,0.&lt;/p&gt;
&lt;p&gt;x = (cos(radians(angle)) * radius) + offsetX&lt;/p&gt;
&lt;p&gt;y = (sin(radians(angle)) * radius) + offsetY&lt;/p&gt;
&lt;p&gt;(Thanks &lt;a href="http://charliewhitney.com/"&gt;Charlie&lt;/a&gt;!)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Get the distance between two points.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;sqrt(pow(y2-y1,2) + pow(x2-x1,2))&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/13013747820</link><guid>http://catchexception.tumblr.com/post/13013747820</guid><pubDate>Sat, 19 Nov 2011 10:36:00 -0500</pubDate><category>math</category></item><item><title>The Creative Process</title><description>&lt;p&gt;&lt;img height="663" width="500" src="http://media.tumblr.com/tumblr_lunr6d0WQ71qbchew.png"/&gt;&lt;/p&gt;
&lt;p&gt;I don&amp;#8217;t like to look at other executions out there. I prefer natural inspiration - if there&amp;#8217;s a thing I discover and think it&amp;#8217;s awesome, other normal regular people out there probably also have a positive view of said thing. I&amp;#8217;d prefer to base my tactics on that. I guess it&amp;#8217;s a variation of going with my gut.&lt;/p&gt;
&lt;p&gt;Image via &lt;a href="http://www.adteachings.com/post/12792363057/158-the-creative-process"&gt;AD TEACHINGS&lt;/a&gt; via &lt;a href="http://www.awful-drawings.com/post/12792006579/creative-process"&gt;Awful Drawings&lt;/a&gt;&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/12969265313</link><guid>http://catchexception.tumblr.com/post/12969265313</guid><pubDate>Fri, 18 Nov 2011 10:32:06 -0500</pubDate></item><item><title>OSC + Objective-C</title><description>&lt;p&gt;Haven&amp;#8217;t played with this yet, but it looks pretty straightforward and easy to do. Might experiment with this later and post more finding. &lt;a href="http://www.trembl.org/codec/532/"&gt;Link&lt;/a&gt;&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/12926618673</link><guid>http://catchexception.tumblr.com/post/12926618673</guid><pubDate>Thu, 17 Nov 2011 10:33:05 -0500</pubDate></item><item><title>Find the index of an item in a grid.</title><description>&lt;p&gt;I realized I posted one half of dealing with grids - &lt;a href="http://catchexception.tumblr.com/post/12689898640/find-the-x-y-of-an-item-in-a-grid"&gt;finding the X and Y given an index&lt;/a&gt; - but not finding the index given an X and Y. I&amp;#8217;d typically just cache this variable so I never gave it a thought. The equation looks like this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;index = (y*rows)+x&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Fun!&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/12882942542</link><guid>http://catchexception.tumblr.com/post/12882942542</guid><pubDate>Wed, 16 Nov 2011 10:31:06 -0500</pubDate></item><item><title>Local and Remote Git Branches</title><description>&lt;p&gt;Another thing I always forget - when cloning a repo from a remote repository, how do you start to manipulate from a remote branch? It&amp;#8217;s certainly easy to start messing with the default (typically master) branch, but what if you want to start from a different place?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;git branch &amp;#8212;track local_branch remote_branch&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For me, this most often looks like the following:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;git branch &amp;#8212;track develop remotes/origin/develop&lt;/strong&gt;&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/12838101881</link><guid>http://catchexception.tumblr.com/post/12838101881</guid><pubDate>Tue, 15 Nov 2011 10:56:05 -0500</pubDate></item><item><title>Vocab rehash.</title><description>&lt;p&gt;I always forget these things so I&amp;#8217;m writing them down so I don&amp;#8217;t forget.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unsigned vs. Signed&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Signed effectively means &amp;#8220;supports negative numbers&amp;#8221;. Basically, a signed int can range from -2147483648 to 2147483647, after which you hit the preverbial &lt;a href="http://en.wikipedia.org/wiki/Kill_screen"&gt;kill screen&lt;/a&gt;. Note that last number. 0 technically sort of counts as a positive number in programming terms, so the negative range is just a little further.&lt;/p&gt;
&lt;p&gt;Unsigned supports only positive numbers 0 to 4294967295. In other words if you never need a negative number (such as an auto-incrementing id in MySQL) there&amp;#8217;s no reason to sign it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Atomic vs. Nonatomic&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I typically think of this as an Objective-C problem, but I&amp;#8217;m sure it applies across the spectrum of computer programming.&lt;/p&gt;
&lt;p&gt;This is mostly about the @&lt;em&gt;&lt;strong&gt;synthesize&lt;/strong&gt;&lt;/em&gt; declaration and has to do with threading. Atomic operators will do their best to insure things accessing that variable across threads will happen sequentially. Otherwise threads could feasibly change properties in the middle of execution, which can get really confusing.&lt;/p&gt;
&lt;p&gt;Basically: Nonatomic is faster, atomic is safer.&lt;/p&gt;
&lt;p&gt;More on this &lt;a href="http://stackoverflow.com/questions/588866/atomic-vs-nonatomic-properties"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mutable vs. Immutable&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mutable can be added to and changed. Immutable cannot.&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/12791952124</link><guid>http://catchexception.tumblr.com/post/12791952124</guid><pubDate>Mon, 14 Nov 2011 10:59:06 -0500</pubDate></item><item><title>Add Application to Tab link</title><description>&lt;p&gt;I always wondered how some Facebook vendors were able to create one-click installs for adding tabs to a page. Turns out it&amp;#8217;s pretty straightforward. Who would&amp;#8217;ve thought?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;a target="_blank" href="http://facebook.com/add.php?api_key=YOUR_APP_KEY&amp;amp;pages=1&amp;amp;page=YOUR_PAGE_ID"&amp;gt;PAGE NAME&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://www.devcha.com/2011/03/facebook-add-application-to-page-link.html"&gt;Source&lt;/a&gt;&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/12739602876</link><guid>http://catchexception.tumblr.com/post/12739602876</guid><pubDate>Sun, 13 Nov 2011 10:30:05 -0500</pubDate></item><item><title>Find the X,Y of an item in a grid.</title><description>&lt;p&gt;I&amp;#8217;ve done so much work with grids but I always precalculated this stuff. This is so much simpler. Assuming you know how many columns the grid has and the index of an item in the grid:&lt;/p&gt;

&lt;p&gt;X = index%cols&lt;/p&gt;
&lt;p&gt;Y = floor(index/cols)&lt;/p&gt;

&lt;p&gt;Awesome.&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/12689898640</link><guid>http://catchexception.tumblr.com/post/12689898640</guid><pubDate>Sat, 12 Nov 2011 10:35:05 -0500</pubDate></item><item><title>MailChimp's API is awesome.</title><description>&lt;p&gt;&lt;a href="http://apidocs.mailchimp.com/api/1.3/listsubscribe.func.php"&gt;Check this out&lt;/a&gt;. Detailed explanations on everything possible with an API key, plus examples in PHP. &lt;a href="http://apidocs.mailchimp.com/api/downloads/"&gt;Wrappers&lt;/a&gt; in every conceivable language already built, most of them time by 3rd parties with credit and links to GitHub. There&amp;#8217;s even a &lt;a href="https://github.com/waynhall/CodeIgniter-Library-for-MailChimp-API-v1.3"&gt;CodeIgniter library&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Facebook could learn a lot about documentation from this.&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/12557559618</link><guid>http://catchexception.tumblr.com/post/12557559618</guid><pubDate>Wed, 09 Nov 2011 10:30:06 -0500</pubDate></item><item><title>Thought.</title><description>&lt;p&gt;How come car companies can&amp;#8217;t come out with annual feature changes the same way Apple does? Tesla seems best geared to think this way and there&amp;#8217;s certainly no shortage of inspiring model cars, but it seems like there&amp;#8217;s a decided lack of interest in the rest of the mechanics of the car.&lt;/p&gt;
&lt;p&gt;Is it that car companies invest everything in safety and exterior design? There&amp;#8217;s nobody interested in thinking about EZ pass integration in the car? In changing the way the windows slide up and down?&lt;/p&gt;</description><link>http://catchexception.tumblr.com/post/12513836314</link><guid>http://catchexception.tumblr.com/post/12513836314</guid><pubDate>Tue, 08 Nov 2011 10:31:05 -0500</pubDate></item></channel></rss>
