Life Update: June 2013

By Christine Lemmer-Webber on Wed 26 June 2013

So I haven't done one of these in a while... the last one I did was right when I was leaving CC to work on MediaGoblin. I think they're pretty good to get out of my system. I tend to have a lot of things accrue that I'd like to talk about, and I just don't get to them. It's nice to kind of reflect all at once.

MediaGoblin

The most publicly visible thing that's changed in my life over the last many months is my shifting to being fulltime on MediaGoblin. I've written about this a bit, but honestly not enough. How is it going? I think given the circumstances, I could hardly ask for more: we have an active community that is a joy to work with each and every day, I love working on the codebase, and I feel like I'm doing something important.

And things have certainly busy. We've put out three releases since the last "life update" post I did. We've got six summer interns participating in Google Summer of Code and GNOME Outreach Program for Women. And 4 out of 6 of these participants are women... that's affected by outreach, but it's also by merit. We got a lot of super strong applicants, and I feel that we did a good job picking the best proposal for each task. Diversity is something I really believe matters, and I feel like we're doing well here. It's good to see that that message is caught on and understood by our community too (see this post by OPW participant Emily O'Leary). Things keep churning forward, and in a good way, in a community that's strong and functional in ways I feel proud of. (We just reached 65 people in the AUTHORS file.... how cool is that?)

Most of the time it's a lot of fun. It's also generally fairly tiring. Not that it isn't worth it, it's totally worth it! But there's always more to do, and I constantly feel bad about that. But I think often it's best to not be feeling bad so much and just keep working forward generally.

One thing I also feel bad about is I don't take the time to write enough about things. I don't give weekly or biweekly updates partly because I don't have a good place to put them, and blogging used to be a painful setup (although I've improved that a bit)... but maybe I should make a sub-blog for it. Or I could just spam this blog a lot more. We do have a list managed by the FSF from the MediaGoblin campaign where I sometimes put out notices and of course there's the MediaGoblin blog. Anyway, it's a situation I'm not super happy with. Joey Hess does an awesome job of blogging on a daily basis about his git-annex work. I talked to him about it, he said he often copies stuff from git logs into there. That wouldn't be hard for me to do. I've also been writing out invoices to the FSF since I am getting paid for MediaGoblin work as a contractor, and I detail most (but not by any means all) work there.

