Posts Tagged as: blog

January 19, 2020

The Great Asshole Purge of 2020 and Beyond

What the world needs now is another cis white dude explaining mansplaining.

But I made this thread with the goal of reducing both mansplaining AND assholes, and think it might help your inner monologue whenever you’re interacting with others, regardless of how you self-identify.

January 1, 2020

How to fix a Boss RC-1 Loop Station when it’s not working

I recently bought one of these guitar pedals and I’ve been really pleased. But a few days ago it started acting funny; loops were getting interrupted midway, the circular LEDs on the display wouldn’t match the duration of the loop that was playing, and the whole thing was just acting weird.

After lots of fruitless Googling for a solution, I was ready to return it as a dud. But then I came across this video that showed what I was doing wrong, and fixed it in about a minute.

Hopefully others who are having trouble with a “broken” Boss RC-1 pedal will come across this post and this video.

Rock on.

December 28, 2019

Storing Time-Series Twitter Engagement Data in a Graph Database

I wanted to better understand how Tweets get traction, and how that contributes to people’s follower counts. So I wrote some Node.js code that connects to the Twitter API every so often, looks at the people I follow and their tweets, and saves the results into my favorite graph database software, Neo4j.

Editor’s Note: Neo4j is not paying me for this post, but they totally should.

It took some trial and error, but I’m pretty happy with the schema I’m using. Here it is.

Every time the data is fetched from the Twitter API, a new “Timestamp” node is created. That node has 2 connections from the User node and the Tweet node, and the actual stats about the user and the tweet are stored in those 2 connections. That’s the magic part, so I’ll reiterate: The time-series data is stored inside the connection, not the node.

(The files are insiiiiiiide the computer….)

Let me explain with pictures.

For this example let’s use one of my favorite high-profile data scientists, Max. Here you can see Max (in green) posted a tweet (in blue). But let’s look at those connections to the tan timestamp node below.

In the screenshot above, I’ve clicked on the connection between the tweet and the timestamp, so you can see the data it contains. You can see it’s got one favorite and no retweets.

Now, in real life I go ahead and like that tweet, run my script again, and let’s see what happens…

Holy shit it worked! There’s another timestamp node. And when you click the connection between that new timestamp and the tweet, you can see the new favorite count.

So that’s the basic technique. You can see that the same approach works for tracking follower growth too. For example:

There are more complicated ways of storing time-series data in graphs (Google “time trees”) but this simple approach seems to be working well for me, and will hopefully yield some interesting results.

So that’s it. That’s the post.

(PSSST: I’m having lots of fun with this nerdy graph stuff and will be posting more in the future. For updates you should follow me on Twitter, where you bet your ass I’m tracking my follower count using this technique.)

December 20, 2019

Getting fancy with CSS’s Position Sticky

Yesterday we published this ambitious story on Esquire about competitive yoga, which apparently is a thing that exists.

It’s the result of an experimental collaboration between a few different departments within Hearst Magazines, each possessing vastly different skillsets but all sharing a love for quality storytelling. The goal: Abandon the various elements on a modern webpage that compete for your attention (ads for instance – of which this article has none) and just tell a damn good story.

I’m proud of how it turned out, and wanted to share some learnings about the nerdy CSS stuff featured in the story.

One of my favorite parts of the story are these little parallaxy breaker images. Parallax can be a dirty word in web design because it’s so easy to screw up, but we developed this method that adds some slick visual candy to the page without performance costs on modern browsers, so I thought I’d walk you through how it’s done.

Ready? Ok, let’s go.

The first step is to get CSS “position:sticky” working in a basic way. In this example, the blue box is sticky and the image element is its sibling. They’re wrapped in a div, which is important to get sticky positioning to work.

Now that the basics are working (and we have silky-smooth browser-native scroll behavior with no JavaScript!) we just need to move things around and adjust margins and padding. Here we go…

First we want the text to be positioned in the center of the screen. We change it from “top:0px” to “top:50%”, and we get this:

The blue box gets sticky at around the right place, but it leaves an ugly gap; that’s where it “lives” in the document flow. So how do we fix that? Easy! Just put a negative margin on the top of the parent wrapper!

To visually clean this up, you can put a white background on whatever div you’re invading with your top negative margin. Then you’ll have something like this…

Ok, so now the text enters the image smoothly but exits lamely. Let’s make the bottom as smooth as the top.

If we add some extra height below the image, it will scoop up the text instead of the image itself. Badass.

To hide that text below the image, we can apply a negative margin just like we did at the top of the parent element.

Sweet! But we’re not quite done… What happens if the user resizes the browser and the height of the box changes? Since the size of the top/bottom margins depends on the height of the text box, this would throw off the vertical alignment. For example:

So how can we fix this?

Who gives a shit!

Kidding… Of course you give a shit. That’s why you’re still here.

Here’s where some sparingly-used JavaScript can come in handy. When the page is resized, you can dynamically calculate the height of the text area, and use that value to set the negative margins we hard-coded above. (Just make sure to “debounce” your function otherwise you might crash someone’s browser and look like a fool.)

So the only thing left is the transparency part. The trick here is to bust out Photoshop and replace the main image with a semi-transparent image, which will become the “foreground”. Then you use the regular image and absolutely position it in the parent container as the “background”.

After some z-index fiddling, you’ve got your effect. The more you mask out of your foreground image, the cooler the effect will be.

(I was lucky to work with Mike Kim, whose attention to detail is amazing. Anyone that can silo hair wins at Photoshop.)

I hope this was helpful. If you have any questions or want to show off anything cool you’re making with CSS position:sticky, hit me up on Twitter.

April 30, 2019

The Death of Dashboards

Last week I had the privilege of speaking at Slack’s yearly conference about some of the fun stuff I’ve been working on at Hearst.

There’s such great energy and momentum around Slack and the community of users and developers. It really feels like we’re in the infancy of redefining “work”.

“Dashboards are where data goes to die” is a bold statement. So I’ve been walking the walk, getting my hands dirty with graph databases and conversational UX. Excited to see where this leads…

February 20, 2019

Judging People Who Don’t Exist

TLDR: I made a thing and it got some press.


Judging people by their appearance feels icky. Why? Because there’s more to people than their looks; we need to consider the whole package.

(“But they have such a good personality!”)

But what if someone exists in appearance only? A cover without a book, solely for your judgement?

That sounds like a fun place to make guilt-free snap judgements, so I built it!

Please enjoy “Judge Fake People“, a place where you can vote on the appearance of people who don’t exist.

Background

Like many internet addicts, I was blown away by NVIDEO’s demo using style-based Generative Adversarial Networks to generate faces. They seem to have crossed a threshold for generating artificial images that can genuinely fool our brains.

Flash forward to last week when I saw Philip Wang’s amazing single-serving website thispersondoesosxist.com.

It was fascinating to see a photo-realistic face of someone that doesn’t exist. Philip’s writeup does a great job explaining his motivations and this implications behind this groundbreaking technology.

But I just wanted to turn it into hot or not.

So I wrote a script to download an image from thispersondoesnotexist.com every 5 seconds and built up a collection of around two thousand fake people. Then I made a voting system with php/MySQL and some filters to show the highest and lowest rated faces. And I enabled comments just for fun.

So sit back, relax, and enjoying rating the attractiveness of people who don’t exist right here.

November 11, 2014

First Steps in One World Trade Center

I’ve been literally watching One World Trade Center take shape since construction started. So today when I got the chance to spend a few moments in the building for the first time, I excitedly snapped a few photos with my phone.

The lobby is huge and gorgeous. It smells like a mixture of β€œnew car smell” and fresh paint.

Security was very nice but not very subtle. When I entered from the street a few large (but kind) men slowly descended upon me and guided me to the main security desk.

Once past security I was in the elevator bank. The elevator buttons are presented on a touch screen, and you’re only shown the floors relevant to you.

Inside, the elevators don’t have many buttons.

Welcome to New York. Welcome to New York.

From inside the building, the only subtle reminder you’re in such an iconic piece of architecture (besides the view) are the gradually sloping corners, which are a cross section of the building’s overall unique geometry.

Not a bad view.

September 8, 2014

Poorly Drawn Comic

This scene popped into my head and I felt compelled to make a poorly drawn comic about it. Enjoy!

comic-1

July 29, 2014

Messing With a Bitcoin Scammer

It’s been a while since I last messed with an online scammer, but today when I received a known phishing attempt I decided to have a little fun.

