Alex Martsinovich
banner
distantprovince.bsky.social
Alex Martsinovich
@distantprovince.bsky.social
#ElixirLang Developer 🇨🇦

✨InstructorLite
🪵DiscoLog
🪵LogHog

https://distantprovince.by/
Pinned
I am an AI optimist, but sometimes I feel like I am at war with AI. Or maybe with other people. Ugh, listen, you just need to imagine you are a scrambler. distantprovince.by/posts/its-ru...
It's rude to show AI output to people | Alex Martsinovich
Feeding slop is an act of war
distantprovince.by
👀
November 8, 2025 at 10:25 PM
Patch release 1.1.1 for InstructorLite

* Make ChatCompletionsCompatible adapter more forgiving to Mistral's API responses
* Fix rare bug when InstructorLite.ask/2 would refuse to call adapter because it wasn't loaded

#MyElixirStatus #ElixirLang
October 19, 2025 at 5:28 PM
I vibe coded an entirely new PostHog SDK—

Actually, no. This summer I locked in, learned what needed to be learned, and built an error tracking library from first principles, that became an official PostHog SDK for Elixir

Here's why I think it's good
#ElixirLang

distantprovince.by/posts/postho...
PostHog Elixir SDK is Good | Alex Martsinovich
PostHog Elixir SDK 2.0 is here and it's good
distantprovince.by
October 2, 2025 at 3:07 PM
Reposted by Alex Martsinovich
caller tracking has been part of Elixir for quite some time now, but is still a relatively obscure mechanism. we need to fix this.

#ElixirLang #MyElixirStatus

distantprovince.by/posts/5-minu...
5-minute guide to Elixir caller tracking | Alex Martsinovich
Now is the second best time to talk about caller tracking
distantprovince.by
September 1, 2025 at 9:46 PM
caller tracking has been part of Elixir for quite some time now, but is still a relatively obscure mechanism. we need to fix this.

#ElixirLang #MyElixirStatus

distantprovince.by/posts/5-minu...
5-minute guide to Elixir caller tracking | Alex Martsinovich
Now is the second best time to talk about caller tracking
distantprovince.by
September 1, 2025 at 9:46 PM
If you're a junior engineer, don't ask cheap models for advice. Ask the most senior engineer on the team. The latency is garbage, the personality is questionable, but your employer pays for subscription 💅
August 26, 2025 at 1:53 AM
Last week InstructorLite hit 100 stars and 10k downloads on Hex 🎉 Almost a year after its initial release!

InstructorLite is the best way to get comfortable with structured outputs before you inevitably transition to raw Req.

#ElixirLang #MyElixirStatus
August 16, 2025 at 11:08 PM
If food can only be soup, salad or sandwich, then functions can only be pure functions, side-effects or call sites
August 13, 2025 at 3:58 AM
That was unexpected
July 26, 2025 at 4:28 PM
Registry is such a versatile tool. How did we live without it? How do I stop using it for everything?
July 26, 2025 at 6:48 AM
I finally updated one of my side projects to Phoenix 1.8 and DaisyUI. Looks much better now.

Under the hood it runs ~100k Oban jobs per day and costs less than $5 per month to host. #ElixirLang is truly a miracle tech.
July 24, 2025 at 6:48 PM
I think the question is, does the world need DiscoHog?
Hmm, so with all my work on LogHog and DiscoLog, I have all building blocks in place to create a bot that will forward Discord gateway events to PostHog 🤔
July 21, 2025 at 7:29 PM
Hmm, so with all my work on LogHog and DiscoLog, I have all building blocks in place to create a bot that will forward Discord gateway events to PostHog 🤔
July 21, 2025 at 7:21 PM
What have I done my silly AI essay is "on HN front page". I don't even know how hacker news work. Should I open comment section?
July 19, 2025 at 6:09 PM
A tech lead who I highly respect once told me that in order to get something _really_ right, you need to rewrite the code ~5 times. I think about this often.
July 18, 2025 at 9:33 PM
InstructorLite is slowly catching up with Instructor, huh
July 18, 2025 at 6:30 AM
AI etiquette, I'm telling you distantprovince.by/posts/its-ru...
July 13, 2025 at 4:13 PM
I distinctly remember that I discovered this blog somewhere in late 2010s, although I don't remember how exactly. Time has passed, I myself became Canadian, and the man continues to drop gems like this 😭😭
July 12, 2025 at 2:59 AM
Reposted by Alex Martsinovich
I am an AI optimist, but sometimes I feel like I am at war with AI. Or maybe with other people. Ugh, listen, you just need to imagine you are a scrambler. distantprovince.by/posts/its-ru...
It's rude to show AI output to people | Alex Martsinovich
Feeding slop is an act of war
distantprovince.by
July 4, 2025 at 10:31 PM
Posthog is such a branding powerhouse. I know they have stories now. I wrote an error tracking library for them. And I don't even use the product that much! I barely know what they do!
July 9, 2025 at 6:10 AM
I am an AI optimist, but sometimes I feel like I am at war with AI. Or maybe with other people. Ugh, listen, you just need to imagine you are a scrambler. distantprovince.by/posts/its-ru...
It's rude to show AI output to people | Alex Martsinovich
Feeding slop is an act of war
distantprovince.by
July 4, 2025 at 10:31 PM
Reposted by Alex Martsinovich
`check_possible_steal_victim` is probably the best function in the otp codebase
July 2, 2025 at 11:23 PM
I'm a big fan of playful naming in code and I really love the concepts of "task stealing", "task immigration", and "scheduler evacuation" in Erlang schedulers.
July 2, 2025 at 6:21 PM
Ever wondered what `Sentry.PlugCapture` does? How come we need a plug to log Plug errors? Aren't they... just logged like any other error?

The answer is for 🏛️ historical reasons 🏛️. These days, it's not necessary.

#ElixirLang
June 23, 2025 at 10:45 PM
In the meantime, fully human-made, hand-crafted banger libs InstructorLite 1.0.0 and DiscoLog 2.0.0 are coming next week, I think
June 14, 2025 at 3:30 AM