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)

If you want to apply for the next round: https://live.gnome.org/OutreachProgramForWomen

You don't have to apply to work on GNOME, either. Several other Free Software projects are involved. It is a paid internship.

There's also http://sf.adacamp.org/

They close to applications tomorrow.

We applied to go and get funding assistance, but aren't holding our breath.

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)
I feel like nothing I did for them last year amounts to anything. Except for "The JavaScript beginner pages were lacking eight tutorials that are available in Python and Vala," and one person's comments on their blog (which I can't find right now) about how strange I was and how I discussed inappropriate things at Open Help.

I feel like all I did was get them to subsidize my lifestyle and my depression, and give me a stage from which to preach controversy and argue with real GNOME users and contributors. I can't believe they spent so much to ship me to another state so I could have a depressive episode and embarrass them all in public, and let me say the embarrassing things that I did on their aggregator.

I shouldn't have applied to their program, I shouldn't have promised to do anything afterwards, I shouldn't have continued to blog there when I was doing nothing for them, and I shouldn't have tried to do something so out of my league. I'm a terrible fox, and it was wrong of me to pretend to be anything else.

I deleted the tag, and filed a bug report to be removed. I should delete all the entries I posted. I'll get around to that later.

I'm sorry. I don't know how to deal with depression, and I shouldn't have made myself out to be someone they ought to bring along when I'm dealing with it. I'm also completely inept socially and very easily scarred, and shouldn't have gone to their in-person event to begin with.

Optimism

Nov. 2nd, 2012 07:41 am
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 far this week, I've managed to get two articles done every weekday. I've also been taking a ton of walks, and doing lots of cleaning and moving things around. I'm feeling better and more energetic, I got a personal project done last weekend, and I'm hoping to write more furry stuff this weekend. I've been watching a TV series [personal profile] cereus linked me to, about the time period their commission takes place in, and it's been surprisingly interesting.

I relocated most of my things to the bedroom, which was going mostly unused. It doubles as my office now, and there's something strangely reassuring about having a lot of screens and games and electronics around me. The ThinkPad Edge [personal profile] aliaspseudonym got me came in late last week, but it has a cluster of dead pixels on it, so I'm sending it back in to get serviced. Once it comes back, I'll use an HDMI cable to plug it in to the 19" display I'm currently using for the PS3, so that I'll have even more space to work with for writing and programming ... and FFXI, of course.

It's a very nice computer. >_> It's lighter than the 12" iBook I loved, and almost as streamlined and awesome. It's almost as big as my current laptop, but much more solid and professional. Plus it's extremely powerful, by my standards, and the 16 GB solid-state "cache" drive makes a perfect spot to install GNOME on and have it boot up in 10 seconds. I'm trying out Windows 8 also, and I really like it. Am considering writing apps for it, since you can use JavaScript and HTML. Want to continue working on GNOME though ... apparently, the Outreach Program is starting back up in January.

Starting to think about how I want to decorate my personal area. Looking at lots of people's workspaces, and collections of anime memorabilia. Not sure what sort of things I want to have, or how many. Right now I have a small sampling of all sorts of things that've interested me, from New World of Darkness RPG books to PSP UMDs. I got a set of card sleeves for my Magic cards, which have a very nice design IMO ... they may be the "girliest" thing that I have right now, and I'm surprised that I was okay with getting them at the store and wasn't afraid or hesitant.

Now to see if they have the bright magenta dice I wanted, at the game store today. I'm also thinking of playing a character(s) inspired by the card sleeve design, at Pathfinder Society. Wish us luck!
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.
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)
In my last entry, I asked a few questions about the New GNOME User experience:
  1. A novice programmer learns to write GNOME apps. What does she do? Where does she go? When does she give up in frustration?

  2. A GNOME user notices an error in the documentation, or a bug in an application she uses. How does she correct it? How does she find out how to correct it? How far out of her way does she have to go to correct it once she finds out?

  3. A GNOME enthusiast wants to ask a question, or share something she's learned with her friends. Where does the conversation happen? What medium does it use? Whose needs was that medium designed to meet, when?
Let's look at a hypothetical scenario for that first question, to get an idea of the kinds of challenges new application developers face.

Goal: Learn to write apps

This hypothetical person knows what an app is, that people called "developers" write them, and that she can use her distro's package manager to get them. She may have dabbled in HTML, but she doesn't know how to program beyond that. It's only now that she's decided she wants to learn, because she wants to write an app for her favourite platform. She's not interested in "contributing to GNOME" beyond that ... yet.

  1. Start on gnome.org. Oh, hey, there's an "Applications" option right there. Let's click on it.

  2. It's talking about "the great applications that you can use on GNOME", but doesn't say how to make them. Maybe "Get Involved" says something about it?

  3. That talked about "contributing code," which sounds sort of like writing an app. It linked me to the GNOME Love page, but this is talking about mailing lists and patches and IRC and stuff. It says there are a few tutorials, but they're all years out of date. Oh wait, it says something about a "GNOME Developer Center". Is that what I want?

  4. It has a carousel of shiny "10-minute tutorials," which looks reassuring. The text underneath says I need to download developer tools to get started. But the page for that stumped me. I got the Software Centre to install Anjuta, DevHelp, and Glade like it said, but which is my "favourite programming language"? How do I know? Who's going to tell me which one is best or where I can learn it at?


If our newb is especially perspicacious, she may just pick one at random and go from there. Or she may do like I tend to do and spend hours reading comparisons between each language. Either way, she's hit a speed bump, if not a brick wall, and it took her awhile to figure out how to get here.

If she does click on one of the 10-minute tutorials? This is what she'll see, no matter which one she picks. Even if the carousel worked, the tutorials aren't sorted by programming language. She might've settled on Python, only to find herself faced with C.

