
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, @oferlundand @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
12 Maalis 20241h 4min

Kodsnack 572 - Perfekt tillfälle att åka till Bryssel, med Daniel Stenberg
Fredrik snackar med Daniel Stenberg om konferensen FOSDEM och om utmaningarna med CVE-systemet för att dokumentera och publicera säkerhetsproblem. Fredrik har varit sugen på FOSDEM i ett par år. Daniel som är riktigt proffs berättar om hur konferensen är (skönt kaotisk, och biljettfri!), hur saker funkar, och kommer med lite tips som att kolla upp vad som händer dagarna intill konferensen och handla lunch kvart över tio på förmiddagen (eller ännu hellre bara följa med strömmen och se vad det blir). Har någon lyssnare koll på en stor samling FOSDEM-tröjor från konferensens olika år? Vi skulle jättegärna vilja se en bild på en sådan garderob! Kodsnacks spelsylt kommer tillbaka redan 9 mars, läs mer på https://itch.io/jam/spelsylt10, och häng med alla trevliga människor i kanalen #spelsylt i Kodsnacks Slack! Ett presentkort på 500 kronor och en hel massa ära står på spel! Sedan diskuterar CVE-systemet - ett system som är byggt för en värld som såg lite annorlunda ut än idag. Daniel berättar om de CVE-bekymmer som drabbat Curl och många andra projekt, och vilka problem som finns med systemet. Ett stort tack till Cloudnet som sponsrar vår VPS! Har du kommentarer, frågor eller tips? Vi är @kodsnack, @thieta, @krig, och @bjoreman på Mastodon, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas. Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik. Länkar Daniel Tidigare avsnitt med Daniel FOSDEM FOSDEM 2024 ULB MAC-adresser FOSDEM-appar SReview - FOSDEMs videosystem CCC GDB Valgrind Wolfssl - där Daniel jobbar Johan Thelin Fringe-events kring FOSDEM Homebrew Debian So you think you know git - snack från huvudspåret, av Scott Chacon Curl Software bill of materials Kodsnacks tionde spelsylt Kodsnacks Slack CVE:er Mitre CVE numbering authoroties NVD - National vulnerability database NIST - National institute of standards and technology Daniels bloggtexter om CVE-problemen Titlar Ska vi börja med åkandet? Alla fysiska FOSDEM När Bryssel är som absolut sämst Grött Grått, blött, fuktigt, och ganska kallt Perfekt tillfälle att åka till Bryssel Det finns inga biljetter Man bara dyker upp Alla byter MAC-adresser 30 separata spår Ta in en öl till Väldigt stort och ganska kaotiskt Det finns inga slipsar där Bara hänga i cafeterian Det stora spåret Större möjligheter att bara hänga En klistermärkesintensiv konferens Notoriskt dåligt med eluttag Här börjar mitt snack Man är inte helt unik när man pratar på FOSDEM FOSDEM-lådan En FOSDEM-svit Om man hittar ett säkerhetsproblem Man behöver inte bevisa att det finns en bugg Här får du en CVE Den här icke-buggen Himlen ramlar, världen brinner En 9,8-CVE “Disputed” Rejected, inte disputed Om jag bara gnäller tillräckligt högt En anonym person som har missuppfattat Knak i hela CVE-systemet
5 Maalis 20241h 6min

