11. Juni 2024

GIMP 3.0 - Sneak Peek

Jeg spottede lige ovre på LibreGraphics’ Youtube-kanal, at de havde uploadet en presentation fra GIMP-teamet, så den prakker jeg jer lige på her. Præsentationen varer lidt over 41 min. og den er vigtigere end selv TV-Avisen. Hæh.

GIMP 3 får bl.a.

* GTK3-support
* Wayland-support
* Non-destructive editing
* Touch support
* Basal CMYK-support

Det er endnu uvist hvornår GIMP 3 udgives, men det ser ud som om udviklingen er på sporet. Jeg glæder mig!

Video

2. Juni 2024

PopOS Cosmic Desktop

“SavyNik” på Youtube har lavet en video omhandlende de seneste ændringer på PopOS’ grafiske brugerflade Cosmic Desktop. PopOS udvikles af System76 og interesserede bidragsydere. Det ser rigtig godt ud, og viljen til at bidrage med udvidelser er stor i fællesskabet omkring Cosmic Desktop. Måske en fremtidig contender til “SimonOS”, som jeg skrev om for et par dage siden? En Linux-distribution kan sagtens have flere skrivebordmiljøer alt efter brugstype.

Cosmic Desktop er ikke en variant af GNOME, som det kunne se ud til ved første øjekast, men skrevet fra bunden i programmeringssproget Rust. Apps skrives med funktionsbiblioteket libcosmic, der er baseret på brugerfladedesignværktøjet Iced. Det er fedt at se “rigtige” Rust-native apps dukke op, som ikke bare er bindings til gammel C/C++-kode. Mange af de apps der er udviklet til Cosmic, er udviklet helt fra bunden.

Video

Links

System76s side om PopOS
Cosmic Desktop Github
Iced GUI toolkit

31. Maj 2024

Kode & copyright

Disclaimer: Jeg er ikke jurist, blot interesseret i dette felt. Du er velkommen til at skrive til mig, hvis der er elementer i nedenstående, der bør rettes/præciseres.

En dag på Github…

Tænkt eksempel: Du ser en stump kode på Github. Koden har ingen licens tilknyttet - hverken i nogle af sourcekode-filerne, eller i en LICENSE fil i repo’ets rod. Er den så Open Source, og må du så kopiere koden, og gøre med den, hvad du lyster?

Jeg har nok allerede hintet svaret: Givet Githubs funktion som kodedelingssite, så burde det være et rungende ja, men det er - desværre - ikke sådan verden virker.

Svaret er desværre et nej.

Hvis ikke du får eksplicit lov til at lave ændringer og videredistribuere koden via en åben licens a’la BSD, MIT og GPL eller lign., så er koden 100% repository-ejerens ejendom. Githubs dokumentation nævner:

… You’re under no obligation to choose a license. However, without a license, the default copyright laws apply, meaning that you retain all rights to your source code and no one may reproduce, distribute, or create derivative works from your work.

Kigger man i den danske lov Ophavsretsloven, har “edb-programmer” samme status som et litterært værk (§1, stk. 3) og den, der har ophavsretten er den, der frembringer værket (paragraf §1).

§ 1. Den, som frembringer et litterært eller kunstnerisk værk, har ophavsret til værket, hvad enten dette fremtræder som en i skrift eller tale udtrykt skønlitterær eller faglitterær fremstilling, som musikværk eller sceneværk, som filmværk eller fotografisk værk, som værk af billedkunst, bygningskunst eller brugskunst, eller det er kommet til udtryk på anden måde.

Stk. 2. Kort samt tegninger og andre i grafisk eller plastisk form udførte værker af beskrivende art henregnes til litterære værker.

Stk. 3. Værker i form af edb-programmer henregnes til litterære værker.

Så derfor, selvom du befinder dig på Github, så betragt al kode som “nok se, men ikke røre”, medmindre der er en åben licens vedhæftet.

Det ville ellers forenkle verden, hvis upload til et offentligt kodedelingssite automatisk betød: “Jeg/vi giver min/vores kode til verden, gør med den, hvad I vil”, men det er åbenbart brugernes egen hovedpine ikke at ende i et juridisk minefelt.

30. Maj 2024

Linux-drømme: “Min” Linux-distribution

Nu skrev jeg i går om problemerne med Linux - det ændrer dog ikke ved, at vi har et knaldgodt økosystem, prøv f.eks at besøge ubuntudanmark.dk, hvor der er en venlig, hjælpsom atmosfære.

I dette indlæg vil jeg prøve at skitsere mine idéer med en Linux-distribution med mit eget aftryk. Som jeg nævnte i tidligere indlæg, så ligger arbejdet nogle år ude i fremtiden, men derfor kan man jo godt drømme. Jo tættere på, vi kommer, jo mere ved vi så om, hvad der kan lade sig gøre.

