Årtal: 2026
Här finner du alla artiklar publicerade under 2026, vilka det finns 16 av.
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
2 okt. 2026
47 minuter i lästid
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
29 sep. 2026
79 minuter i lästid
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
18 sep. 2026
45 minuter i lästid
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
11 sep. 2026
73 minuter i lästid
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
4 sep. 2026
50 minuter i lästid
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
28 aug. 2026
38 minuter i lästid
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
Jens Riboe
21 aug. 2026
31 minuter i lästid
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
14 aug. 2026
47 minuter i lästid
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
10 aug. 2026
89 minuter i lästid
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
12 apr. 2026
37 minuter i lästid
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
6 apr. 2026
27 minuter i lästid
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
22 mars 2026
16 minuter i lästid
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
15 mars 2026
39 minuter i lästid
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
16 feb. 2026
50 minuter i lästid
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
21 jan. 2026
38 minuter i lästid
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
1 jan. 2026
48 minuter i lästid