Ryan Frazier concludes his 11-chapter monumental work on writing a calculator in Elm. The last chapter describes how to deploy your code to Netlify, a hosting service provider for static websites.
Imagine the other day you read an interesting article, a discussion, or maybe a scientific paper. And it was talking about some interesting concept that you liked and wanted to explore a bit further. What would most of the people do? Well, probably nothing. Some would make a mental note, some would bookmark it. I like how Alex Korban proceeds to experiment with some of the ideas he picks from community and explores the topic further. He has recently written an extensive post about using phantom types for compile-time constraints. Unrelated to Elm, but explorations like these remind me of another very interesting person: Michael Fogleman who has a myriad of mesmerizing open-source projects on his homepage.
One might argue that Jupyter notebooks is one of the main reasons to Python being extremely popular programming language among data scientists. You can share interactive programs that can run in browser. There's also Observable built by the author of D3, and open-source Iodide by Mozilla. Turns out there is a project created by Alexander Kachkaev that attempts to do something similar. Here he gives a talk about it:
When WebRTC became a reality, one could build a web-conferencing tool oneself without hiring C or Elixir engineers to create custom codecs and servers. If you ever wondered how to build your own video chat then take a look at Elm-allo.
What is the secret sauce that produces discussions like that? Is it because functional programming is deeply rooted in maths? Or just the Elm community is small that these discussions are visible? Here, Michael Greenberg discusses approaches to building a better browser-based REPL for lambda calculus. The real gem in the discussion is a bunch of links that Michael shared on programming language theory and lambda calculi.
Remember the extensible records I mentioned last week? It is a type that has at least certain fields. Sort of like a base class that you would write in object-oriented language. So what's the deal with them again, you ask? It's just sometimes when you want to apply a general function on them, the compiler might get lost and need a little help from the programmer.
Before diving into the language and using it for your next project only to later get disappointed and regret the decision, take a look at what Elm is not useful for.
Quote of the week
What the pupil must learn, if he learns anything at all, is that the world will do most of the work for you, provided you cooperate with it by identifying how it really works and aligning with those realities. If we do not let the world teach us, it teaches us a lesson.
By Joseph Tussman