Allt om Matkalkyl
dev = develop = utveckla
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 vill vara dolt 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.
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.
All info
-
Beslut
Tekniska beslut och resonemang. -
Planer, resonemang och designval
Tekniska beskrivningar. Inte nödvändigtvis lätt att läsa. -
Senaste uppdaterade artiklar
Vissa artiklar uppdateras kontinuerligt. -
Differenshistorik
Visar senaste differens på dokumentfiler.
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
- Externa nyheter - Nyheter från andra källor om programmering.