Font Awesome minification, Take 1

As mentioned when I switched over to PicoCSS as a CSS framework for this site’s theme, unless I include an image on one of the first X (where X is currently 4) most recent posts on the front page, by far the biggest inflator of my site’s transferred size is CSS and fonts related to Font Awesome. I only use about 7 of the glyphs from two sets, but that results in me loading 600KB (uncompressed) of fonts for glyphs I don’t care about, along with a pile of extra CSS (to the tune of about another 180KB uncompressed). Of course, gzip or brotli does a fine job of compressing this, but that’s not the point, damn it.

Naturally, they offer a subsetting feature, which requires their Pro plans or higher, and that’s $120/year… much more than I need to spend, I feel like that’s more intended for designers and so on who will use it frequently.

But I can do it myself right? Near as I can tell, the icons are CC-BY, the fonts are SIL OFL, and the CSS is MIT-licensed. So as long as I don’t call it something else and pretend it’s not Font Awesome, I think I’m in the clear to modify and redistribute the files? So I think legally and ethically I’m good.

But what about technically? Turns out it’s fairly easy on the font side of things:

# Set up fonttools
python -m venv venv
source venv/bin/activate
pip install fonttools

# Build the regular FA set
fonttools subset ~/src/fwaggle.org/themes/pico/static/webfonts/fa-solid-900.ttf \
--unicodes=U+F00B,U+F13E,U+F02C,U+F1B9,U+F11B,U+F6FF,U+F007,U+F062 \
--layout-features='*' \
--output-file=/home/fwaggle/src/fwaggle.org/themes/pico/static/fonts/fa-regular-fwaggle.ttf

# And the four from fa-brands I use as well.
fonttools subset ~/src/fwaggle.org/themes/pico/static/webfonts/fa-brands-400.ttf \
--unicodes=U+F4F6,U+F09B,U+F1B6,U+F08C \
--output-file=/home/fwaggle/src/fwaggle.org/themes/pico/static/fonts/fa-brands-fwaggle.ttf

First of all, note that fonttools doesn’t normalize the ~ so you have to specify the full path to your file.

Grabbing the lists of glyphs is a little bit repetitive but otherwise trivial. They’re referenced as say "\f00b" in CSS, that corresponds to U+F00B (not sure capitalization is required, but I did it anyway), and then it’s just a comma separated list. Depending on your OS, you might be able to read them in the little square if it’s an undefined glyph too.

I’m not actually sure the ligatures etc (--layout-features='*') are required, but I’m fairly sure they’re not already defined in the font anyway so leaving it in there doesn’t hurt anything.The result is a pair of minimal font files that are about 5KB combined. I wonder if it’s possible to concatenate them into a single font file? Doesn’t matter though.

Next up, hacking up the CSS. First, I removed any references to the WOFF2 format (I could subset those too, but meh, it works with just TTF format) and updated the URLs to my changed files.

Then, I went through and hacked out all the transitions - I don’t use them, honestly I didn’t know they were a thing, and they weigh about 80KB of uncompressed CSS on their own.

The rest of it is scaffolding, which breaks if you remove it, and definitions of individual styles that reference the unicode codepoints that the glyphs occupy, like this:

.fa-list::before {
  content: "\f03a"; }

As you can imagine, they’re not very big, but what I could do is go through and throw all those away and only keep the ones I’m using. But do I care? I’ve gone from 600KB to less than 100KB. I could potentially get that down a bit but I’m skeptical I’ll get it below 50KB. I’m fairly sure my front page is under half a megabyte now if there’s no photos.

And I don’t think I’ve broken anything, but we’ll see when I push it to the live site (it works locally anyway).

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry

Beanie: benign bump

Sabriena noticed some time ago a small bump on our dog Beanie’s left flank, that felt something like a hard pimple. We then noticed a week or so ago that it had grown a bit, so in to the vet this Tuesday to have them check it out.

Upon their advice, we opted to have an “aeration”, which is apparently the same thing as a biopsy but instead of cutting off a chunk, they take an empty syringe and use it to pull out several samples, put it on slides, and send that off to the lab. Our vet doesn’t have a lab internally (in a town of ~18,000 people this is no surprise) so it would be a few days.

The vet called on Friday morning, telling us that it doesn’t appear to be malignant - it’s most likely a subcutaneous follicular cyst, apparently fairly common in dogs. Completely fine to leave it for now, if it gets too large and/or annoying for her we can have it removed and it probably won’t come back, but there’s no reason to subject the dog to surgery right now.

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry Newer Entry

Internet issues

Ever since they replaced the NTD, we’ve had to power it off due to a red “optical” light that won’t go away. The list is not complete, but I did note down the timestamps Unifi gave us for the last month of outages, annotated with my own notes about it:

Date Issue
2025-10-05 09:03 Red optical light, power cycle NTD and service returned
2025-09-15 12:08 Red optical light, power cycle NTD and service returned
2025-09-15 06:58 Red optical light, power cycle NTD and service returned
2025-09-11 00:59 Brief outage, returned on its own

There were obviously a couple more instances of this beforehand, but I don’t have firm dates/times of those so I haven’t bothered to note anything.