Questions:
  1. Why doesn't the Applications page have a link to our Developer Centre? Outside of the one in the footer. Do we assume that nobody visiting gnome.org wants to learn to write GNOME applications, or that everyone who wants to already knows how?

  2. Why do we assume that newbs already have a "favourite programming language?" Are we wishy-washy about recommending one to beginners, or do we assume that there are no beginners consulting our Developer Centre?

  3. Why do our tutorials suggest installing Anjuta and Glade when they simply don't work with the latest GNOME technologies? JavaScript can't be debugged in Anjuta, and Glade doesn't support ApplicationWindows, IIRC.


I feel we could do a lot better here, and I'm open to suggestions for what I can do. Personally, I feel that the biggest change we can make beyond modernizing our tutorials would be a direct link to our Developer Centre from the Applications page. Even if someone didn't go there wanting to learn to write apps, we can put the thought in her head that "Yes, you can do this if you want to," and she'll be more likely to take a closer look.

Feel free to discuss in the comments! If you don't have an OpenID to leave a comment with, I can be reached @jewelfox on identi.ca.
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 is in response to Benjamin Otte's post, which I thought was extremely insightful. It both voiced some concerns that I have, and validated them. I recommend reading the comments as well, as there are a lot of interesting perspectives there.

What is GNOME, and what is its future?
In fact, these days GNOME describes itself as a “community that makes great software”, which is as nondescript as you can get for software development.
Agreed.

I was trying to think how I would describe GNOME to anyone. How do I explain to a non-technical user what a "desktop environment" is? I've been telling most people I'm "working on Linux," even though I love the GNOME project and want it to succeed. I'm just not completely sure what it's supposed to be succeeding at.

I found that commenter Richard Brown summed up my feelings about GNOME, however, when he said
GNOME 3 is a fine choice for a developer/techie who wants a clean, clear UI with minimal distractions (a role I personally think it excels in)
And this is why I choose GNOME over Unity, or any other "desktop environment." I like things that are simple and clean. I like having few distractions or annoyances. I love GNOME 3's direction, and I fully support it and want to help people make awesome GNOME apps that take advantage of its new features.

Which is why I take things like romu's comment as personal failures:
I’m looking at how I can develop Gnome apps. My preference comes to Javascript because if I don’t really love its too free syntax, it seems an ubiquitous language.

I’ve read all tutorials on the Gnome Develop web site. And know, I’m at the point where I don’t even know how to write the code to just create a simple text file. So I’m trying to digg into the Gnome source code to get some examples, but honestly, I’m getting close to give up. Unfortunately searching the web doesn’t work as there is too few very simple tutorials for Gnome which covers a wide range of use cases.

Another comment from a developer point of view, is the lack of a good development environment. I’m not a big fan of M$, but just consider how you can make a simple working “hello world” windows app with 3 mouse clicks ! Making possible to write apps in Js with GJS is a step forward to ease the Gnome dev, but Anjuta doesn’t support Js debbuging (I failed trying to make it work), and Gedit, even if simple and stable, lacks some modern IDE features.
Those are the docs that I'm trying to work on. They're still not complete. We're at the halfway point now, and a lot of the code samples are documented, but there's still a ton of work to get done and until it's finished, people like him are going to be left out.

But while I feel personally responsible for this, I also feel that the GNOME community at large does not place outreach as a high priority, awesome internship programs notwithstanding. And I feel that this is largely because we don't understand -- or value -- other people's perspectives.

Some people, like romu, still make fun of "Micro$oft." But there was an article in Vanity Fair about "How Microsoft Lost Its Mojo" that we may ought to pay attention to:
Sometimes, though, the problems from bureaucracy came down to a simple reality: The young hotshots from the 1980s, techies who had joined the company in their 20s and 30s, had become middle-aged managers in their 40s and 50s. And, some younger engineers said, a good number of the bosses just didn’t understand the burgeoning class of computer users who had been children—or hadn’t even been born—when Microsoft opened its doors. When younger employees tried to point out emerging trends among their friends, supervisors sometimes just waved them away.
Here in GNOME, I feel our division isn't between old and young. I feel that it's between established desktop Free Software users, and people who have grown up in an entirely different computing world but want to contribute to (and use) Free Software. And when they try to do so, there's an enormous culture shock, because the desktop Free Software world right now is set up to meet the needs of a very specific audience -- and, in many cases, only that specific audience.

Earlier on Identi.ca, I lamented the lack of a decent Free Software notetaking app that would sync between all my devices. In response, one of my friends suggested using emacs and orgmode, and waxed enthusiastic about how "Since it's plaintext, [it's] easy to sync between laptops via git!" In short order, he revealed a number of assumptions that I feel are common in the Free Software community:
  • "Syncing" is something that happens between laptops, not between desktop and tablet computers and smartphones.
  • Recommending the use of emacs and git to solve a particular problem is a reasonable solution.
  • Recommending the use of emacs and git to solve a problem that most people would use a dedicated, well-maintained, thoughtfully-designed application for is also a reasonable solution.
I feel that the vast majority of potential contributors are discouraged from participating by assumptions like these. Which insist on a high degree of technical knowledge and a high tolerance for frustration in order to contribute to or enjoy Free Software ... on the desktop. Which is one reason why the hackers and idealists inside much larger and healthier Free Software communities, like Mozilla's and WordPress', largely use Macs.

Likewise, romu was looking for a modern IDE and developer tutorials -- prerequisites for almost any new developer. But there simply aren't any. There haven't been for years. Anjuta hasn't kept up with the times, because "everyone" using console mode text editors. And the tutorials haven't kept up, because "everyone" knows how to program already and is comfortable looking at source for "documentation". Is the impression I get.

Is there hope for us?

The reason I like GNOME 3 so much is because it's a radical, modern redesign, that takes into account the best practices that have been learned and demonstrated by Other Popular Computing Platforms (without aping them shamelessly). It's clean. It's simple. It's beautiful. It's something to get excited about.

But I feel that as long as we're making the desktop more accessible -- to the impaired, to people from different cultures, and to people with low tolerance for frustration -- we should also make the community itself more accessible to such people. If anything, I feel that this should be a higher priority for us, especially after we've lost so many who were displeased with GNOME 3's direction.

We should be asking ourselves things like
  • A novice programmer learns to write GNOME apps. What does she do? Where does she go? When does she give up in frustration?
  • A GNOME user notices an error in the documentation, or a bug in an application she uses. How does she correct it? How does she find out how to correct it? How far out of her way does she have to go to correct it once she finds out?
  • A GNOME enthusiast wants to ask a question, or share something she's learned with her friends. Where does the conversation happen? What medium does it use? Whose needs was that medium designed to meet, when?
Because as someone who's just getting started in the GNOME community, even after years of using it on my personal desktop, it takes a lot of frustration and dedication to learn how to use mailing lists, IRC, git, Bugzilla, and other such things. Everyone seems to assume I know something I don't, and everything from the plaintext interfaces to error messages like "Zarro boogs found" sends me the message that I don't belong here. Or that I only do if I'm willing to put up with frustrations and cultural assumptions that I wouldn't have to, if I wanted to channel my passions in a different direction, or even into a different (web-based) Free Software project.

I'm working to change this, because I believe in GNOME. I'm trying to improve the JavaScript docs for the next romu. What can you do? Who's being left out, and how can we help them?
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, the good news is that once the GNOME Outreach Program internship ends on August 20, I'll have even more free time than usual on my hands to work on personal and furry / otherkin related projects.

The bad news is that it's because the Major News Site cut my hours, so to speak. So I have the choice between simply writing fewer articles (leaving [personal profile] rev_yurodivy and me with about a $500 shortfall every month), working much harder for less money, or finding something else I can work on that people are willing to pay me for.

Obviously, I'd prefer the latter. So, what are my options? Or perhaps a better question would be, what do you all (and your friends, and your friends' friends) want me to do?
  1. I could go back to writing stories. I stopped doing this last time because I couldn't be [personal profile] feathertail anymore, because I lost momentum, and because of a kind-of-creepy commissioner. But some of the comments and emails I've gotten since then have made me feel terrible, and I know some of my otherkin readers have been interested in my writing.

    I'd have to charge close to $100 for a story, if they are as long as my old ones. But I think this is something that I could do, if the themes were close to my heart.

  2. I could start working on the fursona project and the RPG in earnest. Like I said, this internship has made me a lot more confident, and I have ideas I'm dying to try out and share with you all.

  3. I could publish an ebook. That could be a book of my stories (new or old ones), an RPG book, or even a book of the tutorials I'm writing for GNOME -- they're under a free culture license, and I really want to see them made into a book regardless.
The thing is, I don't have much time to experiment. I need to start taking donations, preorders, Kickstarter funding, or something like it as quickly as possible once I'm done working for GNOME. I can work on these projects right now, some, so that I can hit the ground running, but once I'm finished I really need to make up for lost earnings.

So please, please tell me. What do you want me to do for you? What do you think I should do, for furry- and otherkin-kind? Which of my projects are you most excited about, and would donate or buy or tell people about?

I'm listening. We both are.
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)
What I proposed creating in that last entry is basically a prototype of the fursona creator. The one I make will be written in the same language, but will be for the web instead of GNOME, so anyone reading this should be able to use it.

My internship with GNOME has been a lot of help in boosting my confidence in my programming skills. I'm excited about finally making these things happen.

In other news, I recently started playing Final Fantasy XI Online again, after trying out their 14-day demo and then buying the full game for like $12. And a controller so I can play it the way that it's meant to be played. >.>; [personal profile] rev_yurodivy, [personal profile] aliaspseudonym and I have been having fun running around Lakshmi server, and anyone who wants to is welcome to join in.
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)
GNOME's developer website is shiny and ambitious. There are a variety of "10-minute tutorials" available for each programming language which GNOME supports, which let you do fun activities like create a guitar tuner or messageboard. And a "Beginner's tutorials" section for each language contains useful code samples, which show how to implement many Gtk widgets.

There are a few problems with the existing docs, though.
  1. They're out-of-date. Many, if not all, of the existing 10-minute tutorials for JavaScript are in need of editing. The guitar tuner one even has a terminal command randomly sandwiched inside the text (yelp-check validate *page). More than that, the code is outdated because of how GNOME JavaScript development has advanced in the last couple of years.

  2. They're incomplete. Each 10-minute tutorial does a good job of explaining the basics of one aspect of GNOME development, like using Gstreamer for audio or Libsoup to pull things from the web. But none of them answers the question "Where do I go from here?"

  3. They're disorganized. Shaun McCance explained to me on IRC that the current developer page was a project at a 2010 hackfest, which never got completed. So the pictures of each tutorial don't link to the actual tutorials, and there's no clear starting point.
Tiffany Antopolski has some plans for redesigning the site at this year's OpenHelp hackfest, which I will hopefully be helping with. That should take care of the "disorganized" part. In the meantime, here's my idea for how to fix those first two points:

A complete modern JavaScript tutorial

It will have a clear beginning point, which will assume only that you know the basics of JavaScript programming and using GNOME. From there, it will teach you how to get started with writing for GNOME, and will show you how to build a complete, functional application, step by step.
Sample application: "Persona Creator"

This application lets you create, collect, and organize people's "Personas," or personal profiles. If you've ever played pen-and-paper roleplaying games, think of your profile as like a character sheet for your involvement with GNOME, or with free culture and software in general.

You'll have an avatar icon, a "class" that shows how you contribute, and "attributes" that explain things like what applications or programming languages you use the most. A personal quote and bio will let you tell the world what you're up to, and built-in sharing features will let you send your profile to your instant messaging contacts, publish it to your blog or journal, or create a messageboard signature based on it.