Pre-boot

Hvis du har læst mit forrige indlæg, så skinner det nok igennem, at jeg synes Linux-miljøet, bruger for lidt krudt på at lave distributionerne forskellige. Sådan virkelig forskellige. Linux Mint går for at være en begyndervenlig Linux, og den er mere helstøbt end de fleste - men den mangler stadig bedre “onboarding”-muligheder.

Vi har aldrig rigtig fået en “bedstemorvenlig” Linux, selvom mange af værktøjerne eksisterer, og egentlig “bare” mangler lidt finpudsning. Der bliver brugt for lidt tid på integrationer, der gør funktionerne “lækre”. Det udspringer måske af, at vi kunne bruge flere grafiske designere og brugerflade-eksperter i Open Source-miljøet?

Da Windows 95 kom ud, prøvede Microsoft at lave en alternativ brugerflade til Windows, der hed Microsoft Bob - den blev ikke nogen succes, men jeg synes den var frisk i den forstand, at den forsøgte at gøre operativ systemets brugerflade til noget letforståeligt. Netop fordi vi ikke skal sælge et produkt og følge en hidsig forretningsstrategi i Linuxland, så kan vi eksperimentere alt det, vi lige lyster.

Jeg sidder selv med hjulene - i begge lejre, som hhv. kodenørd og grafisk designer. Jeg kender mig selv, og ved, at version 1 altid bliver noget crap, men jo mere finpudsning, jeg foretager, jo tættere kommer jeg på det, jeg egentlig ønsker. Arbejdet her vil være min mulighed for at gå mere agurk med low-level stuff, som jeg længe har ønsket, samtidig med, at jeg kan trække på min design-erfaring.

Jeg er ikke så bekymret for at gøre tingene anderledes, ej heller selvom det er “ilde set” i dele af community’et, for det viser, hvor mangfoldigt Linux kan være. Lidt ligesom Canonicals Ubuntu i starten, hvor de udviklede deres egen GUI - Unity og display server’en Mir. De måtte backtracke, fordi udviklingsarbejdet tog for mange ressourcer, og Unity er i dag GNOME med plugin-tilpasninger, men lever også videre under navnet Lomiri.

Der var mange, der ikke kunne lide det, Canonical gjorde, men det gjorde netop at der pludselig kom flere muligheder. Ubuntu er i dag stadig en af de mest brugte distroer. Det betyder ikke, at jeg er enig i alle deres strategier, men de skal dog have cadeau for at turde prøve noget andet.

Det ærgrede mig, at Canonical ikke havde mulighed for at føre Mir/Unity visionen ud i livet, men omvendt skal man heller ikke genopfinde den dybe tallerken, medmindre det giver mening.

En Opinionated Linux

“Min” Linux bliver en “opinionated” Linux rettet mod “Hr. og fru Danmark”. Den skal være så letvægt som overhovedet muligt, for styresystemet er egentlig ikke vigtigt for brugeren, det er hurtig og nem adgang til dine programmer til gengæld.
Derfor kommer vi til at handle at skralde overflødige ting væk. Jeg vil hellere lave en smal distribution end en, der forsøger at være alt for alle.

Derfor bliver der heller ikke en million pakker i det tilknyttede repository. Vi udvælger det, vi synes er creme de la’ creme, og arbejder videre med det, mens vi bygger vores eget økosystem, a’la GNOME Circle. Kvalitet over kvantitet. Det betyder jo ikke, at brugerne ikke vil kunne bidrage med nye pakker. Naturligvis. Men der skal være en vis standard.

Lidt flygtige opbygningstanker

* Brugervenligt… Nærmest Apple-pædagogisk
* Choose your adventure - skal du bare bruge en browser eller et fuldblods OS, udvid senere.
* Gemme så meget teknisk-mumbojumbo væk som overhovedet muligt. Computeren er et underholdnings/arbejdsværktøj for alle - ikke kun en legeplads for tekniknørder
* Minimal Debian-baseret (tænk Slax eller ChrunchBang++)
* x86-64 og ARM64 arkitekturer
* Understøtte større open source webapps via desktop-integration
* Fediverse integration (men på hvilken måde?)
* Wayland/Pipewire
* Root mountes som read-only, og programmer mappes til brugerens eget app-bibliotek i $HOME
* Init: OpenRC. Simpelt at ændre sin bootkonfiguration
* Online/Offline hybrid, m. IPFS-integration
* Fjerne snitfladen mellem cloud og ikke cloud.
* Nem adgang til theming - tilpas din desktop med HTML/CSS.
* NextCloud, Matrix og Jitsi-integration m.fl.
* Smertefri integration med åbne IOT-devices (det er alt for geeky i dag)
* Desktopmiljø: Ukendt, men en udvidelse af noget eksisterende
* ZFS-filsystem
* Flatpak og AppImages baseret-softwarecenter
* WASM runtime first class

