Exploration

Earlier today, Facebook announced a new feature called “On This Day”. With On This Day, you see pictures, posts, and other events that occurred on a given day. If you’re familiar with Timehop, it seems very much like a Facebook-only Timehop. That will probably seem limited and broken to actual Timehop users, but for the vast majority of Facebook users, it will be a new and potentially very welcome feature.

As you can imagine, given what happened with Year in Review, I’m very interested by On This Day. I haven’t interacted with the actual product yet, so I don’t know what kinds of opt-in or opt-out features will be present. If any. From the screenshots in the Facebook announcement, it looks like they’ve taken a much more neutral direction with the visual design. There are calendar pages and abstract photos, with few of them expressing much in the way of emotional content. An exception is seen at the top center of the banner image on the announcement, depicting what appears to be a woman in love, but that’s actually a decoration on the banner, instead of a UI component. Whether those sorts of things will show up in the UI, I don’t know.

But this is what I wonder: is Facebook about to hurt a bunch of people? From the announcement:

To see your On This Day page, you can click on the On This Day bookmark, search for “On This Day,” or visit facebook.com/onthisday. You might also see a story in your News Feed.

Putting “a story in the News Feed” is exactly how Year in Review became a viral news story. And it’s what distinguishes On This Day from Timehop or ThinkUp (which has “your most popular update” features).

If I install Timehop, for example, I know what I’m getting into. I’m actively, consciously deciding to revisit events from past years by way of Timehop. I can decide not to launch it at all on certain days, if I know what I see would be too painful.

On This Day, on the other hand, is part of an existing ecosystem. Dropping On This Day into the Facebook news feed without consent is very much like having Timehop install itself onto your smartphone and then auto-launch, all without asking. If this happened, we’d (rightly) take the responsible parties to task. Patronizing dismissals that “you use a smartphone, you get what you deserve” would be relatively thin on the ground, whereas I’m sure there will be plenty of that directed toward any Facebook user upset by what an On This Day new feed entry shows them. That was certainly the leading line of condescension around the Year in Review news feed post.

There isn’t much more to go on in the announcement, though I did notice:

…you can choose to subscribe to notifications so you’ll be alerted when you have memories to look back on. You can also edit and delete old posts, or decide to share your memories with friends.

Editing or deleting old posts is interesting, if a bit troubling to the historian in me, and the ability to sign up for notifications is a welcome sign of opt-in ethics, but what I notice here is what’s missing: I don’t see any reference to an ability to opt out of On This Day, either for certain days or altogether. It might be there and simply not referred to in the product announcement, but I wonder if this is something that Facebook users will simply have to get used to.

The timing of this has a personal resonance. As I wrote about yesterday, we just passed the first anniversary of the day Kat and I were told about Rebecca’s second tumor. For the next eleven weeks, both our posts and pictures from last year, wherever they’re housed, will form a chronicle of the last days of our daughter’s life. How will we react to Facebook, how will we feel about our experience there, if On This Day constantly reminds us of those events? Will this product increase our affinity with Facebook, or our antipathy? Perhaps we might go to Facebook to catch up with friends and joke around with them a bit, as a form of mental respite. Or, perhaps, we would have done that, but now will be unable to do so. We’ll soon find out.

Lest anyone misunderstand, this isn’t just about Facebook. It’s about every service or product that seeks to increase user affinity, and avoid user antipathy. Facebook just happens to be providing some very obvious grounds on which to base these conversations. Given their line of business and scale of operation, that’s probably to be expected. I’ll be following this with great professional and personal interest.

Children charged through our house, laughing and shrieking and calling to each other as their games shifted fluidly from one imaginative burst to another. In the dining room, their adults sat around the table and talked, benignly ignoring the chaos around them. Earlier, there had been a group photo of the kids and rides in a crazily-painted convertible.

I sat in the kitchen window seat, my feet braced against the middle frame, staring out into the back yard. The afternoon was chilly and bright but not sunny, as befits March in Cleveland, but I didn’t really see it. I only know what the weather was like because I’ve gone back to look at the photos of that day. Whatever light was entering my eyes and falling on my retinas wasn’t leaving any impression in my brain; I was focused somewhere unseeable, trying not to think about the unthinkable.

A hand on my arm snapped me back. Rebecca stood next to me, her expression clouded and frowning.

“Hey there, Little Spark. What’s up?”

She climbed wordlessly into my lap and curled up against my chest, her back to the window. She rested a cheek in a cupped palm that pressed on my sternum, looking unseeingly into the kitchen, still pensive. The chaos was downstairs in the play room now, distant and muted. I circled my arms around her curled frame, gently pressing her to me, listening to and feeling her breath draw in and out.

I knew she was upset, and I knew just as certainly that she wanted to talk about it. I was far less certain that I wanted to hear it, but this wasn’t about me. It never had been, and it was far less so now.

“What are you thinking, sweetie?” I asked after a few moments.

“I’m scared that my brain cancer won’t go away and I will get dead,” she quavered miserably.

Suddenly I was hugging her tightly, my face half-buried in the bright blue shmata she wore on her head, tears coursing from my eyes.

“Me too,” I choked out. “I’m scared too, honey. Mommy and I are both scared. It’s okay to be scared.”

We wept quietly together, curled up on the window seat.

I had been crying a lot at that point. Three nights before, after all the kids had gone to sleep, I had stumbled into Kat’s and my bedroom, collapsed on the bed, and sobbed without stopping for more than an hour. At some points, I wept so intensely that Kat tried to get me to take medication to calm myself, afraid that I was about to literally choke to death on my own sorrow. Part of me wanted that to happen.

Because earlier that day, we had been told that another tumor had emerged. As soon as the doctors walked into the room, we knew from their body language that the news wasn’t good. When they asked Rebecca if she would go play with the Child Life specialist while Mommy and Daddy talked to the doctors, we knew it was bad. I felt the blood drain from my face as I reached out to take Kat’s hand in mine, both of us staring at the lead doctor and still trying to hope that it wasn’t as bad as we feared.

It was.

The previous August, the doctors in Philadelphia had told us the tumor was essentially completely removed, and that a long course of radiation and chemotherapy could, possibly, prevent a recurrence of the cancer that had almost killed our daughter. They didn’t give odds. They didn’t have too many assurances to give us, save one. They could pretty well assure us that if the cancer came back, all we could do was watch Rebecca die.

Now it was March 20th, almost exactly seven months from the day she had first seized. We had gotten her through multiple surgeries, two months of treatments in a city far from her home, and then weekly chemotherapy back home. Holidays had come, her MRIs had been clear, we’d returned to a relative normalcy. The nightmare had engulfed us, then receded.

Now it engulfed us again, more complete than ever. For those seven months, I had held my fears in abeyance. Now there was no dam to hold them back.

I lay in my bed, almost screaming my sorrow, choking and nearly convulsing, as I tried to cope with the certainty that our little girl was going to die soon, and there was no hope left. Although she would ultimately prove me wrong, because of course she would, I tried to come to terms with my desolate conviction that Rebecca wouldn’t even graduate kindergarten, let alone turn six.

That night, I started to mourn my child’s death.

Within a minute or two, Rebecca was done crying and starting to get restless to rejoin the chaos. I paused my own grief, wiped the tears from both our faces, and gave her kisses. She smiled at me and climbed off my lap.

Five minutes later, she charged through the kitchen with her friends, the kids she’d shared a playgroup with since they were newborns, shrieking and laughing along with them, because to be five years old is to live completely in the moment.

They thundered onward, down the steps to the back hall and up the stairs to the sun room and on to the living room. I listened to her bright, sunny voice echoing from across the house, drew in a deep breath, wiped away my tears, and resolved to live in the moment as much as I could. For her, and for me.

That night, after the kids were asleep, Kat and I stood in the kitchen, cleaning and putting away the last few dishes left over from the play date. We talked about the day, how much fun all the kids had had, and shared our mutual admiration of our friends, who had brought their children to play with our child, knowing how that would sharpen their kids’ pain when Rebecca’s death came.

“Thank you for letting me fill the house with people,” Kat said. “I know it’s tough for you sometimes, having that much noise and activity.”

I shrugged. It didn’t seem to matter. Very little did, at that point.

“Do you understand why I wanted them all here today?” she asked.

“You were sitting shiva for her,” I heard myself say, distantly surprised by the words as they emerged.

“Yes,” she said quietly. “How did you know?”

“I’ve known you for seventeen years now.”

“I was sitting shiva for her while she’s still alive. How fucked up is that?”

I shook my head mutely. Tears streaked both our faces.

In the year since that day, a year ago today, I’ve come to realize what an incredible gift it was for Rebecca. To bring all those kids and adults who loved her so much into the house, all those people she’d known and loved all her too-short life—to give her a day of play and fun and craziness, the kind of craziness she loved, while she was still able to enjoy it—what better form of mourning could there be?

Rebecca knew, long before I did, possibly even before Kat did, why her friends were there. She mourned the truth, and then had a fantastic day anyway.

I may have been far older than her, but she was far, far wiser than me.

On March 15th, 2015, there will be a St. Baldrick’s Foundation fundraising event at the Cleveland Heights Community Center. At last year’s event, Rebecca was there, running around and flipping out (in a good way) as her sister Carolyn shaved to raise money. She gave a big hug to her kindergarten teacher, who had shown up to surprise her and had his head shaved as well. She was, to all appearances, a totally normal and healthy kid, so full of life that many people there didn’t realize she was one of the honorees.

Four days later was the MRI that revealed the second tumor, the one that killed her two months later.

This year, Carolyn will not be shaving her head, though she is again captaining the team for her elementary school. In her place, Rebecca’s best friends in the world—the kids from her infant playgroup, as well as her friend Ruth—will be cutting their hair or shaving their heads to raise money in Rebecca’s honor. If you want to make a difference in their lives, as well as the lives of children who have or will one day have cancer, please consider donating to one or all of these brave kids:

Some of them took years to grow enough hair to comb, let alone braid. And yet, even at their ages, they are willing to sacrifice that hair in order to do something positive. We are so, so grateful to them all.

Rebecca being fierce, July 20th, 2013. Her first tumor, which was already present in this picture, was discovered a month later.

We are also very grateful to St. Baldrick’s for working with us over the past few months to establish The Rebecca Alison Meyer Fund for Pediatric Cancer Research. This “Hero Fund” is specifically designed to fund promising research into the prevention of tumor reemergence, as well as glioblastoma research in general. As we say on the Fund’s page:

We were told after [Rebecca’s] first tumor was biopsied that if another tumor appeared, all we could do was watch her die. There were no studies to try to prevent the reoccurrence of the tumor. Once it did recur, there were very limited study options, none of which were life saving—only life prolonging. This is typical of so many types of tumors.

You cannot imagine, unless you’ve lived it, what it’s like to know that your child has a rapidly deteriorating terminal condition about which nothing can be done. There are no words to describe it. “Helpless” doesn’t begin to come close. We hope that Rebecca’s Fund can, in whatever way, however small, help even one family avoid that nightmare. We hope it can help many, many families avoid it.

You can donate directly to Rebecca’s Fund if you prefer, but please note that all funds raised for the March 15th Cleveland Heights event will be counted as part Rebecca’s Fund. So please, if you’re inclined to support the Fund, donate to one or all of Rebecca’s friends listed above, because donating to them means donating to the Fund as well. Thank you.

So many people who knew Rebecca told us how they had to hold back tears, watching the Super Bowl halftime show. “I wish Rebecca could have seen it,” they say. “When Katy Perry sang ‘Firework’, all I could think is how much Rebecca would have loved it.”

Rebecca loved Katy Perry songs, you see. She loved to sing and dance to “Firework”, so much so that her sister Carolyn made it part of the medley she arranged and performed at Rebecca’s funeral. And Rebecca loved to sing “Roar”, and pretty much anything from Katy Perry. Even “Brave”, which is actually sung by Sara Bareilles, but when your terminally ill daughter tells you a song is by Katy Perry, then it’s by Katy Perry.