Ideally, this would tie in to the Contacts application somehow. It's not necessary, though, and either way it'll be a fun project that will show people how they can express themselves using code.
Here's a tentative lesson plan:
  1. Hello, GNOME! Explains how we're going to build GNOME applications with JavaScript, and shows you how to get Gedit and Terminal set up for coding.

  2. Your First GNOME Application: Explains the basic boilerplate code that you'll use for each application, and walks you through creating an ApplicationWindow containing a Webkit view with a JavaScript web app inside. This is so people who are used to web programming can have an immediate starting point.

  3. Going Native: A multipart chapter that shows the basics of how to use native GNOME widgets and concepts, including:

    • The application menu

    • Modal dialogs, including MessageDialog and the AboutDialog

    • Buttons, Labels, and other basic UI elements

    • Toolbars with tooltips

    • The TreeView widget and underlying ListStore

  4. Keeping Things Organized: How to use Libgda to store our profiles in an SQLite database.

  5. GNOME Live, Starring You: How to use Gstreamer to capture input from the webcam and microphone, as well as to play back sounds.

  6. Sharing Is Caring: How to use Telepathy to send our profiles to instant messaging contacts (as well as receive theirs), and Libsoup to publish them online.

  7. Making It Shiny: The basics of Clutter animations.

  8. Packing It Up: How to use autotools and create a complete application, along with links to guides that explain the basics of packaging for various distros.

  9. BONUS: How to Write GNOME Shell Extensions: The other thing you can do with JavaScript!

  10. BONUS: Git-ting Involved With GNOME: A very basic overview of sharing your code online and checking out others', with links to more detailed tutorials.
As an appendix, the tutorials would contain the detailed code samples that Tiffany and I have already been working on. Another possible "bonus" tutorial would explain how to use Glade to visually design the UI, with a quick discussion of the pros and cons of doing so.

These new tutorials will be added to the "Beginner's tutorials and samples" page with the code samples, for now, and at OpenHelp we can decide how exactly everything ought to be arranged. I may need to help with modernizing the 10-minute tutorials some, which would also help me to understand the libraries used in them.

Anyway, I'm open to any suggestions, concerns, or offers to help!
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)
Project

Make GNOME's JavaScript developer docs so awesome, a Girl Scout with basic knowledge of the most popular scripting language on the web can learn how to write her own applications with them.

Progress

First off, to give it some context I wrote a short intro on our beginner page, explaining what JavaScript is and how to get started with it.

Second, so far I've been working on code samples, each one documenting a specific Gtk widget. You can see a list of the ones that I and the other interns and mentors have done so far on our wiki page, although it doesn't include a few that I've submitted but that haven't been approved yet. Fellow intern Marta Maria Casetti is way ahead of me with the Python documentation ... I'm trying to keep up! Tiffany Antopolski, my mentor, has helped a lot, including by writing a few of the code samples so I'd have a starting point.

One thing Marta and I have been trying to do is make the code samples more interesting. Here's an example of a code sample I got a little creative with! Not only does it give an intro to the Creative Commons, it goes beyond a basic "switch" example by showing how you can use multiple switches together. I've found that by figuring things like this out, and how to lay out windows to accomodate them, I've been learning a lot about application development.

Challenges -- Short term

First off, the current JavaScript documentation ranges from "barely adequate" to "nonexistent," as I lamented in earlier posts. As near as I can tell, most of the knowhow that goes into things like GNOME Shell and GNOME Documents' JavaScript code is passed on by word of mouth, and/or by accomplished C hackers looking at Gjs' code. Several times in the last week I was completely stumped and had to ask for help on IRC, all on the same code sample.

Second, while JavaScript seems to be basically a first-class "native" language on GNOME, it seems to be somewhere between C and Vala in terms of how complicated and verbose it is for writing GNOME applications. I'm not entirely sure what the pros and cons are for using it versus Vala and Python, aside from Python having a bigger memory footprint and JavaScript being more universally familiar (as well as being more useful for extending GNOME Shell).

Third, I'm concerned about how much of it will have to be rewritten if and when Anjuta and Glade catch up to modern Gtk widgets, like the ApplicationWindow. Because it seems like they've lagged behind for ages, and yet at the same time I'm told they're supposed to be the preferred development environment for GNOME.

I'm given the impression that most "real" GNOME hackers use Emacs or something, and I personally suspect this to be a big part of the reason there aren't many GNOME app developers. At any rate, I'm probably going to assume that readers are using Gedit for development until and unless something changes.

Challenges -- long term

Even once the documentation's complete, I'm not sure how anyone will ever find it. Here's GNOME's developer website; what's your guess for how to get to the tutorials I wrote? Did you know that none of those "10-minute tutorial" screenshots actually take you to the corresponding tutorial if you click on them? Even once you click on JavaScript, assuming you have any reason to prefer it, you've got one option that says "Beginner tutorials" and four others that are beginner tutorials.

Where's the obvious starting point? Does our 14-year-old Girl Scout find out how to write apps, or does she walk away in frustration? In a lot of ways I think Ubuntu's developer site has the edge when it comes to "getting you started writing stuff for the platform"; ours is basically a tech demo at this point (albeit one with a cleaner and more attractive design). I'm not sure what an overhaul would look like, but if anyone wants to collaborate on this I'd love to help, mostly because I want someone to actually read what I write. I feel a strong sense of ownership for the JavaScript docs, and I want them to shine.

Plans

First off, finish the code samples, including re-writing some earlier ones to update them.

Second, start writing a series of actual tutorials you can take in order, to learn how to develop GNOME apps. They should build on each other, and be fun and engaging and not assume you know anything more than some basic JavaScript knowledge, although they can link to the code samples.

Third, develop an actual GNOME game or app of some kind, that uses libraries like Telepathy, and work its development into the tutorials (i.e. teach people how to make it).