The correspondence didn’t last particularly long and I doubt I’m getting a final response, but here’s the full conversation below. I also reported the email address to Google as a phishing attempt. (My responses are in green, the scammer is in red.) Enjoy.

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Fri, Jul 25, 2014 at 11:00 AM, Coindesk wrote:

Hello, we would like to offer one of our advertising opportunities – Reviewed by CoinDesk.com
Includes – Full review of your website, security, services, payment options and many other, It depends on your business type.
Review is about 8000-14000 characters.
Price depends on a company type. Contact us for more information.
Banners for sale.
CoinDesk Ltd

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Fri, Jul 25, 2014 at 11:06 AM, Bitcoin Megaphone wrote:

Hello,
Could you send me an example of one of these Reviewed by CoinDesk articles? Where do they appear?
I might be interested in one for bitcoinmegaphone.com. What are the rates?
Thanks,
Mike

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Fri, Jul 25, 2014 at 12:05 PM, Coindesk wrote:

Hello. Thank you for answer.
This review was for gambling site – http://www.coindesk.com/new-satoshidice-owner-launches-tribute-game/
This costed 0.4 BTC
CoinDesk Ltd

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Tue, Jul 29, 2014 at 8:25 PM, Bitcoin Megaphone wrote:

Awesome, thanks!
OK, I’m in. How can we get started?

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Tue, Jul 29, 2014 at 1:38 PM, Shakil Khan wrote:

Hello,
Please make payment to Bitcoin address below.
1HQ8jcCAmYE5pWxt5T16Xx5GJ3bjiPmKg5
After payment notify us.
Best Regards

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Tue, Jul 29, 2014 at 8:49 PM, Bitcoin Megaphone wrote:

Ok cool. I’m getting the payment ready now. Just to confirm, it will be .4 BTC ($233 USD), correct?
Also, one more quick question about the bitcoin payment… I’m going to send the money to 1HQ8jcCAmYE5pWxt5T16Xx5GJ3bjiPmKg5, but what address should I send it from?
Thanks!
Mike

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Tue, Jul 29, 2014 at 1:51 PM, Shakil Khan wrote:

Hello,
Everything is correct and you can pay from any of your bitcoin addresses.
Best Reards

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Tue, Jul 29, 2014 at 1:59 PM, Bitcoin Megaphone wrote:

Gotcha, thanks.
Ok, setting this up now… Just a head’s up my handwriting’s pretty bad lol!!
~Mike

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Tue, Jul 29, 2014 at 9:12 PM, Bitcoin Megaphone wrote:

Sorry to bombard you with questions…
How much postage do you recommend? (I want to make sure the transaction goes through but don’t want to waste any money…)

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Tue, Jul 29, 2014 at 2:15 PM, Shakil Khan wrote:

Hello,
0.0001 will be enough.
Best Regards

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”
On Tue, Jul 29, 2014 at 2:36 PM, Bitcoin Megaphone wrote:

Ok, thanks. I’m about to send the payment (see attached image for proof) but I have one more question – can you wait until Monday to publish the article? I’m going to be traveling with spotty internet this weekend and want to be available if any server issues come up.
Thanks,
Mike

β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”

And here’s the image I attached. (I have yet to receive a response.)
coindesk-payment

May 5, 2014

Chainlinking

As far as I can tell, there’s no word for that thing when a website links a few consecutive words of text. For example, if I was talking about Charlie Sheen I might mention he’s a had some trouble with the law. (See what I did there?)

So I’d like to formally submit my term, “Chainlinking”:

Chainlinking. When a website hyperlinks a few consecutive words, usually to provide background on a topic. Often snarky. Usually annoying.

Lastly, I should add that there’s another definition for chainlinking on Urban Dictionary. My definition is decidedly different, and has nothing to do with a bunch of dudes blowing each other.

July 8, 2013

Zomies and Fluid Dynamics

I haven’t seen “World War Z” but some of these effects look amazing.

June 3, 2013

Iris Smyles and Dave Hill at The Strand

If you’re in New York this Thursday, check out this event at The Strand with authors Iris Smyles and Dave Hill. If it’s half as awesome as the poster then you’re in for a treat.

June 2, 2013

A Million Dollars Isn’t Cool…

I just found out about this 2009 art piece called “One Billion Dollar” by conceptual artist Michael Marcovici. It’s described as consisting of 12 shipping pallets stacked with 10 million hundred dollar bills, making it the most expensive piece of art ever. Conceptually it’s pretty cool, and reminds me a little of Damien Hirst’s For the Love of God, a skull covered in diamonds with a value of around $100 million.

