Startsidan  ▸  Texter  ▸  Teknikblogg

Anders Hesselbom

Programmerare, skeptiker, sekulärhumanist, antirasist.
Författare till bok om C64 och senbliven lantis.
Röstar pirat.

Teknikblogg

Blogg

Microsoft Copilot vet vad ett rullande index är
2024-05-24

Jag behövde presentera data som skrivs uppifrån och ned i minnet i en lista sorterat efter ålder, där den äldsta kommer först. Men jag tänkte låta Microsoft Copilot jobbet. Här är replikskiftet: Jag: Jag skulle vilja ha hjälp med en kod i C#. Tänk dig en array innehållande 10 element numrerade 0 till 9. Tänk […]

Stort grattis på 75-årsdagen Rick Wakeman!
2024-05-18

Rick Wakeman inledde sin karriär som studiomusiker, där det mest prominenta exemplet är Hunky Dory från 1971 (David Bowie), där han spelade piano på oförglömliga klassiker som Life on Mars. Än idag är han förmodligen mest känd som keyboardist i rockgruppen Yes, som fick sitt riktigt stora genombrott med Close to the edge från 1972. […]

Varför method groups i C#? Jag är osäker!
2024-05-03

Här är jag lite osäker på vad man försöker göra med C#. En metod är en funktion som tillhör ett objekt. Konceptet känns igen från både C++, Java och C#. En s.k. method group (från nu: metodgrupp) är en C#-term för något som refererar till en eller flera metoder som delar namn. Metodgrupper liknar ungefär […]

“Inte en singel” om Violator (Depeche Mode)
2024-03-19

Just idag var det 34 år sedan Depeche Mode släppte albumet Violator. Och just idag diskuteras singelvalet på skivan i podcasten “Inte en singel” som finns att lyssna på här: https://inte_en_singel.80tal.se/ […]

Resurser för Commodore 64-utveckling
2024-02-15

Om du som jag skriver program för Commodore 64 på fritiden, är denna sida ett register över de verktyg du behöver. Utvecklingsmiljöer CBM .prg Studio C64 Studio Programmeringsspråk Turbo Rascal KickC XC=BASIC 3 Vision BASIC Commodore DOS DirMaster Dokumentation BASIC (C64 Wiki) Assembler (C64 Wiki) All about yout C64 – online help Chip music for […]

En programmerare programmerar
2024-02-09

Jag är inte helt säker på att programmerare är ett framtidsyrke, för behovet dras allt jämt åt kring ett minskande behov av ytterligare ett whateverramverk för dagens systemutvecklare att använda. Som jag har uppfattat marknadens behov så kan det vara lönsamt för generalister att vara så generella som möjligt. En full stack-utvecklare bör vara så […]

Kapitlet om själva enheten Commodore 128 i min kommande bok
2024-02-09

Första utkastet av andra kapitlet av min bok om Commodore 128 publiceras här för den som vill rätta eller kommentera. Maila mig, SMS:a mig eller skriv en kommentar här. Glöm inte att meddela om du vill ha ett erkännande i boken för din kommentar. Kapitlet syftar till att produktplacera datorn. För att bevara formatering, har […]

Melodifestivalen 2024
2024-02-03

Jag är av den bestämda uppfattningen att både musiklansering (Melodifestivalen) och filmproduktion (Svenska Filminstitutet) bör lämnas till civilsamhället och marknaden, men så länge civilsamhället och marknaden beskattas så hårt som idag, så kan inte civilsamhället Ikväll ska den svenska staten lansera ny musik, eller rent av nya artister, i Melodifestivalen. Som finansiär tänker jag såklart […]

Kvällens nästanrymning
2024-01-23

Vi bor mellan två rullstensåsar. Till väster ligger åsen med vägen norrut mot Örebro, och till öster ligger åsen med stallet och hagen. Kvällen började med att ett fallet träd hade krossat staketet och att vi noterade att flocken som stod där, endast bestod av 4 hästar – det nya stoet saknades. Efter att ha […]

Häst #5 är installerad
2024-01-19

Nu har vi installerat den femte hästen, ett sto (svensk varmblod) vid namn Akasia. Så kvällen kommer att ägnas åt att etablera den nya rangordningen i flocken. Min dotter Lova tog bilden. […]

JobRunner 1.6 is available
2023-12-16

