Changing the world one byte at a time

Assistance wanted for Planet Women in Free Software maintenance

I’ve really enjoyed witnessing to the growth of the Women in Free Software planet in the year and a half that I’ve been maintaining it.  Working in partnership with OPW, I’ve seen a renewed interest in the planet during that time, and a lot of fresh and interesting content.

Since January of 2013, the planet has grown from about 25 blogs to 150.  As the size of the planet grows, so does the amount of maintenance needed.  There are quite a few tasks related to feed maintenance; I’m keeping up on the basic tasks, but not much beyond that.  There are a lot of neglected projects that I’d love to see happen to help the planet thrive:

  • identifying and removing blogs that have not had any posts about open source software in the last 6 months
  • doing outreach to bloggers in the planet who do not have photos on the feed and adding their photos (it helps so much to see the faces of the writers)
  • seeking out more blogs by women in FOSS, contacting them about joining the feed, and adding them

Additionally, there is the twice-a-year project of adding the feeds of all the new interns each time another OPW internship period starts.  Last summer, there were 50 participants in OPW to be added!

I’d love to have a small team of 3-4 helpers who are willing to share these tasks that go into maintaining the planet feed. Is this you? If you’ve appreciated reading the planet, consider giving some of your time to help maintain and improve it!  Email me if interested.

Where beginning programmers can find help

This week, I gave my first talk at a local Python meetup group. Granted, it was just a lightning talk, but I’m pretty happy with how it went. (I even remembered to smile!) As the topic of the meetup was Python for Beginners, I shared some advice and resources that I’ve found useful in my own journey as I’ve been learning to code.

The group is in Barcelona, Spain which added an interesting element of language to the event. It’s pretty reasonable to expect people to know two or more languages; Catalan, Spanish, English are the top 3 most common languages, and programmers especially are more likely to know English, as much of the documentation and terminology used in Python is in English. There are many immigrants in Barcelona from other parts of the world, and like most of Europe, English is used as the common language when it’s a mixed-nationality group. For this reason, at PyBCN meetups, presenters are given the option to present in any of the 3 primary languages, as long as the slides are in English.  While that policy is fine for an audience that already is comfortable with their programming skills and through programming skills comfortable with English as well, this is a fine policy. However I’m not sure it’s appropriate for beginners, who have less programming knowledge to draw from to infer things they don’t understand, and are more likely to get discouraged. Through my involvement with PyLadies, lurking in OpenHatch discussions, and other groups that are especially attuned to creating learning environments that are welcoming for beginners, choosing what language to speak for the presentation weighed heavily on me. However it was impossible to know the language composition of the audience ahead of time, and as it was my first such presentation, I decided to do it in my own native language, English.  Additionally, the theme had never been clarified as to whether it was for beginning programmers, or for people who already program in other languages and learning Python as an additional programming language.

As it turns out, the majority of the audience was in the latter category, learning Python as an additional programming language, so perhaps my presentation was too rudimentary for most of them, but hopefully at least a few people came away feeling a little less lost as to how to find help, especially when they’re working on their own projects.

You can view my slides from the presentation here:

And for those who are interested in learning more about getting involved in Open Source (per my recommendation on the last slide), I am also sharing this video presentation where Aaron Patterson goes into more detail about the why and how of contributing to Open Source technology.

Planeteria in Flask

My coding work lately has focused on a major upgrade to Planeteria by giving it a web framework (currently it has none).  The framework I chose was Flask, because of its simplicity, its flexibility, and its scalability.  It has a strong community and documentation, which makes our project more friendly to new contributors, and has several add-ons for features that we hope to implement/improve upon for the site down the road, which will make future improvements to the site much easier.  I’ve also done some reorganizing of the files so that there’s clearer separation of the business logic and presentation logic.  Again, this should make the site more friendly to new contributors who might want to edit the backend Python code without unintentionally altering the page content.  The page layout is in Bootstrap, which is another tool that is commonly used and well documented.  It’s often used by developers for prototyping, with some handy defaults for buttons, blocks of text, etc.   Although you may notice that many projects and websites that have a very similar look because of this, it provides a foundation that is very easy to alter through CSS that a skilled designer could do a lot more with.

This week I created a schema for the data in SQLite3 and did a crash-course in SQLAlchemy to work with that data.  Currently, Planeteria stores its data in sqlite with the help of a tiny tool that simply stashes it as if it’s a dictionary;  there is no schema.  This has been a huge frustration of mine, as it’s difficult to see exactly what data is stored in what format.  Not ideal when trying to debug Unicode issues and character escaping.

