Nōtifs: Now Open Source!
I have been doing quite a bit of work and a few presentations on Nōtifs lately, and have gotten my prototype code to the point where I am comfortable publishing it on GitHub. There are three relevant repositories:
- notif-agent: Nōtif acceptance and alerting functions
- notif-mgmt: User management functions for agent
- notif-notifier: Library for generating nōtifs and demo notifier
Notif-agent is written in Go, largely for performance reasons although I expect to be making use of Go’s “goroutine” concurrency capabilities in the near future. The code in the other repositories is written in Python; notif-mgmt uses the Django web framework.
Getting a Nōtifs agent running for testing using this code isn’t for beginners, but it’s not a huge task. The biggest issue is that Nōtifs lend themselves to the use of a schemaless (non-relational) database, for which I use MongoDB. Unfortunately non-relational databases aren’t supported by the official Django distribution, but there is a fork with MongoDB support.
Writing a prototype like this of course gives me a way to show people what Nōtifs are, which has resulted in a lot of valuable feedback. It also forces me to think more thoroughly about the ways things fit together. It also forces a certain amount of discipline about resolving some of the details.
One of the main areas of feedback has been that it will be challenging to get users and notifiers to start using Nōtifs. As with many communication protocols (and identity management technologies, too), there is a “chicken and egg” effect: Potential users (notifyees) will only want to invest in getting started with Nōtifs when there is a reasonable number of notifiers, and potential notifiers will only be interested when there is a reasonable number of people they can reach through Nōtifs. My approach to this is to provide users with the ability to convert other methods of notification into nōtifs. I’ll be starting with Twitter and RSS feeds.