November 2024 - Nyhetsbrev

Sammanfattar den senaste månaden och sätter preliminär riktning.

Detta första nyhetsbrev täcker även tiden före oktober 2024 och är därför något längre.

1 Nytt och relevant

1.1 Varumärke

Matkalkyl är nu ett registrerat varumärke.

1.2 Tidsram

Projektet tar form, även om det tar lite längre tid än planerat. I detta nyhetsbrev ser du vad som hänt nyligen. Jag har arbetat med teknologier som indirekt krävs för att förverkliga projektet.

Var försiktig med vad du önskar dig om du inte är villig att arbeta för det. Jag ville lyfta projektet till en ny nivå, och det är nästan som om en högre kraft hörde min ambition – men med en twist. Istället för den enkla vägen har jag hamnat på en utmanande stig, full av oväntade svårigheter i form av nya teknologier som är i världsklass. Det är som om varje steg framåt testar min beslutsamhet och kräver mer av mig än jag först anat. Min hjärnkapacitet har känts hopplöst begränsad mot de nya tekniker och tankesätt jag har exponerats för. Men det är just genom dessa utmaningar som projektet verkligen kommer att förbättras.

1.3 Omkringliggande faktorer

Det ska nämnas att jag avser lösa alla återkommande problem en gång för alla, i alla aspekter av livet, inklusive datorn. Det är en sorts helrenovering av livet. Varför? Därför att om jag har dålig ordning och dålig framförhållning, då kommer orelaterade händelser störa mig och få fotfäste vid fel tillfälle i livet och det påverkar min hantering av mina dator-system. Jag insåg att mina ambitioner för detta projekt ställer högre krav på mig i livet i övrigt. Jag måste utveckla rutin, disciplin och framförhållning i alla aspekter. Även ökad mental skärpa. Vid sidan min dator var jag tvungen att hantera en del andra livssituationer. När jag såg att livet störde min dator-användning och mina ambitioner, blev jag intresserad av hur jag kan stärka och effektivisera alla aspekter av livet.

Programmering är stundom intensivt, och om jag inte har framförhållning, rutin och disciplin, och därmed tillåter slumpmässiga omständigheter störa mig, då rycks jag ur mitt fokus och det tar tid att komma tillbaka. Folk som arbetar med programmering, å andra sidan, får struktur och disciplin via arbetsmiljön och kollegor. Det vi kallar för “arbetstid” har naturligtvis funktionen av att skärma av orelaterade faktorer. Som fritids-programmerare omges jag av andra faktorer, det vill säga livet i övrigt. Jag upptäckte att jag behöver förbättra min livsföring med avseende att hålla stabilt fokus över tid (över flera månader/år) samt att utveckla rutiner för god hälsa. Denna ambition är faktiskt ett topp-val för den som vill ha det bästa i livet. Din livsföring ska inte öppna för sådan sårbarhet att du omkullkastas av oväntade händelser.

2. Psykologi

Ibland går jag mig förlorad i onödiga aktiviteter som är triviala och konkreta. Det är antagligen en reaktion på det jag har framför mig känns överväldigande eller ogreppbart. Triviala aktiviteter är såklart en form av avkoppling och har ett värde i sig själv. Å andra sidan: När det blir reaktion på att ens situation känns överväldigande eller motigt av annan anledning, då är det inte bra att gå sig förlorad i sådant. Ett exempel att spela tv-spel istället för att läsa inför ett prov. En strategi behövs för att inte ge vika i den situationen, utan att istället vidhålla aspirationen och finna en väg igenom.

Vad jag lärt mig är att när allt känns överväldigande så finns det bara ett svar: fokusera mer, försök igen, pressa din intelligens, ändra perspektiv, ifrågasätta antaganden, identifiera små konkreta steg i rätt riktning. Stanna i frustrationen tills du finner en väg. Det andra alternativet är att ge upp och vänta på lättare tider, och sedan skylla på otur. Det är inget alternativ jag vill bekanta mig med.

Jag ska försöka fokusera på att identifiera när en situation känns abstrakt, ogreppbar och rent av tråkig, och i det läget lista ut en metod för identifiera konkreta steg framåt. Jag tror det är en del av min analytiska förmåga som jag kan förbättra avseende programmering och i övrigt.

3 Orientering

3.1. Just nu

Senaste tiden har det varit mycket krävande vad gäller fokus på att lära mig Linux. Jag har nu gått igenom alla större aspekter på djupet och känner att jag bemästrar systemet tillräckligt. Jag har också utvecklat min egna personliga dator-miljö och mitt arbetsflöde, vilket är ett måste med Linux för att bli effektiv och för att ha kontroll över systemet. Det är inte trivialt, och tar mycket mer tid än man förväntar sig då det kräver att man lär sig systemet.

3.2. Närmast i framtiden

Jag har tagit mig över alla de stora trösklarna och ser nu fram emot att skifta fokus till Matkalkyl. Jag har nu lärt mig så mycket via Linux att mitt tillvägagångssätt och teknologin är radikalt annorlunda jämfört med när jag gjorde de första försöken till den nya versionen. Jag var aldrig riktigt nöjd med de första försöken. De var mediokra och jag kan inte acceptera det. Lösningarna blev mediokra för att jag var fast i gamla begränsningar. Skiftet till Linux vidgade mina vyer och jag har nu andra möjligheter.

