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 project collaborators who have separate Ona accounts. You can add as many collaborators as you need, and each collaborator can access the project and the forms using their own account login and permissions. To learn more about managing projects, visit our help site and you can also read more from this blog post.

This greatly improves account security, as there is no longer a need to share your login information with everyone who needs access to your project. You can also control who can submit data to your project and who can view and access your data.

 Continue reading Updates to user permissions in ODK Collect...

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 text of the question you see in the form. The name column in the survey worksheet defines the unique variable name for the question.

Exporting data with labels is helpful when using statistical software for advanced data analysis, because it minimizes the work of replacing your variable names with labels. Also, if your variable names are not descriptive enough or are codified, having labels as column headers means you will no longer have to refer to the XLSForm to reference questions.

 Continue reading Exporting data with labels...

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...