<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Reuben on Data]]></title><description><![CDATA[I'm Reuben Cummings, an open source enthusiast and Pythonista. I help software companies eliminate inefficiencies and identify how customers are using their products and services. When your data starts talking, I’m the one you want listening.]]></description><link>https://www.reubano.xyz</link><generator>metalsmith-feed</generator><lastBuildDate>Wed, 06 Jun 2018 16:48:44 GMT</lastBuildDate><atom:link href="https://www.reubano.xyz/feed.xml" rel="self" type="application/rss+xml"/><author><![CDATA[Reuben Cummings]]></author><item><title><![CDATA[Arusha's first Open Data Day]]></title><description><![CDATA[<p>This post is adapted (in part) from talks I gave at <a href="/podium/odda-sessions-and-workshops-arusha-tanzania/">Open Data Day Arusha</a> on March 4, 2017.</p>
<h3 class='heading'>Prologue<a title='Prologue' id='prologue' class='anchor' href='#prologue' aria-hidden='true'></a></h3><p>About a month before <a href="//opendataday.org/">International Open Data Day</a> was set to commence, I received an <a href="https://groups.google.com/forum/#!topic/hackshackers-nairobi/sZ6aJ4ab0es">email from HacksHackers Nairobi</a> announcing a round of grants for local Open Data Day events. Having attended Open Data Day Nairobi a couple years back, I was pretty stoked at the thought of bringing a similar experience to Arusha.</p>
<p>Without wasting time, I put together a Google Form to identify hot topics and early supporters of the initiative. It soon became clear that most people were interested in financial transparency, so I completed the grant application with the theme “Open Budgets and Spending”, and pressed forward to spread the word about the upcoming event.</p>
<p>Ultimately, our grant wasn’t approved. But fortunately, the kind folks at Habari Node offered to fund us. And since Mobisol gave us use of their facilities for the event, we were officially “open for business.”</p>
<h3 class='heading'>Opening Remarks<a title='Opening Remarks' id='opening-remarks' class='anchor' href='#opening-remarks' aria-hidden='true'></a></h3><p>We kicked Open Data Day Arusha (ODDA) off by thanking our sponsors and supporters:</p>
<ul>
<li>Arusha Coders</li>
<li>Mobisol Tanzania</li>
<li>Habari Node</li>
<li>JR Institute of Information Technology (JRIIT)</li>
<li>Farm Radio’s The Hangar</li>
<li>AISE - Twende</li>
</ul>
<p>Then I gave a brief introduction of what Open Data Day was all about.</p>
<blockquote>
<p>Open Data Day is an annual celebration of open data all over the world.</p>
<p>— opendataday.org</p>
</blockquote>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg 1200w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg' title='open_data_day_events'><figcaption>Open Data Day events (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3847/33282089586_a03a067dfb_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<p>I explained that ODDA was about identifying key issues in Arusha and solving them with open data. Open data itself is information (usually provided by the government) that is</p>
<blockquote>
<p>freely available to everyone to use and republish as they wish, without restrictions from copyright, patents or other mechanisms of control.</p>
<p>— wikipedia.org</p>
</blockquote>
<p>I also added that data is typically considered “open” only if it is available in “machine readable” formats such as <code>csv</code>, <code>xls</code>, or <code>json</code>.</p>
<h3 class='heading'>The Issues<a title='The Issues' id='the-issues' class='anchor' href='#the-issues' aria-hidden='true'></a></h3><p>In order to meet the stated goal of “solving problems in Open Budgets and Spending”, Open Data Day Arusha revolved around discussion, consensus building, and collaboration. The first discussion of the day served to uncover the existing problems.</p>
<p>With a bit prodding, I surfaced a variety of issues from the participants: mobile money, doing business, accessing student records, etc.</p>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 1200w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1536/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 1536w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1600/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 1600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_2048/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg 2048w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg' title='wb_issues_2'><figcaption>Open Data Day Arusha issues (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/727/33323016895_ab6d8593a0_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<p>Each attendee then voted on their top 3 issues. I used a <a href="//gist.github.com/reubano/f79023952f71604ca22487342a4bba7a">Python script</a> I prepared the night before to calculate the two most popular. The script applied a <a href="//en.wikipedia.org/wiki/Ranked_voting_system">preferential voting system</a> technique called <a href="//en.wikipedia.org/wiki/Schulze_STV">Schulze single transferable vote</a> to an input <code>csv</code> file similar to the table below.</p>
<table>
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>F</th>
</tr>
</thead>
<tbody><tr>
<td>3</td>
<td>2</td>
<td>|</td>
<td>1</td>
<td></td>
<td></td>
</tr>
<tr>
<td>3</td>
<td>|</td>
<td>|2</td>
<td>1</td>
<td></td>
<td></td>
</tr>
<tr>
<td>|</td>
<td>3</td>
<td>|2</td>
<td>1</td>
<td></td>
<td></td>
</tr>
<tr>
<td>|</td>
<td>|1</td>
<td>2</td>
<td>3</td>
<td></td>
<td></td>
</tr>
<tr>
<td>|</td>
<td>3</td>
<td>1</td>
<td>|2</td>
<td></td>
<td></td>
</tr>
</tbody></table>
<p>For this table, each row represents a single ballot. You can interpret the first row as, “the issues ranked from most to least important are <code>E, B, A</code>.” As you may have noticed in the above picture, the top 2 issues were <code>E (getting in touch with businesses)</code> and <code>F (contacting government officials)</code>.</p>
<p>The reason it’s so difficult to accomplish these tasks is that email is not a preferred means of communication for many businesses and government agencies. You are best off calling one (of the up to 3) phone lines most business people have. And to contact a government official, you will most likely have to resort to DHL-ing a letter to their office.</p>
<h3 class='heading'>Data Workshop<a title='Data Workshop' id='data-workshop' class='anchor' href='#data-workshop' aria-hidden='true'></a></h3><p>Now that we were on the same page about the problems to solve, it was time to equip the participants with tools for obtaining and working with data. Our key sponsor, Habari Node, provided cloud storage to which I uploaded relevant data and reports. You can <a href="//storage.habari.co.tz/index.php/s/kXKhcwHzk6f4r17">view the list of downloaded files here</a>. Contact me directly if you would like access to our Open Data Day cloud.</p>
<p>In addition to pointing out the uploaded files, I also reviewed several other data sources:</p>
<ul>
<li><a href="//www.opendata.go.tz">Tanzania Open Data Portal</a></li>
<li><a href="//www.mof.go.tz">Tanzania Ministry of Finance</a></li>
<li><a href="//dlab.or.tz">Tanzanian Data Lab (dLab)</a></li>
</ul>
<p>To give the participants an idea of some of the things they could do with the data, I create some simple visualizations using the <code>Teachers Service Commission Estimates of the Executive Budget Proposal 2016-2017 Volume II</code> (<a href="http://www.mof.go.tz/index.php?option=com_content&amp;view=category&amp;layout=blog&amp;id=20&amp;Itemid=560">available here</a>).</p>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 1200w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1536/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 1536w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1600/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg 1600w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg' title='pie'><figcaption>Teachers Service Commission estimates summary view (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/774/33323027385_1aa7371d51_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 1200w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1536/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 1536w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1600/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg 1600w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg' title='bar'><figcaption>Teachers Service Commission estimates detailed view (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3677/32480411604_626eaf7b86_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<h3 class='heading'>The Solutions<a title='The Solutions' id='the-solutions' class='anchor' href='#the-solutions' aria-hidden='true'></a></h3><p>Armed with the issues and a basic understanding of how to handle data, the participants next began a discussion of potential solutions. We discussed existing initiatives such as AsokoInsight and investment promotion in Rwanda.</p>
<p>The ideas we came up with ranged from a letter tracking service to a government wide customer service ticketing system.</p>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 1200w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1536/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 1536w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1600/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 1600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_2048/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg 2048w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg' title='wb_ideas_2'><figcaption>Open Data Day Arusha ideas (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3741/33323023835_2d79921591_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<p>Following the same voting procedure as before, we identified the top 3 solutions:</p>
<ul>
<li>A (an updated business directory)</li>
<li>C (something to tell people who to contact based on the task)</li>
<li>D (something to help people write official letters to government agencies)</li>
</ul>
<p>Now the <em>real</em> fun began. The participants split into 3 groups (1 per solution) to flesh out their respective ideas and prepare a 10 – 15 minute presentation.</p>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 1200w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1536/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 1536w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1600/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 1600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_2048/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg 2048w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg' title='team_d_breakout'><figcaption>Team D’s breakout session (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/681/32480398314_4aa2dcf115_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 1200w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1536/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 1536w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1600/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 1600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_2048/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg 2048w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg' title='20170304_143712'><figcaption>Team A’s breakout session (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm5.staticflickr.com/4283/34731564834_2818ccea66_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<p>Team A tackled the problem of getting in touch with businesses and presented a web and mobile based business directory application. Their app would be continually updated, provide business locations and contact information, and allow the public to comment on the businesses.</p>
<p>Team C presented a similar idea to help citizens locate public services such as schools, hospitals, and banks. Their app allowed a user to pick a region and then drill down by category to find the appropriate contact.</p>
<p>The example user flow they gave was as follows:</p>
<pre><code class="language-bash">Arusha -&gt; Education -&gt; Universities -&gt; Arusha University -&gt; &lt;Contact Info&gt;</code></pre>
<p>Finally, team D presented a web based letter writing assistant. The user would simply select the purpose of their letter, e.g., visa application or letter of invitation, and the app would choose the appropriate template, recipient, and mailing address. The app would then allow the user to customize the letter prior to printing, stamping, and mailing it on her behalf.</p>
<p>After mailing, the app sends email and sms notifications as the letter makes its way to the intended recipient. The app sends its final notification after the recipient responds.</p>
<p>To encourage businesses and government agencies to participate in the letter notification features, the app would enable officials to process letters more efficiently and accurately than their current methods.</p>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 1200w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1536/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 1536w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1600/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 1600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_2048/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg 2048w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg' title='20170304_160409'><figcaption>Team A’s presentation (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm3.staticflickr.com/2942/32940470030_bb2e3d7cf0_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 1200w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1536/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 1536w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1600/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 1600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_2048/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg 2048w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg' title='20170304_162843'><figcaption>Open Data Day Arusha participants listening to Team D’s presentation (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm4.staticflickr.com/3890/33323020225_6bcbfda60e_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<h3 class='heading'>Closing Remarks<a title='Closing Remarks' id='closing-remarks' class='anchor' href='#closing-remarks' aria-hidden='true'></a></h3><p>To bring Open Data Day Arusha to a close, I presented the following ways to maintain communication and stay involved in open data:</p>
<ul>
<li><a href="//facebook.com/groups/arushacoders">Arusha Coders meetup</a></li>
<li><a href="//groups.google.com/forum/#!forum/opendata-arusha">Open Data Arusha mailing list</a></li>
<li><a href="//www.datafest.global/data-summit">Data Summit</a>: March 23 in Scotland</li>
<li><a href="//www.africaopendata.net">Africa Open Data Conference</a>: July 17 - 21 in Accra, Ghana</li>
<li><a href="//www.datascienceafrica.org/">Data Science Africa</a>: July 17 - 21 in Arusha,Tanzania</li>
<li><a href="//opendatacon.org/">International Open Data Conference</a>: Oct 16 in Europe</li>
</ul>
<p>Finally, Saad from Mobisol talked about how Data Clubs played an important role in his adolescence and encouraged the students in attendance to start a Data Club at their school.</p>
<p>We ended the day with a discussion on how to improve things for next year. Overall, I think everyone got a lot out of ODDA and are excited to continue their journey into the world of data.</p>
<h3 class='heading'>Epilogue<a title='Epilogue' id='epilogue' class='anchor' href='#epilogue' aria-hidden='true'></a></h3><p>This was my first experience organizing an Open Data Day event and I learned quite a bit in the process. In the frantic weeks leading up to (and including) this day, two things were more challenging than I had anticipated.</p>
<p>First was the amount of effort required to get public sector organizations and government agencies involved. I contacted individuals from over 35 corporations, organizations, and gov’t agencies via email and twitter.</p>
<p>Of those, ~1/3 responded (~1/4 if you remove my personal contacts from the list). And at the end of the day, I wasn’t able to get anyone representing the government or public sector (excluding education) to attend.</p>
<p>Second was attendance estimation. I read that you should expect around half of the people who RSVP to an event to show up. We advertised ODDA as a Facebook event to which around 45 people responded “yes” and another 80 responded “interested”. I also figured the numerous mailing lists we advertised on would draw in a few people who didn’t bother to RSVP. So with an expectation of 30 people (<code>45 * 50% + 80 * 10%</code>) up to 50 on the high end, imagine my surprise with the actual turnout of 15.</p>
<h3 class='heading'>Comments<a title='Comments' id='comments' class='anchor' href='#comments' aria-hidden='true'></a></h3><p>Did you attend an Open Data Day event this past weekend? If so, how did it go? What do you think about the issues and solutions presented in this post? Are you involved in or interested in staring a Data Club? Tweet me <a href="//twitter.com/reubano">@reubano</a> with your thoughts.</p>
]]></description><link>https://www.reubano.xyz/blog/arusha-s-first-open-data-day</link><guid isPermaLink="true">https://www.reubano.xyz/blog/arusha-s-first-open-data-day</guid><dc:creator><![CDATA[Reuben Cummings]]></dc:creator><pubDate>Thu, 09 Mar 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[The Journey to Booking Myself Solid - Part I]]></title><description><![CDATA[<h3 class='heading'>Where’s the cheese?<a title='Where’s the cheese?' id='wheres-the-cheese' class='anchor' href='#wheres-the-cheese' aria-hidden='true'></a></h3><p>Twelve months. That’s how long it’s been since my last client projected ended. <em>So what have I been doing the past year?</em> I hear you ask. Aside from watching my savings dwindle, I’ve put a lot of effort into improving my <a href="/projects/">open source projects</a>, <a href="//lanyrd.com/profile/reubano/">speaking</a>, and <a href="/blog/static-to-dynamic-and-back-again/">revamping my website</a>. Alas, as much as I would love to work non-stop on open source, my <a href="//github.com/reubano?tab=overview">GitHub contribution graph</a> doesn’t pay the bills.</p>
<p>Over the last few months, I’ve been preparing myself to re-enter the freelance market. Initially, I applied to a few well known curated freelance marketplaces including Toptal and Crew. Crew rejected my application since I didn’t have enough “client specific” front-end work. Toptal is known for only hiring 3% of all applicants and put me through a rigorous series of code challenges and interviews.</p>
<p>Fortunately, I made it to the final Toptal screening. This involved building a single-page web application (SPA) and back-end system with user authentication and roles. I wasn’t too happy to spend a week (at least) of my time working on an unpaid “toy” project. But I figured Toptal’s name recognition would open up some doors and be worth it in the end.</p>
<p>Unfortunately, I didn’t quite get everything working in time for the interview and and failed the project review. It’s one of those situations where unless you’ve already completed a similar app in the past, it’s difficult to meet their criteria in the given time frame.</p>
<p>To be fair, I didn’t exactly make things easy for myself when I decided to implement the SPA in a JavaScript framework I had never used before (<a href="//mithril.js.org">Mithril.js</a>). The reasoning behind this was two-fold.</p>
<p>First, the only SPA framework I had used up until then was the Backbone based <a href="http://chaplinjs.org">Chaplin.js</a>. Chaplin’s last release (v1.1.0) was over a year ago, i.e., an eternity in JS land. And my experience with it taught me that for applications with complex <a href="https://github.com/chaplinjs/chaplin/wiki/Cookbook#simple-data-binding">data-binding</a> requirements, I should probably <a href="https://github.com/chaplinjs/chaplin/wiki/Cookbook#limitations">look elsewhere</a>.</p>
<p>Second, I had plans to replace Chaplin.js anyway, so I figured it didn’t make sense to invest even more time with it. And if I wasn’t going to get paid for my time, I decided to use the opportunity to learn something new. In the process, I found Mithril to be an absolute delight and plan to re-apply to Toptal once I have a few Mithril projects under my belt.</p>
<h3 class='heading'>Tracking the scent<a title='Tracking the scent' id='tracking-the-scent' class='anchor' href='#tracking-the-scent' aria-hidden='true'></a></h3><p>After all but giving up on freelance marketplaces, I decided to <a href="http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/">educate myself</a> on <a href="http://www.theinnovativemanager.com/apple-watch-innovation-that-starts-with-why/">marketing</a> my services. I invested in
<a href="https://www.goodreads.com/book/show/126983.Book_Yourself_Solid">Book Yourself Solid</a> by Michael Port, and am currently reading it. Having recently completed the first module on preparing a “solid foundation”, I’ll now show you how I’ve applied what I learned.</p>
<h4 class='heading'>My market<a title='My market' id='my-market' class='anchor' href='#my-market' aria-hidden='true'></a></h4><blockquote>
<p>entrepreneurs and product managers of for-profit software companies</p>
</blockquote>
<h4 class='heading'>My cause (why)<a title='My cause (why)' id='my-cause-why' class='anchor' href='#my-cause-why' aria-hidden='true'></a></h4><blockquote>
<p>I believe the ability to understand data is key to making informed decisions. Furthermore, I want to lower the barriers to transforming data and extracting meaningful information from it.</p>
</blockquote>
<h4 class='heading'>My persona<a title='My persona' id='my-persona' class='anchor' href='#my-persona' aria-hidden='true'></a></h4><h5 class='heading'>who am I?<a title='who am I?' id='who-am-i' class='anchor' href='#who-am-i' aria-hidden='true'></a></h5><blockquote>
<p>I am an international speaker and trainer who uses data to show entrepreneurs and product owners how to make better decisions regarding their operations, customers, and products.</p>
</blockquote>
<h5 class='heading'>my tagline<a title='my tagline' id='my-tagline' class='anchor' href='#my-tagline' aria-hidden='true'></a></h5><blockquote>
<p>Your data can talk. Let me tell you what it’s saying.</p>
</blockquote>
<h4 class='heading'>My value (how)<a title='My value (how)' id='my-value-how' class='anchor' href='#my-value-how' aria-hidden='true'></a></h4><blockquote>
<p>I help organizations eliminate inefficiencies and identify how customers are using their products and services.</p>
</blockquote>
<h4 class='heading'>My service offering (what)<a title='My service offering (what)' id='my-service-offering-what' class='anchor' href='#my-service-offering-what' aria-hidden='true'></a></h4><blockquote>
<p>I collect and interpret business data to uncover a path to increased profitability.</p>
</blockquote>
<p>Granted, this isn’t nearly as catchy as Michael’s, </p>
<blockquote>
<p>I help service professionals get booked solid.</p>
</blockquote>
<p>or </p>
<blockquote>
<p>The guy to call when you’re tired of thinking small.</p>
</blockquote>
<p>But noticed what I <strong>didn’t</strong> say. I didn’t call myself a <em>programmer</em>, or a <em>developer</em>, or even a <em>data scientist</em>.</p>
<p>I also didn’t say I offer data analysis or web development services. I presented my plan to help companies “increase revenue or decrease costs”. Now, my offerings very well may include data analysis or web development, but that’s an implementation detail.</p>
<p>According to Michael, it took him six months to come up with his tagline. So, I shouldn’t feel too bad with what I’ve come up with in the span of a few days.</p>
<h3 class='heading'>Just the beginning<a title='Just the beginning' id='just-the-beginning' class='anchor' href='#just-the-beginning' aria-hidden='true'></a></h3><p>One aspect I’m still not comfortable with is the, “Book Yourself Solid Dialogue”. The premise is that I should introduce myself according my “how” statement from above. So Michael would say, </p>
<blockquote>
<p>I’m a small business advisor—I help small business owners get more clients.</p>
</blockquote>
<p>Translating my statement, I should say,</p>
<blockquote>
<p>I’m a freelancer consultant—I help organizations eliminate inefficiencies and see how customers are using their products.</p>
</blockquote>
<p>or something to that effect.</p>
<p>While I’m perfectly comfortable writing that in an email, on my <a href="/about/">website</a>, or in my <a href="//www.linkedin.com/in/reubano">LinkedIn profile</a>, I can’t bring myself to actual <em>say</em> it to someone who asks me, “What do you do?” I’m much more inclined to revert to the bland, “I’m a data scientist” or “I’m a freelance software developer.” </p>
<p>Does that mean I haven’t truly nailed down my positioning statements? Maybe. Or I could just need more time to get comfortable talking about myself. </p>
<p><code>¯\_(ツ)_/¯</code></p>
<p>I’m already looking forward to the book’s next module on developing a “strategy for creating trust and credibility”. Stay tuned for part II.</p>
<p>What’s your take? Do the above statements give you a clear indication of my value proposition? Does it match what you know about me? Tweet me <a href="//twitter.com/reubano">@reubano</a> with your thoughts.</p>
]]></description><link>https://www.reubano.xyz/blog/the-journey-to-booking-myself-solid-part-i</link><guid isPermaLink="true">https://www.reubano.xyz/blog/the-journey-to-booking-myself-solid-part-i</guid><dc:creator><![CDATA[Reuben Cummings]]></dc:creator><pubDate>Thu, 09 Feb 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[Static to Dynamic and Back Again]]></title><description><![CDATA[<h3 class='heading'>The many faces of reubano<a title='The many faces of reubano' id='the-many-faces-of-reubano' class='anchor' href='#the-many-faces-of-reubano' aria-hidden='true'></a></h3><p>For those of you keeping track, I’ve now redesigned <a href="//reubano.xyz">my website</a> for the second time since its inception. I created my first website with the static site generator (SSG) Octopress. This first site contained a blog, project portfolio, archives, and several pages (home, about, and contact). </p>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg 1200w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg' title='octopress_site_screenshot'><figcaption>Original Octopress website (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/133/30858818694_6cd79fd69f_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<p>Despite Octopress’ popularity and breadth of plugins, the Pythonista in me couldn’t stand its Ruby centric tooling. For the first rewrite, I decide to try a new approach with a <a href="//backbonejs.org/">Backbone.js</a> based single page app (SPA). </p>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg 1200w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg' title='chaplin_site_screenshot'><figcaption>Chaplin.js website redesign (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/257/31327956640_24050e1d58_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<p>To reduce the required boilerplate and provide my SPA a bit of structure, I used <a href="//chaplinjs.org/">Chaplin.js</a> in combination with the asset compiler <a href="//brunch.io/">Brunch</a>. Using Brunch and two <a href="//github.com/reubano/markdown-brunch">custom</a> <a href="//github.com/reubano/ls-brunch">plugins</a>, I was able to emulate Octopress’ markdown workflow. In addition, I gained the ability create pages from JSON data sources. I eagerly used this new power to generate a project portfolio from the GitHub API. Keeping with the JSON theme, I also generated a photo gallery from the Flickr API.</p>
<p>Client side JavaScript really shone here. I was able to use cached JSON files in development, but fetch data directly from the APIs in the live version of the site. This meant that any repos I created on GitHub or photos I uploaded to Flickr would instantly appear on the site without additional intervention. I also loved that you could navigate the entire site without page refreshes or server calls after initialization. This meant the site worked offline once it was loaded.</p>
<p>Sadly, all good things must come to an end. Chaplin’s maintainers effectively ceased development on the framework. This, in combination with overall <a href="//hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f">JS fatigue</a>, motivated me to reconsider static sites.</p>
<h3 class='heading'>SSG selection<a title='SSG selection' id='ssg-selection' class='anchor' href='#ssg-selection' aria-hidden='true'></a></h3><p>Since I had recently given a <a href="//speakerdeck.com/reubano/static-sites-and-generators-ftw">talk on SSGs</a>, I had a decent idea of what I was looking for. I was also determined to make the new site as <a href="//vimeo.com/147806338">lightweight as possible</a>. This meant I was going to abandon Bootstrap, jquery, Google Analytics, and web fonts.</p>
<h4 class='heading'>The contenders<a title='The contenders' id='the-contenders' class='anchor' href='#the-contenders' aria-hidden='true'></a></h4><p>I’ll save the gory details on the pros and cons of each SSG that I tried for a later post. But after trying out Roots, Hexo, Wintersmith, and Hugo, I decided to go with <a href="//metalsmith.io">Metalsmith</a>. Metalsmith was the only SSG that gave me flexibility, a comprehensive feature set, and ability to write plugins in a decent language (CoffeeScript in this case). </p>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 1024w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1200/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg 1200w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg' title='metalsmith_site_screenshot'><figcaption>Metalsmith website redesign (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm1.staticflickr.com/391/31554022252_8c554f0549_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<p>I briefly considered a few Python SSGs such as <a href="//www.getnikola.com/">Nikola</a> and <a href="//www.mkdocs.org/">MkDocs</a>, but found their integration with my frontend stack (stylus and pug, aka jade) to be lacking at best. </p>
<p>This isn’t to say Metalsmith is a panacea, <a href="//evocode.com/blog/mastering-metalsmith-best-practices-for-static-sites/#metalsmith-drawbacks">not in the least</a>. What irks me the most is that Metalsmith is very <a href="//github.com/metalsmith/metalsmith/issues/195">picky about the order</a> you load plugins in, and suffers from <a href="#slow-compilation">slow compile times</a>. Hexo did a great job of alleviating the first issue (and possibly the second) with their plugin <a href="//hexo.io/api/processor.html">registration system</a>.</p>
<h4 class='heading'>Slow compilation<a title='Slow compilation' id='slow-compilation' class='anchor' href='#slow-compilation' aria-hidden='true'></a></h4><p>Internally, Metalsmith passes the complete list of files to each plugin, and almost every plugin needs to iterate through the entire list in order to do anything meaningful. The following is an example plugin that removes all <code>draft</code> posts from the pipeline.</p>
<p><small>plugin.coffee</small></p>
<pre><code class="language-coffeescript"><span class="hljs-built_in">module</span>.exports = <span class="hljs-function"><span class="hljs-params">(options)</span> -&gt;</span>
  (files, metalsmith, done) -&gt;
    setImmediate(done)

    <span class="hljs-keyword">for</span> file, data <span class="hljs-keyword">of</span> files
      <span class="hljs-keyword">if</span> (data.draft) 
        <span class="hljs-keyword">delete</span> files[file]</code></pre>
<p>The overhead of this architecture becomes present as you scale the number of pages built. Using <a href="//search.cpan.org/~smueller/Dumbbench-0.10/lib/Dumbbench.pm"><code>dumbbench</code></a> I retrieved the following timings in <strong>development mode</strong>:</p>
<table>
<thead>
<tr>
<th align="right">Files</th>
<th align="right">Iterations</th>
<th align="right">Ave Build Time (s)</th>
<th align="right">Uncertainty (s)</th>
</tr>
</thead>
<tbody><tr>
<td align="right">128</td>
<td align="right">21</td>
<td align="right">11.62</td>
<td align="right">0.10</td>
</tr>
<tr>
<td align="right">174</td>
<td align="right">20</td>
<td align="right">12.68</td>
<td align="right">0.22</td>
</tr>
<tr>
<td align="right">292</td>
<td align="right">20</td>
<td align="right">13.12</td>
<td align="right">0.21</td>
</tr>
<tr>
<td align="right">376</td>
<td align="right">20</td>
<td align="right">14.29</td>
<td align="right">0.36</td>
</tr>
</tbody></table>
<p>And the following timings are the result from <strong>production mode</strong> which performs file minification and compression steps:</p>
<table>
<thead>
<tr>
<th align="right">Files</th>
<th align="right">Iterations</th>
<th align="right">Ave Build Time (s)</th>
<th align="right">Uncertainty (s)</th>
</tr>
</thead>
<tbody><tr>
<td align="right">233</td>
<td align="right">20</td>
<td align="right">14.84</td>
<td align="right">0.13</td>
</tr>
<tr>
<td align="right">325</td>
<td align="right">23</td>
<td align="right">17.14</td>
<td align="right">0.15</td>
</tr>
<tr>
<td align="right">561</td>
<td align="right">20</td>
<td align="right">20.65</td>
<td align="right">0.57</td>
</tr>
<tr>
<td align="right">729</td>
<td align="right">20</td>
<td align="right">23.56</td>
<td align="right">0.52</td>
</tr>
</tbody></table>
<p>As you can see in the following graph, the development run displays a <a href="//rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/">time complexity</a> on the order of <code>log(N)</code>, while the production run crosses over into linear territory on the order of <code>N</code>. Yet, even with logarithmic growth in the best case, Metalsmith still takes an eternity (almost 15 secs) to rebuild my site. And as I point out <a href="#the-ugly">below</a>, I have to wait for a full rebuild after each change.</p>
<div class='photo'><img class='fit' sizes='(min-width: 1024px) 66vw, 100vw' srcset='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_75/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 75w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_100/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 100w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_150/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 150w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_180/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 180w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_240/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 240w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_320/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 320w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_375/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 375w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_480/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 480w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_500/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 500w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_600/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 600w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_640/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 640w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 768w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_800/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 800w, //res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_1024/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg 1024w' src='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg' title='metalsmith_build_time'><figcaption>Metalsmith build times (<a href='//res.cloudinary.com/reubano/image/fetch/f_auto,q_auto,w_768/https://farm6.staticflickr.com/5583/31700406205_b36976755c_o.jpg' target='_blank' rel='noopener noreferrer'>view original</a>)</figcaption></div>

<h4 class='heading'>The ugly<a title='The ugly' id='the-ugly' class='anchor' href='#the-ugly' aria-hidden='true'></a></h4><p>Additionally, JavaScript’s inherent mutability is a <a href="//github.com/segmentio/metalsmith-collections/issues/27">major source of pain</a>. And despite my best efforts, I was never able to get either the <a href="//github.com/FWeinb/metalsmith-watch">metalsmith-watch</a> or <a href="//github.com/arve0/metalsmith-changed">metalsmith-changed</a> plugins to work.</p>
<h3 class='heading'>Future work<a title='Future work' id='future-work' class='anchor' href='#future-work' aria-hidden='true'></a></h3><p>The ideal SSG would iterate through the list of files a fixed number of times and then pass each file to every plugin in parallel. This would be most effective with immutable data structures like Python’s <a href="//docs.python.org/3/library/types.html#types.MappingProxyType"><code>MappingProxyType</code></a> or Clojure’s <a href="//clojure.org/reference/data_structures#Maps"><code>Maps</code></a>.</p>
<p>I eventually want to look under the hood of <a href="//www.getnikola.com/">Nikola</a> since it <a href="//chriswarrick.com/blog/2015/07/23/ssg-speed-test/">may relieve</a> some of issues stated above. Plus with the help of <a href="//github.com/bkad/python-stylus">python-stylus</a> and <a href="//github.com/SyrusAkbary/pyjade">pyjade</a>, I may even be able to reuse my templates.</p>
<p>Ultimately, I don’t think I will ever be completely satisfied without building my own SSG. Something that combines the speed of Hugo, the elegance of Hexo, and the flexibilty of Metalsmith. My stream processing library <a href="//github.com/nerevu/riko">riko</a> would provide a good foundation on which to build such a framework. If only I had the time…</p>
<p>Do you have any SSG experiences to share? Tweet your story to me <a href="https://twitter.com/reubano">@reubano</a>.</p>
]]></description><link>https://www.reubano.xyz/blog/static-to-dynamic-and-back-again</link><guid isPermaLink="true">https://www.reubano.xyz/blog/static-to-dynamic-and-back-again</guid><dc:creator><![CDATA[Reuben Cummings]]></dc:creator><pubDate>Wed, 14 Dec 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[From South to North]]></title><description><![CDATA[<p>A lot has happened over the past month. I arrived in Sumbawanga on Tuesday, May 18th to join CNFA on a field day demonstration. We spent the first few days making arrangements in preparation for Friday’s demonstration. On Friday we arrived to the site, a large field in Malonje Village, and got to work assembling the sheller. Allam, my CNFA contact, had previously informed the villagers that I needed a Phoenix brand bicycle, and they had two waiting for me. I immediately ran into difficulties with the first bike because it had an after-market rear rack which was too long for the sheller to fit on. Luckily, Malonje had an abundance of Phoenix bikes and we went through 3 more before finding one that worked. After installing the sheller, we moved it onto a tarp where a group of villagers were eagerly waiting. The demonstration went over fantastically and we shelled half a sack of maize with plenty of audience participation. Once we finished, a group of villagers gave us a wonderful ‘thank you’ musical celebration full of song and dance. It was a great ending to the day.</p>
<p>We left Sumbawanga the same day and headed back to Mbeya. On Saturday I went to TFA to install the sheller on the bike we had on display. Henry, TFA Branch Manager, informed me that he had gotten several inquiries about the sheller and charger. This was exciting news and on Monday, we made an agreement for TFA to receive shipments for us from Arusha. This way we could take orders from people in Mbeya and direct them to TFA to pick-up the merchandise. With everything in Mbeya straightened out, I headed north to Dar early Tuesday morning on May 25th. I took advantage of my time in Dar to meet with people from <a href="http://www.mukpar.com/">MUKPAR</a>, <a href="http://www.dlightdesign.com/">D.light</a>, <a href="http://www.cnfa.org/">CNFA</a>, and <a href="http://www.solar-aid.org/">Solar-Aid</a>. These meetings were extremely helpful and introduced me to several new sales and distribution methods. The most promising meeting was with Karan, MUKPAR Director, who really liked the sheller and charger and gave me the contact info for Ganesh, the MUKPAR Arusha Branch Manager. Karan was open to having us put a bicycle in the Arusha Branch to test out customer demand.</p>
<p>I left Dar on Saturday, May 29th for yet another bus ride north, this time back home to Arusha. Following up with my Dar meetings, I met Ganesh the next Thursday on June 3rd and he agreed to let us put a GCS bike and sheller on display. The next day, Jodie and I met with Laura, D.light marketing manager, to discuss ideas for a marketing collaboration. Since my volunteer visa was set to end on June 8th, I made plans to head (north) to Nairobi the following week. A mix-up with with the terms of my visa led me to make a mad dash packing my belongings in time to catch the 2:00 bus to Nairobi on Tuesday the 8th, a day earlier than I had planned to leave. Luckily, I was able to pack and catch the bus with a few minutes to spare. This was just enough time for me to take a few bites of the ugali and cabbage that Jodie brought with her before I boarded the bus. Due to leaving in such a rush, I wasn’t able to say goodbye to many of my friends and neighbors. But I will hopefully soon be back to Arusha again.</p>
]]></description><link>https://www.reubano.xyz/blog/from-south-to-north</link><guid isPermaLink="true">https://www.reubano.xyz/blog/from-south-to-north</guid><dc:creator><![CDATA[Reuben Cummings]]></dc:creator><pubDate>Thu, 10 Jun 2010 00:00:00 GMT</pubDate></item><item><title><![CDATA[Mbeya and Kyela]]></title><description><![CDATA[<p>After leaving Dar on the 2nd, I headed south to Mbeya to meet Daniel. The plan was to join up with CNFA for their farmer exhibitions. However, upon arriving to the CNFA office on Monday, we learned that the exhibitions were on hold pending funding. So to make the best of the situation, Daniel and I went to the TechnoServe office the next day (with our newly acquired bike) to follow up with the contact Hillary told me about the week prior. It turned out that the person I was looking for, Iddi, was based in Kyela (about 1.5 hours further south). I stopped by the Tanganyika Farmers’ Association (TFA) next and met the branch manager, Henry, who agreed to let us hold a demonstration in their parking lot at the end of the week. In the few days leading up to the demo, I printed out flyers and rode the bike around town pubbing our demo to every cell phone shop and agrodealer I saw. Friday, the day of demo, turned out to be a bit of a disaster as issues with the bike and sheller delayed the start for several hours. Once we got things working, we demoed the sheller and charger in front of our modest crowd for another 15 minutes before we had to pack up and head to the next site up the road. In total, we gave 6 demonstrations over three days and were well received by the villagers. Fortunately, the subsequent demos ran much more smoothly than the first.</p>
<p>Pleased with our work in Mbeya, we left the sheller and bike at TFA on the 12th as Daniel headed north (with a sheller) to Iringa to visit the remaining TFA’s and I headed south (with a charger) to meet Iddi in Kyela. Kyela is remarkably much warmer than Mbeya (I didn’t need to wear my sweater at night for example), produces much less maize, almost everyone rides a bike (probably due to the flat landscape and few amount of dala-dalas servicing the town), and lacks power in many of the villages –&gt; a perfect target market for the charger. It just so happened that the TechnoServe office was in the same building as PRIDE and Tujijenge Microfinance (TMF), so Iddi arranged for me to meet with the branch managers of each.</p>
<p>Over the next 2 days (Thurs and Fri) I visited several groups of villagers with TechnoServe and TMF to talk about the phone charger. TechnoServe has a cocoa farmers program and the farmers I met with were very eager to begin selling GCS chargers. Similarly, the TMF farmer loan groups (councils) I presented to were just as impressed. Over the weekend, I tried my luck in town by showing the charger to some store owners. It was a tough sell because the charger I had wasn’t working and my swahili still isn’t all that great. Nevertheless, I tried to explain that they wouldn’t have to pay now and landed 6 orders in the end. The feedback I received from the microfinance (mf) groups got me thinking about doing the same thing in Arusha. If we can partner with a few mf organizations, we’ll be able to reach a large number of villagers and likely have an easier time landing bulk orders. This plan will have to wait until next week at the earliest however because I will shortly be on my way to Sumbawanga (via Mbeya). CNFA has secured funding so I will soon be hitting the road with them.</p>
]]></description><link>https://www.reubano.xyz/blog/mbeya-and-kyela</link><guid isPermaLink="true">https://www.reubano.xyz/blog/mbeya-and-kyela</guid><dc:creator><![CDATA[Reuben Cummings]]></dc:creator><pubDate>Tue, 18 May 2010 00:00:00 GMT</pubDate></item><item><title><![CDATA[Days in Dar]]></title><description><![CDATA[<p>Last week I concluded my trip to Dar es Salaam with Philemon for the CNFA Agrodealers Convention. Wanting to make the most out of my time there, I arrived a few days early so that I could meet with some organizations headquartered there. I arrived late Wednesday evening (4/28) and made arrangements to stay with fellow MIT alum Jamie, CEO of <a href="http://egg-energy.com">EGG-energy</a>. Since I was discouraged from taking the dala-dalas at night in Arusha, I was pretty excited to take one to Jamie’s place in Msasani. A helpful passenger on the bus made sure I got off at the right stop where Jamie came to pick me up.</p>
<p>I started out the next day meeting Hillary, the Country Director of <a href="http://www.technoserve.org/work-impact/locations/tanzania.html">TechnoServe/Tanzania</a>. I showed her videos of our sheller and charger in action and then took out the samples I brought with me. She was very intrigued by what she saw and gave me a handful of contacts to follow-up with. The next stop was the <a href="http://www.tic.co.tz/">Tanzania Investment Centre</a> (TIC) where my plan was to meet with the Director. The Director was away on travel but I did manage to get a meeting with John, the Investment Manager. My videos and samples impressed him so much that he ordered one of each on the spot. John also talked a bit about the benefits that TIC certification would provide us at GCS such as assistance getting residents permits, duty incentives, and greater access to investors. I thanked John for his time and then headed over to <a href="http://www.finca.org/">FINCA</a> for another impromptu meeting.</p>
<p>One of difficulties of selling products to the rural poor is that many of them can’t afford to purchase them. I was hoping that we could work with FINCA to provide financing to our customer base of agrodealers and maize farmers. Unfortunately, the FINCA President was in a meeting and I was told to come back the next day. The next morning I headed back to FINCA and sat with a Credit Manager named Issa. While not as impressed with our company as John from TIC was, he did see some potential and told me to write a proposal. His main concern was that our sheller is a season product and that a bad harvest to impair the farmers’ ability to repay their loans.</p>
<p>My last stop of the day was the CNFA Convention. At lunch, Philemon and I met with Alfred from <a href="http://www.kickstart.org">KickStart</a>. He gave us a lot of valuable advice on how we should market and sell our products. Towards the end of the Convention, I met Kelly from CNFA who introduced me to a bunch of staff from Dar, Arusha, and Mbeya. She also managed to get Philemon and me a spot at the end of the meeting to show our videos which, after overcoming technical difficulties with the usb drive and projector, went over very well. By the end of the day, we landed over a dozen orders each of both the chargers and shellers. A nice way to kick off the sales trip!</p>
]]></description><link>https://www.reubano.xyz/blog/days-in-dar</link><guid isPermaLink="true">https://www.reubano.xyz/blog/days-in-dar</guid><dc:creator><![CDATA[Reuben Cummings]]></dc:creator><pubDate>Sun, 09 May 2010 00:00:00 GMT</pubDate></item><item><title><![CDATA[Thoughts on Arusha]]></title><description><![CDATA[<p>So far, I’ve been in Arusha for a month and have found my time here to be quite enjoyable. My first observations were how much brighter the stars look in the sky and how small the community is. The size of the community became apparent after going out my second night and recognizing many of the patrons from my previous night out. Since the selection of night clubs is rather limited, it appears that each one has a core following of people who show up religiously each week. Unfortunately, the following tends to consist of an order of magnitude more men than women. But fortunately, the DJ’s have been consistently good and play a mix of reggae, tanzanian/african tunes, hip-hop, and house.</p>
<p>My neighborhood, although just a few minute drive to town, has a very rural feel to it. It’s fairly common to share the dirt roads with a herd of cattle or goats looking for pasture, or a mother hen and her chicks pecking for food. I’ve become quite accustomed to waking up to the crow of our neighbor’s rooster and the occasional flock of chickens that raid our front yard looking for food scraps. However, despite the ruralness of our village, most everything you could possibly need is readily available. Around the corner from our house is a “strip mall” of duka’s that hosts a seamstress, a barber (who also doubles as the electricity bill collector), a video store, and a convenient store. And within a few minutes walk are various bars, restaurants, and other service providers. As I have discovered, most villages are setup in a similar manner making each one a self contained community.</p>
<p>One final observation is our village’s collection of ~5 stray dogs. Each occupies his own area like the bums you see in Central Sq. - Cambridge, MA – and every night we hear them howl in unison. One of them, whom Daniel named Ijumaa (Swahili for Friday), follows us home each day as we pass by the village bar after work. Apparently, we are the few people who don’t throw rocks at him so he’s taken quite kindly to us.</p>
]]></description><link>https://www.reubano.xyz/blog/thoughts-on-arusha</link><guid isPermaLink="true">https://www.reubano.xyz/blog/thoughts-on-arusha</guid><dc:creator><![CDATA[Reuben Cummings]]></dc:creator><pubDate>Fri, 09 Apr 2010 00:00:00 GMT</pubDate></item><item><title><![CDATA[Kikatiti Demo]]></title><description><![CDATA[<p>Today I experienced my second GCS demo. This one was at a <a href="http://www.cnfa.org/">CNFA</a> agrodealer exhibition in Kikatiti, Tanzania. The exhibition site was located in an open field near an elementary school pretty high in the hills. Once we set up the tent, Philemon and I prepared our booth and waited for the villagers to come. A small crowd soon formed around us as we began shelling the maize we brought with us. After shelling a few cobs, I got off the bike and passed out brochures. With my limited knowledge of Kiswahili, I said “Nasema Kiswahili kidogo tu” (“I only speak a little Swahili”) to anyone who spoke to me and pointed at the brochure if I heard “shingapi?” (“how much?”). We also demonstrated the cell phone charger which went over very well with the crowd. Ultimately, our customers will be the other agrodealers present at the exhibition so we will have to figure out the best way to get them as interested in our devices as the villagers were.</p>
]]></description><link>https://www.reubano.xyz/blog/kikatiti-demo</link><guid isPermaLink="true">https://www.reubano.xyz/blog/kikatiti-demo</guid><dc:creator><![CDATA[Reuben Cummings]]></dc:creator><pubDate>Thu, 25 Mar 2010 00:00:00 GMT</pubDate></item><item><title><![CDATA[Embu Demonstration]]></title><description><![CDATA[<p>Upon returning from Ethiopia, I met up with Jodie and Daniel in Nairobi, Kenya to head to Embu (a city northwest of Nairobi) for a project demonstration. In Embu, we met with Mama Peter, the chairwoman of the Kenera Women’s Water Project, and some members of the town youth group. We came because we heard the community had maize ready for shelling and since dry maize is pretty scarce this time in Arusha, we were eager to get feedback on our sheller. After talking with the group about the Water Project and our maize sheller, we went to Mama Peter’s farm where a pile of maize drying in the sun awaited us. We assembled the machine with a few of the group members and began shelling the corn. Unfortunately, the maize wasn’t quite dry enough and we had a difficult time trying to shell it. Next, we demonstrated the cell phone charger but the group informed us that most of the villagers have access to electricity so the demand for a bicycle powered charger wouldn’t be as high.</p>
<p>Afterward, we showed the group how they could use the leftover corn husks and cobs to make charcoal in a metal drum. The process is relatively simple: you layer the cobs and husks inside the drum, light it on fire from the top and bottom, burn off the water, cover it, mix it with cassava, and press it to briquettes. The group was very impressed with the charcoal (more so than they were with the maize sheller) and interested in exploring the business opportunities our devices presented. We left a maize sheller with the group and they told us they would do more testing once the maize dried for a few more days.</p>
]]></description><link>https://www.reubano.xyz/blog/embu-demonstration</link><guid isPermaLink="true">https://www.reubano.xyz/blog/embu-demonstration</guid><dc:creator><![CDATA[Reuben Cummings]]></dc:creator><pubDate>Fri, 12 Mar 2010 00:00:00 GMT</pubDate></item></channel></rss>