Daily Learning Log

Go - Let's Go Further

Task

Changing the PUT to PATCH and just following along the book.

Lesson

Going from a PUT to PATCH. Also handling the Race Condition of updating at the same time. Handled gracfully by checking the row version. Also set up the SQL DB on my other laptop. Used the migrations. That was pretty cool. Was a bit tired today so only did 60m

Additional Learning

30m DDIA - Learning of B-Trees. I think it's an incredible book so far.

60m

Go - Let's Go Further

Task

Just moving on with the build along.

Lesson

PUT, GET, DELETE a movie from the DB. I actually forgot how much i like SQL Databases. I've been doing Mongo for so long. SQL just works and is ligthning fast.

Additional Learning

30m DDIA. I really enjoy that book. Just going slowly and learning of LSM-Trees and SSTables.

Tomorrow

Continue and PATCH.

90m

Go - Let's Go Further

Task

PostgreSQL. Migrations. DB Setup.

Lesson

Many of these things I know, but it feels good to go through them in a new way. I'm getting used to the Go syntax and the way Go does things. It's pretty cool. I enjoy it. Also learning a lot of DDIA. Really interesting book!

Additional Learning

30m Reading DDIA

Tomorrow

Keep going.

90m

Go - Let's Go Further

Task

Continue with the book and build the project.

Lesson

Validation, Reading JSON, Connecting to Postgres, project structure. I like how we build a lot of helper functions instead of using packages that we pull in.

Additional Learning

30m DDIA

Tomorrow

Continue the book and project.

90m

Go - Let's Go Further

Task

Read and follow along the book.

Lesson

Learning a lot of syntax and best practices. Security. It's nice. A backend API will be my next personal project so this book is very good for that. So far i like it. Did the basic setup and just reading the book. I like Alex Edwards' writing and teaching style.

Tomorrow

Continue Let's Go Further

120m

Go - Reading Let's Go

Task

Reading about Go. Figuring out my next move. Reading the Let's Go book by Alex Edwards. It's good. I'm skimming it and moving on to Let's Go Further since it's more what I want.

Blocker

Nothing

Lesson

What is possible, and how different ideas are implemented.

Tomorrow

Start Let's Go Further and I think i'll build along.

120m

Go - Finalize CLI

Task

Finalize the CLI from scratch using only built in modules.

Blocker

Not a lot.

Lesson

Learnt a lot. The CLI tool is basically done. the boilerplate. I need to add a lot of endpoints to make it useful, but I'm not sure I will. I looked into other ways of building that same solution but with dedicated CLI tool packages. Cobra for example. It seems like a solid choice. It was good building it from scratch, too see what actually is happening. Also for learning syntax.

Tomorrow

Reading.

90m

Go - CLI

Task

Continue building my admin CLI for my project MyFootballManager

Blocker

Syntax. Understanding. Interfaces blocked me a bit today. It's easy to get tempted to just let the LLM spit everything out and paste the errors. I'm not doing that. I want to learn, struggle and understand.

Lesson

HTTP request to my local API and get a response. Also a logger module. Pretty cool. Still have to understand everything. The interfaces i understood a little bit.

Additional Learning

30m Reading DDIA

Tomorrow

Keep going with CLI

90m

Go - CLI Tool

Task

Keep building an understanding the structure of a CLI tool.

Blocker

Just basically the struggles of learning a new language.

Lesson

How CLI tools are built and basic GO syntax. Building with AI as a tutor and also really just learning what is what. A lot of boiler plate. That is coding and always has been. Flags. Commands. Configs. HTTP wrappers.

Additional Learning

30m Reading DDIA

Tomorrow

Keep going with the CLI. More flags and arguments. Hit some real endpoints.

90m

Go - Go by Example & Start first CLI tool

Task

Read some more examples of what is possible. Start building a CLI.

Blocker

Not knowing a lot of CLI standards.

Lesson

Kind of tired of reading Go and want to write some code now. Generate some code rather. But that's okay. I need to output something and understand. LLM's are for me a good companion and can help me learn. They explain concepts extremely well, and I learn ideas and structure by asking and trying different things. I like that workflow.

Additional Learning

30m reading DDIA

Tomorrow

Continue the CLI tool. It's an admin tool for my footballmanager game.

90m

Go - Tour of Go & Go by Example

Task

Do the final reading of tour of go. Exercises.

Blocker

Nothing.

Lesson

Just learning syntax and how everything is connected. I like to read a lot before attacking pprojects. Then I can always look up after when hitting some roadblocks.

Additional Learning

