Posts from 2015

Medium Trials

Published 8 years, 8 months past

Originally published at Medium on July 30th, 2015.

Yesterday, I decided to try importing a story to Medium. I’d hunted around for a way to auto-post to Medium from WordPress, which runs the blog portion of meyerweb (the rest is mostly HTML, with a little PHP here and there), and hadn’t found one. Then I found the “Import story” feature on Medium and thought, Sure, why not?

So I tried it out on my most recent post, which also happened to have some code in it, as my posts sometimes do. The process was, as anyone who’s used it can tell you, very simple. Paste in a URL and the content gets sucked in.

Well, except for code blocks.

Everything was imported without incident except the Javascript. That seems like a metaphor for something.

I’d structured the block with a pre element, as I always do, and yet the line-breaking was stripped away. It looks like my indentation tabs were preserved, but without the linefeeds, they didn’t have nearly the same utility.

The real problem is that the importation of the code block stopped cold at the first <, dropping the rest of the code on the floor. Now, I admit, I didn’t escape or entity-ize the character in my source, and maybe that was the problem. Still, I feel like an import tool should be a little smarter about things like less-than symbols on import. Otherwise, how many less-than-threes will end up as just plain threes?

Fortunately, the fix was simple: I went back to the original post, drag-selected the whole code block, copied, went back to Medium, drag-selected the mangled code, and hit ⌘V. Done. It was properly formatted and no less-than terminations occurred.

Today, I’m experimenting with writing my post on Medium first, after which I’ll repost it at meyerweb. This is likely the only time I’ll do it in that order, given my experience over here. Captions are deucedly hard to edit (at least in my browser of choice, Firefox Nightly), the apparent inability to add simple decorations like border to images, and the apparently intentional, active enforcement of single-space-after-sentence even when editing annoy me deeply. (Yes, that’s how I roll. Let’s not have the spacing argument here, please.)

I can see why Medium appeals to so many. It’s pretty frictionless, a lot more so than almost any other tool of its kind I’ve used. I mean, my WordPress install is pretty frictionless to me, but that’s because I invested a lot of time customizing it to be that way. Much like my browser, mail client, and other essential tools.

So anyway, that’s what I found during import and authoring on Medium. Here’s hoping this posts properly, and without the stray “in” that’s somehow shown up in my post, and which I can’t select, mouse to delete or otherwise remove through non-Inspector means. If only I could prepend an “f”!

It didn’t show up when I posted, fortunately.

P.S. I discovered this was the title just before publishing. It was supposed to be just “Medium”. ¯\_(ツ)_/¯


Undoing oncut/oncopy/onpaste Falsities

Published 8 years, 9 months past

Inspired by Ryan Joy’s excellent and deservedly popular tweet, I wrote a small, not-terribly-smart Javascript function to undo cut/copy/paste blocking in HTML.

function fixCCP() {
   var elems = document.getElementsByTagName('*');
   var attrs = ['onpaste','oncopy','oncut'];
   for (i = 0; i < elems.length; i++) {
      for (j = 0; j < attrs.length; j++) {
         if (elems[i].getAttribute(attrs[j])) {
            elems[i].setAttribute(attrs[j],elems[i]
            .getAttribute(attrs[j])
            .replace("return false","return true"));
         }
      }
   }
}

Here it is as a bookmarklet, if you still roll that way (as I do): fixCCP.  Thanks to the Bookmarklet Maker at bookmarklets.org for helping me out with that!

If there are obvious improvements to be made to its functionality, let me know and I’ll throw it up on Github.


Everything Looks Like a Nail

Published 8 years, 9 months past

I have recently, perhaps inevitably, taken up woodworking as a hobby.  It’s just clichéd enough to be credible, isn’t it?  Web, wood, maybe it’s in the leading “w”.

A programmer friend and I get together Wednesday evenings to try our hand at what is currently best described as rough carpentry.  The usual reason to take up a “physical-world” hobby like woodworking is to “get away from the computer for a while, man!”  But of course we pull out our iPhones to use as calculators, look up techniques, or find online tools that can help us.  The laptops stay indoors, but computers and the internet still smooth our way.

In web terms, we’re past “hello world” and at about the point where we understand the basics of HTML and have set a few colors and faces with beginner CSS.  We could put up a single-column fan site if that were the goal, but not much more than that.  We’re still at the stage of making a lot of mistakes and not knowing if our problems spring entirely from not knowing how to use our tools, or also from not knowing enough to realize the tools themselves are deficient.  We’re figuring things out as we go, hitting up YouTube for how-to guides on just about everything.  Wikipedia may aspire to be the site of record for Things of Import, but YouTube holds the sum total of humanity’s practical knowledge, hidden amongst all the pop-star and cat videos.

