Lambda Days 2024

2024

List of videos

Lambda Days 2024 - highlights

11th edition of Lambda Days was fascinating! See for yourself, and join as at our next conference: https://lambdadays.org 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
Gradualize your language with set-theoretic types - Guillaume Duboc | Lambda Days 2024

✨ This lightning talk was recorded at Lambda Days 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ In this session, we'll explore the practical representation of gradual set-theoretic types for Elixir. We'll demonstrate how this implementation shifts a lot of complexity from the type-checker to the type representation itself. Key points include: - Practical applications: Representing disjoint unions of base types and progressive integration of singleton types. - Addressing challenges: Strategies for handling pretty-printing and type simplifications. - Focus on dynamic: Illustrating its elegant representation through set-theoretic types in Elixir, and the distinction between static, dynamic, and gradual types. The presentation showcases a general structure demonstrated through Elixir examples, but which can be used to accommodate other languages. 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
Haskell is just the beginning- a Lightning Talk by Christoffer Ekeroth | Lambda Days 2024

✨ This lightning talk was recorded at Lambda Days 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ 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
What's cooking in GRiSP - a Lightning Talk by Peer Stritzinger & Gwendal Laurent | Lambda Days 2024

✨ This lightning talk was recorded at Lambda Days 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ 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
HVM - automatically parallel functional programs - a Lightning Talk by Martin Janiczek | Lambda Days

✨ This lightning talk was recorded at Lambda Days 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ 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
Modelling Things with Persistent Types - a Lightning Talk by Jezen Thomas | Lambda Days 2024

✨ This lightning talk was recorded at Lambda Days 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ 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
Supercharge your tests with snapshot testing - aLightning Talk by Giacomo Cavalieri | Lambda Days

Units tests are a great tool… until they aren’t! We’ve all had to deal with unit tests that were a pain to write and maintain. The alluring promise of snapshot testing is to free us from the burden of manually handling unit tests assertions! 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
Building a Large-Scale, Streaming-Based Logging and Monitoring Solution with Clojure - M. Crestani

✨ This lightning talk was recorded at Lambda Days 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ 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
EU Cyber Resiliency Act - a Lightning Talk by Alistair Woodman from EEF | Lambda Days 2024

✨ This lightning talk was recorded at Lambda Days 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ 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
An Effect-ful functional framework for TypeScript - Alberto Schiabel | 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 ✨ Enter Effect, a comprehensive framework rising from the fragmented landscape of functional utilities for TypeScript. Born from inspiration drawn from leading libraries like fp-ts and Scala’s ZIO, Effect is here to redefine your TypeScript development experience. This talk explores the Effect’s core functionality, such as its fiber-based concurrency model, its safe resource management even in the face of program failures, and its built-in tracing capabilities for easy debugging and monitoring, all with a focus on type inference and type safety. With Effect, we can finally unlock the true potential of TypeScript development, making it a compelling choice for writing functional-oriented applications. 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
Far more than you've ever wanted to know about ADTs - Nicolas Rinaudo | 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 ✨ Algebraic Data Types are a very simple, yet very powerful tool to use when designing systems. Most developers are familiar with them, or subsets of what we call ADTs, even if they are not aware of them - enumerations, for example, or records. The purpose of this talk is to clarify what ADTs are, what properties they have and how these properties can be used to express strong invariants at the data level - such as making illegal states or state transitions impossible to represent. It also explores the generalised form of ADTs - GADTs - and attempts to lift some of the confusion that surrounds them. We will also (lightly) tackle the theory behind them and try to understand where the “algebraic” part of the name comes from. 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
David Turner Memorial Session - J. Hughes, S. Thompson, L. Augustsson, J. Gibbons | 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 ✨ Late last year, David Turner, a giant of our field and regular Lambda Days participant, passed away unexpectedly. Many may remember chatting to him in the coffee breaks—he was one of the nicest people you could hope to meet. David was an advocate of functional programming back when Fortran and Cobol ruled the roost of high-level programming languages. His work was an inspiration to many, and his influence on many of our careers was profound. In this session four of us will recall the man, what he meant to us personally, and some of his most influential work. 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
The Functional Edge: Robotic Testing with Bowler Studio and Clojure - Thomas Gebert | Lambda Days 24

