Writing Python Code to Decide an Election


The long awaited video from Ona’s keynote presentation at PyConZA 2014.

 Continue reading Writing Python Code to Decide an Election...

Automating Style In Clojure


project settings snippet

We do everything we can to improve code quality. Our process includes rigorous code reviews focused on getting the correct level of abstraction, modularity, and reusability. We quickly realized that nitpicking code format and line length was distracting us from our goals. It isn’t that those aspects aren’t important, but that they should be standardized so we can spend our time on more interesting questions and problems.

To keep ourselves focused on the meaningful aspects of the code, we run a suite of automated analysis tools in our CI. This gives us a higher level of consistency and predictability before a branch gets to code review.

 Continue reading Automating Style In Clojure...

Squashing Commits with an Interactive Git Rebase



There are plenty of reasons to get familiar with and start using git’s interactive rebase. You might want to edit a commit message, delete commits, reorder commits, or edit commits.

Here we will talk about using it to “squash” (as in combine, merge, or meld) multiple commits into a single commit.

 Continue reading Squashing Commits with an Interactive Git Rebase...

Making an Impact with Lean Data


Ona Collect

Lean data, or applying lean processes to data collection and use, is an important tool for creating impact in global development programs. It was created as a response costly traditional M&E (monitoring and evaluation) practices that aren’t about the end consumer or user and only applicable to large-scale programs. The core tenet of lean data is focusing on a bite-sized goal and using customer impact data to drive your decision-making towards that goal.

 Continue reading Making an Impact with Lean Data...

Give your questions the colors they deserve



We’ve just added a small but powerful new feature that gives you more control on how you visualize data on your map.

One of the challenges with our maps to date is you could not specify the colors for specific responses to data. Since colors are randomly assigned, it’s very possible to have true show up as red and false as green on a map. Confusing, we know!

To address this, we’ve made it possible to assign colors to specific categories (options) on the choices sheet in XLSForms.

Why do this in XLSForms? We will consider a UI approach in the future. However, we have seen firsthand how XLSForms have helped organizations standardize the way they author forms to collect data. By expanding XLSforms to support basic visualization logic - we can help ensure the data is interpreted in the way the author for the form intended.

How does it work?

color options

Right now you simply add the colors you want in the “appearance” column. To allow us to support modification of other visualization properties in the future, we use a format similar to CSS, a language typically used to style web pages. You can, therefore, specify a color in the appearance column as, for instance, color: red.

Note: You can use any standard web color, such as red, yellow, green or orange. You can also use hex codes, which gives you a wider selection to choose from. The website clrs.cc provides a nice palette of hex alternatives to the default colors that you can choose from.

The example form used in this demo can be found here.

Happy mapping!