Player FM - Internet Radio Done Right
25 subscribers
Checked 6M ago
Added four years ago
Content provided by Lars Wikman and Andreas Ekeroot. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Lars Wikman and Andreas Ekeroot or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://ppacc.player.fm/legal.
Player FM - Podcast App
Go offline with the Player FM app!
Go offline with the Player FM app!
Podcasts Worth a Listen
SPONSORED
A
All About Change


1 Tiffany Yu — Smashing Stereotypes and Building a Disability-Inclusive World 30:23
30:23
Play Later
Play Later
Lists
Like
Liked30:23
Tiffany Yu is the CEO & Founder of Diversability, an award-winning social enterprise to elevate disability pride; the Founder of the Awesome Foundation Disability Chapter, a monthly micro-grant that has awarded $92.5k to 93 disability projects in 11 countries; and the author of The Anti-Ableist Manifesto: Smashing Stereotypes, Forging Change, and Building a Disability-Inclusive World. As a person with visible and invisible disabilities stemming from a car crash, Tiffany has built a career on disability solidarity. Now that she has found success, she works to expand a network of people with disabilities and their allies to decrease stigmas around disability and create opportunities for disabled people in America. Episode Chapters 0:00 Intro 1:26 When do we choose to share our disability stories? 4:12 Jay’s disability story 8:35 Visible and invisible disabilities 13:10 What does an ally to the disability community look like? 16:34 NoBodyIsDisposable and 14(c) 21:26 How does Tiffany’s investment banking background shape her advocacy? 27:47 Goodbye and outro For video episodes, watch on www.youtube.com/@therudermanfamilyfoundation Stay in touch: X: @JayRuderman | @RudermanFdn LinkedIn: Jay Ruderman | Ruderman Family Foundation Instagram: All About Change Podcast | Ruderman Family Foundation To learn more about the podcast, visit https://allaboutchangepodcast.com/…
About Learning
Manage episode 316869721 series 2920782
Content provided by Lars Wikman and Andreas Ekeroot. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Lars Wikman and Andreas Ekeroot or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://ppacc.player.fm/legal.
Show notes may show up again some day. But right now we wouldn't be on it :)
65 episodes
Manage episode 316869721 series 2920782
Content provided by Lars Wikman and Andreas Ekeroot. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Lars Wikman and Andreas Ekeroot or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://ppacc.player.fm/legal.
Show notes may show up again some day. But right now we wouldn't be on it :)
65 episodes
All episodes
×The End. Links LADOK Sanne Kalkman - companies should hire junior developers Münchenbryggeriet The art of gathering Dead dog party Nobody wants this Neon genesis evangelion Ghost in the shell: stand alone complex Serial experiments Lain Hackers Black mirror William Gibson Burning chrome Neil Stephenson The Bridge trilogy s-CRY-ed Fullmetal alchemist Hellsing Samurai Champloo Black lagoon…
R
Regular Programming

