Issue #376 · June 10, 2024

Engineering for Slow Internet

“The real problem is not whether machines think but whether men do.“”

Hello, Welcome to issue #376,

OK, I'll start by admitting that this issue came out a little bit weirder than usual! Somehow, I ended up selecting a few cool resources that are not necessarily strictly related to the world of full-stack web development. They are still cool engineering topics and I still think that they can teach you a lot, but do let me know what you think! 🙏

In other news, if you like serverless and multi-tenancy, my talk about Building Secure & Efficient SaaS Platforms on AWS Serverless from ServerlessDays Belfast is finally available on YouTube!

— Your editor, Luciano

☃️ Engineering for Slow Internet

☃️ Engineering for Slow Internet

Your website is probably not going to have many visitors from Antarctica, but this is not the only place in the World where internet connectivity might not be great. So, if you care about being inclusive and making sure that ALL your users can have a great experience on your website, here's an interesting story and a few ideas that you can (and should) borrow! Not all ideas are website specifics, but this is still worth a read!

Articles

🔧 Fine-tuning Text Inputs

Web forms and inputs support a variety of additional attributes that can provide hints to the browser and improve the user experience of filling out forms online. With the tiniest bit of extra effort, we can make sure our forms help rather than hinder. For example, did you know you can enable or disable spell-check or auto-correct on an <input> element?

😡 Why software engineers are always grumpy?

This article is a bit of a fun one. Not strictly related to full-stack web development, but I am sure you can recognise some of the laws of software complexity laws being stated here. Don't take it too seriously, but there's certainly some bittersweet truth to it.

🌝 TypeScriptToLua

Lua is one of these brilliant languages that you either love or hate. Small and efficient, it appears often in plugin systems. For instance, I recently had to use it to create some special NGINX extensions. It was fun to learn it, but also a bit painful at times. With TypeScriptToLua, you can bring your TypeScript experience when you need to write Lua code. It's effectively a transpiler from TypeScript to Lua. Your mileage might vary, but probably still worth a look if you are afraid of Lua.

⚡️ zigar: Enable the use of Zig code in JavaScript projects

Zigar in an open-source software tool set that lets you utilize Zig code in your JavaScript project. Zig is still a relatively new language, but it really shines when you need extreme performance but you are looking for something a bit more modern and friendly than pure C. This can be the case if you are writing some low-level component and now you want to wrap it in a nice JavaScript API so you can use it from your Node.js projects. I haven't tried it yet, but I am really curious to give this a shot!

😢 The popover drama

The popover drama started with a tweet about how a HEY Calendar popover loaded slowly on a throttled internet connection. Then, a heated discussion followed in the best social media way, including nuance-free hot takes and professional trolls. This is a great starting point to understand the underlying tech that powers HEY: Hotwire, a ruby server-side rendered approach to reactive UIs in the browser.

Book of the week

Modern JavaScript for the Impatient

Modern JavaScript for the Impatient

by Cay Horstmann

Exploit the Power of Modern JavaScript and Avoid the PitfallsJavaScript was originally designed for small-scale programming in web browsers, but modern JavaScript is radically different. Nowadays, JavaScript programmers actively embrace functional, object-oriented, and asynchronous programming, while deprecating error-prone concepts from the past. Modern JavaScript for the Impatient is a complete yet concise guide to JavaScript E6 and beyond. Rather than first requiring you to learn and transition from older versions, it helps you quickly get productive with today's far more powerful versions and rapidly move from languages such as Java, C#, C, or C++.

Additional Links