Published during: May 2013

# step-stool.io

As of a couple hours ago, my newest personal project has a website. Step Stool, the static site generator I’m writing in Python, now has a home at step-stool.io.1 If you visit the site, you’ll see that, while it looks nice (at least: I think it does), there’s not much to it and most of the links don’t go anywhere. The link that does go somewhere tells you that the project for which the website exists doesn’t actually have any functioning code, yet.2

(That gorgeous logo? Designed by the absolutely brilliant Cameron Morgan.)

So why is it live? There are a few reasons. First, the whole point of the project is my having fun with programming. Web design may not be directly involved in finishing Step Stool, but it definitely scratches the fun itch just as effectively. Second, and more importantly, it’s allowed me to get some time in with other technologies I’ve been interested in for a while – specifically, SASS. I’ve been frustrated with all the problems SASS solves in CSS for a while now, and I’ve known I wanted to just go ahead and learn it for a while. I just haven’t had a project where it made sense – until now. Read on, intrepid explorer →

Pro tip: keep an eye on step-stool.io over the next week. Fun things headed that direction in short order.

I discovered a fascinating, brilliant trick you can use with any YouTube video name string while talking with Stephen Carradini yesterday. I shared a Doctor Who clip (this one, if you’re curious), and it took him a bit to get around to watching it because the URL didn’t exactly make it particularly clear what video I had sent him:

http://www.youtube.com/watch?v=LakwV3P3qII


We started talking about how YouTube should tag the name onto the end of the link, so that people could actually tell what video they were going to see, and Stephen posted an example of how it could work:

http://www.youtube.com/watch?v=LakwV3P3qII_drwhoblink


Lo and behold: that link works. I got curious and started poking around at different videos on YouTube and quickly discovered that you can append whatever text you want after the video ID; you’ll end up at the base URL again. All of YouTube’s link IDs are 10 character strings, with some mix of letters, numbers, and underscores allowed. Everything after the tenth character gets stripped. (Almost everything, that is…)

That’s halfway to fantastic — but only halfway because, as noted, you just get pushed down to that stripped URL. Thus, when I clicked on Stephen’s link, it truncated back down to the original link I sent him. Fine and good for one person, but what if you wanted to re-share it? The link has been changed, so you’d have to go back to where I originally shared it with you, or you’d have to add it on yourself.

Knowing a whee little bit about how these things tend to work,1 I wondered what happens if you use an & to tell YouTube that you want to add something to the query you’re sending it.2 As I suspected, YouTube hangs onto that. Most likely, there are other queries that include more than just the video name — things like content source — so those parts get left in. In our case, that means that we can add a string to the link and it will be there for others to use if they want to reshare the video themselves.

Anybody who curiously hovered over (or clicked to) the Doctor Who video I referenced at the start of the post went to this link:

http://www.youtube.com/watch?v=LakwV3P3qII&name=DoctorWhoWibblyWobblySpeech


It’s like magic! You can see what the video is about, and even when you click the link, you still have the name of the video to share with all your friends!

And there ends your lesson in cool tricks with YouTube for the day, kids.

1. For the technically inclined (before you run away, note that footnote 2 is for those who are not technically inclined — confusing, I know): it looks like it’s probably a straightforward hashing algorithm designed to produce 10-character strings in whatever subset of ASCII the YouTube engineers settled on. Because of that, they can safely ignore everything after the tenth character: every single YouTube video has the same length ID. Your video could be named “Joe” or “John Jacob Jingleheimer Schmidt” and the result would be a ten-character string. This is quite smart: it prevents intersections between video names (your video named “Joe” ends up having a different string than my video named “Joe” because of how the hashing algorithm works), and it means that YouTube video links are never all that long.
2. For the not-so-technically minded: in other words, the string at the end of the website tag is a question: Can I watch the video (watch?v) you know by this name (={10 character string})? You can tell websites you want to ask another question at the same time by adding an ampersand character to it and extending the string.