Regular Programming: Recent Episodes

Lars Wikman, Andreas Ekeroot

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

View Details

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

View Details

There are good things in programming, many of which are enumerated in this episode.

Among other nice things: the best features in Elixir. Lars won open source? Bots and realtime-y stuff. Not to mention a type system that screams at you.

Also: Lists in lists, in lists (in lists).

Code made by other people is not one of the things, however. Code made by other people is always upsetting. CSS does not make the list either, but Tailwind does, prompting a discussion of fractally difficult things, leaky abstractions, and progressive enhancement.

Linkable matter

  • IO-lists - lists in lists in lists with eventually some binary data in them
  • Id3vx - The now published ID3 library
  • LiveView
  • Phoenix
  • Either in Haskell
  • Clowns to the Left of me, Jokers to the Right (the paper)
  • Stealers Wheel - Stuck in The Middle With You
  • Functors
  • Elm
  • Fmap and bind in Haskell
  • Lars' Telegram bots
  • Genserver
  • Moment.js
  • Autobots and Decepticons
  • Snow Crash by Neal Stephenson
  • Tailwind CSS
  • Graceful degradation
  • Progressive enhancement

Better titles

  • Keeps giving nil
  • Carefully optimistically happy
  • A JSON-thingy
  • You won open source
  • I have written the code, and it's not my problem
  • Murdering your garbage collector
  • A type system that screams at me
  • The maybes I got over pretty quickly
  • They never stopped being results
  • An inherited Erlang footgun
  • The speaker that was in the monkey
  • It's not only that I'm a backend developer

View Details

The hardware woes episode. But first: the joy and wonder of ID3v2.3.

Implementing the specification of a binary format as a library.

Lars' next laptop. Then Lars' gear situation. Power bricks and cable capabilities are … a labyrinth.

The trials and tribulations of getting and setting up a Steam deck.

Linkable matter
The ID3v2.3 spec
EXIF
Fold left and fold right
Lars' blog post about working with ID3
CRDT
Apple's WWDC keynote
The M2 Macbook air
The Framework laptop
Linux on M-chip computers
Dell's XPS laptops
RJ45
Steam deck
Slackware
PopOS
Reglyph? Reglef? Desktop environment
Aspyre
Frank C-something of Nerves and his bechmark suite
* Sony A7C

If we had titles
Trying to be clever, and doing it poorly
It still reverses the whole thing
Arbitrary comments
The future of mp3:s
The world is less and less file-centric
A USB-C-shape cable

View Details

Elon Musk wanting to buy Twitter leads naturally into the topic of cyberdecks and jacking in, which in turn naturally leads one to talk about audio on Linux.

But what is a cyberdeck? How do you build one? And when would you use it?

The sad state of video calls compared to Star Trek - why don't they have to install Teams to hail the Microsoft ship?

Lamenting the sad state of the current crop of dystopic overlords. Who runs Google, really? Amazon might be the most attractive target, just don't take down all our clouds by accident, okay?

Cyberpunk wasn't prepared for crypto, but when other things get bad enough that ceases to be a problem. Let's not papercut ourselves all the way to dystopia.

Linkable material
Elon Musk has or has not yet bought Twitter
Cyberdecks
Jack - the sound library
Shadowrun
Keytar
Pi 400
Pi TFT
Touchbar Lemmings
The Framework laptop
Google glass still exists
FPGA
Obsbot PTZ Camera
Cory Doctorow on the Corecursive podcast
Lightning - the on-top-of-Bitcoin payment system
Podcast index
Mer - the Swedish cordial-type drink

Alternate titles
Jack in
Something vulgar about it
As far as cyberdecks go
The keytar of keyboards
Just hack the Gibson
Rearview mirrors, but cameras
Out cyberdecking
The current crop of dystopic overlords
Web-scale capitalism
Our current psychopaths
* Papercut our way to dystopia

View Details

Notes will improve when beatings continue.

View Details

Hopefully some day :)