Speaking of Joey Hess, I talked with him when I was at LibrePlanet. (I'm a huge Joey Hess fan, by the way!) It was nice to compare our two projects given we're both people who were paid to work on free software for a year from crowdfunding. One thing I've thought about is the distribution of time... I think Joey spends more time directly on coding than I do, and for his project, I think that makes sense. But git-annex is, I think, mostly Joey's work (which is not to say there aren't other contributors). MediaGoblin is structured differently, and thus my allocation of time is different. Neither of these approaches are better I think, and I think the workflows we have really are probably best for our separate projects.

I write more MediaGoblin code than anyone, but the majority of MediaGoblin code is not written by me. Mostly what I do is write the "core infrastructure" of the project, then people build on top of that. I help coordinate with people on the right direction of things, help build the core bits people need, help people find what they need, do code review on what they've written, and... well, I do a lot of guidance day to day. But this makes sense I think... MediaGoblin really is a community project. I provide a lot of the vision of the project, and I do tons of work on it, but it's not all my decision making. Outside of the general vision, a lot of what happens comes from negotiation on IRC.

How much do I spend on what tasks? I have a rough "guideline schedule":

  • Monday: administrative work (I do this at the start of the week to get it out of the way)
  • Tuesday through Thursday: programming
  • Friday through Saturday: code review / community management
  • Sunday: personal/retooling day

I probably work a little over 8 hours every day (but not too much more so I don't hit total burnout or aggravate my RSI). But how much do I map to the above schedule, really? The truth of the matter is that usually there's some kind of immediate task that takes precedence over this "general schedule", but it's useful for when there isn't. But I think proportionally this comes close to the distribution of workload I have, except probably I spend a bit more time on community management / code review stuff (especially because when you add community management to this, it becomes a much broader category of things I do) than on coding directly. And that's just fine, actually... having a lot of code to review and an active community is one of those things you can't complain about.

I continue to believe that the work we're doing with MediaGoblin is important. If there's some frustration involved it's that it's a long-journey process. But I guess most things worthwhile are. People have asked me whether or not I'll continue to work on MediaGoblin after this year, and the answer is that I intend to if I can (yes, that does require figuring out funding; yes, I am thinking about it; yes I am open to suggestions). One way or another, I have felt a heightened sense of purpose recently. PRISM, Google announcing closing Google Reader and it looking like they'll stop supporting federated IM via XMPP, Google Glass coming out soon and set up by default to stream your life through Google's datacenters... these things continue to reinforce my feelings that working on issues of user freedom in networked applications is an area that critically needs work.

Visiting family and re-contextualizing my work

So things are busy with MediaGoblin, but very recently I took a break to visit some of my dad's side of the family in New Mexico. It was good to see everyone. I had some conversations with one of my aunts, a couple of my uncles, my father, one of my cousins, and one of my younger brothers about all sorts of things ranging from philosophy to religion to social justice issues... it felt like the better side of academic debates, which I miss a little.

Sitting in these conversations and talking to my family members gave me an opportunity to appreciate my family for who they are in a way I haven't thought about as much as I should. My uncle John is a great thinker, has a clearer and sharper vision on the construction of society than anyone I've ever met. He and my aunt Barbara both worked on projects to aid those in poverty, and at one point they lived both in Madison (where we are now, and that's part of the reason my parents moved to the upper midwest and why I grew up there) on a cooperative. My aunt at one point ran a rape crisis and counseling center, and now she is working on issues of helping bring heath care to the disenfranchised. My uncle Bill is working on starting a coffee shop and is trying to figure out how to use it to support local artists and promote ethical trade. My father taught and studied theology from the standpoint of greater inter-cultural understanding and finding common ground and peace between religions. My cousin Wendy is an atheist with a degree in theology and it's interesting to see just how close she and my father think. Just now she's leaving on a humanitarian mission to bring sustainable water solutions to areas that need it most (part of this is grounded in a purpose to show that actually atheists are moral people too). I'm proud to come from a family that is grounded in both thinking and acting upon issues of social justice.

And this lead to something interesting... the news of PRISM broke while I was on this trip and some of that conversation shifted toward the work I was doing, but it also contextualized some things because it was just one part of many conversations. We talked about issues of user freedom, both of PRISM and of the work I am trying to do, interwoven in many issues of social justice and human rights. And this felt significant to me, both in that I'm following in a family tradition of working on social justice issues, but even more importantly, that issues of user freedom are issues of social justice (and furthermore, that this was just very well understood by people who have worked on issues that are much more clearly seen as such).

But there is a flip side to this: if this is true, why have those of us who work on user freedom issues so generally failed to contextualize the issues we are working on in those terms? Why have we failed to describe issues of software freedom (or user freedom concerns more generally) as issues of social justice or contextualize them within human rights? A lot of thinking around this really congealed for me while on this trip, and I think I need to write about it more clearly while it is still fresh in my mind.

I left for this trip feeling like I was taking a semi-vacation from work, but also feeling bad about doing so. I left the trip with a renewed sense of purpose. It was certainly worth it for that.

Talks, conferences, and other projects

One odd thing about this year is that you'd think I'd be giving more talks than ever being fulltime on MediaGoblin, but I have actually avoided going to conferences for the most part. I have gone to two conferences in 2013: FOSDEM and LibrePlanet. I spoke at both, and I am convinced it was worth it. But every time I travel to speak it throws me off from the work I need to be doing and it feels hard to give MeidaGoblin's community its full attention. Right now I think we need more work done than speaking publicity, so after LibrePlanet, I decided to avoid conference-going for some time so I can focus. (Sadly this meant even missing PyCon... the first time I have missed PyCon since I started going in 2008!) I will probably resume some conference-going soon, as I have a collection of things I want to talk about.

But about FOSDEM and LibrePlanet: they were both great conferences, maybe some of the best conferences I have ever attended. I wish I had more time to write about them (or rather, I really should have written more about them closer to when they happened since this post is long enough already) but I will say that they were both amazing experiences. (One thing about both is that they both involved being on panels with people I really admire and have looked up to... it's strange to be taken somewhere near the same level of seriousness as them. Guess I'm doing a good job of tricking people into thinking I'm relevant!)

Oh yeah, I did give a talk about something unrelated recently, and it's the one project I've been helping with a bit: Hy, a pythonic lisp! You should check it out, it's pretty cool. I've been helping with the docs and I made the logo and I gave a talk at ChiPy and some other things. Mostly I just pester Paul Tagliamonte though. :)

Miscellaneous

Well this post is more than long enough, so here's an attempt to wrap it up.

Life is good. I like Madison. I'm slowly meeting friends here. Slowly, but it's happening. I love where we live. Generally, I love life. I'm not the absolute greatest at any of the fields that I'm in, but I seem to be doing well, I think I'm working on the right things, I have the fortune of working on them with amazing people, I'm trying, and I think we have a good chance of making it. At the moment, I'm giving myself permission to feel good about that.

Could we please end the SQLite ALTER TABLE pain?

By Christine Lemmer-Webber on Sat 15 June 2013

I think there's nothing else in the world of programming that's given me more headaches than the lack of proper alter table support in SQLite. I'm not alone, because almost every developer I've worked with has had similar pains and complaints. How many hours of developer time have been wasted on the lack of proper SQLite alter table support? It must be in the thousands of hours. Surely this is fixable, and I'm willing to put my money where my mouth is: if someone is willing to develop SQLite alter support, I'm pre-pledging $200.00 towards fixing the problem. And I bet others would be willing to donate towards such a solution as well.

First of all, yes, there's a venting of frustration above, but it is not a venting of frustration in lack of appreciation of SQLite. SQLite is wonderful software; you could say that it was one of the biggest reasons (maybe the biggest, but of several) for my own project MediaGoblin switching from MongoDB to SQL (with SQLAlchemy, which is also wonderful software). Yes, we want people to be able to run medium to large installations of MediaGoblin (and there's PostgreSQL for that), but we also want people to be able to run smallish installations for themselves or their friends and family as well. SQLite is great for this, and it's also great for making developing super simple.

But one of the original reasons for going with Mongo was remembering how frustrating migration failures in SQL could be. When deciding to switch to SQL, I realized that we'd be moving back into this pain territory (we did do migrations with Mongo; anyone who suggests you don't need migrations with a document store database doesn't know what they're talking about and is aiming a shotgun squarely at their foot... even so, migrations were easier with Mongo). But of ALTER TABLE commands, SQLite only supports RENAME TABLE and ADD COLUMN. I had remembered also how because of this sqlite could require annoying workarounds to make migrations happen. I didn't realize though that at times doing migrations would become nearly impossible.

Since sqlite lacks most ALTER TABLE commands, most migration frameworks like South and sqlalchemy-migrate do crazy workarounds for the missing commands that usually involve renaming the table, creating an entirely new table renamed with the new schema in place, copying all the data back, and killing the old table.

If that sounds like a mess, that's because it is. In fact, the sqlalchemy-migrate project homepage suggests that for new projects to use a successor called Alembic founded by the same core author as sqlalchemy-migrate (edit: I've been corrected on this on HackerNews: "Alembic is not founded by the same core author as sqlalchemy-migrate. Alembic is founded by Mike Bayer who is the core author of SQLAlchemy itself."). But we didn't use Alembic because at the time there wasn't much support for sqlite (I think bit of support has been added since then, though I don't know how much) and we knew we really wanted it. In fact, on the Alembic homepage, this is listed as a goal:

Don't break our necks over SQLite's inability to ALTER things. SQLite has almost no support for table or column alteration, and this is likely intentional. Alembic's design is kept simple by not contorting its core API around these limitations, understanding that SQLite is simply not intended to support schema changes. While Alembic's architecture can support SQLite's workarounds, and we will support these features provided someone takes the initiative to implement and test, until the SQLite developers decide to provide a fully working version of ALTER, it's still vastly preferable to use Alembic, or any migrations tool, with databases that are designed to work under the assumption of in-place schema migrations taking place.

And indeed, there's a lot of neck-breaking involved in trying to use migrations with SQLite...

At one point I tried dropping a boolean field but discovered this was impossible because SQLAlchemy doesn't have a good sense of the constraints on an sqlite table, so sqlalchemy-migrate tries to reproduce the table without the boolean field, but since the boolean check is implemented as a constraint, the new table still has a constraint on a non-existent field and sqlalchemy-migrate doesn't notice. When the statement to create the new table is executed, sqlite explodes wondering what this boolean check is doing on this field that doesn't exist. More recently, one of our Summer of Code students tried writing some migrations, discovered that one broke in sqlite and another that didn't break deleted the unique constraint. We have no idea how to move forward on some of these issues, and that's a frustrating situation to be in.

Given all the above pain, why doesn't SQLite implement ALTER TABLE? I actually don't really know the details, but one of our contributors knows a bit about the sqlite structure and tells me that he thinks it might be because the data format makes some actions like appending rows fairly easy, but other actions like deleting a field would mean rewriting the entire table line by line.

But to that I think: migration frameworks are already rewriting tables entirely! So as far as I can tell, in the worst case scenario, sqlite implementing these other alter table methods means that it will be doing the same thing that migration frameworks have to do already, but in an official way, with a better sense of the structure of the existing tables, and probably even a bit faster than some other program likely operating through a different language doing the same. Sure, this may not be ideal, but it would be much better than the present situation. The documentation could even say this: "be aware that due to the nature of the sqlite file structure, this is a very slow operation that requires rewriting your entire table." But at least it would be a operation that rewrites the table natively, and would not explode in such strange and unpredictable ways!

I would be interested in helping myself, but I don't know SQLite's codebase, database structures is a domain I don't presently know, and I do not have time to learn it. But I'm more than happy to donate money (and I'm running off a crowdfunding campaign salary... I don't normally donate this amount of money to things, but surely fixing the most frustrating recurring bug in my programming career is worth putting $200 down). And I bet I'm not alone. If someone experienced with developing sqlite was willing to make an upstream-aimed contribution to kill this pain point, I bet it'd be a very fundable project.

Update: This post has gotten a fair amount of discussion on HackerNews, which is good! I'm surprised though at the amount of people who are taking the stance of "that feature doesn't exist, so why would you want that feature?" I thought this reply gave a good response to that.

Another update: One comment on HackerNews suggests that SQLite needs to stay around 250kb to stay "light". But on my Debian install, the sqlite binary is 680kb. Now granted, Debian probably has everything optional compiled in. But there's your answer if you're afraid about the binary getting too large: make it a compile-time option!

Now on Pelican

By Christine Lemmer-Webber on Fri 14 June 2013

I guess I've switched my blog around plenty in the last number of years. Not long ago I was running Zine, then PyBlosxom with some Jinja2 templating hacks I wrote (which had all sorts of unicode problems), and now, Pelican.

I'm happy with the switch: Pelican seems sane, very cleanly built, and things are working. I took a bit to clean up some other things about the site. And ah yeah, there's a new self portrait on the homepage.

I guess that's not terribly exciting, but I've cleaned it up and made pushing changes as easy as a "make" command.

You can also check the site's contents out via git if you like. Not sure anyone would care, but hey! There it is.

Flash Fiction Dystopias Volume 1

By Christine Lemmer-Webber on Mon 03 June 2013

I thought I'd have some fun and try my hand at some flash fiction dystopian futures. This will be an exercise in brevity writing about topics I think about without taking them too seriously. Without further ado:

HTML5 DRM goes through; Netflix sweeps into the web and over the next few years takes over the majority of video and audio distribution on the web, becoming the web's first super-monopoly on media. The DRM standard is easily worked around, but that was just a front for a legal excuse to sue anyone who does. Netflix eventually starts sending out lawsuits to anyone who doesn't have a subscription; I mean come on, do they really believe you haven't been watching any of these popular shows? Seems unlikely.

Monsanto does military contracting and creates a disease (or non-dispersable airborne chemical, or a plain old buildup in toxins from embedding pesticides inside of food, take your pick) that wipes out half the population; children are particularly susceptible. In further military contracting, they had already built several lines of genetically engineered embryos that are immune. After the war, future-parents are offered the purchase of said embryos, but you basically have a choice between one of 5 different sets of DNA. Also Monsanto has control on the patents so attempts to genetically engineer your own immune children are seen as piracy; said children are confiscated and disposed of.

Genetic patents on cancer and cancer cures means you get charged both for the cure to the disease and for infringing on the company's patents for having the disease in the first place.

Google Glass comes out, free software alternatives struggle to develop for its infrastructure, especially on the backend. The pressure to own a set and stream your life through Google's datacenters is far greater than the pressure to own a cell phone ever was (and so is the social ostracization). EEG keyboards also come out; computation has moved into the point of being an additional processor for your brain. Free alternatives start to get good, but aren't quite there, and the authors never bother to successfully advocate to non-developers; occasionally people try to move over but discover that the only people they can communicate with in the free alternative are free software developers, and get tired of it. The singularity happens, and is wholly owned and operated by Google, Inc.

Automated cars come out with no free alternatives, are a remarkable improvement in automotive safety, but mean total surveillance on movement and become an effective tool (along with Google Glass) in an emerging police state. Bicyclists suddenly become the only group that have true autonomy, and begin to realize it. Unfortunately that leads 5% of the biking population to become really smug about things and the popular image of bicyclists on the road becomes so low that pushing for legislation to improve conditions for bicyclists to make it a more feasible daily urban mode of transport never take off.

Full computing, data, and software user freedom is eventually achieved, but it turns out it doesn't matter because it happens at approximately the same time that modern civilization becomes unsustainable due to resource depletion and catastrophic climate change.

FOSDEM 2013

By Christine Lemmer-Webber on Thu 31 January 2013

I'll be at FOSDEM 2013 this year speaking on the AGPL Panel. It's not "a MediaGoblin talk" but the reasons I'm there are entirely to do with MediaGoblin being under the AGPL.

There will be several other MediaGoblin community members there. I'm really interested in Deb Nicholson's Messaging for Free Software talk. We might do a hackathon.

Will you be there? Maybe we should meet up! Or at least drop by and say hello. I'm arriving tomorrow and leaving early Monday morning. If you're interested, shoot me an email at cwebber AT dustycloud DOT org. Or just come up and say hello!

My taste in music

By Christine Lemmer-Webber on Tue 29 January 2013

True stories in the life of me, as told on the #mediagoblin IRC channel:

<paroneayea> a song comes on next on rhythmbox and I'm like, Oh, I love this
             song's intro, haven't heard it in a while
<paroneayea> turns out it was a car outside with a belt problem
<paroneayea> how you know you have terrible taste in music, part 1

Morgan, who has previously compared the music I listen to to dial up modems and car horns, would probably agree with this self-assesment.

On the MediaGoblin fundraising campaign part 2: behind the scenes

By Christine Lemmer-Webber on Sun 27 January 2013

The last year has had a lot of things happen to it in my life. I took on a lot of new responsibilities at my old job at Creative Commons, MediaGoblin development ran in full swing, we kicked off Liberated Pixel Cup, I left my job at Creative Commons, we left DeKalb and moved to Madison, Morgan started her PhD program... but the largest, most overwhelmingly huge thing that happened in my life this year was the MediaGoblin campaign.

I've never done anything that felt so huge, so life changing, that used so many of my skills and all of my energy, that felt so draining and yet felt so gratifying all at once.

The campaign was a huge success, and I've wanted to write about it for some time. But even after the campaign ended, it didn't really end; I've still been busy wrapping it up. And it's also something that felt so huge that I have a hard time putting it all down. So this will be my attempt. There will be no tl;dr... knowing of the success of the campaign is the best tl;dr you will get, so if that's what you care about, you can stop reading now (you probably already read that anyway). If you wanted to know way, way more about behind the scenes than you might have ever wanted to, here we go.

Running the campaign

Pre-pre-campaign

The first thing that needed to happen for the MediaGoblin campaign to happen was that I needed to quit my job. There's a bit more to it than sending in a notice saying I was quitting; I knew that I thought MediaGoblin was my most important work and that I wanted to focus on it, but how? I was looking to see if there were some jobs that might allow me to contribute to free software in some way for most of the week but then allow me one or two days (preferably two) to focus on MediaGoblin work. There were some possibilities, but in the end I decided that I would not really get as much MediaGoblin work as I would like done in that manner, and the jobs that were willing to let me do that were (understandably) somewhat cautious in the amount of time they could promise me. At that time I was feeling flustered that I wasn't giving MediaGoblin enough time, and that every time I stepped back, even though we had a lot of contributors, contributions were falling off and the community would go very silent. I wanted to be as active as possible, and so I decided I wanted to try to do it fulltime.

Of course, I also had to talk to Morgan; this was a decision that would affect both of us, and she was starting her program at the university and that was probably going to be expensive (more expensive than we anticipated even; it turned out funding was not available this last semester so we paid for it out of pocket). However, we had been saving for a possible life change like this. Morgan agreed: we had enough money at hand, I seemed to have some contracting opportunities if I needed to fall back on them, we had some backup savings, and if I could find a way to cover enough for us to live on for the next year, I should do it. And there was a cost of not doing this: I was at a strange position in my life where I could actually pursue my life dreams and possibly make them happen. What would happen if I didn't do so?

And so I quit my job. I turned in my notice at work, agreed to work part time for a few months and then as a contractor afterwards.

Morgan and I left our apartment in DeKalb. There were two weeks between our old apartment and our new apartment. We put our things in storage, and went on a trip: first to Boston for a week, then to New York.

In Boston Morgan and I stayed at the house of friend and MediaGoblin co-conspirator Deb Nicholson. Morgan took the time to visit museums and explore Boston; it was her first trip ever there. Meanwhile, I visited with free-softwareish friends and talked about free-software-ish things. I also spent a lot of time crashing the FSF office and doing MediaGoblin work from there. Deb's partner asked me when I was going to stop working and start vacationing and have a good time. I didn't know what he meant... I couldn't have been having a better time.

The most important day of that trip was when Deb, Will Kahn-Greene (another MediaGoblin co-conspirator) and I met at the FSF offices to plan out the campaign. We talked a bit and laid out some general structure to how the campaign would work. Then it was time to answer one of the big questions: were we going to do the campaign through the FSF or through KickStarter? (John Sullivan already expressed interest in us doing it through the FSF if we were interested in doing so.) We left for a coffee shop to discuss it and finish outlining the structure of the campaign. Well, if you read my previous blogpost, you already know the results: we went with the FSF.

Of course, we still needed to agree that we were going through the FSF. We went back to the FSF offices, explained to John that we were interested in going through the FSF but there were certain features we needed during the campaign that it didn't appear the FSF had infrastructure-wise. We laid them out one for one, and John took notes on a pad of paper. "Yes, I think we can do this."

Finally, it felt like the campaign was really real. I was excited.

Morgan and I finished up our week in Boston, said goodbye to Deb and her (now-husband) Ernie for being such awesome hosts, and left for a week where I'd actually do some real vacationing (only a little bit of coding, honest) in New York, visited with a number of friends in the area and had a great time, and finally flew home to move our stuff between DeKalb and Madison.

We moved into our new apartment. I walked around Madison and fell in love. For a couple of days, I just straightened things out, settled in, and mostly felt fairly relaxed, the most relaxed I had felt in a long time.

But... time to stop relaxing. Time to start the campaign for real. Before the launch date, we had a mile-long list of TODO tasks, and a very short time to get going on them. I got to work.

Campaign prep

There was a lot to do before the campaign even started. We commissioned MediaGoblin's regular artist Jef van Schendel to do a special campaign page for the MediaGoblin site. The FSF did work to update their infrastructure for our requests. Deb, Will and I hammered out the plan for the pitch video, finalized the rewards plans (I did quite a few calculations to make sure the rewards wouldn't cost so much as to not make the campaign worth it), and then came the really huge task: the pitch video itself. Work started in late August. The plan was that this would all go live on September 1st. That gave us less than a month and a half to wrap it up and get it going.

Here is the exact outline of tasks that we planned out:

Aug 23-25:

  • Timeline nailed down
  • Chris's local reference script pieced together
  • Agree on amount to pay schendje
  • Talk with schendje about pay and timeline
Week of Aug 26:
  • Work with the FSF to find out everything about what the theming is
  • Storyboard finished (mid-week)
  • Animation tests done
  • Ideally, animatic done
  • Chris Webber should find out and get to Deb (& Carl) what the aspect ratios / formats best are
  • Coordinate any work for audio and video recording with other people
  • Deb and Chris work out draft phrasing and page layoutish content
Week of Sep 2:
  • final storyboard signed off on (start of week)
  • Reward decisions researched
  • As much non-"face recording" work as can be done for the video as
  • Deb and I should have videos of ourselves recorded
  • Deb should get video of herself recorded to me
  • Voiceovers done or mostly so
  • Animations done
  • Background music, if using, should be looked for
Week of Sep 16:
  • Writing for pitch page done
  • FSF should have things working
  • Writing for fundraising page done
  • Theming should be done
  • Donation progress bar should be working
  • Video mostly edited
  • Talking to reporters? (or is this next week?)
Week of Sep 23:
  • Final video edits
  • Video transcoded and put in place
  • Final tests and etc

This was a lot to do in not a lot of time (my org-mode tree for the "Crowdfunding campaign" task is 3300 lines of text long, though that includes post-campaign tasks also, and for the most part I did not take breaks over this month and a half of work), and one thing I knew from seeing the success and failure of other campaigns was that things had to look good. And more important than anything else, the campaign video pitch had to be stellar. We could be cynical about this: we are catering to a certain amount of flashy visuals and shallowness. I remember watching the Ouya campaign and thinking "they haven't put any useful substance in this video" and thus feeling very suspicious of it (I guess it looks like they're making real stuff so maybe I should stop being so wary). But what really made that campaign raise so much money? Was it proof that they had the architectural ability to produce a console that was really useful? I really didn't think that video had much substance in it; it was mostly flashiness. But it also was the right kind of flashiness for the audience it was going for, and it raised the money it needed to raise.

Looks aren't everything though either, and I didn't want to make something vaporous. Will pointed to Joey Hess's git-annex assistant campaign video which is kind of awesomely the opposite of the Ouya video: it explains clearly what it wants to do but doesn't look flashy and shiny at all. (It probably helps that everyone knows who the heck Joey Hess is.) And there are also some nicer examples that fall in the middle... Tube is by people I trust and made a kick-ass video that was visually appealing, felt like it matched the film they were producing, and also explained what they were doing clearly. That's the kind of video I was more interested in making.

But I'm not a film-maker, and it was hard to know if this was something I could really do. A few years ago I read an interesting book titled Animating With Blender which I thought was more useful for its instructions on how to organize a film than how to actually use Blender itself. It really illuminated how to make a film from start to finish for me.

So the approach we took was very structured, and I took it in steps:

  • I wrote an outline of the script I imagined. At this stage, it was harder to get feedback I discovered, not really enough info to convey the script I had in mind.
  • I turned it into an actual script with spoken lines and textual descriptions of what would be appearing on the screen shot for shot. This was a lot easier to get feedback on; Deb, Will and I talked about it, but I especially had a lot of back and forth emails with Deb while we ironed out exactly what the lines would be.
  • With a clear script, I then produced a story reel with test audio (which I mistakenly called an animatic... it isn't.) Many of the things shown in here were just images that I thought were "close enough" to conveying the thing at the moment which I had around. There were also the node animations; I spent some time in this period carefully deciding what the aesthetics of those two short animated scenes would be.
  • I searched around to find some appropriate music; I tried a bunch of pieces including some folksy acoustic ones and jokingly showed Will one with a bit of overly-epic chiptune music that I liked. Will actually said that this was the right call and I should go with it, saying something along the lines of "It should be epic and over the top! This isn't Prairie Home Companion, we aren't sitting around eating corn cobs. This is the fight for the future of the internet!" I went with that one after all.
  • I worked on the render tests of the nodes and the police scanner. Until I got these tests done, I was still afraid that the animations were something I wouldn't be able to pull off.
  • Deb and I started doing voice and video recordings. This was a bit tough, and in retrospect we should have used some time together to visit a professional's house and get said recordings. As it was, we both recorded separately on crappy microphones and not ideal camera equipment. I spent a ton of time cleaning up audio in audacity, re-recording stuff myself, and pestering Deb with requests of things to re-record. (I am sure I was annoying about this, not to mention that she was in the middle of planning her wedding! Thanks for being patient, Deb.) I think more than anything, I underestimated how important it was to get this part down right, and I spent a lot of time being afraid that our crappy setups would ruin the video and everyone would dismiss it and not donate it because they could hear audio crackle. (I was probably more afraid of this than was rational.)
  • I wrote some python scripts to be able to allow me to create the animated node graph quickly with adjustments.
  • I did the actual animation of the node graph things. There were some hiccups, my police graph rig was hacky, but I have to say, this was the most fun thing for me for the entire campaign.
  • I made a ton of screenshots of MediaGoblin.
  • I made a number of video recordings of me doing certain small things like scrolling through identi.ca or starting up a MediaGoblin process. I did more takes of these than is probably rational.
  • I asked Joar Wandborg to make videos of himself eating and upload them to MediaGoblin. If you re-watch the video you'll know what part I mean.
  • I knocked out the drawings that appear in the video.
  • I abused my friendship with my friend Bassam Kurdali and asked him for more Blender tips than is fair or reasonable.
  • I did the video editing of the whole shebang in Blender's video editor. I might have had more anxiety about the audio quality part, but I had more actual frustration over this than anything else. It wasn't the actual placing the timing or strips of things... it was putting videos on the sequence editor and battling encoding issues for literally days on end.
  • I cut up the audio that we were using and put it in place and made the credits.
  • And of course, I did the final render. My computer smoldered for a good 9 hours, and the campaign video was complete.

When you work on something like that for that long, it's hard to not mostly just focus on all the mistakes you made. But honestly, I am damned proud of that campaign video. I think it sent all the right messages clearly, I think it looks awesome, and I think it was the right length. I feel good about it.

There was quite a bit more to do also and we ended up being a bit farther behind than I expected by a week and a half. Still, we got all that done in only a little over a month and a half.

Finally, everything was ready: the video, the campaign page text, the rewards decisions, the little icons that went with the rewards (done by my friend Alex Camelio), the FSF donations page... it was time to launch.

The campaign begins

We launched!

The campaign launch was exciting. We put out a blogpost, the FSF put out notices to their own campaign, a lot of people spread the message on various channels, and money started to come in. At this point I was relieved that things had finally set off; I thought I might have a chance to finally relax in comparison to all the pre-campaign work I had done.

Well, I was very wrong there. :)

Before I get into what happened, Will put together an analytics script. It's interesting to look at:

http://dustycloud.org/misc/mediagoblin_campaign_graph.png

Initially things went easily: the people who were most likely to donate jumped onto donate. I remember going out to lunch with a MediaGoblin donor who turned out to be from Madison; over the course of lunch, the campaign went up $600. But it didn't stay easy.

What I discovered is what anyone who's had to do fundraising already knows: it's a real slog. You have to keep up momentum, and for a large part, that means getting out messaging every day. We had a lot of advantages: Deb knows a lot of people in the tech media, we had the FSF as a connection, we had a solid video and good branding, we had an awesome feature (3d media support!) land mid-campaign, and so on.

The details are kind of boring and I'm not going to go into them, but what I learned the hard way is two things:

  • There's a point where fundraising slows down. You can see that on the graph already.
  • If you step away from messaging, things basically grind to a halt.
  • It's really hard to keep messaging interesting for a whole month, though.

There was a week where I went to the Federated Social Web Summit and also flew in to help CC with interviews for a position it was hiring for. I thought it was really important to go, and it turned out to be a useful thing to blog about after. But during that week, money basically stopped coming in altogether because I also dropped off of messaging. It probably would have slowed anyway, but it was hard to not be gripped by anxiety by everything just totally grinding to a halt fundraising wise. There's a certain part during fundraising where your feeling of self worth is proportional to how fast the fundraising level is climbing, so in times like that, it can be hard.

Luckily, one major thing happened for us: the FSF helped secure a 10k matching grant. (You might see a huge spike on the graph; that's the 10k grant coming in.) As important as the 10k grant itself was, when things were slow, it gave us an extra thing to rally around. I'm very grateful to the FSF that they helped us line this up; I don't even know where I'd begin to start such a thing myself.

Anyway, a ton of anxiety later, the campaign did wrap up. We shot for 60k and it was clear we weren't going to make it. But we also set the campaign a bit higher than we needed it to be. I told Deb and Will that "if we could just make 40k, I'd feel like it was a success". As the time came closer I wrote John saying that I was considering doing something crazy like lowering our final goal to 40k, since I was afraid nobody would donate at the end if it didn't look like we'd get close to our real goal (maybe they'd think it was Kickstarter-style and would think "well, they won't make it anyway"). John advised me that the end of these things tend to be tough but sit tight. So I did.

We made 43k and I felt pretty awesome about it. We declared the campaign a huge success, and meant it.

Post-campaign: rewards and a new routine

The campaign is over, but that doesn't mean the work is over. There's been about a month of work after the end of the campaign spent working on trying to finish the rewards of donors to the campaign. I've actually enjoyed it; one thing about the campaign that I really like is that it's allowed me to mix in excuses to make good use of my artwork. (You may have noticed that the MediaGoblin project itself is sneakily set up to make use of my favorite skills in different ways.) But of course, the purpose of the campaign wasn't to fund rewards, it was to fund me working on MediaGoblin for a year. (Or, well at one point we thought there was the possibility that maybe we'd shoot so far over the campaign that we could pay multiple people... clearly that didn't happen :)) Thankfully, that's almost all done. I've finished all the artwork and Morgan has helped a whole lot on ordering things and vectorizing the mascot for the shirt and so on.

Last week was the first time I finally felt like I spent a full, solid week on MediaGoblin doing code reviews, coding, and a bit of administrative work.

It felt awesome.

Was it worth it?

I think it was worth it. I think it's also common to think about a campaign like this as "you set up the thing, then the money rolls in". Well, I don't know if that was true for other campaigns. It certainly wasn't true for ours. It was a lot of work.

After all the costs of the campaign are removed, the "income" from the campaign will be a bit less than $35000 (I will be making the files related to the finances of the campaign public). Keep in mind also that the campaign started in September, so since I'm promising to work on MediaGoblin full time for all of 2013, that's not just a year, that's nearly 1 1/3 years (so that's closer to $26000/year if it were really a salary). That's not a huge salary for a programmer. It's both significantly less than half of what I made at CC, and less than what I made at my first time job as a datacenter monkey, and both of those had benefits. We're paying for our own insurance as-is. We can make it through 2013, but partway through the year I will also need to figure out how to fund things going forward.

But it's also enough... not on its own, but as said, we have some savings, and I have some contracting that I can do. And it's actually also pretty good; sure, we didn't meet our goal, but there are other awesome projects like Tube, git-annex-assistant, and OpenPhoto, and actually if you look at those you realize we did pretty damned well.

And it's afforded a rare opportunity: to do exactly what I want and believe in for a year. And that's something that I wouldn't have been able to justify otherwise.

And so... I'm looking forward to this next year!

Addendum: One thing I forgot to mention in all this is that during the middle of the MediaGoblin campaign, I got a lot of help from the community itself as they stepped up to take care of the codebase when I was in campaign-madness-mode. (Not to mention all the community help in promoting the campaign, or even in making MediaGoblin into anything at all!) So thanks, all. :)

On Hackers and Depression

By Christine Lemmer-Webber on Wed 16 January 2013

Depression is a background but ever-present part of my life. Most people who know me closely know this, but probably most people who know me for the type of work and projects I do do not. I'm not against people knowing, but it isn't something I really talk about because it seems like something that's mostly personal and thus isn't really something that there's reason to talk about.

But recently that's changed; by now, weirdly almost everyone on the internet knows about Aaron Swartz's suicide. I say weirdly because... well I never knew Aaron personally, we never spoke, and he was not my friend. But there was a large overlap in our lives in more ways than I can probably count (affiliation with Creative Commons, various kinds of informational freedom activism, programming language preferences, et cetera), and while I did not know him, many of my friends did. News of Aaron's death did affect me personally, partly for empathy for friends, partly for sadness at losing someone who's kind of a kindred spirit, partly because I lost one of my closest friends to suicide over a year ago, and partly because my own depression is a regular background issue for me. Aaron Swartz's death was not quite like losing a friend to me because he wasn't a friend, but for the reasons above and many others not listed, it did stir up a strong emotional reaction in me. But there has been enough written about Aaron Swartz, his suicide, and a whole crock of issues that have been stirred about it by a good very many people who are far more qualified than I am to write about such things. So I assumed I had nothing to say on the subject that was worth reading. And strictly on the subject of Aaron Swartz, I really don't.

But there was a well written post by Evan Prodromou titled "On hackers and suicide" which echoed a lot of my own thoughts recently, and he seemed to be calling for others to join the conversation, and I feel like I do have quite a bit of thoughts on it, so I should maybe write them down while the moment seems clear.

The first thing I guess to be said has already been said: I have depression, it is a part of my life, and probably will be for the rest of my life. I have been depressed for a long time, since my preteen or early teen years at least. I remember strongly the first times I started thinking about how I might be able to kill myself with a dirty knife on the kitchen counter or a (unlikely to work) strategy of sticking my head under a running faucet and holding it there until I drowned. I haven't had a serious suicide attempt but suicide is something I think of often, almost or maybe even daily. There was only once where I nearly did it... I had been fighting to keep my small college Barat open from being closed by the larger university DePaul which had bought it, had been engaged in a long campaign to keep it open, it closed, and I felt like my world was simply over, there was nothing left for me to do. I went out into the woods to slit my wrists with a pocketknife. When I got into the woods I realized I didn't have the knife on me anyways so I just walked back and felt mostly tired and defeated for awhile. And so I'm still alive to this day, I suppose, due to my absent-mindedness. But aside from that time, depression wavers between being mostly something I know is there but isn't very present to being something in the back of my mind to something tearing at and lacerating my thoughts.

I really don't see how this is something that will change. I remember being in college and thinking that if I could somehow carve out a life for myself where I was doing important work that I believed in, if I was doing things I wanted to do, I wouldn't have reason to be depressed. And I had a hard time understanding why people who I admired so greatly, who did so much, could really continue to be depressed. It didn't seem logical. But here I am... I think I have actually carved out as much of a "I am doing important, ethical work that I believe in and that I enjoy as is actually possible at all ever" situation as I will ever be able to... and depression, somehow, has not gone away.

Why? To look at it logically, it doesn't make sense. It's very troubling: I have surrounded myself with a lot of people I really admire who are doing great work, things that I think are important world-changing things, people I couldn't possibly put an ounce more admiration into, and somehow the majority of them seem to have depression also. Not only that, but there's a way higher correlation between the number of people who seem to be doing good things and who I care about and the number of people who have deep, serious depression issues. And most of my community is the free software community. Why do hackers (and I mean that more broadly than programmers, include any participant in these kinds of spaces) seem to have so much trouble with depression?

It's hard to know without being highly self-reflective (and indeed, I've already been more self-reflective in this post than maybe you ever wished to know), so I'm not going to shy away from being self-reflective. Yes, I'm projecting my own life onto you. But I think there are some reasons why I and and other people like me seem to struggle regularly from depression. And here are some of them.

