Pew Pew Laser Blog - Home

Messages to a Girl.

7.22.2014

Watch this video of some messages a girl hears while growing up. Please watch it.

Here's a rough transcript of the messages she hears growing up:

"Who's my pretty girl?"

"Sammi sweetie, don't get your dress dirty."

"Sam, honey, you don't want to mess with that. Let's put it down."

"Samantha, this project has gotten out of control."

"Whoa, hey, careful with that. Why don't you hand that to your brother?"

Is it any wonder that she goes for the lipstick instead of the science fair? A lifetime of small changes can have huge results.

Additionally, here's an article about the creation of this video.

Content Generators (Serious).

7.12.2014

Do you need some temporary copy or images? What a coincidence - here is a collection of sites which will generate placeholder images or content for you.

Internet of Things "Hack and Tell" Review.

7.2.2014

Last week I went to an "Internet of Things Hack and Tell" at the Makerhaus in Fremont. The event was quite well attended; by my count there were over 80 people there. The hackathon was cleaned right out of sponsored pizza; I was glad I'd already had pre-meetup sushi. There is clearly enough interest here in Seattle to support a Nodebots group.

It was interesting to see all of the projects shown at the event. Here's a rundown of what was demoed:

For the record, many projects were only talked about. Some were too large to mobilize, some were missing parts ("the motor arrives tomorrow"), and some presentations were just a slideshow.

My apologies to those folks whose name / URL I did not get. A couple of folks were given Intel's Arduino-compatible board - the Galileo - at the conclusion of the event. Very jealous!

CSS Hacks.

6.21.2014

In the past, I've used CSS hacks * and _ as a quick and dirty way to make a few CSS changes for IE6 and IE7 only , while preferring conditional comments for larger scale adjustments.

When IE8 came out, developers used another CSS hack (\9;) to target just IE8. But when IE9 came out, it also rendered \9; hacks, which made it the perfect example of an unsafe CSS hack.

Since then, things have only gotten messier for CSS hacks. There are tons of new browsers out there, and IE10 was the last IE to support conditional comments. While CSS selectors still remain fairly ugly, sometimes they're just the tool you need. Fortunately, Browserhacks has pulled all the hacks from all over the internet into one place. And it's on GitHub - so you can add to it.

Google Voice Transcription - Scooter of the Year.

6.11.2014

Here is another hilarious Google Voice transcription of a voicemail.

Yeah, hey hey, it's Chris. We probably knew that So I was thinking, then maybe I would swing by. 3 months or a brewery of similar location for a scooter of the year. And I'm proud so and then maybe you could bring that case, and I can bring some cash so we can just filter little bit. I will have the baby with me so we will need to go to Garrido I was. Beattie's most seem to do so. Gimme a call back.

CSS Magic - border-box.

5.26.2014

With the May 9th 2014 release of Firefox 29, un-prefixed box-sizing is very widely supported by modern browsers; and it's even supported in IE as far back as IE8.

Border box harkens back to the old days of IE, when it incorrectly rendered the box model of an element by including its padding and border in a width. Actually, this "broken" box model is pretty handy - it allows a developer to simply set a width (for example, of 20% for 5 elements inside a parent), use border and padding of any units, and still have everything fit.

Here's an example where box-sizing: border-box; is applied to the second list:

<style>
ul li {
  width: 20%;
  border-right: solid black 5px;
  padding: .25em;
  list-style: none;
  float: left;
}

ul.box-sizing li {
  box-sizing: border-box;
}
</style>

Here's a live demo of box-sizing: border-box;. The Mozilla Developer Network has the details on box-sizing.

Notes - Intro to Node.

5.14.2014

Several months ago I went to a 3 hour Intro to Node.js workshop through Meetup by Ryan Eastridge of Formidable Labs. Here are the notes I took. Beware - without Ryan's walk-though, some of the stuff here doesn't make much sense.

Node's strength is asynchronicity - there is no halt while waiting for a response.

$ node [filename]    #execute that file
$ localhost:8000     #from NOT Node console
var fs=require("fs");
fs.writeFileSync("hw.txt", "Hello World");
#Possible, but use async and callbacks.

Modules installed during workshop: Express, Request, Cheerio. Other useful modules: easyxdm, socket.io, simonl. Also github.com/caolan/async; to avoid callback hell - set up in series.

Shouter: process.stdin.resume(); #Don't exit, wait for input