Bilbane og .NET Core 2.1

Teodor Ande Elstad
Fagnettverk Programmering
5 min readAug 24, 2018

Etter en lang ferie er det tid for å gå igang med høstens fagnettaktiviteter! Denne gangen er det endelig tid for bilbaner, vi ser litt på .NET Core 2.1, og det er igjen tid for månedens tutorial, bloggpost og video.

Nyhetsbrevet flytter til Medium

For å få litt bedre lesbarhet på nyhetsbrevet (og fordi jeg har lyst til å leke litt andre publiseringsplattformer) har jeg flyttet det til Medium. Allerede har jeg rukket å kose meg med embedding av kode fra GitHub og videoer rett i teksten på gamle nyhetsbrev, så satser på at det kan bli enda penere poster fremover.

Det er også satt opp en publikasjon for Fagnett .NET hvor man kan finne alle nåværende og nye poster. (https://medium.com/fagnett-net) Tenker jeg skal eksperimentere litt med å publisere ut andre ting her og, så hvis det dukker opp noe annet spennende som ikke typisk passer inn i nyhetsbrevet, kan det være det ender opp her.

Hyl ut på slack hvis du har lyst til legge ut noe her, så kan jeg legge deg til som writer i publikasjonen.

.NET Fellesprosjekt: Første fellesmøte!

Det har vært litt snakk om et mulig fellesprosjekt i Fagnett .NET, og det ble annonsert i januar at det var satt i gang et prosjekt for å få fatt i deler og en plan for å lage et prosjekt rundt autonome bilbane-biler.

Siden den gang har Simen og Teodor brukt våren og sommeren på å bestille og vente på elektronikk fra Kina. De har også testet litt om det går an å snakke med en bilbane fra .NET Core. Det ser ut til å funke, så nå er tiden kommet for folk å slenge seg med!

Vi møtes i Akersgata tirsdag 4. september kl. 17:00, og planen for kvelden er som følger:

  1. Bestilling av mat
  2. Hva er det vi forsøker å lage?
  3. Hva er det som er satt opp?
  4. Spising av mat
  5. Koding, og mekking til vi ikke gidder mer

Her en en event som du kan legge i kallenderen din hvis du har lyst: https://calendar.google.com/event?action=TEMPLATE&tmeid=Mm01NzhhdHJvcGE4bG1iNmJpaTM4dHZiY2EgY29tcHV0YXMuY29tX2pzdXExczNxYjZqdmliMWNyYmZjdGk1M3ZzQGc&tmsrc=computas.com_jsuq1s3qb6jvib1crbfcti53vs%40group.calendar.google.com

Er du opptatt 4. men han lyst til å være med? Ingen fare! Det blir flere møter, og det er bare å droppe inn når man har tid.

Sitter du et annet sted enn i Oslo, men kunne tenke deg å være med? Send meg en slack-melding, så fikser vi noe remote.

Ny versjon av .NET Core er ute

En del folk sikkert med seg at .NET Core 2.1 kom ut før sommeren (https://blogs.msdn.microsoft.com/dotnet/2018/05/30/announcing-net-core-2-1/) Jeg har testet det litt ut, blant annet hos Hafslund, og under er noen erfaringer.

Det meste funker rett ut av boksen

Vi hadde trøbbel med en litt sær bug mellom .NET Core og Docker som ble fikset i v2.1, så jeg fikk jobben med å oppgradere en god del berørte tjenester over sommeren. Det gikk stort sett knirkefritt. ASP.NET Core og EF Core kom også i ny versjon, og det virker som de fleste store bibliotekene også var klare for overgang til v2.1 fra dag en.

Dette er kanskje ikke så overraskende, da .NET Core 2.1 er planlagt å være LTS-utgaven (Long Term Support -utgaven) av .NET Core de neste tre årene, men det er likevel godt å kjenne på at .NET Core i større og større grad er noe som bare funker hver gang.

Det eneste problemet jeg støtte på var knyttet til xunit sin console-runner. Jeg pleier å kjøre tester med “dotnet xunit — notrait=Integration”, men det virker som console-runneren ikke var helt klar for v2.1. Uansett en smal sak å gå over til å bruke “dotnet test — filter Category!=Integration” i stede.

Jobber du rett med bits og bytes er dette utgaven for deg!

.NET Core 2.1 introduserer en del snacks (mer om det her https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-2-1) men uten de helt store dramatiske endringene som vi så i starten (og det er nok en god ting).

En nyhet som litt overraskende ble aktuell for meg, var introduksjon av bedre støtte for lav-nivå manipulasjon av bits og bytes. Morten Mjelva satt å puslet med å få data ut i et strengt standardisert binærformat, og bilbane-Aurduinoen hadde sin helt egen måte å formidle data over seriellport. I begge tilfeller var det trøbbel med data med feil endian. (Kort fortalt rekkefølgen bytes er organisert i hvert binære “ord”: https://en.wikipedia.org/wiki/Endianness)

Dette kan være litt puslete å få riktig, og tradisjonelt har man måttet reversere bytene for hånd. .NET Core 2.1 introduserer System.Memory med blant annet Span-datatypen og klassen BinaryPrimitives, som gjør sånn type byte-manipulasjon enklere. Under er et lite eksempel som leser bokstaver med en gitt endian.

Månedens tutorial, bloggpost og podcast

Månedens tutorial: “How To Bind C++ Code with Dotnet Core” — Xavier Geerinck

https://xaviergeerinck.com/binding-cpp-with-dotnet-core

Nå som .NET Core 2.1 kom med så mye ny støtte for lav-nivå programmering, virker det passende å trekke frem Xavier Geerinck sin bloggpost om å kalle C++ -kode fra .NET Core.

Dette er kanskje ikke det første man får bruk for ute i prosjekt, men det er ganske artig å lese om hvordan det gjøres, og se at det egentlig ikke er så fryktelig vanskelig å få til.

Månedes bloggpost: “May<T>” — Torbjørn Marø

http://programmeringsbloggen.no/2015/12/03/may-of-t/

Torbjørn Marø har drevet Programmeringsbloggen i mange år, og selv om han har vært mindre aktiv de siste årene, er det fremdeles masse spennende .NET-relaterte poster i arkivet hans.

Posten over er en godbit fra 2015 hvor han snakker om hvordan option types kan være nyttige, og hvordan de kan brukes i C#. Biblioteket May er kanskje ikke lenger det hotteste verktøyet for å drive med option types i C#, men poengene rundt muligheter og fordeler med option types er fremdeles like gode som de var den gang.

Månedens video: “Introduction to Neural Networks” — Daniel Shiffman

The Coding Train er Daniel Shiffman sitt youtube-prosjekt. Her legger han ut ca. 3 videoer i uka (!) om alt fra hvordan man kan lage en snøstorm i JavaScript til hvordan man implementerer regresjon med maskinlæring.

De siste månedene har han jobbet mye med kunstig intelligens og maskinlæring. Videoen over er fra en av flere serier med videoer som tar for seg alt fra grunnleggende kunstig intelligens, genetiske algoritmer, nevrale nett og generelle maskinlæringsprosjekter.

Hvis en lang serie med videoer virker som litt mye å sette seg inn i, har han også mange frittstående Coding Challenge videoer, hvor han implementerer et enkeltstående prosjekt på kortest mulig tid, mens han snakker om hvordan det skal funke, og hva han gjør.

--

--

Teodor Ande Elstad
Fagnettverk Programmering

I write code and design computer systems for a living. I live in Oslo, Norway, and when I'm not working with computers, I play in a band.