First of all, a lot of hackers and smart people generally I think tend to have had troubled childhoods. There's a nature versus nurture type question that's really not easy to split apart at all that's one of those "do nerds have socially difficult lives because they're nerds or are they nerds because they have socially difficult lives?" I think the answer is probably that it's a mutually compounding thing, but there's a certain personality type that's already very smart but which is having a difficult life that draws them to certain types of intellectual activities as escapism. I didn't have many friends as a kid, I was picked on in school, and that's all very standard narrative for nerds. Sometimes when I read about other nerds, I hear about them having an easy time in school academically, but that wasn't true for me because I had such a strong case of ADD; I nearly failed out of the first two years of high school due to a combination of difficulty keeping my attention under control and because I had absolutely no friends in school (I had friends outside of school, and yes, of course they were nerds), and probably the only thing that saved me was being transferred to a wonderful alternative school called Kradwell where I learned to keep my ADD under control and nobody made fun of you for being a freak because everyone was a freak. And I had some complicated family issues and many other things. And computers were an escape. Computers don't judge you, they don't make fun of you, they don't pressure you for taking too long to figure out a problem, they're just there and they have a world full of interesting problems that you can solve, and if you take the time, you can become good at solving them. (I don't believe I am a "born hacker" in the sense that I have naturally good computer skills... I am just very stubborn and have basically forced my way through with stubborn interest.)

