9. September 2024

Consent-O-Matic

Forskere på Aarhus Universitet har skabt en dejlig extension til Firefox, Chrome/Edge og Safari, der hjælper dig med at besvare de der dumme cookie-popups på både mobiler, tablet og desktops. Og så er udvidelsen Open Source!

Jeg er sikker på, at de nede i EU havde noble tanker, da de skabte GDPR og Cookie-direktivet, men EU er i sin konstruktion også en entitet, der både skal servicere virksomheder og forbrugere, så vi fik en mærkelig mellemløsning, som egentlig tilgodeser virksomhederne. For mange cookiebokse er fyldt med dark patterns, der skal lokke dig til at afgive data alligevel.

Når vi vader igennem disse cookiedialogbokse, så læg især mærke til, hvordan du meget ofte og detaljeret skal sige nej tak til reklamesporing. I bedste fald 2 klik. I værste fald, så skal du gå en hel liste af valgmuligheder igennem, mens det er legende let at sige ja (1 klik).

Dybest set mener jeg, at hvis ikke virksomhederne kan sælge dig et produkt uden at datamine dig først, tja, så har de nok et dårligt produkt, eller også fejler de ift. at fortælle dig, hvorfor det er godt?

Det er jo ikke fordi markedsanalyser er noget nyt. Det lavede man allerede i 1900-tallet. Det “nye” er, at virksomhederne høster en masse data, så de kan profilere os endnu bedre. Siger de. Men de fejler. Jeg får stadig reklamer, når jeg surfer på nettet, der ikke interesserer mig det fjerneste, trods henad snart 20 års tilstedeværelse på sociale medier.

Cookie-direktivet i sig selv er en fadæse, fordi den netop ikke beskytter forbrugeren tilstrækkeligt, og udsætter internetbrugere for ekstra irritationsmomenter og en illusorisk form for privacy. Det burde være virksomhederne, der skal bevise, hvorfor de skal have dine adfærdsdata, og de burde have lov til at arbejde rigtig hårdt for, at du trykker “ja” i den cookieboks. Guldkunde i din favorit-dagligvarebutik de næste 25 år? Højere indlånsrenter i din bank? Næ, vi får højest slidgigt i pegefingeren af at klikke på valgene i de der bokse.

Nå, men mens vi venter på, at ægte forbrugerbeskyttelse bliver en realitet, så har de her gæve mennesker fra Aarhus Universitet bygget en udvidelse, der autobesvarer cookiebokse. Det er den slags, jeg har ledt efter, som virker på browserniveau. Efter deres udsagn fanger den også en del af de dialoger, der er rene dark patterns. Og jeg må sige, at det fungerer ret godt - mit blodtryk er allerede faldet så meget, at jeg befinder mig i ren lykkelig zen-tilstand. Det er lidt ligesom at have fået internettet tilbage i den stand, det burde være i. Stor tak herfra - og godt arbejde!

Links

https://consentomatic.au.dk
https://cs.au.dk/da/ … s/consent-o-matic-dk

13. August 2024

Rust: video om hukommelsesinddeling

Jeg faldt lige over denne video på Youtube, der er en god primer ift. hukommelsesinddeling med eksempler i Rust. Det er stof, der ikke sådan lige sætter sig på rygraden, så den skal nok ses nogle gange

Links

Sreekanth: Visualizing memory layout of Rust’s data types

9. August 2024

You get an AI, you get an AI, everybody gets an AI

Jeg må indrømme, at jeg er ret splittet i forhold til spørgsmålet omkring AI. Jeg bryder mig bestemt ikke om de negative sider af den, men samtidig er jeg fascineret af den tekniske side og det faktum, at jeg kan have en meningsfyldt “samtale” med den.

Hvis du, som jeg, er vokset op med tekstbaserede brugerflader, så har du også været vant til, at computeren oftest bare har svaret “Det ved jeg ikke, prøv at stille spørgsmålet igen”, og så var det din opgave at genstille spørgsmålet og forhåbentlig ramme det, som udvikleren af spillet/værktøjet havde forudprogrammeret. Det var især udpræget i Sierra Onlines Police Quest-serie, noget som måske fik Ron Gilbert til at vælge foruddefinerede ord med SCUMM-motoren til Monkey Island.

Konkret har jeg haft en meningsfuld udveksling med Googles Gemini AI, og den har sparet mig for en del forum-opslag. Jeg spurgte til, hvordan man bedst skriver sikker C-kode. C er et fantastisk sprog, fordi det er relativt let at læse og arbejde med, men samtidig farligt, fordi det er så nemt at begå fejl. Du er helt nede at røre “metallet” og kan f.eks nemt komme til at overskrive dele af computerens hukommelse, som dit program ikke har adgang til, hvis du ikke er omhyggelig med din kode. Der er no mercy. Buffer under/overflows er en af de mest typiske kilder til sikkerhedsfejl, og her er C-compileren ikke særlig hjælpsom med analyse, derfor skal du have fat i værktøjer som Valgrind og lign.