4. Teknik

Kryptering är något jag ser fram emot. Det kan tyckas vara onödigt med kryptering på servern. Varför ska dina matrecept och ditt kaloriintag krypteras? När jag använder en tjänst så gillar jag känslan av att min data är privat. Ifall data stjäls via angrepp så är datan säker. Med kryptering kan inte ens jag (systemadministratören) se det du har på ditt konto. Det blir kryptering där servern inte har någon möjlighet att låsa upp din data, enbart du som har lösenordet kan det.

Jag kommer sannolikt använda WebSockets vilket skiljer sig från traditionella web-applikationer. WebSockets gör att din applikation kan kommunicera direkt med servern i realtid, vilket är effektivare. Efter mycket fundering landar jag i det. Det ger direkt kommunikation med webbservern. Den icke-pretentiösa server jag kör uppskattas kunna hantera 10 000 uppkopplingar samtidigt och det är långt mer än behovet.

PHP blir i stort onödigt, och kommer bara vara perifert, eftersom hela applikationen blir en JavaScript applikation som kommunicerar via websocket, via en Nginx reverse proxy, med en Node JS server, som i sin tur tillhandahåller ett API mot databasen.

Autentisering med cookies och alla säkerhets-attribut blir antagligen onödiga, eftersom autentisering sker via enkel metod via websockets.

Jag har gjort en baskomponent i Javascript för asynkron kommunikation mellan moduler, I ett event baserat system, som jag ska börja testa.

Kommer använda Webcomponents. Som tumregel är det bättre att följa standard än att hitta på egna lösningar.

Fokusera korrekt på event baserad programmering. JavaScript och procedurorienterad programmering leder till mycket huvudvärk och blir entav omöjligt att hantera och utöka. Detta eftersom JavaScript-miljö är asynkron där flera saker pågår samtidigt och inte linjärt. Procedurorienterad programmering är linjärt.

5. Konologi

Jag har utforskat många teknologier, många som kommer till användning för Matkalkyl.se och sätter projektet i en bättre riktning.

2022 - Vinter: Beslutar att börja skapa en ny version av matkalkyl.se.

2023 - Vår: Börjar utveckla den nya versionen men är missnöjd på grund av tekniska och kunskapsmässiga begränsningar.

2023 - Sommar: Windows kraschar; byter till Linux permanent och upplever både utmaningar och fördelar med systemet. Tar tid att lära sig. Inte trivialt.

2023 - Höst: Fortsätter utvecklingen, programmerar om grundsystemet för att uppnå skalbarhet och hållbarhet, är fortfarande inte nöjd.

2023 - Vinter: Samma som föregående. Allteftersom jag lär mig mer om Linux inser jag helt nya sätt att bygga Matkalkyl på, och detta är mer än vad jag kunde föreställa mig tidigare. Hela denna Linux-resan gör mig mer kompetent i alla avseenden gällande datorer och systemutveckling. Kunskap och färdighet i Linux kommer dock inte utan möda och stor ansträngning. Jag vägrar ge upp, samtidigt som Linux ibland känns massivt och övermäktigt innan man kommer över tröskeln - och trösklarna är många. Samtidigt har jag en stark vilja och vägrar ge upp. Min envishet möter det som till synes är omöjligt. När jag tror att saker inte kan bli värre, då uppstår exempelvis två nya problem som plötsligt tycks samarbeta bara för att bryta ner min vilja. Så är det i Linux om man inte utvecklar uthållighet, mental skärpa och disciplin. Intressant nog är det just dessa situationer som fått mig att faktiskt mogna i min dator-hantering. Jag har börjat tänka mer strukturerat, modulärt och med framförhållning. Dessa förmågor är avgörande.

2024 - Vår: Jag har lärt mig Linux tillräckligt för att starta en egen Linux-server för Matkalkyl och jag inser nya möjligheter. Inser att jag behöver system för återställning vid händelse av haveri och att jag i dagens läge är oförberedd. Sedan havererar jag både servern och min lokala dator. Jag skapar nu ett automatiserat återställningssystem för snabb systemåterställning. Detta projekt förutsåg jag skulle vara krävande, men jag lärde mig mycket och blir intresserad av att gå djupare ändå.

2024 - Sommar: Går på djupet i Linux-konfigurationen, anpassar mitt personliga system efter behov så långt jag kan. För att bli effektiv med Linux krävs det en hög grad av anpassning. Det skrämmer iväg många från att börja med Linux, men det är också vad som gör systemet så fantastiskt när man lyckas, samt att dina inställningar varar livet ut eftersom Linux-miljön är mer stabil i det avseendet. Det är värt att lägga tid på detta eftersom det blir en investering i din egen effektivitet samt att investeringen består över tid.

2024 - Höst: Nästan klar med mitt personliga system som jag behöver för allt annat. Jag börjar nu uppnå effektivitet.

Back to Home