Monday, 28 November 2011

Sometimes They Get It Right

As much as a complain about companies who are constantly getting it wrong, I have to say that Delta actually did it right with their Twitter support team.

It started out with me doing my usual shout into the dark

Some companies monitor Twitter actively and some don’t.

Within a minute or so of posting my question, I received a helpful response from @DeltaAssist, letting me know the situation and giving me an option to address my issue.

I sent them a direct message with the information and they took care of the rest.

Beautiful.

Now, yes, I can certainly fault Delta for not giving me the option to do that functionality myself via the website… I mean, if all that’s needed is a SkyMiles account number and a confirmation number, what’s the issue…? But at least there was a “Plan B” that worked.

Using Twitter to quickly solve customer issues is awesome. I just wish more companies used it like that.

Wednesday, 26 October 2011

Chunked Up

OMG. I want to strangle someone!

For the past week or so, I’ve been dealing with an issue where a simple UploadValues call to the WebClient object was taking 10-30 seconds instead of the nearly-instance response time I was expecting.

I’ve tried going at it from different angles.

I’ve done everything I could possibly think of. I tried using HttpWebRequest/HttpWebResponse. I tried explicitly turning off the proxy check. You name it and there’s a good chance I attempted it.

Today, though, I finally had a breakthrough.

I was looking at a TCP trace from the connection and noticed the responses being returned from the site were ‘chunked’.

Even though it’s something I’m sure .NET has handlers for, I figured it was worth looking into. It’s not a feature my client can tell the server not to use, per se, but since it was functionality added to the HTTP 1.1 protocol, I decided to find a way to force the request to use HTTP 1.0.

Unbelievably, that did it.

The response time went from roughly 20-sec to 1-sec. I was ecstatic and — at the same time — I was also pretty ticked-off.

Was it the chunking that was the issue or another HTTP 1.1 feature? Was the site misconfigured somehow? Is it a known issue?

I still have a lot of questions remaining… and some more research to do. At least I have a workaround now.

Monday, 6 June 2011

Not-So-Bright House

This is an email I get from Bright House each month…

Dear KEVIN FAIRCHILD,

Your Bright House Networks online statement is now available.

Michigan customers, view your statement online at http://webcare.michigan.brighthouse.com
For immediate closed captioning concerns, please call 1-866-898-9101. Written complaints may be mailed to L. Byrd, Closed Captioning Coordinator, Bright House Networks, 14525 Farmington Rd., Livonia, MI 48154 or by Fax (734)437-3338 or email to Michigan.ClosedCaptioning@mybrighthouse.com.

Tampa Bay customers, view your statement online at http://webcare.tampabay.brighthouse.com
For immediate closed captioning concerns, please call 1-888-289-8988. Written concerns may be mailed to D. Morgan, Closed Captioning Coordinator, Bright House Networks, 1004 U.S. Highway 92 West, Auburndale, FL, 33823 or by Fax (863)288-2229 or email to tampabay.closedcaptioning@mybrighthouse.com.

I can almost forgive the whole putting-the-name-all-in-uppercase thing… but it cracks me up that they include information for two very different areas like this.

A few immediate questions come to mind…

First, they KNOW where I am. They know I’m served by their Tampa offices, so why not just provide me with relevant contact information? If I ever needed to look up the number for their Michigan office, I’d Google it.

Secondly, are they really only in two markets — Michigan and Tampa? That doesn’t exactly make me feel like I’m dealing with a large trustworthy company… Even if they are limited to those two areas, they should at least give the impression of having broader coverage. Besides, why is one a city and the other a state…?

Lastly, assuming they are in only those markets, what are they going to do if they expand? What’s next, including contact information for Hoboken and Timbuktu customers?

It’s even weirder when I go to the main Bright House Networks website. When I click “Pay My Bill”, I have to enter my zipcode — to see if service is available in my area. Wait, what…? If someone is paying a bill you sent them, I sure as heck hope there is service in their area… And, again, if I’m going to be logging in anyhow, it should be able to determine my location based off of that, anyhow…

Once I am logged in and ready to pay my bill, the sidebar on the left shows “michigan – contact us” and “tampa bay – contact us”. Ouch. Looks like they went from capitalizing everything in my name to leaving everything on their menu lowercase. How often does a Tampa Bay customer need to contact Michigan or vice-versa? Why is this even here???

As I navigated around the site a bit, I did find something that answered my question about service areas. According to the site, they serve the following markets:

Tampa Bay and Orlando, Florida; Bakersfield, California; Indianapolis, Indiana; Detroit, Michigan; and Birmingham, Alabama; along with several other smaller regions in Alabama and the Florida Panhandle

Now I’m even more confused. What does someone in Birmingham see when they get emailed from Bright House…? Do they see a listing for Tampa Bay and Michigan like I do or do they see, Birmingham and — say — Indiana. And now that I’m thinking of it, why don’t I get something a bit more realistic, like maybe Tampa Bay and Orlando?

This just seems like one big “developer fail”…

Thursday, 2 June 2011

How not to run a website

I try to give websites the benefit of the doubt — really, I do.

Recently, though, there was a site that left a really bad taste in my mouth.

First, a little background…

In early-to-mid April, I got into the “pen-pal” scene. Like my interest in ham radio, beekeeping, or geocaching, it’s just something to do in my free time.

Neither having stamps, envelopes, nor a printer — and being a bit impulsive — I started looking for online services that would let me compose letters online and they could handle the printing and mailing of it.

That’s where I found 1HRMail.com

At first, it seemed decent. You create an account, buy postage, and send letters. Pretty simple stuff.

