Good morning everybody! 👋
What a week! It's right after JSConf.eu and I finally caught up on a little bit of sleep – it was much needed. 🙈
May has been very busy. I went to the US to see all my lovely colleagues, spoke at React Edinburgh in Scotland, the DevDay Berlin and JSConf.eu. It was lovely getting to know so many new people. Now, I'm looking forward to getting back to writing articles and creating content.
Speaking about content, here's my favorite content of May – enjoy!
React in a worker, worker, worker...
I’m digging Cloudflare workers recently, and I use these a lot for demo projects. What’s exciting about workers is that they are serverless functions with the ServiceWorker API.
This similarity makes it possible to share the code between serverless functions and a service worker. At React Edinburgh, I presented my approach on how to run a React app in three places (the browser, a service worker, and a Cloudflare worker) using a single bundle. The recording is not up yet, but you can have a look at the slides already.
How JPEGs work internally
I learned many things while being in University. Image compression was one of my favorite topics. The article "Unraveling the JPEG" is an excellent guide going into JPEG functionality and compression. The article includes many interactive examples, too.
The comeback of the personal website
Every time I see the Medium paywall I ask myself, "How did we get here?". Don't get me wrong – I'm not surprised by it. Nothing in this world is free, and for me, it was only a question of time until Medium had to do something. It is interesting to watch how much content made it into Medium and how many people are now moving away from it to host their own sites now.
Matthias Ott wrote a great piece on why it is crucial to own your data and run your own site — highly recommended.
This month I learned
I don't know what happened here, but somehow I managed to write down six quick TIL posts this month. 🙈
Array.from has a second argument
Short and crisp –
Array.from can be used to created Arrays out of different data structures. Did you know that it also accepts a second argument?
Datalists can have labels and values
I'm a big fan of using native elements and semantic markup. The
datalist element can be used to provide auto-completions when you connect it to an input element. I learned that datalist elements could hold not only completion values but also labels.
isTTY can be used to tailor node process output
For example, you may want to see many cute emojis if you run a node script in your terminal, but probably don't want to see these in all your log files.
There is a
word-spacing CSS property
There is not only
letter-spacing but also
word-spacing in CSS. It does what you expect it to do – there's no surprise. However, how can it be that I haven’t seen it before? 😲
git has an auto-correct flag
Did you ever typed
git puhs in your terminal just to see a "Did you mean..." git output message? I learned that git could also run in auto-completion mode and correct these typos automatically. Instead of asking you, "Did you mean...?" it waits a moment and applies the auto-correction automatically. I think that's very cool.
toJSON methods into consideration
I learned that
JSON.stringify takes the
toJSON method of objects into consideration when it serializes objects. Very good to know! 👌
A quote to think about
Always be honest. It sounds dumb, but often the person we’re the least honest with is our own self.
A song that makes you stop working
Yesterday evening I went for a run to clear my mind. The eight minutes tune "The Rapture Pt. II" by &ME let me forget about everything and just run. Soft electronic music with beautiful piano sounds – I can’t wait for my first open air here in Berlin.
And that's it for this month. Have a great June and enjoy the sun! 👋