Browser-Aware Player Code: Episode V, IE Strikes Back

Not so long ago, I updated my browser-aware player code to check for the presence of a stream. Recently, it’s come to light that Internet Explorer 9 doesn’t play nice with this particular snippet, because in IE9, the Javascript engine is rather brain-damaged when it comes to cross-site requests. In order to deal with this properly, we must alter the way we query the server for the presence of a stream:

console.log("Starting stream Check");
if (is_ie9) {
console.log ("Using XDR because IE9 is stupid");
else {
function streamcheckXDR() {
 console.log("Starting XDR");
 xdr = new XDomainRequest();
 if(xdr) {
 xdr.onerror = function(){ console.log("XDR Error"); };
 xdr.onload = function(){ startPlayer(xdr.responseText,"XDR"); };
 url = "http://"+streamer+":8086/streamcheck?stream="+stream;"get",url);
 } else {
 console.log("Failed to create XDR object");


function startPlayer(result,mode){

// for some inexplicable reason, running "Boolean" on the XDR output doesn't work

// so we have to call the function and tell it if we're dealing with XDR data or AJAX data.


if(mode == "XDR") {
 if (result === "true") { curstatus = true;}
 if (result === "false") { curstatus = false;}
 } else {
 curstatus = Boolean(result);

//console.log("Result: "+result);
 //console.log("Previous: "+prevstatus);
 //console.log("Current: "+curstatus);
 if (curstatus == prevstatus) {
 //console.log("No Change");
 } else {
 if (curstatus) {
 if (is_iphone || is_ipad || is_ipod) { iOSPlayer("videoframe",plwd,plht,server,stream);}
 else if (is_blackberry) { rtspPlayer("videoframe",plwd,plht,server,stream+'_+240p');}
 else { flashPlayer("videoframe",plwd,plht,server,stream); }
 console.log("Changed from false to true");
 } else {
 var vframe=document.getElementById("videoframe")
 if (is_iphone || is_ipad || is_ipod || is_blackberry) {
 } else {
 vframe.innerHTML = '<IMG SRC="image.png" WIDTH="'+plwd+'" HEIGHT="'+plht+'">';

 console.log("Changed from true to false");

 prevstatus = curstatus;

function streamcheck() {
 console.log("Starting AJAX");
 dataType: "json",
 contentType: "text/plain",

type: "GET",
 url: "http://"+streamer+":8086/streamcheck?stream="+stream,
 error: function(XMLHttpRequest, textStatus, errorThrown)
 console.log('AJAX Failure:'+ textStatus+':'+errorThrown);
 //some stuff on failure
 success: function(result){startPlayer(result)}

Why consumer IT support sucks


Photo: bdtyre

Working in an IT shop, sometimes you have the luxury of forgetting just how bad consumer-grade hardware support has gotten. I’ve been absolutely spoiled by our Dell team, so the past few weeks have been a serious reality check.

About a year and a half ago, I bought a Toshiba laptop for my wife after her desktop computer’s power supply had unleashed its magic smoke. She was needing an upgrade, and we opted for the laptop since she was going to be starting school. After shopping arond, we found a good deal at Costco which included a color laser printer. Added bonus of buying at Costco is that on computers (and TVs) they extend the standard 1-year manufacturer warranty out to two years.

Somewhere around the middle of the fall semester, Andrea noticed the power connector inside the laptop was getting loose. Having encountered this sort of problem before (and I understand it’s actually quite common on consumer laptops), I suspected the plastic shell of the connector had come loose. They typically have three or four plastic pegs that secure the body to the circuit board, taking the mechanical strain off the soldered electrical leads. It’s not uncommon after repeated plug/unplug cycles for one or more of these pegs to break off, causing the connector to come loose. The long-term risk is that metal fatique will then break the electrical connectors. If you’re lucky, it won’t short out in the process. Business-grade laptops usually use much better connectors and methods of securing them. It’s just one of those corners you have to cut to sell $500 laptops to the masses.

Along the way, her touchpad started acting flaky as well, so we figured we’d call Costco and get this fixed while we still had some time left in the warranty. After trying to explain to someone in India for 45 minutes that the problem was not in the external power adapter, I got tired of him sending me on hold to talk to his supervisor, and asked him to transfer me. I spoke with Wade, who was quite helpful, and got the dispatch sent out to their service provider, an outfit in the Orlando area called “Encompass Service Solutions”. They sent me an empty box with packing material via 2-day air. That was two weeks ago.

Since I was sending the computer offsite to some company I’d never heard of, there was not only a high likelihood that they were gonna wipe the system and do a factory reload (crapware and all), there was absolutely no way I was trusting them with the security of our data (even with backups, I’d rather they not have access to my banking data, thankyouverymuch). So I picked up a blank hard drive at Micro Center and shipped it off with the blank.

A week later, it comes back, with the technician notes that the system was cleaned and the CPU “repacked”, and the OS reloaded. No mention of either of the original problems on the service ticket. Sure enough, the power connector is in even worse shape than it was when we sent it off. I call Costco and gripe. They’re not amused. A little later, I flip it over to put our hard drive back in and discover that someone went crazy with stickers. There are 4 new stickers with barcodes, and “Inspected by” sticker, and half a dozen “Warranty Void if broken or removed” stickers over the chassis screws, as well as those to the hard drive and memory bays. I’m a geek, so I’m genetically predisposed to ignore such stickers, and I carefully removed the ones on the drive and memory bays, and put our hard drive back in.

Then things got interesting. I power the machine on, and the display remains dark. No backlight, no image, nothing. I check das blinkenlights, and they’re behaving like a normal boot process. After some fumbling and troubleshooting, I hang an external monitor from it and fire it up again. That part works. It seems that the people in QA at Encompass were sleeping that day, because I’d imagine that a non-functional display normally would cause QA to kick it back to the tech who forgot to plug in the ribbin cable feeding the display. Apparently at Encompass, this is not the case.

So now we have a laptop that is effectively a compact desktop. A couple calls back and forth to Costco, and Encompass wants me to send it back to them for repair. Only here’s the problem, guys, I don’t trust you to not break it worse this time, and Andrea needs her laptop this week, that’s why we sent it to you when we did. Even better, you can’t e-mail me a UPS label for me to use the existing box, you insist on sending me another empty box via UPS. Not only is that insanely wasteful of diesel, jet fuel, and cardboard, and it adds 3 days to the process. Andrea can’t be without the laptop any longer than she already has. She has interviews this week and school starts up next week. I don’t care how fast you expedite it, you’ve proven already that you half-ass the job when it’s a rush. If I wanted that kind of shoddy work done on my laptop, I would have handed it off the the Geek Squad at a local Best Buy.

Wade, the guy at Costco, is trying to come up with alternatives. At this point, acceptable outcomes are that we get an onsite tech to do a motherboard replacement, find me a local depot in the Kansas City area, or you give us at least partial credit toward a replacement system at the warehouse.

When you buy a laptop, spring for the onsite support. If anything happens, it will save your sanity. Next time, I’m buying a Dell.

I’d love to hear your depot repair horror stories.


Time Warner’s internet service has been flaky at best at my house lately, despite swapping out the modem. So I figured I’d see if AT&T would give me data-only u-verse. They will, and when I started asking about additional fees, the conversation took a sharp weird turn.

Delilah: Thank you for using AT&T! How can I help you today?
you: looking for info on data service.
you: need 1Mbps or higher upstream, 10Mbps downstream
Delilah: Yes, we offer up to 18 Mbps, if you are not ordering the TV service, then we do have an installation fee.
you: what’s the pricing for 12/1.5 ?
Delilah: There is a learn more blue tab on U-verse page. (note: it’s ORANGE)
Delilah: Please click to view speeds and pricing, the installation is $149.
you: what am I clicking on?
Delilah: click on build your own bundle.
you: all the tabs on the page are orange.
Delilah: Build your own bundle first.
Delilah: Then you will see Uverse internet
you: i just see packages
Delilah: Besides the internet
Delilah: Do you see where it says Max 18
You: so if I were to get 6/1, what would it cost me?
Delilah: The Elite is $35 a month.
You: what else would I be paying? (was asking about fees, this is where it got interesting…)
Delilah: Just the installation fee, this is a wireless service, no modem needed.
you: uh… wireless???
Delilah: Taxes and fees are less than $6
you: I thought this was DSL
you: I don’t think I’ll be able to get an antenna put on my roof
Delilah: Wireless internet
Delilah: It is through the phone line, yes,
Delilah: You do not need one.
you: is it wireless, or does it use DSL over the phone lines?
Delilah: It is brand new technology, (uh-oh… stand by for clueless marketing BS…)
Delilah: A fiber optic line that runs through your phone line. (wait, WHAT???)
you: well, I don’t have fiber running to my home, just copper
Delilah: Did you check on availability?
Delilah: Our technicians run the wire.
Delilah: As long as it is available at your address,,
you: yes, u-verse was built out in my neighborhood 3 years ago, I remember it well, as you guys left a gaping hole in my front yard for 8 months. (it took me several calls to AT&T, before I found someone who cared enough to inform the contractor that they’d forgotten to fill it back up after redoing the splice. You can see it on Bing Maps Bird’s Eye View. The grass still isn’t quite right)
you: but there’s no fiber here.
you: the technicians told me this was DSL-based technology.
Delilah: I am sorry, I am a bit confused, are you wanting just regular DSL?
you: i need internet service. But there’s no fiber running to my house. (and if there was, 18/1 would be pathetically slow)
Delilah: Would you like a link to check on DSL at your home?
Delilah: There is no need for a wire of anykind.
you: if there’s no need for wire of any kind, how does it get to my house without an antenna on the roof?
Delilah: DSL has never needed an antenna.
Delilah: It runs through the phone line.
you: that’s a wire.
Delilah: It is already there.
you: yes, but that’s not “wireless”
Delilah: You get a wireless modem if you like.
Delilah: You can get signals up to 250 ft.
Delilah: There is no antenna at all.
Delilah: No antenna.
Delilah: The days of antennas are over.
Delilah: Fiber optic lines that run through the phone.
you: then how do you get the signal to my house wirelessly?
Delilah: I am sorry you do not  understand, would you like to call in?
Delilah: Through your phone line.
you: then it’s not wireless.
Delilah: You get a wireless  modem.
you: why would I need a wireless modem, since it comes through the phone lines
Delilah: Since I cannot assist you any further, this chat will now close. Thank for chatting with AT&T.
Thank you for chatting with AT&T today. Have a great day.

OK, I know what she meant, but she’s doing a lousy job of selling the product, since she seems to have a tenuous grasp on what this is in the first place. I don’t think I’ll be getting internet from them anytime soon. At least I can get it without TV now… although I think I’d be better off getting the TV service for 3 months instead of the $150 install fee.

Let’s make this clear, AT&T. U-Verse is NOT a fiber-to-the-home service. It’s a high-speed DSL service (54Mbit) that goes to a fiber-fed node in the neighborhood within the wire limits of the DSL Technology. I know Verizon’s cleaning your clock with FTTH right now, but stop misrepresenting copper-based DSL services as fiber. It just ain’t true. By your definition DSL service has been “fiber” for years in every CO that’s fed by an OC link.

Microsoft: Grrrrr. You Suck.

Yesterday, for reasons unknown, our entire network dragged to a crawl around midday. Those reasons became quite clear this morning when word hit the blogosphere (here, here, and here, among others) that Microsoft had pulled another fast one on us network admins and rammed a patch down our throats, bypassing the normal WSUS approval process. Apparently, the Windows Installer update pushed out a few weeks ago makes this possible

The patch in question was a major version relese to Windows Desktop Search, which is categorized in WSUS as an “Update”. Our WSUS machine is configured to auto-approve critical patches, but not routine updates. Imagine my surprise when I find that it is already in the “approved” category and has installed itself on all of our machines. Between the time it synced and the time it pushed out to the machines, I hadn’t gone near the WSUS machine to approve it…

And Microsoft’s PR flacks are telling us that those of us who did get the patch had already approved it. Nice try, Microsoft. I and hundreds of other admins have a far different story to tell.

The least they could do is warn us this was coming, so that we could test it. Instead, we had 200 machines sitting there, reindexing themselves while people were trying to get things done.

I like WSUS, generally, it makes my job a lot easier when it comes to managing the patches that Microsoft constantly needs to issue – but it really ticks me off when they abuse the system for their own self-serving goals.

I’d be willing to bet a donut that this somehow breaks Google Desktop. Micrsoft has a long track record of dirty tricks when they feel squeezed by the competition… anyone remember Win32 v1.32? the patch from 1.31 did very little, except for one key thing… it completely broke OS/2 compatibility with 32-bit Windows applications. Any 32-bit app written with 1.32 or later was unable to function with the 1.31 libraries that you could install on OS/2.

India-based tech support…

I’m really starting to loathe support calls to vendors.

I’m still scratching my head wondering who came up with the idea in the first place that it was a smart customer move to send technical support overseas, and have your customers try to explain complex technical issues over a bad phone connection to someone whose native language isn’t English, and who speaks English with a thick accent. I know how frustrating it is for non-anglophones to try and explain complex technical things to me, why did the industry suddenly decide it was a good idea to make this standard customer policy?

I can tell that a lot of these support agents (especially at Microsoft) are very technically skilled, but there’s the problem of accurately communicating the actual problem to them, which prolongs the process significantly (in the case of Microsoft, up to several hours!).

Support from SonicWall has taken a definite turn for the worse of late. After you get through the ticket dispatcher (who is usually based in the US) and have your ticket submitted (BTW, Sonicwall, how hard can it possibly be to get my e-mail address right? I spell it out for you every time and yet you still manage to make it undeliverable!), you end up with some second-line tech who still seems to be operating off a script. Any time you ask something remotely complex, it’s back into holdland while he goes and asks someone who actually knows what he’s doing (or she, especially at Microsoft, where the hardcore brains all seem to be women!)

As for VMWare, it’s always an adventure in global roulette. It’s a nice distraction from India, and their overseas support folks are usually extremely fluent in English.

I understand the need to offshore your support if you offer it for free, but when I (or my employer) pay big bucks for support contracts or on a per-incident basis, I expect something other than the lowest overseas bidder.

Y2DST Headaches and Microsoft Advil 2007

As most of you in the IT world have figured out, Congress’ well-meaning push to save $30-odd million a year in energy costs has ended up costing the IT industry and the economy considerably more than that in the changeover.

After spending 2 weeks patching systems and trying to make the Exchange calendar rebase tool work (unsuccessfully), I woke up Sunday morning hoping for the best and expecting the worst. As it turned out, all our Windows 2000 systems were unpatched. Apparently it was the Windows 2000 patch that was the one Microsoft wanted $4000 for – luckily they published a workaround late last week that involved patching the registry with the new timezone data.

In trying to troubleshoot this further, I’d discovered that Microsoft had set up a DST Support chatroom for anyone suffering from DST pains. I posted my problem and hunkered down to wat, as it looked like the Microsoft experts in the room were pretty buy, mostly with fairly inane questions from people who could have figured out the answer with a quick Google search a few weeks ago. After a short wait, I got a private chat request from JamesC saying he thought he could help me and would be happy to do so in a one-on-one chat. He also helped me boil down KB914387 to the simple language of “Back up your registry, patch it, run this script, and this is the backout procedure”, which allowed me to patch the Windows 2000 servers in fairly short order.

The big issue we’d been running into is that the rebasing tool kept crashing on the third mailbox when trying to generate its list of mailboxes and their associated time zones. I decided to head into the office where I had more screen space as well as some peace and quiet from the kids. As I got in, James sent me a debugger tool to install while he quickly grabbed a bite to eat.

I fired up the Microsoft-provided VM and loaded up the debugger while James ate and set up a LiveMeeting session so he could remotely control the session. This is where it got crazy. James was working from home, on his Mac, via VPN and RDP to his machine at work, from there was connecting to the LiveMeeting server, where he had remote control of my RDP session into the virtual machine running on my laptop, and from that session we frequently had another RDP session going to the mail server. I’m amazed it worked at all. I’m also amazed that Microsoft lets James have a Mac.

James spent the next several hours poring over debugger output and fiddling with assembly code trying to make the application do his bidding. Backing him up was none other than the guy who wrote the rebasing tool in the first place. After several hours of this, they both threw their hands up and resigned themselves to the fact that this approach wasn’t going to work (it must have been a weird issue if the guy who wrote it couldn’t even grok it) and that we’d have to try the manual approach. After a few false starts, James got the tool to do its thing.

Naturally, there are a few users this morning who have some appointments that are “pooched”, but that was expected.

It was truly impressive to watch James engage in Extreme Nerd Sports and poke at assembly and debug code in an effort to make the machine do his bidding. Over the course of the 8 hours, I got to know James a little. I ran across his blog (which I won’t link here to keep his personal blog from being associated with Microsoft), and discovered that he is also a committed Christian – yay for God putting the right people in the right places!

James has been spending the last few months working 16 hours a day on DST conversion. His official job at Microsoft is debugging Exchange code, and from the looks of it, he’s darned good at it. In order to help us poor customers, he’s had to miss not only Valentine’s Day but his wife’s birthday as well. I hope Microsoft makes it worth the trouble. You’ve earned yourself a serious break. Mrs. C, you are a saint. Thank you for letting us pick your hubby’s brain.