Sökresultat för

Artiklar under året: 2026

Årtal: 2026

Här finner du alla artiklar publicerade under 2026, vilka det finns 16 av.

Tillbaka till översiktssidan.

Kom igång med Boost

Kom igång med Boost

Standardbiblioteket i C++ saknar ringbuffertar, kommandoradsparsning och mycket annat som nästan varje program behöver — men Boost har det, och har haft det i över 25 år. Här går jag igenom fyra sätt att installera Boost, vad CONFIG i find_package() egentligen betyder, skillnaden mellan header-only och kompilerade bibliotek, och varför jag alltid länkar statiskt. Två kompletta exempel visar hela vägen från installation till en fristående binär utan ett enda Boost-beroende vid körning.

Jens Riboe
Jens Riboe

2 okt. 2026

47 minuter i lästid

C++26 ORM via Reflection

C++26 ORM via Reflection

Annotera en vanlig struct och få tabeller, CRUD och typade queries — utan en rad SQL. Java har haft det i tjugo år, och nu kan C++26 också. I den här artikeln bygger jag ett litet men fullt fungerande ORM-ramverk med compile-time reflection, som pratar med både PostgreSQL och SQLite, och stöter på vägen på ett hinder ingen varnade för. Avslutningsvis läser vi in tusen personer från en CSV-fil, stoppar in dem i databasen och spottar ut resultatet som JSON — allt med samma reflektiva teknik, i kod som helt enkelt inte gick att skriva före C++26.

Jens Riboe
Jens Riboe

29 sep. 2026

79 minuter i lästid

C++26 Reflection

C++26 Reflection

Kompilatorn har alltid vetat exakt vad dina structar innehåller — den har bara aldrig velat berätta. I C++26 gör den det, och du får skriva din sista to_string() för hand. Men det här är inte reflection som i Java: ingen metadata i binären, inga typobjekt att slå upp, ingenting som kostar en enda instruktion vid körning. En reflektion är ett constexpr-värde som föds och dör inne i kompilatorn. Jag går igenom fyra nya bitar syntax — cat ears, splice, template for och annotationer — bygger en generisk stringify() på 25 rader som renderar vilken struct som helst, och tar sedan isär vad expansionen faktiskt kompilerar till. Svaret är precis den kod du hade skrivit själv, rad för rad.

Jens Riboe
Jens Riboe

18 sep. 2026

45 minuter i lästid

C++26 Contracts

C++26 Contracts

Kommentaren ovanför funktionen — "n måste vara >= 0" — har vi alla skrivit, och vi vet alla hur ofta den läses. C++26 flyttar in antagandet i själva signaturen med pre, post och contract_assert, och löser samtidigt den fråga som sänkte hela förslaget ur C++20: vad som ska hända när ett kontrakt bryts står inte i koden, utan bestäms när du kompilerar. Jag bygger en ringbuffert där man får se en bugg fortplanta sig i direktsändning, skriver en egen violation handler och går igenom fällorna i GCC 16 — med början i det klassiska clamp-exemplet, som inte ens kompilerar.

Jens Riboe
Jens Riboe

11 sep. 2026

73 minuter i lästid

Cargo – konvention framför konfiguration

Cargo – konvention framför konfiguration

Inget CMake, inget Conan, inget hemsnickrat skript — ett enda kommando räcker för att skapa, bygga, testa, dokumentera och länka in tredjepartsbibliotek i ett Rust-projekt. Jag går igenom hur `cargo` blev så där stilrent, med ett getingstick om `make`, `Ant`, `Maven` och CPAN på vägen, och avslutar med ett demo-program som ritar en Normal-fördelning som ett stjärn-histogram.

Jens Riboe
Jens Riboe

4 sep. 2026

50 minuter i lästid

Referenser & pekare i Rust jämfört med C++

Referenser & pekare i Rust jämfört med C++

Referenser och pekare finns i både Rust och C++ — men skrapar man på ytan är skillnaderna rejäla. En Rust-referens går att peka om till ett helt annat värde efter att den skapats; i C++ är en referens låst till sitt mål för alltid. Bakom `unsafe`-nyckelordet gömmer sig dessutom exakt samma minnesbuggar som C++ alltid haft — use-after-free, läsning av oinitierat minne — skillnaden är att Rust kräver att du skriver `unsafe` för att göra det. Jag går igenom mutability, ownership/borrow-reglerna, råa pekare och tre sätt att allokera på heapen, med körbar kod och C++-jämförelser hela vägen.

Jens Riboe
Jens Riboe

28 aug. 2026

38 minuter i lästid

När Rust får panik gör C++ ett undantag

När Rust får panik gör C++ ett undantag

En Rust-panic och ett C++-undantag ser ut att göra samma sak — avbryta flödet, avveckla stacken, krascha programmet om inget fångar dem. Jag prövar den gissningen mot fyra konkreta program: en panik i en tråd som bara dödar sin egen tråd, mot en C++-exception som tar hela processen med sig, och `panic=abort` som avslöjar vad `panic!` egentligen är byggt för. Svaret hamnar inte där gissningen började, utan vid `Result` och `std::expected` — den jämförelse man faktiskt borde ha gjort från start.

Jens Riboe
Jens Riboe

21 aug. 2026

31 minuter i lästid

Rust syntax jämfört med C++

