#92 Felienne Hermans, What is Programming?

Summary
Felienne Hermans has been asking the question "What is programming?", in this podcast she tells me why it is an important question and what she has found out.

Details
Who she is, what she does. Felienne's research into what programming is, why it is important. Her general findings. Excel as an intro to programming, Excel is functional. Programming with kids, code smells, code quality and how it affected understanding. It's hard to see beyond your own bad code. Programming as writing, making it appealing by comparing it to story telling. Transitioning to more formal programming. Programming Sucks article by Peter Welch. Encouraging people to learn programming, how can we help, some home work from Felienne.

Links
Felienne's twitter

Joy of Coding conference

Programming Sucks article by Peter Welch

Download mp3 of podcast

#91 Adam Ralph, NServiceBus, Microservices and SOA

Summary
Adam Ralph talks about the challenges of distributed systems, queues, coupling, and how NServiceBus helps with microservices, SOA and long running processes.

Details
Who he is, being "a white space bigot"; what he does; working for Particular, evangelist and engineer. What NServiceBus is, infrastructure for distributed systems, queues, retires. History of NServiceBus, commercial and free versions. Main reasons to us NServiceBus - abstracts the message transport, retires, deduplication and the fallacies of network computing, insights into the flow of messages, monitoring on the transport system. Publish/subscribe. Sagas for long running processes, saving state, an example of a saga in action, sagas can run infinitely. Loose coupling, "pit of success"; different kinds of coupling - temporal, location, logical. an example of decoupled ordering service, thin events vs fat events, contract coupling, set an id very early. What scale do you need to be at to use NServiceBus. How to get started with NServiceBus. Monitoring what is happening. NServiceBus on containers. Adam is running a workshop in May at Micro CPH in Copenhagen.

Links
Adam's twitter

Micro CPH

Download mp3 of podcast

#90 Kjersti Sandberg and Charlotte Lyng, Norwegian Developer Conferences

Summary
Kjersti Sandberg and Charlotte Lyng of the Norwegian Developer Conference tell me what goes into organizing four major conferences around the world.

Details
Who they are, what they do. A little about how the conferences started. What is the Norwegian Developer Conference; spreading around the world, London, Oslo, Minnesota, Sydney. How they organize the conferences, finding local partners, crew, contractors, quality over quantity. How the conference grew. Balancing the content of the conference to suit attendees, choosing the conference tracks, choosing the speakers, new and established presenters. How NDC attracts the big names. Why attend conferences when there is so much content online. Timeline of a conference, planning starts a year out. An invitation to Minnesota, Oslo and Sydney.

Links
NDC Minnesota

NDC Oslo

NDC Sydney

Download mp3 of podcast

#89 Mark Eisenberg, Breaking the Monolith

Summary
Mark Eisenberg talks about the very long life of the software monolith, when it started, and how we have been trying to escape it since.

Details
Who he is, what he does. What is a monolith, tell-tale signs of a monolith, coupling and decoupling. Why we built monoliths. N-tiers and monoliths. Software is rarely a green field. Were we ever able to swap tiers. Advantages of a monolith, it's familiar. Companies need a visionary to effect change. Risk raises its head. SOA didn't work, client server didn't work, n-tier didn't work. Successful companies went from monoliths to microservices when they needed to. RPC is from the 1960s, are you running one piece of code on one machine or ten machines. How to get off the monolith, find a visionary. Time to respond to a challenge is very short. Microsoft is a good example of a large company changing.

Links
Mark's LinkedIn

Download mp3 of podcast

#88 Aaron Bedra, Threat Modelling

Summary
Aaron Bedra talks to me about threat modelling, why you should do and what to cover.

Details
Who he is, what he does. What is threat modeling and how he approaches it. Types of security, loss of money, loss of life. Should you secure something if it is not valuable. Are we in a post security world? How often your site is attacked. How to decide what to protect. Regulations and breaches. How to protect your system, watch for outgoing data. How to build secure software from the start (it starts with a hug from Aaron!). Hashed passwords are not as secure as you think. Encryption and input validation. How to check third party libraries. Better software practices lead to better security. How much security is enough, "if you are investing more than you could lose, you're doing it wrong".

Links
Aaron's homepage

Download mp3 of podcast

#87 Veronika Kolesnikova, Xamarin and Cognitive Services

Summary
Veronika Kolesnikova talks to me about Xamarin and Microsoft Cognitive Services.

Details
Who she is, what she does. What is Xamarin. What are cognitive services, why so many services; artificial intelligence vs machine learning vs deep learning, training models. He she got started in Xamarin; it's part of Visual Studio, SDKs and testing tools, Xamarin live player debugging on device. Why use cognitive services, examples of use. Types of cognitive services - labs, vision, face, speech, translator, language understanding intelligence service. Should I train my own model. Recommendations API. It started with Bing, how is it to use, examples. People to follow - Paige Bailey, Seth Juarez. Veronika is presenting at Visual Studio Live, Las Vegas.

Links
Veronika's twitter
Visual Studio Live, Las Vegas
Paige Bailey
Seth Juarez

Download mp3 of podcast

#86 Tomas Petricek, Software Correctness

Summary
Tomas Petricek talks about software correctness, its history and future.

Details
Who he is and what he does, his book on F#. Alan Turing Institute. Software as an engineering discipline, software as art. History of errors in software, errors in hardware. Software was never in crisis. Using types to help with correctness, how different languages do it, some complications, a new language would be needed. Upcoming improvements in correctness. Other projects Tomas is involved in.

Links
Tomas' homepage

The Gamma: Tools for open data-driven storytelling

Salon des Refus├ęs 2018

Download mp3 of podcast

#85 Mark Seemann, Dependency Rejection, Part 2

Summary
Part two of a two part recording with Mark Seemann on dependency rejection.

Details
No mocking needed for unit testing, command query separation. Do you still use some DI in impure functions; partial applications, Mark is not a fan of DI containers and doesn't know of any for F#. Are partial functions functional, Haskell keeps its impure functions at the edge, "impure-pure-impure sandwich" sandwich - the origin of the word "sandwich", an example of a translator application, don't lose sight of the other tenets of programming, upcoming conferences.

Links
Mark's homepage

Monoids, semigroups, and friends blog posts.

Mark's upcoming conferences.

Download mp3 of podcast

#84 Mark Seemann, Dependency Rejection, Part 1

Summary
Part one of a two part recording with Mark Seemann on dependency injection and rejection in F#.

Details
Who he is, what he does. The new video site. Used to earn from C#, now earns from F# but would like to earn from Haskell; how much dev is going on in F#. Dependency rejection; side effects, purity and determinism. Impure functions. Pure and impure calling each other. Dijkstra, abstractions and monoids.

Links
Mark's homepage

Download mp3 of podcast

#83 Steve Elliot, When to Rearchitect

Summary
Steve Elliot, CEO of Agile Craft talks to me about re-architecting software, why it should be done, when to do it, and how to do it well.

Details
Who he is, what he does. When to re-architect, monitor usage patterns, out of date ui, spaghetti code, ratio of bug fixes to new code, not mobile enabled, difficulty recruiting, market opportunity. Making a decision, who gets a say. How to measure success on a long-term project. Practical steps for moving to new architecture. What to start with, easy or hard pieces; what to do next; how to keep the old system going. What about people who don't want to learn new things. Dealing with remote offices. How to keep the project on track and the momentum going.

Links
Agile Craft

Download mp3 of podcast