It turns out that programming takes a while. It's even longer when you don't program in C, so you barely have a clue of how to use a compiler. As soon as you add more than 10 megabytes of dependencies, I cry and run away. However, that isn't always the case.
The folks over at Mozilla have decided to use ubiquitous infrastructure better. Instead of implementing a next-gen image format like
WebP or JpegXR, they're squeezing more efficiency out of JPEG. Last year, they started the MozJPEG project. Dig around a little bit, and you can see just what they are doing. It seems that version 3.0 is the greatest improvement yet. This is the first time that I've seen a JPEG encoder that doesn't totally destroy images with black on white text.
I managed to compile it, not just on Linux, but on Windows, too! I'm pretty sure that's a first. The problem is that even though it has binary compatibility with another JPEG library, no image editors that I use can use MozJPEG!
So please enjoy bigger and higher quality JPEGs on my blog. I've decided to either max out at 80kb per image, or JPEG quality 80. You're welcome.
Posted Wednesday, February 11, 2015 at 10:36 PM EST under Programming.
Since you've made it this far, you might be interested in reading:
Toilet Blog Engine, Version 8
Since I've been stuck at home for a few months, I've been updating this blog. There's been some major improvements, because the whole stack has been upgraded: the OS (Xubuntu 16.04 to Xubuntu 20.04), Postgres (9.5 to 12), JVM (8 to 11), and web server (Payara 5.191 to 5.2020.3). (There was one Payara version that enabled TLS 1.3, but it's bugged. Maybe I'll try next time!) With PostgreSQL 12, I finally have access to the
websearch_to_tsquery function for searching. You can use quotes to force include something, and hyphens to exclude something. However, naively connecting trigrams to it like how I did destroys the cool functionality, so I dropped it. I've built a search suggestion feature to cover for it; try it out.
Background Text and Fake jQuery
I love having a fast website. A lot of it comes down to not having a lot of frameworks and libraries running. On my page, I only have one stylesheet, and one script. That doesn't mean that I can't get creative. My favorite is the glowing links when you hover over them. The summaries that look like rockstar autographed posters on the homepage are pretty sweet. (Those posters might be my favorite, if it wasn't for the difficulty in getting it to work just right.)
Multithreaded Rockstar AMP
Despite the fact that this blog does what it's supposed to do (I hope), I can't help but keep messing with it. I guess with my day job being mostly backend work on internet shopping websites, this is my way of venting. Sometimes, it gives me an idea of what is going on behind the abstractions beneath what I work on, like search indexes. Other times, I want to toy around doing visual design.
Responsive Images & Remote Debugging
I got a new phone last month, because the screen on my old one broke. My new phone has a 5-ish inch 1080p screen. That's means it has an insane pixel density! On my podcast, I occasionally talk about some new program that increases efficiency, but doesn't change standards and fits within existing ecosystems. My favorite is MozJPEG. It's a program that encodes JPEG images much better than (almost) all others. Since I keep high resolution images of almost all the images on my blog (and share them), I experimented.
Welcome to the New Andrew Bailey
Hello and welcome to my blog. If you've been here before, things might look a little different, especially if you came in through the homepage. I have implemented a few things I have gathered by doing research for my podcast, and several hours of toying around.
Last month, I got Thing Explainer. It's a book that explains big things using the ten hundred words that people use the most. I wanted to do something just like that, but for hidden writing. After I started writing this, I felt like I was talking to a little kid, only to find out that I was the kid, and I was having fun.