View Details

Show notes may show up again some day. But right now we wouldn't be on it :)

View Details

Thanks to the listener who chimed in and wanted our thoughts on microservices. That wasn't what put it on the topic list but I think we still get credit for responding to input right?

View Details

We apologize for any discomfort in the audio. We lost the original Ekeroot recording and had to use the backup cloud recording. The people responsible have been sacked.

View Details

This episode was a bit delayed, sorry about that. Poor planning on our part :)

View Details

Show notes, hopefully some day :)

View Details

Show notes TBD, maybe :)

View Details

Running with show notes?

View Details

Some show notes might show up later if you are lucky :)

View Details

More notes TBD

View Details

We're talking gear and trying to answer the always relevant question of what is needed to program.

  • C++
  • CSS
  • HTML
  • Javascript
  • Gymnasium
  • IBM's briefcase-shaped PC
  • Monochrome monitor
  • Glitch.app or maybe Glitch.io
  • Raspberry pi, all versions
  • Microsoft ergonomic keyboard
  • Trackball
  • GHC
  • Swift
  • Rust
  • LLVM
  • Property based testing explained by Jessitron
  • Elixir
  • Erlang
  • BEAM
  • Dialyzer
  • Docker
  • Vagrant
  • VirtualBox
  • Moore's law
  • Let's encrypt
  • Bayesian inference
  • ASIC
  • Balrog
  • Laggard
  • Filco majestouch with Cherry MX blue switches
  • Filco majestouch tenkeyless with Cherry MX brown switches
  • KVM switch
  • i3
  • Moonlander
  • Logitech TrackMan Marble FX Trackball
  • Counter-Strike
  • Kerp used a trackball when playing League of Legends
  • Sony zv1
  • Elgato keylight
  • Blue yeti
  • Audio Technica atr2100x usb
  • Focusrite Scarlett
  • ThinkPad T400
  • ThinkPad T440s
  • NFS
  • Tmpfs

View Details

Painstakingly putting together a framework on frameworks. Also name dropping as if there was no tomorrow.

  • Ariane 5 rocket launch explosion
  • TDD
  • Haskell
  • Python
  • Mocking or mock objects
  • Quickcheck
  • Hypothesis
  • Pytest
  • Elixir
  • Phoenix Framework
  • Domain-driven design
  • Telegram
  • Elixir Outlaws: Episode 97: Successfully Vamped
  • Chaos monkey
  • Prince of persia
  • Testing telecoms software with quviq QuickCheck
  • Blue green deployment
  • Django
  • The About ORMs episode
  • New Relic
  • Datadog
  • Prometheus
  • Grafana
  • PromEx
  • Livestream with Alex Koutmos
  • Antiloop's Purpose in life
  • Purescript
  • PHP
  • ripgrep
  • Protocol buffers
  • The Bike Shed
  • factory_boy
  • Golden tests
  • Python difflib
  • PostgreSQL
  • nginx
  • Elm
  • Nixos
  • Arch linux

View Details

  • Jonathan Stark speaks about value based pricing, his podcast Ditching Hourly is highly recommended.
  • Fight Club

View Details

Show notes are on vacation time. Hopefully we'll have them expanded eventually :)

View Details

Notes will arrive if vacation allows.

View Details

All about that base, data base no, trouble.

  • ORM
  • Python
  • PHP
  • SQLAlchemy
  • Django ORM
  • Drupal
  • Wordpress
  • Elasticsearch
  • C# dapper
  • Ecto
  • Elixir
  • The pattern book
  • Laravel
  • Ruby
  • Java
  • Diesel
  • Selda
  • Haskell
  • SQL
  • SQLite
  • PostgreSQL
  • MySQL
  • MS SQL
  • N+1 queries
  • select_related
  • prefetch_related aka The other one
  • REST
  • Modelforms
  • Ecto schemas
  • Ecto changesets
  • Http forms
  • Repo insert
  • Repo update
  • Data mapper
  • Structs in Elixir
  • Record types
  • DSL
  • Post-mortem: 10 years in the vertical - Part 3
  • Episode 4
  • Cartesian product
  • SQLAlchemy core and the other one
  • Module
  • Erlang
  • Reducer, map, filter, etc.
  • foldr, foldl
  • Bruce Tate
  • Construct, reduce, convert
  • Elixir pipes
  • Plug webserver
  • Higher order function
  • XKCD standards

