Tangible Bytes

A Web Developer’s Blog

Unicode

A couple of things about UTF-8 have eluded me for a while …

I knew that the first bit of ASCII (the bit people agreed on) is the same in ASCII and UTF-8

I knew that the rest of Unicode needs 2 or 3 bytes

But I wasn’t clear how you could tell how many bytes needed to be read at a time

And mostly I didn’t need to because the computer does it all for me - but those bits of vagueness can catch you out and so I went down the rabbit hole and it turns out to be fairly short.

Read more ...

Prometheus Excess CPU/RAM Issue

A key part of any modern infrastructure is good monitoring, even on my local desktop system I like to have monitoring in place so that if a problem gradually builds up I can trace where it started.

Unfortunately in this case the monitoring system actually caused the problem and Prometheus was using up all my system CPU and RAM.

Read more ...

Firebase Hosting

Website developers (like myself) often end up with a few websites we support - whether these are promoting a business, running a blog, for a side project, or a site for a friend or hobby.

Since these are often low to no budget and can’t be prioritised for work at busy times they need to be

  • cheap
  • low maintenance
  • easy to set up
  • blazingly fast
Read more ...

Sql vs Firestore First Impressions

I’ve been working with SQL databases for over 20 years but this year was my first time using a NoSQL database.

Previous conversations with developers often went along the lines of them trying to tell me NoSQL is “better” and me not quite seeing a benefit. At the time I never really had a reason to try something different - what I had worked and was low risk.

Recently I had cause to adopt Google’s Firebase hosting and Cloud Firestore database and this is what I learned.

Read more ...

PWA, Workbox, CSP, and Caching

In the world of Web development the words “Best Practice” are often thrown about as if implementation was a trivial detail and giving the impression that everyone else must be doing all this already.

Then you implement these and find that it isn’t so trivial - especially when you try and combine each practice.

I wanted to experiment with making this site into a Progressive Web App (PWA) while maintaining good security through Content Security Policy (CSP) headers and long cache times for static assets.

Read more ...