Show newer

New blog post: What it takes to parse page

Goes over the new "mwtitle" library myself and Erutuon have been working on for a few weeks and just published the 0.1 version of!

Wheeee my "did you know" nomination was approved. First in uh, 9 years.

Coming soon to the English Wikipedia Main Page...

Today's security release fixes a pretty bad wiki-leak:

There's a pretty simple mitigation that can be applied via configuration in LocalSettings.php if you can't patch immediately.

Fixes are out for Debian packages, the "official" Docker image, and should land in my Ubuntu PPA for focal/bionic shortly...

I forgot I had xdebug enabled when I took the previous benchmark so it's probably useless.

Here's a benchmark with no xdebug: - also comes with enough to reproduce it hopefully.

I tried running some full page parses to see the difference and either I did it wrong, or the Rust version didn't make a noticeable change compared to the PHP one. It's also possible that title parsing just isn't that much of page parsing run time anymore.

Show thread

*mumbles something about how Rust is faster than PHP*

Very rudimentary benchmark of porting MediaWikiTitleCodec::splitTitleString() (formerly known as secureAndSplit to children all around the world) to Rust:

We've been working on "mwtitle" as a MediaWiki title validation/normalization library for bots and tools. I spent ~2 hours today playing with the ext-php-rs bridge to run the MW test suite with mwtitle and decided to benchmark it just for fun.

tl;dr: Rust is fast and fun! 🚀🚀🚀

Day 6 solution for AoC 

my attempt at simulating the entire thing hit OOMs and despite my tricks to reduce memory usage, got killed by the OOM killer after like 40 minutes.

At which point a friend pointed out that you didn't need to keep track of each simulated fish separately and could group them and store only a count.

Finished in less than a second :v

Show thread

TIL that `a..=b` range syntax in Rust doesn't work if b > a.

I ended up having to write my own wrapper to invert it when that's the case:

Show thread

Trying Advent of Code 2021, we'll see how long I go until I get bored or find them too difficult. has my answers from the first 3 days so far.

My email address has expired and unfortunately I don't intend to renew it in the near future. has my current email addresses and other methods of contact.

I started some notes about what it would take to get rid of this from PHP, code-wise it's literally one line. But of course the real battle is convincing people it's a misfeature that is actively harmful.

Show thread

This week we fixed 3 different '0' is falsey in bugs in


This is a huge deal:

The Open Collective Foundation has just announced: "OCF now offers employment options to initiative workers—with health insurance!"

If your FLOSS project is on OpenCollective, you can hire a maintainer as an employee! With health insurance & 401(k)!

This is such a huge step forward for open source sustainability, in particular for projects with key contributors in the United States. Let's talk about why!

Generational differences:
My mom gets PG&E notifications via a phone call and I get them via text message.

From<T> and Into<T> are my new best friends:

Why require users to specify their request parameters in one specific format when you could just accept every format? \o/

I'm about 70% done rewriting one of my Wikipedia bots into Rust from Python. Reduced the runtime from 12+ hours to under 10 minutes.

I suspect the final runtime will end up being no more than 15-20 minutes.

Yay for fearless concurrency ^.^

All Too Well (10 Minute Version) (Taylor's Version) spoilers 

fuck the patriarchy

Show thread
Show older
Mastodon for Tech Folks

This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!