Beyond that, it'd be great to cover internationalization and accessibility throughout the course and the samples, and to have a guide explaining how to create GNOME Shell extensions. Carlos Sorianno started an attempt at this, and I'd like to polish and add onto it (if nobody else beats me to that).

I also need to apply to the GNOME Foundation for financial assistance in order to attend OpenHelp.
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)
We're in something of a Linux gaming renaissance right now. Not only are a lot of games browser-based, like the EA games featured in the Ubuntu Software Centre, but the Humble Indie Bundle proved that making your games cross-platform is worth it. Add to that online stores like Desura -- basically cross-platform Steam for indies -- and Gameolith, and gaming on Linux is better than it was during even the Loki era.

(Goddess, I wish that I'd picked up Sid Meier's Alpha Centauri for Linux back in the day.)

The app situation on GNOME, though, isn't nearly as good. We've got some shinies, but we don't have that many, and we certainly aren't getting bundles of them every few months. As someone who's trying to empower application developers by writing tutorials, this concerns me. Who's going to read what I write, and what are they going to make with it? Most importantly, when do I get to use their apps?

Developers don't rush to new platforms

That's the name of an essay by Marco Arment, developer of Instapaper for iOS. In it, he sums up the reasons why iOS took off like a rocket:
  1. Dogfooding: We use iPhones ourselves.

  2. Installed base: A ton of other people already have iPhones.

  3. Profitability: There’s potentially a lot of money in iPhone apps.
All three of these factors converged to create the Linux gaming renaissance. Live CDs and dual-booting made it easy for game devs to experiment and gain familiarity with Linux, and distros like Ubuntu (which pushed brand awareness and ease of use above all else) elevated its public profile. Partly thanks to that, the installed base for desktop Linux is now higher than it's ever been; and by showing their profits from each platform right on their homepage, the Humble Bundle crew empirically demonstrated #3.

As far as I can tell, though, most of the above does not apply to most Linux distros. The one which comes closest is, again, Ubuntu, partly via aggressive promotion of existing GNOME developer tools and the promise of exposure through its Software Centre. Beyond that, though, Quickly and Launchpad also combine to create a packaging environment that -- while unattractive to git veterans -- is apparently easy for newbies to learn. (Which, Ubuntu's focus on newbies is probably another reason why Python's the language they push the hardest on developer.ubuntu.com.)

This is all well and good for Ubuntu, but I personally like GNOME 3 better than Unity and I like Fedora's implementation better. I'm guessing most of those reading on Planet GNOME are with me on at least the first part of that.

So, what can we do to help get apps written that use awesome GNOME technologies?

Lower the bar to entry

One reason things like Desura are so important is because "packaging", from what I've gathered of it, is a chore. Extra work that you do to make sure people can use your app, which you then have to repeat for each distro. Not only does this favor more popular over more focused distros, thereby creating a winner-take-all feedback loop, it also creates extra work and confusion for devs, who already have five different languages to choose from in GNOME documentation and no clear guide for which one they should use.

You'll note that in the case of Linux gaming, the biggest first step was bringing in enough newbs for the market to matter. But the assumption behind most of our docs seems to be that readers won't be newbs, and will have a clear goal in mind ("I want to contribute to X project which I know uses Y language") when visiting. We assume they're familiar with IRC and mailing lists, that they know how to use git, that they have a high threshold for frustration (which is implied in that last item), and that they're comfortable browsing source sometimes in lieu of documentation. We also assume they're console fans who use Emacs or Vi; or at least we seem to, since Anjuta and Glade (our more newbie-friendly dev tools) don't support the latest GNOME widgets yet.

But by acting on these assumptions, we boil our developer base down to only the people exactly like that. We leave out the Girl Scouts, the 13-year-old whiz kids, the hackers of tomorrow who have no idea that they, too, can write apps. And who aren't being taught, because we think they're too short to ride and that's apparently how some of us like it. Like the commenters on Máirín's blog entry linked there, who "don’t want incompetent users [sic] life made easier" and who -- bless their hearts -- think that the reason they themselves are competent is because they're just awesome like that, as opposed to because they fit the narrow profile of the kind of person who thrives in their "meritocracy."

(Let me know if I ever use that word outside of scare quotes, BTW. If I do, it was a mistake.)

Piggybacking to success

Making GNOME development more accessible (and fun!) for newbies is what I and some of the other interns are here for, although you're totally welcome to help if you like and there's a whole page set up with instructions.

Beyond that, I mentioned Desura but what I'm really excited about is the Mozilla Marketplace, which is going to be the "app store" for the Firefox browser and Boot to Gecko devices. The web is the world's biggest and most awesome open-source platform, and GNOME's browser, Web, already has an app mode, plus GSOC intern William Ting is working on building in Firefox Sync. I don't know if non-Mozilla browsers will be able to access the Marketplace, but it seems like integrating it into Web would be a logical next step.

The Marketplace is possibly the most democratic of all existing "app stores." It's like the Identi.ca to Apple and Google's Twitters; the code's open-source, and anyone can roll their own. Hopefully, it will be seamless for people to buy apps from anyone's store, using their Persona.

Something like that for GNOME apps, where it's not tied to one distro and it's easy to submit your own apps, would be an awesome idea IMO. In the meantime, having access to the Marketplace will still help; and if any of those web developers want to bring their JavaScript expertise to the world's coolest (and best for web dev!) open-source desktop, I'll have the docs for them.
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)
The comment section on Danni's post is the reason that certain Free Software communities look like this. (Three cheers to the one woman that they got to stand in front.)

I agree with Michael Meeks that policies like GUADEC's should be explicit in saying what behaviors are prohibited. Because when "freedom of expression" is considered a sacred right, at all times and in all contexts (not just when it involves government censorship), you boil your community down to a very specific group, which just happens to be the one with the fewest PTSD triggers and the most privilege to ignore or walk away from potentially hurtful situations.

Then you end up having to do huge and expensive initiatives to get anyone from the other half of the world's population to even want to show up, and when they arrive they get treated to ablist insults and ignorant rehashings of old arguments, just for pointing out the need for policies against harassment. Because while nobody thinks they're a jerk, everyone's used to an environment that's hostile to women and LGBT people, and literally doesn't know how their words and actions help to create that environment. Sort of like how just because you think that your code will compile, it doesn't mean that it actually will, especially when you're working with a language and processor architecture that you're not used to.

This then has the side effect of people in that group not having any idea what it's like to be genuinely discouraged about trying to become part of that group, or how their behaviours affect others. Which is why discussions which feminists, allies, and others have already had many times and worked out best practices for have to be thrown away and rebuilt in ignorance, instead of actually building on their code base and finding ways to reach out and be even more inclusive of even more potential contributors.

(As an aside, that's why the JavaScript developer docs are the project I care most about. Because I personally need them in order to write GNOME apps, and I can only imagine how many others there are out there who'd be doing so right now if they had any idea how or where to get started.)

No one here wants to be jerks. We all want our code to compile, and our words to be well-received and cause actual discussion instead of PTSD triggers. With that in mind, here are the "developer docs" for that:

Finally, a word about "political correctness."

I once heard that any time you hear the word "drama" being used to trivialize interpersonal conflict, you should substitute the word "conflict" in your head and see if it still seems so silly. Let's try replacing the phrase "political correctness" with "giving a crap about others" and see what happens.
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)
To recap for those who are just now reading Planet GNOME or who don't subscribe at all, today Michael Meeks wrote:
Fair enough getting aggressive against stalking, groping and such horrors; but encouraging censorship of "offensive" verbal comments related to sexual orientation, religion etc. looks like a persecutors charter in the making. What is offensive ? and to whom ? the fear being that -very- quickly such good aspirations slide from "applied common sense" into a militant denial of a basic right to reasonably critique others' world-views.
This was in response to a section of the GUADEC (a GNOME users' and developers' conference) attendees' policy which said:
Harassment includes offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, unauthorized or inappropriate photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.
Danielle Madeley has already written about this from the perspective of a woman who has experienced sexual harassment, and linked to the Geek Feminism wiki's conference anti-harassment policy resources.

If I understand Michael Meeks' comment correctly, it sounds like he's on board with rules forbidding sexual harassment. What he seems to be concerned with are rules forbidding "'offensive' verbal comments related to sexual orientation, religion etc." This is consistent with the time in March that he wrote in support of a Planet Mozilla blogger, Gervase Markham, who wrote a post to Planet Mozilla asking people to sign a petition against marriage equality for same-gender couples in the UK. Meeks wrote:
Unamused to see Gerv getting duffed up for being different; apparently 'diversity of opinion' is proving unexpectedly hard to embrace in some parts of Mozilla land.
I'd just like to say that I have some experience with getting duffed up for being different.

A few days ago, the driver of one of the city buses asked me and [personal profile] rev_yurodivy if we were married yet. After they said no, we weren't, the driver told us that if we weren't married we'd go to hell.

I let her know that I didn't personally care where we ended up, and that I was just grateful that we could get married in this state.

On the bus ride back home, we got treated to a fifteen-minute yelling rant about Jesus, and Hell, and salvation, and how the fires of Hell burn seven times hotter than something-or-other. I didn't catch all of it, because I was turning up the volume on my noise-canceling earbuds and waiting for it to be over. Because I'm poor, and I don't have a car, and I need the drivers' help to load our portable shopping cart using the wheelchair lift, and I'm afraid that they'll stop if they decide they don't like us. Because there's noplace else we can go.

"What is offensive ? and to whom ?"

GUADEC has already spelled out its answers to these questions. Michael Meeks objects on the grounds that he has the "basic right" to persecute people for their sexual orientation or religion. And he defends people like Gervais, who make participating in open-source projects like riding my town's buses for LGBT hackers.

Well, I'm an LGBT hacker. And if Michael Meeks attends the same conference as me, I don't expect that he'll beat me, call me a tranny, or yell at me about how I'm going to Hell. But I have no idea when the next time will be that he'll post something like this on Planet GNOME, which reminds me that people like me don't belong here. I have no idea if or when he's going to raise a stink about my using the women's room at a conference, or complain about my being here as part of the Outreach Program for Women, or complain that this post constitutes harrassment of him and have me removed from the Planet. Because I don't know what he or others consider "reasonable" critique of my opinion that I have the right to exist. I just know that they feel they have a "basic right" to express that critique, to the point of being able to mobilize people politically to enforce it. Anywhere, at any time.

That's why I was afraid to even post a hackergotchi head, in case I didn't look feminine enough. Or in case my family, which basically threw me away when I came out to them as transgender, ever recognized it.

That's what being persecuted is like. That's what being afraid of being persecuted is like. That's what it's like when you've had people attack you just for existing, and you've seen people in spaces you frequent attack others just for existing, or defend those who do. You start to hide, because you don't want it to happen to you. You just want to buy groceries or write developer docs, and forget about the politics that people are waging to try to get you to disappear.

But bringing those politics into hacker spaces isn't a "basic right." They are about denying basic rights to others.

Policies like GUADEC's aren't about preventing all criticism of any kind, to the point where we can't even decide what technologies to adopt without worrying about hurting somebody's feelings. They're about respecting diversity of opinion. Instead of making ironic statements about it, that show you don't understand why people are getting mad at and afraid of those who duff them up just for being different.

They're about taking a stand against harassment of any kind, and refusing to play politics when people's lives are at stake.
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 article by the New York Times' Matt Richtel examines how computers are used for entertainment by kids of different social classes, and how much. But to me, its message is
Parents disapprove of what their children use computers for.
And the article goes on to talk about local and state programs in the United States that teach "how to apply for jobs online or use filters to block children from seeing online pornography," the former being considered an okay use of computers and the latter being considered a not-okay one.