Kodsnack 571 - En generalisering över alla statyer
Kristoffer och Fredrik snackar inför och med publik om tangentbord, fördelar och nackdelar med AI, och om att jobba via satellit medan isbergen glider förbi ens båt. Avsnittet är inspelat på after work hos Net insight, som också är veckans sponsor! Stort tack till dem för initiativet, utrymmet, och förtäringen! Net Insight bygger både hård- och mjukvara själva och har en platt organisation med självgående team som verkligen tar helhetsansvar för det man bygger. De söker både utvecklare och produktägare, och det finns massor av supererfarna kollegor att lära av och med. Just nu lediga jobb finns längre ner i avsnittsinfon och såklart på netinsight.net Och ja, Kristoffer konsultar just nu där och trivs väldigt bra! Som uppvärmning demonstrerar Kristoffer sin någon vecka gamla tangentbordslayout och berättar ungefär hur tankarna i och kring den gått. En titt på agendan: Sedan blir det ett utförligt AI-snack med publik. Tester kanske är ett bra användningsområde ändå? Är språkmodellerna idag i ett lokal maximum, eller kan de hyfsat rakt utvecklas till att få färre av de brister och problem de har idag? Och hur påverkas man om man lär sig programmera idag, med språkmodeller som ett ständigt närvarande verktyg? Vi diskuterar att stora modeller skapar någon sorts genomsnittligt bra innehåll, möjliga fördelar med mindre modeller, jämför med hjälpsamma IDE:er, och mycket mer. Sist men inte minst: en liten berättelse om hur det är att jobba via satellit från en båt utanför Grönland. Ett stort tack till Cloudnet som sponsrar vår VPS! Har du kommentarer, frågor eller tips? Vi är @kodsnack, @thieta, @krig, och @bjoreman på Mastodon, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas. Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik. Länkar Net insight - veckans sponsor Tjänster Net Insight har ute just nu: C++: https://jobs.netinsight.net/jobs/2443906-senior-c-developer PO: https://jobs.netinsight.net/jobs/3644794-product-owner-to-new-5g-synchronization-product Frontend/fullstack: https://jobs.netinsight.net/jobs/3330902-experienced-full-stack-frontend-developer-to-new-5g-synchronization-product FPGA VHDL ESD-skor Kristoffers tangentbordslayouter Dvoraklayouten Graphite - layouten som Kristoffer använde senast innan Vi Home row mods One shot modifiers Repeat-tangenter Karabiner för Mac QMK Prefixtangent - eller “leader key” ChatGPT tappade koncepten helt “Agendan” för kvällen (skapad av den urflippade ChatGPT) Copilot ELIZA En arg nazist (tydligen var det en britt) som slår en på fingrarna Sora Yngwie Malmsteen More is more Ed TDD Turingtestet AI-vintern Bruce Schneier länkar forskning om att språkmodellerna inte kan skriva säker kod Stridsgissel Den butlerianska stämningen Stable diffusion Controlnet LLaMA - språkmodell från Meta Whisper - modell som transkriberar ljud till text med bravur Bing- (förlåt, AI-) knappen på tangentbordet Starlink Pocket operator M8 Titlar Kod och annat nonsens Vi har aldrig haft en plan Tid för 5G-nät Transportera väldigt exakt tid Kombinationer av misstag Samma sak som jag gjorde sist igen Coinage of the meeting Scenarion där det skulle vara jättebra Det är ju bara en illusion En robot som spottar ur sig kod En svart låda man kan peta på More is more Jag önskar att Copilot verkligen var en copilot Tänka utan stödhjul Övertro till AI-verktyg Om det ska vara ett bollplank Vi köttpåsar Det är ett verktyg Ett lokalt maximum IDE-tåget Det blir aldrig bättre än snitt på det som finns därute Över snittgränsen Bitter på det också Ett skelett som håller i en lax En generalisering över alla statyer Försök generera ett stridsgissel Min egen dialog med modellen Terapiverktyg Den butlerianska stämningen Mindre modeller som kräver mindre Kan man få ut mer med mindre Snittet av internet
27 Helmi 202455min

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, @oferlundand @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
20 Helmi 202440min

