Regular Programming

Regular Programming

By Lars Wikman, Andreas EkerootTechnology
Download on the App Store

Regular Programming episodes

  • About Databases

    Data has moved to a real database. Next, there may be brave attempts to add actual structure. Working with a real database is nice, as is not losing data, and being able to restore.

    Not everything is ephemeral, after all.


    Database service providers and cool stuff they do are discussed. The deal with Elastic is clarified. Finally, it is revealed where you should store your traces.


    It is actually probably fine.


    Links

    • MongoDB
    • RethinkDB
    • Ecto
    • Ecto changesets
    • Database schema
    • OpenAPI
    • Ash framework
    • Django
    • Django REST framework
    • X-Request-ID
    • Transactions
    • Write-ahead log
    • pg_restore
    • pg_dump
    • Bigquery
    • Logical replication
    • Fly.io
    • ElectricSQL
    • Flutter
    • React native
    • CRDT:s
    • Phoenix liveview
    • Firefly
    • Webassembly
    • SQLite
    • DuckDB
    • Clickhouse
    • Developer voices podcast
    • Episode about Clickhouse
    • Plausible analytics
    • Fathom analytics podcast
    • Paul Jarvis - the "Company of One " guy
    • Jack Ellis
    • Laravel
    • Fathom
    • Elasticsearch
    • Meilisearch
    • Lucene
    • Cardinality
    • Honeycomb
    • OpenTelemetry
    • New relic
    • HyperDX
    • Datadog

    Quotes

    • A worse MongoDB
    • Migration complete
    • Everything is ephemeral
    • The idea is to add lots of columns
    • It seems a bit more Django
    • The stakes were high but the budget was almost zero
    • It is actually probably fine
    43 min
  • About Mingling

    It seems a mingle is a thing, and not just in Swedish! But what do we want to get out of them, how do we go into them, and how do we create good ones?

    Do you want resonance or hole-poking when you tell people about your plan to arm toddlers with nuclear weapons? Do you want to successfully mingle nerds, or just hit the snacks hard?

    The foood, the cake, the coffee, and the old classmates. Too hot, too loud, too crowded.


    Links

    • Mingle (noun)
    • Ben Orenstein
    • Tuple
    • Thougtbot podcasts - The bike shed and Giant robots. Ben was on episode 183 of The bike shed and episode 136 of Giant robots.
    • Øredev
    • The art of gathering
    • The Whova app

    Quotes

    • Interesting and fun
    • Arm toddlers with nuclear weapons
    • We don't trust solutions
    • Excitement and resonance
    • Intensively and excitedly and indefinitely
    • The active rubberduck strategy
    • Talking to fish in a barrell
    • Successfully mingle nerds
    • Hit the snacks pretty hard
    38 min
  • About Performance

    Performance: we wish the incentives were there to focus on it more often.

    Lars would like more opportunities and incentives to focus on making things fast, rather than just making them not slow. Unfortunately, things tend to line up so that fast enough and more features are in focus. Plus, performance and optimization can be very context sensitive and age out without anyone really noticing.

    Also pondered: IRC, Gentoo, and the eldritch horrors buried within the x86 architecture.


    Links

    • Grep
    • os.walk() in Python
    • Why GNU grep is fast
    • Ripgrep
    • Ag - the silver searcher
    • Travelling salesman problem
    • Bin packing
    • Mnesia
    • ORM
    • Project Euler
    • Fibonacci numbers
    • D. Richard Hipp - the guy behind SQLite
    • Changelog episodes with Richard
    • XKCD and IRC
    • IRC
    • IRCCloud
    • Matrix and Element
    • Elm
    • SVG
    • Canvas
    • Neovim
    • Lisp
    • Arch
    • Nix
    • Gentoo
    • Funtoo
    • Dart
    • Flutter
    • Skia - the graphics library under Flutter
    • Linked list
    • Pointers
    • CISC - Complex instruction set computer
    • RISC - Reduced instruction set computer
    • io_uring


    Quotes

    • Given up on old man Elixir
    • Gotta go fast
    • I never really needed it
    • Grep, naively
    • All the problems at the same time
    • Travelling knapsack problem
    • My ORM-infected brain
    • Measuring things and muttering under my breath
    • I have a hobby, I do job interviews
    • Tools by toolmakers for toolmakers
    • I'm the IRC guy
    • Machine-whispering optimization
    38 min
  • About Developing Speed

    CTOs want the ability to get prototypes built and out into production fast. Others preach the gospel of building things properly. How fast can you be? How much can you perpare before you hit the ice? And one you built and shipped that prototype, how can you get any kind of speed trying to maintain and evolve something where many corners were cut for speed?

    How do we want things to work then? Having an algebra for things might be nice. A sprinkling of interface, things that break noisily, and nice toolboxes to work with structs are all discussed.


    Links

    • The Scott - Amundsen race to the South pole
    • Accelerate, by Nicole Forsgren
    • Parse, don't validate
    • Mnesia
    • Deep modules
    • Pure functions
    • Plug
    • Elm
    • Bruce Tate
    • CRC - Create reduce convert
    • Ecto
    • Roc
    • Happy Path Programming. Episode 47 features Richard Feldman and Roc
    • Richard Feldman, creator of Roc

    Quotes

    • The gospel of building things properly
    • The key to speed on the ice
    • Before you hit the ice
    • Bare maps
    • Every step made sense
    • The original intent very easily gets lost
    • The curse of all software
    • Strive for maintainability
    • It must not sprawl
    • A little sprinkling of interface
    • At dawn, we roadmap
    • Things that break noisily
    • A quantity unitless
    • The simple case of HTTP
    39 min
  • About System Design

    Did they do design, or did they just do a system?

    Distributed systems are hard in many ways. Andreas describes a system communicating between backends and mobile phones in exciting ways with many exciting possibilities for errors. Like data format changes, loss of messages, having 1.5 source of truths, and of course ordering.

    In certain cases, nobody likes an optimist.

    The discussion then moves to discuss the working well-windows for various networking solutions, before diving into WebRTC and finishing up with the various dangers of auto.

    Links

    • Recursion
    • Eventual consistency
    • Pubsub
    • RethinkDB
    • Event sourcing
    • React native
    • Android studio
    • Mnesia - a "distributed, soft real-time database management system" written in Erlang
    • Dirty reads and writes
    • Websockets
    • QUIC
    • UDP
    • TCP
    • WebRTC
    • NAT
    • HTTP live streaming
    • Lars' ElixirConf talk
    • Zoom H4
    • Zoom H4n pro

    Quotes

    • Working with systems and feeling the pain 
    • Coping with system design
    • Eventually consistent, on a good day
    • Eventually sourced
    • A disappointment to work with
    • Your internal representation of the user
    • This is the shape of the data, deal with it
    • 1.5 source of thruths
    • Oh, it's an optimist
    • I don't like optimists at all
    • Optimist databases
    • Within its working well-window
    • Outside of the working well-window
    • A crash of servers
    • Bad connections over long distances
    • I don't do math
    39 min
  • About Conferences

    Lars went to ElixirConf EU. Going to a conference can be a credibly incredible experience. Elixir has more clarity than Erlang.

    Lars also gave a talk, a fact he was comfortably uncomfortable with. Giving a talk also comes with benefits such as being able to talk to fish in a barrel. But why did he choose to make the whole talk a demo? What is the goal of it all?


    Gotta build things! Dive in, make stuff.

    Links

    • ElixirConf EU
    • Lars' conference report blog post
    • Code BEAM
    • Sverok
    • Pieter Hintjens about giving talks by talking to the audience
    • Windows 98 (not 95) demo fail
    • Lars' presentation code
    • Voice Driven Development: Who needs a keyboard anyway? - presentation by Emily Shea
    • Hugging Face

    Quotes

    • Born during ElixirConf
    • Less clarity to it
    • Genservers and stuff
    • Mainstream Elixir
    • Comfortable with that discomfort
    • Talking to fish in a barrel
    • A buddy from the internet
    • The first one I bothered to count
    • Your loose coupling to anything
    • What do you hypothetically know?
    32 min
  • About Text Editors

    Text editors - which ones do we enjoy, which ones have we used, and what do we actually want and need in them?

    Andreas has read about vim, sed and awk. Lars is quite comfortable in vim, but finds Visual studio code more than acceptable enough. 

    Andreas is excited to show Lars how to use Vim properly. Lars considers advanced setups something of a hellscape.

    Lars has held a lecture about functional programming and wishes to provide a path for new .Net developers (dotnet dots?) to become free software zealots.

    They both share their history of editors.

    There are dreams of ergonomic editing - of code as well as text in general - on mobile devices.

    Any other editors we should be trying? No, but you could hack together collaborative vim editing. 


    Links

    • Humble bundle
    • Learning the Vi and Vim Editors - book
    • Vim
    • The Anarchist Cookbook
    • Thunderdome
    • Monad
    • ex - line editor which inspired vi
    • ed
    • sed & awk - book
    • AWK
    • sed
    • Sublime text
    • Zed
    • Neovim
    • Tmux
    • I3
    • GNOME
    • Pop!_OS
    • KDE
    • Treesitter
    • ElixirLS
    • FZF - fuzzy finder for the command line
    • Ripgrep
    • Functional programming
    • Monads
    • Fakeroot
    • Notepad.exe
    • Borland Delphi
    • Notepad++
    • Eclipse
    • Intellij
    • Android studio
    • Xcode
    • Write/Wordpad
    • Nano
    • Pico
    • Gedit
    • Kate
    • Netbeans
    • Atom
    • Scratch
    • GNU Screen
    • Live Share for Visual Studio Code


    Quotes

    • Learning violent vim
    • Like Thunderdome, but nobody leaves, ever
    • I could do that with monads instead
    • C's strange cousin
    • There's a new sed on the block
    • The power of just good enough
    • Two terminals beside each other
    • It's all a mess in here
    • My sword and lots of configuration files
    • The dotnet dots
    • Quitters don't use Vim
    • Real code is done on the server
    • Notepad the way I want it to work
    • A load-bearing note
    • Exciting and fun, and incredibly unsafe
    31 min
  • About Remote Work

    How do we feel about working remotely? Pretty good, on the whole.

    Chairs and other basics are of course important, as is making your way of remote work a nice way of doing remote work for you. It is also nice to need to wear your work face less.

    The challenges are more around the social sides - communicating differently, but generally replacing and rebuilding ways of being social with people both inside and outside of your work interests. That takes work.

    Also, some talk about audio and video gear for remote meetings. It's nice to come off as full-fidelity people!

    Links

    • Conan the barbarian
    • Eventual consistency
    • Gamers Nexus on gamin chairs
    • Ullman Nite-Flite
    • RFC process
    • Røde procaster
    • XLR
    • Ghost power (phantom power)
    • Shotgun microphone
    • The Kodsnack Slack

    Quotes

    • My real comfy legendary office chair
    • My chair was kinda good
    • Fluffy parts
    • It's me and Conan
    • I go for the floof
    • Eventually ergonomic
    • Eventually comfortable
    • Whenever I don't have one, I create one
    • Your spine has a very particular taste in chairs
    • A prosumer phase of life
    • Definitely dialled in
    • Make sure you have a social life
    • I fetch a lot fewer coffees than most people
    • Ghost power!
    • Full-fidelity people
    • It's very much my office
    • I don't have to wear my work face all day
    • My work face
    37 min
  • About Distributed Systems

    Lars is thinking about distributed systems, and Andreas kind of fears them. The best thing to do for most cases might be to avoid distributing things at all. But if you do end up needing to distribute, you may run into one of the places in the world where worse is better is not necessarily better? Adding distribution on top of something not really built for it is one of the hard problems.

    There are deep dives into reconciliation, vector clocks, normalization, and places where fun goes to die. And there, still, are no magical solutions.

    Links

    • Phoenix pubsub
    • Worse is better
    • ElectricSQL
    • CRDT:s - conflict-free replicated data type
    • The CAP theorem
    • Soft real time
    • Highlander
    • N-tier architecture
    • Postgres replication
    • Vector clock
    • Elixir outlaws
    • Phoenix presence
    • Operational transformations
    • Split-brain
    • Riak
    • CouchDB
    • Raft
    • Paxos
    • Normal forms for databases
    • Googles' Mapreduce
    • Google Spanner
    • CockroachDB
    • Cassandra
    • Contentful
    • The Cambria paper - schema evolution in distributed systems with edit lenses

    Quotes

    • Distributed systems are interesting
    • I'm doing an insert!
    • A special little server
    • The devil is always in the failure details
    • The naive threshold
    • The absolute wrong number of machines
    • Where all the fun goes to die
    • A good, sortable name
    • They lie and they drift
    • A simple incrementing number is incredibly useful
    • Git merge for vector clocks
    • Three is the best number
    37 min
  • About Hackers

    About Hackers Thinking about the term "hacker". Time to take it back to mean something rather down to earth, rather than a pedistal requiring years of C and a black hoodie?

    What do airlines have against Erlang anyway?

    There's also the mindset angle: the hacking mindset can be when exploring, versus when needing to solve a specific problem.

    The discussion goes into labels one feels comfortable with, switching between different modes, and the ever present, ever hard to find dark matter developers.


    Over time, labels can easily go bad in one way or another. But regardless of labels, we can all agree on duct tape and enthusiasm, right?


    Links

    • Let it crash
    • Burning man
    • Activitypub
    • Static site generator
    • CMS
    • The Unix philosophy
    • COM
    • FFmpeg
    • vi
    • Perl
    • Ecto
    • Dark matter developers

    Quotes

    • So security, very programming
    • Joy and playfulness
    • My mind goes off
    • Creative systems thinking
    • Think through as many eyes as possible
    • Many things are intended as complete packages
    • Handing you the fun bits
    • Things that provide you the entire world
    • Not very together-bashable
    • The media version of Vi
    • Creating SQL that you didn't intend
    • Mostly mindset
    • What happens in the outliers
    • Neutron programmers
    • The unsung programmers
    • Duct tape and enthusiasm


    39 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