28. Maj 2024

Problemerne med Linux

Affødt af en god diskussion på Fediverset (jeg poster på Mastodon), så vil jeg prøve at addressere nogle af problemerne med Linux, som jeg ser det fra min stol. Mit forrige indlæg bar præg af, at jeg er helt tosset med måden, Linux og andre Open Source-systemer udvikles på. Der er selvfølgelig områder, der kan og skal forbedres. Og i modsætning til IT-giganternes operativsystemer, så kan man faktisk gøre noget ved det selv.

Jeg forestiller mig her, at jeg har nogen som helst chance for at påvirke udviklingen i mit hjørne af verden. Det har jeg måske, lidt, for jeg kunne godt tænke mig at skabe min egen Linux-distribution, når jeg har søsat mine andre projekter - så et godt stykke ude i fremtiden.

Jeg kunne godt tænke mig at se, hvor langt man kan komme, hvis man tænker brugervenlighed ind som hovedfokus, og ikke kun fokuserer på de tekniske fremskridt. Jeg synes f.eks, de fleste brugerflader har mest værdi, når man lykkedes med gemme de tunge ting væk, og gøre dem forståelige for folk, der ikke er teknisk anlagte. Det er en ting, f.eks Apple excellerer i.

Nå, i gang med det lidt kedelige - du må ikke tro, at jeg nyder at finde dårligdomme, men omvendt, så er det også interessant at identificere de steder, der halter.

Distributionerne skyder med spredehagl

Linux’ absolutte styrke ligger i dens fleksibilitet. Og alligevel ser man på Distrowatch en masse distributioner, der ligner hinanden. Folk kan jo gøre som de vil, det er det, frihed implicit betyder. Men jeg mener, at det vil være gavnligt, hvis der kom flere behovsbestemte Linux-distributioner. Lidt ligesom Ubuntu Studio og Lakka forsøger at gøre. Ubuntu Studio er en Ubuntu-distribution målrettet kreative mennesker, mens Lakka målretter sig til retrokonsol-folket.

Nogle mennesker spænderer 95% af deres dag på internettet - så behøver de ikke helt styresystem, hvor de måske ender med at bruge en ganske lille del af den samlede funktionalitet. Derfor kunne de spare diskpladsen og nøjes med en “skal”, hvor der bootes direkte ind i en browser. Se f.eks hvor hurtigt TinyCoreLinux booter, fordi den kan eksistere i en ramdisk. 12MB + evt. størrelsen på en browser. Hvad skal man så med en systempartition på flere gigabytes?

Skitsering af en behovsbestemt installation

Når du “adopterer” et nyt styresystem, så skal du først til at lære det at kende, og finde ud af hvilke programmer, der eksisterer. Jeg foreslår istedet, at man vender bøtten, og laver en installationen behovsbestemt. Det ville så kræve, at installationens dialog tog sig nogenlunde sådan ud:

Installationsprogram: “Hej, hvordan ønsker du at bruge din Linux?”
Person klikker: “Jeg er musiker”
Installationsprogram: Ok, her er nogle valg, der måske kunne interessere”
Skærm: “Ardour”, “LMMS”, “Jacks”, “Bitwig Studio” (Bitwig er kommerciel, men et godt alternativ til Ableton Live, hvis du vil køre Linux)

En spilentusiast ville måske få “Proton”, “Steam”, “Lutris” osv.

I dag får du en mængde standardprogrammer, som teamet bag OS’et håber du vil bruge, men som egentlig ender som fyld. Der er naturligvis programmer, man ikke kan komme uden om, men oplevelsen af et skræddersyet system ville være større. Du vil naturligvis stadig have Software Center eller Discover til at installere yderligere programmer med.

Fælles økosystem, og så alligevel ikke

Open Source-miljøet er meget projekt-inddelt, og projekterne arbejder ikke nødvendigvis sammen på tværs hele tiden. Derfor kan det godt tage tid, før integrationer mellem to programmer finder sted. GNOME og KDE-projekterne har lavet deres egne økosystemer indenfor Linux-fællesskabet, hvor de vedligeholder nogle bestemte typer software. Det tror jeg er den helt rigtige vej at gå, hvis man vil lave problemfri integration.

Her er et eksempel med cURL, hvor de venter på, at OpenSSL-projektet skal løse nogle ting, for at et nyt HTTP/3-library kan tages i brug. cURL og OpenSSL bruges også på Windows og MacOS.

Linux only software

