Category Archives: Uncategorized

The Unreality of THATCamp

THATCamp is being sunsetted, and I’m cross-posting here what I wrote on the Retrospective site.

I attended my first THATCamp in 2009, less than a year before I quit my PhD studies. I descended on CHNM that June weekend wavering between: frustration about the hypercompetitive-hypermasculine-hypercynical world of academic philosophy; and resignation to the fact that I was grinding away on a dissertation that no one would ever read.

It was in this mindset that I first experienced the exhilaration that, in the years to come, I came to identify with THATCamp. The contrasts were stark: Academic life was characterized by gotcha-ism, while THATCamp pulsed with genuine camaraderie. Academic life was rigidly stratified, while THATCamp provided a space where undergrads and grad students and faculty and administrators and career professionals could speak and collaborate as peers. Academic life was deeply conservative in its subject matter and methodologies, while THATCamp felt like an incubator for the new, the radical, the slightly crazy. It was a thrill to be in the room.

The “camp” metaphor was apt. I remember the feeling of being a junior-high-schooler who stifled his creativity and voice during the school year, only to let loose for the week or two spent every summer at music and drama camp. Summer camp brought together individuals who identified as outsiders at home, and provided a platform for them to connect and collaborate, away from the judgmental gaze of the teachers and the cool kids.

The hitch, of course, is that camp wasn’t Real Life. This was part of its magic: When you enter a world where no one has ideas about who you are and the way you should act, and when the cost of failure has been reduced near zero, you experience a kind of freedom and lightness and plain old fun that isn’t possible back in Reality. At the same time, the Unreality of summer camp had a way of setting upper bounds on its ability to directly improve the camper’s Reality – just ask anyone who returned home bragging about their “camp girlfriend”.

THATCamp was unreal in similar ways. The unburdened creativity, the radical egalitarianism, the heartfelt spirit of openness and collaboration – these were able to flourish precisely because THATCamp was an artificial space, away from the structures and strictures of Real Life. This kind of fantasy camp – Unreal as it might have been – had countless positive effects on my non-THATCamp life: friends made, ideas explored, websites built. Indeed, if the only benefit of THATCamp was that it gave us all a chance to blow off steam – to jam – it would have been worthwhile, and totally awesome.

At the same time, the disconnect with Reality had its downsides. The kind of folks attracted to The Technology and Humanities Camp are those who are naturally excited about Technology, and when these people are in a room with their fires stoked, optimism and enthusiasm about technology can ramp up overly quickly. The glory days of THATCamp coincided with – and were typified by the obsession with – the early days of social media; the impending ubiquity of the smartphone; the introduction of the iPad; the mainstreaming of online learning. Considering how these trends have panned out over the last decade (spoiler alert! – mostly terribly) our giddy enthusiasm has not aged well. The pioneer generation of THATCampers was uniquely equipped to think critically and skeptically about the effects of new technologies, on the university and on ourselves. Looking back from the vantage point of 2020, it feels like an opportunity largely missed.

Speaking more personally, the Unreality of THATCamp played a key role in the way my own career unfolded. Those weekends spent in the congenial and optimistic THATCamp atmosphere made it all the more unpleasant to return to the drudgery of Real Life. THATCamp, for me, became one of the lenses through which I could envision a different way of effecting change through my work: the possibility that I might help more people, make a better name for myself, do more good, by building software, rather than by writing philosophy. In time, I came to realize that the Reality of this (alt-ac?) work is not as romantic as THATCamp might make it seem. Yet there is wisdom and beauty in the very THATCamp-y idea that you can forge your own path through – and in and out of – the academic world. For that, I’m grateful to have been a part of it.


Previously: 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009.

Another year draws to a close, and I’m pleasantly surprised that, on reflection, this one turns out to look all right.

I get the sense – mostly from reading the newspaper – that anxiety and malaise are the zeitgeist for 2018. Always a man on the cutting edge, I felt this way myself in, say, 2016. But over these past few years, I’ve moved toward a place of peace. One of the dominant narratives in my personal life in 2018 has been a continued, purposeful disengagement from the constant connectedness and “convenience” that seems to define modern life for most folks. This means: no social media; no smart phones; no online news; online commerce only when absolutely impossible to do offline, and no Amazon at all; very little internet use, really, beyond what’s necessary for work; very little TV. As I’ve moved past the initial cleansing phase and re-identified some pre-Internet rhythms, it’s become clear to me that the anxiety of constant connection is mostly manufactured. The companies that build your intentionally addictive devices, crank out nonstop content, funnel the content you produce into their proprietary streams, sell your information and your attention and your habits to advertisers – they use FOMO, convenience-as-birthright, apocalypticism, and other forms of anxiety as a marketing tactic, to ensure your continued participation in their economy. When you begin to recognize and appreciate this fact, the associated anxiety kinda melts away.

