Book Reviews

Book Review: How To Be Perfect by Michael Schur

4 1/2 of 5

While the book doesn’t teach you how to be perfect, you’ll be a better person for reading it.

If ever I teach an intro to moral philosophy class, this book will be prerequisite reading. Sold as a fun book about ethics from the creator of the TV show “The Good Place,” this is actually a solid introduction to the academic subject of ethics, sprinkled with humour and real-life anecdotes to make it relatable.

“How To Be Perfect” is a semi-biographical story about a TV writer who goes on a journey through moral philosophy to try to figure out how to be a better person. And maybe more importantly how to teach his young children how to be the best they can be. Not to spoil anything, but at the end of the book there’s an entire section where the author talks to his kids about how to be good people, and it is wonderful. 

The book introduces a variety of branches of moral philosophy with questions like “Should I lie and tell my friend I like her ugly shirt?” and “Do I have to return my shopping cart to the shopping cart rack thingy?” and “Should I punch my friend in the face for no reason?” And this is where the book truly shines: It succeeds at framing real moral problems in a comedic yet relatable way and introducing ethics to people in a way that actually makes practical sense to them.

Something we all need more of.

I suggested “How To Be Perfect” to my design ethics book club as a light read for the holidays. Two chapters in I dreaded the comments I’d get from my friends. “Light read? I bet Kant would have some opinions on passing off a textbook as an enjoyable holiday treat!” Then I continued reading and realized I’d sold my friends and the book short.

“How To Be Perfect” is an imperfect but damn fine effort at making the exceptionally challenging and often mind-numbingly turgid topic of ethics and moral philosophy fun and engaging. If you’re interested in ethics at all, and you’ve wondered where to start or worried it would be either too boring or too depressing, I recommend this book. In fact I recommend this book, period. And I’m not just saying that because I am a philosopher by education and deeply fascinated by ethics.

This book sets out to do something moral philosophy sorely needs: Make ethics make sense, in a human and relatable way. Moral philosophy has a bad tendency of being at the same time overbearingly moralistic (“here’s how you’re doing everything wrong in your life, and here are some impossible standards you must follow to right yourself!”), philosophically partisan (“my form of ethics, in my specific interpretation, is the only real ethics. All other ethics are wrong!”), and fundamentally unrelateable (“Act only according to that maxim whereby you can, at the same time, will that it should become a universal law.”) Michael Schur tries (and mostly succeeds) in balancing on a knife’s edge between staying true to the academic foundations of moral philosophy while also framing the many theories covered in real-world scenarios, funny anecdotes, personal experiences, and a heavy helping of yelling through a bullhorn at the ivory towers of academic philosophy.

This last point is probably best exemplified in the chapter on charity where Schur points out how moral philosophers of different traditions will contort themselves into Gordian knot over the moral failings of massively wealthy people using charitable giving as a self-congratulatory popularity contest while in the real world the money they raise actually does some good.

Schur also does something extraordinary in the book: He tries (and I sincerely hope he succeeds!) to introduce a new term both to philosophy and to our common language: “Moral Exhaustion.” Let me quote from the book:

“even if we scale the triple-peaked mountain of Daily Stress, Serious Problems, and Circumstance, and (running on 5 percent battery power) try our very best to do the harder/better thing, we often fail miserably despite our best intentions. It. Is. Exhausting.”

Michael Schur, How To Be Perfect

I think moral exhaustion is a great description of the malaise we are all feeling in our lives and our work today, and I’m now using the term freely in my everyday language thanks to this book.

One major problem with moral philosophy (aka ethics) – and I say this as someone who studied moral philosophy for years at university – is its detachment from the real world and its separation into distinct traditions. You are either a Utilitarian or a Deontologist, a Virtue ethician or a Contractualist, and whatever position you hold, you must defend your tradition against the others. (I am oversimplifying here, but this is a real struggle. Call it trauma from years of being an analytical philosopher taught by a faculty almost entirely composed from Kantians.) Through the book, Schur attempts to line up these and other moral philosophy traditions and theories and thread a needle straight through them to show that rather than treat ethics as One Theory to Rule Them All we are best served with an Everything, Everywhere, All At Once approach to our decision making.