But I was curious – who fronted the money for “One Billion Dollar”? Maybe it was a government? Or a fabulously wealthy art fiend?

Well it turns out nobody did. The art piece isn’t real money at all, but a small scale sculpture as I discovered in this video, screenshot below:

In any case, it’s still an interesting concept for an art piece. If you’re interested in visualizing more money, check out the amazing site Demonocracy.

Things To Do In Portland

If you’re planning to travel to Portland (the Oregon one, not that lame-ass place in Maine), keep this blog post handy. Before a recent trip a friend of a friend sent me this incredibly extensive and helpful email with restaurants, activities, and suggestions, which I’ve broken up and hyperinked just for you.

The greatest thing about this list is it’s from an actual Portlander, not some guidebook. So consider these suggestions properly vetted. Enjoy, and keep Portland weird.

Outdoor Activities

Timberline Lodge

Go up Mt. Hood to Timberline Lodge – you can ski year round if you want or just hang at the gorgeous lodge and get some food and drink and walk around in the snow.

Multnomah Falls

Multnomah Falls is very cool to see – about 30 minutes from downtown up the Columbia Gorge – take the scenic route. You can walk a nice paved trail up to the top.

Angels Rest

Angel’s Rest is a popular hike.

Pony Tail Falls

Pony Tail Falls is a cool fall that you can go behind. It’s part of the Horsetail Falls Loop. More info here.

Pittock Mansion

Pittock Mansion is a cool mansion in town with views of all the mountains.

Forest Park

The rose garden up in forest park/washington park is nice.

The drive straight out route 26 to the ocean to Cannon Beach is spectacular! 1.5 hours – gorgeous drive – Sleepy Monk Coffee House is amazing! It has a restaurant/booze too I think…. easy to park right next to that and they’ll point you to the beach!

Beer

Cascade Brewing

Cascade brewing is pretty cool – right in town on Belmont – known for interesting Belgian sour beers.

Base Camp

Very close to that is a new fun brewery called Base Camp – great outdoor area and a pizza truck right there – great if the weather is good.

Prost!

Prost! seems cool on N. Mississippi.

Upright Brewery

Upright Brewery is a cool cavernous brewery in a building on Broadway – really nice beer – only open on weekends. Broadway is a nothing busy street but very close to North Williams which has lots of food….

Restaurants

Clyde Common

Clyde Common is a restaurant in the Ace Hotel – reallly good food and fun and good cocktails…… go there!

Beeker and Flask

Beeker and Flask is near that Basecamp Brewery – great restaurant and attached behind it is a place called Rum Club with all fun rum drinks and they spin old vinyl – cool.

Le Pigeon

Le Pigeon – seriously awesome! Go. Best restaurant in town – chef wins awards – not pretentious – open kitchen behind bar to watch him cook.
It’s On East Burnside next to the Jupiter Hotel which houses the Doug Fir Lounge and band venue – Doug Fir is fun to hang at – outdoor fire pit etc…

Little Bird Bistro

Little Bird Bistro is a good restaurant downtown. Sister restaurant to Le Pigeon which is famous. Johnny the bartender/part owner is awesome – he used to run the bar at Clyde Common.

Biwa

Biwa is a great looking Japanese Izakaya in Southeast Portland – cool cement industrial chic basement – yummy food – not too expensive.

Miho Izakaya

Miho Izakaya is an awesome Japanese restaurant – Izakaya is Japanese comfort food. It’s in a renovated bunglow house – we love it!

Por Que No

Por Que No is great taco restaurant on Hawthorne around 46th or 47th. There is one on Mississippi Ave as well. Fun “Mexican” and big margaritas – fun people watching.

Neighborhoods

Check out Alberta Street for sure – I’d say Alberta is cooler later in the day. Salt n’ Straw Ice Cream is great. And Random Order Cafe on Alberta at 15th is great. Sweet and savory pies and really good bloody marys and other yummy coffee drinks – alcoholic or not….. lots of cool shops and bars.

All the way from 33rd Ave to 10th Ave there is cool stuff. Zilla Sake restaurant is next to Random Order too – lots and lots and lots of sake and sushi – cool place.