Imagine Andreas going around making annoying electronic sounds all the time. Strike that. Andreas and Lars discuss using less power - less fancy abstractions - to make things easier to understand. Andreas likes to do a de-powering pass to code. Avoid making something which is more general than is useful. Lars goes into the lure of event sourcing - going for very high data resolution - it might come in handy! - at the cost of a lot of other things - how do we prevent duplicate user names? You've got to love a JSON blob. Finally, Lars derails Andreas' arrow of time and discussion of locking things down early when possible. Links Power glove Ghost in the shell 2 Stand alone complex Unlimited power! For-comprehensions Nerveshub REST Squiggle The lenses paper - Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire Not hot dog Domain-driven design Event sourcing CQRS Saga - event sourcing pattern Data lake Data lakehouse Ecto Penny Arcade - On discomfort Prince of Persia: The sands of time…
How do people learn about licenses? If you entered into software in a certain way, it's easy to assume that everyone is a part-time license attorney. But how do other people pick up license knowledge? And what does one really need to know? Licenses underpin open source but seem kind of dull. But they are also a cool and special thing about the software industry. Lars provides his licenses 101 thoughts and looks forward to becoming open source grandpa. Links GPL BSD license MIT license Apache license LGPL AGPL - Affero license OSI Open source licenses tried in court Source-available Cockroach BSL - business source license FOSDEM Oxide & friends on how they handle the CockroachDB thing Forking Terraform Opentofu Elasticsearch Opensearch Redis Valkey The Redis-Valkey-story The XZ backdoor Andres Freund - The Microsoftie who found the issue Visual studio code VSCodium Gitpod code-server Embrace, extend, extinguish Docker Podman Hashicorp Salt Ansible Terraform Stallman Compis Apple II MySQL CLA - contributor license agreement Kelsey Hightower VLC Winamp Slackware Debian Coding freedom - book by Gabriella Coleman (full PDF) FreeBSD Ideell förening Moomin dad Snufkin Pettson Jussi Björling Gramophone player…
R
Regular Programming

Everyone's favorite idempotent podcast returns to discuss learning new languages and concepts. Can mixing and matching new concepts and syntax help or hinder language adoption? A new concept but a familiar syntax might make a language easier for all the drifting Javascript developers to grab on to. Lars considers picking up a lisp at some point. It's harder to pick up new languages when you're mainly keen on building. Lars is very much in a building phase. He has problems, but they are his problems. Lars is currently learning - among other things - by working with other people, putting himself out there, and arranging a conference. Links Alan Perlis A language that does not affect the way you're thinking is not worth knowing Domain-specific languages Rails Phoenix Elixir Erlang Prolog Gleam Elm The CodeBEAM Gleam keynote by Hayleigh Thompson and Louis Pilfold is not out in video form yet Ant (the build system) Bash XLST - Extensible Stylesheet Language Transformations Xquery SAX parser SweetXml Exercism course on Gleam Lustre web framework Sprocket web framework - Gleam-style implementation of Liveview OTP AtomVM Cardputer REPL - read-eval-print loop NIF GHC - the Haskell compiler Lua Dave Lucia and Robert Virding talking about Lua on the BEAM - also not out in video form yet The Konami code Uiua ZFS Evan - creator of Elm - in Kodsnack 604 Smalltalk Pony…
Wherein the wonders of C are explored. But first, let Andreas tell you what's so great about Chalmers' approach to teaching computer engineering. Spoiler: starting with Haskell, close to math. The tooling around C: cultural mystery meat. Lars tries out a shocking plan for a productive framework for C! It's very cool to be able to just poke memory. Memory, arrays, structs, and strings are discussed. Strings are a bundle of fun. Arrays are desugared. Finally, a dive into the wonderful world of interoperability, both with and without C directly involved. Links Rust C D latches Gymnasiet - roughly upper secondary school or high school C++ Autotools Autoconf Linux from scratch Slackware Debian Makefiles Bash GNU Make Buildroot Cmake Zig TOML Isaac who does Zigler for Elixir POSIX Win32 API:s Libuv SIMD B-tree Redis Erlang NIF Cocoa - the wild Elixir community member integrating stuff OpenCV Pythonx - run Python from within Elixir Lua Luerl LFE - Lisp flavoured Erlang Fennel - lispier Lua Chicken Scheme…
R
Regular Programming

