challenges and enthusiasm No images? Click here ![]() Latest stuffAbout What Every Web App Needs [..]An odd episode title for us but probably a fun episode? My mind was chewing on Zach Daniel's pitch from ElixirConf for the Ash framework. Andreas had to join me on that ride and with his experiences from Django that makes for a conversation. Zach Daniel was also on BEAM Radio recently. Regular Programming, episode 47 Jenny Bramble Talks Testing I had super fun in this conversation and I tried to sit back a decent bit as Meryl brings major energy to the pod and she went off together with Jenny. I hope y'all enjoy. Good energy, good talk on quality and testing. Me in Swedish on KodsnackIf swedish works for you I was also on Kodsnack as Fredrik invited me to share my reflections from Code BEAM EU in Berlin. The artwork for the episode is worth looking at even if you can't do swedish. New groundTwo weeks ago I was in Berlin hearing Chris Grainger talk about using ML embeddings and a vector database to find document similarities. This was an eye-opening thing for me in understanding some of why people are all hype on vector databases right now. And today I'll be experimenting with it a bit for a client prototype. New ground for me. I really like taking on new things that still feel mostly within my reach. Embeddings seem very useful, even beyond AI/ML and RAG (Retrieval Augmented Generation). There is a more comprehensive exploration here by simonw if you want to catch up on it. Essentially using a statistical "understanding" of language to map traits of text into useful mathematical values (vectors with tons of dimensions in this case) and lump them together in a database/vector space. Then you can actually do weird stuff with them like use a bit of text to find other related texts in the in the vector space. Or group them by significant traits. You can also generate descriptive labels since the vectors overlap due to word relationships. It's all wild and interesting and does not require the massive LLMs you usually hear about. The project I'm doing with this client will probably involved LLMs soon enough. The biggest reason to involve them would be for the types of purposes I think they are quite useful for. Summarizing, distilling meaningful parts from unstructured text, such as in a chat. It'll be interesting. I've also poked about with a bunch of APIs, in this case a bunch around Google Chat which I hadn't touched before. Chat is always fun to build with as a developer and I've given talks about it in the past. There is something kind of magical about using APIs to interact with services you use day-to-day like Google Docs for example. Having your application put things in a document feels like a particular kind of witchcraft. This lead me to look into library generation which I haven't dealt a ton with. I ended up threading about it on Mastodon. The Elixir Google API libraries aren't great in my eyes. They generate a lot of modules and the API they expose absolutely does the job but is not particularly nice. GoogleApi.Chat.V1.Api.Spaces.chat_spaces_create/2 is just a lovely bit of name-spacing. So I've spent some time exploring and tinkering with that. I could see some alternative approaches. And I continue to go deeper in the Ash framework and that continues to be an interesting and mostly productive journey. I got tripped up for real on how I could hook in PubSub and it turns out there is an implementation. Finding the right piece of documentation was 10x more work than getting it to work. With another client I've been tightening up some kind of messy logic and structuring things with just a little bit of meta-programming and a lot of JSON Schema and OpenAPI. That has also been rewarding work. I am really enjoying work right now, both on this and other projects. I'm stretching my legs. Have you extended yourself into something new recently? How did it treat you? 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. |