6. August 2022

Derfor har du brug for Open Source (1. del)

Jeg kender ikke aldersspredningen på dem, der evt. læser denne blog - men jeg er vokset op på et tidspunkt, hvor stort set alting indenfor IT kostede penge. Alle firmaer havde den her silo-tankegang, hvor man lavede proprietære filformater og holdt sine kort tæt på kroppen. Så stor var min entusiasme, da jeg fandt ud af, der var noget, der hed Open Source. Open Source er betegnelsen for en måde at dele viden på - mere specifikt computerkode - på et grundlag af meget lidt restriktive, åbne licenser. I stærk kontrast til slutbrugerlicenserne på kommerciel, closed source software. Jeg starter med det måske mest kendte Open Source-projekt - Linux

Linux er.. overalt!

Du har formentlig stiftet bekendskab med Open Source og Linux uden at vide det. Det driver størstedelen af internettets servere, harddiskoptagere, køleskabe og mobiltelefoner, hvis producenten ikke har bygget sit eget lukkede system. Styresystemet Android er udstyret med en kraftigt Google-modificeret Linux-kerne. Du kan faktisk få en ren Linux på din mobiltelefon, hvis den er understøttet af community-projektet PostmarketOS. Det er meget nørdet (yay!) og er ikke helt klar til masserne endnu - men sjovt at lege med til udviklings/hobbybrug. Her booter jeg PostmarketOS på en gammel Samsung S3 Mini. Det er den vej, vi skal udfra et bæredygtighedsprincip. Produkterne skal holde længere, og det kan vi gøre som brugere, hvis vi selv har kontrollen med dem på softwareniveau.

Linux og jeg

Skiftet til Linux-operativsystemet var ikke let. JJeg har taget flere tilløb gennem tiden, for det var ikke let at slippe det Windows, jeg kendte så godt. Jeg har været med siden Windows 3.1, og vil kalde mig en habil superbruger. Men jeg har hele tiden haft et godt øje til Linux, særligt fordi det rummer noget helt basalt: Samarbejde på et jordnært plan. Det er produktet at folk, der arbejder sammen på tværs af forskellige forudsætninger for at bruge et computersystem.

Når først man er kommet “ud på den anden side”, finder man dog ud af, at der er en hel ny verden. Mine første tilløb til at skifte til Linux, skete allerede tilbage i 2004, hvor jeg stødte ind i distributionen Mandrake, men allerede inden da, havde jeg leget lidt med Redhat Linux i 1997, som var en af de første større kommercielle udgaver. I mangel af steder at finde hjælp, kom jeg dog ikke ret langt og hoppede tilbage i safe haven på Windows. Sidenhen fandt jeg Ubuntu Linux, som har været mit primære system i en del år. Der findes mange andre Open Source-styresystemer, men jeg vil fokusere på Linux her, og vender tilbage med et blogindlæg om *BSD’erne senere.

En diamentral modsætning

Linux er en diamentral modsætning til Windows, hvor Microsoft suverænt styrer programmerne, der skal installeres, når du køber din computer. Ubuntu, som jeg bruger, kommer også med en række standardprogrammer, men man kan vælge en minimal installation, hvor der praktisk talt kun er en browser og et skriveprogram. Microsoft installerer en række -programmer og lokke-apps, der har til formål at få dig til at købe mere, og som fylder på computerens harddisk. En Windows-installation fylder rundt regnet 20-30 gigabyte mere end en Ubuntu -nstallation, selvom funktionaliteten er den samme. Paradoksalt nok, så havde tidligere udgaver af Windows før Windows 7 mulighed for, at du kunne til/fravælge komponenter under installationen, men den har man fjernet.

Da det her ikke skal blive ren Microsoft-bashing, så må jeg sige at IT-giganten har haft en positiv udvikling de senere år, under den “nye” CEO Satya Nadella (han har vist siddet der en del år efterhånden). Det har betydet et nyt friskt syn på Open Source og Linux fra Microsofts side, samlet set, nok især pga. deres Azure-cloud platform.

“- Jamen, hvis Linux er så godt, hvorfor er det så ikke det, der dominerer?”, tænker du måske?
Kort sagt, historisk unfair konkurrence/smart markedsføring/godt styresystem (afhængig af ens perspektiv) fra Microsoft og bestemt også, fordi Linux først nu er der, hvor det kan bruges af almindelige mennesker, uden at man føler, der mangler noget.

