jewelfox: A portrait of a foxgryphon with a beak, black fur, magenta hair, fox ears, and a neckband with a large jewel on it. (Default)
This essay compares another platform's user and developer experience to GNOME's, in an attempt to understand how to make GNOME accessible to app developers.

I'm watching a presentation about PlayStation Home given at GDC (Game Developers' Conference) 2010, and what amazes me is how easy it seems to be to make stuff for Sony's version of Second Life. It uses industry-standard 3d modeling software (sadly not Blender), and simple Lua scripts to hold everything together. The guy giving the presentation explicitly said he wanted a graphic artist to be able to try out the developer's kit and have a good idea of what they could make from it very quickly, and at every step there are tons of examples and validators which point out potential problems.

The end result is decidedly niche, since it only runs on the PlayStation 3 and takes forever to load (both Home itself and each "scene" in it). I've personally had a lot of fun with it, though, because it's even easier to play than it is to develop for. If Second Life is like a hardcore custom KDE or Windows 7 desktop (running in classic mode!), Home's more like GNOME 3 in that it's extremely simple to play and easy to control and customize your avatar.

SL makes darned near anything possible, but everything's clicky and difficult, and the end result is like a 3d modeling app crossed with a chatroom with bad lag. Home makes a number of trade-offs versus SL that make it more usable:
  • Your avatar can perform fewer actions, but they're all much easier to select.

  • It automatically sorts your inventory into folders, based on how you wear something or what kind of object it is.

  • Instead of rendering scenes or avatars gradually, it takes up to a minute to load each scene fully, and displays a transparent "ghost" person for avatars which haven't loaded completely yet.

  • Scenes themselves are completely self-contained. They can connect with each other through doors or teleporters, but there is no "mainland" area.

  • There's a dedicated game API for developers who want to make games in Home, which is less flexible than SL's open-endedness but makes it a lot easier to write games.

Very few people use Home or SL regularly, and the ones who do tend to be hardcore fans. In SL's case, the interface turns people off, along with how pointless it feels if you don't have friends there or aren't into kink. In Home's case, the long loading times (worse than other PS3 titles) don't help, plus the fact that it's basically a platform for Facebook-style social games where you play as yourself. Plus the fact that it's only on one game console, and isn't that heavily promoted. All of these factors limit Home's audience.

What Home does, though, it does better than Second Life IMO. Even if you toss out Linden Lab's marketing and take SL for the 3d modeling chatroom it is, it's just plain incredibly clunky to use. You have to really be captivated by it to even learn the basic controls. Whereas with Home, you can pick up a controller and play immediately if you can stand the long loading times. I just wish they'd tell people "you can use USB keyboards" when they log in, because one of my friends didn't know that.

Home's biggest limitations are that, from a player's point of view, it's tied to the PlayStation 3; and from a developer's point of view, it's tied to Sony. You need to be a Sony-approved developer, and pay a few thousand dollars for a dev kit. It's not like SL where anyone can jump in and start designing outfits. And while it's also not a griefer's paradise (with a large red light district) like SL is, there's still a lot of harassment in it.

PlayStation Home: Of the devil?

In the Free Software community, we might say that Home is immoral because of how proprietary it is. Tying your stuff to one platform and company is only one way to limit freedom, though, and Home seems to empower both users and developers in ways that (for instance) OpenSim doesn't. Partly because of the network effects and built-in PS3 audience, but also partly because that's what it was made to do, was be simple and widely accessible.

Learning to write GNOME applications, I was struck by how basic it seemed at its core. That a few lines of code, in a simple language, could create an elegant app. I just had to go through a lot of IMO unnecessary work in order to find out how to make that happen to begin with.

I documented what I learned, with the help of my mentor, but it hasn't been nearly enough. I want the best Free Software desktop to also be the most accessible to novice developers, even those who just want to write apps and aren't interested in "contributing to the community." Because requiring someone to be an established C guru, who fits in on GNOME IRC, in order to start writing apps isn't really that different from Sony's gatekeeping. Not from the perspective of someone who wants to create something and hasn't a clue where to start.

Let's make things better

