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
Open Street Map as a global "check-in" service
Getting more out of Open Street Maps? At Ona, we’ve always been big fans Open Street Maps (OSM). What’s always bugged me is I felt (like many groups), we’ve failed to fully understand and leverage the incredible wealth of data that OSM represents. Sure, our basemaps are powered with OSM data. And yes, we encourage partners
Ona at the Nairobi Functional Programming Meetup
Okal Otieno and Roy Rutto from Ona were the featured presenters at the inaugural Nairobi Functional Programming meetup. The meetup was conceived by Okal and Roy to “discuss the core concepts of functional programming, why use it, and experiences using it.” The iHub UX Lab graciously hosted. Okal started off by explaining how functional thinking can
Pallet Multiuser Configuration
The last time we talked about Pallet we described using a pallet.clj file in concert with Leiningen to bring up remote servers, configure web applications, and deploy new version of web applications. We glossed over the details required for sharing deploys amongst a group of developers, i.e. allowing multiple developers to deploy to the same web server. These details were obviously
Automated Infrastructure with Pallet and Clojure
At Ona we are rebuilding our data management platform. We are starting with a light weight front-end that will serve up content pulled from the REST API of our current application. We are aiming to have the back-end in Clojure, the front-end in ClojureScript, and the infrastructure in Clojure using Pallet. We are excited to have a single (and
Nairobi Python - Litte known and/or useful Python features for fun & profit
Today Larry Weya gave a presentation at the Python Nairobi Meetup titled Little known and/or useful Python features for fun & profit. The slides are below: