Borges on Life and Death

Lovely interview with Amelia Barili in 1981.

Cynicism, Not Gullibility, Will Kill Our Humanity

Mike Caulfield has been working on teaching web literacy, in part as an effort to address misinformation spread and impact. These preliminary results from some of his classes, and his conclusions, are compelling.

Front-end development is not a problem to be solved

Robin Rendle’s ending is the best part.

My answer: I don’t know.

Prototypes and production

Jeremy Keith differentiates:

So these two kinds of work require very different attitudes. For production work, quality is key. For prototyping, making something quickly is what matters.

B. F. Skinner: The Most Important Theorist of the 21st Century

Audrey Watters:

Design matters. Engineering matters. But so too does the context and the practices around technology. Culture matters. All of these systems and practices have a history. (That’s one of the key takeaways for you, if you’re taking notes.)

Why does the cursor blink, for example? How does the blink direct and shape our attention? How is the writing we do – and even the thinking we do – different on a computer than on paper, in part because of blinks and nudges and notifications? (Is it?) How is the writing we do on a computer shaped by the writing we once did on typewriters? How is the testing we take, even when on paper, designed with machines in mind?

Audrey has been working on a book, Teaching Machines, and gave this talk last month in Florida. I won’t try to summarize the whole talk here, because I think you should just go read her transcript. I’ll just whet your appetite with a couple more selections.

On B. F. Skinner’s influence (over Seymour Papert’s):

I maintain, even in the face of all the learn-to-code brouhaha that multiple choice tests have triumphed over democratically-oriented inquiry. Indeed, clicking on things these days seems to increasingly be redefined as a kind of “active” or “personalized” learning.

And just for fun:

“The most important thing I can do,” Skinner famously said, “is to develop the social infrastructure to give people the power to build a global community that works for all of us,” adding that he intended to develop “the social infrastructure for community – for supporting us, for keeping us safe, for informing us, for civic engagement, and for inclusion of all.”

Oh wait. That wasn’t B. F. Skinner. That was Mark Zuckerberg. My bad.

See? I told you—go read.

Tobias Rechsteiner’s GT Zirkon

Everything about this is beautiful. I love the deep cuts in the letterforms, I love the weird growths on the website. And I love the simplified black and white user interfaces in the illustrations.

A boring education

Speaking of Lisa, her dissection of student needs vs. wants is withering:

It is obvious that the problems of the customer-service model of education continue to expand. The larger question is how it has become accepted wisdom that students require motivation in the form of entertaining behaviors on the part of instructors, that not to do so means being boring, and that boring is not OK and needs to be fixed. Regardless of what a student may need in terms of acculturation, self-direction, and scholarship, it has become more important that they be entertained into learning, then get a degree as quickly as possible to avoid wasting public monies.

Education should not adapt to such support goals, nor adapt to fit what students say they want.

Since I work in for-profit education, I see this bad habit of thinking of students as customers crop up all the time. I do believe that we should take a service-centered approach in supporting student learning. But I believe any input from students has to be filtered and interpreted, and that we have to rely on more sophisticated and less biased methods to determine what is working and what isn’t.

There’s an analog in user experience: designing for the user isn’t about giving the user whatever she wants. If you ask people what they want from their software, you’ll often hear very different things than you’d catch if you watch someone actually use their phone.

I learn more about improving my class by observing students work and asking them to explain things to me than I ever could by sending a survey asking them for suggestions. I do surveys like this, yes, but these are inputs I largely treat as noise that’s required by the larger organization—by people who aren’t in a position to do the boots on the ground work of figuring out what students need.

Lisa’s approach to learning outcomes

Lisa M. Lane:

An SLO is a Student Learning Outcome. Now, before you roll your eyes, be aware that when the History department was given the task of creating SLOs for all our courses years ago, we were given significant latitude. In our wisdom, we decided to make our SLOs skills-based rather than content-based. Instead of saying what content would be covered, what names and dates and events students had to learn, we would base our SLOs on what skills we wanted students to practice as historians.

Love this approach. Personally, I prefer to go a bit broad and overlappy at this high level, because it allows you to have a dialog about shared goals across subjects.

Beyond Digital Ethics

Cal Newport :

It’s hard to imagine companies of this size voluntarily reducing revenue in response to a new brand of ethics. It’s unclear, given their fiduciary responsibility to their shareholders, if they’re even allowed to do so.

By contrast, I’ve long supported a focus on culture over corporations. Instead of quixotically convincing some of the most valuable business enterprises in the history of the world to behave against their interests, we should convince individuals to adopt a much more skeptical and minimalist approach to the digital junk these companies peddle.

We don’t need to convince YouTube to artificially constrain the effectiveness of its AutoPlay algorithm, we should instead convince users of the life-draining inanity of idly browsing YouTube.

Maybe I’m just in a cynical mood, but I don’t personally see either of these approaches working. Honestly, anything that requires individuals or groups of people to shift their behaviors by first changing their minds sounds like tilting at windmills to me.

I’d love to be wrong about this.

On a less cynical note, I believe behavior is currently naturally shifting away from the excesses alluded to by Newport. Anecdotally, I see fewer students distracted on their phones throughout the day than I used to. And it’s clear people have to started to pay attention to the man behind the curtain in terms of advertising and content suggestions online. Give it some time, people know how to take care of themselves, and are surprisingly resilient.

Mathematics for social good

Dylan Kane:

Most of my students don’t see themselves as mathematicians because they can’t see pathways for mathematics to positively influence their lives. What if, as one small step toward creating richer perceptions of what mathematics is and creating a discipline that has a more positive influence on humans, we chose to center “mathematics for social good” as a core part of what we see as math?

Replacing 1 billion-user platforms

Manton Reece:

We do not need another social network with 1 billion users. Part of the problem is having so many users and so much power concentrated in one place. And setting out to achieve 1 billion users means it’s an ad-based platform that will inherently revisit many existing problems.

Agreed. And yet I am still bothered by the barriers of entry to alternatives, including Apart from the usually-discussed technical and know-how barriers to entry (which honestly I find dubious on their own), what of social barriers? I see a lot of what faces whenever I check in on How do we avoid revisiting this existing problem?

Coney Island Boardwalk

OMG I love these old postcards of the boardwalk at Coney Island.

The wood planks of the Coney Island Boardwalk were designed to accommodate two kinds of traffic: pedestrian and rolling chair. The sections with diagonal planks forming a chevron pattern were meant for foot traffic, whereas the two strips of straight planks were meant for rolling chairs.

If you ever visit New York, I really recommend the trip out to Coney Island. It’s kind of a bizarre place so close to such a huge international city. I recommend the freak show, a corn dog or two, and a stroll down the boardwalk.

If it’s nice out, take a nap on the pier. Don’t forget sunblock.

The Hidden Cost of Touchscreens

Amber Case:

When I worked in food service and in the mailroom, the uglier touchscreens were always easier to work with. They were color coded with bright, contrasting colors, making the boundaries between numbers or items very obvious. I found that the colors reduced mistakes. I’d usually tap the right items after barely even glancing at the interface. After a while, I’d only check the screen for mistakes at the end of the process, before submitting an order or printing a receipt.

Most touchscreen interfaces don’t use high contrast colors or locked, static buttons for basic functions. They bury actions under multiple buttons, and this leaves us dangerously hunting for the right button while trying to drive, or our frustrated passengers trying to help us get our phone connected via Bluetooth.

AI is Not a Community Management Strategy

Derek Powazek:

This PageRank thing, they told us, was an “algorithm.” And, for a time, algorithms were all the rage. We were living in the age of the algorithm. And in all my client meetings and project plans, every time we had a decision to make, someone would say, “the algorithm will do it.”

The algorithm never did it.

I’ll let Dionne Warwick take this one:

Gotta get off, gonna get
Out of this merry-go-round
Gotta get off, gonna get
Need to get on where I’m bound

When did I get, where did I
Why am I lost as a lamb
When will I know, where will I
How will I learn who I am

Service Design: From Insight to Implementation

Added this to my reading list last year, and have been digging into it again the past week. So far I’m finding the book to be interesting in terms of case studies, but short on practical advice. Does anyone have any other recommendations as I go down this road?

15 principles of good service design

Lou Downe:

Without professional standards we will continue to expect those around us to be able to do more than they can, and not expect enough of ourselves.

We need to understand that most people can spot a bad service, but won’t be able to tell you why it’s bad or how to fix it. This is the same with graphic design – where most people will be able to identify a bad road sign, but won’t be able to tell you that the kerning is too tight. It isn’t fair to expect them to do this, just as it isn’t fair for us to charge for our services as designers if we can’t.

Reading through these principles made me much more interested in service design.

In Defense of Design Thinking, Which Is Terrible

Khoi Vinh:

“Everyone Can Code” is an interesting idea. The implication is that there will be a lot of good code out there, but it also implies that there will be a lot of bad code too. In a world where everyone can code, not all code will be good. There will be bad code, in fact.

It’s worth noting though that engineering as a discipline, as a trade, as a profession is largely unthreatened by the idea of bad code. In fact, you could say that the prevalence of bad code has been a boon to the world of engineering. In spite of all the bad code being written out there, the discipline is thriving.

And yet when it comes to the discipline of design:

Designers want design to be an exclusive domain. They want its processes to be mysterious, and often rooted in the idiosyncrasies of mercurial creative directors and savants, because it preserves the perceived value of our craft. Put more plainly: the more difficult design is to practice, the more lucrative it is for practicing designers.

I’m with Khoi on this point:

Any embrace of design by non-designers is a good thing, and design thinking qualifies here. The reason for this is that when that happens, it means our language, the vocabulary of design, is broadening to the rest of the world.

If you ask me, this is a big part of what I’ve always loved about the web: the way it seems to support individual growth by giving so many a platform to share about what they do and how they approach their work.

Back in the 90s, I remember an explosion of writing and sharing about making web pages. It was great! I wouldn’t have learned half the things I know how to do without that impulse to share.

I think the impulse is still there, if it sometimes gets a bit overwhelming dealing with so many resources which just attempt to monetize content rather than provide genuine heart-felt writing to visitors. Just have a look at some of the math education blogosphere and you’ll see that impulse on full display.

Eloquent JavaScript, 3rd Edition

I’m so glad to see that the third edition of Marijn Haverbeke’s excellent Eloquent JavaScript is out.

He’s updated it to reflect modern JavaScript, but he wisely leaves alone topics which are subject to tumultuous change:

So it is not uncommon for the code that you find in an NPM package or that runs on a web page to have gone through multiple stages of transformation—converted from modern JavaScript to historic JavaScript, from ES module format to CommonJS, bundled, and minified. We won’t go into the details of these tools in this book, since they tend to be boring and change rapidly. Just be aware that the JavaScript code that you run is often not the code as it was written.

I hope to give this a more thorough read over the next weeks. If you haven’t read the earlier editions, now’s a great time to pick this up.

Nobody Said CSS Is Easy

Amber asked for some help with checkboxes:

In conclusion to my first two months on a big project, I now know that getting confused, spending a long time studying many different files & folders, and asking other developers for help is a right of passage to becoming a better developer.

Observable: Five-Minute Introduction

I discovered Observable, a new project from Mike Bostock just yesterday. It’s a modern web-based programming notebook for JavaScript.

I remember the first time a friend of mine showed me something he’d written in Mathematica, about 15 years ago. I had no idea what was going on. I hadn’t studied any computer science, I didn’t really understand what this tool was supposed to be doing, or why anyone would use it. There was a big gap between how impressed my friend was with what he’d been able to do with it, and my feelings at looking at it with him. (I feel like it had something to do with simulating sheep populations?)

Fast forward to a couple of years ago, when I was working on the launch of a data science course and saw a Jupyter notebook in action running Python. The scales came off my eyes. This was an interactive programming environment that I had never really imagined! The possibilities for teaching were immediately obvious. You could create notebooks that showed code and results for students to tinker with, demonstrate with live examples you could update on the fly, leave blanks for students to fill in like worksheet, etc.

It was only later that I realized I was seeing a new take on a set of paradigms that I’d seen in Mathematica so many years earlier.

Observable uses the same notebook model, in a way that feels very much web-technology native. It’s web interface is nicer than Jupyter already. I’m also encouraged to see some early community on the site (although at first glance it seems heavily male-leaning). I’ll be curious to see how it grows. As far as I can tell, there’s not currently a way to download and work locally on Observable notebooks, whereas part of what I like about the Jupyter format is its portability. Observable is still young, so I hope that there is a chance this may happen in the future.

In the meantime, if I was teaching JavaScript, I would give this a serious look.

Ask Irene

As it says on the tin, “Find the perfect spot to eat & drink in Barcelona.”

Highly recommended if you’re ever in Barcelona. We only got to try a couple of these places while visiting, and will definitely try more next time we’re there.

10 Mostly Easy Steps To Become An Indie Dev

Inspiring comparison of indie game development with playing in a band.

Crying in Public

Shortly after I moved back to New York, I was let go from my job. It was the first time I ever cried in public, and I still recall more of the emotional nuances of the experience in my heart, than any of the actual details of the job. I just remember suddenly needing to get out of the building, waiting tortuously for the elevator to take me down the 40-or-whatever floors, and having nowhere to go. So I simply broke down into sobs in the street.

I felt embarrassed, like insanely embarrassed, and I was so worried that people would come up to me and ask if I was okay and it would only make it worse. But no one came up to me. I don’t think anyone even took a second look at me. And this was a busy area in mid-town, a few blocks from Grand Central.

I fell in love with New York a little bit more that day. Sometimes you need to cry, and in New York that often means crying on the street or in the subway, because life doesn’t happen in your apartment, and you don’t have a car to hide in. There’s a shared experience of this, anyone I’ve talked to who lives or lived in New York has stories like these. And the beautiful part is, that we also all know that the best way to comfort someone who is crying in public, is to leave them alone.

I love that, and I love this map, which so effortlessly conveys the experience of living in New York during your formative adult years with emojis and one-sentence stories. Thank you for this.

Fraction Frenzy

Megan Schmidt figuring out fractions with her daughter, by talking about sharing:

It’s not possible to share 10 brownies fairly with 4 friends. Can we have 5 friends?

More like this, please.

My Fellow White People, Here’s One Simple Trick You Can Do About Racism TODAY!

Captain Awkward:

So, you said something racist. Or, someone told you that you said something racist.

Or, someone you really like & admire said or did something racist, or is getting told on for saying something racist.

And now you feel uncomfortable. You feel guilty, maybe, or ashamed. Whatever it is, it’s weird and you don’t like it.


People and tooling

Susan Jean Robertson:

The way we build for the web right now feels problematic in so many ways. Instead of welcoming everyone from our teams with their various skills, we create layers of complexity that shut many out.

This has been bothering me too.

See also: Aging out.

Legends of the Ancient Web

Another thought-provoking talk from Maciej Cegłowski, tracing the early history of radio from hobbyists to commercial success:

Like the Internet, radio technology was on the horizon for a long time before it arrived, and it arrived in a rudimentary form that didn’t strike anyone as a qualitatively new technology, let alone one that could upend politics.

The world that radio arrived in already had ways to communicate in real time over long distances—telegraphs and telephones. It wasn’t clear at the outset that Hertzian waves could be detected at distances much greater than a few hundred meters, let alone that they might become a practical method to transmit the human voice.

At best, they might prove a useful method for detecting lightning at a distance, or communicating with ships at sea.

The world that radio was born into had a group of telegraphy enthusiasts who ran their own little networks, the Usenet of their day. And there was also an assortment of thriving small-scale telephone networks, including rural ones where the telephone wires were run over barbed wire fencing, connecting thirty or forty farms on a circuit.

Some of these people became the first radio “hams”—amateur hobbyists.

Correspondence from Alan Kay

Socrates didn’t charge for “education” because when you are in business, the “customer starts to become right”. Whereas in education, the customer is generally “not right”. Marketeers are catering to what people want, educators are trying to deal with what they think people need (and this is often not at all what they want). Part of Montessori’s genius was to realize early that children want to get fluent in their surrounding environs and culture, and this can be really powerful if one embeds what they need in the environs and culture.

I want to believe this, but I don’t know how to escape the patriarchal implications of this line of reasoning. As soon as it’s the teacher’s job to know better what students need…

Amber Wilson on Learning

A refreshing take:

The Web is at a point where more of us need to be putting in some effort to get a broader view of the world and the people living here. The social effects of the Web are stretching further and further every day. More and more people are getting access to it. More than ever, we need to make sure it’s an accessible and secure place for everyone.

No, #MeToo Is Not a Witch Hunt

David M. Perry gets it:

This is all nonsense, but nonsense with a purpose. Powerful men, mostly white men, are not Jews in Nazi Germany, black Americans in pre-civil-rights U.S., heretics and witches before the Salem magistrates or the Inquisition, alleged Communists before the House Un-American Activities Committee, or political dissidents in Soviet Russia. Losing a job, losing screen time, losing influence—these are not equivalent to the loss of life or freedom. Every time the playing field tilts a bit toward level, the powerful start to cry, “Help, I’m being repressed!”

People Are Not Talking About Machine Learning Clickbait and Misinformation Nearly Enough

Mike Caulfield:

You know what machine learning is really good at learning, though? Like, scary, Skynet-level good?

What you click on.

Rebuilding the social open web

Brent Simmons:

The period from 1995-2008 (roughly speaking) was fun. It seemed like everybody was coming up with new things, and people were experimenting, and we were finding new joys in new connections, both human and technological.

What’s New in HTML 5.2?

Nice overview from Ire Aderinokun.

Robust Client-Side JavaScript

Mat​hia⁠s S​chäf⁠er offers up a wonderful and in-depth overview addressing the current state of affairs with practical advice and examples throughout.

I should probably add this to my list of web books.


This looks interesting (and deeply nerdy):

A hyperfast web frontend for git repositories written in C.

Honestly, it’s fun just poking around a codebase whose user interface is the project itself. For me, it’s especially fun to look through all this C code and realize that in most cases I kind of know what’s going on.

I don’t know what I’m doing.

Lynn Fisher:

My career path wasn’t planned out and was shaped by an acceptance that it’s okay not to know. Even now I don’t have much of a plan for what I’ll do next. All I know is I want to keep learning and to keep making things, and with that I’m confident I’ll find my way.

I can relate.

The Year in Falling Apart

Rahawa Haile gets it.

“Natural” Teachers

Dylan Kane:

Speaking confidently, explaining ideas clearly, having some content knowledge, and getting students to like you are all things that many humans get good at outside of teaching contexts, and at first glance someone with those skills might appear to be a natural teacher.


The heart of teaching is much more subtle, much harder to learn, and much more counterintuitive.

Isn’t this true of any field of endeavor?

I find it’s often the case that those who show the most “natural” skill in something, wind up being the ones who have the most difficulty un-learning what they believe they know and understand as they work toward mastery. They’re more likely to get frustrated once things become more challenging for them.

I always find it more rewarding to try to get better at things which I feel require work for me to really engage with. Anything that seems immediately obvious or straightforward to me gives me pretty major pause, because I’m probably over-simplifying it.

It’s the Kultur, Stupid

Timothy Garton Ash makes a compelling case that Germany’s current flirtations with the far-right have more to do with a sense of cultural loss, as opposed to a loss of economic standing.

For the rank-and-file, it is yet more evidence that the liberal elites have so little time and respect for them that they “won’t look at us even with their asses.” Worse still: they won’t even let ordinary people say what they think. In a poll conducted in spring 2016 for the Freedom Index of the John Stuart Mill Institute in Heidelberg, only 57 percent of respondents said they felt that “one can freely express one’s political opinion in Germany today.”

It’s therefore encouraging to see a growing number of German intellectuals advocating John Stuart Mill’s own response. Take on these arguments in free and open debate. Subject them to vigorous and rigorous scrutiny. Separate the wheat from the chaff. For as Mill famously argued, even a false argument can contain a sliver of truth, and the good sword of truth can only be kept sharp if constantly tested in open combat with falsehood. Otherwise the received opinion, even if it is correct, will only be held “in the manner of a prejudice.”

I can’t pretend to really know what is going on at all, but it makes sense to me that there are many people in this world with grievances who feel simply unheard. It also does strike me as dangerous to allow insular thoughts to fester in their own insularity. If we can’t air out our grievances, how can we stay open to the possibility of changing our thinking?

This isn’t at all to say that I think the “non-elites”1 of economically advanced countries like Germany and the US are somehow more deserving of attention than the billions of people on the planet who are genuinely making do with too little. But they are part of the voting process for decision-makers who increasingly affect people around the world, despite being representative of only a select few. We have to be able to have a conversation with them, or I can only see the current state of affairs getting worse.

  1. I’m not sure what to call it, but I mean folks who feel left behind somehow. 

A Giant Leap into the Unknown

I always appreciate when folks who struggle with their mental health find ways to write and honestly share their experience. So I want to give thanks to Megan Schmidt for opening up at a time when she probably feels like closing off, to share about her decision to take some time from her teaching:

I simply need time to let my brain settle down from the chaos that has taken over. I’ll work to restore relationships with my spouse, my daughter, my family, and my friends that I simply have not had the mental energy to attend to.

I’m glad she’s able to take the time she needs. And to anyone else out there who shares these sorts of struggles, I hope you are able to find people and support in your life to ease the pain at least a bit.

Retention and the Cross-Generational Pipeline

Kate Heddleston:

What if women are leaving the tech industry before they can educate other women? Or, worse, what if women in the tech industry are so unhappy that they are actively convincing their friends and daughters NOT to join.

This is exactly what’s been happening in our field. The attrition of women from the technology industry, namely software engineering, over the past few decades is a significant contributor to the lack of women in the field today. And, while my research focuses mainly on women, I believe many of the same things are true for people of color. Let me explain why women are leaving, how that impacts the next generation’s pipeline, and how we can go about fixing it.

The Chef

This past weekend, we took a bus to Wrocław, Poland and stayed near the old town square. We arrived late on Friday, and on our walk through town, I was immediately struck by the night life of the city. I realized later that we were near the university, which explained all the young people. Still, I don’t think I’ve ever seen such an active local night life in the historical center of town.

For dinner on Saturday, we trekked out to a more remote part of town where we had made reservations at a restaurant. The restaurant was nestled in a strip of shops at the foot of a six-or-so-story apartment complex, among a dozen or so similar complexes. As we entered, the setup was very intimate: three tall large tables designed to seat at most six people each, sharing the space with a small open kitchen.

After getting some drinks, the chef came over and sat across from us at the table for a chat. He explained that he’d opened this restaurant after feeling frustrated at larger restaurants with the politics of designing menus for customers to order from. Here there were no menus, and instead he simply wanted to know what kinds of things we like and what kinds of things we don’t like. As we hesitantly started to describe our tastes, he took notes on a small piece of paper and interjected with follow-up questions. At one point he said, “That’s great, that inspires me!”

Soon he was off behind the counter to the kitchen, where he and two other chefs prepped several small plates of food, all based on the conversation and his notes.

After dinner we talked with him some more. A small “kiddie” table next to the kitchen had become occupied by a young girl while we’d eaten—it turned out she was his daughter. He’d cooked in restaurants in London and in the center of Wrocław for years, but it was clear as he told his story how much joy he’d found in this venture. He opened for dinner Tuesday through Friday, and held lunch and dinner on the weekends. The tables were chosen to be modular because he also sometimes held cooking classes in the same space.

It’s rare to see such a tight integration between a craftsman, his craft, his team, his life, and his customers. What a treat.

Color schemes

The latest chapter of Programming Design Systems by Rune Madsen is out:

By focusing on the hue, saturation, and lightness of colors – and how these dimensions interact – designers can learn how changes in code are reflected visually, and compose interesting color combinations from this knowledge.

A Look Back at the History of CSS

So much nostalgia here, especially for that 2002 site launch. What a treat.

And congrats to Jay Hoffman. His newsletter The History of the Web is always interesting.

NCTM and High School Math

Dan Meyer:

NCTM proposes a high school course of study premised on:

  • modeling, which students most often experience as pseudocontextual word problems,
  • proof, which students most often experience by filling in blanks in a two-column template,
  • technology, which students most often experience as a medium for mealy, auto-graded exercises,
  • to say nothing of joy and wonder, which most students typically experience as boredom and dread.

This is a multi-decade project! One that will require the best of teachers, teacher educators, coaches, administrators, edtech companies, assessment consortia, policymakers, publishers, and parents. It will require new models of curriculum, assessment, and professional development, all supporting modeling and proof and eliciting joy and wonder from students. It will require a constant articulation and re-articulation of values to people who aren’t NCTM members. That is, changes to the K-8 curriculum required articulation to high school teachers. Changes to the high school curriculum will require articulation to college and university educators! Does anybody even know any college or university educators?

Honestly, this last line is what kills me: “Does anybody even know any college or university educators?”

In retrospect, my personal experience of being a student feels extremely herky jerky. I’m not sure it ever really felt like my entire education was designed to go together. Instead, every year felt like a new challenge in forming my own complete picture from the new puzzle pieces I was being given. (And, given my interest in teaching, new opportunities to observe wildly different approaches to good teaching.)

I find myself torn though. Having spent some time now as a teacher myself, and knowing more than a few, I do think there can be an exasperating feeling of not having colleagues, especially across the spectrum. Of course there should be more opportunities for teachers to gather and swap stories across subject area, geographic region, age range, and level.

We also need a quality standard of some kind for students, if we’re to work toward the ideals of equal opportunity.

And yet, for me, I only felt that my own path through school was stronger for all the disjointedness that I had to navigate myself. I’m probably just articulating my own level of privilege here, but part of me has a hard time letting go of the idea that every child and every student ultimately deserves their own rich and unique path through life.

Does a shared sense of the bare minimum help us get there? I don’t think we have any choice but to hope that’s the case, and support long-term multifaceted endeavors like these to raise the overall bar. But I still hope, perhaps even longer term, that this will simply look like the first step.

Web Publications for the Open Web Platform

From the W3C:

We dream of a world where books, and indeed all kinds of publications, are first-class citizens of the web. From novels to textbooks, from journal articles to corporate memos, from newsletters to manga, publications are everywhere. But we face challenges in presenting them on the web with the fidelity and ease of use that they deserve.

Many good ideas and considerations in here, especially addressing challenges like offline availability and citations.

On both those fronts, I still find myself wondering about inline interactive examples. How will these be bundled? How will they work offline? How can one reference a particular state of an interactive example?

Still, I’m hopeful that work like this will continue.

A Survey of My Tools in 2017

I hate reading posts—especially “interview”-style posts—about people’s “setup.” We get it: you’re a geek/nerd/poser with money to burn on gadgets and stuff and you like talking about them with your friends. These kind of posts strike me as the twenty-teens equivalent of 1990s-style conspicuous consumption.

I’m gonna write a bit about my tools anyway, and I’m fine if you want to lump me and this post in the same category as all the others. Please, and I mean this sincerely, stop wasting your time reading yet another one of these posts and go do something good for yourself instead.

Single-purpose devices

I tend to be a late adopter of new hardware and an early adopter of new software. A few months ago I bought a dedicated ebook reader for the first time. I’ve been interested in ebook readers since I was a kid. As much as I’ve been wanting to try one out, I have a strong aversion to getting locked into a single ebook store platform.

But I moved to Germany and didn’t want to be carting my whole library with me around the world. I shipped my books to my folks, bit the bullet, and bought a Kindle.

I also found a nice way around my aversion to feeling trapped in a deeper relationship with Amazon by getting myself a library card. Both the New York Public Library and the Brooklyn Public Library have a great selection of ebooks (and audio books!) available on a platform called Overdrive. For me, this has been miraculous. I haven’t made use of any public library since school, and even though this is all happening over the air, checking out books from New York genuinely gives me a little jolt of feeling connected to the reading public of my adopted home base.

