MediaGoblin is currently running a
fund-raising campaign
to raise funds for Chris to work on MediaGoblin for the next year
implementing federation, making it easier to install and use, and
other features as well.
For the next few months, I'm switching projects to help work on Gaia. I essentially started yesterday,
but I'm still missing a bunch of pieces, so I haven't actually done
any work. What I have done is spent time immersing myself in the
project and trying to get my bearings.
Thus this blog post covers how I got my bearings so far.
Gaia is a project in heavy flux and moving fast. The state and
stability of things changes day to day. There are things that aren't
documented. There are things that are documented that are out of
date. There are dozens of etherpads, lists of bugs, wiki pages, and
tips and tricks scattered around. This is the way it is
currently. Even this will probably change.
However it's not all chaos and entropy. While a lot of things are in
flux, some things stay the same. That's why I decided to write this
blog post of things I think help get you up and running faster.
About 1/3 of the way down that pad, there's a list of components,
who's working on them, their status, etc---that's current as of the
time of this writing.
In going to the meeting and reading through the notes, you'll get a
sense of who's who, who's working on what, what the current sprint
priorities are, and you might also get an indication of where you can
help out.
The B2G desktop periodically has stability issues. If you run into
problems, ask on #gaia on IRC.
On Wednesday
Assuming you have everything working so far, now's the time to start
looking for bugs to work on and/or testing the existing apps.
As of the time of this writing, the B2G/Triage wiki page has a variety of lists of bugs
in various states. There's the P1 and P2 lists in the Gaia section.
Also, I've accumulated these lists, but they may not be valid anymore:
find a bug you can work on that's not assigned to anyone
assign that bug to yourself
work on it
produce a patch --- must include tests!
create a pull request on github
find a reviewer to look at it --- probably want someone who works
on that component; ask on #gaia on IRC
go through review until it's good
get someone to land it --- I'm fuzzy on this step, but the person
needs commit access to the repository on github; ask on #gaia
on IRC
Thursday, Friday, etc
Rinse, repeat.
Conclusion
Hope this helps someone else! I think the important thing is to go to
a Gaia weekly meeting.
Addendums
Random thoughts that didn't fit anywhere else in this hastily written
post:
If you bump into incorrect information in the Gaia/Hacking wiki
page, please update it or ask someone on #gaia to verify it's
incorrect.
If you ask a question and no one replies to you on IRC, wait a bit,
then ask again. Folks are busy and in different time zones, but
they are paying attention.
If you see anything in this blog post that's incorrect, find me on
IRC. I'm willkg.
e.me stands for "everything.me"
FTU stands for "first-time-usage"
Also, I overheard this on IRC and it helped:
<fzzzy> here's something important to understand about ffos:
there's b2g, and there's gaia
<fzzzy> b2g is the big compiled blob of c++ and some js modules
<fzzzy> gaia is all js, but it is preprocessed into a profile
directory
<fzzzy> if you double-click B2G.app, you get a gaia profile
that is inside of the app
<fzzzy> if you run b2g-bin from the command line, you can pass
the -profile /path/to/profile flag, and b2g will use that gaia
<fzzzy> it just depends if you want to just kick the tires, or
actually hack on gaia itself
I work on a few projects that had a need for generating sample data to
make it easier for new contributors to get up and running quickly with
little effort. These projects are fairly data-driven---they're kind of
useless without data.
To satisfy that need, we wrote an app in richard to generate sample data across
all the other apps in the project. Then I rewrote it for input.
Then we had a hankering for it in SUMO, plus I thought it made sense
to turn it into its own app. So I spun it out into its own project.
Generally, it allows you to define a sampledata.py module with a
generate_sampledata function that takes command line options to
generate sample data for any app you want to generate sample data for.
You can use it to define different ways of generating sample data
specified by the command line.
You can use it to generate random data, non-random data, initial data,
data for contributors, sample data for large data sets, fixture data,
etc.
The GNU MediaGoblin project is raising
funds to allow Chris Webber to work on it full time for the next
year. The project has done really well over the last year and a half
and has come a long way. However, there's a bunch of work that needs
to be done and the sooner it gets done, the better. Essentially, we're
staring at a chasm between "bootstrapping the project" where we needed
enough to grow a community and have something people can build on and
"1.0" where it's generally usable by our target audience.
Because of that, Chris quit his job at Creative Commons to work on
MediaGoblin full time in a valiant attempt to get us across that
chasm.
There are a lot more details on the MediaGoblin campaign page and a movie that Chris
and Deb put together that explain why and why now.
Please help fund MediaGoblin so we can get across that chasm!
Please Tweet, Dent, Facebook, blog and otherwise get the word out,
too! Use the campaign url when you do. That helps a ton! Thank you!
I spent the greater part of my free time over the last two weeks
reworking my blog.
Before it ran on Pyblosxom as a CGI
process (yes---a CGI process). It had accrued a decade of sediment,
redirects, hacks, hacks on hacks, etc (yes---a decade). It was kind of
messy and---worse---it really impaired my ability to blog easily. That
sucked.
Now it runs on Pyblosxom, but it's statically rendered with a
post-receive hook from a git repository. The work flow for blogging is
a lot easier and I can test things out locally before pushing them
live. I also ditched a bunch of silly things in the blog.
I also ditched comments. I might at some point switch to using
something like talka.tv, but most of the time
people were writing comments as a response or a reply to me---not
intending to be part of a bigger discussion with other readers. Given
that, I ditched comments. No sense in spending the time maintaining
them if they don't really get used. Instead, email me.
pyvideo.org is an index of Python-related
conference and user-group videos on the Internet. Saw a session you
liked and want to share it? It's likely you can find it, watch it,
and share it with pyvideo.org.
Status
I posted the videos for SciPy US 2012
earlier today. They're missing summaries and Carl is forwarding me a bunch
of data correction requests. I'll work through that over the next few
days.
SciPy 2012 had ok metadata. I spent about 3 hours on SciPy 2012 over
the last few weeks.
Next in the hopper are PyCon AU 2012, DjangoCon US 2012 and PyCon DE 2011.
You can see
the queue of conferences here.
Thinking about a tip jar
pyvideo.org takes a lot of time. Plus the software it runs on is pretty
cool and could/should be used for other domains. This is less of a hobby
and more of a part-time job.
I've been (slowly) working on collaboration features in richard that make
it easier to delegate the work to other people. Even with that, I'll be
spending a lot of time on this.
One thing I was thinking about doing was adding a tip jar sort of thing to
pyvideo.org. My questions to you are:
is that offensive?
is this site valuable enough to you that you would tip me?
what systems are good for this sort of thing? PayPal? gittip?
pyvideo.org is an index of Python-related
videos on the Internet. For the most part, it's a collection of
videos from Python-related conferences. Saw a session you liked and
want to share it? It's likely you can find it, watch it, and share
it with pyvideo.org.
Status
I posted the videos for EuroPython 2012
last night. Many thanks to Omar who pulled together metadata for the
conference.
If you look at the videos on the site, the data is kind of a mess. I spent
a bunch of time reconciling issues with the data from the YouTube feed with
data from the EuroPython 2012 site and fixed a lot of issues, but there's
still a lot left to do.
I spent about 10 hours working on the data for EuroPython 2012.
My current plan is to leave it like this for now and forge ahead to catch
up with other conferences from 2012. Then I'll go back and continue working
on a system for crowd-sourcing metadata fixes. That will make it easier for
anyone to fix data they see is wrong and also remove me as a bottleneck
to a better index of Python video.
I'm working on SciPy 2012, PyCon AU 2012, and PyCon DE 2011. You can see
the queue of conferences here.
pyvideo.org is an index of Python-related
videos on the Internet. For the most part, it's a collection of
videos from Python-related conferences. Saw a session you liked and
want to share it? It's likely you can find it, watch it, and share
it with pyvideo.org.
Status
I posted the videos for EuroPython 2011
last night. Many thanks to N who pulled together metadata for the
conference. That saved me gobs of time.
I want to work on EuroPython 2012 next. I've pulled all the data
in the YouTube channel, however, the description and speaker data
isn't easily available. Best I can find is
https://ep2012.europython.eu/p3/schedule/ep2012/
which isn't in a form I can do much with.
I could really use some help! I need someone to either find a
conference organizer and ask them for the data in some easy-to-parse
format or scrape it. If possible, a JSON format would be great, but I
can do any format that has a parser in the Python stdlib, database dumps,
and probably other formats as well.
The key pieces of information I need are these:
title (this lets me match it up to the YouTube data I already have)
list of speakers
summary (short summary about the talk---sometimes called abstract)
description (longer-form description of the talk)
language the talk is in (English? Italian? ...)
Bonus points:
everything is in utf-8
summary and description are marked up in HTML
If you can help, please email me at willkg at bluesock dot org.
Thank you!
Update: Omar sent me an XML file with all the EuroPython 2012 metadata.
I'm pretty sure I'm all set now. Thank you Omar!
pyvideo.org is an index of Python-related
videos on the Internet. For the most part, it's a collection of
videos from Python-related conferences. Saw a session you liked and
want to share it? It's likely you can find it, watch it, and share
it with pyvideo.org.
Status
I've been working with Carl from NextDayVideo to get the API working so that he
can push straight from his system to pyvideo.org
after he's done his post-processing for a conference. That'll mean that
conferences his company videos will make it to pyvideo a lot faster.
That's good because they video a lot of Python-related conferences.
In the process of doing that, I made a lot of headway on fixing the
richard API and also
steve.
Wait, what? Who are all these people?
So, richard is the video index website software that runs pyvideo.org.
It has an admin that allows you to add videos one by one, but there's no
way to add a collection of videos and no way to batch-process videos.
Each conference is pretty different. I decided it would be far too
time-consuming to write one web ui that could do everything I need if
only because I don't really know what I need because each conference is
different. Instead, I decided to write a command line utility and library
of utility functions that make it easy to script something for a specific
set of videos. That's steve.
Today I finished up enough of steve to do PyCon AU 2011. I'm also in the
middle of a couple of other conferences, but since PyCon AU 2012 is
happening right now, I figured I'd switch gears and finish that one first.
It took about 3 hours for 30 videos. That's not bad considering I spent
some of that time fixing bugs in steve.
Anyhow, this is a milestone in the whole richard/steve/pyvideo.org thing.
The future
The future is that I don't want to be doing all this work. Going forward,
I want other people to use steve to build a bunch of JSON files that they
send to me. Then I'll curate that and add it to the site. In this way, it
spreads the work around and I don't have to do it all.
The future also allows anyone to suggest fixes to the data for videos that
are already on pyvideo.org in a way that I can go through a queue of these
fixes and approve/deny them quickly. In this way, we continue to have a
curated index of videos, but it's easy to suggest fixes and thus more likely
they'll happen.
Both of those are down the road, but definitely before the end of this year.
Both of those are really important because a single person can't run an
index of videos this size.
That's where things are at! I'll be working through the conference backlog slowly over the next few months.
ElasticUtils is a Python
library for building and executing ElasticSearch searches.
v0.4 released!
I released v0.4 a couple of days ago. This release adds new functionality,
fixes some issues, adds more tests, and includes improved documentation.
On top of that, we removed the requirement for Django and moved the
Django-aiding components into elasticutils.contrib.django. I
personally like this because it makes it much easier to write test
scripts to see how things react.