Frontpage

Allt om Matkalkyl

dev = develop = utveckla

Hello! Insidan räknas!
Tryck här för Nyhetsbrev ✉️ October 2024

Alla nyhetsbrev finns här.


Denna sida är tillägnad utvecklingen av Matkalkyl.

En ny version av Matkalkyl.se är fortfarande på gång.

Du kan alltid komma till denna sida för den senaste informationen.

Daglig reflektion:

Jag är inte intresserad om jag inte kan lära mig något nytt via det jag gör. Att ständigt fördjupa min färdighet. Därför skriver jag en självreflektion nästan varje dag. En medveten lärprocess via självreflektion. En journal systematiserar självreflektionen.

En människa utan strukturerad reflektion tror lätt på sin egen storhet. Strukturerad reflektion visar dig det du vanligtvis inte vill eller kan se; både styrkor och svagheter. Det du inte vill se inom dig själv håller dig tillbaka från framgång. Dyrka inte det som är dolt inom dig genom att låta det vara dolt, för det har inte ditt bästa i sitt intresse. Låt ljus och medvetande in. Det är så du bemästrar dig själv. Hur kan du bemästra dig själv utan insyn i vem du är? Du är vad du gör. Börja skriv vad du gör, och reflektera kring det.

2024 November

20 November

Planera nyckel aspekter.

Koncept: Datalink, länk mellan klient och server. Mellanlager mellan databas och klient.

Mål

Möjliggöra synkron kommunikation mellan server och klient. Synkron för att kunna garantera att innehåll levereras, och att det görs i turordning.

Effekt

  • En node js websocket server.
  • En nginx reverse proxy för websocket.
  • En js komponent för klienten för interaktion med server.

Analys

Definiera ett protokoll för kommunikation.
Field Size (Bytes) Description
Key 2 A 16-bit unsigned key.
Payload Variable The rest of the message.
// Server
server.on('connection', (ws) => {
    ws.on('message', (data) => {
        if (Buffer.isBuffer(data)) {
            const key = data.readUInt16BE(0); // Read the first 2 bytes as the key
            const payload = data.slice(2);    // Extract the payload

// ...

// Client 
const socket = new WebSocket('ws://localhost:8080');
socket.binaryType = 'arraybuffer'; // WebSocket set to handle binary data

socket.onopen = () => {
    const key = 42; // Example 2-byte key
    const payload = new TextEncoder().encode('Hello, WebSocket!'); // Payload as Uint8Array

    // Create ArrayBuffer for key + payload
    const buffer = new ArrayBuffer(2 + payload.byteLength);
    const view = new DataView(buffer);

    view.setUint16(0, key); // Write the key (2 bytes)
    new Uint8Array(buffer, 2).set(payload); // Write the payload after the key

    socket.send(buffer); // Send the binary message
};

Definiera plugin system för hantering av data.
// Plugin registry
const plugins = {};

// Load plugins dynamically from the "plugins" directory
const pluginDir = path.join(__dirname, 'plugins');
fs.readdirSync(pluginDir).forEach((file) => {
    const key = path.basename(file, '.js'); // Extract key from filename
    plugins[key] = require(path.join(pluginDir, file)); // Load plugin
});


//...

     if (plugins[key]) {
            plugins[key](payload, ws); // Pass payload and WebSocket instance
        } else if (plugins.default) {
            plugins.default(message, ws);

Arkiv tidigare dagar

Matkalkyl's utvecklar-team består av Kitty-Poo och Kitty-Boo (och Scully-Bob, m.fl.). Vi är ett litet team som bråkar arbetar med att utveckla Matkalkyl.se. Vi har en vision om att göra det enklare för människor att äta hälsosamt. Eller nä... Gör vad du vill.

Om man tar en omväg så kommer man till målet snabbare, om man ändrar på målet!
Det viktigaste är att vara bestämd. Att röra sig genom livet lika stadigt som en sten. Vad man än gör!

Detaliijer

Som nämnt ovan, det lättaste sättet att följa projektet är att läsa senaste nyhetsbrevet, men här nedan kommer lite annan info som jag har för egen skull. Mycket av detta uppdateras automatiskt.

Att göra:

👉Listor med saker att göra och saker som gjorts.

All info

Att-göra listor

Dessa listor använder jag för att komma ihåg vad som behöver göras. Inte alls lätt att läsa.

Trivia

  • Blockerade bottar - alltid intressant att se folks försök att hitta och utnyttja sårbarheter i systemet.
  • Konsol - Diagnostisk data skickas hit i realtid då jag testar diverse programkod.

Jag (Fredrik) är en person som programmerar sajten och administrerar servern.

Annat

💤
🌕
Sleeping is very important