What is functional programming? Andreas grabs his whiteboard and his Turing machine, and starts from laziness, while Lars thinks of immutability, functions, and data. Is syntax important for being functional or not? The functionalness of various languages are delved into, from Haskell to Rust via Python, Go, and Ruby. And, of course, the evil version of Elixir. A good pipeline can be really nice. Oh, and you shouldn't use witchcraft anymore. Links Functional programming Haskell Lazy evaluation Lambda calculus Turing machines Alonzo Church Gödel - "A German guy" who formalized the definition general recursive functions Immutability Pure functions Witchcraft Continuation passing Partial application Currying The ML language family Why the lucky stiff Sam Aaron Sonic pi Roc Clojure AST - abstract syntax tree UV The UV company: Astral Memoization Singleton…
Lars wants a less demanding way to prepare for giving talks, but he doesn't have the time right now. Andreas knows a cheat code for public speaking. Lars uses slides like a blunt instrument. How should you wield your slides? How do you weigh information content against entertainment value? Should you try to reach precisely everyone with your talk? Many slides, or few? Lars has the questions, and some of the answers, at least for himself. Last but not least, Lars reveals his current way of preparing for talks. It ideally involves getting quite bored. Links Proof of Andreas speaking in public Sverok Beamer - write your slides in LaTeX Lars' Gigcity Elixir talk José Valim Chris McCord Øredev Lars' Øredev talk Lars Lisbon talk - Lively LiveView Code BEAM Berlin Jon Carstens Null modem Erlang clusters Wireguard Open source summit Another brick in the wall…
R
Regular Programming

What are people talking about when they talk about developer experience? Pretty colors in the terminal? What is worth improving, what is not? Lars has thoughts about all of developer experience, not least the one of Nerves. How flaky do you accept, for how fast? Revealed: why all Andreas' Elm programs are one line long. Also: Why not attend the Øredev developer conference in Malmö this November? Links DX - developer experience Elm Language server Elixir's brand new official language server team unifies the work of the previous separate teams The Elm language server Mix - Elixir build tool Nerves NervesHub Nerves Cloud Buildroot Vintage - network configuration and management for Nerves devices REPL - Read-evaluate-print loop Ccache IEx - Elixir's interactive shell Hyllie Øredev Yocto SKF Bredbandsbolaget NervesHubLink OTP Smalltalk Lisp machines Beam Radio Bryan Hunter Rebar3…
R
Regular Programming

Andreas' place of work ceased to exist. It was mostly a relief. The main worry is about resting and recovering enough before whatever comes next begins. All the learnings about how not to do certain things live on. The right way of doing those things still remains to be learned. Lars is on the other end of the spectrum: beginning completely new things. Figuring out where exactly Delaware is, finding a Nerves-shaped Elixir hole, wading through Python scripts, and so much more. Also: Why not attend the Øredev developer conference in Malmö this November? Links Lönegaranti - wage guarantee Uppsägningstid - notice period Aria Hyllie Øredev Frank Hunleth talking about Nerves Nerves Raspbian Raspberry pi 3 Raspberry pi zero Adafruit Inky pHAT e-ink display Lars' ported Inky library Buildroot Yocto NervesHub Josh Kalderimis Travis CI Nerves Cloud Milwaukee Delaware Stripe Atlas Heartbleed Shellshock Stagefright Row hammer CrowdStrike Flickswitch SmartRent…
CRUD - a classic term among supposedly simple web apps. But, not always the right move? Not always all that mappable to the actual problem? Discussed: picking spicy architectures, non-CRUD data storage needs, slovely solutions, dirty refunds, and doing the OAuth dance. Hey, thing happened! Finally: a story where pubsub was reasonable, and some telemetry. Links CRUD - Create, read, update, delete Django Ruby on rails Phoenix Ash RethinkDB Mnesia Plausible analytics Timescale Clickhouse Nervesconf Alex McLain Nerves CubDB RocksDB DynamoDB The DynamoDB paper Ecto OAuth…
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…
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…
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 really nice 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…
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…
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…
R
Regular Programming

1 About things you built long ago that start doing weird things 28:21
28:21
Play Later
Play Later
Lists
Like
Liked28:21
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…
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…
R
Regular Programming

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…
R
Regular Programming

