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 think this happens when a given ideal becomes an end in itself, and not a means to an end. Suddenly people's lives are based around this ideal, instead of the other way around, and anything that threatens this ideal seems to threaten their lives by extension.

I think this applies to evangelicals going after gays, movement atheists going after theists, and free software zealots going after anything and everything in the world that might make computing and coding more accessible to women. The way things are, or were, or should be, is perfect. If you don't exist in that ideal world, then you shouldn't exist at all.

I think this sort of inhumane idealism is worse than simple inhumaneness of convenience, because it actively seeks out people to destroy them, whether by conversion or by making life as something different impossible. And I think that part of the reason it gets so vicious about it is because it's sublimating the energy that should have gone into questioning its own assumptions, and hearing other people's stories.

I know in my case I spent most of my life not just willing to throw myself away for an ideal, but actively trying to do so. I spent years hating myself for not being the perfect Mormon, and struggling with Linux to try to get it to do what I needed it to. And when I found out that my theritype was a carnivore, I felt sick and wanted to cease to exist, because I felt like every day that I lived was a tragedy.

It's taken a lot of work to try to reconstruct my morality based on what's right for people, including myself, because of how much I saw the very idea mocked. It's supposedly weak, selfish, and dishonest to not sacrifice yourself. But the more I see how dishonest and selfish people who want others to cease to exist are, and how hard it is to convince myself that I shouldn't just curl up and die when I'm asked to, I start to question that. I guess.

I think this is why we're so quick to back down, to infosuicide even, and why it takes forever for us to get to the point where we voice our concerns about something that's hurting us. Deep down, we agree with everyone who's said we don't deserve to exist, for every reason. We consider every request made of us to be reasonable, by default, and every request we make to be an unreasonable imposition.

So when someone tells us to get the hell off their Internet, we already agree with them that we shouldn't be there.

It takes a lot of work to construct the illusion that we deserve to exist, and it's easy for that illusion to vanish.

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'm going to try to keep this concise and nontechnical, and explain why I think everyone -- especially people who don't have a lot of time, money, or spoons, and who aren't as interested in fiddling with their smartphones as I am -- should consider a Windows Phone in general, and the one that I got in particular.

Cut for length and for lots of pictures. )

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)

That's the way Free Software idealists say software development should work. You get everything for free in Linux, including the code. If you don't like how something works, you change it and "submit your patch upstream," thus incorporating it into the whole. That way everyone benefits from everyone's creativity.

The problem is, this disenfranchises everyone who doesn't have both the technical ability to do that, and the social standing to be allowed to do that. Which means the Linux world is, and always has been, just a playground for technically proficient people who meet a particular demographic profile, and who keep making changes that affect everyone without consulting the people affected.

The only way to have your interests represented is to be part of the in-group, which means being a white cismale with unusual technical skills and enough money and free time to work on this stuff without pay. That, or a job that lets you get paid for it.

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)

Mormon theology holds that freedom is a product of obedience to Mormon leaders and teachings. The line of reasoning goes something like this:

You can choose to obey and be happy, or you can choose to disobey and be sad. The more you disobey, the more it takes away your ability to make future choices, through chains of addiction and bad consequences. But obeying increases your freedom and opens up new choices to you. So always choose to obey.

Sometimes, disobeying leads to immediate negative consequences. Like being eaten by crocodiles. (Content note: violence, predation, jump scares)

That's why you should only want to have "good, clean, wholesome, Latter-day Saint fun," like these identically-dressed youth. (Content note: cringe-inducing)

You know why they're having fun? Because when you're scared to death that breaking the rules will get you gruesomely eaten, you are freaking desperate for your needs to be satisfied in a way that the rules will allow. (This is also why Mormons marry for all of eternity at 19, after six-week courtships.)

How desperate? This desperate.

A lot of people use Free Software desktop operating systems for reasons that make perfect sense. I didn't. I was a PC gamer and a creative, and the desktop designed to set hackers free left me in chains.

"They cannot help their neighbours"

I had written an entire real-time strategy game in Visual BASIC on Windows 98, using 3d graphics I rendered myself, when I was 16 years old. I always told myself I would learn to do something like that again, this time with completely Free Software. But I never did. Instead I spent years installing and reinstalling distros, and when I finally set out to learn Linux app programming I found that I had to write the documentation myself. Worse, no one else would ever read it.