Førhen var mange funktioner rettet mod brugere med en vis erfaring, og platformen havde en del uslebne kanter. Men community’et omkring Linux er blevet mere fokuserede på, at lave mere polerede, brugervenlige programmer, end man har været før. Der er kommet mere professionalisme ind i billedet, og fokuseret udvikling. Det er en positiv udvikling, synes jeg.

Linux, både en platform og en kerne

Et tryk på “spol tilbage”-knappen: Jeg skylder måske lige at forklare, hvad Linux er. For det kan være meget forvirrende, når man først læser om det. Linux udspringer af Unix-platformen ligesom Apples MacOS og er en både en hel platform og en kerne. Unix blev brugt på mainframes i 60′erne og 70′erne, men som kutomen var dengang, så var det en bekostelig affære at anskaffe sig en licens til et Unix-system. Linus Torvalds arbejdede med Andrew S. Tannenbaums Minix og blev inspireret til at lave en åben udgave, der blev til Linux. Det så dagens lys i en nyhedsgruppe i 1991, and the rest is history, som man siger. Linux blev baseret på den åbne GPL-licens fra Free Software Foundation, som Richard M. Stallman havde grundlagt i 1983.

The Linux Kernel. I sin mest simple form: Arbejdsfunktionen for en kerne, eller på engelsk en kernel, er at få ens computer til udføre nogle grundlæggende processer, relateret til det udstyr, der findes i computeren. Rundt om kernen man så en række bruger-vendte programmer, der udgør samlet set platformen Linux.

Den Linux-kerne, som Linus Torvalds, m.fl. stadig vedligeholder er nok den mest kendte, men der findes andre kernels. Free Software Foundation vedligeholder Linux-libre kernels, der er helt fri for “binary blobs”, små oaser af proprietær kode, som desværre eksisterer, fordi nogle virksomheder stadig finder det nødvendigt at holde kortene ind til kroppen. Ulempen ved disse Libre kernels er, at de ikke understøtter så meget hardware.

Både kernen og programmerne i et Linux-system kan skiftes ud med andre komponenter, så alle kan stykke deres platform sammen, som man lyster. En sådan pakke kaldes en distribution. Distributioner findes i alle afskygninger, og vedligeholdes af både enkeltpersoner på hobbyniveau samt små og store firmaer. Selvom sammensætningen af programmer kan være meget varieret, har man vedtaget en række standarder, så alle Linux-systemer kan snakke sammen.

Du kan se en oversigt over distributioner her: https://distrowatch.com/

Almost there…

Hænger du på endnu? Skal jeg opsummere denne 1. del, så: Det, der gjorde at jeg forelskede mig i Open Source-miljøet er, at alle de her fremskridt, der gøres, dem deler man og alle drager fælles nytte af det. Med den silobaserede tankegang, der stadig eksisterer til dels, hvor alle beskytter deres lille felt, ville man opleve at alle sad og opfandt deres egen dybe tallerken i stedet for at arbejde sammen. Selve metodikken kunne overføres til andre steder i samfundet. Her er der dog noget helt fundamentalt, der blokerer, nemlig patenter. Men det er også stof til et blogindlæg for sig.

Nu har jeg brug for en pause, vi ses i 2. del, hvor jeg kigger lidt på økonomiske og funktionelle fordele og ulemper ved Open Source-modellen.
God lørdag :-)

5. August 2022

Hvis man vandt i Lotto

For nylig kom det frem, at en person i Sydjylland havde vundet 759 millioner i Lotto. Det er sgu mange penge. Det er lidt sjovt at lege med tanken om, hvad de skulle bruges til, hvis man selv vandt dem. Lune på bankkontoen? Nej, for fanden. De skulle ud at arbejde i samfundet. Jeg ville investere i grøn omstilling og socialøkonomiske virksomheder. Jeg ville ikke selv have energien til at administrere dem, så det ville jeg selvfølgelig lade eksperter om. Jeg kan se, der er et uforløst potentiale i genbrug, men det er samtidig også nogle voldsomme investeringer, der skal laves, for bare at komme i gang.