But all I can think is, I wish I could be so sure.

Because yes, five-year-old-going-on-six Rebecca loved Katy Perry, and Frozen, and hula hoops, and so many more things. But by now she’d be six-and-two-thirds, and so much can change so fast at that age. By now, maybe she’d have moved on to Taylor Swift, and Katy Perry would be so last year. She might be done with Frozen, and instead be into Big Hero Six or The Emperor’s New Groove.

I know that she would be different by now, just as amazing as ever, but different. Some enthusiasms would have given way to others; her interests would have shifted. How, we don’t know. Can never know.

Every day, she becomes a little more distant from us, a little less known. A gulf slowly widens with the passing of time, and what she would be now becomes ever more uncertain. We become estranged from our own daughter, not by hurtful words or actions, but by the merciless passage of time, by the choices she never got to make, the changes she never experienced.

I knew that this would come, but for a time I could ignore it. A month or two after she died, I could still pretend that I knew how she would react, what she would think, how she would behave. Even though I never knew that with any certainty. She was never so predictable as that. Never so static.

Now it’s been too long.

And it hurts, knowing that I can never know the girl she would be now, never know the girl she would have become, never know the woman she would have been.

I miss her, sometimes more than I ever thought possible, so much that I can physically feel the absence. But sometimes I think what I miss more than the Rebecca I knew is the Rebecca I never got to know.

This figure is (at the moment) captioned “Very, very tall ellipses”; it’s a diagram of what happens if you create a radial gradient with no horizontal sizing. (Whether you also have vertical sizing is actually irrelevant.) The ellipses all get so incredibly tall that you only see the sides at their most vertical, which results in the appearance of a mirrored horizontal linear gradient. This is of course explained in more detail in the chapter, and builds on a whole lot of previous text.

I had a much simpler version of this figure before, and shared it with Sara Soueidan, who had some very smart feedback that helped me get to what you see above. The figure was finished not too long before i posted it; once it was done, I realized really liked the look, so decided on the spur of the moment to post it. Thus the late-Friday timestamp on the post.

While the figure is a PNG, it’s actually a screenshot of an HTML+CSS file displayed in a browser—Safari, in this particular case, though most are done in Firefox. All of the figures in the book will be created using HTML+CSS whenever possible. Doing so lets me make sure I understand what I’m illustrating, and also allows me to change the look and arrangement of figures without too much difficulty.

So that’s fun with edge cases for this Friday. If people like it, or more likely I just feel like doing it, I’ll post more in the future.

I was recently asked on Twitter about the status of the fourth edition of CSS: The Definitive Guide. A fair question, given how long the project has lain dormant! I have two things to announce on that front.

The first is that I’m really excited to say that Estelle Weyl has joined me as co-author for the fourth edition. We’re working in parallel, tackling individual chapters and doing technical review of each other as we work. Sharing the load, especially with someone as sharp and knowledgable as Estelle, will help get chapters out faster, and the overall book done sooner.

The second is that writing is once again underway, with four chapters in process. I’ve got the transforms chapter done, and the backgrounds and gradients (and maybe foreground colors too) chapter almost done. Estelle is nearing the end of transitions and animations, with flexbox up next. What comes after that for each of us is a little bit up in the air, though I’ll probably tackle basic visual formatting next. Unless I get distracted by something more interesting, of course—truth be told, I’ve been eyeing grid layout with some covetousness in my heart.

So, the book is once again underway, and actually has been for a little while now. I can’t say with certainty when we’ll be done and ready to compile everything into the Doorstop Edition, but we’re pushing for this year or early next.

As an offshoot of this renewed push, I’ve been expanding and revising my CSS test files so that I can check my understanding of the specification, as well as test the fine details of browser support. Over the holidays I decided, more or less on a whim, to commit the whole kit ‘n’ kaboodle to Github. There’s no license and no readme, mostly because I didn’t think to establish either when I set up the repository. Sorry, I guess? In any case, I regard the CSS in the tests to be public domain, but the actual content (whether inline or replaced) of the HTML files may or may not be, so a single license would have been hard to assert anyway. I mostly put the files up there as a form of open backup, and also to smooth out the process of managing updates to the tests between my local machine and meyerweb. Feel free to make use of the tests for your personal education, though!