Det er så her Googles AI kommer ind i billedet, for jeg blev overrasket over detaljegraden i det svar, den gav. Den gav mig både “pointers” (hæ..) til sikre funktioner med fastdefinerede bufferstørrelser f.eks strncpy, snprintf, lavede kodeeksempler og kom med idéer til “best practices”, såsom at huske at aktivere alle compiler warnings og lave statisk analyse, input-validering osv.

Det er jo så op til mig, at vurdere, om AI’en er fyldestgørende og korrekt i sit svar, og der må jeg jo altså sige, at det ville - hvis jeg havde været en nybegynder - have taget mig væsentligt længere tid at finde de svar.

Det er i hvert fald min erfaring, at programmeringsguides - i bogform og online - kun giver dig brudstykker af den information, du skal bruge. Her formår AI’en faktisk med simple og effektive midler at sende mig i forskellige retninger. Det kan godt være, at hvis man er ny i faget, at man ikke lige får udforsket samtlige forslag… Men der bliver plantet et frø, med noget, man skal være opmærksom på senere, og det gør dig ultimativt til en bedre programmør i det lange løb.

Medmindre du skal skrive virkeligt lavniveau-kode, såsom enhedsdrivere eller lave udforskning af embeddede systemer, så vil jeg til enhver tid foreslå mere sikre sprog såsom Rust, Python, Java, C#, Go eller Swift. Men C og C++ er stadig sjove at programmere i, og vil være her om 50 år pga. den enorme mængde af legacy kode, så det er godt at have efaring med dem. Også ift. interoperabilitet med andre sprog. Mange Rust-libraries er f.eks wrappers omkring eksisterende C/C++-kode.

Links

Google Gemini
Valgrind

2. Juli 2024

Ny browser - Ladybird - til Linux & MacOS

Browseren hedder “Ladybird” og nedstammer fra Andreas Klings SerenityOS.

Ligesom jeg ser Destination Linux til morgenkaffen, så har jeg også fulgt Andreas’ projekt igennem en årrække via hans opdateringer på Youtube, og set browseren og styresystemet gå fra koncept til noget der kan fungere. Det er stadig en slags research-OS, men det er simpelthen imponerende, hvor langt projektet er kommet.

Ladybird stammer også fra Serenity-projektet, og bliver nu forket som sit eget projekt på GitHub, samtidig med, at al udvikling samles i et non-profit selskab, med støtte fra den oprindelige udvikler af Github (præ-Microsoft) og Shopify.

Kling skriver om skiftet her:
Andreas Kling: I’m forking Ladybird and …

Jeg synes det er et klogt træk, både i forhold til arbejdsfordeling og fremtid, fordi SerenityOS nok mest er lavet for “hyggens skyld”, hvor Ladybird nok skal give Andreas & co. arbejde nok til de næste mange, mange år. Lidt ligesom Linux-kernen er gået hen og blevet Linus Torvalds’ livsværk. Ladybird har et stort potentiale til at blive et alternativ til browserne Firefox, Safari, Edge og Chrome.

Apples WebKit-motor eller varianter deraf (Googles hedder Blink), ligger i de største browsere og mangler konkurrence, så det er egentlig meget fedt, at der sker noget nyt. Måske bliver Ladybird inkluderet i mit eget lille OS-projekt engang? Hvis målet er så lave hardwarekrav som muligt i en moderne verden, så er jeg frisk.

Det, der overrasker mig mest, er nok at Ladybird også dropper SerenityOS som targetplatform, og arbejder videre med MacOS og Linux. Det er formentlig fordi SerenityOS’ fundament bygger på, at man ikke tager 3. parts kode ind udefra.

Browseren er stadig udviklingsmæssigt på alpha-stadiet, så den bliver næppe din standardbrowser endnu, medmindre du er virkelig hardcore. Men det bliver spændende at se, hvordan arbejdet med browseren skrider frem henover de næste mange år.

Links:

Ladybird website
Ladybirds Git repo
SerenityOS

23. Juni 2024

OpenSwoole - yes, PHP kan være lynende hurtig

PHP er måske et fortolket sprog, men det kan være lynende hurtig, under de rette forudsætninger. Tag f.eks OpenSwoole. Det er et framework, der booster ydelsen på din asynkrone og non-blocking kode, hvilket øger ydeevnen betragteligt. Det giver måske ikke så meget mening i et lille setup, men det er godt at have i baghånden, hvis man pludselig en dag skal skalere sin applikation op.

Det er bemærkelsesværdigt, at frameworket ikke befinder sig ret langt ydelsesmæssigt fra ASP.NET MVC i benchmarks på Techempower. Knapt så overraskende, at så mange Rust-frameworks ligger med i front.

Open Swoole er en PHP-extension skrevet i C/C++, så det spiller pænt sammen med Apache/nginx, og du kan undgå at bruge PHP-FPM-modulet. Det betyder så også, at du nok ikke skal gøre de store forhåbninger om at bruge det hos en shared host, men virtual private servers kan også fås til en overkommelig pris i dag, hvis man kigger mod udlandet.

https://openswoole.com/
Benchmarks

Vil du have et andet alternativ er der….
(og her var tidligere en passage om Facebooks HHVM virtuelle maskine/Hack programmeringssprog - det viser sig at projektet er dødt.)