I hacked on something quite useful in the last few weeks, off and on. Voice Activity Detection in Elixir with Silero VAD through ONNX. I’ll show what I did and try to give an idea of what it is and why it is useful. It boiled down to this gist as a proof of concept. Should work o … | Continue reading
What feels like forever ago but what was probably a year and a half I gave a talk about Lively LiveView with Membrane. Video is available for the curious. It was a stunt talk but also a talk about creativity and how Elixir let’s me plug things together and try things that feel ma … | Continue reading
One of the Erlang ecosystem’s spiciest nerd snipes are hot code updates. Because it can do it. In ways that almost no other runtime can. I use Elixir which builds on Erlang and has the same capabilities. The standard way of doing Elixir releases via mix release does not support E … | Continue reading
Working on the Nerves project, the Embedded framework for Elixir, has given me an increased appreciation for how Frank Hunleth and his collaborators through the years have structured things. And while I’ve found crossing into the Linux-heavy part of it difficult and frustrating t … | Continue reading
The Nerves project is a way of building embedded Linux devices where the BEAM virtual machine takes care of running things. This does not constrain what you can run in any significant way. The easiest way to think of it is as a replacement for systemd. Though it is not only that. … | Continue reading
I adore Nerves. I recently joined the core team. And I’ll be doing my best to help people get along with this lovely way to co-mingle hardware and massively concurrent reliable software. Getting started Assuming you have a comfortable Elixir & Erlang installed, preferrably the mo … | Continue reading
I’ve kept very busy recently and as I look at what I published last it has clearly kept me from blogging. I don’t love that. I like having a blog and I like tending to it. I’ve not missed a beat on the newsletter’s weekly cadence but that might not be your jam. Let’s catch up. I’ … | Continue reading
My newsletter-provider Campaign Monitor (not a recommendation, they are .. fine I guess) are having an outage. And I’ve been on an unbroken publishing streak for the newsletter for a significant number of years. Probably 4, I could check but can’t log into Campaign Monitor. So th … | Continue reading
Fly.io is a highly visible cloud provider in the Elixir ecosystem and they put forward an interesting promise. They don’t deliver on that promise currently but I think it would be very compelling if they get there. Especially for Elixir. Let’s dig in. This work is sponsored and s … | Continue reading
I went to Chattanooga in Tennessee from Sweden to hang out with the Elixir community. I’ve been part of Elixir in various ways for 6-7 years now and this is the first time things have lined up and I could go to the US for a conference: I had a sponsor for the trip. I was offered … | Continue reading
In this part of the series we dive into one of the frameworks and toolsets that really got me going with both Elixir as a hobby and the community as a space full of helpful people. This will be all about The Nerves Project, oh, and touch on some related stuff. Before we dig in I … | Continue reading
I did a livestream where I talked about Object Storage. The how and the why. The Bad Old Days. And also the neat and interesting stuff just beyond the basics. I figured I’d cover that in text as well. You can watch the stream here. Transparency notice: The livestream and this blo … | Continue reading
TLDR: the tricky part is “Large”. “Language” and “Model” seems manageable. But largeness has all sorts of trouble associated with it for mobile devices. Not insurmountable, but challenging. Also makes for finicky development. To start off, I am not an AI expert. I am not an ML en … | Continue reading
In this series I’ve been unpacking various facets of Elixir. Mostly this has meant trying to explain Erlang and the BEAM through the lens of Elixir. Now we are moving into the domain of the web framework. This is where I dare say that Elixir has much more to say than Erlang. Erla … | Continue reading
This series covers a lot of fundamentals about the underlying BEAM VM and Erlang as consequence of covering Elixir fundamentals. A lot has been said about The Actor Model when it comes to Erlang. That’s kind of funny. Because the only thing that as a matter of terminology should … | Continue reading
Elixir supports the usual supects of observability. Open Telemetry (OTel), log handlers, capturing metrics. And it does it well. This post will mostly focus on the observability you have on the BEAM that is either incredibly rare to see elsewhere or possibly entirely unique. The … | Continue reading
The nine nines. 99.9999999% of uptime. Whether the AXD301 actually deserves to be held up as a system of nine nines seems debatable. I am not particularly interested in that debate. Erlang has a strong record for reliability and a design intended to help you as a developer and op … | Continue reading
Elixir was built on Erlang. Erlang was built to provide “consistently low latency” and a few other audacious goals. Note, this is not a hard realtime constraint. It is soft, squishy and yet, important and real. It makes Erlang unusually suitable to systems where latency matters a … | Continue reading
Elixir is a language with syntactical roots in Ruby. It also carries the Erlang legacy. Legacy used here as in “a great legacy” and not as in “system you don’t like anymore”. Ruby is an object-oriented language. Elixir is functional language. The Erlang part has an impact as Elix … | Continue reading
Elixir is the thing I do most of my public writing and speaking about. It is my default programming language for the last 5-6 years. It suits my brain. Performs well for the kind of work I typically do. And using it I have experienced very few drawbacks. Rather than writing yet a … | Continue reading
We of the blessed church of Functional Programming pride ourselves on our immutability, purity and lack of noxious side-effects. We do not mutate the state. We only produce new and better state. Deterministic state. Correct state. The best state. Except that I work in Elixir. Eli … | Continue reading
I was a Python developer for some time and one great joy of Python is that you have an expressive language that you can use for your serious apps as well as for your hacky little one-off script or bespoke pieces of automation. By expressive I mean that typing very little can give … | Continue reading
Another question might be; why do machine learning at all? I’m not big into ML/AI though I’ve been poking it more recently as the open models, such as Stable Diffusion and the more practical Whisper, caught my curiosity. I have a very decent GPU (3090 Ti) and I’ve poked around a … | Continue reading
Last week I attended ElixirConf in Portugal and had a lovely time. I’ll try to capture my experience of the conference here in this post. For me and for you. The last ElixirConf I visited was Prague in 2019. Pre-pandemic. I had just gotten into Elixir and kind of decided that I s … | Continue reading
Not every thought needs to be a blog post. Some ideas are more fun in a more personal setting. I write quite a bit and some of it goes to the blog here. But I also write every week for my newsletter. So if you enjoy my writing and the sentiments I share here I would recommend try … | Continue reading
I like production gear. Audio, video and .. miscellaneous. I like things that seem like they’ll make me oh-so-very productive. I’m a sucker prosumer as a hobby. Let’s talk about Elgato, Elixir and why I never actually get anything done. This is unfortunately not sponsored by a pr … | Continue reading
Are computers really all about queues? At some level. Probably. function switch_video(element) { var src = element.getAttribute("href"); var video = element.parentElement.querySelector("video"); var sources = video.querySelector("source"); video.pause(); sources.setAttribute("src … | Continue reading
I share my reactions to the Phoenix keynote at ElixirConf 2022. function switch_video(element) { var src = element.getAttribute("href"); var video = element.parentElement.querySelector("video"); var sources = video.querySelector("source"); video.pause(); sources.setAttribute("src … | Continue reading
A short video on databases. function switch_video(element) { var src = element.getAttribute("href"); var video = element.parentElement.querySelector("video"); var sources = video.querySelector("source"); video.pause(); sources.setAttribute("src", src); video.load(); video.play(); … | Continue reading
Code has always been about creative pursuit for me. This video showcases Sonic Pi. It is an open source project that I really appreciate. Sonic Pi enables live coding of music. If you are already a programmer it can turn your hard-earned, often dry, programming capabilities into … | Continue reading
A short video on the importance of terminology in computing. function switch_video(element) { var src = element.getAttribute("href"); var video = element.parentElement.querySelector("video"); var sources = video.querySelector("source"); video.pause(); sources.setAttribute("src", … | Continue reading
TODO intro function switch_video(element) { var src = element.getAttribute("href"); var video = element.parentElement.querySelector("video"); var sources = video.querySelector("source"); video.pause(); sources.setAttribute("src", src); video.load(); video.play(); return false; } … | Continue reading
As part of running Underjord I’ve done both mentorship and some teaching. Both in the form of a working relationship where I have seniority and am responsible for supporting their learning as well as mentoring entirely external people of varying experience levels. I find it incre … | Continue reading
Slack, Teams, teamchat. We all use them in our jobs. It is unclear whether that’s even legal. I wanted to present one of the more well-known open source options and how to get started with it. This video is a collaboration with GleSYS. Keep them in mind for your cloud and data ce … | Continue reading
I’ve been thinking about shared experiences: culture and tradition. As the seed of this was written close to the holidays, it might be that they are to blame. But this post isn’t about Christmas or the new year; it’s about my reflections on these human matters and how they apply … | Continue reading
In this very serious video I will tell you exactly how you must build your products. Actually, I’m just outlining the tools I’d typically look at and consider right now. I hope you enjoy. I rather like the intro personally. Also on YouTube. function switch_video(element) { var sr … | Continue reading
A video on doing LiveView with Nerves and having fun with input devices. Published as I finish up my backlog of publishing all my videos to my site. It should calm down now. This was also more thoroughly covered in text in this post. function switch_video(element) { var src = ele … | Continue reading
This video covers the steps to set up Plausible Analytics. Previously published on YouTube and part of me catching up on site publishing :) function switch_video(element) { var src = element.getAttribute("href"); var video = element.parentElement.querySelector("video"); var sourc … | Continue reading
Out of freak fortune I haven’t significantly used React. This was an experiment in just diving in and trying to use it. Be warned, if you know React it might hurt. Let me know you like it. This video has been on the YouTube channel for some time but I’m catching up on the transco … | Continue reading
A video explainer on what Phoenix LiveView is. Published late to this site, has been up on YouTube for some time. I’m catching up :) function switch_video(element) { var src = element.getAttribute("href"); var video = element.parentElement.querySelector("video"); var sources = vi … | Continue reading
A video on why you should consider hosting your own services and data. Especially in the current EU legal landscape. Created in collaboration with GleSYS, a swedish data centre and cloud provider. This video lays the explanatory groundwork for a series of guides for setting up so … | Continue reading
I started writing this on the train home from Code BEAM. It’s an Erlang, Elixir (and BEAM in general) conference put on by Code Sync which is part of Erlang Solutions. It was a hybrid conference, I was there entirely in person. It was a very good time. “Isn’t Underjord Just You?” … | Continue reading
I’ve had Gerhard Lazu on my livestream once where he showed me a way of doing CI/CD with k3s and ArgoCD. The podcast Ship It! that he hosts on Changelog recently had Kelsey Hightower on. Kelsey is to many this guru of the cloud native and Kubernetes space. I’ve had good value fro … | Continue reading