The Origins of the HTML blink Tag

Lou Montulli in an old (but it seems to be impossible to find out how old) post on what appears to be a kind of personal website:

At some point in the evening I mentioned that it was sad that Lynx was not going to be able to display many of the HTML extensions that we were proposing, I also pointed out that the only text style that Lynx could exploit given its environment was blinking text. We had a pretty good laugh at the thought of blinking text, and talked about blinking this and that and how absurd the whole thing would be. The evening progressed pretty normally from there, with a fair amount more drinking and me meeting the girl who would later become my first wife.

  1. Shocker.
  2. It seems pretty sad that someone so involved with developing the web as we know it has this for a website.

Modern Data Storage

Since earlier this year, I’ve been making a focused effort to ensure that my and my family’s important data is safe. It’s the closest I ever get to making a New Year’s resolution[1]. When I picked up my 2008 MacPro, a couple years ago, I built my own Fusion Drive, but also threw in a second, larger spinning disk drive for internal Time Machine backups.

Obviously, a single copy is not a backup, and for years I have kept all of my documents in Dropbox. That’s a second copy of most stuff. I signed up for BackBlaze earlier this year as well. That captures everything Dropbox does, plus the few things on my MacPro’s hard drive[2], that aren’t in Dropbox.

On-Site Improvements

I recently added a Synology NAS to the mix. On-site, large storage (with multi-drive redundancy), including multiple user accounts, various web services, and slew of other features made it very appealing. I picked the DS415play, because of the hardware video transcoder, and hot-swappable drives[3].

The Synology also allows each user account to sync their Dropbox (among other cloud storage providers) to a folder in their user home directory, it seemed like a nice way to have a second on-site copy of all of my and Lindsay’s docs.

In addition, the PhotoStation feature will help me solve the issue I’ve been struggling with: how do I make sure that Lindsay and I both have access to our family photos, consistently, effortlessly, and without relying on an intermediary cloud service. Neither of us are interested in uploading all of our photos to Facebook or Flickr just to share them. It also takes thought, effort, and coordination on our parts to get photos our of our Photo Streams give them to one another. I want to minimize that, while ensuring that these photos are well backed up.

Unfortunately, there’s no package to backup my Synology to BackBlaze, and Marco had an article that highlighted his issues trying to make that work, and he wound up settling on Crash Plan. I’ll likely do the same.

Expect posts in the coming weeks about how I’m messing with this stuff. I’ve found it to be a lot of fun, already, and I’m pretty impressed with the Synology. It’s a little fiddly for most people, but if you’re inclined to be a nerd - especially a Unix-y nerd - it’ll be right up your alley.


  1. I’m a big fan of the idea that if something is important to you, you should be doing it already.  ↩

  2. You might have noticed that I’m pretty focused on backing up my MacPro, and I’m much less worried about my rMBP. There are three reasons for this: first, My MacPro has all of my family photos in Aperture libraries that are too big to go into Dropbox; second, everything on the rMBP is in Dropbox, thanks to Dropbox for Business’ ability to sign the app into a work account, and a personal account. I symlinked ~/Documents/ to ~/Dropbox (Under Armour)/Documents/, but I stil have access to my personal dropbox at ~/Dropbox (Personal)/. The only things that aren’t in there are my Downloads folder (which could be easily, and arguably should be), and my ~/Sites/ which I really only use for Cheaters and as a repository for various software and configs routers, switches, WAN Optimization devices, and can be discarded at will.  ↩

  3. Synology’s feature matrix is a bit of a mess, but eventually I decided that hot-swappable drives was a must, which took me up to the DS415, and adding the transcoder was an additional $60, so that made the cut, but each person’s needs are going to be a little different.  ↩

Unblock-Us and Netflix Update

Nick wrote in with a good note regarding my Unblock-Us + BIND setup:

I noticed after setting up the netflix.com zone that unblock.us resolved most of the Netflix addresses to a CNAME, e.g.:

 secure.netflix.com.   86400   IN  CNAME   secure-1848156627.us-west-9.elb.amazonaws.com.

My ISP’s DNS server did not know about the address secure-1848156627.us-west-9.elb.amazonaws.com, but the unblock.us DNS server resolved it successfully. So I just added another zone for amazonaws.com, and forwarded those requests to unblock.us. That seems to have resolved it - Netflix now works. Not ideal, since the rule is a bit general, but I’m happy to have it working.

Good investigation, and little things like this may resolve some of the issues I was seeing with this setup, last year. I don't have the patience to keep up with it, but I'm certain some of you are more patient people than I am.

