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
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,
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
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
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
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),
Ona Data Projects
This post will tell you everything you need to know about creating, sharing, managing, and getting the most out of your projects in Ona. What is a project? In Ona, a project is where your related forms and data are stored. Projects can hold as many forms and data as your plan allows. When you first log in to
Announcing Ona Data 2
We launched Ona 2 today! In our previous announcements here, here, and on our release log, we described the new features in Ona 2. There’s also a Getting Started guide that will show you, well, how to get started, and what has changed from the previous version of Ona. If you have questions on the transition, please email support@ona.io. To celebrate the launch,
Nairobi Functional Programming Meetup 3
On Wednesday, we had the pleasure of hosting the third Nairobi Functional Programming Meetup, with Larry Weya giving a brief introduction to Erlang & Elixir, and sharing his experience using the platform as part of the team behind eCitizen. In what is emerging as a pattern, the post-talk conversations were as illuminating as the talk itself. We’re planning a hands-on workshop for
My Two Month Internship at Ona Kenya
by Anne The Application Process My journey towards working with Ona was a systematic. It began with wise counsel from a former lecturer. His advice was quite simple: “If you trust your programming skills, you can apply for the jobs at Ona. Female candidates are encouraged to apply”. It was both thrilling and unnerving considering the