As an introduction to ethics and moral philosophy, “How To Be Perfect” does a good job introducing the main branches of western philosophy (Virtue, Duty, and Consequentialist ethics), newer traditions like Contractualism, and even non-western traditions including Ubuntu and Bhudist ideas. This breadth stems from the impressive research Schur did while writing the TV comedy show “The Good Place” which in reality is a covert psy-op to secretly educate people about ethics by making ethics fun.

Side note: Watching “The Good Place” I would typically at least once in every episode jump up and yell “ARE YOU KIDDING ME?!?!?!? They are doing a WHOLE EPISODE on [insert obscure moral philosophy thing]???!?!?!” To which my wife of endless patience would say “Sit down and watch the show.” Point being that show was astounding and if you haven’t watched it, I cannot recommend it enough. Because it is hilarious. And well written. And exceptionally acted. And also, it contextualizes ethics in a way that just makes sense.

Another side note: I recommend getting the audiobook version of this book. It is narrated by the author and the entire leading cast of “The Good Place,” with snarky footnotes from the book’s academic advisor Todd May and even occasional cameos.

How is “How To Be Perfect” not perfect? In brutal honesty I’ll say it reads like what it is: An introduction to moral philosophy written by someone who is at an introductory level in moral philosophy. Schur finds fascination in the typical places: The vileness and eye-watering absurdity of Ayn Randy’s Objectivism, the spectacle of Jeremy Bentham’s posthumous existence as a cadaver on display at a random university (content warning on that link), the turgidness of Immanuel Kant’s writings, etc. We’ve all been there. 

In the same vein, in my opinion he makes two significant blunders – one historical and one of lack of foresight: 

He writes off Heidegger’s works due to their impenetrability and his much discussed association with Nazism, ignoring the enormous impact Heidegger had on moral and other philosophy. As one of the members of my book club said “I wish he (Schur) would go beyond just hints and snarky remarks to actually explain why he sidesteps Heidegger. I felt like he was making excuses for not reading the work.”

Schur also spends a fair bit of time towards the end of the book celebrating the works of Peter Singer and his longtermism. Anyone paying attention to the collapse of crypto and the bizarre politics driving many Silicon Valley founders will know Singer’s ideals have become a breeding ground for … let’s call them problematic ideas from white men of enormous wealth and power about how we should structure and organize our society today to protect the people of tomorrow. I can’t help but think had “How To Be Perfect” been written in 2022 that entire section of the book would have been very different. So in honesty my critique on this point is a perfect example of an anachronism.

Let me be perfectly clear here: I consider these issues minor to the point of being irrelevant. This book is not an academic textbook, it’s a deeply personal book about morals and ethics that tries to do right by the subject matter and the reader and succeeds more than any similar book I’ve ever read.

Final thoughts

If you’re still with me at this point, you’re definitely the type of person who will enjoy this book, so go out and get it in whatever format you prefer. If on the other hand you are looking for a book to give to your friend who refuses to return their shopping cart to the shopping cart shed thingy, or to subtly tell your family member that it’s not OK to tell people their shirt is ugly even if it is, chances are it’ll be a nice decoration on a shelf and will eventually end up in a donation box. “How To Be Perfect” is not light reading for an airplane ride, in spite of how it’s marketed. It is so much more, and because of this it demands much more from the reader. Just like real life demands so much more from us all. And why this book is wroth reading.

Cross-posted to LinkedIn.

Book Reviews

Book Review: “How High We Go In The Dark” by Sequoia Nagamatsu


This is a book about death. Let me say that up front. It’s also a book about life after death – as in the lives of the people whose loved ones are facing or have passed the threshold of death. As post-pandemic novels go, this one ranks among the best I’ve read.

A pandemic. A dying child. A VR suicide group. A slow recovery. A spaceship. Thousands of years of longing experienced in a single lifetime.

“How High We Go In The Dark” reads like a series of short stories, tied together by time and global events. It’s contemplative in a way readers of “Station Eleven,” “Severance,” and “The Memory Police” will recognize. What sets this book apart from the others is its lack of a central progagonist or linear threaded story. In “How High We Go In The Dark” each chapter is a first-person narrative of a character met once, diary like in its presentation. Each chapter stands alone and can be read as a singular unit. This is accentuated by the audiobook having a different narrator for each chapter.