Instead of internetting, I’ve filled my time and attention in various ways in 2018.

  • I’ve been taking drawing classes – mostly figure drawing – for the last two years or so, and have discovered lots of joy and a little bit of talent in this area. Learning to see as an artist has been a totally new experience for me, like discovering a sixth sense, and I feel like it’s caused me to engage with the world in a different way than I did before.
  • I recently started doing yoga. As a big and very unflexible person, I never figured I could or should. But it’s been a really interesting way to learn about what my body can do. Just as importantly, it’s been a much more effective strategy for engaging with meditation and purposeful breathing, something I’ve struggled to do before in isolation.
  • I had a really excellent reading year. I read quite a bit more than last year, and my hit rate for really good books was abnormally high. I read a handful of interesting biographies of historical American politicians and a stack of Pulitzer-winning novels. I was especially affected by John Updike’s Rabbit Angstrom novels, which resonated so much with me that I found it hard to pick up another novel for several months after I finished them.
  • I learned to solve a Rubik’s Cube for the first time in August, and since then, I’ve learned to solve it pretty quickly – I average under 30 seconds. This is kinda goofy, but for me it’s been a bit like learning to draw – a new way of visualizing and engaging with objects in the world.
  • For the first time in years, I took real vacations! A total of almost four weeks where I was completely AFK, no email, no work, no screens. I spent most of this time gloriously homebound, reading books, doing chores, reestablishing my house as a place of relaxation.

In terms of work, I had a pretty productive year. My participation in WordPress has been scaled way back. This is partly about me and my shifting interests and energies, and partly about the evolution of that project in directions that leave me without an obvious role. After some time away, I became more involved in BuddyPress toward the end of the year, and look forward to plowing through a couple more BP-focused projects in the beginning of 2019. I did some interesting client work and launched some meaningful projects. There was a period over the summer where I felt fairly despondent about the state of my work, but I’m catching a bit of a second (third? twelfth?) wind as I head into the new year.

As usual, the things I’ll remember most about the year are closely tied to my wife and kids. Not much I can say in a blog post to express this, aside from suggesting that the emotional energy and focus that I conserve by disengaging with Modern Life gets mostly channeled back to my home.

I have the sense that 2019 will be a bookend year for me in many ways, as I head toward a 2020 that’ll contain my fortieth birthday, my tenth wedding anniversary, my wife’s PhD graduation, my tenth year of doing professional software work. As I approach that corner, I’m looking to do another round of meaningful and interesting work, and to sink deeper into the world around me instead of the WorldWide Web. Happy new year 😀

Improved ‘equalto’ validation for Parsley.js

I’ve been playing with Parsely.js for form validation on a client project. It’s pretty nice, but I was unhappy with the ‘equalto’ implementation. ‘equalto’ allows you to link two fields whose entries should always match, such as when you have password or email confirmation fields during account registration. parsley-equalto is not symmetrical. If you enter some text into A, and enter non-matching text into B, B will not validate. If you correct B so that it matches A, then B will validate. So far, so good. But if you correct A so that it matches B, it won’t change the validation.

So I wrote a custom implementation that triggers validation on the paired field, making the link between the fields symmetrical. It’s pretty ugly (to avoid recursion) and doesn’t have any error handling, but it should point you in the right direction. (I’ve called it iff, which you can look up.)

The markup:

[code language=”html”]


The validator:
[code language=”javascript”]
var iffRecursion = false;
window.Parsley.addValidator( ‘iff’, {
validateString: function( value, requirement, instance ) {
var $partner = $( requirement );
var isValid = $partner.val() == value;
if ( iffRecursion ) {
iffRecursion = false;
} else {
iffRecursion = true;
return isValid;
} );

WordCamp Chicago 2016 slides

I just finished giving a talk at WordCamp Chicago titled “Backward Compatibility as a Design Principle”, in which I discussed WordPress’s approach to backward compatibility, how it’s evolved over the years, and its costs and benefits when compared to the alternatives. I’m not sure that the slides are very helpful in isolation, but someone asked me to post them, and I am not one to disappoint my Adoring Fans. Embedded below.


download as pdf


Previously: 2014, 2013, 2012, 2011, 2010, 2009.

I wrote one year ago that 2015 would be a hard year. And so it was. Here’s the requisite Dec 31 braindump.

In January, I became a dad again. Seeing my two kids grow together and become friends has been one of the privileges of my life. But the logistics of having two kids is pretty different (and much more exhausting) than when you’ve got just one child. The process of finding balance is ongoing.

The other big event of the year is that, in July, our family moved from New York City to Chicago. Moving sucks. It’s expensive, it’s disorienting, it’s inconvenient. My possessions were in limbo with the moving company for something like 13 days. Practicalities aside, it’s hard to leave NYC. While I grew up in the Midwest, I spent my entire adult life in New York and feel like a New Yorker. There’s something about New York that features more prominently in its residents’ inner ideas about who they are than when you live in, say, Ohio. In the same way as when I left graduate school, I’ve had to face this miniature identity crisis by reevaluating those aspects of my former life that are actually (ie, not just conventionally) central to what makes me tick, and then find a way to fit them in the context of my new life. This project is also ongoing 🙂

Partly in response to my man-without-a-country malaise, and partly out of philosophical motivations, I poured myself into free software contribution in 2015. More than 50% of my working year was spent doing unpaid work on WordPress, BuddyPress, and related projects. (More details.) I’m a vocal proponent for structuring your work life in such a way that it subsidizes passion projects, though numbers like these make me wonder whether there’s a limit to how far this principle can be pushed. I guess I’ll continue to test these boundaries in 2016.

One of the things I’d like to do in 2016, as regards work balance, is to find more ways to work with cool people. I am a proud lone wolf, but sometimes I feel like there’s a big disconnect between my highly social free software work and my fairly solitary consulting work.

Happy new year!