30m of reading Let's Go & 30m Reading DDIA

Tomorrow

Go by Example

90m

Go - Go by Example

Task

Just reading and playing with different things.

Blocker

Nothing.

Lesson

Learned of the Hack Assembly Machine Language and Machine Assembly Language in general. Looking forward to learn more.

Tomorrow

Just keep moving ahead.

90m

Go - Go By Example

Task

Go through Go by Example

Blocker

Nothing.

Lesson

functions, closures, loops, variadic functions, maps, slices. just syntax basically.

Tomorrow

Continue Go.

60m

Go - Tour of Go

Task

Continue through the Tour of Go ressource.

Blocker

Just learning. Some concepts that I need to play around with a couple of times, but it's all good.

Lesson

Pointers, Operands and things like that..

Tomorrow

Continue Tour of Go.

90m

GoLang Beginning

Task

Go through Tour of Go

Lesson

Just reading and understanding the syntax. Playing, having fun and doing some exercises.

Tomorrow

Continue with the same

90m

Nand2Tetris Unit 06 - Assembler Writeup

Task

Write up the blog post for the Unit 06 Assembler

Blocker

Actually not a lot.

Lesson

Nice to go through what you have learnt.

Tomorrow

Thinking I will do some C or Go. Have to decide.

90m

Nand2Tetris Unit 06 - Assembler

Task

Finalize the assembler

Blocker

Not much..

Lesson

I did it! It's done. It could be optimized and get some errors handling and various features, but the core functionality is there. This is awesome. I don't think I will add more to it at the moment. Maybe at some other point. Very cool.

Tomorrow

Will do the writeup of Unit 06

90m

Nand2Tetris Unit 06 - Assembler

Task

Start the second pass and build the rest of the helper functions.

Blocker

A couple of days off the project really slowed the getting started down.. Kind crazy how fast that goes..

Lesson

Not much. Just slowly progressing.

Tomorrow

Hopefully the final push.

80m.

Nand2Tetris Unit 06 - Assembler

Task

Continue the assembler.

Blocker

Not a lot. I like the progress i'm making.

Lesson

Learning a lot of Python and CLI tools. Trying to make it as good and clean as possible. Good practices and not some pieced together junk. Have implemented the first pass, the symbol table creation and the parser module.

Additional Learning

30m of Modern C & 30m of TryHackMe

Tomorrow

Continue with the second_pass through.

90m

Nand2Tetris Unit 06 - Assembler

Task

Building the Assembler. Moving forward. Good progress today.

Blocker

Not much. Just that it's a new territory of development for me, but I'm piecing it together.

Lesson

Classes. staticmethods. __init__ function variable initialization. types in python.

Additional Learning

30m of Modern C & 30m of TryHackMe

Tomorrow

Will look into the 1st and 2nd pass through.

90m

Nand2Tetris Unit 06 - Assembler

Task

Building the assembler. Setting up the classes(lol classes in python). Not really and end goal today just moving forward.

Blocker

Python synteax. It's been a while. Not too bad.

Lesson

Setting up the different classes. I must say that when using AI to set up classes and boilerplace, it really speeds up development. I don't see AI in this case as a negative. It's a crazy tool. The sparring part is great too. Just make sure you understand what you're asking and prompting. I think we're nearing and end of writing code. Prompting and changing is the new new.

Tomorrow

Contimue building the Assembler.

90m

Nand2Tetris Unit 06 - Assembler

Task

Start building the assembler in Python

Blocker

It's been a while since I've been doing Python and I just wanted to set it up perfectly. Have a good structure and make sure I do it properly and not hasted.

Lesson

Python project structure.

Tomorrow

Start implementing the different sections of the assembler.

90m

Nand2Tetris Unit 06 - Assembler

Task

Read the final content of the book chapter.

Blocker

Weekend. Time is not my friend.

Lesson

Read it, and I know what needs to be done with the assembler. I feel pretty secure in my ability with the assembler.

Additional Learning

Spent another 30m on TryHackMe. Windows rooms

Tomorrow

Start building the assembler in Python.

30m

Nand2Tetris Unit 06 - Assembler

Task

Watch the final video content

Blocker

Saturday. Time is pressed.

Lesson

Same as day before. Theory and examples on how to write the assembler.

Tomorrow

Start reading the content of the book.

60m

Nand2Tetris Unit 06 - Beginning

Task

Go through the video material.

Blocker

Not enough time to watch all the material.

Lesson

How to write the assembler in theory which will translate the .asm files to binary machine code instructions.

Tomorrow