Kodsnack 569 - Dina förändringar som rådata, med Johan Haleby
Fredrik snackar med Johan Haleby om hans öppna källkod, event sourcing, och om att börja använda Kubernetes 2015. Vi börjar med att prata om Powermock - ett ramverk man helst inte ska använda - för att sedan diskutera Rest assured och Awaitility. Därefter diskuteras Occurrent och event sourcing. Vad innebär event sourcing? Johan tyckte att event sourcing borde kunna vara enklare och innehålla mycket mindre magi. Det har sina kostnader att släppa saker som öppen källkod. Och det är inte lätt att fördela sin tid på bästa möjliga sätt. Det kan lätt gå väldigt mycket tid på saker som visar sig inte ge så mycket till slut. Utifrån sett kan alla öppna projekt verka ungefär lika stora - oavsett om det egentligen är ett storföretag bakom det ena och en ensam utvecklare i Skåne bakom det andra. Fredrik får lära sig om ADR och får en ahaupplevelse. Sist men inte minst berättar Johan om hur det var att börja med Kubernetes 2015 - hur man gick tillväga för att välja det och vilka fallgropar och problem man sprang på längs vägen. Kom på Kodsnackskväll hos Net Insight i Stockholm 21 februari! Ett stort tack till Cloudnet som sponsrar vår VPS! Har du kommentarer, frågor eller tips? Vi är @kodsnack, @thieta, @krig, och @bjoreman på Mastodon, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas. Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik. Länkar Johan Parkster Domändriven design Event sourcing Johans öppna källkods-bibliotek Powermock Statiska metoder i Java Easymock och Mockito Eclipse Resst assured Awaitility Occurrent Audit logs Integrationsevents Pure functions Cloudevents CNCF - Cloud native computing foundation GDPR CQRS - command query responsibility separation Spring ADR - architecture decision records Verktyg för ADR Kubernetes Varför Parkster valde Kubernetes ECS - Amazons elastic container service Docker swarm Mesosphere DC/OS Tutum - numera Docker cloud Service discovery Tomcat (Gamla) Kubernetesfallgropar och vägar runt dem Titlar Dogfooding där också All svart magi man kan tänka sig En stor matris Här kan jag kanske bidra med någonting Dyrt personligen Dina förändringar som rådata Större event Integrationsevent Mycket magi Utan att det smutsar ner din befintliga kod Queries mot eventströmmen En dålig fråga Plåster och silvertejp Jag har inte 24/7-support Utifrån sett blir alla projekt lika stora Skevt på ett fascinerande sätt Som tur var, i efterhand Så lite fancy som möjligt
13 Helmi 202457min

Kodsnack 568 - Gör vad du vill, se inga felmeddelanden, med Oskar Wickström och Mattias Ask
Fredrik snackar med Oskar Wickström och Mattias Ask, som tillsammans har byggt vidare på Oskars idéer om egenskapsbaserad testning. Vad är bättre än att ha en testlösning där man skriver specar för sina specifika problem? Vad sägs om en lösning där man inte behöver skriva några specar alls? Oskar tvekade, men Mattias var ihärdig och till slut trillade poletten ner. Jo, det går att göra nyttiga tester där användaren inte behöver göra mer än att ange URL:en till sin webbtjänst. Det inte bara går, det finns massvis man kan göra. Solida tester för alla de som driver någon sorts webbtjänst för de som inte har tid och resurser (eller kunskap) att sätta upp en massa tester själva. Sugen på att testa Squidler? De hundra första som använder kupongkoden KODSNACK24 får en månad gratis! Kom på Kodsnackskväll hos Net Insight i Stockholm 21 februari! Ett stort tack till Cloudnet som sponsrar vår VPS! Har du kommentarer, frågor eller tips? Vi är @kodsnack, @thieta, @krig, och @bjoreman på Mastodon, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas. Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik. Länkar Oskar Mattias Tidigare avsnitt med Oskar Property-based testing Squidler - Mattias och Oskars företag Jayway - numera Devoteam Quickstrom Todomvc - exempelappar Liam O’Connor Quickstrom: property based acceptance testing with LTL specifications - Oskars och Liams paper F* 80/20-tänk Selenium Cypress State machine Fuzzing Axe-core - testning Squidler.io Kom på Kodsnackkväll hos Net Insight 21 februari Titlar Klivande över en viss tröskel Fast ingen kommer att förstå det Nu ska jag skriva ett paper Göra det mänskligt tillgängligt Mitt exceptionellt naiva perspektiv Beskriva generella problem på internet Måste man skriva en spec? Testa ganska generella saker Gör vad du vill, se inga felmeddelanden Ingen knasig AI-grej Lärdom från våra användare Generell baslinjetestning Baslinje för kvalité på webben Vi ska göra en grej Målgruppen är en icke-teknisk användare Simply add an annotation Vi skriver specarna Vi kan skriva en spec för detta Någonting som alla kan titta på Produktifiering av en tanke Vi börjar där de andra slutar Om vi bara har en URL Ingen ska behöva vara i vårt UI En giltig mening Någon annans magiska låda
6 Helmi 20241h 6min

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
30 Tammi 20241h 23min