View Details

Painstakingly putting together a framework on frameworks. Also name dropping frameworks and everything under the sun as if there was no tomorrow.

  • Phoenix Framework
  • tailwindcss
  • alpinejs
  • Django
  • jQuery
  • Wordpress
  • Laravel
  • Symphony
  • Drupal
  • Django admin
  • Django modelforms
  • Ecto schemas in Phoenix
  • Ecto changesets in Phoenix
  • Ruby on Rails
  • Django formsets
  • Flask
  • FastApi
  • HTTP basic auth
  • Django REST framework
  • Plug
  • Cowboy
  • Liveview
  • Erlang
  • Celery
  • Sidekiq
  • Cron
  • Redis
  • Oban
  • Beam
  • PostgreSQL
  • Postgrest
  • Views
  • Schema
  • Lemmingpants
  • GraphQL
  • Haskell
  • Yesod Web Framework
  • Scotty
  • Sqlite-simple
  • Lucid: templating DSL for HTML
  • EDSL@HaskellWiki
  • EDSL@Ward wiki
  • Surface ui
  • php
  • Cycle.js
  • Functional reactive programming
  • Virtual DOM
  • Elm architecture
  • Javascript
  • PureScript
  • PureScript Halogen
  • Mithril
  • React
  • Vue.js
  • Vuex
  • Redux
  • React router
  • Angular
  • Typescript
  • Ionic 1
  • Cordova
  • Phone gap
  • Xamarin
  • PETAL
  • Livewire
  • Hotwire
  • Django hotwire
  • Vim
  • Refactoring UI
  • Styled components
  • Sass
  • Less
  • Bootstrap
  • Purecss
  • Ecto
  • Telegram
  • DOM API
  • om virtual dom
  • Clojurescript

View Details

On the benefits and woes of written communication. Code reviews are usually written, so we revisit them again.

  • rfc2119 Key words for use in RFCs to Indicate Requirement Levels
  • Dunning–Kruger effect

View Details

On the benefits and woes of code reviews.

  • Accelerate by Nicole Forsgren, Jez Humlbe and Gene Kim
  • Marie Kondo
  • Flying workstation
  • CI/CD
  • Kubernetes
  • "Nobody expects the spanish inquisition!"
  • hlint
  • Credo
  • clippy
  • rustfmt
  • dialyzer
  • The do-not-eat-all-the-resources-ticket
  • partial in Python

View Details

Sometimes you end up talking about Javascript. 

  • Unpoly
  • Mithril.js
  • Lodash
  • Webpack
  • Parcel.js
  • Elixir
  • Phoenix
  • Alpine.js
  • Stimulus
  • Turbolinks
  • Cordova
  • React native
  • npx
  • Marie Kondo
  • Elevator saga
  • Lars mentorship
  • Fancy forms without Javascript
  • Mozilla Developer Network
  • MJPEG
  • HTTP Live Streaming
  • Membrane framework
  • FFMPEG
  • WebRTC
  • WebUSB
  • Web Bluetooth
  • Remote Code Execution in Slack desktop apps
  • Stagefright, Android MMS remote code execution
  • Pine phone
  • Arch Linux
  • Shark phone
  • CAT phones
  • KaiOS
  • React
  • React Router
  • Bonus: Opinionated react
  • AngularJS
  • ISO8601
  • flatpickr
  • Moment.js
  • Vue.js
  • React Portals
  • Vuex
  • Stripe
  • cassie.codes
  • Factorio
  • Slay the spire
  • Beam Bloggers Webring