Hello, my name is Ren Provey.
I am a full stack web software developer with a deep interest
in iOS, user experience and

App: Board Foot Calculator

Simply fill in the required fields of: Type (usually species of wood, eg. "Cherry"), Price (this is per foot), thickness in quarters (so a 2 inch thing board would be 8/4), length and width (you can leave these blank for 0). When you've entered all needed fields, you'll see a calculated cost and the Add to Cart button will turn blue.

Tapping the Add to cart button will add the board to your cart. Swiping from right to left on any board in your cart will allow you to remove it.

Signal Consumption

Three weeks ago I deleted my Facebook account. The decision was a well thought out whim. Facebook was a great way to quickly share photos of Eli with friends and family all over the globe, but it just began sucking my time other ways.

Around the same time I read a great article by Rands, in which he talks about two things that resonated strongly:

  • The Builder's High, and
  • Other people's moments

Particularly one section:

The fact that the frequency of these interesting moments appears to be ever-growing and increasingly easy to find does not change the fact that your attention is finite. Each one you experience, each one you consume, is a moment of your life that you’ve spent forever.

These are other people’s moments.

These moments can be important. They can connect us to others; they briefly inform us as to the state of the world; they often hint at an important idea without actually explaining it by teasing us with the impression of knowledge. But they are often interesting, empty intellectual calories. They are sweet, addictive, and easy to find in our exploding digital world, and their omnipresence in my life and the lives of those around me has me starting this year asking, "Why am I spending so much time consuming other people’s moments?"

For me, the answer to that final question is simple, I love and care about all these people. There is a whole rabbit hole to dive down here, but in short I asked myself, what is the best way to show that care? My answer to that didn't include dutifully following a Twitter stream.

Me, personally, I decided to trade the instant gratification of seeing other people's moments, for hearing about those moments in person. Even if that means it is only for an hour once a year. That is a personal preference, not an argument for how it should be for everyone.

The past few weeks, I'd forgotten I was no longer a user of Facebook, and armed with that knowledge, I've kicked off a massive stripping out of noise in my life. RSS, Facebook, Twitter, FourSquare, stacks of books to read, whatever. For every five whatevers-it-was, I now have one or none. Sure I am losing some signal, but when did it become important that we not miss a single signal?

In no way am I promising nirvana, but it is pretty awesome to pull out your iPad for the second time in an afternoon and realize that you have no feeds to read, no clashing clan to maintain, no tweets to ingest, in short "no catching up on X" consumption to be done. My internet firehose is more of a peaceful brook and my life has been gifted with a free 20 minutes.

For me, in the past 3 weeks I've run an extra 15 miles and I've startled more than one far flung geographically, but close to the heart friend who hasn't heard from me.

It's pretty great, I hope your 2014 finds you more free time and blank slates.

PS. I probably stopped following you on Twitter, you might do the same, I've realized I am not that interesting there.

CityBits Launch Postmortem