And the more people I talk to, the more that I find that many other people have been like me. Not everyone of course, and this may be changing for the better: increased outreach efforts are reaching groups of people who might not fit all the "hacker prototypes", and that's a good thing. But for a lot of people I know, this is a common pattern. So many hackers are depressed before they are ever hackers, and they don't become hackers because they're depressed, but there's patterns that mean that this is a common thing.

Compounding this is that people who work on free software issues tend to be working on it for ethical reasons. And working on something for ethical reasons is, I think, one of the most important things that you can do with your life. The world does not move forward if we don't have people working on things for ethical reasons. But this can also be emotionally wearing: you're working on these things because you care deeply about them. Becoming personally invested in something, believing in something, takes a lot of emotional resources. It can be very rewarding when things are going well. But you're also up against a lot, and that can also be very wearing. Not to mention that there's a lot of guilt... you will probably not do things 100% right 100% of the time. I remember telling someone when I told someone that I was using a proprietary driver on one of my computers (otherwise, 3d acceleration would not work, and I am a 3d artist): "I do have this proprietary driver installed, but at least I have the dignity to feel terrible about it." (Yes, I do try to get around this also by running a completely free system to the fullest extent I can... though that can be wearing in its own way to try to do.)

This gets even harder if you're not just a user, but a hacker who is trying to build new, challenging things. When you do build things, when they're going well, there's nothing like it. But things can go badly too, and it's very easy to take things personally. I remember when I heard about the suicide of Ilya, one of Diaspora's founders, that frightened me. If I really did leave to do MediaGoblin fulltime (which I now have), what would I do to myself if things did not succeed? (Or even they may not be failing... I don't think Diaspora was failing, but it's easy to feel like they are when you're building something you care about and suffering from depression simultaneously.) Would I be able to handle the feelings of failure emotionally? Worrying that I could not was something that I struggled with when deciding whether this was something I should do (ultimately, I decided it was too important to not do it, not to mention the depression of not doing it would be even worse). But it's still something I've thought and worried about.