If anyone's interested in contributing, this page explains how to get started hacking the developer docs, while this page outlines where I want to go with JavaScript's. I don't have a lot of free time to work on it in between using my limited spoons to deal with depression and transitioning, but I'm trying to document things that occur to me, and I'm open to hearing suggestions.
jewelfox: A portrait of a foxgryphon with a beak, black fur, magenta hair, fox ears, and a neckband with a large jewel on it. (Default)
My GNOME Outreach Program for Women internship is now over. My project was the JavaScript app developer documentation. When I started, it was woefully out-of-date and incomplete, and extremely poorly organized.

So how is it now?

Still really bad, in my opinion. Especially compared to Apple or Android's developer docs.

You can see, on the page I was working on, the beginnings of a curriculum. It tells you what you need to do to get started, and then starts to walk you through GNOME app development before giving you lots of code samples for specific widgets. But there are some experiments and approaches I took that I think were questionable, like the Switch widget example that covered AboutDialogs in more detail than Switches, or the starting lesson which jumps straight into Webkit.

When I started this project, I knew things had to be better but I didn't fully know how to get there. I used a lot of trial and error, writing code sample after code sample and refining my approach in each one. After attending the Open Help conference and sprint, I had a much clearer idea of where to go, and you can see the outline for my "App Guide" project on the live.gnome.org wiki.

I hope to complete the first draft of this guide in time for the next round of Outreach Program interns, and I hope to become a mentor for some of them. Whether they're working to improve developer docs, or writing their own GNOME apps.

Taryn's take on the Outreach Program

It was one of the best experiences of my life. It was confusing and frustrating at first, especially once I found out that GNOME app development wasn't as simple as I'd been led to believe by the existing tutorials. But I found my footing quickly, I think, even if that involved asking a ton of questions on IRC.

The parts that I'll always remember include all the technical triumphs, the encouragement from my mentor and the other interns and people involved in the program, and meeting up with people at Open Help. And in the #gnome-women IRC meeting where we gave feedback on the program, I said that one of the best things about it was how open-ended it was, because of how it let me understand the problem and approach it in my own way.

Since then, though, I realized another big thing about the program that helps make it successful:

Money

We've probably all seen the research on what motivates us, and how money is not a big part of it. But you know who's really motivated by money? People who don't have enough.

Women, disabled people, gender and sexual / romantic minorities, ethnic and cultural minorities ... all these groups are more likely to have a hard time making ends meet financially. And the opportunity cost for them to volunteer for Free Software is a lot greater than it is for a white, abled, male, non-queer hacker, who's being paid a decent salary and has health insurance.

Just as an example, the time I spent dealing with autistic shutdown and widespread intolerance, and trying to explain feminism 101 concepts to deter trolls from attacking me and others, are all things that most hackers don't have to deal with. They're practically a second job for many ... to say nothing of the women who are still expected to be the primary (or sole) caretakers for their children.

The Outreach Program's $5,000 payment is barely enough to maintain a minimal first-world standard of living over three months. But for me, it was more than enough. I was finally living my dreams, and being paid to work on what most excited me. And I could set aside other work that I didn't have the spoons (emotional energy) for, so that I could concentrate on this.

One of the reasons I'm going to continue working on GNOME is because I'm hoping to sell the App Developer's Guide as a Creative Commons-licensed book, and make some money from it. I'm hoping that once "GNOME OS" becomes more widespread, more people will want to learn to write apps for it, and that this guide will be there for them.

But another huge reason is because, once the problem of "how do I pay rent and buy food?" was taken care of for a few months, I saw how much I loved being a part of the GNOME community and helping with my part of it. So that stipend provided the activation energy for what will hopefully become a chain reaction, as I mentor other women who may go on to help others in turn.

I'm hoping to show them that they can be a part of GNOME too; that GNOME needs them, and that they can have fun contributing to GNOME. And while it may seem vulgar to talk about if you're explaining the program to people who don't need the money, as someone who's been there that stipend really helps sell the program to people who do.

Wrapping things up

Many thanks to the GNOME Foundation, Google, Mozilla, Collabora, the Free Software Foundation, and Red Hat for sponsoring my internship. I had a lot of fun with it, and I hope I made (or am) something that's worth it.