Every word steeped in melancholy and longing, this book is not for those who seek joy and excitement. It roots in a deep sense of grief for a dying people, a dying planet; reflecting the nebulous grief and loss of past normality we’ve all experienced over the 3+ years of the COVID-19 pandemic.

What’s missing is relief: reading “How High We Go In The Dark” is riding perpetually just behind a creating wave – feeling it’s resolutions within reach but never quite getting there.

Read, with caution and emotional support.

Inspired by Christina Stathopoulos, MSc‘s #BookAMonthChallenge and Mordy Golding‘s yearly book summary I’m committing myself to posting reviews of all the books I read in 2023. This is the first.

Book Reviews CSS HTML

Book Review: Handcrafted CSS: More Bulletproof Web Design

Some context: People keep asking me what books they should read to learn about web design and everything else under the sun. Therefore I’ve decided I’m going to start reading books about web design and everything else under the sun and write reviews of them so you can see if it’s a book you should check out too.

The One Sentence Review

Handcrafted CSS: More Bulletproof Web Design is a book by and for web designers and developers with a solid understanding of HTML and CSS who want to push things further with standards-based code and progressive enhancements through CSS3 and other bleeding edge technologies.

The author(s)

Handcrafted CSS: More Bulletproof Web Design has one of those weird author listings on the front cover: Dan Cederholm with Ethan Marcotte. If you’ve watched the movie Julie and Julia you know that “with” means that the majority of the book is written by Cederholm while a smaller portion is by Marcotte. For this book I’d say the book itself is by Cederholm and that it features an essay by Marcotte that brings in a slightly to the left but still highly relevant aspect that elevates its overall quality and usefulness.

Dan Cederholm is the man behind and author of the famous book Bulletproof Web Design of which the last edition was published in 2007. I have not read that book and by now I have a feeling it is too outdated to invest in. I might pick it up at the library but it’s doubtful. But people I know and trust say it’s a great book so I’ll make that assumption. Cederholm has created some truly impressive websites over time, many of which you have probably visited, and he’s one of those people who not only knows what he’s doing and does it better than most but also knows how to communicate that knowledge to others so they can step in his footprints rather than stake out their own way through the wilderness.

Ethan Marcotte is the man behind and he pops up as the co-author of several books including Designing with Web Standards which is one of the next books on my long list of things to read. Like Cederholm Marrcotte has worked on some pretty impressive projects over the years and his understanding of how the web works is hard to rival, even for Cederholm.

Both these gentlemen are at the very forefront of web design and development where standards and best-practices are concerned. As such this combo bodes well for the book they’ve collaborated on.

The Book Itself

Excluding front and index matter and preface Handcrafted CSS: More Bulletproof Web Design is a fairly short book of 204 pages. It’s in an unusual square-ish shape and comes in full colour with a nice and easy-to-read page layout. Considering the length of other books on the same subject matter it’s easy to think this book to be a little too light on material and substance. That would be a big mistake. These pages are heavy on real-world examples and applications with very little filler text. Although it has the sub-title “More Bulletproof Web Design” the book does not work as an extension of the original book but rather as an appendix. In other words it stands on its own. As a designer/developer with a firm understanding of HTML, CSS and all that surrounds these two code languages I found the book to be an engrossing and immersive read with bucketloads of valuable input. But I can see that without such a solid platform to stand on I would have judged the matter as both superficial and overtly simplistic. Which is the surprising consequence of Cederholm and Marcotte’s clean-and-simple approach.

Having worked with web design and development for many years I’ve noticed that as my understanding and skill set improves, my code becomes more and more simplistic and clean while the end result of that same code becomes more advanced. Handcrafted CSS latches onto this by providing even more simplistic and cleaner code examples and solutions to create well functioning and æsthetically pleasing websites. This is a huge benefit if you’re well versed in web code and a devestating detrement if you’re just starting out: If you don’t have a firm grasp on the code and understand what Cederholm and Marcotte is trying to do this book will seem like a series of disjointed code examples that at the same time go in too much detail and skim over the important stuff.

Futureproofing, progressive enrichment and clearing floats

