Pew Pew Laser Blog

Code. Glass art. Games. Baking. Cats. From Seattle, Washington and various sundry satellite locations.

Epic Recruiter Fail.

3.17.2015

Some time last year, I recieved the following email from a recruiter. This was entirely out of the blue; we didn't have any previous contact. Normally I would have deleted the email and that would have been the end of it. But this recruiter had sent their form letter to over 200 email addresses, and used the CC field instead of BCC. Presented here are the reply all responses that people sent. (I have removed the names and scrubbed the language from this exchange.)


Title: PHP Specialist

From: John Doe

To: [blank]

CC: [200 person mailing list]

Date: May 20

Hello,

I found your resume in our database, while I was searching for PHP Specialist in the greater Seattle area. This is a very unique and they are looking for someone who can jump in and make a difference right away. I would love to tell you more about this position, if it is something you would be interested in. I don't know if you are working right now or not, but we are moving very quickly on this opportunity. If you are interested please send me a revised resume, the one I have is old..

Also, if you are not interested in this opportunity I would suggest connecting with me on LinkedIn because I add positions there all the time.

www.linkedin.com/john-doe

Thank you and I look forward to hearing from you soon.

John Doe
Technical Recruiter
LinkedIn URL
Company Website URL
Mobile: (999) 123-1234
Office: (999) 123-1234


From: Annoyed Prospect #1

Date: May 20

To: [entire mailing list]

I don't live in WA and I'm not a PHP specialist. The one experience I had of contracting through [your company] was the worst in my life. I will never work with you again. Thanks for flashing my email to your spam list. Please don't ever contact me again.


From: Annoyed Prospect #2

Date: May 20

To: [entire mailing list]

Same boat as Annoyed Prospect #1, you should be ashamed of your tactics. Please add me to your Do Not Contact Ever list.


From: Annoyed Prospect #3

Date: May 20

To: [entire mailing list]

Wow look at that. Another one. Get the **** off out before I blacklist you with the PHP community. You are an under experienced idiot who has no idea how to do his own job. Just quit and find a new profession like food service.


From: Annoyed Prospect #4

Date: May 20

To: [entire mailing list]

And they don't have enough sense to use BCC instead of CC.

Hi everybody. Hope you're amused by this scum!


From: Annoyed Prospect #5

Date: May 20

To: [entire mailing list]

I don't live WA either. please remove my email from your list.


From: Annoyed Prospect #6

Date: May 20

To: [entire mailing list]

Everyone quick, grab a pitchfork!


From: Annoyed Prospect #7

Date: May 20

To: [entire mailing list]

Wow, there's a PHP "community?" Do you have cookouts and meetings and things? Can I join?


From: Annoyed Prospect #8

Date: May 20

To: [entire mailing list]

Lol funny! I used to do a lot of pup but I'm into software programming now, mainly C sharp and C++. Where is the programming community? I want some BBQ!


From: Annoyed Prospect #9

Date: May 20

To: [entire mailing list]

Thanks a lot for giving everyone my email address. lol


From: Annoyed Prospect #10

Date: May 20

To: [entire mailing list]

Well, quite the response. And no inspiring confidence in this company. But yeah, I was amazed this was just CC'd to everyone... Very unprofessional, impersonal, and a complete disregard of people's information.

I am requesting you remove my old resume, email, and every other piece of information you have about me. I will check into it a month or so down the road and them go from there if you have not done so.


From: Annoyed Prospect #11

Date: May 20

To: [entire mailing list]

How thoroughly amusing! Thanks everyone! This just made my day! J

And John Doe, I would take these good ppl's advice and find another job?


From: Annoyed Prospect #7

Date: May 20

To: [entire mailing list]

Funniest thing is I *am* in WA state, but I don't "do" PHP. I have it on my resume as something I'm familiar with, due to my WordPress development - but I'm not, by any stretch, a PHP developer.

Still, if there's a BBQ, I'll bring the dessert. :)


From: Annoyed Prospect #2

Date: May 20

