Podcasts about JUnit

  • 55PODCASTS
  • 90EPISODES
  • 57mAVG DURATION
  • 1MONTHLY NEW EPISODE
  • Jan 21, 2025LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about JUnit

Latest podcast episodes about JUnit

Les Cast Codeurs Podcast
LCC 321 - Les évènements écran large

Les Cast Codeurs Podcast

Play Episode Listen Later Jan 21, 2025 73:53


Arnaud et Emmanuel discutent des versions Java, font un résumé de l'ecosystème WebAssembly, discutent du nouveau Model Context Protocol, parlent d'observabilité avec notamment les Wide Events et de pleins d'autres choses encore. Enregistré le 17 janvier 2025 Téléchargement de l'épisode LesCastCodeurs-Episode–321.mp3 ou en vidéo sur YouTube. News Langages java trend par InfoQ https://www.infoq.com/articles/java-trends-report–2024/ Java 17 finalement depasse 11 et 8 ~30/33% Java 21 est à 1.4% commonhaus apparait GraalVM en early majority Spring AI et langchain4j en innovateurs SB 3 voit son adoption augmenter Un bon résumé sur WebAssembly, les différentes specs comme WASM GC, WASI, WIT, etc https://2ality.com/2025/01/webassembly-language-ecosystem.html WebAssembly (Wasm) est un format d'instructions binaires pour une machine virtuelle basée sur une pile, permettant la portabilité et l'efficacité du code. Wasm a évolué à partir d'asm.js, un sous-ensemble de JavaScript qui pouvait fonctionner à des vitesses proches de celles natives. WASI (WebAssembly System Interface) permet à Wasm de fonctionner en dehors des navigateurs Web, fournissant des API pour le système de fichiers, CLI, HTTP, etc. Le modèle de composant WebAssembly permet l'interopérabilité entre les langages Wasm à l'aide de WIT (Wasm Interface Type) et d'ABI canonique. Les composants Wasm se composent d'un module central et d'interfaces WIT pour les importations/exportations, facilitant l'interaction indépendante du langage. Les interfaces WIT décrivent les types et les fonctions, tandis que les mondes WIT définissent les capacités et les besoins d'un composant (importations/exportations). La gestion des packages Wasm est assurée par Warg, un protocole pour les registres de packages Wasm. Une enquête a montré que Rust est le langage Wasm le plus utilisé, suivi de Kotlin et de C++; de nombreux autres langages sont également en train d'émerger. Un algorithme de comptage a taille limitée ne mémoire a été inventé https://www.quantamagazine.org/computer-scientists-invent-an-efficient-new-way-to-count–20240516/ élimine un mot de manière aléatoire mais avec une probabilité connue quand il y a besoin de récupérer de l'espace cela se fait par round et on augmente la probabilité de suppression à chaque round donc au final, ne nombre de mots / la probabilité d'avoir été éliminé donne une mesure approximative mais plutot précise Librairies Les contributions Spring passent du CLA au DCO https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring d'abord manuel amis meme automatisé le CLA est une document legal complexe qui peut limiter les contribuitions le DCO vient le Linux je crois et est super simple accord que la licence de la conmtrib est celle du projet accord que le code est public et distribué en perpetuité s'appuie sur les -s de git pour le sign off Ecrire un serveur MCP en Quarkus https://quarkus.io/blog/mcp-server/ MCP est un protocol proposé paor Antropic pour integrer des outils orchestrables par les LLMs MCP est frais et va plus loin que les outils offre la notion de resource (file), de functions (tools), et de proimpts pre-built pour appeler l'outil de la meilleure façon On en reparlera a pres avec les agent dans un article suivant il y a une extension Quarkus pour simplifier le codage un article plus detaillé sur l'integration Quarkus https://quarkus.io/blog/quarkus-langchain4j-mcp/ GreenMail un mini mail server en java https://greenmail-mail-test.github.io/greenmail/#features-api Utile pour les tests d'integration Supporte SMTP, POP3 et IMAP avec TLS/SSL Propose des integrations JUnit, Spring Une mini UI et des APIs REST permettent d'interagir avec le serveur si par exemple vous le partagé dans un container (il n'y a pas d'integration TestContainer existante mais elle n'est pas compliquée à écrire) Infrastructure Docker Bake in a visual way https://dev.to/aurelievache/understanding-docker-part–47-docker-bake–4p05 docker back propose d'utiliser des fichiers de configuration (format HCL) pour lancer ses builds d'images et docker compose en gros voyez ce DSL comme un Makefile très simplifié pour les commandes docker qui souvent peuvent avoir un peu trop de paramètres Datadog continue de s'etendre avec l'acquisition de Quickwit https://www.datadoghq.com/blog/datadog-acquires-quickwit/ Solution open-source de recherche des logs qui peut être déployée on-premise et dans le cloud https://quickwit.io/ Les logs ne quittent plus votre environment ce qui permet de répondre à des besoins de sécurité, privacy et réglementaire Web 33 concepts en javascript https://github.com/leonardomso/33-js-concepts Call Stack, Primitive Types, Value Types and Reference Types, Implicit, Explicit, Nominal, Structuring and Duck Typing, == vs === vs typeof, Function Scope, Block Scope and Lexical Scope, Expression vs Statement, IIFE, Modules and Namespaces, Message Queue and Event Loop, setTimeout, setInterval and requestAnimationFrame, JavaScript Engines, Bitwise Operators, Type Arrays and Array Buffers, DOM and Layout Trees, Factories and Classes, this, call, apply and bind, new, Constructor, instanceof and Instances, Prototype Inheritance and Prototype Chain, Object.create and Object.assign, map, reduce, filter, Pure Functions, Side Effects, State Mutation and Event Propagation, Closures, High Order Functions, Recursion, Collections and Generators, Promises, async/await, Data Structures, Expensive Operation and Big O Notation, Algorithms, Inheritance, Polymorphism and Code Reuse, Design Patterns, Partial Applications, Currying, Compose and Pipe, Clean Code Data et Intelligence Artificielle Phi 4 et les small language models https://techcommunity.microsoft.com/blog/aiplatformblog/introducing-phi–4-microsoft%e2%80%99s-newest-small-language-model-specializing-in-comple/4357090 Phi 4 un SML pour les usages locaux notamment 14B de parametres belle progression de ~20 points sur un score aggregé et qui le rapproche de Llama 3.3 et ses 70B de parametres bon en math (data set synthétique) Comment utiliser Gemini 2.0 Flash Thinking (le modèle de Google qui fait du raisonnement à la sauce chain of thought) en Java avec LangChain4j https://glaforge.dev/posts/2024/12/20/lets-think-with-gemini–2-thinking-mode-and-langchain4j/ Google a sorti Gemini 2.0 Flash, un petit modèle de la famille Gemini the “thinking mode” simule les cheminements de pensée (Chain of thoughts etc) décompose beaucoup plus les taches coplexes en plusiewurs taches un exemple est montré sur le modele se battant avec le probleme Les recommendations d'Antropic sur les systèmes d'agents https://www.anthropic.com/research/building-effective-agents défini les agents et les workflow Ne recommence pas les frameworks (LangChain, Amazon Bedrock AI Agent etc) le fameux débat sur l'abstraction Beaucoup de patterns implementable avec quelques lignes sans frameworks Plusieurs blocks de complexité croissante Augmented LLM (RAG, memory etc): Anthropic dit que les LLMs savent coordonner cela via MCP apr exemple Second: workflow prompt chaining : avec des gates et appelle les LLMs savent coordonner successivement ; favorise la precision vs la latence vu que les taches sont décomposées en plusieurs calls LLMs Workflow routing: classifie une entree et choisie la route a meilleure: separation de responsabilité Workflow : parallelisation: LLM travaillent en paralllele sur une tache et un aggregateur fait la synthèse. Paralleisaiton avec saucissonage de la tache ou voter sur le meilleur réponse Workflow : orchestrator workers: quand les taches ne sont pas bounded ou connues (genre le nombre de fichiers de code à changer) - les sous taches ne sont pas prédéfinies Workflow: evaluator optimizer: nun LLM propose une réponse, un LLM l'évalue et demande une meilleure réponse au besoin Agents: commande ou interaction avec l;humain puis autonome meme si il peut revenir demander des precisions à l'humain. Agents sont souvent des LLM utilisât des outil pour modifier l'environnement et réagir a feedback en boucle Ideal pour les problèmes ouverts et ou le nombre d'étapes n'est pas connu Recommende d'y aller avec une complexité progressive L'IA c'est pas donné https://techcrunch.com/2025/01/05/openai-is-losing-money-on-its-pricey-chatgpt-pro-plan-ceo-sam-altman-says/ OpenAI annonce que même avec des licenses à 200$/mois ils ne couvrent pas leurs couts associés… A quand l'explosion de la bulle IA ? Outillage Ghostty, un nouveau terminal pour Linux et macOS : https://ghostty.org/ Initié par Mitchell Hashimoto (hashicorp) Ghostty est un émulateur de terminal natif pour macOS et Linux. Il est écrit en Swift et utilise AppKit et SwiftUI sur macOS, et en Zig et utilise l'API GTK4 C sur Linux. Il utilise des composants d'interface utilisateur native et des raccourcis clavier et souris standard. Il prend en charge Quick Look, Force Touch et d'autres fonctionnalités spécifiques à macOS. Ghostty essaie de fournir un ensemble riche de fonctionnalités utiles pour un usage quotidien. Comment Pinterest utilise Honeycomb pour améliorer sa CI https://medium.com/pinterest-engineering/how-pinterest-leverages-honeycomb-to-enhance-ci-observability-and-improve-ci-build-stability–15eede563d75 Pinterest utilise Honeycomb pour améliorer l'observabilité de l'intégration continue (CI). Honeycomb permet à Pinterest de visualiser les métriques de build, d'analyser les tendances et de prendre des décisions basées sur les données. Honeycomb aide également Pinterest à identifier les causes potentielles des échecs de build et à rationaliser les tâches d'astreinte. Honeycomb peut également être utilisé pour suivre les métriques de build locales iOS aux côtés des détails de la machine, ce qui aide Pinterest à prioriser les mises à niveau des ordinateurs portables pour les développeurs. Méthodologies Suite à notre épisode sur les différents types de documentation, cet article parle des bonnes pratiques à suivre pour les tutoriels https://refactoringenglish.com/chapters/rules-for-software-tutorials/ Écrivez des tutoriels pour les débutants, en évitant le jargon et la terminologie complexe. Promettez un résultat clair dans le titre et expliquez l'objectif dans l'introduction. Montrez le résultat final tôt pour réduire les ambiguïtés. Rendez les extraits de code copiables et collables, en évitant les invites de shell et les commandes interactives. Utilisez les versions longues des indicateurs de ligne de commande pour plus de clarté. Séparez les valeurs définies par l'utilisateur de la logique réutilisable à l'aide de variables d'environnement ou de constantes nommées. Épargnez au lecteur les tâches inutiles en utilisant des scripts. Laissez les ordinateurs évaluer la logique conditionnelle, pas le lecteur. Maintenez le code en état de fonctionnement tout au long du tutoriel. Enseignez une chose par tutoriel et minimisez les dépendances. Les Wide events, un “nouveau” concept en observabilité https://jeremymorrell.dev/blog/a-practitioners-guide-to-wide-events/ un autre article https://isburmistrov.substack.com/p/all-you-need-is-wide-events-not-metrics L'idée est de logger des evenements (genre JSON log) avec le plus d'infos possible de la machine, la ram, la versiond e l'appli, l'utilisateur, le numero de build qui a produit l'appli, la derniere PR etc etc ca permet de filtrer et grouper by et de voir des correlations visuelles tres rapidement et de zoomer tiens les ventes baisses de 20% tiens en fait ca vient de l'appli andriod tiens aps correle a la version de l'appli mais la version de l'os si! le deuxieme article est facile a lire le premier est un guide d'usage exhaustif du concept Entre argumenter et se donner 5 minutes https://signalvnoise.com/posts/3124-give-it-five-minutes on veut souvent argumenter aka poser des questions en ayant déjà la reponse en soi emotionnellement mais ca amene beaucoup de verbiage donner 5 minutes à l'idée le temps d'y penser avant d'argumenter Loi, société et organisation Des juges fédéraux arrêtent le principe de la neutralité du net https://www.lemonde.fr/pixels/article/2025/01/03/les-etats-unis-reviennent-en-arriere-sur-le-principe-de-la-neutralite-du-net_6479575_4408996.html?lmd_medium=al&lmd_campaign=envoye-par-appli&lmd_creation=ios&lmd_source=default la neutralité du net c'est l'interdiction de traiter un paquet différemment en fonction de son émetteur Par exemple un paquet Netflix qui serait ralenti vs un paquet Amazon Donald trump est contre cette neutralité. À voir les impacts concrets dans un marché moins régulé. Rubrique débutant Un petit article sur les float vs les double en Java https://www.baeldung.com/java-float-vs-double 4 vs 8 bytes precision max de 7 vs 15 echele 10^38 vs 10^308 (ordre de grandeur) perf a peu pret similaire sauf peut etre pour des modeles d'IA qui vont privilegier une taille plus petite parfois attention overflow et les accumulation d'erreurs d'approximation BigDecimal Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 20 janvier 2025 : Elastic{ON} - Paris (France) 22–25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 24–25 janvier 2025 : Agile Games Île-de-France 2025 - Paris (France) 6–7 février 2025 : Touraine Tech - Tours (France) 21 février 2025 : LyonJS 100 - Lyon (France) 28 février 2025 : Paris TS La Conf - Paris (France) 6 mars 2025 : DevCon #24 : 100% IA - Paris (France) 13 mars 2025 : Oracle CloudWorld Tour Paris - Paris (France) 14 mars 2025 : Rust In Paris 2025 - Paris (France) 19–21 mars 2025 : React Paris - Paris (France) 20 mars 2025 : PGDay Paris - Paris (France) 20–21 mars 2025 : Agile Niort - Niort (France) 25 mars 2025 : ParisTestConf - Paris (France) 26–29 mars 2025 : JChateau Unconference 2025 - Cour-Cheverny (France) 27–28 mars 2025 : SymfonyLive Paris 2025 - Paris (France) 28 mars 2025 : DataDays - Lille (France) 28–29 mars 2025 : Agile Games France 2025 - Lille (France) 3 avril 2025 : DotJS - Paris (France) 3 avril 2025 : SoCraTes Rennes 2025 - Rennes (France) 4 avril 2025 : Flutter Connection 2025 - Paris (France) 10–11 avril 2025 : Android Makers - Montrouge (France) 10–12 avril 2025 : Devoxx Greece - Athens (Greece) 16–18 avril 2025 : Devoxx France - Paris (France) 23–25 avril 2025 : MODERN ENDPOINT MANAGEMENT EMEA SUMMIT 2025 - Paris (France) 24 avril 2025 : IA Data Day 2025 - Strasbourg (France) 29–30 avril 2025 : MixIT - Lyon (France) 7–9 mai 2025 : Devoxx UK - London (UK) 15 mai 2025 : Cloud Toulouse - Toulouse (France) 16 mai 2025 : AFUP Day 2025 Lille - Lille (France) 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France) 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France) 24 mai 2025 : Polycloud - Montpellier (France) 5–6 juin 2025 : AlpesCraft - Grenoble (France) 5–6 juin 2025 : Devquest 2025 - Niort (France) 11–13 juin 2025 : Devoxx Poland - Krakow (Poland) 12–13 juin 2025 : Agile Tour Toulouse - Toulouse (France) 12–13 juin 2025 : DevLille - Lille (France) 17 juin 2025 : Mobilis In Mobile - Nantes (France) 24 juin 2025 : WAX 2025 - Aix-en-Provence (France) 25–27 juin 2025 : BreizhCamp 2025 - Rennes (France) 26–27 juin 2025 : Sunny Tech - Montpellier (France) 1–4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France) 7–9 juillet 2025 : Riviera DEV 2025 - Sophia Antipolis (France) 18–19 septembre 2025 : API Platform Conference - Lille (France) & Online 2–3 octobre 2025 : Volcamp - Clermont-Ferrand (France) 6–10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium) 9–10 octobre 2025 : Forum PHP 2025 - Marne-la-Vallée (France) 16–17 octobre 2025 : DevFest Nantes - Nantes (France) 4–7 novembre 2025 : NewCrafts 2025 - Paris (France) 6 novembre 2025 : dotAI 2025 - Paris (France) 7 novembre 2025 : BDX I/O - Bordeaux (France) 12–14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco) 23–25 avril 2026 : Devoxx Greece - Athens (Greece) 17 juin 2026 : Devoxx Poland - Krakow (Poland) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

Les Cast Codeurs Podcast
LCC 319 - le ramasse-miettes-charognes

Les Cast Codeurs Podcast

Play Episode Listen Later Dec 16, 2024 70:05