Add to that the politics, the sexism, the white cismale good ol' boys' network (they call it a "meritocracy"), and the grotesquely rude billionaire in charge of the biggest Free Software OS, and suddenly the cult didn't seem so appealing anymore.

I switched completely over to Windows 8 a few days ago. Immediately afterwards, my laptop got infected with malware when I tried to install a dodgy utility. I knew it was my fault, just like everything bad that's happened to me since I left the Mormon church has been my fault. Has been God's punishment, Satan's having his way with me, spiritual crocodiles snapping their jaws around my neck.

I'm supposed to go crawling back

To the people who shamed me for liking things they didn't, told me to ignore needs that they didn't have, and didn't think it was a problem that pretty much no one like me was making decisions in their world.

But the rest of the world isn't like that. It's okay to like different things. It's okay to have needs that aren't met by one particular church or OS, even if lots of other people like them. It doesn't mean that you're broken or terrible. It doesn't mean you have to sacrifice everything you like, just to make them comfortable. And it doesn't mean you have to give up your dreams, in order to do work that they don't even value.

I'm glad that the GNOME Foundation's sponsors paid me, and that my mentor and the people who left me kind comments encouraged me to develop my skills. I just wish that it'd been the kind of culture that would've chastised the trolls, instead of letting them run loose and say mean, clueless things in the same room and in the same comment threads. And I wish that it'd been the kind of culture that valued newbie documentation enough to have already had it in place, instead of delegating it to an intern years down the road and then promptly burying it.

Microsoft's offering money for apps

And they are all about their app developers.

I have been utterly spoiled by Visual Studio and Windows 8 so far, after I learned to avoid dodgy apps. I have been reading comprehensive tutorials, often written by women, using languages (HTML/CSS/JavaScript) I already know. And I feel like when I learned Visual BASIC that first time, and make something that amazed myself.

I don't know what I'm going to be using or writing a year from now, but I like what I've done so far and I want to keep going. I'll let you all know what happens.

In the meantime, I have at least one story commission to work on, and I've also been working on the [community profile] fursonarpg. We still don't have a start date set, but it's been awesome to see so many people excited about it.

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)

[personal profile] coffeevore and I are discussing on my last post what the warning signs of a cult are.

I'm reading people's comments on Jono Bacon's blog -- he's the piece of work who's Canonical's "community manager," and whose job description is basically "smother people who've been hurt and prevent them from doing anything about it." They're talking about how Canonical is engaged in "brand value destruction," and how it's destroying the Ubuntu brand by taking their volunteers for granted and treating them and their users as exploitable resources.

I once wrote an inspiring, frequently-favourited, sig-quoted post on the Ubuntu forums, that told the people there that they were what the Ubuntu brand was. That the Circle of Friends represented them. I believed in it every time I saw newbies learn how to use Linux. I believed in it when I saw PCs shipping with Ubuntu preloaded. I believed in it when I saw third-world contributors being empowered, local governments adopting Free Software, and all this other stuff that I felt couldn't happen with other "distros" because they didn't seem to care about anyone besides themselves and those like them.

I adopted and advocated Ubuntu not because I thought "Linux on the desktop" was the shiz, but out of solidarity with those people. And everyone else who had yet to be empowered by it.

Somehow, I missed the fact that the ends justified the means for Canonical. They they would do hostile, abusive things to their users, and take advantage of their most loyal volunteers, and justify it with "we're bringing Free Software to the masses." Sometimes they wouldn't even say that, and would just jump right to the "sustainable business model" garbage: "You want us to be able to make money off of this, right?" They wanted to be seen as a charity while they acted like a for-profit business, just like the church I used to be part of.

It's really no wonder I took to Ubuntu so strongly. It promised me the same clarity of vision, the same unambigiously good mission statement, the same visionary and godlike founder, who literally looked down on Earth from above.

All of it was a lie.

Here are the warning signs I think it and my old church had in common. (Quotation marks are used to indicate actual things said by Ubuntu cultists.)

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)

