Sign in

Dr. Christian Geuer-Pollmann

@christian.geuer-pollmann.de
679 followers 363 following 157 posts

Principal Engineer working on @Azure, security & cloud architect, Apache Committer, DG5EAW, genserver.social/chgeuer. Private account. #ElixirLang. Archive bsky.app/profile/chgeuer.bsky.social

PostsRepliesMedia
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 17/03/2026
Added two commands (running / discover) to github.com/chgeuer/phx-port phx-port discover — pops open a browser with a pick-list of running apps. Click one, it redirects you there and shuts itself down.
Screenshot of phx-port's ephemeral site
020
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 17/03/2026
Been hacking on an Elixir port of Karpathy's autoresearch — an LLM agent that designs and trains GPT models autonomously, overnight. Turns out the BEAM is (unsurprisingly) a natural fit: hot code reloading for experiments, multi-GPU fault tolerance, LiveView to watch it think.
screenshot from the LiveView app
1101
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 17/03/2026
Found the time to publish an Elixir LiveView app that allows you to run Github Copilot sessions in the browser and see the full fidelity about tool calls. And review previous sessions. And backup sessions. And continue. And Claude, Codex, and Gemini github.com/chgeuer/copi...
Screenshot of https://github.com/chgeuer/copilot_lv
130
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 17/03/2026
Needless to say that github.com/chgeuer/copi... allows me to sync all sessions that jido_symphony runs and see/inspect what's happening under the hood.
Screenshot from https://github.com/chgeuer/copilot_lv that allows me to see what https://github.com/chgeuer/jido_symphony does on the LLM side, including all tool calls
011
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 17/03/2026
Last week (when OpenAI's symphony came out), I thought: Replace github with local git, replace Linear with Beads, and slap some Phoenix Liveview on top. Well, and some Github copilot and @mikehostetler.bsky.social Jido github.com/chgeuer/jido... #elixirlang
Phoenix liveview UI of Symphony running a "recreate x.com in Phoenix LiveView" loop
140
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 06/03/2026
A simple CLI tool to make Excalidraw SVG exports theme-aware (supporting automatic light/dark mode) and transparent github.com/chgeuer/excalidraw_themify
before and after screenshots
020
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 05/03/2026
Just put "PORT=$(phx-port)" into your run scripts and never thing about the friggin port again
000
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 04/03/2026
This is a better visualization how the beam-introspection skill worked
Screenshot of bash sessions of the LLM using the BEAM introspection skill to figure out which Erlang processes have most reductions.
010
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 04/03/2026
And ... fixed
110
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 04/03/2026
"My live view process is stuck. Use beam introspection to figure out what problem I'm having here in this application." This indeed figures out the 15.7 billion reductions itself and makes my laptop fan cool down again.
120
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 14/01/2026
Having a distributed Erlang/Elixir cluster with Erlang distribution running over Azure Relay Hybrid Connections, not too shabby. Allows me to do cross-site clustering without Wireguard etc. #ElixirLang #Elixir #Erlang
260
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 02/10/2025
Was wondering why @arvidkahl.bsky.social switched from #elixirlang to PHP, got the answer in the most recent podcast episode. Despite my big appreciation for Elixir and Phoenix, certainly understand the reasoning from a founder perspective. thebootstrappedfounder.com/the-ownershi...
The Technology Choice That Haunted My Exit

Let me tell you a story that really drove this home for me. I had this technology choice problem with my previous business that I sold, Feedback Panda, which was built on top of a rather rarely seen web server called Phoenix in the Elixir programming language. And that, in many ways, quite limited who would be able to buy our company or buy our product, because they would have to have an Elixir engineer.

Whereas everybody has access to many, many PHP and Ruby and JavaScript engineers, Elixir engineers are still in high demand, and the engineers that can work with this technology have spent many years figuring it out—they are more expensive than others. So in a way, that choice probably precluded us from several buyers, potential buyers, just by the mere tech choice that we made.

Even though we had this wonderful application that we thought we owned, when somebody asked, “Well, can I buy it from you? What tech do you use?”—your ownership, not just in terms of the software, the code itself, but also the decision of which code to write, matters tremendously.
220
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 25/09/2025
@dhoelzgen.dev showing @ash-hq.org goodness at the Elixir Ruhr meetup
1132
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 21/09/2025
BTW, I just installed Erlang globally (otp_win64_28.1.exe) from erlang.org, and that also works without issue. I believe something in your local environment is mixed up... Both user-directory installation (and global machine-wide installation with spaces in path) work without an issue.
010
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 21/09/2025
Error code 5 looks like some sort of access permission issue. I like to install Erlang/Elixir via the the scripts from elixir-install.org, no hassle. Anyway, if the problem persists, you might also give livebook.dev a shot, notebooks where you can have Erlang code cells as well.
C:\Users\chgeuer
λ dir fun_test.*
 Volume in drive C is C
 Volume Serial Number is 72BC-3429

 Directory of C:\Users\chgeuer

21.09.2025  10:35                50 fun_test.erl
               1 File(s)             50 bytes
               0 Dir(s)  1.044.067.782.656 bytes free

C:\Users\chgeuer
λ which erlc.exe
/c/Users/chgeuer/.elixir-install/installs/otp/28.0.1/bin/erlc.exe

C:\Users\chgeuer
λ erlc.exe fun_test.erl

C:\Users\chgeuer
λ dir fun_test.*
 Volume in drive C is C
 Volume Serial Number is 72BC-3429

 Directory of C:\Users\chgeuer

21.09.2025  10:37               588 fun_test.beam
21.09.2025  10:35                50 fun_test.erl
               2 File(s)            638 bytes
               0 Dir(s)  1.043.897.606.144 bytes free

C:\Users\chgeuer
λ type fun_test.erl
-module(fun_test).
-export([t1/0]).
t1() -> 1.

C:\Users\chgeuer
100
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 20/09/2025
Looks different via Google AppStore, but they also had a text box 🤓
120
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 16/09/2025
Did a small update, based on excellent suggestions from Wojtek Mach
Now using plain function for updates.
010
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 16/09/2025
Did a small update, based on excellent suggestions from @wojtekmach.bsky.social Thanks a ton!
defmodule Calculator do
  use ReactiveStruct, 
    allow_updating_computed_fields: false

  defstruct ~w(a0 a b sum product)a

  computed(:a, fn %{a0: a0} -> a0 + 1 end)
  
  computed :sum, fn %{a: a, b: b} -> a + b end
  
  computed :product, fn %{a: a, b: b} -> a * b end
end
010
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 15/09/2025
Here'a a little #elixirlang library prototype for having plain old Elixir structs (POCOs, but POESs). No GenServers, just immutable data structures. Use at your own risk, and check-out the @livebook.dev here: github.com/chgeuer/reac...
Elixir code:

defmodule Chain do
  use ReactiveStruct
  defstruct ~w[base step1 step2 final]a

  computed(:final, deps: [:step2], do: step2 * step2)
  computed(:step1, deps: [:base], do: base * 2)
  computed(:step2, deps: [:step1], do: step1 + 10)
end

chain = %{final: 256} = Chain.new(base: 3)
chain = %{final: 400} = Chain.update(chain, base: 5)
1143
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 15/09/2025
I need an Elixir library to have properties on a struct transitively automatically updated, when other properties change. Is there already something (yes, I know, @ash-hq.org has calculated fields). Just wanted some POES (plain old elixir structs) 😐 #elixirlang
Elixir code

defmodule SomeStruct do
  use ReactiveStruct
  
  defstruct ~w{x2 x3 x ya yb y sum}a

  computed(:y, deps: [:ya, :yb], do: ya - yb)
  computed(:x, deps: [:x2, :x3], do: x2 + x3)
  computed(:sum, deps: [:x, :y], do: x * y)
end

SomeStruct.new(x2: 2, x3: 3, ya: 4, yb: 5)
|> IO.inspect(label: :a)
|> SomeStruct.update(x2: 10)
|> IO.inspect(label: :b)

Kino.Mermaid.new(SomeStruct.mermaid())

and a Mermaid diagram
6155
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 09/09/2025
On my way to #goatmire DUS-CPH… Looking to meet many Elixir and Erlang folks
171
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 04/09/2025
Giving Claude a little module to party in is working nicely, also codified in usage_rules.
defmodule Claude do
  def sample_function do
    # You can call this from bash using the command
    #
    # $ mix run -e "IO.inspect(Claude.sample_function())"
    #
    # It should output
    #     {"Yeah", :stuff}
    {"Yeah", :stuff}
  end<!-- usage-rules-start -->
<!-- usage-rules-header -->
# Usage Rules

## Running own sample code

The file `lib/claude.ex` contains a module where an agentic system like Claude 
can store own debug functions. 
You can add own functions, like `def foo, do: "Hello"`, and within the shell, you can call

```bash
mix run -e "IO.inspect(Claude.foo())"
```

which should give you the result on the console.
041
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 03/09/2025
Wow… cnascorecard.org/cna/cna-deta...
SCOPE:
Vulnerabilities in active packages hosted on Hex.pm, and in active projects hosted under the GitHub organizations @elixir-lang, @erlang, @erlef-cna, @erlef, @gleam-lang, and @hexpm, unless covered by the scope of another CNA.
CNA ID:
CNA-2025-0023
121
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 03/09/2025
Slowly making progress, doesn't look too shabby
A LiveBook calling into DNSimple to fetch records.

DNSimple.Ash.Domain.list_zone_records_for_zone!(
  "geuer-pollmann.de",
  query: [
    filter: [type: "A", name_like: "shel"], 
    sort: [name: :asc],
    #limit: 5
  ]
)
|> Enum.map(&{&1.name, &1.content})
050
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 11/08/2025
Journalists… or propaganda officers?
000
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 11/08/2025
All these journalists…
110
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 10/08/2025
Wrote a small library to play with rendevouz hashing, similar to HCA Healthcare's Project Waterpark from @bryan-hunter.bsky.social , and a visualization in @livebook.dev to show actor placement and replication across the cluster, based on the ID of the patient (or actor) @elixir-lang.org
22811
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 24/02/2025
Mint WebSocket seems an interesting alternative
000
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 17/12/2024
That websocket is indeed cool, tried to integrate with LiveView and Google Maps
110
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 16/12/2024
That's a fun API, thanks for sharing... also from Kino
110
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 06/12/2024
Seems the GIF in the previous post doesn't work, so here's a screenshot
Screenshot of the Smart cell for web sockets
010
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 05/12/2024
kino_websocket, a small #elixirlang library for LiveBook with a smart cell containing in interactive websocket client ... github.com/chgeuer/kino... Yes, I'm not a frontend guy, my JS skills suck 🙄
A quick demo of the websocket smart cell.
150
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 22/11/2024
Morning stand-up
000
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 21/11/2024
Created a little #ElixirLang igniter task to enable TLS with certificates on Phoenix projects. Not yet fully customizable, but codifies 20 steps into a single command... github.com/chgeuer/igni... /cc @zachdaniel.dev
0173
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 09/10/2024
Sonnenblumen-Kerne gehen steil
Tauben, die auf unserem Balkon Sonnenblumen-Kerne anpacken.
000
Dr. Christian Geuer-Pollmann @christian.geuer-pollmann.de · 23/08/2023
Die Schnelltests für den Herbst sind da, die Masken waren nie weg. Aber wie läuft das jetzt mit Impfung, wenn man unter 60 ist? Als nicht essentieller Arbeiter mit Bullshit-Job wird das wohl nix 😬
040