Most importantly, I have actually been reading more books this way. Until this change, my habit has been to visit the bookstore, buy some books, maybe flip through and read a chapter here or there. But mostly, books have wound up on my shelf unread. Sure, I have a handful that I read cover to cover and constantly refer back to. But with this digital library setup, I can check things out and if I don’t read them, I don’t read them. And if I get into them, I try to finish them before they’re due. All as a public service to me as a New York City taxpayer. Support your local library kids!

At any rate, the beauty of having a single-purpose device for reading has me wondering about the possibilities for other single-purpose devices, especially for writing. More on that another time. There’s been a lot of talk in recent years about “smart” devices like light bulbs and blinds and refrigerators and stuff—none of that interests me so far, either as a consumer or as a designer.

Software Essentials

Whenever I try to really stop and think about all the different things I use on a regular basis, the variety and depth of software really amazes me. On the other hand, I also find myself feeling a bit underwhelmed by a lot of the software on offer these days. Software is such a broad category that I’m gonna break this down a bit further.

Writing and Editing Prose

Recently I’ve been trying to use MarsEdit for writing. I’ve had a license for a long time, but never really used it. Similar to my thoughts on single-purpose devices, I’m finding it nice to have a piece of software that I use just for this purpose. It has a nice feature-set and I do prefer writing in Markdown with a live-updating preview,1 so it works well for me.

In the past, I’ve mostly used BBEdit for writing that’s meant to be published to my websites. I also go back and forth on using something like Simple Note or Apple’s Notes app to jot down early stages of something on my mind. When I’m writing either for work or something that I’ll need notes and feedback on, I tend to go for Google Docs.

This is a space where I feel there’s something lacking a bit these days. I played around with Abstract at my office recently, a tool which offers Github-like functionality for interaction designers who use Sketch. It made me realize that I’d still really like something like Github for writing. But I don’t want to use a web app, and I don’t want to pay a monthly fee. So this is probably more of a pipe dream for now. I would gladly pay a one-time fee for an app that did this well, especially if it costs something that I wouldn’t feel embarrassed about asking my friends who I’d like to have as editors on a piece purchase for themselves as well.


I’m using BBEdit for personal stuff and am using Atom at work. Atom is growing on me, although mostly I just like having the highlighting for what’s been changed since my last git commit. I’ve never felt 100% dedicated to any text editor for programming. I still like BBEdit because it mostly leaves me alone, and the tab interface that’s been adopted on most modern text editors is really annoying to me.2

Github itself has features that we use at work which I haven’t personally used before but am loving: primarily its code review system. I’m not sure all of these features were in place a few years ago and I think Github has done a wonderful job with them. More tools need these kind of collaborative workflow considerations baked in.

For the uninitiated, git (the technology Github is built around) provides a way to create something called a “branch” off a set of files, which essentially acts as a set of proposed changes to those files. (Think “Track Changes” in Microsoft Word.) When you’re done making a set of changes, on Github you can make something called a “pull request” which is essentially a formal request to accept those changes into the main set of files. The workflow feature that Github has added allows you to nominate one or more reviewers when you make a pull request. A reviewer can leave comments on your changes and ultimately can mark them as approved or needing improvements.

Anyone who’s ever worked with some kind of editorial workflow will likely recognize how powerful a robust set of features around making changes, leaving comments, and approving changes could be. Github has done this better than anything else I’ve seen. On a related note, I really miss Editorially. They were really onto something.


As mentioned above, I’ve been trying to spend more time reading books and less time reading on the web. Mostly this has translated to cutting back on reading the news.

The vast majority of my time spent reading takes place on my phone, and most of that still takes place in Reeder. It’s my favorite feed reader, and feeds are still my preferred way to stay on top of things.

For a while I was using Twitter, but it just got overwhelming. I stopped and really haven’t missed it.

For several years, I’ve been a devoted Instapaper user, but I have all but stopped using it as well. I’m not sure why this is, but I think I grew tired of having things pile up there. I’m still saving things there all the time, but I’ve realized that for short- to long-form writing I find on the web, I’m either going to read it right away or never come back to it. This is a dramatic shift in behavior for me, and I can neither explain it, nor offer an opinion on whether this has been for the better or worse. For now it just is.

I’ve also taken to subscribing to more email newsletters. I would rather not be reading inside my email client, but as these have become more popular there are some things that might otherwise have been blogs which I get in this way. I believe there’s a way I could set up my Feedbin account to receive these and read them in Reeder as well, but I’ve never taken the time to set it up.

Since I am reading more on an ebook reader, I’m interacting with the Kindle software quite frequently. I have mixed feelings which probably warrant more detail than I can fit in a piece like this. For now, a list:

Related to the Kindle, I’m also using an app called Libby to check out and manage library books. It’s great to have this functionality in my pocket, and overall the app is pretty cute and full-featured. I simply find myself wishing for a less clunky implementation of the interface—the app can feel slow at times, and a bit pieced together.

Email and Messaging

This is probably the category of apps which I interact with the most, and as with anything I find myself spending significant amounts of time with, I generally find my relationship to these tools frustrating.

Why should this be? These tools, group chats and email chains aside, are about communication between myself and another person. In many ways, these are by far the most human-centered pieces of software that we all use regularly, but I find they often leave me feeling the cold touch of my devices despite whatever warmth or comfort I may receive from the human on the other end.

How do I deal with all of this? Well, for starters, I keep two email clients on my computer (Apple Mail and Spark), and four (yes, four) on the first screen of my phone (Apple Mail, Outlook, Spark, and Google Inbox). I regularly use Messages and Slack on my computer at work; and keep Messages, WhatsApp, Signal, and Slack in easy reach on my phone.

