Välkommen tillbaka - Höstterminen börjar
4 minuter i lästid Helg

Välkommen tillbaka - Höstterminen börjar

Semestervädret efter midsommar har väl lämnat en hel del extra att önska. Emellertid, har det skapat tid för bokläsning, frågesport och mycket annat. Förhoppningsvis, är du nu utvilad och redo att ta tag i höstens utmaningar.

För egen del har det blivit en del renoveringar. Dels, en klädkammare, som fått nya vita väggar, ett trägolv, plus ny inredning, så att frugan och jag kan skryta med att vi nu har en walk-in closet. Dels, webbplatsen www.ribomation.se, som byggts om med Eleventy (11ty), version 2.0 och Twitter Bootstrap 5.3. Fast jag undrar om de kommer byta namn på denna till X Bootstrap. Vi får väl se... 😉

Eleventy

Eleventy är ett JavaScript ramverk för statiska webbsidor. Vilket innebär att indata i form av Markdown filer, Nunjucks template filer, dynamisk data från JavaScript, aggregeras ihop till kompletta HTML filer. Dessa, tillsammans med CSS, JS och bilder laddas upp till Google Firebase Hosting CDN, via en Docker container, som triggas av en push till den GIT repo koden sparas i. Containern körs i Google Cloud (GCP) Build och utför kommandon som npm ci, npm run build och npm run deploy.

CatLight

Byggprocessen övervakas från skrivbordet med CatLight, vilket är en liten tray icon som visar status på alla byggjobb. GCP Build pushar status-notiser till en pub-sub topic. Notiserna fångas upp av en annan Express.js/Node.js container, som dels sparar notiserna i en Firestore JSON DB och dels svarar på pollnings-anropen och formaterar JSON data i enlighet med CatLight Protocol.

Vue.js 3 / Composition API

För dig som redan gått en kurs hos Ribomation, är du redan bekant med kund-app:en My-Ribomation. Denna har också renoverats och designats på nytt med Vue 3 och Composition API, samt Bootstrap 5.3. Skillnaden i Vue mellan det förra Options API och det nya Compositions API är betydande och helt till den senares fördel. Koden blir både enklare, bättre och mer sammansättningsbar, vilket dess namn också indikerar.

SendGrid

Nytt är också integrering med SendGrid, vilket innebär att alla automatiska e-brev skickas via denna tjänst. Det innebär att e-breven ser mer tjusiga och professionella ut.

Firebase

Inloggningen till My-Ribomation är nu klart förbättrad. Tidigare förlitade vi oss på Firebase password-less login, som involverade ett två-stegs förfarande, där steg två var ett auto-mail från Firebase AUTH. Det visade sig den hårda vägen, att de flesta större organisationer blockar den typ av e-brev.

Länk-baserad direkt-inloggning

Den nya inloggning till MyRibomation utgörs dels av klassisk inloggning med e-post och lösenord, dels av länk-baserad direkt-inloggning. Via SendGrid får du som kursdeltagare ett e-brev med en klickbar länk, som tar dig hela vägen in till app:en och den kurs som avses (man kan ju vara registrerad på mer än en kurs). Det här använder vi oss också av i slutet på kursen, där en annan länk skickas ut till kursdeltagarna och går hela vägen fram till kursutvärderingen.

Vuetify

Slutligen, har vår interna applikation för kursadministration renoverats till att bygga på Vue-3/Compositions-API med Vuetify som tema. Den sistnämnda är ett omfattande UI ramverk för Vue, vilket nyligen har porterats till Vue-3. Vissa UI komponenter är ännu inte riktigt redo för prime time, så dessa har ersatts av egen-utvecklade sådana.

Google Cloud Platform (GCP)

Samtliga applikationer är driftsatta i Google Firebase Hosting, med Firestore JSON DB som datalagringstjänst. Alla byggnationer hanteras av GCP Build och koden sparas i GCP Source GIT repo, samt alla tjänster utförs av en Docker container i GCP Run.

Firestore

Den stora poängen med just Firestore är uppdateringen i real-tid. Dvs klienten prenumererar på uppdateringar av antigen ett enstaka JSON dokument eller samtliga i en sk collection (motsvaras av en DB tabell). När data förändras i Firestore, pushas detta ut via webb-sockets till alla lyssnande klienter. Detta är helt lysande och enormt praktiskt, eftersom man slipper alla problem med polling och/eller long-polling.

rxfire / RsJS

Själva prenumerationen hanteras bäst med det fristående biblioteket rxfire. Detta transformerar om callback anropen till en RxJS kedja, så att man enkelt kan hänga på post-processnings-steg, såsom populera JS klassobjekt, filtrera och sortera datat.

Till sist...

Hoppas du haft en bra sommar och är utvilad inför hösten. Passa på att kika igenom våra kursen och boka in dig på ett kurstillfälle. Under hösten kan du välja att boka dig för en klassrumskurs i våra lokaler på Östermalmstorg i centrala Stockholm eller sitta hemma eller på kontoret med headset och delta via Zoom.