Press - March 31, 2016

Ona endorses the Principles for Digital Development

Ona is proud to endorse the Principles for Digital Development. While both improving our technology platform and consulting with partners, our team is guided the Principles on a daily basis. Technology affords new opportunities for governments, development and humanitarian organizations and communities to be increasingly data driven, collaborative and accountable. We believe the principles provide important

Read More

Resources - March 29, 2016

Updates to user permissions in ODK Collect

One of the major new features that we introduced with the release of our new platform last fall is the ability to assign role-based permissions to projects. This had been one of our most requested features from the previous Ona version, and we’re excited to support this now for all users on ona.io. Users can now create projects on Ona and add

Read More

Resources - February 26, 2016

Exporting data with labels

A few emails have come in requesting support for questions as headings in data exports. We have heeded your call and are glad to announce this is now possible. When exporting CSV, Excel and CSV Zip files, you can choose whether labels and/or names show up as column headers. Using XLSForm syntax, the label column contains the actual

Read More

Press - February 12, 2016

Writing Python Code to Decide an Election

The long awaited video from Ona’s keynote presentation at PyConZA 2014. A while back Ona was given three weeks to write the software that will tally votes in the Libyan elections and decide who wins and who loses. This is not something we could get wrong. We combined agile development with best practices in testing

Read More

Tech - February 07, 2016

Automating Style In Clojure

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

Read More

Tech - February 02, 2016

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. In our specific use case,

Read More

Resources - January 07, 2016

Making an Impact with Lean Data

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

Read More

Resources - December 26, 2015

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

Read More

Press - December 10, 2015

Map Your World and Ona at Geo for Good 2015

This past October I spoke on behalf of Map Your World at the 2015 Geo for Good User Summit. Map Your World empowers youth to explore issues and ideas that matter – like clean drinking water, or food justice – then write surveys, collect data, and create maps to make change in their communities. This amazing project is powered

Read More

Tech - December 04, 2015

Clojure Destructuring Gotcha!

Given the following function definition, what would you expect to happen if you ran (hello :person nil)? (defn hello [& {:keys [person] :or {person "Rich"}}] (str "Hello, " person)) (hello) => "Hello, Rich" (hello :person "Hickey") => "Hello, Hickey" (hello :person nil) => "Hello, " I’d have expected (hello :person nil) to have the same result as calling (hello),

Read More

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18