Rust syntax jämfört med C++

Den här artikeln jämför inte C++ och Rust utifrån säkerhet, utan utifrån grammatik: var parenteserna försvinner, var klamrarna plötsligt blir obligatoriska, och varför ett uttryck utan semikolon kan vara hela funktionens returvärde. Skillnaderna är små var för sig — en flyttad parentes här, ett obligatoriskt fältnamn där — men tillsammans förklarar de varför Rust-kod känns bekant och främmande på samma gång. Det handlar inte om vad som är bäst, utan om var du kommer att snubbla första gången du skriver Rust med C++-reflexer i fingrarna.

Jens Riboe
Jens Riboe

14 aug. 2026

47 minuter i lästid

Fem skäl att välja Rust över C++

Fem skäl att välja Rust över C++

Fem klassiska C++-buggar som kompilerar utan en enda varning, kör utan att krascha och ändå svarar fel. Alla fem stoppas av Rust-kompilatorn — men jag kör också g++, sanitizers och clang-tidy mot varje exempel, för C++ hittar fler av dem än ryktet säger. Det intressanta är var verktygen tar slut.

Jens Riboe
Jens Riboe

10 aug. 2026

89 minuter i lästid

Apollo 11 och kvinnan bakom koden

Apollo 11 och kvinnan bakom koden

Apollo 11 bars inte bara av raketer, bränsle och mod, utan också av ett styrprogram som visste hur det skulle misslyckas utan att falla sönder. I centrum står Margaret Hamilton, hennes "what if"-tänkande, och en kodbas där feltolerans, klassisk bildning och torr internhumor levde sida vid sida.

Jens Riboe
Jens Riboe

12 apr. 2026

37 minuter i lästid

Hur gör man en Ralph Loop?

Hur gör man en Ralph Loop?

Starta ett skript, gå på lunch, kom tillbaka till färdig och testad kod. Det är inte science fiction — det är en Ralph Loop. Uppkallad efter Ralph Wiggum från The Simpsons låter tekniken Claude Code arbeta autonomt genom hela uppgiftslistor. I denna artikel går jag igenom hur det fungerar, hur man sätter upp det ordentligt, och vad communityn lärt sig av att köra det på riktiga projekt.

Jens Riboe
Jens Riboe

6 apr. 2026

27 minuter i lästid

Kan du alla nya AI termer?

Kan du alla nya AI termer?

AI-världen svämmar över av förkortningar och buzzwords. Här är en ordlista över de vanligaste termerna — från LLM och RAG till YOLO Mode och Ralph Loop.

Jens Riboe
Jens Riboe

22 mars 2026

16 minuter i lästid

OpenClaw - Det ska vara en hummer i år

OpenClaw - Det ska vara en hummer i år

AI har gått från att svara på frågor till att faktiskt göra saker — och mitt i detta skifte har en österrikisk utvecklare och en röd hummer hamnat i centrum. OpenClaw är det öppna ramverk som låter vem som helst köra sin egen AI-agent lokalt, kopplad till valfri språkmodell och styrbar via WhatsApp, Telegram eller Discord. Den här artikeln går igenom projektet, tekniken bakom det, vad som krävs av hårdvara och intelligens, och varför det kan vara det mest intressanta som hänt inom öppen källkod under 2026.

Jens Riboe
Jens Riboe

15 mars 2026

39 minuter i lästid

Så här kopplar du SMHI till Claude AI

Så här kopplar du SMHI till Claude AI

Kan man prata sig till en fungerande MCP-server? I den här artikeln bygger jag en komplett integration mellan Claude Code och SMHI:s Open Data – med stdio, JSON-RPC och ett tydligt “plan först, kod sen”-upplägg. Jag testar att diktera via Wispr Flow (ovant, men förvånansvärt smidigt), låter Claude ta fram projektstruktur och verktyg, och landar i en server som faktiskt levererar väderdata på riktigt. På vägen dyker klassiska fallgropar upp: Git som går lite för fort, distribution utan node_modules och varför en enda esbuild-bundle kan vara skillnaden mellan “meh” och “magiskt”.

Jens Riboe
Jens Riboe

16 feb. 2026

50 minuter i lästid

Asynkrona operationer med coroutines

Asynkrona operationer med coroutines

Bygg ett litet runtime-system för coroutines i C++: en scheduler som återupptar coroutines på main-thread och en thread-pool som utför fil-I/O. Vi läser textfiler radvis via co_await, kör flera coroutines samtidigt och diskuterar liveness/avslut utan att blockera huvudprogrammet.

Jens Riboe
Jens Riboe

21 jan. 2026

38 minuter i lästid

Asynkron filläsning med C++20 coroutines

Asynkron filläsning med C++20 coroutines

C++20-coroutines är kraftfulla – men C++ lämnar ovanligt mycket av “runtime-bitarna” åt dig. I den här artikeln bygger vi ett minimalt, begripligt exempel på asynkron filinläsning med `co_await`, och jämför med motsvarande lösning i Node.js. Du får en konkret mental modell för `awaitable`/`promise_type` och ser exakt när exekveringen hoppar mellan trådar. Resultatet är en praktisk startpunkt du kan återanvända i egna projekt.

Jens Riboe
Jens Riboe

1 jan. 2026

48 minuter i lästid