After I wrote that takedown of the phrase "religion sucks," in which I pointed out that "religion" and "cults of personality" are separate categories which don't completely overlap, I started seeing cultlike characteristics in a lot of the things around me. And realizing what those characteristics were.

As part of this, I had the unfortunate realization that a lot of the Ubuntu community is a cult. I'm not sure I'd say all of it is, or that you have to be a cultist to use Ubuntu. But they say that people leaving one cult often join another, and for several years around the time I became disaffected with Mormonism I was really high on Ubuntu. I try to see it more pragmatically now, but the cultlike atmosphere on Planet Ubuntu and the way they diss people who don't fit in really disgusts me. Especially with the way people are treating those who left after the recent debacle. I'm switching back to GNOME and Fedora as soon as I can muster the energy.

Anyway, I'm going to try to list some of the cult characteristics that I've noticed here, using both religious and nonreligious cults as examples.

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)
This entry sums up how we were feeling at the time. We're going to try to be more thorough here.

Feelings of inadequacy
  • Very soon after our internship started, our mentor was baffled by our incompetence, and admitted to having expected we wouldn't be having this kind of trouble. We realized that we had misled them as to our level of expertise, and while she tried to encourage us afterwards we felt like a poser pretty much the entire time we were there.
  • We're severely depressed and dysphoric, and surrounded in-person by people who hate us, yell at us, and talk casually about letting us die. We should be on disability benefits, not grasping at straws for tech writing chances. We didn't get as much work as we wanted to done because of this.
Feelings of rejection
  • Pretty much every blog post we made on Planet GNOME drew a ton of negative comments, especially the ones about sexism in tech. And that's even with anonymous commenting disabled. It got to the point where we set it to not email us and had our boyfriend screen comments for us.
  • At Open Help, a Red Hat employee talked openly about how the Outreach Program was a terrible idea and the money should not have been given to us. This caused a day-long depressive episode in the middle of the conference. Trying to talk to our mentor about it made us feel even more alienated, as she didn't understand our concerns and it was painfully obvious that she was trying to be polite.
  • We had to go home alone from one evening out at Open Help because the others there started talking in ways that made us uncomfortable while they were drinking.
  • After the conference, one person (that we liked and thought we had gotten along well with) wrote a blog post summarizing their experience at it, in which they used language that showed how weirded out they were by us and considered some of the topics we discussed there to be very inappropriate.
  • The whole time, we felt like a tag-along who didn't really belong there.
Lack of appreciation
  • We felt that the work we did, both in writing tutorials and in laying the foundation for ongoing JavaScript documentation, was completely ignored. There was no mention of it at all in the latest Planet GNOME posts about JavaScript being the "official" language, except for a note that the JavaScript tutorials were not as complete as the other languages' and someone had to fill them in manually. According to one person who was there, there was no mention of it during their in-person planning either. This was after we'd blogged extensively about it.
  • Bugs that we filed and comments we made on IRC went completely ignored, including ones about pointless and simple regressions which cost us important functionality.
We don't know how much of the problem is "we suck," how much of the problem is "GNOME sucks," and how much of the problem is "we're just not right for each other." We're usually inclined to believe the former more than the latter, which is part of the reason we listed our deficiencies right from the get-go and emphasized how awkward others felt around us.

All we know is that a thing that we were excited about turned out to be a horrible idea, and we're extremely depressed about it now. We don't really want to get involved in any more open-source projects in the future, if they have any of the kind of people who commented in our blog contributing to them. Some people encouraged us, but a lot of people discouraged us, and no one did anything about them.

Which may have been just 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)
This essay compares another platform's user and developer experience to GNOME's, in an attempt to understand how to make GNOME accessible to app developers.

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

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

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

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

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

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

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

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

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

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

PlayStation Home: Of the devil?

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

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

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

Let's make things better

If anyone's interested in contributing, this page explains how to get started hacking the developer docs, while this page outlines where I want to go with JavaScript's. I don't have a lot of free time to work on it in between using my limited spoons to deal with depression and transitioning, but I'm trying to document things that occur to me, and I'm open to hearing suggestions.
jewelfox: A portrait of a foxgryphon with a beak, black fur, magenta hair, fox ears, and a neckband with a large jewel on it. (Default)
Matthew Garrett's recent post on depression touched a nerve, because I've been dealing with it for most of my life and it was especially bad all of last year. I'm trying to arrange to get help, but even that is extremely difficult right now.

