Regular Programming

Regular Programming

By Lars Wikman, Andreas EkerootTechnology
Download on the App Store

Regular Programming episodes

  • About Embedded

    Embedded is a weird thing. Lars is all Nerves and tries to explain and report from a world where people know part numbers off the top of their heads. The physical device missing is rarely a thing that happens in web development.

    Embedded-style work can sneak into other areas as well. Without a root file system, everything is a lot more secure. Security is a deep topic in general, and WPA is not just for wifi.

    Andreas shares his view of what "embedded" means, plus the story of building a really bad audio cable.

    Links

    • Raspberry pi
    • Nerves
    • Frank Hunleth
    • Threadripper
    • Coral TPU
    • Tensor processing units
    • AI kit for Raspberry pi 5
    • Lars' Nervesconf talk is not out yet
    • TI AM625
    • Zephyr
    • Real-time operating system
    • HAL - hardware abstraction layer
    • HAL 9000
    • Oxide
    • Arm Trustzone
    • Buildroot
    • Linux from scratch
    • Alpine
    • Wolfi
    • Vintagenet
    • wpa_supplicant
    • Eduroam
    • 802.1x
    • PAP MS-CHAP
    • EAP
    • EAP-TLS
    • Orangepi
    • Get secrets by shooting lasers at security chips
    • Nonce
    • HMAC
    38 min
  • About Interviewing

    Andreas is a man of many hobbies. Interviewing for example. But sometimes, you get strange questions from strange people, end up feeling scared, or start lying just a bit. Then, perhaps, you tell the story of a bug. Perhaps we shouldn't work during the winter?

    Lars doesn't have interviews. More like sales calls. H§e shares his experiences of how to recruitment, both as part of interviews and as a more straightforward recruiter.

    Finally: the secret to everything Lars does.

    Links

    • Percy Nilegård
    • Hiring Processes with Gergely Orosz - Oxide and Friends (podcast)
    • The Indiana Jones switch
    • Gigcity Elixir
    • Lars' conference report
    • Chattanooga
    • Nerves
    • Amazon Aurora
    • Rewriting the Technical Interview
    32 min
  • 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.


    Links

    • Ecto
    • Foreign keys
    • RethinkDB
    • Referential integrity
    • AXA
    • Lantmännen
    • ModelForm in Django
    • Cowboy and Plug
    • DSL
    • Upserts
    • Fragments
    • Haxl - DSL for creating queries
    • SQLAlchemy
    • ets
    37 min
  • 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.

    Links

    • Lagom
    • React
    • Flux architecture
    • Redux
    • Changelog episode with Justin Searls about dependencies as liabilities
    • Kent Beck talking about managing risks in software development
    • Kent Beck drawing on a whiteboard and staring at the audience
    • Mithril.js
    • Interact.js
    • Vendoring
    • Working effectively with legacy code - the book about legacy systems
    • Delphi 5
    • Flask
    • Dynamic linking
    • SAML
    • POSIX
    • Libc
    • Glibc
    • Musl
    • H.264
    • Microcode
    • Oxide and friends
    • Coral TPU:s
    • Tensorflow lite
    • 286
    • Pentium
    • CUDA
    • ROCm
    • Quantization
    • LLaMA
    43 min
  • 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.

    Links

    • Saint Valentine
    • The strangler fig pattern
    • The strangler pattern
    • Phoenix
    • Cowboy
    • Semla
    • Mudcake
    • The Swedish chef making chocolate moose
    • Finnish fastlagsbulle with jam
    • One of Lars' blog posts about Nerves
    • Frank Hunleth - also hot code reloads the way Lars has done
    • Lars' Stream deck library for Elixir
    • Stream deck
    • Elgato key light
    • PulseAudio
    • PipeWire
    • Rogue amoeba's audio tools for Mac
    • JACK
    • Custom APT repository

    Quotes

    • The Nordics go all awkward and weird
    • In my heart, it was a catastrophy
    • Had time for semlor
    • An unimpressive pastry
    • It's less messy to have an apple
    • Professional nerves
    • Building with nerves
    • A reasonable enough abstraction
    • The Rogue Amoeba for Linux
    32 min
  • 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.

    Links

    • Django
    • Model-view-controller
    • Drupal
    • Unicode collation
    • Supervision trees
    • Oxide and friends - episode 27
    • TCP_NODELAY
    • QUIC and HTTP/3
    • UDP
    • Nyqvist-Shannon sampling theorem
    • Hexagonal design

    Quotes

    • Gaming convention management system
    • When I say view, I mean controller
    • View is a better word
    • If I ignore it, it will go away
    • Destructive favourites
    • Alternative class hierarchies
    • Failed in new and novel ways
    • Both a mistake, and interesting
    • Aaah, circumflex!
    • TCP the good parts
    29 min
  • 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?

    Links

    • Matt Topol
    • Apache Arrow
    • Large language models
    • Vector search
    • BigQuery
    • sed
    • AWK
    • jq
    • Replacing Hadoop with bash - "Command-line Tools can be 235x Faster than your Hadoop Cluster"
    • Hadoop
    • MapReduce
    • Unix pipes
    • Directed acyclic graph
    • tee - to "materialize inbetween states"
    • Apache Beam
    • Apache Spark
    • Apache Flink
    • Apache Pulsar
    • Airbyte - shoves data between systems using connectors
    • Cronjob
    • Fivetran - Airbyte competitor
    • Apache Airflow
    • ETL - Extract, transform, load
    • Designing data-intensive applications
    • Stream processing
    • Ephemerality
    • Data lake
    • Data warehouse
    • The people's front of Judea
    • DBT - SQL-SQL batch-work-thingy
    • SQL with Jinja templates
    • Snowflake - data warehouse thing
    • Scala
    • Broadway
    • Oban - "robust job processing for Elixir"
    • Dashbit
    • pandas - Python data library
    • APL
    • Arrow flight
    • GRPC
    • DataFusion - query execution engine
    • Polars - "DataFrames in Rust"
    • Explorer - built on top of Polars
    • Voltron data
    • The Composable Codex
    • Pyarrow - Arrow bindings for Python

    Quotes

    • I've been reading a lot about data pipelines
    • What's so special about data pipelines?
    • There's a lot of special tooling
    • There's a lot of bad, bad tooling
    • Less than optimal tooling
    • Converging on something biggerlk
    • He got me eventually
    • All of your steps in one bucket
    • What tools do you associate with data?
    • I inherited a data pipeline
    • BashReduce
    • Iterate on the L and the T
    • The modern data stack
    • And then you demand more work
    • No unnecessary copies
    • Barely a copy
    • Reconnecting with my Python roots
    44 min
  • 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.

    Links

    • Alan Turing
    • Turing machine
    • GenServer
    • Cowboy
    • Plug
    • Umbrella
    • ETS - Erlang Term Storage
    • Øredev
    • The actor model
    • Virding's first rule of programming
    • Registry
    • DynamicSupervisor
    • The Goth library - Google auth library for Elixir
    • The GIL - the global interpreter lock
    • Friday afternoon deploy
    • Promises
    • Esbuild
    • Uiua - "A stack-based array programming language"
    • Prefix tree
    • Packmatic library, by Evadne Wu - streaming zip archives


    Quotes

    • Where the system grows horizontally
    • The kind of thing that starts happening when you hire developers
    • It was missing a hat
    • I have become nothing, the simplifier of things
    • Where all the concurrency goes to die
    • A whole dance party of sad, dark people
    • The children of the dynamic supervisor
    • Homes can be nodes
    • Hundreds of interested parties
    • Turns life into promises
    • Poking some C programmers
    1 hr 7 min
  • About What Every Web App Needs But Your Developer Does Not Want You To Know About

    Every web app starts out fine, the tabula rasa of an unwritten BODY. But sooner or later you need users. And a million other things which live in trees.

    Also: email.

    And that layer between the controller and the database where things like fine-grained access control goes.

    I'd like to have an admin, please.

    Eventually, web apps grows up. And while a larger framework with solutions and conventions for all those grown-up features may not necessarily be fun, it can certainly be useful.

    Links

    • APM - Application Performance Management
    • Django
    • Teams should be an MVP feature!
    • Bullet Train - a "Ruby on Rails SaaS framework"
    • Flask
    • Express
    • Sinatra
    • Scotty
    • Phoenix
    • Auth0
    • Okta
    • Postfix
    • Postmark
    • Django Anymail
    • Swoosh
    • Model-view-template
    • ACL:s - access-control lists
    • Ecto
    • Multitenancy
    • Zack Daniel on Beam Radio
    • Zack's Elixirconf talk
    • Ash framework
    • Plug
    • DSL - domain-specific language
    • Bigquery
    • gRPC
    • HIPPA
    • Postgrest
    • Function based views
    • Django REST
    • Laravel

    Titles

    • Check in on your application
    • Do you want details?
    • The view is the controller
    • Because names
    • I'd like to have an admin, please
    • The admin is kind of rough
    • All the data is introspectable
    • Endgame application
    • Not another user management system
    • A very special can of worms
    31 min
  • About Code Nerds

    The software development industry is very much built for code nerds. It shouldn’t be.

    Many of us know many people who are really into coding. Not every working developer can, or even should, be though. Doesn't that create kind of a weird gap between professionals who live and breathe code both on and off work, and those who have a more balanced life?

    Being passionate about your job shouldn't be an expectation or requirement for anyone or anything.

    Is there too little space for learning - are we assumed to know too much, and assumed to spend our own time figuring out things we don't?

    Your path into coding is not, can not, and should not be the only path possible.


    Links

    • The Python 2 to 3 transition
    • Robert A. Heinlein in 999 Words: What Every Human Should Know
    • Ghost in the shell
    • Harvest moon
    • 4x - Explore, expand, exploit, exterminate
    • TDD - test-driven development
    • BDD - behavior-driven development
    • Charity Majors 2017 blog post about career paths for developers. (Bonus: 2019 follow-up about engineering managers)
    • Late-stage capitalism

    Quotes

    • I think that's perfectly healthy
    • Surrounded by them
    • Delving into software
    • Surrounded by nerds
    • Much more reasonable answers
    • Where the nerd doesn't go so deep
    • Computers are troublesome
    • Why should you be passionate about your job?
    • Squeeze the passion juice
    • Too passionate to defend themselves
    • Experience or scar tissue?
    • Many developers have lives
    • Popping out for the big picture
    • Doing good work takes all kinds
    37 min

About Regular Programming

From the publisher's feed

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

More shows like Regular Programming

Radiolab by WNYC Studios

Radiolab

43,815 Listeners

Accidental Tech Podcast by Marco Arment, Casey Liss, John Siracusa

Accidental Tech Podcast

2,144 Listeners

Kodsnack by Kristoffer, Fredrik, Tobias

Kodsnack

1 Listeners

Allt du velat veta by Acast - Fritte Fritzson

Allt du velat veta

11 Listeners

Elixir Wizards by SmartLogic LLC

Elixir Wizards

22 Listeners

Thinking Elixir Podcast by ThinkingElixir.com

Thinking Elixir Podcast

32 Listeners

Developers! - mer än bara kod by Madeleine Schönemann och Sofia Larsson

Developers! - mer än bara kod

0 Listeners