Friday, July 31, 2015

Notes on CenturyLink Fiber

tl;dr: I switched from Comcast to CenturyLink fiber in Seattle in July 2015.

What You Get

CenturyLink has to run fiber to your house or apartment; this is literally a thin strand of glass that comes from a utility pole.  It terminates in a rather unsightly black box inside your living quarters.  Your wifi router plugs into the black box via an Ethernet cable.  Eventually you get IPv4 and IPv6 connectivity out the other end.

Once the tech powers up the black box and the CenturyLink-supplied router, he or she asks you to connect through that router and attempt to visit a webpage; you are redirected to a CenturyLink enrollment portal where you're walked through a brief set of questions and invited to read a 26ish-page terms of service.  Do that and confirm that your Internet connection works before trying to get fancy with any of the below steps.

Using Your Own Router

CenturyLink is happy to rent you a wifi router for about $8/mo.  When I signed up for installation, I was not presented with the option of using my own router, so I assumed there was something special about this piece of equipment.  But it turns out that any (any?) router that supports PPPoE and VLAN tagging should work, as others have already figured out.  The Asus RT-AC66U, which I was already using with Comcast, and its successors happen to fit the bill; the steps below may be easier or harder with a different router.

Unfortunately, you need a crucial piece of information from the CenturyLink router before you can substitute your own router: the PPPoE credentials it uses to authenticate itself to CenturyLink.  You can grab the PPPoE credentials from the CenturyLink router's "Quick Setup" page.  Use any of a variety of browser techniques to grab the password from the password field.  Record the PPPoE username and password, and then you can safely turn off your CenturyLink router.  Then connect your own router to the black box, tell it to use a PPPoE WAN connection, and punch in the credentials you wrote down.

The other necessary factor is VLAN tagging.  On your router, tell the WAN port to use VLAN tag 201.  My Asus RT-AC66U router hid the VLAN setting under LAN > IPTV (enter 201 in the "VID" field).  This setting will probably be hidden somewhere equally obscure on your own router.

Once I configured PPPoE and VLAN tagging, I had IPv4 connectivity via my own router.


CenturyLink uses 6rd for IPv6 connectivity, unlike Comcast, which uses dhcpv6-pd.  Whatever.  I entered exactly four settings on my router after finding a CenturyLink help page that showed some settings for the routers they rent you:

  • Connection type: Tunnel 6rd
  • IPv6 prefix: 2602::
  • IPv6 prefix length: 24
  • IPv4 border router:

VoilĂ , IPv6 router advertisements and connectivity on the LAN.


I ordered 40 Mbps down / 5 Mbps up and I appear to be getting exactly those rates (measured with iperf and various speed-test sites).  I care about latency more than throughput; the latency is the same no matter what speed you order from CenturyLink.

From my house in Seattle I'm this far away from things I use frequently (measured with mtr in July 2015):
  • Google: 5.4 ± 0.0 ms via IPv4, 5.7 ± 0.0 ms via IPv6
  • UW CSE: 6.6 ± 0.9 ms via IPv4, 33.0 ± 0.0 ms via IPv6 (bounces through San Diego for some reason)
  • 24.2 ± 0.0 ms via IPv4, 41.2 ± 0.4 ms via IPv6
These IPv4 latencies are about half of what I had with Comcast.


April 4, 2017: Fixed VLAN tag information (must apply to WAN port, not LAN port).

Monday, July 16, 2012

Earthquake map in R

earthquake map
I took a local workshop on R and finally gained some comfort with it. Here's how I plotted the last week's worth of earthquakes on a map:

Friday, January 27, 2012

svneditor: Subversion diffs when committing

Inspired by hgeditor, I just created a shell script svneditor that shows me a diff when I'm writing a commit message for a Subversion repository.  It works with both Vim and Emacs.

To use it, clone svneditor from GitHub, set the $SVN_EDITOR environment variable to the path to svneditor, and commit away.

Obligatory screenshots:

Wednesday, August 17, 2011

How to ask questions at a conference

There's plenty of sound advice on the web on the subject of giving good research presentations.  This post is about how to ask good questions when you're on the receiving end of a presentation.  These suggestions are based on my admiring observations of exemplary behavior at a variety of good computer-science conferences such as Oakland, ASPLOS, and SIGCOMM.

Before you even start: don't ask a question just to advance your own agenda or to hear yourself speak.  Put yourself in the speaker's shoes.  Don't steal the spotlight.

Use the microphone.  Most conferences set up microphones for audience feedback and session recording; not every session chair reminds you to use them.  Use them if they're available, or else risk annoying literally everyone else in the room.

State your name and affiliation clearly before asking your question.  Rule of thumb: a native speaker of the conference's language who should be able to write down your name—at least phonetically—right after you say it.  Many conferences employ an army of bushy-tailed volunteer scribes who must faithfully summarize questions and answers after each talk.  Make it easy for them to attribute your brilliance to you.

Offer a compliment.
  Even if you hated the work or the talk, remember that the program committee found enough merit in the work to accept it, and you've implicitly put your faith in the PC by choosing to attend.  Even a quick phatic "Nice work.  [Remainder of question]" suffices to establish a professional tone and put the speaker at ease.

Be ready to take it offline.  It's a matter of social courtesy to leave time for other questioners.  Don't ask a followup question unless you're sure the answer will be quick (e.g., yes or no).  As a courtesy to the speaker, if you've asked a difficult question that requires a long answer or leaves the speaker twisting in the wind, feel free to short-circuit the answer and suggest an offline discussion.

Say thanks.  Again, put yourself in the speaker's sweaty shoes.  Answering questions after a talk is hard.

Disclaimer: I have no idea whether other fields have different customs or social norms.  I've heard that academic child psychologists, for example, are required to use hand puppets.

Monday, August 1, 2011

More OmniGraffle scripts for computer science

More OmniGraffle scripts for pretty computer science diagrams!  Dan added sine wave and sinc pulse scripts to the og-cs project.

Thursday, July 28, 2011

How to draw radio waves in OmniGraffle

SIGCOMM star Daniel Halperin and I just started a GitHub project to collect OmniGraffle tools for computer science.  First up: a script that draws pretty radio waves.

The README file explains installation and usage.