I am personally not just skeptical, but fearful of attempts to control what children use their computers for. Because I was raised in a physically, emotionally, and sexually abusive household, and having unrestricted computer and Internet access -- and a door I could close and lock when I needed to -- literally saved my life. Until then I was trapped in an information bubble by my parents and their church, and thought I was a terrible, broken person because I didn't measure up to their standards.

Material online about free software advocacy, inclusion of disabled and marginalized people, and yes, even some erotic content, helped show me that the world outside wasn't the terrible place they made it out to be. That being different was not bad, and that I was not a bad person.


Disney's Tangled is a disturbingly true-to-life portrayal of an emotionally abusive, controlling relationship. Click here if you cannot see the embedded video.


The parent-child bond is believed to be inviolable in the country where I live, to the point where it (along with Somalia and South Sudan) is one of the only nations that has yet to ratify the UN Convention on the Rights of the Child. Any intervention parents make on behalf of their children, here, is assumed to be made out of love and a greater understanding than the child herself has. Parents are seen as heroes just for the act of parenting, and abusers are seen as grotesque villains who don't love their kids, not as parents who mis-love their kids. Or who love them but use them to gratify themselves in some way that hurts them. Or who try to love them into becoming someone they're not, and drive them to despair and suicide when they realize they'll never become that.

Whether it's meant to or not, the belief that parents can do no wrong (and that abusive parents are easily recognized) locks children into abusive situations, and shuts down legitimate pleas for redress. It empowers people like my abusers, marginalizes their victims, and gives them little or no recourse or even sympathy. They may even doubt themselves, like I did, instead of recognizing what is done to them for the tragedy that it is.

If we're going to empower children through technology -- and I consider excited kids like the one I used to be the target audience, for the GNOME JavaScript tutorials I'm writing as part of the Outreach Program -- we need to look at ways to empower them as people. We need to let them find what they want to do and are most passionate about, not assume that we know better than them right down to their choice of OS or web browser. And instead of taking their toys away, we should give them the tools to make new ones, and show them how to use those tools in a way that they understand.

With that in mind, I'd like to point out this quote from the article:
“Despite the educational potential of computers, the reality is that their use for education or meaningful content creation is minuscule compared to their use for pure entertainment,” said Vicky Rideout, author of the decade-long Kaiser study.
I take exception with the word "meaningful," there, and the implication that "pure entertainment" can't be educational. But she's right that it's much easier to use computers to play games or enjoy existing content than to create new things with them, because of how complex the content-creation tools are and how hard it is to get started with them and in their communities.

To take just one example, computer games have evolved far past the point they were at when I started playing them, where you had to read the whole manual before playing and understand advanced math to win. Today's games like World of Warcraft are enormously complex, and have entire books written about their inner workings, but are so accessible that many can just pick up and play them and start having fun right away.

What's the learning curve for the GIMP like? Inkscape? LibreOffice? GNOME development? These are all amazing tools, but the time and effort it takes to learn even basic proficiency with them remains a barrier to reaching new users and potential contributors. The biggest thing motivating me to surmount that last one right now is the thought that the work I do will help flatten the curve for others, and let them start kicking tail fast enough that they learn whether or not they have a passion for it before they burn out.

A two-dimensional graph labeled 'How fast and how far can you take your users?' The X axis is labeled 'time,' and the Y axis is labeled 'ability.' There's a horizontal 'suck threshold' labeled 'How soon do they stop hating it?' and a 'passion threshold' labeled 'How soon can they start kicking ass?' The 'good' curve quickly passes between the two thresholds, while the 'bad' curve takes much longer.
Graph by Kathy Sierra, licensed CC-NC-SA.


I'm extremely grateful to my mentor in the OPW program for helping me get started with the GNOME developer documentation project, and keep from burning out on it. And I'm extremely excited about initiatives like this and Mozilla's Webmaker, which are teaching people basic code literacy and helping increase the number of potential users of and contributors to the shared commons of free software.
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)
For those of you reading on Planet GNOME, I'm Taryn, one of the interns brought in as part of the 2012 Outreach Program for Women. And I'm in ur dev site writing ur JavaScript docs. The kind that are made for absolute newbs like me, as opposed to the detailed stuff which either assumes that you're using C or assumes that you already know what you're doing.
In the 80s, most computer users had practically no, or only basic, training on operating systems and applications software. However, software design practices continued to implicitly assume knowledgeable and competent users, who would be familiar with technical vocabularies and system architectures, and also possess an aptitude for solving problems arising from computer usage.

Such implicit assumptions rapidly became unacceptable.

-- Mads Soegarrd, The History of Usability, emphasis added
Now, I mostly do writing for a living. I've only done programming off and on, for personal projects or websites. And when I signed up for this internship, this is what it looked like to write a GNOME application in JavaScript:
#!/usr/bin/gjs

// Initialize GTK+
var Gtk = imports.gi.Gtk;
Gtk.init(null, 0);

// Create window and give it a name
var sampleWindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});
sampleWindow.title = "Welcome to GNOME";

// Connect clicking the X button to the window's destroy signal
sampleWindow.connect("destroy", function(){Gtk.main_quit()});

// Show the window
sampleWindow.show();

// Start up the application
Gtk.main();
I saw this, and my mind was blown. It was just like the books I had when I was little, where you type in the programming code on your Commodore 64 and write your own computer games. I could write my own GNOME apps, using what may be the world's simplest "real" programming language! Then I could explain what I learned to others, and pretty soon the world's awesomest free desktop could take advantage of things like Mozilla's Webmaker initiative, where they're going to teach people how to code ... in languages like JavaScript.

As I quickly found out, though, this is what a GNOME application is actually supposed to look like.

Fortunately, I have by now mostly finished panicking, and I actually understand what's going on in that and several other code samples. My amazing mentor and I are gradually figuring out what JavaScript code does what, even though there's basically no beginner-oriented developer documentation for it ... which, again, is where I come in. Theoretically, I should be better-prepared to explain this stuff to newbs since I am one myself.