And it's very easy to take things people say personally. A number of years ago I used to join in the chorus of "X project sucks! This sucks!" and generally snarking on a lot of things that I thought sucked. My perspective on that has changed. For one thing, as a teenager on slashdot, making comments about a project "sucking" didn't seem like it could be hurting anyone partly because I thought that if I was tossing insults around, I was tossing insults at giants, and such words would just bounce off them like pebbles on their impossibly thick skin. The irony of this is that I thought that these people were like powerful, immortal coders, and thus impervious to any damage I could toss around, so why not vent a little? But now I run a project myself, and I know many of these developers who at one point seemed like mythical figures walking high above my head, and I know the truth: they aren't magical. They were never magical. They are just people. And that means they're just as vulnerable too. And those words can hurt.

Furthermore, snark is fun and easy way to look awesome. It's hard to build things, but it's easy to be an armchair pundit, throwing insults around. And it's not just the armchair pundits either; there's some kind of disturbing trend where plenty of people celebrate the past-time of attacking each other, and this is even encouraged by some of our most high profile community members. Every couple of weeks Linus Torvalds switches desktops and thrashes the other desktop system and everyone throws a party, except for the people who are currently working on that project. I don't know what they do; if I was working on their project, I'd probably go lie down on my bed for a few hours with the lights off and not move for a while.

