Josh On Design

  • Blog
  • About Josh
  • Books & Writing
  • Apps & Projects
  • Hire Me
past future

    Make Rects Fast, in Rust

    September 29th, 2022

    How can you draw a filled rectangle fast? By making it not slow! Great if you are using a GPU to accelerate rectangle drawing for you, but what if you are doing it oldskool with an in memory frame-buffer? You'd probably write some code like this:

    Read more...

    Tagged: rust

    Gameboy Emulator Progress

    February 23rd, 2022

    After a few weeks of work I’ve been able to get Tetris to boot and play. I can also run Dr Mario to enter the play screen but all of the pieces are hidden for some reason.

    Read more...

    Tagged: rust game

    Starting a Gameboy Emulator

    January 24th, 2022

    A week or so ago I ran across a video called The Ultimate Gameboy Talk, and indeed it was. Inspired by the simplicity and elegance of the original Gameboy, I decided to try my hand at building an emulator. A week later I have this:

    Read more...

    Tagged: rust game

    Rust Browser 8: Next Steps

    April 15th, 2020

    At this point I’ve been working on the browser for over a month and I’ve learned a ton about Rust. Sadly, it’s time for me to stop. I’ve taken it about as far as I can.

    Read more...

    Tagged: rust browser

    Rust Browser 7: Rendering

    April 13th, 2020

    Rendering. The big payoff. This is where we actually get to see something drawn to the screen. This is where the mini-browser starts to feel real. It’s also where the code is straight forward and the hard part is picking the library.

    Read more...

    Tagged: rust browser

    Rust Browser 6: Layout

    April 11th, 2020

    Now we get to the big dramatic part of building a browser. Layout. Until now we’ve just had a tree of data. This is the part where we position actual rectangles and colors and text blocks. The part where we do line wrapping and worry about font sizes. This is the real deal! Let’s dive in.

    Read more...

    Tagged: rust browser

    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.

    Read more...

    Tagged: rust browser

    Rust Browser 4: Type Madness

    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:

    Read more...

    Tagged: rust browser rant

    Rust Browser Part 3: A Long Slog for Small Features

    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.

    Read more...

    Tagged: rust browser

    Rust Browser Part 2: Parsers

    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.

    Read more...

    Tagged: rust browser

    Building a Rust Web Browser

    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?!

    Read more...

    Tagged: rust rant browser

past future
Like this? Hire Me!