Kodsnack 566 - Träna upp dina lillfingrar
Fredrik och Kristoffer snackar knappar, musik, och fönsterhantering. Kom på Kodsnackskväll hos Net Insight i Stockholm 21 februari! Kristoffer har ett nytt tangenbord med konkavitet, och massor av tumtangenter. Plus dubbla former av trådlöshet, även om blåtand inte fungerar perfekt. Pausernas betydelse för inlärning är stor. Fredrik har ett Stream deck och har efter visst funderande på vad som är användbart att lägga på en separat knappsats längre bort från den vanliga. Fönsterhantering kanske är en bra grej? Och automatisering? Som avslutning en musikfråga: Finns det någon musikpryl som även den som inte kan något om musik (än?) kan ha glädje av? Kristoffer har solida tips! Ett stort tack till Cloudnet som sponsrar vår VPS! Har du kommentarer, frågor eller tips? Vi är @kodsnack, @thieta, @krig, och @bjoreman på Mastodon, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas. Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik. Länkar Kom på Kodsnackkväll hos Net Insight Solna business park Vretenvägen Dygma Dygma defy Dygma raise Ergodox och Moonlander Kinesis advantage Moergo glove80 Kaleidoscope - firmware för tangentbord QMK Atreus Keyboardio model 100 Vagnretur Via Bazecor - Dygmas UI för att ställa in tangentbord Accordion för QMK Ben Frain - recenserar tangentbord och har stora händer Hands down reference Hands down neu Dvorak Colemak Gherkin Stream deck Moom Applescript Mission control (och Exposé som var föregångaren) Audio hijack Loopback Fredrik skript som gör Markdownlänkar Cot Sublime text Atkinson hyperlegible Ett exempel på typsnitt optimerat för dyslektiker Bjarne Stroustrup Comic code Comic sans Rainbow parenthesis för Lisp Rainbow brackets för VS code Talon - systemet för röststyrning Cursorless - byggt på Talon Video av Cursoress i aktion Iosevka (Kristoffer kör varianten term SS07) Input Ubuntu mono Bartek och Kristoffer snackar musik PO-33 K.O! Teenage engineering Game & watch Game boy Koala - telefonapp för samplande Weekly beats Kristoffers weekly beats såhär långt M8 tracker Lars Underjord Minidisc Hackbara minidiscspelare Titlar Med reservation för allt Jag har ett nytt tangentbord En arvskedja Konkavitet för varje hand Gräva i snön med händerna Om man har sexton tumtangenter Inåtböjda Trumpfingrar Till och med dasslockshänderna Qwerty på jobbet Muskelminnet från alla layouter Röra pekfingrarna inåt Träna upp dina lillfingrar Tangentbordet tar slut där fingrarna inte är Knappar för lite fönsterhantering En Kodsnackknapp Batcaveknapp Tveksamhetstecken Kodar på en högre nivå En hel familj av tips Jag är inte så kraftfull
23 Tammi 202456min