Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på Twitter

Callista medarbetare Jan Västernäs

Vi har haft konferens

// Jan Västernäs

En långhelg i Cinque Terre, Italien. Det blev flyg till Genua (gullig liten flygplats) och sedan buss en timme till Levanto där vi bodde. Därifrån kan man vandra till första byn eller ta tåget mellan alla byarna, väldigt smidigt !

Callista medarbetare Andreas Mossljung

Kafka Summit London 2022

// Andreas Mossljung

En rapport från Kafka Summit i London som avslutades i går. Äntligen gick det att träffas på riktigt efter alla online-konferenser och vi var över 1000 deltagare som samlats på hotellet i Greenwich. Pandemin verkar man nu definitivt lämnat bakom sig i England och förutom några få som bar munskydd var allt som vanligt igen.

Callista medarbetare Erik Lupander

Rapport från vårens bootcamp

// Erik Lupander

Två gånger per år släpper vi våra ordinarie uppdrag och samlas i inspirerande miljöer för att i dagarna två förkovra oss eller grupparbeta inom just det man själv är nyfiken på. Vi kallar konceptet för “Bootcamp” - vår egen variant av hackathon.

Callista medarbetare Björn Beskow

Dynamic Multi Tenancy with Spring Boot, Hibernate and Liquibase Part 7: Combining the Shared Database pattern with Database per Group of Tenants (a.k.a. Shard) for additional scalability

// Björn Beskow

In the last part, we implemented the Shared Database with Discriminator Column pattern using Row Level Security. The Shared Database with Discriminator pattern scales very well, but eventually the Shared Database will become a bottleneck. In this part, we’ll tweak the Database per Tenant pattern into Database per Group of Tenants (or Shard). Combined with the Shared Database with Discriminator pattern, we can reach yet another level of scalability.

Callista medarbetare Anders Forssell

Dynamic Lists with SwiftUI Using Swift Concurrency for Asynchronous Data Loading

// Anders Forssell

In a previous blog post, I described an implementation of lists in SwiftUI where items are loaded dynamically as the the user scrolls and additional data for each item is fetched asynchronously. I also wanted to provide a reusable infrastructure for lists where you could concentrate only on the data fetching logic and the presentation of a single list item, but didn’t quite reach that goal.

In this blog post, I try to improve the list infrastructure and the separation of concerns between the data model and UI. I also want to test the Swift Concurrency features (async/await etc) for the asynchronous parts, and see how well it plays with SwiftUI.

Callista medarbetare Anders Forssell

Vi välkomnar Marcus Björklund till Callista

// Anders Forssell

Vi har fått tillökning vid vårt Göteborgskontor och säger varmt välkommen till Marcus Björklund. Marcus börjar denna veckan och är redan igång med ett spännade uppdrag där han tillsammans med några kollegor arbetar med molnbaserad API-utveckling i större skala.

Callista medarbetare Erik Lupander

Datadriven reseplanering för elbilar – kostnadseffektivt med AWS och InfluxDB Presentation

// Erik Lupander

Presentation från Cadec 2022 Digital

Som nybliven elbilsförare ställs man inför en helt ny värld av laddkontakter, reseplanering och räckviddsångest. Det här föredraget handlar om hur föredragshållaren på ett enkelt och kostnadseffektivt vis byggde en molnbaserad lösning för att samla in mätvärden kring antalet lediga snabbladdare och hur denna data kan analyseras för att förutspå tillgänglighet inför en längre semester- eller tjänsteresa. Föredraget kommer lyfta fram hur en kombination av egenutvecklad kod, AWS-tjänster, API:er och en tidsseriedatabas åstadkom en lösning som är förvånansvärt lättviktig och billig i drift. Viss fördjupning kommer ske kring tidsseriedatabaser och varför de är så ytterst väl lämpade för att effektivt lagra och söka i det vi i dagligt tal kallar “metrics”.

Callista medarbetare Pär-Anton Westbom

Svelte – frontend på frammarsch som gör det lite annorlunda Presentation

// Pär-Anton Westbom

Presentation från Cadec 2022 Digital

Web-app utveckling idag har tre stora spelare React, Angular och Vue. På det stora hela är det inte jättemycket som skiljer dem åt – de är tillståndsdrivna, deklarativa och använder sig av DOM-jämförelser för att uppdatera det visuella användargränssnittet. Idag jagar man prestanda, utvecklarupplevelse (DX) och tillgänglighet. Svelte lovar bättre prestanda, enkelhet för utvecklaren (DX) och bättre tillgänglighet. Det har ett komponentbaserat, deklarativt sätt att göra det på, men gör det annorlunda än de stora spelarna idag. Svelte har ökat mycket i popularitet på sista tiden.

Callista medarbetare Björn Beskow Callista medarbetare Björn Genfors

Ubiquitous Language - från nybörjare till expert på 30 minuter Presentation

// Björn BeskowBjörn Genfors

Presentation från Cadec 2022 Digital

