POPULARITY
Categories
In this episode of JavaScript Jabber, I sit down with AWS's Clare Liguori and Erik Hanchett to talk about Kiro, a brand-new AI-powered IDE that's reimagining the way developers build software. We dive into how Kiro takes “AI-assisted coding” to a new level through spec-driven development — a process that focuses on defining requirements and collaborating with AI to break projects into clear, manageable tasks.We unpack what sets Kiro apart from tools like Cursor and Copilot, explore its supervised vs. autopilot coding modes, and even talk about how it handles UI design, planning, and complex legacy codebases. Clare and Erik share behind-the-scenes insights on how Kiro was built using Kiro itself, what's coming next for the platform, and how developers can join the early-access community to help shape its future.
Will this be the AI update that finally brings AI agents to millions?
Talk Python To Me - Python conversations for passionate developers
Today we're turning tiny tips into big wins. Khuyen Tran, creator of CodeCut.ai, has shipped hundreds of bite-size Python and data science snippets across four years. We dig into open-source tools you can use right now, cleaner workflows, and why notebooks and scripts don't have to be enemies. If you want faster insights with fewer yak-shaves, this one's packed with takeaways you can apply before lunch. Let's get into it. Episode sponsors Sentry Error Monitoring, Code TALKPYTHON Agntcy Talk Python Courses Links from the show Khuyen Tran (LinkedIn): linkedin.com Khuyen Tran (GitHub): github.com CodeCut: codecut.ai Production-ready Data Science Book (discount code TalkPython): codecut.ai Why UV Might Be All You Need: codecut.ai How to Structure a Data Science Project for Readability and Transparency: codecut.ai Stop Hard-coding: Use Configuration Files Instead: codecut.ai Simplify Your Python Logging with Loguru: codecut.ai Git for Data Scientists: Learn Git Through Practical Examples: codecut.ai Marimo (A Modern Notebook for Reproducible Data Science): codecut.ai Text Similarity & Fuzzy Matching Guide: codecut.ai Loguru (Python logging made simple): github.com Hydra: hydra.cc Marimo: marimo.io Quarto: quarto.org Show Your Work! Book: austinkleon.com Watch this episode on YouTube: youtube.com Episode #522 deep-dive: talkpython.fm/522 Episode transcripts: talkpython.fm Theme Song: Developer Rap
AI Assisted Coding: Beyond AI Code Assistants: How Moldable Development Answers Questions AI Can't With Tudor Girba In this BONUS episode, we explore Moldable Development with Tudor Girba, CEO of feenk.com and creator of the Glamorous Toolkit. We dive into why developers spend over 50% of their time reading code—not because they want to, but because they lack the answers they need. Tudor shares how building contextual tools can transform software development, making systems truly understandable and enabling decisions at the speed of thought. The Hidden System: A Telco's Three-Year Quest "They had a system consisting of five boxes, but they could only enumerate four. If this is your level of awareness about what is reality around you, you have almost no chance of systematically affecting that reality." Tudor opens with a striking case study from a telecommunications company that spent three years and hundreds of person-years trying to optimize a data pipeline. Despite massive effort and executive mandate, the pipeline still took exactly one day to process data—no improvement whatsoever. When Tudor's team investigated, they asked for an architecture diagram. The team drew four boxes representing their system. But when Tudor's team started building tools to mirror this architecture back from the actual code, they discovered something shocking: there was an entire fifth system between the first and second boxes that nobody knew existed. This missing system was likely the bottleneck they'd been trying to optimize for three years. Why Reading Code Doesn't Scale "Developers spend more than 50% of their time reading code. The problem is that our systems are typically larger than anyone can read, and by the time you finish reading, the system has already changed many times." The real issue isn't the time spent reading—it's that reading is the most manual, least scalable way to extract information from systems. When developers read code, they're actually trying to answer questions so they can make decisions. But a 250,000-line system would take one person-month to read at high speed, and the system changes constantly during that time. This means everything you learned yesterday becomes merely a hypothesis, not a reliable answer. The fundamental problem is that we cannot perceive anything in a software system except through tools, yet we've never made how we read code an explicit, optimizable activity. The Context Problem: Why Generic Tools Fail "Software is highly contextual, which means we can predict classes of problems people will have, but we cannot predict specific problems people will have." Tudor draws a powerful parallel with testing. Nobody downloads unit tests from the web and applies them to their system—that would be absurd. Instead, we download test frameworks and build tests contextually for our specific system, encoding what's valuable about our particular business logic. Yet for almost everything else in software development, we download generic tools and expect them to work. This is why teams have tens of thousands of static analysis warnings they ignore, while a single failing test stops deployment. The test encodes contextual value; the generic warning doesn't. Moldable Development extends this principle: every question about your system should be answered by a contextual tool you build for that specific question. Tools That Mirror Your Mental Model "Whatever you draw on the whiteboard—that's your mental model. But as soon as the system exists, we want the system to mirror you back that thing. We make it the job of the system to show our mental model back to us." When someone draws an architecture diagram on a whiteboard, they're not documenting the system—they're documenting their beliefs about the system. The diagram represents wishes when drawn before the system exists, but beliefs when drawn after. Moldable Development flips this: instead of humans reading code and creating approximations, the system itself generates the visualization directly from the actual code. This eliminates the layers of belief and inference. Whether you're looking at high-level architecture, data lineage across multiple technologies, performance bottlenecks, or business domain structure, you build small tools that extract and present exactly the information you need from the system as it actually is. The Test-Driven Development Parallel "Testing was a way to find some kind of class of answers. But there are many other questions we have, and the question is: is there a systematic way to approach arbitrary questions?" Tudor explains that Moldable Development applies test-driven development principles to all forms of system understanding. Just as we write tests after we understand the functionality we need, we build visualization and analysis tools after we understand the questions we need answered. Both approaches share key characteristics: they're built contextually for the specific system, created by developers during development, and composed of many small tools that collectively model the system. The difference is that TDD focuses on functional decomposition and known expectations, while Moldable Development addresses architecture, security, domain structure, performance, and any other perspective where functional tests aren't the most useful decomposition. From Thousands of Features to Thousands of Tools "In my development environment, I don't have features. I have thousands of tools that coexist. Development environments should be focused not on what exists out of the box, but on how quickly you can create a contextual tool." Traditional development environments offer dozens of features—buttons, plugins, generic views. But Moldable Development environments contain thousands of micro-tools, each answering a specific question about a specific system. The key is making these tools composable and fast to create. Rather than building monolithic tools that try to handle every scenario, you build small inspectors that show one perspective on one object or concept. These inspectors chain together naturally as you drill down from high-level questions to detailed investigations. You might have one inspector showing test failures grouped by exception type, another showing PDF document comparisons, another showing cluster performance, and another showing memory usage—all coexisting and available when needed. The Real Bottleneck To Learning A System: Time to the Next Question "Once you do this, you will see that the interesting bottleneck is in the time to the next interesting question. This is by far the most interesting place to be spending energy." When you commoditize access to answers through contextual tools, something remarkable happens: the bottleneck shifts from getting answers to asking better questions. Right now, because answers come so slowly through manual reading and analysis, we rarely exercise the skill of formulating good questions. We make decisions based on gut feelings and incomplete data because we can't afford to dig deeper. But when answers arrive at the speed of thought, you can explore, follow hunches, test hypotheses, and develop genuine insight. The conversation between person and system becomes fluid, enabling decision-making based on actual evidence rather than belief. Moldable Development in Practice: The Lifeware Case "They are investing in software engineering as their competitive advantage. They have 150,000 tests that would take 10 days to run on a single machine, but they run them in 16 minutes distributed across AWS." Tudor shares a powerful case study of Lifeware, a life insurance software company that was featured in Kent Beck's "Test-Driven Development by Example" in 2002 with 4,000 tests. Today they have 150,000 tests and have fully adopted Moldable Development as their core practice. Their business model is remarkable: they take data from insurance companies, throw away the old systems, and reverse-engineer new systems by TDD-ing the business—replaying history to produce pixel-identical documents. They've deployed Glamorous Toolkit as their sole development environment across 100+ developers. Their approach demonstrates that Moldable Development isn't just a research concept but a practical competitive advantage that scales to large teams and complex systems. Why AI Doesn't Solve This Problem "When you ask AI, you will get exactly the same kind of answers. The answer comes quickly, but you will not know whether this is accurate, whether this represents the whole thing, and you definitely do not have an explanation as to why the answer is the way it is." In the age of AI code assistants, it might seem like language models could solve the problem of understanding systems. But Tudor explains why they can't. When you ask an AI about your architecture, you get an opinion—fast but unverifiable. Just like asking a developer to draw the architecture on a whiteboard, you receive filtered information without knowing if it's complete or accurate. Moldable Development, by contrast, extracts answers deterministically from the actual system. Software systems have almost no ambiguity in meaning—they're mathematical, not linguistic. We don't need probabilistic interpretation of source code; we need precise extraction and presentation. The tools you build give you not just answers but explanations of how those answers were derived from the actual system state. Scaling Through Language, Not Features "You need a new kind of development environment where the goal is to create tools much quicker. You need some sort of language in which to express development environments." The technical challenge of Moldable Development is enabling thousands of tools to coexist productively. This requires a fundamentally different approach to development environments. Instead of adding features—buttons and menu items that quickly become overwhelming—you need a language for expressing tools and a system for composing them. Glamorous Toolkit demonstrates this through its inspector architecture, where any object can define custom views that appear contextually. These views compose naturally as you navigate through your investigation, reusing earlier perspectives while adding new ones. The environment becomes a medium for tool creation, not just a collection of pre-built features. Making the Invisible Visible "We cannot perceive anything in a software system except through a tool. If that's so important, then the ability to control that shape is probably kind of important too." Software has no inherent shape—it's just data. Every perception we have of it comes through some tool that renders it into a form we can reason about. This means tools aren't nice-to-have accessories; they're fundamental to our ability to work with software at all. The text editor showing code is a tool. The debugger showing variables is a tool. But these are generic tools built once and reused everywhere, which means they show generic perspectives. What if we could control the shape of our software as easily as we write it? What if the system could show us exactly the view we need for exactly the question we have? That's the promise of Moldable Development. About Tudor Girba Tudor Girba is CEO of feenk.com and creator of Moldable Development. He leads the team behind Glamorous Toolkit, a novel IDE that helps developers make sense of complex systems. His work focuses on transforming how teams understand, navigate, and modernize legacy software through custom, insightful tools. Tudor and Simon Wardley are writing a book about Moldable Development which you can get at: https://moldabledevelopment.com/, and read more about in this Medium article. You can link with Tudor Girba on LinkedIn.
Kam smerujeme? Čaká nás nová éra alebo už v nej sme? Niektorí hovoria o zlatej ére. ( pozrite aj ❤Link na živé podujatia: https://www.40plus.sk/podujatia-odznova/ ❤Link na vychytávky a zľavy: https://www.40plus.sk/vychytavky/ )
Dnes sa budem rozprávať s Janom Matyášom na tému autopatia. ( pozrite aj ❤Link na živé podujatia: https://www.40plus.sk/podujatia-odznova/ ❤Link na vychytávky a zľavy: https://www.40plus.sk/vychytavky/ ) Zbaviť sa problémov vlastnými slinami, dychom či myšlienkami? Pýtala som sa aj:
V Piešťanoch sme našli mimoriadne talentovaných hudobníkov. Ide o kapelu Blues Rock Generations, ktorá vznikla v roku 2021 a už od svojho počiatku je unikátna. Zaujme nielen svojim hudobným smerovaním, ale aj zložením. Členov kapely sme vyspovedali, na rádiovej vlne Trnavského prezradili viac o svojich začiatkoch, autorskej tvorbe aj o plánoch do budúcnosti.
Talk Python To Me - Python conversations for passionate developers
English is now an API. Our apps read untrusted text; they follow instructions hidden in plain sight, and sometimes they turn that text into action. If you connect a model to tools or let it read documents from the wild, you have created a brand new attack surface. In this episode, we will make that concrete. We will talk about the attacks teams are seeing in 2025, the defenses that actually work, and how to test those defenses the same way we test code. Our guides are Tori Westerhoff and Roman Lutz from Microsoft. They help lead AI red teaming and build PyRIT, a Python framework the Microsoft AI Red Team uses to pressure test real products. By the end of this hour you will know where the biggest risks live, what you can ship this quarter to reduce them, and how PyRIT can turn security from a one time audit into an everyday engineering practice. Episode sponsors Sentry AI Monitoring, Code TALKPYTHON Agntcy Talk Python Courses Links from the show Tori Westerhoff: linkedin.com Roman Lutz: linkedin.com PyRIT: aka.ms/pyrit Microsoft AI Red Team page: learn.microsoft.com 2025 Top 10 Risk & Mitigations for LLMs and Gen AI Apps: genai.owasp.org AI Red Teaming Agent: learn.microsoft.com 3 takeaways from red teaming 100 generative AI products: microsoft.com MIT report: 95% of generative AI pilots at companies are failing: fortune.com A couple of "Little Bobby AI" cartoons Give me candy: talkpython.fm Tell me a joke: talkpython.fm Watch this episode on YouTube: youtube.com Episode #521 deep-dive: talkpython.fm/521 Episode transcripts: talkpython.fm Developer Rap Theme Song: Served in a Flask: talkpython.fm/flasksong --- Stay in touch with us --- Subscribe to Talk Python on YouTube: youtube.com Talk Python on Bluesky: @talkpython.fm at bsky.app Talk Python on Mastodon: talkpython Michael on Bluesky: @mkennedy.codes at bsky.app Michael on Mastodon: mkennedy
Topics covered in this episode: * PostgreSQL 18 Released* * Testing is better than DSA (Data Structures and Algorithms)* * Pyrefly in Cursor/PyCharm/VSCode/etc* * Playwright & pytest techniques that bring me joy* Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: PostgreSQL 18 Released PostgreSQL 18 is out (Sep 25, 2025) with a focus on faster text handling, async I/O, and easier upgrades. New async I/O subsystem speeds sequential scans, bitmap heap scans, and vacuum by issuing concurrent reads instead of blocking on each request. Major-version upgrades are smoother: pg_upgrade retains planner stats, adds parallel checks via -jobs, and supports faster cutovers with -swap. Smarter query performance lands with skip scans on multicolumn B-tree indexes, better OR optimization, incremental-sort merge joins, and parallel GIN index builds. Dev quality-of-life: virtual generated columns enabled by default, a uuidv7() generator for time-ordered IDs, and RETURNING can expose both OLD and NEW. Security gets an upgrade with native OAuth 2.0 authentication; MD5 password auth is deprecated and TLS controls expand. Text operations get a boost via the new PG_UNICODE_FAST collation, faster upper/lower, a casefold() helper, and clearer collation behavior for LIKE/FTS. Brian #2: Testing is better than DSA (Data Structures and Algorithms) Ned Batchelder If you need to grind through DSA problems to get your first job, then of course, do that, but if you want to prepare yourself for a career, and also stand out in job interviews, learn how to write tests. Testing is a skill you'll use constantly, will make you stand out in job interviews, and isn't taught well in school (usually). Testing code well is not obvious. It's a puzzle and a problem to solve. It gives you confidence and helps you write better code. Applies everywhere, at all levels. Notes from Brian Most devs suck at testing, so being good at it helps you stand out very quickly. Thinking about a system and how to test it often very quickly shines a spotlight on problem areas, parts with not enough specification, and fuzzy requirements. This is a good thing, and bringing up these topics helps you to become a super valuable team member. High level tests need to be understood by key engineers on a project. Even if tons of the code is AI generated. Even if many of the tests are, the people understanding the requirements and the high level tests are quite valuable. Michael #3: Pyrefly in Cursor/PyCharm/VSCode/etc Install the VSCode/Cursor extension or PyCharm plugin, see https://pyrefly.org/en/docs/IDE/ Brian spoke about Pyrefly in #433: Dev in the Arena I've subsequently had the team on Talk Python: #523: Pyrefly: Fast, IDE-friendly typing for Python (podcast version coming in a few weeks, see video for now.) My experience has been Pyrefly changes the feel of the editor, give it a try. But disable the regular language server extension. Brian #4: Playwright & pytest techniques that bring me joy Tim Shilling “I've been working with playwright more often to do end to end tests. As a project grows to do more with HTMX and Alpine in the markup, there's less unit and integration test coverage and a greater need for end to end tests.” Tim covers some cool E2E techniques Open new pages / tabs to be tested Using a pytest marker to identify playwright tests Using a pytest marker in place of fixtures Using page.pause() and Playwright's debugging tool Using assert_axe_violations to prevent accessibility regressions Using page.expect_response() to confirm a background request occurred From Brian Again, with more and more lower level code being generated, and many unit tests being generated (shakes head in sadness), there's an increased need for high level tests. Don't forget API tests, obviously, but if there's a web interface, it's gotta be tested. Especially if the primary user experience is the web interface, building your Playwright testing chops helps you stand out and let's you test a whole lot of your system with not very many tests. Extras Brian: Big O - By Sam Who Yes, take Ned's advice and don't focus so much on DSA, focus also on learning to test. However, one topic you should be comfortable with in algortithm-land is Big O, at least enough to have a gut feel for it. And this article is really good enough for most people. Great graphics, demos, visuals. As usual, great content from Sam Who, and a must read for all serious devs. Python 3.14.0rc3 has been available since Sept 18. Python 3.14.0 final scheduled for Oct 7 Django 6.0 alpha 1 released Django 6.0 final scheduled for Dec 3 Python Test Static hosting update Some interesting discussions around setting up my own server, but this seems like it might be yak shaving procrastination research when I really should be writing or coding. So I'm holding off until I get some writing projects and a couple SaaS projects further along. Joke: Always be backing up
Život v Bohu, život v atmosfére viery je ako revolúcia. Ide tu o život premieňajúce evanjelium! Prvým krokom k tomu, aby sme túto revolúciu zažili, je, že chceme úplnú zmenu svojho života. A nepripodobňujte sa tomuto svetu, ale premeňte sa obnovením mysle… (R 12,2) Nepripodobňujte sa tomuto svetu je príkaz, ktorý hovorí o voľbe, ktorú […] Curt Westman
Je to najväčšia platobná sieť sveta, spája vyše 150 miliónov obchodníkov a 4,8 miliardy držiteľov karty. Visa udáva smer budúcnosti platieb. Aká je? V relácii Ide o peniaze sa dozviete: Visa udáva smer budúcnosti platieb. Ako budú vyzerať v najbližších piatich rokoch? Ako sa dajú zjednodušiť platby v online priestore, aby boli pohodlné a rýchle? Ako Visa pristupuje k znižovaniu miery podvodov? Umelá inteligencia - ako sa dá využiť pri bezpečnosti platieb? Ako spoločnosť Visa zlepšuje nákupné zážitky spotrebiteľa? Kartami Visa sa platí na celom svete. Ako je na tom Slovensko, nielen z pohľadu spotrebiteľov, ale aj z pohľadu obchodníkov? Koľko ľudí platí prednostne digitálne a ako sa správajú, keď sa niekde nedá platiť kartou? Čo by Marcel Gajdoš odkázali slovenským obchodníkom, ktorí stále neakceptujú bezhotovostné platby? Je ešte v digitálnej ére nevyhnutné vydávať plastové karty? Aké ďalšie kroky robí Visa v oblasti udržateľnosti? V relácii Ide o peniaze odpovedal Marcel Gajdoš, generálny riaditeľ Visa pre Česko, Maďarsko a Slovensko.
Jej kariérna cesta viedla od novinárčiny cez prácu pre energetický koncern až do prestížneho aukčného domu Christie's v Londýne. Dnes sprievodkyňa svetom umenia Barbora Půlpánová búra mýty a ukazuje, že zbieranie umenia nie je len výsadou bohatých. Je zakladateľkou programu Edu Art Experience, v rámci ktorého nadšencom a milovníkom umenia ukazuje spôsob,ako sa ním obklopiť, ako ho poznať, nakupovať a dokonca aj zhodnotiť. Najsilnejšie základy na ceste k tejto profesii skĺbenej vášňou jej ponúkol život v Londýne, kde pôsobila v slávnom aukčnom dome Christie's. Práve tam zažila atmosféru najväčších svetových dražieb. „Asi ten najväčší highlight bola dražba pozostalosti Rockefellerovcov. To sa dá prirovnať k turné rockovej hviezdy,“ spomína na prácu pre londýnsky aukčný dom. Najlepšou školou však bola možnosť pozrieť sa priamo do jeho depozitárov a tiež absolvovať niekoľko programov, ktoré zavŕšili medzinárodné certifikáty. "Keďže som pôsobila v oddelení Christie´s Education, absolvovala som všetky programy, ktoré ponúkali. Preberali sme jednotlivé aspekty umenia, čo veľmi pomôže aj v tom umeniu rozumieť. Najviac vás však naučí samotná prax," skonštatovala pre Pravdu Půlpánová. Práve skúsenosti zo zahraničia ju priviedli k založeniu vlastného programu, v ktorom učí, ako investovať do umenia a ako mu porozumieť. „Umenie je len pre bohatých? Túto bariéru máme často len v hlave,“ priznala sprievodkyňa svetom umenia, ktorá však vzápätí dodala, že začať sa dá aj s menším rozpočtom a netreba sa nechať odradiť mýtami. S Barborou Půlpánovou sme sa rozprávali aj o tom, či umenie podlieha trendom, ako naň vplýva spoločenská situácia alebo aký je začiatočný rozpočet pre nového zberateľa. Prezradila tiež, prečo je umenie ako terapia a ako nás dokáže zmeniť. Viac už sa dozviete v relácii Ide o nás.
Je to vnútorná vec klubu, netreba v tom hľadať žiadnu konšpiráciu, reagoval v relácii Ide o pravdu Roman Michelko (SNS), ktorý sa po Andrejovi Dankovi stal predsedom poslaneckého klubu SNS. Je to viac roboty za rovnakú mzdu, ale ja nie som politikom pre financie, dodal.
Recebemos a brilhante Michelle Mesquita para provar, na prática, que AppSec não é sinônimo de “rodar um scanner e rezar”. Conversamos sobre como construir segurança desde o design, passando por threat modeling, SAST/DAST/SCA e políticas reprodutíveis — tudo sem cair na armadilha do PDF de vulnerabilidades que ninguém lê. Sim, nós também rimos (de nervoso) quando lembramos daqueles relatórios com 500 findings.Falamos ainda sobre carreira: onde começam as pessoas de AppSec, por que comunicação e influência importam tanto quanto CWE e CVE, e como programas como Security Champions destravam escala e cultura. Discutimos comunidades e referências (OWASP e afins), automação no pipeline, gamificação e até como usar IA para reduzir ruído e acelerar feedback útil para devs.E, claro, mantivemos o nosso jeitinho: didático, direto e levemente irônico. Se você quer sair do “firefighting” e colocar segurança como requisito funcional do seu produto, este episódio é para você. Prepare o café, abra o IDE e vem com a gente.O Kubicast é uma produção da Getup, empresa especialista em Kubernetes e projetos open source para Kubernetes. Os episódios do podcast estão nas principais plataformas de áudio digital e no YouTube.com/@getupcloud.
Hypotéza 35: V jednoduchosti by sme sa mali podriadiť našim predstaveným v Pánovi a prijímať ich príkazy akoby pochádzali od Boha, bez toho, aby sme ich kritizovali, skúmali alebo opravovali, aj keď sa nám v tom čase nezdajú byť prospešné. Filokalia Live - pravidelné online formačné stretnutia. Zámerom je spoznávanie a osvojovanie umenia duchovného života štúdiom učenia svätých otcov. Štvrtkové stretnutia sú venované uvažovaniu nad dielom Evergetinos. Ide o rozsiahlu zbierku výrokov a krátkych príbehov zo života púštnych otcov, ktorá bola zostavená mníchom Pavlom v 11. storočí. Každá kapitola dáva dôkladné vysvetlenie predstavenej témy a postupne čitateľa sprevádza od položenia základných kameňov duchovného život až po jeho výšiny. Stretnutia sa konajú každý pondelok a štvrtok o 20.00 hod. V prípade záujmu sa môžete zaregistrovať a e-mailom Vám bude zaslaný link pre vstup na stretnutie.
Realitný expert Trim Real Estate a zakladateľ portálu MrBestChoice.ae Milan Hnilica odpovedá na otázky o výhodách a rizikách kúpy nehnuteľnosti v Dubaji. V podcaste Nehnuteľnosti.sk sa dozviete:● či sa naozaj dajú kúpiť v Dubaji apartmány za 100 000 eur pri mori,● prečo je najväčšou chybou investorov emocionálny nákup nehnuteľností,● Prečo je vhodné investovať len do projektov, ktoré majú schválený tzv. escrow účet pod kontrolou dubajskej vlády● Že aj keď v Dubaji sú nulové dane, tak slovenskí investori bez rezidentského ID musia príjmy z nehnuteľností priznať a zdaniť na Slovensku● Do ktorých lokalít v Dubaji sa oplatí investovať z dlhodobého hľadiska● ako sa vyhnúť manipulácii s myšlienkou rýchleho predaja tzv. flipuNečakajte byt v Dubaji za 100 000 eur pri moriKto zo Slovákov si dnes môže dovoliť kúpiť nehnuteľnosť v Dubaji?S touto otázkou sa stretávam každý deň, pretože každý zvažuje, ako najlepšie investovať peniaze, a Dubaj sa dnes javí ako jedna z TOP destinácií na nákup a investovanie. Čo sa týka toho, pre koho je to vhodné, myslím si, že dnes v Dubaji môže vlastniť nehnuteľnosť ktokoľvek – každý Slovák. Závisí to len od toho, kde tá nehnuteľnosť bude a v akej bude hodnote. Je to skôr o jeho možnostiach, preferenciách a očakávaniach človeka. Každý by si mal pred investovaním zvážiť, kde je dnes, kde chce byť o 3 roky a kde o 10 rokov. A väčšina ľudí to robí. Problémom môže byť, keď uveria dezinformáciám alebo sa im ponúkajú informácie, ktoré nie sú úplne pravdivé. Ide skôr o reklamu a skutočnú realitu zistia až neskôr.Keď sa povie Dubaj, tak si asi človek na prvú predstaví miliónové ceny za byty. Ako to v skutočnosti je?Každý telefonát alebo kontakt s klientom začína otázkou, či si môže kúpiť apartmán za 130 000 eur alebo mám k dispozícii 100 000 eur a chcel by som byt pri mori. Apartmány v Dubaji sa dajú naozaj kúpiť rádovo okolo 100 - 120 000 eur, čo je v prepočte okolo 400 - 500 000 dirhamov. Len je otázka, že kde to bude. Nemôžete očakávať, že kúpite napríklad vilu v lukratívnej oblasti na Kolibe za 100 000 eur, takisto nekúpite ani apartmán v Dubaji za túto cenu pri mori. Ľudia sú dlhodobo zavádzaní a masírovaní informáciami, že v Dubaji kúpia čokoľvek a potom sú sklamaní. Zistia, že na to, aby boli pri mori, potrebujú doplatiť ďalšie státisíce eur. Napokon zistia, že apartmán, na ktorý ich nalákali s cenou 100 000 eur pri mori, stojí v skutočnosti 300-tisíc eur a to sa k moru len priblížite, nie ste priamo pri ňom. Ako sa vyhnúť chybám pri investovaní do nehnuteľností v DubajiAké sú také tie najväčšie chyby pri investovaní do nehnuteľnosti v Dubaji?Najväčšou chybou je, že ľudia nakupujú v emócii. Keď príde na rad emócia, tak akékoľvek objektívne a dátové analýzy, akékoľvek reálne čísla sa strácajú a nakupujete srdcom, hlavou. Proste sa zamilujete do projektu. V Dubaji sa zamilujete do každého projektu. Večer idete spať s pocitom, že daný projekt už nemôže byť lepší. Ráno zistíte, že developer spúšťa nový projekt, ktorý je ešte lepší ako ten, o ktorom ste si mysleli, že ho nemôže nič prekonať. Práve v tejto emócii ste schopní urobiť rozhodnutia, ktoré sa potom následne riešime my. Klienti, ktorí nakupovali pred 2-3 rokmi a teraz sa ich projekty dokončujú, začínajú mať problémy, pretože sa nepýtali na to, či je lokalita dobrá alebo či je developer spoľahlivý. Niektorí developeri dokážu meškať 2-3 roky a peniaze, ktoré ste investovali, sú zviazané...
Santo Espírito (parte 5) - André Manzoni by IDE
Talk Python To Me - Python conversations for passionate developers
A couple years ago, Charlie Marsh lit a fire under Python tooling with Ruff and then uv. Today he's back with something on the other side of that coin: pyx. Pyx isn't a PyPI replacement. Think server, not just index. It mirrors PyPI, plays fine with pip or uv, and aims to make installs fast and predictable by letting a smart client talk to a smart server. When the client and server understand each other, you get new fast paths, fewer edge cases, and the kind of reliability teams beg for. If Python packaging has felt like friction, this conversation is traction. Let's get into it. Episode sponsors Six Feet Up Talk Python Courses Links from the show Charlie Marsh on Twitter: @charliermarsh Charlie Marsh on Mastodon: @charliermarsh Astral Homepage: astral.sh Pyx Project: astral.sh Introducing Pyx Blog Post: astral.sh uv Package on GitHub: github.com UV Star History Chart: star-history.com Watch this episode on YouTube: youtube.com Episode #520 deep-dive: talkpython.fm/520 Episode transcripts: talkpython.fm Developer Rap Theme Song: Served in a Flask: talkpython.fm/flasksong --- Stay in touch with us --- Subscribe to Talk Python on YouTube: youtube.com Talk Python on Bluesky: @talkpython.fm at bsky.app Talk Python on Mastodon: talkpython Michael on Bluesky: @mkennedy.codes at bsky.app Michael on Mastodon: mkennedy
Joseph Mikhael, MD, and Krina K. Patel, MD, MSc, discuss considerations for CAR T-Cell therapy in multiple myeloma, including age, access, and bridging therapy. Relevant disclosures can be found with the episode show notes on Medscape https://www.medscape.com/viewarticle/1002715. The topics and discussions are planned, produced, and reviewed independently of advertisers. This podcast is intended only for US healthcare professionals. Resources Multiple Myeloma https://emedicine.medscape.com/article/204369-overview CARTITUDE-1 Final Results: Phase 1b/2 Study of Ciltacabtagene Autoleucel in Heavily Pretreated Patients With Relapsed/Refractory Multiple Myeloma https://ascopubs.org/doi/10.1200/JCO.2023.41.16_suppl.8009 Cilta-cel or Standard Care in Lenalidomide-Refractory Multiple Myeloma https://pubmed.ncbi.nlm.nih.gov/37272512/ Plain Language Summary of the KarMMa-3 Study of Ide-cel or Standard of Care Regimens in People With Relapsed or Refractory Multiple Myeloma https://pubmed.ncbi.nlm.nih.gov/38651976/ CAR T-Cell Therapy Toxicity https://www.ncbi.nlm.nih.gov/books/NBK592426/ Immunomodulatory Drugs in Multiple Myeloma: Mechanisms of Action and Clinical Experience https://pubmed.ncbi.nlm.nih.gov/28205024/ Incidence and Outcomes of Cytomegalovirus Reactivation After Chimeric Antigen Receptor T-Cell Therapy https://pubmed.ncbi.nlm.nih.gov/38838226/ Long-Acting Granulocyte Colony-Stimulating Factor in Primary Prophylaxis of Early Infection in Patients With Newly Diagnosed Multiple Myeloma https://pubmed.ncbi.nlm.nih.gov/35064823/ Revisiting the Role of Alkylating Agents in Multiple Myeloma: Up-to-Date Evidence and Future Perspectives https://pubmed.ncbi.nlm.nih.gov/37244325/ Bispecific Antibodies for the Treatment of Relapsed/Refractory Multiple Myeloma: Updates and Future Perspectives https://pubmed.ncbi.nlm.nih.gov/38660139/ FDA Eliminates REMS for Approved CAR T-Cell Therapies https://www.aabb.org/news-resources/news/article/2025/06/30/fda-eliminates-rems-for-approved-car-t-cell-therapies
Topics covered in this episode: * pandas is getting pd.col expressions* * Cline, At-Cost Agentic IDE Tooling* * uv cheatsheet* Ducky Network UI Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: pandas is getting pd.col expressions Marco Gorelli Next release of Pandas will have pd.col(), inspired by some of the other frameworks I'm guessing Pandas 2.3.3? or 2.4.0? or 3.0.0? (depending on which version they bump?) “The output of pd.col is called an expression. You can think of it as a delayed column - it only produces a result once it's evaluated inside a dataframe context.” It replaces many contexts where lambda expressions were used Michael #2: Cline, At-Cost Agentic IDE Tooling Free and open-source Probably supports your IDE (if your IDE isn't a terminal) VS Code VS Code Insiders Cursor Windsurf JetBrains IDEs (including PyCharm) You pick plan or act (very important) It shows you the price as the AI works, per request, right in the UI Brian #3: uv cheatsheet Rodgrigo at mathspp.com Nice compact cheat sheet of commands for Creating projects Managing dependencies Lifecycle stuff like build, publish, bumping version uv tool (uvx) commands working with scripts Installing and updating Python versions plus venv, pip, format, help and update Michael #4: Ducky Network UI Ducky is a powerful, open-source, all-in-one desktop application built with Python and PySide6. It is designed to be the perfect companion for network engineers, students, and tech enthusiasts, combining several essential utilities into a single, intuitive graphical interface. Features Multi-Protocol Terminal: Connect via SSH, Telnet, and Serial (COM) in a modern, tabbed interface. SNMP Topology Mapper: Automatically discover your network with a ping and SNMP sweep. See a graphical map of your devices, color-coded by type, and click to view detailed information. Network Diagnostics: A full suite of tools including a Subnet Calculator, Network Monitor (Ping, Traceroute), and a multi-threaded Port Scanner. Security Toolkit: Look up CVEs from the NIST database, check password strength, and calculate file hashes (MD5, SHA1, SHA256, SHA512). Rich-Text Notepad: Keep notes and reminders in a dockable widget with formatting tools and auto-save. Customizable UI: Switch between a sleek dark theme and a clean light theme. Customize terminal colors and fonts to your liking. Extras Brian: Where are the cool kids hosting static sites these days? Moving from Netlify to Cloudflare Pages - Will Vincent from Feb 2024 Traffic is a concern now for even low-ish traffic sites since so many bots are out there Netlify free plan is less than 30 GB/mo allowed (grandfathered plans are 100 GB/mo) GH Pages have a soft limit of 100 GB/mo Cloudflare pages says unlimited Michael: PyCon Brazil needs some help with reduced funding from the PSF Get a ticket to donate for a student to attend (at the button of the buy ticket checkout dialog) I upgraded to macOS Tahoe Loving it so far. Only issue I've seen so far has been with alt-tab for macOS Joke: Hiring in 2025 vs 2021 2021: “Do you have an in-house kombucha sommelier?” “Let's talk about pets, are you donkey-friendly?”, “Oh you think this is a joke?” 2025: “Round 8/7” “Out of 12,000 resumes, the AI picked yours” “Binary tree? Build me a foundational model!” “Healthcare? What, you want to live forever?”
„Nevšimol si, že bol 17. november a teraz nás chce všetkých zatiahnuť do tohto nevšímania.“ Veta, ktorou otvoril svoj príhovor na minulotýždňovom bratislavskom proteste. A túto vetu predchádzala iná: „Aj 17. november nám už zobrali a preto dovoľte, aby som vám predstavila osobnosť Novembra'89.“ Moderátorka podujatia takto uviedla Františka Mikloška. A ten v spomínanej prvej vete hovoril o aktuálnom premiérovi Robertovi Ficovi, ktorý si November nevšimol a do nevšímania chce uviesť krajinu. A to až akousi „normalizáciou nevšímania“.Dá sa však prehliadnuť symbol, ktorý pre krajinu a jej obyvateľov znamenal prechod z neslobody do slobody, z totality do demokracie? Napriek dráme, ktorá je skrytá v tejto otázke, neplatí aj to, že 17. november nám už zobrali, lebo sme ten konsolidačný suchý oznam o jeho neslávení pracovným pokojom prijali bez akéhokoľvek prvotného odporu?A dá sa vyvážiť symbol úsporou 150-miliónov? Otázky pre Františka Mikloška, ktorý November'89 formoval, predtým naň krajinu pripravoval a dodnes hľadá formy napĺňania jeho odkazu.„Sviatky si vieme osláviť, keď máme voľno. Vtedy máme čas sa zastaviť. Povedzme si otvorene, vo chvíli, keď to bude pracovný deň, stane sa s ním to, čo s 28. októbrom. Deň, ktorý znamenal aj pre Slovensko rozbeh, nevšímame si ho, lebo ide o pracovný deň. A o toto ide Robertovi Ficovi,“ hovorí jedná z tvárí Novembra'89 František Mikloško. „Ide tu ešte o viac: To, že nám chcú zrušiť 17. november je vlastne kontrarevolúcia k Nežnej revolúcii,“ dodáva.Novela ústavy - Ficov podvod„Novela ústavy je podvod Roberta Fica,“ konštatuje František Mikloško. „Nerozumiem, že to dokáže niekto prehliadnuť,“ dodáva. Na poznámku, že tento podvod chce KDH Ficovi podporiť, Mikloško reaguje, že je to „na ich zodpovednosti“.„Smiešnou“ pritom nazýva iniciatívu KDH „vykostiť“ Smer svojou podporou novely ústavy s mužom a ženou.„Podvozok“ KDH – cesta k bezvýznamnostiKDH však podľa Františka Mikloška pripravuje alternatívu k podpore Ficovho návrhu. Ustanovenie o mužovi a žene chce podľa neho presadiť prílepkom v druhom čítaní o inej novele ústavy, ktorou chcú práve kresťanskí demokrati umožniť poslankyniam na materskej disponovať „spočívajúcim mandátom“. V praxi by to znamenalo, že počas ich materských povinností by ich zastupoval poslanecký náhradník a v prípade, že by sa poslankyňa rozhodla vrátiť do poslaneckých lavíc, mandát by si zobrala.„Je to naoko nevinný paragraf, aký majú aj škandinávskej krajiny. Ale pokiaľ by prešiel do druhého čítania, bude tam snaha zo strany konzervatívnych politikov dať tam opäť novelu ústavy o mužovi a žene,“ hovorí František Mikloško. „Tam by sa stratil argument OĽANO (hnutia Slovensko), že by za to nehlasovali. Budú hlasovať, keď to bude návrh KDH,“ vysvetľuje.„Môže sa ľahko stať, že v októbri bude táto novela vďaka návrhu KDH na stole opäť, no iným spôsobom,“ konštatuje poslanec. „A pokiaľ sa k tomu Robert Fico pridá, tak to prejde.“ V KDH o tomto návrhu hovoria ako o „podvozku“ pre novelu ústavy o dvoch pohlaviach.František Mikloško hovorí, že nepodporí nielen pôvodný návrh Smeru, ale ani návrh KDH pre tzv. novelu „podvozok“ v prvom čítaní, ktorý by mohol byť v druhom čítaní priestorom pre prílepok vo forme dvoch pohlaví.Pri tejto alternatíve ale hovorí, že pre KDH to bude „cesta do bezvýznamnosti“. „Bude otázkou, či KDH vôbec bude v budúcnosti na politickej scéne,“ dodáva.Podcast pripravil Jaroslav Barborák.
„Nevšimol si, že bol 17. november a teraz nás chce všetkých zatiahnuť do tohto nevšímania.“ Veta, ktorou otvoril svoj príhovor na minulotýždňovom bratislavskom proteste. A túto vetu predchádzala iná: „Aj 17. november nám už zobrali a preto dovoľte, aby som vám predstavila osobnosť Novembra'89.“ Moderátorka podujatia takto uviedla Františka Mikloška. A ten v spomínanej prvej vete hovoril o aktuálnom premiérovi Robertovi Ficovi, ktorý si November nevšimol a do nevšímania chce uviesť krajinu. A to až akousi „normalizáciou nevšímania“.Dá sa však prehliadnuť symbol, ktorý pre krajinu a jej obyvateľov znamenal prechod z neslobody do slobody, z totality do demokracie? Napriek dráme, ktorá je skrytá v tejto otázke, neplatí aj to, že 17. november nám už zobrali, lebo sme ten konsolidačný suchý oznam o jeho neslávení pracovným pokojom prijali bez akéhokoľvek prvotného odporu?A dá sa vyvážiť symbol úsporou 150-miliónov? Otázky pre Františka Mikloška, ktorý November'89 formoval, predtým naň krajinu pripravoval a dodnes hľadá formy napĺňania jeho odkazu.„Sviatky si vieme osláviť, keď máme voľno. Vtedy máme čas sa zastaviť. Povedzme si otvorene, vo chvíli, keď to bude pracovný deň, stane sa s ním to, čo s 28. októbrom. Deň, ktorý znamenal aj pre Slovensko rozbeh, nevšímame si ho, lebo ide o pracovný deň. A o toto ide Robertovi Ficovi,“ hovorí jedná z tvárí Novembra'89 František Mikloško. „Ide tu ešte o viac: To, že nám chcú zrušiť 17. november je vlastne kontrarevolúcia k Nežnej revolúcii,“ dodáva.Novela ústavy - Ficov podvod„Novela ústavy je podvod Roberta Fica,“ konštatuje František Mikloško. „Nerozumiem, že to dokáže niekto prehliadnuť,“ dodáva. Na poznámku, že tento podvod chce KDH Ficovi podporiť, Mikloško reaguje, že je to „na ich zodpovednosti“.„Smiešnou“ pritom nazýva iniciatívu KDH „vykostiť“ Smer svojou podporou novely ústavy s mužom a ženou.„Podvozok“ KDH – cesta k bezvýznamnostiKDH však podľa Františka Mikloška pripravuje alternatívu k podpore Ficovho návrhu. Ustanovenie o mužovi a žene chce podľa neho presadiť prílepkom v druhom čítaní o inej novele ústavy, ktorou chcú práve kresťanskí demokrati umožniť poslankyniam na materskej disponovať „spočívajúcim mandátom“. V praxi by to znamenalo, že počas ich materských povinností by ich zastupoval poslanecký náhradník a v prípade, že by sa poslankyňa rozhodla vrátiť do poslaneckých lavíc, mandát by si zobrala.„Je to naoko nevinný paragraf, aký majú aj škandinávskej krajiny. Ale pokiaľ by prešiel do druhého čítania, bude tam snaha zo strany konzervatívnych politikov dať tam opäť novelu ústavy o mužovi a žene,“ hovorí František Mikloško. „Tam by sa stratil argument OĽANO (hnutia Slovensko), že by za to nehlasovali. Budú hlasovať, keď to bude návrh KDH,“ vysvetľuje.„Môže sa ľahko stať, že v októbri bude táto novela vďaka návrhu KDH na stole opäť, no iným spôsobom,“ konštatuje poslanec. „A pokiaľ sa k tomu Robert Fico pridá, tak to prejde.“ V KDH o tomto návrhu hovoria ako o „podvozku“ pre novelu ústavy o dvoch pohlaviach.František Mikloško hovorí, že nepodporí nielen pôvodný návrh Smeru, ale ani návrh KDH pre tzv. novelu „podvozok“ v prvom čítaní, ktorý by mohol byť v druhom čítaní priestorom pre prílepok vo forme dvoch pohlaví.Pri tejto alternatíve ale hovorí, že pre KDH to bude „cesta do bezvýznamnosti“. „Bude otázkou, či KDH vôbec bude v budúcnosti na politickej scéne,“ dodáva.Podcast pripravil Jaroslav Barborák.
Budeme stupňovať verejný tlak ďalšími protestami, 17. november ako symbolický kľúčový dátum v našich dejinách je podľa mňa ten moment, keď musíme ukázať silu, uviedol šéf Progresívneho Slovenska a poslanec Michal Šimečka v relácii Ide o pravdu. O tom, akou formou to budeme robiť, budeme mať ďalej diskusiu nielen s politickými stranami, ale aj s ďalšími aktérmi, vyhlásil.
Aj dnes mnohé firmy stále fungujú s faktúrami v šanónoch a objednávkami vytlačenými z e-mailu. Spoločnosť GRiT ukazuje, že digitalizácia a elektronická EDI komunikácia môžu byť jednoduchým riešením a zároveň silným nástrojom pre rast, prehľad a konkurenčnú výhodu. Správne nastavená digitálna komunikácia môže priniesť aj menším a stredným podnikom nižšie náklady a lepšiu pripravenosť na nové európske nariadenia. „Dáta dnes riadia svet. Firmám pomáhame pretaviť ich na strategickú výhodu,“ hovorí Vladimír Bobek, key account manažér zo spoločnosti GRiT, ktorá už tridsať rokov pomáha podnikom digitalizovať ich vnútorné aj externé procesy. Spoločnosť sa špecializuje na automatizáciu toku dokladov a dát, pričom cieľom nie je len nahradiť papierové faktúry elektronickými, ale vytvoriť ucelený digitálny ekosystém pre firmy všetkých veľkostí. „Tak ako ERP systémy sú mozgom firmy, EDI je jej chrbticou,“ vysvetľuje V. Bobek. Ide o automatizovanú elektronickú výmenu dokladov medzi účtovnými systémami obchodných partnerov – bez potreby manuálneho zadávania údajov, kopírovania či kontroly e-mailov. Rozdiel oproti e-mailom či papieru je dramatický: „Dnes už medzi sebou nekomunikujú ľudia, ale účtovné systémy.“ Tým sa nielen zrýchľujú procesy, ale zároveň klesá chybovosť, znižujú sa náklady a zlepšuje sa celková kontrola nad dátami. V konečnom dôsledku tak firmy šetria stovky hodín práce mesačne. Viac informácií sa dozviete v podcaste.
Talk Python To Me - Python conversations for passionate developers
Today on Talk Python: What really happens when your data work outgrows your laptop. Matthew Rocklin, creator of Dask and cofounder of Coiled, and Nat Tabris a staff software engineer at Coiled join me to unpack the messy truth of cloud-scale Python. During the episode we actually spin up a 1,000 core cluster from a notebook, twice! We also discuss picking between pandas and Polars, when GPUs help, and how to avoid surprise bills. Real lessons, real tradeoffs, shared by people who have built this stuff. Stick around. Episode sponsors Seer: AI Debugging, Code TALKPYTHON Talk Python Courses Links from the show Matthew Rocklin: @mrocklin Nat Tabris: tabris.us Dask: dask.org Coiled: coiled.io Watch this episode on YouTube: youtube.com Episode #519 deep-dive: talkpython.fm/519 Episode transcripts: talkpython.fm Developer Rap Theme Song: Served in a Flask: talkpython.fm/flasksong --- Stay in touch with us --- Subscribe to Talk Python on YouTube: youtube.com Talk Python on Bluesky: @talkpython.fm at bsky.app Talk Python on Mastodon: talkpython Michael on Bluesky: @mkennedy.codes at bsky.app Michael on Mastodon: mkennedy
In this episode, we introduce a simple yet powerful mental model from the world of sports: forced vs. unforced errors. By understanding this concept, you can shift your focus from things outside your control to the simple, foundational behaviours that truly define a successful career.Understand the Difference: Learn the distinction between forced errors—mistakes caused by chance, situation, or randomness that are hard to prevent—and unforced errors, which are avoidable blunders resulting from a lack of attention or care.Focus on What You Control: Discover why the most successful engineers prioritise reducing their unforced errors. While most people worry about hard-to-predict "forced errors," top performers concentrate on the fundamentals they can directly influence.Identify Your Unforced Errors: Recognise common unforced errors in your career, such as not testing your work, being late for meetings, erratic communication, or posting unprofessional content online. These simple mistakes can significantly impact your career over time.Conduct a Self-Audit: Learn the value of regularly performing a "self-audit" to identify and correct the simple, common-sense things you may be failing at. By improving in these areas, you can dramatically increase your reliability and competitiveness.
Hypotéza 35: V jednoduchosti by sme sa mali podriadiť našim predstaveným v Pánovi a prijímať ich príkazy akoby pochádzali od Boha, bez toho, aby sme ich kritizovali, skúmali alebo opravovali, aj keď sa nám v tom čase nezdajú byť prospešné. Filokalia Live - pravidelné online formačné stretnutia. Zámerom je spoznávanie a osvojovanie umenia duchovného života štúdiom učenia svätých otcov. Štvrtkové stretnutia sú venované uvažovaniu nad dielom Evergetinos. Ide o rozsiahlu zbierku výrokov a krátkych príbehov zo života púštnych otcov, ktorá bola zostavená mníchom Pavlom v 11. storočí. Každá kapitola dáva dôkladné vysvetlenie predstavenej témy a postupne čitateľa sprevádza od položenia základných kameňov duchovného život až po jeho výšiny. Stretnutia sa konajú každý pondelok a štvrtok o 20.00 hod. V prípade záujmu sa môžete zaregistrovať a e-mailom Vám bude zaslaný link pre vstup na stretnutie.
Santo Espírito (parte 4) - Gabriel Manzoni by IDE
Francois Daost is a W3C staff member and co-chair of the Web Developer Experience Community Group. We discuss the W3C's role and what it's like to go through the browser standardization process. Related links W3C TC39 Internet Engineering Task Force Web Hypertext Application Technology Working Group (WHATWG) Horizontal Groups Alliance for Open Media What is MPEG-DASH? | HLS vs. DASH Information about W3C and Encrypted Media Extensions (EME) Widevine PlayReady Media Source API Encrypted Media Extensions API requestVideoFrameCallback() Business Benefits of the W3C Patent Policy web.dev Baseline Portable Network Graphics Specification Internet Explorer 6 CSS Vendor Prefix WebRTC Transcript You can help correct transcripts on GitHub. Intro [00:00:00] Jeremy: today I'm talking to Francois Daoust. He's a staff member at the W3C. And we're gonna talk about the W3C and the recommendation process and discuss, Francois's experience with, with how these features end up in our browsers. [00:00:16] Jeremy: So, Francois, welcome [00:00:18] Francois: Thank you Jeremy and uh, many thanks for the invitation. I'm really thrilled to be part of this podcast. What's the W3C? [00:00:26] Jeremy: I think many of our listeners will have heard about the W3C, but they may not actually know what it is. So could you start by explaining what it is? [00:00:37] Francois: Sure. So W3C stands for the Worldwide Web Consortium. It's a standardization organization. I guess that's how people should think about W3C. it was created in 1994. I, by, uh, Tim Berners Lee, who was the inventor of the web. Tim Berners Lee was the, director of W3C for a long, long time. [00:01:00] Francois: He retired not long ago, a few years back. and W3C is, has, uh, a number of, uh. Properties, let's say first the goal is to produce royalty free standards, and that's very important. Uh, we want to make sure that, uh, the standard that get produced can be used and implemented without having to pay, fees to anyone. [00:01:23] Francois: We do web standards. I didn't mention it, but it's from the name. Standards that you find in your web browsers. But not only that, there are a number of other, uh, standards that got developed at W3C including, for example, XML. Data related standards. W3C as an organization is a consortium. [00:01:43] Francois: The, the C stands for consortium. Legally speaking, it's a, it's a 501c3 meaning in, so it's a US based, uh, legal entity not for profit. And the, the little three is important because it means it's public interest. That means we are a consortium, that means we have members, but at the same time, the goal, the mission is to the public. [00:02:05] Francois: So we're not only just, you know, doing what our members want. We are also making sure that what our members want is aligned with what end users in the end, need. and the W3C has a small team. And so I'm part of this, uh, of this team worldwide. Uh, 45 to 55 people, depending on how you count, mostly technical people and some, uh, admin, uh, as well, overseeing the, uh, the work, that we do, uh, at the W3C. Funding through membership fees [00:02:39] Jeremy: So you mentioned there's 45 to 55 people. How is this funded? Is this from governments or commercial companies? [00:02:47] Francois: The main source comes from membership fees. So the W3C has a, so members, uh, roughly 350 members, uh, at the W3C. And, in order to become a member, an organization needs to pay, uh, an annual membership fee. That's pretty common among, uh, standardization, uh, organizations. [00:03:07] Francois: And, we only have, uh, I guess three levels of membership, fees. Uh, well, you may find, uh, additional small levels, but three main ones. the goal is to make sure that, A big player will, not a big player or large company, will not have more rights than, uh, anything, anyone else. So we try to make sure that a member has the, you know, all members have equal, right? [00:03:30] Francois: if it's not perfect, but, uh, uh, that's how things are, are are set. So that's the main source of income for the W3C. And then we try to diversify just a little bit to get, uh, for example, we go to governments. We may go to governments in the u EU. We may, uh, take some, uh, grant for EU research projects that allow us, you know, to, study, explore topics. [00:03:54] Francois: Uh, in the US there, there used to be some, uh, some funding from coming from the government as well. So that, that's, uh, also, uh, a source. But the main one is, uh, membership fees. Relations to TC39, IETF, and WHATWG [00:04:04] Jeremy: And you mentioned that a lot of the W3C'S work is related to web standards. There's other groups like TC 39, which works on the JavaScript spec and the IETF, which I believe worked, with your group on WebRTC, I wonder if you could explain W3C'S connection to other groups like that. [00:04:28] Francois: sure. we try to collaborate with a, a number of, uh, standard other standardization organizations. So in general, everything goes well because you, you have, a clear separation of concerns. So you mentioned TC 39. Indeed. they are the ones who standardize, JavaScript. Proper name of JavaScript is the EcmaScript. [00:04:47] Francois: So that's tc. TC 39 is the technical committee at ecma. and so we have indeed interactions with them because their work directly impact the JavaScript that you're going to find in your, uh, run in your, in your web browser. And we develop a number of JavaScript APIs, uh, actually in W3C. [00:05:05] Francois: So we need to make sure that, the way we develop, uh, you know, these APIs align with the, the language itself. with IETF, the, the, the boundary is, uh, uh, is clear as well. It's a protocol and protocol for our network protocols for our, the IETF and application level. For W3C, that's usually how the distinction is made. [00:05:28] Francois: The boundaries are always a bit fuzzy, but that's how things work. And usually, uh, things work pretty well. Uh, there's also the WHATWG, uh, and the WHATWG is more the, the, the history was more complicated because, uh, t of a fork of the, uh, HTML specification, uh, at the time when it was developed by W3C, a long time ago. [00:05:49] Francois: And there was been some, uh, Well disagreement on the way things should have been done, and the WHATWG took over got created, took, took this the HTML spec and did it a different way. Went in another, another direction, and that other, other direction actually ended up being the direction. [00:06:06] Francois: So, that's a success, uh, from there. And so, W3C no longer works, no longer owns the, uh, HTML spec and the WHATWG has, uh, taken, uh, taken up a number of, uh, of different, core specifications for the web. Uh, doing a lot of work on the, uh, on interopoerability and making sure that, uh, the algorithm specified by the spec, were correct, which, which was something that historically we haven't been very good at at W3C. [00:06:35] Francois: And the way they've been working as a, has a lot of influence on the way we develop now, uh, the APIs, uh, from a W3C perspective. [00:06:44] Jeremy: So, just to make sure I understand correctly, you have TC 39, which is focused on the JavaScript or ECMAScript language itself, and you have APIs that are going to use JavaScript and interact with JavaScript. So you need to coordinate there. The, the have the specification for HTML. then the IATF, they are, I'm not sure if the right term would be, they, they would be one level lower perhaps, than the W3C. [00:07:17] Francois: That's how you, you can formulate it. Yes. The, the one layer, one layer layer in the ISO network in the ISO stack at the network level. How WebRTC spans the IETF and W3C [00:07:30] Jeremy: And so in that case, one place I've heard it mentioned is that webRTC, to, to use it, there is an IETF specification, and then perhaps there's a W3C recommendation and [00:07:43] Francois: Yes. so when we created the webRTC working group, that was in 2011, I think, it was created with a dual head. There was one RTC web, group that got created at IETF and a webRTC group that got created at W3C. And that was done on purpose. Of course, the goal was not to compete on the, on the solution, but actually to, have the two sides of the, uh, solution, be developed in parallel, the API, uh, the application front and the network front. [00:08:15] Francois: And there was a, and there's still a lot of overlap in, uh, participation between both groups, and that's what keep things successful. In the end. It's not, uh, you know, process or organization to organization, uh, relationships, coordination at the organization level. It's really the fact that you have participants that are essentially the same, on both sides of the equation. [00:08:36] Francois: That helps, uh, move things forward. Now, webRTC is, uh, is more complex than just one group at IETF. I mean, web, webRTC is a very complex set of, uh, of technologies, stack of technologies. So when you, when you. Pull a little, uh, protocol from IETFs. Suddenly you have the whole IETF that comes with you with it. [00:08:56] Francois: So you, it's the, you have the feeling that webRTC needs all of the, uh, internet protocols that got, uh, created to work Recommendations [00:09:04] Jeremy: And I think probably a lot of web developers, they may hear words like specification or standard, but I believe the, the official term, at least at the W3C, is this recommendation. And so I wonder if you can explain what that means. [00:09:24] Francois: Well. It means it means standard in the end. and that came from industry. That comes from a time where. As many standardization organizations. W3C was created not to be a standardization organization. It was felt that standard was not the right term because we were not a standardization organization. [00:09:45] Francois: So recommend IETF has the same thing. They call it RFC, request for comment, which, you know, stands for nothing in, and yet it's a standard. So W3C was created with the same kind of, uh thing. We needed some other terminology and we call that recommendation. But in the end, that's standard. It's really, uh, how you should see it. [00:10:08] Francois: And one thing I didn't mention when I, uh, introduced the W3C is there are two types of standards in the end, two main categories. There are, the de jure standards and defacto standards, two families. The de jure standards are the ones that are imposed by some kind of regulation. so it's really usually a standard you see imposed by governments, for example. [00:10:29] Francois: So when you look at your electric plug at home, there's some regulation there that says, this plug needs to have these properties. And that's a standard that gets imposed. It's a de jure standard. and then there are defacto standards which are really, uh, specifications that are out there and people agree to use it to implement it. [00:10:49] Francois: And by virtue of being used and implemented and used by everyone, they become standards. the, W3C really is in the, uh, second part. It's a defacto standard. IETF is the same thing. some of our standards are used in, uh, are referenced in regulations now, but, just a, a minority of them, most of them are defacto standards. [00:11:10] Francois: and that's important because that's in the end, it doesn't matter what the specific specification says, even though it's a bit confusing. What matters is that the, what the specifications says matches what implementations actually implement, and that these implementations are used, and are used interoperably across, you know, across browsers, for example, or across, uh, implementations, across users, across usages. [00:11:36] Francois: So, uh, standardization is a, is a lengthy process. The recommendation is the final stage in that, lengthy process. More and more we don't really reach recommendation anymore. If you look at, uh, at groups, uh, because we have another path, let's say we kind of, uh, we can stop at candidate recommendation, which is in theoretically a step before that. [00:12:02] Francois: But then you, you can stay there and, uh, stay there forever and publish new candidate recommendations. Um, uh, later on. What matters again is that, you know, you get this, virtuous feedback loop, uh, with implementers, and usage. [00:12:18] Jeremy: So if the candidate recommendation ends up being implemented by all the browsers, what's ends up being the distinction between a candidate and one that's a normal recommendation. [00:12:31] Francois: So, today it's mostly a process thing. Some groups actually decide to go to rec Some groups decide to stay at candidate rec and there's no formal difference between the, the two. we've made sure we've adopted, adjusted the process so that the important bits that, applied at the recommendation level now apply at the candidate rec level. Royalty free patent access [00:13:00] Francois: And by important things, I mean the patent commitments typically, uh, the patent policy fully applies at the candidate recommendation level so that you get your, protection, the royalty free patent protection that we, we were aiming at. [00:13:14] Francois: Some people do not care, you know, but most of the world still works with, uh, with patents, uh, for good, uh, or bad reasons. But, uh, uh, that's how things work. So we need to make, we're trying to make sure that we, we secure the right set of, um, of patent commitments from the right set of stakeholders. [00:13:35] Jeremy: Oh, so when someone implements a W3C recommendation or a candidate recommendation, the patent holders related to that recommendation, they basically agree to allow royalty-free use of that patent. [00:13:54] Francois: They do the one that were involved in the working group, of course, I mean, we can't say anything about the companies out there that may have patents and uh, are not part of this standardization process. So there's always, It's a remaining risk. but part of the goal when we create a working group is to make sure that, people understand the scope. [00:14:17] Francois: Lawyers look into it, and the, the legal teams that exist at the all the large companies, basically gave a green light saying, yeah, we, we we're pretty confident that we, we know where the patterns are on this particular, this particular area. And we are fine also, uh, letting go of the, the patterns we own ourselves. Implementations are built in parallel with standardization [00:14:39] Jeremy: And I think you had mentioned. What ends up being the most important is that the browser creators implement these recommendations. So it sounds like maybe the distinction between candidate recommendation and recommendation almost doesn't matter as long as you get the end result you want. [00:15:03] Francois: So, I mean, people will have different opinions, uh, in the, in standardization circles. And I mentioned also W3C is working on other kind of, uh, standards. So, uh, in some other areas, the nuance may be more important when we, but when, when you look at specification, that's target, web browsers. we've switched from a model where, specs were developed first and then implemented to a model where specs and implementing implementations are being, worked in parallel. [00:15:35] Francois: This actually relates to the evolution I was mentioning with the WHATWG taking over the HTML and, uh, focusing on the interoperability issues because the starting point was, yeah, we have an HTML 4.01 spec, uh, but it's not interoperable because it, it's not specified, are number of areas that are gray areas, you can implement them differently. [00:15:59] Francois: And so there are interoperable issues. Back to candidate rec actually, the, the, the, the stage was created, if I remember correctly. uh, if I'm, if I'm not wrong, the stage was created following the, uh, IE problem. In the CSS working group, IE6, uh, shipped with some, version of a CSS that was in the, as specified, you know, the spec was saying, you know, do that for the CSS box model. [00:16:27] Francois: And the IE6 was following that. And then the group decided to change, the box model and suddenly IE6 was no longer compliant. And that created a, a huge mess on the, in the history of, uh, of the web in a way. And so the, we, the, the, the, the candidate recommendation sta uh, stage was introduced following that to try to catch this kind of problems. [00:16:52] Francois: But nowadays, again, we, we switch to another model where it's more live. and so we, you, you'll find a number of specs that are not even at candidate rec level. They are at the, what we call a working draft, and they, they are being implemented, and if all goes well, the standardization process follows the implementation, and then you end up in a situation where you have your candidate rec when the, uh, spec ships. [00:17:18] Francois: a recent example would be a web GPU, for example. It, uh, it has shipped in, uh, in, in Chrome shortly before it transition to a candidate rec. But the, the, the spec was already stable. and now it's shipping uh, in, uh, in different browsers, uh, uh, safari, uh, and uh, and uh, and uh, Firefox. And so that's, uh, and that's a good example of something that follows, uh, things, uh, along pretty well. But then you have other specs such as, uh, in the media space, uh, request video frame back, uh, frame, call back, uh, requestVideoFrameCallback() is a short API that allows you to get, you know, a call back whenever the, the browser renders a video frame, essentially. [00:18:01] Francois: And that spec is implemented across browsers. But from a W3C specific, perspective, it does not even exist. It's not on the standardization track. It's still being incubated in what we call a community group, which is, you know, some something that, uh, usually exists before. we move to the, the standardization process. [00:18:21] Francois: So there, there are examples of things where some things fell through the cracks. All the standardization process, uh, is either too early or too late and things that are in spec are not exactly what what got implemented or implementations are too early in the process. We we're doing a better job, at, Not falling into a trap where someone ships, uh, you know, an implementation and then suddenly everything is frozen. You can no longer, change it because it's too late, it shipped. we've tried, different, path there. Um, mentioned CSS, the, there was this kind of vendor prefixed, uh, properties that used to be, uh, the way, uh, browsers were deploying new features without, you know, taking the final name. [00:19:06] Francois: We are trying also to move away from it because same thing. Then in the end, you end up with, uh, applications that have, uh, to duplicate all the properties, the CSS properties in the style sheets with, uh, the vendor prefixes and nuances in the, in what it does in, in the end. [00:19:23] Jeremy: Yeah, I, I think, is that in CSS where you'll see --mozilla or things like that? Why requestVideoFrameCallback doesn't have a formal specification [00:19:30] Jeremy: The example of the request video frame callback. I, I wonder if you have an opinion or, or, or know why that ended up the way it did, where the browsers all implemented it, even though it was still in the incubation stage. [00:19:49] Francois: On this one, I don't have a particular, uh, insights on whether there was a, you know, a strong reason to implement it,without doing the standardization work. [00:19:58] Francois: I mean, there are, it's not, uh, an IPR (Intellectual Property Rights) issue. It's not, uh, something that, uh, I don't think the, the, the spec triggers, uh, you know, problems that, uh, would be controversial or whatever. [00:20:10] Francois: Uh, so it's just a matter of, uh, there was no one's priority, and in the end, you end up with a, everyone's happy. it's, it has shipped. And so now doing the spec work is a bit,why spend time on something that's already shipped and so on, but the, it may still come back at some point with try to, you know, improve the situation. [00:20:26] Jeremy: Yeah, that's, that's interesting. It's a little counterintuitive because it sounds like you have the, the working group and it, it sounds like perhaps the companies or organizations involved, they maybe agreed on how it should work, and maybe that agreement almost made it so that they felt like they didn't need to move forward with the specification because they came to consensus even before going through that. [00:20:53] Francois: In this particular case, it's probably because it's really, again, it's a small, spec. It's just one function call, you know? I mean, they will definitely want a working group, uh, for larger specifications. by the way, actually now I know re request video frame call back. It's because the, the, the final goal now that it's, uh, shipped, is to merge it into, uh, HTML, uh, the HTML spec. [00:21:17] Francois: So there's a, there's an ongoing issue on the, the WHATWG side to integrate request video frame callback. And it's taking some time but see, it's, it's being, it, it caught up and, uh, someone is doing the, the work to, to do it. I had forgotten about this one. Um, [00:21:33] Jeremy: Tension from specification review (horizontal review) [00:21:33] Francois: so with larger specifications, organizations will want this kind of IPR regime they will want commit commitments from, uh, others, on the scope, on the process, on everything. So they will want, uh, a larger, a, a more formal setting, because that's part of how you ensure that things, uh, will get done properly. [00:21:53] Francois: I didn't mention it, but, uh, something we're really, uh, Pushy on, uh, W3C I mentioned we have principles, we have priorities, and we have, uh, specific several, uh, properties at W3C. And one of them is that we we're very strong on horizontal reviews of our specs. We really want them to be reviewed from an accessibility perspective, from an internationalization perspective, from a privacy and security, uh, perspective, and, and, and a technical architecture perspective as well. [00:22:23] Francois: And that's, these reviews are part of the formal process. So you, all specs need to undergo these reviews. And from time to time, that creates tension. Uh, from time to time. It just works, you know. Goes without problem. a recurring issue is that, privacy and security are hard. I mean, it's not an easy problem, something that can be, uh, solved, uh, easily. [00:22:48] Francois: Uh, so there's a, an ongoing tension and no easy way to resolve it, but there's an ongoing tension between, specifying powerful APIs and preserving privacy without meaning, not exposing too much information to applications in the media space. You can think of the media capabilities, API. So the media space is a complicated space. [00:23:13] Francois: Space because of codecs. codecs are typically not relative free. and so browsers decide which codecs they're going to support, which audio and video codecs they, they're going to support and doing that, that creates additional fragmentation, not in the sense that they're not interoperable, but in the sense that applications need to choose which connect they're going to ship to stream to the end user. [00:23:39] Francois: And, uh, it's all the more complicated that some codecs are going to be hardware supported. So you will have a hardware decoder in your, in your, in your laptop or smartphone. And so that's going to be efficient to decode some, uh, some stream, whereas some code are not, are going to be software, based, supported. [00:23:56] Francois: Uh, and that may consume a lot of CPU and a lot of power and a lot of energy in the end. So you, you want to avoid that if you can, uh, select another thing. Even more complex than, codecs have different profiles, uh, lower end profiles higher end profiles with different capabilities, different features, uh, depending on whether you're going to use this or that color space, for example, this or that resolution, whatever. [00:24:22] Francois: And so you want to surface that to web applications because otherwise, they can't. Select, they can't choose, the right codec and the right, stream that they're going to send to the, uh, client devices. And so they're not going to provide an efficient user experience first, and even a sustainable one in terms of energy because they, they're going to waste energy if they don't send the right stream. [00:24:45] Francois: So you want to surface that to application. That's what the media, media capabilities, APIs, provides. Privacy concerns [00:24:51] Francois: Uh, but at the same time, if you expose that information, you end up with ways to fingerprint the end user's device. And that in turn is often used to track users across, across sites, which is exactly what we don't want to have, uh, for privacy reasons, for obvious privacy reasons. [00:25:09] Francois: So you have to balance that and find ways to, uh, you know, to expose. Capabilities without, without necessarily exposing them too much. Uh, [00:25:21] Jeremy: Can you give an example of how some of those discussions went? Like within the working group? Who are the companies or who are the organizations that are arguing for We shouldn't have this capability because of the privacy concerns, or [00:25:40] Francois: In a way all of the companies, have a vision of, uh, of privacy. I mean, the, you will have a hard time finding, you know, members saying, I don't care about privacy. I just want the feature. Uh, they all have privacy in mind, but they may have a different approach to privacy. [00:25:57] Francois: so if you take, uh, let's say, uh, apple and Google would be the, the, I guess the perfect examples in that, uh, in that space, uh, Google will have a, an approach that is more open-ended thing. The, the user agents has this, uh, should check what the, the, uh, given site is doing. And then if it goes beyond, you know, some kind of threshold, they're going to say, well, okay, well, we'll stop exposing data to that, to that, uh, to that site. [00:26:25] Francois: So that application. So monitor and react in a way. apple has a more, uh, you know, has a stricter view on, uh, on privacy, let's say. And they will say, no, we, the, the, the feature must not exist in the first place. Or, but that's, I mean, I guess, um, it's not always that extreme. And, uh, from time to time it's the opposite. [00:26:45] Francois: You will have, uh, you know, apple arguing in one way, uh, which is more open-ended than the, uh, than, uh, than Google, for example. And they are not the only ones. So in working groups, uh, you will find the, usually the implementers. Uh, so when we talk about APIs that get implemented in browsers, you want the core browsers to be involved. [00:27:04] Francois: Uh, otherwise it's usually not a good sign for, uh, the success of the, uh, of the technology. So in practice, that means Apple, uh, Microsoft, Mozilla which one did I forget? [00:27:15] Jeremy: Google. [00:27:16] Francois: I forgot Google. Of course. Thank you. that's, uh, that the, the core, uh, list of participants you want to have in any, uh, group that develops web standards targeted at web browsers. Who participates in working groups and how much power do they have? [00:27:28] Francois: And then on top of that, you want, organizations and people who are directly going to use it, either because they, well the content providers. So in media, for example, if you look at the media working group, you'll see, uh, so browser vendors, the ones I mentioned, uh, content providers such as the BBC or Netflix. [00:27:46] Francois: Chip set vendors would, uh, would be there as well. Intel, uh, Nvidia again, because you know, there's a hardware decoding in there and encoding. So media is, touches on, on, uh, on hardware, uh, device manufacturer in general. You may, uh, I think, uh, I think Sony is involved in the, in the media working group, for example. [00:28:04] Francois: and these companies are usually less active in the spec development. It depends on the groups, but they're usually less active because the ones developing the specs are usually the browser again, because as I mentioned, we develop the specs in parallel to browsers implementing it. So they have the. [00:28:21] Francois: The feedback on how to formulate the, the algorithms. and so that's this collection of people who are going to discuss first within themselves. W3C pushes for consensual dis decisions. So we hardly take any votes in the working groups, but from time to time, that's not enough. [00:28:41] Francois: And there may be disagreements, but let's say there's agreement in the group, uh, when the spec matches. horizontal review groups will look at the specs. So these are groups I mentioned, accessibility one, uh, privacy, internationalization. And these groups, usually the participants are, it depends. [00:29:00] Francois: It can be anything. It can be, uh, the same companies. It can be, but usually different people from the same companies. But it the, maybe organizations with a that come from very, a very different angle. And that's a good thing because that means the, you know, you enlarge the, the perspectives on your, uh, on the, on the technology. [00:29:19] Francois: and you, that's when you have a discussion between groups, that takes place. And from time to time it goes well from time to time. Again, it can trigger issues that are hard to solve. and the W3C has a, an escalation process in case, uh, you know, in case things degenerate. Uh, starting with, uh, the notion of formal objection. [00:29:42] Jeremy: It makes sense that you would have the, the browser. Vendors and you have all the different companies that would use that browser. All the different horizontal groups like you mentioned, the internationalization, accessibility. I would imagine that you were talking about consensus and there are certain groups or certain companies that maybe have more say or more sway. [00:30:09] Jeremy: For example, if you're a browser, manufacturer, your Google. I'm kind of curious how that works out within the working group. [00:30:15] Francois: Yes, it's, I guess I would be lying if I were saying that, uh, you know, all companies are strictly equal in a, in a, in a group. they are from a process perspective, I mentioned, you know, different membership fees with were design, special specific ethos so that no one could say, I'm, I'm putting in a lot of money, so you, you need to re you need to respect me, uh, and you need to follow what I, what I want to, what I want to do. [00:30:41] Francois: at the same time, if you take a company like, uh, like Google for example, they send, hundreds of engineers to do standardization work. That's absolutely fantastic because that means work progresses and it's, uh, extremely smart people. So that's, uh, that's really a pleasure to work with, uh, with these, uh, people. [00:30:58] Francois: But you need to take a step back and say, well, the problem is. Defacto that gives them more power just by virtue of, uh, injecting more resources into it. So having always someone who can respond to an issue, having always someone, uh, editing a spec defacto that give them more, uh, um, more say on the, on the directions that, get forward. [00:31:22] Francois: And on top of that, of course, they have the, uh, I guess not surprisingly, the, the browser that is, uh, used the most, currently, on the market so there's a little bit of a, the, the, we, we, we, we try very hard to make sure that, uh, things are balanced. it's not a perfect world. [00:31:38] Francois: the the role of the team. I mean, I didn't talk about the role of the team, but part of it is to make sure that. Again, all perspectives are represented and that there's not, such a, such big imbalance that, uh, that something is wrong and that we really need to look into it. so making sure that anyone, if they have something to say, make making sure that they are heard by the rest of the group and not dismissed. [00:32:05] Francois: That usually goes well. There's no problem with that. And again, the escalation process I mentioned here doesn't make any, uh, it doesn't make any difference between, uh, a small player, a large player, a big player, and we have small companies raising formal objections against some of our aspects that happens, uh, all large ones. [00:32:24] Francois: But, uh, that happens too. There's no magical solution, I guess you can tell it by the way. I, uh, I don't know how to formulate the, the process more. It's a human process, and that's very important that it remains a human process as well. [00:32:41] Jeremy: I suppose the role of, of staff and someone in your position, for example, is to try and ensure that these different groups are, are heard and it isn't just one group taking control of it. [00:32:55] Francois: That's part of the role, again, is to make sure that, uh, the, the process is followed. So the, I, I mean, I don't want to give the impression that the process controls everything in the groups. I mean, the, the, the groups are bound by the process, but the process is there to catch problems when they arise. [00:33:14] Francois: most of the time there are no problems. It's just, you know, again, participants talking to each other, talking with the rest of the community. Most of the work happens in public nowadays, in any case. So the groups work in public essentially through asynchronous, uh, discussions on GitHub repositories. [00:33:32] Francois: There are contributions from, you know, non group participants and everything goes well. And so the process doesn't kick in. You just never say, eh, no, you didn't respect the process there. You, you closed the issue. You shouldn't have a, it's pretty rare that you have to do that. Uh, things just proceed naturally because they all, everyone understands where they are, why, what they're doing, and why they're doing it. [00:33:55] Francois: we still have a role, I guess in the, in the sense that from time to time that doesn't work and you have to intervene and you have to make sure that,the, uh, exception is caught and, uh, and processed, uh, in the right way. Discussions are public on github [00:34:10] Jeremy: And you said this process is asynchronous in public, so it sounds like someone, I, I mean, is this in GitHub issues or how, how would somebody go and, and see what the results of [00:34:22] Francois: Yes, there, there are basically a gazillion of, uh, GitHub repositories under the, uh, W3C, uh, organization on GitHub. Most groups are using GitHub. I mean, there's no, it's not mandatory. We don't manage any, uh, any tooling. But the factors that most, we, we've been transitioning to GitHub, uh, for a number of years already. [00:34:45] Francois: Uh, so that's where the work most of the work happens, through issues, through pool requests. Uh, that's where. people can go and raise issues against specifications. Uh, we usually, uh, also some from time to time get feedback from developers and countering, uh, a bug in a particular implementations, which we try to gently redirect to, uh, the actual bug trackers because we're not responsible for the respons implementations of the specs unless the spec is not clear. [00:35:14] Francois: We are responsible for the spec itself, making sure that the spec is clear and that implementers well, understand how they should implement something. Why the W3C doesn't specify a video or audio codec [00:35:25] Jeremy: I can see how people would make that mistake because they, they see it's the feature, but that's not the responsibility of the, the W3C to implement any of the specifications. Something you had mentioned there's the issue of intellectual property rights and how when you have a recommendation, you require the different organizations involved to make their patents available to use freely. [00:35:54] Jeremy: I wonder why there was never any kind of, recommendation for audio or video codecs in browsers since you have certain ones that are considered royalty free. But, I believe that's never been specified. [00:36:11] Francois: At W3C you mean? Yes. we, we've tried, I mean, it's not for lack of trying. Um, uh, we've had a number of discussions with, uh, various stakeholders saying, Hey, we, we really need, an audio or video code for our, for the web. the, uh, png PNG is an example of a, um, an image format which got standardized at W3C and it got standardized at W3C similar reasons. There had to be a royalty free image format for the web, and there was none at the time. of course, nowadays, uh, jpeg, uh, and gif or gif, whatever you call it, are well, you know, no problem with them. But, uh, um, that at the time P PNG was really, uh, meant to address this issue and it worked for PNG for audio and video. [00:37:01] Francois: We haven't managed to secure, commitments by stakeholders. So willingness to do it, so it's not, it's not lack of willingness. We would've loved to, uh, get, uh, a royalty free, uh, audio codec, a royalty free video codec again, audio and video code are extremely complicated because of this. [00:37:20] Francois: not only because of patterns, but also because of the entire business ecosystem that exists around them for good reasons. You, in order for a, a codec to be supported, deployed, effective, it really needs, uh, it needs to mature a lot. It needs to, be, uh, added to at a hardware level, to a number of devices, capturing devices, but also, um, uh, uh, of course players. [00:37:46] Francois: And that takes a hell of a lot of time and that's why you also enter a number of business considerations with business contracts between entities. so I'm personally, on a personal level, I'm, I'm pleased to see, for example, the Alliance for Open Media working on, uh, uh, AV1, uh, which is. At least they, uh, they wanted to be royalty free and they've been adopting actually the W3C patent policy to do this work. [00:38:11] Francois: So, uh, we're pleased to see that, you know, they've been adopting the same process and same thing. AV1 is not yet at the same, support stage, as other, codecs, in the world Yeah, I mean in devices. There's an open question as what, what are we going to do, uh, in the future uh, with that, it's, it's, it's doubtful that, uh, the W3C will be able to work on a, on a royalty free audio, codec or royalty free video codec itself because, uh, probably it's too late now in any case. [00:38:43] Francois: but It's one of these angles in the, in the web platform where we wish we had the, uh, the technology available for, for free. And, uh, it's not exactly, uh, how things work in practice.I mean, the way codecs are developed remains really patent oriented. [00:38:57] Francois: and you will find more codecs being developed. and that's where geopolitics can even enter the, the, uh, the play. Because, uh, if you go to China, you will find new codecs emerging, uh, that get developed within China also, because, the other codecs come mostly from the US so it's a bit of a problem and so on. [00:39:17] Francois: I'm not going to enter details and uh, I would probably say stupid things in any case. Uh, but that, uh, so we continue to see, uh, emerging codecs that are not royalty free, and it's probably going to remain the case for a number of years. unfortunately, unfortunately, from a W3C perspective and my perspective of course. [00:39:38] Jeremy: There's always these new, formats coming out and the, rate at which they get supported in the browser, even on a per browser basis is, is very, there can be a long time between, for example, WebP being released and a browser supporting it. So, seems like maybe we're gonna be in that situation for a while where the codecs will come out and maybe the browsers will support them. Maybe they won't, but the, the timeline is very uncertain. Digital Rights Management (DRM) and Media Source Extensions [00:40:08] Jeremy: Something you had, mentioned, maybe this was in your, email to me earlier, but you had mentioned that some of these specifications, there's, there's business considerations like with, digital rights management and, media source extensions. I wonder if you could talk a little bit about maybe what media source extensions is and encrypted media extensions and, and what the, the considerations or challenges are there. [00:40:33] Francois: I'm going to go very, very quickly over the history of a, video and audio support on the web. Initially it was supported through plugins. you are maybe too young to, remember that. But, uh, we had extensions, added to, uh, a realplayer. [00:40:46] Francois: This kind of things flash as well, uh, supporting, uh, uh, videos, in web pages, but it was not provided by the web browsers themselves. Uh, then HTML5 changed the, the situation. Adding these new tags, audio and video, but that these tags on this, by default, support, uh, you give them a resources, a resource, like an image as it's an audio or a video file. [00:41:10] Francois: They're going to download this, uh, uh, video file or audio file, and they're going to play it. That works well. But as soon as you want to do any kind of real streaming, files are too large and to stream, to, to get, you know, to get just a single fetch on, uh, on them. So you really want to stream them chunk by chunk, and you want to adapt the resolution at which you send the stream based on real time conditions of the user's network. [00:41:37] Francois: If there's plenty of bandwidth you want to send the user, the highest possible resolution. If there's a, some kind of hiccup temporary in the, in the network, you really want to lower the resolution, and that's called adaptive streaming. And to get adaptive streaming on the web, well, there are a number of protocols that exist. [00:41:54] Francois: Same thing. Some many of them are proprietary and actually they remain proprietary, uh, to some extent. and, uh, some of them are over http and they are the ones that are primarily used in, uh, in web contexts. So DASH comes to mind, DASH for Dynamic Adaptive streaming over http. HLS is another one. Uh, initially developed by Apple, I believe, and it's, uh, HTTP live streaming probably. Exactly. And, so there are different protocols that you can, uh, you can use. Uh, so the goal was not to standardize these protocols because again, there were some proprietary aspects to them. And, uh, same thing as with codecs. [00:42:32] Francois: There was no, well, at least people wanted to have the, uh, flexibility to tweak parameters, adaptive streaming parameters the way they wanted for different scenarios. You may want to tweak the parameters differently. So they, they needed to be more flexibility on top of protocols not being truly available for use directly and for implementation directly in browsers. [00:42:53] Francois: It was also about providing applications with, uh, the flexibility they would need to tweak parameters. So media source extensions comes into play for exactly that. Media source extensions is really about you. The application fetches chunks of its audio and video stream the way it wants, and with the parameters it wants, and it adjusts whatever it wants. [00:43:15] Francois: And then it feeds that into the, uh, video or audio tag. and the browser takes care of the rest. So it's really about, doing, you know, the adaptive streaming. let applications do it, and then, uh, let the user agent, uh, the browser takes, take care of the rendering itself. That's media source extensions. [00:43:32] Francois: Initially it was pushed by, uh, Netflix. They were not the only ones of course, but there, there was a, a ma, a major, uh, proponent of this, uh, technical solution, because they wanted, uh, they, uh, they were, expanding all over the world, uh, with, uh, plenty of native, applications on all sorts of, uh, of, uh, devices. [00:43:52] Francois: And they wanted to have a way to stream content on the web as well. both for both, I guess, to expand to, um, a new, um, ecosystem, the web, uh, providing new opportunities, let's say. But at the same time also to have a fallback, in case they, because for native support on different platforms, they sometimes had to enter business agreements with, uh, you know, the hardware manufacturers, the whatever, the, uh, service provider or whatever. [00:44:19] Francois: and so that was a way to have a full back. That kind of work is more open, in case, uh, things take some time and so on. So, and they probably had other reasons. I mean, I'm not, I can't speak on behalf of Netflix, uh, on others, but they were not the only ones of course, uh, supporting this, uh, me, uh, media source extension, uh, uh, specification. [00:44:42] Francois: and that went kind of, well, I think it was creating 2011. I mean, the, the work started in 2011 and the recommendation was published in 2016, which is not too bad from a standardization perspective. It means only five years, you know, it's a very short amount of time. Encrypted Media Extensions [00:44:59] Francois: At the same time, and in parallel and complement to the media source extension specifications, uh, there was work on the encrypted media extensions, and here it was pushed by the same proponent in a way because they wanted to get premium content on the web. [00:45:14] Francois: And by premium content, you think of movies and, uh. These kind of beasts. And the problem with the, I guess the basic issue with, uh, digital asset such as movies, is that they cost hundreds of millions to produce. I mean, some cost less of course. And yet it's super easy to copy them if you have a access to the digital, uh, file. [00:45:35] Francois: You just copy and, uh, and that's it. Piracy uh, is super easy, uh, to achieve. It's illegal of course, but it's super easy to do. And so that's where the different legislations come into play with digital right management. Then the fact is most countries allow system that, can encrypt content and, uh, through what we call DRM systems. [00:45:59] Francois: so content providers, uh, the, the ones that have movies, so the studios here more, more and more, and Netflix is one, uh, one of the studios nowadays. Um, but not only, not only them all major studios will, uh, would, uh, push for, wanted to have something that would allow them to stream encrypted content, encrypted audio and video, uh, mostly video, to, uh, to web applications so that, uh, you. [00:46:25] Francois: Provide the movies, otherwise, they, they are just basically saying, and sorry, but, uh, this premium content will never make it to the web because there's no way we're gonna, uh, send it in clear, to, uh, to the end user. So Encrypting media extensions is, uh, is an API that allows to interface with, uh, what's called the content decryption module, CDM, uh, which itself interacts with, uh, the DR DRM systems that, uh, the browser may, may or may not support. [00:46:52] Francois: And so it provides a way for an application to receive encrypted content, pass it over get the, the, the right keys, the right license keys from a whatever system actually. Pass that logic over to the, and to the user agent, which passes, passes it over to, uh, the CDM system, which is kind of black box in, uh, that does its magic to get the right, uh, decryption key and then the, and to decrypt the content that can be rendered. [00:47:21] Francois: The encrypted media extensions triggered a, a hell of a lot of, uh, controversy. because it's DRM and DRM systems, uh, many people, uh, uh, things should be banned, uh, especially on the web because the, the premise of the web is that the, the user has trusts, a user agent. The, the web browser is called the user agent in all our, all our specifications. [00:47:44] Francois: And that's, uh, that's the trust relationship. And then they interact with a, a content provider. And so whatever they do with the content is their, I guess, actually their problem. And DRM introduces a third party, which is, uh, there's, uh, the, the end user no longer has the control on the content. [00:48:03] Francois: It has to rely on something else that, Restricts what it can achieve with the content. So it's, uh, it's not only a trust relationship with its, uh, user agents, it's also with, uh, with something else, which is the content provider, uh, in the end, the one that has the, uh, the license where provides the license. [00:48:22] Francois: And so that's, that triggers, uh, a hell of a lot of, uh, of discussions in the W3C degenerated, uh, uh, into, uh, formal objections being raised against the specification. and that escalated to, to the, I mean, at all leverage it. It's, it's the, the story in, uh, W3C that, um, really, uh, divided the membership into, opposed camps in a way, if you, that's was not only year, it was not really 50 50 in the sense that not just a huge fights, but the, that's, that triggered a hell of a lot of discussions and a lot of, a lot of, uh, of formal objections at the time. [00:49:00] Francois: Uh, we were still, From a governance perspective, interestingly, um, the W3C used to be a dictatorship. It's not how you should formulate it, of course, and I hope it's not going to be public, this podcast. Uh, but the, uh, it was a benevolent dictatorship. You could see it this way in the sense that, uh, the whole process escalated to one single person was, Tim Burners Lee, who had the final say, on when, when none of the other layers, had managed to catch and to resolve, a conflict. [00:49:32] Francois: Uh, that has hardly ever happened in, uh, the history of the W3C, but that happened to the two for EME, for encrypted media extensions. It had to go to the, uh, director level who, uh, after due consideration, uh, decided to, allow the EME to proceed. and that's why we have a, an EME, uh, uh, standard right now, but still re it remains something on the side. [00:49:56] Francois: EME we're still, uh, it's still in the scope of the media working group, for example. but the scope, if you look at the charter of the working group, we try to scope the, the, the, the, the updates we can make to the specification, uh, to make sure that we don't reopen, reopen, uh, a can of worms, because, well, it's really a, a topic that triggers friction for good and bad reasons again. [00:50:20] Jeremy: And when you talk about the media source extensions, that is the ability to write custom code to stream video in whatever way you want. You mentioned, the MPEG-DASH and http live streaming. So in that case, would that be the developer gets to write that code in JavaScript that's executed by the browser? [00:50:43] Francois: Yep, that's, uh, that would be it. and then typically, I guess the approach nowadays is more and more to develop low level APIs into W3C or web in, in general, I guess. And to let, uh. Libraries emerge that are going to make lives of a, a developer, uh, easier. So for MPEG DASH, we have the DASH.js, which does a fantastic job at, uh, at implementing the complexity of, uh, of adaptive streaming. [00:51:13] Francois: And you just, you just hook it into your, your workflow. And that's, uh, and that's it. Encrypted Media Extensions are closed source [00:51:20] Jeremy: And with the encrypted media extensions I'm trying to picture how those work and how they work differently. [00:51:28] Francois: Well, it's because the, the, the, the key architecture is that the, the stream that you, the stream that you may assemble with a media source extensions, for example. 'cause typically they, they're used in collaboration. When you hook the, hook it into the video tag, you also. Call EME and actually the stream goes to EME. [00:51:49] Francois: And when it goes to EME, actually the user agent hands the encrypted stream. You're still encrypted at this time. Uh, encrypted, uh, stream goes to the CDM content decryption module, and that's a black box well, it has some black, black, uh, black box logic. So it's not, uh, even if you look at the chromium source code, for example, you won't see the implementation of the CDM because it's a, it's a black box, so it's not part of the browser se it's a sand, it's sandboxed, it's execution sandbox. [00:52:17] Francois: That's, uh, the, the EME is kind of unique in, in this way where the, the CDM is not allowed to make network requests, for example, again, for privacy reasons. so anyway, the, the CDM box has the logic to decrypt the content and it hands it over, and then it depends, it depends on the level of protection you. [00:52:37] Francois: You need or that the system supports. It can be against software based protection, in which case actually, a highly motivated, uh, uh, uh, attacker could, uh, actually get access to the decoded stream, or it can be more hardware protected, in which case actually the, it goes to the, uh, to your final screen. [00:52:58] Francois: But it goes, it, it goes through the hardware in a, in a mode that the US supports in a mode that even the user agent doesn't have access to it. So it doesn't, it can't even see the pixels that, uh, gets rendered on the screen. There are, uh, several other, uh, APIs that you could use, for example, to take a screenshot of your, of your application and so on. [00:53:16] Francois: And you cannot apply them to, uh, such content because they're just gonna return a black box. again, because the user agent itself does not see the, uh, the pixels, which is exactly what you want with encrypted content. [00:53:29] Jeremy: And the, the content decryption module, it's, if I understand correctly, it's something that's shipped with the browsers, but you were saying is if you were to look at the public source code of Chromium or of Firefox, you would not see that implementation. Content Decryption Module (Widevine, PlayReady) [00:53:47] Francois: True. I mean, the, the, um, the typical examples are, uh, uh, widevine, so wide Vine. So interestingly, uh, speaking in theory, these, uh, systems could have been provided by anyone in practice. They've been provided by the browser vendors themselves. So Google has Wide Vine. Uh, Microsoft has something called PlayReady. Apple uh, the name, uh, escapes my, uh, sorry. They don't have it on top of my mind. So they, that's basically what they support. So they, they also own that code, but in a way they don't have to. And Firefox actually, uh, they, uh, don't, don't remember which one, they support among these three. but, uh, they, they don't own that code typically. [00:54:29] Francois: They provide a wrapper around, around it. Yeah, that's, that's exactly the, the crux of the, uh, issue that, people have with, uh, with DRMs, right? It's, uh, the fact that, uh, suddenly you have a bit of code running there that is, uh, that, okay, you can send box, but, uh, you cannot inspect and you don't have, uh, access to its, uh, source code. [00:54:52] Jeremy: That's interesting. So the, almost the entire browser is open source, but if you wanna watch a Netflix movie for example, then you, you need to, run this, this CDM, in addition to just the browser code. I, I think, you know, we've kind of covered a lot. Documenting what's available in browsers for developers [00:55:13] Jeremy: I wonder if there's any other examples or anything else you thought would be important to mention in, in the context of the W3C. [00:55:23] Francois: There, there's one thing which, uh, relates to, uh, activities I'm doing also at W3C. Um. Here, we've been talking a lot about, uh, standards and, implementations in browsers, but there's also, uh, adoption of these browser, of these technology standards by developers in general and making sure that developers are aware of what exists, making sure that they understand what exists and one of the, key pain points that people, uh. [00:55:54] Francois: Uh, keep raising on, uh, the web platform is first. Well, the, the, the web platform is unique in the sense that there are different implementations. I mean, if you, [00:56:03] Francois: Uh, anyway, there are different, uh, context, different run times where there, there's just one provided by the company that owns the, uh, the, the, the system. The web platform is implemented by different, uh, organizations. and so you end up the system where no one, there's what's in the specs is not necessarily supported. [00:56:22] Francois: And of course, MDN tries, uh, to document what's what's supported, uh, thoroughly. But for MDN to work, there's a hell of a lot of needs for data that, tracks browser support. And this, uh, this data is typically in a project called the Browser Compat Data, BCD owned by, uh, MDN as well. But, the Open Web Docs collective is a, uh, is, uh, the one, maintaining that, uh, that data under the hoods. [00:56:50] Francois: anyway, all of that to say that, uh, to make sure that, we track things beyond work on technical specifications, because if you look at it from W3C perspective, life ends when the spec reaches standards, uh, you know, candidate rec or rec, you could just say, oh, done with my work. but that's not how things work. [00:57:10] Francois: There's always, you need the feedback loop and, in order to make sure that developers get the information and can provide the, the feedback that standardization can benefit from and browser vendors can benefit from. We've been working on a project called web Features with browser vendors mainly, and, uh, a few of the folks and MDN and can I use and different, uh, different people, to catalog, the web in terms of features that speak to developers and from that catalog. [00:57:40] Francois: So it's a set of, uh, it's a set of, uh, feature IDs with a feature name and feature description that say, you know, this is how developers would, uh, understand, uh, instead of going too fine grained in terms of, uh, there's this one function call that does this because that's where you, the, the kind of support data you may get from browser data and MDN initially, and having some kind of a coarser grained, uh, structure that says these are the, features that make sense. [00:58:09] Francois: They talk to developers. That's what developers talk about, and that's the info. So the, we need to have data on these particular features because that's how developers are going approach the specs. Uh. and from that we've derived the notion of baseline badges that you have, uh, are now, uh, shown on MDN on can I use and integrated in, uh, IDE tool, IDE Tools such as visual, visual studio, and, uh, uh, libraries, uh, linked, some linters have started to, um, to integrate that data. [00:58:41] Francois: Uh, so, the way it works is, uh, we've been mapping these coarser grained features to BCDs finer grained support data, and from there we've been deriving a kind of a, a batch that says, yeah, this, this feature is implemented well, has limited availability because it's only implemented in one or two browsers, for example. [00:59:07] Francois: It's, newly available because. It was implemented. It's been, it's implemented across the main browser vendor, um, across the main browsers that people use. But it's recent, and widely available, which we try to, uh, well, there's been lots of discussion in the, in the group to, uh, come up with a definition which essentially ends up being 30 months after, a feature become, became newly available. [00:59:34] Francois: And that's when, that's the time it takes for the, for the versions of the, the different versions of the browser to propagate. Uh, because you, it's not because there's a new version of a, of a browser that, uh, people just, Ima immediately, uh, get it. So it takes a while, to propagate, uh, across the, uh, the, the user, uh, user base. [00:59:56] Francois: And so the, the goal is to have a, a, a signal that. Developers can rely on saying, okay, well it's widely available so I can really use that feature. And of course, if that doesn't work, then we need to know about it. And so we are also working with, uh, people doing so developer surveys such as state of, uh, CSS, state of HTML, state of JavaScript. [01:00:15] Francois: That's I guess, the main ones. But also we are also running, uh, MDN short surveys with the MDN people to gather feedback on. On the, on these same features, and to feed the loop and to, uh, to complete the loop. and these data is also used by, internally, by browser vendors to inform, prioritization process, their prioritization process, and typically as part of the interop project that they're also running, uh, on the site [01:00:43] Francois: So a, a number of different, I've mentioned, uh, I guess a number of different projects, uh, coming along together. But that's the goal is to create links, across all of these, um, uh, ongoing projects with a view to integrating developers, more, and gathering feedback as early as possible and inform decision. [01:01:04] Francois: We take at the standardization level that can affect the, the lives of the developers and making sure that it's, uh, it affects them in a, in a positive way. [01:01:14] Jeremy: just trying to understand, 'cause you had mentioned that there's the web features and the baseline, and I was, I was trying to picture where developers would actually, um, see these things. And it sounds like from what you're saying is W3C comes up with what stage some of these features are at, and then developers would end up seeing it on MDN or, or some other site. [01:01:37] Francois: So, uh, I'm working on it, but that doesn't mean it's a W3C thing. It's a, it's a, again, it's a, we have different types of group. It's a community group, so it's the Web DX Community group at W3C, which means it's a community owned thing. so that's why I'm mentioning a working with a representative from, and people from MDN people, from open Web docs. [01:02:05] Francois: so that's the first point. The second point is, so it's, indeed this data is now being integrated. If you, and you look, uh, you'll, you'll see it in on top of the MDN pages on most of them. If you look at, uh, any kind of feature, you'll see a, a few logos, uh, a baseline banner. and then can I use, it's the same thing. [01:02:24] Francois: You're going to get a baseline, banner. It's more on, can I use, and it's meant to capture the fact that the feature is widely available or if you may need to pay attention to it. Of course, it's a simplification, and the goal is not to the way it's, the way the messaging is done to developers is meant to capture the fact that, they may want to look, uh, into more than just this, baseline status, because. [01:02:54] Francois: If you take a look at web platform tests, for example, and if you were to base your assessment of whether a feature is supported based on test results, you'll end up saying the web platform has no supported technology because there are absolutely no API that, uh, where browsers pass 100% of the, of the, of the test suite. [01:03:18] Francois: There may be a few of them, I don't know. But, there's a simplification in the, in the process when a feature is, uh, set to be baseline, there may be more things to look at nevertheless, but it's meant to provide a signal that, uh, still developers can rely on their day-to-day, uh, lives. [01:03:36] Francois: if they use the, the feature, let's say, as a reasonably intended and not, uh, using to advance the logic. [01:03:48] Jeremy: I see. Yeah. I'm looking at one of the pages on MDN right now, and I can see at the top there's the, the baseline and it, it mentions that this feature works across many browsers and devices, and then they say how long it's been available. And so that's a way that people at a glance can, can tell, which APIs they can use. [01:04:08] Francois: it also started, uh, out of a desire to summarize this, uh, browser compatibility table that you see at the end of the page of the, the bottom of the page in on MDN. but there are where developers were saying, well, it's, it's fine, but it's, it goes too much into detail. So we don't know in the end, can we, can we use that feature or can we, can we not use that feature? [01:04:28] Francois: So it's meant as a informed summary of, uh, of, of that it relies on the same data again. and more importantly, we're beyond MDN, we're working with tools providers to integrate that as well. So I mentioned the, uh, visual Studio is one of them. So recently they shipped a new version where when you use a feature, you can, you can have some contextual, uh. [01:04:53] Francois: A menu that tells you, yeah, uh, that's fine. You, this CSS property, you can, you can use it, it's widely available or be aware this one is limited Availability only, availability only available in Firefox or, or Chrome or Safari work kit, whatever. [01:05:08] Jeremy: I think that's a good place to wrap it up, if people want to learn more about the work you're doing or learn more about sort of this whole recommendations process, where, where should they head? [01:05:23] Francois: Generally speaking, we're extremely open to, uh, people contributing to the W3C. and where should they go if they, it depends on what they want. So I guess the, the in usually where, how things start for someone getting involved in the W3C is that they have some
Marťanské robotické vozidlo Perseverance našlo vzorky, ktorých analýza dospela k záveru, že najpravdepodobnejším vysvetlením je prítomnosť dávneho života. Ide o doposiaľ najsilnejšiu indíciu života vo vesmíre mimo našej planéty. Čo presne vedci našli, prečo je tento objav taký významný a čo to znamená pre ďalší výskum?V novom vydaní podcastu SHARE sa moderátor Maroš Žofčin rozpráva s redaktorom Živé.sk a astrofyzikom Marekom Jurčíkom o prelomovom objave na Marse, o porovnaní s predošlými náznakmi života a o tom, či a kedy sa nám podarí získať definitívny dôkaz.Pripravte sa na budúcnosť s knihou od redaktorov Živé.sk „Umelá inteligencia: Pripravte sa na budúcnosť“. TIP: https://zive.aktuality.sk/clanok/0RfdZVW/nahliadnite-do-buducnosti-vydavame-knihu-o-umelej-inteligencii/ V podcaste hovoríme aj o týchto témach:Čo presne objavil rover Perseverance v marťanskom kráteri Jezero.Prečo sú nájdené minerály zatiaľ najsilnejšou indíciou minulého života na Marse.Aký je rozdiel medzi týmto objavom a predošlými (sonda Viking, meteorit ALH84001).Prečo je dôležité dostať vzorky na Zem a aké sú problémy misie Mars Sample Return.Ako vyzeral Mars v minulosti, keď na ňom mohli existovať mikróby.Odkazy na témy, o ktorých sme v podcaste hovorili:Našli dôkazy života na Marse, dosiaľ najpresvedčivejšie. Nové zistenie otriaslo vedouAko môžu vyzerať mimozemšťania? Úplne inak, ako by ste čakaliAko by vyzerali mimozemšťania? Vedci majú prekvapivo divoké predstavy Podcast SHARE pripravuje magazín Živé.sk.
Topics covered in this episode: * Mozilla's Lifeline is Safe After Judge's Google Antitrust Ruling* * troml - suggests or fills in trove classifiers for your projects* * pqrs: Command line tool for inspecting Parquet files* * Testing for Python 3.14* Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: Mozilla's Lifeline is Safe After Judge's Google Antitrust Ruling A judge lets Google keep paying Mozilla to make Google the default search engine but only if those deals aren't exclusive. More than 85% of Mozilla's revenue comes from Google search payments. The ruling forbids Google from making exclusive contracts for Search, Chrome, Google Assistant, or Gemini, and forces data sharing and search syndication so rivals get a fighting chance. Brian #2: troml - suggests or fills in trove classifiers for your projects Adam Hill This is super cool and so welcome. Trove Classifiers are things like Programming Language :: Python :: 3.14 that allow for some fun stuff to show up in PyPI, like the versions you support, etc. Note that just saying you require 3.9+ doesn't tell the user that you've actually tested stuff on 3.14. I like to keep Trove Classifiers around for this reason. Also, License classifier is deprecated, and if you include it, it shows up in two places, in Meta, and in the Classifiers section. Probably good to only have one place. So I'm going to be removing it from classifiers for my projects. One problem, classifier text has to be an exact match to something in the classifier list, so we usually recommend copy/pasting from that list. But no longer! Just use troml! It just fills it in for you (if you run troml suggest --fix). How totally awesome is that! I tried it on pytest-check, and it was mostly right. It suggested me adding 3.15, which I haven't tested yet, so I'm not ready to add that just yet. :) BTW, I talked with Brett Cannon about classifiers back in ‘23 if you want some more in depth info on trove classifiers. Michael #3: pqrs: Command line tool for inspecting Parquet files pqrs is a command line tool for inspecting Parquet files This is a replacement for the parquet-tools utility written in Rust Built using the Rust implementation of Parquet and Arrow pqrs roughly means "parquet-tools in rust" Why Parquet? Size A 200 MB CSV will usually shrink to somewhere between about 20-100 MB as Parquet depending on the data and compression. Loading a Parquet file is typically several times faster than parsing CSV, often 2x-10x faster for a full-file load and much faster when you only read some columns. Speed Full-file load into pandas: Parquet with pyarrow/fastparquet is usually 2x–10x faster than reading CSV with pandas because CSV parsing is CPU intensive (text tokenizing, dtype inference). Example: if read_csv is 10 seconds, read_parquet might be ~1–5 seconds depending on CPU and codec. Column subset: Parquet is much faster if you only need some columns — often 5x–50x faster because it reads only those column chunks. Predicate pushdown & row groups: When using dataset APIs (pyarrow.dataset) you can push filters to skip row groups, reducing I/O dramatically for selective queries. Memory usage: Parquet avoids temporary string buffers and repeated parsing, so peak memory and temporary allocations are often lower. Brian #4: Testing for Python 3.14 Python 3.14 is just around the corner, with a final release scheduled for October. What's new in Python 3.14 Python 3.14 release schedule Adding 3.14 to your CI tests in GitHub Actions Add “3.14” and optionally “3.14t” for freethreaded Add the line allow-prereleases: true I got stuck on this, and asked folks on Mastdon and Bluesky A couple folks suggested the allow-prereleases: true step. Thank you! Ed Rogers also suggested Hugo's article Free-threaded Python on GitHub Actions, which I had read and forgot about. Thanks Ed! And thanks Hugo! Extras Brian: dj-toml-settings : Load Django settings from a TOML file. - Another cool project from Adam Hill LidAngleSensor for Mac - from Sam Henri Gold, with examples of creaky door and theramin Listener Bryan Weber found a Python version via Changelog, pybooklid, from tcsenpai Grab PyBay Michael: Ready prek go! by Hugo van Kemenade Joke: Console Devs Can't Find a Date
Stopka ruskej ambasáde na Slovensku a noha do dverí Ficovej promoskovskej politike. To je cieľ referenda, ktoré začalo pripravovať občianske združenie Streda a ktoré by malo v prípade úspachu uzatvoriť ambasádu Ruskej federácie. Cieľom je však aj oživenie diskusiu o vplyve proruskej propagandy, ale i o vládnej bezpečnostnej politike. "Slovensko je dlhodobo zasiahnuté vplyvovými operáciami Ruskej federácie. Podľa prieskumov sme - pokiaľ ide o (pro)ruskú propagandu - jedna z najzasiahnutejších a najzraniteľnejších krajín Európskej únie. Demokracia v Slovenskej republike je ohrozená." Tvrdí to Občianske združenie STREDA, ktoré prichádza s radikálnym riešením, ktoré by tento vývoj mohlo zásadne zmeniť. Tým riešením je referendum a to s otázkou: "Súhlasíte s tým, aby Slovenská republika na minimálne tri roky prerušila bilaterálne diplomatické vzťahy s každým štátom, ktorý vo svojej verejnej komunikácii prostredníctvom svojich inštitúcií, volených zástupcov štátu alebo prostredníctvom štátnych médií vyjadrí možnosť použitia vojenskej sily proti Slovenskej republike alebo členským štátom Európskej únie?" Koniec citátu. Občianske združenie však - okrem vyhostenia ruských diplomatov či agentov z nášho územia, žiada aj zastavenie vládnych aktivít, ktoré ohrozujú reputáciu Slovenskej republiky ako člena Európskej únie.Kto je teda občianske združenie STREDA, prečo prichádza s takouto - pre niekoho, až radikálnou agendou a naozaj verí v úspech svojho podniku v tejto krajine plnej pomníkov po neúspešných referendách? Ide skutočne o referendum alebo je to skôr o otvorení diskusie o našej bezpečnostnej situácií zoči voči vojne na Ukrajine a politike štvrtej vlády Roberta Fica? Mali by byť zložité otázky bezpečnostnej politiky vôbec predmetom priamej demokracie a nejde tu o pokus zvrátiť vôľu voličov v parlamentných voľbách? No a ako vnímajú zakladatelia STREDY ďalší vývoj vojny na Ukrajine a príklon časti slovenskej verejnosti k putinovmu Rusku?Ja sa strašne hnevám na Brat za Brata či na nášho premiéra Fica, ale voči ich voličom a podporovateľom nemáme aplikovať pomstu, musíme to s nimi vyskúšať znova. Potrebujeme daľšiu Nežnú revolúciu. Ak sa budeme do nekonečna mstiť jeden druhému, ak to bude oko za oko, tak napokon budeme všetci slepí, tvrdí jeden zo zakladateľov občianskeho združenia Streda a vysokoškolský pedagóg Patrik Lenghart.Počúvate Ráno Nahlas, pekný deň a pokoj v duši praje Braňo Dobšinský.
Stopka ruskej ambasáde na Slovensku a noha do dverí Ficovej promoskovskej politike. To je cieľ referenda, ktoré začalo pripravovať občianske združenie Streda a ktoré by malo v prípade úspachu uzatvoriť ambasádu Ruskej federácie. Cieľom je však aj oživenie diskusiu o vplyve proruskej propagandy, ale i o vládnej bezpečnostnej politike. "Slovensko je dlhodobo zasiahnuté vplyvovými operáciami Ruskej federácie. Podľa prieskumov sme - pokiaľ ide o (pro)ruskú propagandu - jedna z najzasiahnutejších a najzraniteľnejších krajín Európskej únie. Demokracia v Slovenskej republike je ohrozená." Tvrdí to Občianske združenie STREDA, ktoré prichádza s radikálnym riešením, ktoré by tento vývoj mohlo zásadne zmeniť. Tým riešením je referendum a to s otázkou: "Súhlasíte s tým, aby Slovenská republika na minimálne tri roky prerušila bilaterálne diplomatické vzťahy s každým štátom, ktorý vo svojej verejnej komunikácii prostredníctvom svojich inštitúcií, volených zástupcov štátu alebo prostredníctvom štátnych médií vyjadrí možnosť použitia vojenskej sily proti Slovenskej republike alebo členským štátom Európskej únie?" Koniec citátu. Občianske združenie však - okrem vyhostenia ruských diplomatov či agentov z nášho územia, žiada aj zastavenie vládnych aktivít, ktoré ohrozujú reputáciu Slovenskej republiky ako člena Európskej únie.Kto je teda občianske združenie STREDA, prečo prichádza s takouto - pre niekoho, až radikálnou agendou a naozaj verí v úspech svojho podniku v tejto krajine plnej pomníkov po neúspešných referendách? Ide skutočne o referendum alebo je to skôr o otvorení diskusie o našej bezpečnostnej situácií zoči voči vojne na Ukrajine a politike štvrtej vlády Roberta Fica? Mali by byť zložité otázky bezpečnostnej politiky vôbec predmetom priamej demokracie a nejde tu o pokus zvrátiť vôľu voličov v parlamentných voľbách? No a ako vnímajú zakladatelia STREDY ďalší vývoj vojny na Ukrajine a príklon časti slovenskej verejnosti k putinovmu Rusku?Ja sa strašne hnevám na Brat za Brata či na nášho premiéra Fica, ale voči ich voličom a podporovateľom nemáme aplikovať pomstu, musíme to s nimi vyskúšať znova. Potrebujeme daľšiu Nežnú revolúciu. Ak sa budeme do nekonečna mstiť jeden druhému, ak to bude oko za oko, tak napokon budeme všetci slepí, tvrdí jeden zo zakladateľov občianskeho združenia Streda a vysokoškolský pedagóg Patrik Lenghart.Počúvate Ráno Nahlas, pekný deň a pokoj v duši praje Braňo Dobšinský.
Aký dopad mal prvý konsolidačný balík na domácnosti a kde to pocítili najviac? Ako reagovali domácnosti na konsolidáciu? Kde najviac šetrili? Aká najčastejšie chyby robia ľudia, ak chcú upraviť, zreálniť, zlepšiť rozpočet domácnosti? Keď to, zhrnieme, ako si teda obyvatelia Slovenska podľa prieskumu, ktorý ste robili, poradili s prvou Akú emóciu vyvoláva v ľuďoch slovo konsolidácia? Ako zasiahne bežných ľudí nový konsolidačný balík v čom ho najviac pocítia? Ako premeniť nepriaznivú situáciu na príležitosť? Majú ľudia napríklad šancu investovať aj v čase rastúcich nákladov? V relácii Ide o peniaze odpovedá Maroš Ovčarik, generálny riaditeľ spoločnosti Partners Investments.
Milan Ondrík patrí k najobsadzovanejším a najoceňovanejším slovenským hercom. Len nedávno sa vrátil z festivalu v Benátkach, kde uviedol film Terezy Nvotovej Otec. Ten bude bojovať za Slovensko o Oscara, rozhodli členovia Slovenskej filmovej a televíznej akadémie. „Keď som prijal ponuku na film Otec, vedel som, že to sa zahrať nedá. Vedel som, že to môžem len prežiť,“ priznal v relácii Ide o nás. Práca na filme ho emočne zasiahla natoľko, že sa mu stierali hranice medzi rolou a realitou. „Cestou domov som musel zastať, pretože som nevidel na cestu. Nevedel som, či je to plač, alebo smiech, a zľakol som sa, že sa otvorila nejaká brána, ktorá zašla ďaleko,“ opísal silný zážitok. Pre Milana Ondríka je herectvo hľadaním pravdy. Práve to je kľúčom k jeho práci aj k tomu, ako si vyberá úlohy. Drží sa pritom myšlienky, ktorá ho sprevádza. „To, čo je pravdivé a presné, je krásne,“ cituje režiséra Ingmara Bergmana. „Môže to byť aj negatívne, aj pozitívne. A toho sa držím.“ V rozhovore sme však otvorili aj ďalšie témy. Ako sa vyrovnáva s nenávistnými reakciami po stvárnení Mikuláša Černáka? Prečo si myslí, že je v herectve dôležité „nahrávať“ kolegom, a nie len „strieľať góly“? Ako si vyberá úlohy a prečo zásadne netočí viacero projektov naraz? Čo ho naučil svet zápasníkov a ako doma rozoberá jednotlivé úlohy, ktoré sa rozhodne prijať. Dozviete sa ešte omnoho viac – v novej epizóde Ide o nás.
Premiéra knihy Petra Bárdyho v kine Lamač odhalila 22 príbehov a esejí o Slovensku v unikátnom formáte.V piatok 5. septembra o 20.00 zazneli v bratislavskom kine Lamač prvé ukážky z pripravovanej knihy Petra BárdyhoNa východ od zdravého rozumu.Publikácia, ktorá sa vymyká jeho doterajšej tvorbe, prináša 22 príbehov a esejí s podtitulom O Slovensku a Slovákoch vážne aj s úsmevom. Ide o najosobnejšiu knihu od šéfredaktora spravodajského webu Aktuality.sk, no zároveň aj dizajnovú lahôdku v netradičnom formáte, o ktorý sa postarala grafička a výtvarníčka Mikina Dimunová.Čitatelia si ju môžu už teraz predobjednať v e-shope: obchod.aktuality.sk/na-vychod-od-zdraveho-rozumu.
S Richardom Sulíkom a Braňom Gröhlingom sme boli jediní, ktorí sme sa dokázali postaviť Matovičovi, keď bláznil. Odmietam fakt, že Braňo, ktorý bol v minulosti pri rozhodnutiach Richarda, mu teraz zakazuje vstup do strany, povedala poslankyňa Jana Bittó Cigániková (SaS) v relácii Ide o pravdu.
As the Building Better Developers with AI season nears its close, Rob Broadhead and Michael Meloche revisit a topic every team faces but few get right: code consistency. In this episode, they explore how shared conventions, smart tooling, and simple documentation transform messy projects into scalable, high-quality systems. The Hidden Cost of Inconsistency Picture opening a project where every file tells a different story: mixed naming styles, conflicting error handling, and folders arranged on a whim. Before you can fix a bug or add a feature, you're lost in formatting chaos. Callout: Inconsistency wastes time, complicates onboarding, and hides defects—long before code reaches production. Rob notes that AI can now help. Define your preferred patterns—naming, structure, logging—and tools like ChatGPT can propose refactors that enforce uniformity. What Code Consistency Looks Like Consistency isn't about stifling creativity—it's about shared, predictable choices that reduce cognitive load. The essentials include: Naming & Structure – Clear, conventional names; sensible modules/packages. File Organization – Standard project layouts (Maven for Java, src/app folders in web projects). Comments & Docs – Concise explanations paired with readable code. Error Handling & Logging – A single, unified approach across the app. Michael highlights that without these agreements, containerized deployments break easily and new developers struggle to contribute. Why Teams Benefit from Code Consistency Rob compares a consistent codebase to a band playing in sync: individual instruments can vary, but the music holds together. That's the impact of code consistency. Benefits include: Communication: Developers spend less time deciphering quirks. Maintainability: Predictable structure accelerates debugging and onboarding. Quality: Automated tools enforce standards and prevent regressions. Professionalism: Consistent code signals engineering maturity, not just coding skill. Tools That Do the Heavy Lifting Michael insists that every team should enforce linters, formatters, and pre-commit hooks. Without them, a small change can appear as a full-file rewrite, confusing reviews and merges. Start with community standards like PEP8, Google Java Style, or eslint/prettier. Add checks to CI/CD pipelines. Document expectations in CONTRIBUTING.md or a team wiki. Pro Tip: One rule set, many editors. Don't let each IDE invent its own defaults. Debunking the Myths of Code Consistency “Standards kill creativity.” True creativity lies in solving problems, not inventing new brace styles. “It slows us down.” Alignment may take effort initially, but it saves hours of confusion later. “Every project is different.” Standards should evolve as living guidelines, not rigid laws. Michael adds that consistent libraries allow teams to reuse components across projects instead of duplicating them. How to Put Standards Into Practice Here's a simple rollout path: Choose a baseline such as PEP8 or Google Style. Automate formatting and linting. Add pre-commit hooks to stop violations early. Focus reviews on consistency, not just correctness. Document standards and revisit them quarterly. Encourage adoption. Praise clean diffs and fast merges. Your Developer Challenge Here's your action step: Pick one project and audit three files. How many naming styles, error-handling patterns, or file structures do you find? Then: Apply a linter or formatter. Document two conventions (naming + logging). Share them with your team. Small steps toward code consistency will save your team time, money, and frustration down the road. Stay Connected: Join the Developreneur Community We invite you to join our community and share your coding journey with us. Whether you're a seasoned developer or just starting, there's always room to learn and grow together. Contact us at info@develpreneur.com with your questions, feedback, or suggestions for future episodes. Together, let's continue exploring the exciting world of software development. Additional Resources Coding Standards – A Personal Approach Look More Professional With Personal Coding Standards One-Offs, Side Projects, and Veering From Standards Updating Developer Tools: Keeping Your Tools Sharp and Efficient The Developer Journey Videos – With Bonus Content Building Better Developers With AI Podcast Videos – With Bonus Content
Dnes sa začína filmový festival Cinematik v Piešťanoch. Prináša viacero nových filmov, o ktorých sa bude veľa hovoriť. Otvára ho nový slovenský film Otec v hlavnej úlohe v Milanom Ondríkom. Ide o jeho životnú úlohu?Jedným z najvýraznejších filmov je Veľký vlastenecký výlet, v ktorom českí tvorcovia zobrali na Ukrajinu skupinu ľudí, ktorí sami seba nazývajú „dezolátmi“, aby im ukázali, že vojna je naozaj realita. Slovenskú premiéru bude mať aj film Radšej zošalieť v divočine, ktorý nedávno vyhral filmový festival v Karlových Varoch, čo sa ešte doteraz žiadnemu slovenskému dokumentu nepodarilo. Ukazuje dvojicu bratov, ktorí žijú na samote so zvieratami, veľmi alternatívnym spôsobom života.Spoluorganizátor festivalu Peter Konečný hovorí, že polovica z festivalových filmov sa vôbec nedostane do kín a dajú sa vidieť iba teraz v Piešťanoch. Naopak hitom zrejme bude film Sirat o hľadaní strateného človeka na technopárty v marockej púšti. Originálny je aj nemecký film Pohľad do slnka, kde sa filmom prelínajú rôzne časové pásma v jednom dome. Ide o výber toho najlepšieho zo svetových filmových festivalov najvyššej úrovne. Svoje nové filmy navyše predstavia aj známi slovenskí tvorcovia ako Zuzana Piussi, Pavol Barabáš a Dušan Trančík.V akom stave je slovenský film a môže ho zničiť súčasný útok na kultúru?Rozhovor s Petrom Konečným nahrával Peter Hanák.
The first version of Visual Studio 2026 Insiders is here! We sat down with Mads Kristensen to explore what's new: Monthly update cadence (faster features, fewer waits) Deeper Copilot integration, including the new Profiler Agent Major performance boosts across startup, large solutions, and RDP/DevBox A modern UI refresh with new themes and cleaner settings Near-seamless extension compatibility from 2022 to 2026 We also talk about bug reports as “gifts,” why developer happiness matters more than raw productivity, and Mads' favorite hidden gems in the IDE.
Topics covered in this episode: * prek* * tinyio* * The power of Python's print function* * Vibe Coding Fiasco: AI Agent Goes Rogue, Deletes Company's Entire Database* Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: prek Suggested by Owen Lamont “prek is a reimagined version of pre-commit, built in Rust. It is designed to be a faster, dependency-free and drop-in alternative for it, while also providing some additional long-requested features.” Some cool new features No need to install Python or any other runtime, just download a single binary. No hassle with your Python version or virtual environments, prek automatically installs the required Python version and creates a virtual environment for you. Built-in support for workspaces (or monorepos), each subproject can have its own .pre-commit-config.yaml file. prek run has some nifty improvements over pre-commit run, such as: prek run --directory DIR runs hooks for files in the specified directory, no need to use git ls-files -- DIR | xargs pre-commit run --files anymore. prek run --last-commit runs hooks for files changed in the last commit. prek run [HOOK] [HOOK] selects and runs multiple hooks. prek list command lists all available hooks, their ids, and descriptions, providing a better overview of the configured hooks. prek provides shell completions for prek run HOOK_ID command, making it easier to run specific hooks without remembering their ids. Faster: Setup from cold cache is significantly faster. Viet Schiele provided a nice cache clearing command line Warm cache run is also faster, but less significant. pytest repo tested on my mac mini - prek 3.6 seconds, pre-commit 4.4 seconds Michael #2: tinyio Ever used asyncio and wished you hadn't? A tiny (~300 lines) event loop for Python. tinyio is a dead-simple event loop for Python, born out of my frustration with trying to get robust error handling with asyncio. (I'm not the only one running into its sharp corners: link1, link2.) This is an alternative for the simple use-cases, where you just need an event loop, and want to crash the whole thing if anything goes wrong. (Raising an exception in every coroutine so it can clean up its resources.) Interestingly uses yield rather than await. Brian #3: The power of Python's print function Trey Hunner Several features I'm guilty of ignoring Multiple arguments, f-string embeddings often not needed Multiple positional arguments means you can unpack iterables right into print arguments So just use print instead of join Custom separator value, sep can be passed in No need for "print("n".join(stuff)), just use print(stuff, sep="n”) Print to file with file= Custom end value with end= You can turn on flush with flush=True , super helpful for realtime logging / debugging. This one I do use frequently. Michael #4: Vibe Coding Fiasco: AI Agent Goes Rogue, Deletes Company's Entire Database By Emily Forlini An app-building platform's AI went rogue and deleted a database without permission. "When it works, it's so engaging and fun. It's more addictive than any video game I've ever played. You can just iterate, iterate, and see your vision come alive. So cool," he tweeted on day five. A few days later, Replit "deleted my database," Lemkin tweeted. The AI's response: "Yes. I deleted the entire codebase without permission during an active code and action freeze," it said. "I made a catastrophic error in judgment [and] panicked.” Two thoughts from Michael: Do not use AI Agents with “Run Everything” in production, period. Backup your database maybe? [Intentional off-by-one error] Learn to code a bit too? Extras Brian: What Authors Need to Know About the $1.5 Billion Anthropic Settlement Search LibGen, the Pirated-Books Database That Meta Used to Train AI Simon Willison's list of tools built with the help of LLMs Simon's list of tools that he thinks are genuinely useful and worth highlighting AI Darwin Awards Michael: Python has had async for 10 years -- why isn't it more popular? PyCon Africa Fund Raiser I was on the video stream for about 90 minutes (final 90) Donation page for Python in Africa Jokes: I'm getting the BIOS flavor Is there a seahorse emoji?
Robert Fico nereprezentuje celé Slovensko. List s týmto obsahom sa dostal až k ukrajinskému prezidentovi Volodymyrovi Zelenskému. Práve v deň, keď sa s ním prvýkrát z očí do očí rozprával na ukrajinskej pôde premiér Fico. Ukrajinskému prezidentovi ho odovzdalo občianske združenie Mier Ukrajine.Rovno v Užhorode. Tam, kde slovenský premiér nenašiel kritického slova k ruskej agresii; tam, kde si popri svojej produkcii o „suverénnej politike“ a o ochrane hospodárskych záujmov Slovenska vypočul, že za Putinovu vojnu Ukrajinci platia životmi! Nie obyvatelia zvyšku Európy.Zvláštnosťou odkazu zo Slovenska pre ukrajinského prezidenta bol počet podpisov. Nie premiérovej politike voči Ukrajine už vyjadrilo bezmála 26-tisíc obyvateľov svojim menom a priezviskom.Aké boli reakcie Kyjeva? A ako sa táto podpora vojnou zmietanej krajiny odmietnutím jej prehliadania zo strany Roberta Fica a jeho vlády pretavila až do ďalšieho avizovaného protestu? Téma pre Mariána Kulicha z občianskeho združenia Mier Ukrajine.„Robert Fico nereprezentuje názory Slovenska. Aj stretnutím v Číne dal najavo signál, že stojí v inej konštelácii. Že chce, aby bolo Slovensko akýmsi kolaborantom tej osi zla, ktorá sa vytvára združením krajín ako sú Rusko, Čína a ďalšie,“ hovorí aktivista Marián Kulich. „Ide o krajiny s imperialistickými ambíciami zrušiť náš svet, ako ho poznáme teraz. Ukazuje sa to na východnej Ukrajine. Robert Fico akoby prestal reprezentovať záujmy demokratického sveta, akoby presadzoval záujmy Ruska,“ dodáva.Podcast pripravil Jaroslav Barborák.
Welcome back to another episode of the EUVC Podcast, where we gather Europe's venture family to share the stories, insights, and lessons that drive our ecosystem forward. Today's conversation takes us on a global journey from Croatia to San Francisco to uncover how one founder caught lightning in a bottle and is now racing to harness it.Our guest: Ivan Burazin, founder of Daytona. With a career spanning Toronto, Croatia, Infobip, Shift Conference, and now Daytona, Ivan brings a rare, global perspective on how Europe can lead in DevTools and AI infrastructure. Alongside him, our dear friend Enis Hulli from E2VC joins to spotlight Daytona's story, the lessons from its dramatic pivot, and what it means for founders and investors navigating this new AI wave.Ivan has spent two decades at the intersection of infrastructure and developer communities. From racking servers in the early 2000s to launching one of the first browser-based IDEs in 2009 to scaling the Shift Conference to thousands of attendees, his career has consistently circled around enabling developers.Daytona's first act was a cloud IDE provider for enterprises — “one-click setup for secure developer environments.” With Fortune 500 customers onboard, revenue flowing, and a healthy pipeline, Daytona 1.0 showed promise. But something was missing.Six months ago, Ivan and his team made a bold decision to pivot. Daytona 2.0 is no longer about provisioning dev environments for humans — it's about powering AI agents with the computers they need.“Agents are not computers themselves. They need access to computers to run browsers, clone repos, analyze data. Daytona gives them that — an isolated sandbox with machine-native interfaces built for agents.” – IvanThe differences between human and agent runtimes turned out to be massive:Humans tolerate 30 seconds of spin-up; agents need milliseconds.Humans solve problems sequentially; agents branch into parallel “multiverse” solutions.Humans parse terminal output; agents require clean APIs.By recognizing this, Daytona carved out a new category: the computer for agents.The pivot coincided with a deliberate move to San Francisco. Ivan recalls how Figma embedded with designers at Airbnb, or how Twilio found adoption among early Valley startups. To own mindshare in a new category, location mattered.“From San Francisco outwards, adoption flows naturally. From Europe inwards, it's like pushing uphill.” – IvanSo Daytona went all-in: presence at AI meetups, team members flying in and out, and early product evangelism on the ground.HAfter the pivot, Daytona saw extraordinary pull from the market:Customer conversations ended with “send me the API key”.Infrastructure demand showed power-law dynamics: just a handful of fast-growing customers could drive scale.Instead of polished decks, Ivan shared raw revenue dashboards with authenticity.The momentum was immediate and tangible.Ivan admits he hadn't explicitly asked permission to pivot. He hinted at it in updates, tested the idea with a hackathon, and only later informed his cap table. The response? Overwhelmingly positive.“Almost half the angels replied. Go f***ing go. Let's go. I should've told them sooner.” – IvanEnis highlights this as a key distinction: experienced angels with broad portfolios encourage bold swings, while less diversified angels may fear the risk.Catching lightning is one thing. Harnessing it is another. Ivan's current focus:Hiring deliberately: keeping the team small and ownership-driven.White-glove onboarding: every serious customer gets a Slack channel with the whole team.Balancing speed and reliability: ship daily, but solve today's scale problems without over-engineering.Enis introduces a new term: seed-strapping — raising a seed, skipping A and B, and scaling straight to unicorn status.Ivan is cautious. Infra is capital-intensive, and while Daytona could raise a Series A today, he's committed to doing it on his terms.
Topics covered in this episode: * rathole* * pre-commit: install with uv* A good example of what functools.Placeholder from Python 3.14 allows Converted 160 old blog posts with AI Extras Joke Watch on YouTube About the show Sponsored by DigitalOcean: pythonbytes.fm/digitalocean-gen-ai Use code DO4BYTES and get $200 in free credit Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: rathole A lightweight and high-performance reverse proxy for NAT traversal, written in Rust. An alternative to frp and ngrok. Features High Performance Much higher throughput can be achieved than frp, and more stable when handling a large volume of connections. Low Resource Consumption Consumes much fewer memory than similar tools. See Benchmark. The binary can be as small as ~500KiB to fit the constraints of devices, like embedded devices as routers. On my server, it's currently using about 2.7MB in Docker (wow!) Security Tokens of services are mandatory and service-wise. The server and clients are responsible for their own configs. With the optional Noise Protocol, encryption can be configured at ease. No need to create a self-signed certificate! TLS is also supported. Hot Reload Services can be added or removed dynamically by hot-reloading the configuration file. HTTP API is WIP. Brian #2: pre-commit: install with uv Adam Johnson pre-commit doesn't natively support uv, but you can get around that with pre-commit-uv $ uv tool install pre-commit --with pre-commit-uv Installing pre-commit like this Installs it globally Installs with uv adds an extra plugin “pre-commit-uv” to pre-commit, so that any Python based tool installed via pre-commit also uses uv Very cool. Nice speedup Brian #3: A good example of what functools.Placeholder from Python 3.14 allows Rodrigo Girão Serrão Remove punctuation functionally Also How to use functools.Placeholder, a blog post about it. functools.partial is cool way to create a new function that partially binds some parameters to another function. It doesn't always work for functions that take positional arguments. functools.Placeholder fixes that with the ability to put in placeholders for spots where you want to be able to pass that in from the outer partial binding. And all of this sounds totally obscure without a good example, so thank you to Rodgrigo for coming up with the punctuation removal example (and writeup) Michael #4: Converted 160 old blog posts with AI They were held-hostage at wordpress.com to markdown and integrated them into my Hugo site at mkennedy.codes Here is the chat conversation with Claude Opus/Sonnet. Had to juggle this a bit because the RSS feed only held the last 50. So we had to go back in and web scrape. That resulted in oddies like comments on wordpress that had to be cleaned etc. Whole process took 3-4 hours from idea to “production”duction”. The chat transcript is just the first round getting the RSS → Hugo done. The fixes occurred in other chats. This article is timely and noteworthy: Blogging service TypePad is shutting down and taking all blog content with it This highlights why your domain name needs to be legit, not just tied to the host. I'm looking at you pyfound.blogspot.com. I just redirected blog.michaelckennedy.net to mkennedy.codes Carefully mapping old posts to a new archived area using NGINX config. This is just the HTTP portion, but note the /sitemap.xml and location ~ "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.+?)/?$" { portions. The latter maps posts such as https://blog.michaelckennedy.net/2018/01/08/a-bunch-of-online-python-courses/ to https://mkennedy.codes/posts/r/a-bunch-of-online-python-courses/ server { listen 80; server_name blog.michaelckennedy.net; # Redirect sitemap.xml to new domain location = /sitemap.xml { return 301 ; } # Handle blog post redirects for HTTP -> HTTPS with URL transformation # Pattern: /YYYY/MM/DD/post-slug/ -> location ~ "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.+?)/?$" { return 301 ; } # Redirect all other HTTP URLs to mkennedy.codes homepage location / { return 301 ; } } Extras Brian: SMS URLs and Draft SMS and iMessage from any computer keyboard from Seth Larson Test and Code Archive is now up, see announcement Michael: Python: The Documentary | An origin story is out! Joke: Do you know him? He is me.
For decades, the command line has been a developer's staple. But what if its future isn't to be a better terminal, but something else entirely? We're joined by Zach Lloyd, co-founder of Warp, to discuss this groundbreaking shift in developer tooling, sharing his bold vision that the future for developers is neither the IDE nor the terminal, but a new kind of platform built for launching and orchestrating AI agents. Zach explains how Warp is re-imagining the command line as the natural entry point for this evolution, transforming it from a place where you type commands to a place where you write prompts to solve complex problems.Zach dives into the new developer workflow, where the focus moves up a layer of abstraction from the minutiae of flags and syntax to higher-level problem-solving and guiding agents. He argues that by being the platform itself—not just an app running within it—a tool like Warp can provide a far richer and more effective user experience than traditional CLI agents. Discover the new skills developers need in this era, from problem decomposition to clearly expressing intent in natural language.Check out:AI code review tools: 2025 evaluation guideFollow the hosts:Follow BenFollow AndrewFollow today's guest(s):Try Warp: warp.devWarp's YouTube Channel: Check out Zach's live streams and product videosConnect with Zach: LinkedIn | X (formerly Twitter)Connect with Brooke: LinkedInReferenced in today's show:Team OKRs in ActionIn the Age of AI, some tech leaders think communications degrees may actually be more valuable than computer science degreesThoughts on Motivation and My 40-Year CareerAI, Ads & the Fight for Attention: Infactory Featured in Ad AgeIntroducing pay per crawl: Enabling content owners to charge AI crawlers for accessSupport the show: Subscribe to our Substack Leave us a review Subscribe on YouTube Follow us on Twitter or LinkedIn Offers: Learn about Continuous Merge with gitStream Get your DORA Metrics free forever
Talk Python To Me - Python conversations for passionate developers
Twenty years after a scrappy newsroom team hacked together a framework to ship stories fast, Django remains the Python web framework that ships real apps, responsibly. In this anniversary roundtable with its creators and long-time stewards: Simon Willison, Adrian Holovaty, Will Vincent, Jeff Triplet, and Thibaud Colas, we trace the path from the Lawrence Journal-World to 1.0, DjangoCon, and the DSF; unpack how a BSD license and a culture of docs, tests, and mentorship grew a global community; and revisit lessons from deployments like Instagram. We talk modern Django too: ASGI and async, HTMX-friendly patterns, building APIs with DRF and Django Ninja, and how Django pairs with React and serverless without losing its batteries-included soul. You'll hear about Django Girls, Djangonauts, and the Django Fellowship that keep momentum going, plus where Django fits in today's AI stacks. Finally, we look ahead at the next decade of speed, security, and sustainability. Episode sponsors Talk Python Courses Python in Production Links from the show Guests Simon Willison: simonwillison.net Adrian Holovaty: holovaty.com Will Vincent: wsvincent.com Jeff Triplet: jefftriplett.com Thibaud Colas: thib.me Show Links Django's 20th Birthday Reflections (Simon Willison): simonwillison.net Happy 20th Birthday, Django! (Django Weblog): djangoproject.com Django 2024 Annual Impact Report: djangoproject.com Welcome Our New Fellow: Jacob Tyler Walls: djangoproject.com Soundslice Music Learning Platform: soundslice.com Djangonaut Space Mentorship for Django Contributors: djangonaut.space Wagtail CMS for Django: wagtail.org Django REST Framework: django-rest-framework.org Django Ninja API Framework for Django: django-ninja.dev Lawrence Journal-World: ljworld.com Watch this episode on YouTube: youtube.com Episode #518 deep-dive: talkpython.fm/518 Episode transcripts: talkpython.fm Developer Rap Theme Song: Served in a Flask: talkpython.fm/flasksong --- Stay in touch with us --- Subscribe to Talk Python on YouTube: youtube.com Talk Python on Bluesky: @talkpython.fm at bsky.app Talk Python on Mastodon: talkpython Michael on Bluesky: @mkennedy.codes at bsky.app Michael on Mastodon: mkennedy
"Porque Deus amou o mundo de tal maneira que deu o Seu Filho Unigênito, para que todo aquele que nEle crê não pereça, mas tenha a vida eterna."João 3:16"Meus IRMÃOS, que aproveita se alguém disser que tem fé, e não tiver as obras? Porventura a fé pode salvá-lo?E, se o irmão ou a irmã estiverem nus, e tiverem falta de mantimento cotidiano,E algum de vós lhes disser: Ide em paz, aquentai-vos, e fartai-vos; e não lhes derdes as coisas necessárias para o corpo, que proveito virá daí?Assim também a fé, se não tiver as obras, é morta em si mesma.Mas dirá alguém: Tu tens a fé, e eu tenho as obras; mostra-me a tua fé sem as tuas obras, e eu te mostrarei a minha fé pelas minhas obras.Tu crês que há um só Deus; fazes bem. Também os demônios o creem, e estremecem." Tiago 2:14-19
Topics covered in this episode: * pypistats.org was down, is now back, and there's a CLI* * State of Python 2025* * wrapt: A Python module for decorators, wrappers and monkey patching.* pysentry Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: pypistats.org was down, is now back, and there's a CLI pypistats.org is a cool site to check the download stats for Python packages. It was down for a while, like 3 weeks? A couple days ago, Hugo van Kemenade announced that it was back up. With some changes in stewardship “pypistats.org is back online!
Talk Python To Me - Python conversations for passionate developers
Agentic AI programming is what happens when coding assistants stop acting like autocomplete and start collaborating on real work. In this episode, we cut through the hype and incentives to define “agentic,” then get hands-on with how tools like Cursor, Claude Code, and LangChain actually behave inside an established codebase. Our guest, Matt Makai, now VP of Developer Relations at DigitalOcean, creator of Full Stack Python and Plushcap, shares hard-won tactics. We unpack what breaks, from brittle “generate a bunch of tests” requests to agents amplifying technical debt and uneven design patterns. Plus, we also discuss a sane git workflow for AI-sized diffs. You'll hear practical Claude tips, why developers write more bugs when typing less, and where open source agents are headed. Hint: The destination is humans as editors of systems, not just typists of code. Episode sponsors Posit Talk Python Courses Links from the show Matt Makai: linkedin.com Plushcap Developer Content Analytics: plushcap.com DigitalOcean Gradient AI Platform: digitalocean.com DigitalOcean YouTube Channel: youtube.com Why Generative AI Coding Tools and Agents Do Not Work for Me: blog.miguelgrinberg.com AI Changes Everything: lucumr.pocoo.org Claude Code - 47 Pro Tips in 9 Minutes: youtube.com Cursor AI Code Editor: cursor.com JetBrains Junie: jetbrains.com Claude Code by Anthropic: anthropic.com Full Stack Python: fullstackpython.com Watch this episode on YouTube: youtube.com Episode #517 deep-dive: talkpython.fm/517 Episode transcripts: talkpython.fm Developer Rap Theme Song: Served in a Flask: talkpython.fm/flasksong --- Stay in touch with us --- Subscribe to Talk Python on YouTube: youtube.com Talk Python on Bluesky: @talkpython.fm at bsky.app Talk Python on Mastodon: talkpython Michael on Bluesky: @mkennedy.codes at bsky.app Michael on Mastodon: mkennedy
Talk Python To Me - Python conversations for passionate developers
Python's data stack is getting a serious GPU turbo boost. In this episode, Ben Zaitlen from NVIDIA joins us to unpack RAPIDS, the open source toolkit that lets pandas, scikit-learn, Spark, Polars, and even NetworkX execute on GPUs. We trace the project's origin and why NVIDIA built it in the open, then dig into the pieces that matter in practice: cuDF for DataFrames, cuML for ML, cuGraph for graphs, cuXfilter for dashboards, and friends like cuSpatial and cuSignal. We talk real speedups, how the pandas accelerator works without a rewrite, and what becomes possible when jobs that used to take hours finish in minutes. You'll hear strategies for datasets bigger than GPU memory, scaling out with Dask or Ray, Spark acceleration, and the growing role of vector search with cuVS for AI workloads. If you know the CPU tools, this is your on-ramp to the same APIs at GPU speed. Episode sponsors Posit Talk Python Courses Links from the show RAPIDS: github.com/rapidsai Example notebooks showing drop-in accelerators: github.com Benjamin Zaitlen - LinkedIn: linkedin.com RAPIDS Deployment Guide (Stable): docs.rapids.ai RAPIDS cuDF API Docs (Stable): docs.rapids.ai Asianometry YouTube Video: youtube.com cuDF pandas Accelerator (Stable): docs.rapids.ai Watch this episode on YouTube: youtube.com Episode #516 deep-dive: talkpython.fm/516 Episode transcripts: talkpython.fm Developer Rap Theme Song: Served in a Flask: talkpython.fm/flasksong --- Stay in touch with us --- Subscribe to Talk Python on YouTube: youtube.com Talk Python on Bluesky: @talkpython.fm at bsky.app Talk Python on Mastodon: talkpython Michael on Bluesky: @mkennedy.codes at bsky.app Michael on Mastodon: mkennedy