Watch the final pieces of the content.

80m

Starting Cyber Security.

Task

To be honest, I don't really know why. Started a PrivSec room on TryHackMe. Was just executing commands and not really learning anything. I think I should probably start from the bottom and go up, if I really want to learn.

Blocker

Not knowing a lot.

Lesson

Not a lot today. Is this really right? Can't answer that after one day. Maybe it was just not it today.

Tomorrow

I'll figure that out.

90m

Nand2Tetris Unit 05 - Write Up

Task

Do the write up of Unit 05

Blocker

Not so much. Time was pressed. Some sickess unfortunately hit the family.

Lesson

Always good to recap on your learnings.

Tomorrow

I will start something new. Cyber Security

60m

Nand2Tetris Unit 05 - Finalize the Computer

Task

Wire the CPU and wire the Computer together.

Blocker

Still a little bit of uneasy and just moving slow. It feels good to be unknowing. Some of these Jump bits are confusing me. The logic behind it. zr and ng.

Lesson

It suddenly clicked for me. zr & ng. zero and negative. That way we can check the jump statements. And we only actually have to create the logic for the 3 jump bits and all 8 possibilities fall into place. PC done. CPU was for sure the hardest. Computer was relatively simple. It was just wiring it together without any logic. The diagram was provided. All tests cleared. What a great feeling!

Tomorrow

The Write Up for Unit 05

90m

Nand2Tetris Unit 05 - Wiring the CPU

Task

Wire up the CPU. Try to understand it completely.

Blocker

Not quite sure how to. Must try different things along the way.

Lesson

Kind of forgot some of the material and had to go back to previous chapters to get a refresher. Did not quite get to the finish line today, but implemented the A & D Register along with the ALU. It's tough stuff. A lot of moving parts and wires to keep in check. Forgot some of the instruction meaning and the ALU control bits and when they are used. Slowly it comes together. It's kind of weird but everything I built previously in the course come together now and all the chips and implementations have important role to play.

Tomorrow

Hopefully finalize the CPU. I only need Program Counter, the output signals and then finally built the whole Computer.

90m

Nand2Tetris Unit 05 - Wiring the Memory

Task

Took a break from the CPU and focused on the Memory which the Project description actually recommended.

Blocker

Not quite sure how to implemenent it.

Lesson

Read and skimmed some of the material, which helped a lot. Got it working which I was pretty stoked about. Had to figure out how to differentiate between the Ram16K, Ram8K & Keyboard addresses in the long memory hierarchy, Binary translation! Check for the 14th and 13th bit in the byte to see where it's location is. Pretty slick.

Tomorrow

Continue with the CPU. Hopefully finalize it.

70m

Nand2Tetrus Unit 05 - Wiring the CPU

Task

Watch the final content and read the final chapters. Start implementing the CPU

Blocker

It's confusing. A lot of moving parts and I'm moving very slow. It's okay but am piecing it together one by one. Helping by looking at the diagrams in the book.

Lesson

Deconstructuring the instruction input with Not() & And() chips. Looking at the diagrams in the book. Very good.

Tomorrow

Implement the CPU and start with the Memory.

90m

Nand2Tetris Unit 05 - Beginning

Task

Start watching the content and reading the book chapter.

Blocker

Not so much. Kind of needed a little break, so I took it easy today.

Lesson

Learnt of the Hack computer architecture. Exciting stuff.

Tomorrow

Continue consuming the material. Hopefully be done with it.

60m

Nand2Tetris - Write Ups

Task

Write up the Unit 04.

Blocker

Time is blocking today.

Lesson

Not so much. Great with a little recap, and good to be up to date with the write ups. They're very good to have.

Tomorrow

Get started on Unit 05 material.

45m

Nand2Tetris - Write Ups

Task

Write up the Unit 03. What did I learn.

Blocker

Some weeks ago, so already forgotten a little bit. It's no worries.

Lesson

Great to recap every once in a while. Feels good. It cements the knowledge to go back I think.

Tomorrow

Write the Unit 04 write up which I just finished and start reading the Unit 05 material.

90m

Nand2Tetris - Write Ups

Task

Doing some write ups of the project. mult.asm & fill.asm.

Blocker

It's sunday. Not soo much time. Spending time with family.

Lesson

Nothing new today. Maybe a little brush up when reading the different sections again.

Tomorrow

I will write some more write ups to be up to date. This is just as important as writing the code.

30m

Nand2Tetris Unit 04 - Finalizing the project. fill.asm

Task

Finish the project. Write the fill.asm

Blocker