Cederholm’s portion of the book concerns itself with three major elements:

  • Futureproofing
  • Progressive enrichment through CSS3 (in particular rounded CSS corners, RGBA colours and drop-shadows)
  • A better model for handling floats and clears

These are all hugely important considerations as both the web and the devices we ingest it on evolve but they are easily overlooked because they seem peripheral or subordinate to the issue of getting the content out and working properly.

Cederholm’s approach (and the root of the name of the book) is that a craftman goes the extra mile to add often invisible but still vital elements to her creations to make them stand out. Those elements, or enrichments, can be anything from a properly wrapping list item to a custom ampersand symbol, a gracefully degrading rounded corner or just introducing a semantically sound solution to float and clear management.

FYI: If you’re considering buying this book and the sentence above made you shake your head or think “what the hell is he talking about” I would recommend getting something else instead.

To me Cederholms chapters were divided evenly between verification, a-ha moments and new information. His approaches to futureproofing – making sure that designed elements are able to handle content that goes beyond the original drafts (i.e. a button with text that spans more than one line or has long words in it) – are ones I have strived to live up to even before reading the book. Thus seeing him applying the same philosophies and techniques in his QA process was a verification that I am on the right track. When I started on the section on a semantic solution to floats and clears and saw his ingenious .group solution I was left thinking “What the hell have I been doing all this time? This makes way more sense!” Needless to say the lessons learned from these chapters are now being implemented in all my current and future projects. And as I worked my way through the CSS3 examples and Cederholm’s pragmatic “progressive enrichment” approach I gained confidence and found a desire to start incorporating drop shadows, RGBA colours and rounded corners in my designs now rather than wait for all the browsers to get with the program.

Actually, Cederholm’s attitude toward progressive enrichment deserves special mention here. Whereas a large majority of web professionals have made Internet Explorer bashing into a competitive sport Cederholm proposes a more pragmatic approach: Rather than designing for cutting edge browsers and being frustrated by older browsers not keeping up he creates designs that incorporate rewards for more forward-thinking browsers while incorporating clean and simple solutions for the older generation. This is the only reasonable approach and one I’ve been promoting myself for years so it’s good to see I’m not standing alone on this.

The Fuid Grid

Although Ethan Marcotte’s contribution to the book is only a singular chapter it is a hugely important one. As the title suggests it concerns, and solves, what has been a bit of a mystery for many: The Fluid Grid. Grid-based layouts have been a pillar of print design since the early 1920s and have started making their way onto the web. There are many reasons for this, none of which I will cover here. The challenge with grids on the web has always been that they are either entirely static or at the very least have static elements. This becomes a problem when visitors use devices with unusual or small screen sizes (think a phone, an iPad or a vertically oriented screen) because they are often forced to scroll left and right to access the information on the screen. Marcotte sets out to create a proper fluid grid layout and manages quite well through the use of relative sizes like em and % combined with a fair bit of math. The resulting fluid grid is quite ingenious and introduces flexibility to sites that previously were confined to rigid structures. And practicing what they preach both Marcotte and Cederholm use these types of fluid grid layouts on their own sites. Open them and resize your window to see for yourself.

The Bottom Line

The red line running through Handcrafted CSS: More Bulletproof Web Design is the attitude that a little extra refinement and forethought will bring rewards, in functionality, æsthetics and simplicity. And this attitude is one that can be applied to pretty much every aspect of life, not just web design. Cederholm and Marcotte are both living examples of how well this approach works and their sites stand as testaments to the techniques and parctices.

This book is for the seasoned designer / developer who already has a firm grasp on HTML and CSS but wants to take it further. It is also an excellent introduction to the world of CSS3 and fluid grid layouts for those that want to push their sites and designs into the future. The book is best read while sitting in front of your computer, preferably with a project on hand where the techniques can be implemented immediately. It is when you see the examples take shape and improve your own designs you realize where the value lies in this book. It’s not as much a list of good code examples as a guide to improving your own work. As such the seemingly disjointed code examples actually make a lot of sense: Rather than presenting pre-packaged functional content they are laid out in such a way that they can be slotted into pretty much any project for instant effect. This falls well in line with the theory that new knowledge is best retained when immediately applied to something that matters to the person learning it.

I wholeheartedly recommend this book wihtin the parameters I just set out and look forward to learning more from both Cederholm and Marcotte.