Pok Pok on SE Division Street is fabulous and delicious – he just opened 2 places in NYC – SE Division has lots of cool bars and stuff from 33rd up to almost 50th….

Pok Pok owns a bar across the street called Whiskey Soda…. The Woodsman Tavern on Division is nice – I’ve only had raw bar and cocktails – menu seems so so to me. Cool tho….

Ava Gene’s is new fancyish Italian – not sure how Italian really.
Cibo is really nice big clay oven for pizzas and other roasty toasty things. Around division and 37th – Urban Winery is right around the corner. Pok Pok also opened a funky noodle house on Division at 34th.

SE Clinton St. has cool places to eat at 26th (like Broder) and at 20th (St. Jack to eat and drink) Nite Light Lounge to eat and drink (Night Light is our favorite bar).

Hawthorne Blvd between 34th and 38th is very Portland – a fun street.
Hit that Powell’s Books right there. Get a waffle at the Waffle Window right off Hawthorne on 36th.

Close to Hawthorne is Belmont. SE Belmont St. between and 32nd and 34th is cool. Some bars and shops.

N. Mississippi Ave is a cool street of shops and restaurants.

N. Williams is a street with restaurants etc…. Tasty and Sons, Eat, Lincoln

SE 28th Ave between Burnside and Glisan has a bunch of restaurants, bars, and shops and cafes…..

East Burnside has a bunch of restaurants too – intersects 28th…..

Walk around the Pearl district in the NW section around 13th Ave and Everett – our SoHo. It’s where Wieden+Kennedy is.

NW 23rd is our preppier shopping street – not sure for the boys – like Newbury Street in Boston – lots and lots of shops – Besaw restaurant is good for apres strolling….

Band Venues

Doug Fir

Mississippi Studios

Mississippi Studios has a cool bar called Bar Bar attached.

Wonder Ballroom

Secret Society is a popular bar next to it…. you can grab the WW (Willamette Week – our Village Voice) for listings.

And lastly, make sure to check out Moonbrine Pickles, the best pickles in Portland.

May 14, 2013

Iris Has Free Time

Hot off the presses is the first book by Iris Smyles, Iris Has Free Time.

Of writers, people often says they’re the “voice of a generation” and other platitudes meant to sell books, but in Iris’ case she might be the genuine article. Plus, I know her in real life which makes me pretty cool.

Check out the book – it’s a fantastic read.

May 13, 2013

Kanye West Hitting His Head Ringtone

Apparently Kanye West hit his head while trying to avoid photographers today. So I thought it would be pretty cool if I made a ringtone from it.

Here’s the official Kanye West Hitting His Head Ringtone. Download it and have some fun.

April 6, 2013

The Funniest People on Vine

To me, Vine is a proving ground for some seriously funny people. Some of these folks you might know, others you definitely don’t. Fire up your iPhone and follow these goons immediately.

Jacy Catlin
I definitely get a Rob Delaney vibe from this guy. He plays a great straight man. I love when he shows off his tattoos and reviews nasal mist.

Will Sasso
Recently infamous for his lemon videos, he also does a mean Arnold Schwarzenegger impression.

Max Burlingame
Outrageous, shameless, and sloppy. The humor is a bit “high school” but it works great with the 6 second format. Also love his take on the Will Sasso lemon thing.

Chris Delia
Yeah, he’s the guy from “Whitney” but he’s a pretty good standup comic. I love when he dares people to get close to strangers with their phones.

Jerome Jarre
This French entrepreneur isn’t a comedian, but there’s something about his aloofness that cracks me up. I’m surprised his signature move of yelling in public, then showing his big smiling face hasn’t become a meme like planking.

Nicholas Megalis
Creepy, offbeat, and gnarly like that high school kid who set things on fire. He also sings a lot.

James Urbaniak
An esteemed voice-actor. Kind of a John Hodgeman vibe.

Ry Doon
A commedian from Boston. He can be extremely irritating, but he does a great Jay-Z impression, among others.

Nick Confalone
Uses his baby to craft fun little short stories.

Jordan Burt
Apparently he’s big on YouTube. Plays a great nerd. The first time I saw Dennis I nearly shat myself.

Michael LoPriore
Gangsta slapstick.

April 5, 2013

Listening to a Record from a Photograph

This blew my mind. Apparently it’s possible to use a photograph of a record and get an audible recording from it.