Det her er potentielt en varm kartoffel. Men jeg mener, der mangler software, som kan få folk til at overveje at bruge Linux. Windows er altdominerende, fordi du kan få alt dertil. MacOS fungerer bedst i et Apple-økosystem, men nyder også godt af god integration med IoT-devices såsom Philips Hue osv. Linux favoriserer ikke noget bestemt, men desktop-udgaven af Linuxsystemer fejler ift. at tiltrække andre end os supernørder, fordi der mangler software med bred appel, så også mormor kan være med. Når der laves grafiske frontends, mangler der indimellem lige et lag glassur. Der mangler lige, at koderne hiver fat i nogle brugerflade-eksperter og får nogle fif.

Skal man gøre f.eks det grafiske miljø nysgerrigt, så skal man stille med noget, der fungerer lige så godt som Adobes grafiske pakke, og her har Adobe nogle års forspring. Vi har nu i mange år håbet, at der kommer en fuld-blods grafisk programpakke til Linux, der kan det hele, med dyb integration og samme strømlinede interface som Adobes. Du kan nå langt med GIMP, Inkscape, Krita, Davinci Resolve, Blender og Scribus. De er fede programmer, men de bærer stadig præg af, at de er udviklet af forskellige teams, og mangler bestemte funktionaliteter, der kan få folk til at overveje et skifte.

Jeg tror ikke, at de professionelle grafikere kommer, medmindre en mastodont som Adobe vælger at smide det hele Creative-pakken ovenpå en platformsuafhængig WASM-runtime. Måske sker det - de tester i hvert fald Photoshop i en browser, og så fjerner man jo al balladen med at skulle bygge til forskellige systemer.

Men…

Måske er det ved tiden, at vi ser på, om man kan udvikle et alternativ, der repekterer folks ønske om ikke at knytte sig til en abonnementsordning, som er Adobes cashcow. Det er lidt en skrøne, at folk der bruger Linux ikke vil betale for software - det, man ønsker er, at have friheden til at vælge, hvad man vil købe, og så at have lov til at rode med koderne, så man kan lave nye fede integrationer uden at blive banket i hovedet med et patent. Det kommer til at tage tid - lang tid - at udvikle en grafisk suite. Men der mangler et tilbud til dem, der vil have det hele i en pakke. Skal jeg være lidt polemisk, så kunne vi jo nærmest have nået at udvikle noget på det tid, vi har gået og sukket efter en løsning ;-)

Dårlig onboarding

Det her går igen i samtlige styresystemer der findes. Man tager simpelthen brugeren for lidt i hånden, når de sidder med deres systemer post-install. Mange af grundkoncepterne er de samme for en bruger med erfaring, men for en utrænet bruger, så er man nødt til at holde dem i hånden: Hvordan opretter jeg forbindelse til netværket? Hvordan kommer jeg på internettet? Hvordan sender jeg en email? Hvad er mine muligheder for support? Udsigten til at hænge i et forum er ikke sjov, så der skal udvikles nogle bedre hjælpefunktioner.

Upstream ejerskab

En af de problemområder, jeg synes, xz-infiltrationssagen belyste var, at Linux’ fødekæde er svag i forhold til, at distributionerne ikke tager ejerskab over de pakker, de hiver ind i distributionerne udefra. Man stoler lidt for meget på, at projekterne downstream selv løser deres problemer. Men hvert projekt har sine egne metoder at håndtere kriser på. Nogle arbejder metodisk med code reviews, andre gør ikke. I en verden som nogle mennesker desværre insisterer på at kaste ud i tumult, så er man nødt til at tjekke alle leder og kanter.

Linux er gået fra at være et fællesskabsbaseret hobbyprojekt til at være noget, som rigtig, rigtig mange mennesker og virksomheder baserer deres hverdag på. Det er alle steder, på servere, i mobiltelefoner til mindre embeddede devices. Derfor må pengestærke Linux-baserede virksomheder træde til, og hjælpe hobbykoderne økonomisk, så de ikke brænder ud, enten ved at øge deres sponsorater eller evt. ansætte dem. Det kniber det med, mens virksomhederne gerne vil nyde godt af arbejdet.

Nu kører jeg selv Ubuntu, og følger primært nyhederne derfra, og Ubuntu nåede heldigvis ikke at blive ramt af bagdøren, men det var der andre der gjorde - de distroer, som integrerer nye pakker hurtigere. Pakken med den inficerede xz-komponent var nået over i Ubuntu “proposed”-repo’et, og skulle ind i 24.04LTS, da bagdøren blev opdaget og fjernet. Det får mig til at tænke på, om tingene er blevet for komplekse, og om tingene sker for hurtigt. Man behøver ikke nødvendigvis at inkludere en opdateret minorversion af en pakke, medmindre der er en graverende bug.

Jeg er klar over, at “ejerskab” betyder at man så skal overvåge ændringer i adskillige tusinde pakker, og at det vil være en umulig opgave for en community-Linux uden automatisering. Men der er nogle dele af et styresystem, der vigtigere at holde opdateret end andre.