In computing, an object that enables a programmer to traverse a container, particularly lists
POPULARITY
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/
Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Why I funded PIBBSS, published by Ryan Kidd on September 15, 2024 on LessWrong. I just left a comment on PIBBSS' Manfund grant request (which I funded $25k) that people might find interesting. PIBBSS needs more funding! Main points in favor of this grant 1. My inside view is that PIBBSS mainly supports " blue sky" or " basic" research, some of which has a low chance of paying off, but might be critical in " worst case" alignment scenarios (e.g., where " alignment MVPs" don't work, " sharp left turns" and " intelligence explosions" are more likely than I expect, or where we have more time before AGI than I expect). In contrast, of the technical research MATS supports, about half is basic research (e.g., interpretability, evals, agent foundations) and half is applied research (e.g., oversight + control, value alignment). I think the MATS portfolio is a better holistic strategy for furthering AI safety and reducing AI catastrophic risk. However, if one takes into account the research conducted at AI labs and supported by MATS, PIBBSS' strategy makes a lot of sense: they are supporting a wide portfolio of blue sky research that is particularly neglected by existing institutions and might be very impactful in a range of possible "worst-case" AGI scenarios. I think this is a valid strategy in the current ecosystem/market and I support PIBBSS! 2. In MATS' recent post, " Talent Needs of Technical AI Safety Teams", we detail an AI safety talent archetype we name "Connector". Connectors bridge exploratory theory and empirical science, and sometimes instantiate new research paradigms. As we discussed in the post, finding and developing Connectors is hard, often their development time is on the order of years, and there is little demand on the AI safety job market for this role. However, Connectors can have an outsized impact on shaping the AI safety field and the few that make it are "household names" in AI safety and usually build organizations, teams, or grant infrastructure around them. I think that MATS is far from the ideal training ground for Connectors (although some do pass through!) as our program is only 10 weeks long (with an optional 4 month extension) rather than the ideal 12-24 months, we select scholars to fit established mentors' preferences rather than on the basis of their original research ideas, and our curriculum and milestones generally focus on building object-level scientific/engineering skills rather than research ideation and "identifying gaps". It's thus no surprise that most MATS scholars are "Iterator" archetypes. I think there is substantial value in a program like PIBBSS existing, to support the long-term development of "Connectors" and pursue impact in a higher-variance way than MATS. 3. PIBBSS seems to have decent track record for recruiting experienced academics in non-CS fields and helping them repurpose their advanced scientific skills to develop novel approaches to AI safety. Highlights for me include Adam Shai's "computational mechanics" approach to interpretability and model cognition, Martín Soto's "logical updatelessness" approach to decision theory, and Gabriel Weil's "tort law" approach to making AI labs liable for their potential harms on the long-term future. 4. I don't know Lucas Teixeira (Research Director) very well, but I know and respect Dušan D. Nešić (Operations Director) a lot. I also highly endorsed Nora Ammann's vision (albeit while endorsing a different vision for MATS). I see PIBBSS as a highly competent and EA-aligned organization, and I would be excited to see them grow! 5. I think PIBBSS would benefit from funding from diverse sources, as mainstream AI safety funders have pivoted more towards applied technical research (or more governance-relevant basic research like evals). I think Manifund regrantors are well-positio...
Link to original articleWelcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Why I funded PIBBSS, published by Ryan Kidd on September 15, 2024 on LessWrong. I just left a comment on PIBBSS' Manfund grant request (which I funded $25k) that people might find interesting. PIBBSS needs more funding! Main points in favor of this grant 1. My inside view is that PIBBSS mainly supports " blue sky" or " basic" research, some of which has a low chance of paying off, but might be critical in " worst case" alignment scenarios (e.g., where " alignment MVPs" don't work, " sharp left turns" and " intelligence explosions" are more likely than I expect, or where we have more time before AGI than I expect). In contrast, of the technical research MATS supports, about half is basic research (e.g., interpretability, evals, agent foundations) and half is applied research (e.g., oversight + control, value alignment). I think the MATS portfolio is a better holistic strategy for furthering AI safety and reducing AI catastrophic risk. However, if one takes into account the research conducted at AI labs and supported by MATS, PIBBSS' strategy makes a lot of sense: they are supporting a wide portfolio of blue sky research that is particularly neglected by existing institutions and might be very impactful in a range of possible "worst-case" AGI scenarios. I think this is a valid strategy in the current ecosystem/market and I support PIBBSS! 2. In MATS' recent post, " Talent Needs of Technical AI Safety Teams", we detail an AI safety talent archetype we name "Connector". Connectors bridge exploratory theory and empirical science, and sometimes instantiate new research paradigms. As we discussed in the post, finding and developing Connectors is hard, often their development time is on the order of years, and there is little demand on the AI safety job market for this role. However, Connectors can have an outsized impact on shaping the AI safety field and the few that make it are "household names" in AI safety and usually build organizations, teams, or grant infrastructure around them. I think that MATS is far from the ideal training ground for Connectors (although some do pass through!) as our program is only 10 weeks long (with an optional 4 month extension) rather than the ideal 12-24 months, we select scholars to fit established mentors' preferences rather than on the basis of their original research ideas, and our curriculum and milestones generally focus on building object-level scientific/engineering skills rather than research ideation and "identifying gaps". It's thus no surprise that most MATS scholars are "Iterator" archetypes. I think there is substantial value in a program like PIBBSS existing, to support the long-term development of "Connectors" and pursue impact in a higher-variance way than MATS. 3. PIBBSS seems to have decent track record for recruiting experienced academics in non-CS fields and helping them repurpose their advanced scientific skills to develop novel approaches to AI safety. Highlights for me include Adam Shai's "computational mechanics" approach to interpretability and model cognition, Martín Soto's "logical updatelessness" approach to decision theory, and Gabriel Weil's "tort law" approach to making AI labs liable for their potential harms on the long-term future. 4. I don't know Lucas Teixeira (Research Director) very well, but I know and respect Dušan D. Nešić (Operations Director) a lot. I also highly endorsed Nora Ammann's vision (albeit while endorsing a different vision for MATS). I see PIBBSS as a highly competent and EA-aligned organization, and I would be excited to see them grow! 5. I think PIBBSS would benefit from funding from diverse sources, as mainstream AI safety funders have pivoted more towards applied technical research (or more governance-relevant basic research like evals). I think Manifund regrantors are well-positio...
Cyrus Claffey, the Founder and Executive Chairman of ButterflyMX, joins the show to share his journey from Hawker at the Ren Faire to revolutionizing the intercom for apartment buildings. Hear how to iterate your product, declunkify your industry, find the right customers to pitch to, decide which ideas are worth pursuing, and some Show and Tell. Connect with Cyrus at ButterflyMX.com and on LinkedIn
Jeremy helps developers by sharing his struggles, mostly in technology, but also with being more social as an introvert, understanding learning potential, and playing banjo. He has worked as a corporate developer, as a Chief Improvement Officer at a startup, and as a contract developer. Currently, he teaches developers through online courses, workshops, tech articles, and conference talks. He spends most of his time in C# and has recently ventured into Go (Golang) and Rust (Rust lang) to explore some of his favorite topics: interfaces, delegates, concurrency, and parallel programming. You can see him speaking next at LIVE! 360 in Orlando, FL Nov 12‒17, 2023. Use promo code “Clark” to save $500 off your ticket. Also Oct 23rd at DevSpaceConf in Huntsville, AL. Design patterns are not just for architects. In fact, you already use Design Patterns but probably don't know it. Observer, Facade, Iterator, Proxy — these are all patterns that allow us to better communicate our ideas with other developers. And once we understand the patterns, we can use solutions that people way smarter than we have already implemented. In this session, we'll take a look at several Gang of Four patterns that we regularly use without realizing it. Don't know who the Gang of Four is? Join us to find out. Topics of Discussion: [3:30] Jeremy talks about his foray into programming and the colleagues that helped him gain confidence. [6:44] Jeremy went from speaking at smaller user groups and code camps to global conferences. [7:35] The act of sharing gained expertise is what makes you an expert. [10:10] Design patterns and their relevance in development. [13:19] The importance of the Gang of Four book and Head First Design Patterns. [17:24] Iterator and the patterns that fall in that category. [20:43] Are we seeing classic patterns be redirected or are new ones taking shape? [23:05] The concept of abstraction. [24:10] The two states that developers fall into. [28:02] More about Jeremy's testing philosophy and how it's changed over the years. [29:26] What Jeremy prioritizes when helping other developers start a new codebase. [32:34] Where people can go for more education and information on these topics. Mentioned in this Episode: Clear Measure Way Architect Forum Software Engineer Forum Programming with Palermo — New Video Podcast! Email us at programming@palermo.net. Clear Measure, Inc. (Sponsor) .NET DevOps for Azure: A Developer's Guide to DevOps Architecture the Right Way, by Jeffrey Palermo — Available on Amazon! Jeffrey Palermo's Twitter — Follow to stay informed about future events! Jeremy Clark Twitter Jeremy Clark LinkedIn Jeremy Bytes Blog DevSpace Conf Want to Learn More? Visit AzureDevOps.Show for show notes and additional episodes.
Vil du dykke ned i IoT's verden og finde nøglen til succes? Hør med, når Emil Skjold Andersen, kommerciel chef i Iterator IT - ét af Danmarks førende udviklingshuse indenfor IoT - deler sine insiderperspektiver. I denne episode afdækker vi, hvordan man identificerer IoT's lavthængende frugter, skaber en overbevisende business case, og tager dig med på en rejse gennem nogle af Iterator IT's mest succesfulde IoT cases. Få inspiration, indblik i branchens bedste praksis, og lær, hvordan du kan transformere din forretning med IoT. Gå ikke glip af denne enestående chance for at få ekspertindsigt i IoT's verden!
Vil du dykke ned i IoT's verden og finde nøglen til succes? Hør med, når Emil Skjold Andersen, kommerciel chef i Iterator IT - ét af Danmarks førende udviklingshuse indenfor IoT - deler sine insiderperspektiver. I denne episode afdækker vi, hvordan man identificerer IoT's lavthængende frugter, skaber en overbevisende business case, og tager dig med på en rejse gennem nogle af Iterator IT's mest succesfulde IoT cases. Få inspiration, indblik i branchens bedste praksis, og lær, hvordan du kan transformere din forretning med IoT. Gå ikke glip af denne enestående chance for at få ekspertindsigt i IoT's verden!
In this episode, Conor and Bryce talk to Jane Losare-Lusby about the Rust Programming Language.Link to Episode 106 on WebsiteTwitterADSP: The PodcastConor HoekstraBryce Adelstein LelbachAbout the Guest:Jane Losare-Lusby is currently on both the Rust Library Team and the Rust Library API Team. She is also the Error Handling Project Group Lead, the Rust Foundation Project Director of Collaboration, and a Principal Rust Open Source Engineer at Futurewei Technologies.Show NotesDate Recorded: 2022-11-02Date Released: 2022-12-02https://cheats.rs/Rustacean Station: Error Handling in Rust with Jane Losare-LusbyAre We Podcast Yet with Jane Losare-LusbyADSP poll about becoming a Rust podcastConor's Tweet about /cpp vs /rustADSP Episode 101: C++ Developers Try Rust!C++23 std::views::zipRust std::iter::Iterator::zipRust ClippyRust TraitsC++20 ConceptsEsteban K ber on TwitterRust unsafeRust miriThis Week in RustRust AnalyzerRust std::iter::Iterator::flat_mapRust std::iter::Iterator::enumerateIntro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: http://bit.ly/l-miss-youMusic promoted by Audio Library https://youtu.be/iYYxnasvfx8
話したネタ デザインパターンとは? ソフトウェアパターン 書籍: オブジェクト指向における再利用のためのデザインパターン Gang of Four 進研ゼミみたいなもの Composite パターン デザインパターン以外のソフトウェアパターンとは? アーキテクチャパターン、アンチパターン、コンカレンシーパターン AWSクラウドデザインパターン パターンにはフォーマットがある GoFのデザインパターンはいつ頃生まれたもの? GoFのデザインパターン登場時に、ソフトウェア業界では何が起きていたのか? Ruby 20 周年記念パーティーレポート ―― プログラミング初心者の運営スタッフが見た Ruby コミュニティ C、C++、Perl、Smalltalk、Visual Basic の時代 デザインパターンには、どういうカテゴリがある? 生成・構造・振る舞い Javaのクラスライブラリにおけるデザインパターン利用 GoFデザインパターンは、2021年において活用できるのか? Iteratorパターン の言語標準実装 Iterator の登場背景とは?本質とは? 深さ優先探索と幅優先探索 2021年で不要となったデザインパターンは? Singletonパターンはいらない Singletonパターンが解きたかった課題と引き起こす副作用 グローバル状態の共有、テストとの相性の悪さ、プロセス内での単一は現代において意味があまりない Singletonの解決したかった課題を、現代ではどう解くのか? DI(Dependenc Injection) IoC(Inversion of Control) オブジェクト指向における依存性解決 DIは、たとえばどう実装するのか? DI Containerとは? 生成知識は結合度が高い 書籍: LeanとDevOpsの科学 DI Container はどう実装するのか? エピソードスポンサー 株式会社ゆめみ
There are a wealth of reasons for understanding and recognizing software patterns. However, these three crucial software design patterns appear in many different environments. They might even rise to the level of things you should know even without knowing what they are called. These patterns are prevalent and used heavily in modern software solutions. Model-View-Controller (MVC) The first pattern in our list is an architectural approach that is found in many modern web applications. We have seen advances beyond this simple and reliable pattern. Nevertheless, this approach is perfect for common CRUD applications. That makes it an excellent starting point for a minimally viable product while allowing for extensive growth. As always, a solid foundation is a key to future success with any architecture. Product Catalog: Build an MVC Application to Manage Our Catalog Singleton The Singleton is one of the least known patterns by name while still understanding its general purpose. I have come across numerous developers that have not heard of this pattern. However, once it is explained, they understand and have often seen it in use many times. I am not sure why this name seems so elusive, but that does not lower its value. The strengths and weaknesses of this approach are particularly important in the way modern software is created. We tend to use a large number of class instances in an application, and Singletons can help us manage those along with memory and race condition errors. Software Design – The Singleton Pattern Iterator This example is one of the most important software design patterns in modern programming. It is found in most frameworks and even natively in manner languages. We rarely create a program that does not use loops and collections. Therefore, a pattern for looping through a collection is going to appear over and over. That is where the Iterator comes in. It is often provided for us, and we do not need to create it from scratch. Nevertheless, we do need to be comfortable using the pattern. Good programming standards practically demand it. Software Design – The Iterator Pattern
This is an interview with Conor Hoekstra about C++ algorithms and ranges. Conor presented my favorite talk at CppCon 2019 called Algorithm Intuition. I asked him to talk about algorithms on this podcast and he agreed. This just proves again why CppCon is the best place to be when you want to improve your C++ […]
Meet Rustacean Station, a new Rust “meta podcast”, and take a dive into the new 1.36.0 Rust release with Ben and Jon. If you would like to offer Rust-related podcast content for us to host, or would like advice and resources on making your own Rust podcast, get in touch with us via the venues below! Twitter: @rustaceanfm Discord: Rustacean Station Github: @rustacean-station Email: hello@rustacean-station.org In the episode [@4:27] - std::future [@11:29] - std::task [@14:22] - the alloc crate [@18:52] - std::collections::HashMap and hashbrown [@22:50] - std::mem::MaybeUninit and the deprecation of std::mem::uninitialized (mentioned: Error::type_id destabilization and std::pin discussion) [@36:24] - NLL for Rust 2015 (mentioned: MIR) [@44:45] - cargo --offline and cargo fetch [@46:50] - ongoing stdlib constification [@47:25] - read_vectored and write_vectored [@49:05] - Iterator::copied [@49:58] - dbg! enhancements [@51:19] - #[must_use] for is_err and is_ok Credits Intro Theme: Aerocity Audio Editing: Reece McMillin Hosting Infrastructure: Jon Gjengset Show Notes: Ben Striegel Hosts: Ben Striegel, Jon Gjengset Special Thanks: Chris Krycho, Andrew Gallant, Mae McCauley
At long last, we come to my number one pattern. The iterator is one of those software concepts that you come across and do not know how you managed before you learned it. Maybe it is just my frequent need to work through a collection of objects, but I think this is one of the most fundamental behavioral patterns you can master. The Iterator Pattern Defined As always, we will start with the "Gang of Four" intent to set the stage for our discussion. "Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation." Yes, this is the "while" syntax of software patterns. The goal is to walk through a collection without regard to the underlying data or mechanism. Thus, whether you have an array, a list, a linked list, a doubly linked list, or some other device for your collection, an iterator will give you sequential access. Applying The Pattern While a highly useful pattern, this also is one of the easiest to implement. An iterator only requires a method for progressing to the next item in the collection. It is helpful to include convenience functions like first, last, and a way to determine if you are at the beginning or end of a group. However, those are not required to meet the stated intent. While an iterator is roughly an interface, it does make sense to have concrete implementations of that interface that can be passed around. That also gives the most flexibility. A class can have a helper iterator class that progresses through properties and collections as needed for the utilization of the primary class. Java, PHP, C#, etc. There is nothing special required for an iterator (you do not even need inheritance). However, most modern languages have built-in iterators for their core objects. Thus, you might want to browse through the API before you try to build one on your own. Likewise, there are numerous examples of how to use an iterator. Therefore, if you are not comfortable with one then start there.
Soroush and Chris share some sad news, talk about Soroush's first official Swift Evolution proposal, and a post about giving presentations by Dave DeLong.Soroush’s pitch: `count(where:)` on SequenceE66: Sequence and Collection and Iterator, Oh MyHarlan Haskins & Robert Widmann - Becoming An Effective Contributor to SwiftHow to Read the Swift Standard Library SourceSoroush’s Swift PRSoroush’s Swift Evolution proposal PRSwift Unwrapped: 56: SE-206 Hashable EnhancementsChris Lattner’s comment on Soroush’s pitchE60: Soroush in the Standard LibrarySoroush’s Lazy dropLast implementationDave DeLong: You should give that presentationProductivity Strategies: Exploration vs ExploitationMulti-armed bandit experiments
Soroush's Sequence and Collection talk from Playgrounds last year [Pitch] Remove the single-pass requirement on Sequence Cryptographically secure pseudorandom number generator Ben cohen / @airspeedswift Ben's thread on Twitter Dave Abraham's Github repo AnySequence / type erasers The Fencepost Problem Soroush's Galaxy Brain meme sequence(first:next:) Nate Cook / @nnnnnnnn Soroush's pull request for the count(where:)implementation Soroush's pull request for the count(where:)proposal
Soroush and Chris talk about Sequences, Collections, and Swift Evolution drama.Get a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.
In this episode of Fragmented, we go back to learning some Kotlin and look at the Iterable like data structure introduced called "Sequences". What is a sequence? How is it different from Iterable? When should I use it? Listen on and find out! Show notes at http://fragmentedpodcast.com/episodes/109/
A new track by DJ Habett from the album "Plutophobia" (2017-12-29). Tags: Span, Ellipsis, Station, Drain, Mental, Pills, Amalgam, Geometry, Lame, Attic, Mention, Closure, Temporal, Tonal, Shades, Glance, Abuse CC(by)
Show Notes Stefans Feedparser-Algorithmus Algorithmus Panoptikum Der Source Code zu Panoptikum Stefans Problem gehört zum mathematischen Gebiet der Predictive Analytics Binomialverteilung und Normalverteilung Stefans Feed Parser in dem ein Iterator und ein Analyzer einander aufrufen. Das Element zum Blocken heisst bzw. . Algorithmen Sortierverfahren Sortieralgorithmen veranschaulicht: 15 Sorting Algorithms in 6 Minutes Sortier-Algorithmen vorgetanzt Fibonacci-Folge Numberphile Computerphile DFA Deterministic finite automaton Formale Sprachen Mit JFLAP endliche Automaten selber bauen Spiel_des_Lebens Stefans Logo zeigt den Gleiter im Browser laufend als nette Animation in pseudo-3D und wirklich in 3D viele interessante Animationen als Youtube Video epic conway’s game of life Ein ganze Community-Site zum Thema: ConwayLife.com Game Of Life Total War Gödel Escher Bach von Douglas Hofstadter ANA Tag 1 Heroku AOCQA JRuby JRuby Cookbook Gem Atom Gitlab Befehle Befehl Beschreibung jrbuy -v Abfragen der installierten Ruby Version gem -v Abfragen der installierten Gem Version jirb JRubys Version von Interactive Ruby (irb) rails new ana Projekt ana anlegen git init Git Repositoty initialisieren git add –all . alle Files in Repository aufnehmen git commit -am “Kommentar zum Commit” Commit mit Kommentar erstellen git push origin master auf den Server pushen
Auto and var types do have a type. The compiler will figure out what that is.
The iterator behavioral pattern allows you to access objects in a collection or anything that contains multiple items without worrying about how this is done.
Iterators give you the ability to navigate from one item to another in a collection and track a specific position within a collection. This episode is part two and continues describing even more advanced iterator topics.
Iterators give you the ability to navigate from one item to another in a collection. Why is this so special? Now that you know how to work with various collections, you know that they are structured very differently. An array just needs to move a pointer to the next item. A list needs to follow wherever the next pointer leads. A binary tree needs to go up and down the tree. Iterators give you a common way to navigate no matter what kind of collection you are using.
Notes Last time, we looked at generics and traits at a high level. This time, we dig deeper on traits, looking specifically at std::iter::Iterator as an example of a powerful trait that can be composed across types, and then at how we might compose multiple traits on a single type. We also talk about the syntax for traits, the use of marker traits, some of the things you can’t presently do with traits, and even just a smidge about the future of traits in Rust. All that in less than 20 minutes! You’ll find today’s source example fairly interesting, I think: it’s just one type, but it uses almost every concept discussed on the show today! Links Nick Cameron: “Thoughts on Rust in 2016” “Upcoming breakage starting in Rust 1.7, from RFCs 1214 and 136” RFC 1214: Clarify (and improve) rules for projections and well-formedness RFC 136: Ban private items in public APIs The Rust Book: Traits Trait objects (dynamic dispatch) The Rust reference: std::iter and std::iter::Iterator Add Drop PartialEq and Eq PartialOrd and Ord Special traits Trait objects RFC: impl specialization Aaron Turon: “Specialize to reuse” Sponsors Aleksey Pirogov Chris Palmer Derek Morr Hamza Sheikh Luca Schmid Micael Bergeron Ralph Giles (“rillian”) reddraggone9 William Roe Become a sponsor Patreon Venmo Dwolla Cash.me Follow New Rustacean: Twitter: @newrustacean App.net: @newrustacean Email: hello@newrustacean.com Chris Krycho Twitter: @chriskrycho App.net: @chriskrycho
We’re back to the gang of four, continuing with another segment of design patterns. This time we’re talking about some of our favorite Behavioral Design Patterns: Observer, Chain of Responsibilities, Iterator patterns. Also, why the visitor pattern is weird and what it’s like to be raked over hot coals. News Atlanta Code Camp was amazing […]
It’s the monthly all-over-the-place version of the show, and this time we have a mix of various topics like the cloud, T-SQL development, performance, SQL Server 2014, events and presentation skills. We also have some more mystery around the Non-Blocking Sort issue from earlier shows. More specifically, we talk about: Is the cloud a threat or opportunity for DBAs? The ways to pass a list of values to a Stored Procedure The distribution of installations between SQL Server versions Non-Blocking Sort – Is there a hidden Iterator that helps it? Various presentations worth watching The new SQL Server 2014 Cardinality Estimator And more.. Items mentioned in the show: Guy Glantser – DBA in the Cloud: Threat or Opportunity? Adam Machanic – SQLCLR String Splitting Part 2: Even Faster, Even More Scalable Erland Sommarskog – Arrays and Lists in SQL Server 24 Hours of Pass Summit Preview Edition Julie Koesmarno – “I Want It NOW!” Data Visualization with Power View Kalen Delaney – In-Memory OLTP Internals: How is a 30x Performance Boost Possible? 24 Hours of Pass Portuguese Edition 24 Hours of Pass SQL Server 2014 Edition Sunil Agarwal – SQL Server 2014: In-Memory OLTP for Database Administrators Sunil Agarwal – Columnstore Technical Deep Dive Jimmy May – Columnstore Indexes in SQL Server 2014: Flipping the DW Faster Bit SQLSaturday Israel Aaron Bertrand – Tricks to play on your DBA Madeira Course – What’s New in SQL Server 2014?
With tracks from Chicago Skyway, Sascha Dive, Culoe De Song, Jonny White, Silky Sunday, Permanent Vacation, Akabu, Marcus Worgull, Tevo Howard, Delano Smith, Daniel Klein Aka Gucciman, Superpitcher, DJ Koze, Arto Mwambé, Azuni and Henrik Schwarz/Kuniyuki. Contact: dj@ribeaud.ch.