GithubHelp home page GithubHelp logo

strasbourgjs / talks Goto Github PK

View Code? Open in Web Editor NEW
22.0 3.0 0.0 254 KB

Call for Paper pour les meet-ups StrasbourgJS. Proposez les prochains talks ou workshops !

talks cfp meetup call-for-papers call-for-paper strasbourg javascript

talks's Introduction

StrasbourgJS

Talks

Call for Paper pour les talks StrasbourgJS.

🗳️ Voter pour un talk ou une idée en utilisant la réaction 👍.

Liens utiles

🗺️ Meetup.com | 🐦 Twitter | 📜 Code de Conduite

Où nous contacter ?

Si vous avez des questions n'hésitez pas à nous contacter :

Ce dépôt a été inspiré par :

talks's People

Contributors

edimitchel avatar keziahmoselle avatar notjb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

talks's Issues

Faisons un tour de toutes les nouveautés de l'éco-système Vue

Faisons un tour de toutes les nouveautés de l'éco-système Vue

À propos du talk

Contenu

Présentation des différentes nouveautés qu'ont été apportées par la nouvelle version de Vue.

  • Vite
  • SFC amélioré
  • JSX / TSX
  • RFC en cours de validation et validés
  • La puissance du templating

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : EDIGHOFFER Michel
  • Twitter : @edimitchel

Trigo et JS, animer un slider original

Trigo et JS, animer un slider original

À propos du talk

Contenu

Malgré notre traumatisme de la trigonométrie au lycée, cette discipline peut nous permettre de construire des objets originaux en JS ou en CSS. Présentation en code live pour montrer un exemple avec un slide en forme de triple vague construit pour la clinique du sommeil dans le cadre d'un agenda du sommeil.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant en JS (intermédiaire en maths)
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : MARCO Jonathan
  • Twitter : @GiildoJm
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

`Cool ton tool` : Linear

Cool ton tool : Linear

À propos du talk

Contenu

Découverte de Linear (linear.app), outil de gestion de projet. L'idée est de faire une présentation générale, rapide du produit, de montrer les capacités de ce dernier.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes (pas encore sûr)
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

Test 2

<Titre du talk|workshop>

À propos du talk|workshop

Contenu

(Décrivez en quelques lignes le contenu de la présentation)

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom :
  • Twitter :
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Non

[Test]: Test

<Titre du talk|workshop>

À propos du talk|workshop

Contenu

(Décrivez en quelques lignes le contenu de la présentation)

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom :
  • Twitter :
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Non

Automatisation et DevOps dans le monde du JavaScript

Automatisation et DevOps dans le monde du JavaScript

À propos du workshop

Contenu :

  • Premier exemple d'automatisation : création d'un nouveau projet avec create-fullstack-app
  • Introduction au DevOps visant à l'unification des outils pour le développement d'un projet afin de réduire le "time to market"
  • Collaboration en équipe avec git et le concept deGitflow
  • Suite de la collaboration en équipe par la compréhension de son propre code en suivant les principes de code les plus connus (comme DRY ou Keep It Simple, Stupid).
  • Conventional Commits, Semantinc Versioning, keep a changelog et le package release-it
  • Continous integration: Linting du code, les tests unitaires, mise à jour des dépendances automatiquement, etc. avec GitHub Actions
  • Continuous deployment: GitHub Pages, Vercel, Netflify etc. pour déployer automatiquement son application
  • Introduction à Docker (à quoi ça sert et comment s'en servir si le fichier docker-compose.yml existe déjà à la racine du projet)
  • Exemple du site web de @StrasbourgJS

Pourquoi ce talk ?

D'après moi, trop de débutants commencent à coder sans se soucier de la lisibilité et les performances du code, leur seul objectif c'est que ça fonctionne rien d'autre alors qu'un code qui fonctionne, ce n'est pas forcément un code prêt pour la production.
Le déploiement (avec un ftp comme FileZilla par exemple) et tester son code manuellement prend trop de temps et surtout est source d'erreurs.

L'intérêt de ce talk est donc d'introduire les bonnes pratiques (subjectivement) de code et d'éviter les erreurs dans ses futurs projets.

Durée :

  • 10 minutes
  • 20 minutes
  • 30 minutes
  • 1 heure
  • Précisez : À décider (sûrement un talk de 1h car ce sont des concepts complexes et chacun d'eux mériterait un talk entier pour en parler, ici c'est seulement une introduction)

Niveau :

  • Débutant
  • Intermédiaire (au moins des connaissances en Git, npm et JS sont nécessaires)
  • Avancé

À propos de vous

  • Nom et prénom : LUDWIG Théo
  • Twitter : https://twitter.com/Divlo_FR
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui, avec plaisir mais pour le moment rien n'est préparé encore, il me faudra sûrement du temps avant de présenter quelque chose (diapo, contenu etc.)

Cool ton tool : UnJS ou comment rendre l'écosystème JS polyvalent

Cool ton tool : UnJS ou comment rendre l'écosystème JS polyvalent

À propos du talk

Contenu

UnJs propose plusieurs briques JS pour couvrir tous les besoins et permettre de développer sur tous les environnements (Node.js, Bun, Edge, etc..).

Je présente une partie des modules qui valent le coup et peut compléter votre stack.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

Nuxt : SSR et SSG dans ta Vue

Nuxt : SSR et SSG dans ta Vue

À propos du talk

Contenu

Les différents modes de rendus (SSR et SSG) sont une feature clé de Nuxt. Il est donc difficile d'appréhender la framework sans une bonne compréhension ces derniers. Dans ce talk, nous allons essayer de démystifier ces concept, afin d'en saisir concrètement le fonctionnement, et d'en déduire les inconvénients et (surtout ;p) les avantages.

Plan

  • Introduction à Nuxt
  • le SSR
  • le SSG

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Elise Patrikainen
  • Twitter : @ElisePatrikain1
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

Push API : Enfin une compatibilité avec iOS

Push API : Enfin une compatibilité avec iOS

À propos du talk

Contenu

Depuis la sortie de Safari 16.4, Apple a enfin décidé d'autoriser la réception des notifications push sur une PWA (progressive web app). Ce qui rend aujourd'hui tous les navigateurs compatibles et offre de nombreuses possibilités d'interactions avec les utilisateurs.
À travers ce petit talk je ferai une présentation rapide de la Push API et montrerai un exemple d'application sur une PWA développée pour l'occasion.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

SSR avec ViteJS sans meta framework

SSR avec ViteJS sans meta framework

À propos du talk

Contenu

Souvent le premier reflexe pour faire du SSR est de passer par un meta-framework (nuxt, next...). Mais vous avez déjà un projet réalisé en Vue, React et vous ne souhaitez pas tout refaire avec ce genre d'outil tout en profitant de SSR ? Avec ViteJS et quelques modifications dans votre projet, c'est possible !

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Jonathan Marco
  • Twitter : @GiildoJm
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

Orion - Nouveau framework UI Vue 3 (made in Alsace)

Orion - Vue 3 UI Framework

À propos du talk

Contenu

Depuis environ 2 ans nous avons développé en interne Orion, un nouveau framework UI basé sur Vue 3, Typescript et Vite.
Nous avons souhaité rendre ce projet open-source afin de rendre à la communauté une infime partie de ce qu'elle nous apporte quotidiennement.
Il s'agit de notre premier véritable projet open-source. Nous avons plein de choses à apprendre et avons hâte de le partager.

Ce framework développé entre Colmar et Strasbourg aspire à être simple d'utilisation, à la fois pour les utilisateurs, mais aussi pour les contributeurs.

Voici le lien vers la documentation : orion-ui.org.

Je propose 2 options pour le talk :

  • Présenter uniquement le framework et les bases de son utilisation.
  • Présenter également l'architecture que nous avons élaborée et utilisée pour la création du framework (architecture éprouvée au sein de nos projets internes), dont un aperçu est disponible dans la documentation ainsi que dans cette RFC.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : MAISNER Jean-Brice
  • Twitter : https://twitter.com/jbmaisner
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

Creative coding en JavaScript

Creative Coding en JavaScript

Salut, je découvre votre groupe StrasbourgJS. JavaScript est mon sujet passion et j'adore rencontrer d'autres devs pour en parler, alors je saisis l'opportunité pour faire connaissance et je tente ma chance avec un sujet un peu niche mais à la fois fun et technique.

À propos du talk

JavaScript n'est pas le langage le plus performant ni le plus sûr, mais c'est de loin celui avec lequel j'ai pu être le plus créatif et avoir le plus de fun. Pour ceux qui ne connaissent pas, le creative coding est une forme d'art logiciel où le code fait partie intégrante de l'oeuvre, voire constitue l'oeuvre en elle-même. La discipline la plus connue en creative coding est la demoscene, qui a beaucoup marché dans les années 80-90. JavaScript fait survivre cette culture de la demoscene avec des compétitions comme la JS1k ou la js13kgames. Je suis moi-même creative coder en JS et ce talk se veut être une introduction au creative coding en JS, en exposant et expliquant les exemples les plus emblématiques et en m'attardant sur un projet sur lequel j'ai beaucoup contribué et qui reste inachevé, le Wall of Six.

Contenu

  • Introduction au creative coding: c'est quoi ? pourquoi ?
  • Le code golf et les commus JavaScript de code golf
  • La demoscene et une analyse rapide des meilleures démos des dernières JS1K
  • Les Quines en JS, présentation du quine World de Martin "aem1k" Kleppe
  • Les Polyglot en JS, présentation des travaux de Mathieu "p01" Henri
  • Le Character Subsetting, présentation de mon projet XChars et du Wall of Six
  • Conclusion et Q&A

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez : je peux toujours raccourcir au besoin mais vous savez ce que c'est, on a toujours trop de choses à dire :)

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

Le talk se veut le plus ludique possible mais des débutants risquent d'être perdus lors de certains passages d'analyse technique

À propos de vous

  • Nom et prénom : Sylvain Pollet-Villard
  • Twitter : @SylvainPV
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

Note: si ce sujet n'est pas adapté, je peux également proposer un talk sur les sujets suivants:

  • les super-pouvoirs des Proxies en JS
  • réconcilier programmation objet et programmation fonctionnelle en JS

Création et publication d'une librairie pas à pas avec Vite

Création et publication d'une librairie pas à pas avec Vite

À propos du talk

Contenu

J'ai créé un date picker dans un de mes projets, mais je vais en avoir besoin dans un autre ! Alors comment puis-je l'utiliser sans copier-coller tout mon code d'un projet à l'autre ? Je vais en faire un plugin !
Pendant ce talk, nous verrons comment créer ce plugin : comment organiser son code ? Quels réglages faire ? Comment le publier ? Comment l'utiliser ?

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Jonathan MARCO
  • Twitter : https://twitter.com/GiildoJm
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

`Cool ton tool` : Nuxt Devtools avec Elk

Cool ton tool : Nuxt Devtools avec Elk

Cool ton tool

À propos du talk

Contenu

Rapide découverte des Devtools que Nuxt (meta framework Vue) a sorti dernièrement pour rendre à son application toute la transparence qui lui manque!
Démonstration avec comme cas d'usage le projet Elk (où j'ai pu contribuer quelques fois)

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

