Dengang jeg ikke blev stævnet af Ønskeskyen

Prolog

Alt, hvad jeg skriver her, skriver jeg som privatperson.

Kapitel 1: Opkaldet

For lidt over et år siden, hen mod slutningen af januar 2023, får min chef i Datatilsynet, hvor jeg arbejder som dataspecialist, et overraskende opkald. I telefonen er en advokat fra Mazanti-Andersen med titel af partner, som siger, han repræsenterer Ønskeskyen. Han vil gerne tale med min chef. Om mig.

Nogle dage før min chef tager telefonen, offentliggjorde jeg indlægget 2-0 til wishlist.dk i kampen mod Ønskeskyen på min blog. Indlægget er humoristisk. Når jeg omtaler ukommercielle wishlist.dk som en konkurrent til ønskeskyen.dk, er det faktisk ikke noget, jeg mener alvorligt. Jeg håber og tror, at den gennemsnitlige læser vil forstå indlægget på samme måde, som det var tænkt, nemlig som en satire over iværksætterlingo krydret med en fortælling om en teknisk udfordring, jeg havde fundet en løsning på.

Iværksætterbullshit og et totalt intetsigende diagram, som jeg ikke forestillede mig, at nogen ville tage alvorligt, (hvilket der også indtil videre kun har været én, der gjorde.)

Min ambition med wishlist.dk, var (og er) at udvikle en brugbar ønskeseddelservice, ligesom mange andre før mig. Jeg var stolt af resultatet, så jeg stillede siden til rådighed for den forsvindende lille del af verdens befolkning, der både kan dansk og kan finde min side blandt de mange lignende sider. Siden har ingen forretningsmodel, ingen vækststrategi, ingen ansatte, ingen værdisætning, nul exitplan, nul indtjening. Kun beskedne udgifter: et domænenavn og en smule server. Et con amore-projekt.

Ønskeskyen har 46 ansatte (november 2023), og er et kommercielt foretagende, som er ejet af ambitiøst- og valutaklingende Dotcom Capital ApS, som igen har ejere i fine byer som fx Marbella og Køge. Det er den type virksomhed, mine børn ser reklamer for i sekunderne før dagens afsnit af Valdes Jul på TV2. Ønskeskyen ønsker sig at blive DEN STØRSTE ØNSKESEDDELSERVICE I VERDEN. Den præcise forretningsmodel kender jeg ikke, men jeg tror, at det er noget med, at Ønskeskyen får en del af kagen, når din mor køber den Airfryer, du ønsker dig, fra en virksomhed, Ønskeskyen samarbejder med. Der er åbenbart mange, der ønsker sig en Airfryer.

Ønskeskyens advokat har (med stor sikkerhed) fundet ud af, at jeg arbejder i Datatilsynet ved at læse mit CV, for jeg har ikke skrevet om det andre steder. Jeg vil gerne have, at det, jeg ytrer som privatperson på min blog, Twitter, Aula, etc., ikke misforstås som min arbejdsplads’ holdninger, og derfor er mit arbejde ikke noget, jeg går og skilter med. Hvad jeg skriver på min blog som privatperson, har intet med min arbejdsplads at gøre.

Som min chef opfatter samtalen, er advokaten på Ønskeskyens vegne blevet betænkelig ved, at en medarbejder i Datatilsynet, som er tilsynsmyndighed for Ønskeskyens behandling af persondata, udtaler de ting om Ønskeskyen, som Ønskeskyen opfatter, at jeg skriver i mit blogindlæg.

Min chef betrygger advokaten ved at oplyse, at jeg ikke sidder med sagsbehandling. Det er ikke nogen nyhed, hvis man allerede har brugt tid på at finde og læse mit CV.

Derudover forstår min chef på advokaten, at Ønskeskyen har tænkt sig at stævne mig for noget i retning af “overtrædelse af markedsføringsloven” og “injurier” på baggrund af blogindlægget. Det er oplysninger, som slet ikke kommer min chef ved.

Kapitel 2: Chefens kontor

Da jeg bliver kaldt ind på min chefs kontor og hører om opkaldet, bliver jeg – for at sige det mildt – overrasket.

Jeg havde nemlig ikke selv hørt noget fra Ønskeskyen om mit blogindlæg. Min chef fortæller mig, at en virksomhed, jeg har skrevet om, er så utilfredse med det, jeg har skrevet, at de bruger dyre advokattimer på at reagere ved at kontakte min arbejdsplads, og at de oven i købet har tænkt sig at stævne mig.