Early on in announcing MediaGoblin, a friend of mine told me that it was mentioned on a podcast, and that the comments on this podcast said that it'd never work because the name was stupid and it was a GNU project and GNU projects never happen, or some sort of thing like that. My friend said I should really listen to it so I could hear what they were saying. Well, I was never able to listen to the podcast. I probably will some day, but I am afraid to open the file. When my friend told me that, I felt so terrible that I wondered whether or not I should even bother working on anything anymore, especially not MediaGoblin. I'll tell you an embarrassing truth: someone made fun of my project name and I cried about it. Isn't that the dumbest thing you've ever heard? It's like the kind of thing some dumb, dorky kid would do that everyone would make fun of them for on the playground. Except oh wait, I did it, and I'm an adult. (And I guess I was that dumb, dorky kid on the playground anyway.)

But what am I saying? We should never criticize each others' projects? We should just be really fucking, eggshell-steppingly nice all the time? Well, that kind of level of niceness sounds kind of exhausting. And of course, criticism isn't just good, it's critical. We need it to improve things. But I guess, just realize that it's real human beings who are running those projects. They're probably more vulnerable than you know. Would you say the same things you're saying about this project to the face of someone you know? Sometimes we say things on the internet that we would never say in real life. That sometimes makes it a bit easier to shake things off... but not always, and often not really. The person who's reading your comments might be the person who runs that project, and they probably run it because they care and believe in it. And they have feelings.

