There is a documentary about the history of the web. It’s an hour long, and now it’s free to watch.
Also, I’m in it—a fair amount, it turns out. Please do not let this dissuade you from watching it.
I’m blogging about this because there’s a little bit of a backstory. Jeffrey and I were backers of the film during its crowdfunding campaign. At that point, Jeffrey had been already interviewed for the film, but even beside that, we really wanted the film to exist in the world. So much of the history of our craft has been lost, or simply untold. So we put some of AEA’s resources into supporting the project, and were glad to see it meet its funding goal. So, you know, full disclosure and all: I’m a backer of the film, and I’m in it. Jeffrey, too.
In fact, I wouldn’t be surprised to find out most of the people who appear in the film were also backers of the film. This probably makes it sound like people paid to be featured, but nothing could be further from the truth. It’s the exact opposite: the people featured in the film are featured because they’re the kind of people who would badly want to see such a thing exist in the first place, and lend material support to the effort. They’re all people who truly love the craft and want to see it documented, explained, and shared with as many people as possible. The kind of people who learned from others, and in turn taught others, freely sharing what they knew. In some cases, paying out of pocket to share what they knew, in hopes that the sharing would help someone. I think that ethos comes through bright and clear in the film.
If you want to understand the heart of the web, understand that. It was designed and built and fundamentally shaped from its earliest days by people who wanted it to be open and free and accessible to anyone, whether as a consumer or a creator. Those were the founding principles. They shape every aspect of the web we know, for good or ill or otherwise.
Some time after the film was crowdfunded—about a year and a half, I think—Matt, the film’s director, editor, and all-around prime mover, drove up from his office in Pittsburgh to my office in Cleveland to shoot some of the last segments to be recorded. So he asked me the questions he still wanted someone to answer, or that had arisen as he’d started editing all the other interviews. Thus I show up a lot in the first half of the film, talking about the early days of the web, and am mostly absent in the second half, as the younger crowd talks about the great stuff that happened as the web matured. Which is proper, I think.
But! I hasten to add, there are way, way smarter and better-spoken people in the film than me, all the way through, sketching out the path this field took and what makes the web so incredibly compelling and powerful even today. It’s company I’m honored and humbled to be part of. If you can spare an hour, say a lunch break, I highly recommend you devote it to What Comes Next is the Future.
Suppose you use Facebook (statistically, odds are at least 1 in 5 that you do). Further, suppose you have a period of your life, or even more than one, that you’d rather not be mined by Facebook’s “On This Day” feature. Here’s how to set a blackout for any period(s) of time.
- Go to facebook.com/onthisday in a web browser while logged into Facebook. Said browser can be either desktop or mobile.
- In a desktop web browser, click the “Preferences” button in the upper right quadrant of the page, to the right edge of the On This Day masthead. In a mobile web browser, tap the gear icon in the upper right, then tap “Preferences”.
- Select the “Dates” line (on desktop, you have to click the “Edit” link on the right).
- Now select the “Select Dates” link that looks like a section heading, but is actually a point of interaction.
- Select start and end dates, in that order (see below). On desktop you can type into the boxes or use the popup calendars; on mobile, you get date wheels.
- Select “Done” (desktop) or “Add” (mobile).
- If you want to add more date ranges to filter out, go back to the “Select Dates” step again and work forward.
- Once you’re done, select “Save”.
- To finish setting preferences, select “Done”.
…and that’s it, he said dryly.
Should you want to effectively disable On This Day, you can set up a date range of January 1, 1900 to December 31, 2099. I couldn’t go past 2099 in my testing—according to the error message, anything from 2100 on is an “invalid date”. I also discovered that setting a start date will always reset the end date to the new start date, so make sure to set your start date first and your end date second.
You might have seen that you can also filter out specific people. The process there is similar, except you type names to find accounts to filter out instead of using date pickers.
So that’s it. The preferences aren’t easy to find, but they are there. I’d be a lot happier if Facebook let you pick a given date and applied it to all years—thus allowing you to block out the birthday of an ex-spouse, or the wedding anniversary of a now-defunct marriage, for example. I’d be happier still if they surfaced these preferences more readily; say, prompting you with a date-exclusion option whenever you tell them you don’t want to see a given memory in your timeline. I don’t mind writing how-to guides to help other people, but I do sometimes mind that their existence feels necessary, if you follow me there.
A note for the future: this guide was accurate as of the date of publication. If you’re reading it some time later, especially if it’s been several months or years, bear in mind that things may have changed in the meantime. In that case, please feel free to leave a comment indicating there’s been a change, so I can update the guide. Thanks!
The Grid code is coming! The Grid code is coming! It’s really, finally coming to a browser near you! Woohooooo!
Whoa, there. What’s all the hubbub, bub?
CSS Grid is going to become supported-by-default in Chrome and Firefox in March of 2017. Specifically, Mozilla will ship it in Firefox 52, scheduled for March 7th. Due to the timing of their making Grid enabled-by-default in Chrome Canary, it appears Google will ship it in Chrome 57, scheduled for March 14th. In each case, once the support is enabled by default in the public-release channels—that is to say, the “evergreen” browser releases that the general public uses—every bit of Grid support now in place in the developer editions of the browsers will become exposed in the public releases. Anything Grid will Just Start Working™®©.
Are those dates an ironclad guarantee?
Heck no. Surprise problems could cause a pushback to a later release. The release schedule could shift. The sun could explode. But we know the browsers already have running code for Grid, and when they mark something as ready for public release, it usually gets released to the public on schedule.
So Grid support in March, huh?
How long until I can actually use Grid, then? Two or three years?
March 2017. So about four months from now.
But it won’t be universally supported then!
Rounded corners aren’t universally supported even now, but I bet you’ve used them.
Now you’re just being disingenuous.
Look, I get it. Base layout’s a little different than shaving pixels off corners, it’s true. If you have a huge IE9 user base, converting everything to Grid, and only Grid, might be a bit much. But I’m guessing that you do have a layout that functions in older browsers, yes?
Then my original answer stands: March 2017. Because any browsers that understand Grid will also understand
@supports(), and you can use that to have a Grid layout for Grid-enabled browsers while still feeding a float-and-inline-block layout to browsers that don’t understand Grid. Jen Simmons wrote a comprehensive article about
@supports(), and I wrote a short article demonstrating its use to add layout enhancements. The same principles will apply with Grid: you can set up downlevel rules, and then encapsulate the hot new rules in
@supports(). You can retroactively enhance the layouts you already have, or take that approach with any new designs.
Writing two different layouts for the same page doesn’t sound like a good use of my time.
I get that too. Look at it this way: at some point, you’re going to have to learn Grid. Why not learn it on the job, experimenting with layouts you already understand and know how you want to have behave, instead of having to set aside extra time to learn it in a vacuum using example files that have nothing to do with your work? You’ll be able to take it at your own pace, build up a new set of instincts, and future-proof your work.
Can’t I just wait until someone creates a framework for me?
You could, except here’s the thing: as Jen Simmons has observed, Grid is a framework. Using a framework to abstract a framework seems inefficient at best. I mean, sure, people are going to do it. There will be Gridstraps and GAMLs and 1280.gses and what have you. And when those are out, if you decide to use one, you’ll have spend time and energy learning how it works. I recommend investing that time in learning Grid Actual, so that you can build your own layouts and not be constrained by the assumptions that are inevitably baked into frameworks.
Grid sounds like tables 2.0. I thought we all agreed tables for layout were a bad idea.
We agreed table markup for layout was a bad idea, particularly because at the time it was popular, it required massive structural hacks just to get borders around boxes, never mind rounded corners. The objection was that it took 50KB of HTML tags and three server calls just to do anything, and 100 times that to set up a whole page’s layout, plus table markup locked everything into a very precise source order that played merry hell with any concept of accessible, searchable content. The objection wasn’t to the visual result. It was to what it took to get those results.
With Grid, you get the ability to take simple, accessible markup, and lay it out pretty much however you want. You can put the last element in the source first in layout, for example. You can switch a couple of adjacent bits of the page. Questions like “how do I order these elements to get them to lay out right?” become a thing of the past. You order them properly, and then lay them out. It’s the closest we’ve ever gotten to a clean separation between structure and presentation.
Not only that, but thanks to CSS transforms, clipping paths, float shapes, and more, you don’t have to make everything into a perfectly-edged grid layout. There is so much room for visual creativity, you can’t even imagine. I can’t even imagine. Nobody can.
So Grid solves every single layout question we’ve ever had, huh? Layout Nerdvana for all?
Oh, no, there are still things missing. Subgrid didn’t make it into these releases, so there will still be some gridlike layouts that seem like they should be simple, but will actually be difficult or impossible. You can’t style a grid cell or area directly; you have to have a markup element of some sort to hang there and style. All grid areas and cells have to be rectangular—you can’t have an L-shaped area, for example. Grid gaps (“gutters”) can only be of uniform size on a given axis, very much like
border-spacing in table CSS.
You can usually fake your way around these limitations, but they’re still limitations, at least for now. And yeah, there will probably be bugs found. If not bugs, probably unexpected use cases that the spec doesn’t adequately cover. But a lot of people have worked really hard over an extended period of time on stamping out bugs and supporting a variety of use cases. This is solid work, and it’s going to ship in that state.
What happens if Firefox or Chrome pushes Grid back a release or two, but the other ships on schedule?
In that case, it will take a little longer for your
@supports()-encapsulated Grid rules to be recognized by the tardy browser. No big deal. The same applies to MS Edge, which hasn’t caught up to the new Grid syntax even though it was the first to ship a Grid implementation—with different rules, all behind prefixes. Once Edge gets wise to the new syntax and behaviors, your CSS will just start working there, same as it did in Firefox and Chrome and any other browser that adds Grid.
All right, so where can I go to learn how to use it?
There are several good resources, with more coming online even now. Here are just a few:
- The Experimental Layout Lab of Jen Simmons — great for seeing layout examples in action using a variety of new technologies. If you’re laser-focused on just Grid, then start with example #7, “Image Gallery Study”, but the whole site is worth exploring. Bonus: make sure to responsively test the top of the page, which has some great Grid-driven rearrangements as the page gets more narrow.
- Rachel Andrews’ Grid By Example — a large and growing collection of examples, resources, tutorials, and more. There’s a whole section titled “Learn Grid Layout” that’s further broken up into sections like “UI Patterns” and “Video tutorial”.
- CSS-Tricks’ A Complete Guide to Grid — a boiled-down, pared-down, no-nonsense distillation of Grid properties and values. It might be a bit bewildering if you’re new to Grid, but it’s the kind of resource you’ll probably come back to again and again as you’re getting familiar with Grid.
- CSS Grid Layout specification — if all else fails, you can always go to the source, Luke.
But remember! If you hit these sites before March 2017, you’ll need to make sure you have Grid support enabled in your browser so that you can make sense of the examples (not to mention anything you might create yourself). Igalia has a brief and handy how-to page at Enable CSS Grid Layout, and Rachel also has a Browsers page with more information.
I’ve been hurt by layout promises before, and I’m afraid to trust.
I feel you. Oh, do I feel you. But this really looks like the real thing. It’s coming. Get ready.
The GIF Survey is complete. In just under a week, 1,457 people gave their answers on how they pronounce the acronym, and their perceptions of the rightness of that pronunciation. I thought that, today of all days, it made some sense to share the results of a far less momentous poll.
For those who missed, it, how this survey worked was that the first question was: “How do you pronounce GIF?” To this, the choices were:
- The obviously correct way
- The clearly incorrect way
Upon answering this, respondents moved on to a section that asked three optional demographic questions: age, gender, and race/ethnicity, all as open text fields. These had about a 16% skip rate, and about a 4% ‘faithless’ response rate; that is, answers that were clearly jokes, insults, or other explicit refusals to answer the question as intended.
Once the demographic questions were answered or skipped, there was a final question: “How do you pronounce GIF?”, exactly the same as the first question of the survey. Only this time, the options were:
- Hard G (like “gift”)
- Soft G (like “gin”)
For both pronunciation questions, the answer order was randomized so as to avoid any first-choice advantage. The demographic questions, being open entries, didn’t have options to randomize.
(Aside: I discovered in the course of the survey that there are other pronunciations, most commonly in non-English languages. My apologies to those who fell outside the binary choice I presented.)
So! The results came out like this:
|The obviously correct way||83.7%|
|The clearly incorrect way||16.3%|
First of all, it amuses and slightly mystifies me that more than 16% of respondents feel they say it the “incorrect” way. Second of all, these percentages didn’t line up with actual pronunciation.
This deserves a closer look. How do perceptions of correctness break down by actual pronunciation?
In other words, people who pronounce it with a hard G are significantly more likely to believe their pronunciation is correct than those who go the soft-G route.
It’s an interesting inversion of what one might (perhaps naïvely?) expect: given that the creator of the format has explicitly said the pronunciation is with a soft G, one might expect that those who use the hard G know it’s incorrect but say it anyway. My personal opinion is that this is actually a reflection of human nature: faced with evidence that undermines our instinctive reactions, we tend to double down. (Of course, if the evidence lines up with what we believe, we seize on that too.)
Now: demographics, which actually were the point of the survey, but not in the way I think some people assumed. After I did my first, tongue-in-cheek version of the poll on Twitter, my colleague Aki noted that she’d love to know something about the demographics behind those results, something I’d had flitting around in the back of my mind. Her comment made me decide to just go for it. What I wanted to see was whether there were significant differences in perceptions of correctness in various groups. For example, one might hypothesize that those identifying as female were more likely to say their choice was incorrect. Well, if that were the hypothesis, what evidence I was able to gather contradicts it.
Roughly speaking, of those people who gave an answer about their gender (81.5% of the total), about 25% of respondents identified as female, and about 70% identified as male. One thing that did jump out at me was that those identifying as female were more likely to use the hard G, rather than the soft G. Not by a lot, possibly within the margin of error, but still.
|Gender||Hard G||Soft G|
The other thing that interested me was how patterns of pronunciation and correctness would correspond, if they did at all, to age—for example, were younger respondents more or less likely to think they were right than older respondents? I decided to group by decades, in effect. Of the 81.6% of respondents who gave a reasonably valid age (I tossed, for example, “1.7977E+308”), here’s how they clustered.
There weren’t enough respondents outside the 20-59 range to analyze. I’m not even sure about the 50-59 group, to be honest—I’m not sure 79 replies out of 1,457 is enough. But what the heck, I’m rolling with it. Respondents’ perception of correctness didn’t change a lot, but did seem to rise a bit with age.
It would be interesting to see if a different division of age groups would create different results. But what really caught my eye was how the pronunciation shifts with age: younger respondents were notably more likely to use the soft G than older respondents.
|Age Group||Hard G||Soft G|
So if you’re a soft-G speaker and are convinced that’s correct, perhaps you can take comfort in the belief that the children are our future.
I’m not going to present numbers on race/ethnicity. This is partly because the question was a MacGuffin: I asked it because it would have seemed odd not to after asking for age and gender, and also because I’ve found over the years that asking for ethnic or racial identification is a handy way to give some people a chance to vent a little built-up animus. The other reason is that even after filtering out the few abusive and the somewhat more numerous “decline to answer” replies, the remaining values are all over the place and difficult to make consistent.
If you’d like to try, you can download the filtered-and-resorted data set for that question, as well as similar sets for age and for gender. I’ve also put up a data set containing just the answers to the two mandatory pronunciation questions. Feel free to analyze them as you like! Each file is a ZIP of the data set in tab-separated text format, so they’re pretty small.
And just to be clear, I’m not planning to post the complete data set, just in case any combination of demographic answers could be used to reconstruct an identity. (Each set was sorted differently, so a line number in one set doesn’t correspond to the line number in another.)
So what did all this tell us? It told us something about the people who saw the survey and chose to respond. It told us that if the results are representative, then people who are older tend to use the hard G and be more convinced of their rightness. Maybe that’s representative of the world as a whole, and maybe not. It may not mean a lot in the grand scheme of things, but it was fun to ask, hopefully fun for people to answer, and fun to crunch the numbers that resulted.
My thanks to everyone who took part, and to Aki for prompting me to do it in the first place.
I sat digging through the map built by GrandPerspective, showing me what was chewing up 720GB of my 750GB SSD. I already knew my iPhoto Library was the main culprit, consuming just over a third of the total volume, but surely there were other places I was wasting space. And there were: old software installers, virtual machines I had long since ceased to need, movies I’d ripped for watching on trips and never gotten around to dumping afterward, years-old Keynote files that I’d never gotten around to compressing. I dealt with the most obvious offenders, one way or another, and then rescanned the volume.
A set of blocks popped up near the middle of the new map, a cluster I’d not noticed before, even though they were clearly somewhat sizable. I moused over to see what they were.
They were CD-R master images.
Images of my daughter’s medical records.
Of her MRIs.
Somewhere in there, her final brain scans, the ones where the doctors did not even bother to count the emerging tumors, there were so many.
There’s enough data in there to recreate 3D models of her brain as it turned on itself. Enough to reconstruct the cartography of her death.
I should just delete it. Keeping the information is pointless now, when it cannot save her, a reminder of futility and helplessness. It’s worse than useless—because if a treatment is one day discovered, the data in these files could torture us with the certainty that her life could have been saved, if only it had started later. Better to not know, and eke out an existence in the spare shelter of ignorance.
I’m not sure I can delete it. No matter how horrifying the images and records might fundamentally be, they feel like pieces of her, tiny bits of her life and death. That erasure of data would feel like an erasure of history. Like a betrayal. Even to shunt them from my primary machine to some sort of backup storage would feel the same as I did when we carefully packed all of her favorite toys and kindergarten drawings into a box, and stored it away, out of sight but never out of perception.
Perhaps I might feel differently if I hadn’t been missing her so keenly the past few weeks. There doesn’t seem to be a specific reason for this, unless it’s the beginning of this specific school year. We’ve all been feeling it, in our own ways. A few days ago, in the middle of a weekend afternoon, the family was at home and just being a family when I suddenly felt her absence like a spiky, sickly, impossible hole in the center of the world. It was as sharp and present as the rush of first love, very nearly tangible and visible.
I look at these files, knowing that there are no rational reasons to keep them and many reasons—rational or otherwise—to let them go. I envision erasing them, and I can’t. All these jagged bits of the past, which do not cling to me; rather, I cling to them, senselessly, hopelessly, afraid to look at them but afraid to let go. Perhaps I believe that with enough of these tiny memories, these shards of her life and death, I can cobble together a wall that will shut out the void her absence tore open.
Just enough to keep functioning, for a little while longer.
Which is, I sometimes think, the worst betrayal of all.
I’m criminally behind in sharing this with everyone, so I’m jumping straight to the bottom line here: I’m teaching a workshop on advanced CSS layout techniques in October, and co-teaching another workshop on CSS animation in November with the inestimable Val Head. Both are courtesy O’Reilly & Associates, and will be conducted at their offices in Boston.
A few more details:
- New CSS Layout (October 17-18) is two days of deep diving into flexbox, multicolumn, grid, and related technologies. There will be a heavy emphasis on Things You Can Use Today, including bugs and how to handle them, with a keen focus on using everything in a progressively enhancing way. In other words, you should walk away knowing how to use new technologies right away, without leaving behind users of older browsers, and have a good sense of what you’ll be able to do in the next 6-12 months. This will be hands-on, interactive, and very much a dialogue with technical instruction. If you’re looking for two days of watching me drone in front of a slide show, this is not that. I’m not even sure I’ll have any slides at all—I’ll probably spend the entire time in BBEdit and a browser instead. The class size is limited to 40 people.
- CSS Animation (November 17-18) is another two days of diving deep into the topic. For this one, I’ll spend the first day going through every last piece of CSS transition and animation syntax, with generous helping of transform. On the second day, Val will show how to put that syntax to use in a way that serves and strengthens your design, instead of undermining it. It’s basically a day of learning how the tools work, and a day of learning how to properly use the tools. Again, class size of 40; and again, very much hands-on and interactive.
So that’s what’s up. Looking for ways to seriously expand your skills in layout or animation or both? Come, join us!
It was right about now, exactly two decades ago, that I pulled on my Tom Servo “I’M HUGE” T-shirt and strolled from my apartment over to Strosacker Auditorium for the CWRU Film Society’s screening of MST3K: The Movie. I’d gotten the evening off from my tech crew duties on Schoolhouse Rock Live! at the Beck Center so that I could catch the movie in a theater again, having been one of the few who’d seen it during its initial theatrical run. To say I was looking forward to it was an understatement. I’d been a fan ever since my high school best friend, Dave, had introduced me to it with a VHS copy of the “Rocketship X-M” episode. The first HTML document I ever marked up was a copy of the MST3K Episode Guide I’d found on Usenet.
I was a staff member of the Film Society, as well as of the university—at that point I was just over a couple of years into being the campus Webmaster and, more or less coincidentally, not quite a couple of years into being divorced. The Film Society was a fun way to pass weekend nights in good company, contribute to a collective effort, and get to see a bunch of movies. So when I pushed through the glass lobby doors, I looked around to see what needed to be done. The ticket counter was already staffed by a couple of people, neither of whom I’d ever seen before. Which was to be expected, a month into the fall semester. We always picked up a few new members as incoming students got adjusted to campus life and looked for stuff to do. I clearly remember one of them, a laughing girl with short-ish curly hair and a unique clothing style.
I remember because later that evening, after I’d seen the movie and was manning the concession stand for one of the later shows, she wandered over to see if I needed any help, then stayed to flirt. For once in my life, I smoothly responded in kind. We kept up the good-natured banter throughout the evening, peppering it with sharp looks and sardonic grins. As things were winding down on the last show, just as I was opening my mouth to ask her if she’d like me to walk her home, she asked me if I’d like to walk her home.
And that’s how Kat and I met, twenty years ago tonight.
Anyone who knew either of us well would never have pegged the other as a likely match. She wasn’t even an MST3K fan: she’d come to Film Society that night, a month into her graduate school studies, to join up and thus have a group to hang out with, and hadn’t even really looked at the schedule first. We had wildly different tastes in music, art, food, recreation, even basic relationship expectations. And yet, somehow, one way or another, with a lot of work and a lot of luck, it’s worked out.
In the time since, we’ve had experiences more amazing and suffered more deeply than either of us could have imagined, as we traded tidbits of information and innuendo over an array of candy bars that balmy September evening. We’ve each shown strength neither of us would have imagined in ourselves. I think we also bring out the best in each other, and that too is a kind of strength.
Two decades. Hard to believe, sometimes, but we did it…and, as Crow might say, I’d do it again if I had to.
Thank you, Kat.