Dear Jim
I just sent the following email to Jim Franklin regarding his firing of Adria Richards:
Dear Jim,
I have been a happy customer for several years now. Your service has worked without a hitch, and I would like to continue being a customer.
Here’s the problem. Women in our industry are often subject to abuse, of the form Adria Richards received at PyCon. This kind of abuse is absolutely unacceptable, and one of our very first priorities as people in the tech community should be seeing to it that this behavior is called out and dealt with. Richards should be absolutely commended for what she did, documenting and publicizing the abuse against her. It’s extremely hard to do, and it’s incredibly valuable to the community.
You say that “she can no longer be effective in her role at SendGrid” but that makes no sense to me. Her job was to educate developers, to provide support for them, and to evangelize for your platform. There is no reason why she can’t continue doing that. She’s obviously good at it, or you would have fired her long ago. As a “developer” with whom Sendgrid has “relations”, I would be proud to interact with Richards in our professional capacities. I expect the same is true for all of your other customers who have as high a standard for professionalism as we do.
The only conceivable justification for firing her is that certain members of your market may think that what she did is unprofessional or unacceptable. But they’re wrong. What she did is exactly what all of us need to be doing more of if we want to elevate our community to a professional, respectable work environment that is welcoming to all people, women included.
What it seems to me is that you care more about your market share than about standing up for people who are doing the right thing, making difficult stands for what is right. If that’s the case, I can no longer support your business.
I would love to hear back from you that you’ve changed your mind about these issues. If you’d like to reply within the next week or so I will keep my account with you. But if you stand by your decision I will be migrating all my applications over to an alternative, and in my work as a consultant I will no longer be recommending the use of your service.
Thanks for the great product. I’m sorry to go.
Best,
Erik Pukinskis
Forkolator
I’ve been building web sites for 16 years now. I love the web. I love its anarchism. I love its democracy. I love how it encourages creativity, and how it makes sharing easy. I love its mixture of brilliant and dilapidated infrastructure, and the astonishing hacks that glue all the divergent pieces together.
I also love Free Software, for many of the same reasons. As a teenager, I hung on every report out the handful of companies who were building interesting things: Microsoft, Alias|Wavefront, Silicon Graphics, and the handful of others. But these companies were just a few thousands of engineers, mostly focused on business solutions, and cool new tech was few and far between. The Open Source was invigorating. Instead of a new OS every five years, the GNOME and Linux mailing lists were talking about new technology every day. Sweet, ambitious, gutsy, geeky chaos.
Like the Swedish Chef meeting big bird, or the young hobbits learning that beer comes in pints, my mind was blown. I had no idea such decadence existed.