To: [entire mailing list]

At this point, I say we have a BBC for all non-PHP people in WA state!

Recruiters not invited, sorry John Doe, but the people you need won't be there anyway.


From: Annoyed Prospect #7

Date: May 20

To: [entire mailing list]

This **** was a pain in the ***, but in the end (haha) it was pretty funny. A nice break in the day....


From: Annoyed Prospect #2

Date: May 20

To: [entire mailing list]

Agreed, I'll stop pinging everyone's mailbox and put it to rest.

No actual hard feelings, John Doe, we've all made mistakes, and I know I've hit reply all once on accident.

Hope everyone has a great rest of their week, and successful endeavors in their career.


From: Annoyed Prospect #12

Date: May 20

To: [entire mailing list]

Wow, 198 recipients in the CC header. How very retro.

As you can see, John Doe, we tend to be a bit touchy about this sorta thing. Nobody sends out mass emails in this fashion anymore. I'm sure you didn't mean to offend anyone, but I'd strongly suggest you send out a quick apology to everyone for the faux pas, since the last thing you want as a recruiter is to alienate so many of the local talent.

In the future, you should look for more modern tools for sending out recruiting emails to people on your list. These mass emails are very common and largely tolerated (more or less), but they should go out to one person at a time. Having them all in the CC like this is a violation of people's privacy, because now everyone you sent that email to can see everyone else's email address.

I tend to be more forgiving than most people so you and I are still cool. I can't speak for everyone else, though. =)


From: Annoyed Prospect #3

Date: May 20

To: [entire mailing list]

Touchy my ***. **** this guy I hope he chokes to death on a pile of his own vomit. In the future he should do us a favor and remove himself from the breeding population.


From: Annoyed Prospect #10

Date: May 20

To: [entire mailing list]

Yeah... I live in Seattle and am a PHP "specialist" but contract work is terrible. Might have done it years ago but no way I'd do it now.


From: Annoyed Prospect #2

Date: May 20

To: [entire mailing list]

Annoyed Prospect #3, I feel sorry for any company hiring you, as your attitude is deplorable. Wishing ill on someone because they made a mistake like pasting into the wrong field...especially with such vitriol, is extremely unbecoming of an employee, contractor, or even a human. Should I ever see your resume come across my desk,I shall be sure to pass it by. I humbly suggest you seek counseling, and you will be in my prayers.

John Doe, this man's threats and anger are not echoed by any sane person on this thread.


From: Annoyed Prospect #12

Date: May 20

To: [entire mailing list]

I can vouch for Annoyed Prospect #3's character. He's just using hyperbole to drive the point home that this sort of recruiting tactic is extremely unwelcome in our community. I don't think any reasonable person would take his vomit-choking remark as any kind of actual threat.

And it's entirely possible that I'm being too nice about the whole thing. People like Annoyed Prospect #3 have every right to be angry at this sort of thing. I agree with you Annoyed Prospect #2 that it was probably just a stupid mistake and I'm certainly willing to forgive and forget, but there's no harm either in sending a clear and resounding message that this sort of thing will not be tolerated.

Now, everyone, let's all chill and play nice. Annoyed Prospect #3's a good guy and I'm sure this John Doe fellow is, too. Just don't ever do something like this again, John Doe, and we'll all live happily ever after. An apology would certainly help, though. =)


From: Annoyed Prospect #3

Date: May 20

To: [entire mailing list]

Thanks Annoyed Prospect #12, I'm just mad over exposing sensitive information to a large group who knows how to leverage it. Literally it makes me ill to think about it, or how it can be taken advantage of.


From: Annoyed Prospect #8

Date: May 20

To: [entire mailing list]

Wow, this stupid chain letter got my ****** account disabled for a few hours!

Can you like learn to not send giant chain letters? Holy crap!

Colorblindness Simulation with JavaScript.

3.7.2015

