nothing quite like a green field No images? Click here If your company is hiring for Elixir and need help sourcing great candidates or you want a reliable contract Elixir dev. Respond to this email and we can talk. Railway programming?I made two or three PRs to ash_authentication during my train-ride to Berlin. That felt good, felt nice. Part of it is that I feel really accomplished when I can improve something that other people use and solve problems people have not run into yet but are bound to hit later. Another part is that I can upstream the fixes to my problems. It was one of those moments where I had to dive into library code to fix my problems. If you want one lesson about programming from this newsletter, it is to read and understand the library code whenever it misbehaves or gives you grief. You can find so much leverage this way. I have a new client taking up some of my time with a very unusual approach to green field development and so far I really like it. I'm building towards a prototype for them but the goals is also to research the feasability of the larger idea within the Elixir ecosystem, find out what is missing, what could be built out, what is inconvenient to work with. A true prototype in that the research is as important or more important than the specific software. The software prototype has a purpose (as per usual, securing funding) but the process is important. This client is also pretty happy with me publishing things about the journey. Expect more on this. So I've been making sure Ash can authenticate with Google over OAuth 2.0 and learned a bunch about that along the way. I've been poking the intersection between Goth (Google auth library) and what ash_authentication actually produces. And I've been exploring some Google APIs. This was another moment of poking under the covers and figuring out how a library ticks. I couldn't believe the Google API I was going to be poking didn't implement a particular endpoint. Looking at examples it seemed like it definitely does but it was missing in the Elixir client. The instructions for regenerating an API client took me most of the way there. If I didn't scratch the surface I would have been stuck. The fabulous thing about open source is that you can very often unstick yourself. Elixir is the only ecosystem I've consistently done this in. If you've never tried it, this is what you do:
After a while you can enjoy the feeling of changing the dependency to the normal released version again as your fix has been integrated. With Elixir I find all this easier than anything I've done before. There is a standard way projects are built. There is not a ton of variance and usually you don't need a bunch of odd build deps or anything. Later y'all, I need to do a small spike on how hard it is to generate Google libraries.. Do you go into library code to understand? Have you ended up fixing libraries you rely on? If not, why not? You can reply to this email or poke me on the fedi @lawik@fosstodon.org, I enjoy hearing your thoughts. Thanks for reading. I appreciate your attention. |