tag:blogger.com,1999:blog-78887765436928656162024-02-19T23:26:27.261-05:00b.tra.in\begin{fable}Ben Ransfordhttp://www.blogger.com/profile/00120982349595965249noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-7888776543692865616.post-40381978279143423802015-07-31T17:59:00.000-04:002017-04-04T12:58:23.878-04:00Notes on CenturyLink Fiber<blockquote class="twitter-tweet" lang="en">
<div dir="ltr" lang="en">
*guardedly* excited to switch from <a href="https://twitter.com/comcastcares">@comcastcares</a> to <a href="https://twitter.com/CenturyLink">@centurylink</a> in <a href="https://twitter.com/hashtag/seattle?src=hash">#seattle</a>... $30/mo versus $53/mo for 40 Mbps is a no-brainer!</div>
— Ben Ransford (@br_) <a href="https://twitter.com/br_/status/616335072241717248">July 1, 2015</a></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>
<br />
<div>
tl;dr: I switched from Comcast to <a href="http://www.centurylink.net/fiber/" target="_blank">CenturyLink fiber</a> in Seattle in July 2015.<br />
<br />
<h4>
What You Get</h4>
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.<br />
<br />
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.</div>
<div>
<h4>
Using Your Own Router</h4>
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 <a href="http://www.praus.net/2014/05/using-your-own-router-with.html" target="_blank">already figured out</a>. 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.<br />
<br />
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 <a href="http://lifehacker.com/5946529/easily-reveal-hidden-passwords-in-any-browser" target="_blank">techniques</a> 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.<br />
<br /></div>
<div>
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.<br />
<br />
Once I configured PPPoE and VLAN tagging, I had IPv4 connectivity via my own router.</div>
<h4>
IPv6</h4>
<div>
CenturyLink uses <a href="https://en.wikipedia.org/wiki/IPv6_rapid_deployment" target="_blank">6rd</a> for IPv6 connectivity, unlike Comcast, which uses dhcpv6-pd. Whatever. I entered exactly four settings on my router after finding a <a href="http://internethelp.centurylink.com/internethelp/modem-c1000a-ipv6rd.html" target="_blank">CenturyLink help page</a> that showed some settings for the routers they rent you:<br />
<br />
<ul>
<li>Connection type: Tunnel 6rd</li>
<li>IPv6 prefix: 2602::</li>
<li>IPv6 prefix length: 24</li>
<li>IPv4 border router: 205.171.2.64</li>
</ul>
<br />
Voilà, IPv6 router advertisements and connectivity on the LAN.<br />
<h4>
Performance</h4>
</div>
<div>
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.</div>
<div>
<br /></div>
<div>
From my house in Seattle I'm this far away from things I use frequently (measured with <a href="https://www.bitwizard.nl/mtr/" target="_blank">mtr</a> in July 2015):</div>
<div>
<ul>
<li>Google: 5.4 ± 0.0 ms via IPv4, 5.7 ± 0.0 ms via IPv6</li>
<li><a href="http://www.cs.washington.edu/" target="_blank">UW CSE</a>: 6.6 ± 0.9 ms via IPv4, 33.0 ± 0.0 ms via IPv6 (bounces through San Diego for some reason)</li>
<li><a href="http://ransford.org/">ransford.org</a>: 24.2 ± 0.0 ms via IPv4, 41.2 ± 0.4 ms via IPv6</li>
</ul>
<div>
These IPv4 latencies are about half of what I had with Comcast.<br />
<h4>
Changelog</h4>
April 4, 2017: Fixed VLAN tag information (must apply to WAN port, not LAN port).</div>
</div>
Ben Ransfordhttp://www.blogger.com/profile/00120982349595965249noreply@blogger.com0tag:blogger.com,1999:blog-7888776543692865616.post-79794745257105994162012-07-16T08:30:00.003-04:002012-07-16T08:30:49.507-04:00Earthquake map in R<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLpzm0kAQth3B8iNnxlSurWEbrYcDi1N5lQI0i2n0VTMAnV1P_Fi8_k7MZHjZvKOs90XniADFqM9-0kn6DndBc4sKYTu_KOSFu4FW3gdn9iAWDWad1AAhPg2CzNrccLQnVpbQEaPGb-WE/s1600/plot_zoom_png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="earthquake map" border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLpzm0kAQth3B8iNnxlSurWEbrYcDi1N5lQI0i2n0VTMAnV1P_Fi8_k7MZHjZvKOs90XniADFqM9-0kn6DndBc4sKYTu_KOSFu4FW3gdn9iAWDWad1AAhPg2CzNrccLQnVpbQEaPGb-WE/s400/plot_zoom_png" title="earthquake map" width="400" /></a></div>
I took a <a href="http://www.umass.edu/issr/services/workshops/RVisuals_120600.php">local workshop on R</a> and finally gained some comfort with it. Here's how I plotted the last week's worth of earthquakes on a map:<br />
<br />
<script src="https://gist.github.com/3122423.js">
</script>Ben Ransfordhttp://www.blogger.com/profile/00120982349595965249noreply@blogger.com0tag:blogger.com,1999:blog-7888776543692865616.post-6016161323544159502012-01-27T12:06:00.002-05:002012-01-27T12:07:07.703-05:00svneditor: Subversion diffs when committingInspired by <a href="http://mercurial.selenic.com/wiki/hgeditor" target="_blank">hgeditor</a>, I just created a shell script <i><a href="https://github.com/ransford/svneditor" target="_blank">svneditor</a></i> that shows me a diff when I'm writing a commit message for a Subversion repository. It works with both Vim and Emacs.<br />
<br />
To use it, <a href="https://github.com/ransford/svneditor" target="_blank">clone svneditor from GitHub</a>, set the $SVN_EDITOR environment variable to the path to svneditor, and commit away.<br />
<br />
Obligatory screenshots:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfyAsHaNkh75oCDm5ZcMO3Edqd6kf1waWrVw3dV5T983ENrz9IRCtm1XC6P0XpNdxlrowhiQZSutzXEuAzhDlIZWpHFOq2cXASWNY821zEzvU4W6tgkZH1UKpRAFbojXMGtJ38k2F5I1g/s1600/Screen+Shot+2012-01-27+at+12.00.31+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfyAsHaNkh75oCDm5ZcMO3Edqd6kf1waWrVw3dV5T983ENrz9IRCtm1XC6P0XpNdxlrowhiQZSutzXEuAzhDlIZWpHFOq2cXASWNY821zEzvU4W6tgkZH1UKpRAFbojXMGtJ38k2F5I1g/s400/Screen+Shot+2012-01-27+at+12.00.31+PM.png" width="392" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqOGpGfWDk1ksLwJ4uoUv1rlf_iZnGZQcntCFyRjPuTUfIAXV6x19477aNwwSAM7UNqBn_zbHnRva5nYBVEzLSGs53qnURWaBwUiLKipITB6P0FKwhVgPa-0QomKJBd4S5idNCX5uum1g/s1600/Screen+Shot+2012-01-27+at+12.05.59+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqOGpGfWDk1ksLwJ4uoUv1rlf_iZnGZQcntCFyRjPuTUfIAXV6x19477aNwwSAM7UNqBn_zbHnRva5nYBVEzLSGs53qnURWaBwUiLKipITB6P0FKwhVgPa-0QomKJBd4S5idNCX5uum1g/s400/Screen+Shot+2012-01-27+at+12.05.59+PM.png" width="392" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />Ben Ransfordhttp://www.blogger.com/profile/00120982349595965249noreply@blogger.com0tag:blogger.com,1999:blog-7888776543692865616.post-66076815022020637122011-08-17T18:05:00.004-04:002011-08-17T18:07:54.980-04:00How to ask questions at a conferenceThere'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 <a href="http://www.ieee-security.org/">Oakland</a>, <a href="http://www.sigplan.org/asplos.htm">ASPLOS</a>, and <a href="http://www.sigcomm.org/events/sigcomm-conference">SIGCOMM</a>.<br />
<b><br /></b>
<b>Before you even start: don't ask a question just to advance your own agenda</b> or to hear yourself speak. Put yourself in the speaker's shoes. Don't steal the spotlight.<br />
<b><br /></b>
<b>Use the microphone.</b> 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.<br />
<b><br /></b>
<b>State your name and affiliation <i>clearly</i> before asking your question.</b> 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.<br />
<b><br class="Apple-interchange-newline" />Offer a compliment.</b> 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. <i>[Remainder of question]</i>" suffices to establish a professional tone and put the speaker at ease.<br />
<br />
<b>Be ready to take it offline.</b> 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.<br />
<br />
<b>Say thanks.</b> Again, put yourself in the speaker's sweaty shoes. Answering questions after a talk is hard.<br />
<br />
<i>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.</i>Anonymousnoreply@blogger.com0tag:blogger.com,1999:blog-7888776543692865616.post-14687088748984664122011-08-01T11:07:00.001-04:002011-08-01T11:07:55.194-04:00More OmniGraffle scripts for computer scienceMore OmniGraffle scripts for pretty computer science diagrams! <a href="http://www.cs.washington.edu/homes/dhalperi/">Dan</a> added sine wave and sinc pulse scripts to the <a href="https://github.com/ransford/og-cs">og-cs</a> project.<br />
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-vI2xTvcUM9E/TjbBQ8no-RI/AAAAAAAAAvo/fXlYU3BnV2g/s1600/Screen+shot+2011-08-01+at+11.07.14+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" src="http://1.bp.blogspot.com/-vI2xTvcUM9E/TjbBQ8no-RI/AAAAAAAAAvo/fXlYU3BnV2g/s320/Screen+shot+2011-08-01+at+11.07.14+AM.png" width="320" /></a></div>
</div>
Anonymousnoreply@blogger.com0tag:blogger.com,1999:blog-7888776543692865616.post-60813370884759027122011-07-28T14:33:00.003-04:002011-07-29T12:39:45.959-04:00How to draw radio waves in OmniGraffleSIGCOMM star <a href="http://www.cs.washington.edu/homes/dhalperi/">Daniel Halperin</a> and I just started a <a href="https://github.com/ransford/og-cs">GitHub project</a> to collect <a href="http://www.omnigroup.com/products/omnigraffle">OmniGraffle</a> tools for computer science. First up: a script that draws pretty radio waves.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-6ZnH23XvtoM/TjLiMJ_M1uI/AAAAAAAAAvQ/ZcYgo4WJgng/s1600/Screen+shot+2011-07-29+at+12.38.53+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://3.bp.blogspot.com/-6ZnH23XvtoM/TjLiMJ_M1uI/AAAAAAAAAvQ/ZcYgo4WJgng/s320/Screen+shot+2011-07-29+at+12.38.53+PM.png" width="261" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: -webkit-auto;">
The <a href="https://github.com/ransford/og-cs/blob/master/README.md">README</a> file explains installation and usage.</div>
Anonymousnoreply@blogger.com0