At PyCon a few years ago my friend Ian Bicking gave a wonderful and whimsical talk called simply Topics of Interest (or maybe it was his DjangoCon keynote, I don't really remember, it was at one of those talks; I'm intentionally not watching so I can rephrase it in the way that it struck me, even if that's wrong). At the time, everyone seemed to be bitching about the state of Python's packaging, and picking on the people who were working on it (I am guilty of this). I remember something that Ian said really hit me, which was something along the lines of: "When people work on hard problems, that's really difficult to do right, and it's easy to pick on those people for doing things wrong. But if you make fun of people who work on hard problems, then they go away. And then nobody works on those problems." I was really struck by that.

It's also true that in the optimal world, where everything is going well, chronic depression doesn't just go away anyway. It's always there, though a life that is going well is one where dealing depression is much easier. Even when it doesn't make sense though, even when you've carved out the ideal world for yourself, once you've burned the paths in your mind where depression and suicide can become their own escapes, it's very easy to fall back on them. Sometimes little things can trigger them. Sometimes a general buildup of anxiety. Sometimes it's hard to know why. But it's easy to fall back on those paths. It's hard not to.

That said, having chronic depression as something that doesn't go away isn't the same as "well, you have depression, it doesn't go away, so there's not really anything to do." I think people really are affected by what's happening in their life. I think that Aaron Swartz's suicide wasn't just "he had depression, so ultimately he'd eventually take his life anyway". If I had been bullied to the extent that Aaron had I think that I would not have been able to take it either. That could drive anyone to depression... and even worse, anyone with depression, I think it would throw them over the edge. So it's not just a simple thing of "it's depression's fault" or "it's the situation's fault". Depression might not go away, but there are things we can do about it.

But what? I've talked a lot about my own depression here. I hope nobody misreads this as a "feel bad for me" post. I don't want you to feel bad for me, I'm actually doing pretty well right now. But now you know a bit more also. And I've talked about depression, or I've tried to, in the sense of causes. As for solutions, or even action items... that's a much, much harder thing to talk about. I don't know if there are solutions; that sounds too much like a problem that can be wrapped up cleanly. There are things that we can do, I think, and but it's a lot harder to identify them. But here's a short list of things that I think are actionable:

  • Be welcoming of people. If there's someone trying to get involved in a project, that's an intimidating thing. If you're in some sort of position of leadership, remember that it's up to you to set the stage for a welcoming, friendly community. Support people who are being kind, try to help along people who are new, and try to help people who are acting inappropriately to improve the way they communicate to be considerate.
  • Don't participate in a culture of bullying. It's okay, even good, to share criticisms. But try your best to be constructive. It's easy and fun to be a snarky douchebag, but remember, there's someone on the other end of the internet, and they have a face, and they have feelings. Be nice to them. Be considerate. Give criticism, but give it constructively. And don't give bullying or antagonism your support, either.
  • Remember that activism is important, but hard and emotionally draining. We absolutely, positively need people to act ethically, even when the ethical solution isn't the "better" solution. But remember also that when we're asking people to try to stand up for what's right, that often means going against the grain of society, and that can be very wearing and require a lot of patience. So be patient to people also.
  • Be supportive of each other, and seek support when you need it. Remember: if you're depressed, you aren't alone. There are plenty of hackers out there who are depressed, just like you. And that means don't be afraid to find other people who are like you can be a support structure, and help other people when they need their support. A lot of what is really needed for people who are depressed is to have a friend to talk to about their problems. But of course, there's also only so much that people can do as friends: sometimes professional help is really needed. (And as Evan said in his forementioned post, making suicide prevention resources widely available is I think an important step in helping reduce risk.)
  • Remember that you're doing something important, and feel good about that. One problem I've discovered about myself is that I tend to not evaluate myself based on the things I do, but on the things I don't do. I think that's a common pattern, and both a source of drive for people to do better, but also the source of a lot of burnout. Remember that you're trying to do good, and feel good about what you've done and are doing. It's okay to feel good about yourself and what you do! And that means something else too: don't give up on yourself. The world isn't better off without you in it. It wasn't better off without Aaron in it either. If you need help, get help. The world is hard, and that means partly that it needs people in it to do important things to make it better. Do good, and value yourself for it.

Beyond that, I don't know. It's a hard situation to figure out how to improve, but I think it's important that we recognize and talk about this. I'm certainly interested in what others have to say.

I also work for the Internet now.

By Christine Lemmer-Webber on Mon 12 November 2012

MediaGoblin campaign wrapup image

You may have read it on the MediaGoblin blog already, but the MediaGoblin crowdfunding campaign was a huge success!

I have more I want to say on this subject, but for now I just wanted to echo Joey Hess's blogpost of similar name. And it's a solid fact now: from now till the end of 2013 I've basically been hired by people who believe in all of the ideas we were selling in the MediaGoblin campaign: that the internet needs decentralized and federated media publishing, that MediaGoblin is the platform to do it, and that we're a really fun project that can make this all happen.

The campaign has been an interesting experience, and I certainly intend to write more about it. I've never done everything else that used all of my skills so thoroughly... but I guess what I mean by that is coming up in another post very shortly. For now, I'm just basking in the awesome that we sold the world on a dream and I've essentially been hired by that same world to build it. How often do people get to spec out their dreams and live them?

Now I'd better get back to working on things! Got quite a lot to get done so we can bring this dream we're promising to life! Not to mention shipping out... and making!... all those rewards we promised. :)

