Cool URL fragments don't change either
I was all set to write an entry about how a limitation of dealingwith site changes (from one domain to another, from HTTP toHTTPS , or just URL restructuring) via HTTPredirects was that URL fragments fell off during the redirectionswhen I decided to actually check the end URLs I was getting anddiscovered that I was wrong. Browsers do preserve URL fragmentsduring redirection (although you may not see this if the URL fragmentis cut off because the full URL is long). What was really going onin
Googlebot is now aggressively crawling syndication feeds
I'm not sure how long this has been going on (I only noticed it recently )but Googlebot, Google's search crawler, is now aggressively crawlingsyndication feeds. By 'aggressively crawling' I mean two things.First, it is fetching the feeds multiple times a day; one of myfeeds was fetched 46 times in one 24-hour period. Second and worse,it's not using conditional GET .
I've written before about why web spiders should not crawlsyndication feeds
Arguments for explicit block delimiters in programming languages
Suppose that you have a language where indentation levels aresignificant; either they explicitly delimit blocks (as in Python)or mismatched indentation is an error. I maintain that this is agood thing in a language in general because it makes humansemantics match computer semantics . One ofthe big questions about such a language is whether it should haveexplicit block delimiters or rely purely on indentation levels.
A lot of people will likely argue for the Python approach of implicitdelimiters, ie that blocks are created and exited by indentation alone
Yet another problem with configuration by running commands
One of the divides in how programs, daemons, and systems getconfigured is between configuration files and what I'll call'configuration by command', where you set up the system by runningcommands and the system persists them behind your back in somemagical or at least internal way. I've written previously about the ways that configuration by command harms manageability but today I stumbled overanother problem with it.
Put simply, configuration by command robs you of things to copy .When you have a system that is
PCI slot based device names are not necessarily stable
One of the ways that Linux tries to get stable device names thesedays is to base them on information about the PCI bus and slot thata particular device is located at. This naming is behind, forexample, hardware-based Ethernet names ( see also )and /dev/disk/by-path/ for SATA and SAS drives. The theory is that since the name describesthe PCI(E) location, as long as you don't physically relocate thecard the name will stay the same.
Saying goodbye to the PHP pokers the easy way
If you have a public web site or a web app, you almost certainlyhave people trying drive-by PHP exploits against you whether or notyour site shows any sign of using PHP. The people (or software) behindthese don't care; they seem to operate by taking one of your URLs andslapping the page name (and sometimes query parameters) of a vulnerablebit of PHP, then seeing if it works. I see requests like:
GET /~cks/space/blog/linux/
The origins of DWiki and its drifting purpose
One of the interesting things about writing Wandering Thoughts has been getting a vivid and personal experience with what happens whensome code you've written gets repurposed for something rather differentthan what it was originally designed for. Because, you see, DWiki (thewiki engine behind the blog) was not originally intended to be a blogengine and what it was originally designed for shaped it in a number ofways that still show today.
(I alluded to this when I talked about about why comments aren'timmediately visible
Nerving myself up to running experimental setups in production
One of the things that I want to do is move towards gathering OSlevel performance metrics for our systems, ideally for basically anyperformance stat that we can collect. All of the IO stats for alldisks? Lots of stats for NFS mounts? CPU and memory utilization?Network link utilization and error counts? Bring them on, because themodern view is that you never know when this stuff will be useful orshow you something interesting.The good news is that this is not a novel idea and there's
The problem with indentation in programming languages
You may have heard that Apple has just released a really importantsecurity update to fix SSL aka TLS certificate verification. Thebest description of the bug I've seen comes from Adam Langley in Apple's SSL/TLS bug . Thecore source for the bug is, extracted from the function:
...if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail;if ((err = SSLHashSHA1.update(&hashCtx, &signedParams
A subtle advantage of generating absolute path URLs during HTML rendering
If you're writing a multi-page web application of some sort, sooneror later you'll want to turn some abstract name for another pageinto the URL for that page, or more exactly into a URL that you canput into a link on the current page. For a non-hypothetical exampleyou might be writing a wiki or a blog engine and linking one entryto another one. When you're doing this, a certain sort of personwill experience a little voice of temptation urging them