Dirty D3: Making 2025 about embracing mess
Why D3.js is unavoidable for serious dataviz, and what a messy, low-stakes video format has to do with it.
Premiere Today: Dirty D3 - Episode 2: Linear Scales
As usual, we're using YouTube premieres for this episode, so join me and fellow ferrets in the live chat to watch it together when it drops - you can see the exact time in your timezone here.
Cross-Field Terminology is Fun: "Formats"
I wanted to talk a little bit around video and give some thought today on the format, formalize some thoughts - production formats are kind of fun and I find it really elucidating to learn about a term that might not be known to me much in another field, but that exists in my own field but with a slightly different meaning.
As a JavaScript dev, the term closure has a particular meaning at the front of my mind, but did you know that there is such a thing called closure in the world of comics? (Closure in Comics [comicsormanga.home.blog])
Sidenote: I learned this from the amazing book Understanding Comics which is just incredible, actually, and I really do thoroughly recommend it if you're looking for learning about something really different in the new year.
In the same vein, when I hear 'format' I tend to think "file/data format" or "A4, A3", or "italic/bold" but in this case I'd like to dive a bit into how I as a dual class programmer/theatre-TV monkey thinks about the Fun Fun Function formats, in particular Dirty D3.
When we say "format" in video production we refer to specific, replicable adaptations in a genre.
For example:
In the sitcom genre, The Office had a format with elements such as "single camera without audience".
In the reality tv genre, Project Runway and MILF Manor are formats.
For Fun Fun Function, it's a format I control so I'm not very strict with it and have changed it a lot over time as I've gotten bored, but in the genre of programming education I've had a rather distinct format.
During some periods I made use of big paper plates since animation was very arduous back then and tended to lead to a lot of procrastination for myself.
But before I go into the format, let's get a very important question out of the way:
Must I really learn D3? I don't want to.
When rebooting FFF with Dawn of the Data Developer one part of me really wanted to avoid D3.
I looked for "what is the next thing that is the D3 successor" or "what is a new easier way of doing things" and almost every single new thing I found was building on top of D3. It is really clear to me that if one is to be serious about data development and visualization, there is just no way getting around learning D3.js.
This is especially true for me and you, as advanced web app developers looking to get into data. Data is a rather saturated field with high sophistication in almost all areas, but one underserved area is dataviz - most visualization looks really bad, isn't interactive, isn't engaging.
The core reason for this is that, in practice, you need skills in JavaScript and web technologies, canvas more specifically. In all other areas of data, Python takes you very far, you can spend a very extensive professional life in data without anything but Python, but not if you want to do good dataviz.
And the reason for that is in turn, D3.js. D3.js is so good and so vast. Replicating it would be a herculean task, and the motivation to do so is dubious. D3 in JavaScript has a position similar to Pandas or NumPy in Python.
Theoretically, we can replicate them in JavaScript and use JavaScript for data processing, but the effort being made just doesn't take hold, because… well, why would it? Python is for processing, JavaScript is for visualizing, is that so bad that we need to lift heaven on earth to change it, or maybe we should just lean in?
And for us web devs looking for a way to kick in the door into data, it's actually really good for us that there is this massively powerful advanced tool with high maturity, that an entire industry is largely scared of.
The Shortest Fun Fun Function Format Yet (The chicken McNuggets of Data Development)
Dirty D3 is the shortest format that I've ever done - each episode aiming to be in the single digits in length, which is quite a challenge for me - I often say that if the survival of the universe depended on me being terse, we'd be so fucked.
To be honest, short might be a bit misleading, perhaps bite-sized is a better term, because while the individual episodes will aim to be below 10 minutes, the whole series will be very, very long, hopefully hundreds of episodes over the coming years.
Embracing the Mess
It's called Dirty D3 because I wanted a format that invites mess. If I make weird cuts, change things around, make typos, or just downright say incorrect things and follow up with a correction in the next episode, it should not break the format.
This is a trick that I learned from the great Casey Neistat, who was awarded YouTuber of the year and vlogged daily for 800 days. He's actually an incredible filmmaker, has done stuff with HBO etc, but is also a master of creating high-expression formats of incredibly artistic quality, and the thing he sacrifices is elegance.
Some would say that his stuff isn't polished, which I disagree with, it's meticulous in many ways, but the reduction in elegance means that there are fewer points that need to be polished.
A great example is this vlog: What's Your Motivation? (skip to 5:38 for the best MacBook unboxing)
Another example of his messy style (albeit more elaborate production) is this one: Make It Count
But it's not only for production ease and artistic style and expression that I like messiness, it's also because life is messy - and software development and especially data is messy.
Anyone that has spent more than a few weeks working with data science, be it analytics reporting or advanced AI, knows that 95% of the work lies in generating clean datasets from a messy collection of reality.
Dealing with complicated messes is not glamorous or easy, but that doesn't change the fact that it is the most important job.
If you can teach yourself to enjoy dealing with complicated messes, that is job security for the rest of your life.
Embrace the mess! Embrace the dirt!
Self-efficacy (or: Breaking your personal field of gravity)
Fun Fun Function has always been about putting self-efficacy at prime priority, breaking through that invisible bubble of brain fog, doubt, insecurity, uncertainty and doing something that your intuition experiences as defying the laws of gravity in terms of your self-image.
Honestly, I've been meaning to learn D3 for at least 5 years now, but it keeps scaring me off. This series is a way for me to commit myself to thousands of people to finally become an expert in it.
Dirty D3 is all about becoming a D3 developer, right this week. No excuses, just jump in.
We'll be fine. Together.
The Pareto Principle is for babies
Dirty D3 is about going Dark Souls Hardcore difficulty mode, learning the hardest weapon right away, because if you do that, everything else becomes easy.
There are lots of results-oriented tools and courses out there, if you are interested in learning the absolute minimum to do the report that you need for work right now, which will NEVER be D3. Yet almost everything builds on top of D3.
Dirty D3 is the opposite of no-code, which in my experience is often driven by a desire to do no-work.
Dirty D3 is absolutely not the straightest path to creating charts, it's the path of highest resistance, but it is a path and I promise that if you follow it, it will lead to you becoming something you did not think you could.
Comfort is Prime
However, while this is not the easiest or most straightforward way to learn D3 (just the choice of D3 in the first place means it's per definition uneasy and unstraightforward) we'll make darn sure that we are comfortable.
We'll achieve this primarily by being nerds. As soon as we feel overwhelm we will halt and nerd the shit out of whatever overwhelms and confuses us, until we find it interesting instead.
In a way, I suppose this is core of what it means to be a geek, find a subject most avert their eyes from, and own it.
I shall provide order
Another key aspect to comfort is to reduce the option space. This is the main value that I provide to you with Dirty D3, to be honest - I'll be making a canonical decision path to learn this stuff.
There is no official order to learn D3 in general, but on the other hand there is very much a designated order to Dirty D3, there is an episode 1 followed by episode 2, and so forth.
There might be seasons in the future, but they will also be numbered. There is one place to begin, and from there, there will be only one next step. There is no tree.
hello D3.2025
I did not set out to make a new year's resolution, but I suppose that I have accidentally done a very hard one with Dirty D3 - now I'm ***ing doing this thing, and I hope you join me in it!
I have given heads up of it before, and I mention again that a lot of Dirty D3 will be paid content, as it is a highly valuable skill sought by people serious about their career efforts into data. However, the first ones are free and that includes this one - so enjoy!
Book Corner: The Body Keeps the Score
Finally, during the holidays, I've finally been reading a book I've procrastinated on reading for a long time, The Body Keeps the Score, an absolutely fantastic description of how trauma really works and is stored in the body.
I know about this book for a long time but didn't really understand how incredibly knowledgeable the author of this book is, and how long he has been in the field, he was treating veterans before PTSD was even a term.
It should be noted that this book is not without its controversial statements and as any book on the frontlines of treatment, should be taken with ample salt. I still think this book is a true gem, and will make you understand yourself, your partner and the world a lot better.
It is highly relevant even if you had a happy, uneventful childhood without emotional scarring (which is a lot rarer than one might think, I have learned from the massive amount of mind-blowing data that the author presents) and if you're the opposite, the data will make you feel a lot less alone. Or... well, I won't presume what you will feel - it made me feel a lot less alone.
As always, stay curious 🧐🐒
Mattias Petter Johansson











