RC Day 45

Today I added insertion modes to tiny-node-browser, as part of implementing DOM tree construction within HTML parsing. The tree construction section in How Browsers Work is too high-level to directly implement, so I worked directly from the W3 HTML5 specification, which helpfully provides algorithms for all stages of HTML parsing, including DOM tree construction. However, […]

Read More RC Day 45

RC Day 44

I was out sick last Friday, unfortunately, so no code and no update from that. I did a lot today! Here’s a very unpolished list of what I got up to: Reviewed hash tables, self-balancing BSTs, heaps, and priority queues Completed a fun palindrome substring counting problem with memoization & dynamic programming Read Nand 2 […]

Read More RC Day 44

RC Day 43

I got to ‘hello world’ in a kernel!!! This was all from following the Bare Bones OS tutorial. It’s thrilling to write some files, assemble, compile, link, and point an emulator towards the kernel, and see the starting point for an entire operating system start up in front of your eyes. There’s still a lot […]

Read More RC Day 43

RC Day 42

I refactored tiny-node-browser to enable easy extension of the list of display / non-display html elements. I also got ‘http://www.google.com’ to display in a more readable way. Because some of the script tags on the page include html tags (that shouldn’t be displayed), the HTML parser would put the tag on the stack, and then […]

Read More RC Day 42

RC Day 41

Today I refactored the unit tests covering what ‘content-type’ headers tiny-node-browser accepts in a response!   When I first wrote these tests, I was TDD-ing, and I was so excited to get the feature implemented that I didn’t take take the time to consider how to best structure these tests. I wrote a quick test that […]

Read More RC Day 41

RC Day 40

Today I made the classic mistake of not reading all provided information on a leetCode problem! I read this problem statement: Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (ie, from left to right, level by level from leaf to root). For example: Given binary tree [3,9,20,null,null,15,7], 3 / \ 9 20 […]

Read More RC Day 40

RC Day 39

Following the OSDev Bare Bones tutorial, I started writing the kernel entry point to set up the processor environment! Learned that the reason that Assembly is needed to write this is because there’s no stack at this point, which higher-level languages (specifically C) require to run. I also learned about the existance of a “Multiboot […]

Read More RC Day 39