BT VDSL modem linkjacking HTTP URLs

Yet another reason to install HTTPS Everywhere and NoScript: It looks like our BT Hub 4 is linkjacking all HTTP URLs:
NoScript blocking warning

Turns out they just want to show a useless landing page:

BT landing page

This wouldn’t be so annoying if it didn’t happen on every new IP that connects to the hub. Isn’t the proof in the pudding – if the rest of the web works, why is the landing page necessary?

Advertisements

Delicious data loss

After many years, it looks like Delicious will never have support for excluding tags from a search, so when I saw that they had added a “Remove Tag” functionality I finally decided to get rid of all the “toread” tags from posts already tagged with “read”. This didn’t quite turn out as expected:

From: Victor Engmark
To: feedback@delicious.com
Content-Type: text/plain; charset=UTF-8

Dear Delicious Support,

For ease of searching I decided today to remove the “toread” tag from all bookmarks I have already read – That is, I went to the toread+read tags page <https://www.delicious.com/engmark/toread+read>, selected all, clicked “Remove Tag”, carefully clicked only on “toread”, and clicked Save. This I repeated for each page until there was only a single page left. During this process I discovered several bugs, here listed according to increasing severity:

When selecting a bookmark the links above (except “Rename Tag” since it’s sneaky and doesn’t actually just rename on the selected items) are “activated”. That is, they turn blue. After clicking “Save” the page would refresh, all the checkboxes would still be ticked, but the links would still be gray. Expected behavior: When bookmarks are selected (before or after an action) the links should be colored. In the case of some bookmarks it was not possible to remove the “toread” tag. I repeatedly tried, and every time the same bookmarks showed up on the page after the refresh. Expected behavior: It should be possible to remove tags from any bookmark. After selecting the bookmarks mentioned in point 2 and clicking “Remove Tag”, the “Remove Tags” dialog only displayed a single tag: “toread”. Expected behavior: This should behave like for other bookmarks, that is, show all the tags for all the bookmarks. When trying to edit individial items from the bookmarks mentioned in point 2, the “Edit Link Info” dialog doesn’t display the same tags as the toread+read tags page. For example the bookmark “Ryan let’s assume that you blend fiction and reality only on special occasions” <http://www.qwantz.com/index.php?comic=1992> has the tags “toread”, “read”, “comic” and “funny” according to the toread+read tags page, but only “RyanNorth” in the “Edit Link Info” dialog. Expected behavior: The “Edit Link Info” dialog should display the same title, URL and tags as the bookmarks list.
Somehow, instead of removing the “toread” tag Delicious removed the “read” tag! Expected behavior: Remove the tag I requested to remove, and only that.

I’ve now lost seven years worth of records of what I’ve read online! Please help me fix the state of my bookmarks. In case you can’t obtain a diff between the bookmarks of yesterday and today I can provide you with one for reference (I do daily XML backups in case of just such a situation). This procedure should be nothing more than a reversal of the tag removals done in the last 48 hours or so.

Posted to my blog
<https://github.com/l0b0/paperless/wiki/Delicious-data-loss> for
reference.

Sincerely, a long-time user.

Long story short, I’d misunderstood how the feature works: Instead of removing those tags which you leave in the tag cloud, it removes all tags which you remove from the tag cloud! I had thought it was a “remove these tags” feature, but actually it was a “keep only these tags” feature.

Restoring from the XML files was out of question (they only support HTML import now), and they were unable to provide a reference for what such an HTML file should look like and whether tags would be replaced completely (messing up the changes I did since this started) or just added to the existing ones. I guess a migration to Pinboard is finally in order.

Edit: Here’s how I ended up migrating to Pinboard, fixing the bookmarks in the process:

  1. Export delicious.html and create a backup of the file.
  2. Get the URLs and tags of the bookmarks in the XML file which used to have a “toread” tag but have changed since the fuck-up:
    git diff bookmarks.xml | \
    grep '^-.*[" ]toread[" ]' | \
    grep -Eo 'href="[^"]+".*tag="[^"]+"' | \
    sed -e 's/href="\([^"]\+\)".* tag="\([^"]\+\)"/\1 \2/' > url_tags.txt
  3. Make the URLs and tags sed-compatible:
    sed -i -e 's/[\/&]/\\&/g' url_tags.txt
  4. Replace spaces between tags with commas (otherwise “foo bar” is imported as “foo_bar”):
    while grep -q ' .* ' url_tags.txt
    do
        sed -i -e 's/\( [^ ]*\) /\1,/g' url_tags.txt
    done
  5. Loop over each of the URL tag pairs, and create a sed script from it:
    while IFS=' ' read -r -u 9 url tags
    do
        echo 's/\(HREF="'"$url"'".* TAGS="\)[^"]*"/\1'"$tags"'"/;' >> replace.sed
    done 9< url_tags.txt
  6. Replace the tags:
    sed -i -f replace.sed delicious.html
  7. Verify the difference between the HTML backup and the changed file:
    meld delicious.html{.backup,}&
  8. Import in Pinboard

Usable security tokens

Security tokens are pretty common these days. You know the kind: A credit card-sized piece of plastic with an RFID chip and maybe a magnetic strip to boot. Touch and go! But besides the credit card form factor, are they actually practical? They are brittle, and they can’t be attached to anything without drilling (which would make them even more fragile). Here’s an idea: Get a small RFID chip, and put it into a small piece of ABS plastic with a metallic ring that goes into the middle of the ABS and extrudes just enough to include the whole thing on a key ring (see below). Now if you have an RFID reader somewhere on your desktop, it should be enough to sit close to the desk for it to read the chip. So you won’t end up with a broken card, you won’t have to put your entire wallet (or some other container) in your pocket to protect the card, and you won’t have to leave it on the desk at all.

PS: Is it possible to make stuff like this (with embedded metal, and without destroying the chip) on a 3D printer?

How to teach users the command line

Now that computers are firmly in the hands of casual users, is there some way to teach them how to use the command line without throwing them head first into grep? Of course, anyone with the time and inclination (and someone to contact when they get stuck) can learn to use the shell. Also, of course, there’s an entire spectrum from those who would never touch a mouse to those who would never touch the keyboard if they could avoid it, so there must be room for shifting the bar to entry.

A modest suggestion is to, when possible, show users what is going on behind the scenes to give them an idea of how tools interact and work. Some software like TortoiseSVN, Emacs and Hugin already do this, but those are mostly expert level tools, and I guess rarely used by anyone reluctant to push the mouse into the farther recesses of the desk. Also, they show a ton of output with not much information about what to do to reproduce it. Since the user is not typing the commands herself, she won’t know which line in the output is the command and which are the output without a lot of work (or previous knowledge). So another very useful feature would be to emphasize the commands and tone down the output.

What else could be done?

Re: Let That Be a Lesson To You, Son: Never Upgrade.

Background: Jeff Atwood uses anecdotal evidence to show that Linux audio capabilities suck.

Looks like Linux is moving up in Scott Berkun’s suckiness hierarchy: It’s now good enough for most people for most things, but it still has weak areas (audio, games) which those users find extremely painful.

Reverse anecdotal evidence: After buying my last computer in 2007, I could not get optical surround sound to work in XP (Google, Usenet, and vendor contacted). For the first time I found that Linux (Ubuntu 7.10) had better hardware support, even though the vendor only supported Windows. And there’s proof, too.