
Nyheter och blogg

Ny kurs om Docker och Docker Compose
Docker är helt klart en kolossalt användbar och populära teknik. Att kunna dra igång en databas-server på mindre än en minut, att kunna kompilera och köra C++ applikationer utan att först installera GCC/Make/CMake/..., att kunna dra igång en Express.js server direkt utan att a rätt version Node.js/NPM på plats är helt enkelt fantastiskt!

Välkommen tillbaka - Höstterminen börjar
Semestervädret efter midsommar har väl lämnat en hel del extra att önska. Här på Ribomation har vi inte legat på latsidan, utan genomfört en hel del kodmässiga renoveringar av våra system.

Glad Midsommar!
Vädret i juni så här långt har ju varit helt fantastiskt och vi håller tummarna för att det fortsätter på det viset, varvat med lite regn så att inte all växtlighet torkar ut. Nu tar vi sommarledighet och öppnar återigen i augusti.

Glöm AI, har du testat TI ännu?
I ett tidigare utskick diskuterade jag Chat GPT och för- och nackdelar med att använda AI stöd i sitt arbete. Ett annat relaterat AI stöd; är GitHub's Co-pilot, som par-programmerar direkt med dig och den kod du skriver i din moderna IDE. Ytterligare en variant att känna till, är TI.

Har du testat Chat GPT ännu?
Vinterns stora snackis inom teknikområdet har helt klart varit Chat GPT. Ett helt enastående AI system, som utgör vårt tids orakel. Jag hade en liten pratstund om ditten och datten med denna. Häng med.

Spring kursen uppdaterad för Spring Boot 3
Kursen om Spring Framework och Spring Boot har blivit uppdaterad för Boot version 3 och Framework version 6.

Uppdaterad kurs om Modern C++ threads
Kursen om trådprogrammering (threads programming) har genomgått en omfattande uppdatering. Nytt är att den tar avstamp i C++20 och std::jthread
. Sedan går vi hela vägen ned till PThreads C API för att förstå hur allt fungerar.

Ny kurs om Spring Batch
Spring Batch är ett ramverk, byggt ovanpå Spring Framework, som tillhandahåller alla man behöver för att designa robusta och skalbara batch applikationer. Denna kurs lär dig allt om item-readers, item-processor, item-writers, tasklets och mycket mer.

Vad är virtuella trådar i Java?
I förra artikeln gjorde jag en historisk exposé om coroutines, som en inledning till denna artikel om virtuella trådar i Java 19. Här går jag igenom vad detta är och hur det på ett markant sätt skiljer sig från vanliga trådar i Java, samt var är poängen med det.

Uppgången, fallet och återkomsten av coroutines
I förra artikeln skrev jag om några av nyheterna i Java 19 såsom moderna former av mönster-matchning (pattern matching). I denna artikel, lägger jag den historiska grunden för en serie artiklar om corutiner och hur Java programmering kommer att förändras med virtual threads och structured concurrency från project Loom, i takt med att detta rullas ut i de följande versionerna av Java.

Java version 19 är här
Java 19 innehåller ett antal förhandsvisningar av kommande funktionalitet. Här ska vi kika på några moderna former av mönster-matchning (pattern matching).

Användning av await - asynkron programkod
Genom att skriva await framför anropet till en promise-returnerade funktion blir asynkron programkod betydligt enklare att förstå och bygga vidare på. Detta är del 3 i vår serie om asynkron programkod i JavaScript.

3 former av asynkron bearbetning i JavaScript, del 2
Ett promise objekt erbjuder ett löfte om ett framtida värde och utgör ett mer angenämt verktyg för att skriva asynkron programkod i JavaScript. Detta är del 2 i vår artikelserie.

3 former av asynkron bearbetning i JavaScript
Asynkron bearbetning/hantering (eng. asynchronous computation)? I korthet, innebär det att anropa en funktion vid ett senare tillfälle när resultatet av en operation (t.ex. ett musklick eller ett HTTP anrop) är klart.

Node.js kursen uppdaterad
Kursen om Node.js har just blivit uppdaterad och moderniserad. Vi använder nu ESM (ECMAScript Modules) i alla våra större programexempel.