Kontakt via wishlist.dk. To klik.
Kontakt via helmstedt.dk. To klik.

Det havde været både nemt og billigt at kontakte mig direkte. I stedet valgte advokaten at bruge af Ønskeskyens og skatteborgernes penge på først at finde frem til min arbejdsplads og min chef, og dernæst at ringe til hende. Jeg er helt sikker på, at hun kunne have brugt sin og min arbejdstid på noget mere nyttigt.

Min arbejdsplads er et fornuftigt sted, men alligevel har jeg det dårligt med, at den er blevet involveret i noget, jeg går og pusler med som privat-Morten. Jeg er ikke sådan rigtigt bange for konsekvenser på arbejdet, men i januar 2023 er jeg forholdsvis nyansat og væsentligt mere optaget af at løse problemer end at være årsag til dem.

På arbejdet sker der ikke mere. Henvendelsen bliver, som DJØF’ere kalder det, “taget til efterretning”. Det betyder, at den arkiveres, og at der formentlig aldrig er nogen, der vender tilbage til den.

Kapitel 3: Hjemme igen

“Stævnet”, “markedsføringsloven” og “injurier” er ikke mine favoritord (jeg kan bedre lide ord som “negroni” og “gedefeta”). Som privat-Morten er jeg på en og samme tid både meget principfast og ret konfliktsky, så lad os bare sige, at mine følelser er blandede. Jeg går i gang med at prøve at omsætte følelser til handling:

Næste dag får jeg kontaktet min forsikring for at høre, om min retshjælp dækker den slags. Jeg ringer til nogle hjælpsomme og empatiske advokater hos Bird & Bird, som har ry for at have forstand på teknologi. De flinke advokater beroliger mig (helt uden at fakturere) og anbefaler:

  • At vise mig samarbejdsvillig
  • At slå koldt vand i blodet, indtil jeg rent faktisk modtager noget på skrift fra Mazanti-Andersen og Ønskeskyen, hvorefter de gerne (mod betaling, forstår jeg), vil hjælpe mig så godt de kan

Jeg forsøger at ringe til advokaten fra Mazanti-Andersen et par gange, men han tager ikke telefonen. Jeg sender en e-mail og forsøger at udvise samarbejdsvillighed:

Jeg forsøger at gøre det endnu nemmere for advokaten at få fat i mig.

Jeg snakker med venner, familie og mine kolleger (i frokostpausen) om sagen. De udviser forståelse for min situation. Vi griner af det absurde og bizarre ved det. Det hjælper.

Epilog

Jeg hører aldrig tilbage fra advokaten. Der kommer ikke nogen stævning i postkassen. Tiden går.

Det, som Ønskeskyens advokat opnåede ved at involvere min arbejdsplads i, at virksomheden var utilfredse med noget, jeg havde skrevet som privatperson, var at intimidere mig ved kynisk at bruge det middel, der gav mig allermindst lyst til igen at ytre mig om Ønskeskyen. Det virkede, for der er gået over et år, til jeg har taget mig sammen til at fortælle historien, selv om jeg var så fortørnet over fremgangsmåden, at jeg havde lyst til at gøre det med det samme. I året, der er gået, har jeg ytret mig meget lidt om wishlist.dk og slet ikke om Ønskeskyen.

P.S.

For nogle måneder siden var der en der skrev noget vredt i /r/Denmark på Reddit (et sarkastisk diskussions- og selvhjælpsforum for yngre, liberale mænd) om, at Ønskeskyen ændrede på gavelinks.

En anden anbefalede wishlist.dk, og en tredje skrev, at mit 2-0 til wishlist.dk i kampen mod techgiganten Ønskeskyen” indlæg er ret morsomt”.

Jeg blev, af hvad jeg tror er forskellige, rigtige mennesker, kaldt:

  • Absolut madlad
  • Kæmpe chef
  • Ok Cool fyr

Jeg fik at vide, at jeg:

  • lyder alt for nice! Gode projekter han har! 10/10 ville købe øl til ham i byen!
  • virker som en super fyr. Hans projekt med at skaffe danske domæner har skaffet mig god værdi.
(Muligvis) forskellige (muligvis) mennesker på Reddit, der synes jeg gør en positiv forskel for menneskeheden.