The step-by-step process illustrated in this article called Extracting Audio from Pictures makes sense once it’s broken down. Basically you convert the round image of the grooves into a straight line…

…then you use Photoshop to boost the contrast of the lines, which become the actual waveforms you feed into ImageToSound software.

Amazing stuff. I often wonder about future generations being able to eavesdrop on people in the past by using leaps in technology.

For example on this Wikipedia page about Archaeoacoustics:

Gregory Benford’s 1979 short story “Time Shards” concerns a researcher who recovers thousand-year-old sound from a piece of pottery thrown on a wheel and inscribed with a fine wire as it spun. The sound is then analyzed to reveal conversations between the potter and his assistant in Middle English.

The idea that people’s voices would have unknowingly been recorded onto the bowl like a modern day record, locked away until a future generation figures out how to extract the audio, is awesome. True, Mythbusters busted this myth, but I wouldn’t fully discount the general concept of learning more from old data with better and better tools. (Think the dino DNA in Jurassic Park.)

Taking that pottery example further, I wonder if when I take a photo with my iPhone, a future generation will be able to determine my mood that day by examining whatever minuscule image artifacts my brainwaves caused in the image sensor.

It sounds crazy, but not much crazier than one ancient potter telling his buddy to keep his voice down so the future can’t eavesdrop on their clay.

March 25, 2013

Understanding MD5 Hashes and Security

Geek confession here. Before today I had a sorry understanding of what MD5 hashes were, and how they related to passwords and online security.

All I knew was they had something to do with obscuring your password so it could’t be cracked. Or something.

But after skimming a fascinating article on Ars Technica called How I became a password hacker I decided that ignorance was no longer an option.

So it turns out an MD5 is just a specific type of “cryptographic hash function“, which means it’s a one-way function; you can’t figure out what went into it just by looking at what came out of it. Badass.

This graphic (via Wikipedia) sums it up pretty nicely. (The “Input” represents a password, and the “Digest” represents a hash.)

It turns out you can make MD5s yourself pretty easily. Do something like this on your command line (or you can just Google for “MD5 Generator”), and you can start to play around with making hashes. You’ll see that no matter what you use as your input, you get 32 characters of crap:

$ echo -n “hello world” | md5
$ 5eb63bbbe01eeed093cb22bb8f5acdc3

$ echo -n “helloooooooooooo world!” | md5
$ 9fa764163c098ec3374ef0c3f7419524

So again, that’s the secret. The magic is the crap. Those 32 characters are so crappy and so random, no amount of computing power can reverse-engineer it back into your password. And the other crucial piece of the pie: Your password is the only piece of input that will consistently produce that exact same piece of crap.

So how does this relate to passwords and security? Reading this blurb on the Wikipedia page made it all click for me:

Alice poses a tough math problem to Bob and claims she has solved it. Bob would like to try it himself, but would yet like to be sure that Alice is not bluffing. Therefore, Alice writes down her solution, computes its hash and tells Bob the hash value (whilst keeping the solution secret). Then, when Bob comes up with the solution himself a few days later, Alice can prove that she had the solution earlier by revealing it and having Bob hash it and check that it matches the hash value given to him before.

So that’s basically the gist of it. Pretty cool, and that ain’t no shit.

March 18, 2013

Amazingly Prescient Seinfeld Kramer Heckling Remark

While watching a re-run of Seinfeld tonight, I noticed Jerry saying something that now takes on a whole new meaning in the 19 years since the episode’s airing.

While expressing regret about not talking back to a heckler, Jerry remarks:

“I should have let her have it. [But] I held back ’cause of Kramer.”

I iPhoned the clip – check it out: (Sorry for the crappy audio.)

You probably know what I’m talking about already. So while I won’t embed the video of Michael Richard’s infamous meltdown at a comedy club while confronting a heckler, I will embed his surreal apology on Letterman. Such an uncomfortable few minutes.

My favorite line from this clip:

“Don’t laugh. It’s not funny.”

March 14, 2013

Barry Lyndon’s Opening Scene and the Golden Ratio

I re-watched “Barry Lyndon” last weekend and was reminded of how perfectly Stanley Kubrick framed his shots.

The opening scene, below, is one of the most beautifully-framed shots I’ve ever seen in a film. The more you look at it, the more you say “Yes. Why yes, that’s nicely framed.” And the better it looks too.