I'm going to try to add some things to his post without going on for too long. Specifically, I'm going to address ideas we have and stuff we take for granted that makes the experience of being depressed much, much worse.

The "Just World" fallacy

This is a fancy name for the idea that people tend to get what they deserve. Here in the States, we call it "liberty" and "objectivism" and "reducing dependence on government." In the Linux and Free Software communities, we call it "meritocracy."

It's an extremely convenient belief to have if you're at the top of your pecking order. It tells you that you deserve to be there, because of how awesome you are. And it tells you not to worry about anybody beneath you, because if they're deserving they'll make it eventually. And if they're not, well, don't worry about it. It's their fault, and helping them will just keep them dependent on you. Better to throw them out of the nest and watch their carcasses smear on the rocks, until you find one that can fly like you could.

This mindset stigmatizes being weak or in need of help. It turns being a newb, at life or at Linux, into something to be ashamed of. And when you have this mindset yourself, and are weak or injured, you're ashamed of everything. You have a desperate need to please others and show that your life is worthwhile. You're afraid to admit failure, to yourself or to anyone else, because you know that you'll be destroyed and it'll be your fault.

Preordained winners and losers

If you aren't so conscientious, of course, none of that matters. Of course you'll get the help you need. Of course you deserve it. Ayn Rand herself went on Social Security. My parents have no qualms about getting cheques from the government, via dad's military retirement. But I sold off almost all my possessions to keep from needing to apply for "food stamps," which are one of the only reliable social welfare programs here for people who aren't senior citizens. I didn't want to be a burden.

And that's what these beliefs are all about. They take people who care about others, who want to help others, who want to be part of a team and community and work together to do something awesome, and very often make them into nervous, self-loathing wrecks. At their best and most productive, they may have impostor syndrome and depression, may fail to promote themselves and their projects, and may put up with crap no one should. At their worse, they may want to kill themselves, like I almost did a few years ago after being thrown out of the house.

The fact that my parents let me back in an hour or so later didn't change anything. There was no apology. The status quo, in which this event wasn't even surprising and I just needed to live with it, did not change. And my family laughed and joked with each other later that day, without saying a word about what'd happened, as I went catatonic right there on the couch. I knew now that I was worthless, and no matter how much reassurance or encouragement I get from others that "fact" is still the core of my being.

I guess what I'm trying to say is,

The idea of "meritocracy" causes depression and kills people

And so whenever I see people glorify it, I know right away that to the degree that they take this belief seriously I'm looking at a good ol' boys' network with preordained winners and losers. Where people they like and consider worthwhile get rewarded and get away with anything, and people they dislike get blamed for their "failures" and punished.

This is why there's historically been so much hostility towards Apple, and towards everything in GNOME and Free Software and politics that tries to make stuff easier for newbs or bring new people into the fold. The people complaining have decided who's a "real" hacker or gamer or contributor or American, and who's undeserving of the label. They want the undeserving to run off somewhere that they don't have to see them, and they close their eyes so they don't see the smeared carcasses on the rocks.

When you grow up with this mindset and then realize that you're undeserving, you want to die.

I guess that's all.
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)
And neither does getting upset at people for not reading your mind, and knowing you "didn't mean to offend them" by saying something incredibly mean.

Case in point: World of GNOME's recent review of Fedora 18, which earlier today included a paragraphs-long joke (right after the winking smiley) about how it can be a good or bad thing that Fedora's more stable now depending on if "you" have a "hot" or "ugly" girlfriend, because a more stable distro = fewer visits to do "tech support."

A lot of people left annoyed comments on that version of the post, unsurprisingly including Fedora (and Red Hat)'s resident UX expert Máirín Duffy. It's unsurprising because when you put a lot of time and effort into a Free Software project you love, you really don't want to hear "jokes" which suggest that you suck at it; that you're only here with your boyfriend; and that you're only worth anything if you're "hot."

