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!

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 Mar. 27th, 2017 12:31 pm
Powered by Dreamwidth Studios