On the MediaGoblin fundraising campaign part 1: FSF vs Kickstarter

By Christine Lemmer-Webber on Tue 16 October 2012

As those who have read my previous entries know, I quit my job of three years as senior software engineer at Creative Commons to pursue the free software project I've been running, MediaGoblin. I'd explain a bit further what MediaGoblin is but actually there's no reason to: we're in the middle of running a fundraising campaign, and we put a video together that explains everything wonderfully already. So what you really ought to do is click through to:

Suport MediaGoblin image

Go ahead visit the above link! Check out the campaign! Watch the video! Donate! Excitedly link the campaign to your friends! Then come back here. I'll still be around.

Okay, back? Awesome. So the campaign has gone live and is going well. It's been a major portion of my life the last couple of months. For the one and a half months leading up to the campaign, it was my life. And it still is. I stressed out about it all the way leading up to the campaign launch and I am, in fact, still stressing out about it now. But it's a good kind of stress. We're getting a lot of positive reactions from people, and I feel great about that. I really do believe that MediaGoblin is the most important thing I've ever worked on in my life, and so having this be a success is important to me. And having it be important to other people... well that's important to me, too.

There's a couple of things that people have been asking me about related to the campaign. People seem fairly curious about the process of making the video and ramping up the campaign, and especially I keep getting asked, "Why did you go through the Free Software Foundation? Why not Kickstarter?" Those are both really good questions, so I'll take a shot at answering them.

Why the Free Software Foundation? Why not Kickstarter?

Kinda long, so here's a tl;dr:

  • We don't dislike Kickstarter
  • FSF offered for us to do the donation campaign through them; didn't have all the features we wanted, but were willing to implement them
  • We decided to go with them because they threw their weight behind our campaign, because of their integrity, and because of our aligned ideals.

Let's go with this one first, because people seem so curious about it. What I'll first say was that this wasn't a decision we rushed into. A couple of months ago, I was in Boston and meeting with MediaGoblin co-conspirators Will Kahn-Greene and Deb Nicholson about this. We were hanging out at and around the FSF offices. At that point, we knew we were launching a campaign, but didn't know the details. And this was a major point of discussion: do we go with Kickstarter, or we go with the Free Software Foundation? We did know was that John Sullivan had expressed interest in us doing things through the Free Software Foundation, and so that was an option.

We chose the Free Software Foundation over Kickstarter for various reasons. The reason we didn't go with Kickstarter isn't that we dislike Kickstarter, or thought that it would be particularly bad for us. I actually think that Kickstarter is doing a good job in paving a way forward for projects to be funded in ways that frees them to focus on what they need to; if I have a major complaint, it's that I wish people would mostly hold projects to the standard that if they're donating to them, they shouldn't be locking down their stuff. If the public is funding you, doesn't it make sense that you are in a sense beholden to the public? I wish people would hold things they donate to to a standard where they encourage projects to adopt free licenses. But anyway, that's more of a wish that I wish we'd see more free software and free culture benefitting from Kickstarter like systems than something against Kickstarter. And Kickstarter was fairly tempting for various reasons: they've done a good job of proving themselves. We know their stuff works, it's fairly expected how stuff would run, and it's something people recognize and feel comfortable giving money to. My friend Aeva said, "When I see something on Kickstarter, I have a temptation to just throw money at it." So not choosing Kickstarter would mean leaving a lot of that behind.

So why did we choose the Free Software Foundation? There was reason to be cautious about it: we knew what to expect if we went with Kickstarter. While I have a lot of trust in the Free Software Foundation, we couldn't be sure how things would work out running a campaign like this because they simply hadn't done such a thing before. We had done something similar with the FSF with Liberated Pixel Cup, but it wasn't on this scale. When we met with John, we listed a series of things that we'd still need: we needed the ability for the system to offer rewards (such as the 3d model, t-shirt, etc options we have now), we needed the ability to theme the campaign page, we needed to be able to email people who donated with updates as the campaign progressed, we needed the form to work this way and that, we needed a progress bar that updated automatically each time someone donated, and so on. The FSF didn't have a way set up to do these things yet, and we wanted to go live with the campaign in a month and a half. Would the FSF be able to do it on time? Would the FSF want to do it? John said that he thought so, and yes. This was a direction that they were interested in going in, both for themselves and likely for future projects, so it was a good opportunity for them to push their systems in that direction.

At that point, we decided to go with the FSF. First of all, the fact that this was a new thing but that the FSF was interested in pushing in this direction means there'd be a certain kind of guinea-pig uncertainty, but it also meant something else: the FSF had a lot of faith in MediaGoblin and were willing to throw their weight behind it. That meant a lot, and also meant something strategically: there's a lot of projects swimming around on Kickstarter and etc right now, and it would be easy to get lost in that pool. The fact that the FSF was willing to back us meant that we'd stand out in a certain way, at least to a certain audience. And we could benefit from their connections and experience.

There's another aspect to it too: the FSF is a nonprofit. I'm not sure whether this is resonating with donors or not, but at least to me, it's significant: the FSF is an organization that has a mission and integrity. By going through the FSF, we are also beholden to that mission and integrity. The FSF wasn't going to just toss all the money raised by this project over to us: we had to show that we were doing the work to advance the project to get it. To me, that seems like a feature, at least one that's donor-facing (though I'm not sure whether or not people are picking up on that). You can have whatever opinion you want about the FSF, but one thing is indisputable, maybe even above any other org I know of: they stick with their principles. And I hope that message that the FSF was backing us passed on to people. And to some people, it seemed to. (I guess also, if you go through a nonprofit, donations are tax-deductable. Some people seem to appreciate that.) The FSF is also taking an "administrative cut", just as Kickstarter would, of the money raised. I think it's also significant that the organization that gets that cut be one who's working to advance things that I believe in.

There were some other benefits too: we had a lot more control over our site design by doing things on our own (and MediaGoblin's usual graphic designer, Jef van Schendel, was commissioned to do the design of the campaign site, and did an awesome job). But... I think the being endorsed by an organization with that kind of trust and integrity was the most important thing. And I'll also admit that there is an element of personal interest here: is it possible for a nonprofit to reproduce the same kind of experience that Kickstarter has? Because that's significant to me. And one thing that would come out of this is that the FSF would be using free software to run the campaign also. The thing is mostly run by CiviCRM, so unlike Kickstarter, advancements gained in running it could benefit the software and other people running such software. And if we could prove that this works, that would be good.

That said, even after we made that decision, even though I have a strong amount of trust in the FSF, the proof of the pudding is in the eating, and I couldn't be anything but nervous about things until the campaign actually went live. I'm happy to say that things did work out and we had a successful launch. People seem very responsive to our campaign, and the FSF's stuff is working great. And the FSF really has thrown themselves behind the campaign. I've been working with both people from the FSF systems team and especially John Sullivan and Zak Rogoff, one of the new campaigns team members (who's really been a pleasure to work with so far). They really have been trying hard to make this a success, and I'm really pleased with it.

We've had a good start, but we've still got a long way to go. But one thing's for sure, the campaign is only going to be a success if people like you pitch in and spread the word about the campaign. So please help... and spread the word!

And I guess that blogpost was long enough, so the "making of the campaign" will have to be a part two!