De socialøkonomiske virksomheder giver måske ikke - nødvendigvis - så meget kickback til folk, der investerer i dem. Det er en grundpræmis for virksomhedernes eksistens, at de kan hvile i sig selv rent økonomisk. Men det ville hjælpe nogle personer i arbejde, som er “på kanten af arbejdsmarkedet”, som det hedder på mediesprog. Metaforen er kun delvist rigtig. De er overhovedet ikke “på kanten af arbejdsmarkedet”. Det er arbejdsmarkedets manglende evne til at favne dem, der gør at de er endt der, så må samfundet også blive mere fleksibelt.

Skal det ske, så er vi nødt til at ændre narrativet til at indbefatte, at det er helt ok, at man har et erhverv, der balancerer indtægter og udgifter + en buffer til uforudsete hændelser. Man kan godt have en sund virksomhed, uden at den skal jage svimlende overskud år efter år. Jeg tror faktisk det giver en bedre sammenhæng, for jeg kan forestille mig at der er nogle, der bliver slaver af det der vækstmantra, der har hersket i mange år. Det giver stress. Stress er så stor en faktor i samfundet at det uden tvivl kan mærkes på bundlinierne og i samfundet generelt.

Hvem vinder? Ingen! De ansatte presses til at yde mere, de sygemelder sig med stress og virksomheden går i tomgang. Det glæder mig, at der er begyndt at komme historier om, at en del erhvervsdrivende ikke længere tæller arbejdstimer som et succeskriterie, men kvaliteten i arbejdet, og at der kommer en bedre work/life balance. Folk laver fejl, hvis ikke de har tid til deres arbejde, så den der stopurs-orienterede tankegang skal væk. Jeg har tit mødt konsulenter udefra, som har været møgstressede, fordi de havde et stramt program. Det holder ikke en meter, for de har ikke tid til at servicere mig som kunde ordentligt.

Jeg kan i øvrigt anbefale Jason Fried og David Heinemeier Hanssons bog “Rework”, der dykker ned i tankegangen om sundere virksomhedsdrift. De har klaret det godt uden at falde for den stereotype Silicon Valley-måde at bygge et firma på. Absolut anbefalelsesværdig læsning, kulturen kan sagtens puttes ind i danske virksomheder også.

Av, her kom vi rundt om mange ting - det er sådan noget, der sker, når jeg har fået for meget kaffe :D

3. August 2022

Humørboost på 10 sekunder: Log af…

Hvis jeg skal gå Facebook-skaber Mark Zuckerberg lidt i bedene, så har han ret, når han i medierne med jævne mellemrum postulerer at social medier bringer mennesker tættere sammen. Jeg har i hvert fald oplevet den sociale mobilisering på mange punkter, og var næppe begyndt at gå i “Linux-computerklub” eller blevet politisk aktiv, hvis det ikke var for de sociale medier

De sociale medier kan også bringe de negative følelser frem, og tvinge en til at dvæle ved den. Vi kan nok hurtigt blive enige om at verden er i en sørgelig forfatning i disse tider med klimakriser og krige, og politikere, der sover i hængekøjen istedet for at give samfundets udsatte flere muligheder. Internet, radio og tv-medier forstærker den negativitetsspiral, fordi der er et virvar af meninger og analyser.

Vi kan ikke løse verdens problemer individuelt, de skal løses kollektivt. Hvis vi skal bevare vores forstand som individer, så er vi nødt til at give hjernen en pause fra alle indtryk indimellem, og forsøge at finde alle de oaser af lykke, vi kan.

Så mit simple råd: Log af.

Væk med Twitter, væk med Facebook og de andre sociale medier for en tid. Jeg behøver heller ikke se nyheder hver dag. Jeg skimmer måske overskrifter ca. hver 4. dag. Jeg har faktisk oplevet at de diskuterede nøjagtigt det samme, da jeg tændte for nyhederne igen. Beskeder fra mine tætte relationer får jeg jo stadig. Det, at man tager en slapper, gør jo ikke en ignorant ift. hvad der foregår ude i verden. Man er også nødt til at pleje sit mentale jeg.

Det er meget individuelt, hvad man slapper af med, men det er for mig at dyrke mine interesser temmelig intensivt, og jeg kan mærke, det gør godt!

