November 2023

Islands Architecture

- entry level, architecture, island architecture, web design, SEO; 17 minutes reading time

Let's talk about the new kid on the block. The islands architecture answers the ever-growing challenges of the popular single-page architecture (SPA). Well-written SPA applications offer superior UX. That's why tools like Gmail and Google Maps became popular in the early 2010s.

Before 2010, every web application did a full-page submit after every user interaction. The browser showed a white page for one or two seconds while the server pondered the response to the user input. SPAs changed that. They brought seamless interactivity to the web, eliminating the eye strain and headaches many employees suffered from.
That's not a big deal in an office with a generous internet connection, but it's painful in a rural area with slow internet on a mobile device. The island architecture aims to improve that without losing the advantages of SPAs.

I've been experimenting with the islands architecture for a couple of weeks now. I'm impressed. This architecture is a good match for web applications using micro-frontends. It's also ideal for blogs and web pages that are mostly, but not entirely, static.

  more...
October 2023

Using GitHub Copilot or Code Whisperer on your customer's code

- entry level; 6 minutes reading time

Recently, I've been trying to find out whether it's legal to use tools like GitHub Copilot or AWS Code Whisperer on my customer's code. To be honest, I still don't know. I expected the answer to be a simple "Yes, you can!" but it doesn't seem that easy.

Disclaimer

I'm no legal expert. This text is a layman's assessment of a legal issue. Please do not take it at face value. I've written it to ignite thought and prompt questions. It's by no means legal advice. But no matter what you make of it, you're still responsible, and I urge you to consult your lawyer. Copyright law is a hornet's nest.

  more...
June 2023

Angular Compatibility List

- entry level, Angular; 2 minutes reading time

Twice a year, a new major of Angular ships, and I need to update my Angular projects. More often than not, the automated update doesn't work, so I have to do it manually. In other words, twice a year, I wonder which version of TypeScript is compatible with the new Angular version. Not to mention the versions of node.js, zone.js, and Rx.js.

Until recently, I used to create a new sandbox Angular project to find out. Does this sound familiar? Here's help. More to the point, here on StackOverflow.

Cartoon depicting open source projects as fragile piles of buildings, struts, and duct tape, with a single person holding them together.Image published by Randall Munroe
on XKCD under a Creative Commons Attribution-NonCommercial 2.5 License.
If you don't want to remember the link, memorize the command npx ngvm compat. At the time of writing, it simply opens the StackOverflow page, which seems to be maintained frequently by the community. The community is a single man, Aliaksei Kuncevič. I'm not sure if he's doing it alone, but once again, it reminds me of the famous XKCD comic. Give him some kudos, or support him!

There's also an official compatibility table. Unfortunately, it's a bit shorter. On the plus side, it indicates which version of Angular you should abandon because it's no longer supported.