Blogg
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
With Spring Boot 3.2 and Spring Framework 6.1, we get support for Coordinated Restore at Checkpoint (CRaC), a mechanism that enables Java applications to start up faster. With Spring Boot, we can use CRaC in a simplified way, known as Automatic Checkpoint/Restore at startup. Even though not as powerful as the standard way of using CRaC, this blog post will show an example where the Spring Boot applications startup time is decreased by 90%. The sample applications are based on chapter 6 in my book on building microservices with Spring Boot.
KotlinConf 2024 ägde rum i Köpenhamn den 22-24 maj och var en stor succé. Med över 2 000 deltagare från hela världen, 102 talare och 77 sessioner, var konferensen en guldgruva av information och inspiration för alla som är intresserade av Kotlin. Från Callista var vi ett gäng som hade några inspirerande dagar i Köpenhamn - här kommer en första presentation av några intressanta föredrag.
With Spring Boot 3.2 and Spring Framework 6.1, we get support for some really exciting new features like Java 21, including Virtual threads, and shorter startup times using Coordinated Restore at Checkpoint (CRaC). In this blog post, I will use the source code in the 3rd edition of my book on building microservices with Spring Boot and describe how to upgrade it to Spring Boot 3.2 and Java 21.
Här presenterar vi andra upplagan av Callista Tech Radar Light - en kartläggning av av hur teknikanvändningen ser ut hos våra kunder och kollegor i branschen.
För tre veckor sen klubbades slutligen AI-förordningen av EU. Det betyder att alla reglerna däri kommer att börja gälla pö om pö från och med om ett halvår och upp till som mest 36 månader framåt i tiden, men där majoriteten av reglerna träder i kraft om mellan 12 och 24 månader.
Jag har varit på Cloud Native & Container Day. Här kommer en kort reflektion och takeaways från årets evenemang och lite om vad som är hett och vad som kommer.
It was the best of
java.time.Date
, it was the worst ofjava.utl.Date
.
- not Charles Dickens
Använder du forfarande java.util.Date
?
Gör inte det.
Varför? Det finns bättre sätt att hantera både kalenderdatum och tid i java.time
paketet. Ta 10 minuter för att förstå vad klasserna i java.time
kan göra för dig.
Stora språkmodeller (LLM:er) är grunden för den kända ChatGPT, men det finns andra tillämpningar. Ibland vill man kunna arbeta med specifik data, t.ex. ny eller privat data, som LLM:en ännu inte har tränats på eller aldrig kommer kunna tränas på. Det är här Retrieval Augmented Generation (RAG) kommer in i bilden. RAG ger oss möjlighet att berika den generella språkkunskapen hos en LLM med specifik kunskap från andra källor.
I detta föredrag kommer Niklas bland annat att gå igenom begrepp som tokenisering, inbäddning, vektordatabaser och hämtning. Han kommer även att beskriva och demonstrera olika användningsfall med hjälp av en LLM och ett RAG-ramverk som båda finns tillgängliga som öppen källkod.
Automatisering av acceptanstester har varit ett återkommande tema på Cadec genom åren. Det är ofta svårt och kostsamt, men har kommit att bli en viktig framgångsfaktor för storskaliga mikrotjänst-arkitekturer och en förutsättning för kontinuerlig driftsättning.
För 18:e året arrangerades utvecklarkonferensen Jfokus i Stockholm. Jag var som vanligt på plats som scenvärdsanvarig men hade tid att vara med på Universitetsdagen på måndagen och se många bra tal under två fantastiska dagar. Här kommer några reflektioner och en liten topplista över de presentationer som jag rekommenderar att man tittar på.
Att designa ett system med krav på hög tillgänglighet kräver genomtänkta avväganden gällande hur vi hanterar beroenden mellan komponenter, både inom vårt system och mot befintliga komponenter utanför systemet. Dessa befintliga komponenter kommer vi förmodligen ha ytterst begränsade möjligheter att påverka, och systemdesignen måste därmed göras utifrån de givna förutsättningarna.
Multiplattformsappar, både för webb och mobil, har blivit något av den heliga graalen inom frontend-utveckling. Även om multiplattform kan kännas skrämmande för nativespecialister så lockar möjligheten att ha en enda kodbas som ett generellt botemedel mot ökade kostnader och större komplexitet.
Om AI tidigare varit ett abstrakt koncept så har det nu på allvar blivit en del av vår vardag, och ett fenomen som kan antas växa kraftigt i betydelse under förutsägbar tid framöver. Något man kan uppleva som spännande eller skrämmande, beroende på tillämpning.
Kubernetes Ingress har tjänat oss väl genom åren genom att standardisera hanteringen av inkommande extern trafik till ett Kubernetes-kluster. Dock har Ingress-specifikationen ett antal brister och begränsningar vilket ofta leder till användning av leverantörsspecifika tillägg med hjälp av annoteringar eller CRD:er. En och samma Ingress-definition blandar delar som berör både klusteroperatörer och applikationsutvecklare, något som resulterar i ett oönskat delat ansvar för att hålla Ingress-definitionen uppdaterad.
För att säkra att rätt tillgänglighetskrav ställs på olika funktioner inom ett system behöver vi titta på krav utifrån de verksamhetsprocesser som nyttjar funktionerna.
Taking a quick look at building a backend-driven web GUI using htmx and Go templ.
Det finns många godbitar i Java 21 men den största av dom alla pratar ingen om.
Hösten 2003 kom Eric Evans bok om Domain-Driven Design ut för första gången. Den ansågs som banbrytande och var en ögonöppnare för många inom mjukvaruutveckling. Den jämfördes med Martin Fowlers böcker om designmönster men det fanns en avgörande skillnad.
Evans införde konceptet “domändriven utveckling”, där huvudsyftet var att skapa lösningar nära kopplade till den verksamhetsdomän som systemet skulle betjäna och samtidigt bryta ner dess komplexitet.
I denna text utforskar jag behovsdomäner och hur de kan adresseras genom tre olika aspekter: operativ, taktisk och strategisk. Jag presenterar lite erfarenheter jag samlat på mig genom åren och som jag önskade att någon erfaren arkitekt hade förklarat för mig tidigare.
Taking a quick look at Erlang-style actor architecture using Go with Ergo Framework.
Vi var några callistakollegor som satt en lunch på kontoret och pratade nostalgiskt om datorspel på “the good old times”. Det var emulatorer för gamla datorer och arkadspel på campingplatsernas arkadhallar. Det var så idén föddes om att starta ett projekt att bygga ett eget arkadkabinett till kontoret. Vi har sedan tidigare ett flipperspel och fußball som vi kan spela på. Ett arkadspel skulle göra sig finfint i vår “spelhall”.