Jeg blev endda kontaktet af en journalist, der havde læst Reddit-tråden, og som overvejede at nævne mine internetprojekter i en podcast.

Det føltes som en anerkendelse af, at mine hjemmesider og kode, som jeg stiller gratis til rådighed, er nyttige for andre. Det var meget livsbekræftende for mig at blive omtalt på den måde.

Hver eneste gang, jeg bliver kontaktet af forskellige privatpersoner, der har gode idéer til mine websider, eller problemer/projekter, som de håber jeg kan hjælpe dem med, bliver jeg glad. Jeg ønsker mig et internet, hvor vi hjælper hinanden.

Tak for hjælpen.

2-0 til wishlist.dk i kampen mod techgiganten Ønskeskyen

På min ukommercielle, overvågnings- og loginfrie ønskeseddelservice wishlist.dk, tilbyder jeg brugere at importere deres ønskesedler direkte fra min største konkurrent, techgiganten Ønskeskyen.

Et lille bitte udsnit af vejen fra at klikke på et link til en såkaldt “Airfryer” hos Ønskeskyen og komme hen hos Elgiganten og kunne købe den… GDPR much?

Med wishlist.dks gigantiske scale-up-unicorn-succes-vækst vidste jeg, at det kun var et spørgsmål om tid, før Ønskeskyen ville begynde at bruge ufine metoder for at hindre den frie konkurrence (og brugernes ret til dataportabilitet):

Et let aflæseligt diagram over den eksplosive udvikling i brugere på wishlist.dk over tid.

Pludselig holdt min import-funktion op med at virke!

For et par dage siden holdt min import-funktion fra Ønskeskyen op med at virke.

Jeg undersøgte straks min kode og fyrede op for mit lokale testmiljø på min hjemmecomputer. Måske havde Ønskeskyen ændret på sit interne API, eller også havde jeg bare skrevet noget dårligt kode?

Alt fungerede præcis som det skulle i testmiljøet.

Så forsøgte jeg at sende en forespørgsel til ønskeskyen.dk fra min ydmyge start-up-webserver, der er placeret i Tyskland et sted. Forbindelsen timede ud.

Der var altså ingen kontakt overhovedet mellem min maskine og den maskine hos Ønskeskyen, hvis data brugerne af wishlist.dk forsøgte at rekvirere, for at undslippe overvågningskapitalismens skarpe kløer!

Har Ønskeskyen blokeret wishlist.dk?

Da jeg havde konstateret, at jeg slet ingen kontakt havde til Ønskeskyens server, gik det op for mig:

Måske føler Ønskeskyen sig truet og har blokeret for, at deres brugere emigrerer til wishlist.dk?

Jeg kontaktede Ønskeskyen:

Ønskeskyen føler sig slet ikke truet af wishlist.dks eksplosive vækst og roser endda min “fine” hjemmeside.

Ud over at blive glad for det hjertevarme “rigtig god dag”, følte jeg mig betrygget af mailen fra Ønskeskyens flinke supportperson.

Ønskeskyen er da alt for store og ædle til at blokere for lille iværksætter-wishlist.dk…

Plottet tykner!

Eller er de?

Med min nyfundte optimisme og tro på den fri konkurrence sendte jeg en opfølgende mail til Ønskeskyen. Jeg spurgte, om de ville undersøge deres teknik for fejl? Hvis de ikke havde blokeret wishlist.dk, var der måske noget i deres ende, der ikke fungerede som det skulle?

Når man har ambitioner om at erobre hele verden dur det jo ikke, at man ved et uheld kommer til at lukke for forespørgsler fra en server placeret hos Danmarks vigtigste handelspartner:

THE LARGEST WISH LIST APP IN THE WORLD!!!111!

Her er min opfølgende mail til Ønskeskyen:

Min korrespondance med Ønskeskyens supporter.

Mailen var nedtrykkende:

Desværre kan Ønskeskyens teknikere ikke hjælpe med mit problem, da de, (ligesom jeg selv), har travlt med at bygge en verdensdominerende ønskeseddelservice og slet ikke har tid til at beskæftige sig med negative vibes fra konkurrenter.

Æv!

Der er noget i tonen i svaret fra Ønskeskyen, der alligevel får mig til at antage:

Ønskeskyen har blokeret wishlist.dk!

Hvad gjorde jeg så?

