Website Open Source

Open Source Software

  het wat, waarom en hoe. 

Veel van de software die de developers bij NIO gebruiken is open source software. In deze blog krijg je in een open source 101 antwoord op de vier grote vragen. Wat is open source software? Hoe & waarom gebruik je het? En hoe werken wij er bij NIO mee?

Jump on! Or take a seat and enjoy the ride :).

#1: Wat is open source software?

Software met het label ‘open source’ is simpel gezegd software waarvan de broncode voor iedereen gratis in te zien en te gebruiken is. Open source betekent ook dat het iedereen vrij staat deze software aan te passen naar eigen wens, of om nieuwe features toe te voegen en bugs op te lossen. Die aanpassingen kunnen kleine stukjes code zijn die bepaalde functies makkelijker maken, maar het kunnen ook volledige web frameworks zijn zoals Laravel of besturingssystemen zoals Ubuntu.

#2: Hoe gebruik je open source software?

Je kunt op verschillende manieren gebruikmaken van open source software. Je kunt natuurlijk gewoon de software gebruiken zonder dat je hier iets aan wil veranderen. Maar je kunt ook actief deelnemen aan het ontwikkelen van open source software. Vaak is er rond een open source project een hele community van ontwikkelaars die het project onderhouden. In die community kun je als ontwikkelaar ook jouw eigen bugfixes en nieuwe functionaliteiten aanbieden ter goedkeuring.

Voor de meeste flexibiliteit kun je ook een project ‘forken’ (= afsplitsen) en hier zelf verder aan ontwikkelen om het vervolgens onder een nieuwe naam uit te brengen. Het is de norm dat zulke forks op hun beurt zelf ook open source zijn, en dus gratis door anderen te gebruiken.

#3: Waarom open source?

Open source software wordt gratis en openbaar aangeboden, en komt in principe zonder garanties. Vaak is er ook geen technische support en is er niemand om een SLA (Service Level Agreement) mee af te sluiten e.d..

Waarom zou je dan toch als bedrijf voor open source software kiezen?
Het eerste voordeel is dat veel technische problemen al eens eerder door iemand zijn opgelost en dat veel van deze oplossingen zelf ook weer open source zijn. Zo hoef je niet telkens opnieuw het wiel uit te vinden als het om veelgebruikte zaken gaat, zoals database toegang, mails versturen en URLs vertalen naar routes. In zulke gevallen kun je dan bijvoorbeeld Symphony, Yii of Laravel gebruiken.

Een ander voordeel is dat er bij veelgebruikte open source software heel veel mensen mee hebben gekeken en bugs hebben gevonden én opgelost. Ook al zijn er geen zwart-op-wit garanties, als ergens veel gebruik van wordt gemaakt, kun je er op vertrouwen dat de code werkt.

Een derde voordeel is natuurlijk dat de software gratis is en dat er vaak wel door meerdere (soms wel honderden) ontwikkelaars actief aan gewerkt wordt.

#4: Hoe gebruikt NIO open source?

Bij NIO maken we websites met WordPress. Webapplicaties maken we met PHP frameworks zoals Yii2 en soms Laravel. Aan de voorkant gebruiken we veel Vue.js. Je kunt onze eigen open source projecten vinden op https://github.com/NIOLAB/.

Onze projecten zijn over het algemeen forks van Yii2-pakketten die we gebruikt hebben in onze projecten. We maken onze aanpassingen aan deze software dus ook weer voor iedereen beschikbaar. Wie weet zit er iets bij wat handig is voor anderen!

Een paar van onze open source projecten uitgelicht:

yii2-oauth2-server

Dit is een implementatie van een oauth2-server in Yii2*, geïnspireerd op andere open source pakketten, maar wel helemaal zelf gemaakt. Dat laatste is zodat we kunnen voldoen aan onze eigen wensen, en zodat we zelf goed inzicht krijgen in hoe oauth2 precies werkt.

* zie deze website

yii2-settings

Een fork van een Yii2-instellingenmodule, met daarin een door ons gebouwde ondersteuning voor null-velden en lege velden.

yii2-mailjet

Een module voor Yii2 waarmee we mail via MailJet kunnen versturen. We hebben dit geforkt om ondersteuning voor bijlagen in te bouwen.

yii2-mm

Nog een Yii2-module. Hiermee kun je een mediabibliotheek (zoals bijvoorbeeld WordPress heeft) gebruiken. We hebben deze module uitgebreid met meertaligheid en extra controles op bestandstypes tijdens het uploadproces.

superoffice-php-sdk

Een PHP library om te communiceren met het CRM-pakket SuperOffice. We hebben dit uitgebreid met meer ‘entity types’ en de mogelijkheid om van een alternatieve API-methode gebruik te maken.

Wil je meer weten over onze open source projecten, of heb je ze voor iets gaafs kunnen gebruiken? Laat het ons weten op (050) 36 46 881 of werner@niomail.nl.