This Is For Everyone

I didn't know much about Tim Berners-Lee, other than that he invented the World Wide Web. Since my journey with computers started in the late 90s, when his creation had already exploded, it felt to me like something that had always been there. Besides, he wasn't exactly a household name. Thus, I wasn't particularly excited when I heard that Tim had published a book, but I made a mental note nonetheless. Good reviews from both the press and readers convinced me to order it.

Book cover

Read more...

My cat got a website

I normally don't do advertising here, whether paid or as a favor. But my cat just got a website, and I couldn't say no: meowsiris.eu

It's a humble beginning - he doesn't know much HTML or CSS, but we all start somewhere. Check it out if you have time, there are some 🔥 photos!

Screenshot of a website meowsiris.eu

Easy to implement light and dark themes with light-dark() css function

With dread in my heart, I connected to the world wide web. I wanted to learn how to code the switch between light and dark themes for this blog, expecting some messy javascript hacks to load either one css file or another. To my pleasant surprise, I found a relatively new function that solves this exact problem: light-dark(). It essentially accepts two arguments: a color for the light theme and a color for the dark theme. Since the browser knows what the user wants, it picks the suitable color. That's it!

Dark and light themes

Read more...

New design

It was inevitable, wasn't it? After working on raweceek.eu with its old-school design and spending time looking at other websites a similar aesthetic, I couldn't not update my own blog. After all, this is my personal space on the internet, and right now, I want it to feel more fun and less sterile. This is the first redesign in my blog’s life, and quite frankly, I’m surprised I’m still using it after 1.5 years. Anyway, if you don’t see major changes, try refreshing the page with ctrl + shift + r.

Colorful pens arranged in a mason jar on a light wooden desk

Photo by Jessica Lewis 🦋 thepaintedsquare

Read more...

RaweCeek.eu update

When I created raweceek.eu last year, I quickly decided to build it with React due to my familiarity with the library. However, over time I realized that using so much client-side code for such a simple website was silly. It was like using a sledgehammer to crack a nut. Even worse, older systems couldn’t display the page because browsers like IE6 and its predecessors don’t support contemporary JavaScript features. So I decided to change that.

Raweceek.eu on Windows XP, Internet Explorer 6

Read more...

Rawe Ceek - is it a race week?

Last month, I bought a domain: raweceek.eu. It refers to a confusing image posted by Ferrari on Twitter ahead of a Formula 1 race in 2020. The text on the image can be read as both "race week" and "rawe ceek", and it quickly became a meme in the community.

2020 British Grand Prix: Race week / Rawe ceek

I didn't have anything specific in mind before the purchase. I wanted to create something fun, a lighthearted website that could be of use, but wouldn't require regular maintenance. And so the feature was born from the meme's name: visitors should be able to quickly see whether the current week is a race week or not!

Read more...

OpenAPI code generation with Go server and React app

When I created this blog last summer, I had several goals in mind: to acquire new skills, learn about fresh technologies, and have fun in the process. Its simplicity allowed me to rewrite the project multiple times using different programming languages and libraries: Rust with Axios, Java with Next.js, Java with Thymeleaf, and finally, Golang with React. While the first two options reduce the amount of code by handling both the service logic and the HTML rendering, they also take on too much responsibility in this way. Not that this is wrong by definition, but I prefer to separate these concerns.

However, this approach increases the workload. I had to build models on both sides, consider not only the controllers but also the client implementation, where changes on either side can break the integration. In this post, I want to explore a way to eliminate this overhead and explain how to generate code for a Go server and React client based on an OpenAPI specification. The idea is not limited to this stack, it can be easily applied elsewhere with suitable tools.

The full demo project is available on GitHub.

Read more...

Encrypt data like Emperor: Caesar cipher

Whether we're concerned about privacy or not, we utilize cryptography every day. Thanks to HTTPS we can securely log in to online banks, use government services, share our location, chat with friends, and participate in other activities where leaks could result in financial loss, damage to our reputation, or even mental or physical harm.

Your communications with this website are also encrypted! That's not because you're transmitting or receiving confidential data while being here, but rather your browser wouldn't allow you to open this page otherwise. In the past, something like credit card details could be transferred in plain text, making it an easy target for hackers. Today, the risk is significantly reduced as browsers enforce site owners like me to secure the connection.

Long before the advent of the World Wide Web, the secrecy and confidentiality aspects of his role led Julius Caesar to contemplate how to safeguard his orders. A messenger carrying important information could be intercepted, and then it would be disclosed to the enemy. To counter this threat, he began encrypting his correspondence using a simple algorithm that was eventually named after him: a Caesar cipher.

Read more...