by clemens (26.03.2024)

Elixir development using Podman with VM in Parallels and Shared Folders

Edits

April 17: Fixed an error with the nginx config for use with LiveViews

Motiviation

So recently I’ve wanted to give containers for development another go, but this time instead of using docker for Mac and it’s very slow file sharing to the containers give podman a try, since we are also using podman in production.

While the default mechanism using
podman machine to run containers on Mac did in fact work out fine, and sharing my local development folder with the containers worked fine, it also proved to be a rather slow experience. That wasn’t a realy surprise given that podman machine uses QEMU in the background.

However what got me thinking is that podman remote allows us to use any arbitrary Linux machine as the backend, so shouldn’t it be possible to use a VM in Parallels instead?

This turned out to be possible, but a little bit complicated to setup, so what follows is a (hopefully) complete guide to setting this up.

by kiru (09.05.2023)

PostgreSQL: Does Removing Materialized View Remove Triggers?

I did not find an easy answer via Google for the question in title, so I did a small experiment. In short: NO, you have to remove the triggers by hand. Read further to see how.

by clemens (03.03.2023)

Using the power of macros for consistent authorization

Recently we had to implement user authorization for one of our apps. In that app a user can belong to many different projects, and users should only ever be able to modify a project if they are also a member of that project.

In our use case the authorization needed to be implemented right in the context modules, i.e. each function that requires authorization needs to be passed the user that should perform the operation and the project the operation is performed on. So let’s try to build this, and maybe we’ll find an actual nice use case for a mini DSL for the first time 😊.

by clemens (09.02.2023)

Catching (probably all) email SPAM with a really tasty honeypot

We recently launched one of our projects for a customer of ours where onboarding of new users is to be done manually. So there was a requirement that there should be a very simple sign-up form on the landing page where interested users can enter the email and they will then be contacted by the customers support team.

By the way, you should really check the project out. It’s a really novel way for taking notes, organising your knowledge, your ideas and most importantly visualising the often really complex relations between all those arguments. While at the same time keeping it simple with the option to dive deeper if necessary. Anyway, it’s called Logo Dynamic Cards and you can take a closer look at ld-cards.com.

by clemens (29.09.2022)

Multiple Phoenix Instances on Single Server Can Cause Crashes on Upload

I’ve recently encountered a problem with running multiple Phoenix application on a single server. On installation of a new application that was using Phoenix Live Uploads I was unable to upload files to the server, although everything was working in development locally.

by clemens (01.11.2021)

One way to handle static asset files in Phoenix 1.6

So I’ve recently upgraded one of our projects to Phoenix 1.6. While I was at it, I’ve also replaced the legacy webpack pipeline with the new default esbuild pipeline. One problem I’ve stumbled across when recreating the new layout for static files, i.e. all static files simply are put directly into the priv/static folder, was that it is now easy to accidentally commit digested files when running git add .; git commit because those files are no longer ignored by git, only the files in priv/static/assets are.