Här är de senaste utvecklingsuppdateringarna för projektet.
OBS! Projektet är i ett tidigt skede och det flesta uppdateringar är fortfarande tekniska detaljer som användare inte ska behöva bry sig om.
Sajten: trekyl.com
💎 Vecka 06
2026-02-02 Måndag
Dokumentation📘
- Mentalt gått igenom manifest/config systemet och resonerat kring dess ontologi. Dåliga namnval leder till semantisk drift vilket betyder att namngivning av komponenter och beståndsdelar är ospecifik och introducerar vaghet, varav namnen får oavsiktliga och "flytande" betydelser (namnröta uppstår) vilket försvårar förståelse av systemet och introducerar risk för att skapa buggar på sikt.
Åtgärdat🩹
- Bug i caching, manifest hash baserat på toplevel manifest, ignorerade inkluderade manifest (includes).
- Fixat manifest/config filer för de andra valbara versionerna av Matkalkyl appen (matkalkyl-ea och matkalkyl-stb) så att de fungerar.
❄️ Vecka 05
2026-02-01 Söndag
Tillagt🎁
- Ny debug info/diagnostik info vy för systemets boot-val samt dess parametrar.
Förbättrat✨
- Förbättrat kodstruktur och systemet i övrigt. Mer ingående än vad denna rad vittnar om.
- Fortsatt fixa app-switcher. Samt att den nu inte ska låsa ute användare om icke-fungerande system väljs.
- Mer utförlig diagnostik för start startsekvens av grundsystemet.
Refaktorering🧹
- Förbättrat koden i kärnsystemet.
2026-01-31 Lördag
Tillagt🎁
- Automatisk minifiering av JavaScript (esbuild). Automatiskt cachade versioner av minifierad JavaScript kod filer för snabbare laddningstider. Kodfilerna blir närmare 60% men det tycks inte påverka prestandan nämnvärt i min mätning, men över långsamma uppkopplingar kommer det antagligen visa sig vara mer fördelaktigt.
Förbättrat✨
- Gzip på webservern för komprimering av data som skickas till kilent. Avstod från Brotli. Brotli ger 5-15% bättre komprimering än Gzip. Brotli måste laddas som dynamisk modul via nginx och det är inte värt att underhålla den komplexiteten för 5-15%.
2026-01-30 Fredag
Dokumentation📘
- Vilseledd av av "Preserve/Persist logs" i JavaScript-konsollen. Stängt av den funktionen via Network->Kugghjul->"Persist logs" i Developer Tools. Men det verkar som rätt inställning måste göras i Console fliken och i Network fliken separat. Fungerar ändå inte som förväntat och bättre ha den påslagen i Console fliken för att se markering som skiljer föregående från nuvarande laddning av sidan. Bilden visar hur kvarvaror från tidigare session visas i loggen för nuvarande session.
Åtgärdat🩹
- Bug i manifest caching (configs uppdaterade inte i alla relevanta fall).
- Bug i generell debug vy - källan ändrade gränssnitt och vyn hade gammalt format).
- Bug i nätverks-lyssnaren i app-runtime (den som avgör om login-sidan ska visas eller användarens inloggade vy).
2026-01-29 Torsdag
Förbättrat✨
- Förbättrat startsekvensen (boot) med caching. Cold boot så lågt som 135ms, versus utan cache runt 1000ms.
2026-01-28 Onsdag
Tillagt🎁
- Debug data och vy för nätverk data (klar).
2026-01-27 Tisdag
Tillagt🎁
- Debugdata och vy för nätverkets data. Inte klar.
2026-01-26 Måndag
Tillagt🎁
- Portat den gamla koden för autentisering samt det lokala browser-minnet för access token för automatisk inloggning.
Åtgärdat🩹
- Bugg i system-växlaren.
- Diverse buggar i nätverksmodulen.
- Buggar i debug-data-vyn.
Förbättrat✨
- Förbättrat nätverksmodulen.
Infrastruktur🏗️
- Fortsatt färdigställa gränssnittet för att växla system/appar.
❄️ Vecka 04
2026-01-25 Söndag
Tillagt🎁
- Stöd för att minnas senaste valda system+app för när sidan laddas om.
Experimentellt🧪
- Experimenterat med UI. Jag använder AI för att generera andra personliga små-appar som jag använder, men det är mycket bra sätt att experimentera med layout och design (gränssnitt) vilket ger möjlighet att testa olika koncept i appar som används dagligen. Enkla todo-appar är exempel på det. Experimenterandet öppnar för nya sätt att tänka kring gränssnitt vad gäller Matkalkyl.
Förbättrat✨
- Förbättrat systemets startsekvens.
2026-01-23 Fredag
Tillagt🎁
- Systemet kan hantera flera system. Varje system kan bindas till en eller flera applikationer.
- Stöd för fulländade manifest (config filer) för system och applikationer. Ett flexibelt och moget manifest-system.
- Asynkront stöd i grunden. Ytterligare en abstraktionsnivå: Alla moduler tillhandahålls via en Factory modul som implementerar asynkron laddning.
- System- och app-switcher... växla mellan system och appar.
- Diverse debug-vyer och stöd för det.
- Möjlighet till Lazy-loading, Eager-loading, och Explicit-loading via prioritet.
- Statistik för startsekvens (boot) med mätning av millisekunder för att se vilka steg som tar vilken tid, och i vilken ordning moduler laddas. Detta blev startskottet för att än mer ingående utarbeta en modulär objektorienterad arkitektur, då jag insåg att dåvarande system var något oflexibelt.
Dokumentation📘
- Gått på djupet för att lära mig JavaScript async/await och Promises. Jag hade en vag uppfattning där jag delvis trodde att JavaScript kör kod prallellt, vilket inte är fallet, även om man kan luras att tro det.
- Börjat planera adaptern mellan app och databas. Finns i dagens läge ett kommunikationslager, men det ska ingegreras i en central data-modul. Databasinteraktion avses ske i bakgrunden utan att applikationen behöver bry sig om de detaljerna.
Åtgärdat🩹
- Löst en mängd buggar som visade sig då jag envisats med att ta systemet till en högre nivå via större krav.
Förbättrat✨
- Säkerställt caching för moduler (manifest och programkod) med hänsyn till utvidgad grundstruktur.
- Avancerat grundstrukturen och fattat ett flertal beslut för ytterligare modularitet.
- Boot-sekvensen är förbättrad, via en ny kärna som tar grundstrukturen till en nivå med fullständiga asynkrona möjligheter.
- Stor förbättring av konfigurationsmöjligheter för system, applikationer och plugins.
- Stor förbättring av flertalet mycket centrala moduler. Väl övervägd utökning och begränsning av kapacitet. Många beslut kring vad och hur vad gäller grundläggande strukturer.
Refaktorering🧹
- Portat den tidigare koden för PageRender - den sak som organiserar innehåll på sidan.
❄️ Vecka 03
2026-01-18 Söndag
Refaktorering🧹
- Fortsatt att uppdatera och städa upp kod. Återimplementerat nätverksmodulen.
2026-01-17 Lördag
Förbättrat✨
- Stöd för "lazy loading" vad gäller moduler, samt att ALLT i systemet nu är en likvärdig modul (samma standardiserade gränssnitt), där moduler utgör både de minsta och största delarna av systemet. Initiativet uppstod då jag insåg att somliga komponenter synkront väntar i onödan på andra komponenter. Vi behöver exempelvis inte vänta på autentisering via nätverket innan vi startar modulen som ska rendera det visuella gränssnittet som visar antingen loginsidan eller annat. Följande lösning blir mer robust då varje modul måste utgå från att alla beroenden ännu ej existerar och kräver mer defensiv logik vilket gör modulerna självständiga på riktigt. Lösningen relaterar till vissa systemprinciper och kommer möjliggöra en viss känsla i gränssnittet som jag avser utveckla. En fullständigt asynkron modulhanterare tycks också vara att nyttja kraften i JavaScript. Lösningen kräver dock genomgående uppdatering, vilket ändå var nödvändigt då jag behövde städa upp och refaktorera koden efter mycket experimenterande.
2026-01-14 Onsdag
Förbättrat✨
- Förbättrade följsamhet till funktionellt objektorienterade principer för realisering av målsättning om modulär framtidssäker arkitektur.
2026-01-13 Tisdag
Tillagt🎁
- Plugin för visning av debug data.
Åtgärdat🩹
❄️ Vecka 02
2026-01-10 Lördag
Tillagt🎁
- Utökat debug kapacitet och och tvingande kontroll-mekanismer för kodstruktur (kontroll av opts som skickas till funktioner). För närvarande en bugg i eller runt DataStore().
2026-01-09 Fredag
Åtgärdat🩹
- Buggar orsakade av att jag lämnat ett initiativ halvfärdigt. Återställde koden via backup. Lärdom: Gör allt i etapper med tydliga avslut - ställ allt i ordning innan avslut.
Infrastruktur🏗️
- Återskapat knapp för att automatiskt ta skärmdump som sedan visas på denna sida. Funktionen blir mer relevant i framtiden då det i vissa fall är enklare förklara uppdateringar genom att komplettera med bilder.
Refaktorering🧹
- Generell struktur för moduler har förbättrats och närmar sig toppskick. JavaScript ger stor frihet och kräver omfattande beslut för att skapa bärande system.
- Nätverksmodulen på klientsidan (JavaScript) har förbättrats och är först ut i att tillämpa rätt generell struktur med hänsyn till principer om funktionell objekt objektorienterad programmering.
2026-01-08 Torsdag
Infrastruktur🏗️
2026-01-06 Tisdag
Tillagt🎁
- Centraliserat enums som är av publikt intresse. DataStore lagrar paralellt med data-struktur en karta för tillhörande enums.
Förbättrat✨
- ConnectionDot-plugin använder observer-pattern på DataStore istället för signal via central buss.
🎄 Vecka 01
2026-01-01 Torsdag
Tillagt🎁
- En moduls data i modulen för modulers publika data kan observeras av moduler. (Observer pattern on DataStore() med andra ord.)
Infrastruktur🏗️
- Skapade detta system för informations-uppdateringar. Denna forum-post genereras automatiskt baserat i en loggfil.
- Fixat bugg i system som importerar namn för kod-aspekter för dokumentation.
- Utökat Neovim med gränssnitt för dokumentation av kod, istället för att använda Web-gränssnitt för dokumentation. Länkat med matkalkyl.dev/docs.php