Reader, I wish I could tell you why I use so many things. I deeply long for the days when I could use Adium to chat with friends across AOL Instant Messenger, Yahoo, ICQ, Google Talk, and iMessage, without having to worry about whatever service everyone was using. Those were good times. I am extremely grateful that email still largely works in this manner. Email has an extraordinarily resilient design.

I do not love any of these apps, and honestly don’t know if I could even recommend them to you. You probably use many of these yourself, although I imagine you use fewer email clients than I do—I imagine you can count them on one finger. If you’re interested, here’s roughly how I use them on my phone:

At a basic level, I just don’t really have a clear idea what I’d like my relationship with email to be, which I’m sure is not uncommon.

With chatting, I know what I’d prefer: a unified interface for sending messages to people which abstracts away messaging platforms. I have no real complaints about any of the chat interfaces that I use, just that they all feel platform-first rather than person-first. Interface-wise, I’d probably say Slack and WeChat impress me the most, but WhatsApp, Messages, and Signal are all really good too. Honestly, there’s not a lot to fuck up, and chat is an excellent style of communicating with people.

To Be Continued?

There’s much more to be said about the software I find myself using on a regular basis these days, especially the abundant array of programming and design tools which seem to be multiplying like bunnies. Those will have to wait for next time.

  1. It would be nice to be able to set a custom Markdown parser though. For instance, so that I could preview with proper footnotes. 

  2. In my opinion the tabs don’t work because you can easily wind up with too many open, rendering them nearly useless. But I’ve recently been running into an issue which I find even more annoying: if I’m working on different branches of a codebase, either of which have a bunch of working files that are new, when I switch branches I have a bunch of open tabs that the editor thinks have been deleted. So I have to manually go through and close those tabs I’m no longer working on, but have to confirm that I don’t want to save them. This seems very prone to human error, and I don’t want to have to think about it anyway. 


A few months ago, I left my job and moved to Berlin. This has brought a lot of changes in a short period of time. I have a few advantages: I studied German in school, my girlfriend moved here with me, and my siblings and parents are already used to me living far away. So far, I’m learning a lot, but it’s definitely taking some time to adjust.

Können wir vielleicht auf Deutsch reden?

Honestly, the language barrier has only been an issue in my head. Everyone at my office speaks English (many better than I do) and I rarely find myself in situations where I absolutely must use German.

But part of my desire to move here came from wanting to practice German, which has been too easy to avoid. So far, I use German in most situations outside of the office. I get a little kick every time I order food without switching to English. The face I make while I’m concentrating to understand looks like I’m confused, so I’ve been trying to listen without squinching.

I’ve grown the most in my ability to listen to other conversations and grasp more of what is being discussed. For the past few years, I’ve been making an effort to improve my active listening skills. Being around German conversations has been a great help. Typically, I’m talkative in meetings, often to the point where I accidentally talk over others. But now I find myself spending more energy working to understand those around me, and less trying to think of what I want to say. It feels really nice.

Still, I hope to work on my confidence in speaking German over the next few months, and to use it more at the office. This will require overcoming the embarrassment of sounding like an idiot in a language I barely know.

Back to Work

Getting back to work after teaching for the past few years has been the most challenging and interesting transition with this move. Don’t get me wrong—teaching is a significant amount of work with more than enough rewards and challenges for a lifetime. But when I started teaching, I always knew I would have to return to professional practice, to keep my skills sharp and to stay in touch with the day to day challenges of designing and building digital stuffs.

I couldn’t imagine how much things have changed in web development since I set it aside. I’ve dabbled off and on while teaching, and kept up reading the usual blogs. I’ve also been fortunate to be around teachers and students of web development.

I knew that front-end JavaScript frameworks have exploded, that JavaScript is increasingly used as a backend language, that so-called “single page apps” are increasingly the norm, and that tooling on the front-end has become much more sophisticated and complex. But knowing that and experiencing it first-hand are two different things.

I’ll have more to say about this as I tackle more projects, but this past week one particular experience stands out. I’ve been working on a reusable component using React, and I spent some time figuring out how to add some tests to it.

For the uninitiated, tests are essentially small programs that developers write to check whether their code is doing what’s expected. For instance, you might be writing a calculator, and write a test to check whether the calculator correctly evaluates the sum of 2 and 3 to be 5. When a program gets large and complex, having these automatic tests offers a nice sanity check that everything is still working as expected when you (or someone else) make a change.

In my experience, front-end web development has not always been a very hospitable environment for testing. The last time I wrote front-end tests in JavaScript was 2010, and there was tons of setup and boilerplate code needed in order to test fairly rudimentary things. Given the difficulty, it usually didn’t make sense to me to spend twice as much time writing tests as it took to add a new feature.

This has changed since I last worked with JavaScript. At the suggestion of a colleague, I tried out a testing framework called Jest. Of all the JavaScript things that I’ve seen set up for the project I am working on, the testing framework was by far the simplest. I ran into some initial hiccups trying to figure out this particular framework, but it took only about an hour to get a couple of basic things working. And from there, it’s been a pleasure to work with Jest. I’m delighted to say that I am looking forward to writing more tests and learning more about effective ways to use them in projects and with teams. I never thought I would write that sentence.


There’s a lot to like about Berlin. Everything operates at a much more relaxed pace here, maybe even more so than in Austin where I grew up. I have a balance between work and life that I’ve never enjoyed in my entire career. I don’t check my email after work or on weekends. Public transit here is great, there’s plenty of good food, and because it’s still new there are tons of places to explore.

