The City of Amsterdam has a website dedicated to open source software methods, on how to create healthy code, contribute, use and reuse the repositories.
Open Panorama is one of ten projects featured on the City of Amsterdam’s website of open source software.
Open Panorama is 'An end to end solution for processing, normalisation, anonymisation and serving 360° street view panoramas. From raw files to API', as stated on the project page. The project is based on requirements from the City of Amsterdam, which include principles to create a healthy code and facilitate reuse.
Open Panorama is an ongoing project, active for the last 4 years. The project imports images to a map projection and makes those accessible via a two-layer API. It imports raw files, normalises them to fit into the existing maps, blurs sensitive data, makes them into tiles, and serves them to APIs. Through a JavaScript, other actors can integrate the street views into their websites.
Open Panorama has an MPL 2.0 licence similar to the standard settings for Amsterdam’s open source projects. The city is both a user and a contributor to open source software projects. This allows for collaboration in a time which the city states, is full of problems too large to solve on its own. Amsterdam gathers data in the Gemeente Amsterdam database and provides an overview of its projects for solving challenges as a Smart City.
Healthy code for humans
The City of Amsterdam aims to create reusable code, foster collaboration, and local adaption. Its online guide sets requirements for use, development, and contribution.
Amsterdam also has a guide on coding for humans, in which they write that this is just as important (if not more) as it is to make the code readable for machines. Code is more often read by humans than by machines. One principle is to accept that the human brain on average can hold seven things in the short-term memory at a time and functions therefore should not contain more than seven variables.
The health and reusability of the projects is listed in five scales:
- Custom, opaque: Specific and not easy to learn from, might lack documentation or non-English code.
- Custom, reference: Specific to local case and can be used to learn from.
- Adaptable. Well documented and possible to adapt.
- Reusable, configured. Easily reconfigurable but case specific.
- Reusable. Fully (externally) configurable and useful for anyone.
Open Panorama is on the third step, meaning that it is adaptable (documented and possible to adapt).