From 39e6699fc4ab5f7ae5fe06bcad5483c7fb2f014b Mon Sep 17 00:00:00 2001 From: Igor Laborie Date: Mon, 31 Dec 2018 11:37:38 +0100 Subject: [PATCH] wip --- .firebaserc | 5 + .gitignore | 2 +- firebase.json | 16 + package.json | 3 +- test-hugo/config.toml | 8 +- test-hugo/content/blog/cr-cfp.md | 1 + test-hugo/content/code-of-conduct.md | 2 +- test-hugo/content/schedule.md | 4 +- test-hugo/content/schedule/_index.md | 3 + .../content/speakers/alessio_coltellacci.md | 8 +- .../content/speakers/alexandre_delattre.md | 8 +- test-hugo/content/speakers/anastasia_lieva.md | 11 +- .../content/speakers/ane_diaz_de_tuesta.md | 10 +- test-hugo/content/speakers/arnaud_bos.md | 8 +- .../content/speakers/benoit_el_amrani.md | 8 +- test-hugo/content/speakers/benoit_prioux.md | 9 +- test-hugo/content/speakers/celine_louvet.md | 8 +- test-hugo/content/speakers/comet_nicolas.md | 10 +- test-hugo/content/speakers/david_gageot.md | 7 + test-hugo/content/speakers/david_pilato.md | 10 +- test-hugo/content/speakers/emmanuel_demey.md | 11 +- test-hugo/content/speakers/estelle_landry.md | 5 + test-hugo/content/speakers/fabien_tregan.md | 5 + .../content/speakers/francois_teychene.md | 11 +- .../content/speakers/frederic_cabestre.md | 10 +- test-hugo/content/speakers/giulia_bianchi.md | 11 +- .../content/speakers/guillaume_andrieu.md | 9 +- .../content/speakers/guillaume_laforge.md | 11 +- .../content/speakers/guillaume_membre.md | 8 +- .../content/speakers/horacio_gonzalez.md | 7 + .../content/speakers/hubert_sablonniere.md | 5 + .../content/speakers/jean-francois_garreau.md | 9 +- test-hugo/content/speakers/jimenez_raul.md | 7 + test-hugo/content/speakers/juliane_blier.md | 11 +- test-hugo/content/speakers/julien_topcu.md | 8 +- .../content/speakers/laurent_victorino.md | 5 + .../content/speakers/laurent_wroblewski.md | 5 + .../content/speakers/mathieu_passenaud.md | 5 + test-hugo/content/speakers/miro_miro_cupak.md | 10 +- .../content/speakers/nicolas_decoster.md | 10 +- test-hugo/content/speakers/olivier_flebus.md | 11 +- test-hugo/content/speakers/olivier_leplus.md | 10 +- .../content/speakers/philippe_charriere.md | 9 +- test-hugo/content/speakers/piotr_przybyl.md | 8 +- test-hugo/content/speakers/quentin_adam.md | 5 + test-hugo/content/speakers/robert_firek.md | 8 +- .../content/speakers/sebastien_guilloux.md | 8 +- test-hugo/content/speakers/sylvain_wallez.md | 7 + .../content/speakers/tiffany_souterre.md | 8 +- test-hugo/content/speakers/tugdual_grall.md | 10 +- test-hugo/content/speakers/victor_kropp.md | 8 +- .../content/talks/101_keynote_d_ouverture.md | 17 + .../content/talks/102_keynote_de_fermeture.md | 15 + test-hugo/content/talks/201_office_hours.md | 14 + test-hugo/content/talks/202_office_hours.md | 14 + test-hugo/content/talks/203_office_hours.md | 14 + test-hugo/content/talks/204_office_hours.md | 14 + test-hugo/content/talks/205_office_hours.md | 14 + test-hugo/content/talks/206_office_hours.md | 14 + test-hugo/content/talks/207_office_hours.md | 15 + test-hugo/content/talks/208_office_hours.md | 16 + ..._s_sketchnote___prise_de_notes_visuelle.md | 17 + ...inture_noire_karate_en_tests_d_api_rest.md | 25 + ...as_avec_capacitor____dans_le_monde_reel.md | 15 + ..._decouvrir_haskell_et_le_mettre_en_prod.md | 19 + ...evelopper_une_application_web_avec_rust.md | 17 + ...tion_fonctionnelle_sans_ceder_a_la_mode.md | 21 + ...conciliez_vous_avec_votre_documentation.md | 29 + ...s_qui_se_cachent_dans_vos_dependances__.md | 24 + ...te_dans_les_nuages_avec_un_raspberry_pi.md | 17 + ...ther_monsters___how_to_fight_with_them_.md | 21 + ...fficacement_dans_un_monde_de_conteneurs.md | 15 + ...ur_ecrire_des_applications_performantes.md | 35 + ..._retourauxsources______les_cookies_http.md | 15 + ..._l_entrainement_distribue_dans_le_cloud.md | 23 + ...s_tests_end_to_end_par_les_fonctionnels.md | 15 + ...urer_et_ameliorer_votre_performance_web.md | 20 + ...et_si_on_parlait_accessibilite_du_web__.md | 15 + ..._tensorflow__is_there_really_no_spoon__.md | 17 + ..._comment_perdre_sa_surchage_featurale__.md | 17 + .../content/talks/4340_angular_elements.md | 17 + ..._et_bosser_a_plusieurs_____et_y_arriver.md | 29 + ...event_sourcing_avec_kafka_et_kubernetes.md | 27 + ...ais_tests_d_integration_d_elasticsearch.md | 25 + .../4447_systemd__de__dev_null_a_root.md | 20 + ...eploiements_kubernetes_avec_kontemplate.md | 17 + ..._sel_ou_poivre__code__data_ou_les_deux_.md | 21 + ..._arrow___typeclass_is_the_new_interface.md | 29 + ...re_le_theoreme_de_cap_avec_apache_kafka.md | 21 + .../4515_remake_de_jeux_retro_avec_vue_js.md | 20 + ..._exploring_reactive_programming_in_java.md | 19 + .../content/talks/4574_the_big_web_quizz.md | 20 + ...ent_crafter_la_data_science_sur_mesure_.md | 22 + .../4588_multiplatfom_projects_with_kotlin.md | 19 + ...illeure_productivite_et_plus_de_partage.md | 18 + .../4613_gcp_pour_les_data_scientists.md | 15 + ...7_contextvs__stvlte___context__stupid__.md | 34 + ...miere_generation_de_pokemon_sur_gameboy.md | 19 + test-hugo/content/talks/_index.md | 4 +- test-hugo/data/location.yml | 4 +- test-hugo/data/sessions.yml | 1116 ----------------- test-hugo/data/speakers.yml | 1039 --------------- test-hugo/data/team.yml | 77 +- test-hugo/data/toolbar.yml | 6 +- .../devfest-theme-hugo/assets/style/main.scss | 14 +- .../assets/style/pages/_blog.scss | 4 - .../assets/style/pages/_code_of_conduct.scss | 4 - .../assets/style/pages/_home.scss | 26 + .../assets/style/pages/_session.scss | 132 +- .../assets/style/pages/_sessions.scss | 64 +- .../assets/style/pages/_speaker.scss | 29 +- .../assets/style/pages/_team.scss | 5 + .../assets/style/partials/_base.scss | 14 +- .../assets/style/partials/_buttons.scss | 25 +- .../assets/style/partials/_footer.scss | 18 +- .../assets/style/partials/_header.scss | 2 +- .../assets/style/partials/_main.scss | 4 +- .../assets/style/partials/_socials.scss | 9 +- .../assets/style/partials/_tags.scss | 47 + .../assets/style/partials/_type.scss | 13 + .../layouts/_default/home.html | 40 +- .../layouts/_default/list.html | 11 + .../layouts/partials/session.html | 40 + .../layouts/partials/speaker.html | 12 +- .../layouts/speakers/list.html | 4 +- .../layouts/speakers/single.html | 22 +- .../layouts/talks/list.html | 18 + .../layouts/talks/single.html | 62 + .../layouts/taxonomy/list.html | 18 + tools/extract-data.js | 21 +- tools/generate-sessions.js | 45 + tools/generate-speakers.js | 6 +- 132 files changed, 1919 insertions(+), 2348 deletions(-) create mode 100644 .firebaserc create mode 100644 firebase.json create mode 100644 test-hugo/content/schedule/_index.md create mode 100644 test-hugo/content/talks/101_keynote_d_ouverture.md create mode 100644 test-hugo/content/talks/102_keynote_de_fermeture.md create mode 100644 test-hugo/content/talks/201_office_hours.md create mode 100644 test-hugo/content/talks/202_office_hours.md create mode 100644 test-hugo/content/talks/203_office_hours.md create mode 100644 test-hugo/content/talks/204_office_hours.md create mode 100644 test-hugo/content/talks/205_office_hours.md create mode 100644 test-hugo/content/talks/206_office_hours.md create mode 100644 test-hugo/content/talks/207_office_hours.md create mode 100644 test-hugo/content/talks/208_office_hours.md create mode 100644 test-hugo/content/talks/4125_let_s_sketchnote___prise_de_notes_visuelle.md create mode 100644 test-hugo/content/talks/4128_ceinture_noire_karate_en_tests_d_api_rest.md create mode 100644 test-hugo/content/talks/4132_premiers_pas_avec_capacitor____dans_le_monde_reel.md create mode 100644 test-hugo/content/talks/4142_votre_mission___decouvrir_haskell_et_le_mettre_en_prod.md create mode 100644 test-hugo/content/talks/4195_developper_une_application_web_avec_rust.md create mode 100644 test-hugo/content/talks/4207_la_programmation_fonctionnelle_sans_ceder_a_la_mode.md create mode 100644 test-hugo/content/talks/4211_architecture_decision_records__reconciliez_vous_avec_votre_documentation.md create mode 100644 test-hugo/content/talks/4225_detectez_et_trackez_les_zergs_qui_se_cachent_dans_vos_dependances__.md create mode 100644 test-hugo/content/talks/4231_la_tete_dans_les_nuages_avec_un_raspberry_pi.md create mode 100644 test-hugo/content/talks/4282_agile__craftsmanship__devops_and_other_monsters___how_to_fight_with_them_.md create mode 100644 test-hugo/content/talks/4305_google_container_tools___developper_efficacement_dans_un_monde_de_conteneurs.md create mode 100644 test-hugo/content/talks/4306_s_aider_du_data_oriented_design_pour_ecrire_des_applications_performantes.md create mode 100644 test-hugo/content/talks/4307__retourauxsources______les_cookies_http.md create mode 100644 test-hugo/content/talks/4312_des_apis_de_machine_learning_sur_etagere__a_l_entrainement_distribue_dans_le_cloud.md create mode 100644 test-hugo/content/talks/4313_tests_bdd__faites_rediger_vos_tests_end_to_end_par_les_fonctionnels.md create mode 100644 test-hugo/content/talks/4322_lighthouse___mesurer_et_ameliorer_votre_performance_web.md create mode 100644 test-hugo/content/talks/4331_et_si_on_parlait_accessibilite_du_web__.md create mode 100644 test-hugo/content/talks/4334_tensorflow__is_there_really_no_spoon__.md create mode 100644 test-hugo/content/talks/4338_comment_perdre_sa_surchage_featurale__.md create mode 100644 test-hugo/content/talks/4340_angular_elements.md create mode 100644 test-hugo/content/talks/4349_comment_t_organiser_quand_tu_es_b____lique_de_naissance__et_depuis_des_decennies___que_tu_as_plusieurs_jobs__ou_projets___sans_exploser_en_vol_____et_bosser_a_plusieurs_____et_y_arriver.md create mode 100644 test-hugo/content/talks/4420_decouvrir_par_l_exemple__microservices_et_event_sourcing_avec_kafka_et_kubernetes.md create mode 100644 test-hugo/content/talks/4432_testcontainers_pour_de_vrais_tests_d_integration_d_elasticsearch.md create mode 100644 test-hugo/content/talks/4447_systemd__de__dev_null_a_root.md create mode 100644 test-hugo/content/talks/4457_template_de_deploiements_kubernetes_avec_kontemplate.md create mode 100644 test-hugo/content/talks/4473_burger_quiz_s_invite_au_devfest_avec_un_sel_ou_poivre__code__data_ou_les_deux_.md create mode 100644 test-hugo/content/talks/4507_introduction_a_arrow___typeclass_is_the_new_interface.md create mode 100644 test-hugo/content/talks/4509_comprendre_le_theoreme_de_cap_avec_apache_kafka.md create mode 100644 test-hugo/content/talks/4515_remake_de_jeux_retro_avec_vue_js.md create mode 100644 test-hugo/content/talks/4528_exploring_reactive_programming_in_java.md create mode 100644 test-hugo/content/talks/4574_the_big_web_quizz.md create mode 100644 test-hugo/content/talks/4584_pourquoi_et_comment_crafter_la_data_science_sur_mesure_.md create mode 100644 test-hugo/content/talks/4588_multiplatfom_projects_with_kotlin.md create mode 100644 test-hugo/content/talks/4593_angular_schematics_pour_une_meilleure_productivite_et_plus_de_partage.md create mode 100644 test-hugo/content/talks/4613_gcp_pour_les_data_scientists.md create mode 100644 test-hugo/content/talks/4617_contextvs__stvlte___context__stupid__.md create mode 100644 test-hugo/content/talks/5000_the_old_man_glitch___escalade_de_bug_sur_la_premiere_generation_de_pokemon_sur_gameboy.md delete mode 100644 test-hugo/data/sessions.yml delete mode 100644 test-hugo/data/speakers.yml create mode 100644 test-hugo/themes/devfest-theme-hugo/assets/style/partials/_tags.scss create mode 100644 test-hugo/themes/devfest-theme-hugo/assets/style/partials/_type.scss create mode 100644 test-hugo/themes/devfest-theme-hugo/layouts/partials/session.html create mode 100644 test-hugo/themes/devfest-theme-hugo/layouts/talks/list.html create mode 100644 test-hugo/themes/devfest-theme-hugo/layouts/talks/single.html create mode 100644 test-hugo/themes/devfest-theme-hugo/layouts/taxonomy/list.html create mode 100644 tools/generate-sessions.js diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 0000000..5c52017 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "sandbox-devfesttoulouse" + } +} diff --git a/.gitignore b/.gitignore index 2a29273..557478e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ _gen/ test-hugo/themes/ananke/ test-hugo/public/ node_modules/ - +.firebase/ \ No newline at end of file diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..1360eb7 --- /dev/null +++ b/firebase.json @@ -0,0 +1,16 @@ +{ + "hosting": { + "public": "test-hugo/public", + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ], + "rewrites": [ + { + "source": "**", + "destination": "/index.html" + } + ] + } +} diff --git a/package.json b/package.json index 2b5230f..692e08e 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "scripts": { "extract-data": "node tools/extract-data.js", "speakers": "node tools/generate-speakers.js", - "publish": "echo 'TODO: firebase deploy'", + "sessions": "node tools/generate-sessions.js", + "publish": "firebase deploy", "publish:prod": "echo 'TODO: firebase deploy -P devfest-prod'" }, "devDependencies": { diff --git a/test-hugo/config.toml b/test-hugo/config.toml index 93d70e7..7cf6675 100644 --- a/test-hugo/config.toml +++ b/test-hugo/config.toml @@ -1,4 +1,4 @@ -baseURL = "http://devfesttoulouse.fr/" +baseURL = "https://sandbox-devfesttoulouse.firebaseapp.com/" languageCode = "fr-FR" title = "Devfest Toulouse 2019" @@ -23,6 +23,7 @@ googleAnalytics = "UA-37717223-7" images = ["/images/logo.svg", "/images/logo-monochrome.svg"] email = "contact@devfesttoulouse.fr" keywords = "event, gdg, gde, devfest, google, programming, android, chrome, polymer, developers, web, cloud, androiddev" + googleMapsAPIKey = "AIzaSyAsYarycfx4sV9QhauT5li-63snSTqoJ3g" [params.logos] header = "/images/logo.svg" @@ -30,11 +31,6 @@ googleAnalytics = "UA-37717223-7" [taxonomies] tag = "tags" - category = "categories" - type = "types" - complexity = "complexities" - language = "languages" - [privacy] [privacy.disqus] diff --git a/test-hugo/content/blog/cr-cfp.md b/test-hugo/content/blog/cr-cfp.md index 401d5c9..24a9033 100644 --- a/test-hugo/content/blog/cr-cfp.md +++ b/test-hugo/content/blog/cr-cfp.md @@ -41,6 +41,7 @@ Bon, on ne va pas vous mentir, il est possible que cette liste évolue légèrem Nous vous en informerons aussi sur notre compte Twitter @DevFestToulouse . Pour les sujets, allez, on est sympa, on vous dit tout : + * Ceinture noire Karate en tests d’API REST * Premiers pas avec Capacitor... dans le monde réel * Votre mission ? Découvrir Haskell et le mettre en prod diff --git a/test-hugo/content/code-of-conduct.md b/test-hugo/content/code-of-conduct.md index 2f7653a..275fa9b 100644 --- a/test-hugo/content/code-of-conduct.md +++ b/test-hugo/content/code-of-conduct.md @@ -52,4 +52,4 @@ We expect all community participants to abide by this Code of Conduct in all com ## 7. Contact info -- + diff --git a/test-hugo/content/schedule.md b/test-hugo/content/schedule.md index 11d588a..5d6cc40 100644 --- a/test-hugo/content/schedule.md +++ b/test-hugo/content/schedule.md @@ -1,4 +1,6 @@ --- --- -# Schedule \ No newline at end of file +# Schedule + +TODO \ No newline at end of file diff --git a/test-hugo/content/schedule/_index.md b/test-hugo/content/schedule/_index.md new file mode 100644 index 0000000..097378c --- /dev/null +++ b/test-hugo/content/schedule/_index.md @@ -0,0 +1,3 @@ +--- +title: Programme +--- \ No newline at end of file diff --git a/test-hugo/content/speakers/alessio_coltellacci.md b/test-hugo/content/speakers/alessio_coltellacci.md index 19744f2..ee025d2 100644 --- a/test-hugo/content/speakers/alessio_coltellacci.md +++ b/test-hugo/content/speakers/alessio_coltellacci.md @@ -2,9 +2,9 @@ id: alessio_coltellacci name: Alessio Coltellacci company: Clever Cloud -companyLogo: /images/speakers/company/clever_cloud.jpg -country: 'Toulouse, France' +featured: false photo: /images/speakers/alessio_coltellacci.jpg +photoUrl: /images/speakers/alessio_coltellacci.jpg socials: - icon: twitter link: 'https://twitter.com/lightplay8' @@ -12,6 +12,10 @@ socials: - icon: github link: 'https://github.com/NotBad4U' name: NotBad4U +shortBio: "Someone who thinks that #rust will rule the world. System developer at @clever_cloud \U0001F525\U0001F389" +companyLogo: /images/speakers/company/clever_cloud.jpg +companyLogoUrl: /images/speakers/company/clever_cloud.jpg +country: 'Toulouse, France' --- diff --git a/test-hugo/content/speakers/alexandre_delattre.md b/test-hugo/content/speakers/alexandre_delattre.md index ebdd820..ab82da7 100644 --- a/test-hugo/content/speakers/alexandre_delattre.md +++ b/test-hugo/content/speakers/alexandre_delattre.md @@ -2,13 +2,17 @@ id: alexandre_delattre name: Alexandre Delattre company: MonkeyPatch -companyLogo: /images/speakers/company/monkeypatch.jpg -country: 'Toulouse, France' +featured: false photo: /images/speakers/alexandre_delattre.jpg +photoUrl: /images/speakers/alexandre_delattre.jpg socials: - icon: twitter link: 'https://twitter.com/alexandre_del31' name: '@alexandre_del31' +shortBio: Software engineer at @MonkeyPatch. Functional programming enthusiast +companyLogo: /images/speakers/company/monkeypatch.jpg +companyLogoUrl: /images/speakers/company/monkeypatch.jpg +country: 'Toulouse, France' --- diff --git a/test-hugo/content/speakers/anastasia_lieva.md b/test-hugo/content/speakers/anastasia_lieva.md index 8ee70f8..ac8f8e8 100644 --- a/test-hugo/content/speakers/anastasia_lieva.md +++ b/test-hugo/content/speakers/anastasia_lieva.md @@ -2,13 +2,20 @@ id: anastasia_lieva name: Anastasia Lieva company: Comwatt -companyLogo: /images/speakers/company/comwatt.jpg -country: Solar System +featured: false photo: /images/speakers/anastasia_lieva.jpg +photoUrl: /images/speakers/anastasia_lieva.jpg socials: - icon: twitter link: 'https://twitter.com/lievAnastazia' name: '@lievAnastazia' +shortBio: >- + #FuZzy humanist, Data Science Witch, Lambda Whisperer | Learning (machine, + human or whatever) | former couturier | permaculture newbie | for a better + world +companyLogo: /images/speakers/company/comwatt.jpg +companyLogoUrl: /images/speakers/company/comwatt.jpg +country: Solar System --- diff --git a/test-hugo/content/speakers/ane_diaz_de_tuesta.md b/test-hugo/content/speakers/ane_diaz_de_tuesta.md index 5a502dc..51b2117 100644 --- a/test-hugo/content/speakers/ane_diaz_de_tuesta.md +++ b/test-hugo/content/speakers/ane_diaz_de_tuesta.md @@ -2,9 +2,9 @@ id: ane_diaz_de_tuesta name: Ane DIAZ DE TUESTA company: Lectra -companyLogo: /images/speakers/company/lectra.jpg -country: 'Bordeaux, France' +featured: false photo: /images/speakers/ane_diaz_de_tuesta.jpg +photoUrl: /images/speakers/ane_diaz_de_tuesta.jpg socials: - icon: twitter link: 'https://twitter.com/ane_naiz' @@ -17,6 +17,12 @@ socials: https://www.linkedin.com/in/ane-diaz-de-tuesta-37785252, http://anediaz.com/ name: LinkedIn +shortBio: >- + #OpenMinded #travelling #Agile #Sport . @LectraFashion Web Developer + http://www.anediaz.com +companyLogo: /images/speakers/company/lectra.jpg +companyLogoUrl: /images/speakers/company/lectra.jpg +country: 'Bordeaux, France' --- diff --git a/test-hugo/content/speakers/arnaud_bos.md b/test-hugo/content/speakers/arnaud_bos.md index 76cc038..b1b5175 100644 --- a/test-hugo/content/speakers/arnaud_bos.md +++ b/test-hugo/content/speakers/arnaud_bos.md @@ -2,9 +2,9 @@ id: arnaud_bos name: Arnaud BOS company: MonkeyPatch -companyLogo: /images/speakers/company/monkeypatch.jpg -country: 'Toulouse, France' +featured: false photo: /images/speakers/arnaud_bos.jpg +photoUrl: /images/speakers/arnaud_bos.jpg socials: - icon: twitter link: 'https://twitter.com/arnaud_bos' @@ -12,6 +12,10 @@ socials: - icon: github link: 'https://github.com/arnaudbos' name: arnaudbos +shortBio: "Clojure as heck. Distributed systems. Podcasts. Can write backwards \U0001F643" +companyLogo: /images/speakers/company/monkeypatch.jpg +companyLogoUrl: /images/speakers/company/monkeypatch.jpg +country: 'Toulouse, France' --- diff --git a/test-hugo/content/speakers/benoit_el_amrani.md b/test-hugo/content/speakers/benoit_el_amrani.md index 71ff482..de7f75b 100644 --- a/test-hugo/content/speakers/benoit_el_amrani.md +++ b/test-hugo/content/speakers/benoit_el_amrani.md @@ -2,9 +2,9 @@ id: benoit_el_amrani name: Benoit El Amrani company: Informatique Banque Populaire -companyLogo: /images/speakers/company/i-bp.png -country: 'Toulouse, France' +featured: false photo: /images/speakers/benoit_el_amrani.jpg +photoUrl: /images/speakers/benoit_el_amrani.jpg socials: - icon: twitter link: 'https://twitter.com/bentah31' @@ -12,6 +12,10 @@ socials: - icon: github link: 'https://github.com/belamrani' name: belamrani +shortBio: Mobile & Web Developer +companyLogo: /images/speakers/company/i-bp.png +companyLogoUrl: /images/speakers/company/i-bp.png +country: 'Toulouse, France' --- diff --git a/test-hugo/content/speakers/benoit_prioux.md b/test-hugo/content/speakers/benoit_prioux.md index c8b6997..6a71025 100644 --- a/test-hugo/content/speakers/benoit_prioux.md +++ b/test-hugo/content/speakers/benoit_prioux.md @@ -2,9 +2,9 @@ id: benoit_prioux name: Benoit PRIOUX company: Lectra -companyLogo: /images/speakers/company/lectra.jpg -country: 'Bordeaux, France' +featured: false photo: /images/speakers/benoit_prioux.png +photoUrl: /images/speakers/benoit_prioux.png socials: - icon: twitter link: 'https://twitter.com/binout' @@ -12,6 +12,11 @@ socials: - icon: github link: 'https://github.com/binout' name: binout +shortBio: 'Enthusiast Software Developer #java #kotlin #tdd #ddd #lectra' +companyLogo: /images/speakers/company/lectra.jpg +companyLogoUrl: /images/speakers/company/lectra.jpg +country: 'Bordeaux, France' +title: '' --- diff --git a/test-hugo/content/speakers/celine_louvet.md b/test-hugo/content/speakers/celine_louvet.md index 3a501e1..8d7ea3d 100644 --- a/test-hugo/content/speakers/celine_louvet.md +++ b/test-hugo/content/speakers/celine_louvet.md @@ -2,9 +2,9 @@ id: celine_louvet name: Céline LOUVET company: Fairvioo -companyLogo: /images/speakers/company/fairvioo.jpg -country: Île-de-France +featured: false photo: /images/speakers/celine_louvet.jpg +photoUrl: /images/speakers/celine_louvet.jpg socials: - icon: twitter link: 'https://twitter.com/celine_louvet' @@ -15,6 +15,10 @@ socials: - icon: linkedin link: 'https://www.linkedin.com/in/celinelouvet/' name: LinkedIn +shortBio: CTO @Fairvioo. Ex-CTO @CaptainContrat & Ex-@Sfeir +companyLogo: /images/speakers/company/fairvioo.jpg +companyLogoUrl: /images/speakers/company/fairvioo.jpg +country: Île-de-France --- diff --git a/test-hugo/content/speakers/comet_nicolas.md b/test-hugo/content/speakers/comet_nicolas.md index bcf2fc8..ca454fc 100644 --- a/test-hugo/content/speakers/comet_nicolas.md +++ b/test-hugo/content/speakers/comet_nicolas.md @@ -2,9 +2,9 @@ id: comet_nicolas name: Nicolas Comet company: Lectra -companyLogo: /images/speakers/company/lectra.jpg -country: 'Bordeaux, France' +featured: false photo: /images/speakers/comet_nicolas.jpg +photoUrl: /images/speakers/comet_nicolas.jpg socials: - icon: twitter link: 'https://twitter.com/NicolasComet' @@ -15,6 +15,12 @@ socials: - icon: linkedin link: 'https://www.linkedin.com/in/nicolascomet/' name: LinkedIn +shortBio: >- + Software #developer @LectraOfficial Conference #speaker, All opinions are + eventually someone’s +companyLogo: /images/speakers/company/lectra.jpg +companyLogoUrl: /images/speakers/company/lectra.jpg +country: 'Bordeaux, France' --- diff --git a/test-hugo/content/speakers/david_gageot.md b/test-hugo/content/speakers/david_gageot.md index e2fef11..61e80a3 100644 --- a/test-hugo/content/speakers/david_gageot.md +++ b/test-hugo/content/speakers/david_gageot.md @@ -1,10 +1,16 @@ --- id: david_gageot name: David Gageot +shortBio: >- + Developer Advocate @Google Cloud. I run Docker in Docker in Docker... + recursively company: Google companyLogo: /images/speakers/company/google.svg +companyLogoUrl: /images/speakers/company/google.svg country: 'Paris, France' +featured: true photo: /images/speakers/david_gageot.jpg +photoUrl: /images/speakers/david_gageot.jpg socials: - icon: twitter link: 'https://twitter.com/dgageot' @@ -12,6 +18,7 @@ socials: - icon: github link: 'https://github.com/dgageot' name: dgageot +title: Developer Advocate @ Google --- diff --git a/test-hugo/content/speakers/david_pilato.md b/test-hugo/content/speakers/david_pilato.md index 989adcb..18f6c32 100644 --- a/test-hugo/content/speakers/david_pilato.md +++ b/test-hugo/content/speakers/david_pilato.md @@ -2,9 +2,9 @@ id: david_pilato name: David Pilato company: elastic -companyLogo: /images/speakers/company/elastic.jpg -country: France +featured: false photo: /images/speakers/david_pilato.jpg +photoUrl: /images/speakers/david_pilato.jpg socials: - icon: twitter link: 'https://twitter.com/dadoonet' @@ -12,6 +12,12 @@ socials: - icon: github link: 'https://github.com/dadoonet' name: dadoonet +shortBio: >- + developer | evangelist @ elastic Enjoying NoSQL world, DeeJay 4 times a year, + just for fun ! http://bit.ly/IixwIh +companyLogo: /images/speakers/company/elastic.jpg +companyLogoUrl: /images/speakers/company/elastic.jpg +country: France --- diff --git a/test-hugo/content/speakers/emmanuel_demey.md b/test-hugo/content/speakers/emmanuel_demey.md index 1882c93..e1bccda 100644 --- a/test-hugo/content/speakers/emmanuel_demey.md +++ b/test-hugo/content/speakers/emmanuel_demey.md @@ -2,9 +2,9 @@ id: emmanuel_demey name: Emmanuel DEMEY company: Zenika -companyLogo: /images/speakers/company/zenika.jpg -country: 'Lille, France' +featured: false photo: /images/speakers/emmanuel_demey.jpg +photoUrl: /images/speakers/emmanuel_demey.jpg socials: - icon: twitter link: 'https://twitter.com/EmmanuelDemey' @@ -12,6 +12,13 @@ socials: - icon: github link: 'https://github.com/Gillespie59' name: Gillespie59 +shortBio: >- + CTO at @ZenikaLille - Google Developer Expert @GoogleDevExpert - Web + Specialist - Speaker and Trainer, Organizer of #DevFestLille - @GDGLille - + Lille +companyLogo: /images/speakers/company/zenika.jpg +companyLogoUrl: /images/speakers/company/zenika.jpg +country: 'Lille, France' --- diff --git a/test-hugo/content/speakers/estelle_landry.md b/test-hugo/content/speakers/estelle_landry.md index 65c7c5b..d44e0a1 100644 --- a/test-hugo/content/speakers/estelle_landry.md +++ b/test-hugo/content/speakers/estelle_landry.md @@ -1,14 +1,19 @@ --- id: estelle_landry name: Estelle Landry +shortBio: Passionnée d'UX Product Owner chez Elium company: Elium companyLogo: /images/speakers/company/elium.jpg +companyLogoUrl: /images/speakers/company/elium.jpg country: 'Montpellier, France' +featured: true photo: /images/speakers/estelle_landry.jpg +photoUrl: /images/speakers/estelle_landry.jpg socials: - icon: twitter link: 'https://twitter.com/estelandry' name: '@estelandry' +title: Product Owner --- diff --git a/test-hugo/content/speakers/fabien_tregan.md b/test-hugo/content/speakers/fabien_tregan.md index b4a27a9..3d74e5c 100644 --- a/test-hugo/content/speakers/fabien_tregan.md +++ b/test-hugo/content/speakers/fabien_tregan.md @@ -1,9 +1,14 @@ --- id: fabien_tregan name: Fabien Tregan +shortBio: >- + Not trying to reach perfection. Just more or less walking toward it, trying to + enjoy the landscape meanwhile. company: Freelance country: 'Toulouse, France' +featured: false photo: /images/speakers/fabien_tregan.jpg +photoUrl: /images/speakers/fabien_tregan.jpg socials: - icon: twitter link: 'https://twitter.com/ftregan' diff --git a/test-hugo/content/speakers/francois_teychene.md b/test-hugo/content/speakers/francois_teychene.md index b545f06..582be1a 100644 --- a/test-hugo/content/speakers/francois_teychene.md +++ b/test-hugo/content/speakers/francois_teychene.md @@ -2,9 +2,9 @@ id: francois_teychene name: Francois Teychene company: Saagie -companyLogo: /images/speakers/company/saagie.jpg -country: 'Montpellier, France' +featured: false photo: /images/speakers/francois_teychene.jpg +photoUrl: /images/speakers/francois_teychene.jpg socials: - icon: twitter link: 'https://twitter.com/fteychene' @@ -12,6 +12,13 @@ socials: - icon: github link: 'https://github.com/fteychene' name: fteychene +shortBio: >- + Cloud dev @saagie_io, @MtpTechHub President, @SunnyTech_MTP organiser, + Speaker, Teacher... #Devops #Rust #Scala enthusiast. Opinions are mine not of + my employer +companyLogo: /images/speakers/company/saagie.jpg +companyLogoUrl: /images/speakers/company/saagie.jpg +country: 'Montpellier, France' --- diff --git a/test-hugo/content/speakers/frederic_cabestre.md b/test-hugo/content/speakers/frederic_cabestre.md index 3c4c6ae..2385887 100644 --- a/test-hugo/content/speakers/frederic_cabestre.md +++ b/test-hugo/content/speakers/frederic_cabestre.md @@ -2,9 +2,9 @@ id: frederic_cabestre name: Frédéric Cabestre company: Easy Mile -companyLogo: /images/speakers/company/easy_mile.jpg -country: 'Toulouse, France' +featured: false photo: /images/speakers/frederic_cabestre.png +photoUrl: /images/speakers/frederic_cabestre.png socials: - icon: twitter link: 'https://twitter.com/fcabestre' @@ -12,6 +12,12 @@ socials: - icon: github link: 'https://github.com/fcabestre' name: fcabestre +shortBio: >- + NaN, craftsman of code, nomad of knowledge and λ juggler. I work at + @Easy_Mile. +companyLogo: /images/speakers/company/easy_mile.jpg +companyLogoUrl: /images/speakers/company/easy_mile.jpg +country: 'Toulouse, France' --- diff --git a/test-hugo/content/speakers/giulia_bianchi.md b/test-hugo/content/speakers/giulia_bianchi.md index e841b99..2b93969 100644 --- a/test-hugo/content/speakers/giulia_bianchi.md +++ b/test-hugo/content/speakers/giulia_bianchi.md @@ -2,9 +2,9 @@ id: giulia_bianchi name: Giulia Bianchi company: Xebia -companyLogo: /images/speakers/company/xebia.jpg -country: 'Paris, France' +featured: false photo: /images/speakers/giulia_bianchi.jpg +photoUrl: /images/speakers/giulia_bianchi.jpg socials: - icon: twitter link: 'https://twitter.com/Giuliabianchl' @@ -12,6 +12,13 @@ socials: - icon: github link: 'https://github.com/giulbia' name: giulbia +shortBio: >- + Data scientist @XebiaFr, organising http://dataxday.fr/ , writing + https://blog.xebia.fr , coding https://github.com/giulbia . Doing a lot of + other stuff +companyLogo: /images/speakers/company/xebia.jpg +companyLogoUrl: /images/speakers/company/xebia.jpg +country: 'Paris, France' --- diff --git a/test-hugo/content/speakers/guillaume_andrieu.md b/test-hugo/content/speakers/guillaume_andrieu.md index bfcada5..4dc53e8 100644 --- a/test-hugo/content/speakers/guillaume_andrieu.md +++ b/test-hugo/content/speakers/guillaume_andrieu.md @@ -2,13 +2,18 @@ id: guillaume_andrieu name: Guillaume ANDRIEU company: MonkeyPatch -companyLogo: /images/speakers/company/monkeypatch.jpg -country: 'Toulouse, France' +featured: false photo: /images/speakers/guillaume_andrieu.jpg +photoUrl: /images/speakers/guillaume_andrieu.jpg socials: - icon: twitter link: 'https://twitter.com/glmxndr' name: '@glmxndr' +shortBio: FP enthusiast +companyLogo: /images/speakers/company/monkeypatch.jpg +companyLogoUrl: /images/speakers/company/monkeypatch.jpg +country: 'Toulouse, France' +title: '' --- diff --git a/test-hugo/content/speakers/guillaume_laforge.md b/test-hugo/content/speakers/guillaume_laforge.md index 786779b..a65891d 100644 --- a/test-hugo/content/speakers/guillaume_laforge.md +++ b/test-hugo/content/speakers/guillaume_laforge.md @@ -2,9 +2,9 @@ id: guillaume_laforge name: Guillaume Laforge company: Google -companyLogo: /images/speakers/company/google.jpg -country: 'Paris, France' +featured: false photo: /images/speakers/guillaume_laforge.jpeg +photoUrl: /images/speakers/guillaume_laforge.jpeg socials: - icon: twitter link: 'https://twitter.com/glaforge' @@ -12,6 +12,13 @@ socials: - icon: github link: 'https://github.com/glaforge' name: glaforge +shortBio: >- + Developer Advocate at @Google for @GoogleCloud during the day, and + @ApacheGroovy programming language project PMC Chair & @java_champions at + night +companyLogo: /images/speakers/company/google.jpg +companyLogoUrl: /images/speakers/company/google.jpg +country: 'Paris, France' --- diff --git a/test-hugo/content/speakers/guillaume_membre.md b/test-hugo/content/speakers/guillaume_membre.md index f0ea143..1068f02 100644 --- a/test-hugo/content/speakers/guillaume_membre.md +++ b/test-hugo/content/speakers/guillaume_membre.md @@ -2,9 +2,9 @@ id: guillaume_membre name: Guillaume Membré company: Zenika -companyLogo: /images/speakers/company/zenika.jpg -country: 'Nantes, France' +featured: false photo: /images/speakers/guillaume_membre.jpg +photoUrl: /images/speakers/guillaume_membre.jpg socials: - icon: twitter link: 'https://twitter.com/GuillaumeMembre' @@ -12,6 +12,10 @@ socials: - icon: github link: 'https://github.com/gmembre-zenika' name: gmembre-zenika +shortBio: Codeur à ses heures perdues +companyLogo: /images/speakers/company/zenika.jpg +companyLogoUrl: /images/speakers/company/zenika.jpg +country: 'Nantes, France' --- diff --git a/test-hugo/content/speakers/horacio_gonzalez.md b/test-hugo/content/speakers/horacio_gonzalez.md index 95f4f1f..27a50bd 100644 --- a/test-hugo/content/speakers/horacio_gonzalez.md +++ b/test-hugo/content/speakers/horacio_gonzalez.md @@ -1,10 +1,16 @@ --- id: horacio_gonzalez name: Horacio Gonzalez +shortBio: >- + Spaniard lost in Brittany, coder, dreamer and all-around geek - #DevRel @ovh + -@Warp10io contributor - #Polymer & #Flutter @GoogleDevExpert - @FinistDevs company: OVH companyLogo: /images/speakers/company/ovh.jpg +companyLogoUrl: /images/speakers/company/ovh.jpg country: 'Brittany, France' +featured: true photo: /images/speakers/horacio_gonzalez.jpg +photoUrl: /images/speakers/horacio_gonzalez.jpg socials: - icon: twitter link: 'https://twitter.com/LostInBrittany' @@ -12,6 +18,7 @@ socials: - icon: github link: 'https://github.com/LostInBrittany' name: LostInBrittany +title: DevRel @ovh --- diff --git a/test-hugo/content/speakers/hubert_sablonniere.md b/test-hugo/content/speakers/hubert_sablonniere.md index 562631a..5b4e2c9 100644 --- a/test-hugo/content/speakers/hubert_sablonniere.md +++ b/test-hugo/content/speakers/hubert_sablonniere.md @@ -1,10 +1,14 @@ --- id: hubert_sablonniere name: Hubert Sablonnière +shortBio: "\U0001F61C Curious and passionate Web developer working for @clever_cloud" company: Clever Cloud companyLogo: /images/speakers/company/clever_cloud.png +companyLogoUrl: /images/speakers/company/clever_cloud.png country: 'Lille, France' +featured: true photo: /images/speakers/hubert_sablonniere.jpg +photoUrl: /images/speakers/hubert_sablonniere.jpg socials: - icon: twitter link: 'https://twitter.com/hsablonniere' @@ -12,6 +16,7 @@ socials: - icon: github link: 'https://github.com/hsablonniere' name: hsablonniere +title: Web developer --- diff --git a/test-hugo/content/speakers/jean-francois_garreau.md b/test-hugo/content/speakers/jean-francois_garreau.md index 461c2ae..97047f1 100644 --- a/test-hugo/content/speakers/jean-francois_garreau.md +++ b/test-hugo/content/speakers/jean-francois_garreau.md @@ -2,9 +2,9 @@ id: jean-francois_garreau name: Jean-francois Garreau company: Sfeir -companyLogo: /images/speakers/company/sfeir.jpg -country: 'Nantes, France' +featured: false photo: /images/speakers/jean-francois_garreau.jpg +photoUrl: /images/speakers/jean-francois_garreau.jpg socials: - icon: twitter link: 'https://twitter.com/jefBinomed' @@ -12,6 +12,11 @@ socials: - icon: github link: 'https://github.com/jefBinomed' name: jefBinomed +shortBio: "GDG Nantes Leader @gdgnantes \U0001F418 / @nanteswit \U0001F469‍\U0001F4BB / #devoxx4Kids / #GDE Web / developer and proud to be a dev @sfeir \U0001F468‍\U0001F4BB / curious geek" +companyLogo: /images/speakers/company/sfeir.jpg +companyLogoUrl: /images/speakers/company/sfeir.jpg +country: 'Nantes, France' +title: '' --- diff --git a/test-hugo/content/speakers/jimenez_raul.md b/test-hugo/content/speakers/jimenez_raul.md index ba0b69e..253e6d4 100644 --- a/test-hugo/content/speakers/jimenez_raul.md +++ b/test-hugo/content/speakers/jimenez_raul.md @@ -1,10 +1,16 @@ --- id: jimenez_raul name: Raúl Jiménez +shortBio: >- + Software Engineer @toptalllc / #Angular @Google Developer Expert / Creator of + Videogular company: Google Developer Expert companyLogo: /images/speakers/company/gde.jpg +companyLogoUrl: /images/speakers/company/gde.jpg country: 'Barcelona, Spain' +featured: true photo: /images/speakers/raul_jimenez.png +photoUrl: /images/speakers/raul_jimenez.png socials: - icon: twitter link: 'https://twitter.com/elecash' @@ -12,6 +18,7 @@ socials: - icon: github link: 'https://github.com/elecash' name: elecash +title: GDE --- diff --git a/test-hugo/content/speakers/juliane_blier.md b/test-hugo/content/speakers/juliane_blier.md index de63228..f5ad4d2 100644 --- a/test-hugo/content/speakers/juliane_blier.md +++ b/test-hugo/content/speakers/juliane_blier.md @@ -2,9 +2,9 @@ id: juliane_blier name: Juliane Blier company: SchoolMouv -companyLogo: /images/speakers/company/schoolmouv.jpg -country: 'Toulouse, France' +featured: false photo: /images/speakers/juliane_blier.jpg +photoUrl: /images/speakers/juliane_blier.jpg socials: - icon: twitter link: 'https://twitter.com/tactless7' @@ -12,6 +12,13 @@ socials: - icon: github link: 'https://github.com/Tactless7' name: Tactless7 +shortBio: >- + Développeuse Web, Amoureuse de Vuejs, Node et PHP, Curieuse de nouvelles + découvertes +companyLogo: /images/speakers/company/schoolmouv.jpg +companyLogoUrl: /images/speakers/company/schoolmouv.jpg +country: 'Toulouse, France' +title: '' --- diff --git a/test-hugo/content/speakers/julien_topcu.md b/test-hugo/content/speakers/julien_topcu.md index a0b680c..b8d8b7a 100644 --- a/test-hugo/content/speakers/julien_topcu.md +++ b/test-hugo/content/speakers/julien_topcu.md @@ -2,9 +2,9 @@ id: julien_topcu name: Julien Topçu company: Société Générale & OWASP fundation -companyLogo: /images/speakers/company/societe_generale.png -country: 'Île-de-France, France' +featured: false photo: /images/speakers/julien_topcu.jpeg +photoUrl: /images/speakers/julien_topcu.jpeg socials: - icon: twitter link: 'https://twitter.com/JulienTopcu' @@ -14,6 +14,10 @@ socials: https://www.linkedin.com/in/julien-top%C3%A7u/, https://beyondxscratch.wordpress.com/ name: LinkedIn +shortBio: Catalyst @SociétéGénérale OWASP Fundation member +companyLogo: /images/speakers/company/societe_generale.png +companyLogoUrl: /images/speakers/company/societe_generale.png +country: 'Île-de-France, France' --- diff --git a/test-hugo/content/speakers/laurent_victorino.md b/test-hugo/content/speakers/laurent_victorino.md index 178145d..e0fad3d 100644 --- a/test-hugo/content/speakers/laurent_victorino.md +++ b/test-hugo/content/speakers/laurent_victorino.md @@ -1,10 +1,14 @@ --- id: laurent_victorino name: Laurent Victorino +shortBio: Curious Video Game Developer company: Monkey Moon companyLogo: /images/speakers/company/monkey_moon.png +companyLogoUrl: /images/speakers/company/monkey_moon.png country: 'Lyon, France' +featured: true photo: /images/speakers/laurent_victorino.jpg +photoUrl: /images/speakers/laurent_victorino.jpg socials: - icon: twitter link: 'https://twitter.com/on_code' @@ -12,6 +16,7 @@ socials: - icon: github link: 'https://github.com/lvictorino' name: lvictorino +title: Video Game Developer --- diff --git a/test-hugo/content/speakers/laurent_wroblewski.md b/test-hugo/content/speakers/laurent_wroblewski.md index 4b9370f..37144f2 100644 --- a/test-hugo/content/speakers/laurent_wroblewski.md +++ b/test-hugo/content/speakers/laurent_wroblewski.md @@ -1,10 +1,14 @@ --- id: laurent_wroblewski name: Laurent Wroblewski +shortBio: Ingénieur développement full stack depuis maintenant près de 9 ans company: Davidson Consulting companyLogo: /images/speakers/company/davidson_consulting.jpg +companyLogoUrl: /images/speakers/company/davidson_consulting.jpg country: 'Toulouse, France' +featured: true photo: /images/speakers/laurent_wroblewski.jpg +photoUrl: /images/speakers/laurent_wroblewski.jpg socials: - icon: twitter link: 'https://twitter.com/@LaurentWrob' @@ -12,6 +16,7 @@ socials: - icon: github link: 'https://github.com/LWroblewski' name: LWroblewski +title: Ingénieur développement full stack --- diff --git a/test-hugo/content/speakers/mathieu_passenaud.md b/test-hugo/content/speakers/mathieu_passenaud.md index 2667928..f8b0709 100644 --- a/test-hugo/content/speakers/mathieu_passenaud.md +++ b/test-hugo/content/speakers/mathieu_passenaud.md @@ -1,10 +1,14 @@ --- id: mathieu_passenaud name: Mathieu Passenaud +shortBio: Fondateur please-open.it company: please-open.it companyLogo: /images/speakers/company/please-open.png +companyLogoUrl: /images/speakers/company/please-open.png country: 'Toulouse, France' +featured: true photo: /images/speakers/mathieu_passenaud.png +photoUrl: /images/speakers/mathieu_passenaud.png socials: - icon: twitter link: 'https://twitter.com/mathieupassenau' @@ -12,6 +16,7 @@ socials: - icon: github link: 'https://github.com/mathieupassenaud' name: mathieupassenaud +title: Fondateur --- diff --git a/test-hugo/content/speakers/miro_miro_cupak.md b/test-hugo/content/speakers/miro_miro_cupak.md index b694596..b775346 100644 --- a/test-hugo/content/speakers/miro_miro_cupak.md +++ b/test-hugo/content/speakers/miro_miro_cupak.md @@ -2,9 +2,9 @@ id: miro_miro_cupak name: Miro Cupak company: DNAstack -companyLogo: /images/speakers/company/dnastack.jpg -country: 'Toronto, Ontario' +featured: false photo: /images/speakers/miro_miro_cupak.jpg +photoUrl: /images/speakers/miro_miro_cupak.jpg socials: - icon: twitter link: 'https://twitter.com/mirocupak' @@ -15,6 +15,12 @@ socials: - icon: linkedin link: 'https://mirocupak.com, https://www.linkedin.com/in/mirocupak' name: LinkedIn +shortBio: >- + Software developer with passion for genetics and building meaningful things. + Java, open source, and distributed systems enthusiast. +companyLogo: /images/speakers/company/dnastack.jpg +companyLogoUrl: /images/speakers/company/dnastack.jpg +country: 'Toronto, Ontario' --- diff --git a/test-hugo/content/speakers/nicolas_decoster.md b/test-hugo/content/speakers/nicolas_decoster.md index e0ecaeb..f533e56 100644 --- a/test-hugo/content/speakers/nicolas_decoster.md +++ b/test-hugo/content/speakers/nicolas_decoster.md @@ -2,13 +2,19 @@ id: nicolas_decoster name: Nicolas Decoster company: Magellium -companyLogo: /images/speakers/company/magellium.jpg -country: 'Toulouse, France' +featured: false photo: /images/speakers/nicolas_decoster.jpg +photoUrl: /images/speakers/nicolas_decoster.jpg socials: - icon: twitter link: 'https://twitter.com/nnodot' name: '@nnodot' +shortBio: >- + Developer for science and other stuff, work for Magellium, co-founder of + @CompagnieDuCode +companyLogo: /images/speakers/company/magellium.jpg +companyLogoUrl: /images/speakers/company/magellium.jpg +country: 'Toulouse, France' --- diff --git a/test-hugo/content/speakers/olivier_flebus.md b/test-hugo/content/speakers/olivier_flebus.md index 224a1b3..93f0803 100644 --- a/test-hugo/content/speakers/olivier_flebus.md +++ b/test-hugo/content/speakers/olivier_flebus.md @@ -2,9 +2,9 @@ id: olivier_flebus name: Olivier Flebus company: Continental Digital Services France -companyLogo: /images/speakers/company/continental_digital_services_france.jpg -country: 'Toulouse, France' +featured: false photo: /images/speakers/olivier_flebus.jpg +photoUrl: /images/speakers/olivier_flebus.jpg socials: - icon: twitter link: 'https://twitter.com/olivierflebus' @@ -12,6 +12,13 @@ socials: - icon: linkedin link: 'https://www.linkedin.com/in/olivierflebus' name: LinkedIn +shortBio: >- + Enterprise Architect, #Agile enthusiast. Leading #BigData @Continental Digital + Services France. Building a #Cloud platform for #ConnectedCars. Views are my + own. +companyLogo: /images/speakers/company/continental_digital_services_france.jpg +companyLogoUrl: /images/speakers/company/continental_digital_services_france.jpg +country: 'Toulouse, France' --- diff --git a/test-hugo/content/speakers/olivier_leplus.md b/test-hugo/content/speakers/olivier_leplus.md index 4a62307..d1c83f2 100644 --- a/test-hugo/content/speakers/olivier_leplus.md +++ b/test-hugo/content/speakers/olivier_leplus.md @@ -2,9 +2,9 @@ id: olivier_leplus name: Olivier Leplus company: Botfuel -companyLogo: /images/speakers/company/botfuel.jpg -country: 'Paris, France' +featured: false photo: /images/speakers/olivier_leplus.jpg +photoUrl: /images/speakers/olivier_leplus.jpg socials: - icon: twitter link: 'https://twitter.com/olivierleplus' @@ -15,6 +15,12 @@ socials: - icon: linkedin link: 'https://www.linkedin.com/in/olivierleplus/, https://tagazok.github.io/' name: LinkedIn +shortBio: >- + Speaker, Conference organiser, Community obsessed developer, Traveler - + Developer Advocate @botfuel - Google Developer Expert in web tech +companyLogo: /images/speakers/company/botfuel.jpg +companyLogoUrl: /images/speakers/company/botfuel.jpg +country: 'Paris, France' --- diff --git a/test-hugo/content/speakers/philippe_charriere.md b/test-hugo/content/speakers/philippe_charriere.md index f3c6316..64c2cdf 100644 --- a/test-hugo/content/speakers/philippe_charriere.md +++ b/test-hugo/content/speakers/philippe_charriere.md @@ -2,9 +2,9 @@ id: philippe_charriere name: Philippe Charrière company: CleverCloud -companyLogo: /images/speakers/company/clevercloud.jpg -country: 'Lyon, France' +featured: true photo: /images/speakers/philippe_charriere.jpg +photoUrl: /images/speakers/philippe_charriere.jpg socials: - icon: twitter link: 'https://twitter.com/k33g_org' @@ -12,6 +12,11 @@ socials: - icon: github link: 'https://github.com/k33g' name: k33g +shortBio: "currently: \U0001F1EA\U0001F1FA TAM @GitLab \U0001F98A + deploying apps as CSO @clever_cloud \U0001F4A1☁️ + core committer @golo_lang + raising \U0001F916 @BotsGarden, previously: SE @github" +companyLogo: /images/speakers/company/clevercloud.jpg +companyLogoUrl: /images/speakers/company/clevercloud.jpg +country: 'Lyon, France' +title: "\U0001F1EA\U0001F1FA TAM @GitLab \U0001F98A & CSO @clever_cloud \U0001F4A1☁️" --- diff --git a/test-hugo/content/speakers/piotr_przybyl.md b/test-hugo/content/speakers/piotr_przybyl.md index 407242d..fb78bc9 100644 --- a/test-hugo/content/speakers/piotr_przybyl.md +++ b/test-hugo/content/speakers/piotr_przybyl.md @@ -2,13 +2,17 @@ id: piotr_przybyl name: Piotr Przybyl company: Remote Freelance Software Gardener -companyLogo: '' -country: 'Wroclaw, Poland' +featured: false photo: /images/speakers/piotr_przybyl.jpg +photoUrl: /images/speakers/piotr_przybyl.jpg socials: - icon: twitter link: 'https://twitter.com/piotrprz' name: '@piotrprz' +shortBio: Remote Freelance Software Gardener +companyLogo: '' +companyLogoUrl: '' +country: 'Wroclaw, Poland' --- diff --git a/test-hugo/content/speakers/quentin_adam.md b/test-hugo/content/speakers/quentin_adam.md index 52089f6..18a65ff 100644 --- a/test-hugo/content/speakers/quentin_adam.md +++ b/test-hugo/content/speakers/quentin_adam.md @@ -1,10 +1,14 @@ --- id: quentin_adam name: Quentin Adam +shortBio: CEO @ Clever Cloud company: Clever Cloud companyLogo: /images/speakers/company/clever_cloud.png +companyLogoUrl: /images/speakers/company/clever_cloud.png country: 'Nantes, France' +featured: true photo: /images/speakers/quentin_adam.jpg +photoUrl: /images/speakers/quentin_adam.jpg socials: - icon: twitter link: 'https://twitter.com/waxzce' @@ -12,6 +16,7 @@ socials: - icon: github link: 'https://github.com/waxzce' name: waxzce +title: CEO --- diff --git a/test-hugo/content/speakers/robert_firek.md b/test-hugo/content/speakers/robert_firek.md index 3ab0904..eb25d38 100644 --- a/test-hugo/content/speakers/robert_firek.md +++ b/test-hugo/content/speakers/robert_firek.md @@ -2,9 +2,9 @@ id: robert_firek name: Robert Firek company: Codurance -companyLogo: /images/speakers/company/codurance.jpg -country: 'London, Royaume-Uni' +featured: false photo: /images/speakers/robert_firek.jpg +photoUrl: /images/speakers/robert_firek.jpg socials: - icon: twitter link: 'https://twitter.com/RobertFirek' @@ -12,6 +12,10 @@ socials: - icon: github link: 'https://github.com/robertfirek' name: robertfirek +shortBio: Member of the London Java Community and Wrocław Java User Group. +companyLogo: /images/speakers/company/codurance.jpg +companyLogoUrl: /images/speakers/company/codurance.jpg +country: 'London, Royaume-Uni' --- diff --git a/test-hugo/content/speakers/sebastien_guilloux.md b/test-hugo/content/speakers/sebastien_guilloux.md index b8cd6c7..03a9a41 100644 --- a/test-hugo/content/speakers/sebastien_guilloux.md +++ b/test-hugo/content/speakers/sebastien_guilloux.md @@ -2,9 +2,9 @@ id: sebastien_guilloux name: Sébastien Guilloux company: Elastic -companyLogo: /images/speakers/company/elastic.jpg -country: 'Toulouse, France' +featured: false photo: /images/speakers/sebastien_guilloux.jpg +photoUrl: /images/speakers/sebastien_guilloux.jpg socials: - icon: twitter link: 'https://twitter.com/_sebgl' @@ -12,6 +12,10 @@ socials: - icon: github link: 'https://github.com/sebgl' name: sebgl +shortBio: Software developer. Music lover. I do french puns +companyLogo: /images/speakers/company/elastic.jpg +companyLogoUrl: /images/speakers/company/elastic.jpg +country: 'Toulouse, France' --- diff --git a/test-hugo/content/speakers/sylvain_wallez.md b/test-hugo/content/speakers/sylvain_wallez.md index b9622c9..2db4cf6 100644 --- a/test-hugo/content/speakers/sylvain_wallez.md +++ b/test-hugo/content/speakers/sylvain_wallez.md @@ -1,10 +1,16 @@ --- id: sylvain_wallez name: Sylvain Wallez +shortBio: >- + Passionate software architect & developer. Member of @theASF, tech lead in the + Cloud team at @elastic company: Elastic companyLogo: /images/speakers/company/elastic.png +companyLogoUrl: /images/speakers/company/elastic.png country: 'Toulouse, France' +featured: true photo: /images/speakers/sylvain_wallez.png +photoUrl: /images/speakers/sylvain_wallez.png socials: - icon: twitter link: 'https://twitter.com/bluxte' @@ -12,6 +18,7 @@ socials: - icon: github link: 'https://github.com/swallez' name: swallez +title: Tech lead in Elastic Cloud team --- diff --git a/test-hugo/content/speakers/tiffany_souterre.md b/test-hugo/content/speakers/tiffany_souterre.md index 4798d04..fe4678d 100644 --- a/test-hugo/content/speakers/tiffany_souterre.md +++ b/test-hugo/content/speakers/tiffany_souterre.md @@ -2,9 +2,9 @@ id: tiffany_souterre name: Tiffany Souterre company: JEMS Datafactory -companyLogo: /images/speakers/company/jems_datafactory.jpg -country: 'Paris, France' +featured: false photo: /images/speakers/tiffany_souterre.jpg +photoUrl: /images/speakers/tiffany_souterre.jpg socials: - icon: twitter link: 'https://twitter.com/tiffanysouterre' @@ -12,6 +12,10 @@ socials: - icon: github link: 'https://github.com/Amagash' name: Amagash +shortBio: "Data geek \U0001F4CA/ Google Developer Group Lead \U0001F4BB @GDGParis / Python Dev \U0001F40D / Ph.D. in Biotechnologies \U0001F393/ iGEM alumni ☣️" +companyLogo: /images/speakers/company/jems_datafactory.jpg +companyLogoUrl: /images/speakers/company/jems_datafactory.jpg +country: 'Paris, France' --- diff --git a/test-hugo/content/speakers/tugdual_grall.md b/test-hugo/content/speakers/tugdual_grall.md index 8da1e44..66c205e 100644 --- a/test-hugo/content/speakers/tugdual_grall.md +++ b/test-hugo/content/speakers/tugdual_grall.md @@ -2,9 +2,9 @@ id: tugdual_grall name: Tugdual Grall company: MapR -companyLogo: /images/speakers/company/mapr.MapR -country: It depends! +featured: false photo: /images/speakers/tugdual_grall.jpg +photoUrl: /images/speakers/tugdual_grall.jpg socials: - icon: twitter link: 'https://twitter.com/tgrall' @@ -12,6 +12,12 @@ socials: - icon: github link: 'https://github.com/tgrall' name: tgrall +shortBio: >- + Technical Evangelist @MapR Big Data / NoSQL / Streaming | @nantesjug leader | + Slow Triathlete @resultri | Windsurfer +companyLogo: /images/speakers/company/mapr.MapR +companyLogoUrl: /images/speakers/company/mapr.MapR +country: It depends! --- diff --git a/test-hugo/content/speakers/victor_kropp.md b/test-hugo/content/speakers/victor_kropp.md index 02dbc24..2c25ea0 100644 --- a/test-hugo/content/speakers/victor_kropp.md +++ b/test-hugo/content/speakers/victor_kropp.md @@ -2,9 +2,9 @@ id: victor_kropp name: Victor Kropp company: JetBrains -companyLogo: /images/speakers/company/jetbrains.jpg -country: 'München, Deutschland' +featured: false photo: /images/speakers/victor_kropp.jpg +photoUrl: /images/speakers/victor_kropp.jpg socials: - icon: twitter link: 'https://twitter.com/kropp' @@ -12,6 +12,10 @@ socials: - icon: github link: 'https://github.com/kropp' name: kropp +shortBio: Software Engineer at @JetBrains. Father. 2×IRONMAN. English/Русский/Deutsch +companyLogo: /images/speakers/company/jetbrains.jpg +companyLogoUrl: /images/speakers/company/jetbrains.jpg +country: 'München, Deutschland' --- diff --git a/test-hugo/content/talks/101_keynote_d_ouverture.md b/test-hugo/content/talks/101_keynote_d_ouverture.md new file mode 100644 index 0000000..72f2d18 --- /dev/null +++ b/test-hugo/content/talks/101_keynote_d_ouverture.md @@ -0,0 +1,17 @@ +--- +id: 101 +title: Keynote d'ouverture +image: /images/backgrounds/game.png +class: intro +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F101-gamedev-mischief-LaurentVictorino.pdf?alt=media&token=8c65f60b-731f-4223-bd02-3e2cdd15f064 +videoId: jwaJ7U9SSDM +tags: + - General +speakers: + - laurent_victorino +talkType: Keynote + +--- + +Développeurs de jeux vidéo : rois de la combine ? diff --git a/test-hugo/content/talks/102_keynote_de_fermeture.md b/test-hugo/content/talks/102_keynote_de_fermeture.md new file mode 100644 index 0000000..0bb9627 --- /dev/null +++ b/test-hugo/content/talks/102_keynote_de_fermeture.md @@ -0,0 +1,15 @@ +--- +id: 102 +title: Keynote de fermeture +image: /images/backgrounds/sky.png +class: end +videoId: nfd3wh-GOQI +tags: + - General +speakers: + - quentin_adam +talkType: Keynote + +--- + +Hype Driven Development diff --git a/test-hugo/content/talks/201_office_hours.md b/test-hugo/content/talks/201_office_hours.md new file mode 100644 index 0000000..350ba6a --- /dev/null +++ b/test-hugo/content/talks/201_office_hours.md @@ -0,0 +1,14 @@ +--- +id: 201 +title: Office Hours +tags: [] +speakers: + - miro_miro_cupak + - fabien_tregan + - horacio_gonzalez + - celine_louvet +talkType: Office Hours + +--- + +Venez poser vos questions aux speakers de manière plus calme et détendu diff --git a/test-hugo/content/talks/202_office_hours.md b/test-hugo/content/talks/202_office_hours.md new file mode 100644 index 0000000..2dac1a4 --- /dev/null +++ b/test-hugo/content/talks/202_office_hours.md @@ -0,0 +1,14 @@ +--- +id: 202 +title: Office Hours +tags: [] +speakers: + - david_gageot + - guillaume_membre + - olivier_leplus + - piotr_przybyl +talkType: Office Hours + +--- + +Venez poser vos questions aux speakers de manière plus calme et détendu diff --git a/test-hugo/content/talks/203_office_hours.md b/test-hugo/content/talks/203_office_hours.md new file mode 100644 index 0000000..1026ab8 --- /dev/null +++ b/test-hugo/content/talks/203_office_hours.md @@ -0,0 +1,14 @@ +--- +id: 203 +title: Office Hours +tags: [] +speakers: + - robert_firek + - sylvain_wallez + - hubert_sablonniere + - sebastien_guilloux +talkType: Office Hours + +--- + +Venez poser vos questions aux speakers de manière plus calme et détendu diff --git a/test-hugo/content/talks/204_office_hours.md b/test-hugo/content/talks/204_office_hours.md new file mode 100644 index 0000000..8f33189 --- /dev/null +++ b/test-hugo/content/talks/204_office_hours.md @@ -0,0 +1,14 @@ +--- +id: 204 +title: Office Hours +tags: [] +speakers: + - olivier_flebus + - david_pilato + - mathieu_passenaud + - benoit_el_amrani +talkType: Office Hours + +--- + +Venez poser vos questions aux speakers de manière plus calme et détendu diff --git a/test-hugo/content/talks/205_office_hours.md b/test-hugo/content/talks/205_office_hours.md new file mode 100644 index 0000000..818cfb7 --- /dev/null +++ b/test-hugo/content/talks/205_office_hours.md @@ -0,0 +1,14 @@ +--- +id: 205 +title: Office Hours +tags: [] +speakers: + - ane_diaz_de_tuesta + - arnaud_bos + - julien_topcu + - giulia_bianchi +talkType: Office Hours + +--- + +Venez poser vos questions aux speakers de manière plus calme et détendu diff --git a/test-hugo/content/talks/206_office_hours.md b/test-hugo/content/talks/206_office_hours.md new file mode 100644 index 0000000..81af747 --- /dev/null +++ b/test-hugo/content/talks/206_office_hours.md @@ -0,0 +1,14 @@ +--- +id: 206 +title: Office Hours +tags: [] +speakers: + - jimenez_raul + - alessio_coltellacci + - guillaume_laforge + - francois_teychene +talkType: Office Hours + +--- + +Venez poser vos questions aux speakers de manière plus calme et détendu diff --git a/test-hugo/content/talks/207_office_hours.md b/test-hugo/content/talks/207_office_hours.md new file mode 100644 index 0000000..870c8c4 --- /dev/null +++ b/test-hugo/content/talks/207_office_hours.md @@ -0,0 +1,15 @@ +--- +id: 207 +title: Office Hours +tags: [] +speakers: + - tugdual_grall + - nicolas_decoster + - juliane_blier + - victor_kropp + - estelle_landry +talkType: Office Hours + +--- + +Venez poser vos questions aux speakers de manière plus calme et détendu diff --git a/test-hugo/content/talks/208_office_hours.md b/test-hugo/content/talks/208_office_hours.md new file mode 100644 index 0000000..0abd550 --- /dev/null +++ b/test-hugo/content/talks/208_office_hours.md @@ -0,0 +1,16 @@ +--- +id: 208 +title: Office Hours +tags: [] +speakers: + - frederic_cabestre + - comet_nicolas + - benoit_prioux + - anastasia_lieva + - emmanuel_demey + - jean-francois_garreau +talkType: Office Hours + +--- + +Venez poser vos questions aux speakers de manière plus calme et détendu diff --git a/test-hugo/content/talks/4125_let_s_sketchnote___prise_de_notes_visuelle.md b/test-hugo/content/talks/4125_let_s_sketchnote___prise_de_notes_visuelle.md new file mode 100644 index 0000000..dbceede --- /dev/null +++ b/test-hugo/content/talks/4125_let_s_sketchnote___prise_de_notes_visuelle.md @@ -0,0 +1,17 @@ +--- +id: 4125 +title: 'Let’s Sketchnote : prise de notes visuelle' +language: Français +complexity: Débutant +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4125-LetsSketchnote-AneDiazDeTuesta.pdf?alt=media&token=a57cb98d-3b45-46d5-8752-b18a8dd745ff +tags: + - Method & Tools +videoId: NInM_wndk2U +speakers: + - ane_diaz_de_tuesta +talkType: Quickie + +--- + +La communication fait aujourd’hui partie intégrante de notre travail; il nous arrive régulièrement de vouloir diffuser une information importante, réaliser une présentation, un compte rendu de réunion… Mais comment être sûrs que le message que l’on souhaite faire passer a bien été compris et retenu par les interlocuteurs ? Le sketchnoting apporte une solution ludique, créative et agréable autant à créer qu’à lire. Venez découvrir comment mettre en valeur votre communication à l’aide de procédés très visuels, simples et accessibles à tous. diff --git a/test-hugo/content/talks/4128_ceinture_noire_karate_en_tests_d_api_rest.md b/test-hugo/content/talks/4128_ceinture_noire_karate_en_tests_d_api_rest.md new file mode 100644 index 0000000..f35fa41 --- /dev/null +++ b/test-hugo/content/talks/4128_ceinture_noire_karate_en_tests_d_api_rest.md @@ -0,0 +1,25 @@ +--- +id: 4128 +title: Ceinture noire Karate en tests d’API REST +language: Français +complexity: Débutant +tags: + - Method & Tools +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4128-karate-NicolasComet.pdf?alt=media&token=d1b81627-6683-4134-bc71-e604ac0b1c55 +videoId: ZNrCw5T-wls +speakers: + - comet_nicolas + - benoit_prioux +talkType: Conférence + +--- + +Vous aviez toujours rêvé d'une syntaxe facile pour tester vos APIs REST ? + +`Karate` est fait pour vous ! +Son format DSL plain text inspiré de la syntaxe Cucumber (ie. Gherkin) permet même aux personnes aux notions basiques en développement de venir couvrir vos APIs ou Web services (micros, nanos ou pas!) + +Il n'y a plus ~~Karate~~ qu'à réussir ses tests d'intégration ! + +Venez apprendre comment avec `Java` et `maven` comme simples prérequis d'infrastructure, vous pouvez mettre en place et industrialiser ces tests. On l'utilise chez nous, et on ne s'en passe plus. diff --git a/test-hugo/content/talks/4132_premiers_pas_avec_capacitor____dans_le_monde_reel.md b/test-hugo/content/talks/4132_premiers_pas_avec_capacitor____dans_le_monde_reel.md new file mode 100644 index 0000000..d272a95 --- /dev/null +++ b/test-hugo/content/talks/4132_premiers_pas_avec_capacitor____dans_le_monde_reel.md @@ -0,0 +1,15 @@ +--- +id: 4132 +title: Premiers pas avec Capacitor... dans le monde réel +tags: + - Native mobile apps +language: Français +complexity: Débutant +videoId: a4zCakyQN-o +speakers: + - horacio_gonzalez +talkType: Conférence + +--- + +Ah, Capacitor, quelle belle idée, une alternative à Cordova plus facile à utiliser, utilisable dans n'importe quel framework, complètement intégré à la prochaine version d'Ionic... Ben non, au moins au début, l'idée de Capacitor me laissait sceptique. J'ai passé les deux dernières années a développer des PWA, alors la pensée de devoir revenir à faire des applications hybrides ou native me paressait simplement obsolète. Dans ma tête j'avais mis Capacitor dans la case techno cool qui ne m'intéresse pas dans la vraie vie. Mais à ce moment j'ai relu avec attention leur site et j'ai vu une ligne qui m'a séduit: Build web apps that run equally well on iOS, Android, Electron, and as Progressive Web Apps. Hmmm, si je pouvais prendre une PWA et générer à partir d'elle une appli native Android, une autre iOS et une implémentation Electron en bonus, ça pourrait être carrément cool ! J'ai donc décidé de teste Capacitor sur certaines de mes PWA pour voir si je pouvais les transformer en applications natives. Et ce talk est le retour d'expérience de ce processus, mes premiers pas avec Capacitor, ce qui a marché et ce qui n'a pas marché, et surtout ce que j'ai appris dans le processus. diff --git a/test-hugo/content/talks/4142_votre_mission___decouvrir_haskell_et_le_mettre_en_prod.md b/test-hugo/content/talks/4142_votre_mission___decouvrir_haskell_et_le_mettre_en_prod.md new file mode 100644 index 0000000..13fee3e --- /dev/null +++ b/test-hugo/content/talks/4142_votre_mission___decouvrir_haskell_et_le_mettre_en_prod.md @@ -0,0 +1,19 @@ +--- +id: 4142 +title: Votre mission ? Découvrir Haskell et le mettre en prod +language: Français +complexity: Débutant +tags: + - Languages +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4142-Haskellenprod-CelineLouvet.pdf?alt=media&token=96f84ad6-2bfd-4016-a94c-f51fb58b32de +videoId: 5VCIaYvWecM +speakers: + - celine_louvet +talkType: Conférence + +--- + +On entend parler de Haskell de plus en plus, mais il parait souvent bien compliqué de se lancer. Haskell fait peur, avec ses Monades, Monoïdes et autres gros mots. + +On verra ensemble que vous n'avez absolument pas besoin de savoir ce que ces termes signifient pour vous lancer. Je vous propose de regarder ce dont vous aurez besoin pour créer une petite API, avec de la sécurité et de la gestion de données, soit de quoi mettre une petite application en prod. diff --git a/test-hugo/content/talks/4195_developper_une_application_web_avec_rust.md b/test-hugo/content/talks/4195_developper_une_application_web_avec_rust.md new file mode 100644 index 0000000..6c2c99e --- /dev/null +++ b/test-hugo/content/talks/4195_developper_une_application_web_avec_rust.md @@ -0,0 +1,17 @@ +--- +id: 4195 +title: Développer une application web avec Rust +tags: + - Languages +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4195-WebappswithRust-SylvainWallez.pdf?alt=media&token=b79694bf-a25e-41aa-bc7b-64506797e29a +language: Français +complexity: Débutant +videoId: rhAqG4gh400 +speakers: + - sylvain_wallez +talkType: Conférence + +--- + +Développé par la fondation Mozilla, Rust est un langage fortement typé, sûr, très performant et très économe en ressources (oui oui, tout ça à la fois). Initialement orienté système et bas niveau, l'écosystème Rust s'agrandit rapidement et propose maintenant toutes les librairies nécessaires au développement d'applications web. Pour découvrir le développement web avec Rust, nous parcourerons l'architecture et le code d'un serveur de commentaires open source à la Disqus, développé par le speaker pour les sites statiques faits par exemple avec Jekyll ou Hugo. Nous découvrirons routage http avec extraction typée de paramètres, réponses asynchrones, appel de services tiers, accès aux bases de données, cache, templating HTML, envoi d'emails, logs, métriques, etc. Et nous verrons qu'une application Rust c'est tout petit et très rapide, permettant d'héberger le serveur sur des configurations très modestes. diff --git a/test-hugo/content/talks/4207_la_programmation_fonctionnelle_sans_ceder_a_la_mode.md b/test-hugo/content/talks/4207_la_programmation_fonctionnelle_sans_ceder_a_la_mode.md new file mode 100644 index 0000000..2ae58ee --- /dev/null +++ b/test-hugo/content/talks/4207_la_programmation_fonctionnelle_sans_ceder_a_la_mode.md @@ -0,0 +1,21 @@ +--- +id: 4207 +title: La programmation fonctionnelle sans céder à la mode +language: Français +complexity: Intermédiaire +tags: + - Languages +videoId: AQ_q-hdtNS4 +speakers: + - frederic_cabestre +talkType: Conférence + +--- + +Aujourd'hui, pour être à la mode, il faut parler de programmation fonctionnelle. Et de suite on convoque les mots en vogue: « *Immutabilité* », « *Monade* » ou « *Catamorphisme* ». Au mieux le message est brouillé, mal reçu. Au pire la salle se vide ! + +Ce que je vous propose c'est de repartir des principes de base, avec des idées bien arrêtées et peut-être parfois provocatrices. Comprendre, comme le disait **John Hugues**, « *Why functionnal programming matters* ». Cerner les quelques idées directrices de la programmation fonctionnelle et ce qu'elles apportent concrètement au quotidien. Voir comment et pourquoi d'autres concepts en découlent nécessairement... + +Il sera peut-être finalement question de « *Théorie des catégories* » ! Mais il sera surtout question, en vrac, d'histoire et de mise en œuvre des langages, de typage, de performance, d'artisanat du logiciel, de « *Design patterns* », d'abstraction et, soyons fou, de *réification*. + +En somme, je vais vous parler de programmation fonctionnelle en essayant de ne pas être à la mode ! diff --git a/test-hugo/content/talks/4211_architecture_decision_records__reconciliez_vous_avec_votre_documentation.md b/test-hugo/content/talks/4211_architecture_decision_records__reconciliez_vous_avec_votre_documentation.md new file mode 100644 index 0000000..aec4795 --- /dev/null +++ b/test-hugo/content/talks/4211_architecture_decision_records__reconciliez_vous_avec_votre_documentation.md @@ -0,0 +1,29 @@ +--- +id: 4211 +title: 'Architecture Decision Records: Réconciliez vous avec votre documentation' +language: Français +complexity: Débutant +tags: + - Method & Tools +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4211-ArchitectureDecisionRecords-ArnaudBos.pdf?alt=media&token=20dac175-6460-4bd3-a490-544ceae883bb +videoId: EDYplU1PB5s +speakers: + - arnaud_bos +talkType: Quickie + +--- + +Les développeurs aiment écrire de la documentation... ou pas ! +Pourtant même les plus réfractaires doivent l'admettre, garder une trace des décisions techniques prises au cours d'un projet peut s'avérer indispensable pour la pérennité et maintenabilité de celui-ci. + +Alors comment éviter l'obsolescence programmée de la documentation, tout en réduisant la pénibilité de la rédaction ? + +Depuis près d'un an, dans "mon" équipe, nous utilisons un format simple, les Architecture Decision Records (ADRs), pour écrire des documents d'architecture sous la forme d'un journal immuable. +Cette technique simple gagne en popularité et a donné de bons résultats sur notre projet. + +Durant cette présentation vous construirez en direct un ADR. +En partant d'un problème constaté sur un projet, vous élaborerez une réponse technique qui servira de base à une implémentation ultérieure. +Vous décrirez les raisons qui vous poussent à faire des compromis, tout en capturant le contexte dans lequel cette décision a été prise pour référence future. + +Réconciliez vous avec votre documentation ! diff --git a/test-hugo/content/talks/4225_detectez_et_trackez_les_zergs_qui_se_cachent_dans_vos_dependances__.md b/test-hugo/content/talks/4225_detectez_et_trackez_les_zergs_qui_se_cachent_dans_vos_dependances__.md new file mode 100644 index 0000000..14e1922 --- /dev/null +++ b/test-hugo/content/talks/4225_detectez_et_trackez_les_zergs_qui_se_cachent_dans_vos_dependances__.md @@ -0,0 +1,24 @@ +--- +id: 4225 +title: Détectez et trackez les Zergs qui se cachent dans vos dépendances ! +language: Français +complexity: Débutant +tags: + - Method & Tools +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4225-detectez-et-traquez-les-zergs-qui-se-cachent-dans-vos-dpendances.pdf?alt=media&token=b96358e5-0b6f-444c-9b0e-cbcf628700b4 +videoId: aZeR6PypJ8k +speakers: + - julien_topcu +talkType: Quickie + +--- + +[44% des applications contiennent des vulnérabilités critiques dans les librairies open-source qu'elles utilisent](https://www.veracode.com/products/software-composition-analysis) et cela bien que des bonnes pratiques comme OWASP Top 10 se soient généralisées. + +Ne laissez plus ces aliens incuber bien au chaud dans le ventre de votre appli! +Grâce à ce talk, vous apprendrez comment sont répertoriées ces vilaines bestioles (NVD, CVE) et comment est évaluée leur dangerosité (CVSS). + +Puis vous verrez comment créer votre première pipeline de Continuous Security dans Jenkins au moyen de [OWASP DependencyCheck](https://www.owasp.org/index.php/OWASP_Dependency_Check) qui détecte les vulnérabilités et trackez les grâce à [OWASP DependencyTrack](https://www.owasp.org/index.php/OWASP_Dependency_Track_Project) (logiciels open-source) + +Faites le premier pas vers le DevSecOps !!! diff --git a/test-hugo/content/talks/4231_la_tete_dans_les_nuages_avec_un_raspberry_pi.md b/test-hugo/content/talks/4231_la_tete_dans_les_nuages_avec_un_raspberry_pi.md new file mode 100644 index 0000000..582fd8a --- /dev/null +++ b/test-hugo/content/talks/4231_la_tete_dans_les_nuages_avec_un_raspberry_pi.md @@ -0,0 +1,17 @@ +--- +id: 4231 +title: La tête dans les nuages avec un Raspberry Pi +language: Français +complexity: Débutant +tags: + - IOT +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4231-20181108-DevfestToulouse-Raspberry-Avions.pdf?alt=media&token=d675b039-61c1-4366-9532-b2c137b317eb +videoId: UcADSVfOg3k +speakers: + - guillaume_membre +talkType: Conférence + +--- + +En hackant une clé USB de réception TNT, La Radio Logicielle (ou SDR) est à la portée de tous. Il est alors possible d'écouter les balises de positionnement des avions de lignes sur un rayon de plusieurs dizaines de km avec une simple antenne. Voulez vous connaitre le fonctionnement du projet comme [flightradar24](https://www.flightradar24.com) ? Nous verrons comment mettre en oeuvre un tel projet avec du matériel grand public et accessible comme un Raspberry Pi. diff --git a/test-hugo/content/talks/4282_agile__craftsmanship__devops_and_other_monsters___how_to_fight_with_them_.md b/test-hugo/content/talks/4282_agile__craftsmanship__devops_and_other_monsters___how_to_fight_with_them_.md new file mode 100644 index 0000000..9ebbe11 --- /dev/null +++ b/test-hugo/content/talks/4282_agile__craftsmanship__devops_and_other_monsters___how_to_fight_with_them_.md @@ -0,0 +1,21 @@ +--- +id: 4282 +title: 'Agile, Craftsmanship, DevOps and other monsters - how to fight with them.' +language: English +complexity: Débutant +tags: + - Method & Tools +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4282-monsters-RobertFirek.pdf?alt=media&token=1b5d4644-4636-4187-b919-76c0cb9b6f68 +videoId: tWPlvgtJgF4 +speakers: + - robert_firek +talkType: Conférence + +--- + +Our industry has an amazing ability to build extremely good theoretical models, methodologies and approaches that actually drive us crazy. Theoretically, we can show how easy it is to introduce Waterfall, XP, Agile or DevOps (delete as appropriate) but the reality is more complicated. Sometimes, something does not work in our unique context and we end with so well known sentence "It doesn't work for us". + +Many hours of discussions with colleagues about the state of our industry indicate that we have to come up with something new and glowing. Something that allowed us to avoid the mistakes we made so far. + +In this presentation, we will look at all errors we made in the past and we will take a closer look at elements which could have been done better and which ideas can change to better our industry. By retrospecting our achievements, we will try to define what awaits us and why this time we will succeed;) diff --git a/test-hugo/content/talks/4305_google_container_tools___developper_efficacement_dans_un_monde_de_conteneurs.md b/test-hugo/content/talks/4305_google_container_tools___developper_efficacement_dans_un_monde_de_conteneurs.md new file mode 100644 index 0000000..ed5cfb8 --- /dev/null +++ b/test-hugo/content/talks/4305_google_container_tools___developper_efficacement_dans_un_monde_de_conteneurs.md @@ -0,0 +1,15 @@ +--- +id: 4305 +title: 'Google Container Tools : développer efficacement dans un monde de conteneurs' +tags: + - Cloud +language: Français +complexity: Intermédiaire +videoId: '-t1cTnhoGTg' +speakers: + - david_gageot +talkType: Conférence + +--- + +Kubernetes est devenu l'orchestrateur de choix pour déployer des applications. Mais qu'en est-il du quotidien des développeurs qui créent ces applications ? Plus on s'appuie sur la plateforme, plus il est compliqué de développer en dehors de la plateforme. Et développer à l'intérieur de conteneurs n'est pas réputé facile ni agréable. Google est à l'origine de plusieurs projets Open-Source qui se focalisent sur l'expérience des développeurs dans un monde de conteneurs. Kaniko permet de construire une image Docker à partir d'un Dockerfile, dans un cluster Kubernetes, de manière sécurisée. Skaffold facilite le déploiement continu d'applications pour Kubernetes. Les images Distroless offrent des images de base légères, sécurisées et de qualité. Bazel permet meme de construire des images Docker sans Docker. Venez découvrir comment ces outils se combinent pour offrir un environment de développement agréable et performant dans le monde des conteneurs. diff --git a/test-hugo/content/talks/4306_s_aider_du_data_oriented_design_pour_ecrire_des_applications_performantes.md b/test-hugo/content/talks/4306_s_aider_du_data_oriented_design_pour_ecrire_des_applications_performantes.md new file mode 100644 index 0000000..8844e66 --- /dev/null +++ b/test-hugo/content/talks/4306_s_aider_du_data_oriented_design_pour_ecrire_des_applications_performantes.md @@ -0,0 +1,35 @@ +--- +id: 4306 +title: S'aider du Data-Oriented Design pour écrire des applications performantes +language: Français +complexity: Débutant +videoId: 3lzpK45cyBo +tags: + - Method & Tools +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4306-introductionaudataorienteddesign-AlessioColtellacci.pptx?alt=media&token=e80249cd-d945-4e23-8b29-2e4e58e8739e +speakers: + - alessio_coltellacci +talkType: Conférence + +--- + +La performance est redevenue un sujet critique aujourd’hui avec le Cloud et les traitements de la données avec le Big data. + +Au delà des choix d'algorithmes et de structures de données, un moyen d'écrire du code performant, c'est de s'assurer que le processeur soit utilisé le plus efficacement possible et d'éviter qu’il perde du temps à charger/déplacer des données en mémoire. + +Le Data Oriented Design se place justement dans cette optique et fournit des méthodes pour écrire du code performant en prenant en compte les limitations du hardware. + +Contenu de la présentation: + + * Explication du concept du Dod. + + * Comment fonctionnent les processeurs et montrer les grosses différences d’ordres de grandeurs des accès à la mémoire. + +* Comment le DoD permet de régler ces problèmes, avec des exemples de structures de données adaptées. + +* Comment le Dod a été mis en place sur le reverse proxy http de Clever Cloud: Sozu. + +* Comment mettre en place une approche DoD sur un cas concret par la création d’un entity manager qu'on trouve dans un moteur de jeu. + +* Réduire le temps d'exécution d'un programme JavaScript par 6 en s'aidant du Data-Oriented Design. diff --git a/test-hugo/content/talks/4307__retourauxsources______les_cookies_http.md b/test-hugo/content/talks/4307__retourauxsources______les_cookies_http.md new file mode 100644 index 0000000..d5bfbc6 --- /dev/null +++ b/test-hugo/content/talks/4307__retourauxsources______les_cookies_http.md @@ -0,0 +1,15 @@ +--- +id: 4307 +title: "#RetourAuxSources : \U0001F36A Les cookies HTTP" +tags: + - Web +language: Français +complexity: Débutant +videoId: CcTbecZ67_o +speakers: + - hubert_sablonniere +talkType: Conférence + +--- + +Les cookies HTTP sont partout ! Pas une journée sans qu’un site nous demande “d’accepter les cookies”. Rares sont les projets Web qui ne les utilisent pas et pourtant leur fonctionnement nous échappe trop souvent. On confond les règles auxquelles ils sont soumis au sein des navigateurs. On fait des amalgames avec les sessions côté serveur. Ces petits trous dans le gigantesque éventail de connaissances du développeur moderne ont parfois des impacts non négligeables sur la sécurité de nos applications et sur la préservation de notre vie privée en tant qu’utilisateur du Web. Au menu de cette session, je vous propose de (re)découvrir les cookies HTTP par l’exemple et la pratique. Nous reviendrons sur leurs origines et nous verrons en détails leur fonctionnement. Enfin, nous aborderons les aspects les plus récents dans le domaine (SameSite, cookie prefix...). Ce talk sera plus généralement l’occasion de parler de sécurité, de tracking et de vie privée. diff --git a/test-hugo/content/talks/4312_des_apis_de_machine_learning_sur_etagere__a_l_entrainement_distribue_dans_le_cloud.md b/test-hugo/content/talks/4312_des_apis_de_machine_learning_sur_etagere__a_l_entrainement_distribue_dans_le_cloud.md new file mode 100644 index 0000000..4bed680 --- /dev/null +++ b/test-hugo/content/talks/4312_des_apis_de_machine_learning_sur_etagere__a_l_entrainement_distribue_dans_le_cloud.md @@ -0,0 +1,23 @@ +--- +id: 4312 +title: >- + Des APIs de Machine Learning sur étagère, à l'entrainement distribué dans le + cloud +language: Français +complexity: Débutant +tags: + - Big Data / ML / AI +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4312-MachineLearningAPIsv3-GuillaumeLaforge.pdf?alt=media&token=62acf4e0-378a-4577-ac3c-42dc8691bf80 +videoId: gSewdZrom10 +speakers: + - guillaume_laforge +talkType: Conférence + +--- + +Vous pouvez booster vos applications grâce aux APIs de Machine Learning, afin d'analyser ce que contiennent les images uploadées par vos utilisateurs, de comprendre la structure du texte, ou de reconnaître la voix. Pour le développeur, un simple appel REST suffit, pour interroger les APIs Google Cloud Vision, Speech, Translate ou Natural Language. + +A l'opposé, le framework open source Tensorflow permets au data scientist de créer ses propres modèles de Machine Learning, de les entrainer localement ou dans le Cloud, et de lancer ses prédictions en ligne ou même embarquées dans des applis mobiles. + +Entre les deux, il est aussi possible de personnaliser les modèles sur étagère, pour reconnaître vos propres images, classifier vos textes, grâce à Google Cloud AutoML. diff --git a/test-hugo/content/talks/4313_tests_bdd__faites_rediger_vos_tests_end_to_end_par_les_fonctionnels.md b/test-hugo/content/talks/4313_tests_bdd__faites_rediger_vos_tests_end_to_end_par_les_fonctionnels.md new file mode 100644 index 0000000..73eb823 --- /dev/null +++ b/test-hugo/content/talks/4313_tests_bdd__faites_rediger_vos_tests_end_to_end_par_les_fonctionnels.md @@ -0,0 +1,15 @@ +--- +id: 4313 +title: 'Tests BDD: faites rédiger vos tests End-to-End par les fonctionnels' +tags: + - Web +language: Français +complexity: Intermédiaire +videoId: 7u3luu6BmDg +speakers: + - laurent_wroblewski +talkType: Conférence + +--- + +Tout le monde (dans un monde idéal) fait des tests unitaires. Rares par contre sont ceux qui s'aventurent à mettre en place des tests end-to-end. Longs à développer, laborieux à maintenir, ils sont souvent les premiers à passer à la trappe. Et si ces tests devenaient faciles à développer et à lancer? Mieux encore, si ce n'était plus aux développeurs (déjà chargés comme des mules, c'est bien connu) de les rédiger, mais aux fonctionnels? Des tests à base de phrases compréhensibles par tous, faciles à lancer et à maintenir? Ce sera le but de ce talk: à partir d'une application web Angular, nous verrons comment configurer et lancer vos tests BDD avec TestCafe, Serenity et Cucumber. diff --git a/test-hugo/content/talks/4322_lighthouse___mesurer_et_ameliorer_votre_performance_web.md b/test-hugo/content/talks/4322_lighthouse___mesurer_et_ameliorer_votre_performance_web.md new file mode 100644 index 0000000..9f309de --- /dev/null +++ b/test-hugo/content/talks/4322_lighthouse___mesurer_et_ameliorer_votre_performance_web.md @@ -0,0 +1,20 @@ +--- +id: 4322 +title: 'Lighthouse : mesurer et améliorer votre performance web' +language: Français +complexity: Intermédiaire +tags: + - Web +speakers: + - sara_harkousse +talkType: Conférence + +--- + +L'idée de ce talk est de présenter une série de bonnes pratiques / tips and tricks pour améliorer la performance d'un site web grâce à l'outil open source lighthouse sur plusieurs niveaux: +- performance +- progressive web app + - accessibilité +- autres bonnes pratiques. + +La présentation démarre par la génération d'un blog statique , le lancement d'un audit et un score de performance médiocre. Puis une série d'améliorations en live coding. Le talk se termine par un résumé des techniques utilisées et bien sûr un excellent score dans lighthouse. diff --git a/test-hugo/content/talks/4331_et_si_on_parlait_accessibilite_du_web__.md b/test-hugo/content/talks/4331_et_si_on_parlait_accessibilite_du_web__.md new file mode 100644 index 0000000..d979731 --- /dev/null +++ b/test-hugo/content/talks/4331_et_si_on_parlait_accessibilite_du_web__.md @@ -0,0 +1,15 @@ +--- +id: 4331 +title: Et si on parlait accessibilité du web ? +language: Français +complexity: Débutant +tags: + - Web +videoId: 1oKEcDdYANY +speakers: + - olivier_leplus +talkType: Conférence + +--- + +**Aria**, **a11Y**, que veulent dire ces termes exotiques ? Nous verrons à travers des exemples les bonnes pratiques pour que votre site soit accessible. Puis, nous passerons en revue les sites internet des géants du web afin de voir si ce sont de bons élèves... ou pas. diff --git a/test-hugo/content/talks/4334_tensorflow__is_there_really_no_spoon__.md b/test-hugo/content/talks/4334_tensorflow__is_there_really_no_spoon__.md new file mode 100644 index 0000000..93a3d33 --- /dev/null +++ b/test-hugo/content/talks/4334_tensorflow__is_there_really_no_spoon__.md @@ -0,0 +1,17 @@ +--- +id: 4334 +title: 'Tensorflow, is there really no spoon ?' +language: English +complexity: Intermédiaire +tags: + - Big Data / ML / AI +videoId: 4QIjIoHP0x4 +speakers: + - tiffany_souterre +talkType: Conférence + +--- + +With the advance of Deep learning, Image recognition is everywhere! But like all technologies, it has its flaws. It is indeed possible to fool neural network models used for critical applications such as self-driving cars, drones, security cameras... Together, we will see how to generate adversarial images and fool a neural network into seeing something in an image that is not there. + +No Tensorflow, there is no spoon! diff --git a/test-hugo/content/talks/4338_comment_perdre_sa_surchage_featurale__.md b/test-hugo/content/talks/4338_comment_perdre_sa_surchage_featurale__.md new file mode 100644 index 0000000..8cc122f --- /dev/null +++ b/test-hugo/content/talks/4338_comment_perdre_sa_surchage_featurale__.md @@ -0,0 +1,17 @@ +--- +id: 4338 +title: Comment perdre sa surchage featurale ? +tags: + - Method & Tools +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4338-Commentperdresasurchargefeaturale-EstelleLandry.pdf?alt=media&token=ca4f3bdf-95da-4e22-81e5-abc17178b390 +language: Français +complexity: Débutant +videoId: YM3pnJDhATE +speakers: + - estelle_landry +talkType: Conférence + +--- + +Le cycle de vie d'une application est un chemin nébuleux et plein de dangers. La complexité ne fait que croitre durant les mois et les années d'utilisation. L'un des plus gros challenges d'un développeur est de pouvoir la contrôler tout en ajoutant de nouvelles fonctionnalités (features). Des solutions existent : le ré-écriture de code ou encore la maitrise de la dette technique. En effet, ces deux actions permettent de lever "la complexité accidentelle". Mais que faisons nous de la "complexité essentielle" ? La complexité qui n'est pas liée au code. La seule solution : Supprimer des fonctionnalités ! Ce talk vous expliquera comment perdre la surcharge featurale de vos applications en comprenant la différence entre la complexité essentielle et la complexité accidentelle, mais aussi en vous donnant des clés pour mener à bien ce changement de vie dans vos équipes projet. diff --git a/test-hugo/content/talks/4340_angular_elements.md b/test-hugo/content/talks/4340_angular_elements.md new file mode 100644 index 0000000..0f38923 --- /dev/null +++ b/test-hugo/content/talks/4340_angular_elements.md @@ -0,0 +1,17 @@ +--- +id: 4340 +title: Angular Elements +tags: + - Web +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4340-angular-elements-v7-RaulJimenez.zip?alt=media&token=be14bae6-4ed2-471e-bb99-e5767ee1b02c +language: English +complexity: Débutant +videoId: ozVffQPTQXk +speakers: + - jimenez_raul +talkType: Conférence + +--- + +In this session we will see how to create our first Web Component with Angular Elements and use it in a plain JS app. diff --git a/test-hugo/content/talks/4349_comment_t_organiser_quand_tu_es_b____lique_de_naissance__et_depuis_des_decennies___que_tu_as_plusieurs_jobs__ou_projets___sans_exploser_en_vol_____et_bosser_a_plusieurs_____et_y_arriver.md b/test-hugo/content/talks/4349_comment_t_organiser_quand_tu_es_b____lique_de_naissance__et_depuis_des_decennies___que_tu_as_plusieurs_jobs__ou_projets___sans_exploser_en_vol_____et_bosser_a_plusieurs_____et_y_arriver.md new file mode 100644 index 0000000..a8ef919 --- /dev/null +++ b/test-hugo/content/talks/4349_comment_t_organiser_quand_tu_es_b____lique_de_naissance__et_depuis_des_decennies___que_tu_as_plusieurs_jobs__ou_projets___sans_exploser_en_vol_____et_bosser_a_plusieurs_____et_y_arriver.md @@ -0,0 +1,29 @@ +--- +id: 4349 +title: >- + Comment t'organiser quand tu es b****lique de naissance (et depuis des + décennies), que tu as plusieurs jobs (ou projets), sans exploser en vol ... Et + bosser à plusieurs ... Et y arriver +language: Français +complexity: Débutant +tags: + - Method & Tools +videoId: 2_hdqZ3TuQo +speakers: + - philippe_charriere +talkType: Conférence + +--- + +À (presque) 50 ans, je crois que j'y arrive enfin. ... à m'organiser. +J'ai fait pas mal de choses (le plus souvent en SSII ... *lire ESN*) et notamment chef de projet, directeur de projets, responsable de centre de services, ... Le tout accompagné: +- d'oublis (oh p... 🙀 j'ai oublié de répondre au client, c'était urgent ... il y a une semaine), +- d'angoisses (et crises d'angoisse) (rahhhh 😥 je vais jamais arriver à tout faire), +- d'anéantissements (vous me faites tous ... J'arrête, bande de gros c...) +- de (grands) moments de solitude (ah? On t'a pas dit, la réunion est en 🇬🇧, c'est toi qui mène ... 😡 euh, mais l'🇬🇧 je l'écris ... et encore ...) +- etc ... + +Aujourd'hui, j'ai 2 métiers (un commercial et un technique), dont un à 95% en 🇬🇧, et j'arrive à faire les 2 (et plutôt correctement il me semble), sans crise d'angoisse, en ayant encore du temps pour mes sides projects, dormir, m'occuper de ma famille (pas assez, mes geekeries peuvent prendre le dessus), aller à la pêche, regarder des séries, ... + +J'ai donc tenté de me trouver des "méthodes" de travail à la fois pour mes tâches en solo mais aussi pour les moments où je travaille en équipe, pour cela j'ai utilisé les outils que j'avais sous la main (mais d'une certaine manière), dans mon cas: VSCode, DropBox, le markdown (asciidoc c'est bien aussi), Slack, GitLab (avec GitBucket, GitHub ou BitBucket ça fonctionne aussi), une façon limitée et particulière d'utiliser GMail, 1 écran externe, ... +Rien de magique, mais ça fonctionne pour moi diff --git a/test-hugo/content/talks/4420_decouvrir_par_l_exemple__microservices_et_event_sourcing_avec_kafka_et_kubernetes.md b/test-hugo/content/talks/4420_decouvrir_par_l_exemple__microservices_et_event_sourcing_avec_kafka_et_kubernetes.md new file mode 100644 index 0000000..a0ffb79 --- /dev/null +++ b/test-hugo/content/talks/4420_decouvrir_par_l_exemple__microservices_et_event_sourcing_avec_kafka_et_kubernetes.md @@ -0,0 +1,27 @@ +--- +id: 4420 +title: >- + Découvrir par l’exemple: Microservices et Event Sourcing avec Kafka et + Kubernetes +language: Français +complexity: Débutant +tags: + - Big Data / ML / AI +videoId: RXaGjS5C-lE +speakers: + - tugdual_grall +talkType: Conférence + +--- + +Lorsque vous développez des applications vous avez besoin de vous adapter rapidements aux changements (métiers, comme technologiques). Pour cela les développeurs et les “ops” doivent travailler de concert, pour déployer toujours plus rapidement de nouveaux services tout en garantissant la haute disponibilité et la montée en charge des applications. + +Les microservices et l’event-sourcing offrent une grande flexibilité aux développeurs; et la containerization par la biais de Kubernetes permet de déployer ces services en toute tranquillité. + +Cette présentation, en s’appuyant sur des cas d’usage et des démonstration, vous permettra de découvrir: + +* Les micro-services l'’event sourcing avec Apache Kafka +* Les containers avec Docker +* Le déploiement et management des services avec Kubernetes + +Si vous n’utilisez pas encore ces technologies, cette présentation vous donnera une bonne idées des avantages qu’elles apportent aux développeurs, administrateurs systèmes, et donc aux utilisateurs; et je suis certain que vous les adopterez rapidement pour vos prochains développements! diff --git a/test-hugo/content/talks/4432_testcontainers_pour_de_vrais_tests_d_integration_d_elasticsearch.md b/test-hugo/content/talks/4432_testcontainers_pour_de_vrais_tests_d_integration_d_elasticsearch.md new file mode 100644 index 0000000..50291ff --- /dev/null +++ b/test-hugo/content/talks/4432_testcontainers_pour_de_vrais_tests_d_integration_d_elasticsearch.md @@ -0,0 +1,25 @@ +--- +id: 4432 +title: Testcontainers pour de vrais tests d'intégration d'Elasticsearch +language: Français +complexity: Intermédiaire +tags: + - Method & Tools +presentation: 'https://github.com/dadoonet/elasticsearch-integration-tests' +videoId: KgcV15lCDk4 +speakers: + - david_pilato +talkType: Quickie + +--- + +Les tests d'intégration peuvent devenir un cauchemar lorsqu'ils sont lancés depuis la même JVM que votre code: + +* Conflit de JARs (JAR Hell) +* Security Manager +* Effets de bord + +De plus, tester avec un produit qui est lancé de façon différente de la façon dont il est lancé en production, ne garantira jamais que les tests d'intégration sont sincères. + +Aussi, après avoir découvert le projet [TestContainers](https://www.testcontainers.org/) qui lance des conteneurs Docker depuis, j'ai décidé d'écrire une implémentation pour Elasticsearch: [testcontainers-java-module-elasticsearch](https://github.com/dadoonet/testcontainers-java-module-elasticsearch). +Je vous propose de découvrir tout cela pendant ce quickie. diff --git a/test-hugo/content/talks/4447_systemd__de__dev_null_a_root.md b/test-hugo/content/talks/4447_systemd__de__dev_null_a_root.md new file mode 100644 index 0000000..c910893 --- /dev/null +++ b/test-hugo/content/talks/4447_systemd__de__dev_null_a_root.md @@ -0,0 +1,20 @@ +--- +id: 4447 +title: 'Systemd, de /dev/null à root' +language: Français +complexity: Débutant +tags: + - Cloud +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4447-systemd.pdf?alt=media&token=7744eee3-d691-4120-a71a-14a28839cff7 +videoId: 4AqbpZrBaOE +speakers: + - francois_teychene +talkType: Conférence + +--- + +La démocratisation de la culture Devops et du cloud public amènent de plus en plus les dévelopeurs à travailler sur la mise en production de leurs applications. +Si vous n'êtes pas équipé d'un orchestrateur de conteneurs, il y a fort à parier que vous soyez amené à intéragir avec systemd voir d'écrire des services pour vos applications. N'ayez pas peur ! non seulement c'est accessible mais cela vous offre de nombreuses possibilités . + +Découvrons ensemble systemd et sa galaxie, ce qu'il peut vous apporter pour l'installation et le run de vos application mais également comment il peut vous aider tout les jours dans votre vie de développeur. diff --git a/test-hugo/content/talks/4457_template_de_deploiements_kubernetes_avec_kontemplate.md b/test-hugo/content/talks/4457_template_de_deploiements_kubernetes_avec_kontemplate.md new file mode 100644 index 0000000..3b16caf --- /dev/null +++ b/test-hugo/content/talks/4457_template_de_deploiements_kubernetes_avec_kontemplate.md @@ -0,0 +1,17 @@ +--- +id: 4457 +title: Template de déploiements Kubernetes avec Kontemplate +language: Français +complexity: Intermédiaire +tags: + - Cloud +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4457-Templatedede%CC%81ploiementsKubernetesaveckontemplate-MathieuPassenaud.pptx?alt=media&token=7262e90f-74d9-4618-b63c-ef8c3a574985 +videoId: KF3gvGnpjIg +speakers: + - mathieu_passenaud +talkType: Quickie + +--- + +Kontemplate est un projet qui vise à faire des templates de déploiement pour Kubernetes. Petit retour d'expérience de l'utilisation de kontemplate dans le cadre de la vie d'une plateforme depuis l'environnement de développement jusqu'à la production. diff --git a/test-hugo/content/talks/4473_burger_quiz_s_invite_au_devfest_avec_un_sel_ou_poivre__code__data_ou_les_deux_.md b/test-hugo/content/talks/4473_burger_quiz_s_invite_au_devfest_avec_un_sel_ou_poivre__code__data_ou_les_deux_.md new file mode 100644 index 0000000..638476a --- /dev/null +++ b/test-hugo/content/talks/4473_burger_quiz_s_invite_au_devfest_avec_un_sel_ou_poivre__code__data_ou_les_deux_.md @@ -0,0 +1,21 @@ +--- +id: 4473 +title: 'Burger Quiz s''invite au DevFest avec un Sel ou Poivre "Code, Data ou les deux"' +language: Français +complexity: Débutant +tags: + - WTF +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4473-CodeDataoules2-OlivierFlebus.pdf?alt=media&token=7a222481-e789-4f8b-aee0-4e01e0cbaabb +videoId: 9kUmvV947X8 +speakers: + - olivier_flebus +talkType: Quickie + +--- + +Etes-vous incollable plutôt sur le "Code" (Software Engineer) ou sur la "Data" (Data Engineer, Data Scientist) ? + +Retrouvons-nous pour un moment fun autour de questions et situations de notre quotidien pour lesquelles il faudra choisir "Code, Data ou les deux". Avec des images, du rythme, un soupçon d'injustice, des surprises et une Jeep Renegade à la fin. + +La salle est également ouverte aux personnes sérieuses qui y trouveront j'espère une stimulation pour réfléchir sur le sujet de fond d'évolution du métier de développeur avec la montée des approches centrées sur les données. diff --git a/test-hugo/content/talks/4507_introduction_a_arrow___typeclass_is_the_new_interface.md b/test-hugo/content/talks/4507_introduction_a_arrow___typeclass_is_the_new_interface.md new file mode 100644 index 0000000..561332c --- /dev/null +++ b/test-hugo/content/talks/4507_introduction_a_arrow___typeclass_is_the_new_interface.md @@ -0,0 +1,29 @@ +--- +id: 4507 +title: Introduction à Arrow - Typeclass is the new interface +language: Français +complexity: Intermédiaire +tags: + - Languages +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4507-TalkTypeclasses-AlexandreDelattre.pdf?alt=media&token=d773b637-537b-4e08-9cf1-c1a1441a6a33 +videoId: uiLimq64zJI +speakers: + - alexandre_delattre + - guillaume_andrieu +talkType: Conférence + +--- + +Introduction à Arrow - `Typeclass` is the new `interface` +=== + +La programmation fonctionnelle, c'est à la mode ! Et pour de bonnes raisons: l'industrie impose des architectures de plus en plus distribuées. Code facilement composable, immutabilité, contrôle des effets de bord: l'application de ces concepts rend le code plus sûr et efficace. + +*"Mais qu'est-ce que ça m'apporte vraiment ?"*, demande le programmeur pragmatique. En plus d'offrir des structures de données et opérateurs vraiment utiles, la notion de `typeclass` nous permet de rajouter des comportements/interfaces sur n'importe quel type de données. + +Pour illustrer cette notion, nous nous appuierons sur la librairie `Arrow` en `Kotlin`. `Kotlin` est un langage de plus en plus populaire qui mixe plusieurs paradigmes. À défaut d'être un langage fonctionnel "pur", il dispose de nombreuses caractéristiques "fonctionnelles", et permet d'émuler des `typeclasses`. + +Cette présentation, accessible sans connaissance de programmation fonctionnelle, permettra de se familiariser avec `Arrow` et les `typeclasses`. + +*(😸 Aucune monade ne sera maltraitée durant ce talk. 😸)* diff --git a/test-hugo/content/talks/4509_comprendre_le_theoreme_de_cap_avec_apache_kafka.md b/test-hugo/content/talks/4509_comprendre_le_theoreme_de_cap_avec_apache_kafka.md new file mode 100644 index 0000000..e6b952a --- /dev/null +++ b/test-hugo/content/talks/4509_comprendre_le_theoreme_de_cap_avec_apache_kafka.md @@ -0,0 +1,21 @@ +--- +id: 4509 +title: Comprendre le théorème de CAP avec Apache Kafka +language: Français +complexity: Intermédiaire +tags: + - Cloud +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4509-UnderstandingtheCAPtheoremwithApacheKafka-Se%CC%81bastienGuilloux.pdf?alt=media&token=e26a3b33-ec28-409e-9b5f-e02df89c484b +videoId: yLp0crdThzQ +speakers: + - sebastien_guilloux +talkType: Conférence + +--- + +Durant cette présentation, nous nous pencherons sur le théorème de CAP (choix entre consistence, disponibilité et partition pour tout système distribué). Quand s'applique-t'il? Quels sont les choix qu'il propose? + +Nous prendrons pour exemple Apache Kafka, afin de comprendre comment ce théorème s'applique en pratique. Nous étudierons les scénarios catastrophe potentiels en cas de crash d'un ou plusieurs noeuds. Quel est le niveau de garantie de délivrance d'un message? Que se passe-t'il quand le leader du cluster tombe? Comment est assurée la réplication des données? Quand et comment est-il possible d'ajuster le curseur entre consistence et disponibilité? + +Il n'est pas nécessaire de connaitre Kafka pour pouvoir suivre cette présentation. diff --git a/test-hugo/content/talks/4515_remake_de_jeux_retro_avec_vue_js.md b/test-hugo/content/talks/4515_remake_de_jeux_retro_avec_vue_js.md new file mode 100644 index 0000000..c3d09fa --- /dev/null +++ b/test-hugo/content/talks/4515_remake_de_jeux_retro_avec_vue_js.md @@ -0,0 +1,20 @@ +--- +id: 4515 +title: Remake de jeux rétro avec Vue.js +language: Français +complexity: Débutant +tags: + - Web +videoId: TDgln192b-Y +speakers: + - nicolas_decoster + - juliane_blier +talkType: Conférence + +--- + +Quoi de mieux que de recoder son jeu préféré pour apprendre une nouvelle techno ? Nous allons nous replonger dans notre enfance pour découvrir les concepts de Vue.js appliqués à Pong, Pac-Man, Tetris ou autre Pokemon. + +Un jeu n’est rien d’autre qu’un joueur interagissant avec un univers représenté à l’écran. Et Vue est un framework pensé pour isoler interactions, informations (qui décrivent l’univers du jeu) et la représentation visuelle basée sur ces informations. + +Nous verrons ensemble pourquoi Vue est un outil adapté au développement de jeu et qu’inversement, le développement d’un jeu offre un bon angle pour découvrir les concepts clés de Vue. diff --git a/test-hugo/content/talks/4528_exploring_reactive_programming_in_java.md b/test-hugo/content/talks/4528_exploring_reactive_programming_in_java.md new file mode 100644 index 0000000..d9104d8 --- /dev/null +++ b/test-hugo/content/talks/4528_exploring_reactive_programming_in_java.md @@ -0,0 +1,19 @@ +--- +id: 4528 +title: Exploring reactive programming in Java +language: English +complexity: Confirmé +tags: + - Languages +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4528-reactivejava-MiroCupak.zip?alt=media&token=09822fe0-47e7-401c-b5a9-165778bf0dc9 +videoId: LxBn42ROcwg +speakers: + - miro_miro_cupak +talkType: Conférence + +--- + +When Java 8 was first introduced, it revolutionized the way Java applications were written by providing the core constructs for asynchronous programming and handling data streams. With Java 9, 10, and 11, these capabilities were extended to the level that allows us to write truly modern, reactive applications with the JDK. + +In this live-coding session, we explore JDK 9-11 features enabling all the aspects of reactive programming - updates to the Stream and CompletableFuture APIs, Reactive Streams publish-subscribe framework, HTTP/2 client, and more. diff --git a/test-hugo/content/talks/4574_the_big_web_quizz.md b/test-hugo/content/talks/4574_the_big_web_quizz.md new file mode 100644 index 0000000..084c61d --- /dev/null +++ b/test-hugo/content/talks/4574_the_big_web_quizz.md @@ -0,0 +1,20 @@ +--- +id: 4574 +title: The Big Web Quizz +language: Français +complexity: Débutant +tags: + - Web +videoId: PL9aQDMgv4w +speakers: + - emmanuel_demey + - jean-francois_garreau +talkType: Conférence + +--- + +Nous aimons tous le web. Nous avons tous notre framework de prédilection avec lequel nous concevons des applications qui vont révolutionner le monde. Mais connaissons nous les bases du Web ? Connaissons nous toutes les subtilités de la specification des modules ? Maitrisons nous à la perfection les différents mécanismes de cache de vos navigateurs ? + +Nous n'en sommes pas sûrs. C’est pour cela qu’aujourd’hui nous vous proposons de participer au plus grand quizz du monde. Présenté par nos experts Jean-François et Emmanuel, venez tous tester vos compétences de la plateforme Web. + +Les questions ne seront pas si simples, vous allez apprendre énormément de choses… et en plus ce sera drôle. diff --git a/test-hugo/content/talks/4584_pourquoi_et_comment_crafter_la_data_science_sur_mesure_.md b/test-hugo/content/talks/4584_pourquoi_et_comment_crafter_la_data_science_sur_mesure_.md new file mode 100644 index 0000000..7327ddc --- /dev/null +++ b/test-hugo/content/talks/4584_pourquoi_et_comment_crafter_la_data_science_sur_mesure_.md @@ -0,0 +1,22 @@ +--- +id: 4584 +title: Pourquoi et comment crafter la Data-Science sur mesure. +language: Français +complexity: Débutant +tags: + - Big Data / ML / AI +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4584-CommentEtPourquoiCrafterLaDataScienceSurMesure-AnastasiaLieva.pdf?alt=media&token=e2b95735-9f32-4f4e-9431-383748c79cdd +videoId: '' +speakers: + - anastasia_lieva +talkType: Conférence + +--- + +Il n'est pas évident d'intégrer de la Data Science dans les sociétés qui développent un business qui de base ne prévoyait pas de l’intelligence artificielle (IA), et pour lequel l’IA n'est pas au cœur du métier. Malgré la motivation d'utiliser l’IA, de nombreux projets Data Science dans ces sociétés échouent. + +C'est autant frustrant pour les responsables d'entreprises que démotivant pour les data-scientists, dont les projets finissent au placard. +On va analyser ensemble cette situation, pour déterminer les raisons de ces échecs. On va également étudier comment éviter les erreurs les plus courantes, et comment mener ce changement sans encombre afin d'enrichir vos produits avec l’IA. + +L’objectif du talk est que peu importe le profil que vous avez - dev front, dev back, data-scientist, CTO, CEO, Product Manager - vous retournerez lundi dans votre société en sachant à la fois identifier et mener à bien les opportunités de Data Science. diff --git a/test-hugo/content/talks/4588_multiplatfom_projects_with_kotlin.md b/test-hugo/content/talks/4588_multiplatfom_projects_with_kotlin.md new file mode 100644 index 0000000..4d048e1 --- /dev/null +++ b/test-hugo/content/talks/4588_multiplatfom_projects_with_kotlin.md @@ -0,0 +1,19 @@ +--- +id: 4588 +title: Multiplatfom projects with Kotlin +language: English +complexity: Intermédiaire +tags: + - Languages +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4588-MultiplatformprojectswithKotlin-VictorKropp.pdf?alt=media&token=48d6e567-72ca-4fec-8628-0ad1e52f8671 +videoId: 9ukHegwJivg +speakers: + - victor_kropp +talkType: Conférence + +--- + +Kotlin is an alternative programming language for JVM. But it is not limited to a single platform. Instead, the team is working hard to bring it everywhere. It is already possible to run Kotlin on Android and compile it to JavaScript to write homogeneous web applications. And there is Kotlin/Native project actively in development, which will bring Kotlin to desktop and iOS. + +In this session, we'll see how Kotlin can help us share code between platforms and what are the best practices in doing this. diff --git a/test-hugo/content/talks/4593_angular_schematics_pour_une_meilleure_productivite_et_plus_de_partage.md b/test-hugo/content/talks/4593_angular_schematics_pour_une_meilleure_productivite_et_plus_de_partage.md new file mode 100644 index 0000000..b0b779a --- /dev/null +++ b/test-hugo/content/talks/4593_angular_schematics_pour_une_meilleure_productivite_et_plus_de_partage.md @@ -0,0 +1,18 @@ +--- +id: 4593 +title: Angular Schematics pour une meilleure productivité et plus de partage +language: Français +complexity: Confirmé +tags: + - Web +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4593-AngularSchematics-benoitElAmrani.pptx?alt=media&token=7985983c-441a-47bb-a5b1-70224b074810 +videoId: VLQYPA5gZEA +speakers: + - benoit_el_amrani +talkType: Quickie + +--- + +La CLI d'Angular, célèbre framework web de Google, est basée sur les Schematics. Cette technologie permet de définir des transformations de code au sein de vos applications Angular comme la création de nouveaux composants, directives, providers... et plus récemment la configuration ou mise à jour de vos librairies automatiquement. Grâce à la nouvelle librairie @angular-devkit/schematics proposée par la team Angular, vous n’êtes désormais plus obligé d’attendre une évolution de la part de l’équipe Angular pour créer une nouvelle commande répondant à vos besoins. Ainsi il est plus facile de partager entre développeurs du tooling ou alors de la génération de code automatique pour gagner en productivité. +Nous verrons donc pendant ces 15 minutes comment créer des schematics et ce qu'apporte cette technologie avec différents cas concrets qui je l'espère vous donnerons envie de créer plein de schematics <3 . diff --git a/test-hugo/content/talks/4613_gcp_pour_les_data_scientists.md b/test-hugo/content/talks/4613_gcp_pour_les_data_scientists.md new file mode 100644 index 0000000..4dbca8c --- /dev/null +++ b/test-hugo/content/talks/4613_gcp_pour_les_data_scientists.md @@ -0,0 +1,15 @@ +--- +id: 4613 +title: GCP pour les Data Scientists +language: Français +complexity: Débutant +tags: + - Cloud +videoId: yjOkeruVBIE +speakers: + - giulia_bianchi +talkType: Quickie + +--- + +Depuis son arrivée, GCP a démocratisé la conception et la mise en place de services basés sur l'IA sans avoir besoin en pré-requis de connaissances spécifiques en IA. Typiquement avec Dialogflow pour la création d'un chatbot personnalisé ce qui compte est le savoir-faire du développeur qui va mettre en place et intégrer le pipeline complet pour l'exposition du service. Comment un Data Scientist peut-il s'orienter dans ce monde qui n'est pas le sien pour apporter de la valeur aux projets utilisant tout le potentiel de GCP ? diff --git a/test-hugo/content/talks/4617_contextvs__stvlte___context__stupid__.md b/test-hugo/content/talks/4617_contextvs__stvlte___context__stupid__.md new file mode 100644 index 0000000..127656b --- /dev/null +++ b/test-hugo/content/talks/4617_contextvs__stvlte___context__stupid__.md @@ -0,0 +1,34 @@ +--- +id: 4617 +title: 'CONTEXTVS, STVLTE! (Context, stupid!)' +language: English +complexity: Débutant +tags: + - Method & Tools +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4617-context-PiotrPrzybyl.zip?alt=media&token=979ce39c-2ee9-4e84-b8f6-9b9e706f31f1 +videoId: '' +speakers: + - piotr_przybyl +talkType: Conférence + +--- + +"The best sorting algorithm is quick sort." +"Indexes make DB faster." +"Data should be sorted using ORDER BY." +"Composition - good; inheritance - not good." +"Windows is an operating system." +"You must have transactions in your DB." +"Java is slow." +"Don't eat yellow snow." +"You shall not self-sign your certificates." +"Interrupt in Java is broken." + +The IT world is full of mantras/revealed truth, passed (often in oral tradition) among developer tribes. Mindlessly repeated from generation to generation, they cause a reckless usage. At best this results in more harm than good, in the worst case: a total disaster worth whole train of money. +The context is indispensable part of each mantra. Right context can help to distinguish proper usage from incoming disaster. + +Do you believe in a mantra by any chance? +How to find out the context? +Can one eat yellow snow? +Come and see. diff --git a/test-hugo/content/talks/5000_the_old_man_glitch___escalade_de_bug_sur_la_premiere_generation_de_pokemon_sur_gameboy.md b/test-hugo/content/talks/5000_the_old_man_glitch___escalade_de_bug_sur_la_premiere_generation_de_pokemon_sur_gameboy.md new file mode 100644 index 0000000..6ef0690 --- /dev/null +++ b/test-hugo/content/talks/5000_the_old_man_glitch___escalade_de_bug_sur_la_premiere_generation_de_pokemon_sur_gameboy.md @@ -0,0 +1,19 @@ +--- +id: 5000 +title: >- + The Old Man Glitch - Escalade de bug sur la première génération de Pokemon sur + Gameboy +language: Français +complexity: Beginner +tags: + - WTF +presentation: >- + https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F5000-TheOldManGlitch-fabientregan.zip?alt=media&token=623dfb0e-6e6f-4de5-b142-34ccfa666af8 +videoId: hBo28RVftNc +speakers: + - fabien_tregan +talkType: Conférence + +--- + +Je vous propose de prendre avec vous le temps de regarder un bug dans du code 8-bit de 1996 et de parler de techniques obsolètes d'escalade de failles. Juste pour le plaisir. Off-by-one error, underflow, buffer overflow, injection de code... avec des Pokemon alors même les adultes vont comprendre. diff --git a/test-hugo/content/talks/_index.md b/test-hugo/content/talks/_index.md index 83b89c4..93978c2 100644 --- a/test-hugo/content/talks/_index.md +++ b/test-hugo/content/talks/_index.md @@ -1 +1,3 @@ -# Talks \ No newline at end of file +--- +title: Sessions +--- diff --git a/test-hugo/data/location.yml b/test-hugo/data/location.yml index 1b0cf5f..ecc3cf6 100644 --- a/test-hugo/data/location.yml +++ b/test-hugo/data/location.yml @@ -6,6 +6,4 @@ pointer: latitude: 43.6110956 longitude: 1.4332799 zoom: 5 -mapCenter: - latitude: 48, - longitude: 8 \ No newline at end of file +mapCenter: 48,8 \ No newline at end of file diff --git a/test-hugo/data/sessions.yml b/test-hugo/data/sessions.yml deleted file mode 100644 index 2cff36c..0000000 --- a/test-hugo/data/sessions.yml +++ /dev/null @@ -1,1116 +0,0 @@ -- isBreak: true - title: Accueil et petit-déjeuner - description: Accueil et petit-déjeuner avec chocolatines - image: /images/backgrounds/chocos.png - id: '100' - tags: [] -- title: Keynote d'ouverture - description: 'Développeurs de jeux vidéo : rois de la combine ?' - image: /images/backgrounds/game.png - class: intro - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F101-gamedev-mischief-LaurentVictorino.pdf?alt=media&token=8c65f60b-731f-4223-bd02-3e2cdd15f064 - id: '101' - videoId: jwaJ7U9SSDM - type: Keynote - tags: - - General - speakers: - - laurent_victorino -- title: Keynote de fermeture - description: Hype Driven Development - image: /images/backgrounds/sky.png - class: end - id: '102' - videoId: nfd3wh-GOQI - type: Keynote - tags: - - General - speakers: - - quentin_adam -- isBreak: true - title: Déjeuner - description: Déjeuner - image: /images/backgrounds/lunch.png - id: '103' - tags: [] -- isBreak: true - title: Pause - description: Pause - image: /images/backgrounds/coffee.png - id: '104' - tags: [] -- title: Office Hours - description: Venez poser vos questions aux speakers de manière plus calme et détendu - type: Office Hours - tags: [] - id: '201' - speakers: - - miro_miro_cupak - - fabien_tregan - - horacio_gonzalez - - celine_louvet -- title: Office Hours - description: Venez poser vos questions aux speakers de manière plus calme et détendu - type: Office Hours - tags: [] - id: '202' - speakers: - - david_gageot - - guillaume_membre - - olivier_leplus - - piotr_przybyl -- title: Office Hours - description: Venez poser vos questions aux speakers de manière plus calme et détendu - type: Office Hours - tags: [] - id: '203' - speakers: - - robert_firek - - sylvain_wallez - - hubert_sablonniere - - sebastien_guilloux -- title: Office Hours - description: Venez poser vos questions aux speakers de manière plus calme et détendu - type: Office Hours - tags: [] - id: '204' - speakers: - - olivier_flebus - - david_pilato - - mathieu_passenaud - - benoit_el_amrani -- title: Office Hours - description: Venez poser vos questions aux speakers de manière plus calme et détendu - type: Office Hours - tags: [] - id: '205' - speakers: - - ane_diaz_de_tuesta - - arnaud_bos - - julien_topcu - - giulia_bianchi -- title: Office Hours - description: Venez poser vos questions aux speakers de manière plus calme et détendu - type: Office Hours - tags: [] - id: '206' - speakers: - - jimenez_raul - - alessio_coltellacci - - guillaume_laforge - - francois_teychene -- title: Office Hours - description: Venez poser vos questions aux speakers de manière plus calme et détendu - type: Office Hours - tags: [] - id: '207' - speakers: - - tugdual_grall - - nicolas_decoster - - juliane_blier - - victor_kropp - - estelle_landry -- title: Office Hours - description: Venez poser vos questions aux speakers de manière plus calme et détendu - type: Office Hours - tags: [] - id: '208' - speakers: - - frederic_cabestre - - comet_nicolas - - benoit_prioux - - anastasia_lieva - - emmanuel_demey - - jean-francois_garreau -- title: 'Let’s Sketchnote : prise de notes visuelle' - language: Français - complexity: Débutant - description: >- - La communication fait aujourd’hui partie intégrante de notre travail; il - nous arrive régulièrement de vouloir diffuser une information importante, - réaliser une présentation, un compte rendu de réunion… Mais comment être - sûrs que le message que l’on souhaite faire passer a bien été compris et - retenu par les interlocuteurs ? Le sketchnoting apporte une solution - ludique, créative et agréable autant à créer qu’à lire. Venez découvrir - comment mettre en valeur votre communication à l’aide de procédés très - visuels, simples et accessibles à tous. - type: Quickie - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4125-LetsSketchnote-AneDiazDeTuesta.pdf?alt=media&token=a57cb98d-3b45-46d5-8752-b18a8dd745ff - tags: - - Method & Tools - id: '4125' - videoId: NInM_wndk2U - speakers: - - ane_diaz_de_tuesta -- title: Ceinture noire Karate en tests d’API REST - language: Français - complexity: Débutant - description: >- - Vous aviez toujours rêvé d'une syntaxe facile pour tester vos APIs REST ? - - - `Karate` est fait pour vous ! - - Son format DSL plain text inspiré de la syntaxe Cucumber (ie. Gherkin) - permet même aux personnes aux notions basiques en développement de venir - couvrir vos APIs ou Web services (micros, nanos ou pas!) - - - Il n'y a plus ~~Karate~~ qu'à réussir ses tests d'intégration ! - - - Venez apprendre comment avec `Java` et `maven` comme simples prérequis - d'infrastructure, vous pouvez mettre en place et industrialiser ces tests. - On l'utilise chez nous, et on ne s'en passe plus. - type: Conférence - tags: - - Method & Tools - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4128-karate-NicolasComet.pdf?alt=media&token=d1b81627-6683-4134-bc71-e604ac0b1c55 - id: '4128' - videoId: ZNrCw5T-wls - speakers: - - comet_nicolas - - benoit_prioux -- title: Premiers pas avec Capacitor... dans le monde réel - type: Conférence - tags: - - Native mobile apps - language: Français - complexity: Débutant - videoId: a4zCakyQN-o - description: >- - Ah, Capacitor, quelle belle idée, une alternative à Cordova plus facile à - utiliser, utilisable dans n'importe quel framework, complètement intégré à - la prochaine version d'Ionic... Ben non, au moins au début, l'idée de - Capacitor me laissait sceptique. J'ai passé les deux dernières années a - développer des PWA, alors la pensée de devoir revenir à faire des - applications hybrides ou native me paressait simplement obsolète. Dans ma - tête j'avais mis Capacitor dans la case techno cool qui ne m'intéresse pas - dans la vraie vie. Mais à ce moment j'ai relu avec attention leur site et - j'ai vu une ligne qui m'a séduit: Build web apps that run equally well on - iOS, Android, Electron, and as Progressive Web Apps. Hmmm, si je pouvais - prendre une PWA et générer à partir d'elle une appli native Android, une - autre iOS et une implémentation Electron en bonus, ça pourrait être - carrément cool ! J'ai donc décidé de teste Capacitor sur certaines de mes - PWA pour voir si je pouvais les transformer en applications natives. Et ce - talk est le retour d'expérience de ce processus, mes premiers pas avec - Capacitor, ce qui a marché et ce qui n'a pas marché, et surtout ce que j'ai - appris dans le processus. - speakers: - - horacio_gonzalez - id: '4132' -- title: Votre mission ? Découvrir Haskell et le mettre en prod - language: Français - complexity: Débutant - description: >- - On entend parler de Haskell de plus en plus, mais il parait souvent bien - compliqué de se lancer. Haskell fait peur, avec ses Monades, Monoïdes et - autres gros mots. - - - On verra ensemble que vous n'avez absolument pas besoin de savoir ce que ces - termes signifient pour vous lancer. Je vous propose de regarder ce dont vous - aurez besoin pour créer une petite API, avec de la sécurité et de la gestion - de données, soit de quoi mettre une petite application en prod. - type: Conférence - tags: - - Languages - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4142-Haskellenprod-CelineLouvet.pdf?alt=media&token=96f84ad6-2bfd-4016-a94c-f51fb58b32de - id: '4142' - videoId: 5VCIaYvWecM - speakers: - - celine_louvet -- title: Développer une application web avec Rust - type: Conférence - tags: - - Languages - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4195-WebappswithRust-SylvainWallez.pdf?alt=media&token=b79694bf-a25e-41aa-bc7b-64506797e29a - language: Français - complexity: Débutant - videoId: rhAqG4gh400 - description: >- - Développé par la fondation Mozilla, Rust est un langage fortement typé, sûr, - très performant et très économe en ressources (oui oui, tout ça à la fois). - Initialement orienté système et bas niveau, l'écosystème Rust s'agrandit - rapidement et propose maintenant toutes les librairies nécessaires au - développement d'applications web. Pour découvrir le développement web avec - Rust, nous parcourerons l'architecture et le code d'un serveur de - commentaires open source à la Disqus, développé par le speaker pour les - sites statiques faits par exemple avec Jekyll ou Hugo. Nous découvrirons - routage http avec extraction typée de paramètres, réponses asynchrones, - appel de services tiers, accès aux bases de données, cache, templating HTML, - envoi d'emails, logs, métriques, etc. Et nous verrons qu'une application - Rust c'est tout petit et très rapide, permettant d'héberger le serveur sur - des configurations très modestes. - speakers: - - sylvain_wallez - id: '4195' -- title: La programmation fonctionnelle sans céder à la mode - language: Français - complexity: Intermédiaire - description: >- - Aujourd'hui, pour être à la mode, il faut parler de programmation - fonctionnelle. Et de suite on convoque les mots en vogue: « *Immutabilité* - », « *Monade* » ou « *Catamorphisme* ». Au mieux le message est brouillé, - mal reçu. Au pire la salle se vide ! - - - Ce que je vous propose c'est de repartir des principes de base, avec des - idées bien arrêtées et peut-être parfois provocatrices. Comprendre, comme le - disait **John Hugues**, « *Why functionnal programming matters* ». Cerner - les quelques idées directrices de la programmation fonctionnelle et ce - qu'elles apportent concrètement au quotidien. Voir comment et pourquoi - d'autres concepts en découlent nécessairement... - - - Il sera peut-être finalement question de « *Théorie des catégories* » ! Mais - il sera surtout question, en vrac, d'histoire et de mise en œuvre des - langages, de typage, de performance, d'artisanat du logiciel, de « *Design - patterns* », d'abstraction et, soyons fou, de *réification*. - - - En somme, je vais vous parler de programmation fonctionnelle en essayant de - ne pas être à la mode ! - type: Conférence - tags: - - Languages - id: '4207' - videoId: AQ_q-hdtNS4 - speakers: - - frederic_cabestre -- title: 'Architecture Decision Records: Réconciliez vous avec votre documentation' - language: Français - complexity: Débutant - description: >- - Les développeurs aiment écrire de la documentation... ou pas ! - - Pourtant même les plus réfractaires doivent l'admettre, garder une trace des - décisions techniques prises au cours d'un projet peut s'avérer indispensable - pour la pérennité et maintenabilité de celui-ci. - - - Alors comment éviter l'obsolescence programmée de la documentation, tout en - réduisant la pénibilité de la rédaction ? - - - Depuis près d'un an, dans "mon" équipe, nous utilisons un format simple, les - Architecture Decision Records (ADRs), pour écrire des documents - d'architecture sous la forme d'un journal immuable. - - Cette technique simple gagne en popularité et a donné de bons résultats sur - notre projet. - - - Durant cette présentation vous construirez en direct un ADR. - - En partant d'un problème constaté sur un projet, vous élaborerez une réponse - technique qui servira de base à une implémentation ultérieure. - - Vous décrirez les raisons qui vous poussent à faire des compromis, tout en - capturant le contexte dans lequel cette décision a été prise pour référence - future. - - - Réconciliez vous avec votre documentation ! - type: Quickie - tags: - - Method & Tools - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4211-ArchitectureDecisionRecords-ArnaudBos.pdf?alt=media&token=20dac175-6460-4bd3-a490-544ceae883bb - id: '4211' - videoId: EDYplU1PB5s - speakers: - - arnaud_bos -- title: Détectez et trackez les Zergs qui se cachent dans vos dépendances ! - language: Français - complexity: Débutant - description: >- - [44% des applications contiennent des vulnérabilités critiques dans les - librairies open-source qu'elles - utilisent](https://www.veracode.com/products/software-composition-analysis) - et cela bien que des bonnes pratiques comme OWASP Top 10 se soient - généralisées. - - - Ne laissez plus ces aliens incuber bien au chaud dans le ventre de votre - appli! - - Grâce à ce talk, vous apprendrez comment sont répertoriées ces vilaines - bestioles (NVD, CVE) et comment est évaluée leur dangerosité (CVSS). - - - Puis vous verrez comment créer votre première pipeline de Continuous - Security dans Jenkins au moyen de [OWASP - DependencyCheck](https://www.owasp.org/index.php/OWASP_Dependency_Check) - qui détecte les vulnérabilités et trackez les grâce à [OWASP - DependencyTrack](https://www.owasp.org/index.php/OWASP_Dependency_Track_Project) - (logiciels open-source) - - Faites le premier pas vers le DevSecOps !!! - type: Quickie - tags: - - Method & Tools - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4225-detectez-et-traquez-les-zergs-qui-se-cachent-dans-vos-dpendances.pdf?alt=media&token=b96358e5-0b6f-444c-9b0e-cbcf628700b4 - id: '4225' - videoId: aZeR6PypJ8k - speakers: - - julien_topcu -- title: La tête dans les nuages avec un Raspberry Pi - language: Français - complexity: Débutant - description: >- - En hackant une clé USB de réception TNT, La Radio Logicielle (ou SDR) est à - la portée de tous. Il est alors possible d'écouter les balises de - positionnement des avions de lignes sur un rayon de plusieurs dizaines de km - avec une simple antenne. Voulez vous connaitre le fonctionnement du projet - comme [flightradar24](https://www.flightradar24.com) ? Nous verrons comment - mettre en oeuvre un tel projet avec du matériel grand public et accessible - comme un Raspberry Pi. - type: Conférence - tags: - - IOT - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4231-20181108-DevfestToulouse-Raspberry-Avions.pdf?alt=media&token=d675b039-61c1-4366-9532-b2c137b317eb - id: '4231' - videoId: UcADSVfOg3k - speakers: - - guillaume_membre -- title: 'Agile, Craftsmanship, DevOps and other monsters - how to fight with them.' - language: English - complexity: Débutant - description: >- - Our industry has an amazing ability to build extremely good theoretical - models, methodologies and approaches that actually drive us crazy. - Theoretically, we can show how easy it is to introduce Waterfall, XP, Agile - or DevOps (delete as appropriate) but the reality is more complicated. - Sometimes, something does not work in our unique context and we end with so - well known sentence "It doesn't work for us". - - - Many hours of discussions with colleagues about the state of our industry - indicate that we have to come up with something new and glowing. Something - that allowed us to avoid the mistakes we made so far. - - - In this presentation, we will look at all errors we made in the past and we - will take a closer look at elements which could have been done better and - which ideas can change to better our industry. By retrospecting our - achievements, we will try to define what awaits us and why this time we will - succeed;) - type: Conférence - tags: - - Method & Tools - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4282-monsters-RobertFirek.pdf?alt=media&token=1b5d4644-4636-4187-b919-76c0cb9b6f68 - id: '4282' - videoId: tWPlvgtJgF4 - speakers: - - robert_firek -- title: 'Google Container Tools : développer efficacement dans un monde de conteneurs' - type: Conférence - tags: - - Cloud - language: Français - complexity: Intermédiaire - videoId: '-t1cTnhoGTg' - description: >- - Kubernetes est devenu l'orchestrateur de choix pour déployer des - applications. Mais qu'en est-il du quotidien des développeurs qui créent ces - applications ? Plus on s'appuie sur la plateforme, plus il est compliqué de - développer en dehors de la plateforme. Et développer à l'intérieur de - conteneurs n'est pas réputé facile ni agréable. Google est à l'origine de - plusieurs projets Open-Source qui se focalisent sur l'expérience des - développeurs dans un monde de conteneurs. Kaniko permet de construire une - image Docker à partir d'un Dockerfile, dans un cluster Kubernetes, de - manière sécurisée. Skaffold facilite le déploiement continu d'applications - pour Kubernetes. Les images Distroless offrent des images de base légères, - sécurisées et de qualité. Bazel permet meme de construire des images Docker - sans Docker. Venez découvrir comment ces outils se combinent pour offrir un - environment de développement agréable et performant dans le monde des - conteneurs. - speakers: - - david_gageot - id: '4305' -- title: S'aider du Data-Oriented Design pour écrire des applications performantes - language: Français - complexity: Débutant - description: >- - La performance est redevenue un sujet critique aujourd’hui avec le Cloud et - les traitements de la données avec le Big data. - - - Au delà des choix d'algorithmes et de structures de données, un moyen - d'écrire du code performant, c'est de s'assurer que le processeur soit - utilisé le plus efficacement possible et d'éviter qu’il perde du temps à - charger/déplacer des données en mémoire. - - - Le Data Oriented Design se place justement dans cette optique et fournit des - méthodes pour écrire du code performant en prenant en compte les limitations - du hardware. - - - Contenu de la présentation: - - * Explication du concept du Dod. - - * Comment fonctionnent les processeurs et montrer les grosses différences d’ordres de grandeurs des accès à la mémoire. - - * Comment le DoD permet de régler ces problèmes, avec des exemples de - structures de données adaptées. - - - * Comment le Dod a été mis en place sur le reverse proxy http de Clever - Cloud: Sozu. - - - * Comment mettre en place une approche DoD sur un cas concret par la - création d’un entity manager qu'on trouve dans un moteur de jeu. - - - * Réduire le temps d'exécution d'un programme JavaScript par 6 en s'aidant - du Data-Oriented Design. - type: Conférence - videoId: 3lzpK45cyBo - tags: - - Method & Tools - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4306-introductionaudataorienteddesign-AlessioColtellacci.pptx?alt=media&token=e80249cd-d945-4e23-8b29-2e4e58e8739e - id: '4306' - speakers: - - alessio_coltellacci -- title: "#RetourAuxSources : \U0001F36A Les cookies HTTP" - type: Conférence - tags: - - Web - language: Français - complexity: Débutant - videoId: CcTbecZ67_o - description: >- - Les cookies HTTP sont partout ! Pas une journée sans qu’un site nous demande - “d’accepter les cookies”. Rares sont les projets Web qui ne les utilisent - pas et pourtant leur fonctionnement nous échappe trop souvent. On confond - les règles auxquelles ils sont soumis au sein des navigateurs. On fait des - amalgames avec les sessions côté serveur. Ces petits trous dans le - gigantesque éventail de connaissances du développeur moderne ont parfois des - impacts non négligeables sur la sécurité de nos applications et sur la - préservation de notre vie privée en tant qu’utilisateur du Web. Au menu de - cette session, je vous propose de (re)découvrir les cookies HTTP par - l’exemple et la pratique. Nous reviendrons sur leurs origines et nous - verrons en détails leur fonctionnement. Enfin, nous aborderons les aspects - les plus récents dans le domaine (SameSite, cookie prefix...). Ce talk sera - plus généralement l’occasion de parler de sécurité, de tracking et de vie - privée. - speakers: - - hubert_sablonniere - id: '4307' -- title: >- - Des APIs de Machine Learning sur étagère, à l'entrainement distribué dans le - cloud - language: Français - complexity: Débutant - description: >- - Vous pouvez booster vos applications grâce aux APIs de Machine Learning, - afin d'analyser ce que contiennent les images uploadées par vos - utilisateurs, de comprendre la structure du texte, ou de reconnaître la - voix. Pour le développeur, un simple appel REST suffit, pour interroger les - APIs Google Cloud Vision, Speech, Translate ou Natural Language. - - - A l'opposé, le framework open source Tensorflow permets au data scientist de - créer ses propres modèles de Machine Learning, de les entrainer localement - ou dans le Cloud, et de lancer ses prédictions en ligne ou même embarquées - dans des applis mobiles. - - - Entre les deux, il est aussi possible de personnaliser les modèles sur - étagère, pour reconnaître vos propres images, classifier vos textes, grâce à - Google Cloud AutoML. - type: Conférence - tags: - - Big Data / ML / AI - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4312-MachineLearningAPIsv3-GuillaumeLaforge.pdf?alt=media&token=62acf4e0-378a-4577-ac3c-42dc8691bf80 - id: '4312' - videoId: gSewdZrom10 - speakers: - - guillaume_laforge -- title: 'Tests BDD: faites rédiger vos tests End-to-End par les fonctionnels' - type: Conférence - tags: - - Web - language: Français - complexity: Intermédiaire - videoId: 7u3luu6BmDg - description: >- - Tout le monde (dans un monde idéal) fait des tests unitaires. Rares par - contre sont ceux qui s'aventurent à mettre en place des tests end-to-end. - Longs à développer, laborieux à maintenir, ils sont souvent les premiers à - passer à la trappe. Et si ces tests devenaient faciles à développer et à - lancer? Mieux encore, si ce n'était plus aux développeurs (déjà chargés - comme des mules, c'est bien connu) de les rédiger, mais aux fonctionnels? - Des tests à base de phrases compréhensibles par tous, faciles à lancer et à - maintenir? Ce sera le but de ce talk: à partir d'une application web - Angular, nous verrons comment configurer et lancer vos tests BDD avec - TestCafe, Serenity et Cucumber. - speakers: - - laurent_wroblewski - id: '4313' -- title: 'Lighthouse : mesurer et améliorer votre performance web' - language: Français - complexity: Intermédiaire - description: >- - L'idée de ce talk est de présenter une série de bonnes pratiques / tips and - tricks pour améliorer la performance d'un site web grâce à l'outil open - source lighthouse sur plusieurs niveaux: - - - performance - - - progressive web app - - accessibilité - - autres bonnes pratiques. - - - La présentation démarre par la génération d'un blog statique , le lancement - d'un audit et un score de performance médiocre. Puis une série - d'améliorations en live coding. Le talk se termine par un résumé des - techniques utilisées et bien sûr un excellent score dans lighthouse. - type: Conférence - tags: - - Web - id: '4322' - speakers: - - sara_harkousse -- title: Et si on parlait accessibilité du web ? - language: Français - complexity: Débutant - description: >- - **Aria**, **a11Y**, que veulent dire ces termes exotiques ? Nous verrons à - travers des exemples les bonnes pratiques pour que votre site soit - accessible. Puis, nous passerons en revue les sites internet des géants du - web afin de voir si ce sont de bons élèves... ou pas. - type: Conférence - tags: - - Web - id: '4331' - videoId: 1oKEcDdYANY - speakers: - - olivier_leplus -- title: 'Tensorflow, is there really no spoon ?' - language: English - complexity: Intermédiaire - description: >- - With the advance of Deep learning, Image recognition is everywhere! But like - all technologies, it has its flaws. It is indeed possible to fool neural - network models used for critical applications such as self-driving cars, - drones, security cameras... Together, we will see how to generate - adversarial images and fool a neural network into seeing something in an - image that is not there. - - - No Tensorflow, there is no spoon! - type: Conférence - tags: - - Big Data / ML / AI - id: '4334' - videoId: 4QIjIoHP0x4 - speakers: - - tiffany_souterre -- title: Comment perdre sa surchage featurale ? - type: Conférence - tags: - - Method & Tools - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4338-Commentperdresasurchargefeaturale-EstelleLandry.pdf?alt=media&token=ca4f3bdf-95da-4e22-81e5-abc17178b390 - language: Français - complexity: Débutant - videoId: YM3pnJDhATE - description: >- - Le cycle de vie d'une application est un chemin nébuleux et plein de - dangers. La complexité ne fait que croitre durant les mois et les années - d'utilisation. L'un des plus gros challenges d'un développeur est de pouvoir - la contrôler tout en ajoutant de nouvelles fonctionnalités (features). Des - solutions existent : le ré-écriture de code ou encore la maitrise de la - dette technique. En effet, ces deux actions permettent de lever "la - complexité accidentelle". Mais que faisons nous de la "complexité - essentielle" ? La complexité qui n'est pas liée au code. La seule solution : - Supprimer des fonctionnalités ! Ce talk vous expliquera comment perdre la - surcharge featurale de vos applications en comprenant la différence entre la - complexité essentielle et la complexité accidentelle, mais aussi en vous - donnant des clés pour mener à bien ce changement de vie dans vos équipes - projet. - speakers: - - estelle_landry - id: '4338' -- title: Angular Elements - type: Conférence - tags: - - Web - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4340-angular-elements-v7-RaulJimenez.zip?alt=media&token=be14bae6-4ed2-471e-bb99-e5767ee1b02c - language: English - complexity: Débutant - videoId: ozVffQPTQXk - description: >- - In this session we will see how to create our first Web Component with - Angular Elements and use it in a plain JS app. - speakers: - - jimenez_raul - id: '4340' -- title: >- - Comment t'organiser quand tu es b****lique de naissance (et depuis des - décennies), que tu as plusieurs jobs (ou projets), sans exploser en vol ... - Et bosser à plusieurs ... Et y arriver - language: Français - complexity: Débutant - description: "À (presque) 50 ans, je crois que j'y arrive enfin. ... à m'organiser.\nJ'ai fait pas mal de choses (le plus souvent en SSII ... *lire ESN*) et notamment chef de projet, directeur de projets, responsable de centre de services, ... Le tout accompagné:\n- d'oublis (oh p... \U0001F640 j'ai oublié de répondre au client, c'était urgent ... il y a une semaine), \n- d'angoisses (et crises d'angoisse) (rahhhh \U0001F625 je vais jamais arriver à tout faire), \n- d'anéantissements (vous me faites tous ... J'arrête, bande de gros c...)\n- de (grands) moments de solitude (ah? On t'a pas dit, la réunion est en \U0001F1EC\U0001F1E7, c'est toi qui mène ... \U0001F621 euh, mais l'\U0001F1EC\U0001F1E7 je l'écris ... et encore ...)\n- etc ...\n\nAujourd'hui, j'ai 2 métiers (un commercial et un technique), dont un à 95% en \U0001F1EC\U0001F1E7, et j'arrive à faire les 2 (et plutôt correctement il me semble), sans crise d'angoisse, en ayant encore du temps pour mes sides projects, dormir, m'occuper de ma famille (pas assez, mes geekeries peuvent prendre le dessus), aller à la pêche, regarder des séries, ...\n\nJ'ai donc tenté de me trouver des \"méthodes\" de travail à la fois pour mes tâches en solo mais aussi pour les moments où je travaille en équipe, pour cela j'ai utilisé les outils que j'avais sous la main (mais d'une certaine manière), dans mon cas: VSCode, DropBox, le markdown (asciidoc c'est bien aussi), Slack, GitLab (avec GitBucket, GitHub ou BitBucket ça fonctionne aussi), une façon limitée et particulière d'utiliser GMail, 1 écran externe, ...\nRien de magique, mais ça fonctionne pour moi" - type: Conférence - tags: - - Method & Tools - id: '4349' - videoId: 2_hdqZ3TuQo - speakers: - - philippe_charriere -- title: >- - Découvrir par l’exemple: Microservices et Event Sourcing avec Kafka et - Kubernetes - language: Français - complexity: Débutant - description: >- - Lorsque vous développez des applications vous avez besoin de vous adapter - rapidements aux changements (métiers, comme technologiques). Pour cela les - développeurs et les “ops” doivent travailler de concert, pour déployer - toujours plus rapidement de nouveaux services tout en garantissant la haute - disponibilité et la montée en charge des applications. - - - Les microservices et l’event-sourcing offrent une grande flexibilité aux - développeurs; et la containerization par la biais de Kubernetes permet de - déployer ces services en toute tranquillité. - - - Cette présentation, en s’appuyant sur des cas d’usage et des démonstration, - vous permettra de découvrir: - - - * Les micro-services l'’event sourcing avec Apache Kafka - - * Les containers avec Docker - - * Le déploiement et management des services avec Kubernetes - - - Si vous n’utilisez pas encore ces technologies, cette présentation vous - donnera une bonne idées des avantages qu’elles apportent aux développeurs, - administrateurs systèmes, et donc aux utilisateurs; et je suis certain que - vous les adopterez rapidement pour vos prochains développements! - type: Conférence - tags: - - Big Data / ML / AI - id: '4420' - videoId: RXaGjS5C-lE - speakers: - - tugdual_grall -- title: Testcontainers pour de vrais tests d'intégration d'Elasticsearch - language: Français - complexity: Intermédiaire - description: >- - Les tests d'intégration peuvent devenir un cauchemar lorsqu'ils sont lancés - depuis la même JVM que votre code: - - - * Conflit de JARs (JAR Hell) - - * Security Manager - - * Effets de bord - - - De plus, tester avec un produit qui est lancé de façon différente de la - façon dont il est lancé en production, ne garantira jamais que les tests - d'intégration sont sincères. - - - Aussi, après avoir découvert le projet - [TestContainers](https://www.testcontainers.org/) qui lance des conteneurs - Docker depuis, j'ai décidé d'écrire une implémentation pour Elasticsearch: - [testcontainers-java-module-elasticsearch](https://github.com/dadoonet/testcontainers-java-module-elasticsearch). - - Je vous propose de découvrir tout cela pendant ce quickie. - type: Quickie - tags: - - Method & Tools - presentation: 'https://github.com/dadoonet/elasticsearch-integration-tests' - id: '4432' - videoId: KgcV15lCDk4 - speakers: - - david_pilato -- title: 'Systemd, de /dev/null à root' - language: Français - complexity: Débutant - description: >- - La démocratisation de la culture Devops et du cloud public amènent de plus - en plus les dévelopeurs à travailler sur la mise en production de leurs - applications. - - Si vous n'êtes pas équipé d'un orchestrateur de conteneurs, il y a fort à - parier que vous soyez amené à intéragir avec systemd voir d'écrire des - services pour vos applications. N'ayez pas peur ! non seulement c'est - accessible mais cela vous offre de nombreuses possibilités . - - - Découvrons ensemble systemd et sa galaxie, ce qu'il peut vous apporter pour - l'installation et le run de vos application mais également comment il peut - vous aider tout les jours dans votre vie de développeur. - type: Conférence - tags: - - Cloud - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4447-systemd.pdf?alt=media&token=7744eee3-d691-4120-a71a-14a28839cff7 - id: '4447' - videoId: 4AqbpZrBaOE - speakers: - - francois_teychene -- title: Template de déploiements Kubernetes avec Kontemplate - language: Français - complexity: Intermédiaire - description: >- - Kontemplate est un projet qui vise à faire des templates de déploiement pour - Kubernetes. Petit retour d'expérience de l'utilisation de kontemplate dans - le cadre de la vie d'une plateforme depuis l'environnement de développement - jusqu'à la production. - type: Quickie - tags: - - Cloud - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4457-Templatedede%CC%81ploiementsKubernetesaveckontemplate-MathieuPassenaud.pptx?alt=media&token=7262e90f-74d9-4618-b63c-ef8c3a574985 - id: '4457' - videoId: KF3gvGnpjIg - speakers: - - mathieu_passenaud -- title: >- - Burger Quiz s'invite au DevFest avec un Sel ou Poivre "Code, Data ou les - deux" - language: Français - complexity: Débutant - description: >- - Etes-vous incollable plutôt sur le "Code" (Software Engineer) ou sur la - "Data" (Data Engineer, Data Scientist) ? - - - Retrouvons-nous pour un moment fun autour de questions et situations de - notre quotidien pour lesquelles il faudra choisir "Code, Data ou les deux". - Avec des images, du rythme, un soupçon d'injustice, des surprises et une - Jeep Renegade à la fin. - - - La salle est également ouverte aux personnes sérieuses qui y trouveront - j'espère une stimulation pour réfléchir sur le sujet de fond d'évolution du - métier de développeur avec la montée des approches centrées sur les données. - type: Quickie - tags: - - WTF - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4473-CodeDataoules2-OlivierFlebus.pdf?alt=media&token=7a222481-e789-4f8b-aee0-4e01e0cbaabb - id: '4473' - videoId: 9kUmvV947X8 - speakers: - - olivier_flebus -- title: Introduction à Arrow - Typeclass is the new interface - language: Français - complexity: Intermédiaire - description: "Introduction à Arrow - `Typeclass` is the new `interface`\n===\n\nLa programmation fonctionnelle, c'est à la mode ! Et pour de bonnes raisons: l'industrie impose des architectures de plus en plus distribuées. Code facilement composable, immutabilité, contrôle des effets de bord: l'application de ces concepts rend le code plus sûr et efficace.\n\n*\"Mais qu'est-ce que ça m'apporte vraiment ?\"*, demande le programmeur pragmatique. En plus d'offrir des structures de données et opérateurs vraiment utiles, la notion de `typeclass` nous permet de rajouter des comportements/interfaces sur n'importe quel type de données.\n\nPour illustrer cette notion, nous nous appuierons sur la librairie `Arrow` en `Kotlin`. `Kotlin` est un langage de plus en plus populaire qui mixe plusieurs paradigmes. À défaut d'être un langage fonctionnel \"pur\", il dispose de nombreuses caractéristiques \"fonctionnelles\", et permet d'émuler des `typeclasses`.\n\nCette présentation, accessible sans connaissance de programmation fonctionnelle, permettra de se familiariser avec `Arrow` et les `typeclasses`.\n\n*(\U0001F638 Aucune monade ne sera maltraitée durant ce talk. \U0001F638)*" - type: Conférence - tags: - - Languages - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4507-TalkTypeclasses-AlexandreDelattre.pdf?alt=media&token=d773b637-537b-4e08-9cf1-c1a1441a6a33 - id: '4507' - videoId: uiLimq64zJI - speakers: - - alexandre_delattre - - guillaume_andrieu -- title: Comprendre le théorème de CAP avec Apache Kafka - language: Français - complexity: Intermédiaire - description: >- - Durant cette présentation, nous nous pencherons sur le théorème de CAP - (choix entre consistence, disponibilité et partition pour tout système - distribué). Quand s'applique-t'il? Quels sont les choix qu'il propose? - - - Nous prendrons pour exemple Apache Kafka, afin de comprendre comment ce - théorème s'applique en pratique. Nous étudierons les scénarios catastrophe - potentiels en cas de crash d'un ou plusieurs noeuds. Quel est le niveau de - garantie de délivrance d'un message? Que se passe-t'il quand le leader du - cluster tombe? Comment est assurée la réplication des données? Quand et - comment est-il possible d'ajuster le curseur entre consistence et - disponibilité? - - - Il n'est pas nécessaire de connaitre Kafka pour pouvoir suivre cette - présentation. - type: Conférence - tags: - - Cloud - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4509-UnderstandingtheCAPtheoremwithApacheKafka-Se%CC%81bastienGuilloux.pdf?alt=media&token=e26a3b33-ec28-409e-9b5f-e02df89c484b - id: '4509' - videoId: yLp0crdThzQ - speakers: - - sebastien_guilloux -- title: Remake de jeux rétro avec Vue.js - language: Français - complexity: Débutant - description: >- - Quoi de mieux que de recoder son jeu préféré pour apprendre une nouvelle - techno ? Nous allons nous replonger dans notre enfance pour découvrir les - concepts de Vue.js appliqués à Pong, Pac-Man, Tetris ou autre Pokemon. - - - Un jeu n’est rien d’autre qu’un joueur interagissant avec un univers - représenté à l’écran. Et Vue est un framework pensé pour isoler - interactions, informations (qui décrivent l’univers du jeu) et la - représentation visuelle basée sur ces informations. - - - Nous verrons ensemble pourquoi Vue est un outil adapté au développement de - jeu et qu’inversement, le développement d’un jeu offre un bon angle pour - découvrir les concepts clés de Vue. - type: Conférence - tags: - - Web - id: '4515' - videoId: TDgln192b-Y - speakers: - - nicolas_decoster - - juliane_blier -- title: Exploring reactive programming in Java - language: English - complexity: Confirmé - description: >- - When Java 8 was first introduced, it revolutionized the way Java - applications were written by providing the core constructs for asynchronous - programming and handling data streams. With Java 9, 10, and 11, these - capabilities were extended to the level that allows us to write truly - modern, reactive applications with the JDK. - - - In this live-coding session, we explore JDK 9-11 features enabling all the - aspects of reactive programming - updates to the Stream and - CompletableFuture APIs, Reactive Streams publish-subscribe framework, HTTP/2 - client, and more. - type: Conférence - tags: - - Languages - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4528-reactivejava-MiroCupak.zip?alt=media&token=09822fe0-47e7-401c-b5a9-165778bf0dc9 - id: '4528' - videoId: LxBn42ROcwg - speakers: - - miro_miro_cupak -- title: The Big Web Quizz - language: Français - complexity: Débutant - description: >- - Nous aimons tous le web. Nous avons tous notre framework de prédilection - avec lequel nous concevons des applications qui vont révolutionner le monde. - Mais connaissons nous les bases du Web ? Connaissons nous toutes les - subtilités de la specification des modules ? Maitrisons nous à la perfection - les différents mécanismes de cache de vos navigateurs ? - - - Nous n'en sommes pas sûrs. C’est pour cela qu’aujourd’hui nous vous - proposons de participer au plus grand quizz du monde. Présenté par nos - experts Jean-François et Emmanuel, venez tous tester vos compétences de la - plateforme Web. - - - Les questions ne seront pas si simples, vous allez apprendre énormément de - choses… et en plus ce sera drôle. - type: Conférence - tags: - - Web - id: '4574' - videoId: PL9aQDMgv4w - speakers: - - emmanuel_demey - - jean-francois_garreau -- title: Pourquoi et comment crafter la Data-Science sur mesure. - language: Français - complexity: Débutant - description: >- - Il n'est pas évident d'intégrer de la Data Science dans les sociétés qui - développent un business qui de base ne prévoyait pas de l’intelligence - artificielle (IA), et pour lequel l’IA n'est pas au cœur du métier. Malgré - la motivation d'utiliser l’IA, de nombreux projets Data Science dans ces - sociétés échouent. - - - C'est autant frustrant pour les responsables d'entreprises que démotivant - pour les data-scientists, dont les projets finissent au placard. - - On va analyser ensemble cette situation, pour déterminer les raisons de ces - échecs. On va également étudier comment éviter les erreurs les plus - courantes, et comment mener ce changement sans encombre afin d'enrichir vos - produits avec l’IA. - - - L’objectif du talk est que peu importe le profil que vous avez - dev front, - dev back, data-scientist, CTO, CEO, Product Manager - vous retournerez lundi - dans votre société en sachant à la fois identifier et mener à bien les - opportunités de Data Science. - type: Conférence - tags: - - Big Data / ML / AI - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4584-CommentEtPourquoiCrafterLaDataScienceSurMesure-AnastasiaLieva.pdf?alt=media&token=e2b95735-9f32-4f4e-9431-383748c79cdd - id: '4584' - videoId: '' - speakers: - - anastasia_lieva -- title: Multiplatfom projects with Kotlin - language: English - complexity: Intermédiaire - description: >- - Kotlin is an alternative programming language for JVM. But it is not limited - to a single platform. Instead, the team is working hard to bring it - everywhere. It is already possible to run Kotlin on Android and compile it - to JavaScript to write homogeneous web applications. And there is - Kotlin/Native project actively in development, which will bring Kotlin to - desktop and iOS. - - - In this session, we'll see how Kotlin can help us share code between - platforms and what are the best practices in doing this. - type: Conférence - tags: - - Languages - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4588-MultiplatformprojectswithKotlin-VictorKropp.pdf?alt=media&token=48d6e567-72ca-4fec-8628-0ad1e52f8671 - id: '4588' - videoId: 9ukHegwJivg - speakers: - - victor_kropp -- title: Angular Schematics pour une meilleure productivité et plus de partage - language: Français - complexity: Confirmé - description: >- - La CLI d'Angular, célèbre framework web de Google, est basée sur les - Schematics. Cette technologie permet de définir des transformations de code - au sein de vos applications Angular comme la création de nouveaux - composants, directives, providers... et plus récemment la configuration ou - mise à jour de vos librairies automatiquement. Grâce à la nouvelle librairie - @angular-devkit/schematics proposée par la team Angular, vous n’êtes - désormais plus obligé d’attendre une évolution de la part de l’équipe - Angular pour créer une nouvelle commande répondant à vos besoins. Ainsi il - est plus facile de partager entre développeurs du tooling ou alors de la - génération de code automatique pour gagner en productivité. - - Nous verrons donc pendant ces 15 minutes comment créer des schematics et ce - qu'apporte cette technologie avec différents cas concrets qui je l'espère - vous donnerons envie de créer plein de schematics <3 . - type: Quickie - tags: - - Web - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4593-AngularSchematics-benoitElAmrani.pptx?alt=media&token=7985983c-441a-47bb-a5b1-70224b074810 - id: '4593' - videoId: VLQYPA5gZEA - speakers: - - benoit_el_amrani -- title: GCP pour les Data Scientists - language: Français - complexity: Débutant - description: >- - Depuis son arrivée, GCP a démocratisé la conception et la mise en place de - services basés sur l'IA sans avoir besoin en pré-requis de connaissances - spécifiques en IA. Typiquement avec Dialogflow pour la création d'un chatbot - personnalisé ce qui compte est le savoir-faire du développeur qui va mettre - en place et intégrer le pipeline complet pour l'exposition du service. - Comment un Data Scientist peut-il s'orienter dans ce monde qui n'est pas le - sien pour apporter de la valeur aux projets utilisant tout le potentiel de - GCP ? - type: Quickie - tags: - - Cloud - id: '4613' - videoId: yjOkeruVBIE - speakers: - - giulia_bianchi -- title: 'CONTEXTVS, STVLTE! (Context, stupid!)' - language: English - complexity: Débutant - description: >- - "The best sorting algorithm is quick sort." - - "Indexes make DB faster." - - "Data should be sorted using ORDER BY." - - "Composition - good; inheritance - not good." - - "Windows is an operating system." - - "You must have transactions in your DB." - - "Java is slow." - - "Don't eat yellow snow." - - "You shall not self-sign your certificates." - - "Interrupt in Java is broken." - - - The IT world is full of mantras/revealed truth, passed (often in oral - tradition) among developer tribes. Mindlessly repeated from generation to - generation, they cause a reckless usage. At best this results in more harm - than good, in the worst case: a total disaster worth whole train of money. - - The context is indispensable part of each mantra. Right context can help to - distinguish proper usage from incoming disaster. - - - Do you believe in a mantra by any chance? - - How to find out the context? - - Can one eat yellow snow? - - Come and see. - type: Conférence - tags: - - Method & Tools - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F4617-context-PiotrPrzybyl.zip?alt=media&token=979ce39c-2ee9-4e84-b8f6-9b9e706f31f1 - id: '4617' - videoId: '' - speakers: - - piotr_przybyl -- title: >- - The Old Man Glitch - Escalade de bug sur la première génération de Pokemon - sur Gameboy - language: Français - complexity: Beginner - description: >- - Je vous propose de prendre avec vous le temps de regarder un bug dans du - code 8-bit de 1996 et de parler de techniques obsolètes d'escalade de - failles. Juste pour le plaisir. Off-by-one error, underflow, buffer - overflow, injection de code... avec des Pokemon alors même les adultes vont - comprendre. - type: Conférence - tags: - - WTF - presentation: >- - https://firebasestorage.googleapis.com/v0/b/devfesttoulouse-2018.appspot.com/o/presentation%2F5000-TheOldManGlitch-fabientregan.zip?alt=media&token=623dfb0e-6e6f-4de5-b142-34ccfa666af8 - id: '5000' - videoId: hBo28RVftNc - speakers: - - fabien_tregan diff --git a/test-hugo/data/speakers.yml b/test-hugo/data/speakers.yml deleted file mode 100644 index 198d58a..0000000 --- a/test-hugo/data/speakers.yml +++ /dev/null @@ -1,1039 +0,0 @@ -- name: Laurent Victorino - bio: >- - Pas très bon en jeux vidéo Laurent préfère les créer pour se donner une - bonne raison de ne pas y jouer. Programmeur moyen mais sympa, Laurent est à - la tête de Monkey Moon, un studio de jeux vidéo basé à Lyon qui développe - actuellement Night Call, un jeu qui se passe à Paris, parce que Laurent aime - les paradoxes. Speaker internationalement reconnu pour sa keynote « 400 - vannes sur le Java en moins de 20 minutes », Laurent aime les conférences IT - et Web pour les rencontres, les échanges, et la nourriture gratuite. Laurent - a vraiment du mal à parler de lui à la troisième personne. - shortBio: Curious Video Game Developer - company: Monkey Moon - companyLogo: /images/speakers/company/monkey_moon.png - companyLogoUrl: /images/speakers/company/monkey_moon.png - country: 'Lyon, France' - featured: true - photo: /images/speakers/laurent_victorino.jpg - photoUrl: /images/speakers/laurent_victorino.jpg - socials: - - icon: twitter - link: 'https://twitter.com/on_code' - name: '@on_code' - - icon: github - link: 'https://github.com/lvictorino' - name: lvictorino - title: Video Game Developer - id: laurent_victorino -- name: Quentin Adam - bio: >- - Quentin is the CEO of Clever Cloud : a Platform as a Service company - allowing you to run java, scala, ruby, node.js, php, python or go - applications, with auto scaling and auto healing features. This position - allow him to study lots of applications, code, practice, and extract some - talks and advises. Regular speaker at various tech conference, he’s focused - to help developers to deliver quickly and happily good applications. - shortBio: CEO @ Clever Cloud - company: Clever Cloud - companyLogo: /images/speakers/company/clever_cloud.png - companyLogoUrl: /images/speakers/company/clever_cloud.png - country: 'Nantes, France' - featured: true - photo: /images/speakers/quentin_adam.jpg - photoUrl: /images/speakers/quentin_adam.jpg - socials: - - icon: twitter - link: 'https://twitter.com/waxzce' - name: '@waxzce' - - icon: github - link: 'https://github.com/waxzce' - name: waxzce - title: CEO - id: quentin_adam -- name: Raúl Jiménez - bio: >- - Raul is a software engineer passionate about JS frameworks, web technologies - and cross-platform development. Since 2012 he's focused in Angular, HTML5 - video and his open source project Videogular. Raul works as CEO of Byte - Default, an Angular consultancy company for companies around the world - helping them to build high-performance web apps. In his spare time he's - usually involved in local meetups, writing blog posts, speaking at - conferences and contributing to open source projects. He lives in Barcelona - and is happy by default :) - shortBio: >- - Software Engineer @toptalllc / #Angular @Google Developer Expert / Creator - of Videogular - company: Google Developer Expert - companyLogo: /images/speakers/company/gde.jpg - companyLogoUrl: /images/speakers/company/gde.jpg - country: 'Barcelona, Spain' - featured: true - photo: /images/speakers/raul_jimenez.png - photoUrl: /images/speakers/raul_jimenez.png - socials: - - icon: twitter - link: 'https://twitter.com/elecash' - name: '@elecash' - - icon: github - link: 'https://github.com/elecash' - name: elecash - title: GDE - id: jimenez_raul -- name: Estelle Landry - bio: >- - Product Owner and UX Designer apprentice at @elium_tech , Former Project - Manager , Proud to be member of @DuchessFR, @Flupa and @sunnytech_mtp - shortBio: Passionnée d'UX Product Owner chez Elium - company: Elium - companyLogo: /images/speakers/company/elium.jpg - companyLogoUrl: /images/speakers/company/elium.jpg - country: 'Montpellier, France' - featured: true - photo: /images/speakers/estelle_landry.jpg - photoUrl: /images/speakers/estelle_landry.jpg - socials: - - icon: twitter - link: 'https://twitter.com/estelandry' - name: '@estelandry' - title: Product Owner - id: estelle_landry -- name: Laurent Wroblewski - bio: >- - Laurent Wroblewski, ingénieur développement full stack depuis maintenant - près de 9 ans, passionné par les technologies web/mobile. Récent expatrié - lillois, qui revient à domicile à la recherche de bières convenables et de - bon échanges techniques (l'un n'excluant pas l'autre ;)). J'aime partager - autour du JS et de ses principales stars du moment, comme Angular et React, - et du riche écosystème qui gravite autour. Mais le mobile n'est pas en reste - non plus, que ce soient le natif (Kotlin4ever), les solutions hybrides ou - les PWAs. - shortBio: Ingénieur développement full stack depuis maintenant près de 9 ans - company: Davidson Consulting - companyLogo: /images/speakers/company/davidson_consulting.jpg - companyLogoUrl: /images/speakers/company/davidson_consulting.jpg - country: 'Toulouse, France' - featured: true - photo: /images/speakers/laurent_wroblewski.jpg - photoUrl: /images/speakers/laurent_wroblewski.jpg - socials: - - icon: twitter - link: 'https://twitter.com/@LaurentWrob' - name: '@LaurentWrob' - - icon: github - link: 'https://github.com/LWroblewski' - name: LWroblewski - title: Ingénieur développement full stack - id: laurent_wroblewski -- name: Hubert Sablonnière - bio: >- - Hubert est passionné par le Web. Il est toujours à la recherche de nouvelles - idées et autres bidouilles pour améliorer l'expérience des utilisateurs et - des développeurs. - shortBio: "\U0001F61C Curious and passionate Web developer working for @clever_cloud" - company: Clever Cloud - companyLogo: /images/speakers/company/clever_cloud.png - companyLogoUrl: /images/speakers/company/clever_cloud.png - country: 'Lille, France' - featured: true - photo: /images/speakers/hubert_sablonniere.jpg - photoUrl: /images/speakers/hubert_sablonniere.jpg - socials: - - icon: twitter - link: 'https://twitter.com/hsablonniere' - name: '@hsablonniere' - - icon: github - link: 'https://github.com/hsablonniere' - name: hsablonniere - title: Web developer - id: hubert_sablonniere -- name: David Gageot - bio: >- - David est Developer Advocate chez Google Cloud. Il travaille sur les - Containers Tools. Auparavant, il a participé à l'ouverture du bureau de R&D - de Docker, à Paris. - shortBio: >- - Developer Advocate @Google Cloud. I run Docker in Docker in Docker... - recursively - company: Google - companyLogo: /images/speakers/company/google.svg - companyLogoUrl: /images/speakers/company/google.svg - country: 'Paris, France' - featured: true - photo: /images/speakers/david_gageot.jpg - photoUrl: /images/speakers/david_gageot.jpg - socials: - - icon: twitter - link: 'https://twitter.com/dgageot' - name: '@dgageot' - - icon: github - link: 'https://github.com/dgageot' - name: dgageot - title: Developer Advocate @ Google - id: david_gageot -- name: Sylvain Wallez - bio: >- - Architecte et développeur passionné, tech lead dans l'équipe Cloud chez - Elastic. A travaillé comme architecte, CTO et leader technique dans - plusieurs startups. Expert technique multi-compétences : systèmes scalables, - NoSQL, moteurs de recherche, mais aussi front-end, devops et Iot. Bref, - full-stack. Membre de la fondation Apache. - shortBio: >- - Passionate software architect & developer. Member of @theASF, tech lead in - the Cloud team at @elastic - company: Elastic - companyLogo: /images/speakers/company/elastic.png - companyLogoUrl: /images/speakers/company/elastic.png - country: 'Toulouse, France' - featured: true - photo: /images/speakers/sylvain_wallez.png - photoUrl: /images/speakers/sylvain_wallez.png - socials: - - icon: twitter - link: 'https://twitter.com/bluxte' - name: '@bluxte' - - icon: github - link: 'https://github.com/swallez' - name: swallez - title: Tech lead in Elastic Cloud team - id: sylvain_wallez -- id: philippe_charriere - name: Philippe Charrière - bio: "currently: \U0001F1EA\U0001F1FA TAM @GitLab \U0001F98A + deploying apps as CSO @clever_cloud \U0001F4A1☁️ + core committer @golo_lang + raising \U0001F916 @BotsGarden, previously: SE @github" - company: CleverCloud - featured: true - photo: /images/speakers/philippe_charriere.jpg - photoUrl: /images/speakers/philippe_charriere.jpg - socials: - - icon: twitter - link: 'https://twitter.com/k33g_org' - name: '@k33g_org' - - icon: github - link: 'https://github.com/k33g' - name: k33g - shortBio: "currently: \U0001F1EA\U0001F1FA TAM @GitLab \U0001F98A + deploying apps as CSO @clever_cloud \U0001F4A1☁️ + core committer @golo_lang + raising \U0001F916 @BotsGarden, previously: SE @github" - companyLogo: /images/speakers/company/clevercloud.jpg - companyLogoUrl: /images/speakers/company/clevercloud.jpg - country: 'Lyon, France' - title: "\U0001F1EA\U0001F1FA TAM @GitLab \U0001F98A & CSO @clever_cloud \U0001F4A1☁️" -- name: Horacio Gonzalez - bio: >- - Malgré ce que son accent espagnol bien prononcé peut suggérer, Horacio est - arrivé en France il y a une quinzaine d'années déjà. Passionné - d'informatique, dans laquelle il est tombé depuis tout petit, il a découvert - Java en 1997 et depuis il n'a pas arrêté de bosser autour. Après quelques - années comme tech leader de la partie frontend de @warp10io chez Cityzen - Data, Horacio a rejoint OVH en janvier 2018 en tant que Developer Advocate. - Il est aussi leader et cofondateur du FinistDevs et du GDG Finistère, le GDG - francophone le plus proche de la Silicon Valley. Passionné par le - développement web et tout ce qui gravite autour des composants web, Horacio - est Google Developer Expert (GDE) en Web Technologies et Polymer. - shortBio: >- - Spaniard lost in Brittany, coder, dreamer and all-around geek - #DevRel @ovh - -@Warp10io contributor - #Polymer & #Flutter @GoogleDevExpert - @FinistDevs - company: OVH - companyLogo: /images/speakers/company/ovh.jpg - companyLogoUrl: /images/speakers/company/ovh.jpg - country: 'Brittany, France' - featured: true - photo: /images/speakers/horacio_gonzalez.jpg - photoUrl: /images/speakers/horacio_gonzalez.jpg - socials: - - icon: twitter - link: 'https://twitter.com/LostInBrittany' - name: '@LostInBrittany' - - icon: github - link: 'https://github.com/LostInBrittany' - name: LostInBrittany - title: DevRel @ovh - id: horacio_gonzalez -- id: ane_diaz_de_tuesta - name: Ane DIAZ DE TUESTA - bio: >- - Je suis une personne dynamique, curieuse et sociable. Je travaille en tant - que développeuse depuis 2012, après avoir obtenu mon diplôme d’ingénieur - espagnol et ensuite le français. - - Actuellement je travaille chez Lectra comme développeuse FrontEnd et je suis - Scrum Master. Je suis passionnée par mon travail qui me rend heureuse. - company: Lectra - featured: false - photo: /images/speakers/ane_diaz_de_tuesta.jpg - photoUrl: /images/speakers/ane_diaz_de_tuesta.jpg - socials: - - icon: twitter - link: 'https://twitter.com/ane_naiz' - name: '@ane_naiz' - - icon: github - link: 'https://github.com/anediaz' - name: anediaz - - icon: linkedin - link: >- - https://www.linkedin.com/in/ane-diaz-de-tuesta-37785252, - http://anediaz.com/ - name: LinkedIn - shortBio: >- - #OpenMinded #travelling #Agile #Sport . @LectraFashion Web Developer - http://www.anediaz.com - companyLogo: /images/speakers/company/lectra.jpg - companyLogoUrl: /images/speakers/company/lectra.jpg - country: 'Bordeaux, France' -- id: comet_nicolas - name: Nicolas Comet - bio: >- - ​ - - Développeur passionné, Speaker, grand curieux, j'aime apprendre en - permanence. Je ne m'attache pas à une technologie en particulier, même si je - gravite plus souvent du côté Java / JavaEE. J'aime les principes fondateurs - du TDD. Je porte également un grand intérêt pour la synergie entre DDD et - documentation vivante ou "Living Documentation". - - - Je suis actuellement ingénieur d'études R&D chez Lectra, numéro un mondial - des solutions dédiées à l'industrie textile (logiciels & machines). - company: Lectra - featured: false - photo: /images/speakers/comet_nicolas.jpg - photoUrl: /images/speakers/comet_nicolas.jpg - socials: - - icon: twitter - link: 'https://twitter.com/NicolasComet' - name: '@NicolasComet' - - icon: github - link: 'https://github.com/ncomet' - name: ncomet - - icon: linkedin - link: 'https://www.linkedin.com/in/nicolascomet/' - name: LinkedIn - shortBio: >- - Software #developer @LectraOfficial Conference #speaker, All opinions are - eventually someone’s - companyLogo: /images/speakers/company/lectra.jpg - companyLogoUrl: /images/speakers/company/lectra.jpg - country: 'Bordeaux, France' -- id: benoit_prioux - name: Benoit PRIOUX - bio: >- - Je suis Technical Leader au centre R&D de Lectra, éditeur de logiciel dans - le monde de la mode, à Bordeaux. Je suis un développeur Java depuis 2005, et - membre du bureau du Bordeaux JUG. Impliqué dans le projet open-source - Asciidoctor, je suis aussi passionné par tout ce qui finit en DD : TDD, BDD, - DDD, ... - company: Lectra - featured: false - photo: /images/speakers/benoit_prioux.png - photoUrl: /images/speakers/benoit_prioux.png - socials: - - icon: twitter - link: 'https://twitter.com/binout' - name: '@binout' - - icon: github - link: 'https://github.com/binout' - name: binout - shortBio: 'Enthusiast Software Developer #java #kotlin #tdd #ddd #lectra' - companyLogo: /images/speakers/company/lectra.jpg - companyLogoUrl: /images/speakers/company/lectra.jpg - country: 'Bordeaux, France' - title: '' -- id: celine_louvet - name: Céline LOUVET - bio: CTO & cofondatrice de Fairvioo et développeuse au quotidien - company: Fairvioo - featured: false - photo: /images/speakers/celine_louvet.jpg - photoUrl: /images/speakers/celine_louvet.jpg - socials: - - icon: twitter - link: 'https://twitter.com/celine_louvet' - name: '@celine_louvet' - - icon: github - link: 'https://github.com/celinelouvet' - name: celinelouvet - - icon: linkedin - link: 'https://www.linkedin.com/in/celinelouvet/' - name: LinkedIn - shortBio: CTO @Fairvioo. Ex-CTO @CaptainContrat & Ex-@Sfeir - companyLogo: /images/speakers/company/fairvioo.jpg - companyLogoUrl: /images/speakers/company/fairvioo.jpg - country: Île-de-France -- id: frederic_cabestre - name: Frédéric Cabestre - bio: >- - Développeur, tendance «software craftman». Depuis longtemps attiré par les - langages et leur mise en œuvre. Grand amateur de programmation - fonctionnelle, même quand ce n'était pas encore cool. Curieux des systèmes, - surtout s'ils sont distribués. - company: Easy Mile - featured: false - photo: /images/speakers/frederic_cabestre.png - photoUrl: /images/speakers/frederic_cabestre.png - socials: - - icon: twitter - link: 'https://twitter.com/fcabestre' - name: '@fcabestre' - - icon: github - link: 'https://github.com/fcabestre' - name: fcabestre - shortBio: >- - NaN, craftsman of code, nomad of knowledge and λ juggler. I work at - @Easy_Mile. - companyLogo: /images/speakers/company/easy_mile.jpg - companyLogoUrl: /images/speakers/company/easy_mile.jpg - country: 'Toulouse, France' -- id: arnaud_bos - name: Arnaud BOS - bio: >- - Amateur de hamacs et de '(parenthèses). Du développement mobile au back-end, - je suis revenu à mes premiers amours, les systèmes distribués, au fil des - projets. Avec ma casquette de data engineer sur la tête, je me concentre sur - le développement de (micro?)services et me passionne pour langages de - programmation et les architectures distribuées. - company: MonkeyPatch - featured: false - photo: /images/speakers/arnaud_bos.jpg - photoUrl: /images/speakers/arnaud_bos.jpg - socials: - - icon: twitter - link: 'https://twitter.com/arnaud_bos' - name: '@arnaud_bos' - - icon: github - link: 'https://github.com/arnaudbos' - name: arnaudbos - shortBio: "Clojure as heck. Distributed systems. Podcasts. Can write backwards \U0001F643" - companyLogo: /images/speakers/company/monkeypatch.jpg - companyLogoUrl: /images/speakers/company/monkeypatch.jpg - country: 'Toulouse, France' -- id: julien_topcu - name: Julien Topçu - bio: >- - Senior Lead Developer à la Société Générale, je suis un fervent défenseur du - Software Craftsmanship. - - - J'évangélise activement autour de DDD/Hexagonal Architecture, l'XP et le - Kanban #NoEstimates au sein de cours et de - [meetups](https://www.youtube.com/watch?v=P0_M00X4Xlw/) ainsi qu'à travers - d'articles de [blog](https://beyondxscratch.wordpress.com/). - - - Membre de la fondation OWASP, je m'efforce de transmettre à la communauté - une philosophie DevSecOps que je pense être l'avenir du métier de - développeur. J'ai participé à la mise en place de pipeline de Continuous - Security à l'échelles d'entreprises. - company: Société Générale & OWASP fundation - featured: false - photo: /images/speakers/julien_topcu.jpeg - photoUrl: /images/speakers/julien_topcu.jpeg - socials: - - icon: twitter - link: 'https://twitter.com/JulienTopcu' - name: '@JulienTopcu' - - icon: linkedin - link: >- - https://www.linkedin.com/in/julien-top%C3%A7u/, - https://beyondxscratch.wordpress.com/ - name: LinkedIn - shortBio: Catalyst @SociétéGénérale OWASP Fundation member - companyLogo: /images/speakers/company/societe_generale.png - companyLogoUrl: /images/speakers/company/societe_generale.png - country: 'Île-de-France, France' -- id: guillaume_membre - name: Guillaume Membré - bio: >- - Geek à toute heure, je travaille principalement autour des technologies - Java/JavaEE mais aussi sur des problématiques de déploiement continu, de - qualimétrie. Désormais, je partage son expérience pour faciliter la mise en - place de démarche devops chez différents acteurs. J'adore bidouiller des - RaspberryPi ou Arduino pour créer des choses inutiles donc indispensables. - - Lorsque le temps le permet, je décris mes aventures sur mon [site - web](https://www.geekeries.fun). - company: Zenika - featured: false - photo: /images/speakers/guillaume_membre.jpg - photoUrl: /images/speakers/guillaume_membre.jpg - socials: - - icon: twitter - link: 'https://twitter.com/GuillaumeMembre' - name: '@GuillaumeMembre' - - icon: github - link: 'https://github.com/gmembre-zenika' - name: gmembre-zenika - shortBio: Codeur à ses heures perdues - companyLogo: /images/speakers/company/zenika.jpg - companyLogoUrl: /images/speakers/company/zenika.jpg - country: 'Nantes, France' -- id: robert_firek - name: Robert Firek - bio: >- - Robert Firek is a software craftsman who has tasted many different flavours - of programming. His broad range of experiences has helped to deliver quality - software in many companies and organisations. He strives to create software - according to the rule "Simplicity is the final achievement". He is trying to - unite worlds of the software development and the infrastructure delivery by - promoting the DevOps culture. - company: Codurance - featured: false - photo: /images/speakers/robert_firek.jpg - photoUrl: /images/speakers/robert_firek.jpg - socials: - - icon: twitter - link: 'https://twitter.com/RobertFirek' - name: '@RobertFirek' - - icon: github - link: 'https://github.com/robertfirek' - name: robertfirek - shortBio: Member of the London Java Community and Wrocław Java User Group. - companyLogo: /images/speakers/company/codurance.jpg - companyLogoUrl: /images/speakers/company/codurance.jpg - country: 'London, Royaume-Uni' -- id: guillaume_laforge - name: Guillaume Laforge - bio: >- - Le jour, Guillaume Laforge est Developer Advocate chez Google, sur les - solutions cloud, et de nuit, il reprends sa casquette de contributeur au - projet Apache Groovy. Guillaume est également un des membres du podcast Les - Cast Codeurs - company: Google - featured: false - photo: /images/speakers/guillaume_laforge.jpeg - photoUrl: /images/speakers/guillaume_laforge.jpeg - socials: - - icon: twitter - link: 'https://twitter.com/glaforge' - name: '@glaforge' - - icon: github - link: 'https://github.com/glaforge' - name: glaforge - shortBio: >- - Developer Advocate at @Google for @GoogleCloud during the day, and - @ApacheGroovy programming language project PMC Chair & @java_champions at - night - companyLogo: /images/speakers/company/google.jpg - companyLogoUrl: /images/speakers/company/google.jpg - country: 'Paris, France' -- id: olivier_leplus - name: Olivier Leplus - bio: >- - My day to day my mission is to help developers create successful and quality - apps. - - As a passionate web developer, I am always discovering and playing with new - web technologies ! - company: Botfuel - featured: false - photo: /images/speakers/olivier_leplus.jpg - photoUrl: /images/speakers/olivier_leplus.jpg - socials: - - icon: twitter - link: 'https://twitter.com/olivierleplus' - name: '@olivierleplus' - - icon: github - link: 'https://github.com/tagazok' - name: tagazok - - icon: linkedin - link: 'https://www.linkedin.com/in/olivierleplus/, https://tagazok.github.io/' - name: LinkedIn - shortBio: >- - Speaker, Conference organiser, Community obsessed developer, Traveler - - Developer Advocate @botfuel - Google Developer Expert in web tech - companyLogo: /images/speakers/company/botfuel.jpg - companyLogoUrl: /images/speakers/company/botfuel.jpg - country: 'Paris, France' -- id: tiffany_souterre - name: Tiffany Souterre - bio: >- - I love science and I love data! After finishing a Ph.D. in genetic - engineering, I continued my quest for discovering new patterns through data - science and machine learning. I currently work as a Big Data engineer and I - play with machine learning algorithms on my free time. Someday, I wish to - leverage data exploration to improve people's life. - company: JEMS Datafactory - featured: false - photo: /images/speakers/tiffany_souterre.jpg - photoUrl: /images/speakers/tiffany_souterre.jpg - socials: - - icon: twitter - link: 'https://twitter.com/tiffanysouterre' - name: '@tiffanysouterre' - - icon: github - link: 'https://github.com/Amagash' - name: Amagash - shortBio: "Data geek \U0001F4CA/ Google Developer Group Lead \U0001F4BB @GDGParis / Python Dev \U0001F40D / Ph.D. in Biotechnologies \U0001F393/ iGEM alumni ☣️" - companyLogo: /images/speakers/company/jems_datafactory.jpg - companyLogoUrl: /images/speakers/company/jems_datafactory.jpg - country: 'Paris, France' -- id: benoit_el_amrani - name: Benoit El Amrani - bio: >- - Passionné par le monde du web, je suis en veille constante pour trouver des - nouvelles idées permettant d'améliorer à la fois le quotidien des - développeurs et les applications sur lesquelles je travaille. - company: Informatique Banque Populaire - featured: false - photo: /images/speakers/benoit_el_amrani.jpg - photoUrl: /images/speakers/benoit_el_amrani.jpg - socials: - - icon: twitter - link: 'https://twitter.com/bentah31' - name: '@bentah31' - - icon: github - link: 'https://github.com/belamrani' - name: belamrani - shortBio: Mobile & Web Developer - companyLogo: /images/speakers/company/i-bp.png - companyLogoUrl: /images/speakers/company/i-bp.png - country: 'Toulouse, France' -- id: tugdual_grall - name: Tugdual Grall - bio: "Tugdual Grall\tBio: Tugdual Grall, est Chief Technical Evangelist EMEA chez MapR. Il travaille avec les clients et les communautés de développeurs européennes, pour faciliter l’adoption de MapR, Hadoop et NoSQL. \n\nAvant de travailler chez MapR, “Tug”, était Technical Evangelist chez MongoDB et Couchbase. Tug a travaillé comme CTO chez eXo Platform, et comme Product Manager et Développeur sur la platform Java/JavaEE d’Oracle.\n\nTugdual est également co-fondateur du Nantes JUG (Java Users Group) qui réunit tous les mois depuis 2008 les développeurs et architectes de la région nantaise." - company: MapR - featured: false - photo: /images/speakers/tugdual_grall.jpg - photoUrl: /images/speakers/tugdual_grall.jpg - socials: - - icon: twitter - link: 'https://twitter.com/tgrall' - name: '@tgrall' - - icon: github - link: 'https://github.com/tgrall' - name: tgrall - shortBio: >- - Technical Evangelist @MapR Big Data / NoSQL / Streaming | @nantesjug leader - | Slow Triathlete @resultri | Windsurfer - companyLogo: /images/speakers/company/mapr.MapR - companyLogoUrl: /images/speakers/company/mapr.MapR - country: It depends! -- id: david_pilato - name: David Pilato - bio: >- - Depuis 2013, David Pilato est développeur et évangéliste chez elastic.co, - après avoir passé les deux années précédentes à promouvoir le projet - open-source Elasticsearch. Il en anime la communauté française. - company: elastic - featured: false - photo: /images/speakers/david_pilato.jpg - photoUrl: /images/speakers/david_pilato.jpg - socials: - - icon: twitter - link: 'https://twitter.com/dadoonet' - name: '@dadoonet' - - icon: github - link: 'https://github.com/dadoonet' - name: dadoonet - shortBio: >- - developer | evangelist @ elastic Enjoying NoSQL world, DeeJay 4 times a - year, just for fun ! http://bit.ly/IixwIh - companyLogo: /images/speakers/company/elastic.jpg - companyLogoUrl: /images/speakers/company/elastic.jpg - country: France -- id: francois_teychene - name: Francois Teychene - bio: >- - Cloud Developper @ Saagie , meetup addict & organiser @ Montpellier et - Organisateur SunnyTech. - - Développeur couteau suisse pouvant intervenir du Javascript à la table de - routage. Mes passions actuelles sont le Rust, le DevOps et le Scala en plus - de vouloir mettre des conteneurs partout. - company: Saagie - featured: false - photo: /images/speakers/francois_teychene.jpg - photoUrl: /images/speakers/francois_teychene.jpg - socials: - - icon: twitter - link: 'https://twitter.com/fteychene' - name: '@fteychene' - - icon: github - link: 'https://github.com/fteychene' - name: fteychene - shortBio: >- - Cloud dev @saagie_io, @MtpTechHub President, @SunnyTech_MTP organiser, - Speaker, Teacher... #Devops #Rust #Scala enthusiast. Opinions are mine not - of my employer - companyLogo: /images/speakers/company/saagie.jpg - companyLogoUrl: /images/speakers/company/saagie.jpg - country: 'Montpellier, France' -- id: olivier_flebus - name: Olivier Flebus - bio: >- - Enterprise Architect, #Agile enthusiast. Leading #BigData @Continental - Digital Services France. Building a #Cloud platform for #ConnectedCars. - company: Continental Digital Services France - featured: false - photo: /images/speakers/olivier_flebus.jpg - photoUrl: /images/speakers/olivier_flebus.jpg - socials: - - icon: twitter - link: 'https://twitter.com/olivierflebus' - name: '@olivierflebus' - - icon: linkedin - link: 'https://www.linkedin.com/in/olivierflebus' - name: LinkedIn - shortBio: >- - Enterprise Architect, #Agile enthusiast. Leading #BigData @Continental - Digital Services France. Building a #Cloud platform for #ConnectedCars. - Views are my own. - companyLogo: /images/speakers/company/continental_digital_services_france.jpg - companyLogoUrl: /images/speakers/company/continental_digital_services_france.jpg - country: 'Toulouse, France' -- id: alexandre_delattre - name: Alexandre Delattre - bio: >- - Ingénieur logiciel Fullstack à MonkeyPatch - - - 32 ans et fort de 7 ans d'expérience dans le développement logiciel, mon - parcours, auprès de startups et de grands groupes m'a permis de m'approprier - une large gamme de technos fullstack: - - - - Mobile : Android (Kotlin), iOS (Swift), Ionic - - - Backend : Java, Scala, NodeJS - - - Web : Typescript / Angular 1 & 2 - - - Je suis passioné par la mobilité, la qualité et l'innovation logicielle, - l'UX et l'entrepreunariat digital. - company: MonkeyPatch - featured: false - photo: /images/speakers/alexandre_delattre.jpg - photoUrl: /images/speakers/alexandre_delattre.jpg - socials: - - icon: twitter - link: 'https://twitter.com/alexandre_del31' - name: '@alexandre_del31' - shortBio: Software engineer at @MonkeyPatch. Functional programming enthusiast - companyLogo: /images/speakers/company/monkeypatch.jpg - companyLogoUrl: /images/speakers/company/monkeypatch.jpg - country: 'Toulouse, France' -- id: guillaume_andrieu - name: Guillaume ANDRIEU - bio: FP enthusiast - company: MonkeyPatch - featured: false - photo: /images/speakers/guillaume_andrieu.jpg - photoUrl: /images/speakers/guillaume_andrieu.jpg - socials: - - icon: twitter - link: 'https://twitter.com/glmxndr' - name: '@glmxndr' - shortBio: FP enthusiast - companyLogo: /images/speakers/company/monkeypatch.jpg - companyLogoUrl: /images/speakers/company/monkeypatch.jpg - country: 'Toulouse, France' - title: '' -- id: sebastien_guilloux - name: Sébastien Guilloux - bio: >- - Cloud Engineer chez Elastic. J'ai un petit faible pour les systèmes - distribués, pour le fun et les challenges qu'ils nous apportent ! Auparavant - j'ai travaillé chez OVH, en tant que développeur sur plusieurs services - (Kafka, Kubernetes, Serverless Functions). - - Ah, j'ai une légère tendance à faire des jeux de mots, aussi :) - company: Elastic - featured: false - photo: /images/speakers/sebastien_guilloux.jpg - photoUrl: /images/speakers/sebastien_guilloux.jpg - socials: - - icon: twitter - link: 'https://twitter.com/_sebgl' - name: '@_sebgl' - - icon: github - link: 'https://github.com/sebgl' - name: sebgl - shortBio: Software developer. Music lover. I do french puns - companyLogo: /images/speakers/company/elastic.jpg - companyLogoUrl: /images/speakers/company/elastic.jpg - country: 'Toulouse, France' -- id: nicolas_decoster - name: Nicolas Decoster - bio: >- - Informaticien curieux depuis 35 ans, de métier depuis 20 ans (principalement - dans le spatial). Non spécialiste touche à tout : du développement logiciel - à l'étude scientifique, du développement d'algorithmes de traitement à la - mise en œuvre de systèmes, de la programmation en C++ ou Python à - l'utilisation des technos Web, de la petite appli en ligne de commande aux - IHM ou aux systèmes distribués. Ingénieur chez Magellium et co-fondateur et - animateur à la Compagnie du Code. - company: Magellium - featured: false - photo: /images/speakers/nicolas_decoster.jpg - photoUrl: /images/speakers/nicolas_decoster.jpg - socials: - - icon: twitter - link: 'https://twitter.com/nnodot' - name: '@nnodot' - shortBio: >- - Developer for science and other stuff, work for Magellium, co-founder of - @CompagnieDuCode - companyLogo: /images/speakers/company/magellium.jpg - companyLogoUrl: /images/speakers/company/magellium.jpg - country: 'Toulouse, France' -- id: juliane_blier - name: Juliane Blier - bio: >- - Développeuse Web, Amoureuse de Vuejs, Node et PHP, Curieuse de nouvelles - découvertes - company: SchoolMouv - featured: false - photo: /images/speakers/juliane_blier.jpg - photoUrl: /images/speakers/juliane_blier.jpg - socials: - - icon: twitter - link: 'https://twitter.com/tactless7' - name: '@tactless7' - - icon: github - link: 'https://github.com/Tactless7' - name: Tactless7 - shortBio: >- - Développeuse Web, Amoureuse de Vuejs, Node et PHP, Curieuse de nouvelles - découvertes - companyLogo: /images/speakers/company/schoolmouv.jpg - companyLogoUrl: /images/speakers/company/schoolmouv.jpg - country: 'Toulouse, France' - title: '' -- id: miro_miro_cupak - name: Miro Cupak - bio: >- - Miro is a VP of Engineering at DNAstack, where he builds a leading genomics - cloud platform. He is a Java enthusiast with expertise in distributed - systems and middleware, passionate about genetics and making meaningful - software. Miro is the creator of the largest search and discovery engine of - human genetic data, and the author of a book on parallelization of genomic - queries. In his spare time, he blogs and contributes to several open-source - projects. - company: DNAstack - featured: false - photo: /images/speakers/miro_miro_cupak.jpg - photoUrl: /images/speakers/miro_miro_cupak.jpg - socials: - - icon: twitter - link: 'https://twitter.com/mirocupak' - name: '@mirocupak' - - icon: github - link: 'https://github.com/mcupak' - name: mcupak - - icon: linkedin - link: 'https://mirocupak.com, https://www.linkedin.com/in/mirocupak' - name: LinkedIn - shortBio: >- - Software developer with passion for genetics and building meaningful things. - Java, open source, and distributed systems enthusiast. - companyLogo: /images/speakers/company/dnastack.jpg - companyLogoUrl: /images/speakers/company/dnastack.jpg - country: 'Toronto, Ontario' -- id: emmanuel_demey - name: Emmanuel DEMEY - bio: >- - Directeur technique chez Zenika Lille et Google Developer Expert, je suis - spécialisé dans AngularJS / Angular / TypeScript et l'Accessibilité Web. - Speaker à ses heures perdues. Aime également les bières (et oui quand on - vient de Lille c'est normal...), le Jazz et la Domotique. Plusieurs - expériences en tant que conférencier, notamment depuis septembre 2015 autour - du sujet Angular2. - ESLint au Jug Summer Camp et ChtiJS - Angular 2 : - ChtiJUG, LyonJS, GDG Paris, GDG Nantes, Meetup AngularJS Grenoble, Devoxx, - RivieraDev, Bdx.io, DevFest Nantes, Codeurs en Seine - company: Zenika - featured: false - photo: /images/speakers/emmanuel_demey.jpg - photoUrl: /images/speakers/emmanuel_demey.jpg - socials: - - icon: twitter - link: 'https://twitter.com/EmmanuelDemey' - name: '@EmmanuelDemey' - - icon: github - link: 'https://github.com/Gillespie59' - name: Gillespie59 - shortBio: >- - CTO at @ZenikaLille - Google Developer Expert @GoogleDevExpert - Web - Specialist - Speaker and Trainer, Organizer of #DevFestLille - @GDGLille - - Lille - companyLogo: /images/speakers/company/zenika.jpg - companyLogoUrl: /images/speakers/company/zenika.jpg - country: 'Lille, France' -- id: jean-francois_garreau - name: Jean-francois Garreau - bio: >- - En dehors du travail, je suis co-fondateur du GDG Nantes, organisateur du - DevFest Nantes, co-créateur des Nantes Wit et organisateur de Devoxx4Kids - company: Sfeir - featured: false - photo: /images/speakers/jean-francois_garreau.jpg - photoUrl: /images/speakers/jean-francois_garreau.jpg - socials: - - icon: twitter - link: 'https://twitter.com/jefBinomed' - name: '@jefBinomed' - - icon: github - link: 'https://github.com/jefBinomed' - name: jefBinomed - shortBio: "GDG Nantes Leader @gdgnantes \U0001F418 / @nanteswit \U0001F469‍\U0001F4BB / #devoxx4Kids / #GDE Web / developer and proud to be a dev @sfeir \U0001F468‍\U0001F4BB / curious geek" - companyLogo: /images/speakers/company/sfeir.jpg - companyLogoUrl: /images/speakers/company/sfeir.jpg - country: 'Nantes, France' - title: '' -- id: anastasia_lieva - name: Anastasia Lieva - bio: 'Fuzzy Humanist, Data Science Witch, The Lambda Wisperer' - company: Comwatt - featured: false - photo: /images/speakers/anastasia_lieva.jpg - photoUrl: /images/speakers/anastasia_lieva.jpg - socials: - - icon: twitter - link: 'https://twitter.com/lievAnastazia' - name: '@lievAnastazia' - shortBio: >- - #FuZzy humanist, Data Science Witch, Lambda Whisperer | Learning (machine, - human or whatever) | former couturier | permaculture newbie | for a better - world - companyLogo: /images/speakers/company/comwatt.jpg - companyLogoUrl: /images/speakers/company/comwatt.jpg - country: Solar System -- id: victor_kropp - name: Victor Kropp - bio: >- - Victor Kropp is a Software Engineer at JetBrains, where he has contributed - to many projects including ReSharper, dotCover, Hub and Toolbox App. His - interests include modern programming languages, practices and tools, and - cross-platform development. In his free time, he runs marathons and long - distance triathlons or travels with his family. - company: JetBrains - featured: false - photo: /images/speakers/victor_kropp.jpg - photoUrl: /images/speakers/victor_kropp.jpg - socials: - - icon: twitter - link: 'https://twitter.com/kropp' - name: '@kropp' - - icon: github - link: 'https://github.com/kropp' - name: kropp - shortBio: Software Engineer at @JetBrains. Father. 2×IRONMAN. English/Русский/Deutsch - companyLogo: /images/speakers/company/jetbrains.jpg - companyLogoUrl: /images/speakers/company/jetbrains.jpg - country: 'München, Deutschland' -- id: giulia_bianchi - name: Giulia Bianchi - bio: >- - Giulia est Data Scientist de plus de 4 ans d’expérience, elle est - consultante à Xebia depuis deux ans et demi. - - Elle travaille actuellement sur des volumes de données importants en mettant - en place des algorithmes de Machine Learning, avec un objectif concret - d’industrialisation. - - En 2018 elle a organisé la première édition du - [DataXDay](https://dataxday.fr/). - - Elle suit les nouvelles tendances du monde de la Data en participant aux - différents Meetups et en suivant des blogs. Elle contribue activement à cet - écosystème en donnant des - [talks](https://www.youtube.com/watch?v=N-LXrheCIKM) et en écrivant sur le - [blog Xebia](https://blog.xebia.fr/author/gbianchi/). - company: Xebia - featured: false - photo: /images/speakers/giulia_bianchi.jpg - photoUrl: /images/speakers/giulia_bianchi.jpg - socials: - - icon: twitter - link: 'https://twitter.com/Giuliabianchl' - name: '@Giuliabianchl' - - icon: github - link: 'https://github.com/giulbia' - name: giulbia - shortBio: >- - Data scientist @XebiaFr, organising http://dataxday.fr/ , writing - https://blog.xebia.fr , coding https://github.com/giulbia . Doing a lot of - other stuff - companyLogo: /images/speakers/company/xebia.jpg - companyLogoUrl: /images/speakers/company/xebia.jpg - country: 'Paris, France' -- id: piotr_przybyl - name: Piotr Przybyl - bio: >- - Notorious engineer at work and after hours, tracing meanders of the art of - software engineering. Software Gardener, mostly working in web-oriented Java - gardens. Fan of agility, seen mostly as choosing the right tools and - approaches. Lead developer, trainer and conference speaker. - company: Remote Freelance Software Gardener - featured: false - photo: /images/speakers/piotr_przybyl.jpg - photoUrl: /images/speakers/piotr_przybyl.jpg - socials: - - icon: twitter - link: 'https://twitter.com/piotrprz' - name: '@piotrprz' - shortBio: Remote Freelance Software Gardener - companyLogo: '' - companyLogoUrl: '' - country: 'Wroclaw, Poland' -- id: alessio_coltellacci - name: Alessio Coltellacci - bio: >- - Développeur système chez Clever Cloud, je développe des applications low - level en Rust, C, C++. Le reste du temps je m'amuse avec les features low - level du kernel: ebpf, XDP socket, Intel SGX ... et Infographiste 3d sur mon - free time depuis +7ans. - company: Clever Cloud - featured: false - photo: /images/speakers/alessio_coltellacci.jpg - photoUrl: /images/speakers/alessio_coltellacci.jpg - socials: - - icon: twitter - link: 'https://twitter.com/lightplay8' - name: '@lightplay8' - - icon: github - link: 'https://github.com/NotBad4U' - name: NotBad4U - shortBio: "Someone who thinks that #rust will rule the world. System developer at @clever_cloud \U0001F525\U0001F389" - companyLogo: /images/speakers/company/clever_cloud.jpg - companyLogoUrl: /images/speakers/company/clever_cloud.jpg - country: 'Toulouse, France' -- name: Mathieu Passenaud - bio: >- - DevOps (Teevity, Berger Levrault, OVH, Connit, Ubleam) depuis 8 ans - maintenant sur Toulouse. Issu du milieu de l'embarqué (calculateurs - ferroviaires/militaires), je me suis retrouvé parachuté dans l'univers du - cloud pendant quelques années jusqu'à revenir au croisement de ces deux - mondes : l'IOT. Touche à tout, j'aime beaucoup prototyper et répondre à la - question 'est-ce que c'est possible ?' - shortBio: Fondateur please-open.it - company: please-open.it - companyLogo: /images/speakers/company/please-open.png - companyLogoUrl: /images/speakers/company/please-open.png - country: 'Toulouse, France' - featured: true - photo: /images/speakers/mathieu_passenaud.png - photoUrl: /images/speakers/mathieu_passenaud.png - socials: - - icon: twitter - link: 'https://twitter.com/mathieupassenau' - name: '@mathieupassenau' - - icon: github - link: 'https://github.com/mathieupassenaud' - name: mathieupassenaud - title: Fondateur - id: mathieu_passenaud -- name: Fabien Tregan - bio: >- - Essaie de faire des logiciels depuis vingt ou trente ans. Au début en se - concentrant surtout sur le code, aujourd'hui en essayant de débusquer les - problèmes là où ils se trouvent. Heureusement, des fois c'est dans le code. - shortBio: >- - Not trying to reach perfection. Just more or less walking toward it, trying - to enjoy the landscape meanwhile. - company: Freelance - country: 'Toulouse, France' - featured: false - photo: /images/speakers/fabien_tregan.jpg - photoUrl: /images/speakers/fabien_tregan.jpg - socials: - - icon: twitter - link: 'https://twitter.com/ftregan' - name: '@ftregan' - id: fabien_tregan diff --git a/test-hugo/data/team.yml b/test-hugo/data/team.yml index 30f7a1e..121c8cd 100644 --- a/test-hugo/data/team.yml +++ b/test-hugo/data/team.yml @@ -1,79 +1,88 @@ -- title: Core Team - members: +- members: - name: Julien Del Rio photoUrl: /images/people/julien_delrio.jpg socials: - icon: twitter - link: https://twitter.com/JulienDelRio + link: 'https://twitter.com/JulienDelRio' name: Twitter title: GDG Toulouse - name: Julien Renaux photoUrl: /images/people/julien_renaux.jpg socials: - icon: twitter - link: https://twitter.com/julienrenaux + link: 'https://twitter.com/julienrenaux' name: Twitter - icon: github - link: https://github.com/shprink + link: 'https://github.com/shprink' name: Github - icon: linkedin - link: https://www.linkedin.com/in/julienrenaux/ + link: 'https://www.linkedin.com/in/julienrenaux/' name: LinkedIn title: GDG Toulouse - name: Alexia Audevart - photoUrl: /images/people/alexia_audevart.jpeg + photoUrl: 'https://www.ekito.fr/img/team/aaudevart.jpg' socials: - icon: twitter - link: https://www.twitter.com/aaudevart + link: 'https://www.twitter.com/aaudevart' name: Twitter - icon: github - link: https://github.com/aaudevart + link: 'https://github.com/aaudevart' name: Github - icon: linkedin - link: https://www.linkedin.com/in/alexia-audevart-450b8a1/ + link: 'https://www.linkedin.com/in/alexia-audevart-450b8a1/' name: Linkedin title: Toulouse Data Science - name: Kevin Davin photoUrl: /images/people/kevin_davin.png socials: + - icon: gplus + link: 'https://plus.google.com/+KevinDavin' + name: Google+ - icon: twitter - link: https://twitter.com/davinkevin + link: 'https://twitter.com/davinkevin' name: Twitter - icon: github - link: https://github.com/davinkevin/ + link: 'https://github.com/davinkevin/' name: Github - icon: linkedin - link: http://www.linkedin.com/in/davinkevin + link: www.linkedin.com/in/davinkevin name: LinkedIn title: GDG Toulouse & Toulouse JUG - name: Aurélie Vache photoUrl: /images/people/aurelie_vache.png socials: - icon: twitter - link: https://www.twitter.com/aurelievache + link: 'https://www.twitter.com/aurelievache' name: Twitter - icon: website - link: http://scraly.com/ + link: 'http://scraly.com/' name: Site - icon: linkedin - link: https://www.linkedin.com/in/aurelievache + link: 'https://www.linkedin.com/in/aurelievache' name: LinkedIn - icon: github - link: https://github.com/scraly + link: 'https://github.com/scraly' name: Github title: Duchess France / Toulouse Data Science - name: Maxime Pawlak photoUrl: /images/people/maxime_pawlak.jpg socials: - icon: twitter - link: https://twitter.com/Maxime_Pawlak + link: 'https://twitter.com/Maxime_Pawlak' name: Twitter title: GDG Toulouse + - name: Michaël Bitard + photoUrl: /images/people/michael_bitard.jpg + socials: + - icon: twitter + link: 'https://twitter.com/bitardmichael' + name: Twitter + title: Electron liiiibre - name: Didier Plaindoux photoUrl: /images/people/didier_plaindoux.jpeg socials: - icon: twitter - link: https://twitter.com/dplaindoux + link: 'https://twitter.com/dplaindoux' name: Twitter title: Toulouse JUG - name: Vincent Ferries @@ -81,7 +90,7 @@ https://pbs.twimg.com/profile_images/697834407407849472/bzv1VZJm_400x400.jpg socials: - icon: twitter - link: https://twitter.com/VincentFERRIES + link: 'https://twitter.com/VincentFERRIES' name: Twitter title: Toulouse JUG - name: Igor Laborie @@ -89,47 +98,47 @@ https://pbs.twimg.com/profile_images/3404066863/94e02f3bca9b038c4546f4e42ed05bc6.jpeg socials: - icon: twitter - link: https://twitter.com/ilaborie + link: 'https://twitter.com/ilaborie' name: Twitter - icon: github - link: https://github.com/ilaborie + link: 'https://github.com/ilaborie' name: Github - title: Choloepusophile + title: Folivoraphile - name: Emmanuel Vinas photoUrl: /images/people/emmanuel_vinas.jpeg socials: - icon: twitter - link: https://twitter.com/EmmanuelVinas + link: 'https://twitter.com/EmmanuelVinas' name: Twitter title: GDG Toulouse - name: Lionel Porcheron photoUrl: /images/people/lionel_porcheron.jpg socials: - icon: twitter - link: https://twitter.com/lporcheron + link: 'https://twitter.com/lporcheron' name: Twitter title: Toulouse DevOps - name: Michaël Pailloncy - photoUrl: https://s.gravatar.com/avatar/1b42d100589ea585ce9a1f359b8d4496?s=160 + photoUrl: 'https://s.gravatar.com/avatar/1b42d100589ea585ce9a1f359b8d4496?s=160' socials: - icon: twitter - link: https://twitter.com/mpailloncy + link: 'https://twitter.com/mpailloncy' name: Twitter - icon: github - link: https://github.com/mpailloncy + link: 'https://github.com/mpailloncy' name: Github - icon: linkedin - link: https://www.linkedin.com/in/michael-pailloncy-21119827/ + link: 'https://www.linkedin.com/in/michael-pailloncy-21119827/' name: LinkedIn title: Toulouse JAM / JUG - name: Elodie Lerare - photoUrl: /images/people/elodie_lerare.jpg + photoUrl: images/people/elodie_lerare.jpg socials: - icon: twitter - link: https://twitter.com/EloBlou + link: 'https://twitter.com/EloBlou' name: Twitter - icon: linkedin - link: https://www.linkedin.com/in/elodie-lerare-223a6b41/ + link: 'https://www.linkedin.com/in/elodie-lerare-223a6b41/' name: LinkedIn - title: - + title: '' + title: Core Team diff --git a/test-hugo/data/toolbar.yml b/test-hugo/data/toolbar.yml index 8169ef3..43f8c35 100644 --- a/test-hugo/data/toolbar.yml +++ b/test-hugo/data/toolbar.yml @@ -1,8 +1,10 @@ menus: - name: Accueil url: / - - name: Progamme - url: /schedule/ +# - name: Progamme +# url: /schedule/ + - name: Sessions + url: /talks/ - name: Speakers url: /speakers/ - name: Équipe diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/main.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/main.scss index a533f67..5ca9878 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/main.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/main.scss @@ -43,6 +43,15 @@ --tag7: #f1e2cc; --tag8: #cccccc; + --native-mobile-apps: var(--tag2); + --web: var(--tag6); + --method-tools: var(--tag5); + --big-data-ml-ai: var(--tag3); + --iot: var(--tag7); + --cloud: var(--tag4); + --languages: var(--tag1); + --wtf: var(--tag7); + --general: var(--tag8); /* Partners */ --partner-support-height: 60px; @@ -51,7 +60,8 @@ --animation: 0.3s cubic-bezier(0.4, 0, 0.2, 1); - --extruded: 1px 0 0 var(--darken-3); + --extruded-dark: 1px 0 0 var(--darken-3); + --extruded-light: 1px 0 0 var(--lighten-3); --box-shadow-1: 0 0 2px 0 rgba(0, 0, 0, 0.07), 0 2px 2px 0 rgba(0, 0, 0, 0.15); --box-shadow-2: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12); @@ -69,6 +79,8 @@ @import "partials/speakers"; @import "partials/tickets"; @import "partials/partners"; +@import "partials/tags"; +@import "partials/type"; @import "pages/home"; @import "pages/sessions"; diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_blog.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_blog.scss index 9b55ed2..07a651c 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_blog.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_blog.scss @@ -18,10 +18,6 @@ display: block; } } - - hr { - opacity: .25; - } } .content { diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_code_of_conduct.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_code_of_conduct.scss index e5029a5..6325822 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_code_of_conduct.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_code_of_conduct.scss @@ -1,7 +1,4 @@ .page.code-of-conduct .content { - margin: 2rem var(--container-margin); - padding-left: 0; - padding-right: 0; p { margin-left: var(--space-4); @@ -14,7 +11,6 @@ ul { margin-left: 2rem; - li { line-height: 1.25; } diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_home.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_home.scss index 4fa8e32..10054d8 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_home.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_home.scss @@ -1,5 +1,9 @@ .home { + main > section { + margin: 0; + padding: 2rem; + } section > h2 { margin-bottom: 1.5rem; @@ -68,4 +72,26 @@ flex-direction: column; align-items: center; } + + section.location { + position: relative; + background: var(--darken-1); + font-weight: 300; + + .description { + display: inline-block; + padding: var(--space-4); + width: 400px; + position: absolute; + bottom: -2rem; + right: 2rem; + background-color: var(--primary); + color: var(--primary-txt); + + .direction { + display: flex; + align-items: center; + } + } + } } \ No newline at end of file diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_session.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_session.scss index e2d6091..d844085 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_session.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_session.scss @@ -1,3 +1,133 @@ -.page.sessions { + +.talk { + .complexity::before { + content: 'Niveau : '; + } + + .type::before { + content: 'Type : '; + } + + .type::after { + font-weight: 100; + content: ' (' var(--duration, '') ' min.)'; + } + + .speakers { + .speaker { + display: flex; + align-items: center; + padding: var(--space-1) var(--space-3); + --img-size: 2rem; + + .speaker-img { + --img-size: 3rem; + height: var(--img-size); + min-width: var(--img-size); + border-radius: 100%; + background-size: cover; + margin-right: var(--space-4); + } + + .info { + display: flex; + flex-direction: column; + } + + .speaker-company { + img { + height: 2rem; + } + + figcaption { + display: none; + } + } + } + } +} + + +.page.talks { + + .talk { + display: grid; + grid-template-columns: 2fr 1fr; + grid-gap: var(--space-3); + + header { + grid-column: 1 / -1; + border-radius: var(--space-2); + padding: var(--space-2); + display: flex; + align-items: center; + + h1 { + flex-grow: 1; + } + .tags { + margin-right: 1ch; + white-space: nowrap; + } + } + + .content { + margin: var(--space-4) 0; + border-top: thin solid var(--darken-1); + border-bottom: thin solid var(--darken-1); + } + + .speakers { + list-style: none; + padding: 0; + align-self: start; + border-radius: var(--space-2); + + .speaker { + margin: var(--space-4) 0; + border: thin solid var(--darken-1); + box-shadow: var(--space-1) var(--space-1) var(--space-2) var(--darken-2); + transition: box-shadow var(--animation); + border-radius: var(--space-2); + + &:hover, &:focus { + box-shadow: var(--space-2) var(--space-2) var(--space-2) var(--darken-3); + } + + display: grid; + grid-template-columns: 4rem 1fr auto; + grid-auto-flow: dense; + text-decoration: none; + color: inherit; + + p { + grid-column: 1 / -1; + } + + figure { + grid-column: 3; + padding: var(--space-2); + display: flex; + align-items: center; + justify-content: flex-end; + + img { + order: 2; + } + } + } + } + + + .media { + grid-column: 1 / -1; + + a { + padding: var(--space-3) 0; + font-size: 1rem; + } + } + + } } \ No newline at end of file diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_sessions.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_sessions.scss index 5644af3..0e390f9 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_sessions.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_sessions.scss @@ -1,3 +1,63 @@ -.section.sessions { +.section.talks, .taxonomy.tags { -} \ No newline at end of file + ul.talks { + list-style: none; + padding: 0; + margin: 0; + display: grid; + grid-gap: 2rem; + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + + a { + border: thin solid var(--darken-1); + box-shadow: var(--space-1) var(--space-1) var(--space-2) var(--darken-2); + transition: box-shadow var(--animation); + border-radius: var(--space-2); + display: flex; + flex-direction: column; + text-decoration: none; + color: inherit; + height: 100%; + + &:hover, &:focus { + box-shadow: var(--space-2) var(--space-2) var(--space-2) var(--darken-3); + } + + h2, .info { + padding: var(--space-4); + } + + h2 { + display: flex; + justify-content: space-between; + align-items: center; + } + + hr { + width: calc(100% - var(--space-3)); + margin: 0 auto; + } + + .info { + flex-grow: 1; + + .tags { + float: right; + } + + } + + .speakers { + border: thin solid transparent; + border-radius: var(--space-2); + background: var(--base); + padding-left: 0; + } + + .speaker + .speaker { + border-top: thin solid var(--darken-1); + } + + } + } +} diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_speaker.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_speaker.scss index d8f5b4f..80e4b5d 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_speaker.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_speaker.scss @@ -29,16 +29,43 @@ list-style: none; padding: 0; margin: 0; + font-size: 1.25em; + li { padding-right: var(--space-4); } } } + + .description { + .talks { + padding-left: 0; + list-style: none; + + .talk { + border: thin solid var(--darken-1); + display: inline-flex; + padding: var(--space-2); + border-radius: var(--space-1); + + .tags, .language { + margin-right: 1ch; + } + .tags { + white-space: nowrap; + align-self: center; + } + + &.tag- { + display: none; + } + } + } } + } section.speaker { - padding: var(--space-4) var(--container-margin); header { display: flex; diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_team.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_team.scss index 048d19c..053fa51 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_team.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/pages/_team.scss @@ -33,6 +33,11 @@ margin: 0; padding: 0; filter: grayscale(1); + transition: filter var(--animation); + + &:hover, &:focus { + filter: grayscale(0); + } } } diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_base.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_base.scss index f44f822..ca8ffdf 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_base.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_base.scss @@ -29,14 +29,26 @@ h1, h2, h3, h4, h5, h6 { font-weight: normal; } +hr { + border-color: var(--darken-1); + opacity: .25; +} + p { line-height: 1.25; } +a, a:visited { + color: inherit; + text-decoration: none; +} -.content { +.content {🇬🇧 a, a:visited { color: var(--primary); } +} +.language.english::before { + content: '🇬🇧'; } \ No newline at end of file diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_buttons.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_buttons.scss index 9b22651..841666f 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_buttons.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_buttons.scss @@ -1,4 +1,5 @@ button, a.btn, span.btn { + display: inline-block; border: thin solid var(--darken-2); background: var(--darken-1); padding: var(--space-3); @@ -8,11 +9,33 @@ button, a.btn, span.btn { font-size: .875rem; font-weight: 100; cursor: pointer; + text-shadow: var(--extruded-light); &.primary { background-color: var(--primary); color: var(--primary-txt); - text-shadow: var(--extruded); + text-shadow: var(--extruded-dark); + } + + &.btn-icon-only { + border-radius: 50%; + margin-left: 1ch; + padding: var(--space-2); + border-color: transparent; + + &::before { + --size: 1.5rem; + width: var(--size); + height: var(--size); + display: inline-block; + content: ''; + background-repeat: no-repeat; + } + } + + // Icons + &.icon-direction::before { + background-image: url('data:image/svg+xml;utf8,'); } } diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_footer.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_footer.scss index a4fddd4..c3a521a 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_footer.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_footer.scss @@ -4,17 +4,8 @@ body > footer { padding: var(--space-4) var(--container-margin); font-weight: 200; - a { - color: inherit; - text-decoration: none; - - &:hover { - text-decoration: underline; - } - } - - hr { - opacity: .25; + a:hover { + text-decoration: underline; } // Header @@ -51,6 +42,11 @@ body > footer { .follow a[class*='social-'] { filter: grayscale(1); + transition: filter var(--animation); + + &:hover, &:focus { + filter: grayscale(0); + } } .blog a { diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_header.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_header.scss index 9847493..687b62d 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_header.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_header.scss @@ -36,7 +36,7 @@ body > header { border-radius: 5%; &:focus, &:hover { - text-shadow: var(--extruded); + text-shadow: var(--extruded-dark); opacity: .75; } diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_main.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_main.scss index b082526..4ab3815 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_main.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_main.scss @@ -2,7 +2,9 @@ body > main { flex-grow: 1; & > section { - padding: 2rem; + margin: 2rem var(--container-margin); + padding-left: 0; + padding-right: 0; &.primary { background-color: var(--primary); diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_socials.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_socials.scss index 46934c0..8c93a80 100644 --- a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_socials.scss +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_socials.scss @@ -10,11 +10,11 @@ a[class*='social-'] { text-decoration: none; &::before { - display: inline-block; - content: ''; - --size: 1rem; + --size: 1em; height: var(--size); width: var(--size); + display: inline-block; + content: ''; background-repeat: no-repeat; margin-right: var(--space-1); } @@ -46,4 +46,7 @@ a[class*='social-'] { .social-website::before { background-image: url('data:image/svg+xml;utf8,'); +} +.social-slides::before { + background-image: url('data:image/svg+xml;utf8,'); } \ No newline at end of file diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_tags.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_tags.scss new file mode 100644 index 0000000..0549678 --- /dev/null +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_tags.scss @@ -0,0 +1,47 @@ +.tag-method-tools { + background-color: var(--method-tools); +} + +.tag-native-mobile-apps { + background-color: var(--native-mobile-apps); +} + +.tag-web { + background-color: var(--web); +} + +.tag-big-data-ml-ai { + background-color: var(--big-data-ml-ai); +} + +.tag-iot { + background-color: var(--iot); +} + +.tag-cloud { + background-color: var(--cloud); +} + +.tag-languages { + background-color: var(--languages); +} + +.tag-wtf { + background-color: var(--wtf); +} + +.tag-general { + background-color: var(--general); +} + +.tags { + padding: var(--space-1); + border-radius: var(--space-2); + background: var(--darken-1); + border: thin solid var(--darken-2); + text-shadow: var(--extruded-light); +} + +.taxonomy.tags { + background: var(--base); +} \ No newline at end of file diff --git a/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_type.scss b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_type.scss new file mode 100644 index 0000000..b087882 --- /dev/null +++ b/test-hugo/themes/devfest-theme-hugo/assets/style/partials/_type.scss @@ -0,0 +1,13 @@ + + +.type-conférence { + --duration: '40'; +} + +.type-quickie { + --duration: '15'; +} + +.type-keynote { + --duration: '40'; +} \ No newline at end of file diff --git a/test-hugo/themes/devfest-theme-hugo/layouts/_default/home.html b/test-hugo/themes/devfest-theme-hugo/layouts/_default/home.html index 2df3e1b..d772248 100644 --- a/test-hugo/themes/devfest-theme-hugo/layouts/_default/home.html +++ b/test-hugo/themes/devfest-theme-hugo/layouts/_default/home.html @@ -27,14 +27,11 @@

Rockstar speakers

{{ if .Site.Data.home.speakers.top }}
    - {{ $speakers := .Site.Data.speakers }} - {{ range .Site.Data.home.speakers.top }} - {{ range where $speakers "id" . }} + {{ range where .Site.RegularPages "Params.id" "in" .Site.Data.home.speakers.top }}
  • {{ partial "speaker.html" . }}
  • {{ end }} - {{ end }}
{{ end }} {{ if .Site.Data.home.speakers.otherspeakers }} @@ -73,17 +70,30 @@ {{ if .Params.location }} -
-

Le lieu

-

{{ .Site.Data.location.name }}

-

{{ .Site.Data.location.description }}

-

- {{ .Site.Data.location.address }} - {{ if .Site.Data.location.pointer }} - Itinéraire - {{ end }} -

+
+ + + +
+

Le lieu

+

{{ .Site.Data.location.name }}

+

{{ .Site.Data.location.description }}

+
+ {{ .Site.Data.location.address }} + {{ if .Site.Data.location.pointer }} + + {{ end }} +
+
{{ end }} diff --git a/test-hugo/themes/devfest-theme-hugo/layouts/_default/list.html b/test-hugo/themes/devfest-theme-hugo/layouts/_default/list.html index cff89c9..27d9065 100644 --- a/test-hugo/themes/devfest-theme-hugo/layouts/_default/list.html +++ b/test-hugo/themes/devfest-theme-hugo/layouts/_default/list.html @@ -1,3 +1,14 @@ {{ define "main" }} + {{ .Content }} +
+ + + {{ end }} \ No newline at end of file diff --git a/test-hugo/themes/devfest-theme-hugo/layouts/partials/session.html b/test-hugo/themes/devfest-theme-hugo/layouts/partials/session.html new file mode 100644 index 0000000..2a3cd99 --- /dev/null +++ b/test-hugo/themes/devfest-theme-hugo/layouts/partials/session.html @@ -0,0 +1,40 @@ + + +

+ {{ .Title }} + +

+ +
+ +
+ {{ if.Params.tags }} +
+ {{ range .Params.tags }} + {{ . }} + {{ end }} +
+ {{ end }} + +
{{ .Params.complexity }}
+
{{ .Params.talkType }}
+
+ + +
    + {{ range where .Site.RegularPages "Params.id" "in" .Params.speakers }} +
  • +
    +
    + {{ .Params.name }} + {{ .Params.country }} +
    +
    + +
    {{ .Params.company }}
    +
    +
  • + {{ end }} +
+ +
diff --git a/test-hugo/themes/devfest-theme-hugo/layouts/partials/speaker.html b/test-hugo/themes/devfest-theme-hugo/layouts/partials/speaker.html index f44554b..d511060 100644 --- a/test-hugo/themes/devfest-theme-hugo/layouts/partials/speaker.html +++ b/test-hugo/themes/devfest-theme-hugo/layouts/partials/speaker.html @@ -1,11 +1,11 @@ - -
+
+
- -
{{ .company }}
+ +
{{ .Params.company }}
- {{ .name }} - {{ .country }} + {{ .Params.name }} + {{ .Params.country }}
\ No newline at end of file diff --git a/test-hugo/themes/devfest-theme-hugo/layouts/speakers/list.html b/test-hugo/themes/devfest-theme-hugo/layouts/speakers/list.html index 8dc3d78..a99e726 100644 --- a/test-hugo/themes/devfest-theme-hugo/layouts/speakers/list.html +++ b/test-hugo/themes/devfest-theme-hugo/layouts/speakers/list.html @@ -3,13 +3,13 @@

{{ $.Page.Params.Title }}

- {{ .Content }} + TODO: filter and search
    - {{ range .Site.Data.speakers }} + {{ range .Pages }}
  • {{ partial "speaker.html" . }}
  • {{ end }}
diff --git a/test-hugo/themes/devfest-theme-hugo/layouts/speakers/single.html b/test-hugo/themes/devfest-theme-hugo/layouts/speakers/single.html index 34dd125..430ab47 100644 --- a/test-hugo/themes/devfest-theme-hugo/layouts/speakers/single.html +++ b/test-hugo/themes/devfest-theme-hugo/layouts/speakers/single.html @@ -18,24 +18,34 @@
-
+

{{ .Page.Params.country }}

{{ .Page.Params.company }}
{{ .Page.Params.company }}
-

{{ .Page.Params.country }}

diff --git a/test-hugo/themes/devfest-theme-hugo/layouts/talks/list.html b/test-hugo/themes/devfest-theme-hugo/layouts/talks/list.html new file mode 100644 index 0000000..da85347 --- /dev/null +++ b/test-hugo/themes/devfest-theme-hugo/layouts/talks/list.html @@ -0,0 +1,18 @@ +{{ define "main" }} + +
+

{{ $.Page.Params.Title }}

+
+ TODO: filter and search +
+
+ +
+
    + {{ range where .Pages ".Params.title" "ne" "Office Hours" }} +
  • {{ partial "session.html" . }}
  • + {{ end }} +
+
+ +{{ end }} \ No newline at end of file diff --git a/test-hugo/themes/devfest-theme-hugo/layouts/talks/single.html b/test-hugo/themes/devfest-theme-hugo/layouts/talks/single.html new file mode 100644 index 0000000..5e38dff --- /dev/null +++ b/test-hugo/themes/devfest-theme-hugo/layouts/talks/single.html @@ -0,0 +1,62 @@ +{{ define "main" }} +
+ +
+
+ {{ range .Params.tags }} + {{ . }} + {{ end }} +
+ +

{{ .Title }}

+ +
+ +
+
{{ .Params.complexity }}
+
{{ .Params.talkType }}
+ +
+ {{ .Content }} +
+ +
+ + + + + +
+ {{ if .Params.videoId }} +
+ +
+ {{ end }} + + {{ if .Params.presentation }} + + {{ end }} + +
+ +
+{{ end }} diff --git a/test-hugo/themes/devfest-theme-hugo/layouts/taxonomy/list.html b/test-hugo/themes/devfest-theme-hugo/layouts/taxonomy/list.html new file mode 100644 index 0000000..da85347 --- /dev/null +++ b/test-hugo/themes/devfest-theme-hugo/layouts/taxonomy/list.html @@ -0,0 +1,18 @@ +{{ define "main" }} + +
+

{{ $.Page.Params.Title }}

+
+ TODO: filter and search +
+
+ +
+
    + {{ range where .Pages ".Params.title" "ne" "Office Hours" }} +
  • {{ partial "session.html" . }}
  • + {{ end }} +
+
+ +{{ end }} \ No newline at end of file diff --git a/tools/extract-data.js b/tools/extract-data.js index 7920797..e23c298 100644 --- a/tools/extract-data.js +++ b/tools/extract-data.js @@ -14,25 +14,10 @@ const writeToYml = (list, dest) => { }; const firebaseData = require('../test-hugo/data/firebase-data.json'); -const identity = obj => obj; -const idValue = obj => - Object.entries(obj) - .map(([key, elt]) => ({ - ...elt, - id: key - })); -const dataExtractor = { - sessions: idValue, - speakers: idValue, - partners: identity, - team: identity, - tickets: identity, -}; - -Object.entries(dataExtractor) - .forEach(([key, value]) => { +['partners', 'team', 'tickets'] + .forEach(key => { const dest = path.join(__dirname, `../test-hugo/data/${key}.yml`); - const data = value(firebaseData[key]); + const data = firebaseData[key]; writeToYml(data, dest); }); diff --git a/tools/generate-sessions.js b/tools/generate-sessions.js new file mode 100644 index 0000000..c6e7f74 --- /dev/null +++ b/tools/generate-sessions.js @@ -0,0 +1,45 @@ +const yaml = require('js-yaml'); +const fs = require('fs'); +const path = require('path'); + + +const writeOption = { + flag: 'w' +}; + +const firebaseData = require('../test-hugo/data/firebase-data.json'); + + +const generateSessionData = (id, session) => { + const frontMatter = {id, ...session}; + const {type} = frontMatter; + delete frontMatter.description; + delete frontMatter.type; + frontMatter.talkType = type; + return `--- +${yaml.safeDump(frontMatter, {skipInvalid: true})} +--- + +${session.description} +`; +}; + +const generateSessionName = (id, title) => { + const name = title + .normalize('NFD') + .replace(/[\u0300-\u036f]/g, "") + .replace(/[^a-z0-9]/gi, '_') + .toLowerCase(); + return `${id}_${name}.md`; +}; + +Object.entries(firebaseData.sessions) + .filter(([_, session]) => !session.isBreak) + .map(([id, session]) => ([ + generateSessionName(id, session.title), + generateSessionData(parseInt(id, 10), session)])) + .forEach(([filename, data]) => { + const dest = path.join(__dirname, `../test-hugo/content/talks/${filename}`); + console.log('Write to', dest); + fs.writeFileSync(dest, data, writeOption); + }); \ No newline at end of file diff --git a/tools/generate-speakers.js b/tools/generate-speakers.js index e6ca809..3f82b18 100644 --- a/tools/generate-speakers.js +++ b/tools/generate-speakers.js @@ -10,13 +10,13 @@ const writeOption = { const firebaseData = require('../test-hugo/data/firebase-data.json'); const generateSpeakerData = (id, speaker) => { - const {name, bio, company, companyLogo, country, photo, socials} = speaker; - const frontMatter = {id, name, company, companyLogo, country, photo, socials}; + const frontMatter = {id, ...speaker}; + delete frontMatter.bio; return `--- ${yaml.safeDump(frontMatter, {skipInvalid: true})} --- -${bio} +${speaker.bio} `; };