Hackathon #11 - Les toyprojects

Pour les 10 ans de KNP Labs, on se fait plaisir ! On retourne aux sources, on revient au même lieu que pour le premier MeetUp en 2013 : Le merveilleux châlet du Chateauform à Champery. 

Comme pour tous les KNPHackathons, les KNPeers proposent des Toyprojects autour d’une technologie ou d’un framework qu’ils veulent découvrir ou approfondir. Les idées sont proposées dans un board Trello puis suite à une présentation, les équipes se constituent. Au hackathon, les équipes ont 2 jours pour se faire plaisir et travailler ensemble ! 

Voici les projets 

Screeps War Two 

https://trello.com/c/kWepAKyH/5-screep-war-two 

Antoine, Fabien, Hugo, Nathan, Alu

Screeps est un univers persistent, c’est comme un bac à sable pour développeurs où on décrit le comportement de la fourmilière pour récolter, construire, se reproduire. 

Il est possible de créer une IA pour “survivre” et potentiellement s’affronter à base de ligne de code. La team a choisi javascript comme langage commun. 

La première session au dernière Hackathon fût très plaisante, et Alu propose de remettre cela pour le gens n’en n’ayant pas fait ou simplement si les gens souhaitent continuer de développer leur algo.

Le code peut être écrit dans n’importe quel langage qui peut se compiler en JS à la fin.

Voici un lien vers le site : https://screeps.com/

 

Calendrier Desktop avec Flutter 

https://trello.com/c/Svqcye4X/20-calendrier-desktop-avec-flutter

Francois, Laurent, Pauline, Thomas 

On aimerait découvrir  Flutter. C’est un framework créé par Google permettant de faire des applis native pour desktop (Win, Mac, Linux et Google Fuchsia), Android, iOS et web. Il s’utilise avec le langage Dart

On aimerait créer une appli desktop affichant un calendrier, synchronisé avec Google Agenda, permettant au moins d’afficher ses rendez-vous.

Le but est de pouvoir l’utiliser avec Polybar.

Elm’s Deep

https://trello.com/c/23VdcnF2/17-elms-deep

Alessandro, David, Louis, Nico

Il y a de cela deux hackathons, nous avons pu effleurer subrepticement la puissance de Elm, la room #funktional propose de s’y replonger plus profondément pour refaire un projet front.

On a recodé l’app qui s’affiche sur l’écran dans l’entrée du bureau à Nantes. On affiche les news dans une room slack “news”, on peut afficher les tweets de KNP. 

Elm est un langage fonctionnel dédié principalement à la création d’interface graphiques web, ceci en compilant en JavaScript.

Il garantit une absence de runtime error grâce à son typage fort et son compilateur qui s’assure que tous les cas que va rencontré l’application sont gérés. 

C’est à la fois un langage et un framework, car il induit nativement une manière d’organiser son code (pattern dit “MVU”, Model – View – Update), dont la célèbre librairie Redux s’est fortement inspirée.

Dorce-Hell 

https://trello.com/c/nZQuNrzi/4-dorce-hell

Léna, PIB, Pedro, Yoann 

L’idée est de développer un bot basé sur un algorithme auto-apprenant permettant de détecter lorsqu’une phrase peut faire un bon titre de film pornographique.

Example :

- Pierre: Qui veux une glace ?

- Emma: Moi, je veux deux grosses boules.

“Moi, je veux deux grosses boules.” => TITRE

Implémentation de deep-learning avec TensorFlow avec le framework Kéras en python. 

Il faut énormément de données pour alimenter l’algorithme de machine-learning. On passe par 3 phases, l’apprentissage, la validation puis le test. Une base de données qualifiée d’environ 30000 titres de films (8000 pornographiques, 21000 normaux) a été scindée en 3 pour effectuer ces 3 phases. Une fois terminées, on en extrait un modèle qui sert à créer une API de prédiction :  pour une phrase donnée, l’algorithme calcule une estimation (0% film classique, 100% film olé olé)

  • “Elle était bonne la raclette”. Score 31%
  • “Je vais me prendre un matelas.” 63% 
  • “J’ai besoin de trois gars pour me filer un coup de main.” 86%

Keskonmang’ ?

https://trello.com/c/xJsUgVAw/21-keskonmang

Emma, Joris, Talos, Sophie

Il existe une question que nous nous posons continuellement : Qu’est ce qu’on mange ? 

Afin d’y répondre, nous proposons une solution simple et ludique: on joue à la roulette parmi tous les restos se trouvant dans un périmètre donné, en excluant d’office ceux où l’on est allé dans la semaine. 

Pour cela, un simple champs permet à l’utilisateur d’indiquer son adresse, qui servira de base à l’app pour proposer des restos au hasard dans un périmètre d’un kilomètre. 

On a switché nos rôles, Emma fait du front avec react/redux/rxjs en functional programming et Joris fait du back avec Symfony. 

Talos joue le rôle du PO et Sophie fait le design. 

On n’a pas utilisé l’api google maps car payante à la requête. A la place on a utilisé geocoder pour déterminer les coordonnées polaires de l’adresse, et FourSquare pour récupérer des infos sur les restaurants. 

Au bout de un deux jours on avait un MVP présentable. Pour la suite, on va ajouter la possibilité de filtrer par choix alimentaires, par type de nourriture, peut être ajouter la possibilité d’inviter ses amis, un compte avec l’historique des endroits ou on a mangé dans la semaine… 

On réfléchi à des possibilités d’intégration avec Slack pour faciliter l’usage au sein de KNP

KNP Space Program 

https://trello.com/c/vtG2S8h1/30-knp-space-program

Grégoire, Helly, Quentin 

Le jeu Kerbal Space Program permet la construction puis l’envoi de fusée dans le système solaire.

Un mod du jeu permet de programmer sa fusée plutôt que de la piloter manuellement – kOS documentation – Kerbal Operating System.

L’idée de ce toy projet est de voir jusqu’où parvient à automatiser le lancement d’une fusée.

Avec Kerbo-Script, le langage du mod, on arrive déjà à lancer les fusées, décoller mettre un satellite en orbite et récupérer le lanceur. 

Chacun a une instance du jeu et les scripts sur git. On a découpé le voyage du satellite en plusieurs étapes et, chacun a travaillé sur une partie.. 

Avec le plugin VSCode Live Share, on a aussi codé sur les mêmes fichiers en simultané. Pratique pour le pair programming à distance. 

Should-Skip-CI 

Nico a écrit un tool en RUST qui fait tourner seulement les jobs dans la CI qui sont concernés par les derniers changements. Cela optimise énormément le temps d’occupation. C’est déjà utilisé sur un de nos projets client et j’ajoute des tests et fait un peu de refacto. 

Z-Build

Albin est en train d’écrire un tool avec GO, qui permet de créer des images de container sans écrire des Dockerfiles. 

Pour la création et surtout l’entretien d’un Dockerfile, il faut déjà certaines connaissances de l’infra et des commandes. Avec ce tool, on peut via un fichier conf créer une image de container. On ajoute les paramètres, les dépendances système dont on a besoin et on peut construire des images pour dev et prod facilement. 

Discussions 

Nous avons eu plusieurs Coffee Talks, sur des sujets divers, qui tiennent à coeur certaines KNPeers : How to contribute to a FOSS project, présentation de la nouvelle équipe design UX et UI, la stack de monitoring sur un de nos projets, et un retour d’expérience de notre atelier de gestion des émotions. Nous avons également discuté de plusieurs sujets, comment intégrer l’équipe de design dans notre process actuel et aussi des valeurs de KNP Labs. 

Happy New Year !!!

“>