Thanks for Attending the Python Expose at the Python Nairobi Meetup
A special thanks to everyone who attended the Python Expose at the Python Nairobi Meetup. The 4 hour session that took place at Ona’s Nairobi office had presentations from Dickson Ukang’a, Co-founder and Director of Engineering at Ona, Vitalis Shisoka, Software Developer at Echo-Mobile and Edoardo Biraghi, Director of Software Development at BRCK. The speakers kept the crowd
Working with Data in the Unix Shell
I recently gave a talk at a data science meetup organized by the good people at iHub Research, on using Unix shell tools to work with data. It was primarily a hands-on workshop, but the slides I prepared may be useful to those who couldn’t make it. You can find the presentation embedded below.
OpenSRP Nairobi technology sprint, take two!
In mid-March, Ona hosted the second OpenSRP engineering sprint, bringing engineers from around the world to Ona’s Nairobi office. Engineering partners from SID (Indonesia), mPower (Bangladesh), IHS (Pakistan), OpenMRS, ThoughtWorks and Jembi (South Africa) joined the sprint to enhance the user experience and performance of OpenSRP, an mHealth platform that empowers frontline health workers in developing countries to deliver more effective healthcare. Ona is the technology lead
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
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,
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),
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
Introducing three open source libraries for working with Ona and data
We are proud to announce preview releases for three Clojure/ClojureScript open source software libraries: Hatti, Milia, and Zebra Lite. We are actively working on and improving these libraries for use in our own software and by others. In alphabetical order the contributors to these libraries are geoffreymuchai, pld, prabhasp, royrutto, ukanga, and wilo99. We will followup on this post with additional tutorials and introductions
Making Ona reliable and resilient
Last year, we experienced a few small periods of downtime. We made changes to bring this up to 99.8% API uptime in 2015. However, the remaining 0.2% bothered our engineering team, so after additional work, we recently hit a rewarding milestone: 30+ days of 100% uptime on our API and front-end site! The first big