He’s going to need a bigger roasting pan.
Over the years I’ve watched these two loves grow up together, Open Source providing the foundation for the Web’s explosion of creativity. Both of my loves are stronger than they’ve ever been before. Open Source kernels now run a plurality of computing devices, and the web continues to be a dominant development platform, if not the dominant platform, even in the face of iOS and Android.
But it’s not all sunshine and roses.
Even as Open Source dominates at the infrastructure level, I’ve watched as more and more of the software I actually touch is proprietary software. In my browser right now: Gmail. Google Docs. Trello. Yammer. Historically, I would’ve used Evolution, Abiword, and the like. But web apps are just too convenient. I’m glad to be rid of the headache of maintaining my own software installations.
And even the apps I touch that are open source—Wikipedia, Wordpress.com, Reddit, etc—are not easy to fork. Gone are the days when you could just download the source code, change a line of code, run make; make install and be using a new, bespoke version of your software.
And if you wanted to share it with someone, you could just throw a tarball on the web and they could download and build it themselves.
Now, in order to make a minor tweak to Wikipedia, I would have to:
- Download the source
- Change it
- Provision a web server
- Deploy the software, databases, proxy servers as necessary
- Download all 10 gigs of Wikipedia articles
- Write software to sync my version of the data with the main site
- Subscribe to the MediaWiki mailing list and keep on top of security patches
- Keep on top of security patches for the server itself, and all related software
We’re talking weeks, if not months of work. And this amount of work is, in a word, prohibitive. You just can’t be a user of Wikipedia and maintain a minor fork. Sure, if you’re a professional maintainer of a MediaWiki installation you can do it. But not if you’re just reading articles casually.
And I see a palpable difference between the culture of software now and the culture during the Open Source Desktop movement in the 2000s. Developers, even extremely talented developers who have the skills to hack on the software they use, make do with proprietary services. And the software we do hack and maintain often languishes.
I should know: I’m one of them. I’ve got a swiss-cheese-hacked-up installation of phpWiki somewhere on this site. It’s too much of a pain in the butt to maintain. Honestly, I wonder if I shouldn’t have just gone with a commercial solution and tweaked it to the extent that they allowed.
A solution
So, what do we do? Over the last six years I’ve been thinking around the problem, and prototyping, and I still am not fully certain. I can easily imagine a grand solution, but whenever I sit down to code I find out I’ve bitten off more than I can chew. I narrow my scope and try again. A few things do seem necessary:
- An app server where developers can leave their apps running, without too much maintenance hassle.
- A source code repository that lets users easily fork app code.
- An independent data layer where users can keep their data, so that as they switch between forks they can keep interacting with their and other users’ data.
That’s an awful lot of stuff. And I’ve been biting off more than I can chew:
One-click forking and deployment
In early 2006, as as a lowly PHP developer, knowing nothing about chroot jails or virtual machines, I hacked together a web-based IDE that would let me easily fork a PHP application in the browser:
I presented my work at BarCamp that year, and got an enthusiastic response from GNOME developer Sandy Armstrong. It was incredibly validating to have another developer grok what I was doing and be excited about it. I kept hacking, even writing a basic patch merging interface.
But I was eventually mired in the thorny realities of trying to build a full-fledged IDE in the browser. And in 2007, something very interesting happened.
Letting Heroku Help
As I was struggling to build a web-based IDE of my own, several developers much more experienced than I actually did it. Heroku came out in mid 2007. If they hadn’t implemented everything I was trying to build, they at least did the hard parts!
Back in those days, Heroku was an IDE, and did allow you to quickly fork projects with a single click, make a change, and keep running. I was floored. And, as I was starting another big project in my life, I put my old PHP editor up on blocks. I learned Ruby on Rails, I read up on those chroot jails and automated server management tools.
Heroku eventually shut down their web IDE, shrewdly realizing their core value proposition was the platform-as-a-service, not the IDE.
And I tried again. I started thinking about relying on Heroku to handle the hosting part of the job, so I set to the task of building a source code repository: a RESTful interface to a git server I called ForkServ. A new Rubyist, I wrote it in Sinatra. And on top of that I built a new IDE in Rails that I could deploy on Heroku that would facilitate the one-click forking and deploying of apps:
EasyFork, as I called it, let you edit code, commit changes, and manage your branches. It even had a rad undo slider, pictured above. It would queue up changes unto you committed them, at which point a little star would show up on the slider.
Sometimes the Interaction Designer in me wins the battle for development attention.
And truthfully, I think that was misdirected energy. In the end, ForkServ/EasyFork had too many bells and whistles and I lost the implementation battle. I went off to graduate school to do research into how programmers use their bodies to solve programming problems.
Minimum Viable Product
Last year, after bicycling from San Diego to Phoenix for a bit of a change of scenery, I met someone at a hacknight who would listen to my ramblings about web infrastructure. I explained the app servers I had built, and why I built them. And he did something wonderful: he pushed me on why I needed to build those things at all.
So, I thought about what I could get away with and presented that as a new minimum, and he said the same thing: why all that?
In the end, I realized that I could get away with just a app that served single HTML pages and an independent data layer apps could use. That’s it. It’d only support HTML apps with inline javascript, and you literally couldn’t do anything on the server except basic CRUD. But it would be enough to build a todo app. It would be enough to prove the concept.
So I built Forko3, this time in Node.js, with a CouchDB database behind it. I figured the Node server would be useful if in the future I started to need to do lengthy IO calls, manipulating Git repositories. And the CouchDB database would let me do the row-level security I’d need to do to give users access to their data, without them having to share that data with random open source developers.
I release it, posted it on Hacker News. LWN wrote about the project, that elusive mythical “passionate collaborator” I’ve been hoping for never materialized.
Keep on keeping on
And that’s where I’m at. Three completely different prototypes. Six years of obsessing about the problem. I still haven’t figured out the scope of the project that makes sense, although I feel closer than ever. The last couple years I’ve really been focused on SproutRobot, and now I’m focused on getting work.
I think the fourth time will be the charm.
Brooding
Wow, we got our first “broody” bird. Due to some successful dumpstering last week we got a buildup of about 2 dozen eggs and Sorghum decided she was going to start brooding.
Noticed her in the egg box this morning, and then again this evening, with a zombielike stare. I gently lifted her (decidedly hot and sweaty on the underside… those eggs get HOT) out of the box and she seemed to break her trance. She went over to the food and had a bit of a chow down while I grabbed out 3/4 of the eggs.
She’s definitely concerned now (they can sort of count) and I feel a little bad. She’s clucking and keeps looking around the coop to see if they fell somewhere. But it’s not good to leave her in that state. Those eggs are NOT going to hatch, and she’s just going to sit in there for a long time and that’s not really that good for her either.
Phantom islands
The world is a chaotic place, lots of things are unstable, and so we tend to engage in practices that give us big stable targets to aim at. Marriages, overall, are pretty stable institutions. Sure, they go wrong, but if you put in the work, with a little bit of luck they will support you in useful ways over the long haul. It can be tough to find a partner, but lots of people are looking, and we mostly find the kind of partner we think we deserve deep down.
I’m obsessed with finding tiny, obscure areas of stability.
I’m seeking a kind of relationship I’ve never even really seen, which involves none of the major commitments that we attribute to marriage. It involves other commitments, in fact a wholly different model for understanding commitments. It takes on all kinds of risky activities: nonmonogamy, not saying “I love you” back, not promising to do the same things next week that we did last week.
I’m doing it because somewhere, far far away, I can picture this tiny island of stability, where all of the ‘risks’ aren’t actually that risky and my relationships are actually more stable than a traditional marriage. This is the irony that I think is often lost on people when they look at my relationships. I reject the foundations of traditional marriage not because I don’t want the stability, but because they’re not stable enough for me to feel safe.
Similarly, in business there are massive forces I’m working against. I would like to Open Source the code I write, because I believe in the importance of the public commons. I want to push organic gardening and fair trade products. But I fear that other, nimbler businesspeople would just take my code and run a tighter, less mission driven business than I can and run me out.
Not wanting to throw in the towel, I instead aim for a tiny island of stability where I could actually have a successful Open Source business in this hostile environment.
I also want to live in an anarcho-feminist syndicalist community, which is basically impossible in our country, given the property laws, military/industrial tax infrastructure, and so on. And I don’t want to go off into the woods and make baskets with a bunch of other rich white people while pretending to live in a utopian future.
But I have this vague notion of a tiny island of stability where a shell corporation might protect enough resources that such a community could exist within it, and actually have a positive, mutually beneficial relationship with a non-anarchist city.
All of these ideas are fraught with peril. It feels like trying to land a plane on a tiny airstrip at high altitude in the mountains. It’s incredibly hard to set up a stable business, let alone one with an anarchist commune growing inside of it. It’s incredibly hard to have an anarchoamorous relationship that’s also feminist and kind and facilitates raising children when the entire child raising infrastructure is built on capitalism and ‘traditional families’. And the vast majority of the dating pool has basically no interest in exploring anything outside that system.
And honestly, these ideas have left me paralyzed with fear. I am not forging bravely ahead, I am dragging my feet. Whenever I make some progress, I pull back and ask myself if I’m really going to aim for that tiny landing strip, that may not even exist when I get there.
It seems to me that the solution is to break myself into two pieces. One stands up, gets a sense of where that tiny airstrip should be, and gets the ship pointed in that direction. And then the other self closes his eyes, and just moves blindly forward, trying to enjoy every little step along the way, with blind faith that things will work out fine.
I wish I felt safe doing that though. I wish I could realize that it’s not a tiny landing strip amidst rocky mountains, that it’s just more landing strips everywhere. Maybe not the ones I thought I wanted, but something good. Something I can live with. And if I’m aiming where I really think the good stuff is, I’m sure even if go way off course it’ll still be better than if I never tried.
But I don’t think I believe it deep down. I said in that first paragraph that we mostly find the kind of thing we think we deserve deep down.
I’m not sure what I deserve.
So, the slogan on my wall this week is “be nice”. Because I think, at minimum we all deserve for people to be nice to us. Even ourselves. Especially ourselves.
Hot Piss
I’m reticent to single out lines to quote from Fiona Apple’s The Idler Wheel Is Wiser than the Driver of the Screw and Whipping Cords Will Serve You More Than Ropes Will Ever Do. Her lyrics are evocative and vague and dense enough that everyone, I think, falls in love with a different dark recess of her brain.
But what else do we have to write about except our personal obsessions?
On ‘Regret’ (listen) she gets to the first chorus a minute from the end of the track:
But I ran out of white doves’ feathers
to soak up the hot piss that comes from your mouth
every time you address me.
It’s a good line on first listen. Then she repeats it, which is not atypical in pop music. Musicians repeat a line so they can ramp a rad guitar instrumental up a notch or let an infectious dance hook develop.
I suspect that’s not the point for Apple.
Her repetition is so contrasting in character I initially thought it was a whole other lyric. The first time it’s a quiet admission. The second time it’s a frothy, demented bawl.
I expect she felt the feeling long before she wrote the song. She experienced it over and over. It kept coming up. It changed. It grew sinister. She didn’t feel it once, in pithy clarity; she wrestled with it over a period of time.
So you get the arc. She sings it to you once like doves’ feathers and then she gives it to you again like hot piss.
Mind Setting
How could I dream of
Such a selfless and true love
Could I wash my hands of
Just looking out for me?
- Fleet Foxes
My Dad’s parents fought hard to provide a stable home and a good education for my Dad, but they also had very strong ideas about what he should do with his life. They pushed him to take on the family business, and he left behind work that was, at the time, dearer to him.
My Mom’s parents fought hard to give her the resources to travel, and to get a good education, but they too pushed her to make the choices and live the kind of life they felt was right.
In response to this my parents, and to some extent their entire generation, fought hard to send a different message to their kids: that we can do anything we set our mind to.
I’ve met many people my age who grew up under a similar refrain. And it seems to have worked, in many ways. We set our sights high, and we set them based on our individual desires. If we love to cook, we understand that we can be the world’s greatest chef. Where our grandparents would’ve said “Don’t be a musician, be a banker”, our parents said “Yes, you can be a great musician”.
And not all parents succeed at this. I know a woman who tells her unemployed son constantly what he can’t do: that he can’t hold down a job, that he can’t get off drugs. Those kinds of expectations from your parents can be devastating.
So while I’m grateful for the gift of You Can Do Anything You Set Your Mind To, I am starting to understand the challenge it sets up for me: the expectations I set, freely and of my own desires, can be crushing.
It haunts me to know that everything I haven’t done, I haven’t done because I didn’t Set My Mind to it. Instead of laying responsibility on my parents, or my world, everything is my fault. Not running a successful research lab? I guess I didn’t set my mind to it. Not out having sexy times with sexy people on a Friday night? I guess I didn’t set my mind to it. Pie crust came out chewy? I think we know who the culprit is.
And so the project I find myself facing—the wall I hope to drop my kids on the other side of—is learning to read and accept my capabilities and deep inclinations. To know what kind of work I am best at, and to allow myself to do it. And to listen to what my body and mind need (not crave) in each moment, and seek it.
And to accept that whatever I set my mind to, and whatever I achieve, I am OK. Good will come of me, and that is enough.
God help my children with whatever neuroses this worldview breeds.
Monopoly
I would really appreciate it if you’d do this thought experiment with me:
Imagine everyone you ever met was single. They lived in their own apartments, or with roommates. They dated people, often for long times, but no one ever formed a partnership. You grew up with your biological father, but your biological mother is a distant friend of your Dad’s. They were dating, and your father wanted a child. They parted amicably years later, but there was never even discussion of partnership of any kind.
Imagine that every relationship started with the premise that it would end within five years or so, that things would get hard or complicated, or your lives would change and you’d separate.
Imagine every story you ever saw growing up was a story about single people. Periodically there was a kookie “couple”, but it was generally accepted that that was strange, if not deviant, if not a little pathological even. Imagine you never really heard stories about partnership. Imagine every fairy tale, every sitcom, every movie was about people who were committed to a path of being single the rest of their life. Imagine every president, every celebrity, every role model was single. Except maybe the ones who weren’t, but no one ever really talked about their partnership. It was an open secret.
Now imagine you live in this world, and you deeply desire a partner. You feel that life would be easier in so many ways if you had a partner. That it’s natural and beautiful to have a partner that you share your life with and grow old with.
Imagine whenever you talk about this to people, they bring up all the dangers of partnership. “What if you fall out of love?” they ask. “What if they beat you?” “Won’t you get bored?” “It’s going to be so hard!” “What if you need to move somewhere for your career?” “What if you want to raise your children differently?” “Why would you subject yourself to that?” What if every conversation you started with other people about partnership ended up being about why it was a bad choice, and why it wasn’t for them? What if everyone around you believed vehemently partnership was bad, even though they had never really tried it for themselves?
What if many of the partnerships that people DID talk about were partnerships where schemers and tricksters had used “partnership” as an excuse to take advantage of other people? What if the single people around you were quick to conclude that partnership just results in people being taken advantage of?
What if you had thought about all of those things, and still thought it was worth it? Or worth trying at least? What if you just wanted to be able to have a conversation that recognized partnership as a viable way to live, with challenges and rewards all it’s own? What if you wanted to find common ground in your experience of partnership with your loved ones’ experience of singledom, but they only seemed to want to distance themselves, to reassert that they had made the right choice in choosing singledom?
What if every time you told someone you were dating someone new, they reminded you that it wasn’t going to work out the way you hoped?
What if no one even wanted to think about the possible nice qualities of partnership, how nice it is to age with someone, how secure it feels, how convenient it is, because they had already decided long ago that singledom was for them?
That’s sort of what it’s like for people who are practicing or questioning polyamory.
(Trigger warning: disapproving talk of violence against women and animals)
* After calling a woman accidentally (wrong number) and having her call back in a panic, worried that he was a stalker, that women have it rough
* About the 26 year old mom at her aunt’s house (with a 14 year old kid) who was terrified her boyfriend would come by, see him replacing the heater, become enraged for “having a man over” and beat the crap out of her.
* That he has zero tolerance for such men
* That having been the victim of violence as a child is no excuse
* That you don’t hit women for the same reason you don’t hit children or animals
* His father beating him during the one week out of the year he saw his father
* Violence at the military camp he grew up in
* How similar computer programming is to fixing heaters
* Techniques for debugging broken heaters
* How cookies slow down his computer and one time he had to spend 4 hours deleting cookies one by one because on his computer you can’t delete them all at once.
* His 17 year old friend who taught himself to program a Macintosh by reading the manual
* A boy he knew who found a cat, tied a rope around its neck and flung it over a tree branch
* That his father (in his twenties) came and grabbed the kid by the neck, and held him up until his face turned white and his tongue came out of his mouth, and how his father asked the kid how it felt, and how he thought the cat felt
* How his father went to war after that and came back crazy.
* The time he physically subdued and talked down a 6′3″ 250lb Irishman who attacked him (Flavio said he looked like the actor who played Pee-wee Herman, not realizing that was an insult)
* being smart enough to know that violence solves nothing
* That I didn’t freak out when the heater caught on fire, as many would have
* That he didn’t freak out when he cut off his thumb, baffling the nurse who took his blood pressure in the emergency room
* The guy who was freaking out when the main gas line to the heater accidentally detached and started leaking gas into the house
* That freaking out won’t fix the problem
* That Ambur probably would’ve freaked out
Future Design
In the wake of the release of David Kadavy’s Design for Hackers, folks are discussing design on Hacker News. BasDirks’s tips for getting better at design stood out to me:
If you lack the eye for design, the strategy I would recommend to develop some sort of proficiency is to “harvest” materials and ideas (good fonts, well-proven rules about proportion, color palets etc). Treat it as a repo, throwing stuff out and putting new stuff in. Ask feedback from designers on your choices, and try art. Really, try art. The whole art vs design debate is for decadent old men, but just exercise your creativity in different ways.
I’m a designer at heart and studied design in school, although I love to build things.
There are kinds of design that require an “eye”… graphic design is the prime example. I’m not very good at these, because they don’t interest me much.
I am much more interested in what might be called “future” design¹… making interventions that will shape the direction of a certain future. Certainly graphic design at its best does this while being beautiful. But from my perspective, graphic design is only one tool of many in the toolchest of the Future Designer.
Writing code, talking to people, putting on performances, building physical spaces, creating plans for neighborhoods, making sales, attending city council meetings…. all of these are indispensible tools for the Future Designer, and these activities all mesh well with the “hacker” mindset. In a real sense, this form of design is about hacking the trajectory of a neighborhood, or a person, or a city, or some other niche.
And yes, many great artists absolutely qualify as future designers. Banksy surely does. And many graphic designers: see James Victore². And many technologists too: Mark Zuckerberg surely does. The Kickstarter team surely does.
I’m embarrassed that this list doesn’t contain any women or people of color. Maybe it’s because I’m trying to find examples that would be convincing to the audience of hacker/designers on Hacker News. Certainly Joycelyn Elders has the stature of all of those men. As does Audre Lorde. As does Pat Summit. As do the Dixie Chicks. As do many more.
In some sense there are no specific technical skill requirements for you to be a great designer (as in: good eye, programming skills, etc). You do, however, need to know what your technical skills are. If you don’t have a great eye, and the future you’re designing requires a beautifully and powerfully presented image, then you need to find a graphic designer who does. Recognizing that makes you a great designer.
Because in the end great design isn’t about the practice of any specific craft. It is about outcomes.
¹ with a nod to Eli Blevis: http://dspace.kaist.ac.kr/bitstream/10203/5536/1/DRS-WonderGround-BLS-SoftwareMaterial-V2.7.pdf
² http://youtu.be/X3pXEdvI9xA
Bonsoir
I was looking for coffee in the Mission here in San Francisco, and this place called Four Barrell seemed well reviewed, so I walked over. But when I got there, there was a huge line and it was full of hipsters in designer clothes (as opposed to thrift store clothes, or hand made clothes) and as I walked through the door there was a man taking a picture of his MacBook Pro with a thousand dollar camera.
I backed slowly out.
A few blocks away is a little place called Cafe Petra (no web site). I got a small cup of coffee for $1.80 in a real mug. There are metal spoons next to the sugar. It was quiet with plenty of space to sit, benches down either side of the room with mats and pillows, like you might see in a middle eastern restaurant.
Just now a man walked and in a french accent exclaimed “Martin!” and sat down across from the man eight feet to my right. “Bonjour!” Martin said.
“Bonjour! Eh… bon soir, non?”
“We. We.”
So cute. Sometimes it’s really worth it to find a place that suits your taste.








