The web is currently based around the JPEG, PNG and GIF image formats. These are all very old and suboptimal formats which were never designed in the first place with the modern web in mind. A few newer competing formats have popped up recently, aiming to dethrone the original trio to postulate themselves as the standard web image format of the future. These are, essentially, WebP (.webp
extension), developed by Google and hated by almost everyone else, AVIF (.avif
extension), based on the AV1 container and developed by the ‘Alliance for Open Media’, a conglomerate of big tech companies that are anything but open, and JPEG XL (.jxl
extension), developed by the Joint Photographic Experts Group, the same people that developed the original JPEG.
So what’s the fuss all about? Recently, Google decided to kill JPEG XL support in Chrome. A full report follows.
Yesterday I created an account in pixelfed.social, one of the many instances of Pixelfed, the distributed image sharing open source project which federates with Mastodon and others. Anyone can set up its own instance and have it ’talk’ to all the others. So, I created an account and started sharing some of my shots. For the most part, it works very well and I’m eternally grateful that something like this exists, free from the claws of big corporations hungry for your data.
After some seven long years of working on my Ph.D. off-the-clock and three extensions, about a month ago I finally submitted my thesis to the doctoral office for review. I started back in 2015 when I had no kids. Today, I have two kids and 3 peer-reviewed papers on top visualization journals (and an unpublished one).
It has been an interesting ride indeed. For now, I can relax for a few weeks until the examination date is set.
In these last few days I have merged a huge internal refactoring into Gaia Sky’s master
branch. This refactoring has been cooking for several months and has adapted or completely
replaced virtually every piece in the code base. Read on if you want to know more.
In their own words, taken from the docs, “Codeberg is a democratic community-driven, non-profit software development platform operated by Codeberg e.V. and centered around Codeberg.org, a Gitea-based software forge.”. Essentially, it is a non-profit platform run on donations for sharing free and open source software by providing a collaborative VCS environment based on Gitea. One good day I decided to move all my open source repositories from GitLab over to Codeberg, and that includes the hosting of this very website. This is the story of this migration.
From time to time I profile Gaia Sky to find CPU hot-spots that are hopefully easy to iron out. To do so, I launch my profiler of choice and look at the CPU times for the top offender methods. Today I went through such a process and was surprised to find a forEach()
method of the Java streams API among the worst offenders. Was the forEach()
slowing things down or was it simply that what’s inside the loop took too long to process? I found conflicting and inconsistent reports in the interwebs, so I set on a quest to provide my own answers.