1 of 30

TPF Summer Activities 2013-2023

Makoto Nozaki (The Perl Foundation)

Stéphane Gigandet (Open Food Facts)

June 22, 2022 [2:00pm CDT, 9:00pm CEST]

2 of 30

Summary

  • We hire interns/developers/technical writers every summer. They are paid
  • They work on Perl/Raku projects
  • New community member, New development, New value
  • We are looking for your help as a mentor
  • Thank you sponsors

3 of 30

Terminology

  • “Summer” as the “Summer” in Northern Hemisphere
  • TPF (The Perl Foundation) interchangeably used with
    • Raku Foundation, TRF
    • Yet Another Society, YAS

4 of 30

Activities Summary

Activity

Years we participated

Outreachy internship

2022, 2021, 2020, 2014(*), 2013(*)

Google Summer of Code

2019, 2011, 2010

Google Season of Docs

2021

(*) Outreach Program for Women

5 of 30

Outreachy

  • Paid internship
  • 3 months
  • Started as Outreach Program for Women
  • It grew to internships supporting diversity in FOSS
    • Women (cis and trans), trans men, and genderqueer people
    • Residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latino, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. Anyone who faces systemic bias or discrimination in the technology industry of their country is invited to apply.

6 of 30

Recent Projects

Year

Intern

Project

2022

Raquel di Pietro

Yukti Sharma

Improve the code quality of the Perl code of the Open Food Facts backend and website

2021

Rosheen Naeem

Improve the Perl code quality of Open Food Facts

2020

Areesha Tariq

Improve the code quality of the Perl backend of Open Food Facts

2014

Rose Ames

Andreea Monica Pirvulescu

MetaCPAN: Improve Search

2014

Snigdha Dagar

Dancer Documentation Overhaul

7 of 30

Open Food Facts

<More slides here>

8 of 30

Open Food FactsA Wikipedia for food products

Stéphane Gigandet

9 of 30

How to choose the best product?

10 of 30

Too much data to digest!

11 of 30

Let’s build a Wikipedia for food products!

The Free Food Products Database

12 of 30

2.4 million food products in open data

Powered by Perl

13 of 30

New mobile app (Flutter UI, Perl logic)

Powered by Perl

14 of 30

What we use Perl for: almost everything!

Database backend, with MongoDB NoSQL database

Product analysis: e.g. ingredients recognition

API server - CRUD + search and aggregation

Open Food Facts web frontend + mobile app backend

15 of 30

Challenges we face(d)

  • Code has grown over 10 years and everything is mixed
  • Old school Perl, no modern frameworks
  • Very few developers and very few newcomers

Database backend, with MongoDB NoSQL database

Product analysis: e.g. ingredients recognition

API server - CRUD + search and aggregation

Open Food Facts web frontend

Our Perl code base circa 2020

16 of 30

Outreachy and The Perl Foundation to the rescue!

Goal of Outreachy 2020, 2021, 2022: making it easier and easier to contribute for new developers

  • Docker container for dev environment
  • POD documentation
  • Template::Toolkit
  • Better code quality
  • More unit and integration tests
  • Tooling (vscode, linter, debugger etc.)

17 of 30

Docker container for dev to get a quick start

  • Everything up and running in 15 minutes
    • All the stack (Apache, Mongodb, Node, etc.) configured in a repeatable fashion
    • default setup is for dev, preprod setup is just about personalizing “.env”
    • A Makefile to bootstrap developers : make dev, make clean, make lint, etc…
    • Continuous integration uses the docker dev setup
  • But:
    • At some point you will need some understanding of how Docker works
    • Keeping windows + macos + linux compat in Makefile is hard
      • Hopefully running from git bash on windows will help
  • Overall works fine for our Outreachy applicants
  • Big thanks to @hangy for starting this out, @ocervell for improving
  • Quick start guide

18 of 30

We need your help!

  • Mentoring
    • Very refreshing to mentor new Perl developers!
    • Authentication with Ory Kratos + Hydra (GSOC)
  • Modernizing
    • Replace mod_perl and custom routing code by Dancer2 or Mojolicious
    • Moving from Apache to Plack or equivalent
  • Simplifying
    • Improve setup for new developers (linter, debugger on vscode)
    • Perl::LanguageServer / Perl Navigator
  • Any help is always very welcome !

19 of 30

Stéphane Gigandet

stephane@openfoodfacts.org�

https://world.openfoodfacts.org

Twitter: @OpenFoodFacts

  • Thank you TPF and all!

20 of 30

2023: Need your help

Looking for mentors!

Responsibilities:

  • Come up with project ideas
  • Work with interns to develop Perl/Raku FOSS
  • Spend 5+ hours / week
  • Support diversity in FOSS

21 of 30

2023 Schedule

Estimate based on the 2022 schedule. Subject to change

June

Now

You heard about it

Call for Participation

Perl/Raku prep starts

Jan

Project starts

May

Project ends

Aug

22 of 30

Google Summer of Code

  • Paid opportunity to develop OSS
  • 3-5 months
  • Originally open to university students
    • Since 2022, student requirement is removed (*)
  • The contributor works on a Perl/Raku project with a mentor

23 of 30

Recent Projects

Year

Intern

Project

2019

Zhongnian Tao

Implementing the Chinese Encoding for Perl 6

2019

Madeline Goebel

Linking Perl 6 Programs

2019

Joel Dale Schüller

Perl 6 - Documentation Tooling Revamp: p6doc

2019

Antonio Gámiz Delgado

Redesign of the Perl 6 Documentation System

24 of 30

2023: Need your help

Looking for mentors!

Responsibilities:

  • Come up with a project list
  • Work with contributors to develop Perl/Raku OSS
  • Spend 2-4 hours / week. It may vary
  • Motivate new community members to learn new languages

25 of 30

2023 Schedule

Estimate based on the 2022 schedule. Subject to change

June

Now

You heard about it

Call for Participation

Perl/Raku prep starts

Jan

Project starts

Month 1: Community Bonding�Month 2: Coding

May

Project ends

Can be extended till Nov

Sep

26 of 30

Google Season of Docs

  • Paid opportunity to improve OSS docs
  • Some technical writing experience is expected
  • ~5 months
  • TPF participates since 2021

Year

Writer

Project

2021

Khawar Latif Khan

Audit Perl’s documentation

27 of 30

What we did in 2021

Join us at 11:30 on Friday!

28 of 30

2023: Need your help

Looking for mentors!

Responsibilities:

  • Define a documentation project
  • Recruit, select and help a technical writer
  • Submit final evaluation and case study

29 of 30

2023 Schedule

Estimate based on the 2022 schedule. Subject to change

June

Now

You heard about it

Call for Participation

Perl/Raku prep starts

Feb

Project starts

Apr

Project ends

Nov

30 of 30

Summary

  • We hire interns/developers/technical writers every summer. They are paid
  • They work on Perl/Raku projects
  • New community member, New development, New value
  • We are looking for your help as a mentor
  • Thank you sponsors