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.

This.

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.

cgit

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 Wired.com 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.

Coding

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.

Reading

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. 

Acclimating

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.

Homesick

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.

Takeaways on Teaching Type

Amy Papaelias reflects on a Teaching Type panel she participated in a couple of months back. Her key takeaways:

Lots of great discussion in here, which resonates with me. Personally, I believe typography is up there with persuasive speaking and computer programming in terms of contemporary subjects not particularly well-served currently, which I believe should be more broadly infused into everything we teach and learn. Papelias writes:

Typography is embedded in every design class where language is represented in visual form. We teach typography all the time: when we teach web design, or senior thesis, or branding, or design history, or interaction design or even introductory classes taken prior to the actual Typography course.

I just think that scoping this to design education is way too small. There’s a ton in the design world that is inexorably bound up with capitalism and elitism. The part of good typography that has to do with communicating better—everyone needs access to that, not just companies which can afford to invest in improving their branding and footprint, and not just publishers who control access to information and compete with each other on the qualities of their experiences over the quality of their content.

How do we broaden access to the basic skills of typography that have to do with improving one’s ability to communicate?

Seeing Theory

Impressive work from Daniel Kunin:

Statistics is quickly becoming the most important and multi-disciplinary field of mathematics. According to the American Statistical Association, “statistician” is one of the top ten fastest-growing occupations and statistics is one of the fastest-growing bachelor degrees. Statistical literacy is essential to our data driven society. Yet, for all the increased importance and demand for statistical competence, the pedagogical approaches in statistics have barely changed. Using Mike Bostock’s data visualization software, D3.js, Seeing Theory visualizes the fundamental concepts covered in an introductory college statistics or Advanced Placement statistics class. Students are encouraged to use Seeing Theory as an additional resource to their textbook, professor and peers.

When It Comes to Student Satisfaction, Faculty Matter Most

Freddie DeBoer offers some conclusions based on The Gallup-Purdue Index 2015 Report: The Relationship Between Student Debt, Experiences and Perceptions of College Worth:

[This] research tells us what ought to have always been clear: that faculty, and the ability for faculty to form meaningful relationships with students, are the most important part of a satisfying education. Check it out.

Of course, I am biased and like reading things which confirm my bias. Nevertheless, this type of thing really should be obvious. It’s gratifying to have some well-researched data to back up what we already know.

How to take great notes

Some solid tips from FutureLearn on taking notes. A couple stand out especially to me:

Don’t just transcribe

Whether you’re sat watching a video, or in a lecture hall, it’s easy to just frantically try and scribble down everything the speaker is saying. The result is usually smudged, nonsensical notes and a sore hand. You end up focusing on transcribing instead of learning. Try and filter what the speaker is saying, listen for key points, or jot down things to research further.

I’d add that it’s quite easy to disengage and go into a passive mode if you try to get things down word for word. Passing what you’re hearing and seeing through your own filter nudges your mind to think through what it’s absorbing for itself.

This advice at the end is great as well:

Play to your strengths – prefer learning by listening? Record yourself reading your notes. Prefer visual learning? Get artistic and draw out concepts and illustrations. There’s no one way to take good notes, it’s about what suits you.

For some inspiration here, have a look at Sketchnote Army or get yourself a copy of Lynda Barry’s excellent Syllabus: Notes from an Accidental Professor.

The Web Standards Project InterAct Curriculum

It is genuinely amazing to me how much these folks figured out.

21st Century Skills

Dylan Kane:

I’m also skeptical that the 21st century has made very many skills obsolete. Sure, calculators can multiply for us. But a fluency with multiplication and familiarity with its structure builds essential knowledge that students need to engage in more challenging problem solving. It’s easy for those with knowledge to underestimate the extent to which that knowledge makes higher-order reasoning possible, called the “curse of knowledge” by psychologists. I’m a big believer in content. The more people know, the better they are able to reason about new situations in the future.

Blogging Principles

Julia Evans:

I wrote this set of blogging priciples on Twitter a while back and thought I’d mirror it to this blog. These principles help me publish stuff.

The LMS and the End of Information Literacy

This post by Lisa M. Lane was a must-read for me. I could easily just quote the whole thing, but that’s what the link is for.

If I had to pick one nugget it would be this:

The fact that such interfaces prevent branching, distributed, or complex learning is considered to be a feature, not a bug. All information is “chunked” for easy understanding and assessment.

I love thinking about the interplay between the web and education, and it’s clear that things are murky.

When designing for the web, or “digital” or “apps” or whatever, we are encouraged to make things easy to use. The trouble is that most rewarding work is not “easy”—that is, it doesn’t follow a straight-forward progression of steps.

In thinking about designing tools that coexist with people, then, I don’t believe it is our job to design a tool that makes peoples’ jobs easier. Instead, I think it’s our job to design tools which make fussy or mundane parts of the job easier, possibly to the point of going away altogether, so that the job that’s left to the person is largely concentrated on what that person does well and finds rewarding. (This can obviously vary from person to person.)

If we treat learning as the job of the student, and facilitating that learning as the job of teachers, how can we design tools for learning and facilitation that shave away the tedious bits and focus on the juicy bits?