The post, as originally written, created a sickening grunch which reminded WoGue's female readers that we are women first and geeks second, if at all. Which made many of us feel like the blog's only written for guys, even if they interview women (including my awesome mentor from the 2012 OPW), and that we will always be out of place there.

WoGue has removed and apologized for the offensive material. Author Alex Diavatis deserves (and has received, in the comments) credit for doing so. This post isn't meant to shame him. It's meant to let people who may have read the original article know what's happened since it was posted, and to draw attention to a comment made by Bess Sadler:
I am baffled at how someone who programs computers can make the argument, "I know I said x, but I MEANT y, doesn't that count?" No, in natural language, like in computer code, it is what you ACTUALLY SAY that matters. Regardless of your intent, you have written something that is damaging to women. When you write software that has a bug in it, and someone helpfully points that out, you probably don't respond defensively and claim that because your intentions were good the bug doesn't need fixing. Please extend that logic to your non-code writing as well.
Bess left this comment for Alex because his first reaction was the same one a lot of people have when they're called out for doing something hurtful: Saying "but I'm not a bad person!" as though that undoes the hurt they just did.

This is not the correct response to a syntax error.

The correct response is to take bug reports seriously, patch the bugs when they come up, and apologize for your mistake. Because whether or not you personally think you're a "good person," or a "good programmer," or even "totally not sexist," ceases to matter if the code doesn't compile.

All you can do is fix it.
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 3 introduced what I think is a really cool concept: The global application menu.



As you can see, it's clean and modern, and reminiscent of Android's menu button. It just has a ton of problems right now.
  1. It's not discoverable. It looks like a Windows XP style taskbar entry. Those only have the option to close the window or perform window functions like maximizing. And sure enough, "Quit" is the only option available in most apps which run on GNOME, or even on earlier versions of core GNOME apps.

  2. It's not complete. Core GNOME apps like Totem and Web have so many menu options that they don't all fit in the "app menu." Because of this, they use either a classic Windows-style menu bar or a "Chrome wrench" style menu button (which is now a core GTK+ widget).



  3. It's inconsistent. I'm not aware of any design document explaining when to use what, and my understanding of how it works keeps getting broken. For instance, I'm used to the app menu replacing a Windows-style menu bar, so when I saw that Totem had the latter I ended up driving myself to frustration trying to find its Preferences dialog, before clicking on the app menu and finding it there.
The only guideline I'm aware of is that in multi-window apps, the app menu is supposed to apply to all of them, while the Chrome-style menu button is supposed to be for the one window. But I only heard that second-hand.

Where and when did we explain our design decisions to GNOME users and developers? How many of them are aware?

Un-breaking the app menu

Here's my proposal for how to make it work, based on the expectations I formed while using and developing with it.
  1. Explain the app menu to users. Every modern OS has a friendly introduction which explains the most basic, non-obvious concepts. For GNOME, this could be as simple as a single-screen "Welcome to GNOME" app, which helpfully points out the Activities screen, notification bar, and app menu.

  2. The app menu has the most basic options. An app always has one, and it always has the core, global functions in it: "About," "Preferences," and "Quit."

  3. Other menus have All The Options. People who are used to them expect that a Windows-style menu bar, or a Chrome wrench style menu button, will have a complete listing of the app's functionality. If an app has either of these (and modern GNOME apps should prefer the GTK+ menu button to space-eating Windows-style menus), it will contain all of that app's options, including the ones in the app menu. This makes GNOME more accessible and less frustrating.
But why have an app menu at all, then? Because it's a better way of doing things. It's simpler for users and developers, it's much more attractive and elegant, it's easy to remember once you've been shown, and it echoes the functionality of a modern OS (Android) in much the same way that GNOME's legacy menus mimic those of a legacy OS (pre-Windows 8).

Plus, it makes the apps themselves look much cleaner and take up less room on small screens.

Ideally, the App Menu will contain all of a given app's functionality. This is the assumption new GNOME apps (like Documents) are building on, and the one certain existing apps (like Empathy) are adopting.

The App Menu is the future that we are transitioning towards. Let's make it as painless as possible for users and developers, by adopting guidelines that get rid of frustration.
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)
Content note: This essay will very briefly touch on Mormon religious concepts, as an illustration to a point. This is not just more ranting about stuff that I used to believe.

