Wat mag ik met snippets van Stack Overflow?

Een lezer vroeg me:

Zoals vele ontwikkelaars neus ik vaak op Stack Overflow naar oplossingen voor mijn programmeerproblemen. Ik zie dan vaak broncode die de oplossing implementeert, maar ik weet dat ik die niet zomaar mag copypasten in verband met licentieproblemen. Maar wat mag ik dan wel?

Stackoverflow is de bekendste site voor programmeurs om met elkaar tips, ideeën en oplossingen te delen. Meestal gebeurt dat in de vorm van programmeercode (broncode) omdat dat nu eenmaal de meest exacte en directe manier is om aan te geven hoe je in software een bepaald probleem aanpakt. Die oplossingen zijn vaak relatief kort en worden dan ook wel snippets genoemd.

Op software rust auteursrecht. Je mag dus iemands software niet overnemen, ook niet als hij de broncode publiceert of die broncode ergens neerzet waar het de bedoeling is om erover te praten en er naar te kijken. Alleen als er een licentie bij staat, kun je de software gebruiken – binnen de grenzen van de licentie. Helaas zetten maar weinig SO gebruikers expliciet een licentie bij hun snippets.

Bij snippets kun je dan weer wel je afvragen óf er auteursrecht op rust. Er moet wel iets van creativiteit in het werk zitten. Dat kan bij een kort werk, maar zeker bij software is dat geen automatisme. Een snippet die laat zien hoe een API aangeroepen moet worden, zou ik niet creatief noemen. Dat is alleen “kijk hier moet de sessiesleutel, hier zet je parameters zoals kleur en gewicht en dan krijg je een array terug met de actuele voorraad”. Zo’n snippet heeft geen auteursrecht en daarmee mag je natuurlijk doen wat je wil.

Helaas is zodra je boven dergelijke trivialiteiten gaat het al snel onduidelijk. Er zijn geen juridische vuistregels zoals dat tot tien regels code vrij van rechten zijn. Zo werkt auteursrecht gewoon niet. Je moet dan inhoudelijk je afvragen of dit iets creatiefs is of ‘gewoon’ zoals je het zou doen. Dertig regels code met hoe een quicksort werkt zou ik niet creatief noemen (dat is nu eenmaal grofweg een standaard algoritme) maar 5 regels om snel een matrix te scannen is vaak juist héél creatief.

Wat natuurlijk wel altijd mag, is het idéé dat men je communiceert met zo’n snippet overnemen en in eigen code verwerken. Ideeën, principes en algoritmes vallen buiten het auteursrecht en mogen dus vrij worden gebruikt. Dat doe je dan dus door eerst in eigen woorden (of pseudocode) op te schrijven wat er onder die geposte broncode zit, en daarna dat in echte code uit te werken in je eigen applicatie.

Arnoud

Mag je een meta-plaatje kopiëren?

Een lezer vroeg me:

Steeds meer sites maken gebruik van het Open Graph-protocol van Facebook. Hiermee geef je met metadata aan wat je titel, snippet en belangrijkste afbeelding is, zodat Facebook er een mooie preview van kan maken. Daar kan ook een plaatje in dus, maar wat heeft dat voor auteursrechtelijke consequenties?

Op zich is de gebruikte manier van metadata noteren niet heel relevant. Onder de Auteurswet is er maar één belangrijke vraag, wordt de afbeelding gekopieerd door de partij die de preview toont, of embedt hij de afbeelding? Embedden is legaal, en kopiëren vereist toestemming. Van de fotograaf (rechthebbende) wel te verstaan, en de site die de afbeelding publiceert heeft lang niet altijd de bevoegdheid om die toestemming te geven.

Het gebruik van een verkleinde afbeelding in een preview kan legaal zijn als citaat. Je zegt dan in feite, ik wil aankondigen wat er op deze pagina te vinden is en ik doe dat met handig aangereikte informatie in plaats van zelf te gokken wat belangrijk is. Zo’n aankondiging valt onder het citaatrecht en vereist dan geen toestemming.