I now have planet data (name/description/slug) and a planet’s feed data (feed name/url/image/planet id) saving to a database, with the ability for a planet admin to update any of that data correctly.  With just a few sql commands, I can now check the database and see if my code did what it should with the data.  Huzzah!  This led to a few revisions of the schema, each time simply deleting the database and creating a new one with the updated schema, then more testing.  Last night, I did some rigorous testing, trying my hardest to “break” it (identify flaws).  The biggest test was using unicode characters and quotes; two things that cause problems right now if they’re entered in the admin page.  It saved and loaded the data exactly as it should!  It’s lovely when things just work as they’re supposed to.

The database does not yet save feed content data.  It’s still to be determined exactly how that will be saved.  I’ve talked before about adding tagging to the site to help people more easily identify content within a planet that is relevant to them.  Since the only users on the site are the planet admins, the planet admin would be responsible for assigning tags to each feed; but how would the admin correctly guess what tags would most interest the planet readers?  I think it just puts an undue burden on the planet admin for maintaining all the tags for their planet feed.  Additionally, admins can edit a blog’s feed data but they have no control over individual blog entries; the topics discussed by a blogger in the planet might vary greatly, making an individual tag that brings up that blogger’s entries only applicable to some, not all of those entries.

I’m not sure that adding individual user logins for readers to save personally selected tags is the right solution.  It seems overly complicated and potentially underused.  I’d want to wait to see if there is really demand for this; as it is, many readers are simply reading the feed in their own feed readers anyway.  A much simpler solution that would enable readers to find content most relevant to their interests is a Search window.

I bring all of this up because how the feed content data is used/accessed will guide the decision of how it’s saved.   A relational database would be an appropriate way to store feed tags, but if we want users to be able to search the content, storing it in a server designed for searching such as Solr or Elasticsearch might be more appropriate.

While I mull that over, there are plenty of other things to do with the Admin page functionality I’ve built so far: next on my plate is form validation, security, and error reporting.  Then, adding user logins, most likely with Mozilla Persona.

WFS Planet update:  Today, I updated a few feeds in the Women in Free Software admin page and was reminded again of a bug that makes feed images disappear or assigns them to a different person’s feed.  I’ve put those images back where they should go for now, but it may happen again.  It pains me to leave the live site in its broken state, but I’ve decided to focus my efforts on the Flask implementation instead and create a stronger foundation so that bugs like this can more easily be avoided in the future.  I’ve made sure that the javascript on the new admin page assigns unique ID’s to each feed’s data so that this can’t happen on the new Admin page once the Flask site is launched.  I can’t wait to see it in action!

Back in the swing of things

2014 is well underway, and I’ve been more actively working on several projects after a busy 2013 that included selling my house, moving to another continent, getting married, and decompressing from all of the above!

While it was an exciting year for me personally, I’ve been frustrated with my lack of progress as far as learning code and other skills that will hopefully move me closer to a career in tech.  My learning has been a bit sporadic, so in the fall I completed a MOOC to refresh my existing knowledge and build upon it. Now I’m coming back to some existing projects as well as starting some new ones:

Planeteria Coding

Now I’m coming back to my work on Planeteria, the project that I started working on during my OPW internship a year ago, and am able to understand a lot of things that were a struggle for me when I started.  That doesn’t mean I understand *everything*, but I’m at least feeling less overwhelmed.

I still struggle with scope.  I’m a big-picture kind of person, and with Planeteria, there is so much to do. I have a long wishlist of things I’d like to improve, and as I start working on one, I find myself tempted to add other things to it, but I just keep reminding myself that open source is incremental. Baby steps.

Women in Free Software Planet Management

Planet management has been coasting for a while, with few changes other than adding the new OPW interns at the start of each internship round. The planet has exploded in size in the last year as the OPW program has grown in participation, which is incredibly exciting to read so many new and talented voices in the feed, but does require a lot of work to manage the feed.  I’ve flagged some improvements that can be made to the site to help streamline the process of adding feeds, as well as making a few changes to the process for WFS administration with the help of a couple new volunteers, Siobhan Bamer and Aarti Dwivedi, for whom I’m ever so grateful (thank you!!).  This year I hope to more actively manage this growing planet, and to start recruiting more bloggers doing great things in the FOSS community. I’ll be seeking requests for bloggers to add to the planet soon – so put your thinking caps on :)

FOSDEM 2014