Kubrick’s use of the Golden Ratio here is pretty astonishing. While a composition will usually look nice with one use of the ratio, here I’m counting between three and four examples of it.

This would be impressive enough in a painting, but the fact that Kubrick was able to achieve such beauty in a real environment is even more stunning. Pretty badass Stanley.

March 12, 2013

Condé Nast Entertainment’s Video Play

Some pretty exciting news from Condé Nast today. The new Entertainment group launched a platform for video delivery which they hope will showcase (and monetize) branded video content.

Today’s launch started with Glamour and GQ. Check out the sites – they’re really well executed with the latest in responsive design. My only quibble is that when you hover over a video (with the intention of hitting play/pause), the whole video and all its navigation buttons slide to the left and out from under your mouse. But that’s a small UX gripe with an overall brilliant execution.

They even let you embed the videos. Let’s give this Bill Murray one a shot.

Overall this is the “Netflix” approach of creating and distributing your own content and bypassing traditional channels. Will it work out and create a new revenue stream? Well if I knew for sure, I’d be with the executives on the 11th floor. So until then, I’ll just stick to making websites.

February 20, 2013

Jose Canseco Tweets Sound Like Will Ferrell as Harry Caray

I’m surprised nobody’s thought of this before, but Jose Canseco’s tweets sound like things Will Ferrell would say while doing a Harry Caray impression on SNL.

January 29, 2013

Photoshop Warning Dialogue With An Exclamation Point

I hadn’t seen this warning in years, but came across it today while choosing “Create Layer” on a layer’s blending effects.

Are there any other Photoshop dialogues that have exclamation points? None that I can think of.

January 13, 2013

The Scariest Musical Instrument Ever

I’m all for encouraging proficiency in a musical instrument, but if my son grows up and wants to play the whatever-the-hell-this-thing-is, I’m buying him a drumset.

January 11, 2013

Sammy Sosa Flickr Tags

Recently on the web these’s been a flurry of news about Sammy Sosa’s Pinterest page. Most of the attention has been about the quirky photos and repetitive stiff caption adorning every single photo:

Sammy Sosa. Yes, I’m the real Sammy Sosa, and this is my Pinterest.

Fine, I get it. Sammy Sosa took a few awkward photos and his social media team isn’t too savvy. No big deal.

But what I find especially bizarre are the tags on some of the photos on his official Flickr page. Tags like these: “Sammy Sosa Before and After”, “Sammy Sosa Skin”, “Sammy Sosa Bleached”, “Sammy Sosa Bat”.

Here’s an example photo with those tags. I’m surprised because these tags reference recent Sammy Sosa scandals, such as speculations that he bleached his skin and he cheated using a corked bat. Why would these tags be on Sammy’s official Flickr page?

My guess is the photographer was trying to boost page views by including popular keywords. But why would a professional photographer risk alienating one of his clients just for a few extra page views? Not too savvy indeed.

January 9, 2013

Badass intelligence and counter-terrorism terms

After seeing “Zero Dark Thirty” I found myself looking up some terms and found some pretty cool stuff on Wikipedia.

Tradecraft:

Tradecraft is skill acquired through experience in a (typically clandestine) trade. Within the intelligence community this means the techniques used in modern espionage and generally, the activity of intelligence.

Dead drop:

A dead drop or dead letter box is a method of espionage tradecraft used to pass items between two individuals using a secret location and thus does not require them to meet directly.

This modern example of a dead drop is particularly badass:

On January 23, 2006, the Russian FSB accused Britain of using wireless dead drops concealed inside hollowed-out rocks to collect espionage information from agents in Russia. According to the Russian authorities, the agent delivering information would approach the rock and transmit data wirelessly into it from a hand-held device, and later his British handlers would pick up the stored data by similar means.

Black bag operation:

Some of the tactics, techniques and procedures associated with black bag operations are: lock picking, safe cracking, key impressions, fingerprinting, photography, electronic surveillance (including audio and video surveillance), mail manipulation (flaps and seals), forgery, and a host of other related skills. The term “black bag” refers to the little black bag in which burglars carry their tools.

Wetwork:

Wetwork or wet work is a euphemism for murder or assassination, alluding to spilling blood. […] Assassins are referred to as “wet boys”.