Many thanks to my mentor, Tiffany Antopolski, for answering so many weird questions and doing so much work to find out how to make the JavaScript code work right, especially for her version of the "Hello, GNOME" tutorial which hasn't gone live yet. Seriously, she went the extra kilometre, especially since mentors aren't paid.

Many thanks to her, Radina Matic, and Marta Maria Casetti, for being extremely supportive either on my journal or in person at Open Help. I needed a lot of encouragement and reassurance, and it was an amazing feeling to be validated and accepted there. If I'd known this would happen, I would've tried to raise money to go to GUADEC too somehow.

Many thanks to Shaun McCance for running the Open Help conference, and to him and Ryan Lortie for answering my questions there and helping me figure out what the App Guide should cover. Also just for being awesome. You guys rock.

Finally, many thanks to Marina Zhurakhinskaya and Karen Sandler for running the Outreach Program, and to Karen for helping make it possible as the GNOME Foundation's Executive Director. This may be the most welcoming Free Software community for women (including trans women) that I know of, right up there with Dreamwidth.

Here's hoping, and helping, that it just gets better from here.
jewelfox: A portrait of a foxgryphon with a beak, black fur, magenta hair, fox ears, and a neckband with a large jewel on it. (Default)
So I stayed for the rest of Open Help, and am glad I did.

The technical aspect

I did a lot of brainstorming. It looked like this, and was apparently a thing of awe.

A whiteboard covered in detailed, individually-numbered, colour-coded notes, describing a series of GNOME JavaScript developer tutorials.
(Click here and here for detailed closeups.)

Letting my mentor Tiffany Antopolski have access to my computer resolved some annoying problems with git very quickly. Talking to Shaun McCance about Mallard (and getting his printed cheat sheet) gave me a ton of ideas for ways to format tutorials. And being able to talk to him and Ryan Lortie in person at the same time really helped me with doing the above brainstorming, and deciding what all needs to make it into the outline for my next project: The GNOME App Developer Guide.

I feel like my whole internship was just training to write it, and learning (partly through trial and error) what's needed and why. I also feel like it needs to be written. There isn't a real starting point for people who love GNOME, and who want to write apps for their favourite platform, but who aren't highly technical insiders already. And after the past few months, I feel like I'm both qualified and motivated to write it.

Now that I have a better idea of the scope of the project, I want to have at least the first draft ready in time for the next round of the Outreach Program for Women. I want to be able to mentor people who want to write JavaScript apps; I've been helping [personal profile] ausbatlyssavirus a little bit with setting up GNOME and learning JavaScript, and she's expressed an interest in the Outreach Program, as well as the Google Code-In.

Oh, yes. I also learned that it's pronounced "guh-NOME," the same as GNU.

The personal aspect

(Warning for possible trans-related TMI and abuse survivor emotional issues.)

After writing my last post about the conference I was terrified, and felt like I'd be punished for it. I largely felt that way about it because I feel that way about everything. I wasn't prepared for the amount of support I received afterwards, including from the person whose actions partly caused the earlier post.

It felt amazing to be accepted there, especially as a trans woman. I had no idea it would be possible to go out in public in female mode without being terrified. Or how much I needed to be seen as one of "the girls," and accepted matter-of-factly as though it'd be creepy and weird to do otherwise. Even when I had to do things like present as male at first because I couldn't bring myself to wear gender-appropriate clothes, or shave before going out to eat, or stop trying to talk in a semi-female register because my voice was getting hoarse, it didn't seem to faze anyone. That helped me so much in getting over my nervousness.

Many thanks to Tiffany and to Radina Matic for helping me feel more confident (and for the free food and for signing my yearbook). I'm extremely grateful to everyone who made the conference possible. It was an experience I'd like to have again sometime.

About us

~ Fox | Gem | Rei ~

We tell stories, paint minis, collect identity words, and share them all with our readers. If something we write helps you, let us know.

~ She / her ~

Subscribe

RSS Atom

Tags

Style Credit

Page generated Aug. 20th, 2017 04:13 am
Powered by Dreamwidth Studios