No, CSS is awesome. CSS is better than ever and it is only getting better. And that is why I built DOOM in CSS. Every wall, floor, barrel, and imp is a div , positioned in 3D space using CSS transforms. The game logic runs in JavaScript, but the rendering is entirely CSS. You can play [ ] The post CSS is DOOMed appeared first on Hello my name is Niels Leenheer .
The Fronteers Conference made a comeback this year with a fresh concept, presenting unique technical challenges that we were excited to tackle. Fronteers Dark Mode would be a smaller, more intimate event. We d start around four in the afternoon and run until after midnight—an evening of frontend. We d have dinner, drinks, and five excellent speakers. [ ] The post Making a low-budget conference…
User-agent strings are weird. They inform the server which application is communicating with them. In the case of a web browser, this string can contain the name and version of the browser, but also information about the operating system and the device on which the browser is running. But browsers lie. They lie a lot, [ ] The post The User-Agent string of Safari on iOS 26 and macOS 26 appeared…
Receipt printers are a complicated subject because of many variables. There are many different types of printers and ways to connect them, but this article will help you navigate most pitfalls. The answers and suggestions in this article are all based on my libraries, which are open-source and freely available for anyone to use and [ ] The post Receipt Printers 101 appeared first on Hello my name…
This is the sixth and final chapter of The problem with User-Agent strings . In the previous chapters, we ve learned that the User-Agent string is something that web developers should handle with care. Handle with extreme care because it could blow up in your face at any time. But if you knew what you did, you could use [ ] The post Should we rely on browser detection? appeared first on Hello my…
This is the fifth chapter of The problem with User-Agent strings . In the previous parts, we examined the history of the User-Agent string and browser vendors efforts to reduce its information. Removing details from the User-Agent string made passive fingerprinting much more difficult. These efforts have been really effective because we are now in a [ ] The post The User-Agent Client Hints API…
In our fourth chapter of The problem with User-Agent strings we learn about some of the privacy advances that browsers have made in the last couple of years. Privacy on the Internet has become much more important over the last decade. All the prominent browser vendors informally agreed to limit the potential user-identifying information in [ ] The post User-Agent reduction appeared first on Hello…
In our third chapter of The problem with User-Agent strings we taking a look at the problems you run into when you change something in the User-Agent string. As I mentioned in the previous instalment of this series, the User-Agent string is built upon layers and layers of lies. Sometimes, when I look at a [ ] The post Trouble happens when you update a version number appeared first on Hello my name…
In our second chapter of The problem with User-Agent strings is a fascinating story about the browser wars. It s a tale where the User-Agent string takes centre stage, revealing its unpredictable nature and the need for vigilance when relying on it. The tale starts with me buying a new car back in 2016. Now, I [ ] The post A chapter of unnecessary detail appeared first on Hello my name is Niels…
In our first chapter of The problem with User-Agent strings we are taking a deep dive into history and start with the basics of the User-Agent string. Our first stop is in 2018, with the release of Firefox 60. There is nothing significant about this specific release—I could have chosen pretty much any version—but we have to [ ] The post A brief history of the User-Agent string appeared first on…