Kodsnack in English Kristoffer, Fredrik, Tobias
-
- Technologie
All the English episodes of Kodsnack - a podcast by developers, about anything interesting to developers
-
Kodsnack 573 - This is not a toy project, with Leandro Ostera and Emil Privér
Fredrik is joined by Emil Privér and Leandro Ostera for a discussion of the OCaml ecosystem, and making it Saas-ready by building Riot.
First of all: OCaml. What is the thing with the language, and how you might get into it coming from other languages? The OCaml community is nice, interested in getting new people in, and pragmatic. And it has a nice mix of research and industry as well.
Then, Leandro tells us about Riot - an experiment in bringing everything good about the Erlang and Elixir ecosystems into OCaml. The goal? Make OCaml saas-ready. Riot is not 1.0 just yet, but an impressive amount has been built in just five(!) months.
Emil moves the discussion over to the mindset of shipping, and of finding and understanding good ideas in other places and picking them up rather than reinventing the wheel. Leandro highly recommends reading the code of other projects. Read and understand the code and solutions others have written, re-use good ideas and don’t reinvent the wheel more often than you really have to.
Last, but by no means least, shoutouts to some of the great people building the OCaml community, and a bit about Emil’s project DBCaml.
Thank you Cloudnet for sponsoring our VPS!
Comments, questions or tips? We a re @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive.
If you enjoy Kodsnack we would love a review in iTunes! You can also support the podcast by buying us a coffee (or two!) through Ko-fi.
Links
Emil
Leo
Leo on Twitch
Previous Kodsnack appearances by Emil
Riot
Sinatra
Backbone.js
Ember.js
Angularjs
React
Erlang
Tarides - where Leandro currently works
OCaml
Robin Milner - designer of ML
Caml
Javacaml
F#
Imperative programming
Object-oriented programming
Pure functions and side effects
Monads
The OCaml compiler
Reason - the language built by Jordan Walke, the creator of React
Standard ML
React was prototyped in Standard ML
Melange - OCaml compiler backend producing Javascript
OCaml by example
The OCaml Discord
The Reason Discord
Rescript
Jane street
High-frequency trading
The Dune build system
Erlang process trees
Caramel - earlier experiment of Leandro’s
Louis Pilfold
Gleam
Algebraic effects
Continuations
Pool - Emil’s project
Gluon
Bytestring
Atacama - connection pool inspired by Thousand island
Nomad - inspired by Bandit
Trail - middleware inspired by Plug
Sidewinder - Livewire-like
Saas - software as a service
DBCaml
Johan Öbrink
Ecto
Mint tea - inspired by Bubble tea
Autobahn|Testsuite - test suite for specification compliance
Serde - Rust and OCaml serialization framework
S-expressions
TOML
Dillon Mulroy
Metame - community kindness pillar
welltypedwitch
Sabine maintains ocaml.org
OCaml playground
OCaml cookbook - in beta, sort of
teej_dv
ocaml.org
Pool party
Drizzle
SQLX
SQL Join types (left, inner, and so on)
dbca.ml
internet.bs
The Caravan
Essentials of compilation
Reading rainbow
Titles
Few people can have a massive impact
Impact has been an important thing for me
It’s a language out there
A very long lineage of thinking about programming languages
Programs that never fail
The functional version of Rust
Melange is amazing
This is not a toy project
Yes, constraints!
Wonders in community growth
Arrow pointing toward growth
Programs that don’t crash
A very different schoold of reliability
Invert the arrow
Very easy on the whiteboard
Multicore for free
An entire stack from scratch
Built for the builders
A massive tree of things
Make OCaml saas-ready
Leo is a shipper
Standing on the shoulders of many, many giants
Learn from other people
I exude OCaml these days
Sitting down and building against the spec
You just give it something
Your own inner join
We build everything in public
The gospel of the dunes -
Kodsnack 570 - Debug your ideas, with Eric Normand
Fredrik is joined by Eric Normand for a discussion of debugging your ideas through domain modeling, using Eric’s concept of lenses to find more good questions to ask.
Eric is writing a book about domain modeling and has developed the concept of lenses - ways to look at various aspects of your domain, model, and code in order to better consider various solutions and questions.
Why? Because design is needed, but is easily lost in the modern urge to be fast and agile. There’s a lot you can and need do on the way to a working system. Eric pushes for design which is an integral part, perferably right in the code, rather than a separate one which can become outdated and separated without anyone noticing. Just spend a little more time on it.
Tricks for seeing your domain with fresher eyes.
Change is not always maximal and unpredictable! But thinking it is can lead to a lot of indirection and abstraction where a single if-statement could have sufficed for years.
Refactoring as a way of finding the seams in your model. What is the code actually supposed to do? How does it actually fit with the domain?
Recorded during Øredev 2023, where Eric gave two presentations about the topics discussed: Better software design with domain modeling and Stratified design and functional architecture.
Thank you Cloudnet for sponsoring our VPS!
Comments, questions or tips? We are @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive.
If you enjoy Kodsnack we would love a review in iTunes! You can also support the podcast by buying us a coffee (or two!) through Ko-fi.
Links
Eric
Eric’s Øredev 2023 presentations:
Better software design with domain modeling
Stratified design and functional architecture
Eric has his own podcast
Grokking simplicity - Eric’s book on functional programming
Domain modeling
Waterfall
UML
Clojure
REPL - Red-evaluate-print loop
Kodsnack 294 - the episode where Dan Lebrero gave Fredrik a feel for REPL-driven development
Domain modeling lenses
Drawing on the right side of the brain
The “keynote yesterday” - Na’Tosha Bard about code outliving you (see also episode 558)
Then a miracle occurs
Titles
I’m really on to something
Anti-design trend
In a waterfall world
On the way to code
Experimentation in code
Not about moving your hand
I don’t want rules
Yes, that’s the right question!
Take five minutes
Spending more time on it
Code lets me play with ideas
I’m happy working on a whiteboard
Debug your ideas
Server babysitters -
Kodsnack 567 - Arrow straight through, with Matt Topol and Lars Wikman
Fredrik has Matt Topol and Lars Wikman over for a deep and wide chat about Apache Arrow and many, many topics in the orbit of the language-independent columnar memory format for flat and hierarchical data. What does that even mean? What is the point? And why does Arrow only feel more and more interesting and useful the more you think about deeply integrating it into your systems?
Feeding data to systems fast enough is a problem which is focused on much less than it ought to be. With Arrow you can send data over the network, process it on the CPU - or GPU for that matter- and send it along to the database. All without parsing, transformation, or copies unless absolutely necessary.
Thank you Cloudnet for sponsoring our VPS!
Comments, questions or tips? We are @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive.
If you enjoy Kodsnack we would love a review in iTunes! You can also support the podcast by buying us a coffee (or two!) through Ko-fi.
Links
Lars
Matt
Øredev
Matt’s Øredev presentations: State of the Apache Arrow ecosystem: How your project can leverage Arrow! and Leveraging Apache Arrow for ML workflows
Kallbadhuset
Apache Arrow
Lars talks about his Arrow rabbit hole in Regular programming
SIMD/vectorization
Spark
Explorer - builds on Polars
Null bitmap
Zeromq
Airbyte
Arrow flight
Dremio
Arrow flight SQL
Influxdb
Arrow flight RPC
Kafka
Pulsar
Opentelemetry
Arrow IPC format - also known as Feather
ADBC - Arrow database connectivity
ODBC and JDBC
Snowflake
DBT - SQL to SQL
Jinja
Datafusion
Ibis
Substrait
Meta’s Velox engine
Arrow’s project management committee (PMC)
Voltron data
Matt’s Arrow book - In-memory analytics with Apache Arrow
Rapids and Cudf
The Theseus engine - accelerator-native distributed compute engine using Arrow
The composable codex
The standards chapter
Dremio
Hugging face
Apache Hop - orchestration data scheduling thing
Directed acyclic graph
UCX - libraries for finding fast routes for data
Infiniband
NUMA
CUDA
GRPC
Foam bananas
Turkish pepper - Tyrkisk peber
Plopp
Marianne
Titles
For me, it started during the speaker’s dinner
Old, dated, and Java
A real nerd snipe
Identical representation in memory
Working on columns
It’s already laid out that way
Pass the memory, as is
Null plus null is null
A wild perk
Arrow into the thing
So many curly brackets you need to store
Arrow straight through
Something data people like to do
So many backends
The SQL string is for people
I’m rude, and he’s polite
Feed the data fast enough
A depressing amount of JSON
Arrow the whole way through
These are the problems in data
Reference the bytes as they are
Boiling down to Arrow
Data lakehouses
Removing inefficiency -
Kodsnack 560 - Starting with courage, with Diana Larsen
Recorded on-stage at Øredev 2023 just after her keynote, Fredrik chats to Diana Larsen about leadership and building good teams.
How to get into leaderhip? Often it’s more about picking up expectations than getting a formal onboarding
Learning to not do things yourself when you start leading - everything you do is one less thing the team learns to do for itself
Leadership roles are on different levels, and on a different level than non-leadership positions. A lot of thing can become invisible to people on other levels. Some things should be, others should be made visible. People want to be understood, and understand what other people in the organization are doing and what challenges they have.
And everything doesn’t have to be a formal meeting with agendas and stuff.
Power dynamics - hard to percieve and to talk about. Even what location you are in can become part of the power dynamics and important to take into consideration.
Teams - they also exist on different levels. They don’t have to be static.
Thank you Cloudnet for sponsoring our VPS!
Comments, questions or tips? We are @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive.
If you enjoy Kodsnack we would love a review in iTunes! You can also support the podcast by buying us a coffee (or two!) through Ko-fi.
Links
Øredev
The Øredev 2023 video playlist on Youtube
Diana
Diana’s keynote: Catch fire with resilient learning teams
Diana’s second presentation: Stop wasting time on ineffective retrospectives!
Diana’s books:
Agile retrospectives
Liftoff
The five rules of accelerated learning
Chris Corrigan - “Everything you do for the group is one less thing they know they can do for themselves” (in the lower half of the page)
James Shore
The Agile fluency game
Circles & soup retro
Scrum
Mob programming
Titles
Leaders and followers
Starting with courage
Learning is okay here
We can’t know it all
Unknown power
Strong three-person teams -
Kodsnack 559 - Non-fungible plants, with Cyrus Clarke
Recorded on-stage at Øredev 2023 just after his keynote, Fredrik chats to Cyrus Clarke about plants, imagining things, exploring, and building. And not presenting speculative things as possible here right now. Daring to not be useful right now.
How to bridge the gap between theory and academia on one side and practice and industry wanting to build things right now? By example.
Do our short time scales and focus on iteration hurt us? Eighteen months sounds like an impossibly long timespan, because we think in two-week iterations of what we have and customers want right now.
Getting in touch with researchers. Adapt how you talk to people! Scientists and artists are very similar.
We are all at intersections between things.
Thank you Cloudnet for sponsoring our VPS!
Comments, questions or tips? We are @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive.
If you enjoy Kodsnack we would love a review in iTunes! You can also support the podcast by buying us a coffee (or two!) through Ko-fi.
Links
Øredev
The Øredev 2023 video playlist on Youtube
Cyrus
Cyrus' keynote: Storing data nature’s way
Cyrus' previous projects
South by Southwest
The non-fungible plant
NFT:s
Anthurium - the plant
Titles
Data and plants
Non-fungible plants
That nice melting pot
Scientists are also artists
A little bit more imaginative
That’s all we are
Constant “of course"s -
Kodsnack 558 - Software outlives you, with Na'Tosha Bard
Recorded on-stage at Øredev 2023 just after her keynote, Fredrik chats to Na’Tosha Bard about picking good building blocks, getting products done, and code outliving you.
Software outlives you. How early is it meaningful to consider that fact?
Will we get better at handling long-lived software?
Make tradeoffs with open eyes.
Na’Tosha has worked on many different levels of hardware and software, as well as many different levels in organizations - what can be picked up from the various levels?
Thank you Cloudnet for sponsoring our VPS!
Comments, questions or tips? We are @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive.
If you enjoy Kodsnack we would love a review in iTunes! You can also support the podcast by buying us a coffee (or two!) through Ko-fi.
Links
Øredev
The Øredev 2023 video playlist on Youtube
Na’Tosha
Na’Tosha’s keynote: Finding the beauty in the digital brick
XKCD about standards
Sandy Mamoli talked about lessons from handball applied to software
Premature optimization
Cloud-agnosticism
Unity
KMD - where Na’Tosha works now
Titles
A lot of nodding
Perfect is maybe also a delusion
Microservice theater
Solving a problem for humans
Software outlives you
Sitting on a mainframe somewhere