-
Okay, so as Richard said,
-
I am the co-founder of The Ada Initiative,
-
which is a US non-profit,
-
aiming to increase the participation
-
of women in open source
-
and other open technology and culture areas,
-
and I'm also a PhD student at Macquarie University,
-
trying to finish up that last 10%
-
that takes so much time of any major project.
-
I'm not really going to be talking about
-
either of those things in today's keynote.
-
Perhaps a little bit university.
-
We'll get to that.
-
What I am talking about
-
is changing the world with Python.
-
So I know not everyone here
-
considers themselves an open source developer.
-
You don't release your code into the public, and so forth.
-
But I'm one of those people who started out
-
learning about open source culture and ideals
-
probably several years before I started writing
-
any kind of code that ever worked.
-
And when you start out like that,
-
this is kind of what you think open source is like.
-
(laughter)
-
That -- yeah, that you will single-handedly save the world
-
and wear tight tops.
-
And a stern expression.
-
Yeah, so you think of it
-
as a pretty heroic endeavor, sometimes,
-
that you're making code that will be used
-
outside of people who can afford proprietary software,
-
outside of people who have resources
-
to get boutique code developed for them.
-
Maybe you don't think of yourself exactly like this guy.
-
I mean, there's alternatives.
-
You know, you could think of yourself
-
as one of these people.
-
I think of myself as wooden spoon girl over there.
-
So that's sort of -- you know, all.
-
Depending on where you're coming to open source culture,
-
in particular, people who --
-
so I started reading about
-
the Hacker's Dictionary and so forth,
-
when I started University, at the end of the 1990s.
-
If you come across Jamie Zawinski's writings too soon,
-
you think open source development is more like this.
-
(laughter)
-
For people who don't know of Jamie Zawinsky,
-
he was one of the original Netscape developers,
-
and he was behind a large part of the push
-
to get what is now Firefox open sourced.
-
And then he promptly left Netscape
-
and bought a nightclub, which he runs to this day.
-
And I think this is actually a photograph
-
from the DNA Lounge.
-
Anyway, so that's kind of where you might have
-
come to open source from, thinking --
-
okay, I'm gonna be a hero,
-
and I'm gonna party all night.
-
And I guess, if you're Anthony, that might be true.
-
But for the rest of us, there's this disappointing realization
-
when suddenly you realize you're spending a lot of time
-
more in this kind of environment.
-
And then every so often --
-
I'll just take a second to adjust the mic properly.
-
>> Do you want to use the lectern mic?
-
We'll see how it goes this time.
-
If it falls off again, I'll use the lectern mic.
-
Yeah, so you're spending a lot of time
-
in environments like this,
-
and every so often, you take a weekend off,
-
and you spend time doing this.
-
So what I'm talking about in --
-
maybe it is better to use the lectern mic.
-
Okay.
-
Switch that off.
-
Okay.
-
Right, so I'm talking about restoring your heroism
-
with a touch of Python.
-
So I'm gonna talk about four projects
-
in the Python space today.
-
For people who were in Brianna's talk,
-
this is maybe a little bit like that,
-
except four projects instead of one.
-
Basically, projects you might want to consider
-
contributing to, or investigating further,
-
if you want a little bit more of the wooden spoon
-
and less of the cube farm
-
in your Python development.
-
The first one I'm gonna talk about --
-
and probably devote the most time to --
-
is a project called Plover.
-
Probably the least well known of these projects.
-
Has anybody here actually heard of the Plover Project?
-
Yeah, okay.
-
So that was about three people, for the benefit of the audio.
-
Right, so, for the rest of you...
-
A little bit of background on this.
-
So what you see right at the top there
-
is a standard -- what's called steno keyboard layout.
-
So steno is the typing mechanism
-
that people use for extremely fast speech transcripts,
-
like people who transcribe court proceedings,
-
and people who closed caption television live to air.
-
The mechanism you use to type is called chording.
-
You hold down multiple keys at once.
-
Each key press -- it depends on the dictionary you use,
-
but each key press corresponds to
-
usually about a syllable,
-
rather than a single letter.
-
Each combination key press, that is.
-
You can customize the dictionary,
-
so in court reporting,
-
where there's a lot of jargon and so forth,
-
you might have a single chord
-
that you've defined to be as much as
-
an entire sentence.
-
It's arbitrary.
-
So traditionally, this is taught
-
in quite expensive technical courses, stenotyping.
-
And the entry-level machines
-
to do it cost something, I believe --
-
something along the lines of $3,000.
-
But, in principle, there's no reason why you can't do it --
-
assuming that you have a keyboard
-
that can register enough presses,
-
which luckily have been developed a lot for gamers,
-
who have similar kinds of styles --
-
(laughter)
-
so the cheapest --
-
the requirement is called an n-key rollover.
-
Sometimes called anti-ghosting, I believe.
-
The cheapest is the Microsoft Sidewinder X4,
-
which is about -- I think I've seen it for under $60
-
in Australia.
-
Undoubtedly 10 cents in the United States, maybe.
-
(laughter)
-
So Plover is an attempt to bring stenotyping
-
to standard keyboards.
-
So that is -- making both the entry open source,
-
and making the equipment extremely cheap.
-
So the reason this helps save the world
-
is that extremely fast typing is --
-
so it's a benefit for a lot of us.
-
So to give you a sense of what I mean by extremely fast,
-
unless you do a lot of dedicated
-
sitting in front of your computer
-
for multiple hours,
-
over multiple weeks,
-
most people, I think, plateau --
-
who here knows their qwerty typing speed,
-
and it's faster than 60 words a minute?
-
Maybe 15, 20 people.
-
Anyone faster than 100 words a minute?
-
Okay, I see one.
-
So it's a little bit hard for the steno people to tell,
-
because mostly it's taught full-time in technical colleges.
-
You take a two-year course,
-
where you do nothing but do this.
-
And that brings your typing speed
-
up above 200 words a minute.
-
I think the world record is somebody
-
who can type 350 words a minute.
-
But the estimate of the woman
-
who founded the Plover Project,
-
a woman called Mirabai Knight,
-
is that most people with the kind of effort
-
that a lot of us put into learning qwerty,
-
which is a few weeks to a few months
-
with typing exercises,
-
and not eight-hour days --
-
but, you know, an hour here and there,
-
over six months,
-
that most people could reach 100 words a minute.
-
That's around about the speed
-
that most people reach when they drop out
-
of steno courses,
-
because they realize there's a big difference
-
between 100 words a minute
-
and the 220 you need
-
to be a certified court reporter.
-
But on the other hand, for the people in the room
-
who didn't raise their hand,
-
except for that person up there,
-
100 words a minute
-
would be faster for your typing.
-
So there's that.
-
But one more changing the world aspect for that,
-
aside from making typing faster,
-
is that for people who rely on text for communication --
-
so people who are entering stuff
-
in order to be able to speak,
-
who need to enter text
-
in order to produce text-to-speech output,
-
the faster the better, basically.
-
It's really, really hard
-
to reach conversational speed.
-
I think -- so I don't know what I'm speaking right now.
-
It could be as much as 300 words a minute.
-
So for anybody who needs to take down my speech,
-
which is court reporters,
-
or anybody who'd like to talk to me by typing,
-
and having it read out,
-
fast typing is a hell of a benefit.
-
So I'm just gonna have...
-
This is one of those moments where I have a video,
-
and it could be a problem.
-
So this is Mirabai Knight,
-
who is a trained stenotypist,
-
who has a typing speed of over 220 words a minute,
-
so she's using the Plover tool,
-
and she's using
-
one of the Microsoft Sidewinder keyboards here.
-
So she's not using the very high end hardware
-
that she would use professionally.
-
And she's entered an online typing race.
-
Okay, so it counts down, and go.
-
(reading text aloud)
-
213 words a minute.
-
So that's steno.
-
And that's Plover.
-
She has a number of YouTube videos.
-
Five or six, demonstrating herself using Plover.
-
Sometimes you can see her hands on the keys
-
and so forth.
-
Okay, so the thing about Plover is --
-
so first of all, most of you have never heard of it.
-
Second of all,
-
Mirabai funded it out of her own pocket.
-
She found a guy who programs Python
-
living downstairs from her in New York.
-
(laughter)
-
And she paid him all the money she had,
-
because she had this vision of open source steno.
-
So they've gotten it to the point where it works
-
as an input mechanism on Ubuntu.
-
You install this Python program,
-
and you get your Microsoft Sidewinder
-
or other n-key rollover keyboard,
-
and you can do steno.
-
So there's some obvious holes in that.
-
For starters, not everyone uses Ubuntu.
-
There's also a great deal of learning curve to go.
-
So me telling you about this is very cool,
-
but I've known this for a year,
-
and I haven't gone out yet
-
and learned how to enter steno.
-
Even though I have a PhD thesis to write.
-
(laughter)
-
So there's a hell of a lot of work left to do,
-
and as far as I'm aware,
-
Mirabai has run out of funding.
-
So the kind of stuff they need as well --
-
it needs to be ported
-
to more operating systems.
-
There is a competing tool already for iPad,
-
but tablets in general are an obvious next candidate,
-
because typing on them is particularly horrible.
-
At the moment, you can edit the dictionary by opening up --
-
so the dictionary of chords
-
is a giant text file in a particular format,
-
and you can edit it in a text editor, if you want to.
-
What would be really nice
-
is some tools that make that slightly more pleasant,
-
as in you don't open it up,
-
scroll down to where you want to put in your new chord,
-
put it in, put in the letters it translates to,
-
and then have to test it to see if it conflicts
-
with other chords that have been entered
-
elsewhere in the dictionary.
-
Because it's a very good idea not to have ambiguity.
-
So there's a whole bunch of tools
-
that need to be developed around editing the dictionary.
-
One thought I had was actually
-
that they could stand to have something
-
that suggests: "You appeared to enter the sequence..."
-
I guess...
-
"My research is -- convincingly argues that...
-
A lot of times.
-
You could stand to make a chord for it."
-
So something that actually logs your key strokes
-
and recommends that you turn
-
certain commonly typed sequences into a chord
-
would be a really nice tool.
-
And finally, in order to get people over that hump
-
of, "Oh, I have to learn to type
-
in a whole new way,
-
even though I heard about it in this Python keynote
-
and it sounded kind of cool,"
-
it needs to have teaching tools.
-
It needs have at least the equivalent of TuxTypist
-
for Linux, which is a standard teaching tool.
-
And Mirabai is sort of hoping that something like
-
Frets on Fire will eventually have a steno version,
-
where you have to type
-
in order to get the music to play.
-
So that's one way you could save the world with Python.
-
By contributing to letting people type faster.
-
And not just programmers,
-
but people who use their computers to talk,
-
and people who use their computers and typing
-
as their only means of interpersonal communication.
-
Okay, and that's the URL.
-
There's a development mailing list already.
-
There's a blog, including some relatively elementary,
-
at this stage, introduction to how to learn steno,
-
and how to read your dictionary,
-
and that sort of thing.
-
I think Mirabai must have spent a fair bit of money
-
on it at this point.
-
I guess, as sort of a side note,
-
I believe that the people who can do this
-
at over 200 words a minute
-
often command seven figure -- no, not seven figure.
-
Six figure salaries.
-
You can easily earn, I think, $150,000, US,
-
because there's just not a lot of people
-
who spent three years in technical college
-
learning to type at 240 words a minute.
-
So that's where she got the money from.
-
Okay.
-
The Software Carpentry Course.
-
I'll do this at the beginning of every one.
-
Who's heard of the Software Carpentry?
-
Again, a fairly small number of people.
-
But more than Plover.
-
Okay.
-
So this time you'd be saving the world
-
by helping scientists.
-
So there's a little bit of that going on
-
at this PyCon, in fact.
-
People talking about scientific programming in Python.
-
That's not quite what Software Carpentry is doing.
-
So Software Carpentry is headed by a guy
-
called Greg Wilson.
-
In his latest introduction to Software Carpentry,
-
he says that he talked to scientists about --
-
they estimate that they spend about 40% of their time --
-
this is non-computational scientists, so --
-
people who are doing massive data analysis, and so on.
-
They spend about 40% of their time working with computers
-
to try and get at their data somehow,
-
often programming now.
-
And 96% of them say
-
that they largely taught themselves
-
everything they know about software engineering.
-
Or everything they don't know.
-
Why not write unit tests?
-
Why not use version control systems?
-
The physicist answers...
-
What's a version control system?
-
Okay, so to be fair,
-
you can have these conversations
-
with working software engineers as well.
-
And as somebody who's a computer scientist,
-
you can definitely have this with computer scientists a lot.
-
Computer scientists are really bad --
-
largely; not all of them --
-
are very bad software engineers.
-
So Software Carpentry is basically
-
a giant curriculum on the --
-
they call it the 90% of software engineering
-
that gets you 90% of the way there, essentially.
-
So it introduces version control.
-
It introduces unit tests.
-
It introduces useful languages, including Python,
-
but also simple spreadsheet programming and so on.
-
To get people that --
-
to get people working in science, you know,
-
using tools that have been developed
-
in the last 40 years or so in terms of software engineering,
-
rather than either reinventing them,
-
or, much more commonly,
-
simply not having anything of the kind.
-
So you get people
-
who can't replicate their experiments,
-
because they don't have the code,
-
or they don't have that version of the code anymore.
-
You get people who can't replicate --
-
who can't work out why their experiment
-
doesn't work this week,
-
because they can't revert to last week,
-
and they don't have any unit tests
-
to guarantee that their code works the same
-
as last week.
-
So saving the world with the Software Carpentry Project
-
mostly involves contributing to their lessons,
-
which are distributed free,
-
open online, and are open source.
-
So you can simply debug the lessons.
-
Watch the videos
-
and work through the worksheets,
-
and send Greg Wilson errors
-
whenever you discover a problem.
-
They also are keen to have other people produce lessons.
-
So they like them to be three-minute videos, essentially.
-
You write a script.
-
You make a short video.
-
They'll edit it for you.
-
Cut it all together.
-
Put up a transcript.
-
And you can give any variation of the course at --
-
well, it's aimed at university people.
-
Sometimes the course is accessible to undergrads.
-
Most likely aimed at introductory --
-
people who are entering grad school.
-
The full course, I think,
-
probably is aimed at an entire semester.
-
They have a compressed one-week version
-
and a compressed three-day version, and so on.
-
And they're also keen to have people
-
offer to give that course.
-
That's probably more accessible to academics.
-
Universities are, in my experience,
-
not overly friendly to people turning up,
-
and saying, "I'd like to give a course."
-
Nice as that would be sometimes.
-
Anyway, Software Carpentry, there.
-
Producing tools --
-
Python community-associated tools for scientists
-
to learn software engineering.
-
Okay.
-
Next tool.
-
Okay, Calibre.
-
More of you have heard of Calibre?
-
Yeah, we're getting there.
-
I'm hoping this is a linear increase.
-
So Calibre is an ebook manager.
-
It won't literally help you save books from the fire.
-
We'll get to saving books in a second.
-
I have a special for Richard there.
-
What Calibre does is simply make managing your ebooks
-
a bit easier, and get you a little bit more out of the clutches
-
of individual ebook vendors.
-
The core Calibre, for obvious legal reasons,
-
does not actually break digital rights management
-
on your books,
-
but it does allow you to centralize them in one place.
-
It does the rather nice thing of converting
-
epub format ebooks to mobi, and vice versa.
-
Mostly in order to counter some of Kindle's evilness,
-
that it doesn't read the most common format.
-
So contributing to Calibre...
-
It's mostly straight out.
-
This is -- you like to fix bugs involving strings, basically.
-
If you're one of those people who has always --
-
always dreamed they could wake up in the morning,
-
thinking, "Gosh, I hope I come across a Unicode bug today,
-
because I love those ones,"
-
you should be contributing to Calibre.
-
They also --
-
I don't think they actually call for this
-
on their own website, I have to say,
-
but almost everyone I know
-
who's had something to do with Calibre
-
says they release constantly,
-
they release every week,
-
they have more features
-
for pulling data out of some ebooks
-
and stuffing it into other ebooks, and so forth.
-
What a shame that some of the buttons --
-
the selection of buttons across the top
-
actually scrolls off the right hand of your screen.
-
So if you've got a small screen,
-
you can only use half the functionality.
-
And things like that.
-
So if you're interested, also,
-
in GUI development and user interface design,
-
you could help save the world and contribute to Calibre.
-
Okay, that's the website.
-
Definitely worth using,
-
if you're doing any ebook reading at all.
-
Okay, a very brief non-Pythonic interlude.
-
Rich is not even paying attention.
-
This has a picture of a cat, especially for him.
-
Yeah, right?
-
We have a picture of a cat,
-
to go for Richard, as requested on Twitter last night.
-
So a project that's not written in Python, very quickly.
-
Distributed Proofreaders.
-
People have heard of it?
-
A little bit?
-
They basically do Project Gutenberg now.
-
They provide maybe 90% or 95% of books
-
coming into Project Gutenberg.
-
Basically, people scan books,
-
they upload the scan to distribute to proofreaders,
-
heaps and heaps of people
-
go to the Distributed Proofreaders site.
-
So the acronym there
-
is Project Gutenberg Distributed Proofreaders.net.
-
PGDP.
-
Not easy to remember.
-
People check the optical character recognition.
-
I think they do five separate passes now.
-
So five separate dedicated proofreaders
-
have to read every ebook.
-
At the end of that,
-
it gets uploaded to Project Gutenberg.
-
I stuck this in here,
-
because it is a little bit more directly
-
saving books from the fire,
-
where the fire is copyright claims by people
-
who have released new editions.
-
So Project Gutenberg distributes books
-
that were published before 1923,
-
and by far the easiest way to prove that
-
is to get a copy that was printed before 1923,
-
and those are slowly disappearing,
-
for obvious reasons.
-
Okay.
-
So if you literally -- or more literally
-
want to save books from the fire,
-
you can drop into Distributed Proofreaders.
-
But the code that drives the site,
-
while it's open source, is written in PHP.
-
So that's why the cat was angry.
-
(laughter)
-
Okay, last of all: Sugar.
-
People who have heard of Sugar?
-
Sugar, the learning environment,
-
originally for the One Laptop Per Child Project.
-
Right?
-
So this is helping children,
-
which is obviously helping save the world.
-
I don't know whether I need to develop
-
that argument any further.
-
We have a cute child on the screen, ladies and gentlemen.
-
Anthony would like to save the cat.
-
Okay, cute children.
-
So Sugar is an innovative collaboration-oriented
-
learning environment for, sort of, children
-
up to primary school age.
-
It's very focused on collaboratively editing documents.
-
It has the cute feature that you can access the --
-
while you're actually using your --
-
it's not only for OLPC now.
-
You can get it on a USB stick,
-
and stick it in any laptop.
-
That you can actually click on something,
-
and there's the source code that's running on your laptop
-
in Python,
-
and you can actually edit Sugar
-
if you're a small child,
-
and you have small enough fingers for those keyboards.
-
You can actually edit the code as you go.
-
So it's a pretty big project.
-
It's basically a window manager,
-
on up through an incredible number of applications,
-
which they call activities.
-
So it's got a wide range of stuff you can do for them.
-
They still have a lot of core environment development,
-
so if you're interested in hacking on window manager level,
-
display level kind of stuff,
-
there's a fair bit of that going on.
-
There's activities, which is the writing and chatting
-
and web surfing and doing maths collaboratively tools.
-
In particular, they have a little project called Math 4,
-
which is teaching grade 4 level mathematics.
-
And they have infrastructure, which is running their website,
-
and all that sort of thing.
-
It's a big enough project that they have a dedicated team
-
of volunteers working on their website,
-
and working on their presentation, and so on.
-
Okay.
-
And that's where they are.
-
They're at Sugar Labs.
-
And then, at some point,
-
somebody will consider you cool enough
-
to invite you to their special party
-
at their open source nightclub.
-
Okay, so that brings me
-
to the end of my four projects
-
you could contribute to in Python,
-
in order to do your bit in saving the world.
-
I just have some quick thanks.
-
I wrote this on the Ada Initiative's time.
-
So their sponsors are listed there.
-
The high level sponsors were Linux Australia,
-
Puppet Labs, and Dreamhost web hosting.
-
And last of all, my husband, Andrew Bennetts,
-
who dug up, I think, two of these projects for me,
-
and criticized my choice of images for the talk.
-
Okay.
-
All right.
-
Thank you.
-
(applause)
-
>> We have time for two or three questions.
-
(inaudible)
-
>> Do we have a microphone?
-
>> Push the power button.
-
(inaudible)
-
>> Okay.
-
At the risk of possibly turning this
-
into a yak-shaving exercise,
-
you've mentioned four projects here
-
which would benefit from having Python hackers
-
join in and contribute.
-
There are 300-odd of us here,
-
and the 270-odd who aren't already
-
contributors to a large open source project
-
would possibly flood those four,
-
if they all turned up tomorrow to contribute.
-
There is, obviously,
-
a lot of open source contributors
-
who aren't in this room.
-
What's the best way to coordinate effort here?
-
You said that your husband had to bring you
-
two of those projects.
-
I'm sure there are, for every one on there,
-
another thousand of people who would like help
-
doing their thing who aren't Python technical
-
and want the assistance.
-
How do we coordinate that effort better?
-
MARY: Yeah.
-
So I have to say I'm suspicious
-
that not everyone in this room
-
is immediately gonna join one of these projects.
-
So I'm hoping that that will save...
-
So I think, just to give you an example --
-
so Sugar could probably absorb everyone in this room,
-
if you all suddenly turn up.
-
It might be a little bit of a thing for them,
-
but they could probably absorb you.
-
I wouldn't recommend that everyone goes
-
and volunteers for Plover,
-
because they had 10 posts to their mailing list last month,
-
and 300 of them might scare them a little bit.
-
In terms of recruiting people to projects,
-
I have to say that's a really good question.
-
I don't know of any really good mechanism
-
at the moment to identify --
-
somebody turns up,
-
and they say, "I want to be an open source hacker.
-
What project should I join?"
-
And that is kind of the eternal mentoring question
-
in open source, because it's really hard to answer.
-
You want a project --
-
I'm reasonably sure all of these projects are living,
-
and actually accept patches.
-
That's the first thing you need to check.
-
That they all actually want contributors
-
who aren't the main author
-
is another thing you need to check.
-
But it would be really nice to have kind of
-
an edited clearinghouse of open source projects
-
that need contributors,
-
matching them up with skills.
-
I know Sourceforge has tried, and --
-
>> Another one.
-
Fresh Meat or someone -- one or the other.
-
MARY: Yeah.
-
But if anyone -- so yeah.
-
My email address is there.
-
And we want this for the Ada Initiative too,
-
because we want to be able to provide
-
this kind of stuff to women.
-
If anyone is aware of a good mechanism
-
of joining enthusiastic people
-
with projects that have holes in them,
-
that would be -- or wants to develop one --
-
that would be really cool.
-
>> Time for one more question.
-
>> Yes, you said that Software Carpentry --
-
>> The mic needs to be green.
-
>> Just ask and repeat.
-
>> You said that Software Carpentry wanted videos.
-
Say hypothetically that I'm not either an aspiring actor
-
or an aspiring producer.
-
What sort of videos do they want?
-
Is it just talking heads?
-
Or somebody with a whiteboard?
-
MARY: So the question is:
-
what kind of videos does Software Carpentry want,
-
given that most of us aren't actors
-
or video professionals, and so on.
-
What they mostly want is two things.
-
They want short lectures,
-
so that is a bit talking head.
-
Like, they want you to point a camera at yourself
-
while you talk for three minutes
-
about the Software Carpentry issue of your choice.
-
They will edit it for you,
-
and you're supposed to write a script in advance.
-
So the idea is that effectively you're following your script.
-
You make a mistake, you just pause for five seconds,
-
so that they can cut the video appropriately,
-
and then you just resume.
-
That's one type.
-
The other type that they want is screencasts.
-
So pictures of yourself typing a Python program
-
or using a spreadsheet,
-
while talking about what you're doing.
-
And so that second one,
-
especially given that you write the script in advance,
-
is probably something easier to contribute,
-
if you're not really comfortable
-
doing a head-to-camera kind of video.
-
But that's the kind of thing.
-
They want people talking about software development
-
for short periods of time.
-
But one of the options is screencasting yourself,
-
using a tool.
-
>> Thank you, Mary, for that keynote.
-
(applause)