Managing Two Network Providers: Using a PePlink Balance 30
Aug/081
At work we’ve been a Verizon customer for phone and network. We use a Cisco 800 Series router which gives us wireless and VPN. It has a horrible Java applet interface which is so bad I can’t recommend that router. In any case, we were saturating our bandwidth through this router, and everyone was being driven crazy by the effect on our network when someone would hog up the traffic when deploying software (mostly big transfers from Subversion using ssh — our Subversion server is on this office LAN managed by the Cisco router).
Now we’re all software developers. We’re a tiny company and don’t have anyone to manage our IT; we do it ourselves, and we have rather a lot of equipment and a simple but non-trivial network. Through the goodwill of friends and former colleagues we’ve gotten some advice, but, really, it’s not what we’re good at.
Recently we decided we wanted to augment our Verizon drop with a 2nd drop from Comcast. Comcast has some good deals providing a decent amount of bandwidth. So we bought the drop.
Now how to integrate this into our existing network? With the minimum amount of screwing around? Basically we wanted to leave the Cisco and its VPN alone. We also wanted the office traffic to go via the Comcast drop whenever possible.
This sounds easy, but it’s not. There are a lot of expensive devices that can help you manage “quality of service,” but, really, we wanted something cheap and easy.
After rather a lot of research we settled on the PePlink Balance 30. [Buy from Amazon]

It’s about the size of a conventional home router. It provides for 3 WAN links. So, typically, you would plug Verizon into one WAN port, Comcast into the second, and perhaps — if you have access to it — some free wireless network into the third. In other words, you want to provide to your office multiple ways to get to the outside world in case something goes down.
In our cast, we plugged the Cisco router into one WAN port, the cable from the Comcast modem into the other.
The next step was some custom routing rules. Basically we said that all traffic for the network and VPN managed by the Cisco should go there; and everything else to Comcast.
So far it seems to work great.
The device provides good stats showing WAN utilization, and we’re getting what we want. Some traceroutes look funny (like they’re going via the VPN), but I hope to have that fixed up pretty soon now.
There’s a review out there from SmallNetBuilder.
Reviews of BeatThat.com
Aug/080
A couple of fresh reviews of DigitalAdvisor’s new product BeatThat.com:
Teaching Ruby and Ruby on Rails again at Harvard
Aug/080
Once again, I’m pleased to be offering a course on Ruby and Ruby on Rails at Harvard: course; course site.
We’ll try to avoid this anti-pattern:
Indispensible Mac App: iCDc
May/080
You enter a CD into iTunes, and it goes off to the Gracenote CDDB to determine the album and song names. But wait, you have to pick from a list of choices! Hope you pick the right one . . . Recently I picked the wrong match. I think I got the English version of the album instead of the American, and the song titles weren’t right. So what to do?
The matches are stored in /Users/jgn/Library/Preferences/CD Info.cidb, but I couldn’t figure out an easy way to edit it. Fortunately, there is a program that lets you edit your CDDB data: iCDc, available here. Whew!
Doubtless there is something you can press when inserting the CD into iTunes that will force a new choice from Gracenote — or perhaps you can do it through “Get Info.” But as usually the documentation is minimalist, and it’s nice to have an editor anyway.
Capistrano logging
May/080
The logging in Capistrano could be so much better. Just for example, when a task is initiated, that log item should really pop out. At present, the log line starts with “executing” for both the indication that a task has been started, and for running a remote command. Because the same word is used, it is hard to see at a glance where you are in a long task. So at present it is:
* executing task reload_apache * executing "sudo /etc/init.d/apache2 reload"
This is lame. Task initiation is important, and should be called out in the first word. Similarly, when a command is run sudo, the fact of “sudo” probably has priority over “executing.” So for my eyes, at least, something like this would be far more communicative:
*** Task: reload_apache * sudo: "/etc/init.d/apache2 reload"
And output and errors might be flagged with two stars.
I bet the changing the logging for the task, at least, would be a quick monkeypatch.
And another thing about the new Apple Wireless Keyboard
May/080
Hmm, it looks like a foreshortened Apple “wired keyboard” — but notice that extra key to the left of the shift control key on the wireless keyboard. That has been tripping me up big time!