A lot of the best practices map back and forth, too.  Planning ahead is a core competency, and the more you practice, the better you get at it.  Measurement is vital, and cleverness is as useful as it is dangerous.  The importance of quality tools can’t be overstated.  There are a lot of (very) specialized tools available, but you can get really far with the core set of flexible, time-honored basics.  As long as you have a boatload of clamps, that is.

The one major difference is that there is no versioning in woodworking.  It’s like building a project with only the “Save” command — no milestones, no repositories, no undo.  When you do something, you’re committing to altering the project with no take-backs.  If you get it wrong, you have to find a way to patch over the problem.  If you get it really wrong, you have to scrap what you just did and replace the botched part.  And if you get it really, really wrong, all you can do is scrap the whole thing and start over.

So far we haven’t had to scrap anything.  Our first couple of projects were the classic starters: a simple bookshelf, a firewood box, a more complex bookshelf.  For each, we’ve intentionally stepped up the complexity, a bit at a time.  The first bookshelf was just screwed together, but the pieces were all pretty much the right size and properly aligned.  The firewood box was also screwed together, but it involved angled cuts and hinges and sealant.  The second bookshelf involved a wood router in a variety of ways, both structural and decorative.

As in networking, we swore a lot at the router, but it got us where we needed to be.  Eventually, that is, once we figured out how to properly configure it and deal with its quirks.

I can’t deny that there’s a visceral satisfaction in picking up a hammer and whacking on a thing until it’s properly assembled, or disassembled, as the case may be.  There’s definitely a triumph in finding out you did all the measuring and cutting and aligning just right, much like the rush you get when your first major coding project does what you meant it to do, except more so because you’ve wrestled atoms into doing your bidding.  That’s literal orders of magnitude beyond wrangling electrons.

Our next steps are what I assume is the usual second phase: building a wood shop in order to learn how to use a wood shop.  We’re moving up to building fold-down work surfaces with tool storage, custom-fitted wood storage, and braced shelves.  That experience will enable us to move into other, more complicated projects.  Some we already have in mind.  Others will suggest themselves to us.  At every step, we’ll look for new skills to try and practice.

And that, I think, is the real ultimate goal here: to teach ourselves new things, to enrich our skill sets and create useful objects thereby.

So it’s pretty much like working on the web.

Well, except for all the staining.

This article was originally published at The Pastry Box Project on 2 July 2015.


Gradient Flags

Published 8 years, 9 months past

With the news today of the Supreme Court’s decision in Obergefell v. Hodges, and my recent completion of the part of CSS:The Definitive Guide that deals with gradients, I thought I’d create a couple of flags using linear gradients.

First, I’ll define the basic box of the flags.  The dimensions are the same as those specified for the U.S. flag, 1:1.9.  I added a couple of box shadows for visual constrast with the background.

div {height: 10em; width: 19em; margin: 3em;
    box-shadow: 0 0 0.5em rgba(0,0,0,0.25),
        0.4em 0.6em 0.5em rgba(0,0,0,0.25);}

Okay, with that set, first up is what’s often called the pride flag, which is to say the “rainbow flag”.  There’s an interesting history to the design of the flag, but I’m going to stick with “the six-color version popular since 1973”, as Wikipedia puts it.

For such a flag, we just need color stripes with hard stops between them.  That means putting the color stops right up against each other, like so:

div#rainbow {
    background: linear-gradient(180deg,
        red 0%, red 16.7%, 
        orange 16.7%, orange 33.3%,
        yellow 33.3%, yellow 50%, 
        green 50%, green 66.7%, 
        blue 66.7%, blue 83.3%, 
        purple 83.3%, purple 100%);
}

The first red 0% isn’t really necessary, nor is the last purple 100%, but I left them in for the sake of consistency.  You could remove them both in order to make the CSS a little smaller, and still get the same result.  I decided to go from red to purple, as the spectrum is usually described, which meant having the gradient ray point from top to bottom.  Thus 180deg, although to bottom would be completely equal in this case.

Now for the US flag.  In this case, things get a little more interesting.  I’ll note right up front that I’m not going to put in any stars, in order to keep this simple and gradient-focused, and yet it’s still interesting.  We could use a repeating linear gradient, like so:

repeating-linear-gradient(180deg,
    #B22234, #B22234 0.77em, white 0.77em, white 1.54em)

That would then cause each red-white pair of stripes to repeat vertically forever.  Because the specified stripes are manually calculated to be 1/13th of the height of the overall flag (10em), they’ll just fit like they should.

The problem there is that if the overall flag size ever changes, like if the height and weight are converted to pixels, the stripes will get out of sync with the dimensions of the flag.  Fortunately, we don’t have to rely on ems here; we can use percentages.  Thus:

repeating-linear-gradient(180deg,
    #B22234, #B22234 7.7%, white 7.7%, white 15.4%)

Ta-da!  The stripes are the right sizes, and scale with any changes to the height and width of the flag, and repeat as required.

That’s all well and good, but we still need the blue canton (as it’s called).  Since the canton will be on top of the stripes, it actually needs to come first in the comma-separated value list for background-image.  That gives us:

background-image:
    linear-gradient(0deg, #3C3B6E, #3C3B6E),
    repeating-linear-gradient(180deg,
        #B22234, #B22234 7.7%, white 7.7%, white 15.4%);

Wait.  A blue-to-blue gradient?  Well, yes.  I want a consistent blue field, and one way to create that is a gradient that doesn’t actually grade.  It’s a quick way to create a solid-color image that can be sized and positioned however we like.

So, now we size and position the canton.  According to the official design specifications for the flag, the canton is the height of seven stripes, or 53.85% the height of the overall flag, and 40% the width of the flag.  That means a background-size of 40% 53.85%.  The stripes we then have to size at 100% 100%, in order to make sure they cover the entire background area of the flag.  Finally, we position the canton in the top left; the stripes we can position anywhere along the top. so we’ll leave them top left as well.

The final result:

div#usa {
    background-image:
        linear-gradient(0deg, #3C3B6E, #3C3B6E),
        repeating-linear-gradient(180deg,
            #B22234, #B22234 7.7%, white 7.7%, white 15.4%);
    background-size: 40% 53.85%, 100% 100%;
    background-repeat: no-repeat;
    background-position: top left;
}

And if you, like Bryan Fischer, believe that morally speaking “6/26 is our 9/11”, you can move the canton from top left to bottom left in order to invert the flag, which is permitted “as a signal of dire distress in instances of extreme danger to life or property”.

(Of course, it’s a lot easier to do that with background positioning since I didn’t include the stars.  If the stars were there, then we’d have left the canton’s position alone and done a rotateX() transform instead.)

So, there you go: two gradient flags.  You can see both (along with the “distress” variant) on this test page.  If you’ve any desire to use any or all of them, go ahead.  No copyright, trademark, patent, etc., etc. is asserted, implied, etc., etc.  I just wanted to have a little fun with gradients, and thought I’d share.


The Guilt I Carry

Published 8 years, 9 months past

Last year, in an effort to help him and many friends of mine struggling with the tragic death of Chloe Weil, I told Jeremy Keith I had let go of guilt over Rebecca’s death, and that was the truth.  I mourned, I had regrets, but there was no guilt, because there was nothing we could have done except what we did.  Her cancer and death was always going to happen, and the only thing — the only thing — we could have done to avoid it was to have never adopted Rebecca in the first place, thus causing some other family to experience all the joy and sorrow of her brief life.  I accepted that, and it brought some small measure of peace.

All that was true.  Almost all of it is still true…except for guilt.  That came back, seeping into me so slowly that it took me a long time to realize it.  When I finally recognized it for what it was, I realized it had been there for months.  I also realized it was a particular form of guilt: survivor’s guilt.  This came as a surprise, honestly.  As it’s usually defined, at least as I understand it, survivor’s guilt seems to be recognized in the parents of children who take their own lives, but not to those whose children die from disease or accident.

Last week, I published my first piece with Modern Loss to talk about this.  A brief excerpt:

If Joshua had asked why I was saying sorry, I would have told him I wasn’t apologizing because I felt guilty, but rather because I was sorry in the sense of sorrowful. Sorry he had to experience the death of his older sister, who died on her sixth birthday of aggressive brain cancer. Who had been gone just about 51 weeks on the day we had that conversation. Sorry she had been terminally ill, sorry the world is as harsh and unfair as it is, sorry his best friend in the world is dead.

But not sorry out of responsibility or guilt. At least, that’s what I would have said, but I’d have been violating one of my basic tenets of parenting. Because I would have been lying to him.

You can read the whole thing at Modern Loss.  It’s a standard-length article, about 800 words.

I wrote it, in part, to understand myself.  But I published it in the hopes that it will help someone, some day, understand a bereaved friend or relative a little bit better…or possibly even themselves.


The Guilt I Carry

Published 8 years, 10 months past

“Why are you crying?” I asked my son. He wasn’t actually crying so much as sniffling, but the expression on his face was enough to justify the question. He just shook his head, so I sat down on the steps, pulled him into my lap, and snuggled him close. You can still do that when they’re four years old.

“You’ve seemed sad this morning, buddy,” I said gently. “Can you tell me what’s wrong?”

“I miss Rebecca. She was the best big sister ever.”

I hugged him close, as if he were a life preserver, and at that moment he might well have been.  “She was, Joshua.  I miss her too, so, so — ” I couldn’t speak for a moment.  The tears were running ceaselessly down my face, spattering both our shirts. He looked into my eyes and his own tears stopped as he searched my face with a kind of tender curiosity.

“Oh, I’m sorry, Joshua.  I’m so, so sorry. It wasn’t anyone’s fault.  There was nothing we could do. We did everything we could. We loved her, and made her life as wonderful as possible. That’s what we did.  Right?”

He nodded, still looking at me intently.

“Oh, buddy, I’m sorry. I’m sorry. I’m so sorry.”

If Joshua had asked why I was saying sorry, I would have told him I wasn’t apologizing because I felt guilty, but rather because I was sorry in the sense of sorrowful. Sorry he had to experience the death of his older sister, who died on her sixth birthday of aggressive brain cancer. Who had been gone just about 51 weeks on the day we had that conversation. Sorry she had been terminally ill, sorry the world is as harsh and unfair as it is, sorry his best friend in the world is dead.

But not sorry out of responsibility or guilt. At least, that’s what I would have said, but I’d have been violating one of my basic tenets of parenting. Because I would have been lying to him.

As the parent of a dead child, I experience survivor’s guilt. I know the term is generally defined to apply to people like those who survived the 9/11 attacks, tortured by the knowledge that they lived while others died. Those who make it out of plane crashes, or war zones. The friends and family of suicide victims, including the parents of children who take their own lives.

A toddler-age Rebecca snuggled up asleep against the shoulder of the author, who holds her in his arms as he gazes out to sea.
Father and daughter

I can assure you it also affects the parents of children who died of what we bitterly label natural causes. My daughter Rebecca had glioblastoma multiforme, something her genetics preordained and no medicine could hope to cure. Her last MRI, taken five days before she died, showed so many emerging tumors that the doctors didn’t bother to count them. There was, as I said to Joshua, nothing anyone could do to save her.

It doesn’t matter. I still ask myself what I should have done differently, as if there were some winning strategy I was too stupid or blind or arrogant to see. I tell myself that we all did everything possible, but I feel a profound sense of failure. This is the guilt surviving parents bear. Why did she die, and we live? How can we live with ourselves, knowing we failed to save her? For that matter, having failed at our most basic duty, what right do we have to call ourselves parents at all?

Parents are supposed to protect their children, even at the cost of their own lives. I remember the nights I lay in bed next to her sleeping form, my forehead lightly pressed against hers, silently begging any god or demon who might hear me to draw the cancer out of her head and into mine, to name its price if my life was not enough, the pressure of my desperation pounding in my temples.

Did I not pray hard enough, or fervently enough, or offer enough of a sacrifice? Did I not pay attention at the right moment, and overlook the treatment that would have saved her?

You may shake your head, assuring me I did all I could and then some, gently insisting I should be proud of what my wife, Kat, and I did, and how we made her short life the best it could be. Many, many people have done all that and more. I’ve listened to them, and told them I hear them and agree with them. There’s even some truth to my words. But only some.

Kat has it even worse. With her advanced medical degrees, she feels like she should have found a cure. She knows intellectually how ludicrous that sounds, the idea that in ten months she should have found a cure for an incurable disease, but in her heart she carries the guilt. I can tell her she did everything she could and then some, that she should be proud of what she did and how hard she searched for treatment and how she made Rebecca’s short life the best it could be. I do tell her that, and I believe every word.

But she does not.

It was one year to the day after Rebecca’s death, the day that would have been her seventh birthday.The prayers were finished, the memories shared, and Kat and I sat in front of the newly-unveiled grave marker looking at all the stones people had set atop it in remembrance.

I had reached out to move one of the stones off the word “loved” when my fingers brushed the sparkling silver-blue granite of marker itself. Suddenly I was sobbing, blind to everything around me except Kat’s hand on my back as I hunched over, my hand pressed against the gravestone of my daughter.

“I’m sorry, Little Spark,” I sobbed to her gravestone. “I’m so sorry.”

“Why are you sorry?” said Kat gently. “You have nothing to apologize for.  You did everything you — ”

I shook my head, tears sluicing off the inside of my glasses. I whispered it again and again: “I’m sorry.”

Of course Kat’s right, that I have nothing to apologize for. I know that. There was nothing any of us could do except what we did: Fight for her, and make sure her short life was full of wonder and love. I am proud of what we did, but I still carry the guilt of what I could not do: Save my child’s life. I still carry the guilt of what I do now: Continue to survive when my child did not.

I would give almost anything to be able to tell Rebecca how sorry I am, over and over, to beg her forgiveness for my failure to do the impossible. For letting her down, for violating her trust in me to fix everything, the way parents are supposed to.

Just as I begged Joshua his forgiveness, as he huddled in my lap.

This article was originally published as After My Daughter’s Death, On Guilt and Apologies at Modern Loss on 18 June 2015.  It has been edited for clarity.


Witness

Published 8 years, 10 months past

I’m writing this as Game 3 of the NBA Finals is playing downtown, not knowing how it’s going.  The Cavaliers may be up by 30, or down by 30; it doesn’t actually matter to me either way.  I’m not much of a sports fan, truth be told.

But I am a Cleveland fan.

I’ve lived here more than half my life now, after a rootless early childhood and then a semi-rural upbringing.  I came here for college, way back in the late 1980s, and never left.  Never wanted to leave.  The opportunities were there, but I never took them.  When Netscape came to me and asked if I wanted to be a Standards Evangelist, I told them only if I could do it without relocating.  They said yes.  I told Google the same thing about a decade later; they said no.

Something about this city got into me, and didn’t let go.  We have our problems, sure.  You’ve heard some of them on the news.  Everywhere has problems.  I hope we can fix ours, and I hope other places can fix theirs.  Either way, I have long been proud to call Cleveland home, as I will for years to come.

Most of my friends are incredibly excited about the Cavaliers.  Deliriously so, some of them.  It’s pretty awesome to experience, even secondhand.  So I’ve been reading about how the first two games of the finals went, and in them, I recognized something very familiar.

From what I’ve read, pretty much nobody outside the 216 gave the Cavs any real chance in this series.  The Golden State Warriors were judged to be simply too powerful.  And yet, Game 1 went into overtime, where the Cavs lost steam and one of their star players to injury.  Everyone (outside Cleveland, that is) said that was it.  The Cavs made it a great game, they said, but being down to one star player was the end of their run.  After which, Game 2 went to overtime, and the Cavs won it by a razor-thin margin.

That’s Cleveland in a nutshell.

This is a city that is constantly underestimated and derided, but we already know our faults, and we know our strengths.  There’s a core of steel under the bruised and battered skin.  Just like the Cavs.  Down to one headline player, they managed to force overtime and pull a win on the home court of the team that everyone said they couldn’t beat.  The Grit Squad, they’re calling themselves now.  People are saying the LeBron has taken a team of players that shouldn’t be this good and made them into a force.  That may well be, and if so, LeBron stands to make far more as Coach James than he ever will as King James.

America loves an underdog, but it also loves to dump on Cleveland, so I have no idea how sports fans around the country have seen this series.  What I know now is that, win or lose, the Cavaliers have shown the rest of the country what this city is really like, and for that alone they’ve earned my respect.  I think they deserve the same from anyone who’s witnessed what they’ve done.

So Game 3 is underway, probably close to done or even finished by now.  I have no idea if it was another squeaker or a blowout, nor who won.  As soon as I publish this, I’ll go check on how things went.  For the sake of all my friends, I hope the Cavs made it a win in their first Finals home game — but however things turned out, I’m sure The Q was bedlam tonight as the fans celebrate not just being in the finals, but the spirit of the team that embodies this city I call home.


Untitled

Published 8 years, 10 months past

If you do something you love for long enough, it gets into your bones.  But more than that, the things adjacent to it do as well.

Since I got started on the web, very nearly 22 years ago now, I’ve never really seen myself as a designer.  Granted, I did some visual design in the early days, because anyone who set up a web site back then had to be the designer: there was nobody else.  No graphic designers would deign to look at the web, and no “web designers” yet existed.  We were Web Masters because we had to be, drawing buttons and laying out content along with writing code and doing UX and UI and IA and everything else.

So I did design when I had to, but I always knew I wasn’t a capital-D Designer.  I knew this in the same way I knew I was not a boulder nor an odor: it wasn’t a failing or even a lack, but just what was true and even unremarkable.  I was a code monkey who knew his way around Photoshop and could mimic what he saw around him decently enough, but I didn’t have the creative vision or training or, really, inclination to generate my own, unique work.

As we passed out of that epoch of the web, I was more than content to stop trying to design and instead be an enabler of design.  My efforts to teach HTML and CSS had twinned, helical aims: to help anyone who wanted to create a web site share their thoughts, and to help any designer who wanted to create a visual effect share their vision.  I was a technical author, a developer, a sometime observer of design, but never a Designer.  I knew Designers by then, and I knew they possessed a skill and focus I did not.

Which was okay.  After all, I possessed a skill and focus they did not.  Our work was complementary.

What I didn’t realize was that, over all those years, as the knowledge I shared seeped into their bones and became second nature, the same thing was happening in reverse.

For the past few months, I’ve been managing a design project, getting a ton of help from Jason Santa Maria; but I’ve also been the annoying client, making unreasonable demands of everyone involved.  I insisted on changes of direction partway through, and coped with changes of understanding at other points in the process.  I refused to listen to reason at one point, and yielded to reality at another.  For most of it, I compared font faces and sizing, trying to decide which I liked best, telling Jason I wished I could have a little of option A, a little of option B, a dash of option C, struggling to put into words what I could almost see.

Among my friends, I’m vaguely infamous for not being able to tell, at a glance, the difference between Helvetica and Arial.  I’ve seen the detailed analyses of the two, and if I had the exact same run of text in each face, sitting side by side, I could probably do a credible job of figuring out which was which, but give me a standalone block of sans-serif text in Ariatica or Helvetial and my odds of knowing which it is are literally no better than a coin flip.

And yet, there I was, staring at the same layout set in various font faces, feeling the sense of each, obsessed with spacing and intervals and kerning, examining which had the best italics while trying to decide if italics should even be used, if their use conveyed the right message.  I scrutinized the spacing between blocks of text, the alignment of fragments of information, the rhythm of the entire piece, every bit of content.  It wasn’t enough that it be passable, or decent, or even good; it had to be right.  I focused on all the details as well as the overall picture with a will and intensity I had never felt before.

It wasn’t easy.  I massaged my temples as the stress of needing to make exactly the right choice overwhelmed me; I paced around my office, glaring at the alternatives on the monitor every time I passed by; I felt tears of frustration rise as I ran into yet another setback and knew that the final result would not be everything I had originally wanted it to be.  I stood in someone else’s office and rode herd on their archaic software setup, literally telling them where and how many times to click, because that’s what was necessary to get the job done properly.  I wrote and rewrote emails to the various parties in the project, masking my battered spirit as best I could while still being clear about where things stood and where I wanted them to go.

Not, as I say, by myself: Jason was invaluable to getting me off to the right start, keeping me on the right track, and helping me through the setbacks.  I doubt I could have done a tenth as well without him.  But as we progressed, I increasingly felt like I knew what his answers to my questions would be.  My inexperience and fear of error and just plain fear meant I kept checking in with him, but with every iteration, I felt more confident that I already knew the right answers.  In a lot of cases, I made the changes I was already sure he would make, and Jason’s feedback confirmed that I had done right.

Over two decades, I had slowly, unwittingly absorbed everything I needed for this project.  It had seeped into me, creeping out of a thousand Keynote slides and a million words, written and spoken, from my friends and their friends and all the people they looked up to and quoted.

Gradually, I had become a capital-D Designer.  I had a very specific intent to render, and with help and focus, I made the end product as reflective of my intent as possible.  I knew when the design felt wrong, but more importantly, I knew when the design felt right.  And I could see, at first with Jason’s help but increasingly on my own, how to get from one to the other.

This morning, the result was unveiled — literally unveiled, ritually, at the direction of our congregation’s rabbi.  A block of sparkling silver-blue granite carved with a few words of English and Hebrew.  A compact arrangement of text bearing more emotion and meaning than anything I have ever done, horrifying and beautiful, set flush into the earth of Cleveland Heights, where similar markers will one day be set for me and for my wife.

Everything I absorbed over all those years, everything I learned by choice or by chance, and most of all the help I received from everyone who’d ever shared their knowledge and insights with me, all made that possible.  Made me a Designer.

Thank you all.

This article was originally published at The Pastry Box Project on 7 June 2015.


Browse the Archive

Earlier Entries

Later Entries