Dans cet épisde en audio et en vidéo (youtube.com/lescastcodeurs), Guillaume et Emmanuel discutent des 15 ans de Go, d'une nouvelle approche de garbage collecting, de LLMs dans les applications Java, dobservabilité, d'une attaque de chaine d'approvisionnement via javac et d'autres choses. Enregistré le 13 décembre 2024 Téléchargement de l'épisode LesCastCodeurs-Episode-319.mp3 News Langages Go fête son 15ème anniversaire ! https://go.dev/blog/15years discute les 15 ans la corrections de gotchas dans les for loops (notamment les variables étaient loop scoped) le fait que la compile echoue si on attend une version de go superieure seulement depuis go 1.21 en parallele de la gestion de la chaine d'outil (c'est en 2023 seulement!) opt-in telemetrie aussi recent Construire OpenJDK à partir des sources sur macOS https://www.morling.dev/blog/building-openjdk-from-source-on-macos/ de maniere surprenante ce n'est pas tres compliqué Papier sur l'aproche Mark-scavenge pour un ramasse miette https://inside.java/2024/11/22/mark-scavenge-gc/ papier de recherche utiliser l'accessibilité pour preuve de vie n'est pas idéal: un objet peut etre atteignable mais ne sera jamais accedé par le programme les regions les plus pauvres en objets vivant voient leurs objets bouger dans uen autre region et la regio libéré, c'est le comportement classique des GC deux methodes: mark evaguate qui le fait en deux temps et la liveness peut evoluer ; et scavenge qui bouge l'objet vivant des sa decouverte ont fait tourner via ZGC des experience pour voir les objects consideres vivants et bougés inutilement. resultats montrent un gros taux d'objets bougés de maniere inutile proposent un algo different ils marquent les objets vivants mais ne les bougent pas avant le prochain GC pour leur donner une change de devenir unreachable elimine beaucoup de deplacement inutiles vu que les objets deviennent non accessible en un cycle de GC jusquà 91% de reduction ! Particulierement notable dans les machines chargées en CPU. Les tokens d'accès court ou longs https://grayduck.mn/2023/04/17/refresh-vs-long-lived-access-tokens/ pourquoi des long access tokens (gnre refresh token) sont utilises pour des short lived dans oauth 2.0 refresh token simplifient la revocation: vu que seul le auth serveur a a verifier la révocation et les clients vérifient l'expiration et la validité de la signature refresh token ne sont envoyés que entre endpoints alors que les access tokens se baladent pas mal: les frontières de confiance ne sont pas traversées refresh token comme utilise infréquement, et donc peut etre protegee dans une enclave les changements de grants sont plus simple tout en restant distribuable histoire des access refresh token et access token permet de mieux tracer les abus / attaques les inconvenients: c'est plus compliqué en flow, the auth serveur est un SPOF amis mitigeable Java Advent est de retour https://www.javaadvent.com/calendar backstage Java integrite par defaut (et ses consequences sur l'ecosysteme) timefold (sovler) Les extensions JUNit 5 OpenTelemetry via Java Agent vs Micrometer analyse statique de code CQRS et les fonctionalités modernes de Java java simple (sans compilatrion, sans objet fullstack dev with quarkus as backend José Paumard introduit et explique les Gatherers dans Java 24 dans cette vidéo https://inside.java/2024/11/26/jepcafe23/ Librairies Micronaut 4.7, avec l'intégration de LangChain4j https://micronaut.io/2024/11/14/micronaut-framework-4-7-0-released/ Combiner le framework de test Spock et Cucumber https://www.sfeir.dev/back/spock-framework-revolutionnez-vos-tests-unitaires-avec-la-puissance-du-bdd-et-de-cucumber/ les experts peuvent écrire leurs tests au format Gherkin (de Cucumber) et les développeurs peuvent implémenter les assertions correspondantes avec l'intégration dans Spock, pour des tests très lisibles Spring 6.2 https://spring.io/blog/2024/11/14/spring-framework-6-2-0-available-now beans @Fallback améliorations sur SpELet sur le support de tests support de l'echape des property placeholders une initioalisation des beans en tache de fond nouvelle et pleins d'autres choses encore Comment créer une application Java LLM tournant 100% en Java avec Jlama https://quarkus.io/blog/quarkus-jlama/ blog de Mario Fusco, Mr API et Java et Drools utilise jlama + quarkus + langchain Explique les avantage de l'approche pure Java comme le cycle de vie unique, tester les modeles rapidement, securite (tout est in process), monolithe ahahah, observabilité simplifiée, distribution simplifiée (genre appli embarquée) etc Vert.x 5 en seconde incubation https://vertx.io/blog/eclipse-vert-x-5-candidate-2-released/ Support des Java modules (mais beacoup des modules vert.x eux-même ne le supportent pas support io_uring dans vert.x core le load balancing côté client le modele des callbacks n'est plus supporté, vive les Futur beaucoup d'améliorations autour de gRPC et d'autres choses Un article sur Spring AI et la multi modalite audio https://spring.io/blog/2024/12/05/spring-ai-audio-modality permet de voir les evolutions des APIs de Spring AI s'appluie sur les derniers modeles d'open ai des examples comme par exemple un chatbot voix et donc comment enregistrer la voix et la passer a OpenAI Comment activer le support experimental HTTP/3 dans Spring Boot https://spring.io/blog/2024/11/26/http3-in-reactor-2024 c'ets Netty qui fait le boulot puis Spring Netty l'article décrit les etapes pour l'utiliser dans vos applis Spring Boot ou Spring Cloud Gateway l'article explique aussi le cote client (app cliente) ce qui est sympa Infrastructure Un survol des offres d'observabilité http://blog.ippon.fr/2024/11/18/observabilite-informatique-comprendre-les-bases-2eme-partie/ un survol des principales offres d'observabilité Open source ou SaaS et certains outsiders Pas mal pour commencer à défricher ce qui vous conviendrait blog de ippon Web Sortie de Angular 19 https://blog.ninja-squad.com/2024/11/19/what-is-new-angular-19.0/ stabilité des APIs Signal APIs migration automatique vers signals composants standalone par défaut nouvelles APIs linkedSignal et resource de grosses améliorations de SSR et HMR un article également de Sfeir sur Angular 19 https://www.sfeir.dev/front/angular-19-tout-ce-quil-faut-savoir-sur-les-innovations-majeures-du-framework/ Angluar 19 https://www.sfeir.dev/front/angular-19-tout-ce-quil-faut-savoir-sur-les-innovations-majeures-du-framework/ composant standalone par default (limiter les problemes de dependances), peut le mettre en strict pour le l'imposer (ou planter) signalement des imports inutilisés @let pour les variables locales dans les templates linkedSignal (experimental) pour lier des signaux entre eux (cascade de changement suite a un evenement hydratation incrementale (contenu progressivement interactif avec le chargement - sur les parties de la page visible ou necessaires et event replay, routing et modes de rendu en rendy hybride, Hot module replacement etc The State of Frontend — dernière compilation des préférences des développeurs en terme de front https://tsh.io/state-of-frontend/ React en tête, suivi de Vue et Svelte. Angular seulement 4ème Côté rendering framework, Next.js a la majorité absolue, ensuite viennent Nuxt et Astro Zod est la solution de validation préférée Pour la gestion de date, date-fns est en tête, suivi par moment.js Côté state management, React Context API en première place, mais les suivants sont tous aussi pour React ! Grosse utilisation de lodash pour plein d'utilités Pour fetcher des resources distantes, l'API native Fetch et Axios sont les 2 vaincoeurs Pour le déploiement, Vercel est premier Côté CI/CD, beaucoup de Github Actions, suivi par Gitlab CI Package management, malgré de bonnes alternatives, NPM se taille toujours la part du lion Ecrasante utilisation de Node.js comme runtime JavaScript pour faire du développement front Pour ce qui est du typing, beaucoup utilisent TypeScript, et un peu de JSdoc, et la majorité des répondants pensent que TypeScript a dépassé JavaScript en usage Dans les API natives du navigateur, Fetch, Storage et WebSockets sont les APIs les plus utilisées La popularité des PWA devrait suivre son petit bonhomme de chemin En terme de design system, shadcn.ui en tête, suivi par Material, puis Bootstram Pour la gestion des styles, un bon mix de plain old CSS, de Tailwind, et de Sass/CSS Jest est premier comme framework de tests Les 3/4 des développeurs front utilisent Visual Studio Code, quant au quart suivant, c'est JetBrains qui raffle les miettes Pour le build, Vite récolte les 4/5 des voix ESLint et Prettier sont les 2 favoris pour vérifier le code   Parfois, on aimerait pouvoir tester une librairie ou un framework JavaScript, sans pour autant devoir mettre en place tout un projet, avec outil de build et autre. Julia Evans explore les différents cas de figure, suivant la façon dont ces librairies sont bundlées https://jvns.ca/blog/2024/11/18/how-to-import-a-javascript-library/ Certaines librairies permette de ne faire qu'un simple import dans une balise script Certaines frameworks sont distribués sous forme d'Universal Module Definition, sous CommonJS, d'ESmodule franchemet en tant que noob c'est compliqué quand même Data et Intelligence Artificielle L'impact de l'IA en entreprise et des accès aux documents un peu laxistes https://archive.ph/uPyhX l'indexing choppe tout ce qu'il peut et l'IA est tres puissante pour diriger des requetes et extraires les données qui auraient du etre plus restreintes Différentes manières de faire de l'extraction de données et de forcer la main à un LLM pour qu'il génère du JSON https://glaforge.dev/posts/2024/11/18/data-extraction-the-many-ways-to-get-llms-to-spit-json-content/ l'approche “je demande gentiment” au LLM, en faisant du prompt engineering en utilisant du function calling pour les modèles supportant la fonctionnalité, en particulier avant les approches de type “JSON mode” ou “JSON schema” ou effectivement si le modèle le supporte aussi, toujours avec un peu de prompting, mais en utilisant le “JSON mode” qui force le LLM a générer du JSON valide encore mieux avec la possibilité de spécifier un schema JSON (type OpenAPI) pour que le JSON en sortie soit “compliant” avec le schéma proposé Comment masquer les données confidentielles avec ses échanges avec les LLMs https://glaforge.dev/posts/2024/11/25/redacting-sensitive-information-when-using-generative-ai-models/ utilisation de l'API Data Loss Prevention de Google Cloud qui permet d'identifier puis de censurer / masquer (“redacted” en anglais) des informations personnelles identifiables (“PII”, comme un nom, un compte bancaire, un numéro de passeport, etc) pour des raison de sécurité, de privacy, pour éviter les brèche de données comme on en entend trop souvent parler dans les nouvelles On peut utiliser certains modèles d'embedding pour faire de la recherche de code https://glaforge.dev/posts/2024/12/02/semantic-code-search-for-programming-idioms-with-langchain4j-and-vertex-ai-embedding-models/ Guillaume recherche des bouts de code, en entrant une requête en langue naturel Certains embedding models supportent différents types de tâches, comme question/réponse, question en langue naturelle / retour sous forme de code, ou d'autres tâches comme le fact checking, etc Dans cet article, utilisation du modèle de Google Cloud Vertex AI, en Java, avec LangChain4j Google sort la version 2 de Gemini Flash https://blog.google/technology/google-deepmind/google-gemini-ai-update-december-2024/ La nouvelle version Gemini 2.0 Flash dépasse même Gemini 1.5 Pro dans les benchmarks Tout en étant 2 fois plus rapide que Gemini 1.5 Pro, et bien que le prix ne soit pas encore annoncé, on imagine également plus abordable Google présente Gemini 2 comme le LLM idéal pour les “agents” Gemini propose une vraie multimodalité en sortie (premier LLM sur le marché à le proposer) : Gemini 2 peut entrelacer du texte, des images, de l'audio Gemini 2 supporte plus de 100 langues 8 voix de haute qualité, assez naturelles, pour la partie audio Un nouveau mode speech-to-speech en live, où on peut même interrompre le LLM, c'est d'ailleurs ce qui est utilisé dans Project Astra, l'application mobile montrée à Google I/O qui devient un vrai assistant vocale en live sur votre téléphone Google annonce aussi une nouvelle expérimentation autour des assistants de programmation, avec Project Jules, avec lequel on peut discuter en live aussi, partager son code, comme un vrai pair programmeur Google a présenté Project Mariner qui est un agent qui est sous forme d'extension Chrome, qui va permettre de commander votre navigateur comme votre assistant de recherche personnel, qui va être capable de faire des recherches sur le web, de naviguer dans les sites web, pour trouver les infos que vous recherchez Cet autre article montre différentes vidéos de démos de ces fonctionnalités https://developers.googleblog.com/en/the-next-chapter-of-the-gemini-era-for-developers/ Un nouveau projet appelé Deep Research, qui permet de faire des rapports dans Gemini Advanced : on donne un sujet et l'agent va proposer un plan pour un rapport sur ce sujet (qu'on peut valider, retoucher) et ensuite, Deep Research va effectuer des recherches sur le web pour vous, et faire la synthèse de ses recherches dans un rapport final https://blog.google/products/gemini/google-gemini-deep-research/ Enfin, Google AI Studio, en plus de vous permettre d'expérimenter avec Gemini 2, vous pourrez aussi utiliser des “starter apps” qui montrent comment faire de la reconnaissance d'objet dans des images, comment faire des recherches avec un agent connecté à Google Maps, etc. Google AI Studio permet également de partager votre écran avec lui, en mobile ou en desktop, de façon à l'utiliser comme un assistant qui peut voir ce que vous faites, ce que vous coder et peut répondre à vos questions Méthodologies Un article de GitHub sur l'impact de la surutilisation des CPU sur la perf de l'appli https://github.blog/engineering/architecture-optimization/breaking-down-cpu-speed-how-utilization-impacts-performance/ c'est surprenant qu'ils ont des effets des 30% de perf c'est du a la non limit thermique, au boost de frequece qui en suit ils ont donc cherché le golden ratio pour eux autour de 60% ils prennent des morceaux de cluster kube poru faire tourner les workloads et ajoutent des wqorkload CPU artificiels (genre math) Sécurité Attaque de la chaîne d'approvisionnement via javac https://xdev.software/en/news/detail/discovering-the-perfect-java-supply-chain-attack-vector-and-how-it-got-fixed s'appuie sur l'annotation processeur l'annotation processors des dependances est chargé et executé au moment du build du projet et cherche les annotations processor dans le user classpath (via le pattern serviceloader) et donc si la dependance est attaquée et un annotation processor est ajouté ou modifié on a un vecteur d'attaque au moment de la compilation du projet ciblé des qu'on deparre l'IDE en gros workaround, activer -proc:none et activer les annotation processors explicitly dans votre outil de build certaines améliorations dans le JDK: le compilateur note qu'il execute un annotation processor dans java 23+ les annotation processors sont deactivés par defaut Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 19 décembre 2024 : Normandie.ai 2024 - Rouen (France) 20 janvier 2025 : Elastic{ON} - Paris (France) 22-25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 24-25 janvier 2025 : Agile Games Île-de-France 2025 - Paris (France) 30 janvier 2025 : DevOps D-Day #9 - Marseille (France) 6-7 février 2025 : Touraine Tech - Tours (France) 21 février 2025 : LyonJS 100 - Lyon (France) 28 février 2025 : Paris TS La Conf - Paris (France) 20 mars 2025 : PGDay Paris - Paris (France) 20-21 mars 2025 : Agile Niort - Niort (France) 25 mars 2025 : ParisTestConf - Paris (France) 26-29 mars 2025 : JChateau Unconference 2025 - Cour-Cheverny (France) 28 mars 2025 : DataDays - Lille (France) 28-29 mars 2025 : Agile Games France 2025 - Lille (France) 3 avril 2025 : DotJS - Paris (France) 10-11 avril 2025 : Android Makers - Montrouge (France) 10-12 avril 2025 : Devoxx Greece - Athens (Greece) 16-18 avril 2025 : Devoxx France - Paris (France) 29-30 avril 2025 : MixIT - Lyon (France) 7-9 mai 2025 : Devoxx UK - London (UK) 16 mai 2025 : AFUP Day 2025 Lille - Lille (France) 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France) 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France) 24 mai 2025 : Polycloud - Montpellier (France) 5-6 juin 2025 : AlpesCraft - Grenoble (France) 11-13 juin 2025 : Devoxx Poland - Krakow (Poland) 12-13 juin 2025 : Agile Tour Toulouse - Toulouse (France) 12-13 juin 2025 : DevLille - Lille (France) 24 juin 2025 : WAX 2025 - Aix-en-Provence (France) 26-27 juin 2025 : Sunny Tech - Montpellier (France) 1-4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France) 18-19 septembre 2025 : API Platform Conference - Lille (France) & Online 2-3 octobre 2025 : Volcamp - Clermont-Ferrand (France) 6-10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium) 16-17 octobre 2025 : DevFest Nantes - Nantes (France) 6 novembre 2025 : dotAI 2025 - Paris (France) 12-14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco) 23-25 avril 2026 : Devoxx Greece - Athens (Greece) 17 juin 2026 : Devoxx Poland - Krakow (Poland) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

Donau Tech Radio - DTR
Git Worktrees, effizientere MRs mit OpenRewrite/ArchUnit, JUnit Features

Donau Tech Radio - DTR

Play Episode Listen Later Dec 3, 2024 93:21 Transcription Available


In dieser Episode sprechen Tom und André vor allem wieder einmal seit längerer Zeit über Softwareentwicklungsthemen

Les Cast Codeurs Podcast
LCC 317 - les nouvelles paramétriques

Les Cast Codeurs Podcast

Play Episode Listen Later Oct 21, 2024 81:56


De Java 23 à WebAssembly, en passant par l'IA et les design patterns, on a tout passé au crible #java #swift #webassembly #wordpress #webcomponents #llm #mongodb #keycloak #fairsource Enregistré le 18 octobre 2024 Téléchargement de l'épisode LesCastCodeurs-Episode–317.mp3 News Langages Java 23 est sorti ! InfoQ liste toutes les JEPs intégrées à la nouvelle version https://www.infoq.com/news/2024/09/java23-released/ Et FooJay plonge dans le détail https://foojay.io/today/java–23-has-arrived-and-it-brings-a-truckload-of-changes/ JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview) JEP 466: Class-File API (Second Preview) JEP 467: Markdown Documentation Comments JEP 469: Vector API (Eighth Incubator) JEP 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal JEP 473: Stream Gatherers (Second Preview) JEP 474: ZGC: Generational Mode by Default JEP 476: Module Import Declarations (Preview) JEP 477: Implicitly Declared Classes and Instance Main Methods (Third Preview) JEP 480: Structured Concurrency (Third Preview) JEP 481: Scoped Values (Third Preview) JEP 482: Flexible Constructor Bodies (Second Preview) StringTemplate s'en va Un article sur l'API ClassFile qui sera un standard dans le JDK pour manipuler des classes (ala ASM) https://www.unlogged.io/post/class-file-api-not-your-everyday-java-api article long mais qui revient sur les raisons notamment parce que ASM est dans le JDK et qu'ils sont un problème de poule et d'oeuf et sur la forme de l'API a des exemples d'usage tout cela reste en preview dans le JDK des optimisation comme le lazy parsing et le constant pool sharing (en gros faire de la reference sur ce qui n'a pas changé Tip and Tail is back: cette fois une JEP https://openjdk.org/jeps/14 plus qu'une keynote provocative au language summit maintenant une JEP dite informative le language est un pu flou sur l'objectif entre regarder tip and tail pour vos librairies c'est bien et adoptons tous le meme tip du JDK jusqu'aux stack applicatives Apple annonce la sortie de son language Swift en version 6 https://www.swift.org/blog/announcing-swift–6/ Nouvelles plateformes : Swift 6 s'étend à de nouvelles plateformes (tous les grands OS déjà supportés), y compris les systèmes embarqués (sous ARM et Risc V). Swift Testing : Swift 6 introduit Swift Testing, une nouvelle bibliothèque de tests conçue pour Swift. Concurrence : Détection de data race en tant qu'erreur de compilation. Apple annonce travailler sur l'interopérabilité Swift / Java https://github.com/swiftlang/swift-java comme jextract mais dans l'autre sens The news Java https://www.infoq.com/news/2024/10/java-news-roundup-oct07–2024/ JDK 24 : Un calendrier pour la sortie de JDK 24 a été proposé. La première phase de réduction des fonctionnalités commencera le 5 décembre 2024. La version finale sera disponible le 18 mars 2025. JDK 24 introduira des mises à jour avec deux nouvelles API. La Vector API (JEP 489) facilitera les opérations sur des vecteurs, tandis que la Class-File API (JEP 484) permettra une manipulation plus efficace des fichiers de classes Java. Un changement de sécurité important est proposé avec JEP 486. Il prévoit de désactiver définitivement le Security Manager, qui a été déprécié. Cette décision signifie que cette fonctionnalité ne sera plus disponible dans les futures versions, car elle est considérée comme obsolète. Apache Tomcat et Cassandra : Les nouvelles versions de Tomcat (11.0.0) et de Cassandra (5.0.0) sont sorties. Elles incluent des améliorations et des corrections de bogues. Spring Framework : Des mises à jour pour Spring Framework (versions 3.4.0-M2, 3.3.3 et 3.2.8) ont été publiées. Elles intègrent le support d'une nouvelle API qui aide à la gestion de la mémoire. Quarkus : Red Hat a sorti la version 3.15 de Quarkus, qui apporte des corrections et des améliorations. Une nouvelle version, la 3.16, est prévue pour la fin octobre. Commonhaus Foundation : Une nouvelle organisation, la Commonhaus Foundation, a été créée pour aider les projets open source à être durables. Quarkus a rejoint cette fondation. Cassandra, Camel, Lamgchain, Micronaut, OpenLibery, JHipster, Ktor etc. Design patterns revisited: https://www.youtube.com/watch?v=kE5M6bwruhw Design and design patterns. Optional: patterns and anti-patterns. Iterator pattern. Lightweight Strategy. Factory Method using default methods. Laziness using Lambda Expressions. Decorator using Lambda Expressions. Creating Fluent interfaces. Execute Around Method Pattern. Creating a Closed Hierarchy with sealed classes. Popularité des langages de programmation https://www.techspot.com/news/105157-python-most-popular-coding-language-but-challengers-gaining.html Python reste le langage de programmation le plus populaire, surtout dans des domaines comme la science des données et le développement web. Il est apprécié pour sa simplicité et le grand nombre de bibliothèques disponibles, ce qui le rend facile à apprendre et à utiliser. De nombreuses entreprises, y compris des startups, utilisent Python pour diverses applications. Malgré sa dominance, d'autres langages comme JavaScript, Java et Go gagnent en popularité et pourraient défier la position de leader de Python. (Java est monté du poste 4 au 3, en 1 an) Les développeurs qui codent occasionnellement préfèrent Python, montrant ainsi son attrait au-delà des programmeurs professionnels. L'émergence d'outils comme ChatGPT facilite l'accès à la programmation, ce qui pourrait influencer les tendances futures en matière de langages de programmation. Librairies Paramétrer ses tests JUnit 5 avec @CsvSource https://mikemybytes.com/2021/10/19/parameterize-like-a-pro-with-junit–5-csvsource/ l'annotation permet d'avoir ses données de test au plus près de la méthode on écrit les données de test sous forme de CSV (éventuellement avec des délimiteurs de son choix pour plus de lisibilité, pour bien séparer les valeurs) par exemple -> ou maps to les valeurs peut être les paramètres de la method mai aussi les valeur de description du test Infrastructure Turbocharged Development: The Speed and Efficiency of WebAssembly par Danielle Lancashire https://devsummit.infoq.com/presentation/munich2024/turbocharged-development-speed-and-efficiency-webassembly L'utilisation de WebAssembly avec Serverless. Faire tourner des applications plus facilement dans le cloud.WebAssembly est rapide et sûr pour exécuter du code. Cela aide à déployer les applications plus rapidement et à utiliser moins de ressources. De nombreuses entreprises utilisent WebAssembly pour des tâches comme le traitement d'images et de données. Des plateformes comme Cloudflare Workers et AWS Lambda. La communauté autour de WebAssembly granèit. De nouveaux outils et bibliothèques sont créés. Cependant, il y a encore des défis à relever, comme la compatibilité et les performances. Malgré cela, l'avenir de WebAssembly est prometteur. Web C'est la guerre chez Wordpress https://techcrunch.com/2024/09/26/wordpress-vs-wp-engine-drama-explained/ une boite nommée WP Engine fait du hosting de WordPress mais ne contribue pas Automatic, les gens derrière WordPress leur onbt demandé de résoudre ce probleme, soit en payant des droits de trademark soit en contribuant de l'engineering upstream à auteur de 8% de leurs revenus WP Engine dit non Automatic coupe l'accès aux mises a jours de thèmes et de plugins à WP Engine mettant des sites à risque (securité) WP Engine dit que c'est un abus de position du CEO d'Automatic sur les accès WordPress.org Bref c'est le drame le CEO d'automatic propose à ses employés 6 mois de salaire si ils ne sont pas d'accord avec la stratégie https://www.cio.com/article/3550331/one-twelfth-of-automattic-staff-leave-over-wordpress-wp-engine-spat.html 8% ont pris l'offre Les WebComposants ne sont pas le fuitur https://dev.to/ryansolid/web-components-are-not-the-future–48bh un article d'un auteur proéminent de framework JavaScript Discute les avantages et les inconvenients de la standardisation qui permet d'élever le débat mais aussi bloque des avenues d'optimisations beaucoup d'exemples d'inovations en frameworks JS qui auraient été bloqués Les commentaires apres l'article sont interessants aussi (en contre perspective) mais tout le monde n'est pas d'accord avec cet article https://www.abeautifulsite.net/posts/web-components-are-not-the-future-they-re-the-present/ Data et Intelligence Artificielle Conseils et bonnes pratiques lors de l'intégration de LLM dans une application https://glaforge.dev/posts/2024/09/23/some-good-practices-when-integrating-an-llm-in-your-application/ management de prompt effectif versionnage et externalisation des prompts fixer la version des modèles optimisation et caching mettre en place des rails de sécurité évaluer et monitorer le comportement et la performance prioriser la sécurité des données privées Encore une nouvelle version de LangChain4j, avec la version 0.35 ! Guillaume couvre les nouveautés côté Gemini et Google Cloud https://glaforge.dev/posts/2024/09/29/lots-of-new-cool-gemini-stuff-in-langchain4j/ Support des toutes nouvelles versions de Gemini 1.5 (version 002) Un “document loader” pour charger des documents à partir de Google Cloud Storage Un “scoring model” qui permet de faire du “reranking” de résultat, pour trouver les résultats les plus pertinents pour une requête donnée Support de nouveaux paramètres des embedding models (choix de la dimensionalité des vecteurs, du troncage des textes en entrée) Ajout d'un “embedding model” pour le module Google AI Gemini Un estimateur de token pour Google AI Gemini Support des chat listeners Support des enums pour la sortie structurée JSON Et plein de mise à jour de la documentation pour refleter tous ces changements et aditions Self Correction Algo LLM https://www.infoq.com/news/2024/10/google-deepmind-score/ Google DeepMind a récemment publié SCoRe, une nouvelle méthode d'auto-correction pour les modèles de langage (LLM). Elle améliore la capacité des LLM à corriger leurs erreurs lorsqu'ils résolvent des problèmes de mathématiques ou de programmation. Contrairement aux méthodes antérieures, SCoRe utilise des données générées par le modèle lui-même pour créer des dialogues d'auto-correction. Cela permet au modèle de s'améliorer via un processus d'apprentissage par renforcement (RL) en deux étapes. Les modèles ajustés avec cette technique ont montré des améliorations significatives, surpassant les performances des modèles de base. Cette méthode pourrait ouvrir de nouvelles pistes pour rendre les LLM plus précis et robustes dans leurs réponses. MongoDB 8 est sorti https://www.mongodb.com/products/updates/version-release La version 8.0 est plus rapide, avec des lectures plus rapides, une meilleure gestion des mises à jour et des agrégations de séries temporelles jusqu'à 60 % plus rapides. De nouvelles fonctionnalités incluent le support des Query pour les données chiffrées, rendant le traitement des données sensibles plus facile. Beaucoup d'ameliorations pour la performance et scalabilité Guillaume explore les techniques avancées de Retrieval Augmented Generation pour améliorer la qualité des résultats de recherche dans ses propres documents, avec les LLMs https://glaforge.dev/talks/2024/10/14/advanced-rag-techniques/ Présentations et vidéos données lors de la conférence Devoxx Belgique Code des exemples disponibles sur Github Techniques de chunking : sliding window, hypothetical questions, semantic chunking, context retrieval chunking Techniques de retrieval : hypothetical document embedding, query compression, metadata filtering Outillage Article sur les cache alias en Infinispan https://infinispan.org/blog/2024/10/07/cache-aliases-redis-databases Explique comment on peut utiliser Infinispan pour remplacer Redis Explique la différence entre les database de Redis et les caches d'Infinispan Explique l'utilité des alias en général Explique comment on peut avoir un mapping des databases de Redis vers des caches d'Infinispan Sécurité Keycloak 26 est sorti: https://www.keycloak.org/2024/10/keycloak–2600-released Organizations feature: permet aux administrateurs de créer et gérer des structures organisationnelles, facilitant la gestion des rôles et des permissions. Persistent user sessions: Les sessions des utilisateurs sont maintenant stockées par default dans la base de donnée ce qui améliore la cohérence, surtout avec plusieurs instances. Login Theme: Offre un design plus propre et une option de mode sombre qui s'adapte aux préférences des utilisateurs. L'amélioration du déploiement multi-sites renforce la fiabilité et réduit le temps d'arrêt lors des demandes des utilisateurs. Admin recovery: une méthode simple pour récupérer l'accès administrateur si tous les comptes sont bloqués, en créant un compte temporaire via des variables d'environnement. Pour les utilisateurs qui migrent vers cette version, il est important de prêter attention aux changements liés à la gestion des caches et aux sessions persistantes. Loi, société et organisation Introduction des licences fair source https://techcrunch.com/2024/09/22/some-startups-are-going-fair-source-to-avoid-the-pitfalls-of-open-source-licensing/ Certaines startups utilisent des licences “fair source” pour partager leur code tout en protégeant leurs intérêts commerciaux. Les licences FSL (Functional Source License) et BUSL (Business Source License) permettent d'ouvrir le code après 2 ou 4 ans. Ces licences empêchent les concurrents de vendre des produits similaires tout de suite, offrant une protection temporaire. Certains critiques pensent que ces licences sont compliquées et pourraient limiter l'innovation, car elles ne sont pas totalement ouvertes. Le “fair source” est encore un concept nouveau, mais il pourrait devenir un bon compromis entre open source et logiciel privé. definition de fair source: code lisible publique, peut etre utilise et modifié avec des “restrictions minimales” pour proteger le business modele du producteur ; et devient open source de maniere deferée “any purpose other than a Competing Use. A Competing Use means use of the Software in or for a commercial product or service that competes with the Software or any other product or service we offer using the Software as of the date we make the Software available” Outils de l'épisode Un petit outil sympa pour les utilisateurs de Macs avec un écran “wide”, pour partager un écran virtuel : https://github.com/Stengo/DeskPad les écrans larges sont partagés entierement et ceui fait un rendu 16:9 pour les gens qui le voient cet écran acte comme un écran mais il est virtuel et on peut mettre les applications que l'on veut dedans on ne l'a pas testé Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 17–18 octobre 2024 : DevFest Nantes - Nantes (France) 17–18 octobre 2024 : DotAI - Paris (France) 30–31 octobre 2024 : Agile Tour Nantais 2024 - Nantes (France) 30–31 octobre 2024 : Agile Tour Bordeaux 2024 - Bordeaux (France) 31 octobre 2024–3 novembre 2024 : PyCon.FR - Strasbourg (France) 6 novembre 2024 : Master Dev De France - Paris (France) 7 novembre 2024 : DevFest Toulouse - Toulouse (France) 8 novembre 2024 : BDX I/O - Bordeaux (France) 13–14 novembre 2024 : Agile Tour Rennes 2024 - Rennes (France) 16–17 novembre 2024 : Capitole Du Libre - Toulouse (France) 20–22 novembre 2024 : Agile Grenoble 2024 - Grenoble (France) 21 novembre 2024 : DevFest Strasbourg - Strasbourg (France) 21 novembre 2024 : Codeurs en Seine - Rouen (France) 27–28 novembre 2024 : Cloud Expo Europe - Paris (France) 28 novembre 2024 : Who Run The Tech ? - Rennes (France) 2–3 décembre 2024 : Tech Rocks Summit - Paris (France) 3 décembre 2024 : Generation AI - Paris (France) 3–5 décembre 2024 : APIdays Paris - Paris (France) 4–5 décembre 2024 : DevOpsRex - Paris (France) 4–5 décembre 2024 : Open Source Experience - Paris (France) 5 décembre 2024 : GraphQL Day Europe - Paris (France) 6 décembre 2024 : DevFest Dijon - Dijon (France) 22–25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 30 janvier 2025 : DevOps D-Day #9 - Marseille (France) 6–7 février 2025 : Touraine Tech - Tours (France) 25 mars 2025 : ParisTestConf - Paris (France) 3 avril 2025 : DotJS - Paris (France) 10–12 avril 2025 : Devoxx Greece - Athens (Greece) 16–18 avril 2025 : Devoxx France - Paris (France) 7–9 mai 2025 : Devoxx UK - London (UK) 12–13 juin 2025 : DevLille - Lille (France) 24 juin 2025 : WAX 2025 - Aix-en-Provence (France) 18–19 septembre 2025 : API Platform Conference - Lille (France) & Online 9–10 octobre 2025 : Volcamp - Clermont-Ferrand (France) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

Les Cast Codeurs Podcast
LCC 315 - les températures ne sont pas déterministes

Les Cast Codeurs Podcast

Play Episode Listen Later Sep 17, 2024 110:08


JVM summit, virtual threads, stacks applicatives, licences, déterminisme et LLMs, quantification, deux outils de l'épisode et bien plus encore. Enregistré le 13 septembre 2024 Téléchargement de l'épisode LesCastCodeurs-Episode–315.mp3 News Langages Netflix utilise énormément Java et a rencontré un problème avec les Virtual Thread dans Java 21. Les ingénieurs de Netflix analysent ce problème dans cet article : https://netflixtechblog.com/java–21-virtual-threads-dude-wheres-my-lock–3052540e231d Les threads virtuels peuvent améliorer les performances mais posent des défis. Un problème de locking a été identifié : les threads virtuels se bloquent mutuellement. Cela entraîne des performances dégradées et des instabilités. Netflix travaille à résoudre ces problèmes et à tirer pleinement parti des threads virtuels. Une syntax pour indiquer qu'un type est nullable ou null-restricted arriverait dans Java https://bugs.openjdk.org/browse/JDK–8303099 Foo! interdirait null Foo? indiquerait que null est accepté Foo?[]! serait un tableau non-null de valeur nullable Il y a aussi des idées de syntaxe pour initialiser les tableaux null-restricted JEP: https://openjdk.org/jeps/8303099 Les vidéos du JVM Language Summit 2024 sont en ligne https://www.youtube.com/watch?v=OOPSU4LnKg0&list=PLX8CzqL3ArzUEYnTa6KYORRbP3nhsK0L1 Project Leyden Update Project Babylon - Code Reflection Valhalla - Where Are We? An Opinionated Overview on Static Analysis for Java Rethinking Java String Concatenation Code Reflection in Action - Translating Java to SPIR-V Java in 2024 Type Specialization of Java Generics - What If Casts Have Teeth ? (avec notre Rémi Forax national !) aussi tip or tail pour tout l'ecosysteme quelques liens sur Babylon: Code reflection pour exprimer des langages etranger (SQL) dans Java: https://openjdk.org/projects/babylon/ et sont example en emulation de LINQ https://openjdk.org/projects/babylon/articles/linq Librairies Micronaut sort sa version 4.6 https://micronaut.io/2024/08/26/micronaut-framework–4–6–0-released/ essentiellement une grosse mise à jour de tonnes de modules avec les dernières versions des dépendances Microprofile 7 faire quelques changements et evolution incompatibles https://microprofile.io/2024/08/22/microprofile–7–0-release/#general enleve Metrics et remplace avec Telemetry (metrics, log et tracing) Metrics reste une spec mais standalone Microprofile 7 depende de Jakarta Core profile et ne le package plus Microprofile OpenAPI 4 et Telemetry 2 amenent des changements incompatibles Quarkus 3.14 avec LetsEncrypt et des serialiseurs JAckson sans reflection https://quarkus.io/blog/quarkus–3–14–1-released/ Hibernate ORM 6.6 Serialisateurs JAckson sans reflection installer des certificats letsencrypt simplement (notamment avec la ligne de commande qui aide sympa notamment avec ngrok pour faire un tunnel vers son localhost retropedalage sur @QuarkusTestResource vs @WithTestResource suite aux retour de OOME et lenteur des tests mieux isolés Les logs structurées dans Spring Boot 3.4 https://spring.io/blog/2024/08/23/structured-logging-in-spring-boot–3–4 Les logs structurées (souvent en JSON) vous permettent de les envoyer facilement vers des backends comme Elastic, AWS CloudWatch… Vous pouvez les lier à du reporting et de l'alerting. Spring Boot 3.4 prend en charge la journalisation structurée par défaut. Il prend en charge les formats Elastic Common Schema (ECS) et Logstash, mais il est également possible de l'étendre avec vos propres formats. Vous pouvez également activer la journalisation structurée dans un fichier. Cela peut être utilisé, par exemple, pour imprimer des journaux lisibles par l'homme sur la console et écrire des journaux structurés dans un fichier pour l'ingestion par machine. Infrastructure CockroachDB qui avait une approche Business Software License (source available puis ALS 3 ans apres), passe maintenant en license proprietaire avec source available https://www.cockroachlabs.com/blog/enterprise-license-announcement/ Polyform project offre des licences standardisees selon les besoins de gratuit vs payant https://polyformproject.org/ Cloud Azure fonctions, comment le demarrage a froid est optimisé https://www.infoq.com/articles/azure-functions-cold-starts/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=Cloud fonctions ont une latence naturelle forte toutes les lantences longues ne sont aps impactantes pour le business les demarrages a froid peuvent etre mesures avec les outils du cloud provider donc faites en usage faites des decentilers de latences experience 381 ms cold et 10ms apres tracing pour end to end latence les strategies keep alive pings: reveiller la fonctione a intervalles reguliers pour rester “warm” dans le code de la fonction: initialiser les connections et le chargement des assemblies dans l'initialization configurer dans host.json le batching, desactiver file system logging etc deployer les fonctions as zips reduire al taille du code et des fichiers (qui sont copies sur le serveur froid) sur .net activer ready to run qui aide le JIT compiler instances azure avec plus de CPU et memoire sont plus cher amis baissent le cold start dedicated azure instances pour vos fonctions (pas aprtage avec les autres tenants) ensuite montre des exemples concrets Web Sortie de Vue.js 3.5 https://blog.vuejs.org/posts/vue–3–5 Vue.JS 3.5: Nouveautés clés Optimisations de performance et de mémoire: Réduction significative de la consommation de mémoire (–56%). Amélioration des performances pour les tableaux réactifs de grande taille. Résolution des problèmes de valeurs calculées obsolètes et de fuites de mémoire. Nouvelles fonctionnalités: Reactive Props Destructure: Simplification de la déclaration des props avec des valeurs par défaut. Lazy Hydration: Contrôle de l'hydratation des composants asynchrones. useId(): Génération d'ID uniques stables pour les applications SSR. data-allow-mismatch: Suppression des avertissements de désynchronisation d'hydratation. Améliorations des éléments personnalisés: Prise en charge de configurations d'application, d'API pour accéder à l'hôte et au shadow root, de montage sans Shadow DOM, et de nonce pour les balises. useTemplateRef(): Obtention de références de modèle via l'API useTemplateRef(). Teleport différé: Téléportation de contenu vers des éléments rendus après le montage du composant. onWatcherCleanup(): Enregistrement de callbacks de nettoyage dans les watchers. Data et Intelligence Artificielle On entend souvent parler de Large Language Model quantisés, c'est à dire qu'on utilise par exemple des entiers sur 8 bits plutôt que des floatants sur 32 bits, pour réduire les besoins mémoire des GPU tout en gardant une précision proche de l'original. Cet article explique très visuellement et intuitivement ce processus de quantisation : https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-quantization Guillaume continue de partager ses aventures avec le framework LangChain4j. Comment effectuer de la classification de texte : https://glaforge.dev/posts/2024/07/11/text-classification-with-gemini-and-langchain4j/ en utilisant la classe TextClassification de LangChain4j, qui utilise une approche basée sur les vector embeddings pour comparer des textes similaires en utilisant du few-shot prompting, sous différentes variantes, dans cet autre article : https://glaforge.dev/posts/2024/07/30/sentiment-analysis-with-few-shots-prompting/ et aussi comment faire du multimodal avec LangChain4j (avec le modèle Gemini) pour analyser des textes, des images, mais également des vidéos, du contenu audio, ou bien des fichiers PDFs : https://glaforge.dev/posts/2024/07/25/analyzing-videos-audios-and-pdfs-with-gemini-in-langchain4j/ Pour faire varier la prédictibilité ou la créativité des LLMs, certains hyperparamètres peuvent être ajustés, comme la température, le top-k et le top-p. Mais est-ce que vous savez vraiment comment fonctionnent ces paramètres ? Deux articles très clairs et intuitifs expliquent leur fonctionnement : https://medium.com/google-cloud/is-a-zero-temperature-deterministic-c4a7faef4d20 https://medium.com/google-cloud/beyond-temperature-tuning-llm-output-with-top-k-and-top-p–24c2de5c3b16 la tempoerature va ecraser la probabilite du prochain token mais il reste des variables: approximnation des calculs flottants, stacks differentes effectuants ces choix differemment, que faire en cas d'egalité de probabilité entre deux tokens mais il y a d'atures apporoches de configuiration des reaction du LLM: top-k (qui evite les tokens peu frequents), top-p pour avoir les n des tokens qui totalient p% des probabilités temperature d'abord puis top-k puis top-p explique quoi utiliser quand OSI propose une definition de l'IA open source https://www.technologyreview.com/2024/08/22/1097224/we-finally-have-a-definition-for-open-source-ai/ gros debats ces derniers mois utilisable pour tous usages sans besoin de permission chercheurs peuvent inspecter les components et etudier comment le system fonctionne systeme modifiable pour tout objectif y compris chager son comportement et paratger avec d'autres avec ou sans modification quelque soit l'usage Definit des niveaux de transparence (donnees d'entranement, code source, poids) Une longue rétrospective de PostgreSQL a des volumes de malades et les problèmes de lock https://ardentperf.com/2024/03/03/postgres-indexes-partitioning-and-lwlocklockmanager-scalability/ un article pour vous rassurer que vous n'aurez probablement jamais le problème histoire sous forme de post mortem des conseils pour éviter ces falaises Outillage Un premier coup d'oeil à la future notation déclarative de Gradle https://blog.gradle.org/declarative-gradle-first-eap un article qui explique à quoi ressemble cette nouvelle syntaxe déclarative de Gradle (en plus de Groovy et Kotlin) Quelques vidéos montrent le support dans Android Studio, pour le moment, ainsi que dans un outil expérimental, en attendant le support dans tous les IDEs L'idée est d'éviter le scripting et d'avoir vraiment qu'une description de son build Cela devrait améliorer la prise en charge de Gradle dans les IDEs et permettre d'avoir de la complétion rapide, etc c'est moi on on a Maven là? Support de Firefox dans Puppeteer https://hacks.mozilla.org/2024/08/puppeteer-support-for-firefox/ Puppeteer, la bibliothèque d'automatisation de navigateur, supporte désormais officiellement Firefox dès la version 23. Cette avancée permet aux développeurs d'écrire des scripts d'automatisation et d'effectuer des tests de bout en bout sur Chrome et Firefox de manière interchangeable. L'intégration de Firefox dans Puppeteer repose sur WebDriver BiDi, un protocole inter-navigateurs en cours de standardisation au W3C. WebDriver BiDi facilite la prise en charge de plusieurs navigateurs et ouvre la voie à une automatisation plus simple et plus efficace. Les principales fonctionnalités de Puppeteer, telles que la capture de journaux, l'émulation de périphériques, l'interception réseau et le préchargement de scripts, sont désormais disponibles pour Firefox. Mozilla considère WebDriver BiDi comme une étape importante vers une meilleure expérience de test inter-navigateurs. La prise en charge expérimentale de CDP (Chrome DevTools Protocol) dans Firefox sera supprimée fin 2024 au profit de WebDriver BiDi. Bien que Firefox soit officiellement pris en charge, certaines API restent non prises en charge et feront l'objet de travaux futurs. Guillaume a créé une annotation @Retry pour JUnit 5, pour retenter l'exécution d'un test qui est “flaky” https://glaforge.dev/posts/2024/09/01/a-retryable-junit–5-extension/ Guillaume n'avait pas trouvé d'extension par défaut dans JUnit 5 pour remplacer les Retry rules de JUnit 4 Mais sur les réseaux sociaux, une discussion intéressante s'ensuit avec des liens sur des extensions qui implémentent cette approche Comme JUnit Pioneer qui propose plein d'extensions utiles https://junit-pioneer.org/docs/retrying-test/ Ou l'extension rerunner https://github.com/artsok/rerunner-jupiter Arnaud a aussi suggéré la configuration de Maven Surefire pour relancer automatiquement les tests qui ont échoué https://maven.apache.org/surefire/maven-surefire-plugin/examples/rerun-failing-tests.html la question philosophique est: est-ce que c'est tolerable les tests qui ecouent de façon intermitente Architecture Un ancien fan de GraphQL en a fini avec la technologie GraphQL et réfléchit aux alternatives https://bessey.dev/blog/2024/05/24/why-im-over-graphql/ Problèmes de GraphQL: Sécurité: Attaques d'autorisation Difficulté de limitation de débit Analyse de requêtes malveillantes Performance: Problème N+1 (récupération de données et autorisation) Impact sur la mémoire lors de l'analyse de requêtes invalides Complexité accrue: Couplage entre logique métier et couche de transport Difficulté de maintenance et de tests Solutions envisagées: Adoption d'API REST conformes à OpenAPI 3.0+ Meilleure documentation et sécurité des types Outils pour générer du code client/serveur typé Deux approches de mise en œuvre d'OpenAPI: “Implementation first” (génération de la spécification à partir du code) “Specification first” (génération du code à partir de la spécification) retour interessant de quelqu'un qui n'utilise pas GraphQL au quotidien. C'était des problemes qui devaient etre corrigés avec la maturité de l'ecosysteme et des outils mais ca a montré ces limites pour cette personne. Prensentation de Grace Hoper en 1980 sur le future des ordinateurs. https://youtu.be/AW7ZHpKuqZg?si=w_o5_DtqllVTYZwt c'est fou la modernité de ce qu'elle décrit Des problèmes qu'on a encore aujourd'hui positive leadership Elle décrit l'avantage de systèmes fait de plusieurs ordinateurs récemment declassifié Leader election avec les conditional writes sur les buckets S3/GCS/Azure https://www.morling.dev/blog/leader-election-with-s3-conditional-writes/ L'élection de leader est le processus de choisir un nœud parmi plusieurs pour effectuer une tâche. Traditionnellement, l'élection de leader se fait avec un service de verrouillage distribué comme ZooKeeper. Amazon S3 a récemment ajouté le support des écritures conditionnelles, ce qui permet l'élection de leader sans service séparé. L'algorithme d'élection de leader fonctionne en faisant concourir les nœuds pour créer un fichier de verrouillage dans S3. Le fichier de verrouillage inclut un numéro d'époque, qui est incrémenté à chaque fois qu'un nouveau leader est élu. Les nœuds peuvent déterminer s'ils sont le leader en listant les fichiers de verrouillage et en vérifiant le numéro d'époque. attention il peut y avoir plusieurs leaders élus (horloges qui ont dérivé) donc c'est à gérer aussi Méthodologies Guillaume Laforge interviewé par Sfeir, où il parle de l'importance de la curiosité, du partage, de l'importance de la qualité du code, et parsemé de quelques photos des Cast Codeurs ! https://www.sfeir.dev/success-story/guillaume-laforge-maestro-de-java-et-esthete-du-code-propre/ Sécurité Comment crowdstrike met a genoux windows et de nombreuses entreprises https://next.ink/144464/crowdstrike-donne-des-details-techniques-sur-son-fiasco/ l'incident vient de la mise à jour de la configuration de Falcon l'EDR de crowdstrike https://www.crowdstrike.com/blog/falcon-update-for-windows-hosts-technical-details/ qu'est ce qu'un EDR? Un système Endpoint Detection and Response a pour but de surveiller votre machine ( access réseaux, logs, …) pour detecter des usages non habituels. Cet espion doit interagir avec les couches basses du système (réseau, sockets, logs systems) et se greffe donc au niveau du noyau du système d'exploitation. Il remonte les informations en live à une plateforme qui peut ensuite adapter les réponse en live si l'incident a duré moins de 1h30 coté crowdstrike plus de 8 millions de machines se sont retrouvées hors service bloquées sur le Blue Screen Of Death selon Microsoft https://blogs.microsoft.com/blog/2024/07/20/helping-our-customers-through-the-crowdstrike-outage/ cela n'est pas la première fois et était déjà arrivé il y a quelques mois sur Linux. Comme il s'agissait d'une incompatibilité de kernel il avait été moins important car les services ITs gèrent mieux ces problèmes sous Linux https://stackdiary.com/crowdstrike-took-down-debian-and-rocky-linux-a-few-months-ago-and-no-one-noticed/ Les benchmarks CIS, un pilier pour la sécurité de nos environnements cloud, et pas que ! (Katia HIMEUR TALHI) https://blog.cockpitio.com/security/cis-benchmarks/ Le CIS est un organisme à but non lucratif qui élabore des normes pour améliorer la cybersécurité. Les référentiels CIS sont un ensemble de recommandations et de bonnes pratiques pour sécuriser les systèmes informatiques. Ils peuvent être utilisés pour renforcer la sécurité, se conformer aux réglementations et normaliser les pratiques. Loi, société et organisation Microsoft signe un accord avec OVHCloud pour qu'il arretent leur plaine d'antitrust https://www.politico.eu/article/microsoft-signs-antitrust-truce-with-ovhcloud/ la plainte était en Europe mermet a des clients de plus facilement deployer les solutions Microsoft dans le fournisseur de cloud de leur choix la plainte avait ete posé à l'été 2021 ca rendait faire tourner les solutions MS plus cheres et non competitives vs MS ElasticSearch et Kibana sont de nouveau Open Source, en ajoutant la license AGPL à ses autres licences existantes https://www.elastic.co/fr/blog/elasticsearch-is-open-source-again le marché d'il y a trois ans et maintenant a changé AWS est une bon partenaire le flou Elasticsearch vs le produit d'AWS s'est clarifié donc retour a l'open source via AGPL Affero GPL Elastic n'a jamais cessé de croire en l'open source d'après Shay Banon son fondateur Le changement vers l'AGPL est une option supplémentaire, pas un remplacement d'une des autres licences existantes et juste apres, Elastic annonce des resultants decevants faisant plonger l'action de 25% https://siliconangle.com/2024/08/29/elastic-shares-plunge–25-lower-revenue-projections-amid-slower-customer-commitments/ https://unrollnow.com/status/1832187019235397785 et https://www.elastic.co/pricing/faq/licensing pour un résumé des licenses chez elastic Outils de l'épisode MailMate un client email Markdown et qui gere beaucoup d'emails https://medium.com/@nicfab/mailmate-a-powerful-client-email-for-macos-markdown-integrated-email-composition-e218fe2accf3 Emmanuel l'utilise sur les boites email secondaires un peu lent a demarrer (synchro) et le reste est rapide boites virtuelles (par requete) SpamSieve Que macOS je crois Trippy, un analyseur de réseau https://github.com/fujiapple852/trippy Il regroupe dans une CLI traceroute et ping Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 17 septembre 2024 : We Love Speed - Nantes (France) 17–18 septembre 2024 : Agile en Seine 2024 - Issy-les-Moulineaux (France) 19–20 septembre 2024 : API Platform Conference - Lille (France) & Online 20–21 septembre 2024 : Toulouse Game Dev - Toulouse (France) 25–26 septembre 2024 : PyData Paris - Paris (France) 26 septembre 2024 : Agile Tour Sophia-Antipolis 2024 - Biot (France) 2–4 octobre 2024 : Devoxx Morocco - Marrakech (Morocco) 3 octobre 2024 : VMUG Montpellier - Montpellier (France) 7–11 octobre 2024 : Devoxx Belgium - Antwerp (Belgium) 8 octobre 2024 : Red Hat Summit: Connect 2024 - Paris (France) 10 octobre 2024 : Cloud Nord - Lille (France) 10–11 octobre 2024 : Volcamp - Clermont-Ferrand (France) 10–11 octobre 2024 : Forum PHP - Marne-la-Vallée (France) 11–12 octobre 2024 : SecSea2k24 - La Ciotat (France) 15–16 octobre 2024 : Malt Tech Days 2024 - Paris (France) 16 octobre 2024 : DotPy - Paris (France) 16–17 octobre 2024 : NoCode Summit 2024 - Paris (France) 17–18 octobre 2024 : DevFest Nantes - Nantes (France) 17–18 octobre 2024 : DotAI - Paris (France) 30–31 octobre 2024 : Agile Tour Nantais 2024 - Nantes (France) 30–31 octobre 2024 : Agile Tour Bordeaux 2024 - Bordeaux (France) 31 octobre 2024–3 novembre 2024 : PyCon.FR - Strasbourg (France) 6 novembre 2024 : Master Dev De France - Paris (France) 7 novembre 2024 : DevFest Toulouse - Toulouse (France) 8 novembre 2024 : BDX I/O - Bordeaux (France) 13–14 novembre 2024 : Agile Tour Rennes 2024 - Rennes (France) 16–17 novembre 2024 : Capitole Du Libre - Toulouse (France) 20–22 novembre 2024 : Agile Grenoble 2024 - Grenoble (France) 21 novembre 2024 : DevFest Strasbourg - Strasbourg (France) 21 novembre 2024 : Codeurs en Seine - Rouen (France) 27–28 novembre 2024 : Cloud Expo Europe - Paris (France) 28 novembre 2024 : Who Run The Tech ? - Rennes (France) 2–3 décembre 2024 : Tech Rocks Summit - Paris (France) 3 décembre 2024 : Generation AI - Paris (France) 3–5 décembre 2024 : APIdays Paris - Paris (France) 4–5 décembre 2024 : DevOpsRex - Paris (France) 4–5 décembre 2024 : Open Source Experience - Paris (France) 5 décembre 2024 : GraphQL Day Europe - Paris (France) 6 décembre 2024 : DevFest Dijon - Dijon (France) 22–25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 30 janvier 2025 : DevOps D-Day #9 - Marseille (France) 6–7 février 2025 : Touraine Tech - Tours (France) 3 avril 2025 : DotJS - Paris (France) 16–18 avril 2025 : Devoxx France - Paris (France) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

airhacks.fm podcast with adam bien
How Bach - "The Java Shell Builder" Happened

airhacks.fm podcast with adam bien

Play Episode Listen Later Jul 29, 2024 57:49


An airhacks.fm conversation with Christian Stein (@sormuras) about: early computing experiences with C64, learning Basic and Pascal, transition to Java programming, developing a commercial Java game using lwjgl, involvement with JUnit testing framework as a committer, work on openJDK and Java tools at Oracle, discussion about Java build tools and dependency management, vision for a simpler Java build process using only JDK tools, multi-file source code feature in Java 22, pluggable dependency resolution, tool provider interface introduced in Java 9, potential for a new ecosystem of Java tools, Bach - Java Shell Builder, Adam's YouTube channel with Java programming shorts, misconceptions about Java's verbosity, future plans for Java build tools Christian Stein on twitter: @sormuras

Smart Software with SmartLogic
"Testing 1, 2, 3" with Joel Meador and Charles Suggs

Smart Software with SmartLogic

Play Episode Listen Later Mar 21, 2024 45:40


The Elixir Wizards Podcast is back with Season 12 Office Hours, where we talk with the internal SmartLogic team about the stages of the software development lifecycle. For the season premiere, "Testing 1, 2, 3," Joel Meador and Charles Suggs join us to discuss the nuances of software testing. In this episode, we discuss everything from testing philosophies to test driven development (TDD), integration, and end-user testing. Our guests share real-world experiences that highlight the benefits of thorough testing, challenges like test maintenance, and problem-solving for complex production environments. Key topics discussed in this episode: How to find a balance that's cost-effective and practical while testing Balancing test coverage and development speed The importance of clear test plans and goals So many tests: Unit testing, integration testing, acceptance testing, penetration testing, automated vs. manual testing Agile vs. Waterfall methodologies Writing readable and maintainable tests Testing edge cases and unexpected scenarios Testing as a form of documentation and communication Advice for developers looking to improve testing practices Continuous integration and deployment Links mentioned: https://smartlogic.io/ Watch this episode on YouTube! youtu.be/unx5AIvSdc Bob Martin “Clean Code” videos - “Uncle Bob”: http://cleancoder.com/ JUnit 5 Testing for Java and the JVM https://junit.org/junit5/ ExUnit Testing for Elixir https://hexdocs.pm/exunit/ExUnit.html Code-Level Testing of Smalltalk Applications https://www.cs.ubc.ca/~murphy/stworkshop/28-7.html Agile Manifesto https://agilemanifesto.org/ Old Man Yells at Cloud https://i.kym-cdn.com/entries/icons/original/000/019/304/old.jpg TDD: Test Driven Development https://www.agilealliance.org/glossary/tdd/ Perl Programming Language https://www.perl.org/ Protractor Test Framework for Angular and AngularJS protractortest.org/#/ Waterfall Project Management https://business.adobe.com/blog/basics/waterfall CodeSync Leveling up at Bleacher Report A cautionary tale - PETER HASTIE https://www.youtube.com/watch?v=P4SzZCwB8B4 Mix ecto.dump https://hexdocs.pm/ectosql/Mix.Tasks.Ecto.Dump.html Apache JMeter Load Testing in Java https://jmeter.apache.org/ Pentest Tools Collection - Penetration Testing https://github.com/arch3rPro/PentestTools The Road to 2 Million Websocket Connections in Phoenix https://www.phoenixframework.org/blog/the-road-to-2-million-websocket-connections Donate to Miami Indians of Indiana https://www.miamiindians.org/take-action Joel Meador on Tumblr https://joelmeador.tumblr.com/ Special Guests: Charles Suggs and Joel Meador.

Spring Office Hours
Spring Office Hours: S3E6 - Spring Boot Testing with Phillip Riecks

Spring Office Hours

Play Episode Listen Later Feb 13, 2024 57:34


Join Dan Vega and special guest Phillip Riecks as they dive into testing your Spring Boot Applications. This episode will highlight the utilities that Spring Boot provides, what you should be testing, and when to write different types of tests. Tune into our live stream to have your questions answered or catch the replay on your preferred podcast platform.

Test Automation Experience
Generative AI Testing Tool - Loadmill | AI Generates Automated Tests

Test Automation Experience

Play Episode Listen Later Jan 26, 2024 58:23


Can AI really write working tests for your app or software? How can businesses use AI to cut costs in testing QA? What is the biggest mistake you can make in load testing? On this week's episode of the Test Automation Experience, Loadmill Co-founder and CEO Ido Cohen joins our host Nikolay Advolodkin to do a deep dive on using AI for test automation, how AI can cut costs on testing QA, and how Loadmill can help you do both. Stay informed, stay ahead with Test Automation Experience - your source for all things test automation!CONNECT WITH IDO COHEN

Podcast de tecnología e informática
¿Que necesito saber para empezar proyecto Spring Boot?

Podcast de tecnología e informática

Play Episode Listen Later Jan 1, 2024 3:20


Para empezar un proyecto con Spring Boot, es importante tener una comprensión básica de algunos conceptos y herramientas. Aquí te detallo una lista de lo que necesitas saber: Java: Como Spring Boot es un framework para desarrollar aplicaciones en Java, necesitas tener conocimientos sólidos del lenguaje Java. Spring Framework: Familiarizarte con los conceptos básicos de Spring, como Inversión de Control (IoC), inyección de dependencias, y el patrón MVC (Modelo-Vista-Controlador). Maven o Gradle: Estas son herramientas de gestión y construcción de proyectos. Spring Boot puede ser utilizado con cualquiera de los dos, por lo que es útil entender cómo funcionan para manejar dependencias y configurar tu proyecto. Conocimientos Básicos de Spring Boot: Comprender qué es Spring Boot, cómo simplifica el desarrollo de aplicaciones Spring y sus principales características, como la auto-configuración y los starters de Spring Boot. RESTful Services: Muchas aplicaciones de Spring Boot son aplicaciones web que exponen APIs REST. Entender los principios REST y cómo implementar servicios web RESTful con Spring Boot es esencial. Spring Data JPA/Hibernate: Para la persistencia de datos, es útil saber cómo utilizar Spring Data JPA junto con un proveedor como Hibernate para interactuar con bases de datos. Spring Security: Para gestionar la autenticación y autorización en tus aplicaciones. Pruebas Unitarias y de Integración: Conocimientos sobre cómo escribir y ejecutar pruebas usando JUnit y Spring Test. Herramientas de Desarrollo: Familiarizarte con un IDE como IntelliJ IDEA, Eclipse, o Spring Tool Suite, que son ampliamente usados para el desarrollo en Spring. Control de Versiones: Conocimientos básicos de un sistema de control de versiones como Git. Docker (Opcional pero recomendado): Entender cómo contenerizar tus aplicaciones Spring Boot con Docker puede ser muy útil, especialmente para despliegues. Microservicios (Para proyectos avanzados): Si planeas construir microservicios, es útil entender conceptos relacionados como la configuración distribuida, el descubrimiento de servicios, circuit breakers, etc. Al comenzar, no es necesario ser un experto en todos estos temas, pero tener una base sólida te ayudará a aprender y solucionar problemas a medida que avanzas en tu proyecto con Spring Boot. Además, la documentación de Spring Boot es un recurso excelente para aprender y consultar. Libros recomendados: ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://infogonzalez.com/libros⁠⁠ --- Send in a voice message: https://podcasters.spotify.com/pod/show/infogonzalez/message

Les Cast Codeurs Podcast
LCC 301 - Minoritaire ou majoritaire, là est la question!

Les Cast Codeurs Podcast

Play Episode Listen Later Oct 23, 2023 105:39


Dans cet épisode, Emmanuel et Guillaume reviennent sur les nouveautés de l'écosystème Java (Java 21, SDKman, Temurin, JBang, Quarkus, LangChain4J, …) mais aussi sur des sujets plus généraux comme Unicode, WebAssembly, les bases de données vectorielles, et bien d'autres sujets orientés IA (LLM, ChatGPT, Anthropic, …). Enregistré le 20 octobre 2023 Téléchargement de l'épisode LesCastCodeurs-Episode-301.mp3 News Langages Gérer facilement des versions multiples de Java grâce à SDKman https://foojay.io/today/easily-manage-different-java-versions-on-your-machine-with-sdkman/ sdkman support java mais aussi graalVM, jbang, Quarkus, Micronaut etc (les CLIs) la CLI UI est toujours un peu chelou donc cet article est utile pour un rappel Tous les changements de Java 8 à Java 21 https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features-since-jdk-8-to-21/ Nous avons déjà partagé ce lien par le passé, mais l'article est mis à jour à chaque release majeure de Java pour couvrir les dernières nouveautés. Et en particulier, Java 21 qui vient de sortir. Eclipse Temurin ne va pas sortir son Java 21 tout de suite https://adoptium.net/en-GB/blog/2023/09/temurin21-delay/ Apparemment, une nouvelle licence pour le TCK (qui valide la compliance) doit être approuvée Oracle semble avoir sorti de nouveaux termes, à quelques jours de la sortie officielle de Java 21 la mise a jour du TCK est arrivée le 9 octobre. comment Microsoft a pu sortir le sien avant? Le Financial Times propose un bel article avec des animations graphiques expliquant le fonctionnement de l'architecture de réseau de neurones de type transformers, utilisé dans les large language model https://ig.ft.com/generative-ai/ LLM via relation entre les mots notion de transformer qui parse les “phrases” entières ce qui capture le contexte discute le beam search vs greedy search pour avoir pas le prochain mot mais l'ensemble de prochains mots parle d'hallucination l'article parle de texte/vector embeddings pour représenter les tokens et leurs relations aux autres il décrit le processus d'attention qui permet aux LLM de comprendre les associations fréquentes entre tokens le sujet des hallucinations est couvert et pour éviter des hallucinations, utilisation du “grounding” The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 https://tonsky.me/blog/unicode/ Un bel article qui explique Unicode, les encodings comme UTF-8 ou UTF-16, les code points, les graphèmes, les problèmes pour mesurer une chaîne de caractères, les normalisation de graphèmes pour la comparaison de chaîne Si vous voulez mieux comprendre Unicode, c'est l'article à lire ! unicode c'est un mapping chiffre - caractère en gros 1,1 millions disponibles dont 15% définis et 11% pour usage privé, il reste de la place. Et non les meojis ne prennent pas beaucoup de place. usage prive est par exemple utilise par apple pour délivrer le logo apple dans les fonts du mac (mais pas ailleurs) UTF est l'encoding du chiffre de l'unicode UTF-32: 4 bytes tout le temps, UTF-8, encodage variable de 1 a 4 bytes (compatible avec ASCII) ; il a aussi un peu de détection d'erreurs (prefix des bytes différents), optimise pour le latin et les textes techniques genre HTML problème principal, on peut pas déterminer la taille en contant les bytes ni aller au milieu d'une chaine directement (variable) UTF-16 utilise 2 ou plus de bytes et est plus sympa pour les caractères asiatiques un caractère c'est en fait un graphème qui peut être fait de plusieurs codepoints : é = e U+0065 + ´ U+0301 ; ☹️ (smiley qui pleure) is U+2639 + U+FE0F D'ailleurs selon le langage “:man-facepalming::skin-tone-3:”.length = 5, 7 (java) ou 17 (rust) ou 1 (swift). Ça dépend de l'encodage de la chaine (UTF-?). ““I know, I'll use a library to do strlen()!” — nobody, ever.” En java utiliser ICU https://github.com/unicode-org/icu Attention java.text.BreakIterator supporte une vieille version d'unicode donc c'est pas bon. Les règles de graphème change a chaque version majeure d'unicode (tous les ans) certains caractères comme Å ont plusieurs représentations d'encodage, donc il ya de la normalisation: NFD qui éclate en pleins de codepoints ou NDC qui regroupe au max normaliser avant de chercher dans les chaines certains unicode sont représentés différemment selon le LOCALE (c'est la life) et ça continue dans l'article JBang permet d'appeler Java depuis Python via un pypi https://jbang.dev/learn/python-with-jbang/ c'est particulièrement interessant pour appeler Java de son Jupyter notebook ça fait un appel a un autre process (mais installe jbang et java au besoin) Librairies Quarkus 3.4 est sorti https://quarkus.io/blog/quarkus-3-4-1-released/ un CVE donc mettez a jour vos Quarkus support de Redis 7.2 plus de granularité sur la desactivation de flyway globalement ou par data source. Depuis l'activation transparente et automatique en 3.3 quarkus update est l'approche recommandée pour mettre à jour. Comment tester si un thread virtuel “pin” https://quarkus.io/blog/virtual-threads-3/ exemple avec quarkus comment générer la stackstrace et un utilitaire JUnit qui fait échouer le test quand le thread pin une série d'articles de Clements sur les threads virtuels et comment les utiliser dans quarkus https://quarkus.io/blog/virtual-thread-1/ À la découverte de LangChain4J, l'orchestration pour l'IA générative en Java https://glaforge.dev/posts/2023/09/25/discovering-langchain4j/ Guillaume nous parle du jeune projet LangChain4J, inspiré du projet Python LangChain, qui permet d'orchestrer différents composants d'une chaine d'IA générative Grâce à ce projet, les développeurs Java ne sont pas en reste, et n'ont pas besoin de se mettre à coder en Python LangChain4J s'intègre avec différentes bases vectorielles comme Chroma ou WeAviate, ainsi qu'une petite base en mémoire fort pratique LangChain4J supporte l'API PaLM de Google, mais aussi OpenAI Il y a différents composants pour charger / découper des documents et pour calculer les vector embeddings des extraits de ces documents Vidéo enregistrée à Devoxx sur ce thème : https://www.youtube.com/watch?v=ioTPfL9cd9k Infrastructure OpenTF devient OpenTofu https://www.linuxfoundation.org/press/announcing-opentofu Dans les Dockerfiles, on peut utiliser la notation “heredocs” exclu fondations et sociétés commerciales, inclues défini des classes de logiciels de non critique a classe 1 et 2 doit faire un risk assessment avant de livrer (pas de bug de sécurité, secure par défaut, security update) de la doc sur le process d'évaluation des risques et un SBOM notamment notifier d'ici 24h d'une vulnerabilité il y a une campagne #fixthecra Des protestations contre l'ouverture des modèles d'IA de Meta https://spectrum.ieee.org/meta-ai ouvrir les modèles et leurs poids permets aux acteurs de bypasser les restrictions (biais etc) donc des gens de Meta protestent contre la politique open source de Meta dans ce domaine l'argument c'est qu'un modele derrière une API peut êtres éteint les partisans de l'avis contraire pointent que contourner les restrictions de ChatGPT ont été triviales jusqu'à présent et que l'obscurité amène a un déficit de transparence, de connaissance du public. va affecté les chercheurs indépendants cela dit ce n'est pas open source pur car les sources et comment le modele est entrainé est peu publié OSI travaille a une définition d'OpenSource AI Un site pour mettre une pause à l'IA: https://pauseai.info/ NOUS RISQUONS DE PERDRE LE CONTRÔLE NOUS RISQUONS L'EXTINCTION DE L'HUMANITÉ NOUS AVONS BESOIN D'UNE PAUSE NOUS DEVONS AGIR IMMÉDIATEMENT Il y a un agenda des manifestations a travers le monde (Londres, Bruxelles, SFO… mais où est Paris?) Twitter/Discord/Facebook/TikTok/LinkedIn Alors qui va gagner la course à l'extinction de l'humanité? la guerre, le réchauffement climatique ou l'IA? Sarah Connor !!! Outils de l'épisode Un querty adapté pour les lettres à accent https://altgr-weur.eu/ (via Thomas Recloux) Conférences Toutes les vidéos de Devoxx Belgique sont disponibles https://www.youtube.com/@DevoxxForever Hacktoberfest, édition 10 https://hacktoberfest.com/ La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 26 octobre 2023 : Codeurs en Seine - Rouen (France) 26-27 octobre 2023 : Agile Tour Bordeaux - Bordeaux (France) 26-29 octobre 2023 : SoCraTes-FR - Orange (France) 30-31 octobre 2023 : Asynconf Event - Paris (France) & Online 2-3 novembre 2023 : Agile Tour Nantes - Nantes (France) 3 novembre 2023 : XCraft - Lyon (France) 7 novembre 2023 : DevFest Sophia-Antipolis - Sophia-Antipolis (France) 10 novembre 2023 : BDX I/O - Bordeaux (France) 15 novembre 2023 : DevFest Strasbourg - Strasbourg (France) 16 novembre 2023 : DevFest Toulouse - Toulouse (France) 18-19 novembre 2023 : Capitole du Libre - Toulouse (France) 23 novembre 2023 : DevOps D-Day #8 - Marseille (France) 23 novembre 2023 : Agile Grenoble - Grenoble (France) 30 novembre 2023 : PrestaShop Developer Conference - Paris (France) 30 novembre 2023 : WHO run the Tech - Rennes (France) 6-7 décembre 2023 : Open Source Experience - Paris (France) 6-8 décembre 2023 : API Days Paris - Paris (France) 7 décembre 2023 : Agile Tour Aix-Marseille - Gardanne (France) 7-8 décembre 2023 : TechRocks Summit - Paris (France) 8 décembre 2023 : DevFest Dijon - Dijon (France) 31 janvier 2024-3 février 2024 : SnowCamp - Grenoble (France) 1 février 2024 : AgiLeMans - Le Mans (France) 15-16 février 2024 : Touraine Tech - Tours (France) 6-7 mars 2024 : FlowCon 2024 - Paris (France) 14-15 mars 2024 : pgDayParis - Paris (France) 19-22 mars 2024 : KubeCon + CloudNativeCon Europe 2024 - Paris (France) 28-29 mars 2024 : SymfonyLive Paris 2024 - Paris (France) 17-19 avril 2024 : Devoxx France - Paris (France) 18-20 avril 2024 : Devoxx Greece - Athens (Greece) 25-26 avril 2024 : MiXiT - Lyon (France) 25-26 avril 2024 : Android Makers - Paris (France) 8-10 mai 2024 : Devoxx UK - London (UK) 24 mai 2024 : AFUP Day Nancy - Nancy (France) 24 mai 2024 : AFUP Day Poitiers - Poitiers (France) 24 mai 2024 : AFUP Day Lille - Lille (France) 24 mai 2024 : AFUP Day Lyon - Lyon (France) 6-7 juin 2024 : DevFest Lille - Lille (France) 19-20 septembre 2024 : API Platform Conference - Lille (France) & Online 7-11 octobre 2024 : Devoxx Belgium - Antwerp (Belgium) 10-11 octobre 2024 : Volcamp - Clermont-Ferrand (France) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

Oracle Groundbreakers
Sam Brannen: Hard Core Software Developer

Oracle Groundbreakers

Play Episode Listen Later Sep 29, 2023 22:18


Jim Grisanzio from Java Developer Relations talks with Sam Brannen, a Java engineer from Switzerland who loves math and puzzles and solving complex problems in code. He's passionate about his craft and he loves diving deep into the details. He works on the Spring Framework and JUnit 5. Get him on Twitter @sam_brannen and get Jim on Twitter @jimgris.

Test Automation Experience
Unlock CICD: TestRail, Cypress & Sauce Labs

Test Automation Experience

Play Episode Listen Later Sep 29, 2023 42:04


In this episode, join host Nikolay Advolodkin and our special guest, Diogo Rede, a Solution Architect and Testing Advocate at TestRail. Get ready for an insightful discussion on unlocking the power of CI/CD (Continuous Integration and Continuous Deployment) with a focus on TestRail, Cypress, and Sauce Labs. Discover strategies and insights that can supercharge your testing processes. Subscribe now and stay ahead in the world of test automation with Test Automation Experience!0:00 - Intro1:20 - TestRail introduction3:50 - How TestRail + Sauce Labs integration works5:37 - Setup, demo, and workflow11:10 - Executing tests12:27 - Configuring Sauce Labs for integration21:02 -  Build Link in Sauce Labs24:04 - Cypress tests and TestRail CLI27:55 - Cypress automated test run32:14 - JUnit test result 35:09 - Push defects for value and visibility==================CONNECT WITH DIOGO REDE

Dev Sem Fronteiras
Engenheiro de Testes na Apple em Singapura - Dev Sem Fronteiras #96

Dev Sem Fronteiras

Play Episode Listen Later Jul 11, 2023 41:42


O Thiago começou em administração de agronomia, mas não gostou da área e decidiu ir pra Irlanda trabalhar com atendimento ao consumidor. Conseguiu mudar pra área de testes dentro da própria empresa, e posteriormente mudou para a Apple. Atualmente continua na Apple, mas em Singapura, e nos conta como foi essa mudança, sobre os preços e o mercado nesse país asiático. Fabrício Carraro, o seu viajante poliglota Thiago Nunes, Engenheiro de Testes na Apple em Singapura Links: Garanta seu ingresso pra conferência Dev Leaders Formação "Carreira QA: processos e automação de testes" na Alura Curso "Python e TDD: explorando testes unitários" na Alura Curso "TDD e Java: testes automatizados com JUnit" na Alura TechGuide.sh, um mapeamento das principais tecnologias demandadas pelo mercado para diferentes carreiras, com nossas sugestões e opiniões. #7DaysOfCode: Coloque em prática os seus conhecimentos de programação em desafios diários e gratuitos. Acesse https://7daysofcode.io/ Ouvintes do podcast Dev Sem Fronteiras têm 10% de desconto em todos os planos da Alura Língua. Basta ir a https://www.aluralingua.com.br/promocao/devsemfronteiras/ e começar a aprender inglês e espanhol hoje mesmo! Produção e conteúdo: Alura Língua Cursos online de Idiomas - https://www.aluralingua.com.br/ Alura Cursos online de Tecnologia - https://www.alura.com.br/ Edição e sonorização: Radiofobia Podcast e Multimídia

sobre la marcha
☕️ Las pruebas

sobre la marcha

Play Episode Listen Later May 3, 2023 31:51


Tomek Kaczanowski “Practical Unit Testing with JUnit and Mockito”, 2ª Edición — https://leanpub.com/practicalunittestingwithjunitandmockito-2ndedition — La música de la entradilla es “If Pigs Could Sing”, de Rolemusic, y se distribuye con licencia CC-BY 3.0 (https://creativecommons.org/licenses/by/3.0/deed.es) Puedes enviarme tus comentarios a través de los siguientes canales: * Puedes unirte al grupo de oyentes en Telegram en https://t.me/sobre_la_marcha * A través de Mastodon: https://fedi.gvisoc.com/@gabriel * A través de mensajes directos en Telegram (sólo mensajes de texto

Oddly Influenced
Interview: Downsides of packages, upsides of jUnit (with Elisabeth Hendrickson and Chris McMahon) ("Packages", Part 4)

Oddly Influenced

Play Episode Listen Later Aug 29, 2022 34:37


GuestsElisabeth Hendrickson, @testobsessed, Curious Duck Digital LaboratoryChris McMahon, @chris_mcmahon, blogCitationsCrafting Science: A Sociohistory of the Quest for the Genetics of Cancer, Joan Fujimura, 1997. Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing, Elisabeth Hendrickson, 2012.

Oddly Influenced
Theories of What? or: Richard Rorty Weighs in on TDD ("Packages", Part 3)

Oddly Influenced

Play Episode Listen Later Aug 22, 2022 23:00


CitationsCrafting Science: A Sociohistory of the Quest for the Genetics of Cancer, Joan Fujimura, 1997. Contingency, Irony, and Solidarity, Richard Rorty, 1989. Smalltalk Best Practice Patterns, Kent Beck, 1996.Ward Cunningham on "working the program", 2004.The Mathematical Experience, Phillip J. Davis and Reuben Hersh, 1980."Elephant Talk", King Crimson, 1981 (audio)."Hammock-Driven Development", Rich Hickey, 2010 (video)."What is Hammock-Driven Development?", Keagan Stokoe, 2021CreditsImage of contrasting words from Flickr user andeecollard, Creative Commons License CC BY-SA 2.0

Oddly Influenced
jUnit and What Makes a Successful Tool ("Packages", Part 2)

Oddly Influenced

Play Episode Listen Later Aug 15, 2022 21:47


Recombinant DNA ("gene splicing") was a wildly successful technology in the world of cell biology. Its success gave credibility to the associated "proto-oncogene theory of cancer." The theory piggy-backed on the tool. jUnit was a fairly successful tool in the world of Java programmers. But it was not as successful as recombinant DNA, and it was fairly unsuccessful at promoting its associated theory of test-driven design.This episode looks at what (according to Joan Fujimura's ideas about the history of molecular biology) is required for a tool to be successful, and why jUnit's theory didn't successfully piggyback on the tool.  Sources mentionedCrafting Science: A Sociohistory of the Quest for the Genetics of Cancer, Joan Fujimura, 1997. Molecular Cloning, a Laboratory Manual (Fourth Edition), Michael R. Green and Joseph Sambrook, 2012.“Test Infected: Programmers Love Writing Tests”, Kent Beck and Eric Gamma."JUnit: A Cook's Tour", Kent Beck and Eric Gamma.Junit Recipes: Practical Methods for Programmer Testing, J. B. Rainsberger, 2003.XUnit Test Patterns: Refactoring Test Code, Gerard Meszaros, 2007.My question about the adoption of TDD

PLUGHITZ Live Presents (Video)
Kiwi TCMS can help you automate testing and increase productivity

PLUGHITZ Live Presents (Video)

Play Episode Listen Later Jul 8, 2022 15:22


Looking for a comprehensive test management system that can help you automate your testing process and increase productivity? Look no further than Kiwi TCMS! Kiwi TCMS is the leading open-source test management system and allows you to see pending work, execute tests, mark results, and report bugs. Additionally, plugins let you collect automation results for popular testing frameworks.With Kiwi TCMS, you can create test plans and cases, track progress and assign work across multiple teams. Plus, with instant insight into your testing process, you'll be able to make better decisions about when to release your product!What is Kiwi TCMS?Kiwi TCMS is an open-source test management system that was designed to be easy to use and straightforward. The platform provides a web interface for managing test cases, plans, and runs. In addition, the system has plugins for popular testing frameworks such as JUnit and TestNG. The platform also has a REST API which makes it easy to integrate with other tools in your development process - even custom tools you have created.How can Kiwi TCMS improve your development?Kiwi TCMS can improve your development process in multiple ways. It provides an easy-to-use web interface for managing test cases, plans, and runs. This means that you can access it from anywhere, whether you are at your development computer or not. Management can see reports from wherever they are, and developers can see that their code is working to plan.Kiwi TCMS plugins make it easy to collect automation results for popular testing frameworks such as JUnit and TestNG. The platform's REST API makes it easy to integrate with other tools in your development process. If you have internal corporate tools, including reporting tools, you can develop your own plugins and API interfaces to extend the functionality into your existing workflow.How can Kiwi TCMS be deployed?Kiwi TCMS can be deployed in a number of ways. It is written in Python and can be run on any platform that supports Python. The development and management team provides pre-built virtual machines for those who want to use the system in the cloud. Additionally, the test suite can be deployed using Docker containers.Because the system is open source, there is no cost to use Kiwi TCMS. You can find the code on GitHub. If you are looking for assistance in setting up the system, or you don't want to self-host, you can sign up for support and hosting plans instead.If you want to contribute to the project, you can do so through GitHub as well. The development team welcomes contributions and is always looking for ways to improve the system.SummaryKiwi TCMS is available right now in free and paid versions. To learn more about the system, try out the full demo, or begin your journey, head over to the company's website or GitHub.Sponsored by: Get $5 to protect your credit card information online with Privacy. Amazon Prime gives you more than just free shipping. Get free music, TV shows, movies, videogames and more.

PLuGHiTz Live Special Events (Audio)
Kiwi TCMS can help you automate testing and increase productivity

PLuGHiTz Live Special Events (Audio)

Play Episode Listen Later Jul 8, 2022 15:22


Looking for a comprehensive test management system that can help you automate your testing process and increase productivity? Look no further than Kiwi TCMS! Kiwi TCMS is the leading open-source test management system and allows you to see pending work, execute tests, mark results, and report bugs. Additionally, plugins let you collect automation results for popular testing frameworks.With Kiwi TCMS, you can create test plans and cases, track progress and assign work across multiple teams. Plus, with instant insight into your testing process, you'll be able to make better decisions about when to release your product!What is Kiwi TCMS?Kiwi TCMS is an open-source test management system that was designed to be easy to use and straightforward. The platform provides a web interface for managing test cases, plans, and runs. In addition, the system has plugins for popular testing frameworks such as JUnit and TestNG. The platform also has a REST API which makes it easy to integrate with other tools in your development process - even custom tools you have created.How can Kiwi TCMS improve your development?Kiwi TCMS can improve your development process in multiple ways. It provides an easy-to-use web interface for managing test cases, plans, and runs. This means that you can access it from anywhere, whether you are at your development computer or not. Management can see reports from wherever they are, and developers can see that their code is working to plan.Kiwi TCMS plugins make it easy to collect automation results for popular testing frameworks such as JUnit and TestNG. The platform's REST API makes it easy to integrate with other tools in your development process. If you have internal corporate tools, including reporting tools, you can develop your own plugins and API interfaces to extend the functionality into your existing workflow.How can Kiwi TCMS be deployed?Kiwi TCMS can be deployed in a number of ways. It is written in Python and can be run on any platform that supports Python. The development and management team provides pre-built virtual machines for those who want to use the system in the cloud. Additionally, the test suite can be deployed using Docker containers.Because the system is open source, there is no cost to use Kiwi TCMS. You can find the code on GitHub. If you are looking for assistance in setting up the system, or you don't want to self-host, you can sign up for support and hosting plans instead.If you want to contribute to the project, you can do so through GitHub as well. The development team welcomes contributions and is always looking for ways to improve the system.SummaryKiwi TCMS is available right now in free and paid versions. To learn more about the system, try out the full demo, or begin your journey, head over to the company's website or GitHub.Sponsored by: Get $5 to protect your credit card information online with Privacy. Amazon Prime gives you more than just free shipping. Get free music, TV shows, movies, videogames and more.

Compile Podcast / پادکست کامپایل
JUnit 5 Tutorial معرفی

Compile Podcast / پادکست کامپایل

Play Episode Listen Later Jan 29, 2022 41:51


آدرس Tutorial در یوتوب https://www.youtube.com/playlist?list=PLT--3zJy_gmksbzNQfkko4iW2C6poku4d در این اپیزود چکیده ای از آموزش Junit5 که به شکل ویدیویی آپلود شده را گذاشتم با این ایده که اگر به نظرتون جالب اومد کاملتر اون را دنبال کنید

airhacks.fm podcast with adam bien
Serverless Java on AWS

airhacks.fm podcast with adam bien

Play Episode Listen Later Dec 10, 2021 63:31


An airhacks.fm conversation with Mark Sailes (@MarkSailes3) about: the BBC micro computer with a cassette, the PRINT 10, 386, 486 and a Pentium with an internet connection, learning Apache, using Mandrake Linux at university, a first web page - a huge experience, PHP, MySQL and "we don't need transactions", the fantastic phpMyAdmin, using Java, C++ and Python at the university, the great JavaDoc, Eclipse and NetBeans, the great Java collection JavaDoc, migrating from java.util.Vector to java.util.List, working as backend junior Java developer, from junior over senior to team lead, 3% improvement with 97% rewrite, working for AWS, "Essentialism: The Disciplined Pursuit of Less" book, the WebLogic build engineer, pre pooling EJBs, Hey Enterprise EJB Developers Now Is The Time To Go Serverless, Lambda with API Gateway is a transition to Event Driven Architectures, Using AWS Lambda with an Application Load Balancer, cloud native, event driven architectures with AWS Lambda and Java, testable, asynchronous AWS Lambda, the serverless Kafka on AWS, archive and replay with Amazon Event Bridge, fast cold starts with AWS Lambda, milliseconds invocations with AWS Lambda, testing asynchronous AWS Lambda with JUnit, the limitations of mocking, AWS Cloud Development Kit (CDK) and AWS SAM CLI, swapping out Lambdas with SAM, describing AWS infrastructure with CDK, no YAML deployments with CDK, shareable infrastructure with compilable Java code, AWS CDK constructs--reusable cloud pieces Mark Sailes on twitter: @MarkSailes3, Mark's blog: mark-sailes.medium.com

The Bike Shed
315: Emotions Are A Pendulum

The Bike Shed

Play Episode Listen Later Nov 9, 2021 41:23


Steph talks about starting a new project and identifying "focused" tests while Chris shares his latest strategy for managing flaky tests. They also ponder the squishy "it depends" side of software and respond to a listener question about testing all commits in a pull request. This episode is brought to you by ScoutAPM (https://scoutapm.com/bikeshed). Give Scout a try for free today and Scout will donate $5 to the open source project of your choice when you deploy. rspec-retry (https://github.com/NoRedInk/rspec-retry) Cassidy Williams - It Depends - GitHub Universe 2021 (https://www.youtube.com/watch?v=aMWh2uLO9OM) Say No To More Process (https://thoughtbot.com/blog/say-no-to-more-process-say-yes-to-trust) StandardRB (https://github.com/testdouble/standard) Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: CHRIS: My new computer is due on the fourth. I'm so close. STEPH: On the fourth? CHRIS: On the fourth. STEPH: That's so exciting. CHRIS: And I'm very excited. But no, I don't want to upgrade any software on this computer anymore. Never again shall I update a piece of software on this computer. STEPH: [laughs] CHRIS: This is its final state. And then I will take its soul and move it into the new computer, and we'll go from there. [chuckles] STEPH: Take its soul. [laughs] CHRIS: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we learn along the way. So, Steph, what's new in your world? STEPH: Hey, Chris. Let's see. It's been kind of a busy week. It's been a busy family week. Utah, my dog, hasn't been feeling well as you know because you and I have chatted off-mic about that a bit. So he is still recovering from something, I don't know what. He's still on most days his normal captain chaos self, but then other days, he's not feeling well. So I'm just keeping a close eye on him. And then I also got some other family illnesses going on. So it has been a busy family week for sure. On the more technical project side, I am wrapping up my current project. So I have one more week, and then I will shift into a new project, which I'm very excited about. And you and I have chatted about this several times. So there's always just that interesting phase where you're trying to wrap up and hand things off and then accomplish last-minute wishlist items for a project before then you start with a new one. So I am currently in that phase. CHRIS: How long were you on this project for? STEPH: It'll be a total of I think eight months. CHRIS: Eight months, that's healthy. That's a bunch. It's always interesting to be on a project for that long but then not longer. There were plenty of three and four-month projects that I did. And you can definitely get a large body of work done. You can look back at it and proudly stare at the code that you have written. But that length of time is always interesting to me because you end up really...for me, when I've had projects that went that long but then not longer, I always found that to be an interesting breaking point. How are you feeling moving on from it? Are you ready for something new? Are you sad to be moving on? Do you feel attached to things? STEPH: It's always a mix. I'm definitely attached to the team, and then there are always lots of things that I'd still love to work on with that team. But then, I am also excited to start something new. That's why I love this role of consulting because then I get to hop around and see new projects and challenges and work with new people. I'm thinking seven to eight months might be a sweet spot for me in terms of the length of a project. Because I find that first month with a project, I'm really still ramping up, I'm getting comfortable, I'm getting in the groove, and I'm contributing within a short amount of time. But I still feel like that first month; I'm getting really comfortable with this new environment that I'm in. And so then I have that first month. And then, at six months, I have more of heads-down time. And I get to really focus and work with a team. And then there's that transition period, and it's nice to know when that's coming up for several weeks, so then I have a couple of weeks to then start working on that transition phase. So eight months might be perfect because then it's like a month for onboarding, ramping up, getting comfortable. And then six months of focus, and then another month of just focusing on what needs to be transitioned so then I can transition off the team. CHRIS: All right. Well, now we've defined it - eight months is the perfect length of a project. STEPH: That's one of the things I like about the Boost team is because we typically have longer engagements. So that was one of the reasons when we were splitting up the teams in thoughtbot that I chose the Boost team because I was like, yeah, I like the six-month-plus project. Speaking of that wishlist, there are little things that I've wanted to make improvements on but haven't really had time to do. There's one that's currently on my mind that I figured I'd share with you in case you have thoughts on it. But I am a big proponent of using the RSpec focus filter for when running tests. So that way, I can just prefix a context it block or describe block with F, and then RSpec I can just run all the tests. But RSpec will only run the tests that I've prefixed with that F focus command., and I love it. But we are running into some challenges with it because right now, there's nothing that catches that in a pull request. So if you commit that focus filter on some of your tests, and then that gets pushed up, if someone doesn't notice it while reviewing your pull request, then that gets merged into main. And all of the tests are still green, but it's only a subset of the tests that are actually running. And so it's been on my mind that I'd love something that's going to notice that, that's going to catch it, something that is not just us humans doing our best but something that's automated that's going to notice it for us. And I have some thoughts. But I'm curious, have you run into something like this? Do you have a way that you avoid things like that from sneaking into the main branch? CHRIS: Interestingly, I have not run into this particular problem with RSpec, and that's because of the way that I run RSpec tests. I almost never use the focus functionality where you actually change the code file to say, instead of it, it is now fit to focus that it. I tend to lean into the functionality where RSpec you can pass it the line number just say, file: and then line number. And RSpec will automatically figure out which either spec or context block or entire file. And also, I have Vim stuff that allows me to do that very easily from the file. It's very rare that I would want to run more than one file. So basically, with that, I have all of the flexibility I need. And it doesn't require any changes to the file. So that's almost always how I'm working in that mode. I really love that. And it makes me so sad when I go to JavaScript test runners because they don't have that. That said, I've definitely felt a very similar thing with ESLint and ESLint yelling at me for having a console.log. And I'm like, ESLint, I'm working here. I got to debug some stuff, so if you could just calm down for a minute. And what I would like is a differentiation between these are checks that should only run in CI but definitely need to run in CI. And so I think an equivalent would be there's probably a RuboCop rule that says disallow fit or disallow any of the focus versions for RSpec. But I only want those to run in CI. And this has been a pain point that I felt a bunch of times. And it's never been painful enough that I put in the effort to fix it. But I really dislike particularly that version of I'm in my editor, and I almost always want there to be no warnings within the editor. I love that TypeScript or ESLint, or other things can run within the editor and tell me what's going on. But I want them to be contextually aware. And that's the dream I've yet to get there. STEPH: I like the idea of ESLint having a work mode where you're like, back off, I am in work mode right now. [chuckles] I understand that I won't commit this. CHRIS: I'm working here. [laughter] STEPH: And I like the idea of a RuboCop. So that's where my mind went initially is like, well, maybe there's a custom cop, or maybe there's an existing one, and I just haven't noticed it yet. But so I'm adding a rule that says, hey, if you do see an fcontext, fdescribe, ffit, something like that, please fail. Please let us know, so we don't merge this in. So that's on my wishlist, not my to-don't list. That one is on my to-do list. CHRIS: I'm also intrigued, though, because the particular failure mode that you're describing is you take what is an entire spec suite, and instead, you focus down to one context block within a given file. So previously, there were 700 specs that ran, and now there are 12. And that's actually something that I would love for Circle or whatever platform you're running your tests on to be like, hey, just as a note, you had been slowly creeping up and had hit a high watermark of roughly 700 specs. And then today, we're down to 12. So either you did some aggressive grooming, or something's wrong. But a heuristic analysis of like, I know sometimes people delete specs, and that's a thing that's okay but probably not this many. So maybe something went wrong there. STEPH: I feel like we're turning CI into this friend at the bar that's like, "Hey, you've had a couple of drinks. I just wanted to check in with you to make sure that you're good." [laughs] CHRIS: Yes. STEPH: "You've had 100 tests that were running and now only 50. Hey, friend, how are you? What's going on?" CHRIS: "This doesn't sound like you. You're normally a little more level-headed." [laughs] And that's the CI that is my friend that keeps me honest. It's like, "Wait, you promised never to overspend anymore, and yet you're overspending." I'm like, "Thank you, CI. You're right; I did say I want the test to pass." STEPH: [laughs] I love it. I'll keep you posted if I figure something out; if I either turn CI into that friend, that lets me know when my behavior has changed in a concerning way, and an intervention is needed. Or, more likely, I will see if there's a RuboCop or some other process that I can apply that will check for this, which I imagine will be fast. I mean, we're very mindful about ensuring our test suite doesn't slow down as we're running it. But I'm just thinking about this out loud. If we add that additional cop, I imagine that will be fast. So I don't think that's too much of an overhead to add to our CI process. CHRIS: If you've already got RuboCop in there, I'm guessing the incremental cost of one additional cop is very small. But yeah, it is interesting. That general thing of I want CI to go fast; I definitely feel that feel. And we're slowly creeping up on the project I'm working on. I think we're at about somewhere between five to six minutes, but we've gotten there pretty quickly where not that long ago; it was only three minutes. We're adding a lot of features specs, and so they are definitely accruing slowdowns in our CI. And they're worth it; I think, because they're so valuable. And they test the whole integration of everything, but it's a thing that I'm very closely watching. And I have a long list of things that I might pursue when I decide it's time for CI to get a haircut, as it were. STEPH: I have a very hot tip for a way to speed up your test, and that is to check if any of your tests have a very long sleep in them. That came up recently [chuckles] this week where someone was working in a test and found some relic that had been added a while back that then wasn't caught. And I think it was a sleep 30. And they were like, "Hey, I just sped up our test by 30 seconds." I was like, ooh, we should grep now to see if there's anything else like that. [laughs] CHRIS: Oh, I love the sentence we should grep now. [laughter] The correct response to this is to grep immediately. I thought you were going to go with the pro tip of you can just focus down to one context block. And then the specs will run so much faster because you're ignoring most of them, but we don't want to do that. The sleep, though, that's a pro tip. And that does feel like a thing that there could be a cop for, like, never sleep more than...frankly, let's try not to sleep at all but also, add a sleep in our specs. We can sleep in life; it's important, but anyway. [chuckles] STEPH: [laughs] That was the second hot tip, and you got it. CHRIS: Lots of hot tips. Well, I'm going to put this in the category of good idea, terrible idea. I won't call it a hot tip. It's a thing we're trying. So much as we have tried to build a spec suite that is consistent and deterministic and tells us only the truth, feature specs, even in our best efforts, still end up flaking from time to time. We'll have feature specs that fail, and then eventually, on a subsequent rerun, they will pass. And I am of the mindset that A, we should try and look into those and see if there is a real cause to it. But sometimes, just the machinery of feature specs, there's so much going on there. We've got the additional overhead of we're running it within a JavaScript context. There's just so much there that...let me say what I did, and then we can talk more about the context. So there's a gem called RSpec::Retry. It comes from the wonderful folks over at NoRedInk, a well-known Elm shop for anyone out there in the Elm world. But RSpec::Retry does basically what it says in the name. If the spec fails, you can annotate specs. In our case, we've only enabled this for the feature specs. And you can tell it to retry, and you can say, "Retry up to this many times," and et cetera, et cetera. So I have enabled this for our feature specs. And I've only enabled it on CI. That's an important distinction. This does not run locally. So if you run a feature spec and it fails locally, that's a good chance for us to intervene and look at whether or not there's some flakiness there. But on CI, I particularly don't want the case where we have a pull request, everything's great, and we merge that pull request, and then the subsequent rebuild, which again, as a note, I would rather that Circle not rebuild it because we've already built that one. But that is another topic that I have talked about in the past, and we'll probably talk about it again in the future. But setting that aside, Circle will rebuild on the main branch when we merge in, and sometimes we'll see failures there. And that's where it's most painful. Like, this is now the deploy queue. This is trying to get this out into whatever environment we're deploying to. And it is very sad when that fails. And I have to go in and manually say, hey, rebuild. I know that this works because it just worked in the pull request, and it's the same commit hash. So I know deterministically for reasons that this should work. And then it does work on a rebuild. So we introduced RSpec::Retry. We have wrapped it around our feature specs. And so now I believe we have three possible retries. So if it fails once, it'll try it again, and then it'll try it a third time. So far, we've seen each time that it has had to step in; it will pass on the subsequent run. But I don't know; there was some very gentle pushback or concerns; let's call them when I introduced this pull request from another developer on the team, saying, "I don't know, though, I feel like this is something that we should solve at the root layer. The failures are a symptom of flaky tests, or inconsistency or et cetera, and so I'd rather not do this." And I said, "Yeah, I know. But I'm going to merge it," and then I merged it. We had a better conversation about that. I didn't just broadly overrule. But I said, "I get it, but I don't see the obvious place to shore this up. I don't see where we're doing weird inconsistent things in our code. This is just, I think, inherent complexity of feature specs." So I did it, but yeah, good idea, terrible idea. What do you think, Steph? Maybe terrible is too strong of a word. Good idea, mediocre idea. STEPH: I like the original branding. I like the good idea, terrible idea. Although you're right, that terrible is a very strong branding. So I am biased right now, so I'm going to lead in answering your question by stating that because our current project has that problem as well where we have these flaky tests. And it's one of those that, yes, we need to look at them. And we have fixed a large number of them, but there are still more of them. And it becomes a question of are we actually doing something wrong here that then we need to fix? Or, like you said, is it just the nature of these features-specs? Some of them are going to occasionally fail. What reasonable improvements can we make to address this at the root cause? I'm interested enough that I haven't heard of RSpec::Retry that I want to check it out because when you add that, you annotate a test. When a test fails, does it run the entire build, or will it rerun just that test? Do you happen to know? CHRIS: Just the test. So it's configured as in a round block on the feature specs. And so you tell it like, for any feature spec, it's like config.include for feature specs RSpec::Retry or whatever. So it's just going to rerun the one feature spec that failed when and if that happens. So it's very, very precise as well in that sense where when we have a failure merging into the main branch, I have to rebuild the whole thing. So that's five or six minutes plus whatever latency for me to notice it, et cetera, whereas this is two more seconds in our CI runtime. So that's great. But again, the question is, am I hiding? Am I dealing with the symptoms and not the root cause, et cetera? STEPH: Is there a report that's provided at the end that does show these are the tests that failed and we had to rerun them? CHRIS: I believe no-ish. You can configure it to output, but it's just going to be outputting to standard out, I believe. So along with the sea of green dots, you'll see had to retry this one. So it is visible, but it's not aggregated. And the particular thing is there's the JUnit reporter that we're using. So the XML common format for this is how long our tests took to run, and these ones passed and failed. So Circle, as a particular example, has platform-level insights for that kind of stuff. And they can tell you these are your tests that fail most commonly. These are the tests that take the longest run, et cetera. I would love to get it integrated into that such that retried and then surface this to Circle. Circle could then surface it to us. But right now, I don't believe that's happening. So it is truly I will not see it unless I actively go search for it. To be truly honest, I'm probably not doing that. STEPH: Yeah, that's a good, fair, honest answer. You mentioned earlier that if you want a test to retry, you have to annotate the test. Does that mean that you get to highlight specific tests that you're marking those to say, "Hey, I know that these are flaky. I'm okay with that. Please retry them." Or does it apply to all of them? CHRIS: I think there are different ways that you can configure it. You could go the granular route of we know this is a flaky spec, so we're going to only put the retry logic around it. And that would be a normal RSpec annotation sort of tagging the spec, I think, is the terminology there. But we've configured it globally for all feature specs. So in a spec support file, we just say config.include Rspec::Retry where type is a feature. And so every feature spec now has the possibility to retry. If they pass on the first pass, which is the hope most of the time, then they will not be tried. But if they don't, if they fail, then they'll be retried up to three times or up to two additional times, I think is the total. STEPH: Okay, cool. That's helpful. So then I think I have my answer. I really think it's a good idea to automate retrying tests that we have identified that are flaky. We've tried to address the root, and our resolution was this is fine. This happens sometimes. We don't have a great way to improve this, and we want to keep the test. So we're going to highlight that this test we want to retry. And then I'm going to say it's not a great idea to turn it on for all of them just because then I have that same fear about you're now hiding any flaky tests that get introduced into the system. And nobody reasonably is going to go and read through to see which tests are going to get retried, so that part makes me nervous. CHRIS: I like it. I think it's a balanced and reasonable set of good and terrible idea. Ooh, it's perfect. I don't think we've had a balanced answer on that yet. STEPH: I don't think so. CHRIS: This is a new outcome for this segment. I agree. Ideally, in my mind, it would be getting into that XML format, the output from the tests, so that we now have this artifact, we can see which ones are flaky and eventually apply effort there. What you're saying feels totally right of we should be more particular and granular. But at the same time, the failure mode and the thing that I'm trying, I want to keep deploys going. And I only want to stop deploys if something's really broken. And if a spec retries, then I'm fine with it is where I've landed, particularly because we haven't had any real solutions where there was anything weird in our code. Like, there's just flakiness sometimes. As I say it, I feel like I'm just giving up. [laughs] And I can hear this tone of stuff's just hard sometimes, and so I've taken the easy way out. And I guess that's where I'm at right now. But I think what you're saying is a good, balanced answer here. I like it. I don't know if I'm going to do anything about it, but...[laughter] STEPH: Well, going back to when I was saying that I'm biased, our team is feeling this pain because we have flaky tests. And we're creating tickets, and we're trying to do all the right things. We create a ticket. We have that. So it's public. So people know it's been acknowledged. If someone's working on it, we let the team know; hey, I'm working on this. So we're not duplicating efforts. And so, we are trying to address all of them. But then some of them don't feel like a great investment of our time trying to improve. So that's what I really do like about the RSpec::Retry is then you can still have a resolution. Because it's either right now your resolution is to fix it or to change the code, so then maybe you can test it in a different way. There's not really a good medium step there. And so the retry feels like an additional good outcome to add to your tool bag to say, hey, I've triaged this, and this feels reasonable that we want to retry this. But then there's also that concern of we don't want to hide all of these flaky tests from ourselves in case we have done it and there is an opportunity for us to improve it. So I think that's what I do really like about it because right now, for us, when a test fails, we have to rerun the entire build, and that's painful. So if tests are taking about 20 minutes right now, then one spec fails, and then you have to wait another 20 minutes. CHRIS: I would have turned this on years ago with a 20-minute build time. [chuckles] STEPH: [laughs] Yeah, you're not wrong. But also, I didn't actually know about RSpec::Retry until today. So that may be something that we introduce into our application or something that I bring up to the team to see if it's something that we want to add. But it is interesting that initial sort of ooh kind of feeling that the team will give you introducing because it feels bad. It feels wrong to be like, hey, we're just going to let these flaky tests live on, and we're going to automate retrying them to at least speed us up. And it's just a very interesting conversation around where we want to invest our time and between the risk and pay off. And I had a similar experience this week where I had that conversation, but this one was more with myself where I was working through a particular issue where we have a state in the application where something weird was done in the past that led us to a weird state. And so someone raised a very good question where it's like, well, if what you're saying is technically an impossible state, we should make it impossible, like at the database layer. And I love that phrase. And yet, there was a part of me that was like, yes, but also doing that is not a trivial investment. And we're here because of a very weird thing that happened before. It felt one of those interesting, like, do we want to pursue the more aggressive, like, let's make this impossible for the future? Or do we want to address it for now and see if it comes back up, and then we can invest more time in it? And I had a hard time walking myself through that because my initial response was, well, yeah, totally, we should make it impossible. But then I walked through all the steps that it would take to make that happen, and it was not very trivial. And so it was one of those; it felt like the change that we ended up with was still an improvement. It was going to prevent users from seeing an error. It was still going to communicate that this state is an odd state for the application to be in. But it didn't go as far as to then add in all of the safety measures. And I felt good about it. But I had to convince myself to feel good about it. CHRIS: What you're describing there, the whole thought sequence, really feels like the encapsulation of it depends. And that being part of the journey of learning how to do software development and what it means. And you actually shared a wonderful video with me yesterday, and it was Cassidy Williams at GitHub Universe. And it was her talking to her younger self, and just it depends, and it was so true. So we will include a link to that in the show note because that was a wonderful thing for you to share. And it really does encapsulate this thing. And from the outside, before I started doing software development, I'm like, it's cool. I'm going to learn how to sling code and fix the stuff and hack, and it'll be great, and obvious, and correct, and knowable. And now I'm like, oh man, squishy nonsense. That's all it is. STEPH: [laughs] CHRIS: Fun squishy, and I like it. It's so good. But it depends. Exactly that one where you're like, I know that there's a way to get to correctness here but is it worth the effort? And looping back to...I'm surprised at the stance that I've taken where I'm just like, yeah, I'm putting in RSpec::Retry. This feels like the right thing. I feel good about this decision. And so I've tried to poke at it a tiny bit. And I think what matters to me deeply in a list of priorities is number one correctness. I care deeply that our system behaves correctly as intended and that we are able to verify that. I want to know if the system is not behaving correctly. And that's what we've talked about, like, if the test suite is green, I want to be able to deploy. I want to feel confident in that. Flaky specs exist in this interesting space where if there is a real underlying issue, if we've architected our system in a way that causes this flakiness and that a user may ever experience that, then that is a broken system. That is an incorrect system, and I want to resolve that. But that's not the case with what we're experiencing. We're happy with the architecture of our system. And when we're resolving it, we're not even really resolving them. We're just rerunning manually at this point. We're just like, oh, that spec flaked. And there's nothing to do here because sometimes that just happens. So we're re-running manually. And so my belief is if I see all green, if the specs all pass, I know that I can deploy to production. And so if occasionally a spec is going to flake and retrying it will make it pass (and I know that pass doesn't mean oh, this time it happened to pass; it's that is the correct outcome) and we have a false negative before, then I'm happy to instrument the system in a way that hides that from me because, at this point, it does feel like noise. I'm not doing anything else with the failures when we were looking at them more pointedly. I'm not resolving those flaky specs. There are no changes that we've made to the underlying system. And they don't represent a failure mode or an incorrectness that an end-user might see. So I honestly want to paper over and hide it from myself. And that's why I've chosen this. But you can see I need to defend my actions here because I feel weird. I feel a little off about this. But as I talk through it, that is the hierarchy. I care about correctness. And then, the next thing I care about is maintaining the deployment pipeline. I want that to be as quick and as efficient as possible. And I've talked a bunch about explorations into the world of observability and trying to figure out how to do continuous deployment because I think that really encourages overall better engineering outcomes. And so first is correctness. Second is velocity. And flaky specs impact velocity heavily, but they don't actually impact correctness in the particular mode that we're experiencing them here. They definitely can. But in this case, as I look at the code, I'm like, nah, that was just noise in the system. That was just too much complexity stacked up in trying to run a feature spec that simulates a browser and a user clicking in JavaScript and all this stuff and the things. But again, [laughs] here I am. I am very defensive about this apparently. STEPH: Well, I can certainly relate because I was defending my answer to myself earlier. And it is really interesting what you're pointing out. I like how you appreciate correctness and then velocity, that those are the two things that you're going after. And flaky tests often don't highlight an incorrect system. It is highlighting that maybe our code or our tests are not as performant as we would like them to be, but the behavior is correct. So I think that's a really important thing to recognize. The part where I get squishy is where we have encountered on this project some flaky tests that did highlight that we had incorrect behavior, and there's only been maybe one or two. It was rare that it happened, but it at least has happened once or twice where it highlighted something to us that when tests were run...I think there's a whole lot of context. I won't get into it. But essentially, when tests were being run in a particular way that made them look like a flaky test, it was actually telling us something truthful about the system, that something was behaving in a way that we didn't want it to behave. So that's why I still like that triage that you have to go through. But I also agree that if you're trying to get out at a deploy, you don't want to have to deal with flaky tests. There's a time to eat your vegetables, and I don't know if it's when you've got a deploy that needs to go out. That might not be the right time to be like, oh, we've got a flaky test. We should really address this. It's like, yes; you should note to yourself, hey, have a couple of vegetables tomorrow, make a ticket, and address that flaky test but not right now. That's not the time. So I think you've struck a good balance. But I also do like the idea of annotating specific tests instead of just retrying all of them, so you don't hide anything from yourself. CHRIS: Yeah. And now that I'm saying it and now that I'm circling back around, what I'm saying is true of everything we've done so far. But it is possible that now this new mode that the system behaves in where it will essentially hide flaky specs on CI means that any new flaky regressions, as it were, will be hidden from us. And thus far, almost all or I think all of the flakiness that we've seen has basically been related to timeouts. So a different way to solve this would potentially be to up the Capybara wait time. So there are occasionally times where the system's churning through, and the various layers of the feature specs just take a little bit longer. And so they miss...I forget what it is, but it's like two seconds right now or something like that. And I can just bump that up and say it's 10 seconds. And that's a mode that if eventually, the system ends in the state that we want, I'm happy to wait a little longer to see that, and that's fine. But there are...to name some of the ways that flaky tests can actually highlight truly incorrect things; race conditions are a pretty common one where this behaves fine most of the time. But if the background job happens to succeed before the subsequent request happens, then you'll go to the page. That's a thing that a real user may experience, and in fact, it might even be more likely in production because production has differential performance characteristics on your background jobs versus your actual application. And so that's the sort of thing that would definitely be worth keeping in mind. Additionally, if there are order issues within your spec suite if the randomize...I think actually RSpec::Retry wouldn't fix this, though, because it's going to retry within the same order. So that's a case that I think would be still highlighted. It would fail three times and then move on. But those we should definitely deal with. That's a test-related thing. But the first one, race conditions, that's totally a thing. They come up all the time. And I think I've potentially hidden that from myself now. And so, I might need to lock back what I said earlier because I feel like it's been true thus far that that has not been the failure mode, but it could be moving forward. And so I really want to find out if we got flaky specs. I don't know; I feel like I've said enough about this. So I'm going to stop saying anything new. [laughs] Do you have any other thoughts on this topic? STEPH: Our emotions are a pendulum. We swing hard one way, and then we have to wait till we come back and settle in the middle. But there's that initial passion play where you're really frustrated by something, and then you swing, and you settle back towards something that's a little more neutral. CHRIS: I don't trust anyone who pretends like their opinions never change. It doesn't feel like a good way to be. STEPH: Oh, I hope that...Do people say that? I hope that's not true. I hope we are all changing our opinions as we get more information. CHRIS: Me too. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. CHRIS: Well, shifting only ever so slightly because it turns out it's a very related question, but we have a listener question. As always, thank you so much to everyone who sends in listener questions. We really appreciate them. And today's question comes from Mikhail, and he writes in, "Regarding the discussion in Episode 311 on requiring commits merged to be tested, I have a question on how you view multi commit PRs. Do you think all the commits in a PR should be tested or only the last one? If you test all commits in a PR, do you have any good tips on setups for that? Would you want all commits to pass all tests? For one, it helps a lot when using Git bisect. It is also a question of keeping the history clean and understandable. As a background on the project I currently work on, we have the opinion that all commits should be tested and working. We have now decided on single commit PRs only since this is the only way that we can currently get the setup reasonably on our CI. I would like to sometimes make PRs with more than one commit since I want to make commits as small as possible. In order to do that, we would have to find a way to make sure all commits in the PR are tested. There seems to be some hacky ways to accomplish this, but there is not much talk about it. Also, we are strict in requiring a linear history in all our projects. Kind regards, Mikhail." So, Steph, what do you think? STEPH: I remember reading this question when it came in. And I have an experience this week that is relevant to this mainly because I had seen this question, and I was thinking about it. And off the cuff, I haven't really thought about this. I haven't been very concerned about ensuring every single commit passes because I want to ensure that, ultimately, the final commit that I have is going in. But I also rarely have more than one commit in a PR. So that's often my default mode. There are a couple of times that I'll have two, maybe three commits, but I think that's pretty rare for me. I'll typically have just one commit. So I haven't thought about this heavily. And it's not something that frankly I've been concerned about or that I've run into issues with. From their perspective about using Git bisect, I could see how that could be troublesome, like if you're looking at a commit and you realize there's a particular commit that's already merged and that fails. The other area that I could think of where this could be problematic is if you're trying to roll back to a specific commit. And if you accidentally roll back to a commit that is technically broken, but you didn't know that because it was not the final commit as was getting tested on CI, that could happen. I haven't seen that happen. I haven't experienced it. So while that does seem like a legitimate concern, it's also one that I frankly just haven't had. But because I read this question from this person earlier this week, I actually thought about it when I was crafting a PR that had several commits in it, which is kind of unusual for me since I'm usually one or two commits in a PR. But for this one, I had several because we use standard RB in our project to handle all the formatting. And right now, we have one of those standard to-do files because we added it to the project. But there are still a number of manual fixes that need to be applied. So we just have this list of files that still need to be formatted. And as someone touches that file, we will format it, and then we'll take it out of that to-do list. So then standard RB will include it as it's linting all of our files. And I decided to do that for all of our spec files. Because I was like, well, this was the safest chunk of files to format that will require the least amount of review from folks. So I just want to address all of them in one go. But I separated the more interesting changes into different commits just to make others aware of, like, hey, this is something standard RB wants. And it was interesting enough that I thought I would point it out. So my first commit removed all the files from that to-do list, but then my other commits are the ones that made actual changes to some of those files that needed to be corrected. So technically, one or two of my middle commits didn't pass the standard RB linting. But because CI was only running that final commit, it didn't notice that. And I thought about this question, and so I intentionally went back and made sure each of those commits were correct at that point in time. And I feel good about that. But I still don't feel the need to add more process around ensuring each commit is going to be green. I think I would lean more in favor of let's keep our PR small to one or two commits. But I don't know; it's something I haven't really run into. It's an interesting question. How about you? What are your experiences, or what are your thoughts on this, Chris? CHRIS: When this question came through, I thought it was such an interesting example of considering the cost of process changes. And to once again reference one of our favorite blog posts by German Velasco, the Say No to More Process post, which we will, of course, link in the show notes. This is such a great example of there was likely a small amount of pain that was felt at one point where someone tried to run git bisect. They ran into a troublesome commit, and they were like, oh no, this happened. We need to add processes, add automation, add control to make sure this never happens again. Personally, I run git bisect very rarely. When I do, it's always a heroic moment just to get it started and to even know which is the good and which is the bad. It's always a thing anyway. So it would be sad if I ran into one of these commits. But I think this is a pretty rare outcome. I think in the particular case that you're talking about, there's probably a way to actually tease that apart. I think it sounds like you fixed those commits knowing this, maybe because you just put it in your head. But the idea that the process that this team is working on has been changed such that they only now allow single commit PRs feels like too much process in my mind. I think I'm probably 80%, maybe 90% of the time; it's only a single commit in a PR for me. But occasionally, I really value having the ability to break it out into discrete steps, like these are all logically grouped in one changeset that I want to send through. But they're discrete steps that I want to break apart so that the team can more easily review it so that we have granular separation, and I can highlight this as a reference. That's often something that I'll do is I want this commit to standalone because I want it to be referenced later on. I don't want to just fold it into the broader context in which it happened, but it's pretty rare. And so to say that we can't do that feels like we're adding process where it may not be worth it, where the cost of that process change is too high relative to the value that we're getting, which is speculatively being able to run git bisect and not hit something problematic in the future. There's also the more purist, dogmatic view of well, all commits should be passing, of course. Yeah, I totally agree with that. But what's it worth to you? How much are you willing to spend to achieve that goal? I care deeply about the correctness of my system but only the current correctness. I don't care about historical correctness as much, some. I think I'm diminishing this more than I mean to. But really back to that core question of yes, this thing has value, but is it worth the cost that we have to pay in terms of process, in terms of automation and maintenance of that automation over time, et cetera or whatever the outcome is? Is it worth that cost? And in this case, for me, this would not be worth the cost. And I would not want to adopt a workflow that says we can only ever have single commit PRs, or all commits must be run on CI or any of those variants. STEPH: This is an interesting situation where I very much agree with everything you're saying. But I actually feel like what Mikhail wants in this world; I want it too. I think it's correct in the way that I do want all the commits to pass, and I do want to know that. And I think since I do fall into the default, like you mentioned, 80%, 90% of my PRs are one commit. I just already have that. And the fact that they're enforcing that with their team is interesting. And I'm trying to think through why that feels cumbersome to enforce that. And I'm with you where I'll maybe have a refactor commit or something that goes before. And it's like, well, what's wrong with splitting that out into a separate PR? What's the pain point of that? And I think the pain point is the fact that one, you have two PRs that are stacked on each other. So you have the first one that you need to get reviewed, and then the second one; there's that bit of having to hop between the two if there's some shared context that someone can't just easily review in one pull request. But then there's also, as we just mentioned, there's CI that has to run. And so now it's running on both of them, even though maybe that's a good thing because it's running on both commits. I like the idea that every commit is tested, and every commit is green. But I actually feel like it's some of our other processes that make it cumbersome and hard to get there. And if CI did run on every commit, I think it would be ideal, but then we are increasing our CI time by running it on every commit. And then it comes down to essentially what you said, what's the risk? So if we do merge in a commit that doesn't work or has something that's failing about it but then the next commit after that fixes it, what's the risk that we're going to roll back to that one specific commit that was broken? If that's a high risk for you and your team, then adding this process is probably the really wise thing to do because you want to make sure the app doesn't go down for users. That's incredibly important. If that's not a high risk for your team, then I wouldn't add the process. CHRIS: Yeah, I totally agree. And to clarify my stances, for me, this change, this process change would not be worth the trade-off. I love the idea. I love the goal of it. But it is not worth the process change, and that's partly because I haven't particularly felt the pain. CI is not an inexhaustible resource I have learned. I'm actually somewhat proud our very small team that is working on the project that we're working on; we just recently ran out of our CI budget, and Circle was like, "Hey, we got to charge you more." And I was like, "Cool, do that." But it was like, there is cost both in terms of the time, clock time, and each PR running and all of those. We have to consider all of these different things. And hopefully, we did a useful job of framing the conversation, because as always, it depends, but it depends on what. And in this case, there's a good outcome that we want to get to, but there's an associated cost. And for any individual team, how you weigh the positive of the outcome versus how you weigh the cost will alter the decision that you make. But that's I think, critically, the thing that we have to consider. I've also noticed I've seen this conversation play out within teams where one individual may acutely feel the pain, and therefore they're anchored in that side. And the cost is irrelevant to them because they're like, I feel this pain so acutely, but other people on the team aren't working in that part of the codebase or aren't dealing with bug triage in the same way that that other developer is. And so, even within a team, there may be different levels of how you measure that. And being able to have meaningful conversations around that and productively come to a group decision and own that and move forward with that is the hard work but the important work that we have to do. STEPH: Yeah. I think that's a great summary; it depends. On that note, shall we wrap up? CHRIS: Let's wrap up. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeee! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

Simplemente Venenosa
RECORDANDO JENNI RIVERA | STORY TIME

Simplemente Venenosa

Play Episode Listen Later Jul 2, 2021 17:50


Recordando la numero uno en su cumpleaños. Disclaimer: We make no warranty to the accuracy or correctness of our content. Opinions are freely expressed and the only intention of this podcast is to entertain and create a dialogue amongst it's listeners.Mis redes: http://Instagram.com/DamaVenenosahttp://Twitter.com/DamaVenenosa http://Facebook.com/DamaVenenosaOficialhttp://YouTube.com/DamaVenenosa

DAMA VENENOSA
RECORDANDO JENNI RIVERA | STORY TIME

DAMA VENENOSA

Play Episode Listen Later Jul 2, 2021 17:50


Recordando la numero uno en su cumpleaños. Disclaimer: We make no warranty to the accuracy or correctness of our content. Opinions are freely expressed and the only intention of this podcast is to entertain and create a dialogue amongst it's listeners.Mis redes: http://Instagram.com/DamaVenenosahttp://Twitter.com/DamaVenenosa http://Facebook.com/DamaVenenosaOficialhttp://YouTube.com/DamaVenenosa

DAMA VENENOSA
RECORDANDO JENNI RIVERA | STORY TIME

DAMA VENENOSA

Play Episode Listen Later Jul 2, 2021 17:50


Recordando la numero uno en su cumpleaños. Disclaimer: We make no warranty to the accuracy or correctness of our content. Opinions are freely expressed and the only intention of this podcast is to entertain and create a dialogue amongst it's listeners. Mis redes: http://Instagram.com/DamaVenenosa http://Twitter.com/DamaVenenosa http://Facebook.com/DamaVenenosaOficial http://YouTube.com/DamaVenenosa

airhacks.fm podcast with adam bien
(fake) reactive programming, project loom, chunked IO

airhacks.fm podcast with adam bien

Play Episode Listen Later Apr 22, 2021 83:23


An airhacks.fm conversation with Lenny Primak (@lprimak) about: no aviation, applying at google and amazon, the online coding assessment at amazon, the lost test at amazon, starting as test engineer at Payara, TestContainers, JUnit 5, project loom impact on reactive programming, the killer use cases for reactive programming, callbacks, promises and async-await in JavaScript, Glassfish grizzly was the origin web server, doubling the work with nonblocking IO, chunking the IO to the size of the buffer, trying to patch the hazelcast, payara enterprise and payara community, hazelcast could be used as zookeeper, payara insight, payara cloud, sun grid engine was the first cloud, ThinWARs vs. Helidon's and quarkus SkimmedJARs, thanks to Bauke Luitsen Scholtz for accepting the JSF contributions, Jakarta EE proxies are serializable, readResolve serializable method, the lombok contributors, the payara contributors, lombok's delombok, apache tapestry, Lenny Primak on twitter: @lprimak

airhacks.fm podcast with adam bien
Writing Boring Software: From WebLogic over GlassFish to Quarkus

airhacks.fm podcast with adam bien

Play Episode Listen Later Apr 8, 2021 85:49


An airhacks.fm conversation with Antonio Goncalves (@agoncal) about: C 64 with tapes, writing thousands of Basic lines, the Power Cartridge and assembly, the "10 GOTO 10" trick, line renumbering with Power Cartridge, the arkanoid game, form BASIC to assembly, Peeks and Pokes, Pascal, prolog to modulog transpiler, programming chips in C++ for a telekom company, discovering Java and WebLogic, the amazing minitel, minitel was huge in France, building Java Server Pages on WebLogic in 1999, joining WebLogic in London, digging wholes to find water, Java EE 5 book with Glassfish in 2007, Java EE 7 book in 2013, talking at Devoxx about JUnit 4, moving from WebLogic to GlassFish, Java EE is the Esperanto of runtimes and servers, Marc Fleury at Paris JUG, the unknown student from Iran, paying back by reviewing a book, self-publishing books, the Java EE 8 drama, the politics in Java EE 8 were stronger than technical innovation, the Java Injection spec, JSR-330, CDI drama, the road to quarkus, Grame Rocher mitronaut talk, from Spring over Micronaut to Quarkus, Practicing Quarkus and Understanding Quarkus books, Quarkus hot reload is impressive, GraalVM with Quarkus is just -Pnative, at start everything is already optimized with Quarkus, Helidon is an interesting alternative to Quarkus, Helidon's CLI is useful, WebLogic customers get support for Helidon, Antonio Goncalves on twitter: @agoncal, Antonio's github account https://github.com/agoncal and blog antoniogoncalves.org

TechAndLadies
TechAndLadies - Podcast 01x08 - Un café de Java con Irene Díaz

TechAndLadies

Play Episode Listen Later Apr 1, 2021 33:31


En este episodio grabado con el apoyo de StreamYard hablamos sobre Java, sus frameworks, su curva de aprendizaje y consejos para iniciarse. Para ello, contamos con Irene Díaz Valenzuela, que nos comparte su experiencia personal trabajando con este lenguaje. Cómo senior que ha pasado por varias empresas en las que ha tenido que adaptarse, nos ha contado su opinión sobre Spring, Scala y Kotlin, entre otros. Para quienes empiezan, Irene nos recomienda baeldung y la documentación de Java-Oracle, y para las personas que se aventuran a testear Java sus imprescindibles son: JUnit, cucumber y mockito. ¿Te has peleado con Java ya? ¿Lo tienes en tus objetivos?¡Cuéntanoslo a través de nuestro Twitter (@techandladies)!

airhacks.fm podcast with adam bien
How EJBGen, TestNG and ...Android happened

airhacks.fm podcast with adam bien

Play Episode Listen Later Mar 31, 2021 63:58


An airhacks.fm conversation with Cedric Beust (@cbeust) about: Apple II was the first love, building an Apple II emulator, the C64 domination, starting with Basic, then switching to 6502 assembly, cracking games for fun, learning Pascal, starting to study Math because Computer Science was not available, working as administrator at school, switching to Amiga 1000 then Amiga 2000, joining the demo scene, the impact of remote applications as PhD, working with C++ and CORBA, C++ language involvement, meeting Bjaerne Stroustroup, evolving a language is hard, starting with Java 1996, joining Sun Labs in 1998, implementing "persona" at Sun Labs with Java, Sun was not the right place to work with Java, applying at Imprise to work on Borland Application Server, meeting the WebLogic developers at a party, joining WebLogic, C++ was hard to work with, Java was a fresh air, the EJB container team was 10 developers, writing EJBGen, working on Java annotations, the relation between EJBGen and xdoclet, the Attribute Oriented Programming with XDoclet, the metadata should be in the near of Java code, joining the JCP to create Java Annotations, starting at Google to work with Adwords, motivated by shortcomings of JUnit, TestNG was created in 2004, WebLogic vs. WebSphere, tests should depend on each other, TestNG was an exploration of a modern framework, Google's mobile team were 5 people in 2005, starting a mobile Gmail project at Google on J2ME, Java Mobile, Google Android's acquisition, working with Andy Rubin to develop a Java-based OS, a team of 5 developers started to build Android, Android was strategic for Larry Page, users should be in power-this was the spirit of Android, Android development was "Top Secret", leaving Google to join a startup, building internal tools for supervision at LinkedIn, creating a calendar assistant at a startup, starting as "firefighter" at Yahoo in Java space, starting okta, okta is an "universal" SSO, implementing SSO across companies at okta, okta's backend is written in Java Cedric Beust on twitter: @cbeust, Cedric's blog

Ubuntu Security Podcast
Episode 104

Ubuntu Security Podcast

Play Episode Listen Later Feb 19, 2021 14:18


This week we take a look at a long-awaited update of Thunderbird in Ubuntu 20.04LTS, plus security updates for Open vSwitch, JUnit 4, PostSRSd, GNOME Autoar and more.

Illegal Argument
Don't Tweet Non Truths

Illegal Argument

Play Episode Listen Later Nov 30, 2020 114:43


OpenJDK · GitHub Plans for optimal performance: why CircleCI is changing our pricing model - CircleCI Standalone Nashorn is coming for Java 15+ Jbang Property-based Testing in Java: Jqwik - a JUnit 5 Test Engine - My Not So Private Tech Life ABNF for TLDS tldlabel = ALPHA *61(ldh) ld ldh = ld / "-" ld = ALPHA / DIGIT ALPHA = %x41-5A / %x61-7A ; A-Z / a-z DIGIT = %x30-39 ; 0-9 HUMBLE BOOK BUNDLE: JAVA PROGRAMMING & MORE BY O'REILLY GitHub - baidu/braft: An industrial-grade C++ implementation of RAFT consensus algorithm based on brpc, widely used inside Baidu to build highly-available distributed systems. Leaving OCaml The Birth of Unix with Brian Kernighan - CoRecursive Podcast Rust Programming Rust: Structuring and handling errors in 2020 - nick.groenen.me rust-blog/too-many-brainfuck-compilers.md at master · pretzelhammer/rust-blog · GitHub Using #[derive(Error)] Announcing .NET 5.0 | .NET Blog F# 5 | Visual Studio Toolbox | Channel 9 Nix Package Management Nixology - YouTube A tour of Nix Install Nix on macOS Catalina](https://link.medium.com/EAuytTg7s7) Modern IDEs are magic. Why are so many coders still using Vim and Emacs? - Stack Overflow Blog

A Bootiful Podcast
Spring Test Framework lead Sam Brannen

A Bootiful Podcast

Play Episode Listen Later Oct 29, 2020 71:45


Hi Spring fans! This week, [Josh Long (@starbuxman)](http://twitter.com/starbuxman) talks to legendary Spring Test Framework lead and JUnit contributor [Sam Brannen (@sam_brannen)](http://twitter.com/sam_brannen)

BadGeek
Les Cast Codeurs n°240 du 17/10/20 - LCC 240 - Fuseaux horaires : la fontaine à bogues (87min)

BadGeek

Play Episode Listen Later Oct 17, 2020 87:54


Cet épisode consacre Java le langage et sa version 15 en particulier. On discute aussi l'impact des mémoires fautives sur la JVM, le réactif, les frameworks backends et bien d'autres choses. Et nous avons deux crowdcasts! ???? Enregistré le 13 octobre 2020 Téléchargement de l'épisode [LesCastCodeurs-Episode-240.mp3](https://traffic.libsyn.com/lescastcodeurs/LesCastCodeurs-Episode-240.mp3) ## News ### Langages [Java 15](https://twitter.com/java/status/1305874025231650817) (plus de détails par [Remi Forax](https://groups.google.com/d/msgid/lescastcodeurs/63086933.1723204.1600182952350.JavaMail.zimbra%40u-pem.fr) ). * unicode 13, * hidden classes (non-discoverable implementation details of the framework eg classes générées au runtime, déchargement aggressif), * TreeMap amelioration de perf, * check de revocation pour le jar signer, * sha-3 support, * nashorn enlevé, * les lock biaisés sont désactivés/dépréciés, * ZGC prêt pour la prod, * amélioration d’ergo de G1 (on en avait parlé), [Azul couvre JDK 15](https://www.azul.com/jdk-15-release-64-new-features-and-apis/), avec un focus sur les Sealed classes, les Records, les Hidden classes. [Des bugs de timezone qui vous pouvez rencontrer dans vos applications](https://blog.davidojeda.dev/4-time-zone-bugs-i-ran-into). * Faire tourner son code sous une vieille version de JRE/JDK qui n’est pas à jour au niveau des données de TimeZone. * Le serveur est peut-être dans votre TimeZone à vous, ou bien sur UTC, alors attention ! * En stockant des dates en bases de données, il faut aussi prendre en compte la TimeZone configurée dans la DB ! * Parfois aussi côté affichage, on peut oublier de parser les dates avec les infos de TimeZone, ou côté client la TimeZone ou l’heure d’été peut être mal configurée... Enregistrements d’Oracle Developer Live Java * * [Les crashs de JVM sont souvent des erreurs mémoire.](https://shipilev.net/jvm/test-your-memory/) Pourquoi ? * La JVM on lui donne souvent beaucoup de mémoire. * Les métadonnées utilisées par le GC sont importantes. * Ces métadonnées sont accédées entièrement lors d’un full GC. Romain Manni-Bucau explique [comment configurer Java Util Logging avec un formateur sur une ligne](https://rmannibucau.metawerx.net/post/jul-production-ready-pattern-with-simpleformatter), pour que ce soit plus sympa dans un contexte prod Docker [Un rapport sur l’écosystème Groovy](https://e.printstacktrace.blog/groovy-ecosystem-usage-report-2020/) : * l’outil le plus utilisé : Gradle (pour le build). * librairie la plus populaire : Spock (pour les tests). * framework le plus populaire : Grails. * beaucoup d’utilisation de Groovy comme langage de script, d’automatisation, mais aussi comme langage général principal et comme Domain-Specific Language. ### Librairies [Sortie de JUnit 5.7](https://twitter.com/junitteam/status/1305140909223411712) * Isolated tests. * New Enabled/DisabledIf execution conditions. * Custom disabled reasons. * New MethodOrderer.DisplayName. * New DisplayNameGenerator.Simple. * Java Flight Recorder support. * Improved EngineTestKit. [Quarkus vs Spring Boot dans des environnements de plus en plus contraints mais quel est le choix d’équipe au final ?](https://medium.com/swlh/hail-to-the-new-king-or-not-295090a96bbf). [Sortie de Micronaut 2.1](https://micronaut.io/blog/2020-10-05-micronaut-21-released.html). * nouveau plugin Gradle qui facilite le build d’image natives Graal et de containers Docker en couches. * support des fonctions Oracle Cloud. * support amélioré de Google Cloud Platform, avec le logging structuré de Stackdriver, * et le support natif du messaging avec Google Cloud Pub/Sub. * Plus d’infos dans la doc dans la section des nouveautés : https://docs.micronaut.io/2.1.0/guide/index.html#whatsNew Sortie de [Quarkus 1.8](https://quarkus.io/blog/quarkus-1-8-0-final-released/) (et on n'avait pas annoncé 1.7) * multiple persistence unit * Micrometer * intégration avec jbang * GraalVM 20.2 * MongoDB pour Kotlin * Elasticsearch REST client (1.7) * Client vert.x Redis (1.7) * Hibernate Envers (1.7) * DB2 (1.7) ### Infrastructure [NVidia rachète ARM à SoftBank pou 40Md$](https://www.engadget.com/nvidia-arm-acquisition-softbank-000846113.html), ça va faire un sacré concurrent à Intel et AMD. () [Retour d’experience sur l’utilisation de Kubernetes.](https://medium.com/better-programming/3-years-of-kubernetes-in-production-heres-what-we-learned-44e77e1749c8) Java et ses problèmes (spécialement 8, toujours grosse conso mémoire), mettre à jour Kubernetes (ils créent des nouveaux clusters), corriger un index au démarrage vs liveness probe, exposer des IPs externes et la limite de connections parallèles. [Project Natick: Datacenter mis sous l’eau en 2018 par Microsoft](https://www.theverge.com/2020/9/14/21436746/microsoft-project-natick-data-center-server-underwater-cooling-reliability). * 864 servers, 27.6 petabytes de stockage, 117 pieds au fond de l’ocean (Ecosse). * Aux dires de Microsoft, c’est un succès. [Google est neutre en carbone, et a même racheté sa dette carbone depuis sa création](https://blog.google/outreach-initiatives/sustainability/our-third-decade-climate-action-realizing-carbon-free-future/). * (1) We were the first major company to become carbon neutral in 2007. → Google a été “neutre” par compensation, chaque année depuis 2007, notamment en achetant autant d’énergie renouvelable que d’énergie carbonée. * (2) We were the first major company to match our energy use with 100 percent renewable energy in 2017... We’re eliminating our entire carbon legacy, effective today. → Depuis 2017, Google a en plus acheté autant d’énergie renouvelable l’année N que d’énergie carbonée consommée l’année N+1. En Septembre 2020, Google a fini fini par être totalement “neutre” en ayant consommé autant d’énergie renouvelable que d’énergie carbonée depuis la création de Google. * (3) We are the first major company to make a commitment to operate on 24/7 carbon-free energy in all our data centers and campuses worldwide... by 2030. → Dans 10 ans, Google espère ne plus consommer d’énergie carbonée du tout. ### Data [CrunchyDB offre un PostgresSQL as a service qui est cross clouds](https://info.crunchydata.com/blog/announcing-crunchy-bridge-a-modern-postgres-as-a-service). ### Outillage [Github sort la version 1.0 de son outil en ligne de commande pour gérer ses projets Github](https://github.blog/2020-09-17-github-cli-1-0-is-now-available/). ### Architecture Un vieux truc, [le memo de Bezos sur la service oriented company](https://gist.github.com/chitchcock/1281611). [Jonas Boner annonce les 8 principes réactifs](https://principles.reactive.foundation/). * I. Stay Responsive : Always respond in a timely manner. * II. Accept Uncertainty : Build reliability despite unreliable foundations. * III. Embrace Failure : Expect things to go wrong and design for resilience. * IV. Assert Autonomy : Design components that act independently and interact collaboratively. * V. Tailor Consistency : Individualize consistency per component to balance availability and performance. * VI. Decouple Time : Process asynchronously to avoid coordination and waiting. * VII. Decouple Space : Create flexibility by embracing the network. * VIII. Handle Dynamics : Continuously adapt to varying demand and resources. ### Méthodologies [Les recommendations de Red Hat aux Red Hatters sur la contribution à l'Open Source](https://www.redhat.com/en/about/open-source/participation-guidelines) ### Sécurité [Jenkins vient avec pleins de fix de sécurité](https://groups.google.com/g/jenkinsci-advisories) comme tous les mois (voire 2 fois par mois). ### Loi, société et organisation [Est-ce que le Hacktoberfest de Digital Ocean fait mal à l’Open Source ?](https://blog.domenic.me/hacktoberfest/) * plein de gens contribuent des commits à deux balles, juste pour gagner un t-shirt, et c’est les mainteneurs de projets open source qui sont obligés de se taper tous les pull requests comme des messages de spam * [Update de DigitalOcean to reduce spam](https://hacktoberfest.digitalocean.com/hacktoberfest-update) * [Comment une personne (un YouTuber avec 600K followers a pourri le système)](https://joel.net/how-one-guy-ruined-hacktoberfest2020-drama) [Bye bye Stop Covid qui va devenir Alerte Covid.](https://www.europe1.fr/societe/information-europe-1-la-nouvelle-appli-stop-covid-sappellera-alerte-covid-3997914) L’application ne règle en rien les problèmes en terme d’efficacité et de vie privée déjà décriés dans le passé mais veut rajouter des usages en ciblant notamment l’utilisation dans les bars et restaurants et en y diminuant la durée d’exposition utilisée comme indicateur de contact. Elle devrait aussi pouvoir vous notifier d’alerte locale (le gouvernement dans votre poche). ## Outils de l'épisode Un écran 49" 32:9 ## Rubrique débutant Si vous débutez en Docker, il est important de [comprendre les différences entre les instructions RUN, CMD, et ENTRYPOINT de vos Dockerfiles](https://www.baeldung.com/devops/dockerfile-run-cmd-entrypoint). * RUN est exécuté quand on build l’image. * CMD est l’instruction par défaut lancée au démarrage de votre image. * ENTRYPOINT permet plus de flexibilité que CMD en supportant les paramètres en entrée. ## Conférences [Codeurs En Seine 2020 - Edition en ligne](https://twitter.com/codeursenseine/status/1301064575786405888?s=21) * En novembre, les mardis à 19h et les jeudis à 21h * 45 minutes de conférences + environ 15 minutes de questions * En ligne sur Twitch + rediffusion Youtube Crowdcast de Emmanuel Demey sur les conférences à venir dans le Nord. * Cloud Nord le 19/10 en remote : * Web Stories le 5/2 en présentiel (pour le moment) * Le Devfest Lille le 11/6 en présentiel ## Nous contacter Soutenez Les Cast Codeurs sur Patreon [Faire un crowdcast ou une crowdquestion](https://lescastcodeurs.com/crowdcasting/) Contactez-nous via twitter sur le groupe Google ou sur le site web

Les Cast Codeurs Podcast
LCC 232 - Versions version Sloubi

Les Cast Codeurs Podcast

Play Episode Listen Later May 18, 2020 76:29


Dans cet épisode, Audrey et Emmanuel se retrouvent en tête à tête pour discuter du nouveau drama à venir dans l’écosystème Java (Leyden), de l’actualité des librairies, des annonces de GitHub, de bonnes pratiques en matière d’outils et d’architecture et bien évidemment de la prochaine appli tendance : Stop Covid. Enregistré le 7 mai 2020 Téléchargement de l’épisode LesCastCodeurs-Episode–232.mp3 News Langages Projet Leyden: images statiques pour Java mais pas GraalVM native image Améliorer les performance de G1 “out of the box” Librairies Lucene a 20 ans Quarkus 1.4 est sorti Comment utiliser Mockito avec Quarkus Micrometer sort la 1.5 une LTS Spring rattrape son retard sur OpenJDK dans le schéma de version Micronaut 2.0 M3 Infrastructure Les bonnes pratiques pour écrire un fichier Dockerfile pour les développeurs ICANN rejette la vente de .org a une boite privée Cloud Les release notes de Google Cloud sur une seule page Web Cloudflare implement le draft d’HTTP/3 et compare Node.js v14 Data Les choses que j’aurai aimé que plus de développeurs connaissent sur les bases de données Redis 6 est sorti Outillage Test Containers 1.14 GitHub est gratuit pour les équipes si on downgrade sur le gratuit, on perd quoi https://help.github.com/en/github/getting-started-with-github/faq-about-changes-to-githubs-plans#if-i-downgrade-from-github-team-or-a-legacy-plan-to-github-free-what-features-will-i-lose Récap des annonces GitHub Satellite 2020 Spock 2.0 vs JUnit 5.0 Controler Kubernetes de Google Spreadsheet Gradle 6.4 Architecture Les microservices, trop fort pour toi - opinion Méthodologies COVID vs l’open space Sécurité Loi, société et organisation Apple et Google offrent un framework de notification d’exposition (au COVID–19) Stop-Covid La France se met dans une impasse face à Apple avec StopCovid StopCovid ou encore ? StopCovid : anonymat et autorités Conférences Devoxx UK du 24 au 26 Août 2020 AlpesCraft reportée à l’automne DevOps D-Day le 9 octobre 2020 - Le CfP est ouvert jusqu’au 15 juin DevFest Nantes les 15 et 16 octobre 2020 - Le CfP est ouvert jusqu’au 31 mai FrontSide le 15 octobre 2020 Volcamp.io les 15 et 16 octobre 2020 DevFest Toulouse les 5 et 6 novembre 2020 FlowCon les 9 et 10 novembre 2020 Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/

BadGeek
Les Cast Codeurs n°231 du 18/05/20 - LCC 232 - Versions version Sloubi (76min)

BadGeek

Play Episode Listen Later May 17, 2020 76:14


Dans cet épisode, Audrey et Emmanuel se retrouvent en tête à tête pour discuter du nouveau drama à venir dans l'écosystème Java (Leyden), de l'actualité des librairies, des annonces de GitHub, de bonnes pratiques en matière d'outils et d'architecture et bien évidemment de la prochaine appli tendance : Stop Covid. Enregistré le 7 mai 2020 Téléchargement de l'épisode [LesCastCodeurs-Episode-232.mp3](https://traffic.libsyn.com/lescastcodeurs/LesCastCodeurs-Episode-232.mp3) ## News ### Langages [Projet Leyden: images statiques pour Java mais pas GraalVM native image](https://twitter.com/mreinhold/status/1254812999145017351) [Améliorer les performance de G1 "out of the box"](https://kstefanj.github.io/2020/04/16/g1-ootb-performance.html) ### Librairies [Lucene a 20 ans](https://www.elastic.co/fr/celebrating-lucene) [Quarkus 1.4 est sorti](https://quarkus.io/blog/quarkus-1-4-final-released/) [Comment utiliser Mockito avec Quarkus](https://quarkus.io/blog/mocking/) [Micrometer sort la 1.5 une LTS](https://github.com/micrometer-metrics/micrometer/releases/tag/v1.5.0) [Spring rattrape son retard sur OpenJDK dans le schéma de version](https://spring.io/blog/2020/04/30/updates-to-spring-versions) [Micronaut 2.0 M3](https://objectcomputing.com/news/2020/04/30/micronaut-20-m3-big-boost-serverless-and-micronaut-launch) ### Infrastructure [Les bonnes pratiques pour écrire un fichier Dockerfile pour les développeurs](https://www.docker.com/blog/speed-up-your-development-flow-with-these-dockerfile-best-practices/) [ICANN rejette la vente de .org a une boite privée](https://twitter.com/eff/status/1256053946289774594?s=21) ### Cloud [Les release notes de Google Cloud sur une seule page](https://cloud.google.com/release-notes) ### Web [Cloudflare implement le draft d'HTTP/3 et compare](https://blog.cloudflare.com/http-3-vs-http-2/) [Node.js v14](https://medium.com/@nodejs/node-js-version-14-available-now-8170d384567e) ### Data [Les choses que j'aurai aimé que plus de développeurs connaissent sur les bases de données](https://medium.com/@rakyll/things-i-wished-more-developers-knew-about-databases-2d0178464f78) [Redis 6 est sorti](https://redislabs.com/press/redis-6-0-released-and-now-available-in-redis-enterprise-cloud/) ### Outillage [Test Containers 1.14](https://github.com/testcontainers/testcontainers-java/releases/tag/1.14.0) [GitHub est gratuit pour les équipes](https://github.blog/2020-04-14-github-is-now-free-for-teams/) * si on downgrade sur le gratuit, on perd quoi https://help.github.com/en/github/getting-started-with-github/faq-about-changes-to-githubs-plans#if-i-downgrade-from-github-team-or-a-legacy-plan-to-github-free-what-features-will-i-lose [Récap des annonces GitHub Satellite 2020](https://github.blog/2020-05-06-new-from-satellite-2020-github-codespaces-github-discussions-securing-code-in-private-repositories-and-more/?utm_campaign=1588779509&utm_medium=social&utm_source=facebook,linkedin,twitter&utm_content=1588779509) [Spock 2.0 vs JUnit 5.0](https://blog.solidsoft.pl/2020/04/15/spock-vs-junit-5-the-ultimate-feature-comparison/) [Controler Kubernetes de Google Spreadsheet](https://github.com/learnk8s/xlskubectl) [Gradle 6.4](https://docs.gradle.org/6.4/release-notes.html) ### Architecture [Les microservices, trop fort pour toi - opinion](https://blog.octo.com/les-architectures-microservices-cest-un-peu-trop-fort-pour-toi-mon-ptit-gars/) ### Méthodologies [COVID vs l'open space](https://www.inc.com/geoffrey-james/the-open-plan-office-is-dead.html) ### Sécurité ### Loi, société et organisation [Apple et Google offrent un framework de notification d'exposition (au COVID-19)](https://blog.google/inside-google/company-announcements/apple-and-google-partner-covid-19-contact-tracing-technology) Stop-Covid * [La France se met dans une impasse face à Apple avec StopCovid](https://www.numerama.com/tech/619446-stopcovid-vs-apple-pourquoi-la-france-sest-mise-dans-une-impasse.html) * [StopCovid ou encore ?](https://medium.com/@cedric.o/stopcovid-ou-encore-b5794d99bb12) * [StopCovid : anonymat et autorités](https://quentin.dufour.io/blog/2020-04-20/stopcovid/) ## Conférences [Devoxx UK du 24 au 26 Août 2020](https://www.devoxx.co.uk/) [AlpesCraft reportée à l'automne](https://www.alpescraft.fr/) [DevOps D-Day le 9 octobre 2020](http://2019.devops-dday.com/) - [Le CfP est ouvert jusqu'au 15 juin](https://conference-hall.io/public/event/SoOGmgWEUqrFysQUbM8g) [DevFest Nantes les 15 et 16 octobre 2020](https://devfest.gdgnantes.com/) - [Le CfP est ouvert jusqu'au 31 mai](https://conference-hall.io/public/event/tcsfaCc4Gg0sSSxdJZKO) [FrontSide le 15 octobre 2020](https://frontsideconf.fr/) [Volcamp.io les 15 et 16 octobre 2020](https://www.volcamp.io/) [DevFest Toulouse les 5 et 6 novembre 2020](https://devfesttoulouse.fr/) [FlowCon les 9 et 10 novembre 2020](https://www.weezevent.com/flowcon-2020) ## Nous contacter Soutenez Les Cast Codeurs sur Patreon [Faire un crowdcast ou une crowdquestion](https://lescastcodeurs.com/crowdcasting/) Contactez-nous via twitter sur le groupe Google ou sur le site web

Herr Mies will's wissen
HMww35 - Ich packe meinen Testtoolkoffer mit Sandra Parsick

Herr Mies will's wissen

Play Episode Listen Later Apr 27, 2020 85:51


Nach einer „kurzen" Kreativpause meldet sich der Podcast zurück und ich freue mich Sandra Parsick (Twitter) erneut im Podcast begrüßen zu dürfen. Am Anfang sprechen wir über, wie soll es in dieser Zeit anders sein, Corona und remote work. Wer, wie ich, immer mal wieder an Pausen erinnert werden möchte, sollte sich mal Stretchly ansehen. Beim Thema Hackathon sprechen wir auch kurz über Jugend hackt. Wenn ihr hier mehr erfahren wollt, solltet ihr Euch die passende Folge dazu anhören. Beim Thema "Testing" (mit Java) legen wir mit JUnit 5 los und Sandra erklärt uns direkt mal, wie man von JUnit 4 zu JUnit 5 migrieren kann (und was dabei schief gehen kann). Im Anschluss sprechen wir darüber, was JUnit 5 uns neues bietet und welche Features Sandra besonders gefallen. Natürlich gibt es im Java Umfeld noch weitere Bibliothek, die Euch bei der Arbeit unterstützen können. Wir sprechen über AssertJ JavaFaker EqualsVerifier Spock und natürlich Testcontainers (Folge zu Testcontainers) Das Git Repository zu Sandras Talk findet ihr auf GitHub unter https://github.com/sparsick/test-tool-talk. Cross-Promotion: In der erwähnten Schepp&Mies Folge spreche ich mit Christian Schäfer u.a. über Corona und Homeoffice. Buchempfehlung der Folge: Growing Object-Oriented Software With Tests von Steve Freeman und Nat Pryce (Amazon Aufnahmedatum: 21.04.2020

airhacks.fm podcast with adam bien
From JMS Unit Tests to OpenLiberty

airhacks.fm podcast with adam bien

Play Episode Listen Later Apr 11, 2020 65:05


An airhacks.fm conversation with Alasdair Nottingham (@nottycode) about: bbc micro, basic programming with archimedes computers by acorn, playing simcity 2000 on 286, brother as valorant creative director at riot games, enjoying programming - except prolog, functional C, starting with Java and JDK 1.1.8 in 1999, Java is great because it is lacking pointers, built-in data structures in Java, forgetting about public static void main, writing Unit Tests without JUnit, deleting "red" tests, writing unit tests for the IBM MQ JMS client, joining the IBM WebSphere team, writing product samples, extending a pearl wiki, running MQ series as a sidecar, developing a Java based JMS solution in WebSphere v6, writing "mediation" for websphere MQ, almost serverless mediators, rebuilding WebSphere on top of OSGi, no worries about code ownership, isolating app server libraries with OSGi, OpenLiberty started in 2010, just enough application server concept, the costs of memory, optimizations vs. developer experience, responsiveness over memory consumption, fashion trends in IT industry, Scala's XML support, coding architects are valuable, OpenLiberty was opensourced in 2017, not at IBM, Alasdair Nottingham on twitter: @nottycode

Les Cast Codeurs Podcast
LCC 225 - L'épisode du futur

Les Cast Codeurs Podcast

Play Episode Listen Later Feb 25, 2020 85:27


Dans cet épisode en tête à tête, Emmanuel et Audrey discutent des prévisions pour cette nouvelle année, font la part belle au langage avec l’arrivée du JDK 14 mais parlent aussi middleware, web, outillage, et bien sûr loi, société et organisation. Enregistré le 19 février 2020 Téléchargement de l’épisode LesCastCodeurs-Episode–225.mp3 News Les prévisions d’Adam Bien pour 2020 Langages JDK 14 First Release Candidate Présentation des records Ecrire des Records invariants avec Bean Validation Monitoring d’API Rest avec les évènements du JDK Flight Recorder Est ce que le projet Loom menace les Java Futures ? Visualisation de la gestion de la mémoire dans la JVM (Java, Kotlin, Scala, Groovy, Clojure) Une demi heure pour apprendre Rust Librairies Jukebox : une lib pour créer des builders pour les records JUnit 5.6 Middleware Créer des images Docker avec Spring Boot 2.3.0 M1 Quarkus 1.2.0.Final Quarkus : un outil open-source pour écrire vos applications Java Micronaut 1.3 et Micronaut Data 1.0 GA Infrastructure Kubernetes Bug Bounty Cloud Formation gratuite Google Cloud en ligne Elastic Cloud sur Kubernetes (ECK) 1.0 en GA Web Angular 9 est maintenant disponible, et le projet Ivy aussi Quoi de neuf dans Angular 9.0 ? Quoi de neuf dans Angular 9.0 CLI ? Introducing Firefox and Edge Support in Cypress 4.0 Le nouveau Microsoft Edge est disponible Ionic 5 Outillage Maven est de retour, et il est pas content ! Old GroupIds Alerter : un plugin pour vérifier les couples groupId+artifactId dépréciés Provisio : un plugin pour remplacer Maven assembly MPV : une fonctin BASH pour récupérer la version d’un projet depuis le pom.xml Central 501 HTTPS Required Gradle 6.2 IntelliJ IDEA 2020.1 * JetBrains Mono Loi, société et organisation L’Union Européenne envisage une interdiction temporaire de la reconnaissance faciale Safe City à Marseille : premier recours contre la vidéosurveillance automatisée La CNIL publie ses recommandations très attendues sur le ciblage publicitaire La CNIL publie un guide RGPD pour les développeurs La conservation généralisée et indifférenciée des métadonnées épinglée à la CJUE, avec nuance Coup d’état sur la loi haine Féministes, LGBTI et antiracistes, nous ne voulons pas de la loi Cyberhaine Outils de l’épisode JQ - un commmand line processor pour JSON Comment voir (et supprimer) les données envoyées à Facebook par des sites tiers Rubrique débutant Java-guide : un guide pour apprendre le Java moderne Phishing : comment font les hackers, comment vous protéger Conférences DevFest du Bout du Monde le 28 février Breizhcamp du 25 au 27 mars 2020 Devoxx France du 15 au 17 avril 2020 Serverless Days Paris le 24 avril MiXiT du 29 au 30 avril 2020 GitHub Satellite les 6 et 7 mai RivieraDev du 13 au 15 mai 2020 Devoxx UK du 13 au 15 mai 2020 NewCrafts les 28 et 29 mai 2020 - Le CfP est ouvert jusqu’au 1 mars Best of Web les 4 et 5 juin 2020 - Le CfP est ouvert DevFest Lille le 12 juin 2020 - Le CfP est ouvert jusqu’au 29 février Sunny Tech les 2 et 3 juillet 2020 - Le CfP est ouvert jusqu’au 28 février DevFest Toulouse les 5 et 6 novembre 2020 - Le CfP est ouvert Et encore plus sur Developers Conferences Agenda/List …. Unconferences JChateau du 11 au 15 mars 2020 Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/

BadGeek
Les Cast Codeurs n°224 du 25/02/20 - LCC 225 - L'épisode du futur (86min)

BadGeek

Play Episode Listen Later Feb 24, 2020 86:17


Dans cet épisode en tête à tête, Emmanuel et Audrey discutent des prévisions pour cette nouvelle année, font la part belle au langage avec l'arrivée du JDK 14 mais parlent aussi middleware, web, outillage, et bien sûr loi, société et organisation. Enregistré le 19 février 2020 Téléchargement de l'épisode [LesCastCodeurs-Episode-225.mp3](https://traffic.libsyn.com/lescastcodeurs/LesCastCodeurs-Episode-225.mp3) ## News [Les prévisions d'Adam Bien pour 2020](http://adambien.blog/roller/abien/entry/2020_predictions) ### Langages [JDK 14 First Release Candidate](https://mail.openjdk.java.net/pipermail/jdk-dev/2020-February/003886.html) * [Présentation des records](https://www.infoq.com/articles/java-14-feature-spotlight/) * [Ecrire des Records invariants avec Bean Validation](https://www.morling.dev/blog/enforcing-java-record-invariants-with-bean-validation/) * [Monitoring d'API Rest avec les évènements du JDK Flight Recorder](https://www.morling.dev/blog/rest-api-monitoring-with-custom-jdk-flight-recorder-events/) [Est ce que le projet Loom menace les Java Futures ?](https://blog.softwaremill.com/will-project-loom-obliterate-java-futures-fb1a28508232) [Visualisation de la gestion de la mémoire dans la JVM (Java, Kotlin, Scala, Groovy, Clojure)](https://deepu.tech/memory-management-in-jvm/) [Une demi heure pour apprendre Rust](https://fasterthanli.me/blog/2020/a-half-hour-to-learn-rust/) ### Librairies [Jukebox : une lib pour créer des builders pour les records](https://github.com/javahippie/jukebox) [JUnit 5.6](https://junit.org/junit5/docs/5.6.0/release-notes/) ### Middleware [Créer des images Docker avec Spring Boot 2.3.0 M1](https://spring.io/blog/2020/01/27/creating-docker-images-with-spring-boot-2-3-0-m1) [Quarkus 1.2.0.Final](https://quarkus.io/blog/quarkus-1-2-0-final-released/) * [Quarkus : un outil open-source pour écrire vos applications Java](https://lunatech.fr/2020/01/25/quarkus-java-introduction/) [Micronaut 1.3 et Micronaut Data 1.0 GA](https://objectcomputing.com/news/2020/02/04/micronaut-13-and-micronaut-data-10-ga-released) ### Infrastructure [Kubernetes Bug Bounty](https://kubernetes.io/blog/2020/01/14/kubernetes-bug-bounty-announcement/) ### Cloud [Formation gratuite Google Cloud en ligne](https://www.linkedin.com/posts/didiergirard_cloud-data-serverless-activity-6627818324854091776-kXpq/) [Elastic Cloud sur Kubernetes (ECK) 1.0 en GA](https://www.elastic.co/blog/elastic-cloud-on-kubernetes-ECK-is-now-generally-available?blade=tw&hulk=social) ### Web [Angular 9 est maintenant disponible, et le projet Ivy aussi](https://blog.angular.io/version-9-of-angular-now-available-project-ivy-has-arrived-23c97b63cfa3) * [Quoi de neuf dans Angular 9.0 ?](https://blog.ninja-squad.com/2020/02/07/what-is-new-angular-9.0/) * [Quoi de neuf dans Angular 9.0 CLI ?](https://blog.ninja-squad.com/2020/02/07/angular-cli-9.0/) [Introducing Firefox and Edge Support in Cypress 4.0](https://cypress.io/blog/2020/02/06/introducing-firefox-and-edge-support-in-cypress-4-0/?hss_channel=tw-2774638535) [Le nouveau Microsoft Edge est disponible](https://blogs.windows.com/windowsexperience/2020/01/15/new-year-new-browser-the-new-microsoft-edge-is-out-of-preview-and-now-available-for-download/?FORM=M300UB&OCID=M300UB&wt_mc_id=M300UB) [Ionic 5](https://ionicframework.com/blog/announcing-ionic-5/) ### Outillage Maven est de retour, et il est pas content ! * [Old GroupIds Alerter : un plugin pour vérifier les couples groupId+artifactId dépréciés](https://github.com/jonathanlermitage/oga-maven-plugin) * [Provisio : un plugin pour remplacer Maven assembly](https://github.com/jvanzyl/provisio) * [MPV : une fonctin BASH pour récupérer la version d'un projet depuis le pom.xml](https://github.com/jvanzyl/mpv) * [Central 501 HTTPS Required](https://support.sonatype.com/hc/en-us/articles/360041287334) [Gradle 6.2](https://docs.gradle.org/6.2/release-notes.html) [IntelliJ IDEA 2020.1](https://blog.jetbrains.com/idea/2020/01/intellij-idea-2020-1-eap/) * [JetBrains Mono](https://www.jetbrains.com/lp/mono/) ### Loi, société et organisation [L'Union Européenne envisage une interdiction temporaire de la reconnaissance faciale](https://www.euractiv.com/section/digital/news/leak-commission-considers-facial-recognition-ban-in-ai-white-paper/) * [Safe City à Marseille : premier recours contre la vidéosurveillance automatisée](https://www.laquadrature.net/2020/01/20/safe-city-a-marseille-premier-recours-contre-la-videosurveillance-automatisee-de-lespace-public/) [La CNIL publie ses recommandations très attendues sur le ciblage publicitaire](https://www.lesechos.fr/tech-medias/hightech/la-cnil-publie-ses-recommandations-tres-attendues-sur-le-ciblage-publicitaire-1162582) * [La CNIL publie un guide RGPD pour les développeurs](https://www.cnil.fr/fr/la-cnil-publie-un-guide-rgpd-pour-les-developpeurs) [La conservation généralisée et indifférenciée des métadonnées épinglée à la CJUE, avec nuance](https://www.nextinpact.com/news/108596-la-conservation-generalisee-et-indifferenciee-metadonnees-epinglee-a-cjue-avec-nuance.htm) [Coup d'état sur la loi haine](https://www.laquadrature.net/2020/01/22/coup-detat-sur-la-loi-haine/) * [Féministes, LGBTI et antiracistes, nous ne voulons pas de la loi Cyberhaine](https://www.liberation.fr/debats/2020/01/21/feministes-lgbti-et-antiracistes-nous-ne-voulons-pas-de-la-loi-cyberhaine_1774297) ## Outils de l'épisode [JQ - un commmand line processor pour JSON](https://www.baeldung.com/linux/jq-command-json) [Comment voir (et supprimer) les données envoyées à Facebook par des sites tiers](https://www.lemonde.fr/pixels/article/2020/01/29/activite-en-dehors-de-facebook-comment-voir-et-supprimer-les-donnees-envoyees-a-facebok-par-des-sites-tiers_6027688_4408996.html) ## Rubrique débutant [Java-guide : un guide pour apprendre le Java moderne](https://github.com/forax/java-guide) [Phishing : comment font les hackers, comment vous protéger](https://cyberguerre.numerama.com/2724-phishing-comment-font-les-hackers-comment-vous-proteger.html) ## Conférences [DevFest du Bout du Monde le 28 février](https://devfest.duboutdumonde.bzh/) [Breizhcamp du 25 au 27 mars 2020](https://www.breizhcamp.org/) [Devoxx France du 15 au 17 avril 2020](https://www.devoxx.fr/) [Serverless Days Paris le 24 avril](https://paris.serverlessdays.io/en/) [MiXiT du 29 au 30 avril 2020](https://mixitconf.org/) [GitHub Satellite les 6 et 7 mai](https://githubsatellite.com/) [RivieraDev du 13 au 15 mai 2020](https://rivieradev.fr/) [Devoxx UK du 13 au 15 mai 2020](https://www.devoxx.co.uk/) [NewCrafts les 28 et 29 mai 2020](http://ncrafts.io/) - [Le CfP est ouvert jusqu'au 1 mars](https://sessionize.com/newcrafts-paris-2020/) [Best of Web les 4 et 5 juin 2020](http://bestofweb.paris/) - [Le CfP est ouvert](https://checkout.eventlama.com/#/events/best-of-web-2020/cfp) [DevFest Lille le 12 juin 2020](https://devfest.gdglille.org/) - [Le CfP est ouvert jusqu'au 29 février](https://conference-hall.io/public/event/4o1awYXIRayhu3vmOmiQ) [Sunny Tech les 2 et 3 juillet 2020](https://sunny-tech.io/) - [Le CfP est ouvert jusqu'au 28 février](https://conference-hall.io/public/event/g1Yq1ZsPoPUy8R7C8SXc) [DevFest Toulouse les 5 et 6 novembre 2020](https://devfesttoulouse.fr/) - [Le CfP est ouvert](https://devfesttoulouse.fr/blog/) Et encore plus sur [Developers Conferences Agenda/List](https://github.com/scraly/developers-conferences-agenda/blob/master/README.md) .... ## Unconferences [JChateau du 11 au 15 mars 2020](https://www.jchateau.org/) ## Nous contacter Soutenez Les Cast Codeurs sur Patreon [Faire un crowdcast ou une crowdquestion](https://lescastcodeurs.com/crowdcasting/) Contactez-nous via twitter sur le groupe Google ou sur le site web

Scott Talks Tech
18 – The journey of 1000 miles starts with a single step ...... Unit Testing

Scott Talks Tech

Play Episode Listen Later Jan 12, 2020 9:41


In this episode, I’m going to discuss the lowest level of testing possible by a developer, and that is Unit Testing. I’m going to give a brief description of what it is, what value or benefits that it can bring to the table, when to start it, and some examples of how it can be implemented.

Tech Nuggets and Thoughts
Episode 7: Delivering With Confidence - Unit Testing - Part IV

Tech Nuggets and Thoughts

Play Episode Listen Later Dec 18, 2019 32:35


In this episode we discuss these aspects of unit testing: jUnit, TestNG feature overview Mocha and Chai: bdd and tdd styles Cobertura and Istanbul, nyc Cucumber, Feature Files and verbosity Introducing Cucumber to teams Spock End-to-end testing / integration testing tools: Selenium, Appium End-to-end API testing: Postman Contract Tests: Pact, Spring Cloud Contract Smoke Tests, testing in production and reverting on failure. Mocking Tools: JMockit, Mockito and PowerMock, Wiremock Your acceptance tests are next layers integration tests.

TestTalks | Automation Awesomeness | Helping YOU Succeed with Test Automation

In this episode, find out why jUnit is the gold standard for unit testing Java applications. Author Cătălin Tudose will share his thoughts on JUnit testing, JUnit 5, the Java Test Pyramid and more. Listen to discover all sorts of Junit-Java-testing advice awesomeness.

Les Cast Codeurs Podcast
LCC 219 - En direct de Devoxx Belgium 2019

Les Cast Codeurs Podcast

Play Episode Listen Later Nov 13, 2019 59:35


Episode en direct de Devoxx Belgique où nous vous donnons nos talks préférés. Enregistré le 8 novembre 2019 Téléchargement de l’épisode LesCastCodeurs-Episode–219.mp3 Direct de Devoxx Tous les talks sont disponible sur YouTube. Utilisez la fonction recherche ensuite. Si vous trouvez un talk, ouvrez une pull request sur Le GitHub des cast codeurs pour améliorer ses shownotes et mentionnez @emmanuelbernard. Merci :) Keynotes Audrey Vidéo Venkat Vidéo Security Vidéo Trends Beaucoup de core java: cadence 6 mois, loom GraalVM / Micronaut / Quarkus / Spring Boot Event driven / Kafka AI / ML Microservices K8s et cloud patterns Kotlin Security appliquée (web, microservices) Serverless Ops CI / CD Reactive (co-routines, reactive tx) Peu d’infos sur Peu de front Pas/peu d’android Microprofile (connu) Conferences UI micro frontend Micro FrontEnd new Relic Nerdlet nerdpack Looks like modules in Java Shared dependencies Several artifacts like view, app, overlay, extension points Consistent error and logging Layout management SDK for url state sharing, config et components UI partages Unified GraphQL server between front ends and Microservices backend Sacrificed freedom of teams for better parallel work Feedback : Communication is still key Find the right balance Docker build systems BuildKit API for the docker file directives But needs golang Jib Uses maven envrionment No need for docker daemon, creates the right tarball and push it negative: maven only does not cache maven dependencies not very extensible Buildpacks.io CNCF sandbox Can create different packs Needs a CLI Diabolical developer These Songs Would Make Some Great Code Comments Vidéo Comment réussir ton talk de Chet Aussi l’initiative Young blood du ParisJUG Dev oops JUnit 5 Kotlin Bootiful Kotlin Visitor pattern avec les lambdas De José Paumard Victor sur refactoring pendant trois heures Introversion Cédric Champeau sur sa vie d’introverti Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/  

airhacks.fm podcast with adam bien
Blockchain, Heavy Metal and Testcontainers

airhacks.fm podcast with adam bien

Play Episode Listen Later Oct 28, 2019 65:48


An airhacks.fm conversation with Kevin Wittek (@kiview) about: typing with 3 on a terminal, 486 for playing DOS games, radio controlled cars for fathers, RC car races with transponders, worldcup in beijing, hawaii, las vegas, tamiya, kyosho, professional competition RC cars by Mugen Seiki, playing civilization-like game, switching from PCs to console gaming, starting with Quick Basic programming at highschool, writing text adventures with Quick Basic and huge if-else blocks, advent calendar with Quick Basic, switching from Quick Basic to Java 1.4, a coffee lover without aeropress, aeropress and aerospace technology, aerobie frizbies, teaching polymorphic dispatches at highschool, who cares about object orientation, bluej programming learning environment, the great scratch IDE, manipulating the ASCII characters might not be the future, sometimes it is better to manipulate the Abstract Syntax Tree (AST) directly, writing a ZIP-compressor in Java, studying in Gelsenkirchen-the Java-focussed university, writing Android software for Museums, Museums don't have money, writing fraud detection services for GData, banking trojan detection was really successful, leading the blockchain research group, having a dream job, lazy loading the PhD topic, assessing the non-functional aspects of a blockchain system, why Groovy is a pragmatic language, Groovy started as an ergonomic version of Java, playing e-guitar at a heavy metal band "Iron Kobra", Rush, Deep Purple, Led Zeppelin, and a bit Metallica, one of the best guitar players is Uli Jon Roth from the German Scorpions band, starting to play guitar with 16, starting with TNT from AC/DC, software engineering is like playing blues, the SoCraTes Conference, the JUnit 5 extension for Docker, the beginnings as TestContainers committer, Richard North was the initiator of the TestContainers project, TestContainers started in a blockchain-related project, TestContainers project was written in Java from the beginning, TestContainers started with JUnit 4 integration, the TestContainers project has actually nothing todo with testing, ephemeral container concept is built-in into the testcontainers, the docker container is going to be removed after the JVM exits, ryuk is a side container which watches the actual container, when the JVM stops sending the heartbeat - ryuk will remove the container, GraalVM might replace Go in the sidecontainer, testcontainers gives strong guarantees about readiness, testcontainer ships with multiple probes / wait strategies: log-based wait strategy, port-based wait strategy, docker health-check strategy, testcontainers ships with container communication API, in the case of a database testcontainer will provide a JDBC-URL, testcontainer can is able to start DB on demand by using the JDBC driver, testcontainer also works with remote Docker daemons, testcontainer is using the REST interface to communicate with Docker, the switch from Netty to OkHTTP, testcontainers relies on Docker Java, hardcoding functionality in a project is the right choice at the beginning, testcontainers has to be refactored into two parts, testcontainer's 2.0 goal are distinct APIs for testing and container orchestration, windows support was a challenge, testcontainers supports windows, linux and MacOS, the testcontainers team is using Macs for local development, azure pipelines is used to test windows, Kevin Wittek on twitter: @kiview, on github https://github.com/kiview and Kevin's blog.

Hack-the-Planet Podcast
Episode 010: Elite News

Hack-the-Planet Podcast

Play Episode Listen Later Oct 27, 2019 143:39


Unser Eindruck von SwiftUI und Android Entwicklung, PushOver DDoS und den IPv6 Problemen bei Elite Dangerous... SwiftUI lernen: https://developer.apple.com/tutorials/swiftui/resources ・ Android Studio: https://developer.android.com/studio ・ PushOver DDoS: https://blog.pushover.net/posts/2019/10/october-24-25-ddos-attack ・ DDoS: https://en.wikipedia.org/wiki/Denial-of-service_attack ・ Android API Level: https://source.android.com/setup/start/build-numbers ・ Streamsheets: https://cedalo.com/produkt/ ・ Streamsheets Docker: https://hub.docker.com/r/cedalo/streamsheets-installer ・ Hörer Fabian startet mit Node-Red: https://www.youtube.com/watch?v=KMgIa0l_ukQ ・ Xerox scanners/photocopiers randomly alter numbers in scanned documents: http://www.dkriesel.com/en/blog/2013/0802_xerox-workcentres_are_switching_written_numbers_when_scanning ・ EzControl XS1: http://www.ezcontrol.de/content/view/36/28/ ・ FS20: https://de.wikipedia.org/wiki/Funksysteme_zur_Geb%C3%A4udeautomatisierung ・ ELV MAX: https://de.elv.com/technik-fuer-ihr-zuhause/heizungssteuerung/systemuebersicht-heizkoerperthermostate/max-funk-heizungsregler-system/ ・ ELV MAX Library: https://github.com/bietiekay/MAXSharp ・ SDR Wettersensor: https://www.kompf.de/weather/rtlsdrsensor.html ・ NodeRed: https://nodered.org/ ・ Höhere Gehälter für IT Experten https://www.heise.de/newsticker/meldung/Oeffentlicher-Dienst-Bundestag-beschliesst-Zulagen-und-Praemien-fuer-IT-Experten-4569784.html ・ Ice Lake CPU: https://en.wikipedia.org/wiki/Ice_Lake_(microprocessor) ・ USB-C: https://en.wikipedia.org/wiki/USB-C ・ Quickcharge 3 für Arduino: https://www.schrankmonster.de/2019/09/18/quickcharge-3-qc3-enable-your-arduino-project/ ・ Android Espresso: https://developer.android.com/training/testing/espresso ・ JUnit: https://junit.org/junit5/ ・ WebBrowser UI Testing: https://www.seleniumhq.org/ ・ Appium: http://appium.io/ ・ Visual Studio 2019: https://devblogs.microsoft.com/devops/changes-to-coded-ui-test-in-visual-studio-2019/ ・ Elite: https://en.wikipedia.org/wiki/Elite_(video_game) ・ Elite Dangerous: https://www.elitedangerous.com/ ・ Andreas bei Distant Worlds 2: https://www.hack-the-planet.net/2019/06/02/distant-worlds-2-been-there-seen-it/ ・ Galaxie: Milchstraße: https://de.wikipedia.org/wiki/Milchstra%C3%9Fe ・ Trappist-1 System: https://de.wikipedia.org/wiki/Trappist-1 ・ Elite Dangerous VR: https://www.youtube.com/watch?v=Fa0b2Kd2xhU ・ IPv6 https://de.wikipedia.org/wiki/IPv6 ・ IPv4 https://de.wikipedia.org/wiki/IPv4 ・ Carrier grade NAT https://de.wikipedia.org/wiki/Carrier-grade_NAT ・ NAT64 https://de.wikipedia.org/wiki/NAT64 ・ aText Mac: https://www.trankynam.com/atext/ ・ Autohotkey Windows: https://www.autohotkey.com/ ・

Les Cast Codeurs Podcast
LCC 215 - Nous avons des frustrations parce que nous combattons le changement des choses

Les Cast Codeurs Podcast

Play Episode Listen Later Aug 5, 2019 86:50


Arnaud et Emmanuel bravent les chaleurs pour discuter des tendances Java, des collections immuables (d’où le titre de l’épisode, une citation d’Alan Watts), de sondage de la population de développeurs, d’event storming, de lois et de data structures. Enregistré le 31 juillet 2019 Téléchargement de l’épisode LesCastCodeurs-Episode–215.mp3 News Langages Rapport sur les tendances Java par InfoQ Collections immuables en Java : ni maintenant, ni jamais Yaegi : un nouveau compilateur pour Go Zulu 8 inclut maintenant le support de TLS 1.3, permettant aux applications Java 8 (serveurs, clients, peu importe) de négocier automatiquement TLS 1.3 sans modification du code. Ajoutez simplement -XX:+UseOpenJSSE Sondage L’état des développeurs: sondage JetBrains2019 Langage Java le langage principal pour 34% (JavaScript 40%) mais leseul langage pour 44% de ceux ci OS de dev: Windows un peu en tête mais sinon égal polyglot Apps Backend 60% / front 46%) Mobile 23% data analysis (13%) / ML (7%) ne developpe pas (13%) polyapp OpenSource 56% contribuent à l’open source dont 37% plusieurs fois par an ou plus Tests aucun (16%) Mobile 83% font de l’Android et 59% iOS Frameworks cross-platforms 42: react native, 30 flutter, 29: cordova, 28 Ionic Outils 9% IDE cloud 10% code review 44% issue tracker (Excel sinon?) moi j’ai besoin gestion soirce, issue tracker, ide au minimum) 83% dark theme Fun 33% de chiens, 26% cats, 23% les deux, 17% sans ; 1% autre (alligator?) Code le week end 87% AI replace devs 6% oui completement, 57% partiellement Demographique du sondage 70% employee temps plein, 6% employeir, 6% freelance, 1% retraite La societe 10% opensource 61% produit 47% dev interne taille de l’equipe 2–7: 51% 8–12 21% methodo agile 40% scrum, 11% kanban, 3% XP, 32% programming mother fucker (none) Ecosystème Java Version: 11: 22%, 10 et 9: 13–14%, 8: 83%, Quel app serveur: 66% tomcat, 21% jetty, 5%: WL, WS, Wildfly, JBoss EAP, Glassfish, 23% aucun si aucun, quoi? SB 61%, netty 12% Spark Java 6%, vert.x 4%, undertow 3% embedded 62% , war: 53% Web framework: Spring Boot 56% (ca fait peur, comme Google == internet), Spring MVC 43% build system Maven 70%, gradle 53%, ant 13% latest Java EE 39% Scala versions 2.13: 20% 2.12: 68%, 2/11: 36% sinon 73% utilisent Java 8, 28% java 11 unit test Scalatest 77%, JUnit 26% 10% whitebox macros, 60% n’utilisent pas les macros web framework akka-http: 39% Play 38% Spring 17% libraries Akka 55% Spark 40% build system 71% sbt 39% maven 18% gradle Kotlin target: Android: 66% JVM 57% native 8% JDK 11: 25% 10–9: 11–14% 8: 80% Android: 74% Pie 9 79% 8 Oreo, sous 50% à la 4 KitKat type of app: mobile: 62%, web abckend 41%, libraries 29% 71% pour travail, 69% maison autres langages 86% Java Databases usage MySQL 60%, PostgreSQL 32%, MongoDB 30%, Rediis 27% Oracle dB 16% ??? Frameworks Quarkus 0.19 avec acces MongoDB, Neo4j, AWS DynamoDB et Apache Tika Middleware Elastic Cloud on Kubernetes (ECK) 0.9.0 Alpha 2 Cloud Kubernetes est maintenant disponible sur CloudFoundry Data Micronaut Predator est sorti et renommé Outillage Importer les rapports Jacoco au format XML dans SonarQube Netbeans 11.1, la première release ASF en tant que toplevel project Méthodologies Event Storming, une description Sécurité Jouez avec les adresses IPs Zoom Zero Day NoLimitSecu - Hors Série – Episode 1 – Histoire du droit du numérique Loi, société et organisation Le code source de l’ordinateur de guidage de module lunaire et du module de commande d’Apollon 11 open sourcé sur GitHub Quand GitHub applique la legislation US et bloque brutalement les utilisateurs d’Iran et autres pays sous sanction (Et avec moins d’affectif). Des projets comme Nuxt.js impactés L’Assemblée nationale adopte la loi sur la cyberhaine Facebook écope d’une amende historique de 5 milliards de dollars et repense son fonctionnement Taxe française sur les géants du net : 9 questions pour tout comprendre La France a adopté la “loi Huawei” au grand dam des opérateurs télécoms Handicap : les grandes entreprises vont devoir rendre accessibles leurs sites et applis Qu’est ce qui se passerait si tous vos canaux Slack fuitaient ? Travail en remote : ce qu’il faut savoir avant de se lancer ! En vrac par Tristan Nitot Outils de l’épisode Twitter : cette extension Chrome et Firefox permet de revenir à l’ancienne version Rubrique débutant Les data structures, les objects et un un peu d’énervement sur les ORMs An Object is a set of functions that operate upon implied data elements. A Data Structure is a set of data elements operated upon by implied functions Conférences JugSummerCamp le 13 septembre 2019. DevFest Toulouse le 3 octobre 2019. Neo4j Online Developer Expo and Summit (NODES) le 10 octobre 2019. KOTLIN/EverywhereParis le 19 octobre 2019. DevFest Nantes les 21 et 22 octobre 2019. Voxxed Microservices 21 au 23 octobre 2019. ScalaIO du 29 au 31 octobre a Lyon. Thème programmation fonctionelle. Devoxx Belgique du 4 au 8 novembre 2019 Bdx.io le 15 novembre 2019. DevOps D-Day les 13 et 14 novembre 2019 - Le CfP est ouvert. Codeurs en Seine le 21 novembre 2019 Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/  

Fragmented - Android Developer Podcast
169: Testing and JUnit 5 with Marcel Schnelle

Fragmented - Android Developer Podcast

Play Episode Listen Later Jul 15, 2019 66:30


Marcel Schnelle joins Donn in this episode to talk about how to get your application under test and some steps to go from scared to confident in your testing process. The second half of the show they dive in deep to JUnit 5 and its new features. JUnit 5 is backwards compatible with JUnit 4 and offers a slew of new features and extensibility points which make the framework much more appealing going forward. We're convinced you'll enjoy this episode and leave wanting to get your app under test - even more than it already is. Enjoy.

The Recruiting Animal
Brian Fink, Technical Recruiter

The Recruiting Animal

Play Episode Listen Later Jun 19, 2019 61:00


@TheBrianFink -- LINKEDIN:  With 10+ years of specialized recruiting experience, I've helped a wide range of professionals ranging from entry level candidates (new grads) to C-Suite executives take the next step up in their careers and stretch their professional capabilities. As a true "head-hunter"?, I excel at direct recruiting, direct sourcing, and aligning opportunities to professionals. Working with client companies, I specializing in finding outstanding recruiting, sales, marketing, and technical professionals. My abilities include: * C-Suite (CEO, CAO, CIO, CTO, COO) recruiting and research; * Staffing companies at scale and building to fit culture; * Retained executive and performance research based full-cycle recruiting; * Design and implement national staffing strategies & candidate assessment profiles; * Understanding hiring needs and pairing them with recruiting strategies; * Designing Campus/University relations & recruiting; * Building & training highly effective recruiting teams; * Increasing company brand exposure; * Research and candidate identification/sourcing methods. * Found Carmen Sandiego! * I've been told I execute a mean high-five and I'm passionate about the adverse qualities of glitter =D Keywords: Java, JavaScript, NoSQL (Solr, Memcached, Voldemort, Cassandra, Redis), SQL, Struts, Caching (Akamai, Apache Traffic Server), Kafka, Spark, R, Servlets, WebObjects, Junit, XML, JSP, Ruby, Clojure, Velocity, REST, APIs, UI, Framework, React, Ember, Angular, Node.js, Freemarker, CSS, HTML, Mac OS X, Ubuntu, CentOS, Red Hat, Windows.   

Donau Tech Radio - DTR
DTR183 MacBook Pros und Developer Themen

Donau Tech Radio - DTR

Play Episode Listen Later May 31, 2019 62:36


Diese Episode startet mit einem kleinen Teil über Apple und der WWDC der nächsten Woche. Danach geht es aber halbwegs technisch weiter und Tom und André sprechen über JUnit 5, Hibernate, Spring MVC und Spring Transactional/JDBC.

QA Guild Podcast
S2E3: Новости уходящей зимы

QA Guild Podcast

Play Episode Listen Later Mar 2, 2019 102:38


Гости: - Артем Никитин прямиком из Эластика - Дмитрий Гуменюк - владыка Репорт Портала Темы: - 00:01:58 - [https://www.lambdatest.com/selenium-automation] Online Selenium grid for automated cross browser testing - 00:05:30 - [https://browsers.aerokube.com/] Клауд от пацанов из aerokube - 00:16:54 - [https://habr.com/ru/company/otus/blog/441352/] Паттерны и анти-паттерны CI/CD - 00:23:46 - [https://techrocks.ru/2019/02/19/remote-employees-are-more-happy-and-efficient/?fbclid=IwAR1Wmdro1ZoyE6L3fOSJ7EpvrUJBELRJ5vCV1sRLpwpacm8Hj9XyiN72Ygc] Удаленщики более счастливые - 00:34:39 - Про налоги с ИП - 00:38:32 - [https://www.gremlin.com/blog/introducing-gremlin-free/?utm_source=twitter.com&utm_medium=social&utm_campaign=kompaniya-gremlin--kotoraya-predostavlyaet] Gremlin SAAS - 00:41:51 - [https://thenewstack.io/facebooks-tool-for-automated-testing-at-2-billion-users-scale/] Facebook’s Tool for Automated Testing at 2 Billion Users Scale - 00:47:04 - [http://www.satisfice.com/blog/archives/5290] What Could Kill Testing? - 00:55:09 - [https://testitquickly.com/2019/02/02/testing-economy-ver-2/] Экономика тестирования. Версия 1.0 - 01:01:44 - [https://research.fb.com/testing-and-verification-symposium-2018/] Facebook testing symposium - 01:02:19 - [https://www.facebook.com/groups/292752664550185] Видосики с Facebook симпозиума - 01:03:18 - [https://google.github.io/clusterfuzz/] Clusterfuzz от Google - 01:06:50 - [https://medium.com/@BillyKorando/whats-new-in-junit-5-4-7ce6870a9caa] What’s New in JUnit 5.4 - 01:11:04 - [https://github.com/radarsh/gradle-test-logger-plugin] Gradle test logger - 01:12:38 - [https://github.com/ovity/octotree] Плагин для удобного просмотра код - 01:13:05 - [https://blog.fullstacktraining.com/remove-unused-css-javascript-code-from-your-project/] Про покрытие кода CSS и JS - 01:18:36 - [http://angiejones.tech/test-automation-for-pdf-files/] Инструмент для проверки PDF файлов - 01:20:30 - [https://www.infoq.com/articles/who-quality-software-development] Кто отвечает за качество? - 01:28:20 - Про воркшопы в Минске этой весной - 01:36:07 - Благодарности патронам - 01:39:08 - Финал Telegram: t.me/automation_remarks Стать патроном: www.patreon.com/automation_remarks Спасибо патронам:Tetiana HrybokMarat ReymersNikita VerbitskyOleksii IhnatiukИрина ЮрчукValentin BuryakovRoman MarinskyПеретятько ИгорьKuptsov IvanDmytro PazykovKatya KravchenkaIgor GruzievMaryna KolesnikDmytroAlisa MarkovaVitaly FedrunovSerge SoloshchenkoRoman PobotinАрина АригриMiguel SuddyaMaxim DenisovEvgenii GritcaiVitalii

QA Guild Podcast
EP-22: Новости ушедшего лета

QA Guild Podcast

Play Episode Listen Later Sep 12, 2018 69:48


Гости: - Сергей Пирогов - заводила подкаста - Ярослав Пернеровский - бог звука в подкасте - Артем Никитин - балуется c GO Темы: - https://www.cypress.io/blog/2018/09/05/Run-End-to-End-Tests-on-CI-Faster/#The-Dashboard [Parallel execution in Cypress] - https://developer.paypal.com/developer/creditCardGenerator [Credit Card Generator for Testing] - https://queue.acm.org/detail.cfm?id=3197520&utm_source=twitter.com&utm_medium=social&utm_campaign=interesnaya-statya-ot-thomas-limoncelli-p [Manual Work is a Bug] - https://medium.com/@aandryashin/selenium-back-to-the-moon-6ea73f1657cc [Moon - Selenoid for Kubernetes] - https://medium.com/@BillyKorando/whats-new-in-junit-5-3-c276eb8507f1 [Junit 5.3.0 Parallel execution] - http://spockframework.org/spock/docs/1.2-RC2/all_in_one.html#_release_notes [Вышел новый спок] - https://go.googlesource.com/proposal/+/master/design/go2draft.md [Спека GO 2] - https://github.com/bonigarcia/webdrivermanager [Java Webdriver manager 3.0.0] - https://github.com/checkly/puppeteer-recorder [Puppeteer recorder] - https://dev.to/theoutlander/github-extensions-to-boost-your-productivity-4d02 [Полезные плагины для Github] - https://meduza.io/news/2018/09/12/iz-koda-python-uberut-slova-master-i-slave-po-soobrazheniyam-politkorrektnosti [Зашквар в мире Питона] - http://www.satisfice.com/blog/archives/4947 [Джеймс Бах о новой пирамиде тестирования]

QA Guild Podcast
EP-19: Новости, беседы, внезапный гость

QA Guild Podcast

Play Episode Listen Later Aug 9, 2018 82:48


Гости: - Сергей Пирогов - заводила подкаста - Ярослав Пернеровский - бог звука в подкасте - Дмитрий Гуменюк - держатель рапорт портала Темы: - Гид по ручному тестированию приложений: преимущества, этапы и методологии https://habr.com/company/skillbox/blog/418889/ - Медленный питон из-за GIL. нАдо Брать Cyton или PYPY https://habr.com/company/ruvds/blog/418823/ - Введение в культуру DevOps: выбираем стратегию тестирования https://dou.ua/lenta/articles/devops-culture-1/ - Priority vs Severity https://www.performance-lab.ru/blog/sereznost - Гугл сделал свой тревис СI с докером и шлюпками https://cloud.google.com/cloud-build/ - Вышел TypeScript 3.0 https://blogs.msdn.microsoft.com/typescript/2018/07/30/announcing-typescript-3-0/ - Selenide тесты перевели на JUnit 5 и еще улучшили скорость для колекций http://selenide.org/2018/07/17/selenide-4.12.3/ - Git Hook для удобного управления хуками https://blog.viktoradam.net/2018/07/26/githooks-auto-install-hooks/ - Selenoid 1.7.0 теперь умеет пихать логи и видео в S3 https://github.com/aerokube/selenoid/releases/tag/1.7.0 - Теперь можно дебажить Gradle билд скрипты в IDea https://www.jetbrains.com/idea/whatsnew/#v2018-2-gradle - SeleniumConf 2018 INDIA videos https://www.youtube.com/playlist?list=PL9Z-JgiTsOYRckLp3pVtEQ7HYHaN-M_Zq

Les Cast Codeurs Podcast
LCC 191 - La quête du GraalVM

Les Cast Codeurs Podcast

Play Episode Listen Later Jun 16, 2018 94:12


Dans cet épisode, Guillaume et Emmanuel discutent GraalVM, Java LTS, MS-DOS, gVisor, GitHub et microframeworks. Enregistré le 14 juin 2018 Téléchargement de l’épisode LesCastCodeurs-Episode–191.mp3 News Correction Article de performance SpringBoot classique vs réactif L’article “SpringBoot 2 performance — servlet stack vs WebFlux reactive stack” est à prendre avec de grosses pincettes. Le client HTTP utilisé pour la version servlet est celui par défaut Java à base d’URLConnection. Pas de reused de la connection…. A 2500 users sur un benchmark IO bound avec un tel ratio wait/processing, il ne devrait pas avoir une telle différence de throughput. Nicolas Labro Langages GraalVM Les limitations de SubstrateVM Retour d’impression sur GraalVM GraalVM avec Play Framework Java 11 more than just features Replacing reflection with invokedynamic Librairies The rise of Microframeworks The state of Java/Kotlin Microframeworks in 2018 L’équipe de Grails a sorti un nouveau micro-framework, Micronaut, basé sur Netty et sans Spring, pour plus de légèreté Un workshop sur Micronaut pour démarrer avec Micronaut Est-ce qu’on a toujours besoin de Spock avec l’arrivée de JUnit 5 ? TL;DR : oui :-) Middleware JakartaEE is officially out Barre de progression de la contribution Oracle à Jakarta EE The state of Spring Java in 2018 Camel et Bean Validation débat Camel est l’option « no code » Infrastructure MS-DOS expliqué ! gVisor Product Manager de Google expliquant que gVisor est utilisé par App Engine et Cloud Functions Lancement de Skaffold pour automatiser le développement sur Kubernetes Skaffold sur Github Skaffold and Kaniko: Bringing Kubernetes to Developers Cloud Node 8 sur App Engine Web Angular 6 What’s new in Angular6 What’s new in Angular CLI 6.0 Les regrets de Ryan Dahl sur Node.JS (et lancement de son nouveau framework Deno) Article sur ses regrets On peut faire mieux que console.log() Outillage GitHub se fait gobber par Microsoft L’équipe Java Mission Control virée par Oracle Gradle 4.8 Méthodologies Hiérarchie et documentation Comment un agent public peut contribuer à l’Open Source Sécurité Custom domains on GitHub Pages gain support for HTTPS Vulnérabilité dans Git amenant à une exécution à distance Outils de l’épisode Byteman et injection de faute GitIgnore.io Outil de crowdcasting de Pierre Carion Rubrique débutant Crowdcast de Pierre Carion Pour un débutant qu’est-ce: les forces de Java ou de la JVM qui rend Java encore attractif bon choix pour commencer un projet en 2018 Conférences EclipseCon les 13 et 14 juin 2018 JHipster Conf le 21 juin DevFest Lille le 21 juin 2018 Voxxed Luxembourg le 22 juin 2018 Sunny Tech les 28 et 29 juin 2018 Jenkins User Conference le 28 juin 2018 Jug Summer Camp le 14 septembre 2018 - Le CfP est ouvert. Paris Web les 4, 5 et 6 octobre 2018 DevFest Nantes les 18 et 19 octobre 2018 - Le CfP est ouvert. Jenkins World Europe du 22 au 25 octobre 2018 à Nice - (utilisez le code JWAHERITIER pour obtenir 20% de réduction). VoxxedDays Microservices du 29 au 31 octobre 2018 DevFest Toulouse le 8 novembre 2018 Codeurs en Seine le 22 novembre 2018 Nous contacter Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/  

Develpreneur: Become a Better Developer and Entrepreneur
A General Approach To Testing Strategies For Developers

Develpreneur: Become a Better Developer and Entrepreneur

Play Episode Listen Later Feb 26, 2018 25:40


Testing strategies for developers are often seen as lacking import.  To be honest, developers are in their role to write code, not provide quality assurance.  However, that does not excuse the implementers from being part of testing and sharing that work. Simple Testing Strategies For Developers The strength of developers is creating solutions, not testing them.  That is not a knock on developers, we all tend to be weak at verifying our work.  Thus, effective QA work by developers requires a methodical approach that overcomes any biases we have towards our solution.  The methods that work tend to be easy to understand, implement, and repeat for any environment.  In this episode. we look at a common sense approach that will help the coders on the team be more helpful in the QA phases of a life cycle. Useful Unit Tests Unit testing is a challenge to implement, but it is becoming less of one.  Automation and simple to use tools like JUnit make it easier for developers to test as they write or even use tests to drive implementation.  However, the approach to testing is often the simplest path (happy path). Thus, the areas of an application that need the most testing are not in scope.  As a developer, it is important for your productivity to catch errors early in the implementation phase.  Better yet, catch them before they get released to others. The time spent on developing meaningful tests is not a waste for a developer.  This practice will help you dig deeper into the expected effects of code as well as the potential errors and exceptions.  So, even though we may not enjoy writing tests, doing so makes us better developers.

Groovy Podcast
Groovy Podcast Ep. 52

Groovy Podcast

Play Episode Listen Later Feb 1, 2018 51:36


News and views from the Groovy Programming language ecosystem. Ken Kousen and Baruch Sadogursky discuss recent released of Groovy, Grails, and Gradle; new CodeNarc features and the revival of Groovy Eclipse; the JUnit 5 vs Spock feature showdown; the Gr8DI mentorship program run by Jenn Strater, and more.

しがないラジオ
sp.8a【ゲスト: tbpgr】楽しくない7次受けSIer

しがないラジオ

Play Episode Listen Later Oct 19, 2017 110:39


ゲストのtbpgrさんとその生い立ちをSIerの多重構造、エンジニアのキャリア形成などを交えて話しました。 【Show Notes】 Tbpgr Blog Empowerment Engineering PowerBuilder チョコボスタリオン ASP(VBScript) システム開発の現場改善記 - あるプロジェクトを営業上がりの新人開発者が救った話 Java言語で学ぶデザインパターン入門 - 結城浩 - JUnit TheoryとDataPointsとFixitureによるパターン化テスト Redmine 配信情報はtwitter ID @shiganaiRadio で確認することができます。 フィードバックは(#しがないラジオ)でつぶやいてください! 感想、話して欲しい話題、改善して欲しいことなどつぶやいてもらえると、今後のポッドキャストをより良いものにしていけるので、ぜひたくさんのフィードバックをお待ちしています。 【パーソナリティ】 gami@jumpei_ikegami zuckey@zuckey_17 【ゲスト】 てぃーびー@tbpgr 【機材】 Blue Micro Yeti USB 2.0マイク 15374

Android Dev Подкаст
Выпуск 45. Новости

Android Dev Подкаст

Play Episode Listen Later Oct 16, 2017 63:56


Поговорили о RxJava 3, JUnit 5, FireStore, обновлении дизайн гайдлайнов и о других анонсах.

ajitofm
ajitofm 9: Better than Shift Shift

ajitofm

Play Episode Listen Later Sep 13, 2017 73:09


IntelliJ, Upsource, 自動化などについて yusuke さん、 nishigori さんと話しました。 サムライズム JUnit 5 JUnit - JUnit Lambda Twitter4J スプラトゥーン大会を開催しました #samuratoon IdeaVim LiveEdit :: JetBrains Plugin Repository JRevel Upsource: Code Review, Project Analytics, and Team Collaboration by JetBrains Reviewable - GitHub Code Reviews Done Right Selenium コロッケ割(キャンペーンは終了しています) Using LDAP - GitHub Enterprise そういえば日本語テーブル名、日本語カラム名、日本語クラス名、日本語メソッド名を実践している弊社ですが … marsのメモ github.com/Microsoft/language-server-protocol Gogland: The Up-and-Coming Go IDE by JetBrains JBuilder Meet the RubyMine Team at RubyKaigi 2017! | RubyMine Blog YouTrack: Issue Tracking and Project Management Tool for Developers

Les Cast Codeurs Podcast
LCC 173 - Fais tourner la Hash Table

Les Cast Codeurs Podcast

Play Episode Listen Later Jul 14, 2017 95:16


Audrey, Guillaume et Emmanuel vous parlent de serverless, de sécurité, de calculs de disponibilité, de hash table et d’autres sujets tip top. Enregistré le 13 juillet 2017 Téléchargement de l’épisode LesCastCodeurs-Episode–173.mp3 Comment faire un crowdcasting News Langages Java 9 et Jigsaw passent le JCP No swan song for Java: 10 influencers weigh in on its reputation, rivals and adoption Matériel le simulateur d’ordinateur quantique d’Atos Intel Skylake/Kabylake et le bug dans l’hyperthreading Middleware Les framework Java populaires selon Redmonk Spring Cloud Function Les nouveautés de JPA 2.2 Le guide de developpement asynchrone avec vert.x AWS Lambda et Java Elastic Stack 5.5.0 Des tests d’intégration avec Elastic Web Release de JHipster 4.6.1 Node.js security release Infrastructure La bataille sur NTP Raters: la face cachée de l’IA ? Les choses à savoir quand on utilise Ansible OVH et les sites webs critiques sur un VPS Comment fonctionne Kerberos Distroless Docker image avec rien dedans Outillage Blog sur JUnit 5 ˋgit filter-branch` expliqué à ta grand-mère Architecture Papier sur la disponibilité et les 9 par Google L’intérêt des data stream dans les applications non monolithe Serverless vs Micro-Service avec infrastructure “maison” Gestion des logs chez Algolia Sécurité Two-factor via your mobile phone – should you stop using it? Loi et société et organisation La démission de Travis Kalanick, le CEO d’Uber Mercredi 12 juillet - Journée d’action pour la neutralité du net aux USA Rubrique débutants Qu’est-ce qu’une Hash Table ? Conférences Jug Summer Camp le 15 Septembre à La Rochelle DevFest Toulouse le 28 septembre - Inscriptions et CfP ouvert DevFest Nantes les 19 & 20 Octobre - Inscriptions Scala.io le 2 et 3 novembre à Lyon - Inscriptions et CfP ouvert (jusqu’au 8 sept) Devoxx Belgique du 6 au 10 novembre - Inscriptions Codeurs en Seine à Rouen le 23 novembre - CfP ouvert (jusqu’au 31 août) 7ème édition de SoftShake - Genève (seulement 3h de Paris en train !) 26–27 octobre 2017 le CfP est ouvert Nous contacter Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/ Flattr-ez nous (dons) sur https://lescastcodeurs.com/ En savoir plus sur le sponsoring?

Android Dev Подкаст
Выпуск 30. Android O и новости

Android Dev Подкаст

Play Episode Listen Later Apr 4, 2017 69:39


Динамично меняющийся состав ведущих во время выпуска собрался, чтобы обсудить немного JUnit 5, экраны 16:10, как стать Android-разработчиком.

Anwendungsentwickler-Podcast
Pragmatic Unit Testing in Java 8 with JUnit (Buchclub) – Anwendungsentwickler-Podcast #98

Anwendungsentwickler-Podcast

Play Episode Listen Later Mar 26, 2017 34:50


Das äußerst empfehlenswerte Buch „Pragmatic Unit Testing in Java 8 with JUnit“ wird im Buchclub in der achtundneunzigsten Episode des Anwendungsentwickler-Podcasts besprochen. Inhalt Das Buch ist meine absolute Empfehlung für jeden Azubi. Meine eigenen Azubis lesen es schon direkt im 1. Ausbildungsjahr, kurz nachdem sie ihre ersten Java-Aufgaben gelöst haben. Für mich gehört Unit-Testing einfach... Der Beitrag Pragmatic Unit Testing in Java 8 with JUnit (Buchclub) – Anwendungsentwickler-Podcast #98 erschien zuerst auf IT-Berufe-Podcast.

Native Wheelhouse
Drink the Kool-Aid

Native Wheelhouse

Play Episode Listen Later Nov 20, 2016 57:25


Informal chat about Mobile software development. We update our thoughts on Pokémon Go, then we discuss BDD, Xcode 8, Android Studio 2.2, and build tools.

Test & Code - Python Testing & Development
23: Lessons about testing and TDD from Kent Beck

Test & Code - Python Testing & Development

Play Episode Listen Later Sep 30, 2016 13:46


Kent Beck's twitter profile says "Programmer, author, father, husband, goat farmer". But I know him best from his work on extreme programming, test first programming, and test driven development. He's the one. The reason you know about TDD is because of Kent Beck. I first ran across writings from Kent Beck as started exploring Extreme Programming in the early 2000's. Although I don't agree with all of the views he's expressed in his long and verbose career, I respect him as one of the best sources of information about software development, engineering practices, and software testing. Along with Test First Programming and Test Driven Development, Kent started an automated test framework that turned into jUnit. jUnit and it's model of setup and teardown wrapping test functions, as well base test class driven test frameworks became what we know of as xUnit style frameworks now, which includes Python's unittest. He discussed this history and a lot more on episode 122 of Software Engineering Radio. The episode is titled "The History of JUnit and the Future of Testing with Kent Beck", and is from Sept 26, 2010. http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/ I urge you to download it and listen to the whole thing. It's a great interview, still relevant, and applicable to testing in any language, including Python. What I've done in this podcast is take a handful of clips from the interview (with permission from IEEE and SERadio), and discuss the clips and my opinions a bit. The lessons are: You're tests should tell a story. Be careful of DRY, inheritance, and other software development practices that might get in the way of keeping your tests easy to understand. All test should help differentiate good programs from bad programs and not be redundant. Test at multiple levels and multiple scales where it makes sense. Differentiating between TDD, BDD, ATDD, etc. isn't as important as testing your software to learn about it. Who cares what you call it.

Fragmented - Android Developer Podcast
052: Junit4 tricks with @Parameterized @Enclosing tests

Fragmented - Android Developer Podcast

Play Episode Listen Later Aug 14, 2016 15:56


In this mini fragment Kaushik talks about some cool Junit 4 tricks using Parameterize, Enclosing test runners Show notes at http://fragmentedpodcast.com/episodes/52/

Hark: A RedMonk Podcast
Episode 2, "The Software Paradox"

Hark: A RedMonk Podcast

Play Episode Listen Later May 31, 2016 59:07


In which we sit down with Kent Beck to discuss the Software Paradox, and Kent's experiences in the software industry, his returns from same and what we would tell young developers about the outlook for the commercial software business. Links: The data-oriented vision behind JUnit:  https://www.facebook.com/notes/kent-beck/the-junitmax-vision-data-network-effect-for-tests/1129186843780845 Host: Stephen O'Grady, @sogrady, RedMonk Guest: Kent Beck, @kentbeck, Facebook Podcast Information Available on iTunes, Pocketcasts and Stitcher. Visit on Soundcloud by going to hark.tech. Feedback: hark@redmonk.com Sponsorship: sales@redmonk.com

The Modest Podest
Junit and the Ginger's Life Lessons

The Modest Podest

Play Episode Listen Later Apr 9, 2016 61:11


Trivia on Bats and Spanish Our first guest host Matt joins the show

Les Cast Codeurs Podcast
LCC 141 - Trop d’open source tue l’open source

Les Cast Codeurs Podcast

Play Episode Listen Later Feb 16, 2016 78:06


Dans cet épisode, les cast codeurs discutent solipsisme, explicit receiver parameter, WildFly 10, pagination, la mort de l’open source etc, etc. Sans oublier deux crowdcasts de Quentin Adam et ZePag, merci à eux. Enregistré le 9 février 2016 Téléchargement de l’épisode LesCastCodeurs-Episode–141.mp3 News Devoxx Discussion sur Devoxx France Langages Licence solipsiste Accélérer la JVM en Dev: random pool Optional.get le regret de Brian Goetz Le Java plugin va bientôt mourir Android va utiliser OpenJDK Receiver annotations L’enfer c’est les modules Middleware Le batching dans Hibernate ORM WildFly 10 Grails 3 avec un reloading amélioré O Java EE 7 Application Servers, Where Art Thou? Infrastructure Docker 1.10 Système d’exploitation souverain Mandriva - Mandrakesoft Facebook ferme Parse Les alternatives de Parse sur highscalability.com Outils Git ketch GitHub pages: mon Markdown et pas d’autres JUnit 5 Alpha 1 JUnit 5 expliqué JForg lève 50 millions de dollars Les outils de Quentin Adam autojump qui permet de se déplacer vite dans son système autoenv, qui permet de peupler avec les variables d’env sa session shell et le twitter de Quentin si il y a des questions : https://twitter.com/waxzce Big Data Apache Beam (Google Dataflow) AlphaGo Apache Spark 1.6 Design Conseils sur la pagination Méthodologie Les dangers des estimations Débat Quand tout est open source, rien n’est open source Outil de l’épisode Keybase.io: système de fichier chiffré Onename Keybase publié dans la blockchain Bitcoin Conférences Breizhcamp 23–26 mars Devoxx France 20/22 avril Mix-IT 21 et 22 avril EclipseCon Virginie, Etats-Unis, 7–10 mars 2016 Voxxed Days Luxembourg: Le site : Voxxed Days Luxembourg (Inscriptions, Informations) Le CFP : Call For Paper 2016 (Soumission de présentations) Le YaJUG : YaJUG Nous contacter : formulaire un des sites mentionné ci-dessus. Nous contacter Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/ Flattr-ez nous (dons) sur https://lescastcodeurs.com/ En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com

Java Off-Heap
Episode 7. What's going on with Oracle and Java? Also, let's talk about kids, modding, STEM and CS!

Java Off-Heap

Play Episode Listen Later Oct 6, 2015 82:49


Big Shakeup this month. Oracle had dismissed a number of Java evangelist positions, and there is no official response from Oracle. Also, java.net is no more! What does it mean? Is it the end of Java as we know it? We really don't know but that doesn't stop us from playing out what could happen! Computer Science and Kids! Is it important? Are we doing enough? or too much? Take a listen to get the different perspectives on education and programming! Hey! JUnit is asking for $. Want to help them out? We bought them a latte! http://junit.org/junit-lambda.html Going to J1? Join our BOF Session! There may be prizes but most definitively a good time! https://events.rainfocus.com/oow15/catalog/oracle.jsp?event=javaone&search=BOF8044&search.event=javaoneEvent DO follow us on twitter @offheap

Java Off-Heap
Episode 6. Oracle Security Chief complaining about white hats? Is Reactive Programming the new fad? JUnit asking for money!

Java Off-Heap

Play Episode Listen Later Sep 14, 2015 89:31


So we go and wake up with the news that Oracles Security Chief didn't like people discovering vulnerabilities on its product (say that again?), then we follow on the new fad covering towns (First it was SAP, then Cloud, to Agile, and now is all about Reactive). Hey! JUnit is asking for $. Want to help them out? We bought them a latte! http://junit.org/junit-lambda.html Going to J1? Join our BOF Session! There may be prizes but most definitively a good time! https://events.rainfocus.com/oow15/catalog/oracle.jsp?event=javaone&search=BOF8044&search.event=javaoneEvent DO follow us on twitter @offheap

Rebuild
88: Five Years Of Terrible Coding (Brian Gesiak)

Rebuild

Play Episode Listen Later Apr 17, 2015 57:24


Brian Gesiak さんをゲストに迎えて、Facebook, ComponentKit, React Native, Swift, Quick, Xcode などについて話しました。 Show Notes Facebook's iOS Infrastructure - @Scale 2014 F8 2015 - Facebook on iOS: Inside the "Big Blue App" ComponentKit | A React-inspired view framework for iOS ComponentKit | Why C++ React Native AsyncDisplayKit Nuclide - a unified IDE Thoughts on Atom modocache/Gift SwiftGit2/SwiftGit2 Swift APIs: Getting Results // Speaker Deck Quick Testing with Xcode CocoaDocs Co-located Test Jam - CocoaPods JUnit XCTest: The Good Parts Buck: A fast build tool F8 Developer Conference - Hacker Way Recap The LLVM Compiler Infrastructure Project Kent Beck - Wikipedia Quick/Nimble DHH Offended By RSpec, Says Test::Unit Is Just Great My experience with Minitest and RSpec UIKonf

Les Cast Codeurs Podcast
LCC 114 - Les quatre mousquetaires

Les Cast Codeurs Podcast

Play Episode Listen Later Dec 10, 2014 92:40


Les quatre mousquetaires comme les cinq doigts de la main discutent de la vie, des billets d’humeur sur Java et JavaScript, de la bérézina Docker, et de la position au travail. Sans oublier notre armée de l’ombre, j’ai nommé les crowdcasteurs. Merci à eux. Enregistré le 5 décembre 2014 Téléchargement de l’épisode LesCastCodeurs-Episode–114.mp3 News Dashlane Teaser Star Wars, z’en pensez quqoi ? Teaser Terminator Langages Java ne pue pas par James Ward L’état de JavaScript en 2015 .Net pas mal open sourcé Groovy 2.4 beta 4 Infrastructure Le fork de Docker Réponse de Docker Inc Docker Machine, Swarm et Compose CoreOS vs Project Atomic Mesos et Docker pour faire sa propre infra containerisée Scaling Docker with Kubernetes Middleware Camel par Pierre-Alban Dewitte http://www.davsclaus.com/2014/09/66th-apache-camel-release-is-out-its.html http://stackoverflow.com/questions/8845186/what-exactly-is-apache-camel JPA entity graphs par John Schoonheydt Spring Integration Java DSL Prezi Sortie de Restlet Studio pour designer ses API REST en ligne Introduction to Functional Reactive Programming ElasticSearch devient plus Groovy encore Big Data Apache Spark par Alexis Seigneurin Site officiel de Spark Spark officially sets a new record in large-scale sorting Spark sur le blog d’Ippon Integration des données chez LinkedIn Outillage Quelques racourcis claviers d’IntelliJ IDEA expliqués JUnit 4.12 Web GWT par Benoit Sautel Going under the hood of Inbox Google signe le retour en force de Java sur le client Web J2ObjC - A Java to iOS Objective-C translation tool and runtime GWT 2.7.0 NPAPI Les implémentations HTTP/2 Apprendre HTML, JS, … en s’amusant avec Coder Projects People James Gosling chez Jelastic Richard Stallman en France Les JavaPosse arrêtent Autre Crier dans les licences Accepter le pire Perspective intéressante sur les hackathons Outils de l’épisode Benerator Débat Pourquoi les programmeurs codent la nuit Conférences Conférences en ligne par John Schoonheydt vjug hacksummit Parleys Devoxx France: le CFP Le CFP fermera le samedi 17 janvier Nous contacter Contactez-nous via twitter http://twitter.com/lescastcodeurs sur le groupe Google http://groups.google.com/group/lescastcodeurs ou sur le site web http://lescastcodeurs.com/ Flattr-ez nous (dons) sur http://lescastcodeurs.com/ En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com

NSScreencast (free videos)
#13 - Setting up Jenkins

NSScreencast (free videos)

Play Episode Listen Later Apr 26, 2012


In this episode, we'll set up a free continuous integration server called Jenkins (previously Hudson) to run our build. We'll configure it to automatically check out changes from git, run the build, and finally run all of our tests. We'll then use a conversion script to translate the test output into JUnit test report files that Jenkins natively understands.

09CBIPC - Programmazione ad Oggetti

Lezione dell'8 Marzo 2011 (seconda parte)

Fréquence Valtech
Fréquence Valtech - épisode 1 : TDD

Fréquence Valtech

Play Episode Listen Later Dec 13, 2011 55:46


Cet épisode traite de TDD (Test Driven Development), notamment en terme de retour d'expérience et de mise en oeuvre.

java tdd .net valtech junit tdd test driven development
Java Pub House
Episode 10. Testing, Testing, 1.2.3! (All about Unit Testing, And Dependency Injection)

Java Pub House

Play Episode Listen Later Dec 8, 2011 31:20


Testing, Testing, 1.2.3! (All about Unit Testing, And Dependency Injection) For those Unit Testers out there (and those who want to do more unit tests), this podcast is for you! We cover JUnit in general, and explain how to shoe-in unit tests in current (and legacy code). We talked about Dependency Injection (and the Concern of Creation), and Mocking (what it is, and how is it used). In all, if you ever wondered why creating unit tests in your current code is hard, or why are people talking about Dependency Injection (DI), come in, and listen! Questions, feedback or comments! comments@javapubhouse.com Subscribe to our podcast! (http://javapubhouse.libsyn.com/rss) ITunes link (http://itunes.apple.com/us/podcast/java-pub-house/id467641329) Java 7 Recipes book! (http://www.amazon.com/Java-7-Recipes-Problem-Solution-Approach/dp/1430240563)

Radio Liferay
RL011 Alexander Chow and Sergio González about Document/Media Library - Radio Liferay Episode 11

Radio Liferay

Play Episode Listen Later Nov 24, 2011 31:23


Liferay for your ears - This time I sat together with Alexander Chow and Sergio González. Both are Liferay Core Engineers. Alex is "Employee number 8, UK employee number 1 (which gives away his location) and Liferay-Mac-User number 1. Sergio is Spain's employee number 6. Both have extensively cooperated in the new Document Library for Liferay 6.1 - now called Media Library - and this provides the main topic for us to talk about: My shownotes: * Their background and what they worked on in Liferay * How to pronounce names * Naturally: The work both did on Document/Media Library and related portlets through the last year: The document library got a good rewrite, Ajax-based UI and a new backend to use Liferay as entry-point into other external repository systems. * CMIS (short for Content Management Interoperability Something - see link) * A lot of the document library backend war developed with JUnit and worked within a few days of work with the independently created UI when they were first brought together. * Different Document types are now first class citizens, so that you have certain metadata as well as separate workflows for different types of content. * Document Library and Image Gallery changed to Document and Media Library (for storage) and Media Gallery Display (for presentation) - the data and permissions will be automatically migrated * Previews for many document types will be automatically generated. * Listing alternative interfaces to the backend: Browser, WebDAV, Sharepoint protocol, Liferay Sync * Sync will work offline and synchronize any change (bidirectionally) with Document & Media Library when it's online, available for Windows, Mac, Android, iOS. Sadly there's one OS missing... * Iliyan is now europe's resident AlloyUI/JS expert * Download Beta 4 (or whatever is current when you read/listen to this) and give feedback, report bugs before Alex 2.0 is released.

Les Cast Codeurs Podcast
Les Cast Codeurs Podcast - Episode 37 - J'peux pas j'ai piscine

Les Cast Codeurs Podcast

Play Episode Listen Later Apr 5, 2011 63:07


Enregistré le 29 mars 2011 XWiki Entreprise 3.0 http://www.h-online.com/open/news/item/XWiki-Enterprise-3-0-released-1220159.html James Gosling chez Google  http://java.developpez.com/actu/30308/Le-pere-de-Java-rejoint-Google-l-embauche-de-James-Gosling-a-t-elle-un-rapport-avec-le-desaccord-entre-Google-et-Oracle-sur-Android/ http://nighthacks.com/roller/jag/entry/next_step_on_the_road Java EE 7 http://www.infoq.com/news/2011/03/ee7_jsr http://blogs.sun.com/theaquarium/entry/java_ee_7_has_been http://blogs.sun.com/theaquarium/entry/java_ee_7_review_ballot http://blogs.sun.com/theaquarium/entry/more_java_ee_7_content SpringSource/VMWare rachète WaveMaker http://www.wavemaker.com/product/ http://blog.springsource.com/2011/03/08/vmware-acquires-wavemaker/ eXo sort son Cloud-IDE http://cloud-ide.com/ http://blog.exoplatform.org/2011/03/15/history-of-exo-cloud-ide/ http://www.eweek.com/c/a/Cloud-Computing/eXo-Launches-Cloud-IDE-for-Amazon-Elastic-Beanstalk-791963/ http://eu.techcrunch.com/2011/03/15/exo-platform-kicks-off-the-year-of-paas-and-extends-enterprise-portals-to-the-cloud/ Bespin renommé Skywriter puis mergé avec Ace http://mozillalabs.com/skywriter/2011/01/18/mozilla-skywriter-has-been-merged-into-ace/ Update Java Mac foire de nombreux projets Thread sur le google group de GAE : https://groups.google.com/forum/#!topic/google-appengine-java/WiImnzVb9Fo Issue dans le bug tracker : http://code.google.com/p/googleappengine/issues/detail?id=4712 Problème avec l'intégration GWT / Eclipse : https://groups.google.com/forum/#!msg/google-web-toolkit/UrtkUZvLBgU/RNbotazE0C0J http://stackoverflow.com/questions/5248967/what-does-apples-update-to-java-1-6-0-24-break Pacifist http://www.charlessoft.com/ Programming motherfucker manifesto http://oppugn.us/posts/1300784321.html http://programming-motherfucker.com/ Les JUGs et conferences Zenika: What's next paris le 26 et 27 mai http://whatsnextparis.com BreizhCamp: CAll4paper de nos amis bretons http://www.breizhcamp.org/ USI 2011 http://www.universite-du-si.com Les outils qu'on utilise FEST-Assert http://code.google.com/p/fest/ Hamcrest http://code.google.com/p/hamcrest/ JUnit 4 http://www.junit.org/ Les mains dans le cambouis Les plugins orientés UI (utilisés sur https://ci.exoplatform.org pour vous donner une idée) : http://wiki.jenkins-ci.org/display/JENKINS/Dashboard+View : Pour créer des dashboards un peu plus riches pour structurer les informations (derniers builds, nombres de tests en erreurs ...). http://wiki.hudson-ci.org/display/HUDSON/ChuckNorris+Plugin : Pour afficher les "Facts" de ChuckNorris et changer le fond de la page sur les builds en fonction de leur état. http://wiki.hudson-ci.org/display/HUDSON/Compact+Columns : Pour simplifier les columns avec les derniers status des jobs http://wiki.jenkins-ci.org/display/JENKINS/Console+Column+Plugin : Pour afficher une icone avec un lien vers la dernière console d'execution d'un build http://wiki.hudson-ci.org/display/HUDSON/Green+Balls : Pour voir la vie en vert et non pas en bleu. http://wiki.jenkins-ci.org/display/JENKINS/Nested+View+Plugin : Pour gérer des sous-vues (sous onglets) http://wiki.hudson-ci.org/display/HUDSON/Radiator+View+Plugin : Pour afficher une vue synthétique des jobs à placer sur un écran dans les bureaux Les plugins pour faciliter l'administration : http://wiki.hudson-ci.org/display/HUDSON/Configuration+Slicing+Plugin : Pour faire du "bulk" update sur certains points de configuration des jobs http://wiki.hudson-ci.org/display/HUDSON/Global+Build+Stats+Plugin : Pour générer des graphiques sur les statistiques d'utilisation du serveur. http://wiki.jenkins-ci.org/display/JENKINS/SCM+Sync+configuration+plugin : Pour sauvegarder et versionner la configuration du serveur et de ses jobs dans un SCM (Support de SVN essentiellement aujourd'hui. Harcelez @fcamblor pour l'améliorer :-) ) Les plugins d'intégration aux SCM : http://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin : Git seul http://wiki.jenkins-ci.org/display/JENKINS/Github+Plugin : Git sur GitHub http://wiki.jenkins-ci.org/display/JENKINS/Google+Code+Plugin : Google Code Sans compter les dizaines d'autres et notamment les plus répandus pour SVN, .... Autres plugins utiles non évoqués : http://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin : De très grosses améliorations par rapport au mécanisme natif de notification. Il gère le template de mails, les regles d'envois avec différents récipients en fonctions des resultats du build etc. http://wiki.hudson-ci.org/display/HUDSON/Maven+Deployment+Linker : Pour afficher les liens vers les artifacts déployés par le build. http://wiki.jenkins-ci.org/display/JENKINS/Build-timeout+Plugin : Pour forcer l'arrêt d'un job si il dépasse un certain temps d'execution. (Attention ce dernier ne tient pas compte des postbuild tasks ce qui peut poser problème si le blocage se produit sur une tache positionner à ce niveau comme le build sonar etc). http://wiki.hudson-ci.org/display/HUDSON/Sonar+Plugin : Pour enchainer automatiquement le build sonar après un build classique http://wiki.hudson-ci.org/display/HUDSON/Priority+Sorter+Plugin : Pour donner plus de priorité à certains jobs dans la file d'attente. http://wiki.hudson-ci.org/display/HUDSON/Port+Allocator+Plugin : Pour éviter que des jobs d'integration soient lancés en parallele en utilisant les même ports de la machine. Pour aller plus loin : Le site web jenkins : http://jenkins-ci.org/ Un livre complet et gratuit sur Jenkins http://wakaleo.com/books/jenkins-the-definitive-guide Les news : http://twitter.com/#!/jenkinsci Une série d'articles pour créer un plugin hudson/jenkins : http://fcamblor.wordpress.com/2010/04/04/plugins-hudson-etape-1-la-creation-du-plugin/ http://fcamblor.wordpress.com/2010/04/10/plugins-hudson-episode-2-implementer-son-premier-plugin/ http://fcamblor.wordpress.com/2010/06/01/plugins-hudson-episode-3-des-formulaires-et-des-donnees/ Un article sur l'administration de Jenkins en utilisant la puissance de GRoooooooovy : http://bazoud.free.fr/post/2010/05/31/groovy-aime-hudson/ Nous contacter Contactez-nous via twitter http://twitter.com/lescastcodeurs sur le groupe Google http://groups.google.com/group/lescastcodeurs ou sur le site web http://lescastcodeurs.com/ Flattr-ez nous sur http://lescastcodeurs.com/

Les Cast Codeurs Podcast
Les Cast Codeurs Podcast - Episode 34 - Interview sur Flex avec Francois Le Droff et Michael Chaize

Les Cast Codeurs Podcast

Play Episode Listen Later Jan 23, 2011 61:55


Enregistre le 21 janvier 2011 Michaël CHAIZE Blog: http://www.riagora.com Twitter: http://www.twitter.com/mchaize   François Le Droff Blog : http://www.droff.com et http://blogs.adobe.com/francoisledroff/ Twitter : http://twitter.com/francoisledroff Disclosure ClickToFlash http://clicktoflash.com/ Flex Le SDK http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK Les langages, CSS, MXML http://fr.wikipedia.org/wiki/MXML et ActionScript3 http://fr.wikipedia.org/wiki/ActionScript   Et Flex une fois compilé ça tourne dans FlashPlayer : http://www.adobe.com/support/flashplayer/downloads.html AIR : http://get.adobe.com/fr/air/?promoid=BUIGQ Pour débuter TourDeFlex : http://www.adobe.com/devnet/flex/tourdeflex.html http://www.adobe.com/devnet/flex.html Le blog de Christophe: http://coenraets.org/blog/   Flex et son écosystème open source Les frameworks Flex cités : FlexPMD (le PMD pour Flex) : http://sourceforge.net/adobe/flexpmd/home/ Parleys (le framework « à la mode », IOC et meta framework) : http://www.spicefactory.org/parsley/download.php Cairngorm3 (un monde de bonne pratique et de librairies réutilisables faites par Adobe Consulting) : http://sourceforge.net/adobe/cairngorm/ FlexUnit (le JUnit pour Flex) : http://flexunit.org/ Et les projets de Open@Adobe http://sourceforge.net/adobe Et de nombreux projets sur les forges du web: chez Spring-Source, SonaType, ou GoogleCode Tamarin (Virtual machine and Just In Time (JIT) compiler implementation of ECMAScript and ActionScript) : http://opensource.adobe.com/wiki/display/site/Projects#Projects-Tamarin   Les formats ouverts AMF: http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf RTMP: http://www.adobe.com/devnet/rtmp.html FLV: http://www.adobe.com/devnet/f4v.html SWF : http://www.adobe.com/devnet/swf.html   Les applications citées http://www.volkswagen.co.uk/ iPlayer de BBC : http://www.bbc.co.uk/iplayer/radio Times Reader: http://timesreader.nytimes.com/timesreader/ Parleys: http://parleys.com/ TweetDeck: http://www.tweetdeck.com/ Le projet de François: http://www.adobe.com/cfusion/showcase/index.cfm?event=casestudydetail&casestudyid=1097918&loc=en_us   Flex et les back-ends BlazeDS: http://opensource.adobe.com/wiki/display/blazeds/BlazeDS LCDS: http://www.adobe.com/products/livecycle/dataservices/ Spring-Flex: http://www.springsource.org/spring-flex Zend AMF: http://framework.zend.com/download/amf weborb: http://www.themidnightcoders.com/blog/   Flex et l’usine Logicielle Maven flex-mojos : http://flexmojos.sonatype.org/ FlexPMD (le PMD pour Flex) : http://sourceforge.net/adobe/flexpmd/home/ FlexUnit (le JUnit pour Flex) : http://flexunit.org/ Sonar : http://docs.codehaus.org/display/SONAR/Sonar+Flex+Plugin   Les Outils de développement Flex Adobe FlashBuilder (plugin Eclipse): http://www.adobe.com/products/flashbuilder/ FlashCatalyst (pour les workflow dev – designer): http://www.adobe.com/products/flashcatalyst/   Le Futur L’Open Screen Project: http://www.openscreenproject.org/ Flex 4.5, Flex Hero: http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+Hero Collaboration temps réel, services sur le cloud: LCCS: http://www.adobe.com/devnet/flashplatform/services/collaboration.html La concurrence Silverlight http://www.silverlight.net/ GraniteDS http://www.graniteds.org JSF http://en.wikipedia.org/wiki/JavaServer_Faces RichFaces http://jboss.org/richfaces Wicket http://wicket.apache.org/ GWT http://code.google.com/webtoolkit/ jQuery http://jquery.com/ JavaFX http://javafx.com/ Nous contacter Contactez-nous via twitter http://twitter.com/lescastcodeurs sur le groupe Google http://groups.google.com/group/lescastcodeurs ou sur le site web http://lescastcodeurs.com/ Flattr-ez nous sur http://lescastcodeurs.com/

WebObjects Podcasts
Test Driven Development with WebObjects

WebObjects Podcasts

Play Episode Listen Later Jun 6, 2009 69:00


Get an introduction to Test Driven Development and meet the tools - ERSelenium, JUnit, JMock. Denis will demo the creation of a a meaningful WebObjects application from scratch,guided by tests and will explain testing best pratices.

Audio Lecture
JUnit By David Bowes

Audio Lecture

Play Episode Listen Later Mar 30, 2009 34:27


this is the recording of friday's JUnit lecture, make sure you listen with full volume cause i didn't sit in first row!

APCS Java
JUnit Testing

APCS Java

Play Episode Listen Later Dec 24, 2008


Writing code to test the code you want to write! Sounds crazy but it is the quick way to make sure the code does what you want it to!

Swinburne CodeCasts - Programming tutorials
Module 4 - JUnit (Object Oriented Programming - 2008)

Swinburne CodeCasts - Programming tutorials

Play Episode Listen Later Aug 31, 2008 9:24


JUnit is a unit testing framework for Java. In this podcast you will learn to use jUnit to create and run unit tests for Java programs. You will see how to perform this within an Ant script, and how to use Eclipse to run the tests.

Software Engineering Radio - The Podcast for Professional Software Developers

This episode is a conversation with Erich Gamma. We covered the four things he is known for in chronological order. We started with design patterns and the Gang-of-Four book of which he is the lead author. We then looked at JUnit, the testing framework he coauthored with Kent Beck and how it introduced unit testing to the masses. The next topic is obviously Eclipse, where Erich and his lab in Zürich is responsible for the Java Development Tooling. We also briefly discussed The Eclipse Way, the (obviously) successful process the Eclipse team uses for developing Eclipse itself. Finally, we're looking at Erich's current endeavour, the Jazz project. Jazz is a technology for collaborative software development.

Software Engineering Radio - The Podcast for Professional Software Developers

This episode is a conversation with Erich Gamma. We covered the four things he is known for in chronological order. We started with design patterns and the Gang-of-Four book of which he is the lead author. We then looked at JUnit, the testing framework he coauthored with Kent Beck and how it introduced unit testing to the masses. The next topic is obviously Eclipse, where Erich and his lab in Zürich is responsible for the Java Development Tooling. We also briefly discussed The Eclipse Way, the (obviously) successful process the Eclipse team uses for developing Eclipse itself. Finally, we're looking at Erich's current endeavour, the Jazz project. Jazz is a technology for collaborative software development.

Software Engineering Radio - The Podcast for Professional Software Developers

This episode is a conversation with Erich Gamma. We covered the four things he is known for in chronological order. We started with design patterns and the Gang-of-Four book of which he is the lead author. We then looked at JUnit, the testing framework he coauthored with Kent Beck and how it introduced unit testing to the masses. The next topic is obviously Eclipse, where Erich and his lab in Zürich is responsible for the Java Development Tooling. We also briefly discussed The Eclipse Way, the (obviously) successful process the Eclipse team uses for developing Eclipse itself. Finally, we're looking at Erich's current endeavour, the Jazz project. Jazz is a technology for collaborative software development.