Chomper Stomping jQuery/JavaScript/CSS 3/HTML 5, Java/PHP/Python/ActionScript, Git, Chrome/Firefox Extensions, Wordpress/Game/iPhone App Development and other random techie tidbits I've collected

15Feb/100

Mozy Resolution

About a week ago I talked about trying to download my Mozy account and get a refund after being unable to make a complete backup for over two months.

I just got this e-mail:

Hello Christopher,
I have processed the refunds and reverted you to a free account.

If you don't need any more help on these tickets, I will close them for you.

Let me know if you have any questions.

Sincerely,
Bruce McMullen
[e-mail redacted by blog author]
L2 Mozy Support Technician
Mozy Support is available 24/7
My Schedule: Mon - Fri 12:00pm - 8:00pm MST
Mozy, from EMC

Checked my bank account and sure enough, there was the money! Logged into my Mozy account and sure enough it was downgraded. Nicely done Mozy! I'll keep you in mind next time I'm thinking about trying online backup...

15Feb/101

TOTW: Freenode IRC Webchat Client

This week's Tool of the Week is The Freenode IRC Webchat Client.

What it does:

Allows you to chat on Freenode IRC through your browser, even if your corporate proxy blocks IRC (IRC is the third biggest security hole for corporate networks).

When you need it:

  • When you don't have an IRC Client installed
  • When IRC is blocked

How to use it:

12Feb/101

My own little dailyWTF

Note: WTF can stand for "Worse Than Failure"...

Yesterday I was re-living my saga on thedailywtf.com. I'm Jared L.

Part 1
Part 2
Part 3

Well, immediately after reading all of that I went and made a big 'ole wtf all on my own. Read on...

Every Wednesday and Friday finishline.com gets updated with new promotional material. Most notable of all of these is the "A1 rotator". This is the flash rotator prominently displayed on the homepage of the website. Each Tuesday and Thursday Sean in marketing will send me (up to) four new .swf files and one .xml file to drop in to the root directory of the site and the A1 rotator will magically update with these new files. I've been doing this bi-weekly for a year and a half and have never personally screwed it up. It's not hard. I copy the files from one directory into another and zip them up and send them over to the build and release manager, Brandon, who sends them over to Verizon who pushes them out to 71 different instances of our website. It functions like clockwork. Until it doesn't. This is a story about a massive multi-layered failure of the A1 rotator and it's 100% my fault.

Thursday afternoon at around 4:30 I received the files from marketing and copied them over into the required directory on my local box. As always, I manually uploaded the files to the QA server (a mirror of production) so marketing could test them. I zipped up the files and e-mailed them Brandon. I didn't bother to go out to our QA server and test them myself because, "hey, I've been doing this a year and a half and have never screwed this step up and I'm really busy and what could possibly be wrong? I just copied some files over, what could I have screwed up?" Oh the fallacy...

At this point, the piece of dung sorry excuse for an e-mail client "Outlook" crashed. I had already sent off the files so I didn't notice.

An hour later when I'm preparing to go home for the day I go to send and e-mail and see that once again Outlook has crashed. I pop it back open and find that I have an e-mail waiting for me from marketing. Five minutes after I sent the zipped files over to Brandon, marketing e-mailed me to let me know that something was wrong with the A1 spot on the QA server. Crap.

I open up Firefox and hit the QA server only to find myself staring at a big empty white space where the A1 rotator should be. WHAT???

Ok, maybe the xml file is pointing at a non-existant swf file and the whole thing is bombing out... What are the names of the files? Oh, there's a complicated one, "a1_jordan_02102010.swf" maybe the xml has that name screwed up. Let's simplify things. I rename the file "a1_jordan.swf" and edit the XML "a1_jordan.swf". Upload. Check. NOPE!

OK, marketing has obviously screwed this all up. Everyone from marketing has gone home at this point so I send an e-mail off requesting corrected files from marketing and prepare to call it a day. But I can't just leave it at that because that would be irresponsible.

I quickly scan the root directory looking to make sure all the swf files are there. Yes. Is the XML file there? Yes. Ok, so banner_rotator.swf should be pulling them in but it's crash... OOOOH NOOOOOO (said in a Tim "the Tool Man" Taylor voice). Suddenly I'm flashing back to the previous Thursday when I'm performing this exact same task. I recall that at that time I was feeling a little "cleany" and I decided that I should go through and remove all the old swf files from promos-gone-by. Sean happened to walk into my cube at exactly that moment and together we review the fifty or so swf files that don't need to be there anymore. Clicking them one by one was going to take too long, so I selected ALL of the swf files and then we went through and de-selected the four required for the next day's A1 rotator. Once I was sure I wasn't going to delete the rotator files, I went ahead and deleted the rest of the swf files. Including the banner_rotator.swf master file that pulls in the xml and the four content swfs. SHOOT!

