List of videos

30+ years of modelling communicating systems in a functional style - Dame Muffy Calder | Lambda Days

✨ This keynote talk was recorded at Lambda Days 2024. Join our Waiting List for 2025 and be part of the event next time! https://lambdadays.org ✨ Abstract I published my first paper on modelling telecoms protocols in 1989 and then implemented an interpreter for protocol languages in David Turner’s Miranda. As a consequence, I fell in love with functional programming, and I learned about the power of making equations come to life. But for me these are means to an end; it is the role of models and reasoning about them that are my focus. The types of models and techniques I have developed and used have changed over the years, and so have I. These days, my models are usually probabilistic and often developed in Milner’s Bigraphs (with extensions). Using several examples, from systems biology to mixed reality systems, I will reflect on how my research has evolved, what I have learned, and some challenges and issues we might think about in the future. Let's keep in touch! Follow us on: 💥Twitter: https://twitter.com/LambdaDays 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync

Watch
Keynote: Algebraic Effect Handlers with Parallelizable Computations by Ningning Xie | Lambda Days 24

✨ This keynote talk was recorded at Lambda Days 2024. Join our Waiting List for 2025 and be part of the event next time! https://lambdadays.org ✨ Abstract Algebraic effects and handlers are a powerful way to incorporate effects in programming languages. Algebraic effect handlers can express any free monad in a concise and composable way, and can be used to express complex control-flow, like exceptions, asynchronous I/O, local state, backtracking, and many more. However, existing designs of algebraic effects often require effects to be executed sequentially. In this talk, I give an overview of algebraic effect handlers, and discuss how to combine effect handlers with parallelizable computations. Let's keep in touch! Follow us on: 💥Twitter: https://twitter.com/LambdaDays 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync

Watch
Programming for the planet by Anil Madhavapeddy | Lambda Days 2024

✨ This keynote talk was recorded at Lambda Days 2024. Join our Waiting List for 2025 and be part of the event next time! https://lambdadays.org ✨ Abstract As simultaneous crises in emissions and biodiversity sweep the planet, computer systems that analyse the complex interplay of our globe’s health are ever more crucial to guiding policy decisions about how to get out of the mess we’re in. In this talk, I examine how functional programming can contribute to building systems that are more resilient, predictable and reproducible in the face of huge amounts of input data (such as from satellites and ground sensing) that demands precise access control (or else poachers and malicious actors go straight to the source) and requires interactive exploration from non-CS-experts at different levels of the software stack (to do climate science). I will also highlight how our ongoing cross-disciplinary research is having a real impact on conservation projects that are sorely underserved by current systems/PL infrastructure, and also how we went about forging these links. Let's keep in touch! Follow us on: 💥Twitter: https://twitter.com/LambdaDays 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync

Watch
Task-Oriented Functional Programming for Industrial Applications -Rinus Plasmeijer |Lambda Days 2024

✨ This keynote talk was recorded at Lambda Days 2024. Join our Waiting List for 2025 and be part of the event next time! https://lambdadays.org ✨ Applying Task-Oriented Functional Programming for developing Real-world Multi-user Web-Applications Abstract: The iTask library developed at the University of Nijmegen offers Task Oriented Programming (TOP) as an Embedded Domain Specific Language (EDSL) hosted in the pure functional language Clean. It is designed to support the development of distributed, multi-user, multi-platform, web applications. It allows programmers to focus on the different tasks and the dependencies between these tasks the application has to support. One does not need to worry too much about the technical details needed for the realization. From one source, the code, to be executed on the server, as well as the code to be executed on the browser, is generated. All data communication and synchronization between the parties involved is handled automatically by the iTask Operating System. iTasks has successfully been used for developing industrial prototypes in different area’s. This has led in 2018 to a spin-off start-up company, TOP Software Technology (www.top-software.nl), which uses iTasks for the development of industrial applications. We focus on Command and Control Systems such as VIIA (Vessel Information Integrating Application). VIIA is a large and data demanding web-based multi-user application monitoring and storing the world-wide movements of ship vessels over time. It is used by the Dutch Coast Guard to detect unwanted behaviours as soon as possible such that one has time to undertake proper actions. It is also used to investigated behaviours in the past. among others to find better infra-structural solutions for the future. In this talk we will give a short overview of VIIA to explain what the challenges are, and pinpoint to special features of Clean and iTasks used in the implementation. Let's keep in touch! Follow us on: 💥Twitter: https://twitter.com/LambdaDays 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync

Watch
Keynote: The Two Cultures of Artifical Intelligence - Philip Wadler | Lambda Days 2024

✨ This talk was recorded at Lambda Days in June 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ Everyone is talking about new advances in Artificial Intelligence (AI): texts written by ChatGPT, images drawn by Midjourney, and self-driving cars from Tesla. When I was a sophmore I learned the fundamentals of my subject from John McCarthy, a founders of AI and a pioneer of programming. In the early days, AI debated the merits of two complementary methods: logic vs heuristics. Typical of the first is proving properties of programs, which became my research interest. Typical of the second is machine learning, the foundation of ChatGPT, Midjourney, and self-driving. This talk will contrast the two approaches, discussing the benefits and risks of each, and how the first may curb shortcomings of the second. Artists and writers are worried that AI will put them out of a job. One of the next professions on the list is programmers. Already, ChatGPT and related systems can do a credible job of generating simple programs, such as code for web pages. However, also already, such systems have demonstrated that they routinely write code containing known security bugs. One possible scenario is that heuristic techniques will prove as adequate as humans—and far cheaper—at simple tasks, putting writers, artists, and programmers out of work. Bereft of new data to learn from, the machine learning applications will then fall into stagnation. They will be fine at producing articles, art, and code close to what has been produced before, but unable to produce anything original. And by then there may no longer be writers, artists, or programmers to hire, as who would study for a profession where no one can find work because they’ve been displaced by machines? A different scenario is to pass laws to ensure that writers and artists are fairly recompensed when AI generates artifacts based on their work. Regarding code, the logical techniques have shown they can vastly improve reliability. Synthesising logical and heuristic techniques may lead to code that is both cheaper and more reliable. Programmers would shift from writing code to writing logical specifications, with AI helping to generate code proved to meet those specifications. REFERENCES AI machines aren’t ‘hallucinating’, but their makers are. Naomi Klein. The Guardian, 8 May 2023. https://www.theguardian.com/commentisfree/2023/may/08/ai-machines-hallucinating-naomi-klein The problem with counterfeit people. Daniel Dennett. The Atlantic, 16 May 2023. https://www.theatlantic.com/technology/archive/2023/05/problem-counterfeit-people/674075/ Will AI become the new McKinsey? Ted Chiang. The New Yorker (online), 4 May 2023. https://www.newyorker.com/science/annals-of-artificial-intelligence/will-ai-become-the-new-mckinsey Xavier Leroy. Formal verification of a realistic compiler. Communications of the ACM, July 2009, 52(7), pages 107–115. https://dl.acm.org/doi/pdf/10.1145/1538788.1538814 Chris Newcombe, Tim Rath, Fan Zhang, Bogdan Munteanu, Marc Brooker, Michael Deardeuff. How Amazon Web Services Uses Formal Methods. Communications of the ACM, April 2015, 58(4), pages 66–73. https://dl.acm.org/doi/pdf/10.1145/2699417 Let's keep in touch! Follow us on: 💥BlueSky: https://bsky.app/profile/lambdadays.bsky.social 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync 💥Twitter: https://twitter.com/LambdaDays

Watch
How does a programmer think about code? - Szymon Rodziewicz | Lambda Days 2024

