Files
learning-log/daily-log.md
2026-01-21 14:26:57 +01:00

157 lines
8.5 KiB
Markdown

# Daily Logs
## 2026-01-21 - (Wed) - Nand2Tetris Unit 3
**Tasks:** Watching the final videos of Unit 3 and reading the material.
**Blocker:** Time. Didn't get all of the reading done.
**Lesson:** Learnt a lot on memory. Very cool. Data Flip Flops. Registers. How RAM work and how they're basically stacked on top of each other. Very interesting.
**Tomorrow:** Read the final section of Unit 3 & start the Unit 3 project.
**Time Spent:** 90m
## 2026-01-20 - (Tue) - Nand2Tetris Unit 3
**Tasks:** Getting started with Unit 3. Watching the video material and understanding the theory.
**Blocker:** Time was a little short today unfortunately. Also learning new concepts might make me a bit slower. I'd rather understand than power through.
**Lesson:** Got the idea of sequential logic and the 1-bit register actually made sense. Same with the DFF(Data Flip Flop)
**Tomorrow:** Will continue with the video material and also try and read the Unit 3 section of the book.
**Time Spent:** 60m
## 2026-01-19 (Mon) - Nand2Tetris Unit 2
**Tasks:** Finalize the ALU.
**Blocker:** Not quite sure how to get started.
**Lesson:** Learned how to implement it and it worked flawlessly. The syntax was the tricky part and some of the end gates. It finally clicked during the process of working on it and that it was a pipeline and not data that was flowing parallel. I keep thinking as a programmer, looking for if statements and such, but i get through it. It was a nice feeling to get it working.
**Tomorrow:** Unit 3 beginning.
**Time Spent:** 90m
## 2026-01-16 (Fri) - Nand2Tetris Unit 2.
**Tasks:** Implementing the ALU chips in HDL.
**Blocker:** Time and understanding.
**Lesson:** Learned about some HDL syntax. Also the FullAdder, Add16 and Increment16. Got all of them. Was struggling with the Increment due to the syntax. I had the right idea.
**Tomorrow:** Building the ALU chip from all the building blocks. Looking forwart to it.
**Time Spent:** 90m
## 2026-01-15 (Thu)- Nand2Tetris Unit 2.
**Tasks:** Reading the unit 2 chapter and starting the project 2 tasks.
**Blocker:** Not a lot. Read some parts a couple of times. The theory makes a little bit more sense now. The ALU implementations i'm worried of but lets see. Also the ALU inputs i did not understand fully.
Implemented the HalfAdder but was struggling with the FullAdder.
**Lesson:** HalfAdder, FullAdder, Incrementers and the basics of binary addition and subtraction. Learned about two's complement for negative numbers.
**Tomorrow:** Continue with the project and implementation of the ALU chips.
**Time Spent:** 90m
## 2026-01-14 (Wed) - Nand2Tetris Unit 2
**Tasks:** Watched the whole Unit 2 on youtube.
**Blocker:** Nothing really. Understanding if anything.
**Lesson:** Learned about the ALU(Arithmetic Logic Unit) and what it is used for and how it is built. Learned of adding/substracting binary numbers. Binary to decimal conversion simple.
**Tomorrow:** Trying to implement the ALU in HDL. Will start the Project 2 tasks.
**Time Spent:** 90m
## 2026-01-13 (Tue) - Reading a little bit about C
**Tasks:** Only read a little bit about C. Did some git setup on my laptop.
**Blocker:** Time was pressed today.
**Discovery:** Multiple git users on the same laptop. Also learned of a selfhosted gitea solution. That works very good.
**Lesson:** C information and gitea selfhosting.
**Tomorrow:** Reading nand2tetris unit 2 text.
## 2026-01-09 (Fri) - Nand2Tetris Unit 1
**Task:** Finalize the last logic gate implementations for project 1.
**Blocker:** They were hard to understand at first. The logic is not quite there for me. Hope that it later will make more sense.
**Discovery:** A little bit of a realization of how the logic gates work together. Still a bit fuzzy. dMux4Way and all that.
**Lesson:** HDL. Trial and error.
**Fix:** I got it at last, and the the dMux8Way was just copy paste from dMux4Way with some adjustments.
**Tomorrow:** Probably read up on Unit 1 again. Otherwise start Unit 2.
**Time Spent:** 90m
## 2026-01-08 (Thu) - Nand2Tetris Unit 1
**Task:** Implementation of the HDL logic gates.
**Blocker:** The logic behind it. The coding mindset. Need to change the mindset a bit to be more systems hardwiring. It's okay. It's a process.
**Discovery:** Learned about a web tool that helps build the logic implementation. It clicked a little bit with the gates and creating valves instead of doing if statements in my head.
**Lesson:** Building the logic gates. It's kind of cool.
**Fix:** Just playing around with it. Visualizing it. Drawing the diagrams before trying to code it.
**Tomorrow:** Finish the last Logic Gates.
**Time Spent:** 90m
## 2026-01-07 (Wed) - Nand2Tetris Unit 1
**Task:** Getting started with the project 1 implementation.
**Blocker:** Struggling a little bit with HDL and getting started.
**Discovery:** That the first building blocks of gates are used on top of each other. Not, And and Or gates all build on top of each other.
**Lesson:** HDL scriping/coding. Built And, Or and Xor gates. Wrote them i guess. Had a hard time understanding and planning the implementations. Had to look some of them up on Wiki. Not the HDL solution. Only the diagram.
**Fix:** Researching the HDL language.
**Tomorrow:** Continue with the Project 1 implementation. The next gates.
**Time Spent:** 90m
## 2026-01-06 (Tue) - Nand2Tetris Unit 1
**Task:** Basically just reading and understanding the first unit of Nand2Tetris.
**Blocker:** Understanding the logic gates and how they work together. Did not block too much. Read some sections twice.
**Discovery:** Logic gates and how they can be combined to make more complex components. HDL.
**Lesson:** Same as above. Reading through the material helped a lot.
**Fix:** Nothing.
**Tomorrow:** Starting on the first project of Unit 1. Implementation section of the first project.
**Time Spent:** 90m.
## 2026-01-05 (Wed) - Nand2Tetris Start
**Task:** Getting started with Nand2Tetris.
**Blocker:** Not really anything.
**Discovery:** Read about what the project really entails.
**Lesson:** Not much yet. Played around with their online IDE.
**Fix:**
**Tomorrow:** Starting Chapter 1.
**Time Spent:** 90m.
## 2025-12-18 () - Svelte Mostly
**Task:** Play around with Svelte and get used to it.
**Blocker:** Not really knowing the syntax.
**Discovery:** $state, $derived, general file structure syntax.
**Lesson:** Playing around teaches you.
**Fix:** ...
**Tomorrow:** Clean up and reflect on the week.
**Time Spent:** 90m.
## 2025-12-17 () - Svelte, Generators
**Task:** Generator functions and yielding a mock stream of data.
**Blocker:** Not being very comfortable with Vim & Svelte. Meaning slow movement.
**Discovery:** Generator functions are pretty sweet. Helps open the call stack.
**Lesson:** Generators, Svelte and some Vim.
**Fix:** Not a lot.
**Tomorrow:** Play around with Svelte and finish the UI. Learn more about Svelte.
**Time Spent:** 90m.
## 2025-12-16 () - WebLLM
**Task:** Read up on the WebLLM and play around with it.
**Blocker:** Had some problems with the WebGPU in the browser.
**Discovery:** Found out that it's new technology and some browsers blacklist the use of the GPU in the browser.
**Lesson:** Learned about about:config in Firefox and how to enable different configs and blocked things.
**Fix:** Above lesson. Allowed it and removed the blacklist. WebLLM ran in the browser and i was ready to test it out.
**Tomorrow:** I will create a fake stream of data in the UI and yield the results with a generator function. All in Svelte.
**Time Spent:** 45m.
## 2025-12-15 (Mon) - Event Loop
**Task:** Play around with Event Loop and Svelte.
**Blocker:** Understanding the Event Loop & Being new to svelte.
**Discovery:** Svelte Setup & Syntax. Event loop yielding & Tasks.
**Lesson:** How to yield promises. Understanding the Event Loop somewhat. Svelte syntax a little bit. Playing around with functions and loops that can crash your browser.
**Fix:** Yielding will make hard to compute functions easier to manage for the browser and eyes.
**Tomorrow:** WebLLM.
## 2025-12-11 (Tue) - Event Loop
**Task:** Learn and understand the Event Loop.
**Blocker:** Needed to understand the event loop properly.
**Discovery:** How the call stack works. Performance checking Firefox.
**Lesson:** SvelteKit init/quick crash course. Difference between Call stack, microtask & macrotask. Also which order they're being called.
**Fix:** Run SvelteKit app & play around with the Event Loop. /lab in the app.
**Tomorrow:** Play around more with the Event Loop in the browser to understand properly.