So I recover the banner_rotator.swf, add it to the root, and send it all back over to Brandon. I follow up with an e-mail absolving marketing and I call it a day. Everything's fine and I even let my boss know what happened assuring him that everything is taken care of. Little do I know...

The next morning as I'm preparing to leave for work I happen to check my work e-mail. The A1 rotator is missing from the site. Apparently the promo push still hasn't run, and the CDN we use has dropped the banner_rotator.swf file since it no longer exists in our build (because I deleted it last Thursday so it was dropped out of the following Thursday's production deploy, which was yesterday). Great. The promo push is about to start though and then everything will be ok. I call a few people and send some e-mails to let everyone know what's going on and leave for work.

When I get into the office I pull up the website and check only to discover that the first spot in the rotation is completely blank. I have several e-mails informing me of this as well. Flash back time... Remember when I renamed the jordan file as part of my debug process? Yeah, me too. Apparently I never put the name back correct but the xml did get switched back. So now I really am missing a swf. I guess the only thing that happens if a swf is missing is that the spot for it in the rotation is just blank. Good thing the only spot that's blank is the very first spot, which is only seen by 100% of our visitors and only clicked on more than anything else in the entire site!

I call Brandon and sheepishly request that he manually go through all 71 instances of our site and rename the file in every one so that we don't have to do an emergency push and incur a fine. Which he does and the whole thing is fixed.

At this point I get up and start looking for my coffee mug. It's missing. I finally stumble across it right next to the coffee machine. Curiously it has a little pile of cream and sugar in it all ready for a cup of jo. It is then that I realize what the root of the whole problem was. I never had my coffee the day before. Why? Because someone took the last of the coffee and didn't start a new pot brewing; when I went to get my coffee the pot was empty. I had started a new pot brewing, got my mug ready, walked away and never came back; resulting in me doing the entire promo push without any caffeine in me. Apparently I just suck without caffeine. And that boys and girls is why you should always start a new pot if you drink the last of the current one. That is also my lame attempt to shift the blame away from myself, lol. No, this was 100% my fault...

10Feb/101

JavaScript Arrays – new Array() vs array literal

1306092411709_a923d

Do not every say new Array() when creating a new JavaScript Array(). There are differences between creating an array in Javascript using the array literal, or the fully qualified "object" name (Array() vs []), and the bottom line is that the "right" way to do it is "[]" (array literal) instead of "new Array()". Here is why:

8Feb/100

TOTW: Dynamic Dummy Image Generator

This week's Tool of the Week is Dynamic Dummy Image Generator.

What it does:

Allows you to display custom sized dynamic images on any webpage using nothing but a normal image tag and a special URL.

When you need it:

  • Mockups
  • Prototypes
  • Place Holder Images

How to use it:

The Example:

6Feb/100

Microsoft Advertisement FAIL

This is just... creepy...

I'm not 100% sure why and I had to watch it a few times before I even realized it was creeping me out... But once I figured out why it was distracting/disturbing me, I realized it was just subtly creepy. It's probably the dark colors the guy is wearing in juxtaposition with the all white background. He looks shady. He doesn't look confident. He looks like he is sneaking. When he walks over to the camera he has to bend down to summon you (It would feel less creepy if you were always at eye level). It feels like you are a kid and some stranger is walking by and bending down into your face and saying, "come on kid, come look what I've got". He's got his hand in his pocket... why? That's creepy. This whole thing feels like a drug dealer trying to get me to come smoke pot/crack/whatever with him. It's just... creepy. Yuck.

Sorry Microsoft... but... FAIL.

Here's the whole ad (I was able to extract it from this page)

5Feb/101

One Click Backup w/ Sabrent & Hitachi – FAIL

I can't get a full drive backup. I've tried multiple settings.

First I tried to backup all files:

It kept failing, presumably because I was using the computer during the backup. So, i finally just backed up only the 50+ GB of images (which was my major focus) successfully, WIN! Then I went back to the task of backing up the entire C: drive. I noticed that you could just do "Newer", which I decided would allow my backup to continue from where it failed.

So, next I tried:

Still didn't work, but at least it didn't re-backup files already backed up. After deleting several files that were causing it to fail (had to go to the command line for these, because windows could not delete/recognize/open them) I again tried the backup. This time it failed on UsrClass.dat (see the actual error below):

Create date/time : 2/5/2010--8:06:21 AM
Error Report of Backup from [C:] to [Z:\Backup_Drive_C]

C:\Documents and Settings\Christopher\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
The process cannot access the file because it is being used by another process.

I thought, hrm... Maybe I'll just run it again. Nope. Still failed. Ran again, still failed. Ok, so I'm going to have to actually do something about the file.

I *almost* tried switching to another product, again, but then I realized this would be my fourth product switch and maybe I should at least give Sabrent tech support a try. So I submitted the following help request through their website:

1. Purchased Sabrent SATA 3.5"/2.5" Hard Drive to USB 2.0 Docking Station.
2. Installed one click backup software
3. Placed newly formatted/partitioned empty drive in dock
4. Began backup of C: drive to drive in dock (Z:)

Expected Result:
Full Backup of C: Drive to Z: drive

Actual Result:
Failed after ~20,000 files with the following error:
Create date/time : 2/5/2010--8:06:21 AM
Error Report of Backup from [C:] to [Z:\Backup_Drive_C]

C:\Documents and Settings\Christopher\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
The process cannot access the file because it is being used by another process.

http://screencast.com/t/N2E3YjdkYz

We'll see how they respond. If I can't get this to work, the next thing I'm going to try is some sort of Open Source drive duplication or backup solution that will let me copy from one drive to another. If that still doesn't work, I'll start looking at commercial, local backup options.

4Feb/106

Downgrading my Mozy account and getting a refund

Let's go on a little journey.

Back in August I heard an advertisement from Carbonite online backup. I thought, you know? What the heck, I've been thinking/worrying about this for two years. I'll give it a try. So I did. Unfortunately, I was in the Firefox web browser. For some reason, you can't successfully download and install Carbonite through Firefox, EVEN THOUGH they have a Firefox specific download page. After 3 days of messing with this, uninstalling, reinstalling, restarting, online chatting (their online chat helper person sucks btw), they FINALLY thought to ask what browser I was in and then informing me it doesn't work with Firefox. CARBONITE FAIL.

So, I went to their direct competitor, Mozy. I signed up for the free 2GB trial account. My backups completed just fine every day for four months. SOLD!

I sign up for the unlimited account. Just the monthly version at this time because I'm a skeptic and don't want to hand them $100 before I even see it work fully once.

After two months of not being able to do a full back up (I actually was able to get 71GB of my total 250GB backed up before it failed one time) I'm ready to cancel. I've already been told by the Mozy support tech I've been bouncing e-mails off of for two weeks that I'll be refunded both payments that I've already been charged.

As I said, I've been bouncing e-mails off of Mozy and they are trying to figure out what is wrong. I've e-mailed them log files, etc, and the last thing they said was there is a conflict with my Symantec (a bunch of errors in their logs). I don't have Symantec installed anymore (I think I uninstalled a month ago) so I was going to uninstall and re-install Mozy, but after I uninstalled I felt I'd rather just opt out of the reinstallation and go with another option.

I went through the online chat to see how that refund they promised me 10 days ago was coming. Then I requested to be downgraded back to the free account (I don't want to delete my account until they refund my money). Here's how that went:

(full chat log):

Please wait for a site operator to respond.
You are now chatting with 'Mubarak'
Mubarak: Welcome to Mozy Live Support. May I have your account email address please?
Christopher McCulloh: REDACTED
Mubarak: Thank you. How are you doing?
Christopher McCulloh: ok, you?
Mubarak: I am doing good. Thank you for asking.
Mubarak: How may I assist you?
Christopher McCulloh: As you may be able to see from my case history, I was supposed to receive a refund for all charges due to the fact that I have not yet been able to complete a backup
Mubarak: Do you have any case ID for the same?
Christopher McCulloh: REDACTED
Mubarak: Thank you, let me check.
Mubarak: I see that this ticket is under research team.
Mubarak: I am checking your account on the Mozy server.
Mubarak: Thank you Christopher, The actual ticket for the refund is REDACTED
Mubarak: I have checked the status and the billing team is working on it to get you the refund.
Mubarak: I will add a note to them about this.
Christopher McCulloh: Ok, how long will that take?
Mubarak: I will update them to make it as quick as possible.
Mubarak: I cannot promise you the exact time.
Christopher McCulloh: ok. Thank you.
Mubarak: Welcome Christopher.
Mubarak: Is there anything else I might help you with today?
Christopher McCulloh: Yes, how do I downgrade back to the free 2GB account?
Mubarak: For that you will have to cancel the existing account completely, or sign up for the free account with a different email address.
Christopher McCulloh: hrm... ok. I'm not ready to do that without having received a refund. Any way to put my account on hold so I'm not charged again?
Mubarak: I will update this request as well to the billing team.
Mubarak: They will contact you via email.
Christopher McCulloh: ok, thanks
Mubarak: Welcome Christopher.
Mubarak: Thank you for contacting Mozy technical support. You have a wonderful day.
Mubarak: Bye.
Christopher McCulloh: you as well.

So, double FAIL, but we'll see how it turns out in the end. Mozy has been more than fair/friendly so far and I will definitely keep them in mind for future backup needs. Let's hope they don't ruin that for themselves by screwing me here at the end...

3Feb/100

One Click Backup w/ Sabrent & Hitachi

I've been trying to get Mozy backup to work for two months now. First of all, my harddrive is 300GB, and apparently this will take two weeks to backup over my connection. On top of that, there is no "start where you left off" feature, so anytime windows downloads an update and auto-restarts, I'm screwed. So, I can either turn that off, or never have a backup. Crap.

Let's try plan B.

Went to Frye's Electronics and picked up a Sabrent SATA 2.5"/3.5" Hard Drive to USB 2.0 Docking Station, which comes with a one click backup button. Then I grabed a Hitachi Deskstar 500GB Sata HDD. Total cost: $99.00.

End goal is to have two or three HDD, once a week I'll click the button and then grab the drive and toss it in my bag and take it to work and put it in my desk and swap it out with the drive in my desk and bring that one home. Rinse, wash, repeat. The other great thing about the dock is that it is scalable and useful. I can back up as many different computers and as much data as I want. I'm only limited by how many drives I want to buy.

So, a little trouble when trying to get the Hitachi drive to be recognized. I had to right click on "My Computer" and select "Manage". Then I clicked on "Storage" and clicked "Disk Management"; Immediately some dialog thingy popped up asking if I wanted to do such-and-such and I said yes (without snapping a screenshot, oops). This was the end result:

It sees this drive as "drive 5". Cool. Whatever.

So, now I right click on the drive and select something about "format" or "partition" (idk, couldn't get a screen-shot, there's only three options, you'll figure it out) and a dialog pops up. I captured some screen caps of what I did along the way. My choices were based on almost nothing other than gut instinct. We'll see how it works out:


(Selected "no" here because I'm planning on this being assigned dynamically because I'll theoretically be swapping multiple drives out here and I want them all to be seen as the same drive by the computer. So maybe I should have chosen "Z" or something, idk...)

At this point I closed out of the dialog assuming I was done. No Dice. When I went back in I saw it was formatting. After about 15 minutes it was only at 8%:

So, it's going to take a while. About an hour later it's done. Apparently bad call on the not assigning a drive letter. It's ok though, I just right click on the drive partition and select "Change drive letter and path..."

And hey, check it out! There it is!

Now I can easily use the software and one button backup that comes with the sabrent docking station.

This step is going to take a while...

About an hour in...

Went to bed, woke up, and my computer had crashed (it does this at least once a week, another reason Mozy wasn't working). So I checked the backup drive. Nope. Didn't get everything. Got about half of everything. Trying again...

1Feb/103

TOTW: Subversion & Subversion Clients for Mac

I did a little research a few months back about Subversion Clients for Mac. I ended up switching to GIT, but since I already had this post mostly finished, here's what I found. This is going to break a little from the traditional TOTW format since it's more of a sampling of a lot of different tools. I've already posted about two of these before...

What it is:
Subversion is a semi-modern version control system. As I said, Git is quickly replacing it as the "next big thing". But if you are going to do version control, and you're not doing Git, you should at least consider Subversion (and I'd stay away from CVS, it's old and borked). It allows you to "save states" of your program. So, instead of "save as" > "myProject1", then "save as" > "myProject1working" and then "myProject1tryNewThing" etc, you would just have one copy of your project/file that you "commit" to your version control. Each commit lives as it's own snapshot so that if you need to go back to another version, you just browse your history and restore that version. You can even "diff" your current version with any other older version to see what you changed if you're trying to figure out how you broke something.

When you need it:
Anytime you do any software project at all, big or small, I'd say you need version control. But here's the bullet list:

Working on a software project:

  • In a group
  • By yourself on one machine
  • By yourself across multiple machines
  • Working on an open source project to help distribute the source code
  • Joining an open source project (if they don't have version control, they aren't worth joining, unless you are joining to set them up with version control ;) )

There's a few options out there, but no clear winner. On Windows, TortoiseSVN seems to be the clear winner, and is a great tool. Nothing stands out this way on Mac. At least nothing free. So here you'll find a list of several Subversion clients for Mac. My favorite as of this writing is Versions, but it costs $60 (there's a free 30 day trial). I recommend setting up a subversion server (either on your local machine, or corsair) and using it. Any job worth having is going to require you to use a version control system, so it's best you become familiar with one now.

Here's a question on StackOverflow discussing these plugins if you're interested in learning a little more.

Using Subversion from command line

Martin Ott's Binaries
Free Subversion Book

Versions

Versions provides a pleasant way to work with Subversion on your Mac. Whether you're a hardcore Subversion user or new to version control systems, Versions will help streamline your workflow. Versions is here now, so say hello to the fresh new look of your repository and start saying less to that command-line interface. Download the free demo to take it for a spin.

SCPlugin

SCPlugin Download

ZigVersion

ZigVersion is an easy to use interface for Subversion, a popular open source version control system. Instead of simply reproducing the command line concepts as a graphical interface, we looked at the typical workflows of professional programmers and designed an interface around them.