Sign in

Christopher Grainger

@cigrainger.bsky.social
1.2K followers 206 following 80 posts

Here for the #Elixir #ElixirLang. Dabbling in PL stuff. I guess Datalog now?! Founder at [Amplified](https://amplified.ai). He/him

PostsRepliesMedia
Reposted by Christopher Grainger
daniel wraith @danielroe.dev · 19/09/2026
don't be nice.
roe.dev
Don't be nice
Sometimes, it's more important to be good than it is to be nice.
42736250
Reposted by Christopher Grainger
Andrew Lilley Brinker @alilleybrinker.com · 31/08/2026
Hey @1password.bsky.social, time to change course.
alilleybrinker.com
1Password Supports the Ethnic Cleansing of Europe — Andrew Lilley Brinker
1Password has committed $300,000 to Omarchy. This is unacceptable and must be rescinded.
541521623
Christopher Grainger @cigrainger.bsky.social · 12/06/2026
Trans children are being denied gender affirming healthcare, so we’re stepping in to support them. Will you join us? goodlawproject.org/s/37c8ea
goodlawproject.org
Help fund healthcare for trans kids | Good Law Project
This week, the families of trans kids receiving gender-affirming care at a Brighton medical practice were notified that their children’s treatment would be withdrawn in a matter of weeks.
052
Reposted by Christopher Grainger
Haskell programming language @haskell.org · 02/06/2026
The past years have seen horrendous attacks towards trans people. We have a duty to protect the most vulnerable members of our communities. There is no Haskell without the trans people who have shaped it through the years. This June is a month of celebrations, but the struggle continues. ✊🏳️‍⚧️λ
The trans flag with a greek lowecase lambda letter in black on it.
151100284
Reposted by Christopher Grainger
Gleam Programming Language @gleam.run · 03/06/2026
The rainbow is here all year long, so we don't need to change the profile for June. But it is a good time to remind everyone that LGBTQIA+ rights are under attack all year long as well. And to steal @haskell.org's message: there would be no Gleam without trans people 🩵🩷🤍
pink star looking in the mirror with text "I'm going to be brave. I'm going to be myself", with rainbow pride and trans pride stickers on it. The background is rainbow
531291
Reposted by Christopher Grainger
Lars Wikman @lawik.bsky.social · 30/05/2026
There should be official posts soon. I had the brainwave and some spare effort to build this. The Erlang Ecosystem Registry. Register your company. Show how many we actually are. Keep up to date on major ecosystem initiatives. All free. marketing.erlef.org/news/registr... #elixirlang #erlang #gleam
marketing.erlef.org
Announcing registry.erlef.org
Today you'll find something new at registry.erlef.org. As the the Erlang Ecosystem Foundation works to serve its members, sponsors and ecosystem we believe in the value of a canonical, central and trusted...
2186
Christopher Grainger @cigrainger.bsky.social · 20/05/2026
Switched to kagi.com about a year ago and haven't looked back. It's the first alternative I've found that doesn't suck. The experience has been better than Google's ad and AI filled nonsense for quite some time.
kagi.com
Kagi - Reclaim the Web & Restore Your Privacy
Reclaim the web from clutter. Get ad-free search, private browsing, and powerful tools that respect your data.
2200
Christopher Grainger @cigrainger.bsky.social · 04/05/2026
Can someone please ELI5 why we have 'newsletters' now instead of just RSS feeds? It seems worse in every possible way, and that it's just more defensible for monetisation. Is that it? We traded all that so 'thought leaders' can enter the gig economy?
390
Christopher Grainger @cigrainger.bsky.social · 27/04/2026
Very cool project! That would be brilliant, thank you.
000
Reposted by Christopher Grainger
Lars Wikman @lawik.bsky.social · 08/04/2026
Everyone's favorites Numerical Elixirist, one Paulo Valente, is presenting on how he is bringing Nx to embedded devices in today's (fully remote) Nerves Meetup EU. Join us. Lovely crew of Elixir enthusiasts with a bit of a hardware focus. nervesmeetup.eu/meetup/paulo... #elixirlang #nerves
nervesmeetup.eu
Numerical Elixir on Embedded Devices
Join us for this presentation by Paulo Valente on 2026-04-08 at 19h CET!
0103
Christopher Grainger @cigrainger.bsky.social · 31/03/2026
Alright! Introducing Dux: distributed #DuckDB backed dataframes for #elixirlang. cigrainger.com/blog/introdu... v0.3 dropped today and with it, distribution is fully supported and Dux is officially outperforming Explorer. I'm excited to hear what you all think.
cigrainger.com
Introducing Dux — Christopher Grainger
DuckDB-native dataframes for Elixir, with distributed execution on the BEAM.
2327
Reposted by Christopher Grainger
Tyler A. Young ⚗️🧑🏻‍💻 @tylerayoung.com · 30/03/2026
The v0.1 release of Expert (the new, official #ElixirLang LSP) is now final! 🎉 The best Elixir LSP experience keeps getting better. 😎 Tremendous thanks to all the contributors, and to Jump for sponsoring @katafrakt.bsky.social to work on this full-time. 🙏 github.com/elixir-lang/...
github.com
Release v0.1.0 · elixir-lang/expert
0.1.0 (2026-03-27) Bug Fixes engine: only start one engine for umbrella apps (#462) (f674d3d), closes #460 extractor not working with ExUnit.CaseTemplate (#529) (11fb790) forge: id generator must ...
04614
Christopher Grainger @cigrainger.bsky.social · 29/03/2026
New blog post as my HNSW #duckdb plugin hits v0.2 with support for quantisation (rabitq) and join+where pushdown and groupby+aggregations. cigrainger.com/blog/duckdb-...
cigrainger.com
Making HNSW actually work with WHERE clauses — Christopher Grainger
Transparent filtered vector search in DuckDB, or: why post-filtering is broken and what to do about it.
060
Christopher Grainger @cigrainger.bsky.social · 28/03/2026
bsky.app/profile/cigr... :)
121
Christopher Grainger @cigrainger.bsky.social · 28/03/2026
Should have shared the repo too! github.com/simdxml/simd... #elixirlang
github.com
GitHub - simdxml/simdxml-elixir: SIMD-accelerated XML parsing with full XPath 1.0 for Elixir. Rustler NIF wrapping simdxml.
SIMD-accelerated XML parsing with full XPath 1.0 for Elixir. Rustler NIF wrapping simdxml. - simdxml/simdxml-elixir
000
Christopher Grainger @cigrainger.bsky.social · 28/03/2026
A fast, correct XPath 1.0 conformant XML parser for Elixir with a simple, combinator-based API: hexdocs.pm/simdxml/0.1.0 #elixirlang
hexdocs.pm
SimdXml v0.1.0 — Documentation
1141
Christopher Grainger @cigrainger.bsky.social · 27/03/2026
Here's the payoff -- simdxml yields speedups on basically every workflow as a fully drop-in read-only replacement for etree in #python. And 42x on important workloads for large XML document handling. cigrainger.com/blog/simdxml... #foss
cigrainger.com
simdxml for Python: a faster ElementTree you don't have to rewrite for — Christopher Grainger
A read-only drop-in replacement for xml.etree.ElementTree backed by SIMD structural indexing.
130
Christopher Grainger @cigrainger.bsky.social · 27/03/2026
More about that XML thing. cigrainger.com/blog/simdxml/
cigrainger.com
simdxml: structural indexing for XML — Christopher Grainger
Applying simdjson's ideas to XML parsing. It's complicated, but it works.
273
Christopher Grainger @cigrainger.bsky.social · 26/03/2026
So at Amplified we do a lot of XML parsing. I wrote an XML parser. It's quite fast. github.com/cigrainger/s...
github.com
GitHub - cigrainger/simdxml: SIMD-accelerated XML parser with full XPath 1.0 support
SIMD-accelerated XML parser with full XPath 1.0 support - cigrainger/simdxml
1111
Reposted by Christopher Grainger
Lars Wikman @lawik.bsky.social · 25/03/2026
I did something kind of funky that should work well. My library Entrace makes Erlang tracing nicer. But you don't have it installed and suddenly you need it. Hot code updates to the rescue. One-line install via precompiled BEAM files. github.com/underjord/en... #elixirlang
github.com
2144
Reposted by Christopher Grainger
Lars Wikman @lawik.bsky.social · 25/03/2026
We are still looking for more sponsors for Goatmire Elixir. If your company wants to be on the banners and be part of making the event happen that'd be awesome. Please contact me :) #elixirlang #goatmire
098
Christopher Grainger @cigrainger.bsky.social · 25/03/2026
Hmmmm #NewbieGains
github.com
Distributed perf hardening: 3-12x faster fan-out and merge by cigrainger · Pull Request #33 · elixir-dux/dux
Summary Performance ordered: false in batch fan_out — the streaming path already used ordered: false, but the batch path forced sequential collection. Results are partitioned into success/failure ...
000
Christopher Grainger @cigrainger.bsky.social · 25/03/2026
Some patent content. But also MCP content. www.amplified.ai/en/blog/2403...
amplified.ai
A Patent Practitioner's Guide to MCP
MCPs are going to be critical for powering AI in patent work. One of the biggest challenges in IP is that work is fragmented across too many tools and people. MCPs are a way to glue together that frag...
140
Christopher Grainger @cigrainger.bsky.social · 25/03/2026
That DuckDB extension I was working on landed in community extensions today! I'm pretty excited about it -- prefiltered ACORN-1 HNSW approx nearest neighbours in #DuckDB. Even pgvector does postfiltering, for example. INSTALL hnsw_acorn FROM community; LOAD hnsw_acorn; github.com/duckdb/commu...
github.com
Add hnsw_acorn: filtered HNSW vector search with ACORN-1 by cigrainger · Pull Request #1573 · duckdb/community-extensions
Summary Adds the hnsw_acorn extension — a fork of duckdb-vss that adds filtered HNSW vector search using the ACORN-1 algorithm. The upstream vss extension applies WHERE clauses after the HNSW index...
2102
Christopher Grainger @cigrainger.bsky.social · 24/03/2026
Hey #ElixirLang folks! Here's a little something I've been working on. I'd love some early stage feedback. dux.now
dux.now
Dux: Distributed DuckDB-native DataFrames for Elixir
dplyr-style verb API backed by DuckDB. Lazy pipelines compile to SQL. Distributed execution across the BEAM. Graph analytics, cross-source joins, Nx interop.
34612
Christopher Grainger @cigrainger.bsky.social · 24/03/2026
Patents innit ;)
000
Christopher Grainger @cigrainger.bsky.social · 23/03/2026
More info on ACORN: arxiv.org/abs/2403.04871
arxiv.org
ACORN: Performant and Predicate-Agnostic Search Over Vector Embeddings and Structured Data
Applications increasingly leverage mixed-modality data, and must jointly search over vector data, such as embedded images, text and video, as well as structured data, such as attributes and keywords. ...
100
Christopher Grainger @cigrainger.bsky.social · 23/03/2026
Ever wanted to use HNSW with pre-filtering on #duckdb? I'm trying to make that possible. Approximate nearest neighbours with WHERE clauses, using ACORN. github.com/duckdb/commu...
github.com
Add hnsw_acorn: filtered HNSW vector search with ACORN-1 by cigrainger · Pull Request #1573 · duckdb/community-extensions
Summary Adds the hnsw_acorn extension — a fork of duckdb-vss that adds filtered HNSW vector search using the ACORN-1 algorithm. The upstream vss extension applies WHERE clauses after the HNSW index...
230
Christopher Grainger @cigrainger.bsky.social · 22/03/2026
It feels good to be working on some OSS #ElixirLang stuff again. Details forthcoming, but I'm very excited about this one.
0150
Christopher Grainger @cigrainger.bsky.social · 20/03/2026
#ElixirLang folks using Explorer -- is this of interest? github.com/cigrainger/e... Polars has become a bit of an albatross. It's a very complex project with a ton of churn and it's putting the whole Explorer project at risk. So exploring alternative backends.
github.com
GitHub - cigrainger/explorer_duckdb_backend
Contribute to cigrainger/explorer_duckdb_backend development by creating an account on GitHub.
4192
Christopher Grainger @cigrainger.bsky.social · 19/03/2026
This is up on Hex today. One of my colleagues put it together and it's been a real QoL improvement for us. github.com/amplifiedai/... #ElixirLang #Elixir
github.com
GitHub - amplifiedai/amplified_pubsub: A protocol-based PubSub abstraction for Phoenix LiveView.
A protocol-based PubSub abstraction for Phoenix LiveView. - amplifiedai/amplified_pubsub
1193
Reposted by Christopher Grainger
Saša Jurić @sasajuric.bsky.social · 12/03/2026
There it is folks, the Goatmire tickets are on sale 🥳 Make sure to get them before they sell out.
193
Reposted by Christopher Grainger
Gleam Programming Language @gleam.run · 26/02/2026
Thanks to one of the discussions at the #GleamGathering, we decided to add more options to support Gleam development financially: now you can do it via direct bank transfer ⭐ All the details: gleam.run/sponsor
Navy background, pink headline "New ways to support Gleam!"; below the headline there's a graphic that shows screen of the "Sponsor" page from gleam.run and its text: "Sponsorship and donations. Support Gleam's development by sponsoring us! he Gleam project" and the description as well as 3 pink buttons: Github Sponsors, Bank Transfer, Liberapay.
02811
Reposted by Christopher Grainger
Zach Daniel @zachdaniel.dev · 11/11/2025
#AshFramework just hit 1 million downloads on hex 🎉 #ElixirLang
1534
Reposted by Christopher Grainger
arXiv cs.AI Artificial Intelligence @csai-bot.bsky.social · 28/10/2025
Long H Dang, David Rawlinson: HRM-Agent: Training a recurrent reasoning model in dynamic environments using reinforcement learning arxiv.org/abs/2510.22832 arxiv.org/pdf/2510.22832 arxiv.org/html/2510.22832
135
Christopher Grainger @cigrainger.bsky.social · 24/07/2025
Had lots of fun chatting with Charles about dataframes! Dataframes are not just for data scientists :). #elixirlang #myelixirstatus
083
Reposted by Christopher Grainger
Josh Price @joshprice.com · 24/06/2025
This is going to be a fun one!
062
Reposted by Christopher Grainger
Peter Ullrich @peterullrich.com · 20/06/2025
Oban is probably the greatest library I have ever used, especially with Oban.Pro on top. The value you get for free - or for a very reasonable amount - is mind-blowing.
1318
Reposted by Christopher Grainger
Paraxial.io @paraxialio.bsky.social · 18/06/2025
Phoenix 1.8 Gets Official Security Documentation paraxial.io/blog/phoenix...
paraxial.io
Phoenix 1.8 Gets Official Security Documentation
Protect your application from hackers
0154
Christopher Grainger @cigrainger.bsky.social · 18/06/2025
After using terraform for quite a long time and always finding HCL obnoxious and never getting on really well with various aspects of terraform cloud, state issues, etc, @pulumi.com is such a breath of fresh air. ESC and Insights integrated the way they are with IaC feels like I've got superpowers.
042
Reposted by Christopher Grainger
Hauleth @hauleth.dev · 12/06/2025
I am looking for new #ElixirLang opportunities, so if you have anything interesting then my DMs are open
22114
Reposted by Christopher Grainger
Lars Wikman @lawik.bsky.social · 20/05/2025
If you do stuff in Elixir, Erlang, Gleam, AtomVM or adjacently. You can just ASK to be on BEAM Radio (beamrad.io). We do reach out to people but very few people ask. Only the spammers in my inbox. We want to show more of what happens in the ecosystem so don't be shy :) #elixirlang #erlang
14122
Reposted by Christopher Grainger
Christian Tietze @ctietze.mastodon.social.ap.brid.gy · 14/05/2025
If nothing else, Rust really made CLI come back and look and feel fun.
163
Reposted by Christopher Grainger
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 12/05/2025
Happily paid $5/month for @kagi.com search. I really hope to see more paid services that are ethical and ad-free. The internet is broken by large corps and it is up to smaller businesses and individuals to get it fixed for ourselves.
2162
Reposted by Christopher Grainger
Paulo Valente @polvalente.social · 11/05/2025
I've just released Handoff, a new Elixir library for distributed function graph execution. hexdocs.pm/handoff Among other things, the library enables distributed Nx computations (anyone said distributed inference?) A huge part of this was sponsored by tvlabs.ai!
hexdocs.pm
Handoff v0.1.0 — Documentation
25715
Christopher Grainger @cigrainger.bsky.social · 08/05/2025
Now this is exciting.
010
Christopher Grainger @cigrainger.bsky.social · 08/05/2025
I mean at least I'll never run around and desert you.
120
Christopher Grainger @cigrainger.bsky.social · 08/05/2025
I'll never give them up.
140
Christopher Grainger @cigrainger.bsky.social · 07/05/2025
Thanks @zachdaniel.dev!
000
Christopher Grainger @cigrainger.bsky.social · 07/05/2025
And #ElixirLang folks: anybody using LoggerJSON and getting codepoints instead of strings for certain metadata (e.g. file)?
110