If you're not a complete useless douchebag who's just doing minimalist PR, and you're actually interested in responding to the issues in the tweet you saw on my Twitter account, maybe you should read through this document before you reply. Not that I expect that you will, you know, but I'd hate not to say it up front.
Sorry about your job. I understand that in the current blasted postapocalyptic jobscape, it's hard to find meaningful employment. I also understand that you are pretty restricted in what you can say on Twitter on Cox's behalf, because, having dealt with several of you while I've been a Cox customer, it's become perfectly clear that, as with a lot of companies that maintain a social media presence, your job doesn't really have anything to do with helping customers; it's about image-building. That sucks for you. Of course, it sucks for me, too, because what I need is not an ISP that worries about the imake it creates on various social media accounts, but rather one that provides reliable service at a reasonable price. Problem is, Cox has decided that hiring you to do damake control when people complain about their shit service is cheaper than making its service reliable, which (again) sucks for you. This page is not targeted at you personally. It's about your shit monopolist company. Believe me, I'd go with any other ISP if I had any other options in my area, just like you'd probably take another job if you had any meaningful options. But here we are anyway (by which I mean that the only company that provides Internet service in my area and that's hired you to deal with its Twitter presence has put us both into this conversation, insofar as it can be a conversation), and we apparently have to deal with each other.
Sorry about your job.
I currently recommend against using the script described on and linked to from this page unless you are very brave, want to test pre-alpha software, know what I mean when I talk about
pre-alpha software, are experienced with Linux or another POSIX operating system, are willing to accept the full responsibility for what software still early in its testing phase might do on your behalf, and are willing to report back on what happens when you use it. If those things all describe you, I'd love to hear feedback from you on the script itself, how it could be improved, and how it works in your particular situation. You're welcome to collaborate on SourceForge or to get in touch with me there.
Again: if you don't understand absolutely everything in the previous paragraph, this script isn't for you.
This is just a quick sketch of what's going on with these automatically generated tweets. Sometime in the near-ish future, I'll expand it.
But here's the short version: There are no ISPs who provide service in my area except for Cox Communications. As is typically the case with monopolies, they provide overpriced and shitty service. They have a particular knack for taking down my Internet service just when I'm depending on it — when I'm in the middle of research, say. Since I'm in the habit of complaining publicly about shit service on Twitter, I've interacted with them a number of times. I can honestly say that not once have they addressed the actual issues that I've complained about. Often, their responses consist of effective denials that there is a problem at all (like here). Other times, they insist that taking down the Internet service they're billing me for is absolutely necessary (e.g., here). At other times, they engage in hand-wringing that accompanies an insistence that it's absolutely impossible to trace an outake unless they have my account information (like here).
Of course, all of this is complete horseshit, though I don't know whether the people they've hired to run their social media know that or not. And, as you can imagine, I'm not going to provide a company that has a monopoly on an essential service enough information to be petty and cut that service off, so they never get my exact address (nor is the account in my name, for that matter). So it's a stalemate: several times a month, my Internet service goes down for an hour or two, and sometimes I tweet about it, and sometimes I don't. I never do get a meaningful response from them, though I always do get earnest PR image-building verbiage. But I've started to wonder just how often my Internet service is actually down in ways that inconvenience me — including circumstances when I don't notice directly, such as when downloads stall while I'm asleep. So I've written a script that checks every ten minutes to see whether I'm online, and if not, whether this is Cox's fault. If I'm not, and it is, the script posts a tweet for me when I get back online.
In particular — are you listening here, Cox? — the script only complains if all of the following criteria are met:
pingcommand — as all of them usually do):
If any of the conditions above is not met, there is no complaint posted to my Twitter timeline. However, if a complaint was posted to my Twitter timeline, all of the conditions above were met. If a complaint was posted, then the outake inconvenienced me personally, even if I wasn't awake for it. Because — and here's the subtlety that might cause the earnest image-building representatives from Cox a conceptual difficulty — what I want to do with my Cox service is to use the Internet. That's not the same thing as
browsing the web.
It should go without saying, but maybe I should say it anyway: If I'm at home and connected to my own router, then the fact that I'm simultaneously unable to reach Google, Ubuntu.com, LinuxMint.com, Tumblr, Twitter, Facebook, Yahoo!, Microsoft.com, hotmail.com, and ucsb.edu means my Internet service is down. Let's do each other a favor, representative from Cox, and not bother to assert that all of those websites just happen to be simultaneously offline, OK? Because that would be complete horseshit. You know it (or you should, if you're not a complete idiot). I know it. Don't bother to assert it just to play to an audience, all right? That would be cynical and condescending.
So — to put it another way — my Twitter timeline does not include an exhaustive list of all the times when my Internet service is down. It only talks about (some of) those times when I was actually trying to use the Internet and was unable to do so. Nothing shows up if I'm out of town, or if I've taken my laptop somewhere else and am connected to a different network than my home network, or if my laptop happens to have disconnected from the router, even if my Internet service is down at the time. Too, no tweet is posted if I shut my laptop down before the tweet gets posted. Too, I've chosen to use some of the obfuscation options available in the script in order to make it more difficult to link my Twitter account to the Cox account that I use, because I'd hate to have the only ISP in the area decide that the easiest way to stop me from complaining would to be to find a pretext to cancel my service.
But don't take my word for it that I only post (sometimes) when my service goes down. Here's the script that generates the tweets, which is just a wrapper for my more generally useful
isp_complain.sh script. If you are, say, a representative of a technology company that provides Internet service, then surely someone at your company can read the script. I'm a literary theorist, not a computer programmer, and I wrote it. You're not going to assert that it's unintelligible to every one of the nearly 25,000 employees at your technology company, are you? It's a bash script. Surely someone at your company is able to read it. Because if no one at your company can read it ... that would look pretty incompetent.
Let's start with what Cox has actually said in response to previous tweets.
@patrick_mooney In order to provide adequate services, we have to maintain and upgrade our network during our maintenance window. -Stephanie— Cox Customer Care (@CoxHelp) October 28, 2014
Horseshit. Total and complete horseshit.
On the face of it, this is horseshit because it clearly isn't literally true as written ‐ they could of course maintain and upgrade their equipment during any time, whether it's part of their self-designated
maintenance window or not. But of course this is not actually their point, nor is it the basis of my complaint.
There are two things that I do object to about this claim. One is the implication that they make by tweeting this in reply to a complaint about a service outake is that periodic outakes are regrettable but totally unavoidable. This is of course not true: it's not necessary to take down services for extended periods of time in order to repair and upgrade equipment, because one of the things that you can do when you take down a piece of equipment while servicing it is to swap in another, equivalent piece of equipment to avoid interrupting service for more than a few seconds of time. Cox doesn't do this; they just take down their service. Why? Because fuck you, that's why. What are you going to do, go to another service provider? Of course not. There are no other service providers, so you can just go fuck yourself. If it were actually true, according to the laws of physics, that it is completely necessary to take down Internet connectivity periodically — sometimes for several hours at a time, and sometimes several times per week — in order to provide Internet service in the first place, then why does my tiny cell phone company not also experience similar network outakes in the Internet service that they provide?
The answer, of course, is that Cox is lying. They're lying liars who are lying out of their lying holes. What Stephanie said above is not true, it's just PR verbiage that they spout on Twitter in case anyone happens to stumble across the conversation. Cox is not interested in providing good service — they don't have to be; they've got a monopoly in my area (and many others). They are interested in looking good in case potential customers in other markets, markets where they do have competition, stumble across this conversation. They say things like
we want to assist in the issues you are experiencing (here) and
I'd like to take a closer look (here), but none of this is an accurate portrayal of their priorities; it's just a performance in a social forum in case potential customers stumble across my tweets. That is to say: it's horseshit.
The other thing that bothers me is what I'll talk about next.
@patrick_mooney Hi Patrick! I apologize for any inconvenience that this may have caused. We want your service working 100% -Kay— Cox Customer Care (@CoxHelp) October 28, 2014
The first problem I have with this tweet is what I actually said in the tweet that got this chirpy and ostensibly helpful reply from Kay: Cox's maintenance window seems to be scheduled for a time when the fewest people are likely to be actively trying to use their Internet connections — usually between 1 and 3 in the morning, it seems to me. Though they'll likely tell you that's because they want to inconvenience as few people as possible, they'd really only say that because they conflate
using the Internet with
browsing the web, as discussed above. The truth, I'd imagine, is that they do this because it's less inconvenient for them, especially if they're not going to swap in working equipment for the equipment they're working on while they work on it: fewer people complain if the Internet service goes down late at night. Of course, the time that's convenient for Cox to take down the Internet service is precisely the time that I have no other options for gaining Internet access: there are no coffee shops open that provide Internet access during Cox's service window. They've picked a time that's good for them, but bad for people who are trying to use the Internet.
The other problem with the tweet is that it misrepresents Cox's intentions. It's easy to make claims about what someone wants, but the proof of the pudding is in the tasting, after all. Kay can claim that Cox
want[s] [my] service working 100%, but the want it in the same way as I want a fucking pony: in the abstract, kind of, but not enough to do anything that might lead to me getting what I claim to want.
@patrick_mooney In order for us to see anything dealing with an outake we would need to have ur acct info to determine that. - Xavier— Cox Customer Care (@CoxHelp) May 7, 2015
More horseshit. You know how I can tell that Xavier doesn't need account info to determine that I've got an outake? Because other Cox representatives have managed to detect outakes in my area on other occasions without having my address. (Take a look at the next listed tweet, for instance.) This is just bald-faced lying, pure and simple.
The generous interpretation here might be that Cox is heavy-handed about absolutely requiring that all technicians must always without exception go through a technical support procedure that requires checking account information before looking for technical problems. This is the case for many companies requiring tech support. If this is in fact what's going on, it's a bad move: a report of an outake should be investigated more or less regardless of the provenance, because the person who takes the trouble to report a technical problem is doing a favor for the company to whom he's reporting it by reporting a problem that may affect many people who don't bother to report it. (I can also attest that I go out of my way to demonstrate that it's not account-specific when I have this information, such as when I already know that my neighbors, who have their own accounts, also have e.g. here and here and here.) Even in this best-case scenario, then, it's a poor choice of method to provide technical support to users.
The less generous interpretation here might be that Cox is trying so hard to get my account information because the account through which I connect, and on which I contribute money for the bill, is not in my own name, and so the only ISP in town can't find a pretext for disconnecting my account as a way of getting petty revenge for tweeting at them unless they get enough information to link me to a particular Cox account. I'm not saying this is the case. Oh no. I'm just saying that's the cynical view, and that I'm not so starry-eyed about monopolistic corporations and the nobility of their motives that I would discount this as a possible motivation.
@patrick_mooney Hi Patrick, I am unaware of any issues in your area. I want to investigate. Please DM me the service address. -Tiff— Cox Customer Care (@CoxHelp) May 12, 2015
Tiff) tweeted another response indicating that they were aware of an outake in the area; they helpfully told me that they were perfectly sure that it didn't affect me. Even though my Internet service was, in point of fact, actually still down at the time, and I was engaging in this conversation via my cell phone. Now, maybe Tiff (let's call her
Tiff #1.After all, we don't know for sure that customer service people or social media folk actually use their real first names while doing their jobs. Nor do we know that there isn't more than one
Tiffdoing this job for Cox, for that matter) didn't know there was an outake when she posted that first tweet. But this means at least one of two things, both of which reflect poorly on Cox: either they don't have tools that can monitor their own network connectivity, or Tiff didn't bother to use them before posting a chirpy,
helpfulimage-building reply about wanting to investigate. Given the content of the second tweet, in which Tiff #2 says that she's aware of an outake, I'm guessing that Tiff #1 has tools that allow her to look for network outakes; she just doesn't know how to use them, or didn't bother to do so before replying to my tweet. Which reflects poorly on her employer, in fact. It also reflects poorly on her claim that she wants to investigate.
Again, just a quick overview.
This script works a lot like my Irish Lit AutoTweets script. There's an entry in my
crontab file that runs the script every five minutes; the line looks like this:
*/5 * * * * /bin/bash /home/patrick/.scripts/cox-complain.sh > /dev/null
Again, here's the script, and here's what it wraps. You can trace the logic yourself. It relies on standard POSIX utilities, plus
bash and TTYtter and
How does it tweet when it's offline? It doesn't. It waits until it gets back online to post. That's what the
-hold option to TTYtter means.
If you find this script helpful, why, feel free to adapt it to your own needs. It is copyright © 2015 by Patrick Mooney and released under the GNU GPL, either version 3 or (at your option) any later version.
You can find me on various other places on the Internet.