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

<channel>
	<title>My name is Joel &#187; Work</title>
	<atom:link href="http://joeloliveira.com/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://joeloliveira.com</link>
	<description>I work on the web making stuff I like. I live in Boston(-ish) with my wife and our English Bulldog.</description>
	<lastBuildDate>Tue, 03 Aug 2010 16:28:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>What this freelancing lifestyle is missing</title>
		<link>http://joeloliveira.com/2010/07/28/what-this-freelancing-lifestyle-is-missing/</link>
		<comments>http://joeloliveira.com/2010/07/28/what-this-freelancing-lifestyle-is-missing/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 19:24:01 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://joeloliveira.com/?p=835</guid>
		<description><![CDATA[In a word &#8211; &#8220;Feedback&#8221;. Plain and simple. It&#8217;s a given that while we work with our customers and clients we get some feedback along the way &#8211; &#8220;This is good&#8221;, &#8220;This needs to move over here&#8221;, &#8220;Make this red&#8221;, etc. That sort of feedback, however, is a little superficial in the grand scheme of [...]]]></description>
			<content:encoded><![CDATA[<p>In a word &#8211; &#8220;Feedback&#8221;.  Plain and simple.</p>
<p>It&#8217;s a given that while we work with our customers and clients we get some feedback along the way &#8211; &#8220;This is good&#8221;,  &#8220;This needs to move over here&#8221;, &#8220;Make this red&#8221;, etc.   That sort of feedback, however, is a little superficial in the grand scheme of things and not quite the feedback we&#8217;re in need of most.   The feedback I&#8217;ve been missing for the past few years is the piece of the traditional employee-employer (&#8220;working for the man&#8221;) relationship.  We might bitch and moan about it when we&#8217;re there within that context, but to be frank &#8211; the annual review is crucial.  How else are we to know what we need to improve on?  </p>
<p>As a freelancer &#8211; these constructs no longer exist if we don&#8217;t want them to.  Which is nice to begin with.  <em>We&#8217;re free! Right?!</em>  Right.   But, over time the novelty and the doubt will creep in and you&#8217;ll be left wondering &#8211; &#8220;What is it that I could do better?&#8221;.  I&#8217;ve found myself longing for this feedback as of late and, while it&#8217;s a little scary and my <a href="http://sethgodin.typepad.com/seths_blog/2010/01/quieting-the-lizard-brain.html">lizard brain</a> is wailing like a banshee, I&#8217;m pulling the trigger.   </p>
<p>I&#8217;ll be asking my clients upon project completion just what it is that I did well on, and what I done poorly or could use some work.  To some it might be counter-intuitive &#8211; &#8220;They hired you, right?  They had to have confidence.&#8221; &#8211; but I&#8217;m more interested and excited to know for sure.  No gray area.  No guessing.  No assumptions.   Running a business is just that &#8211; it&#8217;s business.  There&#8217;s nothing personal about this.   Tell me how my business can be <strong>better</strong>.</p>
<p>I&#8217;m sure a good number of my fellow freelancers have been doing this for months (years) and wondering what&#8217;s taken me so long.  I really wish I had an answer for that, but I don&#8217;t.  Would those of you who have been doing this have any suggestions?  Are there any questions you&#8217;ve asked that get the most constructive and helpful reaction?</p>
<p><small>Continuing on this theme, but a different post for another day, is feedback from a different slice of our professional life &#8211; our peers.    <em>To be continued &#8230;</em></small></p>
]]></content:encoded>
			<wfw:commentRss>http://joeloliveira.com/2010/07/28/what-this-freelancing-lifestyle-is-missing/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Meta descriptions and keywords for each page and post in WordPress</title>
		<link>http://joeloliveira.com/2009/04/03/meta-descriptions-and-keywords-for-each-page-and-post-in-wordpress/</link>
		<comments>http://joeloliveira.com/2009/04/03/meta-descriptions-and-keywords-for-each-page-and-post-in-wordpress/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 17:09:13 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[meta tags]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.joeloliveira.com/2009/04/03/meta-descriptions-and-keywords-for-each-page-and-post-in-wordpress/</guid>
		<description><![CDATA[After searching for a plugin that might accommodate this in WordPress and coming up empty, I went digging for a possible easy way to do this with the means available.   Logic dictates that with custom fields this should be rather easy to accomplish. The only snag might have been that in retreiving a custom field [...]]]></description>
			<content:encoded><![CDATA[<p>After searching for a plugin that might accommodate this in WordPress and coming up empty, I went digging for a possible easy way to do this with the means available.   Logic dictates that with custom fields this should be rather easy to accomplish.</p>
<p>The only snag might have been that in retreiving a custom field for a page or a post you need the page or post&#8217;s ID.   Usually this id is readily available within &#8220;the loop&#8221;, but what about when we&#8217;re up in the &lt;head&gt; tags?    A little searching in the codex reveals that we can grab your pages&#8217; ID with <strong>$wp_query-&gt;post-&gt;ID</strong>.  Fantastic &#8211; because, with that we&#8217;re pretty much done! Adding the following in your theme&#8217;s header.php file between &lt;head&gt; &#8230; &lt;/head&gt; :</p>
<blockquote><p>&lt;meta name=&#8221;keywords&#8221; content=&#8221;&lt;?php $key=&#8221;meta_keywords&#8221;; echo get_post_meta($wp_query-&gt;post-&gt;ID, $key, true); ?&gt;&#8221; /&gt;<br />
&lt;meta name=&#8221;description&#8221; content=&#8221;&lt;?php $key=&#8221;meta_description&#8221;; echo get_post_meta($wp_query-&gt;post-&gt;ID, $key, true); ?&gt;&#8221; /&gt;</p></blockquote>
<p>.. and &#8220;meta_keywords&#8221; and &#8220;meta_description&#8221; as custom fields with your desired content for each will get you to where you want to be.</p>
]]></content:encoded>
			<wfw:commentRss>http://joeloliveira.com/2009/04/03/meta-descriptions-and-keywords-for-each-page-and-post-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress hosted on XO Communications.</title>
		<link>http://joeloliveira.com/2009/03/27/wordpress-hosted-on-xo-communications/</link>
		<comments>http://joeloliveira.com/2009/03/27/wordpress-hosted-on-xo-communications/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 15:49:29 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[XO]]></category>

		<guid isPermaLink="false">http://www.joeloliveira.com/2009/03/27/wordpress-hosted-on-xo-communications/</guid>
		<description><![CDATA[Suffice it to say &#8211; it&#8217;s not a winning combination.   There are two definitive hacks you&#8217;ll need to get things to work. First, a plugin to disable canonical URL redirection.  Second, a hack to wp-settings.php that circumvents the XO php configuration&#8217;s not having $_SERVER['REQUEST_URI']. Update: the second hack will break the non-admin part of the [...]]]></description>
			<content:encoded><![CDATA[<p>Suffice it to say &#8211; it&#8217;s not a winning combination.   There are two definitive hacks you&#8217;ll need to get things to work.</p>
<p>First, <a href="http://wordpress.org/support/topic/233098?replies=10" target="_blank">a plugin to disable canonical URL redirection</a>.  Second, <a href="http://wordpress.org/support/topic/194305?replies=6">a hack to wp-settings.php that circumvents the XO php configuration&#8217;s not having <em>$_SERVER['REQUEST_URI']</em></a>.</p>
<p><strong>Update:</strong> the second hack will break the non-admin part of the site in the context of the current site I&#8217;ve been working on.  So your mileage may vary.</p>
]]></content:encoded>
			<wfw:commentRss>http://joeloliveira.com/2009/03/27/wordpress-hosted-on-xo-communications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing libmemcached and the memcached gem on Leopard</title>
		<link>http://joeloliveira.com/2009/02/16/installing-libmemcached-and-the-memcached-gem-on-leopard/</link>
		<comments>http://joeloliveira.com/2009/02/16/installing-libmemcached-and-the-memcached-gem-on-leopard/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 02:18:44 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Whining]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://www.joeloliveira.com/2009/02/16/installing-libmemcached-and-the-memcached-gem-on-leopard/</guid>
		<description><![CDATA[What a huge pain in the ass.I just spent hours trying to get every combination of these two to work together and nothing worked.   A handful of versions of libmemcached had no problems installing &#8211; .24, .25 and .26 were all easy to install, both from source and from macports.  However, getting the memcached [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.joeloliveira.com/wp-content/uploads/2009/02/facepalm.jpg" alt="facepalm" style="float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 10px" />What a huge pain in the ass.I just spent hours trying to get every combination of these two to work together and nothing worked.   A handful of versions of libmemcached had no problems installing &#8211; .24, .25 and .26 were all easy to install, both from source and from macports.  However, getting the memcached gem to install proved to be way way more difficult.I tried with a myriad of options &#8211; the most promising piece of information looked to be from <a href="http://shanesveller.com/2008/03/31/memcached-and-memcached-gem-on-leopard/#comment-18">this gentleman&#8217;s website</a> &#8211; but also proved fruitless.The final solution, after a LOT of googling and clicking around the rubygem forums &#8211; <a href="http://blog.evanweaver.com/articles/2009/01/24/secret-codes/">this post at Evan Weaver&#8217;s blog</a>.  The libmemcached-0.25.14.tar.gz and memcached-0.13.gem tarball and gem, respectively, installed easily without any problems.  After downloading all I had to run was:<br />
<blockquote>
<pre>tar -xzvf libmemcached-0.25.14.tar.gz</pre>
<pre>cd libmemcached-0.25.14</pre>
<pre>./configure &amp;&amp; make &amp;&amp; sudo make install</pre>
<pre>cd ..</pre>
<pre>sudo gem install memcached --no-rdoc --no-ri</pre>
</blockquote>
<p>Done.Finally.<strong>Update:</strong>  There seems to be a few issues with the gem I link to being installed correctly in Snow Leopard.  After spending too much time trying to figure out why the gem wouldn&#8217;t install, I installed the current memcached gem (from gemcutter) on a whim &#8211; and it compiled, and worked, without a problem instantly.   So, if you&#8217;re running Snow Leopard and looking to install the memcached gem, try out the latest version first.One caveat &#8211; I&#8217;m still using the memcached server I linked to above, version  0.25.14, still from Evan Weaver&#8217;s site</p>
]]></content:encoded>
			<wfw:commentRss>http://joeloliveira.com/2009/02/16/installing-libmemcached-and-the-memcached-gem-on-leopard/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Difference between :collection and :member in Rails 2.0</title>
		<link>http://joeloliveira.com/2008/08/11/difference-between-collection-and-member-in-rails-20/</link>
		<comments>http://joeloliveira.com/2008/08/11/difference-between-collection-and-member-in-rails-20/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 01:06:57 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Site Work]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[enlightenment]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.joeloliveira.com/2008/08/11/difference-between-collection-and-member-in-rails-20/</guid>
		<description><![CDATA[In getting up to speed with the new bells and whistles in Rails 2.0s RESTful routing capabilities I ran into something that puzzled me.  Of the options for a resource defined among your routes there were two similar pieces that, for one reason or another, I could just not find a solid and bulletproof explanation [...]]]></description>
			<content:encoded><![CDATA[<p>In getting up to speed with the new bells and whistles in Rails 2.0s RESTful routing capabilities I ran into something that puzzled me.  Of the options for a resource defined among your routes there were two similar pieces that, for one reason or another, I could just not find a solid and bulletproof explanation for &#8211; <strong>:collection</strong> and <strong>:member</strong>.  The :member part of it I got pretty easily for some reason, because its description is inherent in its own name &#8230; &#8220;a member among the default restful actions&#8221;.  The :collection part?  Notsomuch.  After some digging in the Rails mailing list I ran into a great, and worthy, explanation for this knucklehead by a contributer named &#8220;deegee&#8221;:</p>
<blockquote><p>For example, with map.resources :reviews, if you want to add a method &#8216;delete_all&#8217; that deletes all reviews at once. You may want to call that with &#8216;/reviews/delete_all&#8217; and method PUT (never use GET to delete something). This method is acting on all resources (a<span class="nfakPe"> collection</span>), so the route should be:</p>
<blockquote><p><strong>map.resources :reviews, :<span class="nfakPe">collection</span> =&gt; { :delete_all =&gt; :put }</strong></p></blockquote>
<p>If you want to have a custom action acting on a specific resource, e.g. &#8216;/reviews/3/give_rating&#8217;, then your action is on a <span class="nfakPe">member</span> and the route would be</p>
<blockquote><p><strong>map.resources :reviews, :<span class="nfakPe">member</span> =&gt; { :give_rating =&gt; :put }</strong></p></blockquote>
</blockquote>
<p>So that&#8217;s it! They&#8217;re the same other than :member working on a single resource, while :collection works on multiple.  DONE!</p>
<blockquote></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://joeloliveira.com/2008/08/11/difference-between-collection-and-member-in-rails-20/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve got an idea. I need a programmer. It&#8217;s easy!</title>
		<link>http://joeloliveira.com/2008/04/16/ive-got-an-idea-i-need-a-programmer-its-easy/</link>
		<comments>http://joeloliveira.com/2008/04/16/ive-got-an-idea-i-need-a-programmer-its-easy/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 00:42:05 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[entrepreneurship]]></category>

		<guid isPermaLink="false">http://www.joeloliveira.com/2008/04/16/ive-got-an-idea-i-need-a-programmer-its-easy/</guid>
		<description><![CDATA[There&#8217;s a really great post at this blog about how the writer, a developer named Ethan, was approached by some acquaintances with regard to a big idea they needed help in implementing. The usual banter ensues, in which Ethan discusses the terms by which he expects to be compensated. Whether in equity or at an [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s <a href="http://codeclimber.blogspot.com/2008/04/all-i-need-is-programmer.html">a really great post at this blog</a> about how the writer, a developer named Ethan, was approached by some acquaintances with regard to a big idea they needed help in implementing.  The usual banter ensues, in which Ethan discusses the terms by which he expects to be compensated. Whether in equity or at an hourly rate of payment.</p>
<p>The response from his pitch-man?</p>
<blockquote><p><em>Hey, so, we aren&#8217;t really prepared to pay. I mean there isn&#8217;t that much to it, it&#8217;s just a PHP website with a MySql database, I was hoping you could just throw it together as a favor. Oh well, thanks anyway</em></p></blockquote>
<p>The rest of his post echoes pretty much exactly how I would feel in this situation.   &#8220;There isn&#8217;t that much to it&#8221;.   That line destroys me.  To anyone that might ever make that assumption &#8211; take a moment to step back, and really think about what you&#8217;re saying.  It blows my mind to think that there are people out there that are so quick to make the leap that &#8220;there isn&#8217;t much to&#8221; someone&#8217;s craft.</p>
<p>&#8220;Dear Mr. Architect &#8211; can you design this house for me for free?  I mean, there isn&#8217;t much to it, it&#8217;s just a house with a foundation and some walls&#8221;.</p>
<p>On another semi-related note.  If you&#8217;re looking for someone to jump in on an entrepreneurial venture &#8211; the challenge you should expect to be faced with is to find that one special, talented individual that might <em>share the same passion</em> as you on this particular topic.  From my perspective &#8211; that&#8217;s the key.  Passion. Unless it&#8217;s for pay, it&#8217;s hard for some to get truly amped to knock out the creative, or code, for your new project.  I&#8217;ve tried the same approach &#8211; &#8220;<em>Work with me on this! We&#8217;ll rule the world</em>&#8220;.  It&#8217;s too nebulous a proposition for most, unless they know they&#8217;re going to LOVE this thing you&#8217;re creating.</p>
<p>My conclusion &#8211; work my ass off for a little extra money to <strong>invest</strong> in the paid services of my friends to help me where the help is needed.   I just can&#8217;t ever expect to get something knocked out of the park by someone who&#8217;s going on my word &#8211; &#8220;This is going to be HUGE!&#8221;.   If my name was short for something like &#8230; Joelstradamus &#8230; then maybe I&#8217;d be more eager to prognosticate on the magnitude of my many &#8220;next pet project&#8221;s.</p>
]]></content:encoded>
			<wfw:commentRss>http://joeloliveira.com/2008/04/16/ive-got-an-idea-i-need-a-programmer-its-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.5 &#8211; I&#8217;m impressed</title>
		<link>http://joeloliveira.com/2008/04/14/wordpress-25-im-impressed/</link>
		<comments>http://joeloliveira.com/2008/04/14/wordpress-25-im-impressed/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 03:11:53 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Site Work]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[sara]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.joeloliveira.com/2008/04/14/wordpress-25-im-impressed/</guid>
		<description><![CDATA[I&#8217;m in the process of building and theming the brand new bitbythebeautybug.com for Sara. Not only is she excited, but I&#8217;m elated to be working with the newest of the new in WordPress &#8220;technology&#8221;. It&#8217;s a strange leap from all the WP installs I&#8217;ve dealt with previously, but you can tell they&#8217;ve dropped a metric [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.joeloliveira.com/wp-content/uploads/2008/04/icon-big.thumbnail.png" alt="wordpress icon" align="right" />I&#8217;m in the process of building and theming the brand new bitbythebeautybug.com for Sara.   Not only is she excited, but I&#8217;m elated to be working with the newest of the new in WordPress &#8220;technology&#8221;.  It&#8217;s a strange leap from all the WP installs I&#8217;ve dealt with previously, but you can tell they&#8217;ve dropped a metric ton of work into making it the most secure (as it possibly can be) and usable blogging platform out there.</p>
<p>The first thing we did to get this ball rolling was to find a designer that truly &#8220;got&#8221; Sara&#8217;s vision for her brand.  Luckily we were able to retain the services of <a href="http://www.erikagreco.com/blog/" target="_blank">a wonderful designer named Erika</a>.  I really liked the work she did for the <a href="http://www.railsenvy.com/" target="_blank">RailsEnvy</a> guys and figured I would give it a shot to see if she would be available for some design work.   Turns out she had some space in her (I&#8217;m sure) busy calendar and whipped up some designs for us.   Design &#8211; complete.  Much thanks to Miss Greco!</p>
<p>On my end, the development work so far, other than slicing images, has consisted of a few tasks.</p>
<ol>
<li>Since this would be a custom theme, I looked for the most generic, baseline theme I could find to bend to my will.  After a lot of looking I decided on <a href="http://designadaptations.com/notebook/rapid-development-toolset-for-wordpress-theming/" target="_blank">one of these themes provided by Charity at Design Adaptations</a>.  It&#8217;s well  developed, very well commented and absolutely gets out of the way of anyone who is using it as a jump-off for their custom wordpress theme.  I&#8217;m still struggling with whether this is &#8220;custom&#8221; if it inherits code from someone else&#8217;s work.   Regardless &#8211; she deserves kudos.</li>
<li>One of the things I was looking forward to playing with in these recent versions of WordPress are the &#8220;Widgets&#8221; the WP team has put so much work into.  Picking and choosing all of the content blocks you want to see around your site, re-ordering them as you wish &#8211; it&#8217;s just nice. See a widget you like, download, activate, put it where you want it.  The only slightly difficult part was <a href="http://www.quickonlinetips.com/archives/2007/11/how-to-widget-enable-wordpress-themes-in-3-easy-steps/#comment-592692" target="_blank">to enable the sidebar for widget support</a>, and then figure out just <a href="http://www.quickonlinetips.com/archives/2007/11/how-to-create-multiple-dynamic-sidebars-for-wordpress-widgets/" target="_blank">how to enable multiple &#8220;sidebars&#8221;</a>.</li>
<li>Once the theme actually <strong>supported</strong> all of these widgets &#8211; it was time to find them.
<ul>
<li><a href="http://wordpress.org/extend/plugins/flexo-archives-widget/#post-2194" target="_blank">Flexo Archives</a> &#8211; reducing the clutter that the generic Archives widget spits out.</li>
<li><a href="http://wordpress.org/extend/plugins/limited-category-lists-widget/" target="_blank">Limited Catlists</a> &#8211; displaying the latest posts in Category X &#8211; for our purposes, the posts categorized under &#8220;Featured&#8221;.  I couldn&#8217;t find a &#8220;Featured Posts&#8221; widget so this will just have to do.</li>
<li>Text widget &#8211; this one comes stock with WP by default and takes care of those scenarios where a little duct tape is needed.  No decent FeedBurner widget? That&#8217;s fine &#8211; copy and paste the code Feedburner gives you into the text widget.  Need a small &#8220;About&#8221; widget?  Text widget to the rescue.</li>
</ul>
</li>
</ol>
<p>It goes without saying &#8211; I&#8217;m far from finished, but in the initial sprint to build out this site these are the pieces I managed to take note of.  All in all though, WordPress 2.5 has been nothing short of a revelation in terms of where it came <em>from</em>, and where it&#8217;s going <em>to</em>.  <strong>Huge</strong> props go to <a href="http://www.happycog.com" target="_blank">Happy Cog</a> for the work they put into the new WP dashboard.  It just feels so <em><strong>right</strong></em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://joeloliveira.com/2008/04/14/wordpress-25-im-impressed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Link Slugs with Javascript</title>
		<link>http://joeloliveira.com/2008/02/26/link-slugs-with-javascript/</link>
		<comments>http://joeloliveira.com/2008/02/26/link-slugs-with-javascript/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 13:00:59 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Site Work]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.joeloliveira.com/2008/02/26/link-slugs-with-javascript/</guid>
		<description><![CDATA[Over at Thredded I am still using Rails 1.2.3 (I&#8217;m a little gun-shy to upgrade to 2.0) and, of course, felt that slugged links were necessary for both search engine optimization and making things like assessing site analytics a little easier. It doesn&#8217;t even need justification as it&#8217;s a matter of fact and necessity for [...]]]></description>
			<content:encoded><![CDATA[<p>Over at <a href="http://thredded.com" target="_blank">Thredded</a> I am still using Rails 1.2.3 (I&#8217;m a little gun-shy to upgrade to 2.0) and, of course, felt that slugged links were necessary for both  search engine optimization and making things like assessing site analytics a little easier.   It doesn&#8217;t even need justification as it&#8217;s a matter of fact and necessity for any and all social platforms &#8211; blogging, forums, etc.   With RoR 1.2.3 the best way to get your links <em>slugging</em> it out was to incorporate a plugin like <a href="http://tore.darell.no/pages/acts_as_sluggable">acts_as_sluggable</a>.  It works like a charm, really, and I&#8217;ve never had any case where I needed extra functionality.</p>
<p>&#8230; Until now.  I&#8217;ve started incorporating some auto-updating magic to Thredded and needed to grab a lot of data back from an AJAX call (sorry Steve &#8211; <strong>XHR</strong>) in the form of JSON.  All well and good so far.  But, when new links needed to be built on the client side, I didn&#8217;t have my handy built-in Rails ActiveRecord overrides to spit out my new slugged-up link!  What to do?!</p>
<p>I dug through the plugin source and found the function that built the url&#8217;s slug -</p>
<pre class="prettyprint">def make_slug(string)
      string.to_s.downcase.gsub(/[^a-z0-9]+/, '-').gsub(/-+$/, '').gsub(/^-+$/, '')
end</pre>
<p>&#8230; And thought the quickest solution was just to rewrite it as a simple JS function.</p>
<pre class="prettyprint">function slug(id, title)
{
      title = title.toLowerCase().replace(/[^a-z0-9]+/g,'-').replace(/-+$/g,'').replace(/^-+$/g,'');
      return(id+'-'+title);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://joeloliveira.com/2008/02/26/link-slugs-with-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The &#8220;hiatus&#8221; is over</title>
		<link>http://joeloliveira.com/2008/02/04/the-hiatus-is-over/</link>
		<comments>http://joeloliveira.com/2008/02/04/the-hiatus-is-over/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 02:58:56 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Site Work]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.joeloliveira.com/2008/02/04/the-hiatus-is-over/</guid>
		<description><![CDATA[Has it really been (well over) a year since I last posted a single thing on this weblog? It goes without saying that that is a crying shame. Woefully neglected is too soft a phrase to use when it comes to signifying how little I&#8217;ve done with joeloliveira.com in the past year and a half. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/23336262@N04/2239705528/" class="tt-flickr"><img src="http://farm3.static.flickr.com/2187/2239705528_8082fce1a3_m.jpg" alt="Route 66" align="left" border="0" height="192" width="240" /></a></p>
<p>Has it really been (well over) a year since I last posted a <strong>single</strong> thing on this weblog?  It goes without saying that that is a crying shame.  Woefully neglected is too soft a phrase to use when it comes to signifying how little I&#8217;ve done with joeloliveira.com in the past year and a half.  This site turned into an abandoned wasteland &#8211; deserted and stagnant.</p>
<p><strong>Why?</strong>  It borders on cliche, and could probably be filed within the &#8220;cop out&#8221; category, but for me it begins and ends with my not having the energy or motivation to write for my own website when I got home from work.  I probably could have written a paragraph or two while from work, but never felt that was fair to my employers.   What about those hours outside of work?  Surely there are moments I could steal past 5 or 6ish to write something?  Absolutely!  But then the question still remains -</p>
<p><strong>What to write about?</strong>   There are numerous topics I ponder in the course of a day but for months &#8211; no one single target subject.  I&#8217;ve usually just posted whatever events I&#8217;ve attended, fun nights out with friends, stupid miscellanea found on the internet &#8211; nothing of consequence for the majority of folks on the internet.   To my friends and family &#8211; of course I know it&#8217;s interesting to YOU, but to communicate over the internet in such a blanket manner feels a bit too detached.</p>
<p><strong> What now?</strong>  Well things have changed &#8211; drastically!  A little over a month ago I left my job at Molecular, an internet consultancy.   The company I&#8217;ve left to work for is a very small and fledgling little operation &#8211; my <em>own</em> company.   After months of preparation, nerve-wracked second guessing  and laying groundwork with hopes I could pull this off I actually did it.   As difficult as it was to leave such a great group of people at Molecular and all the opportunity they&#8217;ve allowed me in the past three years I decided that it was the right time to make this next big step.</p>
<p>So far, so good.  I&#8217;m excited.  I am already engaged with a local ad agency helping them with a handful of their (<strong>immense</strong>) interactive clients.   This site is going to evolve into my portfolio for anyone looking for a resource to bang out nice, clean, rich interfaces with XHTML, CSS, javascript, and other interesting and challenging web-based technologies.</p>
<p>To give you an idea as to what types of things I&#8217;m involved with &#8211; The past year and change I&#8217;ve actually been encouraging and helping Sara with <a href="http://bitbythebeautybug.com">her own weblog</a>.  Have I not told you about it yet?  For shame! <a href="http://bitbythebeautybug.com" target="_blank">Go visit and take a look</a> at the wonderful work she&#8217;s been doing. In addition to playing occasional tech-support and copy editor for Sara I&#8217;ve been putting in most spare hours working on my own project(s). Instead of writing about it &#8211; I&#8217;ve been trying to DO it. Think it&#8217;s difficult to post on a blog every day? Try doing it when you&#8217;re attempting to master new tools in addition to supporting the users who are helping drive your new project. It&#8217;s not easy.</p>
<p><span class="tt-flickr"></span>The ultimate end-game will be to afford myself the time to work on those few previously mentioned projects that have grown over the past few years to something I&#8217;m hoping could blossom into something beyond &#8220;pet project&#8221; status. Once I&#8217;m a little more comfortable with their status I will post announcements here.</p>
<p>In the meantime, this site will very occasionally feature commentary on the things I find interesting about what&#8217;s going on in my industry,  maybe some personal anecdotes, and hopefully some useful original content.  Let&#8217;s just hope it&#8217;s not another 16 or 17 months until I write another post.</p>
]]></content:encoded>
			<wfw:commentRss>http://joeloliveira.com/2008/02/04/the-hiatus-is-over/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
