Skip to content, sitemap or skip to search.

Personal tools
Join now
You are here: Home Blogs Community Wrapping up my internship, focused on helping build the GPLv3 drafting archive

Wrapping up my internship, focused on helping build the GPLv3 drafting archive

by Free Software Foundation Contributions Published on Nov 16, 2021 04:59 PM
Contributors: Daniel Katz

Hey everyone!

My name is Daniel Katz, and I interned at the FSF this past summer. My internship was easily a high point of the past year (and not just because it's been a rough one). I got to make real contributions, learned more about the amazing free software community, and had a blast.

I started things off by scavenging around the office for RAM to put in my laptop before delving into my first project: archiving the GPLv3 drafting website. As I poked around the servers, I found that the site had mostly been created with circa-2006 versions of Plone, MediaWiki, and a custom text-annotation/commenting system called Stet. To get the site's static content, I finetuned a wget call; the tricky part came when I realized that simply throwing those files onto an Apache server and calling it a day wouldn't be possible. Many files came from URLs with "?"s, which signify the start of a query string which have semantic meaning and are not treated as plain characters. I eventually came up with a solution involving renaming files and using Apache's URL rewriting engine, which was a journey all its own.

After that, I turned my mind to fixing the intractable commenting system of the site, which used dynamic, client-side HTTP requests to fetch comments. I came up with a solution that allowed the archive to be fully static by scraping the comments, turning them into JSON, and then writing new JavaScript and editing the comment page's HTML to display the now-static comments. I even had to write a sorting algorithm to ensure the comments appeared in the correct order on the page (who says you never use CS fundamentals). So far, so good!

Finally, it was time to power on a new server and transfer our site to it; I guess you can't run on a 15-year-old VM forever. I was able to get the archived site live under a different domain name but trouble came when it was time to switch over the original domain (gplv3.fsf.org) and add HTTPS. The old site was strictly unencrypted HTTP. Andrew, a senior sysadmin, used his expertise to configure Apache to work with HTTPS. He also guided me through other issues such as malformed content security policies. Then I made a special Apache configuration that allows anyone to run a local copy of the site from a tarball.

The most satisfying part was taking inventory of everything I learned throughout this project: everything from regexes, Apache's rewriting system, and JavaScript to learning more about how daemons work. Of course, being able to complete a ten-year-old project felt pretty sweet as well.

I also started work on another project which entailed allowing git and other version control repositories to be the source of Web pages on Savannah and gnu.org/software, a long requested feature by GNU contributors. I did not have time to see this through to completion, but I hope to continue work on this project in the future!

Beyond everything I learned, the best part of FSF was the people. I genuinely looked forward to coming into the office; every single person on the team is welcoming, brilliant, and fun. Lunches and coffee breaks became laughing at weekend anecdotes and chatting about everything from functional compile-to-JS languages to the philosophy of software freedom and the housing crisis. The joy of working with a group of people who all share the same “software values” can't be overstated, and the thoughtful energy that generates extends far beyond the code.

My internship wouldn't have been what it was without my supervisors Ian and Andrew, who answered my incessant questions, gave me impromptu tutorials, and taught me how to better plan and pivot my work. I also want to thank them for being flexible with the internship dates as Fall 2020 became extraordinarily busier than I could have imagined. My time at FSF trained me on how to think in order to build things that are truly free, and has given me food for thought that will stay with me for the rest of my life.

Thank you to the FSF for the opportunity, and I encourage anyone thinking of interning to apply ASAP. See you all at LibrePlanet 2022!

Many thanks from all of us at FSF to Daniel for his excellent work! We have a few more components of the GPLv3 archive to add to what he's already done, and then we will be fully announcing its availability.

Document Actions

The FSF is a charity with a worldwide mission to advance software freedom — learn about our history and work.

fsf.org is powered by:

 

Send your feedback on our translations and new translations of pages to campaigns@fsf.org.