53 episodes

Conversations about programming. By Andreas Ekeroot and Lars Wikman, funded by Underjord.io.

Regular Programming Lars Wikman, Andreas Ekeroot

    • Technology

Conversations about programming. By Andreas Ekeroot and Lars Wikman, funded by Underjord.io.

    About Ranting at Ecto

    About Ranting at Ecto

    Stories about Ecto quickly redeeming itself, and of what it takes to introduce foreign keys.
    Some of us are super comfortable referencing the ID. Lars dislikes that Ecto needs to be more complicated because of SQL, but the abstractions do hold.
    Also: the biggest reason to ever use a ORM! It can be reallynice to come back to one after a tour of plain SQL-land.
    Some people have just been bitten so hard by cowboys.
    EctoForeign keysRethinkDBReferential integrityAXALantmännenModelForm in DjangoCowboy and PlugDSLUpsertsFragmentsHaxl - DSL for creating queriesSQLAlchemyets

    • 36 min
    About Long-Lived Code

    About Long-Lived Code

    Fredrik wants to think about long-lived code. Lars is offended, Andreas only a little bit so.
    Are there other good software development practices out there? Other than the ones focusing on building something quickly? Practices for building software which lives on and is maintained for much longer than we seem to care to admit? Should we remove dependencies over time? The swamp of dependency management and vendoring is probed, gradually shifting into firmware, the horrors of floating point (proper excuses are made), small language models.
    Finally, of course, indecent cups of tea.
    LagomReactFlux architectureReduxChangelog episode with Justin Searls about dependencies as liabilitiesKent Beck talking about managing risks in software developmentKent Beck drawing on a whiteboard and staring at the audienceMithril.jsInteract.jsVendoringWorking effectively with legacy code - the book about legacy systemsDelphi 5FlaskDynamic linkingSAMLPOSIXLibcGlibcMuslH.264MicrocodeOxide and friendsCoral TPU:sTensorflow lite286PentiumCUDAROCmQuantizationLLaMA

    • 42 min
    About Fat Tuesday Buns

    About Fat Tuesday Buns

    The Saint Valentine's peak passed without issue. Andreas had time for semlor.
    Lars has opinions on semlor, and can imagine many possible improvements. Like having an apple. Or a pizza.
    Lars has had a nice influx of work, including hardware work using Nerves. Testing and very hackish hot code reloading are both included.
    Finally, some thoughts on Linux audio, and musings about the possibility of creating really nice audio tools for the platform.
    Saint ValentineThe strangler fig patternThe strangler patternPhoenixCowboySemlaMudcakeThe Swedish chef making chocolate mooseFinnish fastlagsbulle with jamOne of Lars' blog posts about NervesFrank Hunleth - also hot code reloads the way Lars has doneLars' Stream deck library for ElixirStream deckElgato key lightPulseAudioPipeWireRogue amoeba's audio tools for MacJACKCustom APT repositoryQuotes
    The Nordics go all awkward and weirdIn my heart, it was a catastrophyHad time for semlorAn unimpressive pastryIt's less messy to have an appleProfessional nervesBuilding with nervesA reasonable enough abstractionThe Rogue Amoeba for Linux

    • 31 min
    About things you built long ago that start doing weird things

    About things you built long ago that start doing weird things

    Andreas tells the story of a old system which suddenly exhibited a new and frightening bug. Lars shares similar experiences of things going wrong in new and novel ways.
    When things do go wrong, it is so nice to have supervision trees or other things which allow you to hear about problems, not to mention recover from them.
    Also covered are some stories about TCP, networks, and timeouts. And a realization that testing the frameworks upon which you build could have saved some bacon, had it just been done a long time ago.
    DjangoModel-view-controllerDrupalUnicode collationSupervision treesOxide and friends - episode 27TCP_NODELAYQUIC and HTTP/3UDPNyqvist-Shannon sampling theoremHexagonal designQuotes
    Gaming convention management systemWhen I say view, I mean controllerView is a better wordIf I ignore it, it will go awayDestructive favouritesAlternative class hierarchiesFailed in new and novel waysBoth a mistake, and interestingAaah, circumflex!TCP the good parts

    • 28 min
    About Data Pipelines

    About Data Pipelines

    Lars dove into data pipelines, and emerged bearing arrows and wishing for a lot fewer copies.
    What is there to think about regarding data pipelines, what is interesting about them?
    Which tools are out there, and why might you want to use them?
    Why all this talk about making fewer copies of data?
    What does Lars' current ideal pipeline look like, and where does Elixir fit in?
    Matt TopolApache ArrowLarge language modelsVector searchBigQuerysedAWKjqReplacing Hadoop with bash - "Command-line Tools can be 235x Faster than your Hadoop Cluster"HadoopMapReduceUnix pipesDirected acyclic graphtee - to "materialize inbetween states"Apache BeamApache SparkApache FlinkApache PulsarAirbyte - shoves data between systems using connectorsCronjobFivetran - Airbyte competitorApache AirflowETL - Extract, transform, loadDesigning data-intensive applicationsStream processingEphemeralityData lakeData warehouseThe people's front of JudeaDBT - SQL-SQL batch-work-thingySQL with Jinja templatesSnowflake - data warehouse thingScalaBroadwayOban - "robust job processing for Elixir"Dashbitpandas - Python data libraryAPLArrow flightGRPCDataFusion - query execution enginePolars - "DataFrames in Rust"Explorer - built on top of PolarsVoltron dataThe Composable CodexPyarrow - Arrow bindings for PythonQuotes
    I've been reading a lot about data pipelinesWhat's so special about data pipelines?There's a lot of special toolingThere's a lot of bad, bad toolingLess than optimal toolingConverging on something biggerlkHe got me eventuallyAll of your steps in one bucketWhat tools do you associate with data?I inherited a data pipelineBashReduceIterate on the L and the TThe modern data stackAnd then you demand more workNo unnecessary copiesBarely a copyReconnecting with my Python roots

    • 43 min
    About Fun With GenServers

    About Fun With GenServers

    GenServers are fun! Andreas gives all the context. Things were learned, knowledge was aquired. You can do so much with GenServers, but make sure you have a good reason.
    If you don't watch out, this is where concurrency goes to die.
    Dynamic supervisors, and their children, are thoroughly considered.
    Also delved into is the mess other ecosystems make of doing things at the same time, waiting, and so on.
    The strange worlds of C and other unusual languages are considered.
    Finally, an interesting bug.
    Alan TuringTuring machineGenServerCowboyPlugUmbrellaETS - Erlang Term StorageØredevThe actor modelVirding's first rule of programmingRegistryDynamicSupervisorThe Goth library - Google auth library for ElixirThe GIL - the global interpreter lockFriday afternoon deployPromisesEsbuildUiua - "A stack-based array programming language"Prefix treePackmatic library, by Evadne Wu - streaming zip archivesQuotes
    Where the system grows horizontallyThe kind of thing that starts happening when you hire developersIt was missing a hatI have become nothing, the simplifier of thingsWhere all the concurrency goes to dieA whole dance party of sad, dark peopleThe children of the dynamic supervisorHomes can be nodesHundreds of interested partiesTurns life into promisesPoking some C programmers

    • 1 hr 6 min

Top Podcasts In Technology

Lex Fridman Podcast
Lex Fridman
All-In with Chamath, Jason, Sacks & Friedberg
All-In Podcast, LLC
Deep Questions with Cal Newport
Cal Newport
Dwarkesh Podcast
Dwarkesh Patel
Ben Gilbert and David Rosenthal
Hard Fork
The New York Times

You Might Also Like

Beam Radio
Lars Wikman
Therése & Anton
Elixir Wizards
SmartLogic LLC
Bartek Tatkowski
Kristoffer, Fredrik, Tobias
Elixir Mix
Charles M Wood