Around 4% of humans have some form of colorblindness. Since that's a significant portion of your web site traffic, it's probably worth doing some testing for how your site would look to those users. One way is the simulate.js from http://mudcu.be/labs/. For each image in an array of images, this JavaScript adds a new canvas element with shifted colors. Below is an example usage for Deuteranope type vision. The script also includes functions for Protanope and Tritanope type vision.

var images = scope.getElementsByTagName("img");
for (var i = 0; i < images.length; i++) {
  Color.Vision.Simulate(images[i], {
    type: "Deuteranope",
    callback: function(canvas) {
      document.getElementById("lid_623").appendChild(canvas);
    }
  });
}

Below is the script in action: the fruit bowl and rainbow images are shown normally, and below each is simulated with deuteranopia, protanopia finally tritanopia.

Alessi fruit bowl, filled by Dirk Ingo Franke / CC 1.0 Public Domain http://commons.wikimedia.org/wiki/File%3AFruit_basket_alessi.JPG Rainbow from Budapest by Takkk / CC 3.0 http://commons.wikimedia.org/wiki/File:Rainbow_in_Budapest.jpg

The canvas element seems a tad unreliable - refresh the page once or twice to get the new images to load. It also can't be added when Codepen.

Why I Finally Switched From GoDaddy.

2.20.2015

I'd been using GoDaddy as registrar and host for several years. But a few months after I wrote Why I Still Use GoDaddy, For Now., I switched most of my stuff away from GoDaddy.

I had started having more technical problems with the blog hosting (some URL re-writes were failing). I'd identified that the cause was somewhere in the domain's configuration (not in my .htaccess file) by deleting .htaccess. I contacted GoDaddy's tech support (usually quite helpful), but after a few go-arounds, they declared that it was a code problem. I did technical support for years; I know when I'm being flushed.

As a female human, I'd felt un-valued by the company for a while. Then LifeHacker ran a DreamHost promo which brought the costs down to something that my inner cheapskate could deal with, so I said so long to GoDaddy. Getting everything set up at DreamHost was a breeze, and naturally, there were no URL rewriting problems over there.

PS - here's my referral link for DreamHost, if you're into that sort of thing: http://www.dreamhost.com/r.cgi?1495678.

Speaking - Your Talk Has Been Accepted.

2.8.2015

If you keep writing and submitting talk proposals, you'll suddenly find yourself having to write and present that talk. Here's what that phase of speaking can look like:

More on Talk Preparation:

Vertical Centering is Solved.

1.26.2015

Every once in a while, I see a passing reference to how impossible it is to center something vertically using CSS. But vertical centering isn't difficult, not anymore. Here are some methods for vertical centering using only CSS (even on elements of unknown height) which are completely feasible for most sites.

Flex

Flexbox makes it dead simple to vertically center an element. Assuming you've got a height (even in % or rems), just throw display: flex; on the outer element, and margin: auto; on the inner element. This uses the flexbox mode, which is pretty well supported as of IE11, Firefox 33, Chrome 11, iOS Safari 7.1, and Android Browser 4.4.

Translate

The 2D transforms offer wider browser support (adding IE9, IE10 and Android Browser 4.1+) and a slightly more complex implementation. Put any height and position: relative; on the outer element, and these specifications on the inner element. This still works when the inner element is using an unspecified (or auto) height. Example:

position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

In case you need even more options or details on these solutions, I've detailed more methods here on Codepen.

Ebook Reader (for iPad) Findings.

1.16.2015

I had been doing a lot of ebook reading on my iPad, but sometimes the experience was lacking due to the ereader application that I was using to read the book. Since then I put a variety of ereaders through their paces with various file types, and what follows is a summary of my findings.

Conditions

I only evaluated iPad ereaders. My primary use for ereaders is for technical books, with fiction novels being a less common use case. As such these were the features I cared about:

Apps tested

These were the applications I considered:

Conclusions

Dice Masters Constructed Deck Review - January 2015.

1.6.2015

January Dice Masters Deck I went to a constructed deck tournament for Dice Masters this weekend. I had fun, but didn't expect to lose so much. Here is a review of the cards I brought, and how effective they were in play.