Rust Browser 5: A Proper Tree Structure
April 8th, 2020
Styling in a browser is conceptually very simple. We’ve parsed the DOM into a tree structure of elements. We’ve parsed the CSS into a tree structure of rules.
April 8th, 2020
Styling in a browser is conceptually very simple. We’ve parsed the DOM into a tree structure of elements. We’ve parsed the CSS into a tree structure of rules.
March 24th, 2020
I have greatly enjoyed the reliability of Rust so far, but a few things really annoy / mystify me. One is the type annotations. I understand that type annotations lets you say what type another type is defined in terms of. The common case is a vector of points, with something like:
March 21st, 2020
I had hoped to be talking more about how to build a browser, but reality has intervened. It’s taken about a week, but the family is starting to calm down now and get used to the new normal of staying home. I’ve stocked up on supplies and prepped for exclusively working from home. Jesse is recovered from pink-eye and a cold, and we’ve scrubbed the house clean. Now all we can do is wait and try to help others as best we can.
March 14th, 2020
In the last part I talked about my motivations for building a new web browser / rendering engine in Rust. Today I'll tackle how I parse HTML and CSS.
March 10th, 2020
I have done something very foolish. I've started building a new web browser. From scratch. Not a new wrapper around Chromium or WebKit or Gecko. No, an actual new browser. Why have I done such a thing?!
March 3rd, 2020
In my side gig as a science fiction writer I'm trying to suss out the modern market. I grew up reading golden age sci-fi authors like Asimov and Heinlein. The are less than relevant today. When I was a kid YA (Young Adult) scifi/fantasy wasn't really a genre. Now it's dominated by modern blockbusters like Harry Potter and Divergent. So, if I'm to understand the modern market I should actually read some of this stuff. So that's why I read the first Hunger Games novel. Spoiler alert, I didn't like it but I do get it.
Tagged: rant
July 21st, 2019
I'm rebuilding my HTML Canvas Deep Dive book so I need a way to compile various source files into a final thing. I'm not producing an executable but rather a directory full of generated HTML, CSS, and Javascript, and possibly some other stuff; but it's the same basic idea. I need to turn a collection of things into another collection of things. I need a build system. So which should I use?
Tagged: rant javascript programming
July 15th, 2019
I'm optimistic about humanity's abillity to deal with climate change. I know that sounds ridiculous in the current political environment of the US, where one party can't agree on what to do and the other party denies that the problem even exists. But still I'm optimistic. Why? Because of the bomb.
Tagged: rant
June 28th, 2019
When you think of a book you probably think of prose. A bunch of paragraphs with section headers and chapter names, and perhaps a few illustrations. In short, you are thinking of a paper book. When I first wrote the HTML Canvas Deep Dive I was thinking along those lines as well, but I also wanted interactivity. What’s the point of having an educational book on the web if we can’t push the envelope a bit.
Tagged: canvas
June 25th, 2019
Some years ago I wrote a book called the HTML Canvas Deep Dive. To be truthful the writing was an accident. I taught a workshop four years in a row at OSCON, back when it was in Portland. Whenever I teach a workshop I want the students to have something to take away with them in case they don't finished, so I structure it as a series of lessons with hands on activities. Eventually I realized that if I simply called these chapters instead of lessons then I'd have a book on my hands. So that became the first release of HTML Canvas Deep Dive.
Tagged: canvas
February 20th, 2019
I'm happy to announce that as of today there is no Google on my website. In fact, there is nothing loaded from any other domains than my own. No fonts, no images, and absolutely no trackers. Here's how I did it.
Tagged: rant
January 31st, 2019
I had the great pleasure to meet lots of dedicated engineers, researchers, and scientists at the W3C Immersive Web Working Group face to face meeting this week. This is the team dedicated to creating standards for mixed reality so that we can all enjoy future interactive content from the web-browser of our choice.
Tagged: programming
January 29th, 2019
Or, an attempt to exercise my digital rights, badly managed.
Tagged: rant
January 15th, 2019
2018 was a pretty good year. Jesse loves 2nd grade, Jen earned a new car (her 10th?), and it marks my first full year at Mozilla. Professionally I feel like I’ve been all over the place. I’ve tried lots of new ways to reach people, some successful and others less so. The teams I serve are happy so I guess I’m doing things okay, but I want to prune in 2019. I want to stop doing things that have not been effective and double down on the things that seem interesting. 2019 should be a very interesting year for WebXR, but before we get to those plans, let’s review 2018.
Tagged: devrel
October 9th, 2018
The Manga Guide to Cryptography by Masaaki Mitani, Shinichi Sato, Idero Hinoki is a rather improbable book. Can you really teach crypto, a notably math heavy subject, through a graphic novel? The answer is: sorta.
Tagged: bookreview
October 6th, 2018
If you have a kid who loves Legos, or are a Lego nut who just loves Legos (or both, like me), then you know about the Technic line, a set of kits with motors and gears for building crazy contraptions. My son and I both love them.
Tagged: bookreview
October 6th, 2018
If you haven't used it before, Scratch is a programming environment for teaching kids. It's a real programming system with loops and conditionals, but it uses visual blocks rather than textual syntax, making it *far* easier for kids to learn. Recently the Scratch team created Scratch Jr, a simpler version for younger kids that runs on tablets like the iPad. One of the problems with Scratch and Scratch Jr is that once you have completed the in-app tutorials you are left to your imagination to come up with new things to build. Some kids need a bit more guidance. That's where No Starch Press' ScratchJr Coding Cards come in.
Tagged: bookreview
August 14th, 2018
One year ago today I joined the Mixed Reality Team at Mozilla.
Tagged: mozilla
August 6th, 2018
I just finished reading Fluke: Or, I Know Why the Winged Whale Sings by Christopher Moore. I’m a fan of Christopher Moore. I really love his mixture of humor and the fantastic. I consider him a modern day Douglas Adams. Lamb is an amazing book that I encourage everyone to read. But Fluke? Well, Fluke fell short. While it was mostly enjoyable it had some major flaws that sort of ruined it for me. Needless to say. Spoilers are coming.
Tagged: bookreview scifi
July 11th, 2018
Today we are going to take a break from creative procedural generation and talk about a very useful graphics primitive, the Bézier curve, and learn how to render it from scratch.
Tagged: javascript graphics procgen