Author: Anders Hesselbom

My name is Anders Hesselbom. I design and build Windows applications mainly using C# or Visual Basic .NET. My first programming experience was writing Basic programs on the Sinclair ZX81, and from there I moved on to AMOS Basic and C++. I am a big fan of retro gaming, and tend to spend a bit too much time playing 1942, Pac-Man or Out Run, preferably while listening to Roger Waters, Journey, Queen, Yes or Kansas. I run a website on science and evolution (in Swedish) called Evolutionsteori.se. I do a podcast with John Houdi called Radio Houdi. Also, I am very proud to have been a part the Swedish skeptic podcast Skeptikerpodden as an episode producer. My employer is Precio Systemutveckling in Örebro, Sweden. Swedish blog on philosophy here. A true Microsoft fanboy.

Lite nyheter i C# 7: Tuples

Om jag vill skapa en funktion som skickar tillbaka två värden, kan det lösas med en tuple. I .NET Framework är tuples implementerat som en generisk klass. Denna funktion skickar tillbaka en int och en string: public static Tuple<int, string> DoSomething() { return Tuple.Create(10, “Hello”); } Ett anrop som tar emot svaren skulle kunna se […]

Read More

Föreläsning om Commodore 64

Tisdagen den 27 september kl. 18:00 bjuder ABF i Örebro på en föreläsning om Commodore 64, i ABF:s lokaler på Fredsgatan 18 i Örebro. Commodore 64 är fortfarande världens mest sålda hemdator, och trots att det gått 34 år sedan den introducerades på marknaden, släpps fortfarande nya spel till systemet, som fortfarande imponerar när det […]

Read More

Commoflage 69

Jag hade den stora äran att bli inbjuden till podcasten Commoflage avsnitt 69, där vi bl.a. pratar Ghostbusters. Och som vanligt spelas det en hel del bra C64-musik. Klicka här för att komma till avsnittet. Jag kommenterar även den infekterade Ghostbusters-debatten på min blogg.

Read More

Captured (Lars Hård)

An attempt to cover the C64 classic Captured soundtrack by Lars Hård. Om du vill höra mer musik, mitt album från 2004 (tillsammans med Tommy Deile) finns på nätet här: Single Point of Failure – This time we are both Mina C64-covers finns här: http://www.remix64.com/act/anders-hesselbom/ Dessutom, om du vill lyssna på mitt sommarprat i podcasten Kvack, […]

Read More

Hur kan vi utnyttja evolutionen?

Tack vare den ofrånkomliga utveckling som följer från förändring över tid, med selektion, och tack vare att vem som helst idag har tillgång till starka datorer, kan vi tämja evolutionen till att göra lite vad vi vill. Låt säga att jag t.ex. vill skapa ett korsord från en lista av ord. Antingen sätter jag mig […]

Read More

Pengar är ingen motivator

Arbetslösheten i Sverige har ökat stadigt sedan början av 70-talet, då den var 2%. Idag får vi räkna med att staten kostar pengar, att kommunerna kostar pengar, och att varje medborgare dessutom måste försörja 1/10 av en medmänniskas utgifter. Mycket få arbetslösa blir motiverade av betald utbildning och löfte om anställning – de som finner […]

Read More

List invocations in constructor

This example shows how to list the method invocations in a C# file. This is the file that will be read: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { public class MyClass { public MyClass() { Console.WriteLine(“Hello.”); DoSomething(); DoSomethingElse(); } private void DoSomething() { } private void DoSomethingElse() { } […]

Read More

Gosbust 0.9.8

I have uploaded the latest version of Gostbust (0.8.9). The next thing to do is to build a proper tokenizer, and I thought I would publish the current version before starting that. Download it here.

Read More

Parse Transact SQL

To parse T-SQL from C#, add a reference to the following libraries (listed under Extensions, not under Framework): Microsoft.Data.Schema.ScriptDom Microsoft.Data.Schema.ScriptDom.Sql My examples imports the following namespaces: using System; using System.Collections.Generic; using System.Linq; using Microsoft.Data.Schema.ScriptDom; using Microsoft.Data.Schema.ScriptDom.Sql; using System.IO; This code shows how to parse a boolean expression: //Parse var p = new TSql100Parser(false); IList<ParseError> err; […]

Read More

CodeSearchTree use case: Read constant values

For this example, I am using Visual Studio 2015 Community edition to create a console application.  Make sure that you are using .NET Framework 4.6 or later. Let’s say that you have a .cs file with constants that looks something like this: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MySystem { […]

Read More

Apple I

There are an estimated six working Apple 1 machines in the world today. When sold, around 1976, the manual were more detailed on how the chips work than how to update ones Facebook status. Emulator (Windows/Android/Source) Manual (pdf) A working specimen (YouTube)

Read More

Lathund XAML: Reflektera förändringar vid data binding

En enkel databindning (alltså databindning av en post) åstadkommer man i WPF genom att tilldela ett objekt till DataContext för containern av kontrollerna som ska bindas. Här har jag tilldelat ett namn till Grid-elementet som ligger på huvudfönstret från början, och placerat en TextBox däri som jag binder till propertyn FirstName. <Grid Name=”theGrid”> <TextBox x:Name=”textBox” HorizontalAlignment=”Left” […]

Read More

Lathund XAML: Databinding

Kontrollen ListView kan användas för att presentera data i listform, och tillsammans med GridView kan man använda den för att presentera tabulär data i listform. Följande exempel fyller ett fönster med en ListView, som har en GridView med tre kolumner. <ListView x:Name=”listView” Margin=”5,5,5,5″> <ListView.View> <GridView> <GridViewColumn Header=”First name” Width=”100″ /> <GridViewColumn Header=”Last name” Width=”100″ /> <GridViewColumn […]

Read More

Lathund XAML: Positionering

För att placera ut en knapp på en absolut position, sätt HorizontalAlignment till “Left” och VerticalAlignment till “Top”. Därefter, använd de första två talen i Margin för X- och Y-position. Exempel: <Button x:Name=”button” Content=”Button” HorizontalAlignment=”Left” Margin=”105,101,0,0″ VerticalAlignment=”Top” Width=”75″/> Om man istället vill fästa knappen (eller vad det nu må vara för kontroll man jobbar med) över hela […]

Read More

Grovhet

För många står oregelbundenhet i motsats till regelbundenhet, men i den matematiska världen står regelbundenhet i motsats till grovhet. Tänk dig att du ska mäta omkretsen på denna figur, en kochkurva: Ju finare passare du använder för att mäta omkretsen, desto längre är omkretsen. En grov inställning på passaren kommer att ge mätvärden vars summa […]

Read More

Snittvärde

Jag fick en fråga om att räkna ut snittvärden. Det finns olika sätt att lösa det på, där det enklaste kanske är att använda Excel för att göra ett enkelt datablad. Jag tänkte visa hur man kan göra i C# för att få en start till ett registerprogram. För detta använder jag Visual Studio 2015 […]

Read More

Stora tal

Det finns ett mycket roligt klipp med karaktären Ali G där han ställer sig frågan om en dator någonsin kan räkna ut ett väldigt stort godtyckligt tal. Han får svaret att alla räkneövningar han kan nämna, kan räknas ut av en modern dator. Din miniräknare kommer förmodligen slå i taket när talen blir för stora, […]

Read More