1 About What Every Web App Needs But Your Developer Does Not Want You To Know About 30:31
30:31
Play Later
Play Later
Lists
Like
Liked30:31
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…
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…
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…
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…
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…
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…
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…
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?…
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…
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…
R
Regular Programming

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…
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…
About Being Wrong Wherein polite gentlemen at gaming conventions explain how people didn't have their variables separate enough with regard to the Dunning-Kruger effect . Lars thinks Andreas has drawn the wrong learnings from this. It's a good idea to be humble … but strong opinions loosely held may not be the perfect thing, either? Also discussed is the curse of the expert - teaching across a large gap in experience, and how to actually go about changing systems and having better discussions. Have you considered being god's advocate instead of the devil's when in a discussion? Links Gothcon The Dunning-Kruger effect Autocorrelation The Dunning-Kruger effect is autocorrelation Golden ratio The curse of the expert The halting problem Linus Torvalds Strong opinions loosely held Steelmanning an argument Yes, and … Two's complement podcast Quotes I attempted to make friends Hard to know what you don't know If you don't have your variables separate They fumbled on the input data I think you have the wrong takeaway The curse of the expert Have you looked at presidents recently? Exhaust the universe The halting problem of the universe Sons of pedagogy I feel comfortable, but I don't feel certain A really badass judo throw I can ignore many things A multitude of parts Bit by bit, you shift the system Taking small stands Very happy to be wrong God's advocate Random ideas, loosely shared A good crowd for this question…
About Estimates Estimates are a nasty subject, Andreas doesn't know how to handle it. Fortunately, Lars has one weird trick, which doctors hate. When you have plenty of control, estimates can be useful. Not useful: unexplained deadlines. Finally: when things get stuck. (Lars is usually available to blame.) (In an alternate timeline, Andreas' tells us everything his relatives taught him about quark cake.) Links Deadlines whooshing past The XKCD about determining if you're in a national park, and check if your photo is of a bird Basecamp Shape up Elm Zenos' paradoxes - you can't run past a tortoise The travelling salesman problem NP-complete problems CRUD Lean manufacturing Quotes Their due dates, their deadlines I have this one weird trick, that doctors hate A constraint for the work The magnitude of the task Some real dumb things, and some very decent ideas Skate curve The smallest unit is always a day Not agile enough Slightly confused and maybe a little bit sad If you think that's a map (, I think you're using it wrong) Assorted concerns You can't run past a tortoise You can always split a cake in two Quark cake Accelerate a cake A fixed estimate on the travelling salesman problem Usually available to blame…
R
Regular Programming

Passing pandemics make it possible to meet developers in real life again. Elixir-Lars makes a splash, and tells about recent and coming real-life events he's enjoyed. Things learned from real-life events and the need - or not - of constant learning are mentioned. (It's not bit rot, it's data composting!) Finally, a deep dive into the art of arranging good events, including preparatory pre-event events. Who wouldn't like a movie night with a bunch of developers and pizza? Linkable matter Elixirconf EU 2023, in Lisbon Varberg Code BEAM - there are so many of them TDD - test-driven development Lettuce Cucumber NAND Nerves' Ramoopslogger Textalk Software craftsmanship Göteborg Event sourcing Redux Hackers Gleam Membrane Code BEAM Stockholm 2023 Code BEAM Europe 2023 in Berlin Title-like quotes Developers in my local area A splash as Elixir-Lars I guess I'm visible I met one developer I enjoy meeting developers Leads and future prosperity Composting becomes very natural Harness the entropy It's not bit rot, it's data composting The series of events that brought us here A speedrun of "Well, you have options"…
R
Regular Programming

The continued cratering of Twitter, and the joy of discovering open alternatives. Lars and many others find themselves on the open and federated Mastodon instead of Twitter, having a great time, and feeling more excited about open systems than in a long time. On the level of individuals, owning and controlling your own data feels back in fashion, but there is even more to dig into on the level of large organizations. Perhaps when GDPR says no and the good spirit of the internet is strong, there is a chance for municipalities and other public sector organizations to get and help build open alternatives to the closed, proprietary, and often hair-raisingly expensive and poorly received software they have today? Lars sees exciting business opportunities, better software for all, as well as the interesting challenges of navigating tender processes and plain old corruption. Links Mastodon genserver.social fosstodon.org Ruby on rails PostgreSQL Object storage Redis Pleroma Akkoma glitch-soc - "Mastodon Glitch Edition" - where Mastodon UI discovers new features Glesys' object storage PeerTube Pixelfed Activitypub SpaceX rockets exploding compilation video WebTorrent Element and Matrix eSam Mattermost SPF - Sender policy framework - email authentication method Skolplattformen Offentlighetsprincipen Quotes Elon happened A very straight path to somewhere else As open as email Satiate my doomscrolling needs A Twitter on IRC I don't trust the ecosystem under my feet Lectured about a culture I'm not in Teams was dubbed illegal videos.varberg.se The good spirit of the internet GDPR says no! People software You have people living in you I want "Svenska IT-myndigheten" Pointless, annoying, and wasteful…
R
Regular Programming

How to teach functional programming? What are the proper steps, beyond the first ones? Especially when you can't or don't want to point to a framework and say "we do it this way!" Lars outlines his ideas for teaching Elixir to someone without requiring any prior programming experience. There is also discussion of mapping, reducing, and representing one in terms of the other. Also things which are better in Haskell than Elixir, perfectly named modules, and - inevitably - why you don't just use Rust instead. Links Chalmers CakeML Elixir in action - Saša's Elixir book Monad Map Reduce Filter MapReduce Elixir's enum module Multiple function heads in an anonymous function Immutability Guards in Elixir and Haskell Witchcraft - the module Nerves Frank Hunleth REPL Quotes It felt like I cheated, I don't know if I did In my bone marrow! Putting the module before the functions Try to explain a monad (there is no second step) Pretend that the rest of computing doesn't exist Ignore the rest of the world Save brain cycles Solid, sound, and true It's going to have to be a reduce I never really updated my map…
Archives are cool. How do you keep your digital things in order and, hopefully, backed up? We need more archivists. Andreas has re-read Snowcrash, and while it isn't the manual for the world to adopt it doesn't seem to stop the megacorps from thinking it is and trying. Where did Google go wrong, and why? And why aren't we jealous of their recruiting? Linkable matter The library of Alexandria - overrated? Backblaze B2 Syncthing Tailscale Nextcloud Hetzner Storage Share (NextCloud) ZFS Borg - backup handling software Andreas' Instagram account Dragonbox algebra ( 5 yo / 12 yo ) Snowcrash by Neal Stephenson Ender's game by Orson Scott Card Meta's new professional Quest headset The Corecursive podcast episode about Android Supabase Swedish archive paper Better titles Overrated library though Perfectly gitted and dotfiled Way too pragmatic A virtual private server and magic Nested backups Suddenly: math More stacks of logos; less clarity Preparing for the metaverse 1984 isn't the manual Snowcrash isn't the manual Designing dystopia The opportunity for amazing glitches Need to try harder at working less A strong ack…
R
Regular Programming

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…
R
Regular Programming

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 * Regolith * Frank Hunleth (of Nerves fame) * 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…
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…
R
Regular Programming

Notes will improve when beatings continue.
R
Regular Programming

Hopefully some day :)
TBD
TBD
TBD
:)
TBD
Show notes may show up again some day. But right now we wouldn't be on it :)
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?
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.
R
Regular Programming

This episode was a bit delayed, sorry about that. Poor planning on our part :)
Show notes, hopefully some day :)
Show notes TBD, maybe :)
Running with show notes?
Some show notes might show up later if you are lucky :)
More notes TBD
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…
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…
Jonathan Stark speaks about value based pricing, his podcast Ditching Hourly is highly recommended. Fight Club
Show notes are on vacation time. Hopefully we'll have them expanded eventually :)
Notes will arrive if vacation allows.
Welcome to Player FM!
Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.