Resiliency in Distributed Systems

D3Wasm: a port of id Tech 4 / Doom 3 engine to WebAssembly

Bitcoin and economic nihilism

Issue #276



Howdy Party People
I'm furious. I just accidentally reloaded the page (instead of making a new tab, I hate when this happens) while writing this issue and lost the whole thing. Sigh. I need to add autosaving. I'll try to recreate the masterpiece I had created.
I hope you all had a lovely weekend. Jet-lag has been the fickle beast that has kept me up to unholy hours of the night. Although I guess they might not be unholy for most software engineers. Personally I prefer waking up early than going to bed late, but sometimes it feels like my mind and body aren't in agreement on that point.
Last week I learned that there's actually a limit to the number of characters that can be fed into a shell command. I was passing full articles from a Clojure program to a Python script for a machine learning model to extract keywords from the article (little demo here), but it quickly went to shit with longer articles.The compromise I made was to write the articles to /tmp/ files with a UUID name, then pass the UUID and load the file using that in the Python script. If green is bad, a chair is amazing, and the act of running is ok, I'd give it a tomato.
Does anyone have a good way of extracting the author of a webpage? Please share it with me, it would save me a lot of time.
Thanks to whoever Rick Rolled me in the feedback form last week. I had just watched the Vice documentary on Rick Astley, so it was perfect timing.
Anyway, here's the issue.


Today's Sponsor: Could be you!

Are you or your company interested in sponsoring the newsletter? Feel free to reach out to me by replying to this email or clicking the link above.


Resiliency in Distributed Systems

Published: 28 September 2022
Tags: distributed systems

Gergely Orosz discusses two chapters on resiliency from the book "Understanding Distributed Systems" by Roberto Vitillo. The book covers topics such as communication, coordination, scalability, resiliency, and maintainability in large-scale systems.
Some highlights:

  • Ideally, a network call should be wrapped within a library function that sets a timeout and monitors the request so that we don’t have to remember to do this for each call
  • Retrying needs to be slowed down with increasingly longer delays between the individual retries until either a maximum number of retries is reached or enough time has passed since the initial request (can use exponential backoff)
  • Circuit breakers are mechanism that detect long-term degradations of downstream dependencies and stop new requests from being sent downstream in the first place
  • Load shedding is when a server fails new requests quickly to prevent overloading
  • Load leveling is when you transform time-variable inbound requests to a consistent flow to the service using something like a queue


D3Wasm: a port of id Tech 4 / Doom 3 engine to WebAssembly

Published: 9 February 2022
Tags: graphics, web, web assembly

The article is about the Emscripten / WebAssembly and WebGL port of the C++ DOOM 3 game engine. The port is functional, with a reworked backend renderer using the WebGL subset of OpenGL ES 2.0 and GLSL shaders. The port is working on all major Desktop Browsers: Firefox, Chrome, Safari, Edge and Opera. Gabriel Cuvillier discusses some of the technical aspects of the project and difficulties faced. Skip to the Technical Details section if you want the deets.
Some highlights:

  • On average the WebAssembly/WebGL version of the engine is between 40% and 60% slower than the Native/GLES compiled version
  • Multithreading have been completely removed from the engine, because it is not yet well supported by browsers
  • Working with WASM can be difficult because you have to juggle the multithreaded aspect of something like C++ with the async/single thread nature of the browser


Bitcoin and economic nihilism

Published: 10 October 2022
Tags: blockchain

Xe Iaso and Open Skies discuss their thoughts on Ethereum and blockchain technology. The authors note that the technology is interesting from a technical standpoint, but there are still many issues to be resolved before it can be widely adopted. Xe and Open also mention that they would personally like to see blockchain technology used to allow for more direct payments between people, without the need for a third-party. Not a technical deep-dive per-se and I don't agree with everything, but an interesting conversation nonetheless on blockchain, ethereum, NFTs, the Steam marketplace, furries, and capitalism.
Some highlights:

  • Paying people on the internet kind of sucks
  • Blockchain doesn't deliver on its promises (sHoCkEr)
  • Furries have NFTs

How did I do?

5 4 3 2 1


Want to help?

Thank you for reading! If you enjoy the newsletter, I would really appreciate you helping me spread the word by forwarding this to your friends and colleagues or sharing it on social media! Get cool stuff for your referrals using your link

Your referrals:

If you want to discuss or comment on this issue, head on over to this page at A Byte of Coding. You can also subscribe there if you're new!

Have comments or feedback? Just reply to this email or hit me up on Twitter @AByteOfCoding.

Email landed in your promotions tab? Please move it over to primary so you don't miss the latest issues in the future.
Thanks for your Support! 

Big thanks to all of the Patreon supports and company sponsors. If you want to support the newsletter you can checkout the Patreon page. It's not necessary, but it lets me know that I'm doing a good job and that you're finding value in the content.

Stats (updated daily)

Sent: 2981

Opens: 1420

Clicks: 387

Link Clicks Clicks % Unique Clicks Unique Clicks %
Resiliency in Distributed Systems 131 52.40% 145 51.97
D3Wasm: a port of id Tech 4 / Doom 3 engine to WebAssembly 58 23.20% 62 22.22
Bitcoin and economic nihilism 61 24.40% 72 25.81


Back to Issues