Not being 100% confident with it yet.

Lesson

I learnt a lot. Hoping it will stick. Well, i'll never know. When will I ever write assembly again. But I actually enjoyed it. Enjoying the struggling and piecing it together. Reminds of when I started to learn programming for the first time. Also learnt of A, D, M registers. Well I already know. A can be manipulated to be used as a pointer in loops. That was cool and had to click.

Tomorrow

Writing some of the weekly writeups.

90m

Nand2Tetris Unit 04 - Writing .asm

Task

Try writing some assembly. Attack the Unit 04 project, which is two files. mult.asm & fill.asm.

Blocker

Not quite understanding and feeling comfortable yet. Also time. Wish there were more of it today. Life happens but happy that I got time some time in.

Lesson

Actually became a bit comfortable with it. Some simple programs which were handed out I looked at and just rewrote while tracing them and psudocoding it up. It actually felt pretty good! Wrote mult.asm which is part of the unit project and it passed the test. Awesome. I missed this feeling of learning and trying out different things. Felt great.

Tomorrow

Continue the projects of unit 04. fill.asm. Learn more.

90m

Nand2Tetris Unit 04 - .asm

Task

Finalize the material and get started with writing some assembly hack programs. Look at some of the handed code examples. Write some more of the Unit 01 writeup.

Blocker

Hack assembly is confusing. Damn. It makes somewhat sense when reading it and when the instructors explain it while going through it. When I have the editor in front of me, I blank completely.

Lesson

Keep trying. It'll come eventually. I learnt of the online IDE assembler and CPU Emulator. Looked at some of the code examples. Wrote some Unit 01 writeup.

Tomorrow

Keep writing some hack assembly. I'll let it process for the rest of the day and through the night. It'll come.

90m

Nand2Tetris Unit 4

Task

Read more about the Hack Machine Language and understand it.

Blocker

Played around with this blog a little too much. But I did get some good info on the Hack language.

Lesson

Actually feel like I learned a lot and some of the concepts I had a hard time understanding yesterday, made sense. The pointers, memory registers and all that. D, A, M.

Tomorrow

More Hack assembly. Finalize going through the material and looking at some of the handed code examples.

90m

Nand2Tetris Unit 4

Task

Watch the final content of Unit 04.

Blocker

Some sickness got to me this week, unfortunately.

Lesson

Learned more of the Hack programming language and Assembly machine language in general. It's still a little bit unclear and I'm not 100% confident in writing code yet. Looking forward to it.

Tomorrow

Read the content in the book as well. Maybe watch some of the programming videos again. Maybe start coding some .asm programs.

60m

Nand2Tetris Unit 4

Task

Watch the material on Unit 04.

Blocker

Not enough time to watch all of it in one day.

Lesson

Learned of the Hack Assembly Machine Language and Machine Assembly Language in general. Looking forward to learn more.

Tomorrow

Continue with the material. Video and text.

90m

Nand2Tetris Unit 3

Task

Finalize the project. Completing the Program Counter (PC)

Blocker

Was struggling a little bit with it. Could not figure out how to route the logic. The programmer mindset kept me back. You can't just loop and if statement your way out of it. No early returns.

Lesson

Had to wire them together from their inputs to their outputs.

Tomorrow

Start Unit 4

90m

Nand2Tetris Unit 3

Task

Finalize the reading on Unit 3 and start the project.

Blocker

Full understanding of what happened. I kind of got it at the end when I implemented the RAM8. The bit & register made sense, but was struggling a little bit with RAM implementation. Had to figure out how to route things the right way. dMux8Way and Mux8Way.

Lesson

Learned of RAM implementation and how they stack on top if each other. Just like many other things in computer architecture. It's awesome. bit-register -> 16bit-register -> RAM8 and so on. Everything made sense when I was reading and watching the videos, but as soon as I had to implement it, I blanked. That's okay I think. Piecing it together.

Tomorrow

Finalize the project.

90m

Nand2Tetris Unit 3

Task

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.

90m

Nand2Tetris Unit 3

Task

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.

60m

Nand2Tetris Unit 2

Task

Finalize the ALU.

Blocker

Not quite sure how to get started.

Lesson

Learnt 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.

90m

Nand2Tetris Unit 2

Task

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 forward to it.

90m

Nand2Tetris Unit 2

Task

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.

90m

Nand2Tetris Unit 2

Task

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.

90m

Reading a little bit about C

Task

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.

90m

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.

90m

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.

90m

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.

90m

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.

90m

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.

Tomorrow

Starting Chapter 1.

90m