✨ This talk was recorded at Lambda Days in June 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ With the advent of inexpensive 3D printers and microcontrollers, the prospect of the average person building their own robot has become a reality. The problem: incorrectly designed machines have the annoying tendency of breaking, meaning that a failed build can be a fairly expensive prospect. As such, it can be advantageous to simulate your robot virtually, before wasting time and money on a broken robot. Bowler Studio is a robotic digital twin simulator, which allows for an entire end-to-end process of designing, testing, and eventually building your robot. It supports many programming languages, including the functional language Clojure, allowing for a nearly-purely-functional experience. This talk will walk through some very basic robotic building and testing, and viewers should leave with enough understanding to start building their own. 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
Property-testing all* the things in SerenityOS - Martin Janiczek | 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 ✨ I'm a big proponent of property-based testing (as in, QuickCheck or Hypothesis), be it in Elm, Haskell, Scala or JavaScript - it's great at finding tricky edge cases, refining your understanding of your system and giving you confidence it works for more cases than just your happy path unit tests. Imagine my horror when I saw that SerenityOS, my favorite "watch and admire it from distance" open source project didn't have any support for property-based testing! There were three options: don't test at all, test with unit tests, or fuzz the binary as a black box. I set out to write a property-based testing framework for SerenityOS, complete with automatic shrinking and all, and to use it to write property tests for apps and libraries all across SerenityOS. In this talk I want to share that journey, the surprising complications and how I overcame them, the tests I've written and categories they fall into, and the bugs I've found. 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
Embedding of external DSLs in Scala: why and how! - Juan Manuel Serrano Hidalgo | 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 ✨ Sooner or later, you'll find yourself wanting to create your own domain-specific language or embed an external DSL into your functional language of choice. This presentation delves into the motivations behind this choice and offers practical guidance on how to achieve it. Specifically, it will demonstrate the implementation of the syntax, semantics, and type system of DSLs using the tagless-final style, along with some of the latest Scala 3 features: extension methods, match types, union types, polymorphic function types, structural types, macros, and more. Real-world examples will be drawn from the Scala embedding of the command-line JSON quer language, jq. 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
SAFE Stack: The Pit of Success for Functional Web Programming - Isaac Abraham | 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 ✨ The SAFE Stack is a free, open-source and flexible end-to-end, functional-first stack for cloud-ready web apps that emphasizes type-safe programming almost entirely in F#, without needing to compromise and shoehorn your codebase into an object-oriented framework or library, and without needing you to be an expert in CSS or HTML to create compelling, rich client-side web applications. This talk will demonstrate the value proposition behind it, illustrating how we can develop unified client/server apps that take the best features of F# - such as type safety, succinctness, productivity and performance - whilst still integrating naturally with technologies and frameworks such as ASP .NET and React. We'll create data-driven server-side APIs quickly and easily, and then surface them in a rich, responsive web application using .NET and JavaScript libraries that come together beautifully. Lastly, we'll see how easily SAFE apps can be hosted on a cloud platform. 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
fast - grepping SQL code like a boss - Jônatas Paganini | 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 ✨ I'd like to walk people through my latest adventures with fast: A search/refactoring tool that work as a regular expression language to target AST nodes. I built it originally for Ruby and now I'm also adding the support for SQL language. This talk will be a walkthrough in the AST and the searching engine. The idea is expose my little "functional" toy and walk people through the parser and how the matching system works. Later we'll see how to use the AST Tree Rewriter to refactor code based on AST elements. 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
Imagine a Dependently Typed Python - Andor Pénzes | 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 ✨ Abstract Envision a Python dialect that seamlessly combines user-friendly, optional, static types with the transformative capabilities of dependent types. Picture a world where functional and object-oriented programming coexist harmoniously, putting developers firmly in control, with the type system serving as a powerful ally. How daring can we be in pushing the boundaries and seamlessly integrating cutting-edge type theory advancements into the language? What challenges might arise with dependent types, and how can dynamically typed programming embrace this innovation? In collaboration with Thorsten Altenkirch, we've conceptualized a language designed to deliver an exceptional developer experience. Intrigued? Join us as we open a window into this parallel universe or glimpse the future of programming possibilities. 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
The Y Combinator: developing intuition around abstract recursion - Dave Kimber | 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 ✨ Abstract The Y Combinator is an elegant construct of the Lambda Calculus used to implement recursion. Unfortunately, it's so elegant, so abstract, and so succinctly expressed that it's quite difficult to understand how it works. In this talk, I will be guiding you through developing an intuition for its inner workings, looking at its practical applications, and hopefully shedding some light on why it is so beautiful. Working in Clojure and using some snazzy animations we will be looking into how the Y Combinator is evaluated into a dynamically generating infinite stack of function calls and how these then resolve into solutions to recursive problems. 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
Media streaming in the functional world - Mateusz Front | 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 ✨ Abstract Media streaming is usually associated with low-level, imperative languages. Yet, through the last few years, I've been leading the development of Membrane - the media streaming framework in Elixir. In this talk, I'll share the rationale behind our approach and how it turned out in practice. After quickly introducing you to the multimedia world, I'll discuss the benefits and challenges of bringing that world to Elixir and functional programming in general. 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
Cellular Automata for video games - Maciej Gorywoda | 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 ✨ Abstract The cell. The board. The neighbourhood. The rules. The loop. In this video I want to convince you that a lot of what we see in video games - and, by extension, in real life - can be split and modelled with those five concepts. And since we can do that, we can put it in code in the same, or at least very similar way. 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
The Power of Mentoring: Nurturing Growth in the IT Industry -hosted by Anna Miler | 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 ✨ Abstract Join us for an engaging conversation where we’ll explore essential aspects of mentoring, particularly within the tech landscape. Mentoring is one of the most effective forms of supporting professional development. It allows you to create tailor-made solutions. What makes it increasingly popular and how you can benefit from it? We would like to talk about: * Technical and soft skills: how can mentors support mentees in developing technical and interpersonal skills? * Two-way learning: the mentor-mentee relationship as a mutual learning experience (including reverse mentoring). * Diversity and inclusion: how mentoring can address the unique challenges faced by underrepresented groups and help create an inclusive technology community. * Structured programs vs. informal mentoring: pros and cons of both ways of experiencing mentoring * Individual goal setting: how mentees' individual goals can align with organizational needs? If you have experience as a mentor or mentee and want to share it, join us. If you want to contribute another thread - let us know! 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
Declarative UIs in a functional language - Felipe Almeida Lessa | 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 ✨ Abstract We will explore how apps can be written in a functional language, using three components: a declarative view, an update function, and a model without business logic. Many problems such as background tasks, efficient updates, and composition will be addressed. This talk is based on a production library developed based on a decade of learnings. More than 100 internal apps benefit from it. 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
Types and other techniques as an accessibility tool for the ADHD brain - M.Newton | 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 ✨ Abstract More than 10 years into his programming career, being diagnosed with ADHD brought a change to how Michael viewed many of the common arguments in modern software (types or tests? functional or OO?). It became apparent pretty quickly that many of the programming paradigms and tools he'd grown to view as "best" over the years lined up suspiciously closely as excellent compensations for the areas that are often weakest for those with ADHD. Maybe, rather than trying to find papers proving the advantages of type systems, it would be more productive to explain how they help compensate for easy distractability. Is the completeness checking of discriminated unions a straight jacket on flexibility, or a valuable tool to help against a limited working memory? Come on a personal tour of one programmer's experience with an atypical mind, and let it impact how you choose and create technologies for humans rather than for best practices. 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
The design and (...) of embedded Domain Specific Languages - P.Koopman & M.Lubbers | LambdaDays24

✨ This talk was recorded at Lambda Days in June 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ Abstract A Domain Specific Language, DSL, is a computer language specialized for some specific domain. Examples are text processing, creation of webpages, specifying properties for software testing and task-oriented programming. Some DSLs are standalone, like LaTeX for text processing. An embedded DSL, eDSL, can be combined with other parts of the language. DSLs have been created in functional programming languages like Haskell, Clojure, Scala and Erlang. Creating libraries as an eDSL allows us to focus more on the design of the language extension and offers guidance for its implementation. DSL implementation techniques 1) The DSL is a datatype. This is the motivation behind GADTs. We need Higher Order Abstract Syntax to create type safe identifiers. This allows different views, like printing and execution. 2) The DSL is a set of functions. This uses the full host language, but is limited to a single view. 3) A set of type classes combines the flexibility of functions with multiple views. 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
Code in Unison - Daan van Berkel | 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 ✨ Abstract Unison is a new programming language that promises to deliver a new approach to software development. Its key feature is *content-addressable* code. It opens up a lot of novel possibilities to your software development experience, but what is it? And can Unison deliver on that promise? In this talk we are going to take a look at Unison. We will explore what content-addressable code means and what benefits it has. We will demonstrate what it is like to code in Unison, which is quite novel, and will deploy an non-trivial service all within Unison. You will walk away with a firm understanding of Unison and how Unison enhances the developer experience with its novel approach to software development. You will have seen the ease with which to describe and deploy micro-services Unison and will have a number of resources to start your own Unison journey 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
Functional Platform Engineering with Scala and Pulumi - Łukasz Biały | 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 ✨ Abstract In this talk, I will introduce a novel approach to building modern, cloud-native platforms using functional programming from the ground up. Utilizing the Scala SDK for Pulumi, codenamed Besom, I will demonstrate how one can construct a complete, production-grade system while staying within the safe and typeful confines of a functional programming language. Along the way, I'll illustrate how to leverage Scala's features to enhance maintainability, safety, and correctness across the stack. Finally, I will explore how this method opens up new possibilities in platform engineering, empowering functional programmers to dynamically deploy entire segments of infrastructure on demand, directly from their applications 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
My First Year in FP - Monica McGuigan | 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 ✨ Abstract Navigating the world of functional programming as a beginner can feel quite daunting and intimidating. Over a year ago, I was thrown into the deep end of learning Scala. I started my FP journey as a junior developer at a bank, after graduating with a degree in Physics. So, not only did I have the challenge of learning functional Scala from scratch, but I also had to apply these concepts to a domain I had no prior knowledge of. Initially, I experienced a lot of confusion and frustration, having come from an OOP background. However, with the help of senior engineers on my team, I learned both Scala and how to think functionally, quickly and effectively enough to start contributing production-level code in my first few months. Hopefully, after listening to this talk, other newcomers will feel less alone and more optimistic about diving into the exciting world of FP, and experienced developers will understand how to best help their juniors learn and grow. 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
From 1 to 100k users: Lessons learned from scaling a Haskell app - Felix Miño | 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 ✨ Abstract While scaling applications is a perpetual challenge, there are specific hurdles unique to scaling Haskell applications. Join me in exploring the intricacies involved in this process, uncovering lessons from faced challenges, implementing ingenious solutions, and ongoing optimizations toward a 10x scaling goal. Our exploration will traverse critical domains, from fine-tuning database performance to pinpointing bottlenecks and rectifying inefficient data structures. In the realm of Haskell's memory management, we'll address its reputation for leaks and reconsider the laziness paradigm, discovering situations where adopting strictness boosts performance. Let’s explore the dynamic world of software scaling! 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
Detecting Noninterference Violations with Property-Based Testing - Fernanda Andrade | Lambda Days 24

