• Menu

0 recente resultaten

Het doel van dit softwareprotocol is ontwikkelaars duidelijk maken wat onze verwachtingen met betrekking tot software zijn.

Vrije software

We gebruiken zoveel mogelijk vrije softwareLees meer over wat er onder 'vrije' software wordt beschouwd en de software die we maken is ook vrij. Alle software die we ontwikkelen moet worden uitgebracht onder een GPL-compatibele licentie. Op die manier krijgt iedereen het recht om de software aan te passen en die software ook weer met anderen te delen. Als je dus een stukje software voor ons schrijft, moet je dat onder een licentie uitbrengen die ons in staat stelt om het onder een GPL-compatibele licentie te delen. Zie hier een overzicht van dit soort licentiesEen overzicht van de GPL-licenties.

Privacy

De software moet zo min mogelijk gegevens van de gebruiker verwerken om schade bij een eventueel datalek te verkleinen. Bovendien mag de software nooit gegevens naar een derde partij versturen. Indien de software persoonsgegevens verwerkt, moeten de gegevens altijd behandeld worden volgens de Wet bescherming persoonsgegevens, zijn we daar transparant over en houden we precies bij wat we verzamelen. Ook gooien we de gegevens zo snel mogelijk weer weg.

Analytics

Het liefst verzamelen we zo min mogelijk, maar als het voor een project belangrijk is om analytics te gebruiken, dan gebruiken we daarvoor een eigen installatie van het open source analyticspakket MatomoMaak kennis met Matomo. Dit is de enige bij ons bekende analyticssoftware die voldoet aan onze privacystandaard.

Elementen van derde partij(en)

Om tracking te voorkomen en de beveiliging te verhogen mag de software geen elementen van websites van derde partijen inladen, zoals afbeeldingen, scripts, social media sharing buttons, of complete pagina’s via iframes. Bijvoorbeeld: als je fonts wilt gebruiken, hosten we deze op onze eigen server in plaats van ze dynamisch in te laden van bijvoorbeeld Google Fonts. Hetzelfde geldt voor libraries zoals jQuery of Bootstrap. We embedden geen video’s van externe sites zoals YouTube, maar gebruiken onze eigen servers.

Specifieke eisen aan de broncode

Ons streven is om software zo te bouwen, dat we die goed kunnen onderhouden, makkelijk kunnen hergebruiken en goed met andere geïnteresseerden kunnen delen. Dat betekent:

  • We slaan de code van projecten die zich daarvoor lenen op in onze GitLab-serverOnze GitLab-server. Op die manier zorgen we dat ontwikkelaars snel een overzicht kunnen krijgen van de verschillende versies en de wijzigingen daarin.
  • We schrijven de code bij voorkeur in Python en Django, tenzij het noodzakelijk is om het in PHP te schrijven. Onze website is gebaseerd op WordPress. Als code moet worden geïntegreerd met WordPress is het handig om dat in PHP te schrijven.
  • We programmeren in Python volgens de PEP-8 standaardOver de PEP-8-standaard. Voor PHP-code passen we de standaard van WordPressWordPress PHP Coding Standards toe.
  • We documenteren de code goed. Op die manier zorgen we dat andere ontwikkelaars makkelijk verder kunnen bouwen op onze software.
  • We programmeren en documenteren in het Engels. Door Engelstalige functies en variabelen te gebruiken en door de code in het Engels te documenteren, kunnen we zorgen dat organisaties in andere landen die de software verder willen ontwikkelen, makkelijker met ons project aan de slag kunnen gaan.
  • We houden rekening met een front- en backend in verschillende talen. Om te zorgen dat de front- en backend makkelijk te vertalen zijn, schrijven we de code vanaf het begin met “internationalisatie” in het achterhoofd. Dat betekent dat de standaardtaal voor content in projecten Engels is, en dat we die taal vervolgens vertalen naar het Nederlands.
  • We gebruiken package managers zoals YarnYarn voor het installeren en updaten van JavaScript libraries. Hierdoor kunnen we snel updaten in het geval er een kwetsbaarheid in een gebruikte library wordt gevonden.
  • We schrijven webapplicaties met een stricte Content Security PolicyMozilla over CSP in het achterhoofd. De CSP die we voor nieuwe projecten gebruiken is "default-src 'self'". Hierdoor moeten alle assets vanaf dezelfde origin worden geladen. Het gebruik van onveilige inline CSS en JavaScript is ook niet toegestaan. Indien nodig wordt er een uitzondering gemaakt voor Matomo (https://stats.bof.nl).

Security audit

Vóór het in productie nemen van software laten we iemand die niet direct bij het project betrokken is een security audit doen.

Help mee en support ons

Door mijn bijdrage ondersteun ik Bits of Freedom, dat kan maandelijks of eenmalig.

Ik geef graag per maand

Ik geef graag een eenmalig bedrag