<?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.justinribeiro.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Justin Ribeiro</title>
	
	<link>http://justinribeiro.com/chronicle</link>
	<description>MBA. Business. Technology. Photography.</description>
	<lastBuildDate>Wed, 25 Aug 2010 17:03:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.justinribeiro.com/JustinRibeiro" /><feedburner:info uri="justinribeiro" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://justinribeiro.com/chronicle/?pushpress=hub" /><item>
		<title>A simple extension of the jQuery UI combobox widget example</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/5RgNJm1WTTo/</link>
		<comments>http://justinribeiro.com/chronicle/2010/08/25/a-simple-extension-of-the-jquery-ui-combobox-widget-example/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 17:00:53 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=910</guid>
		<description><![CDATA[A simple example of extending the jQuery UI combobox widget and a little bit of overall widget love.]]></description>
			<content:encoded><![CDATA[<p>NOTE: this is based on the previous 1.8 combobox example from the documentation; this isn&#8217;t the example from 1.8.4, as the project I&#8217;m working has not made the jump to 1.8.4 yet.  It should nonetheless give you some idea should you want to meld comboxbox to your needs.</p>
<p>The combobox widget from jQuery UI is quite nice.  It works right out of the documentation with very little effort.  However, it isn&#8217;t a complete example as it doesn&#8217;t include a destroy, and I needed it to hide in some instances as well.  How to do that?  Let&#8217;s see.</p>
<h3>Before you keep reading (or just plain leave)</h3>
<p>If you haven&#8217;t read the <a href="http://jqueryui.com/docs/Developer_Guide#The_widget_factory">jQuery UI Developer docs on the widget factory</a>, you might want to do that first.  Also, the article <a href="http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/">Understanding jQuery UI widgets: A tutorial</a> is quite good as well.</p>
<h3>Destroy the widget</h3>
<p>The destroy method removes an said instance of our widget from the DOM element.  Think of it as setting things back to the way they were before you invoked the widget.  For our combobox widget, this means we basically need to remove the input and button that it creates, turn the visibility of the original select back on, and make sure you can&#8217;t call other methods for combobox on the element anymore (at least without another create).  Our simple destroy method looks like this:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p910code1'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9101"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code" id="p910code1"><pre class="javascript" style="font-family:monospace;">destroy<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">// ditch the combobox button</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">element</span>
     .<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;input&quot;</span><span style="color: #009900;">&#41;</span>
     .<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;button&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// ditch the combobox input</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">element</span>
     .<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;input&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// show the old select</span>
  <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">element</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// final kill</span>
 $.<span style="color: #660066;">Widget</span>.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">destroy</span>.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><a href="http://api.jquery.com/remove/">.remove()</a> does the dirty work of getting rid of said element from the DOM.  Note, I remove button first and the input.  The select gets shown again, and then the combobox is killed off.  Pretty simple.</p>
<h3>Make me hide!</h3>
<p>I have a set of cases in the project I&#8217;m working on that call for not a destroy, but a show/hide.  It&#8217;s not a straight toggle in my case, so I separated said methods:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p910code2'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9102"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" id="p910code2"><pre class="javascript" style="font-family:monospace;">hide<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">element</span>
		.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;input&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
		.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;button&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
show<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">element</span>
		.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;input&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
		.<span style="color: #660066;">next</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;button&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Not anything particularly special uh?  Simple chained show and hide for both elements.  And you thought working with widgets was hard.</p>
<h3>Widgets are fun</h3>
<p>While the example above is quite simple (I know you didn&#8217;t need me to tell you how to do it), the larger part of the story is that the widget factory that jQuery UI has can be powerful when you need to do some work.  It&#8217;s also quite a bit of fun.  So the next time you think, humm, how to do this&#8230;don&#8217;t discount the widget.  They are your friend.</p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5RgNJm1WTTo:5hICXUh1QRw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5RgNJm1WTTo:5hICXUh1QRw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5RgNJm1WTTo:5hICXUh1QRw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=5RgNJm1WTTo:5hICXUh1QRw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5RgNJm1WTTo:5hICXUh1QRw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=5RgNJm1WTTo:5hICXUh1QRw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5RgNJm1WTTo:5hICXUh1QRw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=5RgNJm1WTTo:5hICXUh1QRw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5RgNJm1WTTo:5hICXUh1QRw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/5RgNJm1WTTo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/08/25/a-simple-extension-of-the-jquery-ui-combobox-widget-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/08/25/a-simple-extension-of-the-jquery-ui-combobox-widget-example/</feedburner:origLink></item>
		<item>
		<title>Quick project updates and thoughts</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/1MnX7sUkSPE/</link>
		<comments>http://justinribeiro.com/chronicle/2010/06/23/quick-project-updates-and-thoughts/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 08:44:34 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=892</guid>
		<description><![CDATA[The quick lowdown on where some things are at.]]></description>
			<content:encoded><![CDATA[<p>Reading time, two minutes.</p>
<ul>
<li>Tree House, Part 2: This is one of those projects that is nearing completion.  We had hoped to complete it in May, and got a little side tracked.  We&#8217;re working on it.</li>
<li>idlemailcheck: the newest versions of Mail::IMAPClient have some changes that make checking dealing with the idle socket much easier.  I&#8217;m working an updated version.</li>
<li>Film reviews: we&#8217;ve been shooting a lot of film of late, and I just haven&#8217;t been able to put thoughts to keyboard. I will say now, I actually like the new PX 100 Silver Shade (opinion seems fairly split on it).</li>
<li>World Cup goalkeeping:  oh, I&#8217;ve got thoughts and notes galore.  First note: stop blaming the ball.  Other notes to follow.</li>
<li>Android development: yes, I&#8217;m doing some Android development.  I like it.  I also like the Nexus One, which I&#8217;m using a dev phone.</li>
<li>No, I&#8217;m not upgrading to iOS4: my 3G is still in use&#8230;but why would I cripple it with iOS4?  A jailbreak is better.</li>
<li><a href="http://justinribeiro.com/chronicle/2010/06/23/the-lowdown-on-yard-and-estate-sales/">Rocking the estate and yard sale circuit</a>.  How do you think I score those deals to build cool stuff?</li>
<li><a href="http://justinribeiro.com/chronicle/2010/06/23/notes-on-being-a-consultant-ala-you-don%E2%80%99t-want-to-be-one/">I warn of consulting</a>.  Or at least the use of the word.</li>
</ul>
<p>So much awesome stuff in the pipe, I just can&#8217;t work fast enough!</p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=1MnX7sUkSPE:cloBKruCVJU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=1MnX7sUkSPE:cloBKruCVJU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=1MnX7sUkSPE:cloBKruCVJU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=1MnX7sUkSPE:cloBKruCVJU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=1MnX7sUkSPE:cloBKruCVJU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=1MnX7sUkSPE:cloBKruCVJU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=1MnX7sUkSPE:cloBKruCVJU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=1MnX7sUkSPE:cloBKruCVJU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=1MnX7sUkSPE:cloBKruCVJU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/1MnX7sUkSPE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/06/23/quick-project-updates-and-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/06/23/quick-project-updates-and-thoughts/</feedburner:origLink></item>
		<item>
		<title>The lowdown on yard and estate sales</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/PY8CN6Xx4R8/</link>
		<comments>http://justinribeiro.com/chronicle/2010/06/23/the-lowdown-on-yard-and-estate-sales/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 08:33:42 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[estate sales]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[yard sales]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=866</guid>
		<description><![CDATA[Don't mess with me.  I've got singles and I'm in the mood to haggle.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a rather strange spring here in California.  Up until the first week of June, it had been raining, cold, and well, just not California weather.  Usually in May, Monica and I start the yard and estate sale rounds to see what we can pick up for various projects but we really haven&#8217;t even gotten started yet.  We hit six solid sales in May, but have spent very little (this last weekend, we spent a mere 10 cents).</p>
<p>Monica and I are no rookies when it comes to sales; we&#8217;ve been doing this for as long as we&#8217;ve been together.  Before that, I learned many a thing from my grandfather on the art of selling, and Monica was no stranger to haggling a deal before I came along.  We&#8217;re no stranger to flipping items for a profit and we know a scam when we see it.  So lets talk sales.</p>
<h3>Types of sales</h3>
<p>It&#8217;s a very important thing to note the type of sale you&#8217;re headed to.  To make it simple, we boil them down to two types: family and professional sales.</p>
<p>Family sales are those which are just what they&#8217;re named: family run sales.  Generally these are yard or garage sales with varying selection of wares.  Unless something is very specifically specified in the listing, we don&#8217;t hit a lot of family yard/garage sales.  The values are usually very good mind you, but it&#8217;s about find-to-time ratio: you have to hit the sales you know offer the most bang for your time.</p>
<p>Professional sales are generally estate sales or grouped sales (where pro&#8217;s buyout smaller estate and yard sale items on the last day, and the hold a larger warehouse style sale).  Every town has their estate sale pro&#8217;s, and they generally have client lists (which you can get on) that offer you first notice on upcoming sales.  The better pro&#8217;s know what you&#8217;re looking for, and call you letting you know when they have said items.  Prices are usually higher unless it&#8217;s the last day (and they can&#8217;t get rid of stuff).</p>
<p>The type we like?  The family run barn/estate sale.  Usually a wide selection of everything, cheaper prices, and easier to make a deal.</p>
<h3>Timing is everything</h3>
<p>Estate sales are generally what Monica and I try to hit, mostly because we&#8217;re either looking for beat up antiques or old cameras/records/books.  Yard sales don&#8217;t have as much of this, so we rarely go unless listings are specific. Otherwise it&#8217;s down to an educated guess as to what sales to hit when.  The key is timing.</p>
<p>Start days are usually hectic at the larger sales.  Often this is on a Friday, which is what we call &#8220;fight with the dealers&#8221; day.  You can guarantee that if it&#8217;s a pro run estate sale, you&#8217;re going to see dealers from the bay area trying to meet orders or client needs, or folks looking to fill their store.  We expect no fantastic deals.  The dealers will either outpay you, or the people running the estate sale won&#8217;t give you the time of day if you try to price it down.  This is also a good time to possibly see an argument/fight between dealers.  We&#8217;ve seen them (over some 1850&#8242;s tack, over art work&#8230;) and we&#8217;re always amused.</p>
<p>If it&#8217;s a family run estate sale, the dealers can be just mean. We were at a barn sale, where they had a number of pieces of old furniture in this barn. The grandson running the sale was very nice (we bought radio parts from him), and told us about some dealers that tried to bully him into selling &#8220;junk&#8221; dressers for $20 a pop.  They were worth the $200 easy.  Trust us, we hear this story a lot.</p>
<p>Second day sales generally offer a lesser selection (things go fast), but since it is a weekend expect a crowd at the larger sales.  Second day sales often better value, as the seller is trying to get rid of things quicker.  Even pro&#8217;s will start to work with you, unless they have a buyer in mind.</p>
<p>The last day of a given sale is usually lets-make-a-deal day regardless of type.  Items will be half off.  Pro&#8217;s will push for that sale. We&#8217;re scored massive deals on everything from art supplies to furniture.</p>
<h3>Let&#8217;s make a deal tips</h3>
<p>So you&#8217;ve lined out what sales to hit.  Let&#8217;s talk strategy.</p>
<ul>
<li>Know your shit.  Single most important thing you can do and oddly, some people don&#8217;t plan or research ahead. Every time we go out to these things, we see people overpaying in a bidding war and people who think something is valuable because of age.  Know what you&#8217;re looking for, know what the going rate is, understand the market otherwise you&#8217;ll end up burned.</li>
<li>Every price is a starting point.  When we started out, I remember getting yelled at for asking for to buy a broken light meter for $3 (down from $10). The pro running the sale thought I would cave to the hostility for the smashed item which I wanted for parts.  She was incorrect.  Every price is a starting point, no matter how cheap.  Connected to the above point, know your shit, and don&#8217;t overpay.  Not working with you?  Walk.  There are other fish in the sea.</li>
<li>Don&#8217;t be a super low ball offer person.  It&#8217;s annoying for sellers.  This isn&#8217;t haggling or dealing, it&#8217;s a bush league move.  If you&#8217;re looking at a piece of antique furniture that&#8217;s priced at $400, don&#8217;t offer $10 (seen it happen folks, no joke).  You&#8217;ll turn the seller off (you&#8217;re sort of insulting their intelligence) and then they won&#8217;t deal with you at all.</li>
<li>Work the chaos to your favor.  Often times at the larger sales which are professional run, there are too many items to price, and they don&#8217;t do it in advance.  This is your chance to score deals on smaller items.  Case in point, we found a stack of 1960&#8242;s Disney records.  The guy working the area wanted $3 a pop firm (way too much&#8230;we never pay more than a $1.00 a record unless it&#8217;s something really special).  We picked them up and wandered for a while, then went to checkout.  The person running the checkout didn&#8217;t know the price the guy had set, an offered us 40 records for $40 bucks.  Done deal, and we didn&#8217;t even have to haggle.</li>
<li>Be nice.  You will meet people who are not nice, either buyers or sellers.  We&#8217;ve been shoved, yelled at, pushed&#8230;don&#8217;t let it get to you.  Keep a cool head, especially at the family estate sales.  It can be very hard for some sellers (estate sales are generally when someone died), and we despise the people who don&#8217;t respect that fact.  In the end, you&#8217;ll get better deals if you&#8217;re nice.</li>
<li>Some sellers are very attached to things.  They will price them to extreme&#8217;s and will not haggle.  Doesn&#8217;t matter if the piece of vintage americana isn&#8217;t worth $500&#8230;some people can&#8217;t let go.</li>
</ul>
<h3>Seller tips</h3>
<p>Oh that&#8217;s right, I&#8217;m giving you sellers some tips, namely because some of you people need it.</p>
<ul>
<li>Don&#8217;t follow me around.  At one of the worst professional sales ever, we were inundated with sellers trying to get us to literally buy everything.  There were five people just following us around on what was the last day of this particular sale.  They pushed hard to get us to buy everything from linens to furniture.  Do not do this.  We finally got fed up, put down the two items we had and said, see ya.  Don&#8217;t bug your customers.</li>
<li>Be nice.  Why are sellers sometimes such jerks?  Could be because the aforementioned cling factor, or it could be because they&#8217;re just a pain in the ass to be around.  Pro sellers, this goes out for you too.  We understand you get some very unreasonable requests from folks&#8230;but that&#8217;s no reason to take it out on us common folk.</li>
<li>Price your stuff.  Spend $4 bucks on stickers that don&#8217;t leave a mark.  Don&#8217;t make me ask every three seconds what something is priced.</li>
<li>Have a sell price in mind and then mark it up 20%.  Really.  This works best often on high ticket items.  Someone who really wants it will either pay straight (yippe!) or someone will want to haggle.  They&#8217;ll offer, you can counter with the sell price you had in mind.  Usually works out or you get close to the mark, the person walks away with a &#8220;deal&#8221;, you end up getting the price you wanted.</li>
</ul>
<h3>Rules, oh the rules</h3>
<p>We have very simple rules when it comes to getting ready to rock a weekend and what we&#8217;re buying.  We stick to them, and it just keeps us generally happier because decisions are easier.</p>
<ul>
<li>Clear the car.  Everything in the car but the required seating goes.</li>
<li>If it don&#8217;t fit in the Prius, we don&#8217;t buy it.  Unless it&#8217;s some really super special (which has only happened once in three years).</li>
<li>Wear running shoes.  No sandals.</li>
<li>Water, GPS, paper, pen, camera.</li>
<li>If it&#8217;s broke, it must be fixed within a week otherwise it&#8217;s resold.</li>
<li>For every item we buy, two items must leave the house one way or the other.</li>
<li>Don&#8217;t get attached to things. They&#8217;re things, not love.</li>
</ul>
<h3>Random games</h3>
<p>One of the most random games we play is the theme game.  Some people will take offense, but the reality is every one had a hobby, and at the estate sales we try to guess what that hobby was.  Sometimes it&#8217;s rather obvious (dolls) other times not so much (why is there a pile of socks stacked to the ceiling?).</p>
<p>Other games include name that architecture and price that house.  We&#8217;ve seen some truly stunning houses and some others that left you very creeped out (one house we presumed a giant or Greek god lived in, because the stairs in the house were like a two feet tall and there were columns everywhere).</p>
<p>However, the most fun game we have is something we simply call flip it.  It works as such: you can challenge each other to a single item buy of a given amount (say $5 dollar spend) and see who can flip it for more.  Or you can play a harder version: each person picks an item for the other, hoping to see who has the harder time selling said item. Play with your spouse, play with friends, the fun never ends!</p>
<h3>Endless</h3>
<p>Yard and estate sales offer endless options for furnishing you awesome pad whatever it may be.  See the potential, see the value in reuse, and save some money to boot!  Last but not least, have fun.  We do, it&#8217;s really the only reason we do it.</p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=PY8CN6Xx4R8:DLvRKaaqf5Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=PY8CN6Xx4R8:DLvRKaaqf5Y:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=PY8CN6Xx4R8:DLvRKaaqf5Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=PY8CN6Xx4R8:DLvRKaaqf5Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=PY8CN6Xx4R8:DLvRKaaqf5Y:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=PY8CN6Xx4R8:DLvRKaaqf5Y:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=PY8CN6Xx4R8:DLvRKaaqf5Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=PY8CN6Xx4R8:DLvRKaaqf5Y:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=PY8CN6Xx4R8:DLvRKaaqf5Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/PY8CN6Xx4R8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/06/23/the-lowdown-on-yard-and-estate-sales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/06/23/the-lowdown-on-yard-and-estate-sales/</feedburner:origLink></item>
		<item>
		<title>Notes on being a consultant, ala you don’t want to be one</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/hQ9O34OLin8/</link>
		<comments>http://justinribeiro.com/chronicle/2010/06/23/notes-on-being-a-consultant-ala-you-don%e2%80%99t-want-to-be-one/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 08:01:19 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[consulting]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=875</guid>
		<description><![CDATA[Oh, consulting! It runs the world and often lives into the ground.]]></description>
			<content:encoded><![CDATA[<p>For a long time it was hard to explain exactly what I did for a living.  Friends would often make the joke that I was like Chandler from the TV show Friends, as no one knew what he did for a living either. For many years, I refered to my job title as &#8220;consultant&#8221; (though I actually worked for a firm).  It&#8217;s not that I&#8217;ve purposely set out to be vague, it&#8217;s just that my job description was in a constant state of flux on any given day.  I have a fair amount of expertise and when called upon I came into varying sizes of corporations and solved whatever problem they had.</p>
<p>However, I&#8217;ve noticed that in the past few years, that answer often results in the following statement from whomever asked the question in the first place.  &#8220;I&#8217;d really like to be a consultant, it sounds (fun|interesting|easy|other adjective).&#8221;</p>
<p>My reply to that statement: no, you don&#8217;t.  I have reasons.  Most are due to horrible clients and the horror stories you usually only read about in books.</p>
<h3>The stigma of the consultant</h3>
<p>Too often the word consultant comes with a negative connotation (or if you prefer, perception).  Usually boils down to &#8220;consultants cost a lot of money but don&#8217;t (do|make|produce) anything&#8221; or &#8220;you couldn&#8217;t get a real job uh?&#8221;  If you care to read about said negative connotations and the theories of why, there&#8217;s a very <a href="http://www.linkedin.com/answers/career-education/freelancing-contracting/CAR_FRL/618430-15126234">good thread</a> on LinkedIn about the topic.</p>
<p>The most trouble I ever had with the title wasn&#8217;t even initially, it was after years with certain clients when there was a change in management.  It was then that the word &#8220;consultant&#8221; usually made new management say &#8220;you&#8217;re an outsider and don&#8217;t care about our bottom line.&#8221;  This of course was not true, but new management rarely cares about what I&#8217;ve ever had to say (numbers be damned!).</p>
<h3>First rule about consulting, don&#8217;t talk about consulting</h3>
<p>Much like fight club, you don&#8217;t talk about consulting.  Some clients do not want it known that they had to bring in a consultant to accomplish some task.  Heck, they may not want it known to someone in their own company.  I call this working in the shadows.  I&#8217;ve got a list locked away of clients I&#8217;ve done work for that I can never discuss with anyone.  Sounds cool right?  It&#8217;s not.  You&#8217;re walking away with a check and that&#8217;s about it.  Don&#8217;t expect a magic endorsement or something to add to your portfolio&#8230;you worked in the shadows remember?</p>
<h3>You&#8217;re not part of their team</h3>
<p>Some clients don&#8217;t want you to be part of the team.  Others do, but you&#8217;re really not.  Sure, you may work with a team&#8230;but you&#8217;re not part of it. I&#8217;ve worked inside companies where I&#8217;ve had a desk on site and they&#8217;d almost prefer you didn&#8217;t speak to anyone unless it was job related.  They don&#8217;t want to have to keep you on and they sure as hell don&#8217;t want you to be valuable to people in their corp.  Yes, I know.  It sounds odd because it is; you&#8217;re called in because you have some special knowledge&#8230;and they only want that knowledge in small doses (and sure as hell don&#8217;t learn anything).  Some people can&#8217;t handle this sort of isolation.</p>
<h3>It&#8217;s a thankless job</h3>
<p>Working with certain clients will leave you hollow inside if you don&#8217;t have an iron will.  The reason for this is because they don&#8217;t care about you, many just want it faster, cheaper, better.  Hit all three of those an guess what you&#8217;ll end up with&#8230;.nothing.  It&#8217;s a thankless job because no matter how hard or how long you&#8217;ve worked with certain clients, you&#8217;ll never get a thank you.  People I&#8217;ve worked with have been brought to tears for going beyond the call of duty for clients, and getting not even an nod of the head.</p>
<h3>Numbers are a catch 22</h3>
<p>One of the things I&#8217;ve done particularly well at is save people money via operation automation and process reorgs. No matter how well you do eventually numbers will be of little use to your cause to keep a client.  Take it from someone who at one point had saved a certain firm some $15 million a quarter (no, I didn&#8217;t fire anyone).  Were they happy? For a while.  Then a merger or three, and next thing you know it&#8217;s &#8220;that&#8217;s not good enough.&#8221;  Have to admit, that one hurt.</p>
<h3>There is no such thing as a straight answer</h3>
<p>One of things that constantly kills me is that people are not straight shooters.  You want to bring stuff in house?  That&#8217;s fine let me know if I can be of assistance.  I&#8217;m not out to get you, I&#8217;m just trying to help.  But often getting a straight answer is near impossible&#8230;and then somehow it becomes your fault.  Case in point would be requirements or specifications.  I can&#8217;t count the times I&#8217;ve been yelled at over requirements that were poorly conceived by someone other than me.  Imagine trying to get a change request signed off&#8230;it&#8217;s like a boxing match were you&#8217;re getting thumped with &#8220;it&#8217;s your fault, we&#8217;re not paying for your mistake.&#8221; Sigh.</p>
<h3>Patience is not a virtue, it&#8217;s a survival tactic</h3>
<p>Many clients call you in because you have an expertise they don&#8217;t have in the company and they only need you for a specified period of time.  The problem is, they think they know what they need/want&#8230;but often that is not the case.  It&#8217;s a dangerous situation of hand holding, trying to lead them to the correct answer as to save them time and money.   It sounds so easy&#8230;but it is not.  It will test your ability to take abuse (&#8220;that&#8217;s not what I want, you&#8217;re trying to gouge me!&#8221;) and test your patience (&#8220;as we&#8217;ve discussed in the last four meetings, it works as such&#8230;&#8221;).  I&#8217;ve seen people lose it and walk out on clients (which doesn&#8217;t help for the negative connotation by the way).  Then again, I&#8217;ve also had to break up fist fights between directors over budgets.  Think of it like wrangling kids&#8230;but with more attitude and upper body strength.</p>
<h3>The list goes on&#8230;but there are good things too</h3>
<p>I really don&#8217;t mean to put everyone off of being a consultant.  You get to work with some very amazing clients whom never meet any of the above criteria (I know because I still have some of the good ones).  The problem is, along the way you will no doubt meet some that do all of the above and make life harder then it has to be for not only you, but themselves.</p>
<p>It&#8217;s hard to build trust over spans of time only to see your trust compromised by fear that is unfounded.  Sometimes, you have no recourse.  Sometimes, things just go off the tracks.  When that happens, it sets the tone on what you do next.  You will get stabbed in the back, you will be underappreciated, you will get called names.  Heck, all three of those things happened to me in the last week!  You cannot let such things define you or your response.</p>
<p>I can&#8217;t tell you what to do.  I can tell you what I do. I check my emotions at the door.  I keep a calm head when all others have not.  I understand people are not rational a lot of the time.  I try to help even in the face of adversary.  I try make a it a win for all stakeholders involved.</p>
<p>A lot of the time, that&#8217;s enough to get to the point of sorting out the root cause of the anger/fear.  Then things can progress and everyone can be successful.</p>
<h3>One for the road</h3>
<p>I can&#8217;t say this article is exhaustive of all my experience on client work and consulting (prepare for the book I&#8217;m calling &#8220;A life of juggling irrational requests into small money&#8221;&#8230;I&#8217;m kidding, there&#8217;s no book, take a joke people it&#8217;s okay to laugh).  </p>
<p>The long and short: most people I&#8217;ve met just don&#8217;t understand what they&#8217;re getting into with consulting, especially the points above. They hear about the flexible side of possibly working from home and the increased chance at doing what you love and other the good points&#8230;but they never hear about the bad side. When the bad hits, it hits them hard and sometimes knocks them out for good (I can sadly count 11 people I know who went into the consulting business&#8230;.and quickly left).</p>
<p>So next time you hear someone say, &#8220;hey consulting, that&#8217;s for me&#8221; make sure they get a full checkup first.</p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=hQ9O34OLin8:zZ2N_ipOOfA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=hQ9O34OLin8:zZ2N_ipOOfA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=hQ9O34OLin8:zZ2N_ipOOfA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=hQ9O34OLin8:zZ2N_ipOOfA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=hQ9O34OLin8:zZ2N_ipOOfA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=hQ9O34OLin8:zZ2N_ipOOfA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=hQ9O34OLin8:zZ2N_ipOOfA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=hQ9O34OLin8:zZ2N_ipOOfA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=hQ9O34OLin8:zZ2N_ipOOfA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/hQ9O34OLin8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/06/23/notes-on-being-a-consultant-ala-you-don%e2%80%99t-want-to-be-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/06/23/notes-on-being-a-consultant-ala-you-don%e2%80%99t-want-to-be-one/</feedburner:origLink></item>
		<item>
		<title>Vonage click 2 call into Ubiquity command</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/N8Xit2YcmE4/</link>
		<comments>http://justinribeiro.com/chronicle/2010/05/30/vonage-click-2-call-into-ubiquity-command/#comments</comments>
		<pubDate>Sun, 30 May 2010 08:31:51 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[vonage]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=863</guid>
		<description><![CDATA[Connect call without pushing buttons on a phone...all with Ubiquity.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve used Vonage phone service for a lot of years (6 or 7 years&#8230;I forget).  While I don&#8217;t use a lot of the features offered any more, I actually still use their old Click 2 Call service to be save time in dialing numbers.</p>
<p>Vonage actually gives you <a href="https://secure.click2callu.com/">all the information</a> you need to be able to write a Click 2 Call service.  I decided that since a majority of the time I&#8217;m in a browser, I&#8217;d write a simple Ubiquity to handle this action.  It is included below.  Note, you&#8217;ll have to replace the necessary variables in the source with your Vonage information before using.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p863code3'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8633"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td class="code" id="p863code3"><pre class="javascript" style="font-family:monospace;">CmdUtils.<span style="color: #660066;">CreateCommand</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
  names<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;vonage&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
  icon<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.vonage.com/favicon.ico&quot;</span><span style="color: #339933;">,</span>
  description<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Make a call from your Vonage number (click 2 connect)&quot;</span><span style="color: #339933;">,</span>
  help<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;vonage {phone-number-to-call}&quot;</span><span style="color: #339933;">,</span>
  author<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span><span style="color: #000066;">name</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Justin Ribeiro&quot;</span><span style="color: #339933;">,</span> email<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;justin@justinribeiro.com&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
  license<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;GPL&quot;</span><span style="color: #339933;">,</span>
  homepage<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;http://www.justinribeiro.com/&quot;</span><span style="color: #339933;">,</span>
  arguments<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#123;</span>role<span style="color: #339933;">:</span> <span style="color: #3366CC;">'object'</span><span style="color: #339933;">,</span> nountype<span style="color: #339933;">:</span> noun_arb_text<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
  preview<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> preview<span style="color: #009900;">&#40;</span>pblock<span style="color: #339933;">,</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    pblock.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Number to call: &lt;b&gt;&quot;</span> <span style="color: #339933;">+</span> args.<span style="color: #660066;">object</span>.<span style="color: #660066;">html</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&lt;/b&gt;.&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
  execute<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> execute<span style="color: #009900;">&#40;</span>args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> baseUrl <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;https://secure.click2callu.com/tpcc/makecall&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> params <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> username<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;YOURUSERNAME&quot;</span><span style="color: #339933;">,</span> password<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;YOURPASSWORD&quot;</span><span style="color: #339933;">,</span> fromnumber<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;YOURVONAGENUMBER&quot;</span><span style="color: #339933;">,</span> tonumber<span style="color: #339933;">:</span> args.<span style="color: #660066;">object</span>.<span style="color: #660066;">text</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    jQuery.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span> baseUrl<span style="color: #339933;">,</span> params<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> makeCall <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">var</span> content <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>makeCall<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'000:Request Successful'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>content<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                $<span style="color: #009900;">&#40;</span>pBlock<span style="color: #009900;">&#41;</span>.<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Call failed, please try again. Response:'</span> <span style="color: #339933;">+</span> makeCall<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">else</span>
			<span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span>pBlock<span style="color: #009900;">&#41;</span>.<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Dialing your phone now. Response:'</span> <span style="color: #339933;">+</span> makeCall<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>The key thing this won&#8217;t do is work with you SimulRing number.  If you pick up any phone that isn&#8217;t the actual Vonage phone, it&#8217;ll disconnect you.  This isn&#8217;t a problem with the script, but rather just the way the click 2 call service works.</p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=N8Xit2YcmE4:Zror4cpb9WM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=N8Xit2YcmE4:Zror4cpb9WM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=N8Xit2YcmE4:Zror4cpb9WM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=N8Xit2YcmE4:Zror4cpb9WM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=N8Xit2YcmE4:Zror4cpb9WM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=N8Xit2YcmE4:Zror4cpb9WM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=N8Xit2YcmE4:Zror4cpb9WM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=N8Xit2YcmE4:Zror4cpb9WM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=N8Xit2YcmE4:Zror4cpb9WM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/N8Xit2YcmE4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/05/30/vonage-click-2-call-into-ubiquity-command/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/05/30/vonage-click-2-call-into-ubiquity-command/</feedburner:origLink></item>
		<item>
		<title>Reorganizing buddy list icons and status in Pidgin with a custom theme</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/FY8HP4gMzik/</link>
		<comments>http://justinribeiro.com/chronicle/2010/05/30/reorganizing-buddy-list-icons-and-status-in-pidgin-with-a-custom-theme/#comments</comments>
		<pubDate>Sun, 30 May 2010 08:16:46 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[Pidgin]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=858</guid>
		<description><![CDATA[You can have a buddy list theme?  I know.  Here's how.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pidgin.im/">Pidgin</a> is one of those great cross platform tools that is always on my install list when setting up a new workstation.  It makes connecting to the multitude of instant messaging platforms simple, all in one nice managed application. To boot it&#8217;s open source, which not only warms my heart, but also allows me to bend it to my will should I need to.</p>
<p>Now, I&#8217;m not a big IM user, nor am I much into skinning or theming.  However, the arrangement in the buddy list has never been to my liking. In this short example, I&#8217;ll show you the power of creating a single XML theme file that will shift your buddy icons and status fields around.</p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/pidgin-theme01.jpg" alt="the before and after" title="pidgin-theme01" class="aligncenter size-full wp-image-859" height="400" width="600"></p>
<h3>Setting up your custom theme folder</h3>
<p>If you use Pidgin, you have a directory called .purple in either your home directory in Linux or your Application Data on Windows. Examples:</p>
<p>/home/{YOUR_USER}/.purple/themes<br />
C:\Documents and Settings\{YOUR_USER}\Application Data\.purple\themes</p>
<p>To setup your custom theme, you need this set of folders underneath themes:</p>
<p>{THEME_NAME}\purple\blist</p>
<p>Example on one of my Windows machines:</p>
<p>C:\Documents and Settings\tmpuser\Application Data\.purple\themes\justintest\purple\blist</p>
<h3>Adding the theme.xml and editing</h3>
<p>Inside the blist folder, you need to create your theme file, theme.xml.  The Pidgin developer wiki page on <a href="http://developer.pidgin.im/wiki/BuddyListThemes">buddy list themes</a> has information as to all the settings, as well as additional examples.  The following is my example in the above screenshot (basically colored group bars and buddy icon to the right).</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p858code4'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8584"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
</pre></td><td class="code" id="p858code4"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;theme</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;pidgin buddy list&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;justin-test&quot;</span> <span style="color: #000066;">author</span>=<span style="color: #ff0000;">&quot;Justin Ribeiro&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Justin's Test<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;blist</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#FFFFFF&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/blist<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;selected</span> <span style="color: #000066;">text_color</span>=<span style="color: #ff0000;">&quot;#000000&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/selected<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groups<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;expanded</span> <span style="color: #000066;">text_color</span>=<span style="color: #ff0000;">&quot;#000000&quot;</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Italic&quot;</span> <span style="color: #000066;">background</span>=<span style="color: #ff0000;">&quot;#EAFCE6&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/expanded<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;collapsed</span> <span style="color: #000066;">text_color</span>=<span style="color: #ff0000;">&quot;#000000&quot;</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Normal&quot;</span> <span style="color: #000066;">background</span>=<span style="color: #ff0000;">&quot;#EAFCE6&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/collapsed<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groups<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;buddys<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;placement</span> <span style="color: #000066;">status_icon</span>=<span style="color: #ff0000;">&quot;3&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">emblem</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">protocol_icon</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">buddy_icon</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">show_status</span>=<span style="color: #ff0000;">&quot;5&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/placement<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;background</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/background<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;contact_text</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Normal&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#000000&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/contact_text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;online_text</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Normal&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#000000&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/online_text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;away_text</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Normal&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#707070&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/away_text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;offline_text</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Normal&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#787878&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/offline_text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;idle_text</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Italic&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#909090&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/idle_text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;message_text</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Normal&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/message_text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;message_nick_said_text</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Normal&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/message_nick_said_text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;status_text</span> <span style="color: #000066;">font</span>=<span style="color: #ff0000;">&quot;Italic&quot;</span> <span style="color: #000066;">color</span>=<span style="color: #ff0000;">&quot;#969696&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/status_text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/buddys<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/theme<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>The key for reshuffling the buddy icon and status icons is in the <buddys> sub tag
<placement>.  If you look in the example above, you&#8217;ll note that I simply renumbered the attibutes to put them in the order I wanted (start at 0 all the way to the left, and then each number heads right).  Simple uh?</p>
<p>Now open the Preferences in Pidgin and select your theme as in the screenshot below.  It&#8217;s that simple, really.</p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/pidgin-theme02.jpg" alt="my custom pidgin theme" title="pidgin-theme02" class="aligncenter size-full wp-image-860" height="400" width="600"></p>
<h3>Conclusion</h3>
<p>Most people I know were not aware that you could theme Pidgin beyond changing the GTK theme (some people didn&#8217;t know that either).  In a land were most people change themes, maybe Pidgin works well enough that most people simply don&#8217;t care to change the themes.  There are themes out there you can download and install, but you don&#8217;t find many.</p>
<p>Hopefully this little XML will help you not only tame and mold your buddy list to your liking, but maybe it jumpstarts your interest in theming Pidgin.</p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=FY8HP4gMzik:6Td0kEHEVnE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=FY8HP4gMzik:6Td0kEHEVnE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=FY8HP4gMzik:6Td0kEHEVnE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=FY8HP4gMzik:6Td0kEHEVnE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=FY8HP4gMzik:6Td0kEHEVnE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=FY8HP4gMzik:6Td0kEHEVnE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=FY8HP4gMzik:6Td0kEHEVnE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=FY8HP4gMzik:6Td0kEHEVnE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=FY8HP4gMzik:6Td0kEHEVnE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/FY8HP4gMzik" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/05/30/reorganizing-buddy-list-icons-and-status-in-pidgin-with-a-custom-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/05/30/reorganizing-buddy-list-icons-and-status-in-pidgin-with-a-custom-theme/</feedburner:origLink></item>
		<item>
		<title>The great chicken coop build</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/rn5pt8TtDis/</link>
		<comments>http://justinribeiro.com/chronicle/2010/05/13/the-great-chicken-coop-build/#comments</comments>
		<pubDate>Thu, 13 May 2010 22:34:26 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[build]]></category>
		<category><![CDATA[chickens]]></category>
		<category><![CDATA[coop]]></category>
		<category><![CDATA[reclaimed]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=832</guid>
		<description><![CDATA[Sometimes you really want fresh eggs and housing hens is the way to go.]]></description>
			<content:encoded><![CDATA[<p>Once upon a time, my friends Gareth, Jeff and I were discussing the current trend of urban farming and the increasing amount of people keeping chickens and bees in urban settings.  Many local ordinances allow this (even in larger cities) and we all found it interesting.  At one point we talked about flat ship chicken coops that build easily as an interesting product idea.  </p>
<p>Nothing came of our conversation (we have not yet gone into the flat pack chicken coop business), but the idea stuck around in my head and I talked to my wife Monica about it.  We decided it might be nice to have chickens (hens, specifically) so that we&#8217;d have fresh eggs, sudo-free fertilizer for the garden, et cetera.  Our local ordinance allowed for hens as long as they were cooped (or rather not free roaming the neighborhood).  Next thing I know, I find two baby chicks in the house.  So the adventure begins.</p>
<h3>The Design</h3>
<p>I looked into a number of different coop designs, largely based on pictures and message boards comments over at <a href="http://www.backyardchickens.com/">Back Yard Chickens</a>.  Our coop couldn&#8217;t be too big given both the distance requirements from the property line and the space we had available on our side yard (which barely met the property line requirement).  What we settled dimension wise was:</p>
<ul>
<li>A 4 feet long, 3 feet wide, 3 feet tall coop which sits 1 foot off the ground</li>
<li>Nesting boxes measuring 14 inches, by 14 inches, by 13 inches (which do not consume square feet from the coop)</li>
<li>A 6 feet long, 3 feet wide, 4 feet tall run, with addition space under the coop (30 square feet of ground space)</li>
</ul>
<p>From everything we read, you can get away with about 3 square feet of coop space per chicken, and since we wanted the ability to house no more than three hens (we&#8217;re starting with two mind you), we&#8217;d go with roughly 4 square feet per bird.  The run would provide space for when we&#8217;re not around (we let them out during the day to roam our fenced back yard).</p>
<p>The roof would be pitched, but also be on a hinge to allow access to the inside of the coop.  Due to the nesting box design and limited space, we didn&#8217;t have room (nor the materials technically, more on that later) for a larger door that most coops have.  To facilitate cleaning, we put in a small access door underneath the nesting boxes which makes cleaning quite easy.</p>
<h3>The Materials</h3>
<p>In my original idea for the coop, I was going to try to build it using a flat pack design I&#8217;d have made.  But in the end, I simply didn&#8217;t have time to do that.  So, Monica and I decided to go as green as we could and started asking around to friends and family to see if anyone had any spare, old, or just plain trashed lumber that was soon to be thrown out.  It just so happens, Monica&#8217;s folks did have such lumber, but it was very much an assorted lot.  We liked, we thanked them, and we set out to build a coop with what we had.  </p>
<p>In the end, I didn&#8217;t buy a single piece of lumber or plywood for this project.  The only thing I bought was the white PVC roofing material, hardware cloth, some hinges, and some caulking material.</p>
<h3>Why the PVC roof</h3>
<p>I should note why I used the PVC white roofing material, when I could have simply used more reclaimed boards I had.  The answer is heat and weight.  </p>
<p>I needed the roof to be easy to open, and so I wanted the weight to strike a balance.  Too heavy, it&#8217;s a pain in the ass.  Too light, roof might get hurt in high winds.</p>
<p>Where this coop is located gets a lot sun, and it will top out above 105 degrees during the middle of summer.  Even now in May with temps around 75, it&#8217;s hitting close to 90 on that side of the house. The Palruf panels I bought from Home Depot run about $12 bucks a panel, but make a huge difference in temp from my limited testing sample (the coop hasn&#8217;t topped 72 yet, even on my hottest measure day of 95).  How well this holds up come the 100+ days in July will be the true test, but right now, I&#8217;m happy with them.</p>
<h3>The Build</h3>
<p>I could explain it, but you&#8217;re probably tired of reading my rambling prose.  Photographs follow.</p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-04.jpg" alt="The base frame." title="chicken-coop-04" class="aligncenter size-full wp-image-837" height="400" width="600"></p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-11.jpg" alt="Inside the coop" title="chicken-coop-11" class="aligncenter size-full wp-image-833" height="400" width="600"></p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-06.jpg" alt="Nest box in place" title="chicken-coop-06" class="aligncenter size-full wp-image-839" height="400" width="600"></p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-07.jpg" alt="Inside the coop" title="chicken-coop-07" class="aligncenter size-full wp-image-840" height="400" width="600"></p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-02.jpg" alt="Monica painting the coop" title="chicken-coop-02" class="aligncenter size-full wp-image-835" height="400" width="600"></p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-08.jpg" alt="Installing hinges" title="chicken-coop-08" class="size-full wp-image-841" height="400" width="600"></p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-09.jpg" alt="Bottom access door" title="chicken-coop-09" class="aligncenter size-full wp-image-842" height="400" width="600"></p>
<h3>The Finished Product</h3>
<p>The finished coop in all it&#8217;s glory.</p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-01.jpg" alt="The finished coop" title="chicken-coop-01" class="aligncenter size-full wp-image-834" height="400" width="600"></p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-10.jpg" alt="The finished run and coop" title="chicken-coop-10" class="aligncenter size-full wp-image-843" height="400" width="600"></p>
<p><img src="http://justinribeiro.com/chronicle/wp-content/uploads/2010/05/chicken-coop-05.jpg" alt="Allison, chicken wrangler." title="chicken-coop-05" class="aligncenter size-full wp-image-838" height="400" width="600"></p>
<h3>Final thoughts</h3>
<p>The finished coop functions as I think it should, and the chickens have no issues using it.</p>
<p>The one problem we ran into was we hit some cold windy nights in April, so I had to insulate the roofing vents to keep the chill down.  I had planned on devising something for this towards the fall, but California weather has been oddly cold for this time of year so insulation it was (which I already had on hard anyhow).</p>
<p>Otherwise, it was a fairly simple build that didn&#8217;t take a lot of time to complete.  Mind you, I didn&#8217;t build all that complicated a coop either.  All told we spent a couple weekends on it.  It was a fun little project, to try to piece something together using odds and ends of posts, fence boards, and plywood.</p>
<p>Now if they&#8217;d only start laying eggs.  <img src='http://justinribeiro.com/chronicle/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=rn5pt8TtDis:jV8yre0XWtU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=rn5pt8TtDis:jV8yre0XWtU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=rn5pt8TtDis:jV8yre0XWtU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=rn5pt8TtDis:jV8yre0XWtU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=rn5pt8TtDis:jV8yre0XWtU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=rn5pt8TtDis:jV8yre0XWtU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=rn5pt8TtDis:jV8yre0XWtU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=rn5pt8TtDis:jV8yre0XWtU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=rn5pt8TtDis:jV8yre0XWtU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/rn5pt8TtDis" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/05/13/the-great-chicken-coop-build/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/05/13/the-great-chicken-coop-build/</feedburner:origLink></item>
		<item>
		<title>Missing in action in April</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/dhcrREWvOlU/</link>
		<comments>http://justinribeiro.com/chronicle/2010/05/13/missing-in-action-in-april/#comments</comments>
		<pubDate>Thu, 13 May 2010 22:34:01 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=849</guid>
		<description><![CDATA[Where have I been?  I don't even know, so how can I tell you?]]></description>
			<content:encoded><![CDATA[<p>As many people probably noticed, I didn&#8217;t publish a single thing in April.  As others noticed, I was incredibly slow to answer email and messages that even hinted at fun and generally was a ghost.  Contrary to popular belief it was not because I turned 30 and was hiding (ha ha people), it was namely due to work related deadlines that kept me on a dead sprint for pretty much the entire month of April.  I honestly don&#8217;t remember much about April&#8230;I close my eyes and all I see is requirements, tax filings, code, and business plans.  Blurry I tell you.</p>
<p>I suppose sometimes that&#8217;s just how things go.  You&#8217;ve got to make a living, pay those bills and other generic sayings.  So that&#8217;s what I did and have been doing nonstop for like 40+ days.</p>
<p>Even now, with the sprint seemingly never bound to stop, we&#8217;re nearing the half way point in May and still no words.  This isn&#8217;t to say I haven&#8217;t been working on side projects and tutorials.  There were many a thing I had planned to write about in April that happened in March that simply fell through the cracks.  Mind you, nothing happened in April besides work. But March was creative. <img src='http://justinribeiro.com/chronicle/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Over the next week or so, I&#8217;m going to try very hard to turn those projects into posts.  First up, following this very post in mere seconds, is something that Monica and I worked on that requires chickens.  Seriously.  After that, I&#8217;ll try to snap some shots of the TZ Artistic film we&#8217;ve been playing with.  From there, maybe a jQuery tutorial.  Sky is the limit right?</p>
<p>Stay tuned.</p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=dhcrREWvOlU:AxIyt8GhDhw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=dhcrREWvOlU:AxIyt8GhDhw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=dhcrREWvOlU:AxIyt8GhDhw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=dhcrREWvOlU:AxIyt8GhDhw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=dhcrREWvOlU:AxIyt8GhDhw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=dhcrREWvOlU:AxIyt8GhDhw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=dhcrREWvOlU:AxIyt8GhDhw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=dhcrREWvOlU:AxIyt8GhDhw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=dhcrREWvOlU:AxIyt8GhDhw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/dhcrREWvOlU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/05/13/missing-in-action-in-april/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/05/13/missing-in-action-in-april/</feedburner:origLink></item>
		<item>
		<title>Proximity or location based power management in mobile devices</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/5QpkHh7fZnI/</link>
		<comments>http://justinribeiro.com/chronicle/2010/03/23/proximity-or-location-based-power-management-in-mobile-devices/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 18:34:11 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile devices]]></category>
		<category><![CDATA[netbooks]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=823</guid>
		<description><![CDATA[Why does my device know where I'm at, but not power down when needed?]]></description>
			<content:encoded><![CDATA[<p>One of the great things about most modern mobile devices is that there is a tenancy for everything to come stock with GPS, wifi, and bluetooth.  The one thing that annoys me is that these things generally run all the time by default, which drains battery life and usable time.  My iPhone 3G for example won&#8217;t last a day in use without a mix matched turning off of these components and dimming of the screen, et cetera.  iPhone aside, most other mobile platforms, from Android devices to netbooks, suffer these same ills.</p>
<p>What I would like to see built stock in the power management interface of the mobile device realm is a location based or proximity based power management features.  Let me explain.</p>
<p>When I arrive home, the first thing I generally do is turn off my bluetooth, GPS and 3G and turn on the wifi.  I&#8217;d love to automate this based on where the my device is.  Maybe the GPS kicks grabs a signal and checks it location, running scripted actions for the desired location.  My house isn&#8217;t moving, nor is the office, so within a the general area it would know what device services to enable and disable.</p>
<p>This isn&#8217;t a new idea; Muhammad Abdullah Adnan at UC San Diego wrote a project paper titled (warning, PDF) <a href="http://mesl.ucsd.edu/gupta/cse237b-f09/ProjectReports/ProximityPowerAdnan.pdf">Proximity Based Power Management in PC using Bluetooth Mobile</a>) that talks about using a mobile phone to signal to a PC when to go into power saving (and wake up).  I can think of a fair number of ways to carry out the same end game, from GPS locations, to bluetooth pairing, to wifi connected network, to tower triangulation, all of which could tell where you&#8217;re located.</p>
<p>How could you do this today?  Having been reading and playing with Android recently, most of the API&#8217;s that are offered would make such an application easy to write (you can pretty much disable/enable anything you like, and the addition of background applications makes it an exercise more than a project). <a href="http://www.latedroid.com/2010/01/juicedefender.html">JuiceDefender</a> with the UltimateJuice add on offers some location based battery saving tips, and is currently the closest thing I&#8217;ve seen to the type of control I&#8217;m looking for. </p>
<p>The iPhone stock just won&#8217;t fly, but on my jailbroke 3G, you can almost get there with SBsettings and <a href="http://www.iclarified.com/entry/index.php?enid=7672">SBschedule</a>.  Note, SBsettings aren&#8217;t proximity or location based, but it&#8217;s not much of a jump to add feature to the scripting of toggles into those profiles. I have no doubt such an app could be written for the iPhone, but I have no want or need to play in their walled garden these days.</p>
<p>In the time of let&#8217;s be more nature friendly and when even the average consumer begins to do more with their mobile devices, the question I suppose is not a question of why, but rather a waiting game of when such functionality will become the norm in our everyday mobile lifestyles.  Would a power scheme setup such as this be too confusing, or could it help the power hunger devices of the day last a little longer?</p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5QpkHh7fZnI:IkFAVX5j5ps:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5QpkHh7fZnI:IkFAVX5j5ps:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5QpkHh7fZnI:IkFAVX5j5ps:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=5QpkHh7fZnI:IkFAVX5j5ps:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5QpkHh7fZnI:IkFAVX5j5ps:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=5QpkHh7fZnI:IkFAVX5j5ps:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5QpkHh7fZnI:IkFAVX5j5ps:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=5QpkHh7fZnI:IkFAVX5j5ps:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=5QpkHh7fZnI:IkFAVX5j5ps:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/5QpkHh7fZnI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/03/23/proximity-or-location-based-power-management-in-mobile-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/03/23/proximity-or-location-based-power-management-in-mobile-devices/</feedburner:origLink></item>
		<item>
		<title>Simple parts mix calculations for photography via jQuery</title>
		<link>http://feeds.justinribeiro.com/~r/JustinRibeiro/~3/Gu_v9xfSlqE/</link>
		<comments>http://justinribeiro.com/chronicle/2010/03/15/simple-parts-mix-calculations-for-photography-via-jquery/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 21:18:14 +0000</pubDate>
		<dc:creator>Justin Ribeiro</dc:creator>
				<category><![CDATA[darkroom]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://justinribeiro.com/chronicle/?p=827</guid>
		<description><![CDATA[Sometimes math is hard, other times I just want to play with jQuery and photography chemicals calculations.]]></description>
			<content:encoded><![CDATA[<p>Every once in a while, I get a question or two from people getting into film photography about how to mix chemicals for their development.  Sometimes they want to know the in&#8217;s and out&#8217;s of the basics, other times they&#8217;re looking for tips and tricks.  One issue that I&#8217;ve seen come up time and again is the matter of calculating just how much water to mix with a stock solution.  What does 1:13 mean exactly?  How do you figure that out?</p>
<p>While the math is not terribly hard, the problem I have is trying to explain the math in such a way that it becomes easy to understand.  I decided then to employ the math via jQuery and jQuery UI in a little project I like to call <a href="/projects/photography/photo-chem-calculator.php">photography chemistry volume based on parts calculator</a>.  You put in the parts and your volume, it breaks it down for you.  The further math explanation is below the form.</p>
<p>Why no volume units (ala milliliters or ounces)?  No need as long as you know that the volume you put in is what your parts will be based in.</p>
<p>Yes, it&#8217;s simple.  But I guess that&#8217;s the point. <img src='http://justinribeiro.com/chronicle/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The link, for those who didn&#8217;t see it in the paragraph above: <a href="/projects/photography/photo-chem-calculator.php">photography chemistry volume based on parts calculator</a></p>
<div class="feedflare">
<a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=Gu_v9xfSlqE:ZrI37eqSeNA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=Gu_v9xfSlqE:ZrI37eqSeNA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=Gu_v9xfSlqE:ZrI37eqSeNA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=Gu_v9xfSlqE:ZrI37eqSeNA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=Gu_v9xfSlqE:ZrI37eqSeNA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=Gu_v9xfSlqE:ZrI37eqSeNA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=Gu_v9xfSlqE:ZrI37eqSeNA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?i=Gu_v9xfSlqE:ZrI37eqSeNA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.justinribeiro.com/~ff/JustinRibeiro?a=Gu_v9xfSlqE:ZrI37eqSeNA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/JustinRibeiro?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/JustinRibeiro/~4/Gu_v9xfSlqE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://justinribeiro.com/chronicle/2010/03/15/simple-parts-mix-calculations-for-photography-via-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://justinribeiro.com/chronicle/2010/03/15/simple-parts-mix-calculations-for-photography-via-jquery/</feedburner:origLink></item>
	</channel>
</rss>