I attended my first FOSDEM last weekend, which was a great introduction to the FOSS community here in Europe. I was especially curious to see the ratio of women:men and observe any gender dynamics to be aware of. This is partly due to my ongoing curiosity/personal research of what to be aware of as I enter this world as a woman. I was pleasantly surprised to see that there were quite a few women there; I’m guessing around 20% but that is a very rough ballpark based only on my personal observation. However the ratio varied greatly from room to room. In the sessions I went to, I found that the Python track had only two women besides myself in an overcrowded room (perhaps because Pyladies isn’t as present in Europe as it is in the US – more on that below). The Mozilla dev room and Legal Issues tracks had a much higher ratio of women. I was especially thrilled to see such high attendance in the Women in Technology talk given by another OPW alum, Priyanka Nag, who only had 1/2 hour to address such a broad topic. I appreciated learning a bit more about WoMoz and hearing some of the questions and comments from the audience, but I’d love to see more talks at FOSDEM that explicitly address outreach both to women and more broadly. The only other talk I saw on this topic was Deb Nicholson’s talk “Non-Coders Wanted” which made the case for the value of non-technical contributors and had some great tips for how to recruit them to any FOSS project.

I appreciated the non-commercial nature and the accessibility of the event, being all-volunteer run with no registration fee at all. One shortcoming of a free conference is the lack of nametags, which can help facilitate conversations and connections with others at the conference. As someone still pretty new to this community, I could’ve really used them to identify people who would be especially helpful to talk to unless someone was introduced to me. That being said, I found most people to be quite approachable, and ended up striking up conversations with complete strangers and had some interesting and unexpected conversations as a result.

PyLadies Barcelona

After benefiting greatly from the support of a fantastic community of PyLadies in Portland and then meeting many others at PyCon last year, I moved to Barcelona with the intention of helping facilitate a similar group in Barcelona.  Concurrently, interest has been growing here in Spain.  Last November, a group of ladies met informally during the first PyCon España to discuss starting a PyLadies on Spanish soil.  We’ve held two meetups in Barcelona so far, and though it’s still just a fledgeling, it’s a fantastic group of people, and I’m excited to see where this will go.  I’m especially inspired to see that women’s participation at PyCon has skyrocketed in recent years, in part due to the efforts of PyLadies in the US.  PyLadies chapters are now starting to crop up here in Europe.  Let’s see what happens!

Planeteria: all intern feeds are now on WFS

Subtitle: I fixed it!

The bug that had prevented me from adding any more feeds to WFS is now fixed!  It was surprisingly easy; it had to do with an unescaped apostrophe throwing a wrench in the Javascript in the admin page.  The tricky thing that made it hard to diagnose is that it only threw an error  when you tried to save a new feed AFTER you had added and successfully saved the feed with the apostrophe in the Name field.  Normally, if I run across a bug in the Admin page (of which there are many), I would get an error when I try to submit a newly added feed that it doesn’t like.

I finally found the source when I noticed in Chrome Developer Tools that the Javascript was throwing an error right at the line that had a name with an apostrophe; I then looked at the other two planets that I know are affected and sure enough, it showed the same error at the feeds that had an apostrophe in the name field.  Because single quotes were used around the string value, the apostrophe was treated as the end of the string, when clearly it wasn’t supposed to end there.

Now that the bug is taken care of, I’ve added the remaining intern feeds for this OPW round, so you can now read all the OPW intern blogs on the Women in Free Software planet.  I added a few Google Summer of Code students as well; if there are any other female GSoC student who would like to be added, just let me know!

With these additions, the number of feeds on Women in Free Software planet is now approaching 100, which feels pretty big to me.  There are some folks who don’t always want to read all the blogs in the feed; for example, you might want to only read blogs of people who are working with the same coding language, or working with the same organization.  If this is you, I have a request and a suggestion:

(a) in case you’re not aware, Planeteria enables anyone to make their own planet.  You can make a planet with a much narrower scope if you like and read just those blogs that you want.  Just go to the homepage, fill out the two-field form, and start adding your feeds!  It’s that simple.  This is probably the best approach in the short term; however….

(b) there is a new feature coming down the pipeline that will enable you to sort the feed by tags.  Tell me what catgeory/ies you would like to be able to read within the feed, so that when the time comes to implement it, it will have tags that are useful to the planet’s readers.  Leave a note in the comments!

Planeteria Status Update

A new session of the OPW (Opportunity Program for Women) internship has begun, and even though I’m no longer an intern, I’m continuing my work on what was my internship project this Spring, Planeteria.org.  The website has lots more work to be done, and I feel like there were many things that I wanted to fix during my internship but didn’t get around to.  In fact, in many ways it feels like much of what I accomplished during my internship period was just wrapping my head around what could be improved about the site, how to prioritize those tasks, and doing a lot of housekeeping that would enable me and other contributors to move forward.