‘Technology-Enhanced Retention’ and Other Ed-Tech Interventions

I can always count on Audrey Watters to join words together that get at something that’s been brewing somewhere beyond my own language motors:

And I’ll say something that people might find upsetting or offensive: I’m not sure that “solid research” would necessarily impress me. I don’t actually care about “assessments” or “effectiveness.” That is, they’re not interesting to me as a scholar. My concerns about “what works” about ed-tech have little to do with whether or not there’s something we can measure or something we can bottle as an “outcome”; indeed, I fear that what we can measure often shapes our discussions of “effect.”

Arguments around “outcomes,” “assessments,” and “effectiveness” bother me because they tend to be reductive and self-serving. They’re reductive because they require us to place measuring sticks on students that don’t take into account their perspective. And they’re self-serving because anything that you choose to measure can be optimized for, providing an easy escape to the question of whether we’re measuring the right thing: “Sure we are, just look at how much {thing we are measuring} has improved!”

At the same time, I do have a bias toward practical, hands-on education. What is practical? strikes me as a tough question, but I still personally prefer it to How do we measure effectiveness?

Audrey finishes this talk with a real doozy that will likely ring in my ears for a long time:

My concern, I think – and I repeat this a lot – is that we have substituted surveillance for care. Our institutions do not care for students. They do not care for faculty. They have not rewarded those in it for their compassion, for their relationships, for their humanity.

Adding a technology layer on top of a dispassionate and exploitative institution does not solve anyone’s problems. Indeed, it creates new ones. What do we lose, for example, if we more heavily surveil students? What do we lose when we more heavily surveil faculty? The goal with technology-enhanced efforts, I fear, is compliance not compassion and not curiosity. So sure, some “quantitative metrics” might tick upward. But at what cost? And at what cost to whom?

Making small culture changes

Great advice from Julia Evans, as usual.

Ethan Marcotte: “The work I like.”

The illustration of “designing in layers” at the end is lovely.

How Dan Meyer presents

He’s got a great attitude about his approach:

I will share some of my workflow and style choices with you but a lot of that is just how I present, not how you should present. I’ll offer only two words of advice that I think every single presenter should take seriously.

To preface that advice, I’d like you to make a list of what you like and dislike about presentations you attend. Keep that list somewhere in view.

I’ve seen him talk about his preparation process before, but never this succinctly. His approach to using a document to outline “Narration” alongside “Images” is a great way to separate what you say from what your viewers see.

As Dan puts it, what your audience sees should illustrate your point, not restate it.

It’s no mistake that presentations prepared in this way, with a focus on the content first as text, with images prepared as illustrations, adapt well to being presented accessibly on the web.

A Todo List

Heydon Pickering:

In this article, I’ll be building an integrated todo list component from the ground up. But what you learn doesn’t have to apply just to todo lists — we’re really exploring how to make the basic creation and deletion of content inclusive.

Great walk-through and explanation. I especially like the black and white aesthetic of the example.

Understanding by Design

I’ve been working my way through this book and its concepts recently, along with some help from one of our fab instructional coaches at work.

Wiggins and McTighe outline an approach to unit planning in the book which seems to be colloquially referred to as “backward design”. Check out the first two paragraphs of the first chapter:

Teachers are designers. An essential act of our profession is the crafting of curriculum and learning experiences to meet specified purposes. We are also designers of assessments to diagnose student needs to guide our teaching and to enable us, our students, and others (parents and administrators) to determine whether we have achieved our goals.

Like people in other design professions, such as architecture, engineering, or graphic arts, designers in education must be mindful of their audiences. Professionals in these fields are strongly client-centered. The effectiveness of their designs corresponds to whether they have accomplished explicit goals for specific end-users. Clearly, students are our primary clients, given that the effectiveness of curriculum, assessment, and instructional designs is ultimately determined by their achievement of desired learnings. We can think of our designs, then, as software. Our courseware is designed to make learning more effective, just as computer software is intended to make its users more productive.

Selfishly, it’s exciting to read a book which draws an explicit connection between my field of work—design and development—and my chosen path—teaching. There’s an incredible amount of overlap, and I’m grateful to have a set of ideas about approaching this work which may bridge some of the gaps between the fields I’ve been so involved in.

Somewhat embarrassingly, I can say with full confidence that reading this book—along with some other experiences I’ve had recently—has given me the chance to confront how much further I have to go with my craft.

It was two years ago that I set aside my daily CSS wrangling and shifted into teaching full time. For many of my friends who have gone into K–12 teaching, I’ve come to see two years as a very short time to develop as a teacher. It has felt like a long journey for me so far, but I need to remember that this is still just the beginning.

There is much work to do.

Lower Ed: A Series

Really looking forward to this series on for-profit education, credentials, and access from Tressie McMillan Cottom:

We’ll begin with a discussion of higher education expansion, credentialism, why I prefer credentialing theory to explain for-profit highered expansion, and eventually wind our way through legitimacy theory, new economy literature and finally a working bibliography.

Feel free to join in through the comments (I’ll open them back up for this occasion; don’t make me regret that) and on Twitter using #LowerEd.

