+ - 0:00:00
Notes for current slide
Notes for next slide

Google Summer of Code 101

(ou Comment j'ai eu une job chez Wikimédia en quatre mois)

par Frédéric Bolduc

1 / 23

Plan

  1. Google Summer of quoi?

  2. Appliquer à GSoC

  3. Travailler chez Wikimédia

  4. Contribuer à Wikipédia

2 / 23

Google Summer of quoi?

wut?

3 / 23

Plan

Google Summer of quoi?

Google Summer of Code 2015 logo

Google Summer of Code:

  • est un programme international visant à regrouper les étudiants universitaires avec des Open Source Organizations (OSO)

  • est organisé par Google chaque été, de la fin mai à la fin août pour 12 semaines

Site officiel: https://developers.google.com/open-source/gsoc/

4 / 23

Plan

Google Summer of quoi?

Quelques stats

  • Google Summer of Code 2015 était la onzième édition du programme

  • En 2015:

    • 1051 étudiants de 73 pays ont été admis, dont 23 Canadiens

    • 137 organisations ont participé, dont Mozilla, la Linux Foundation, la Fondation Wikimédia et le Tor Project

    • La grande majorité des étudiants étudiaient l'informatique, mais des étudiants en astronomie, géomatique, droit, musique, océanographie et philosophie ont aussi été admis

    • 87% des étudiants admis ont terminé le projet avec succès (dont moi :D)

5 / 23

Plan

Google Summer of quoi?

Précisions

  • Le programme est ouvert à tous les cycles universitaires

  • L'étudiant ne travaille pas pour Google, mais pour une OSO

  • L'étudiant travaille de chez lui (bien qu'il n'est pas interdit que l'organisation organise un déplacement durant l'été)

  • Tout le code produit dans le cadre du programme est open source

  • GSoC est un programme payé. Un étudiant admis reçoit $5500 USD* durant l'été, réparti de la manière suivante:

    • $500 USD après le début du programme
    • $2250 USD après l'évaluation de mi-été (si réussie)
    • $2250 USD après l'évaluation de fin d'été (si réussie)
  • L'étudiant gère son temps durant l'été, mais GSoC représente un travail à temps plein

*Oui, vive les taux de change

6 / 23

Appliquer à GSoC

7 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Le processus d'application

Les étudiants ont environ une semaine pour envoyer des applications à des projets.

Les étudiants peuvent soumettre plusieurs applications, mais ne pas sous-estimer le temps requis!

Souvent, la rédaction d'une micro-tâche est requise avec l'application.

  • Une micro-tâche consiste généralement d'un bugfix facile (<10 lignes) dans la même application où le projet se déroulera.

Mon application

8 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Calendrier 2015

  • 20 février:
    Liste des projets annoncés

  • 16 au 27 mars:
    Période d'application

  • 27 avril:
    Résultats annoncés

  • 27 avril au 25 mai:
    Community bonding

  • 25 mai au 21 août:
    fun code time

Voici le calendrier 2016 pour les intéressés

9 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Trucs faciles minute*

  • Commencez tôt! 10 jours, c'est très court. Publiez un brouillon si c'est possible et ajustez au fil des commentaires que vous recevrez jusqu'à la date limite.

  • Qualité > Quantité: Vous avez beaucoup plus de chances d'être choisi si vous concentrez vos efforts sur une ou deux applications.

  • Planifiez: Montrez que le sujet vous intéresse beaucoup en commençant à soumettre des idées. Schémas UML, maquettes d'interface, échéancier, bouts de code, etc.

  • Restez alerte! Les mentors vont poser des questions sur votre application après que vous l'ayiez posté. Soyez prêts à répondre et soyez disponible!

  • Explorez: La micro-tâche n'est pas à sous-estimer. Explorez plus loin que les micro-tâches suggérées et n'ayez pas peur d'essayer un autre ticket.

*Certains trucs peuvent ne pas s'appliquer à toutes les organisations.

10 / 23

Travailler chez Wikimédia

11 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Travailler chez WMF

Mon projet

J'ai travaillé (et travaille toujours!) sur l'édition de graphiques dans MediaWiki

Graph-VE pitch

12 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Travailler chez WMF

Mon projet

J'ai intégré un outil permettant d'éditer des spécifications Vega dans VisualEditor, l'éditeur WYSIWYG de MediaWiki.

Voici un diagramme à bandes simple:
Diagramme à bandes simple

13 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Travailler chez WMF

Mon projet

...et voici une spécification Vega générant un graphique à bandes simple:

Spécification Vega

14 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Travailler chez WMF

Ma routine

  • Me réveiller

  • Ouvrir tous mes outils

  • Lundis: Scrum avec les mentors sur Google Hangouts

  • vagrant git-update && vagrant provision
    et revenir dans 30 minutes

  • Travailler

  • Soumettre sur Gerrit

15 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Travailler chez WMF

La gameloop de travail

try {
var commit;
code.read(); // UNSAFE
documentation.read(); // UNSAFE
while(!commit.pushed) {
commit = code.write();
gerrit.send(commit);
gerrit.waitForReview();
}
} catch(e) {
irc.askQuestion(e.getMessage()); // !important
irc.waitForReply(onReply);
}
function onReply(answer) {
if (answer.type === 'jQuery.Deferred') {
google.search('jQuery.Deferred');
cry();
}
}
16 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Travailler chez WMF

Mythes

  • La distance est votre ennemi. Travailler à distance veut dire que personne ne sait ce que vous faites à tout moment. Documentez, parlez sur IRC, posez des questions. Apprenez à détester le décalage horaire.

  • Les gens savent que vous êtes junior. Posez des questions, les gens veulent vous voir poser des questions. IRC est là pour ça. Vos mentors n'attendent que ça.

  • Vous n'êtes pas payé pour livrer un projet. GSoC vous donne une bourse, pas un salaire. Ce n'est pas grave si le projet n'est pas terminé à la fin de l'été. Attendez-vous à passer la première moitié de l'été à comprendre ce que vous faites et à ne rien pusher.

  • Chaque étape compte. Attendez-vous à une moyenne de 10 lignes de code par jour. Attendez-vous à réviser chaque patch environ 5 fois avant de la soumettre. Certains jours, vous ne coderez même pas.

17 / 23

Contribuer à Wikipédia

18 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Travailler chez WMF

Contribuer à Wikipédia

À mettre dans vos favoris

19 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Travailler chez WMF

Contribuer à Wikipédia

Installation

  • Installer Vagrant

  • Installer git review

  • git clone --recursive https://gerrit.wikimedia.org/r/mediawiki/Vagrant
    ./setup.sh
    vagrant up

  • Tester que 127.0.0.1:8080 fonctionne bien

  • Installer les extensions avec Vagrant
    vagrant roles enable {extension}
    (ex.: visualeditor, math, graph)

  • vagrant git-update && vagrant provision

20 / 23

Plan

Google Summer of quoi?

Appliquer à GSoC

Travailler chez WMF

Contribuer à Wikipédia

Contribuer un premier changement

  1. Se faire connaître sur IRC. Wikimédia utilise irc.freenode.org et possède beaucoup de salons, mais le plus important est de loin #wikimedia-dev

  2. Se créer un compte sur Phabricator et Gerrit

  3. Prendre une tâche sur Phabricator

  4. Coder une première version d'un fix (un patchset)

  5. Soumettre la patch sur Gerrit avec git review

  6. Ajouter d'autres développeurs au patchset sur Gerrit (exemple)

  7. Attendre l'inévitable -1

  8. Modifier le commit localement et le rebâtir avec
    git commit --amend, le resoumettre avec
    git review, etc etc

  9. Victoire!

21 / 23

Des questions?

22 / 23

Merci :)

Frédéric Bolduc
@itsferdbold | github

diapositives disponibles sur ferdbold.com

23 / 23

Plan

  1. Google Summer of quoi?

  2. Appliquer à GSoC

  3. Travailler chez Wikimédia

  4. Contribuer à Wikipédia

2 / 23
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow