i've been working on a website to let you do DNS experiments and as always I'm surprised by how many design decisions there are to make for such a small-scale project
even leaving the UX design aside (which is so hard!!), I have absolutely 0 motivation to do maintenance work on my projects, so I need to be careful now to make sure I don't have to do maintenance later
one decision was whether to make the DNS server distributed to improve latency. I decided to run just 1 server with the HTTP server and DNS server sharing a process because managing distributed systems really sucks and it's an educational project, it's ok if it's a bit slow
I need to live stream DNS queries to clients as they come in. I spent a bunch of time thinking about how to do this (firebase? redis?) and eventually decided -- they're in the same process! I can just send the queries directly using a Go channel. No need to add a component.
originally I was letting anyone set any arbitrary dns record on any subdomain and I got stressed about the security implications of that, so I had to spend a few hours figuring out more secure way to do that which doesn't add friction for users

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with 🔎Julia Evans🔍

🔎Julia Evans🔍 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @b0rk

5 Oct
something I don't understand about BGP: can I (as a Regular Person with no special privileges) actually look up past BGP route announcements to see where facebook withdrew its BGP routes? how/where do I do it?
I now have links to a lot of tools but I still don't really understand how to use/interpret them, I feel like I need a screencast of someone explaining how to use one of these tools to look at this facebook issue :)
like this BGPlay interface is not that intuitive. maybe 129.134.30.12/24 is the wrong subnet and I should be looking at something else?
Read 11 tweets
2 May
exciting announcement: I just put all of my comics online at wizardzines.com/comics/!

Here's a blog post about why I did it: jvns.ca/blog/2021/05/0…
I made a little search function so that you can easily find the one you want wizardzines.com/comics/.
I felt a bit worried about making all these comics more easily available online because – what if nobody wants to buy the zines anymore?
Read 4 tweets
10 Mar
dns question I'm having trouble googling the answer to: why do MX records have a priority (like '10 aspmx.l.google.com.')? like A records and NS records also have multiple servers, but they don't have a priority
I'm not going to do this but sometimes I think about writing a book called "networking for millennials" which explains which networking things still make sense today and which ones made sense historically but are kind of outdated given how we design infrastructure now
Read 4 tweets
26 Feb
computer language poll: is mail.google.com a subdomain of google.com? (not a trick question, no wrong answers, please don't argue about it in the replies, I'm just curious what different people think the word "subdomain" means :) )
the ambiguity here is that mail.google.com doesn't have its own NS/SOA record. An example of a subdomain that *does* have those things is alpha.canada.ca -- it has a different authoritative DNS server than canada.ca does.
anyway I think arguing about definitions of words is super boring but I always think it's interesting when a really common technical term has multiple meanings (so far 6% of people definitely voted no to that poll! :))
Read 6 tweets
20 Feb
here's a fun open source story! i wrote a ruby profiler called rbspy 3 years ago. when I started the project, segiddins filed an issue asking for C functions to be profiled correctly (github.com/rbspy/rbspy/is…). I spent some trying to fix it but never figured out how to do it (1/2)
and then just last week, acj wrote a beautiful pull request that fixes the issue github.com/rbspy/rbspy/pu…! It uses a method of resolving the C function names that I didn't know was possible! It was so fun to get to see how it works and we merged it yesterday. (2/2)
maintaining an open source project is boring sometimes (like when you're redoing your CI again!) but I really love learning from other people's contributions to the project
Read 4 tweets
18 Jan
does anyone know a clear explanation of **exactly* what happens when you send a packet to 8.8.8.8 from a docker container? (i *think* the packet goes out through the veth pair, gets SNAT-ed, and comes back through the docker0 bridge but I'm very confused about it)
found this great blog post thanks to @vaijab that shows how to trace a packet's journey with `perf trace` and I'm so happy right now blog.yadutaf.fr/2017/07/28/tra… Image
also I think this post by @iximiuz is the clearest explanation of container networking I've ever read (though it still doesn't feel simple to me :) ) iximiuz.com/en/posts/conta…
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(