Jeg spurgte de sociale medier om råd, og fik anbefalet noget, der hedder Tor, der gør det muligt at hente indhold fra internettet anonymt ved at sende sine forespørgsler gennem andre menneskers computere.

At installere Tor på min server tog ca. 10 sekunder, og at tilføje et par linjers kode til mit Python-script, der importerer ønsker fra Ønskeskyen, tog ikke meget længere.

Nu virker importfunktionen igen.

2-0 til wishlist.dk.

Hvad bliver Ønskeskyens næste træk?

Note: Dette indlæg har efterfølgende fået rettet nogle uklare formuleringer og sproglige fejl.

Danmarks nemmeste(?) ønskeseddelservice

Måske har du fulgt med i medierne omkring ønskeseddeltjenesten Ønskeskyen og deres uheldige/ulovlige omgang med persondata? Eller synes at andre tjenester er for kommercielle, mangler basal sikkerhed i form af krypteret forbindelse, eller bare er for besværlige til dig (og især ældre familiemedlemmer) med krav om brugeroprettelse?

Tja: Nu har jeg i hvert fald lavet et bud på en gratis, ukommerciel, overvågningsfri og frem for alt: let ønskeseddelservice på wishlist.dk https://wallnot.dk/wish.

Som sædvanlig er siden udviklet med Django i Python og selve datamodellen er enkel og gemmer så få oplysninger som muligt om brugeren af siden:

class Wishlist(models.Model):
	title = models.CharField('Titel', max_length=500)
	emailconfirmationstatus = models.BooleanField('Bekræftet e-mail', default=False)
	emailconfirmationtoken = models.CharField('E-mailbekræftelseskode', max_length=32)
	editwishlisttoken = models.CharField('Redigeringskode', max_length=32)
	readwishlisttoken = models.CharField('Læsningskode', max_length=32)
	created_at = models.DateTimeField('Oprettet den', default=timezone.now, editable=False)

class Wish(models.Model):
	wishlist = models.ForeignKey(Wishlist, on_delete=models.CASCADE)
	title = models.CharField('Ønske', max_length=500)
	description = models.CharField('Beskrivelse', max_length=500, blank=True)
	shopurl = models.URLField('Link til ønske', max_length=500, blank=True)
	imageurl = models.URLField('Link til foto', max_length=500, blank=True) 
	price = models.DecimalField('Pris', max_digits=20, decimal_places=2, validators=[MinValueValidator(0, message="Må ikke være et negativt tal")], blank=True, null=True)
	reserved = models.BooleanField('Reserveret', default=False)
	reservation_note = models.CharField('Giver', max_length=500, blank=True)
	sort_order = models.PositiveIntegerField('Sortering', null=True, blank=True, default=0)

Ønskesedler kan tilgås med koder i webadressen. Der er en kode, der giver adgang til at redigere ønskesedlen, en der giver adgang til at se ønskesedlen og reservere ønsker, og en der bruges til at bekræfte, at man har modtaget en e-mailnotifikation med link til ønskesedlen. E-mailen bruges til at brugerne kan finde ønskesedlen igen og som en lille-bitte sikkerhedsforanstaltning, idet man først kan dele sin ønskeseddel med andre, når man har bekræftet sin mailadresse. Koderne genereres med Python-modulet Secrets og kan fx være g_q-3bTURYWYCwq6rH1Vu06tumI.

Sådan her ser det ud i Djangos views.py, når en bruger har indtastet en titel på en ønskeseddel og sin mailadresse og systemet bag skal oprette en ønskeseddel:

if request.method == 'POST':
	form = CreateWishlistForm(request.POST)
	if form.is_valid():
		# Create wishlist
		emailconfirmationtoken = secrets.token_urlsafe(20)
		editwishlisttoken = secrets.token_urlsafe(20)
		readwishlisttoken = secrets.token_urlsafe(20)
		wishlist = Wishlist(title = form.cleaned_data['title'], emailconfirmationtoken = emailconfirmationtoken, editwishlisttoken = editwishlisttoken, readwishlisttoken = readwishlisttoken)
		wishlist.save()

Lidt ligesom med kortlinksgeneratorer, kan man godt have flertallet af danske webudviklere mistænkt for at have udviklet deres eget bud på en ønskeseddelservice – der dukker i hvert fald en del op, når man søger. Nu har jeg lavet mit bud på danmarks nemmeste ønskeseddel.