I’ve used Dyn, Inc.‘s free dynamic service for many years to maintain a DNS entry for my home internet connection. Their free account allows you to create one or two dynamic DNS entries underneath those domains. They provide software that updates your dynamic DNS record automatically when your IP address changes, usually because your ISP changes it.
In the past, free DNS entries have remained active as long as they were updated at least once every 30 days. The software they provide is configured to send an update every 25 days even if the IP address hasn’t changed, so in the past, as long as you installed and used their software to keep your DNS record up-to-date, you were golden.
Alas, Dyn recently decided to change the rules in a transparent attempt to make more of their free users pay for service they frankly don’t need. Now, using their software to update your dynamic DNS record automatically at least once every 30 days is no longer sufficient; now, you also need to log into their web site at least once every 30 days or your DNS records go away. They’ve claimed that this is to avoid “dormant” accounts, but that’s just stupid. If my account were dormant, then I wouldn’t have software updating its record automatically.
Here are the appalling facts in a nutshell (the full story is here)…
A woman buys a product on eBay from “Med Express” of Medina, Ohio. The product arrives postage due. She posts negative feedback about Med Express because of the postage due. Med Express sues her for defamation. When contacted about the lawsuit, Med Express explicitly concedes that the suit has no legal merit and their goal is to bully the customer into taking down the negative feedback, because Ohio has no anti-SLAPP statute and it’ll be too expensive for her to fight the lawsuit in Ohio.
If you are a lawyer with bar privileges in Medina, Ohio, or you know someone who is a lawyer with bar privileges in Medina, Ohio, and you or the person you know is willing to donate some pro bono time to give Med Express the legal ass-kicking they so roundly deserve, please get in touch with Ken White at Popehat (his take on this story is here).
I recently bought a Bluetooth 4.0 USB adapter from BlueRigger, because I wanted to use a wireless headset on my desktop computer at home, and it doesn’t have Bluetooth built in. It didn’t quite work… I was able to listen to music just fine on my headset, but when I tried to switch it into telephony mode (i.e., activate the microphone), it stopped working.
I emailed BlueRigger about the problem. They worked with me aggressively to find a solution to the problem. Eventually, they concluded that the Bluetooth 4.0 adapter, which has a relatively new chipset in it, is incompatible with Linux, but an older version of the same productis fully Linux-compatible. So they sent me one for free, and indeed it fixed the problem.
I heartily recommend Colonial Shoe Repair in downtown Boston, MA. They took my wife’s pair of leather boots which were scuffed and salt-encrusted and had a broken zipper, and in a week replaced the zipper perfectly and cleaned, reconditioned, and waterproofed the boots to make them look almost like new.
In my meeting today with the MBTA about the air quality inside T buses, I suggested that the fact that we sometimes see exhaust smoke coming from underneath the buses, despite the fact that the buses’ exhaust pipes are on top of the buses, might indicate a broken exhaust system which might explain how exhaust fumes are getting into bus passenger compartments. As evidence of this, I pointed to an article by Doug Tillberg on TransitBoston.com.
In response, the T employees at the meeting explained to me that it’s actually normal for exhaust smoke to come from underneath the buses, because there are actually two engines in the back of the bus that burn diesel fuel, one of which exhausts out the pipe at the top of the bus, and the other out from underneath.
Today, I met with the MBTA to discuss my concerns about poor indoor air quality (IAQ) inside some T buses. I am extremely grateful to Michael Buckley, Sen. William Brownsberger’s Legislative Counsel and Policy Advisor, for arranging the meeting and attending with me.
The following T employees were present: Jeffrey Gonneville, Chief Mechanical Officer; Dave Carney, Director of Bus Operations; Erik Scheier, Project Director; and two other people whose names I’m sorry to say I didn’t write down and can’t recall. (If they read this, I hope they will forgive me. If I am going to keep doing this kind of thing, I really need to get better at remembering people’s names, which I’m really awful at.)
I learned several things at the meeting, and I obtained commitments from Jeffrey Gonneville to take concrete steps to look into my concerns. I wish I’d learned more, and I wish the T had committed to do more, but progress has been made.
Last month, I sent the MBTA a public records request, trying to obtain more information about how aware they are of the problem of air quality problems in the passenger compartments of their buses, and what they are doing about the problem.
The Massachusetts Public Records Law requires “custodians of records” like the MBTA to respond within ten days to such requests. It took the MBTA 26 days to respond, which they did only after I appealed to the supervisor of records in the Secretary of State’s office Correction: I mailed my appeal to the Secretary of State’s office on February 11, and I received the response below from the MBTA on February 12, so it appears that they although they were quite late in responding to my request, they did respond before my appeal was brought to their attention. The job of the supervisor of records is essentially to force custodians to obey the law. This is necessary because custodians regularly violate the public records law until the supervisor is involved, and sometimes even then. This sorry state of affairs persists because there are no penalties for violating the law (stupid!).
Anyway, here is the response I received from the MBTA yesterday (click here to see it in a separate window), followed by the letter I sent back to them this morning. (more…)
The Stop & Shop Supermarket Company, LLC
Attention: Consumer Affairs
1385 Hancock Street
Quincy, MA 02169
To whom it may concern:
My wife and I spend over ___ on groceries every year. Until today, a large fraction of that was spent at Stop & Shop. However, after what happened to me today, I will go out of my way to give Stop & Shop as little of my business as possible.
The school our children attend in Watertown held a community service day today. Students and their families came to the school in large numbers, despite the recent blizzard, to create various items needed by non-profit organizations within our community. Unfortunately, we discovered at the start of the event that a few things we needed for the projects were missing, so I drove over to the nearby Stop & Shop on Pleasant Street to get them. Since I was already there, I also threw a few items in my cart for my family.
When I got to the checkout aisle and had rung up my $31.20 worth of groceries, I discovered that I had forgotten my wallet at home, a half hour drive away. Cursing my own stupidity, I told an associate what had happened, explained that though my wallet was at home my checkbook was about five minutes away at the school, and asked if I could pay by check. She assured me that I could, and I ran off to the parking lot to drive to the school, grab my checkbook, and drive back to the store.
Less than 15 minutes later, I returned to the store and presented my check. When the associate attempted to ring up my order, she informed me that since it was the first time I was paying by check, she would need to see ID. “But I don’t have any ID. It’s in my wallet. That’s why it’s the first time I’m paying by check – I usually pay by credit card – and that’s why I’m paying by check in the first place.” She called over another associate to whom I explained the situation. She said she would take the check without ID and just had to call over the manager.
The manager, upon his arrival, informed me that it was simply impossible to accept my check without ID. I explained to him that I was buying items for a community service activity in progress at that very moment at a nearby school. I explained to him that I was a regular customer at that Stop & Shop, where I shop several times per month. I explained to him that he could look up my Stop & Shop number and see that my name and address there matched the name and address on the check. None of this mattered; he insisted that he simply could not accept my check without ID.
Given that most banks, including mine, allow merchants to verify checks by telephone, there was absolutely no excuse for refusing to take my check.
I next offered to leave my $200 smart-phone with him as collateral if he would just let me rush back to the school with the few items that were needed there (less than $20 worth of merchandise) and then come back with payment for the entire $31.20. Even this, he refused to do.
At this point, one of the other employees, who could see that I was clearly sincere and could be trusted, offered to pay for my order out of her own pocket, but she didn’t have enough cash on her. Another customer who had overheard the exchange walked over and handed me $20 in cash, which I did my best, unsuccessfully, to refuse because I had no way of paying her back; she said that I should just make a $20 donation to charity and we would be even.
I ended up calling another parent at the school and asking him to come to the store to pay for the groceries, which delayed even more the start of the activities that needed them. Not to mention that it was inconvenient to him and both inconvenient and rather embarrassing to me.
Obviously, if we had remembered to buy the needed items in advance, or if I had remembered my wallet this morning, all of this trouble could have been avoided. Nevertheless, it is entirely unacceptable that your store manager was either so stubborn or so restricted by your corporate policies that he treated a verifiably good customer poorly over a potential loss of at most $31.20, when each of your stores probably loses many times more than that to shoplifting every single day.
I will not willingly give my money to a business which treats its customers this way. While I can’t say I’ll never patronize a Stop & Shop supermarket again – I’m sure there will be times when I have no choice – I promise you will be seeing a lot less of me.
UPDATE [2013-01-20]: The scripts weren’t reading the username and password from the config file properly. In fact, I had accidentally hard-coded my own Vonage username and password in this script. D’oh! Needless to say, I’ve changed my password, and the updated scripts below are fixed. Also, I updated the cron script to allow the usage of Xvfb to be conditional, so you can test the cron script on your desktop and watch it running by editing the script and setting the XVFB variable to “false”.
Until today, I’ve been paying Vonage a ridiculous amount of money (almost $400) for an annual plan with unlimited minutes. It turns out they’ve got a much cheaper monthly plan, something like $14 per month even after all the bogus surcharges, taxes and fees they tack on, with 300 outbound domestic minutes and 300 outbound international minutes, and unlimited inbound minutes. We rarely exceed either of those limits in a month, so the cheaper plan is a much better deal for us, so I switched to it earlier today.
However, we do exceed the domestic minutes limit in busy months, sometimes by quite a lot, and in those months I’d really like to know when we’re on track to exceed the limit, so we can take steps to avoid paying the 5¢ per minute overage charge, like using our cell phones (which have unlimited minutes) for more of our outbound calls.
Unfortunately, Vonage doesn’t provide any sort of account alerts feature which would notify us if we’re on track to exceed our limits, or at the very least if we get close to exceeding them at any point during the month. And I certainly don’t want to have to waste my time logging into the Vonage web site to check our usage!
Sai Charan solved this with a Python script, but I couldn’t use his script for two reasons: (1) it complained about a missing “libxmlmods” Python module, which I can’t figure out where to get; and (2) Vonage recently rolled out a new web site, and I’m not convinced his script works with the new site. Not only that, but the new site seems to depend on JavaScript being enabled to work properly, so I don’t think a simple screen-scraping script like Sai’s is going to work anymore (I tried writing a script like this using WWW::Mechanize in Perl, and couldn’t get it to work).
I therefore decided to automate this check using Selenium. Below are two scripts: a Perl script which does the actual fetching of data from the Vonage site, and a shell script which you can run out of cron to set up the necessary environment, run the Perl script, and then clean up after itself.