Oh, well.
The MacBook Air: After three weeks
May/083
My development has switched to all-Mac-and-Linux 95% of the time, and so it was time to replace my aging ThinkPad with a Mac laptop. I have found that in the last two years, reducing the weight of my shoulder bag by even a pound or two can make my life much more livable, so the Air seemed like a good choice. Naturally I was concerned by the relatively slow speed, lack of connectors, and the RAM limitation . . . but . . . it sure is light!
Here are the pros and cons as I’ve experienced them:
Pro
- Everything that’s good about OS X and the Mac platform generally; good riddance Windows.
- Speed and memory has been good enough for Rails.
Con
- The lack of connectors is a huge deal, especially if you want to use the external superdrive. The Air’s external superdrive cannot be plugged into a hub (even if the hub is powered). Because of this, you cannot run the superdrive and, say, external USB keyboard, mice, etc., or use the Mac USB-to-ethernet connector. So when using the superdrive, you must rely on Bluetooth (for keyboard and mice) and on your wireless network. These are tough requirements, but if everything is working, it could be ok.
- Which leads me to my real gripe. The bluetooth connectivity between the Air and Apple’s new bluetooth keyboard is awful. I am constantly losing connections. This has been reported on all of the Mac boards. Despite a recent firmware upgrade that was supposed to help, the problem is ongoing. Some theorize that the issue is competition between bluetooth and 2.4ghz wireless — I can control that a bit, but I am in an area of Cambridge that is saturated with wireless connectivity at 2.4ghz across all channels. I am constantly using the superdrive to re-burn some old CDs, and I also use a separate keyboard, mouse, and monitor when working at home: So I must have reliable bluetooth. The only thing that seems to work is to completely remove all bluetooth devices, shutdown, start back up, and re-add (i.e., re-pair) the devices. That is very time-consuming. Another interesting tidbit is that the bluetooth system preference will lose the “don’t wake because of bluetooth devices” setting if you remove them all. So have to remember to re-set that. This is all a far cry from bluetooth on the ThinkPad, which in my experience was flawless.
So . . . I love the Air, but I may have to acquire a separate Mac just to rip CDs (so that I can use external devices with USB instead of with bluetooth). Or I suppose another option would be to use a non-Apple external CD drive that can work through a hub.
Amazon EC2 Elastic IP addresses: Watch out
Apr/080
The new Amazon EC2 Elastic IP feature, which provides for a static IP for instances in the EC2 cloud, should resolve a lot of problems which I won’t go into here.
Note, however, that when you associate one of these static IP addresses with a running instance, the old IP goes away. So if you have DNS entries pointing to your servers, you will need to change them at the same time. And I hope that your TTL is low.
It is too bad that Amazon can’t have both IPs associated at least for a little while — like 48 hours so that users with evil caching DNS servers won’t be hosed in the interim.
Fascinating article on Cybersyn in the New York Times
Mar/080
The New York Times ran a fascinating article today on Cybersyn, which was a Chilean attempt to apply the ideas of cybernetics to the monitoring and management of their economy. Here’s a quotation and a couple of pics from the Times and Wikipedia:
A Star Trek-like chair with controls in the armrests was a replica of those in a prototype operations room. Mr. Beer planned for the room to receive computer reports based on data flowing from telex machines connected to factories up and down this 2,700-mile-long country. Managers were to sit in seven of the contoured chairs and make critical decisions about the reports displayed on projection screens.
While the operations room never became fully operational, Cybersyn gained stature within the Allende government for helping to outmaneuver striking workers in October 1972. . . .
He wanted to use the telex communications system — a network of teletypewriters — to gather data from factories on variables like daily output, energy use and labor “in real time,” and then use a computer to filter out the important pieces of economic information the government needed to make decisions. . . .
Cybersyn’s turning point came in October 1972, when a strike by truckers and retailers nearly paralyzed the economy. The interconnected telex machines, exchanging 2,000 messages a day, were a potent instrument, enabling the government to identify and organize alternative transportation resources that kept the economy moving.
The strike ended within a week. While it weakened Mr. Allende’s Popular Unity party, the government survived, and Cybersyn was praised for playing a major role. “From that point on the communications center became part of whatever was happening,” Mr. Espejo said.

ISO 9000
Mar/080
ISO certification is what destroyed the U.S. manufacturing economy. With ISO 9000 there was suddenly a way to claim with some justification that a factory in Malaysia was precisely comparable to an IBM plant on the Hudson. Prior to then it was all based on reputation, not statistics. And now that IBM plant is gone.
(http://www.pbs.org/cringely/pulpit/2008/pulpit_20080321_004574.html)