Sommaren snart slut
Sommaren går nu mot sitt slut och vi har laddat kurskalendern med många nya datum fram till jul.

Nu är det äntligen Midsommar
Sommaren och semestern är här och vi håller stängt fram till den 1 augusti.

Oj, är sommaren här!
Oj, vad tiden går fort när det är mycket att göra. Vi har under våren genomfört ett flertal företagsanpassade kursen, samt fjärrkurser via Zoom.

Glad Påsk, 2022
Glad Påsk önskar Ribomation

Första april, 2022
Om aprilskämt i en svunnen tid.

Java version 18 har publicerats
I mars 2022 släpptes version 18 av Java. Antalet nyheter är tämligen begränsat i denna version, men jag tar upp kompilerbara kodsnuttar i JavaDoc.

Ny kurs om C++ templates
Idag presenterar vi en helt ny kurs om C++ templates. Du får lära om allt du kan tänkas vilja veta om detta intressanta och för C++ helt vitala teknikområde.

Så här fungerar Log4j buggen Log4Shell
En grundlig genomgång av log4j/log4shell buggen med kompletta kodexempel för att illustrera hur allvarligt hot denna utgör.

Gott Nytt År 2021
Vi önskar alla våra kunder ett riktigt Gott Nytt År och ett hopp om att Corona pandemin går mot sitt slut under 2022.

God Jul 2021
Vi önskar alla våra kunder en riktigt God Jul och skänker en förhoppning att pandemin ska vara över snart.

Dekompilering och felsökning i Oslo
Hur jag dubblerade antalet samtidiga HTTP anrop genom att dekompilera och hitta en bugg i ett bibliotek för anrop av webb-tjänster

Kryptering hos den galna kon
Hur jag byggde en krypteringslösning för en bank i Zürich, samtidigt som jag hamnade hos den galna kon i staden

Felsökning på Arlanda
Hur jag hittade ett allvarligt prestandaproblem för en kund medan jag väntande på ett försenat flyg.

Minnesläckage i Valencia
Hur jag identifierade ett svårfunnet Java minnesläckage i Valencia

Höstterminen börjar
Hösten är här

Spring Framework & Boot
Ny kurs om Spring Framework och Spring Boot

Glad Midsommar
Så var sommaren äntligen här

Vad är Java Records?
Så här kommer du igång med att använda Records i Java 16.
/VBGqMEIod0-708.jpeg)
Vad är en Progressive Web App (PWA)?
Kortfattad genomgång av vad som menas med en progressiv webbapplikation (PWA)

Vad är Server-Side Rendering?
Principen för Server-Side Rendering (SSR)

Vad är SPA?
Principen för Single-Page Application (SPA)

Vad är AJAX?
Hur den moderna webb-arkitekturen evolverat under tre decennier

När jag av misstag sänkte mail-servern på KTH
En berättelse från en "svunnen tid" om vådan av auto-mail handlers

Vad fanns före webben?
En kort historik om föregångare till internet under 1980-talet.

Vad är cookies?
En kort historik om cookies med en personlig touch

Vår teknikstack
Vår teknikstack (Eating our own dog food)

Glad Påsk
Glad Påsk och historien bakom HTTP 418

Java 16
Java version 16 har just blivit tillgänglig

Vad är Node.js?
Några ord om server-side JavaScript, dvs Node.js?

Vad är server-less?
Vad innebär begreppet server-less?

Clean Code
En kurs om hur du kan städa upp i existerande kod med hjälp av clean code

Mer om C/C++
Mer om programspråket C++

Zoom
Att koppla upp sig med Zoom

Om fjärrkurser
Att arbeta och utbilda på distans

Java 26 år
Språket Java fyller 26 år i vår

Ny kurs om C++ för Minnesbegränsade System
Ny kurs om C++ for Memory Constrained Systems

Mitt C++
Hur jag började programmera i C++

C++
Varför språket C++ skapades

Gott Nytt År 2020
Vi önskar alla våra kunder ett riktigt Gott Nytt År och hoppas på att nästa blir bättre.

God Jul 2020
Vi önskar alla våra kunder en riktigt God Jul, trots att den präglas av Corona pandemin.