Version 1.6 of JobRunner is available. It allows an system administrator to disable individual jobs in a batch. Download installation program (Windows 10 or later): JobRunner.exe (Right click, Save link as…) Source code (C# 8, .NET Framework 4.8): https://github.com/Anders-H/JobRunner […]

En ny terminalemulator för Windows Forms
2023-12-16

Jag har utvecklat en GUI control för Windows Forms (.NET 8.0) som emulerar en textterminal från 1970-talet. Den stöder in- och utmatning av text samt enkel pixelbaserad grafik. Den har events som meddelar vad användaren gör, och funktioner för att ställa frågor till användaren. Denna kan användas som editor för radbaserade programmeringsspråk och som gränssnitt […]

Kapitlet om ljud i min kommande bok om Commodore 128
2023-11-29

Första utkastet av sjunde kapitlet av min bok om Commodore 128 publiceras här för den som vill rätta eller kommentera. Maila mig, SMS:a mig eller skriv en kommentar här. Glöm inte att meddela om du vill ha ett erkännande i boken för din kommentar. Avgränsningen är enkla ljudeffekter, inte musik eller mer avancerade ljudeffekter, då […]

100 filmer
2023-10-08

Jag antog utmaningen att titta på och kommentera etthundra filmer, och här är resultatet. Film 1 av 100: Spirited (2022) av Sean Anders med Will Ferrell och Ryan Reynolds. Började som en bedrövlig kopia på Scroodged men överraskade med att falla lite tillbaka på Dickens originalstory. Konceptet fungerade om man inte förväntar sig mer än […]

Filmtips från Flimmer Duo
2023-10-01

I det senaste avsnittet av Flimmer Duo tittar Henrik Andersson och jag på Night of the living dead från 1968. Du som gillar film bör hålla koll på Flimmer Duo och dessa länkar: YouTube-kanal: https://www.youtube.com/@flimmerduoRSS-flöde: https://80tal.se/feed/tag/flimmer-duo.rssHemsida: https://filmtips.winsoft.se/ […]

Några knep för att få fart på Commodore BASIC i C64
2023-09-17

Commodore BASIC 2.0 på Commodore 64 har några kända prestandaproblem, och denna enkla kod har implementerat några stycken: Programmet startar en tidtagning och 256 gånger görs en flyttalsberäkning och ett heltal skrivs till en minnesadress (16384). Programmet tar 327 jiffies i tid. (En jiffy är ungefär 1/60 sekund.) Att hitta ett radnummer tar tid, så […]

En Windows-komponent för Commodore-sprites
2023-08-30

En Windows Forms-komponent som kan presentera en Commodore 64-sprite är kanske inte vad man använder varje dag. Men jag har byggt en sådan (.NET Framework 4.8) för att isolera många tekniska bekymmer i den sprite-editor för C64 jag arbetar med. Om du vill leka med den, så finns den här: Paketet innehåller en GUI-komponent för […]

Vilket programmeringsspråk är enkelt?
2023-08-25

Frågan om vilka programmeringsspråk som är enkla brukar dyka upp från nybakade programmerare. Det är inte jättelätt att besvara frågan, för det finns så många aspekter som påverkar komplexiteten i ett programmeringsspråk. Är språket enkelt för att språket går att lära sig på kort tid? I så fall är C ett utmärkt enkelt språk. Du […]

Standardvärden som skickas till en metod i C#
2023-08-15

I C# kan standardvärden (default value) på en parameter i en metod sättas både i själva metoddeklarationen i klassen som håller metoden och i eventuella interfaces som klassen ärver ifrån. Dessa standardvärden behöver inte stämma överens med varandra, så vilket är det som gäller? Det är inte instansens typ utan variabelns typ som avgör parameterns […]

Det finns enorma optimeringsmöjligheter när man använder GDI från .NET
2023-07-17

När man ska jobba med bitmapsgrafik i .NET är prestanda en ständigt återkommande utmaning. I .NET har vi dels tillgång till GDI (som låter oss rita pixlar individuellt) och något som kallas för GDI+, som erbjuder möjligheten att rita geometriska figurer på skärmen. GDI är numera en del av GDI+, så båda biblioteken exponeras i […]

ChatGPT kan lyssna på podcasts åt dig
2023-05-29

Med tanke på hur snabbt utvecklingen går, kommer denna text snart vara inaktuell eller felaktig. Men jag har upptäckt att jag kan konsumera enorma mängder information på väldigt kort tid genom att låta ChatGPT lyssna på poddar åt mig. Vill du själv testa behöver du ha tillgång till Office 365 och ett konto som låter […]

Change configuration values in runtime in .NET Framework
2023-05-10

I stumpled upon the problem of having to change the configuration values in an old .NET Framework 4.0 system while it is running, and it has been possible to do since .NET Framework 2.0. The compiled App.config file will be named like the assembly it belongs to with the ending .config added to it (e.g. […]

A JS implementation of the Harter-Heighway Dragon Curve
2023-04-24

Five years ago, I did a post in Swedish on the Harter-Heighway Dragon Curve, with C# source code. I have translated that code to JavaScript and added animation to the rendering. The fractal describes a way of folding a piece of paper so that its outline takes up a surface. Anyone who has read the […]

Return by reference
2023-04-13

Om inget annat anges skickas parametrar till funktioner “by value” i C#. Det innebär att den mottagande funktionen får en egen kopia av värdet som skickas. Att skicka “by reference” (nyckelordet ref) skiljer sig därmed, eftersom funktionen får en referens till ursprungsvariabeln. För en referensvariabel (som myValue i exemplet nedan) innebär “värdet” en referens till […]

Referenstyper eller värdetyper?
2023-04-11

Programmeringsspråket C# skiljer på referenstyper och värdetyper. I andra högnivåspråk, som t.ex. Java, har man fram till nyligen bara antagit att egna typer är referenstyper, men som C#-programmerare tvingas man då och då att tänka på skillnaden mellan att skapa egna referenstyper och värdetyper. Konsekvenser för användandet har förändrats en aning över olika versioner av […]

How to fix the endless explorer.exe crash-and-restart loop in Windows 11
2023-03-15

After updating Windows 11 to 22621.1413, it got stuck in an endless loop after startup. The desktop environment, explorer.exe, crashed and restarted continuously. This can happen if you are running add-ons on top of explorer.exe, and in my case, I had ExplorerPatcher installed. When this happens, press Ctrl+Alt+Delete and start Task Manager. Find explorer.exe and […]

Inverterat läge på VIC-20
2023-02-28

VIC-20 har en gemensam minnesadress som håller reda både på skärmens bakgrundsfärg och borderfärg. Dessutom finns en bit som håller reda på om inverterat läge används. Adressen är 36879, och de åtta bitarna på adressen beskriver borderfärg (bit 0-2), inverterat läge (bit 3) och bakgrundsfärg (bit 4-7). Inverterat läge är avstängt om bit 3 är […]

JobRunner 1.5
2023-02-05

JobRunner är ett program som exekverar sekvenser av program. Det kan t.ex. användas av den som regelbundet genererar filer lokalt på datorn, som ska skickas upp till en server. I version 1.5 finns stöd i användargränssnittet för att arbeta med variabler. Om du vill modifiera vilka steg som ska exekveras, måste JobRunner startas som administratör. […]

Disabling loading turbo to make C64 programs work on the TheC64
2023-01-08

On a TheC64, you would normally load a program from a disk image rather than a physical disk. If the program consists of a single file, everything is usually fine. But if several files make up the program you want to load, a custom loader is usually involved, and the built in TheC64 turbo will […]

The new self-contained Hand class
2023-01-06

I have added a new class to my poker formation checker (now on .NET 6.0, not 5.0). The library still mainly works with string representations of decks, hands and cards, and the Hand class can be initialized from a string. But the Hand class can also be initialized using regular function calls. Also, the Hand […]

Rita en cirkel på Commodore 64
2022-12-29

Det finns ett meme som visar hur omständligt det är att programmera BASIC på Commodore 64 (C64). Bilden visar den kod som krävs för att rita en cirkel på skärmen på en C64, jämfört med den kod som krävs för att rita en cirkel på skärmen på Sinclair Spectrum. Om du skummar igenom koden i […]

FileUtility PathInfo
2022-12-14

FileUtility är ett bibliotek för Windows/.NET 6.0 som (för närvarande) innehåller en enda klass: PathInfo. Den kan bl.a. korta ner en filsökväg för presentation på skärmen och ange fil- och katalogstorlek i flera format, inklusive ett människovänligt textformat. Exempelkod finns här. […]

Min första kontakt med ChatGPT
2022-12-08

Jag har knuffat min första kontakt med chatboten ChatGPT fram till idag. Orsaken till min prokrastinering är enkel tidsbrist, men idag kom jag mig för att testa ett kort replikskifte, vilket onekligen gav mig mersmak. Jag: Can you give me five reasons to not believe in God? Chat GPT: There is no one answer to […]

Åtta avsnitt av “Inte en singel”
2022-12-06

Det har hunnit bli åtta avsnitt av podcasten “Inte en singel” som jag gör tillsammans med Henrik Andersson. I varje avsnitt lyssnar vi på en skiva – åtminstone på låtarna som inte släpptes som singel – och recenserar både musiken och valet av singlar. Avsnitten finns samlade här (MP3/RSS) och på YouTube. Det senaste avsnittet […]

Klassen PathInfo för .NET 6.0/Windows
2022-10-15

Jag har skapat ett bibliotek för .NET 6.0 (endast Windows) som innehåller en enda klass: PathInfo. Den kan korta ner en sökväg för presentation på skärmen och den kan hämta innehållet i en katalog, rekursivt. Exempel finns att titta på här: NuGet: https://www.nuget.org/packages/WinSoftFileUtility/ GitHub: https://github.com/Anders-H/FileUtility […]

Tre timmar om Pink Floyds 70-tal
2022-10-07

För Nongratas räkning har Jannik Svensson och jag spelat in tre avsnitt om Pink Floyd och deras musik. Vi börjar med deras debut 1967 och landar i The Wall från 1979. https://poddtoppen.se/podcast/1463215688/samtal/den-stora-pink-floyd-specialen-del-1 https://poddtoppen.se/podcast/1463215688/samtal/den-stora-pink-floyd-specialen-del-2 https://poddtoppen.se/podcast/1463215688/samtal/den-stora-pink-floyd-specialen-del-3 Mycket nöje! […]

JobRunner 1.4
2022-09-30

Version 1.4 av JobRunner finns nu att ladda hem. Programmet låter dig lista upp processer som ska utföras i turordning som kan beläggas med vissa enkla villkor. Startas programmet som administratör kan dessa steg redigeras, annars kan de bara köras. Den senaste versionen innehåller några mindre buggrättningar och introducerar möjligheten att manuellt stoppa en körning. […]

Vad är vinsten att skriva i maskinkod?
2022-08-03

För ett par veckor sedan skrev jag en kort text om hur man optimerar prestandan i Commodore BASIC 2.0 second release. Det gjorde att jag fick frågan om hur mycket man tjänar på att programmera maskinkod istället för BASIC. I mitt exempel drog jag ner exekveringstiden från 1522 jiffys (sextiondels sekunder) till 686 jiffys, genom […]

Prestanda i Commodore BASIC 2.0 second release
2022-07-15

Om du skriver ett program i Commodore BASIC för C64 (Commodore 64) eller (som i mitt fall) VIC-20 är prestanda viktigt, speciellt om det är ett spelprogram som du bygger. BASIC-tolken är ganska slö, och det faktum att både C64 och VIC-20 interpreterar BASIC-programmet medan det körs, gör att det är vissa specifika faktorer som […]

Några AI-tjänster av typen text-to-image
2022-06-15

Jag kan inte påstå att de AI-tjänster som konverterar text till bild som finns att använda gratis på nätet är 100% användbara. Jag knappade in “dog runs over green grass” i sex stycken fria tjänster. […]

Kolla tärningsformationer
2022-06-08

Har du någon gång suttit och stirrat på 5-6 tärningar och funderat på vilka formationer ögonen utgör? Nu behöver du inte fundera längre, för här är en C#-klass som ger dig svaret på nolltid! Mycket nöje! Kodexempel: https://github.com/Anders-H/DiceFormationChecker Ladda hem: https://www.nuget.org/packages/Winsoft.Gaming.DiceFormationChecker/ […]

Avstånd mellan uppföljare och deras betyg
2022-05-29

Hur tätt släpps filmers uppföljare? Och hur populära är de? Jag har tittat på några trilogier, tetralogier och några filmserier med fler än fyra filmer. Trilogier: Tetralogier: Och några filmserier med fem eller flera delar: Så hur har dessa tagits emot? Det är kanske den mest viktiga informationen för den som vill avgöra om det […]

Hur får man bra ljud i en podcast?
2022-04-24

Podcastproduktion sker i flera steg. Man ska rigga utrustning, göra en soundcheck, spela in podcasten, klippa den, montera och mastra den och publicera den. Jag har redigerat ljud i vågformseditorer sedan tidigt 1990-tal och poddat sedan 00-talet. Jag har bl.a. varit inblandad i produktionen av Skeptikerpodden, Radio Bulletin, Stulet gods, Radio Houdi, Generation YX och […]

Sprite (OpenGL i .NET Framework)
2022-02-24

Jag har dragit nytta av ett gammalt C#-repository som wrappar OpenGL för .NET Framework för att bygga ett minimalistiskt spelramverk. Följande kod visar stjärnor som flyger över skärmen, från höger till vänster. Projektet är .NET Framework 4.8 som jag valde för att det finns inbyggt Windows 10/11. Exemplet visar initiering av spelmotorn, att skapa sprites […]

Mutable strings i C#
2022-02-13

Den strängtyp som finns inbyggd i C# är “immutable”, vilket betyder att den inte kan ändra värde. Jag har skapat en “mutable string”, som kapslar strängtypen i en klass. Det innebär att man kan anropa funktioner på strängen för att få den att ändra värde. Dessa funktioner, och funktionerna för att analysera strängens innehåll, har […]

Last Christmas, Radio ga-ga
2021-12-22

Nu när vi behöver höra Last Christmas av Wham! tre gånger om dagen under en månads tid, kanske någon under någon av lyssningarna tänker att trummorna låter ungefär som det episka soundet på Radio ga-ga av Queen. Det finns såklart skäl till det. Under det tidiga 1980-talet hade trummaskinen blivit något av ett instrument att […]

Rendera mandelbrotmängden
2021-12-15

Min första kontakt med mandelbrotmängden var ett BASIC-program av Bo E. Carlsson runt 1990. Sedan dess har Andrej Bauer skrivit ett C++-program som skriver mandelbrotmängden till en bildfil. Programmet gick att kompilera med en C#-kompilator med endast små justeringar, vilket syns här: Den anpassade koden varken ritar bilden eller skriver den fill någon fil, utan […]

TV4 uppmärksammar behovet av religiöst neutrala begravningsplatser
2021-12-05

Häromdagen sände TV4-nyheterna ett inslag om religiöst neutrala begravningsplatser. I egenskap av ordförande i Humanisterna Örebro stöttade jag initiativet. TV4 Play: https://www.tv4play.se/program/nyheterna/religi%C3%B6sa-symboler-plockas-ned-i-kapellet-%C3%B6ppnar-f%C3%B6r-neutrala-begravningar/13732416             Visa detta inlägg på Instagram                         Ett inlägg delat av Anders Hesselbom (@andershbom) […]

Vill du lära känna mig?
2021-11-22

Jag har blivit grundligt intervjuad av Emil Nilsén i podcasten “Vi måste prata”, och vi pratar om hur jag blev den jag är idag. Lyssna gärna, mycket nöje! […]

“Stulet gods” avsnitt 43
2021-11-01

Nästan ett år har passerat sedan vi släppte avsnitt 42 av podcasten Stulet gods, men nu är vi tillbaka med en handfull av låtstölder att avhandla. I avsnitt 43 lyssnar vi på stulen musik som bl.a. innefattar Queen, Justin Bieber och Ozzy Ozbourne. Finns här eller där poddar finns – mycket nöje! […]

Preserverad SID-musik från 1988
2021-10-26

I samband med att jag lämnade staden och flyttade till landet, så gjorde jag mig av med alla mina Commodore-maskiner. Jag passade på att preservera en liten del av mina disketter, men jag kunde inte rädda allt. En av disketterna innehöll fyra SID-låtar som jag programmerade 1988 med Rock Monitor och en sample rip från […]

Två “nya” C64-demos från 1986-87
2021-10-12

Jag har preserverat ett antal Commodore 64-disketter från min ungdom. Alla disketter med ännu ej preserverat material gick tyvärr inte att rädda, men några små guldkorn har jag fått tag i, som t.ex. en disk med följande fillista. Antal block inom parentes. CCCP SMESSEL IX (101)THE REAL DEMO! (79)LIGHTS FANTASTIC (74)MUSIC BOX III (60)ESC DEMO […]

Input parser för textäventyrsspel
2021-09-21

Biblioteket TextAdventureGameInputParser kan användas för att parsa användarens input i ett textäventyr. Parsern tar en mening i stil med GO NORT, OPEN DOOR, USE GOLD KEY ON DOOR eller GIVE FOOD TO GANDALF och ger en struktur med ordklasser och referenser till objekt som är registrerade i parsern. Lite exempel finns tillgängliga i parserns GitHub-repository, […]

Rick Beato: Varför gillar inte boomers pop?
2021-08-17

Boomers gillar inte pop-musik. Musikern Rick Beato har en YouTube-kanal som han bl.a. använder för att lägga ut listor. Nyligen hade han en live stream där han presenterade en sammanställning (från chatt-diskussioner) om orsakerna bakom boomers ogillande av pop. Här är sexpunktslistan, med mina kommentarer. Inga tempovariationer. Modern musik tenderar att hålla ett och samma […]

Samantha Fox special double-groove multi-play pressing
2021-08-07

Henrik Andersson har donerat maxisingeln “I surrender (to the spirit of the night)” med Samantha Fox till mig. En 12″-singel med skivnummer FOXY T6. Det som gör denna speciell anges på framsidan: Special double-groove multi-play pressing. Det är inte helt självklart vad detta betyder, eller ens att det bara är sida två som avses. Det […]

Commodore BASIC 2.0 second release
2021-07-22

Nu finns hela min bok om Commodore BASIC 2.0 second release för Commodore 64 och VIC-20 att läsa som PDF här. Kontakta mig gärna för rättningar eller tillägg! Uppdatering 2021-07-25: Även en epub-version finns att ladda hem. […]

Lorenz vattenhjul
2021-07-03

Lorenz-attraktionen är en fraktal vars formel beskriver en rotationshastighet (illustrerat med en radie) och en rotationsriktning. Så här ser den ut, implementerad i Commodore BASIC 7.0: Det går att bygga ett riktigt vattenhjul som ger samma figur som algoritmen ovan. Tänk dig ett hjul med ett antal hinkar (t.ex. åtta stycken). Den hink som är […]

GetEnumerator extension method
2021-05-18

En ganska enkel men ytterst trevligt tillägg i C# version 9 är möjligheten att skapa en extension method av GetEnumerator (som konsulteras när en samling ska enumereras). Betrakta denna lilla lista: Om jag skulle vilja ha samtliga poster i listan för utskrift på skärmen, kan denna kod användas: GetEnumerator används implicit. Men om jag bara […]

Objektnotation: XML, JSON, PSON
2021-04-23

Här följer en kort kommentar om tre olika format för textbaserad objektnotation. XML Fördelar: Stöd för dokumenttypsdefinitioner (DTD) och scheman. God tillgång på bra API:er.Nackdelar: Mycket overhead (ett “pratigt” språk), endast Visual Basic har inbyggt stöd för formatet. Exempel på notation: Exempel på inläsning (C#, otypat): JSON Fördelar: Liten overhead, god tillgång på bra API:er. […]

Allt du behöver veta om Flimmer Duo
2021-03-22

Här har du allt du behöver veta om Sveriges bästa filmkrönika Flimmer Duo. Prenumerera på YouTube. Prenumerera via RSS. Hemsida. Stötta gärna kanalen på Patreon! Senaste avsnittet: […]

Musikdistribution på Rockklassiker år 2012
2021-03-20

Jag har tittat på vad radiokanalen Rockklassiker spelade på radio under första kvartalet år 2012, alltså mellan 2012-01-01 och 2012-03-31. Eftersom kanalen spelade musik i princip dygnet runt, med undantag av lite reklampauser och annat, hann man med att spela hela 26510 låtar. Man gick ut starkt genom att spela “800 grader” med Ebba Grön […]

Poker formation checker for .NET 5.0
2021-02-14

I got a mail from an unknown programmer who asked me to port my poker formation checker from .NET Framework to .NET 5.0. Here is the repository and here is the NuGet package. Happy coding! […]

C# 9 Records
2021-01-26

Hur projektmallarna pytsas ut i Visual Studio har verkligen övergått mitt förstånd. Beträffande .NET 5.0 var Windows Forms-mallen tillgänglig långt innan Console Application-mallen, men nu är äntligen allt på plats. Med anledning av det vill jag summera nyheterna i C# version 9 som, för att fungera fullt ut, kräver .NET 5.0. Här är den första: […]

Flimmer Duo: Future Hunters!
2021-01-24

I afton har vi premiär för en ny serie för dig som inte fått nog av att Henrik och jag suttit i radio och hackat på folk som skriver musik: Nu sitter vi på YouTube och hackar på folk som gör film. Det första avsnittet handlar om Future hunters. Mycket nöje! […]

Slow down (Commodore 64)
2021-01-16

En inte helt obetydlig del av min musiksmak kommer från Commodore 64, vars analoga musikkapacitet saknade motstycke. Vissa demos som släpptes var innehöll korta samplingar från kontemporär populärmusik, som t.ex. Slow down. När det handlar om digital musik var C64:an ytterst undermålig – minnet var för litet, antalet bitar per samplingspunkt var får lågt. Men […]

Hur svårt är det att gissa ett tal?
2020-12-28

En person tänker på ett tal mellan 1 och 100, och en annan ska gissa vilket. Om den som gissar skulle gissa fel, så får han reda på om han har gissat på ett för stort eller för litet tal. Den bästa strategin för att gissa rätt på så få försök som möjligt, är att […]

Flytta C64-program till din PC
2020-11-10

Det finns en del olika strategier för att bevara (eller preservera) gamla Commodore 64-program för framtiden. Här presenterar jag en snabbguide för den som äger en SD2IEC och ett tomt SD-kort. Hårdvarukrav: Du behöver ha en C64 (eller annan 8-bitarsmaskin från Commodore, men jag antar att du har en C64), en diskdrive, en floppydisk du […]

C# from the command window
2020-11-07

If you are using .NET Core (or .NET 5.0) you can easily activate the ability to run C# code from the command window (Windows Terminal or the old cmd.exe). To get started, install dotnet-script by typing: dotnet tool install --global dotnet-script Once installed, you can start the dotnet-script program just by typing: dotnet-script The prompt […]

DOD är bättre OOD för tidskritiska system
2020-08-29

Objektorienterad design (OOD) är ofta ett bra val för att det är relativt enkelt att använda med robusta mönster att följa. Men när man programmerar tidskritiskt, som t.ex. i när man gör spel, kan det vara värt att titta på dataorienterad design (DOD). DOD handlar om att utnyttja processorns cache. Normalt när man läser och […]

Podcasts
2020-08-21

I afton vill jag tipsa två fenomenala podcasts. I veckans avsnitt av Stulet gods pratar Henrik Andersson och jag om Poison, John Carpenter, Ankie Bagger och Joe Walsh. Avsnittet finns här eller där podcasts finns. Dessutom vill jag verkligen slå ett slag för Generation YX där vi diskuterar allt från den finska tullen till svensk […]

Generation YX
2020-08-14

Generation YX är en ny poddcast med journalisten Jannik Svensson och mig, där vi diskuterar samhällsaktuella frågor ur ett generationsperspektiv. All information finns på hemsidan https://genyx.se/ men den finns där poddar finns. […]

Kategoriska uttalanden om vad datorer kan och inte kan bygger ofta på okunskap
2020-07-08

Ibland hör man folk uttala sig vad datorer kan göra, antingen för att beskriva hur man ser på mjukvara eller för att göra en liknelse. Nu senast hörde jag Myra Åhbeck Öhrman berätta att datorer bara gör det man säger åt dem att göra. När hon berättar varför hon inte tror att människan kommer kunna […]

JobRunner 1.2
2020-05-16

JobRunner är ett klientprogram för att starta, köra och övervaka andra program, typiskt kommandon för att publicera, ladda hem, rendera bilder, texter eller XML-flöden. I version 1.2 finns möjligheten att logga körningen. Programmet (och dess källkod) finns att ladda hem här: https://github.com/Anders-H/JobRunner […]

Commodore 128 är en schweizisk armékniv
2020-05-02

[…]

Stulet gods 1/20
2020-04-12

Om du vill hålla dig à jour med vad som är stulet och vad som inte är det, är podcasten Stulet gods något för dig. Här avhandlar jag och Henrik Andersson (påstådda) låtstölder genom tiderna. I det första avsnittet avhandlas Edison Lighthouse och Eiffel 64. Hemsida: http://stuletgods.80tal.se/Prenumerera (RSS): http://stuletgods.80tal.se/rss.xmliTunes: https://podcasts.apple.com/se/podcast/stulet-gods/id1507649534Spotify: https://open.spotify.com/show/0KcEPjKKZcO8KHh2T8F4eLDirektlänk, Spotify: https://open.spotify.com/episode/77WKIjpr41E9GYVBVQFd6r […]

Varför blir datorer mer och mer pålitliga jämfört med experter?
2020-04-01

Vi behöver inte backa många år för att hitta forskare som anser att ett parti schack är något som kräver egenskaper som endast människan har, men idag vet vi att datorer lämpar sig ganska väl för den uppgiften. Sedan dess har tilltron till datorers framtida förmåga ökat kraftigt, kanske för att man har sett de […]

Othello
2020-03-14

Här är källkoden Othello, till ett enkelt strategispel för Windows-skrivbordet. Du vinner över datorn genom att ha se till att spelplanen innehåller fler svarta brickor än vita. Reglerna finns på Wikipedia. Uppdatering 2023-02-11: Installationsprogram för Windows 10/11 finns här. […]

Datorschack
2020-02-22

Det är förmodligen möjligt att bygga ett datorchack utan mer kunskap än själva spelreglerna. Man måste veta hur pjäserna får förflytta sig, inklusive specialdragen (uppgradering, passant, rockad), att inte egna kungen får ställas i schack och kriterierna för vinst, förlust eller möjligtvis remi (och kriterierna för remi). Som mänsklig spelare kan man troligtvis inte analysera […]

Ni med näsduk i kavajfickan spottar på vårt kulturarv!
2020-02-12

Idag uppmuntrade jag en konstnär att måla en upphittad C64 i en Facebook-grupp. Jag skrev bl.a. att jag själv lackade min Amiga på 80-talet. Det hela eskalerade ganska fort. Ok, fel av mig. Givetvis ska man vara rädd om gamla grejer, oavsett om det bara handlar om färgen på ett chassi. Hur som helst så […]

Några exponeringar från idag
2020-02-08

Idag hälsade jag på hos mitt äldsta barn som, förutom katter och en hund, har en hel del inneboende reptiler. Här är mitt Instagram-inlägg från dagen: Visa det här inlägget på Instagram Hälsar på i dotterns ”zoo”. Boayngel, ögonfransgecko och trynsnok. ❤️ Ett inlägg delat av Anders Hesselbom (@andershbom) 8 Feb 2020 kl. 8:00 PST […]

Produktionskostnad/vinst-förhållandet för misslyckade uppföljare
2019-12-22

Det är ofta ett säkert kort inom filmindustrin att göra en uppföljare, eftersom man kan spela an på en framgång. Det blir ett slags varumärkesexploatering som inte alltid utnyttjar sin fulla potential. Ibland blir inte uppföljaren lika bra som sin föregångare, och här är tre exempel på hur budget förhåller sig till bruttointäkt i filmserier […]

Produktionskostnad/vinst-förhållandet för Star Wars, Elm Street och The Terminator
2019-12-19

Vissa filmer får uppföljare och spin offs till synes utan ände. Inte sällan efter en framgångsrik start, verkar bolagen vara redo att skjuta till mer pengar för att krama mer ur det varumärke som utgör en framgångsrik film. Här är pengarna som satsats och spelats in från tre kända filmserier. Star Wars, inspelningsbudget och bruttointäkt […]

Metabollar
2019-12-14

Jag tänkte visa en komplett implementation av 2-dimensionella metabollar i C#. Denna teknik skulle även kunna användas i 3D. Effekten ser ut så här: Effekten beskrivs här, och denna implementation prioriterar prestanda för att fungera i realtid. I videon ovan används 20 positiva bollar (alltså bollar som tenderar att smeta ihop) och 10 negativa bollar […]

Funktioner är andra klassens medborgare i C#
2019-11-24

I C# 8 är fortfarande funktioner ett slags “andra klassens medborgare” i jämförelse med variabler. Man kan alltså fortfarande göra mer med en variabel än en funktion i C# 8. Varken variabler eller funktioner kan skapas i namnrymder, båda kan skapas i en klass och båda kan skapas i en funktion, vilket illustreras av detta […]

Mitt första intryck av Windows Terminal
2019-07-08

Sent om sidor lyckades jag installera rätt version av Windows 10 för att få ladda hem förhandsversionen av Windows Terminal, och efter att ha testat den så måste jag säga att jag å ena sidan inte har några stående ovationer att bjuda på, men måste samtidigt säga att det verkligen är hög tid att Windows […]

Skapa binära filer snabbt och enkelt
2019-07-01

Ibland behöver man skapa binära filer, t.ex. för att testa en egenutvecklad file header. För att göra detta kan man starta HxD och peta in de bytes man vill ha i filen. Men om man vill trycka in tal större än 255 eller textsträngar så är det en del att hålla i huvudet. Programmet MkBin […]

Sprdef 1.7
2019-06-23

Version 1.7 of the Commodore 64 sprite editor for Windows, Sprdef, allows the user to scroll and flip a sprite and fixes a bug with thumbnail updates. Features: Undo/redo buffer Single color/multi color sprite edit CBM prg Studio integration BASIC import/export Keyboard first editing or mouse first editing Download: http://winsoft.se/files/SetupSprdef.exe Sprdef requires .NET Framework 4.8 […]

JobRunner
2019-06-13

JobRunner är ett program som exekverar andra processer i turordning, vilket t.ex. är användbart för den som behandlar RSS-filer eller jobbar med genererade HTML-sidor. Mer information och nedladdningslänk finns här: https://github.com/Anders-H/JobRunner […]

Commodore 128 Hello world!
2019-04-22

Några exempel på hur man kan skriva “Hello world” på den mångsidiga Commodore 128 (1985). […]

Value tuples i C# 7.3
2019-03-17

En av många anledningar till att jag älskar C#: Språkligt stöd för value tuples! […]

Skärmbyte på arkadspelet
2019-03-08

Jag äger en nytillverkad klassisk argadmaskin som spelar Jamma-kassetter, där skärmen tyvärr gav upp. Som synes klarar arkadspelet antingen vertikala eller horisontella spel med digital styrning. Jag använder den för vertikala spel. Det var enkelt att skruva loss den gamla skärmen och sätta den nya panelen på plats, men jag upptäckte naturligtvis lite för sent […]

Sprdef 1.5
2019-01-24

Sprdef är en sprite-editor för Windows 10 som används vid spelutveckling för Commodore 64 med Windows som utvecklingsmiljö. Version 1.5 integrerar med CBM prg Studio, har undo/redo-buffer, fungerar i både single- och multicolor-läge och kan importera/exportera BASIC-data. Ladda hem programmet här. […]

Pathfinding i terräng
2019-01-04

A* (A-star) är en snabb pathfinder-algoritm som kan användas i t.ex. strategispel för att hitta vägar genom labyrinter eller terräng. Christoph Husse publicerade 2010 en briljant implementation i C# som tillåter egna kriterier, definierade i en solver, för kostnaden att flytta sig från en nod till en annan. I följande exempel har jag använt Christophs […]

Diamantproblemet i C# 8
2019-01-02

Idag skriver jag på Nethouse-bloggen om diamantproblemet i C#, som introduceras med default interface members. Läs gärna inlägget här. […]

Hold-and-modify compression
2018-12-25

A photograph usually requires 24 bits (3 bytes) per pixel. One strategy for reducing memory is to reduce the number of bits used to describe the color of each pixel, but that also reduces the number of possible colors that the format can display. A high-resolution image on the Amiga 500 typically consist of a […]

Character compression per image depth
2018-12-23

An image is a two-dimensional array of colored pixels, in this case 200 rows pf 320 pixels (320×200), today typically a 2-dimensional pixel array. Color indexing is the concept of replacing the 24-bit pixels with an 8-bit pointer to a color palette, thus reducing the memory required to represent the image. Character compression is the […]

Mjukvaran SQLite skrivs av oresonliga idioter
2018-10-23

SQLite är en mjukvara för datalagring, skriven i C, som fungerar på i princip vilken enhet som helst, från t.ex. Windows Phone till Linux. Mjukvaran är Public Domain, så företaget som utvecklar den försörjer sig istället på att sälja t.ex. support, tilläggsfunktioner eller drift. Den utvecklare som ska bidra till den officiella produkten måste leva […]

Fri som i öl eller fri som i frihet?
2018-09-22

En kommentar till kopplingen mellan Public Service-media och yttrandefrihet. […]

God utan Gud?
2018-07-27

Jag pratar om religion och moral hos Humanisterna Kalmar. Är det Gud som skapat godheten? Mycket nöje! […]

Kort intervju om bl.a. VoF, Humanisterna, podcasts och skepticism
2018-07-25

Fredagen den 13/7 var jag i Kalmar för att föreläsa om religion och moral på en krogträff som anordnades av Humanisterna Kalmar. I samband med det gjordes en kort intervju där vi pratade om bl.a. Vetenskap och Folkbildning, Humanisterna, podcasts och om skepticism.   […]

Bibelns böcker

Om du läst ett bibelcitat på engelska och vill slå upp det på svenska, är det bra att veta vad motsvarande bok heter på svenska.

En kopp kaffe!

Bjud mig på en kopp kaffe (20:-) som tack för bra innehåll!

Bjud på en kopp kaffe!

Om...

Kontaktuppgifter, med mera, finns här.

Följ mig

Twitter Instagram
GitHub RSS

Public Service

Folkbildning om public service.

Hem   |   linktr.ee/hesselbom   |   winsoft.se   |   80tal.se   |   Filmtips