Hopefully, by the end of this summer I won't be one anymore. And hopefully, those 14-year-olds learning how to write for the web will be empowered to write their own GNOME applications as well.
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)
Here's a summary of what I've learned about how to write GNOME developer documentation. I'm going to be referencing this a lot during the Outreach Program for Women internship, so I wanted to have it all in one place, preferably public so that others can read or critique it.

Update: This page contains a much better reference, and I am working on adding any unique content here to it and the rest of the GNOME wiki.

Many thanks to Tiffany Antopolski, aka mimico on the IRC, as well as the others on IRC for helping!

  1. Git-ting started

  2. How to write code samples (as listed here)

  3. Taking screenshots and showing your work

  4. Resources and links


Read more... )
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)
From Malcomb Gladwell's Football, Dogfighting, and Brain Damage (emphasis mine, no trigger warning probably needed):
Read more... )

I haven't talked about the details as much here, but I was badly abused by people I loved and trusted. More than that, my loyalty to them was betrayed, to the point that my world fell apart when I realized what had been done to me and what I'd helped with. I was asked to do things that hurt me and others, over and over again, and was guilted and shamed to the point of near-suicide for my failures ... and for being hurt by it to begin with.

When things got their worst for me in the past weeks and months, I started dreaming and wishing that something like this could happen for me. I started imagining a society where it was accepted that people who'd been through this, who'd survived this, no longer had to justify their existence to anyone. That -- like the Marines who tell Saint Peter they've "served their time in Hell" -- they were no longer asked or required to do anything, but would be taken care of the rest of their lives as an act of social responsibility.

Part of the reason I dreamed about this was because it was so hard to keep up. I tried my best to stay on top of articles, but started falling behind, and people got upset with me. But I didn't realize until I read this that there were people who actually believed in this wild fantasy of mine. Just thinking about it is causing a lot of reflection, both on what I went through and how cruel it is to make "hard work" a virtue and a prerequisite for existence ... especially when not everyone can, all the time.

I want to work hard. Part of it is because that "virtue" has been ingrained in me, to the point where I feel I am worthless if I do not. To that extent, society continues the job that my parents and church did, in exploiting my "gameness" and loyalty. But part of it is just because there are things that I want to see happen -- like the RPG site, and people becoming their fursonas, and GNOME having comprehensive and comprehensible JavaScript docs -- that I know I need to work to make happen. And when I get into working on a fun project like that, it feels less like I'm toiling to survive and more like I'm playing Minecraft.

I wouldn't want to be deprived of that, even if I were living this fantasy.

The only other thing I wanted to add is that I feel like, to the extent that people support me and care for me and help keep me alive when things are tough, I already am. Thanks to you -- and the government food benefits, and Inari helping me get my internship, and people's charitable giving paying for it -- I can go grocery shopping today without having to worry that every purchase will put me over some arbitrary line. Without being terrified, and having my inner critic berate me for everything and tell me how I don't deserve anything but beans and rice, unlike the people around me.

People have been so generous to help in supporting me and [personal profile] rev_yurodivy. And while we can still use the help -- and probably will for a little while -- I very much want to make it worthwhile.
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)
The last week or so has not been very good, thanks to illness, stress, and depression caused by both. On top of that, the Major News Site I write for is becoming impatient with me after a month of very poor performance, and is starting to lecture me about how to write for them and request fewer articles from me.

About work

I was beginning to think that I may have to write them off for good, even after the Of The Year award and some amazing performance before April. Which would have meant financial disaster for me, if not for the internship. But after spending the last couple days taking a break from things and playing Minecraft, I came back to it feeling refreshed, and wrote an article that I'm proud of about a subject that's important to me.

I'd been feeling like I didn't want to have anything to do with social justice issues; I didn't feel like I had the strength to address them. But I'm proud of how I handled it today, and I feel like maybe part of the problem is that they could tell I was losing my passion for things and burning out.

Between the internship and the financial support I've received / am receiving from some wonderful people (should I name names?), I think I can afford to not write to a quota anymore and only write things when I feel strongly about them ... which will probably improve my pageviews and make my editors happy with me anyway. I just didn't think I could afford to take that risk before.

Thank you, to everyone who's assisted us in the last few months. It means a lot to us and [personal profile] rev_yurodivy.

About the RPG

I've started work on a website that should help and be easy to use. It may take a little while, and I'm sorry if anyone's lost interest already. I haven't been able to keep on top of things as I'd like to, and I underestimated just how much work -- and how much interest -- there would be.

I'm going to continue working on this even if others' interest drops off, just because it's something I want to see happen. I'll show it to everyone once it's in a usable format.

Update on the internship

It starts later this month, and I'm trying to get the website done first (before I have to spend more of my day writing JavaScript documentation). I'm continuing to lurk on the GNOME IRC, though, which will basically be my workplace, and I'm keeping in touch with my mentor ... helping give input on things, and taking copious notes.

I'm still really excited about this project. I just wish I already knew what I could do afterwards, that could still be tech-related and could lead to a paying thing. I really want to have something to do for work besides writing, so that I can take a break from one or the other when needed to keep from burning out. Which is one thing I've learned that I need in the past couple weeks.
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)
Dun dun dun DUN!

If you're reading this coming from there, hello and I hope I don't weird you out too much. ~.^

Everyone else, this is awesome for so many reasons. Now I just need to get Fedora 17 set up so that I can rewrite the existing JavaScript tutorials to use the new ApplicationWindow class. The current state of the docs is really bad and scattered, and there's no clear path for a JavaScript developer -- in other words, a person who knows the most basic and common language of the web -- to learn how to write apps for GNOME. Hopefully, by the time that this summer is over, I'll have helped change that.

Wish me luck!

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 Feb. 25th, 2017 09:04 am
Powered by Dreamwidth Studios