Skip to content

Instantly share code, notes, and snippets.


Sébastien Mosser mosser

View GitHub Profile

How to manage multiple versions of Java on a Mac?

Homebrew can help you to manage a consistent installation of multiple JDks on the very same system. For example, one can install openJDK using the following cask:

lucifer:ace mosser$ brew tap adoptopenjdk/openjdk
lucifer:ace mosser$ brew cask install adoptopenjdk8
lucifer:ace mosser$ brew cask install adoptopenjdk11
mosser /
Last active Oct 26, 2018
Composing Code refactoring intership proposal

Composing Code refactoring

This internship proposition will be hosted at Université du Québec à Montréal (UQAM).


Software code is often subject to code refactoring. This is the essence tof test-driven development: (i) test, (ii) code, (iii) make test green, (iv) refactor. Refactoring is often performed manually, or with a support from the IDE. But the information that a given refactoring happened is lost, leading to the infamous "I told you so" versioning anti-pattern where 2 alternative design are constantly added and removed in the given system. We propose in this project to formalise the classical code refactoring and to remember their application, supporting developers at both level: (i) making easy to apply a refactoring to a given piece of code and (ii) reasoning on the sequence of refactoring made in a given project.

Project Description

mosser /
Last active Oct 31, 2019
Internship proposal LLVM (UQAM/LIP)

Identifying Optimisation Conflicts in LLVM


This internship proposal is a joint collaboration between Université du Québec à Montréal (UQAM) and the Laboratoire d'Informatique du Paralélisme (LIP) located in Lyon.

It targets MSc students interested in software engineering (CA) and compilation (FR).


Projets de Fin d'Études (PFE) 2018

  • Contact: Sébastien Mosser
  • Research group: ACE is a subgroup of SPARKS, I3S (CNRS / Université Côte d'Azur).

Applying Software Composition to Agile Backlogs



Déroulement PNS Innovation 2018

Environment Général

  • Jira / Bitbucket dispo sur Mjollnir d'ici la fin du week-end
  • Salles réservées dans le bâtiment (étage E+1xx)
    • Vous travaillez en équipe et dans l'école (on doit pouvoir vous trouver aux horaires de projet dans le bâtiment)
  • Daily meeting journalier :
    • horaire: 09h,

Programmation Fine et Complexité Empirique

  • Enseigant: Christophe Papazian
  • Prérequis : Algorithmique, Structure de Données, Complexité
  • Pour étudiants motivés par la programmation et l'algorithmique.

Le but de ce module est de donner aux étudiants

  • la capacité d'évaluer dans un cadre pratique et de manière autonome la rapidité d'execution d'un algorithme ou d'une de ses parties.
  • la capacité de choisir l'implémentation algorithmique la plus rapide pour un problème donné et pour un type d'entrées donné.
mosser / devops.txt
Created Mar 2, 2018
Premier rendu ISA / DevOps
View devops.txt
## Handling IDA [ida]
# Cloning project from remote repository: OK
# Checking out tag [mutant_delivery]: OK
# Git stamp: Date: Wed Feb 28 15:12:27 2018 +0100
# Checking existence of [mutants.pdf]: OK
# Extraction [mutants.pdf] into [../mutants_ida.pdf]: OK

Journal Équipe ISX

État courant du projet

  • Ticketing: [0,5]
  • Versioning: [0,5]
  • Qualité Objet: [0,5]
  • Tests: [0,5]
  • Confiance dans le code: [0,5]
mosser / docker-compose.yml
Created Jan 24, 2018
Sonarqube setup for Island 2018
View docker-compose.yml
version: "3"
image: sonarqube:alpine
container_name: island-sonar
- "9000:9000"
mosser / Code.scala
Last active Jan 7, 2018
Merging maps
View Code.scala
import scala.util.Random
// Context
case class Event(data: Map[String, Int])
// Generate a random history of given size
def history(size: Int): Seq[Event] = {
for (i <- 1 to size)
yield Event((1 to Random.nextInt(10) map {
_ => Random.nextInt(10).toString -> Random.nextInt(100)