✨ This talk was recorded at Lambda Days in June 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ Abstract In today’s digital world, safeguarding sensitive data is crucial. Yet, the verification of information-flow control (IFC) mechanisms, vital for data security, poses challenges. This talk explores how we can streamline the verification of IFC mechanisms by incorporating property-based testing. This involves generating random lambda terms to test the functionality of IFC mechanisms. The advantage of this approach is that it helps identify errors early in the verification process. 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
Well-typed Programs Can Go Wrong:(...)Type Checkers in Compilers-Thodoris Sotiropoulos |LambdaDays24

✨ This talk was recorded at Lambda Days in June 2024. If you're curious about our upcoming event, check https://lambdadays.org ✨ Abstract Static typing in programming languages is crucial for robust software development. Flaws in type checkers lead to (1) reliability and security ramifications on the programs compiled with the faulty compilers, and (2) degradation of the programmers’ experience and productivity. In particular, compiler typing bugs typically cause frustrating rejections of well-typed programs, dangerous acceptances of erroneous, type-unsafe programs, or annoying crashes and compilation performance issues. In this session, I will present our ongoing efforts on enhancing the reliability of compilers' type checkers using randomized software testing. Within three years, we have found more than 250 bugs (of which 140 bugs have been fixed) in industrial-strength compilers, such as Java, Kotlin, Scala, and Groovy. Most of the discovered bugs lie in critical components of type checkers, including type inference, parametric polymorphism, overloading, or higher-order functions. 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