The TL;DR version: I like coffee. I don’t like celery. I live in New York City with my wife and a dog called Omelette. I also know how to spell “onomatopoeia” (and I know what it means).
Ever since I first got a peek at the web back in 1994, I’ve been borderline obsessed with building things online, and I’ve spent my whole career (18+ years now!) in the digital space. I currently do product and strategy stuff at Critical Mass, where I help our clients solve problems by building products and services that people love to use. Those details are all on LinkedIn, so I won’t repeat them here.
When I’m not at work, I spend a decent chunk of my time running. So far, I have finished three of the six World Marathon Majors, and
have qualified for the 2020 Boston Marathon—after the cancellation of the 2020 event—am aiming to run the 2021 Boston Marathon.
- Be patient. No matter what.
- Don’t badmouth: Assign responsibility, never blame. Say nothing behind another’s back you’d be unwilling to say, in exactly the same tone and language, to his face.
- Never assume the motives of others are, to them, less noble than yours are to you.
- Expand your sense of the possible.
- Don’t trouble yourself with matters you truly cannot change.
- Expect no more of anyone than you yourself can deliver.
- Tolerate ambiguity.
- Laugh at yourself frequently.
- Concern yourself with what is right rather than who is right.
- Never forget that, no matter how certain, you might be wrong.
- Give up blood sports.
- Remember that your life belongs to others as well. Do not endanger it frivolously. And never endanger the life of another.
- Never lie to anyone for any reason. (Lies of omission are sometimes exempt.)
- Learn the needs of those around you and respect them.
- Avoid the pursuit of happiness. Seek to define your mission and pursue that.
- Reduce your use of the first personal pronoun.
- Praise at least as often as you disparage.
- Never let your errors pass without admission.
- Become less suspicious of joy.
- Understand humility.
- Foster dignity.
- Live memorably.
- Love yourself.
These principles were written in October 1977—so are nearly as old as I am—and to me, at least, still ring true and are something I think about a lot. But like Barlow himself, am realistic about my ability to absolutely adhere to them. In his own words:
I don’t expect the perfect attainment of these principles. However, I post them as a standard for my conduct as an adult. Should any of my friends or colleagues catch me violating one of them, bust me.
(And just in case you were wondering, “onomatopoeia” is defined as a word that suggests the sound it describes, like “boom” or “splat”.)
About this Site
I have had a long and weird fascination with content management… not really sure why. My first attempt at building my own CMS was
customizing horribly mangling a version of a message board coded in ASP, way back in 2001 (and which is now thankfully lost in the ether). Since then, I’ve played around with a bunch of different publishing platforms at various times, like Greymatter, Movable Type, Chyrp, WordPress, Jekyll and Ghost. But I always had more fun rolling my own, even if it meant foregoing some of the shinier features.
I’ve owned this domain since 2004, and it has seen quite a few iterations in the last 16-odd years. This build of campegg.com (which is up to version I-don’t-know-what +1) is put together using:
- Django as the base framework, with some other Python scripts running jobs in the background
- MySQL for storage
- DigitalOcean for hosting
Fathom for analytics, because it’s lightweight and respects peoples’ privacyAs of August 2020, I have removed analytics entirely—I really just don’t care
- GitHub for source control (the repo is private—and a complete shitshow—at the moment)
- Gulp to automate some build stuff
- The Inter font family
- Postman to help me mess with APIs
…and lots of duct tape and wishful thinking to hold everything together.
I’m using this particular iteration as a bit of a learning experience; all of the content is stored locally, but quite a lot of it is pulled from the APIs of various services I use (so I’ve had to learn all about OAuth and rate limiting and caching and all the other fun stuff that goes with working with external services). At the moment, I’m pulling:
- Activity data from Strava
- Articles that I want to share from Pocket
- My tweets from Twitter (but I’m not doing anything other than storing them at this stage)
There are a ton of things on my site to-do list, which I may get around to doing one day. Or not.