I asked on our RSP’s unofficial/official Discord about it, and it was basically unanimous: most people basically never reboot their NTD, ever. It’s weird that I have to do it, and doing it that often I should file a ticket.

My RSP apparently responded to the ticket quite quickly, but I don’t appear to have gotten any notification of it for some reason… so they called today to chase me up about it and we had a short conversation about it.

It’s probably going to be a pain in the arse to get them to fix, because even though it’s infuriatingly often and definitely not normal, it’s within NBN’s SLA thresholds. But what I should do next time, before power-cycling the NTD, is run two tests from inside the RSP’s web portal:

Apparently having both of those on file will allow them to start building a case for there being something wrong, but for now it’s - from NBN’s perspective, likely just looking like I’m unplugging my NTD and then some minutes later plugging it back in. Not great.

Update: 2025-10-27 AussieBroadband raised it with NBN, who took some arguing to accept the appointment, but eventually came out today. The appointment was for the morning, they arrived at about 1:30pm, but I’m used to this now. After some checking, they replaced the plug on the outside box, and then replaced the NTD. Hopefully that’s the end of it.

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry Newer Entry

Horsham Argicultural Show

After a pretty good night’s sleep, we got out of bed, walked the dog, then wandered off to see the local agricultural show, which is unfortunately timed to coincide with Melbourne’s one, which we’ll totally do at some point, we just haven’t yet. Breezed in the gates because Sabriena pre-bought tickets (going up to an empty queue with a ticket scanner instead of the cash line which was probably 30-people deep).

Honestly, we had a lot better time this year. Last year’s show kinda felt like it was dying, it was smaller than the previous year, had less interesting stuff, and the food wasn’t great. This year we opted to skip the dagwood dogs (always, if I’m being honest, a poor imitation of a corndog and entirely unsatisfactory despite the fact I basically look forward to it every year), and instead wandered around. The food vans were segregated, with the usual carnival mobs over by the rides, but out the back in the caravan field they had a bunch of local food vans, where we found one that was selling Souvlaki in pita. I’m not sure if they’re actually local or not (I’ve certainly never seen that food truck, but it’s not like I’m a connoisseur of automotive food vendors) but either way it was fucking fantastic.

We watched the herding dogs compete for a bit, one that we watched did very poorly, I’m suspecting he was still a pup. Then it was time for the wrestling… Sabriena was a WCW/WWF kid, and still somewhat misses it, and a local Victorian production was putting on a wrestling match in one of the pavillions, so we went and watched that. It’s the second time we’ve watched them, and what I absolutely love about them is that even though they’re playing in a shithole shed (this time was a nicer shed, to be fair) to about 20 people, they sell it like they’re at Madison Square Garden. You really can’t knock them for effort, and they put on a good show. Sabriena enjoyed it, and interestingly so did Duncan - who looked decidedly unimpressed the first time we were there.

After that we wandered around some more, saw some animals, looked at the rides but decided against it, settled a bet (I insisted that the clowns with rotating heads, you put ping-pong balls in them to win prizes, Sabriena insisted they were the american style ones where you shoot water out of oversized water-pistols into them - I won, for once), and then headed out.

We decided not to come back for the fireworks, instead opting to stay home and calm the dog.

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry Newer Entry

Home from Prague!

This past week, for the first time in some six years, I flew out to Europe to meet with folks from the company I work for. As the company is significantly larger, it wasn’t a company-wide thing, only the technology department, and the scope was smaller too - we were there for two days and three nights, and this time it was in Prague, Czechia, instead of Budapest, Hungary.

I was supposed to go a couple years ago, but managed to miss my flight, so this time around there would be no such silliness. First, I switched flights out, opting for one leaving at night instead of the middle of the day. I double-checked my ticket, and then added two and a half hours to that, arriving at around 5pm for a 10pm departure. I bought Mum and Dad dinner for driving me down, and then once I was checked in they left.

This time I flew through Dubai instead of Doha, which was a relief given the bullshit that just happened there, though I still dislike any of these regimes, I don’t buy the ticket so I don’t get to refuse - the only other option involved a five-legged flight with six legs on the trip home, going via Singapore and London, which no thank you, I would rather stay home.

The event itself was pretty good, lots of talking to other teams, putting faces to people I’d only seen on video calls, and one team building exercise that I theorize was basically a bunch of college history nerds’ side-hustle involving a scavenger hunt around the city. My team cheated, we partially solved the puzzle, cracked the padlock (which I very nearly did by feel at first, but the first two digits were both off-by-one, but we ended up solving enough of the puzzle to get the first two digits then I brute forced the rest) and then we used math to resolve the rest of the puzzle, finishing physically second, but after skipping all the bonus stuff we finished 5th of 6 overall. Oh well, for a team that decided early on we would not be competitive, we did fairly well.

I bought some candy and other knick-knacks from both Prague and Dubai airport, and made it home safe after nearly a week of traveling (I flew in at around 10pm on Friday night, so Sabriena booked a motel room at the airport and Mum and Dad picked me up on Saturday morning). I’m utterly exhausted, and naturally appear to have caught the sniffles on the plane.

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry Newer Entry