What you should do about extra query parameters on your URLs

My entry on how web server laxness created a de facto requirementto accept arbitrary query parameters on your URLs got a number of good comments, so I want to agree with and magnifythe suggestion about what to do about these parameters. First off, you shouldn't reject web page requests with extra query parameters . I also believe that you shouldn't justignore them and serve the regular version of your web page. Instead,as said by several commentators, you should answer with a HTTPredirect to the canonical


Why Fedora version upgrades are complicated and painful for me

It's September and I still haven't upgraded any of my machines toFedora 32 (which came out at the end of April). If I delay too muchlonger, I might run into Fedora 33 coming out and Fedora 31 droppingout of my upgrade path, so I really need to start getting movingon this. But, much like why updating my Fedora kernels is complicated , my Fedora version updates are a drag; complex,time consuming, and periodically painful. So I keep


URL query parameters and how laxness creates de facto requirements on the web

One of the ways that DWiki (the code behind Wandering Thoughts ) is unusual is that it strictly validates the query parametersit receives on URLs, including on HTTP GET requests for ordinarypages. If a HTTP request has unexpected and unsupported queryparameters, such a GET request will normally fail. When I madethis decision it seemed the cautious and conservative approach, but this caution has turned out to be a mistake on the modern web . In practice, all sorts of sites willgenerate versions of your URLs with all sorts


Daniel J. Bernstein's IM2000 email proposal is not a good idea

A long time ago, Daniel J. Bernstein wrote a proposal for a newgeneration of Internet email he called IM2000 , although it never went anywhere.Ever since then, a significant number of people have idealized itas the great white 'if only' hope of email (especially as thesolution to spam), in much the same way that people idealized Sun's NeWS as the great 'if only'alternative to X11. Unfortunately, IM2000 is not actually


Some notes on what the CyberPower UPS 'Powerpanel' software reports to you

For reasons beyond the scope of this entry, I recently bought areasonably nice UPS for home usage. Me being me, I then found aPrometheus metrics exporter for it, cyberpower_exporter (and see also Mike Shoup's blog post about it ), and thentinkered with it. This exporter works by talking to the daemonprovided by CyberPower's Powerpanel software ,instead of talking directly to the UPS, so my first port of callwas to dump the raw information the daemon was providing for myUPS


In practice, cool URLs change (eventually)

The idea that "cool URLs don't change" has been an article of faithfor a very long time .However, at this point we have more than 20 years of experiencewith the web, and anyone who's been around for a significant lengthof time can tell you that in practice, cool URLs change all ofthe time (and I don't mean just minor changes like preferringHTTPS over HTTP). Over a sufficient length of time, internal sitepage layouts change (sometimes because


Why I want something like Procmail with a dedicated mail filtering language

A couple of years ago I wrote about discovering that procmaildevelopment is basically dead and wonderingout loud what I might switch to. In some comments on that entry, Aristotle Pagaltzis suggested thatin an environment (such as MH) with one message per file, well,let me quote:

[...], then you can write yourself one or more programs in yourfavourite language that kick the mail from there to wherever you wantit to end up. The entirety of the job of such code is opening


Even in Go, concurrency is still not easy (with an example)

Go is famous for making concurrency easy, through good languagesupport for goroutines . Exceptwhat Go makes easy is only one level of concurrency, the nuts andbolts level of making your code do things concurrently and communicatingback and forth through channels. Making it do the right thingsconcurrently is still up to you, and unfortunately Go doesn'tcurrently provide a lot of standard library support for correctlyimplemented standard concurrency patterns.

For example, one common need is for a limited amount of concurrency;you want to do several


Why we won't like it if signing email is the solution to various email problems

Yesterday I wrote about my thesis that all forms of signing emailare generally solving the wrong problem and said in passing that if signing email was actually a solution,we wouldn't like it in the long run. Today, let's talk about that.

As I sort of discussed yesterday, the issue with signing email asa solution is that on the Internet, identities normally can't beused to exclude people because people can always get a new one (eg,a new domain and new DKIM keys


All forms of signing email are generally solving the wrong problem (a thesis)

Modern email is full of forms of signed email. Personally signedemail is the old fashioned approach (and wrong), but modern emailon the Internet is laced with things like DKIM , whichhave the sending system sign it to identify at least who sent it.Unfortunately, the more I think about it, the more I feel thatsigned email is generally solving the wrong problem (and if it'ssolving the right one, we won't like that solution in the long run).

A while ago