After creating my account and buying postage, however, I found what I thought was a bug in the website. After I logging in, I could see my postage balance, could create contacts, etc. As soon as I tried to send a letter, though, I was told I needed to login. I tried repeatedly to get this to work on multiple computers from Internet Explorer, Chrome, and Firefox. Same behavior each time.

I contacted the website through their Customer Service form to let them know of the issue. I also told them that if the site wasn’t usable, I would like my $10 postage credited back, since the way the site was working didn’t let me send out any messages. No response.

I kept digging, though… I found their Facebook page, their Twitter account, etc., but it was all just self-promotion and marketing attempts. There was no way to interact with them other than the contact page on their site. I did find a few posts on the Facebook page about the site not working, not being able to use the service, etc., but these posts were quickly deleted. …uh-oh.

I went back and starting reading more details on the site. Apparently, they start you out on a 14-day trial and if you don’t cancel within that time, you start getting billed at $15.99 per month.

Since only a few days had passed since I signed up, I assumed I’d be fine. Boy, was I wrong. After logging in, I was greeted with a message that said the site was undergoing temporary maintenance and to try back soon. That message remained for two weeks — coincidentally, just long enough for me to not be able to cancel my trial.

During this time, I tried to get someone to cancel my account via the Contact Us page.

I didn’t seem to be getting any monthly charges from the site, so I assumed it had been taken care of. On May 28, though, I received a $15.99 charge from them. I immediately notified my bank and let them know I wanted to dispute the charge. As of today, the charge has been disputed. Now, a second charge has been made (currently in “Pending” status) that I’ll also be disputing if/when that clears.

I logged into the site today, just to make sure I didn’t overlook any options to cancel my subscription.

This was what I saw when I logged in:

My only options are “Help” and “Sign Out”. While the page mentioned I can cancel my membership, there aren’t actually any options for that on the site.

I will be working with my bank on this issue, obviously, but I’ll also bring plenty of attention to their site — and not in a good way.

They aren’t registered with the Better Business Bureau (naturally), but I went ahead and added them to the database and filed a complaint.

In the meantime, I guess my only option is to report the card usage as fraudulent and get a new card.

It’s one thing to have a crappy website, but it’s another to be a flat-out scam…

If you need to fill out a complaint against them, here is some business information to get you started…

Though the domain’s Whois information is hidden, it looks to be a California-based operation.

I stumbled upon a couple guys who seem to have some connection to the business, but lacking any contact information for the site, it’s tough to tell who’s an employee and who is just a marketing-shill.

Like I said…. I like having hobbies for my free time. At least until the charges stop (and are credited back), I’m going to have fun doing some campaigning of my own ;) Though it probably won’t help me get my money back, maybe it’ll at least help others from getting scammed.

UPDATE:
06/02/11 @ 11:30am: I received an email from help@1hrmail.com in response to my “Contact Us” request. I was told they would close my account and refund any fees charged including any postage remaining in the account. While this doesn’t necessarily make me feel all warm-and-fuzzy about the site, I do think it goes a long way towards changing my opinion of them.
06/08/11 @ 04:05pm: Another response from the same email address: “We’re sorry, it seems like there’s a glitch in our billing system. We’ll manually cancel your account, refund those charges and make sure you’re not charged again. We apologize for the inconvenience.”
Currently: Still no credits, except for what has been disputed with MasterCard.

Wednesday, 9 March 2011

Same Difference

In my previous post, I mentioned how I began to write a query against a list of people and identify potential duplicates.

In my case, I didn’t want to just stop at comparing details for “Rose Jones” against that of “Rosie Jones”.

Though it doesn’t happen often when people are filling out forms on their own, when information is added on behalf of someone else, careless mistakes can happen. If the person’s name is “James Scott”, maybe it would get entered incorrectly as “Scott James” because someone wrote it down as “Scott, James” and the comma wasn’t easy to see. Whatever. Mistakes happen. I’m sure you’ve seen it before.

I also feel like it is important to bring in any records that might not share the same name but do share some key piece of unique data. Depending on the app, how truly unique your data is might be different… It could be something as unique as a Social Security Number all the way down to an email address or phone number that, while not truly unique, is typically limited to a small subset of people.

Here’s the gist of what I’ve done so far:

1. Make “groups” based on the individual first name and last name combinations — being careful to weed out extra name information that probably doesn’t need factored in — middle names, punctuation, etc.

2. Create all of my name variations — keeping the ID of the original record and bring those in as members of the group belonging to the original record

3. Any records with the reversed name matching records in existing groups get brought in (allowing “Scott James” to be brought into the “James Scott” group)

4. Any records where unique data overlaps with members of existing groups, add them in, too.

5. Last but not least, if there are any groups with the same members, delete all but one of them (takes care of scenario where “Bob Smith” and “Bobby Smith” are the only members in Group ‘X’ and “Bobby Smith” and “Bob Smith” are the only members of Group ‘Y’ due to the name reversals)

So far, it’s been working like a champ. Even with about 70-100k worth of data, the entire process takes about 3-minutes, which is acceptable in this case, since it’s for a scheduled report. The main slow down in my case is the bringing in of some additional shared data between people, which creates a large many-to-many dataset. Without the extra level of checking, it only takes about 20-seconds. For basic name-only checking, you could probably skip Step 4 and have a pretty fast query.

Total execution time will also depend a lot on how many name variations you have. For reference, I currently have just under 1400 records in my “Names” table.

By utilizing the groups, I’m able to look at the records in chunks and quickly weed out the records that are likely duplicates and skip over ones that just happened to share similar names.