Lang niet alle fotografen zien het op deze manier. Een aankondiging van wat er op een webpagina staat, is nog geen citaat van de foto die er bij staat, is dan het argument. Daarom raad ik altijd aan om dat plaatje te embedden in plaats van over te nemen. (Een bijkomend voordeel is dat het plaatje dan niet in je media-bibliotheek terecht komt en ineens bij andere berichten gebruikt wordt, wat écht tot claims kan leiden.)

Ik denk dat een aankondiging met een kleine thumbnail van de bronsite wel legaal is. Het standaardvoorbeeld van een beeldcitaat is het tonen van de cover van een boek bij de bespreking van dat boek. De cover is inhoudelijk niet erg relevant voor de inhoud, maar helpt wel bij herkenning en beslissen of je geïnteresseerd bent. Dat is dan legaal. Maar de thumbnail mag niet de overhand krijgen ten opzichte van de tekst, dan is sprake van versiering en dat is geen citaat meer.

Algemeen zou dus het advies altijd zijn, embedden of linken in plaats van overnemen. Moet je nou perse overnemen (en ik zou niet weten waarom), zorg er dan voor dat je alleen een zo klein mogelijke thumbnail toont en dat je die niet later ook voor andere doelen zou kunnen gebruiken.

Arnoud

Mag je code snippets zomaar gebruiken in je software?

Een lezer vroeg me:

Ik werk als softwareontwikkelaar bij een groot bedrijf. Nu kan ik wel steeds opnieuw het wiel gaan uitvinden, maar op allerlei sites staan snippets, kleine stukjes code die handige functies bieden die vaak precies zijn wat ik nodig heb. Mag ik die gebruiken?

Er zijn inderdaad vele vele sites die oplossingen voor concrete probleempjes of handige trucjes om iets te bereiken aanbieden. Zulke ‘snippets’ code zijn vrijwel meteen te kopieplakken in je eigen code, maar of dat juridisch mag, is niet eenvoudig te zeggen.

De eerste vraag is altijd of er auteursrecht op een snippet zit. Dat is geen automatisme. Ook kleine werken kunnen beschermd zijn, zo weten we uit het Infopaq-arrest. Elf woorden overnemen telde in die zaak als inbreuk. Wel moet de combinatie van die woorden creatief zijn, zo zal een lijstje met elf hoofdsteden niet beschermd zijn.

Bij software is het lastiger te zeggen of iets beschermd is. Software bevat namelijk altijd een stevig stuk functionaliteit, sterker nog het ís primair functionaliteit en pas secundair creativiteit. En zeker bij kleine stukjes code heb je maar bar weinig ruimte om creativiteit te uiten. Zo veel manieren om met een SQL database te connecten of een quicksort te doen zijn er simpelweg niet. Een vuistregel (uit het Amerikaans recht maar werkt bij ons ook wel denk ik) is dat als twee programmeurs dezelfde code zouden maken gegeven het probleem, de code niet beschermd is.

Als een snippet lang en creatief genoeg is, dan is deze beschermd en mag je deze niet overnemen zonder toestemming. Sommige snippetsites erkennen dit en vermelden een standaardlicentie voor alle snippets die je daar kunt vinden. Maar andere laten het aan de auteur over, en dan moet je maar hopen dat die er “Do whatever you want” bij heeft gezet, of iets dergelijks. Staat er niets bij, dan moet je het navragen bij de auteur.

Natuurlijk, je kunt je afvragen of een auteur van tien regels code jou een factuur gaat sturen als je die code overneemt. Als hij er al achterkomt natuurlijk dat die code in jouw product zit. Maar formeel heb jij het probleem als blijkt dat je code gebruikt zonder licentie.

Oh, en vergeet niet te documenteren welke licentie erbij stond toen je de snippet overnam. Als die licentie een paar jaar later verandert, dan zit jij met een bewijsprobleem – erg lastig als de nieuwe licentie ineens jouw vorm van gebruik verbiedt.

Arnoud