Ubiquitous Language - att låta verksamhetens språk genomsyra IT-miljön ända ner i programkoden - är ett centralt begrepp inom domän-driven design (DDD). Hur vi talar om, klassificerar och benämner de centrala begreppen i vår domän är ofta viktigare för slutresultatet än enskilda teknikval. Vi börjar från början med en genomgång av terminologihantverkets grunder. Därefter följer en beskrivning av hur man kan hantera en kontrollerad vokabulär rent datatekniskt, och vi går igenom några grundläggande principer för begreppshantering i de icke-triviala lösningarna. Slutligen sätter vi in denna kunskap i en praktisk utvecklarkontext - hur terminologiarbetet kan vägleda oss i både smått (såsom datamodellering, identifiering av aggregat och domän-events) som stort (såsom mikrotjänster, utformning av API:er, bounded contexts och context maps)

Callista medarbetare Pär Wenåker

WebAssembly - en runtime som rymt från browsern Presentation

// Pär Wenåker

Presentation från Cadec 2022 Digital

För mer än 25 år sedan introducerades JavaScript för att ge liv åt då ganska platta och livlösa webbsidor. Sedan dess har JavaScript utvecklats enormt och blivit ett av de vanligaste programmeringsspråken och JavaScript-plattformen används på fler ställen än bara i webbläsaren. WebAssembly är den första nya universellt stödda runtimen och språket för webbläsaren som har introducerats sedan JavaScript. Bara det faktum att webbläsare är en av de vanligaste plattformarna gör WebAssembly intressant, men WebAssembly har precis som JavaScript rymt från browsern och används i en massa andra sammanhang, t.ex. som runtime för blockchain, inom serverless och edge computing samt även som en fristående runtime. Det här föredraget kommer att ge en introduktion till WebAssembly och visa på några av användningsområdena, samt ge en inblick i hur framtiden kan se ut för denna fortfarande unga teknologi.

Callista medarbetare Erik Englund

Frontend med finess - kolla in Vue.js Presentation

// Erik Englund

Presentation från Cadec 2022 Digital

Djungeln med JavaScript-baserade frontendramverk kan tyckas snårig och svåröverskådlig för den oinvigde. Vart ska man vända sig för att uppleva den lägsta tröskeln utan att göra avkall på kompetent funktionalitet? Teamet bakom Vue.js utlovar ett högpresterande, progressivt och syntaktiskt enkelt ramverk, där god dokumentation ligger till grund för ett lågt insteg. Under denna presentation tar vi oss an Vue.js “Single File Component”-modell och demonstrerar uppbyggnaden av en Vue-applikation.

Callista medarbetare David Ström

Förstå meningen med meningen med hjälp av NLP Presentation

// David Ström

Presentation från Cadec 2022 Digital

De senaste 10 åren har området maskininlärning formligen exploderat och nya appar och tjänster som använder sig av denna teknik dyker upp som svampar ur jorden. Men vad är grunden till denna exponentiella tillväxt? Vad behöver jag som utvecklare kunna för att dra nytta av och implementera mina egna lösningar med denna teknik? I denna presentation borrar jag djupare i dessa frågor för att hitta svar som förhoppningsvis väcker upptäckarlusten till liv. Vi kommer titta på hur maskininlärning kan användas inom Natural Language Processing (NLP) som ett exempel. En av styrkorna med maskininlärning är dess breda tillämpbarhet och just därför kommer vi att undersöka hur lärdomar från maskininlärning inom NLP även skulle kunna användas inom andra områden. För att demonstrera att detta faktiskt kan leda till någonting praktiskt användbart så kommer vi titta närmare på hur vi med dessa tekniker t.ex. kan bygga en chatbot.

Callista medarbetare Anders Forssell

Ännu en digital Cadec har nu sänts

// Anders Forssell

Nu har vi genomfört ännu en Cadec i form av en digital live-sändning. Denna gång blev det extra dramatiskt då vi råkade ut för ett strömavbrott mitt i, precis när Pär Wenåker just skulle börja berätta om hur WebAssembly fungerar under huven. Men vi lyckades veva igång maskineriet igen när strömmen kom tillbaka efter en halvtimma. Pär kunde fortsätta sitt föredrag som om ingenting hade hänt och vi kunde ta konferensen i mål som planerat.

Callista medarbetare Katarina Askdal

Callista – The story

// Katarina Askdal

I år firar Callista 22 år. Allt började i Göteborg med några arkitekter/utvecklare som ville bygga bolag och anställa likasinnade. Tanken var redan från början att alla anställda skulle erbjudas delägarskap. Mycket har hänt under dessa år och det har format oss till det bolag vi är idag.

Callista medarbetare Anders Forssell

Snart dags för Cadec 2022

// Anders Forssell

Snart är det dags för 2022 års upplaga av Cadec – konferensen för utvecklare som vill utvecklas. Vi har laddat med ett intressant program som har både bredd och djup samt en hel del live-kodning. På onsdag 2 februari kl. 13.00 startar sändningen som sker live från studio tre14 i Göteborg. Det kommer att gå att ställa frågor direkt till föreläsarna, svar ges i mån av tid efter varje presentation.

Callista medarbetare Erik Lupander

Path tracing with Golang and OpenCL, part 1

// Erik Lupander

Back in 2020 I spent an unhealthy amount of time implementing The ray tracer challenge book in Go, which I also blogged about. After finishing the book, I re-purposed the codebase into a simplistic Path Tracer. While the results were rather nice compared to the quite artificial ray traced images, basic unidirectional path tracing is really inefficient, taking up to several hours for a high-res image.

This “just for fun” blog series is about how I used OpenCL with Go to dramatically speed up my path tracer. Part 1 deals with the basics of path tracing while latter installments will dive deeper into the Go and OpenCL implementation.