I’d already known that “Wet work” involved assignations and other bad stuff, but had no idea its name was derived from the spilling of blood. That’s pretty gross. And awesome.

January 8, 2013

Hidden Flasks

If you ever find yourself doubting the determination and ingenuity of the human spirit, just do a Google image search for “hidden flask”.

January 4, 2013

A Brief History of This Website

I thought it would be fun to take a look at this site as it’s developed over the years. Thanks to archive.org, I was able to find some screenshots.

Let’s start backwards from today. Here’s how the site looks now:

The version before this endured since 2008:

Back in 2007 I was going for a very “2007” look. Note the classic pixel stripe patterns and gradients. Very Web 2.0:

2006 marked the start of the gradients and reflections. I also took some flowery/asterisk patterns from the previous design to add some texture to the top of the site:

Back in 2004 I was going for kind of a grungy look:

In late 2001 the site looked like a shitshow. Puke yellow and musty orange? Sure, why not!

Early 2001: Using images for corners before it was cool, and then not cool.

In early 2000 this site lived at solomania.com, which is now my portfolio. Believe it or now, this was a cutting-edge table-based layout.

And from early 2000, here’s the earliest design I have on record. I still remember how hard it was to figure out those colored borders.

December 30, 2012

My Steve Jobs Email Story

As an Apple fan, one of the greatest thrills I’ve ever had was when I emailed Steve Jobs and he wrote back.

When it happened in 2010 I debated whether to talk about it online, and decided that as personal correspondence it wouldn’t be right to publish. But now, as more and more “Steve Jobs stories” bubble up to the surface more than a full year after his death, I thought it’s worth sharing as a reminder of his persona.

Here’s how it happened. Back in the summer of 2010 I was trying to take a photo with my iPhone 3Gs and the damn thing froze. It was completely frozen – not even the home button would work. Of all the years I’ve endured a sluggish iOS experience as an early adopter, this was the first time I was holding a completely frozen iPhone. This was huge, I thought. This needed to go straight to the top.

After restarting my iPhone I opened up the Mail app and fired off a friendly complaint to sjobs@apple.com. I’d heard that Steve Jobs used that email address, but I was skeptical about whether it was actually him. But what the hell – I was just venting.

I got a response in less than one minute:

What’s wrong?

So I wrote back with an accurate description of the bug. And when I got a reply it contained an apology, but with some classic Jobsian misdirection:

Sorry. Lots of bugs fixed in upcoming software release. Plus some cool new stuff too.

Very rarely did Steve Jobs apologize for anything. In fact, he’d only publicly apologized a handful of times. So at this point I was skeptical about whether this was Jobs, so to mark the occasion (and, a little bit, to mock the PR person I thought might have been emailing me) I wrote back that I accepted Steve Jobs’ apology and that we were still cool.

In retrospect I realize this comes across as kind of dick, so for that I owe the apology. But how often have we all regretted what we’d said (or hadn’t said) in important situations? You always think of a better line when you’re walking away.

So was it really Jobs? At the time my assumption was that emails to sjobs@apple.com got filtered through some elaborate system of public relations experts, secretaries, assistants, and other Apple staffers. Maybe, I thought, a tiny portion of those vetted emails would eventually make their way into Steve’s inbox. But I assumed the majority of the Emails from Steve Jobs that were out there had been written by PR folks, or at least initially drafted by them. Why would the CEO of one of the world’s most powerful companies be responding to random customers?

But now I realize it must have been Jobs for a few reasons.

First, Steve Jobs was a control freak. Would he really allow anyone other than himself to send an email from sjobs@apple.com where it could be quoted and attributed directly back to himself? Not likely.

Secondly, the fact that I got a response in less than one minute (accounting for the 3 hour NY to CA time difference) should have tipped me off that it was Jobs. There’s no way any sort of multi-person filtering/vetting system could process and reply to my email that quickly.

And lastly, I usually subscribe to Occam’s razor: the simplest explanation is usually the correct one.

Anyone who’s curious or still doubtful can download the raw email source here.

So that’s my Steve Jobs story. It’s not incredibly exciting or informative, but I’m proud to have had an interaction with such an important man.

And every so often just for kicks, I’ll search my email for “Steve Jobs” and find this thread. For me it’s a more personal reminder of what’s true for us all; that as long as we have these slick little pieces of technology in our pockets, Steve Jobs will never really be gone.