I’m beyond pleased to note that my second piece for The Pastry Box, “Words, Words”, was published last week. The first, “Sunrise, Sunset”, was published a month before that. (It’s not about what you might think—and yet, and the same time, it is.)

For those who aren’t familiar with The Pastry Box, it describes itself thusly:

Each year, The Pastry Box Project gathers 30 people who are each influential in their field and asks them to share thoughts regarding what they do. Those thoughts are then published every day throughout the year at a rate of one per day, starting January 1st and ending December 31st.

It’s become much more than that, in my eyes. In a lot of ways, The Pastry Box has become a place where writers feel free to stretch themselves and their writing, and to look at themselves and what they do in new lights. It’s an incredibly valuable resource. There are thoughts in their archives that touched, moved, and changed me.

I was invited late last year to be a contributor to The Pastry Box in 2015, and of course I said yes. I accepted the invitation for a couple of reasons. The foremost reason is, of course, the honor of being a Pastry Box contributor. Over the past few years, they’ve had some of the greatest minds and writers of our field participate. That’s even more true of this year’s roster, and I am completely humbled to join them. The fact that this is the last year of The Pastry Box wasn’t actually a factor, as I’d have said yes in any year.

The second reason is that I’m very interested to see how I write in an environment where there are no comments. No doubt this marks me for an anachronism, but it has literally been decades since I wrote for an online outlet that didn’t support reader comments. That ever-present feedback channel is something I value, which is why I still support comments here, but I’m sure it’s affected how I write. Not negatively, or even necessarily positively—it just affects the writing, or so I believe. Over the course of 2015, I hope to find out if I’m right about that.

If you’d like to follow along, please follow The Pastry Box via RSS or Twitter (or both, as I do). Not just for my few thoughts, of course, but for all the amazing contributors this year. Already there have been insightful, funny, and deeply personal stories, and a new thought comes fresh-baked every day. That’s why I’ve followed them in year past, and why I am still amazed and honored to be a part of their final year.

CSS gradients are kind of fun. I know, they’re a little clumsy at first, but I’ve found that with just a little practice, you can hand-author them without more than a brief refresher course on exactly how to structure the first part. At least for me, as long as I can get the setup right, the color stops are a breeze.

As I’ve said in previous posts, gradients are images, just like a PNG or SVG or whatever. That’s why you can write them directly into background properties and have them display. The thing is, though, that you can use them anywhere a property accepts an image value. Like, say, list-item-image and list-item.

Yes, that’s right: you can define gradient list bullets. A test page I set up last week (and the screenshot shown nearby) demonstrates a few different possibilities, but there are so many more.

There are two major limitations I can see: one, you can’t layer multiple gradients together, the way you can with backgrounds. You get one gradient image, and that’s it. Two, this isn’t supported in Firefox, not even the nightly builds. Every other desktop browser appears to support this, usually at least a couple of versions back, and a fair number of mobile browsers as well. A bug has been filed by Boris—thanks, Boris!—so hopefully this limitation will fall away soon.

Fortunately, this is a textbook case of progressive enhancement. You set the basic bullet style, then define something snazzier for browsers that can handle it (which is, again, most of them). If your design somehow critically depends on the appearance of the list bullets, then you’ll need to use another approach. Also, rethink your design.

A third limitation, one not nearly so momentous, is that the list bullets are kind of small as compared to the list items’ font size in most browsers, but a bit bigger in others (as Ana Tudor pointed out; thanks, Ana!). So if you’re going to express yourself with list bullets, be bold and not too complex, and realize there will be some sizing differences across browsers.

A fourth limitation is performance. If you make your gradients too complex, especially if they’re radial gradients, you may degrade the user experience, particularly on mobile. As always, use your new-found power responsibly. Thank you.