Computer Science Visualizations with Sam Rose
Read full transcript 22 segments
-
hi I'm Scott Hanselman and it's another hi I'm Scott Hanselman and it's another episode of Hansel minutes today I'm episode of Hansel minutes today I'm episode of Hansel minutes today I'm chatting with Sam Rose how are you sir chatting with Sam Rose how are you sir chatting with Sam Rose how are you sir very good thank you how are you I am very good thank you how are you I am very good thank you how are you I am getting there getting better had a getting there getting better had a getting there getting better had a little bit of the Rona did not feel good little bit of the Rona did not feel good little bit of the Rona did not feel good for a while uh so had a little trouble for a while uh so had a little trouble for a while uh so had a little trouble scheduling the show but I do appreciate scheduling the show but I do appreciate scheduling the show but I do appreciate you being flexible with me as I I come you being flexible with me as I I come you being flexible with me as I I come out of my uh my little brief sickness out of my uh my little brief sickness out of my uh my little brief sickness there yeah no problem so you blog at there yeah no problem so you blog at there yeah no problem so you blog at s.dev and you know I am and was a s.dev and you know I am and was a s.dev and you know I am and was a longtime blogger uh I blogged for almost longtime blogger uh I blogged for almost longtime blogger uh I blogged for almost 20 years and I recently started to slow 20 years and I recently started to slow 20 years and I recently started to slow down I used to blog every Tuesday and down I used to blog every Tuesday and down I used to blog every Tuesday and Thursday basically for 20 years and it Thursday basically for 20 years and it Thursday basically for 20 years and it just kind of twice a week became once a just kind of twice a week became once a just kind of twice a week became once a week became once a month and now I think week became once a month and now I think week became once a month and now I think it's more about quality not quantity and it's more about quality not quantity and it's more about quality not quantity and you have such a quality to your blog you have such a quality to your blog you have such a quality to your blog post how did you find that that bespoke post how did you find that that bespoke post how did you find that that bespoke blog you know quality and decide that blog you know quality and decide that blog you know quality and decide that it's okay to blog three times a year I I it's okay to blog three times a year I I it's okay to blog three times a year I I didn't start out that way like I've been didn't start out that way like I've been didn't start out that way like I've been blogging for something like almost 15 blogging for something like almost 15 blogging for something like almost 15 years now like my blog goes back I think years now like my blog goes back I think years now like my blog goes back I think to like 2011 but I was writing a bit to like 2011 but I was writing a bit to like 2011 but I was writing a bit before that as well took a long time to before that as well took a long time to before that as well took a long time to find something that brings together all find something that brings together all find something that brings together all of the skills that create the post that of the skills that create the post that of the skills that create the post that you see today so there's a lot of front you see today so there's a lot of front you see today so there's a lot of front end stuff that needs to be done in there end stuff that needs to be done in there end stuff that needs to be done in there so the visualizations the interactive so the visualizations the interactive so the visualizations the interactive elements um the kind of writing style as elements um the kind of writing style as elements um the kind of writing style as well is something that I've had to well is something that I've had to well is something that I've had to develop over a long time and and get develop over a long time and and get develop over a long time and and get better at I really love the blog posts
-
better at I really love the blog posts better at I really love the blog posts of do you know bartage chowski I do of do you know bartage chowski I do of do you know bartage chowski I do not like he's done a lot of brilliant not like he's done a lot of brilliant not like he's done a lot of brilliant posts he posts maybe once or twice a posts he posts maybe once or twice a posts he posts maybe once or twice a year but they're all uh for example he's year but they're all uh for example he's year but they're all uh for example he's done one on mechanical watches but he done one on mechanical watches but he done one on mechanical watches but he actually created a fully working 3D actually created a fully working 3D actually created a fully working 3D simulation of a mechanical watch and at simulation of a mechanical watch and at simulation of a mechanical watch and at the very beginning of this post you can the very beginning of this post you can the very beginning of this post you can play around with this three-dimensional play around with this three-dimensional play around with this three-dimensional mechanical watch and you can explode it mechanical watch and you can explode it mechanical watch and you can explode it so you see all the different Pieces come so you see all the different Pieces come so you see all the different Pieces come out like a a really nice 3D out like a a really nice 3D out like a a really nice 3D visualization of them they're all visualization of them they're all visualization of them they're all colorcoded as well and he takes you colorcoded as well and he takes you colorcoded as well and he takes you through this really enormous post where through this really enormous post where through this really enormous post where he explains what every single component he explains what every single component he explains what every single component that mechanical watch does and I looked that mechanical watch does and I looked that mechanical watch does and I looked at these and I've I've loved them for at these and I've I've loved them for at these and I've I've loved them for years and I thought you know I really years and I thought you know I really years and I thought you know I really want to do that I really want to do that want to do that I really want to do that want to do that I really want to do that that for programming and I knew I that for programming and I knew I that for programming and I knew I wouldn't get to the level that he does wouldn't get to the level that he does wouldn't get to the level that he does he's very practiced at it I think he is he's very practiced at it I think he is he's very practiced at it I think he is in in some way professionally involved in in some way professionally involved in in some way professionally involved in using CAD so he's got 3D modeling in using CAD so he's got 3D modeling in using CAD so he's got 3D modeling skills outside of his posts I decided to skills outside of his posts I decided to skills outside of his posts I decided to start at a bit more simple I was like start at a bit more simple I was like start at a bit more simple I was like how far can I get with reasonably simple how far can I get with reasonably simple how far can I get with reasonably simple two-dimensional animation and I I began two-dimensional animation and I I began two-dimensional animation and I I began with load balancing in this form because with load balancing in this form because with load balancing in this form because before I'd written my load balancing before I'd written my load balancing before I'd written my load balancing post I hadn't written anything for a post I hadn't written anything for a post I hadn't written anything for a good while and I'd had this buildup of good while and I'd had this buildup of good while and I'd had this buildup of of of Creative Energy that I hadn't had of of Creative Energy that I hadn't had of of Creative Energy that I hadn't had anywhere to show it to outlet it and I anywhere to show it to outlet it and I anywhere to show it to outlet it and I took a topic I knew reasonably well I took a topic I knew reasonably well I took a topic I knew reasonably well I took the style I wanted in Bosh's work took the style I wanted in Bosh's work took the style I wanted in Bosh's work and I made a visualization of what I
-
and I made a visualization of what I and I made a visualization of what I think of when I think of load balancing think of when I think of load balancing think of when I think of load balancing so uh it came from there really it just so uh it came from there really it just so uh it came from there really it just this gradual buildup and wanting to make this gradual buildup and wanting to make this gradual buildup and wanting to make a post with longevity so I I I'm very a post with longevity so I I I'm very a post with longevity so I I I'm very care careful not to use things that care careful not to use things that care careful not to use things that would Age badly so I don't talk about would Age badly so I don't talk about would Age badly so I don't talk about many specific Technologies I try and many specific Technologies I try and many specific Technologies I try and keep it with Concepts and ideas so my keep it with Concepts and ideas so my keep it with Concepts and ideas so my low balancing post talks about different low balancing post talks about different low balancing post talks about different algorithms but it won't talk about for algorithms but it won't talk about for algorithms but it won't talk about for example engine X or some specific example engine X or some specific example engine X or some specific implementation of these things you implementation of these things you implementation of these things you mentioned in the beginning of your mentioned in the beginning of your mentioned in the beginning of your question there that um you you've come question there that um you you've come question there that um you you've come to to realize that quality is important to to realize that quality is important to to realize that quality is important uh I think the rest of the world has uh I think the rest of the world has uh I think the rest of the world has gone the other way and especially with gone the other way and especially with gone the other way and especially with more and more algorithmic curation of more and more algorithmic curation of more and more algorithmic curation of feeds one of the things I think is over feeds one of the things I think is over feeds one of the things I think is over rewarded at the moment is frequency I rewarded at the moment is frequency I rewarded at the moment is frequency I think algorithms like they reliably think algorithms like they reliably think algorithms like they reliably reward you if you are posting every day reward you if you are posting every day reward you if you are posting every day or several times a week in a consistent or several times a week in a consistent or several times a week in a consistent fashion and with textual content fashion and with textual content fashion and with textual content becoming a bit easier to produce with becoming a bit easier to produce with becoming a bit easier to produce with llms and things like that people are llms and things like that people are llms and things like that people are putting out lower quality but higher putting out lower quality but higher putting out lower quality but higher frequency content to be better awarded frequency content to be better awarded frequency content to be better awarded by curation algorithms and it helps by curation algorithms and it helps by curation algorithms and it helps quality stand out I think I think maybe quality stand out I think I think maybe quality stand out I think I think maybe 10 years ago I tried to do some very 10 years ago I tried to do some very 10 years ago I tried to do some very very simple interactive blogs and I got very simple interactive blogs and I got very simple interactive blogs and I got kind of an analysis paralysis because it kind of an analysis paralysis because it kind of an analysis paralysis because it was a different Internet it's more of a was a different Internet it's more of a was a different Internet it's more of a jQuery internet at the time and I got
-
jQuery internet at the time and I got jQuery internet at the time and I got all in my head and when I say analysis all in my head and when I say analysis all in my head and when I say analysis paralysis I mean I literally like didn't paralysis I mean I literally like didn't paralysis I mean I literally like didn't end up doing it and did it poorly end up doing it and did it poorly end up doing it and did it poorly because I over thought it and decided it because I over thought it and decided it because I over thought it and decided it was not possible because I'm like well was not possible because I'm like well was not possible because I'm like well SEO and you know it's an interactive SEO and you know it's an interactive SEO and you know it's an interactive page an interactive Pages do poorly and page an interactive Pages do poorly and page an interactive Pages do poorly and Google won't really know what to do with Google won't really know what to do with Google won't really know what to do with it do I load all the JavaScript locally it do I load all the JavaScript locally it do I load all the JavaScript locally do I pull in the jQuery CDN like I just do I pull in the jQuery CDN like I just do I pull in the jQuery CDN like I just there's 20 different little technical there's 20 different little technical there's 20 different little technical reasons why I convinced myself that it reasons why I convinced myself that it reasons why I convinced myself that it was going to bit was going to bit was going to bit rot and when I say bespoke I I feel like rot and when I say bespoke I I feel like rot and when I say bespoke I I feel like yours is bespoke but at the same time yours is bespoke but at the same time yours is bespoke but at the same time when I view Source I find a lot of when I view Source I find a lot of when I view Source I find a lot of minimized minimized minimized JavaScript so I feel like the view JavaScript so I feel like the view JavaScript so I feel like the view Source web that I learned on I'm not Source web that I learned on I'm not Source web that I learned on I'm not able to like dig in I know that I could able to like dig in I know that I could able to like dig in I know that I could figure out how you did it but I spent figure out how you did it but I spent figure out how you did it but I spent about five minutes trying to figure out about five minutes trying to figure out about five minutes trying to figure out how you did it and I kind of like gave how you did it and I kind of like gave how you did it and I kind of like gave up because it wasn't immediately obvious up because it wasn't immediately obvious up because it wasn't immediately obvious so I guess my question to you is how do so I guess my question to you is how do so I guess my question to you is how do you make it uh self-contained where you make it uh self-contained where you make it uh self-contained where you're feeling confident that it is you're feeling confident that it is you're feeling confident that it is going to have longevity because I I I going to have longevity because I I I going to have longevity because I I I felt at the time there wasn't a good way felt at the time there wasn't a good way felt at the time there wasn't a good way to do it that was going to not just to do it that was going to not just to do it that was going to not just spontaneously stop working because we spontaneously stop working because we spontaneously stop working because we were at a time when the browsers were were at a time when the browsers were were at a time when the browsers were just pumping out new versions all the just pumping out new versions all the just pumping out new versions all the time and and any any random Tuesday you time and and any any random Tuesday you time and and any any random Tuesday you could wake up and your blog would not could wake up and your blog would not could wake up and your blog would not not work anymore the web seems to have not work anymore the web seems to have not work anymore the web seems to have stabilized a little bit did you have any stabilized a little bit did you have any stabilized a little bit did you have any challenges trying to decide how you were challenges trying to decide how you were challenges trying to decide how you were going to build the platform on which you going to build the platform on which you going to build the platform on which you were going to build the were going to build the were going to build the visualizations in the beginning I didn't visualizations in the beginning I didn't visualizations in the beginning I didn't think super hard about it I found a way
-
think super hard about it I found a way think super hard about it I found a way to render 2D Graphics so I use pixie JS to render 2D Graphics so I use pixie JS to render 2D Graphics so I use pixie JS um P ixi JS and I ran with that so pixie um P ixi JS and I ran with that so pixie um P ixi JS and I ran with that so pixie JS is a a pretty popular 2D rendering JS is a a pretty popular 2D rendering JS is a a pretty popular 2D rendering library for JavaScript and it's it's library for JavaScript and it's it's library for JavaScript and it's it's served me extremely well so everything served me extremely well so everything served me extremely well so everything I've written so far uses pixie JS uh in I've written so far uses pixie JS uh in I've written so far uses pixie JS uh in some fashion but I have come to think some fashion but I have come to think some fashion but I have come to think more about this now and I am also a bit more about this now and I am also a bit more about this now and I am also a bit annoyed that you can't just view Source annoyed that you can't just view Source annoyed that you can't just view Source I'm um I'm a bit annoyed that I'll I'm um I'm a bit annoyed that I'll I'm um I'm a bit annoyed that I'll preface this by saying pixie JS has been preface this by saying pixie JS has been preface this by saying pixie JS has been fantastic it's it's a really nice fantastic it's it's a really nice fantastic it's it's a really nice library to work with the problem I have library to work with the problem I have library to work with the problem I have is that it's a pretty heavy Library it's is that it's a pretty heavy Library it's is that it's a pretty heavy Library it's something like 600 k btes and I use a something like 600 k btes and I use a something like 600 k btes and I use a tiny slice of what it can do for the tiny slice of what it can do for the tiny slice of what it can do for the things I write uh so much so that I in things I write uh so much so that I in things I write uh so much so that I in my spare time been experimenting with my spare time been experimenting with my spare time been experimenting with building my own 2D rendering Library building my own 2D rendering Library building my own 2D rendering Library specifically tailored for the things I specifically tailored for the things I specifically tailored for the things I want to do that is as small as it can be want to do that is as small as it can be want to do that is as small as it can be so I I've got to a point now where I so I I've got to a point now where I so I I've got to a point now where I think I could probably recreate some of think I could probably recreate some of think I could probably recreate some of my simpler visualizations and it's less my simpler visualizations and it's less my simpler visualizations and it's less than 10 kilobytes of JavaScript what I'm than 10 kilobytes of JavaScript what I'm than 10 kilobytes of JavaScript what I'm trying to do is very very simple I'm I'm trying to do is very very simple I'm I'm trying to do is very very simple I'm I'm moving simple shape around the screen uh moving simple shape around the screen uh moving simple shape around the screen uh so these things have started to come a so these things have started to come a so these things have started to come a bit more to the Forefront as I've gotten bit more to the Forefront as I've gotten bit more to the Forefront as I've gotten more confident with with Pixie JS and more confident with with Pixie JS and more confident with with Pixie JS and what I am doing I would love to be able what I am doing I would love to be able what I am doing I would love to be able to ship versions of my posts and I think to ship versions of my posts and I think to ship versions of my posts and I think I will be able to do this that you can I will be able to do this that you can I will be able to do this that you can view source and there is no minification view source and there is no minification view source and there is no minification going on and it is readable uh to get going on and it is readable uh to get going on and it is readable uh to get around that nowadays I I I have a GitHub around that nowadays I I I have a GitHub around that nowadays I I I have a GitHub repo where I have all of the code for my repo where I have all of the code for my repo where I have all of the code for my stuff that you can go and see it's not
-
stuff that you can go and see it's not stuff that you can go and see it's not quite the same because it's a little bit quite the same because it's a little bit quite the same because it's a little bit tricky to actually run it and and play tricky to actually run it and and play tricky to actually run it and and play around with it but it is there I I do around with it but it is there I I do around with it but it is there I I do want people to be able to see it and want people to be able to see it and want people to be able to see it and learn from it but the the whole bitrock learn from it but the the whole bitrock learn from it but the the whole bitrock problem that does concern me somewhat I problem that does concern me somewhat I problem that does concern me somewhat I think I read several blog posts now from think I read several blog posts now from think I read several blog posts now from content creators talking about this content creators talking about this content creators talking about this problem in different ways because you problem in different ways because you problem in different ways because you you mentioned browsers having this you you mentioned browsers having this you you mentioned browsers having this you know any given Tuesday they could do a know any given Tuesday they could do a know any given Tuesday they could do a release and your things won't work I release and your things won't work I release and your things won't work I think front-end Frameworks have had that think front-end Frameworks have had that think front-end Frameworks have had that problem for a little while so I'm not a problem for a little while so I'm not a problem for a little while so I'm not a front-end developer which surprises some front-end developer which surprises some front-end developer which surprises some people I I have a background in uh people I I have a background in uh people I I have a background in uh backend development and Sr infa kind of backend development and Sr infa kind of backend development and Sr infa kind of stuff the front end has been a scary stuff the front end has been a scary stuff the front end has been a scary Prospect for me for a long time and it Prospect for me for a long time and it Prospect for me for a long time and it has been the thing I have most have to has been the thing I have most have to has been the thing I have most have to come to terms with in this you know come to terms with in this you know come to terms with in this you know creating these blog posts so I I've creating these blog posts so I I've creating these blog posts so I I've tried to keep it as web standards as tried to keep it as web standards as tried to keep it as web standards as possible under the belief that this is possible under the belief that this is possible under the belief that this is going to be the easiest way to make it going to be the easiest way to make it going to be the easiest way to make it have longevity so I I use web components have longevity so I I use web components have longevity so I I use web components and I use them essentially raw like I and I use them essentially raw like I and I use them essentially raw like I don't have any helper libraries to help don't have any helper libraries to help don't have any helper libraries to help me interact with them I I write web me interact with them I I write web me interact with them I I write web standards raw web components I'd say the standards raw web components I'd say the standards raw web components I'd say the only the only thing I make use of that I only the only thing I make use of that I only the only thing I make use of that I worry a little bit about if it'll be worry a little bit about if it'll be worry a little bit about if it'll be here in the next 10 20 years is is here in the next 10 20 years is is here in the next 10 20 years is is typescript um I think typescript has typescript um I think typescript has typescript um I think typescript has it's proven itself as a very very it's it's proven itself as a very very it's it's proven itself as a very very it's it's sticky the community has adopted it it's sticky the community has adopted it it's sticky the community has adopted it in in a large sense as the way of doing in in a large sense as the way of doing in in a large sense as the way of doing types types types JavaScript is it still going to be the JavaScript is it still going to be the JavaScript is it still going to be the way we do type JavaScript in 20 years way we do type JavaScript in 20 years way we do type JavaScript in 20 years time or am I going to have to rewrite my
-
time or am I going to have to rewrite my time or am I going to have to rewrite my stuff to you something different it's stuff to you something different it's stuff to you something different it's it's really hard to say when you've got it's really hard to say when you've got it's really hard to say when you've got things like wasm making strides like in things like wasm making strides like in things like wasm making strides like in the future maybe we won't have a the future maybe we won't have a the future maybe we won't have a specific web language we will compile to specific web language we will compile to specific web language we will compile to wasm from lots of different languages so wasm from lots of different languages so wasm from lots of different languages so um that's the only sort what I would um that's the only sort what I would um that's the only sort what I would refer to as a fancy thing that I use I refer to as a fancy thing that I use I refer to as a fancy thing that I use I don't use anything like Astro or nextjs don't use anything like Astro or nextjs don't use anything like Astro or nextjs or anything like that I try and keep it or anything like that I try and keep it or anything like that I try and keep it as Bare Bones as I can yeah um looking as Bare Bones as I can yeah um looking as Bare Bones as I can yeah um looking at the load balancing blog and of course at the load balancing blog and of course at the load balancing blog and of course everyone can take a look at all of these everyone can take a look at all of these everyone can take a look at all of these at Sam who. I'm at/ load balancing you at Sam who. I'm at/ load balancing you at Sam who. I'm at/ load balancing you know the minified Pixies only know the minified Pixies only know the minified Pixies only 130k the irony of that page is that the 130k the irony of that page is that the 130k the irony of that page is that the fancy and sophisticated stuff which is fancy and sophisticated stuff which is fancy and sophisticated stuff which is all of the the animations are all of the the animations are all of the the animations are 136k but then you've got a one megabyte 136k but then you've got a one megabyte 136k but then you've got a one megabyte plotly to do all of your your your plotly to do all of your your your plotly to do all of your your your graphics which are kind of static and graphics which are kind of static and graphics which are kind of static and just kind of their chilling they could just kind of their chilling they could just kind of their chilling they could have arguably been done with a PNG yes have arguably been done with a PNG yes have arguably been done with a PNG yes yeah they certainly could have done I um yeah they certainly could have done I um yeah they certainly could have done I um in which post was it I think in my in which post was it I think in my in which post was it I think in my hashing post so slashing I I wrote my hashing post so slashing I I wrote my hashing post so slashing I I wrote my own plotting Library own plotting Library own plotting Library because I was a little bit annoyed that because I was a little bit annoyed that because I was a little bit annoyed that like wow plot these one whole megabyte like wow plot these one whole megabyte like wow plot these one whole megabyte of JavaScript I even um I made the of JavaScript I even um I made the of JavaScript I even um I made the rookie mistake with some of my posts in rookie mistake with some of my posts in rookie mistake with some of my posts in the beginning by like having full-size the beginning by like having full-size the beginning by like having full-size images that were scaled down in CSS so I images that were scaled down in CSS so I images that were scaled down in CSS so I hadn't properly scaled them down so they hadn't properly scaled them down so they hadn't properly scaled them down so they were each like a megabyte as well so were each like a megabyte as well so were each like a megabyte as well so it's been a learning Journey people have it's been a learning Journey people have it's been a learning Journey people have referred to me sometimes as as a referred to me sometimes as as a referred to me sometimes as as a front-end expert just off the back of front-end expert just off the back of front-end expert just off the back of seeing these blog posts and nothing seeing these blog posts and nothing seeing these blog posts and nothing could be possibly further from the truth
-
could be possibly further from the truth could be possibly further from the truth I'm I'm muddling my way through this I'm I'm muddling my way through this I'm I'm muddling my way through this have you uh struggled with people not have you uh struggled with people not have you uh struggled with people not realizing that they can click cuz like I realizing that they can click cuz like I realizing that they can click cuz like I probably an hour or two into hashing probably an hour or two into hashing probably an hour or two into hashing before I accidentally figured out that I before I accidentally figured out that I before I accidentally figured out that I could click and I don't think it's your could click and I don't think it's your could click and I don't think it's your fault it's not that the graphics don't fault it's not that the graphics don't fault it's not that the graphics don't ask to be clicked I think we're just not ask to be clicked I think we're just not ask to be clicked I think we're just not used to clicking I I would be a little used to clicking I I would be a little used to clicking I I would be a little bit less nice than you were just then bit less nice than you were just then bit less nice than you were just then and say I think it is at least 50% my and say I think it is at least 50% my and say I think it is at least 50% my fault something else I have had to learn fault something else I have had to learn fault something else I have had to learn while doing all of this is there is a while doing all of this is there is a while doing all of this is there is a there's there's a whole career and like there's there's a whole career and like there's there's a whole career and like there's a whole body of research into there's a whole body of research into there's a whole body of research into user experience and user interface user experience and user interface user experience and user interface design and I think the visualizations in design and I think the visualizations in design and I think the visualizations in hashing they don't ask to be clicked I hashing they don't ask to be clicked I hashing they don't ask to be clicked I think I have a a thing at the beginning think I have a a thing at the beginning think I have a a thing at the beginning of the post that says you can click on of the post that says you can click on of the post that says you can click on things very non-specific as to what you things very non-specific as to what you things very non-specific as to what you can click on is it's I I don't blame the can click on is it's I I don't blame the can click on is it's I I don't blame the user at all for for not realizing I user at all for for not realizing I user at all for for not realizing I think I could have done significantly think I could have done significantly think I could have done significantly better there and my most recent post was better there and my most recent post was better there and my most recent post was on queuing and it's not on my website on queuing and it's not on my website on queuing and it's not on my website this is a company uh this is a post that this is a company uh this is a post that this is a company uh this is a post that a company paid me to write for their for a company paid me to write for their for a company paid me to write for their for their own blog that one was the first their own blog that one was the first their own blog that one was the first time that the second time that time that the second time that time that the second time that everything in the post is controllable everything in the post is controllable everything in the post is controllable by the user and you are fully intended by the user and you are fully intended by the user and you are fully intended to interact with these things the other to interact with these things the other to interact with these things the other one I think I saw you had it open one I think I saw you had it open one I think I saw you had it open earlier the memory allocation one like earlier the memory allocation one like earlier the memory allocation one like you are driving that and then queing was you are driving that and then queing was you are driving that and then queing was the same but the same but the same but Qing uh so Qing is at Qing uh so Qing is at Qing uh so Qing is at encore bloging
-
encore bloging encore bloging NC o r e dodev that one is much more if NC o r e dodev that one is much more if NC o r e dodev that one is much more if you don't realize you can click on those you don't realize you can click on those you don't realize you can click on those things and none of the posts make sense things and none of the posts make sense things and none of the posts make sense and I went through several iterations of and I went through several iterations of and I went through several iterations of sending it to friends um friends would sending it to friends um friends would sending it to friends um friends would be like yeah I don't really understand be like yeah I don't really understand be like yeah I don't really understand what what these these visualizations what what these these visualizations what what these these visualizations mean and I I'd watch them like we do a mean and I I'd watch them like we do a mean and I I'd watch them like we do a video call and I'd watch them go through video call and I'd watch them go through video call and I'd watch them go through and they're just scrolling and I'm like and they're just scrolling and I'm like and they're just scrolling and I'm like you meant to you meant to click on the you meant to you meant to click on the you meant to you meant to click on the things so I was looking at the hashing things so I was looking at the hashing things so I was looking at the hashing one and I was thinking because there's a one and I was thinking because there's a one and I was thinking because there's a there's a pulsing ball at the top that there's a pulsing ball at the top that there's a pulsing ball at the top that says this article has visualization that says this article has visualization that says this article has visualization that be can be clicked but it is inside of a be can be clicked but it is inside of a be can be clicked but it is inside of a gray background and I went right past it gray background and I went right past it gray background and I went right past it yeah and then I was thinking to myself yeah and then I was thinking to myself yeah and then I was thinking to myself as I am looking at one of the kind of as I am looking at one of the kind of as I am looking at one of the kind of static visualizations not realizing that static visualizations not realizing that static visualizations not realizing that it's not static at all I thought to it's not static at all I thought to it's not static at all I thought to myself oh a little ghost cursor just myself oh a little ghost cursor just myself oh a little ghost cursor just kind of like shaking back and forth kind of like shaking back and forth kind of like shaking back and forth going click like the way that iPad you going click like the way that iPad you going click like the way that iPad you know how like there's a standard on know how like there's a standard on know how like there's a standard on iPads when you get an iPad and they iPads when you get an iPad and they iPads when you get an iPad and they force they like gray out the page and force they like gray out the page and force they like gray out the page and then they force you to click on then they force you to click on then they force you to click on something and they go one of one of two something and they go one of one of two something and they go one of one of two two of two you know you know or three of two of two you know you know or three of two of two you know you know or three of four and then they they basically like four and then they they basically like four and then they they basically like they show you what what what the they show you what what what the they show you what what what the interface looks like and they gray out interface looks like and they gray out interface looks like and they gray out the page and then they Spotlight a thing the page and then they Spotlight a thing the page and then they Spotlight a thing and then they insist you're G to and then they insist you're G to and then they insist you're G to freaking touch this so we're not g to freaking touch this so we're not g to freaking touch this so we're not g to let you get past it and then I go to let you get past it and then I go to let you get past it and then I go to queing and you literally have a little queing and you literally have a little queing and you literally have a little pulsing uh Mouse and you literally put pulsing uh Mouse and you literally put pulsing uh Mouse and you literally put the word click there which made it the word click there which made it the word click there which made it extremely unambiguous so I assume that extremely unambiguous so I assume that extremely unambiguous so I assume that that you you cracked that uh that that that you you cracked that uh that that that you you cracked that uh that that went through several iterations to it went through several iterations to it went through several iterations to it began in the beginning I was like it's
-
began in the beginning I was like it's began in the beginning I was like it's obviously a button and I think this is obviously a button and I think this is obviously a button and I think this is me not being good at this at all and me not being good at this at all and me not being good at this at all and learning very much as I'm going along learning very much as I'm going along learning very much as I'm going along just coming through right like oh it's just coming through right like oh it's just coming through right like oh it's obviously a button people should realize obviously a button people should realize obviously a button people should realize the big yellow circle is a button uh and the big yellow circle is a button uh and the big yellow circle is a button uh and then I put the just the cursor not then I put the just the cursor not then I put the just the cursor not moving and I was like surely this time moving and I was like surely this time moving and I was like surely this time people will recognize that that is people will recognize that that is people will recognize that that is clickable and still I got feedback from clickable and still I got feedback from clickable and still I got feedback from people saying I didn't didn't know that people saying I didn't didn't know that people saying I didn't didn't know that at all um and it's it's really at all um and it's it's really at all um and it's it's really fascinating to me what you said about fascinating to me what you said about fascinating to me what you said about hashing where you you you went past the hashing where you you you went past the hashing where you you you went past the thing that in in in my mind back when I thing that in in in my mind back when I thing that in in in my mind back when I wrote this I was like this is blindingly wrote this I was like this is blindingly wrote this I was like this is blindingly obvious everybody should be able to see obvious everybody should be able to see obvious everybody should be able to see it says you should click on things but it says you should click on things but it says you should click on things but you just go straight past that it's not you just go straight past that it's not you just go straight past that it's not you you don't human beings do not scan you you don't human beings do not scan you you don't human beings do not scan top to bottom in like a very continuous top to bottom in like a very continuous top to bottom in like a very continuous way like we jump and we skim and we way like we jump and we skim and we way like we jump and we skim and we don't we don't fully take everything in don't we don't fully take everything in don't we don't fully take everything in and you have to be aware of that when and you have to be aware of that when and you have to be aware of that when you're writing stuff I now recognize you're writing stuff I now recognize you're writing stuff I now recognize that a lot more and it I think it that a lot more and it I think it that a lot more and it I think it reflects in some of my later work but reflects in some of my later work but reflects in some of my later work but it's this whole body of of user it's this whole body of of user it's this whole body of of user experience that I had no exposure to experience that I had no exposure to experience that I had no exposure to before I began this that I've had to before I began this that I've had to before I began this that I've had to learn as I go along sometimes through learn as I go along sometimes through learn as I go along sometimes through quite painful lessons with people to get quite painful lessons with people to get quite painful lessons with people to get like that the cursor moving and it like that the cursor moving and it like that the cursor moving and it saying click was almost a joke I was saying click was almost a joke I was saying click was almost a joke I was like surely it doesn't need to be this like surely it doesn't need to be this like surely it doesn't need to be this sign posted but it really does otherwise sign posted but it really does otherwise sign posted but it really does otherwise people are going to go past it and not people are going to go past it and not people are going to go past it and not get the get the get the experience um back to the like how did experience um back to the like how did experience um back to the like how did you write it I can I thought it was you write it I can I thought it was you write it I can I thought it was funny that you said you use pixie JS and funny that you said you use pixie JS and funny that you said you use pixie JS and then you're like but at some point I then you're like but at some point I then you're like but at some point I might just write my own I kind of like
-
might just write my own I kind of like might just write my own I kind of like both laughed internally and then winced both laughed internally and then winced both laughed internally and then winced because like we have an internet now because like we have an internet now because like we have an internet now where we have built up such a base of where we have built up such a base of where we have built up such a base of the pyramid that you can build you know the pyramid that you can build you know the pyramid that you can build you know anything there are emulators running in anything there are emulators running in anything there are emulators running in wasm like there it's a full virtual wasm like there it's a full virtual wasm like there it's a full virtual machine and your solution isn't to use machine and your solution isn't to use machine and your solution isn't to use one of the 50 different 2D canvas things one of the 50 different 2D canvas things one of the 50 different 2D canvas things but to like make another one it's that but to like make another one it's that but to like make another one it's that whole there's 12 standards we need to whole there's 12 standards we need to whole there's 12 standards we need to solve that let's make a 13th standard solve that let's make a 13th standard solve that let's make a 13th standard but it means that you didn't find the but it means that you didn't find the but it means that you didn't find the one that want does the thing you want one that want does the thing you want one that want does the thing you want for your use case so I thought that was for your use case so I thought that was for your use case so I thought that was kind of funny but my question underneath kind of funny but my question underneath kind of funny but my question underneath that is like when I'm looking at the uh that is like when I'm looking at the uh that is like when I'm looking at the uh the queuing examples there's like five the queuing examples there's like five the queuing examples there's like five or six of them they're all kind of the or six of them they're all kind of the or six of them they're all kind of the same look but they build on each other same look but they build on each other same look but they build on each other yeah did you get into your head and try yeah did you get into your head and try yeah did you get into your head and try to like build an engine to avoid reuse to like build an engine to avoid reuse to like build an engine to avoid reuse or did you just copy paste them and then or did you just copy paste them and then or did you just copy paste them and then add a little bit like is there code add a little bit like is there code add a little bit like is there code reuse happening here or did you just reuse happening here or did you just reuse happening here or did you just there there is code reuse um so uh I'll there there is code reuse um so uh I'll there there is code reuse um so uh I'll zoom out ever so slightly whenever I zoom out ever so slightly whenever I zoom out ever so slightly whenever I start a new post the the first thing I start a new post the the first thing I start a new post the the first thing I do is I copi the Old Post in full into a do is I copi the Old Post in full into a do is I copi the Old Post in full into a new directory so I don't have like new directory so I don't have like new directory so I don't have like shared libraries or anything like that shared libraries or anything like that shared libraries or anything like that and then I I I chisel away all the bits and then I I I chisel away all the bits and then I I I chisel away all the bits I know I won't need and I've slowly I know I won't need and I've slowly I know I won't need and I've slowly built up this core of things that end up built up this core of things that end up built up this core of things that end up getting mostly shared between the posts getting mostly shared between the posts getting mostly shared between the posts then I tend to I have a subject matter then I tend to I have a subject matter then I tend to I have a subject matter in mind so queing queing is a huge body in mind so queing queing is a huge body in mind so queing queing is a huge body of research I was like right of research I was like right of research I was like right let's think about
-
let's think about let's think about queuing and think about where do we want queuing and think about where do we want queuing and think about where do we want to be at the end of this like what do I to be at the end of this like what do I to be at the end of this like what do I want the user to know and I want some want the user to know and I want some want the user to know and I want some The Encore their thing is they want to The Encore their thing is they want to The Encore their thing is they want to aim towards more advanced readers and aim towards more advanced readers and aim towards more advanced readers and they want there to be some practical they want there to be some practical they want there to be some practical takeaway from each of the posts and I I takeaway from each of the posts and I I takeaway from each of the posts and I I wanted to get to roughly the wanted to get to roughly the wanted to get to roughly the state-of-the-art in queing like how is state-of-the-art in queing like how is state-of-the-art in queing like how is queuing actually done in technology and queuing actually done in technology and queuing actually done in technology and and I kind of went for HTT and I I and I kind of went for HTT and I I and I kind of went for HTT and I I almost regret that a little bit because almost regret that a little bit because almost regret that a little bit because not many people do any kind of not many people do any kind of not many people do any kind of sophisticated queuing at their HTTP sophisticated queuing at their HTTP sophisticated queuing at their HTTP layer it's mostly done at the the the layer it's mostly done at the the the layer it's mostly done at the the the network layer like level three level network layer like level three level network layer like level three level four in the OSI model but I i' digress four in the OSI model but I i' digress four in the OSI model but I i' digress that I I build a single widget so those that I I build a single widget so those that I I build a single widget so those uh like long visualizations with the uh like long visualizations with the uh like long visualizations with the buttons and the cues and the requests buttons and the cues and the requests buttons and the cues and the requests and them I think of those as widgets and and them I think of those as widgets and and them I think of those as widgets and then I will build a widget that is very then I will build a widget that is very then I will build a widget that is very configurable so under the hood that is a configurable so under the hood that is a configurable so under the hood that is a web component that you can pass pass in web component that you can pass pass in web component that you can pass pass in parameters for whether there is a queue parameters for whether there is a queue parameters for whether there is a queue or not how what the capacity of that que or not how what the capacity of that que or not how what the capacity of that que is um you can uh configure whether there is um you can uh configure whether there is um you can uh configure whether there is one button or two buttons and whether is one button or two buttons and whether is one button or two buttons and whether it's a low priority request button or a it's a low priority request button or a it's a low priority request button or a high priority request button so I make high priority request button so I make high priority request button so I make it very configurable and then I use that it very configurable and then I use that it very configurable and then I use that once I get to a point where I'm like once I get to a point where I'm like once I get to a point where I'm like right this displays all of the behaviors right this displays all of the behaviors right this displays all of the behaviors I think I will need to be able to I think I will need to be able to I think I will need to be able to display in this post then I begin display in this post then I begin display in this post then I begin writing the post and I I create a writing the post and I I create a writing the post and I I create a skeleton of each of the sections and and skeleton of each of the sections and and skeleton of each of the sections and and roughly Dot around what visualizations I roughly Dot around what visualizations I roughly Dot around what visualizations I think I will need and I write around think I will need and I write around think I will need and I write around that so it's a very visualization first
-
that so it's a very visualization first that so it's a very visualization first approach the when I think of visual approach the when I think of visual approach the when I think of visual visualization I think of like Mike bosok visualization I think of like Mike bosok visualization I think of like Mike bosok and the or is it bosk the d3js guy Mike and the or is it bosk the d3js guy Mike and the or is it bosk the d3js guy Mike bosck yeah my bosck and and I know that bosck yeah my bosck and and I know that bosck yeah my bosck and and I know that it's I didn't know pixie JS existed it's I didn't know pixie JS existed it's I didn't know pixie JS existed until I looked at at your stuff and I until I looked at at your stuff and I until I looked at at your stuff and I know that there are many different you know that there are many different you know that there are many different you know things like this but the the bosck know things like this but the the bosck know things like this but the the bosck work and the New York Times interactive work and the New York Times interactive work and the New York Times interactive work kind of like sticks out as being a work kind of like sticks out as being a work kind of like sticks out as being a really great way to do kind of like Dawn really great way to do kind of like Dawn really great way to do kind of like Dawn manipulation and then that could have manipulation and then that could have manipulation and then that could have been a way you could build on top of been a way you could build on top of been a way you could build on top of this as well I'm curious if you looked this as well I'm curious if you looked this as well I'm curious if you looked at D3 before you settled on pixie and at D3 before you settled on pixie and at D3 before you settled on pixie and then now thinking about doing your own then now thinking about doing your own then now thinking about doing your own thing so I didn't look into D3 a whole thing so I didn't look into D3 a whole thing so I didn't look into D3 a whole bunch uh I'd used D3 in jobs previously bunch uh I'd used D3 in jobs previously bunch uh I'd used D3 in jobs previously and without spending too much time and without spending too much time and without spending too much time thinking about it decided it probably thinking about it decided it probably thinking about it decided it probably wasn't what I wanted the the load wasn't what I wanted the the load wasn't what I wanted the the load balancing code uh actually I think balancing code uh actually I think balancing code uh actually I think almost all of my code I try and do a almost all of my code I try and do a almost all of my code I try and do a very domain driven modeling approach so very domain driven modeling approach so very domain driven modeling approach so I I I will everything is simulated in as will everything is simulated in as will everything is simulated in as realistic a way as I could reasonably realistic a way as I could reasonably realistic a way as I could reasonably achieve in the time that I'd given achieve in the time that I'd given achieve in the time that I'd given myself so the load balancing I do myself so the load balancing I do myself so the load balancing I do actually have classes for like a load actually have classes for like a load actually have classes for like a load balancer and servers and requests and balancer and servers and requests and balancer and servers and requests and it's it's modeled in such a way that it it's it's modeled in such a way that it it's it's modeled in such a way that it looks relatively realistic to me um and looks relatively realistic to me um and looks relatively realistic to me um and then the visualization is kind of hooked then the visualization is kind of hooked then the visualization is kind of hooked into what is otherwise seemingly into what is otherwise seemingly into what is otherwise seemingly realistic looking code so it's all realistic looking code so it's all realistic looking code so it's all properly simulated under the hood okay properly simulated under the hood okay properly simulated under the hood okay so let me let me interrupt are you so let me let me interrupt are you so let me let me interrupt are you you're doing like a model view or a you're doing like a model view or a you're doing like a model view or a model you know model view controller model you know model view controller model you know model view controller like you're are you binding your view to
-
like you're are you binding your view to like you're are you binding your view to an actual simulated thing or are you an actual simulated thing or are you an actual simulated thing or are you just coding to the animation because I just coding to the animation because I just coding to the animation because I would have just coded the animation to would have just coded the animation to would have just coded the animation to make the animation look the way I want make the animation look the way I want make the animation look the way I want but you have a a model that models the but you have a a model that models the but you have a a model that models the behavior and then you have a view that behavior and then you have a view that behavior and then you have a view that is bound to it essentially yeah it's not is bound to it essentially yeah it's not is bound to it essentially yeah it's not as cleanly separated is that the view is as cleanly separated is that the view is as cleanly separated is that the view is quite intertwined within the model but quite intertwined within the model but quite intertwined within the model but the idea is that under the hood there is the idea is that under the hood there is the idea is that under the hood there is a real simulation going on and uh it a real simulation going on and uh it a real simulation going on and uh it actually caused me a ton of problems in actually caused me a ton of problems in actually caused me a ton of problems in the load balancing post because that the load balancing post because that the load balancing post because that there is sort of non-deterministic there is sort of non-deterministic there is sort of non-deterministic aspects of it so I I vary the request aspects of it so I I vary the request aspects of it so I I vary the request cost and I vary the power of each server cost and I vary the power of each server cost and I vary the power of each server so it's I I found myself in situations so it's I I found myself in situations so it's I I found myself in situations where I was talking about a specific where I was talking about a specific where I was talking about a specific behavior that the simulation did not behavior that the simulation did not behavior that the simulation did not always display because there was a bunch always display because there was a bunch always display because there was a bunch of random variables so I tried to very of random variables so I tried to very of random variables so I tried to very tightly control them and I lost many tightly control them and I lost many tightly control them and I lost many evenings of my life to situations where evenings of my life to situations where evenings of my life to situations where I just sit and I'd watch the simulation I just sit and I'd watch the simulation I just sit and I'd watch the simulation it just didn't display the behavior I it just didn't display the behavior I it just didn't display the behavior I wanted for 15 whole seconds I like it's wanted for 15 whole seconds I like it's wanted for 15 whole seconds I like it's way too long the user's never going to way too long the user's never going to way too long the user's never going to stay around to watch that um I got stay around to watch that um I got stay around to watch that um I got around that a little bit by being a bit around that a little bit by being a bit around that a little bit by being a bit cheekier with what I randomize in um in cheekier with what I randomize in um in cheekier with what I randomize in um in queuing for example when you look at the queuing for example when you look at the queuing for example when you look at the the big uh like 4 q visualization the big uh like 4 q visualization the big uh like 4 q visualization towards the end of the post there there towards the end of the post there there towards the end of the post there there is no variation in between like how long is no variation in between like how long is no variation in between like how long it takes to process a request how long it takes to process a request how long it takes to process a request how long it takes a request to get into the queue it takes a request to get into the queue it takes a request to get into the queue like the the time step for how long like the the time step for how long like the the time step for how long everything takes to move is identical everything takes to move is identical everything takes to move is identical because I wanted to keep as many things because I wanted to keep as many things because I wanted to keep as many things as possible nonvariable like in reality as possible nonvariable like in reality as possible nonvariable like in reality you would have variant but I just I got
-
you would have variant but I just I got you would have variant but I just I got so burnt by the low balancing post that so burnt by the low balancing post that so burnt by the low balancing post that I I decided to be I don't know I say I I decided to be I don't know I say I I decided to be I don't know I say cheekier it's just because it's a little cheekier it's just because it's a little cheekier it's just because it's a little bit less realistic it frustrates me I'd bit less realistic it frustrates me I'd bit less realistic it frustrates me I'd like these things to be as applicable to like these things to be as applicable to like these things to be as applicable to real life as possible but um I think real life as possible but um I think real life as possible but um I think when you are writing about very specific when you are writing about very specific when you are writing about very specific behaviors you do have to make some behaviors you do have to make some behaviors you do have to make some tradeoffs um I have long believed that tradeoffs um I have long believed that tradeoffs um I have long believed that there are different learning styles and there are different learning styles and there are different learning styles and I've had people you know ped pedal ped I've had people you know ped pedal ped I've had people you know ped pedal ped ped pedical what is it called pedagogy P ped pedical what is it called pedagogy P ped pedical what is it called pedagogy P pedagogical yeah pedagogical I've had pedagogical yeah pedagogical I've had pedagogical yeah pedagogical I've had like pedagogical experts on who have like pedagogical experts on who have like pedagogical experts on who have said well it turns out learning styles said well it turns out learning styles said well it turns out learning styles are a lie you know I you know I still are a lie you know I you know I still are a lie you know I you know I still don't believe that like they've done don't believe that like they've done don't believe that like they've done like research to say that like oh yeah like research to say that like oh yeah like research to say that like oh yeah I'm an auditory learner I'm a visual I'm an auditory learner I'm a visual I'm an auditory learner I'm a visual learner and then they they've done learner and then they they've done learner and then they they've done research to say nope that's not a thing research to say nope that's not a thing research to say nope that's not a thing you think that's a thing but it's not I you think that's a thing but it's not I you think that's a thing but it's not I reject that I fully think that like this reject that I fully think that like this reject that I fully think that like this kind of visual ization is squarely in my kind of visual ization is squarely in my kind of visual ization is squarely in my area of interest and if it if I think a area of interest and if it if I think a area of interest and if it if I think a certain way and then it is either certain way and then it is either certain way and then it is either confirmed or denied by visualizations confirmed or denied by visualizations confirmed or denied by visualizations and excellent ones like yours I'm like and excellent ones like yours I'm like and excellent ones like yours I'm like okay cool I do understand queuing or okay cool I do understand queuing or okay cool I do understand queuing or okay cool I didn't understand load okay cool I didn't understand load okay cool I didn't understand load balancing and now I do better have you balancing and now I do better have you balancing and now I do better have you what kind of feedback have you had have what kind of feedback have you had have what kind of feedback have you had have people been become become utterly people been become become utterly people been become become utterly unlocked by your posts and then just unlocked by your posts and then just unlocked by your posts and then just gushed about how like this is what I gushed about how like this is what I gushed about how like this is what I needed this was the learning style that needed this was the learning style that needed this was the learning style that I have I get a lot of feedback from I have I get a lot of feedback from I have I get a lot of feedback from people which does mention I I am a people which does mention I I am a people which does mention I I am a visual learner or you know I I really visual learner or you know I I really visual learner or you know I I really enjoy visualization as a a an aid to me enjoy visualization as a a an aid to me enjoy visualization as a a an aid to me learning things I've heard this as well learning things I've heard this as well learning things I've heard this as well I've heard that um people saying
-
I've heard that um people saying I've heard that um people saying learning styles is not a thing anymore learning styles is not a thing anymore learning styles is not a thing anymore and I haven't dug anything any deeply and I haven't dug anything any deeply and I haven't dug anything any deeply into it all I can really say like for into it all I can really say like for into it all I can really say like for myself I benefit enormously from being myself I benefit enormously from being myself I benefit enormously from being able to see something happening and able to see something happening and able to see something happening and ideally from being able to like pause ideally from being able to like pause ideally from being able to like pause and and interject and and be able to and and interject and and be able to and and interject and and be able to modify the parameters and let it go modify the parameters and let it go modify the parameters and let it go again and and it's it's one of the again and and it's it's one of the again and and it's it's one of the reasons why when I'm writing code I love reasons why when I'm writing code I love reasons why when I'm writing code I love debuggers I love being able just pause debuggers I love being able just pause debuggers I love being able just pause here and poke around at what's going on here and poke around at what's going on here and poke around at what's going on I probably would say I am a visual I probably would say I am a visual I probably would say I am a visual learner uh hopefully not too much to the learner uh hopefully not too much to the learner uh hopefully not too much to the sugarin of people that don't think it's sugarin of people that don't think it's sugarin of people that don't think it's a real thing one of the reasons I got a real thing one of the reasons I got a real thing one of the reasons I got into this and uh there's a guy called into this and uh there's a guy called into this and uh there's a guy called Andy matusek he is very outspoken in Andy matusek he is very outspoken in Andy matusek he is very outspoken in education he he has a remarkable blog education he he has a remarkable blog education he he has a remarkable blog where he talks about education he's he's where he talks about education he's he's where he talks about education he's he's did a talk recently about how llms could did a talk recently about how llms could did a talk recently about how llms could apply in the education space which is apply in the education space which is apply in the education space which is fantastic it's called how we might learn fantastic it's called how we might learn fantastic it's called how we might learn on YouTube well worth watching it he's on YouTube well worth watching it he's on YouTube well worth watching it he's got some fantastic got some fantastic got some fantastic ideas and he talk he has this post I ideas and he talk he has this post I ideas and he talk he has this post I can't remember it's called No something can't remember it's called No something can't remember it's called No something about something like how books don't about something like how books don't about something like how books don't work or why books don't work um work or why books don't work um work or why books don't work um something inflammatory like that and in something inflammatory like that and in something inflammatory like that and in it he talks about how it's a little bit it he talks about how it's a little bit it he talks about how it's a little bit sad that sad that sad that we're in 2024 and we're still we're in 2024 and we're still we're in 2024 and we're still essentially using the web for what we essentially using the web for what we essentially using the web for what we were doing with dead trees in like the were doing with dead trees in like the were doing with dead trees in like the 1800s 1800s 1800s like a lot of blog posts text on web like a lot of blog posts text on web like a lot of blog posts text on web pages like that the medium has not
-
pages like that the medium has not pages like that the medium has not changed for hundreds of years and um it changed for hundreds of years and um it changed for hundreds of years and um it is a bit of a Timeless medium and it's is a bit of a Timeless medium and it's is a bit of a Timeless medium and it's you know one of the most incredible you know one of the most incredible you know one of the most incredible inventions we have come up with as a inventions we have come up with as a inventions we have come up with as a species is language and writing and the species is language and writing and the species is language and writing and the printing press and things like that but printing press and things like that but printing press and things like that but now that we have the web and we have now that we have the web and we have now that we have the web and we have these essentially like superc computers these essentially like superc computers these essentially like superc computers on our person at all on our person at all on our person at all times isn't it cool that we could times isn't it cool that we could times isn't it cool that we could actually do so much more with them like actually do so much more with them like actually do so much more with them like there's you know we can do 3D there's you know we can do 3D there's you know we can do 3D visualizations of entire mechanical visualizations of entire mechanical visualizations of entire mechanical watches if you want to on the web in watches if you want to on the web in watches if you want to on the web in JavaScript so they're accessible to JavaScript so they're accessible to JavaScript so they're accessible to almost everybody with a smartphone um I almost everybody with a smartphone um I almost everybody with a smartphone um I just think that's that's wild and I I I just think that's that's wild and I I I just think that's that's wild and I I I really want to hook into it uh and and really want to hook into it uh and and really want to hook into it uh and and uh like people have come to know me a uh like people have come to know me a uh like people have come to know me a little bit as as you know that little bit as as you know that little bit as as you know that visualization guy who writes about visualization guy who writes about visualization guy who writes about programming stuff in a visual way but programming stuff in a visual way but programming stuff in a visual way but like visualization I think is just the like visualization I think is just the like visualization I think is just the beginning or it's it's like the obvious beginning or it's it's like the obvious beginning or it's it's like the obvious Step at least in my mind of what can we Step at least in my mind of what can we Step at least in my mind of what can we add on top of text to make it more add on top of text to make it more add on top of text to make it more engaging and and and make you more able engaging and and and make you more able engaging and and and make you more able to understand what's being spoken about to understand what's being spoken about to understand what's being spoken about there's all sorts that we could do I I I there's all sorts that we could do I I I there's all sorts that we could do I I I I love following uh you know TL draw the I love following uh you know TL draw the I love following uh you know TL draw the tool TL draw like there's uh somebody tool TL draw like there's uh somebody tool TL draw like there's uh somebody called Lou Wilson on Twitter and and and called Lou Wilson on Twitter and and and called Lou Wilson on Twitter and and and she's constantly posting these Wicked she's constantly posting these Wicked she's constantly posting these Wicked experiments that she's been doing with experiments that she's been doing with experiments that she's been doing with infinite canvases is and you know she infinite canvases is and you know she infinite canvases is and you know she incorporates the webcam and audio and incorporates the webcam and audio and incorporates the webcam and audio and images and all kinds of of mediums just images and all kinds of of mediums just images and all kinds of of mediums just being put into this big melting part of being put into this big melting part of being put into this big melting part of creativity and and then cool things come creativity and and then cool things come creativity and and then cool things come out of it and I think writing could go
-
out of it and I think writing could go out of it and I think writing could go through something like that I think we through something like that I think we through something like that I think we could make more use of all these could make more use of all these could make more use of all these different apis and inputs that we have different apis and inputs that we have different apis and inputs that we have available to us in the web and create available to us in the web and create available to us in the web and create you know 10x better educational material you know 10x better educational material you know 10x better educational material than we have done with just text yeah it than we have done with just text yeah it than we have done with just text yeah it feels like when you when I think about feels like when you when I think about feels like when you when I think about like some of the early work that like like some of the early work that like like some of the early work that like John Rig and the folks at KH Academy did John Rig and the folks at KH Academy did John Rig and the folks at KH Academy did uh which I think is in in the same vein uh which I think is in in the same vein uh which I think is in in the same vein as kind of stuff that you did it was it as kind of stuff that you did it was it as kind of stuff that you did it was it was you know he built an engine uh he was you know he built an engine uh he was you know he built an engine uh he did a ton of work like that and still we did a ton of work like that and still we did a ton of work like that and still we find ourselves reading PDFs in find ourselves reading PDFs in find ourselves reading PDFs in 2024 uh you know and I'm excited that 2024 uh you know and I'm excited that 2024 uh you know and I'm excited that your visualizations run on an iPad and your visualizations run on an iPad and your visualizations run on an iPad and I'm thinking to myself computer science I'm thinking to myself computer science I'm thinking to myself computer science curriculum should be like this from like curriculum should be like this from like curriculum should be like this from like I my 16-year-old for the the very first I my 16-year-old for the the very first I my 16-year-old for the the very first time expressed an interest in computer time expressed an interest in computer time expressed an interest in computer science yesterday he want to Learn science yesterday he want to Learn science yesterday he want to Learn Python I'm sure there's some some reason Python I'm sure there's some some reason Python I'm sure there's some some reason underneath that he he's never showed an underneath that he he's never showed an underneath that he he's never showed an interest before he wants to do something interest before he wants to do something interest before he wants to do something make some money or something but I'm make some money or something but I'm make some money or something but I'm like where's all of the computer science like where's all of the computer science like where's all of the computer science curricula that's not just static curricula that's not just static curricula that's not just static equations and static stuff on a printed equations and static stuff on a printed equations and static stuff on a printed page there's just there's YouTube so page there's just there's YouTube so page there's just there's YouTube so it's like we have static stuff in a PDF it's like we have static stuff in a PDF it's like we have static stuff in a PDF and then we have Talking Heads where's and then we have Talking Heads where's and then we have Talking Heads where's the part you know in between and uh the part you know in between and uh the part you know in between and uh throwing him at like cs50 the Harvard throwing him at like cs50 the Harvard throwing him at like cs50 the Harvard video is not what I want to do yeah yeah video is not what I want to do yeah yeah video is not what I want to do yeah yeah yeah yeah I I I have a bit of a yeah yeah I I I have a bit of a yeah yeah I I I have a bit of a confession um I don't like video as an confession um I don't like video as an confession um I don't like video as an educational medium and this is very
-
educational medium and this is very educational medium and this is very personal I'm not saying I'm not saying personal I'm not saying I'm not saying personal I'm not saying I'm not saying you shouldn't like video as a medium I you shouldn't like video as a medium I you shouldn't like video as a medium I have never been able to properly have never been able to properly have never been able to properly leverage video to efficiently learn leverage video to efficiently learn leverage video to efficiently learn anything I feel like I'm way quicker anything I feel like I'm way quicker anything I feel like I'm way quicker reading and experimenting uh video has reading and experimenting uh video has reading and experimenting uh video has never done it for me but it has exploded never done it for me but it has exploded never done it for me but it has exploded as a medium like there's so much video as a medium like there's so much video as a medium like there's so much video content out there now so many like content out there now so many like content out there now so many like premium courses their delivery medium is premium courses their delivery medium is premium courses their delivery medium is video and it just doesn't work for me video and it just doesn't work for me video and it just doesn't work for me personally and I don't know why personally and I don't know why personally and I don't know why I uh there's a course I'm going through I uh there's a course I'm going through I uh there's a course I'm going through at the moment um on SVG at the moment um on SVG at the moment um on SVG animation uh it's I think it's SVG dasan animation uh it's I think it's SVG dasan animation uh it's I think it's SVG dasan animations. how it's it's text and then animations. how it's it's text and then animations. how it's it's text and then it has its own SVG edit edor that you it has its own SVG edit edor that you it has its own SVG edit edor that you can apply the things that you have just can apply the things that you have just can apply the things that you have just learned and it will give you like it learned and it will give you like it learned and it will give you like it creates this like creates this like creates this like translucent overlay that you are translucent overlay that you are translucent overlay that you are supposed to create an SVG that overlaps supposed to create an SVG that overlaps supposed to create an SVG that overlaps perfectly with it to to practice the perfectly with it to to practice the perfectly with it to to practice the different parts of SVG and that that for different parts of SVG and that that for different parts of SVG and that that for me is perfect that's great like I have me is perfect that's great like I have me is perfect that's great like I have found that to be a delightful course to found that to be a delightful course to found that to be a delightful course to go through yeah so I don't know why I go through yeah so I don't know why I go through yeah so I don't know why I don't know why video just doesn't do it don't know why video just doesn't do it don't know why video just doesn't do it for me especially as a visual Luna I for me especially as a visual Luna I for me especially as a visual Luna I think for people right now think for people right now think for people right now video works because it is passive enough video works because it is passive enough video works because it is passive enough that you can sit there and just let it that you can sit there and just let it that you can sit there and just let it happen yeah it's you know it's happen yeah it's you know it's happen yeah it's you know it's effectively lectures brought to your effectively lectures brought to your effectively lectures brought to your house and you don't have to do anything house and you don't have to do anything house and you don't have to do anything but I I feel like today at my age I
-
but I I feel like today at my age I but I I feel like today at my age I could go I'm ready for college you know could go I'm ready for college you know could go I'm ready for college you know what I mean like I'm ready like and now what I mean like I'm ready like and now what I mean like I'm ready like and now I have the emotional whatever and the I have the emotional whatever and the I have the emotional whatever and the attention span that I could go back to attention span that I could go back to attention span that I could go back to school and actually pay attention and school and actually pay attention and school and actually pay attention and lean and lean forward in class and sit lean and lean forward in class and sit lean and lean forward in class and sit in the front row I don't think that at in the front row I don't think that at in the front row I don't think that at you know the age of my 18-year-old you know the age of my 18-year-old you know the age of my 18-year-old 19-year-old he's ready to do that I know 19-year-old he's ready to do that I know 19-year-old he's ready to do that I know it's just it's going to wash over him it's just it's going to wash over him it's just it's going to wash over him you know what I mean he's not going to you know what I mean he's not going to you know what I mean he's not going to be like steepling his fingers and like be like steepling his fingers and like be like steepling his fingers and like deeply interested and I'm not steepling deeply interested and I'm not steepling deeply interested and I'm not steepling my fingers and deeply interested when my fingers and deeply interested when my fingers and deeply interested when I'm watching these videos as well I'm I'm watching these videos as well I'm I'm watching these videos as well I'm going through a class right now called going through a class right now called going through a class right now called from nand to Tetris are you oh yes yes from nand to Tetris are you oh yes yes from nand to Tetris are you oh yes yes the um oh half the it's based on a book the um oh half the it's based on a book the um oh half the it's based on a book isn't it there's a there's a book I have isn't it there's a there's a book I have isn't it there's a there's a book I have on my sh systems building modern on my sh systems building modern on my sh systems building modern computer from first principles and it's computer from first principles and it's computer from first principles and it's it's pretty good because you've got the it's pretty good because you've got the it's pretty good because you've got the book you've got the projects you've got book you've got the projects you've got book you've got the projects you've got the code you've got the simulator and the code you've got the simulator and the code you've got the simulator and then you've got these embedded videos then you've got these embedded videos then you've got these embedded videos but still it it would be amazing if the but still it it would be amazing if the but still it it would be amazing if the book came alive and had those book came alive and had those book came alive and had those inline uh but but again we're still inline uh but but again we're still inline uh but but again we're still trying to decide whether we use pixie JS trying to decide whether we use pixie JS trying to decide whether we use pixie JS or we write our own like here we are in or we write our own like here we are in or we write our own like here we are in 2024 everything you just said is true 2024 everything you just said is true 2024 everything you just said is true but we still don't have the tools to but we still don't have the tools to but we still don't have the tools to really start start that project right really start start that project right really start start that project right now yeah yeah I I I think I dodged that now yeah yeah I I I think I dodged that now yeah yeah I I I think I dodged that question earlier actually like question earlier actually like question earlier actually like I I don't know what it would take to I I don't know what it would take to I I don't know what it would take to create something that would work for me create something that would work for me create something that would work for me I I evaluated a couple of options other I I evaluated a couple of options other I I evaluated a couple of options other than pixie JS and the problem is that I than pixie JS and the problem is that I than pixie JS and the problem is that I just don't think there is a framework
-
just don't think there is a framework just don't think there is a framework for people doing exactly what I am doing for people doing exactly what I am doing for people doing exactly what I am doing either they are a lot of them are geared either they are a lot of them are geared either they are a lot of them are geared towards HTML games other ones are geared towards HTML games other ones are geared towards HTML games other ones are geared towards really kind of smooth UI towards really kind of smooth UI towards really kind of smooth UI animation which is not quite what I'm animation which is not quite what I'm animation which is not quite what I'm doing it's closer the things that I care doing it's closer the things that I care doing it's closer the things that I care about like I want it to be small I want about like I want it to be small I want about like I want it to be small I want it to be very tailored to what I am it to be very tailored to what I am it to be very tailored to what I am trying to do which is going to be a very trying to do which is going to be a very trying to do which is going to be a very very difficult bar for any Library very difficult bar for any Library very difficult bar for any Library that's not written by me to to meet um I that's not written by me to to meet um I that's not written by me to to meet um I think just all these things in mind and think just all these things in mind and think just all these things in mind and the I think I have a an unusually high the I think I have a an unusually high the I think I have a an unusually high bar for quality in what I put out like I bar for quality in what I put out like I bar for quality in what I put out like I won't put something out unless I am won't put something out unless I am won't put something out unless I am extremely happy with it and that makes extremely happy with it and that makes extremely happy with it and that makes me much more likely I think to be the me much more likely I think to be the me much more likely I think to be the kind of person that will build build his kind of person that will build build his kind of person that will build build his own tools and there's a certain own tools and there's a certain own tools and there's a certain craftsmanship to that it's a very warm craftsmanship to that it's a very warm craftsmanship to that it's a very warm feeling I get when I'm like yeah I'm feeling I get when I'm like yeah I'm feeling I get when I'm like yeah I'm using my own 2D rendering engine it's using my own 2D rendering engine it's using my own 2D rendering engine it's like yeah I'm using my own saw that I like yeah I'm using my own saw that I like yeah I'm using my own saw that I made myself and I kiled it and I you made myself and I kiled it and I you made myself and I kiled it and I you know built all of my own tools to do know built all of my own tools to do know built all of my own tools to do woodworking which I you know obviously woodworking which I you know obviously woodworking which I you know obviously haven't done but it has the same feeling haven't done but it has the same feeling haven't done but it has the same feeling to it as that I don't know if you could to it as that I don't know if you could to it as that I don't know if you could build one I think um I think Mike bastar build one I think um I think Mike bastar build one I think um I think Mike bastar is the same person that is at observable is the same person that is at observable is the same person that is at observable HQ is that right or is that some else HQ is that right or is that some else HQ is that right or is that some else I'm not sure I know that he he ran the I'm not sure I know that he he ran the I'm not sure I know that he he ran the visualization group at in at New York visualization group at in at New York visualization group at in at New York Times but I don't know where he is right Times but I don't know where he is right Times but I don't know where he is right now I think observable HQ is is possibly now I think observable HQ is is possibly now I think observable HQ is is possibly the closest thing that I looked at that the closest thing that I looked at that the closest thing that I looked at that would be good for what I am doing but it would be good for what I am doing but it would be good for what I am doing but it is a bit more about telling stories with is a bit more about telling stories with is a bit more about telling stories with the data whereas what I'm doing is like
-
the data whereas what I'm doing is like the data whereas what I'm doing is like telling stories about processes and telling stories about processes and telling stories about processes and those processes are not necessarily those processes are not necessarily those processes are not necessarily deterministic what I'm doing is more deterministic what I'm doing is more deterministic what I'm doing is more simulation than it is visualization I simulation than it is visualization I simulation than it is visualization I think I've made a bit of a mistake think I've made a bit of a mistake think I've made a bit of a mistake labeling is visualization up until this labeling is visualization up until this labeling is visualization up until this point so I haven't found anything that point so I haven't found anything that point so I haven't found anything that that meets all of my needs uh yeah I it that meets all of my needs uh yeah I it that meets all of my needs uh yeah I it is the 15th standard but I think part of is the 15th standard but I think part of is the 15th standard but I think part of the problem there is I'm not looking for the problem there is I'm not looking for the problem there is I'm not looking for a standard I'm looking for something a standard I'm looking for something a standard I'm looking for something that's very specific to what I'm doing that's very specific to what I'm doing that's very specific to what I'm doing well you're looking for results and well you're looking for results and well you're looking for results and you're absolutely right I confirmed he's you're absolutely right I confirmed he's you're absolutely right I confirmed he's a co-creator at observable HQ awesome a co-creator at observable HQ awesome a co-creator at observable HQ awesome well very cool well Sam Rose this has well very cool well Sam Rose this has well very cool well Sam Rose this has been just lovely chatting with you today been just lovely chatting with you today been just lovely chatting with you today uh I appreciate the work that you're uh I appreciate the work that you're uh I appreciate the work that you're doing bespoke that it is and I would doing bespoke that it is and I would doing bespoke that it is and I would really encourage folks to check it out really encourage folks to check it out really encourage folks to check it out at Sam who at Sam who at Sam who s.dev and of course your recent post at a a [Music]
Summary
The main theme is the evolution of blogging towards quality over quantity, exemplified by Sam Rose and Bartłomiej Chrościński. Key subjects include developing writing and front-end skills for bespoke blog posts, with a specific reference to an interactive 3D simulation of a mechanical watch. The takeaway is that focus and dedication are needed to create high-quality, unique content, even if it means infrequent posting.