The CityBits launch went off with more success than I could have hoped (more on that in the CityBits Newsletter, if you're interested).

Known Risks

  1. With Google Reader being decommissioned at any moment and having a very tech savvy audience, I was concerned that in the transition a number of chances for folks to share or read about CityBits would be lost.
  2. My own availability would be low, so it was important to me that as much as possible be automated.

Tools & Process

I sent and measured two emails, the first at 7:30 am and the second at 4:30pm.

Each email identical was identical, except for the line before the signature ("may your morning latte be delicious" vs. "may your evening cocktail be delicious"). I choose MailChimp as my email service, based on a good API, strong analytics, and the ability to schedule emails.

I knew with a targeted list, the numbers would be higher (industry average is in the realm of 20% for opens and 2.5% for clicks) I hoped to double if not triple those numbers.

Morning email, 7:30am

Had an open rate of 64.6% and click rate of 30.5% (for those of you playing along at home MailChimp calculates the click percentage against total emails sent).

Evening email, 4:30pm

Had an open rate of 73.7% and click rate of 63.2%.

You can find a copy of the email we sent here.

One event that surprised me, was sharing (email forwards, Twitter, Facebook) was much higher for the morning email, despite the evening email having much stronger opens and clicks. Possible explanations:

  • Total fluke - I was tempted to rule it out this way, but after looking at the lists, the first had many more people I did not expect to engage. In short the second list had a greater number of heavy social media users.
  • My going theory - People start the day in creation mode, developers create code, writers create copy, designers create art. At the end of the day, people are winding down, tasks including email is being dealt with as efficiently as possible. Does that subtle shift in modes carry over to how someone processes email?

Sharing principally took place on Facebook and by email forwards. Which I am happy with, all my experience trends toward a Facebook share being more personal, while Twitter sharing acting as more of a broadcast.


At 7:30 when the first email went out, our two month old Eli and I were asleep in the bed, after having spent the early hours walking around the apartment. When the 8am tweets hit, we were just waking up. During the 4:30 email we were trying to do some good burping.

My advice is automate whatever you can - MailChimp and TweetDeck are great for scheduling emails and tweets. Most launches won't include a baby, but they will have a million other things going on.


I used Panic's Status Board, to track happenings on Twitter. I thought a status board would be a bit frivolous, but it allowed me to be intentional about checking news feeds and I could do it just walking by my iPad. Next time, I'll add in open info from MailChimp's API.

Take Aways

  1. My biggest regret was not having a larger email list. Tools like MailChimp make adding a static signup form to a website super simple. If you don't have a way for people to get notified when you launch, do it now.
  2. Automate, automate, automate. If you can put it on a timer, do it. By not having to worry about the mechanics, it lets you do be engaged to what is happening organically.
  3. Spend some time on your emails. Simple, direct asks and good copy seemed to work really well for CityBits.

CityBits Launch Ho! (& FAQ)

Who? I've been working on a small side project.

What? CityBits — a collection of 1000-word (or less) travel guides for your iPhone.

When? Now. You're already late to the party.

Where? The iTunes App Store, purveyor of many fine products.

Why? In a world that is increasingly homogenous, CityBits is a guide to what makes a place unique.

rbenv + Ruby 2.0, OS X

Is rbenv giving you an OpenSSL error trying to install Ruby 2.0.0 on OS X?

As a big fan of minimal invasiveness, I pieced together the simplest solution I could find:

brew install openssl
export CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl`"
rbenv install 2.0.0-p195

See: ruby-lang.org to make sure you're installing the current patch level.

A big thanks to this post [dlackty.org] for helping me avoid a mess of dated information and lib installs.

Sidekiq ProTip #1

Is Sidekig giving you: TypeError: can't dump anonymous class Class? aka the most helpful error message in the world?

It takes some digging, but here is the deal: Sidekiq's .delay method only works with Ruby 1.9.3. So if you're doing @user.delay.some_long_running_method, it'll fail unless you're on 1.9.3. See: Sidekiq Issue #84.

hstore You Just Might Enjoy Shopping There

At work, I've been lucky enough to be developing an entirely event driven application (more on that in the future). I knew it would be an interesting challenge, but I didn't realize how much I'd enjoy it.

Being a green field app, we're using a number of technologies and services that have me excited. While it took me a bit of diliberation to decide on, the piece that has really surpised me and expanded my architectural thinking is PostgreSQL's hstore. In hindsight the fact that hstore is allowing us the flexibility to prototype quickly, is less surprising than the fundamental shift in how I've started thinking about storing an retrieving data.

If you're interested in checking out hstore, I recommend the following stops:

The one bit that took me some time to find was about getting hstore running in my Rails test environment. Rails' default schema load doesn't enable the Postgres extension (as happens in rake db:test:prepare). To have hstore enabled you'll need to uncomment or add the following line in config/application.rb:

config.active_record.schema_format = :sql

This will change your schema dumps from Ruby to SQL. If you're unsure about the implications of this change, you can learn more in this Rails Guide.

New Haven Ho!

The cat is officially out of the bag. After a healthy amount of collective anguishing, Candice has accepted the position of Associate Chaplain at Yale University. We're dreading leaving Durham, excited to explore New Haven, and thrilled that Yale and Duke share similar color schemes.

To this end, if you know of great places to live in New Haven, interesting places to work, or people who enjoy eating pizza as much as I do – please let me know.

Cloud Coding

After reading Mark O'Connor's post about swapping his MacBook for an iPad+Linode, I decided to give the setup a whirl. For reasons that probably defy logic (what can I say, I'm a slave to fashion), I substituted Panic's Prompt for the recommended iSSH and have yet to feel any pain from the decision.

Mark covers a lot of the setup for a Linode server in his follow-up post. For now, I am just SSHing to my home machine via no-ip.com, and the only real fiddly bit that I needed to add was the following in my vimrc:

if has('gui_running')
  set background=light
  let g:solarized_termcolors=256
  set background=dark

The key thing here is to force solarized to use the let g:solarized_termcolors=256 even if vim is running in a terminal. Panic's Prompt by default will register itself as a 16 color terminal, to get 256 colors working (and the beautiful Solarized color scheme), I added export TERM=xterm-256color to the login script which can be configured in Prompt's individual machine settings.

We'll see how the setup works out, for now it is nice to just be traveling around with only an iPad.

IDEO HCD Toolkit: Deliver

While reading the HCD Toolkit, I've noticed that each section is roughly the same size. Don't get me wrong, each section has been a small wonder-world of information, but I couldn't help wonder if the Deliver section had been hardest of all to trim down. It covers a lot of ground and not a word was wasted. To summarize it would be to re-write it, but the pieces of the section which really resonated with me were:

  • Mini-Pilots & Pilots - These seek to allow understand and refine the solution, its context, and support system as well as possible. I especially liked the idea of mini-pilots that focused on a subset of the solution and/or allowed participants a deeper understanding by taking them out of their traditional roles.
  • On-going Learning & Iteration - This is something that I think is so often missed, or haphazardly bolted on at the end of a implementation. This involves revisiting stories from the Hear phase as well as collecting new ones while continually refining the solution. Page 97 of the IDEO Toolkit
  • Measuring Impact - The toolkit does a great job of diving in to indicators like leading and dynamic changes (both positive and negative), assessing outcomes, and strategies for measuring the impact of a solution in a holistic fashion.

As you can tell, I am a big fan of the upfront work and the continual learning presented. I think companies all too often equate a customer's final product with their final product. A great product doesn't end with ending up in the customer's hands. Putting a product in a customers hands is an opportunity to learn more about the product, evolve the product (see the product lines here), and recognize the new opportunities a strong product creates.

I'm scared. You're scared. We're all scared.

Listen to the whole thing, but know that (I felt) it was around the 15 minute mark Merlin hit stride. Given at Webstock 11.

IDEO HCD Toolkit: Create

While I can't do the toolkit justice in my notes, I fount the Create section to be a real gem. The goal of the Create phase is to synthesize the research of the Hear phase, identify opportunities, brainstorm solutions, and create prototypes with the purpose of eliciting feedback. Through the create process, don't focus on feasibility and viability, instead focus on desirability.

  • Story Sharing - These are stories collected from in the Research phase. When sharing, remember to be specific and be descriptive (use physical senses, cover who, what, why, when, where, and how). No judgement. Create post-it notes of key pieces of information.
  • Pattern Identification - Select the most surprising and provocative post-it notes, grouping them into related thoughts. Create a succinct "insight statements" for each post-it group which summarizes the take-away.
  • Find Themes - Sort the insight statement cards in to themes and evaluating each to make sure they are on the same level. Some themes may need to be generalized, while others may need to broken apart.
  • Create a Visual Framework - A framework is a visual representation of a system, often a framework will take one of the following structures:
    Page 70 of the IDEO Toolkit
  • Create opportunity areas - Ask the question "How might we..." (HMW) - Opportunity areas are not solutions, but questions to spur idea generation and the brainstorm of multiple solutions.
  • Brainstorm! - Brainstorming makes us think expansively and without constraints, so there are no bad ideas and wild ideas are encouraged. Build on ideas using AND rather than BUT. Go for quantity, 15-30 minutes per HMW. The practice of generating impractical solutions often sparks ideas that are relevant and reasonable. The toolkit provides a rough rule of thumb, that out of 100 ideas 3 may be truly useful.
  • Prototype - Make solutions tangible in a rapid and low-investment way. Prototypes are disposable, they should be built as roughly and as rapidly as possible.
  • Feedback - Feedback brings constituents directly back in to the design process. Presenting multiple prototypes/ideas allows people to easily give honest feedback via comparing and contrasting. For each prototype identify 3-4 questions you'd like to answer.

IDEO HCD Toolkit: Hear

As the toolkit is meant to, the Hear section is very focused on working with folks in under resourced areas of the world, but I found a few principles which are easily extended to a process working with a broader group. The goal of the Hear phase is to gain a strong understanding of an audience's needs, barriers, and constraints.

  • Engage in context - While this section is called Hear, context is the reoccuring theme. The way a person presents a narrative, can differ from actual observation, especially when a person is learning a new skill or process. So, hear with all five senses, and hear in the actual environment a person will be operating in.
  • Be qualitative - Seek a broad understanding. Work to understand a person's social, political, economic, and cultural oppertunities as well as barriers. Analyze the relational dynamics in a system (eg., people, places, objects, and institiutions).
  • Testing - This is the chance to validate assumptions and preconceptions, be very intentional about letting any through without verfiying them.
  • Framing - Challenges and statements should all be framed from constituents point of view.
  • Inspiration - Look for inspiration in new places, search for similar problems in different contexts. The concept seems so incredibly straight forward, but rarely to I take the time to intentionally think about parallels of a design problem. The toolkit gives the example of hospital staff visiting a hardware store to gain insight about organizing supplies.

The toolkit goes in to excellent detail on how to identifying a challenge, recognizing existing knowledge, research, interview, immerse, and document.

IDEO HCD Toolkit: Introduction

The toolkit was funded by the Bill & Melinda Gates Foundation, targeting organizations that work in Africa, Asia, and Latin America. I am not going to lie, while traveling to Asia would be wonderful, I am reading the toolkit hoping to draw out some more general lessons of the human centered design process.

The Three Lenses of Human Centered Design

The HCD process examines starts with the people being designed for, examining thier needs, dreams, and behaviors. The process steps through the following 'lenses':

  1. Desirability - What do people desire?
    eg. Rocket pants, space cars, unicorns, and sporks. To be desired something dosen't necessarily have to be feasible, which brings us to...
  2. Feasibility - What is technically and organizationally feasible?
    And now we have to cross rocket pants, space cars, and unicorns off the list, leaving us to examinine the viability of sporks.
  3. Viability - What can be financially viable?
    So, I am assuming the spork business is pretty competative and covered by many interenational patents and we're back to the drawing board.

In summation:

Page 6 of the IDEO Toolkit


960.gs Series

HTML5 Series

Jekyll Series

Git Series

Around the Web

Twitter: @renprovey
LinkedIn: Ren Provey
GitHub: ren
Work: CityBits, the guide to all the bits of your trip that you'll rave about to your friends.

Places worth visiting

David Eisinger