Pew Pew Laser Blog

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

Building Community.

5.19.2015

Here is a collection of thoughts and resources for building your local technology / development community.

Organizing Conferences & User Groups

Building an online community

CSS Conf AU 2105 Talk Notes.

5.8.2015

March was a busy month for me. In addition normal work, curating CascadiaFest (closing the CFP and reviewing all the talks) and various meetups in Seattle, I spoke at CSS Conf AU 2015. I was absolutely gobsmacked to that my talk proposal was selected, and thrilled to present a full-length version of my lightning talk from SassConf. CSS Conf AU was a wonderful conference - my deepest thanks to the entire organizing team who did an excellent job of making the speakers feel welcome and putting on a first class conference for their attendees.

As seems to be my habit when speaking, I had a fairly serious case of the "speaker dumbs" and didn't manage to pay the greatest attention to the other talks. Oh well, here's hoping for the videos to come out! Here are the notes that I took away from CSS Conf AU 2015:

CSS for Humans - Matt Sawkill

4 1/2 Methods for Theming in (S)CSS - Harry Roberts

Newton Meets CSS - Evangelina Ferreira

Delivering Responsibly - Scott Jehl

Fundamentals of Front End Ops - Ian Feather

Bye-Bye Bootstrap Bloat - Fiona Tay

Let's move! - Benjamin De Cock

Building Better Interfaces With SVG - Sara Soueidan

Sara's talk was outstanding. I took so many notes for her talk that it deserves to be broken out in its own post. So I will publish something in the future.

Efficient Web Type, c. 1556 - Kenneth Ormandy

Invisible animation - Steven Fabre

Systems Thinking (Going Out on a Limb) - Claudina Sarahe

A CSS Eulogy - Michael Riethmuller

Clean and Simple - Justin Ouellette

Moving towards web components - Andrew Betts

Open Source Design: A Call to Arms - Una Kravets

Notes On Image Spriting With Compass And Sass.

4.25.2015

I found some old notes from the last time I had to sprite some images using Compass for Sass. It was a success, and I noted two things to share with you.

Dice Masters Rainbow Draft Strategies.

4.12.2015

A rainbow draft is a nice format for a Dice Masters event. Each player gets to open 12 booster packs (always fun) and choose cards from among the packs that all the players opened. (Details). Players make a tournament-legal team from their drafted cards and any 2 Basic Actions from their collections, and then play some games.

With the draft format, players can't use the deadly Super Rare cards from their collections, so the format tends to be a little more even than fully-constructed tournaments. It's also an excellent way to fill in holes in your card collection. But there are a few strategies to keep in mind:

Alt.Swag for Conferences.

3.30.2015

Alternate Conference Swag At this point, most developers already have more t-shirts than they can possibly wear. So if you're organizing a conference - or a sponsor looking to stand out - consider some alternate ideas for conference swag:

Stickers! (Everyone)

Developers love stickers, and they're relatively cheap. Just be sure to get some fairly sturdy ones that won't fall apart after some abuse.

Sources: Sticker Mule.

Water bottles (Cascadia JS)

Save the environment by providing nice refillable bottles instead of all those plastic bottles.

Sources: Mizu, US Imprints

Notebooks (Nodevember)

It's a bit old-fashioned, but I still prefer to take notes on good old paper. I can freeform the notes without worrying about formatting, and I don't get distracted as when I'm on the computer. Notebooks are also a great place for all those stickers!

Sources: Chameleon Like, Bound Custom Journals, Poppin, Field Notes.

Pens!

How else am I going to write the notes?

Swag bag (Cascadia JS, SassConf, Nodevember)

Everyone loves a nice sturdy bag to hold all of the stuff they accumulate at a conference. Also these are great for re-use at home or later during the conference trip.

USB Battery (Nodevember)

A their booth, one of the Nodevember sponsors was giving away a very handy rechargeable USB stick.

Sources: Branders, 4 Imprint, Print Globe.

Taster glasses (Nodevember)

I got a lovely little taster glass from the closing Nodevember party. They also have mustache-shaped bottle openers, if that's your thing.

Sources: Clear Water Gear, Discount Mugs, Yankee Schooner

Hoodies! (Cascadia JS, SassConf)

A very cool item. They're fairly expensive, especially the Cascadia Fest ones with the customized sleeves. But this can be a special item for speakers, or super-early ticket buyers.

Earbuds

I got some branded earbuds from a conference, but sadly none of the silicon tips fit my ears.

Books! (SassConf)

Many a publisher can be talked into providing a few copies of a book as a give away. And O'Reilly will give free e-books to communities.

(The above photo was taken before CSS Conf AU, but I really dig the enameled coffee mug, sturdy shopping bag, and custom lapel pin that they gave out!)

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.