Place is one thing, and community is another.

I wouldn’t say that I miss New York exactly, but I do miss being able to call up my friends to get together. I’ve been making time to talk to people on the phone, and have been fortunate to have some friends visit me here already. I imagine as I settle in more, it will get easier to forge new and meaningful connections. This is the aspect of living somewhere new that is always the most difficult for me, because I tend to deprioritize it. It will also take the most time to get comfortable enough with everything else to start focusing on spending time with new people. I have to remember to be as patient with myself as I usually am with others.

It takes time to acclimate.

Web Books

I’m fascinated by the web. It’s so big and vast that it’s hard to pin down much about it. To me, web books are an expression of what the web can be when it’s at its best: access to ideas.

Here are just a few of the web books that I enjoy and share:

Resilient Web Design by Jeremy Keith
Keith covers a bit of the underlying history of the web itself, and makes one of the best cases I know of for taking a progressive approach to building for the web.
The Shape of Design by Frank Chimero
Chimero writes about the “whys” of design.
Practical Typography by Matthew Butterick
Butterick’s overview is probably the most comprehensive approach to typography available on the web. I find myself recommending Typography in Ten Minutes to anyone interested in improving their typographic skills, and often share Butterick’s advice on Résumés.
Professional Web Typography by Donny Trương
Trương’s treatment focuses more on typography as it is employed on the web. His section on Practicing Typography has some great examples of web-based typesetting.

More Examples

What Makes them Work

For anyone out there who might embark upon the publication of a web book, some notes on best practices:

  1. Provide friendly links to content. Typically, these books allow linking to each chapter separately. Many also provide mechanisms for providing a link to a particular paragraph.

    Jeremy Keith does it best by making highlighted selections linkable, e.g. “This is not a handbook. It’s more like a history book.” I believe this could be further improved for readability by using a + for spaces, as opposed to %20.

    Haverbeke provides links to individual paragraphs, which are available to users by hovering over a text block. Unfortunately, these URLs are not human-parseable, e.g. “For open-ended interfaces, such as instructing the computer to perform arbitrary tasks, we’ve had more luck with an approach that makes use of our talent for language: teaching the machine a language.”

  2. Allow users to keep reading by providing a prominent link to the next chapter. Almost all of the examples above do this well, and make these links very prominent.

    Butterick’s approach in Practical Typography provides less prominent links to the previous and next chapters, in a manner reminiscent to most online documentation, such as for Django. The link to the next chapter should be easier to spot and jump to.

    Keith includes a prominent link to the next chapter, along with a full table of content following it. This is a useful approach, which works particularly well on smaller screen sizes. It could be improved by providing the reader with an indication of which chapter they have just finished in the full table of contents, as well as greater differentiation between the prominent next chapter and the full contents. Chimero does the best job of the latter in The Shape of Design, but could still improve by giving an indication of which chapter is currently being viewed.

  3. Incorporate interactive examples and illustrations. This can include manipulable diagrams or code playgrounds.

    Of the above examples, these are only successfully executed by Haverbeke in Eloquent JavaScript. His topic has an advantage, as web browsers natively execute code written in JavaScript. The interface could be improved with greater discoverability. As it stands, a reader must click on the code to discover that it can be edited, and further actions are hidden behind keyboard shortcuts listed only in a hamburger menu. A straightforward toolbar would go a long way, and could be done tastefully without disrupting the flow of reading.

    Most writing is published inertly, and invites fairly passive consumption—not as passive as television perhaps, but less active than getting one’s hands dirty. This is where the medium of web books has a major advantage that I’d like to be explored more deeply.

    At the moment, these remain painfully difficult to build, so it is no wonder there are so few good examples of this on the web. Even Bret Victor’s essay on Learnable Programming misses the opportunity to use interactive examples, instead opting for short videos of interaction. This keeps the reader in a similar passive mode and fails to fully engage as actively as it could.

    Vi Hart and Nicki Case offer more active examples in their beautifully prepared Parable of the Polygons, which functions more as an essay than as a book.

    In Programming Design Systems, Rune Madsen includes exercises at the end of some chapters, like this one at the end of Shape: Figure and Ground:

    Pick a random adjective from the dictionary, and write a sketch that tries to convey that word by changing the position, size, and rotation of a single rectangle. Do this for a couple of words, and ask friends to guess the word-image combinations.

    There is an opportunity here to provide an interactive space right on the page, even if rudimentary.

Historical Background of Spreadsheets

Christopher Browne offers a nice history, and also some good thoughts on where spreadsheets can be improved.

It’s fascinating to find out that there were alternative systems to using capital letters for columns and numerals for rows, e.g. “A1” and “B3”. The primary alternative was used by Microsoft MultiPlan and others, with rows and columns numbered with “R” or “C” marking the distinction, e.g. “R1C1” and “R2C3”.

I largely agree with his points about offering increased aesthetic formatting capabilities into spreadsheet software, but I disagree to the extent that visual distinctions like cell shading, proper alignment of numerals, distinguishing headers, etc. add meaning and offer non-trivial improvements. My concern is that this is only the case when they are used for that purpose, and spreadsheet software does little to make this easy for users.

It’s also clear that spreadsheets are frequently used as quasi-databases, which exposes much of their fragility. I have yet to see a convincing proposal for making relational databases with all of their benefits more accessible to users in the way that spreadsheets are. How can we introduce the integrity of these types of systems in ways that help users take advantage of them, without introducing a steep learning curve?

I think of spreadsheet software as the most accessible modern programming environment. Projects like Jupyter offer a very different take on a programmable document, but I long for something that improves on the power of spreadsheet software to give people a way to interact with information and make sense of it.

Next → Page 1 of 8