Cypress CT - Du TDD pour les composants

Du TDD pour les composants

À propos du talk

Contenu

Chez Cypress, nous venons de livrer la version alpha de "component testing".
Ça fait longtemps qu'on a des outils pour tester des composants. En utilisant jest ou mocha, on pouvait vérifier que la logique métier fonctionne. Mais comme le tout était lancé dans JSDom, on ne voyait pas ce qu'on faisait. Les tests étaient lancés hors contexte.
Avec Cypress CT, tous les tests sont lancés dans le navigateur. Du coup, les régressions visuelles, les problèmes de rendu et les animations deviennent bien plus faciles à détecter. Et si on veut automatiser lesdites régressions visuelles, le système est déjà câblé avec Cypress.

Dans la présentation, on aura :

  • Une courte intro d'où on vient
  • Une longue démo de comment développer des composants en Test Driven Development

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Bart Ledoux
  • Twitter : @elevatebart
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

ReactNative, Jamstack, et bien plus encore

ReactNative, Jamstack, et bien plus encore

À propos du talk

Contenu

Contrairement à d'autres technologies cross-platform, ReactNative est compatible avec la Jamstack.

Sébastien nous montrera comment il intègre ReactNative à son blog, et comment il utilise le même contenu MDX sur toutes les plateformes supportées par ReactNative, sans iframe ni WebView.

Nous utiliserons un large ensemble de technologies: Gatsby, MDX, React-Native (web, iOS, Android, MacOS...), Expo, React-Navigation, Netlify...

Durée :

  • 30 minutes

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

Découvrons _ensemble_ l'écosystème UnJS

Découvrons ensemble l'écosystème UnJS

À propos du talk

30 minutes de découverte de l'écosystème UnJS et de la manière dont il peut servir aux développeurs.

Contenu

Historique, chiffres, paquets et utilisations, on passera au peigne fin UnJS d'une manière interactive et selon les volontés du public !

Durée : 30 minutes maximum

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Soubiran Estéban
  • Twitter : soubiran_
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

Developer Experience with Nuxt DevTools

Developer Experience with Nuxt DevTools

À propos du talk

Contenu

Introduction to Nuxt DevTools and how it could improve our day-to-day developer experience and help to improve our Nuxt application.

(Sorry, I am not yet fluent in French, so I will give it in English).

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Anthony Fu
  • Twitter : antfu7
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

More info about me in cased needed: https://antfu.me/giving-talks

Le futur de la validation côté serveur avec JSON schema

À propos du talk

Contenu

Brève présentation des besoins d'une validation des données côté serveur, example d'une validation manuelle pour démontré la complexité et le besoin d'avoir recours à des librairies tel que Joi (avec une comparaison des exemples situé avant)
Tout cela pour présenter JSON schema, qui est une nouvelle spécification pour la validation des données.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Chandelier Axel
  • Twitter : @chandelieraxel
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

Introduction à SolidJS

Introduction à solid js

À propos du talk

Une introduction à solid-js et à sa réactivité (fine-grained reactivity). Les avantages et différences par rapport à React.

Contenu

Le but est de faire une introduction qui explique d'abord ce qu'est solid-js, sa reactivité et le gain apporté.
Le concept général des signaux, qu'est-ce que ça comporte pour solid-js (createSignal, createEffect, state dérivé, memo)
Puis, de montrer à quoi ressemble le code et de mettre en avant les différences face à React.

Notamment :

  • Setup Component vs render Component
  • Reactivité est un concept général, contrairement au state de react qui est associé à l'instance d'un composant.
  • Le control flow : condition, boucle.

En conclusion, la reactivité dans les frameworks revient sur le devant de la scène avec des débats et implémentation runtime (vue, angular, preact, qwik) et de la réactivité via compilation (svelte, et react dans une certaine mesure avec le projet "forget" en cours d'expérimentation). C'est donc le bon moment pour s'informer sur les avantages & désavantages de celle-ci.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Cavaleiro Julien
  • Twitter : julienng_c
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

Présentation d'AdonisJS 6

Présentation d'AdonisJS 6

À propos du talk

Découverte du framework Node.js AdonisJS 6.

Contenu

On commencera par une présentation de moi même ainsi que de mon parcours. Nécessaire afin de comprendre mes avis. Par la suite une introduction au framework de mon coeur, AdonisJS 6, sera réalisée. Et si le temps nous le permet, une démonstration du framework, notament du module Transmit et possiblement Inertia.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez : Environ 1 heure (à voir après les répétitions)

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

Ionic débarque sur VueJS

Ionic débarque sur VueJS

À propos du talk

Contenu

Ionic qui permet de faire des applications proches des application natives sur smartphone a créé une version pour VueJS. Il permet en quelque ligne de code de faire des applications qui seront agnostiques de l'outils sur lequel on lit le site et surtout qui permettront d'utiliser des éléments du smartphone comme la caméra par exemple.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Jonathan Marco
  • Twitter : @GiildoJm

JavaScript prototype pollution

JavaScript prototype pollution

À propos du talk

Contenu

(je peux faire le talk en Français)

In 2018, a new attack vector against JavaScript codebases has been published: Prototype Pollution. At first glance, it seemed pretty limited in impact: it would basically be a good way to crash some code. However, multiple cases of Remote Code Executions have happened based on this vector. In this talk, we will clarify what are prototype pollutions, their real impact and of to prevent them from happening in your codebase.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

Maël Sicard-Cras: Meetup 13/03/23 lightning talk Clean Architecture

À propos du talk

Contenu

La Clean Architecture; une architecture software qui permet de rendre indépendante la couche métier des technologies utilisées.
Par conséquent, il est par example possible de changer de base de données sans avoir à changer le code de la logique métier.
Voyons comment ça fonctionne en théorie & en pratique.

Durée :

  • 5 minutes (Lightning talk)
  • 10 minutes
  • 20 minutes
  • 30 minutes
  • Précisez : 15 minutes

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Maël Sicard-Ctas
  • Twitter : n/a
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.