2. August 2022

KISS: Keep It Simple, Stu… Simon :P

Hello World

Jeg tænkte, jeg vil bruge bloggen til at skrive lidt om, hvad jeg går og laver. Kommentére lidt på handicapområdets (manglende) udvikling i vores samfund, og ellers skrive lidt om opdateringerne på mit hobbyprojekt “Handicapguiden.dk”

Efter at have arbejdet med .NET platformen i mere end 18 år, er jeg nu tilbage, hvor det hele startede, i hvert fald her på siden og simonjustesen.com. Med PHP. Jeg indrømmer blankt at økonomi også havde en betydning. Et .NET-site med all the bells and whistles er ret dyrt, og Jeg tænkte jeg kunne spare lidt “gryn” ved at skifte over til PHP.
Bloggen her er baseret på Flatpress - som ikke gemmer opslag i databaser, men i filer - det gør den nemmere at lave backup af.

Det er sjovt at prøve det simple igen. PHP får så meget røg ude på nettet - der er sådan lidt sprogsnobberi. Jovist, der er meget spaghettikode rundt omkring fra PHP 4-5 dagene, men der er kommet styr på standardbiblioteket. Bare at kunne fyre op for hele gøjemøget uden at skulle spekulere på, om modul xyz virker. PHP indeholder endda en udviklingsserver nu - i gamle dage skulle man lige sætte noget op selv, inden man kunne komme i gang. Jeg har slet ikke tal på, hvor meget jeg har “makket” med Apache-webserveren. Men så lærte jeg da det :)

Kompleksitet ødelægger det sjove

Serverside-Javascript eksekveringsmotoren (runtime? kørselsmiljø på dansk?) NodeJS og dens pakkemanager NPM har influeret rigtig meget, de senere år.. Alt for meget. At den satte skub i pakkehåndteringsværktøjer indenfor programmeringsområdet, synes jeg var megacool … Men dens dependencies knækker meget nemt. NodeJS’ oprindelige udvikler endte med at bryde ud og skabe Deno, som svar på de problemer, der har været.

For mit eget vedkommende, kom faktisk til et punkt, hvor jeg overvejede om det stadig var sjovt at programmere. Ikke så meget for selve udviklingen, for det har jeg altid synes var sjovt, men nærmere alt det bøvl udenom.

Jeg vil gerne mærke fremdrift. Der var dage, hvor jeg skulle bruge 1 time til 1½ på at løse toolchain-fejl inden jeg kunne komme igang med det, jeg egentlig skulle lave den pågældende dag. Noget kunne da tyde på at mine bønner er blevet hørt, for netop pga. de nye muligheder med WebAssembly i browseren, så er udviklerne igen begyndt at bygge “rene” toolchains, hvor man ikke blander teknologier, der passer dårligt sammen. Microsoft .NET Blazor er et af dem. Jeg ved ikke om jeg kommer til at bruge det, men det er fristende at bruge til Handicapguidens mobilapps.

En åbenbaring

Det var lidt af en åbenbaring jeg fik, efter jeg arbejdede ret intenst med programmeringssproget Python i foråret, som også er et fortolket sprog, ligesom PHP. Det der - skriv kode -> compile -> run -> gentag med compilede sprog som C# kan godt blive lidt irriterende. Jeg føler mig effektiv på en anden måde, når resultatet er på skærmen med det samme, som det sker med fortolkede sprog. Det er blevet lidt sjovere under .NET Core, fordi man kan sætte compileren i “watch”-mode og at compileren generelt er blevet hurtigere (Ahead-Of-Time Compilation), men du skal stadig vente på, at compileren genererer dine opdaterede filer.

Måske skulle Microsoft bare lave C# til et fortolket sprog, mens man udvikler i “debug”-mode, og så kan man vælge at compile, når man udgiver sit færdige produkt. Man kan jo se i Visual Studio, at det er muligt at lave gennemløb af kode næsten i realtid, så burde man også kunne lave det andet. Try-Catch blokke bliver først checket ved runtime, der kunne man måske flytte det til compile-time, og så hjælpe udvikleren ved at compile og tjekke den genererede assembly i baggrunden. Processorkraft burde være det mindste problem, de fleste computere i dag, burde have ekstra cores nok til at klare den :)