Blogg / Artiklar / Nyheter
AI AJAX Angular Async BGP C++ Clean-Code Coroutines E-post Firebase GIT Google Helg Historik HTTP IntroScope Java JavaScript JDBC Kursnyheter Log4j Loom Nodejs Nuxt PWA SOAP SPA Spring SSR Templates Threads Vue Zoom
De senaste artiklarna

Har du testat Chat GPT ännu?
5 april 2023
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 Boot 3
18 mars 2023
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
17 mars 2023
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.
Skriverier under 2023
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.
Jag utgår från att du inte missat vårvinterns stora teknik-snackis, nämligen Chat GPT från Open AI. Reaktionerna har varit allt från förundran till förskräckelse. Oavsett vad man själv tycker i frågan, så är det ett faktum att AI finns enkelt...
Läs hela textenCirka 7 minuter att läsa
Spring kursen uppdaterad för Boot 3
Kursen om Spring Framework och Spring Boot har blivit uppdaterad för Boot version 3 och Framework version 6.
Kursen om Spring Framework och Spring Boot har blivit uppdaterad för Boot version 3 och Framework version 6. Notabelt är att Spring nu utgår från Java version 17 (senaste LTS), vilket innebär bl.a. stöd för Java records. Vidare, så har man lagt...
Läs hela textenCirka 2 minuter att läsa
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.
Kursen om trådprogrammering (threads programming) har genomgått en omfattande uppdatering. Nytt är att den tar avstamp i C++20 och std::jthread och fokuserar på att beskriva och förklara alla delar av biblioteket som handlar om trådning. Efter att...
Läs hela textenCirka 2 minuter att läsa
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.
Idag har jag glädjen att presentera en helt ny kurs, som lär dig allt du behöver veta om att designa batch applikationer i Java, med Spring Batch. En batch applikation innebär att behandla en stor mängd data sekventiellt utan interaktion eller...
Läs hela textenCirka 2 minuter att läsa
Skriverier under 2022
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.
Det har nu gått ett flertal veckor sedan Java 19 släpptes och om du följt nyhetsflödet kring Java så har du troligtvis hört om begreppet virtuella trådar (Virtual Threads). Vad är då detta? I denna artikel tänkte jag reda ut begreppen och förklara...
Läs hela textenCirka 9 minuter att läsa
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.
Det här är andra delen av min artikelserie om nyheterna i Java 19. Det rör sig om väldigt nya nyheter, eftersom de utgör förhandsvisningar (preview) och även s.k. ruvande nyheter (incubating), d.v.s. kort och gott nya språkegenskaper som man håller...
Läs hela textenCirka 11 minuter att läsa
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).
Java JDK version 19 släpptes i förra veckan. Nu mera släpper Oracle en ny version två gånger per år (vår och höst). Version 19 innehåller ett antal förhandsversioner av funktionalitet (preview features), som vi ska kika på i detta inlägg. Ny...
Läs hela textenCirka 7 minuter att läsa
Användning av await, del 3 av serien om 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.
Den här artikeln tar vid direkt efter där förra veckans artikel slutade. Det vi diskuterade förra vecka var begreppet promise och hur du använder det i JavaScript. Den första artikeln i denna serie diskuterade call-back funktioner och de problem med...
Läs hela textenCirka 7 minuter att läsa
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.
Den här artikeln tar vid direkt efter där förra veckans artikel slutade. Det sista vi tog upp förra veckan var begreppet call-back hell, som innebär att varje fortsättning i programexekveringen efter någon form av väntetid, utförs av en nästlad...
Läs hela textenCirka 8 minuter att läsa
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.
Vad innebär 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. Funktionen som...
Läs hela textenCirka 5 minuter att läsa
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.
En s.k. disruptiv uppfinning, innebär ett nytillskott till en marknad eller annan form av intressegruppering, som i grunden förändrar spelreglerna, spelplanen och vilka aktörer som blir ledande. Man kan utan tvekan hävda att när Ryan Dahl...
Läs hela textenCirka 10 minuter att läsa
Sommaren snart slut
Sommaren går nu mot sitt slut och vi har laddat kurskalendern med många nya datum fram till jul.
Sommaren går nu mot sitt slut, efter en härlig klassisk sommar med ömsom sol och regn. Vi kan dock njuta av ytterligare några fina högsommardagar. När jag skriver detta (en sen eftermiddag) är det 29 grader utanför i skuggan. Jag hoppas du har haft...
Läs hela textenCirka 2 minuter att läsa
Nu är det äntligen Midsommar
Sommaren och semestern är här och vi håller stängt fram till den 1 augusti.
Efter en osedvanligt sen och kall vår har det blivit dags för Midsommar. Gårdagen bjöd på högsommarväder medan dagens väder mer liknar november. Vi håller tummarna för att fredagens väder, dvs Midsommarafton, blir mer som tisdagen än som onsdagen....
Läs hela textenCirka 1 minut att läsa
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.
Vi har under våren varit helt fullbokade med såväl företagsanpassade kurser, som fjärrkurser via Zoom. Så till den milda grad att vi helt missat att uppdatera vårt kursschema med datum för hösten. 😳 Stay tuned, som man säger. Vi jobbar på det just...
Läs hela textenCirka 1 minut att läsa
Glad Påsk, 2022
Glad Påsk önskar Ribomation
Så är då våren här äntligen, efter att tvekat betänkligt hittills under april. Passa på och njut ute i vårvärmen och ladda D vitaminer. På torsdag börjar Påsken med Skärtorsdag, vilken enligt Wikipedia, har fått namnet efter "Skär" som...
Läs hela textenCirka 1 minut att läsa
Första april, 2022
Om aprilskämt i en svunnen tid.
I dag är det första april och som brukligt publiceras en mängd aprilskämt. Jag tänkte inte göra det här, utan däremot berätta om skämt/pranks jag gjorde på den tiden det begav sig och jag var doktorand på KTH i Stockholm. På den här tiden använde vi...
Läs hela textenCirka 1 minut att läsa
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.
Version 18 av programspråket Java är en så kallad Non-LTS, vilket innebär en support-tid på bara sex månader, dvs fram till att nästa version släpps. Numera publicerar Oracle nya versioner två gånger per år, i mars respektive september. Dessa...
Läs hela textenCirka 7 minuter att läsa
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.
Det går knappast att skriva ett (icke-trivialt = seriöst) program i C++ utan att använda sig av färdiga templates. Huvuddelen av standardbiblioteket i C++ bygger på templates, såsom STL algorithms, iterators och containers. Emellertid, anses också...
Läs hela textenCirka 3 minuter att läsa
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.
I början av december 2021 drabbades Java världen av en shock, som det kommer ta lång tid att hämta sig från. Då publicerades en rapport om ett mycket allvarligt säkerhetshål i det mest vanligaste logging ramverket i för Java applikationer,...
Läs hela textenCirka 16 minuter att läsa
Skriverier under 2021
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.
Vi önskar alla våra kunder ett rikigt gott nytt år och ett hopp om att Corona pandemin går mot sitt slut under 2022. Bilden ovan är från nyårs-afton 2012 i centrala London, strax efter tolvslaget då det blivit 2013 och himlen vid Themsen är full av...
Läs hela textenCirka 1 minut att läsa
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.
Så har då Julfriden äntligen lägrat sig, efter ytterligare ett år präglat av Corona pandemin. Vi hoppas att du har klarat dig undan covid-19 eller frisknat till. Tills sist, koppla av nu och vi på Ribomation önskar dig en riktigt God Jul
Läs hela textenCirka 1 minut att läsa
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
Jag fick ett meddelande från min chef: Jens, we need you in Oslo. The customer cannot scale their new banking system, which is scheduled for deployment next month. Jump on a plane, go by train, ride on a horse or just hitchhike; but get your ass...
Läs hela textenCirka 4 minuter att läsa
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
Jag fick ett meddelande från min chef. Jens, we need you in Zürich. You need to brush up your skill-set in cryptography and hash-generating functions. Then come up with a solution for how to authenticate our monitoring Java agents when they attempt...
Läs hela textenCirka 3 minuter att läsa
Felsökning på Arlanda
Hur jag hittade ett allvarligt prestandaproblem för en kund medan jag väntande på ett försenat flyg.
Jag fick ett samtal från min chef: Jens, we need you in Hemel Hempstead. We have prospective customer with a system that keeps crashing. Get your ass up there, first thing tomorrow morning. Det här var för samma företag, jag berättade om i mitt förra...
Läs hela textenCirka 3 minuter att läsa
Minnesläckage i Valencia
Hur jag identifierade ett svårfunnet Java minnesläckage i Valencia
Jag var ute och gick med hunden en tidig morgon och min chef ringde på mobilen: God morning Jens, we need you in Valencia. There is a client with a severe hard-to-find memory leak in their business-critical application. Jag skyndade tillbaka hem och...
Läs hela textenCirka 3 minuter att läsa
Höstterminen börjar
Hösten är här
Efter en rekordvarm sommar, går vi nu in i hösten. Corona pandemin verkar äntligen bedarra (förhoppningsvis). Vi har uppdaterar vårat kursschema med datum för hösten både som fjärrkurser, men också klassrumskurser i våra lokaler på Östermalmstorg i...
Läs hela textenCirka 1 minut att läsa
Spring Framework & Boot
Ny kurs om Spring Framework och Spring Boot
Det finns inget Java ramverk som på ett mer genomgripande sätt förändrat hur vi designar och implementerar affärs-applikation under de senaste 15 åren som Spring Framework. Via Spring Boot är det lekande lätt att bygga själv-konfigurerande...
Läs hela textenCirka 1 minut att läsa
Glad Midsommar
Så var sommaren äntligen här
Så var sommaren äntligen här. Nu tar vi och firar Midsommar på traditionsenligt vis och så ses vi igen i augusti. Bilden här illustrerar hur det brukar var i praktiken just på Midsommar, men vi brukar ju alltid önska oss att just denna sommar så blir...
Läs hela textenCirka 1 minut att läsa
Vad är Java Records?
Så här kommer du igång med att använda Records i Java 16.
Java version 16, som släpptes i mars, bjöd på en riktigt stor syntaktisk nyhet, nämligen Records. I korthet, är det oföränderliga (immutable) klasser med förenklad syntax och automatgenererade åtkomst (access) metoder. Så, vad är då vitsen med detta...
Läs hela textenCirka 3 minuter att läsa
Vad är en Progressive Web App (PWA)?
Kortfattad genomgång av vad som menas med en progressiv webbapplikation (PWA)
Jag har i tidigare artiklar beskrivit hur webben evolverat från MPA (multi-page app) med AJAX till SPA (single-page app). Vidare, hur bristen på SEO (search engine optimization) i SPA resulterat i SSR (server-side rendering) respektive BGP (build...
Läs hela textenCirka 2 minuter att läsa
Vad är Server-Side Rendering?
Principen för Server-Side Rendering (SSR)
I förra artikeln skrev jag om Single-Page Applications och avslutande med att start-tiden inte är den största invändningen mot SPA, utan det är bristen indexerbart innehåll för sökmotorer, eftersom dessa bara ser rot-taggen. T2FMP När en webbläsare...
Läs hela textenCirka 3 minuter att läsa
Vad är SPA?
Principen för Single-Page Application (SPA)
I förra artikeln skrev jag om AJAX och avslutande med att den logiska slutpunkten av att dynamiskt bygga upp en webbsida via DOM API, är att enbart skicka över en root app tag, vilken sen ersätts med hela sid-innehållet. <body> <div...
Läs hela textenCirka 4 minuter att läsa
Vad är AJAX?
Hur den moderna webb-arkitekturen evolverat under tre decennier
När webben skapades för en sisådär 30 år sedan, byggde det på en enkel princip om state-less. Koppla upp, begära en fil, få tillbaka resultatet, samt koppla ned. Och så var det inte mer med det. För varje knapptryckning (state change) på en webbsida...
Läs hela textenCirka 2 minuter att läsa
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
Det jag ska berätta om denna gång hände för 30 år sedan och är glömt och förlåtet. Det var en tid då e-post fortfarande var en relativt ny företeelse och webben (så som vi känner den) inte startat ännu. KTH / TDS / PPS Vid denna tid jobbade jag som...
Läs hela textenCirka 3 minuter att läsa
Vad fanns före webben?
En kort historik om föregångare till internet under 1980-talet.
För cirka 30 år sedan skapades webben/nätet, eller mer tekniskt formulerat HTTP protokollet tillsammans med HTML som dokumentformat. Men det fanns föregångare! Gopher Gopher protokollet skapades ungefär samtida med HTTP, men betraktas som dess...
Läs hela textenCirka 3 minuter att läsa
Vad är cookies?
En kort historik om cookies med en personlig touch
När HTTP skapades för runt 30 år sedan, dvs webben/nätet, utgick man från en tämligen enkel modell. En webbläsare bad en server att skicka innehållet i en (HTML) fil och sen var det inte mer med det — dvs operationen vara helt state-less. Varje anrop...
Läs hela textenCirka 4 minuter att läsa
Vår teknikstack
Vår teknikstack (Eating our own dog food)
Vi är ju ett utbildningsföretag, som uteslutande vänder sig till verksamma programmerare. Det här innebär bland annat, att vi ständigt monitorerar ny teknik, nya ramverk och nya programspråk. Det här gör vi av två skäl, dels för att det faktiskt är...
Läs hela textenCirka 2 minuter att läsa
Glad Påsk
Glad Påsk och HTTP 418
Så är då våren här i full fart och Påskhelgen infaller i slutet på denna vecka och inleds med Skärtorsdagen, som också utgör den 1 april. Jag har inte för avsikt att dra ett eget aprilskämt, men tänkte berätta om ett annat. Den 1 april 1998...
Läs hela textenCirka 2 minuter att läsa
Java 16
Java version 16
Sedan några år tillbaka, kommer det två utgåvor av språket Java per år. Om allt går som planerat, så släpps version 16 under nästa vecka (16/3). Tanken med frekventa utgåvor är att stegvis introducera nya språk-konstruktioner. Vanligtvis förs en ny...
Läs hela textenCirka 1 minut att läsa
Vad är Node.js?
Några ord om server-side JavaScript, dvs Node.js?
Node.js har på mindre än ett decennium fullständigt ändrat perceptionen av JavaScript och vad språket kan användas för. Plattformen har klart kommit att starkt utmana Java som primär platform för applikationsutveckling. Det tekniska skälet är att...
Läs hela textenCirka 2 minuter att läsa
Vad är server-less?
Vad innebär begreppet server-less?
Begreppet server-less är inte en materialfråga utan snarare en ägarfråga. Det här utgör också fundamentet för cloud computing. När du designar och implementerar ett system som ska driftsättas på en molnplattform, dvs vara server-less, innebär det att...
Läs hela textenCirka 2 minuter att läsa
Clean Code
Städa upp i existerande kod
Att ta hand om och förvalta existerande kod är ett särskilt kunskapsområde och förutsätter en viss stoisk attityd. Emellertid, finns det bra metoder för att stegvis omvandla programkod till att vara mer hanterbar. Begreppet Clean Code innebär just...
Läs hela textenCirka 2 minuter att läsa
Mer om C/C++
Mer om programspråket C++
Jag började programmera i språket C under första halvan av 1980-talet. Ett av mina första gig var att skriva ett plotting system på en IBM PC AT, för ett av våra stora företag som tillverkar vitvaror. Från en textfil genererad av deras stordator...
Läs hela textenCirka 2 minuter att läsa
Zoom
Att koppla upp sig med Zoom
Att hålla fjärrkurser via Zoom är något vi har blivit experter på sedan i våras. Vid det här laget har vi undervisat många deltagare i ett flertal olika ämnen. Emellertid, det som fortfarande är en sk utmaning är första kursdagen och första...
Läs hela textenCirka 1 minut att läsa
Om fjärrkurser
Att arbeta och utbilda på distans
Coronan har nog för alltid ändrat vår uppfattning om arbete och utbildning. Efter ett drygt halvår med fjärrarbete känns det helt normalt att sitta hemma framför en kameralins och prata med arbetskamrater och/eller kursdeltagare. De flesta delar nog...
Läs hela textenCirka 1 minut att läsa
Java 26 år
Språket Java fyller 26 år i vår
Under våren var det 26 år sedan språket Java lanserades. Det hade skapats av James Gosling som en spinn-off på det då nyss nedlagda Project Green för inbyggda system hos SUN Micro Systems och det tillhörande språket Oak. I maj 1995 berättade...
Läs hela textenCirka 2 minuter att läsa
Ny kurs om C++ för Minnesbegränsade System
Ny kurs om C++ for Memory Constrained Systems
Jag har ju i tidigare nyhetsbrev uttryckt en viss extra omsorg om just språket C++. Under årens lopp har jag utbildat och vässat kunskaperna på 100-tals C/C++ programmerare på våra industriföretag. Ett återkommande spörsmål under kurserna är just...
Läs hela textenCirka 1 minut att läsa
Mitt C++
Hur jag började programmera i C++
Jag har en bekännelse att göra, som förhoppningsvis är lagd ad acta. Under 1980-talet programmerade jag primärt i C. Jag hade dock börjat kika på C++ under andra halvan av det decenniet. Jag tyckte språket var klart intressant även om det var aningen...
Läs hela textenCirka 1 minut att läsa
C++
Varför språket C++ skapades
Programspråket C++ skapades av Bjarne Stroupstrup i slutet på 1970-talet, som ett pragmatiskt sätt att implementera händelsedrivna simuleringssystem i programspråket C. Bakgrunden var att Bjarne efter slutförda studier på Århus universitet i Danmark,...
Läs hela textenCirka 1 minut att läsa
Skriverier under 2020
Gott Nytt År 2020
Vi önskar alla våra kunder ett riktigt Gott Nytt År och hoppas på att nästa blir bättre.
Så går då detta pandemi år mot sitt slut. Året har verkligen bjudit på utmaningar, där somliga mist en nära och kära i förtid och andra sjuknat in men återhämtat sig. Vi kan inte låta bli att visa en bild, som verkligen har blivit viral och...
Läs hela textenCirka 1 minut att läsa
God Jul 2020
Vi önskar alla våra kunder en riktigt God Jul, trots att den präglas av Corona pandemin.
Så har då Julfriden äntligen lägrat sig, i detta år som präglats av Corona pandemin. Vi hoppas att du har klarat dig undan covid-19 eller frisknat till. Under året har vi ställt om till att primärt genomföra fjärrkurser via det omåttligt populära...
Läs hela textenCirka 1 minut att läsa