Caught Like Insects in a Web

Robert McGinley Myers:

I’m reminded of a recent Radiolab episode about Ötzi, the 5000 year old Iceman discovered in the Alps in 1991. For more than two decades, Archaeologists have poured over the details of his clothing, his possessions, his tattoos, and the arrowhead lodged in his back, evidence he was murdered. From the contents of his stomach, they’ve even determined what he ate for his final meal.

I wonder if there will someday be archaeologists who sift not through our stomachs but our hard drives, tracing out the many digital trails we’ve left in the web, trying to determine not what we were eating, but what we were thinking. Will their findings be accurate?

Fixing Forza 5

Dan Greenwalt, Creative Director on Forza Motorsport 5:

Well, it's hard to say with the XP boost, because that was an experiment just seeing whether people are interested are not. It's not meant to be something that you're meant to do. Right now we're looking at whether people are using it or not. If they're not using it, we'll remove it, if they are using it we won't remove it. The work's already done to put it in, and we're experimenting - we didn't expect people were going to take it as a statement. That's something... I understand how people took it. Most of us were just surprised that people were up in arms. I'm not blaming people, and I want to be clear on that. I'm just saying that wasn't our intention going in, and so it was surprising to us.

It's interesting, to me, to read this article. By and large, I see FM5 as a huge success and a blast to play. I understand the design decisions Turn 10 has made, and I think it works. I've used to XP Boost, myself, as a quick way to gain levels. I understand that adding a way to use real-world currency to purchase cars makes the game more fun to people who don't want to spend hours and hours grinding out wins to earn enough credits for one car.

Maybe it's a function of growing up. I don't have the time to invest in games that I had ten or fifteen years ago, and when I do play games, I really want to get the most out of my time, so I see the value in how Turn 10 designed the systems. I'm certainly not a "hardcore" gamer, so I might not be in the demographic that feels hurt by this.

Obviously, I'm a fan of the game. There's a lot to love. But, maybe nothing more than the ablity Turn 10 has to iterate and experiment with a game that's in production. It's wonderful.

Snubbed by Google Fiber, Mad at Comcast, Baltimore seeks its Own Fiber

Jon Brodkin for Ars Technica:

Baltimore's other problem is that most of its residents are locked into Comcast. City CIO Chris Tonjes, who came to Baltimore from Washington, DC a year ago, said, "I’m paying more here for lesser service." That was a reference to Comcast, which signed a contract "in 2004 with an expiration date of Dec. 31, 2016, that effectively makes the company the exclusive cable television provider in the city…

The lock Comcast has on this city has turned my stomach since I first heard talk of it back in 2003. It's awful. Expensive, slow, unreliable service, and crap customer service.

Not getting Google Fiber was a real shame, and Verizon wasn't interested in bringing their FiOS infrastructure into Baltimore City if they couldn't bundle TV service with it, which they can't thanks to Baltimore's moronic franchise agreement. Hope we're able to find something.

The Sad State of MLB's Blackout Policy

Thus, as long as I am standing in Carlisle, PA, I can’t watch Phillies broadcasts. However, if I go a half hour to the west in Chambersburg, PA, Phillies games are not shown on television, but also are not blacked out in the packages. If I go a half hour to the east in Harrisburg, PA, Phillies games are blacked out in the packages, but shown on local television. Therefore, this tiny strip of land in Central PA is the only spot in the entire country that one can not legally watch Phillies games. It is purgatory for a Phillies fan.

It's completely ridiculous that these restrictions are in place. If the MLB was trying to proctect the local affiliates, they would show the local affiliate stream with the ads intact, and give revenue back to the affiliates. The current state just hurts customers.

If only there was some way to get around MLB's ridiculous blackout policy.

The Bitch is Back: Fever Bitch

I’m back on Fever. Years ago, I installed Shaun Inman’s RSS aggregator and reader because I was looking for a way to deal with my sprawling RSS list. Fever’s novel approach promised to show me the most interesting stuff by letting me see the stuff that was being most talked about by people whose opinions mattered to me. I liked the interface, but when the iPad came out, I wanted something that felt more natual on the iPad. As soon as Reeder came out for iOS, I jumped ship to the Google Reader + Reeder bandwagon.

Fever has gotten so much better than when I last looked at it. Its iPad view is vastly more usable than I remember, and the ability to do feed refreshes through a crontab entry on your server is a pretty solid solution. Of course you still have the option to also refresh your feeds when you load the Fever page, so it feels like your feeds are always up-to-date.