The concept in question is the idea of "eternal progress." I was taught that this was something which set my old church apart from the Brand X(-tian) churches out there, which all supposedly thought we'd be sitting on clouds in heaven and singing forever and ever. On top of that, we supposedly had "continuing revelation" even in this life, where God's living prophet would tell us new things which were tailored for our day and age.

I really believed all of this. And I believed that "heaven," for that matter, wasn't simply an unquestionably good place that believers were rewarded with. Rather, I believed that there were two kinds of people who didn't go to heaven: The unworthy who knew and regretted their unworthiness, and the unworthy who didn't see heaven as heaven because they'd been twisted around so much they didn't know up from down. They didn't want to go there, and if they could it wouldn't be heaven to them. They simply couldn't appreciate it.

(I may have mixed in some Planescape theology there.)

A couple years after I left my old church, it hit me that this was exactly right. Because back there, they were still teaching the same "Sunday School answers" to every problem, at least the ones they acknowledged existed. And God's living prophet was still telling the same old stories about widows and stuff. Even their new website about "Mormons and Gays" (trigger warning for homophobia) explicitly says "we don't know" why God doesn't want gays to get married. This is what it's come to, now that their old reasons have been disproven. And while the rest of the first world is moving towards marriage equality, they're having a hissy fit over women wearing pants to church.

It's progress, but it's glacially slow and decades behind. And most of their discourse is still the same-old.

Progressive software

Why do I bring all this up? Because I've been realizing how unhealthy it is for me to dwell on that garbage, and trying to find new things to occupy my time with. And while looking at different forums and blogs, I realized I felt more at home on Planet Ubuntu than most more traditional "Free Software" blogs, although Planet GNOME's a close second and I also like Máirín Duffy's blog. And I realized the reason why was the same as with the above: Because in my personal experience, Free Software zealots in the vein of the Free Software Foundation are fundamentalists, who are as anti-progressive as the ones in the church that I left.

So while GNOME is moving design radically forward, they're throwing fits about it. While Máirín's teaching Girl Scouts to use Inkscape, they're making fun of her and staging juvenile protests on Planet Fedora, against the idea of making it easier to use and get involved with. And while the Outreach Program for Women is bringing new writers and contributors into the fold, they're trolling our blogs and insisting we're making stuff up about harassment and other issues that they do not face.

(I realize "they" is amorphous here, so for the sake of discussion it means "the people who do these things." I associate "them" with the FSF because I see it as the least progressive, most fundamentalist arm of the Free Software movement, which I associate in my mind more with their boycotts and insistence on purity than anything -- like the GNU project, or the gcc compiler, or the GPL -- that they may have actually done or created at some point. I'm open to being proven wrong here; I'm aware that people and organizations change, and have been especially impressed with some of Microsoft's recent products. This is just an impression I have, based on who they call their enemy and why.)

I guess what I'm saying is I realized I like the culture in Ubuntu and GNOME, where the emphasis is on moving forward (albeit in different directions for different reasons), and on bringing this stuff that we have to as many people as possible, and even on changing it so as to be more useful and accessible. Whereas in other projects, and communities, and of course churches, I see more of an emphasis on preaching (or appearing to preach) the same fundamentals over and over again, to the point of insulting people it doesn't appeal to or help instead of asking them why.

Progressive gaming?

I realize it's slightly ironic that I'm saying all this when my favourite computer game ever was made about 10 years ago. >_> In FFXI's case, though, I really haven't seen anything better at doing what it does best, for me personally. Most MMOs these days tend to copy World of Warcraft, with its looting and button-mashing and information overload UI. And they don't even do a good job of it.

For me, FFXI isn't a game so much as a world, that I experience in a particular way. It has a minimalist interface that's designed to be played with a game controller. It's immersive, and sort of invites contemplation. Chatting's normally done by text instead of headset. And the pace is extremely different. The only games I know of which come close to how it feels (which I didn't describe very well) are PlayStation Home and FFXIV, both of which I either play or am hoping to play when it comes to the PS3.

I realize now that a lot of the things I lament about missing, that were around in the "good old days" of FFXI, are things that made the game hostile to newbies. I feel good about triumphing over them, but countless others got discouraged and left. I like seeing the game make some progress on this front, and I have high hopes for FFXIV: A Realm Reborn. I want to see this style of game that I like stay young, and bring in new players. I don't want to only be surrounded by people my age, and with my exact preferences. And I don't want all that we talk about to be how things aren't like what they used to be.

In conclusion

I guess there's not really a point to all this. I just figured I ought to write more Dreamwidth essays. Most of the realizations I've been having and progress I've been making, in the last few weeks, I've only been sharing on Skype. I figure I ought to change that, since people seem to like my writing.
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 part 1, I summarized how I feel about human society and what they've done to the rest of the world. Now I'm going to go over different human-created technologies, and ways we can use them to tell our own stories and create our own worlds. I feel that this is a way we can both help otherkin and other marginalized people, as well as attack the most powerful humans directly.

So here's a breakdown of what's involved in creating the experience of becoming one's fursona or true self, and how hard each step might be to implement.

Read more... )

Sorry for the drowsy rambling. We sort of had to work this out for ourselves. We're open to suggestions, offers of assistance, and anything else anyone would like to add.

Edit: Oh wow you guys look at this http://danielribeiro.github.com/WebGLCraft/ It's an open-source tech demo for playing a Minecraft-style game in your browser. There are other things like it out there. Just imagine what could be done with this, like for creating scenes you could RP in or games and stuff. Virtual legos don't need to be able to run Tekkit, they just need to let you build things!
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)
Via the Geek Feminism blog, git has a serious bug.