✨ This talk was recorded at Lambda Days in May 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ Programming languages are the tools that we use to communicate with machines. Regrettably, the human side of this interaction is not as well understood as the computer's perspective. How does the brain comprehend code? Given the human cognitive model, how to determine if a library or a functional programming language is well-designed? The Scala Toolkit is an initiative by Scala Center and VirtusLab designed with these issues in mind. Its goal is to make the Scala language batteries-included and well-suited for newcomers and simple problems. In this talk, we will dive into the state of research on the neurocognitive perspective on programming. This insight helped us design the Scala Toolkit and decide its future steps. It can be surprisingly helpful and refreshing when designing new languages, building APIs, and just trying to write better code at your job. Moreover, it can deepen one's understanding of the good practices in the programming world. Let's keep in touch! Follow us on: 💥BlueSky: https://bsky.app/profile/lambdadays.bsky.social 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync 💥Twitter: https://twitter.com/LambdaDays

Watch
Bidirectional Data Transformations with Functional Optics - Marcus Crestani | Lambda Days 2024

✨ This talk was recorded at Lambda Days in May 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ Data structures build the basis of software. Different components have different demands on how to structure data and use different data structures. Transmitting data over a network requires a format that is more suitable to be serialized. Persisting data requires a format that is more suitable to be stored. Thus, programmers need to transform data and convert between several data structures and formats all the time. Converting data is a lot of work and programmers need to implement the logic twice, once for each direction. This is redundant, annoying, tedious, and error-prone. We show how using bidirectional data transformations that use functional optics like lenses and projections as abstractions simplify the conversions. These ideas and techniques make converting data easy and clear and foster understanding of your data by explicitly describing how the data is connected in a composable manner. Let's keep in touch! Follow us on: 💥BlueSky: https://bsky.app/profile/lambdadays.bsky.social 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync 💥Twitter: https://twitter.com/LambdaDays

Watch
Automata Unveiled: A Theoretical Exploration of State Machines - Nelson Vides | Lambda Days 2024

✨ This talk was recorded at Lambda Days in June 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ Come with me on a journey through the realms of state machines, with the practical brilliance of Erlang’s gen_statem behaviour as our light beam. Building on state machines as a model to reimplement technical debt, we will traverse the intersection of state machine practical implementation and the theoretical foundations of automata. Using real-world application examples, we will go over from the industry beast to the theoretical abyss, revealing the mathematical elegance inherent in state machines and its more powerful automata siblings. Bridging this gap, we will empower developers to architect solutions that go beyond conventional patterns, with concrete examples and plenty of code to read, providing the attendees with a comprehensive vision to harness the full potential of state machines. Let's keep in touch! Follow us on: 💥BlueSky: https://bsky.app/profile/lambdadays.bsky.social 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync 💥Twitter: https://twitter.com/LambdaDays

Watch
Dynamic system behavior control at runtime - Veronika Yastrebova | Lambda Days 2024

✨ This talk was recorded at Lambda Days in June 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ At some point, a business may reach a stage where app logic should be executed based on specific conditions like location, app version, or user type. For example, you may have to dynamically change discounts to sell leftover stock or limit low-profit requests during peak hours. Each new “crazy” idea from your manager often means coding, understanding needs, and system load with frequent redeployments. From a business perspective, as a manager, you want the ability to control the system's behavior without struggling through endless discussions, tickets, and running a full development cycle. We will design a rule matcher to manage changing conditions in real-time in a user-friendly manner. It will use any app traffic attribute, verify rule validity, and keep rules easy to read and manage. We will leverage the capabilities of Scala and recursion schemes to create a fast and efficient solution that can be integrated into any app. Let's keep in touch! Follow us on: 💥BlueSky: https://bsky.app/profile/lambdadays.bsky.social 💥LinkedIn: https://www.linkedin.com/company/lambda-days 💥Facebook: https://www.facebook.com/lambdadays 💥Mastodon: https://genserver.social/codesync 💥Twitter: https://twitter.com/LambdaDays

Watch