It’s also a lot more clear, now, how to use Sparks. I spent the last few years culling my RSS subscriptions. I eliminated nearly every high-volume site, and kept only a handful of feeds from people whose every word I wanted to read. I’m now going back and re-subscribing to a handful of high-volume sites, specifically to use them as Sparks[1].

I’ll probably have more to say about it after I’ve gotten a few days to use it again. But, I’m really excited about it at the moment.


  1. This is definitely going to be a balance that will take a while to get right. I’ve noticed that adding the RSS feed from Pinboard’s Popular Page can create a lot of duplicate entries in my “Hot” view. I’ve done zero research on this, though.  ↩

Selective use of Unblock-Us.com with my Very Own DNS Server

I’m using a service called Unblock-Us to specific domains for me. The service is really excellent; a DNS-based service that (I assume) works by accepting DNS requests on their service, they proxying the request and all responses through their network. I say “I assume” because when I emailed Unblock-Us for confirmation, they wouldn’t confirm or deny my assumptions. I guess they didn’t want to give up the recipe to their secret sauce. Can’t blame them.

Now, while Unblock-Us is DNS-based, I’m not too cool with the idea of sending all of my DNS requests across the internet. I cooked up a little modification to my caching DNS server that sends the domains I specify to Unblock-Us, forwarding other requests to public DNS servers the first time, then just serving them up locally. Here’s how I did that.

  1. First things first, I signed up for Unblock-Us[1], and I activated it.

  2. I created a fresh SD card for my Raspberry Pi. You could run this on any Mac or pretty much any Linux distro. I’m sure you could make it work on Windows, though I have no idea how. There are plenty of reasons to use something more powerful than a Raspberry Pi, but I don’t care about them for the time being. The Pi is fine for me.

  3. I got the Raspberry Pi online and gave it a static IP on my network.

  4. Installed BIND 9, a great and really widely-used DNS server.
    sudo apt-get install bind9 on Debian (or Raspbian or Ubuntu) systems.

  5. Modified my configuration files, by adding the following lines to the listed files:

    1. /etc/bind/named.conf.options
      This specifies the DNS servers that my BIND server will forward requests to when it doesn’t already know how to handle them. It’ll take all answers from these guys and cache them until the TTL expires, so it can handle future requests without going out to the internet.

       forwarders {
              4.2.2.2;
              8.8.8.8;
        };
      
    2. /etc/bind/named.conf.local
      This defines the zones for specific domains that will just be forwarded to Unblock-Us’s DNS servers.

      ######
       # Conditional Forwarding Zones: These zones forward their DNS requests as specified
       ######
      
       Zone "unblock-us.com" { type forward; forward only; forwarders { 208.122.23.22; 208.122.23.23; 184.106.242.193; };};
       Zone "domain1.com" { type forward; forward only; forwarders { 208.122.23.22; 208.122.23.23; 184.106.242.193; };}; 
       Zone "domain2.com" { type forward; forward only; forwarders { 208.122.23.22; 208.122.23.23; 184.106.242.193; };};
       ⋯
       Zone "domainN.com" { type forward; forward only; forwarders { 208.122.23.22; 208.122.23.23; 184.106.242.193; };};
      

      The first line, above, sends all requests for unblock-us.com to the Unblock-Us DNS servers (primary, secondary, and tertiary in order). The other lines, I populate with any other domains I’d like to send to Unblock-Us, just by replacing “domain1.com”, “domain2.com” … “domainN.com”. For example, if I wanted to send DNS requests for Google, Netflix, and Apple to Unblock-Us, my file would contain the following lines:

      ######
       # Conditional Forwarding Zones: These zones forward their DNS requests as specified
       ######
      
       Zone "unblock-us.com" { type forward; forward only; forwarders { 208.122.23.22; 208.122.23.23; 184.106.242.193; };};
       Zone "google.com" { type forward; forward only; forwarders { 208.122.23.22; 208.122.23.23; 184.106.242.193; };}; 
       Zone "netflix.com" { type forward; forward only; forwarders { 208.122.23.22; 208.122.23.23; 184.106.242.193; };};
       Zone "apple.com" { type forward; forward only; forwarders { 208.122.23.22; 208.122.23.23; 184.106.242.193; };};
      

      It’s worth noting that Unblock-Us doesn’t support Google or Apple, so while they will properly handle the DNS request, they will not provide any additional benefit. I was just providing them as a configuration example. Netflix is a supported site, and a full list of supported sites can be found here.

  6. Finally, I updated DHCP settings on my router[2] to point to my BIND server as the primary DNS server, and public DNS[3] as the secondary DNS server. As my devices DHCP leases came to expire, they’d check in with the router, and the router would hand them a new lease with the updated DNS settings.

I’m sticking this here because I thought some of you might find it helpful. This isn’t a solution for those who are less than technically inclined. To be honest, I don’t know enough about BIND to really troubleshoot it, but there’s tons of helpful documentation online. If I learn anything significant, though, I’ll post more about it.

Update August 13, 2014: I've been meaning to update this post for a while. Toward the end of last baseball season, this configuration stopped working. I reached out to Unblock Us about it, and they weren't able to give me much direction, except that the domains that MLB.tv, etc that need to be redirected to Unblock Us change frequently. They'd only support a configuration where all DNS traffic was hitting their DNS servers. So, I reverted to using Unblock-Us DNS on my Airport Extreme, and being done with it.

I suppose it would probably be possible to sniff the outbound DNS request being made by your computer when accessing the services, and redirecting those domains, but my fear is that it will be tedious to maintain as content providers switch CDNs, etc.

Update October 24, 2014: An interesting comment from Nick shed a little more light on capturing Netflix traffic. Worth reading if this setup is still something you'd like to do. Please do read.


  1. An affiliate link. If you sign up with this, I’ll get a little kickback. If you don’t want to use my affiliate link, here’s a non-affiliate link.  ↩

  2. Or DHCP server, if you run a seperate DHCP server. I’m running it all from my AirPort Extreme, though.  ↩

  3. I’m using 4.2.2.2, just like the forwarder on my BIND server.  ↩

Moving from Yojimbo to Evernote

I made the decision a couple days ago to move from Yojimbo to Evernote. I’ve been a pretty big user of Yojimbo since the end of 2007, and I have just shy of 500 items in my library. I really haven’t been looking forward to doing this[1].

Last night, I realized that left to my own devices, I’d put this move off forever. My entrenched usage was going to prevent me from ever actually switching. I’d become very comfortable with my everything bucket. The only way to handle this was like a Band-Aid; do it quick and get it over with in one motion.

Unfortunately, I’ve never been good at ripping Band-Aids off, and I treated the move much the same: a painful series of small (and often repeated) motions that only served to increase prolong the discomfort. If you’re thinking about doing this, learn from my mistakes.

Making the Move

Here’s what you’ll need to do to make the move:

  1. Move your Encrypted notes. I moved mine to Secure Notes in 1Password.
  2. Delete your Encrypted notes from Yojimbo.
  3. Buy at least a month of Evernote Premium[2]. The last thing you want is to hit that data transfer limit mid-transfer[3].
  4. After you purchase the upgrade, quit Evernote, then launch it again. Apparently Evernote only pulls your account status on launch.
  5. Optionally, move your serial numbers. Again, I moved to 1Password.
  6. Run this AppleScript.

The script worked great for me, once I made pretty much every mistake I listed above. As always, this is what worked for me, but your experience might be different. I hope that nothing goes wrong for you while making the move, but if it does, I at least hope that different things go wrong.


  1. Partially because I just enjoy Yojimbo. But the lack of cloud sync, and the sporadic release cycle really made me think that Yojimbo just wasn’t getting the love.  ↩

  2. If you have a really big library (more than a gig), you’ll want to break the transfer up into chunks, and spread it over several months. Which sucks. I don’t know of a way around this. Maybe try contacting Evernote support prior to moving.  ↩

  3. For every item you add once you’ve crossed that data transfer threshold, Evernote throws a modal alert. When you click “Ok” on the alert, it opens a webpage trying to sell you Evernote Premium. I had about 120 modal alerts to deal with. Just buy it up front.  ↩

Build and Analyze #59: Premium Products

Marco and Dan spent a good long time talking about blog comments on this week's Build and Analyze (starting at 64:50, since I don't know of a way to deep link). Marco summarizes this way:

I think comments solve a problem that a lot of people don't have anymore, in a way that encourages a lot of bad behavior. And we have much better solutions to these problems, now, that have far fewer downsides. And comments are these relic of the past…

I'd add that the past that Marco was talking about was back when coming up with a blog was much harder. It required having a host and installing or building a CMS, maintaining it, and adding content. Comments back then were the only way to get validation and feedback on your writing. Now that anyone can have a blog in just a few minutes of typing with tumblr or Squarespace or any of dozens of options. By doing this, you have an immediate commenting system for literally anything on the Internet.