For those reading this who aren't technically-inclined, git (named after Linus Torvalds) is like an ongoing archive of savegames for your programming, except that it also has features that let multiple people work on it at once. It's fiendishly hard to use and easy to break, and those qualities by themselves help to create a culture of complacent experts and frustrated novices. I personally feel that the time savings at the top are erased by the loss of contributions from people who are discouraged from ever learning it.

But besides that, everything you write in git is tied to your name. And it won't let you change it retroactively:
If you change the author, it’s treated as an entirely new commit. Anyone who has grabbed a copy of your original commit and made subsequent changes on top of it finds themselves orphaned from the history of the project. To use a crude analogy, it’s like you rip the trunk of a tree out, while the branches are magically left hanging in the air, connected to nothing and isolated.
This is an example of cismale privilege at work, where by "privilege" I mean "you guys don't have to worry about this." Most guys don't change their names when they get married, and most cisgender people don't think about changing their names, or what it'd be like to need to for safety- or identity-related reasons. Cisguys comprise most of the experts who wrote git and who use it on a day-to-day basis, so this apparently never came up.

The result: People are excluded from Free Software projects without anyone making a conscious decision to exclude them.

That point is extremely important to keep in mind. My intent doesn't matter when it comes to behaviours that exclude other people, any more than it matters when it comes to writing executable code. Blaming the people my actions exclude, or who point out that my actions exclude someone else, is no more productive than blaming the compiler. Instead, I need to educate myself by listening to marginalized others, and by going out of my way to include them. It's only fair, since they didn't choose to be marginalized. It's also the only way I'll know what I and my projects are missing.

(As on the Geek Feminism blog, comments will be moderated for 'splaining or other forms of derailing.)

Also, about Identi.ca

I appear to have been blocked from posting notices to Identi.ca. If I had to guess, I would say it was because of the most recent notices I posted (which contain some strong language).

The Terms of Service don't contain any rules against swearing, or even cursing at Identi.ca itself, which I did after becoming frustrated with my inability to block trolls on it. I wasn't warned or given notice, and an email I sent to admin@status.net received no response, so I don't know exactly what kind of speech the site admins will ban people for. But while I don't have the spoons to check on it myself, I'm pretty sure that the trolls who believe that I don't have a right to my identity or spirituality (one of whom also swore at me) weren't banned and never will be.

I've looked into Google+ as an alternative, but found its restrictions on pseudonyms and identities problematic. I am currently considering setting up a personal site as a Tumblr style linkblog. If I do, I will probably syndicate its content on Twitter and Google+, and here on Dreamwidth and Planet GNOME as applicable.
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)
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)
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.

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:05 am
Powered by Dreamwidth Studios