Whether you need mobile development, the latest machine-learning know-how, or just want to take advantage of the scalability, stability, and concurrency benefits of Phoenix and Elixir, DockYard can help. Get in touch today to learn how we can help you reach your goals.
Over the past year, DockYarders have covered topics ranging from machine learning to Elixir best practices and ethical product strategy.
With the end of 2023 fast approaching, we’re taking a look back at some of our most popular posts from the past 12 months. Here they are:
1. Open-Source Elixir Alternatives to ChatGPT
After the rapid rise in popularity of large-language models like OpenAI’s ChatGPT, Sean Moriarity took a look at some open-source alternatives using Nx and Bumblebee.
Open-source LLMs offer better data privacy control and improved latency, and can handle specific tasks better than the one-size-fits-all LLMs like ChatGPT. In this post, Sean walked through a handful of the open-source LLM options available in the Elixir ecosystem and showed how to get started using them.
2. ECSx: A New Approach to Game Development in Elixir
In this post, DockYard Engineer Andrew Berrien debuted the ECSx framework, the first framework for game development in Elixir.
Traditionally there have been several hurdles to game development in Elixir; chief among them was a lack of game-oriented frameworks and libraries. With ECSx, Andrew solved that.
ECSx aims to make development fast and simple by, in part, providing generators for creating all the files you need for a back-end server. Paired with LiveView for front-end development, ECSx makes it easy to develop a game entirely in Elixir.
3. Introducing EXGBoost: Gradient Boosting in Elixir
In the three years since it debuted, Nx has steadily closed the gap between Elixir and Python when it comes to machine learning capabilities. One of the largest gaps remaining in 2023 was an Elixir library for implementing decision trees.
EXGBoost filled that gap. In this post, Sean Moriarity explained what gradient boosting is, why it’s a useful tool, and how to get started using EXGBoost.
4. Audio Speech Recognition in Elixir with Whisper Bumblebee
Bumblebee was introduced in late 2022, adding a library for working with pre-trained models directly in Elixir. In the months that followed, improvements were made to the usability of existing models, including support for Whisper. Whisper is a deep-learning model trained on almost 700,000 hours of audio data.
With Whisper and Bumblebee you can get a written transcription from an audio file. In this post, Sean Moriarity explains what Whisper is and how to get started using it with Bumblebee for audio-speech recognition capabilities.
5. End-to-End Machine Learning in Elixir
Oftentimes, developers used to working with other systems besides Elixir might find themselves looking for a library to solve a specific problem. With Elixir, those libraries often don’t exist simply because the need is solved inherently in the way Elixir is built. That makes Elixir a powerful tool to simplify your app’s stack, which has scalability and performance benefits down the line.
In this post, Sean Moriarity walked through how to build a scalable machine-learning application with automatic retraining, labeling tools, and other features.
6. Semantic Search with Phoenix, Axon, Bumblebee, and ExFaiss
In 2022, Sean Moriarity demonstrated how to create a semantic search tool with Elixir, Phoenix, Axon, and Elastic. In the months following that post, machine learning capabilities in Elixir grew rapidly, in particular with the addition of the Bumblebee library.
In this post, Sean Moriarity updated his previous post, showing how to create a similar semantic search tool using Phoenix, Axon, Bumblebee, and ExFaiss. Semantic search is a powerful machine learning tool that opens up the capability for an app to understand complex relationships in natural language.
7. The Road Toward LiveView Native v0.2 Part 1
In this post, DockYard CEO Brian Cardarella discussed one of the major hurdles that remained before LiveView Native v0.2 could be released. Namely, he discussed the challenge of representing the SwiftUI modifier system in LiveView Native:
“Two key assumptions I had when we first began this effort were that we would be able to map SwiftUI views to markup “elements” and we’d be able to style those elements with element attributes. I was 50% correct,” he wrote. “It’s that 50% I was wrong about that has taken us so long…”
8. How to Add Feature Flags in a Phoenix Application Using fun_with_flags
Feature flags can enable or disable a feature at runtime without deploying code. They can be a useful tool when something goes wrong: Say a development team pushes a feature to production, but it ends up falling short of user expectations. With a feature flag, the team can simply turn that feature off without impacting the rest of the app.
In this post, DockYard Engineer Syed Murtza walked through how to add feature flags to a Phoenix application with the
fun_with_flags
package.
9. Search and Clustering with ExFaiss
In this post, Sean Moriarity demonstrated how to use the Faiss library in Elixir with the ExFaiss library. With ExFaiss you can take advantage of the many applications of machine-learning-based similarity searches.
Vector search has become significantly more powerful with the rise of transformer models and, with ExFaiss, it’s now simple to implement a vector-search tool into your Elixir app.
10. The Road Toward LiveView Native v0.2 Part 2
In this post, Dockyard CEO Brian Cardarella concluded his two-part series on the major hurdles preventing the release of LiveView Native v0.2. In this post, he discussed how our team is approaching the best way for LiveView Native to integrate with Phoenix.
“We had at first thought about working within the constraints of Phoenix and LiveView by not requesting upstream changes, but as the project matured it became clear that we’d need certain changes and have advocated for several changes in both Phoenix and Elixir,” he wrote.
Conclusion
Thank you for spending your time with us over the past 12 months and keeping up with the latest in Elixir, product strategy, and digital product development. We hope you have a fantastic end to your 2023 and a happy New Year.