This includes updating the README file to be clear and accurate; conducting a user survey to determine what the pain points are for users (thankfully there really aren’t many) and what new features might be useful to people; creating a project Road Map to inform potential contributors about the direction of the project and what the next steps are.  I also got a start on a redesign of the site, which will make it more mobile-friendly, update the code to use contemporary jQuery libraries, and add a few new features to the site.  The most exciting feature to me is the ability to tag each blog feed within a planet with themes, organizational affiliations, technologies, and other categories that site visitors can then use to narrow down the feed to blogs most relevant to their interests.  The redesign has been put on the back burner, however, while we focus on addressing more immediate functionality issues, which I’ll discuss more below.

I personally have a lot more to learn, so working on Planeteria continues to be an opportunity for me to build my skills while making improvements to the site.

I’ve also enjoyed following the new OPW interns’ blogs on the Women in Free Software planet, which I manage/curate on planeteria.org.  Along with the 50 new interns, there are many former OPW interns on the planet as well as several Google Summer of Code participants.  The OPW logo appears next to entries of current OPW interns, and the Google Summer of Code logo appears next to current GSOC students.  (There are a few who are participating in both; I’m not sure which image to add to those blog feeds. This will no longer be an issue when the tagging feature is implemented and we’ll no longer use images to designate affiliation with OPW/GSOC.)

However for those who are keeping track, there are still a few folks in the current OPW program missing from the feed.  My apologies to those who are still waiting to be added!  Unfortunately I ran into a bug that prevents me from adding new blogs to the planet before I had added all of the new OPW interns.  The source of this bug is the admin.py file that governs the behavior of the Admin page; which was written back when AJAX was still a new concept that people were just starting to implement.  The javascript is pretty antiquated and has been the source of more than one bug.  I had already been planning on rewriting it soon, and I’m now torn between the desire to work on a quick band-aid fix for the several planet admins who cannot add more feeds until the immediate issue is fixed (including myself), versus focusing my time instead on the re-write of the code so that it uses modern jQuery libraries to be more efficient and (hopefully) less buggy, or at least easier to debug in the future.  The plan is to work on a short-term fix and then dive into rewriting it, before I run into yet another bug that stems from the admin.py code.

Planeteria, Pycon, and Pyladies

I’ve fallen way behind on blogging, and have so much to share, but won’t be able to go into much depth today because I am trying to stay focused on getting the redesign launched for planeteria.org by the end of the OPW internship, which is just a week and a half away now (eek!).  The main changes included in the redesign are the addition of tags and a responsive design so that it’s readable in a browser on mobile devices.

The road map for Planeteria has been posted on the Github repo, based on feedback received from the user survey.  The intention of the Road Map is to give people a brief overview of the project, what’s going on now, and what want to happen next.  I’m happy to answer questions if people want additional information, and will be setting up a Google Groups list soon for Planeteria – related discussion.

I’ve been enjoying working on Planeteria in various roles: as a planet curator/admin, community organizer, and developer.  I have so many ideas for it that I didn’t have time to work on for my internship, and now that more people have learned about Planeteria I’m excited to see more people creating planets and using the site.  I plan to continue working on it beyond the internship and look forward to sharing my ideas for the site with this little fledgeling community, and work with them to help the site grow and flourish.

I was at PyCon last week and had a wonderful time meeting other OPW interns and mentors, working the Pyladies table and meeting other Pyladies, hanging out at the Ada Initiative hacker lounge, and of course learning some great tips and tricks through the numerous sessions and tutorials.  The organizers made a great effort to increase diversity amongst the attendees (particularly increasing women’s attendance).  They achieved just under 20% female participation, which is a significant accomplishment for any tech conference.   The fact that this is so significant, however, makes it clear to me that there’s still a long way to go in the broader tech community.  I found the community to be incredibly welcoming to me and other women, and after my experience there I am looking into the possibility of attending Euro PyCon this summer.   I hope that organizers of other conferences can look to the US PyCon 2013 as an example of how to increase female participation at other conferences.  I’m sure it’s at least in part due to the growing number of Pyladies chapters that are creating a safe environment for women like me to learn to code and providing stepping stones toward participating in the broader tech community.  Hynek Schlawack wrote a fantastic blog post which explains the value of Pyladies from a male perspective, and in my experience, having entered the programming world with the help of Pyladies, it’s spot on.


Follow

Get every new post delivered to your Inbox.