Why the Math Curriculum Makes No Sense

Ben Orlin:

I’ve come to believe that even this simple question—“who designed this?”—rests on a flawed assumption. The broad thing we call “the math curriculum” isn’t really “designed.” Rather, like all educational institutions and systems, it is shaped by a hailstorm of competing forces…

I think this isn’t a challenge just in education, but in the field of design at large. The idea that things can be well-planned but flawed in execution causes so many issues. Every design has to live in the real world, or it isn’t design. And every real world thing will include elements that have been designed for in advance, but will have features and realities thrust at it that expose where the original design didn’t account for something.

Design can’t account for everything. Do the best you can within the constraints you’re able to identify. Then make changes if it isn’t working.

Susan Lin’s Website

Delightful.

What Thomas Hardy Taught Me

Freddie DeBoer responds to Rebecca Mead’s AltSchools essay:

The point is not that the humanities, or the liberal arts, or the deeper concepts and values of civilization, or whatever only have value because of how they support more narrowly-remunerative skills. The point is that these deeper values and these monetizable skills exist in relationships so deeply intertwined that they are permanently inextricable from one another. […] I have no doubt that we will come in time to learn again the absolute necessity of learning that goes beyond the rote skills we currently perceive to be important, that someday people will learn to again see the utter necessity of humanistic thinking. But such understanding will only come after we have allowed deluded privateers to wring every last dollar out of our educational system as they strip it of all learning that has a function other than training more efficient little capitalists.

Dan Meyer comments:

I applied to film school out of high school and spent a large fraction of my university math education reading screenplays and writing about movies. The coffin eventually closed on those aspirations, but my interest in narrative and storytelling has permeated every aspect of my teaching, research, and current work in education technology.

I personally agree about the value of liberal arts education, but I have to wonder if there’s a role that privilege plays in this point of view. I also wonder if the division between technical “job skills” and humanistic education is a false one?

“It’s a focus thing.”

Ashley Ford:

When it comes to jobs, I prefer being a guinea pig with a lot of freedom. I like to be the first in a position or to help build the team.

I was thinking about this yesterday & realized for most of the jobs I’ve had, I was first in the company/organization to have that position.

Or I was in the 1st class of people to have a position. I’m a builder. I like coming in on the ground with brilliant people I trust.

I’ve been working since I was 14 & just seeing this pattern in my best job performances. Let me build or set a precedent & I do better work.

It’s a focus thing. If you put me on a conveyor built, I’ll just ride. If you give me raw materials to tell me to Make, I’ll focus & grow.

[…]

I thought I’d share that because I used to think not being able to focus on conveyor-belt jobs was a weakness, but it’s actually a tell.

It was always just my head & heart trying to tell me “this isn’t right for you”, and “this won’t sustain you”. I’m glad I listened.

It’s not an easy road, but it is a privilege to have the choice to follow your curiosity. I can’t believe I ever thought it made me weak.

Listen.

And So, Without Ed-Tech Criticism…

Audrey Watters defends her turf in an excellent talk on the role of criticism. A few choice bits:

Indeed, the computer is a medium of human expression, its development and its use a reflection of human culture; the computer is also a tool with a particular history, and although not circumscribed by its past, the computer is not entirely free of it either. I think we recognize history, legacy, systems in literary and social criticism; funny, folks get pretty irate when I point those out about ed-tech.

And:

It’s an odd response to my work, but a common one too, that criticism does not enable or effect change. (I suppose it does not fall into the business school model of “disruptive innovation.”) Or rather, that criticism stands as an indulgent, intellectual, purely academic pursuit—as though criticism involves theory but not action. Or if there is action, criticism implies “tearing down”; it has this negative connotation. Ed-tech entrepreneurs, to the contrary, actually “build things.”

Here’s another distinction I’ve heard: that criticism (in the form of writing an essay) is “just words” but writing software is “actually doing something.” Again, such a contrast reveals much about the role of intellectual activity that some see in “coding.”

And:

If we believe in “coding to learn” then what does it mean if we see “code” as distinct from or as absent of criticism? And here I don’t simply mean that a criticism-free code is stripped of knowledge, context, and politics; I mean that that framework in some ways conceptualizes code as the opposite of thinking deeply or thinking critically—that is, coding as (only) programmatic, mechanical, inflexible, rules-based. What are the implications of that in schools?

And finally:

Computer criticism can—and must—be about analysis and action. Critical thinking must work alongside critical pedagogical and technological practices. “Coding to learn” if you want to start there; or more simply, “learn by making.” But then too: making to reflect; making to think critically; making to engage with the world; it is from there, and only there, that we can get to making and coding to change the world.

Is it just me, or does the tech industry sometimes seem obsessed with building a “feedback culture” at the office where everyone is encouraged to adopt a “growth mindset” meanwhile whenever honest well-intentioned criticism comes along we plug our fingers in our ears and sing “tra-la-la”?

It’s at least worth trying to listen.

Which Unicode character should represent the English apostrophe?

Makes sense to me. Nothing I can really do about it…

Next → Page 1 of 8