Preslav Rachev's Avatar

Preslav Rachev

@preslav.me.bsky.social

I believe in building software that fosters discourse on the open web: - https://murmel.social - https://feedle.world Also an avid writer and hobby photographer. My posts are in English, Bulgarian, and German. Find me online on https://preslav.me.

209 Followers  |  169 Following  |  419 Posts  |  Joined: 19.04.2024  |  1.7808

Latest posts by preslav.me on Bluesky

Post image

I mean, there is an official MJML JS compiler? Why did you need another version of it? Just call it from your Go app. Like, how slow can it be?

Very, very, very .... slow

Which is one of the reasons I created gomjml: github.com/preslavrache...

#golang #mjml

05.08.2025 13:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
At 17, Hannah Cairo Solved a Major Math Mystery | Quanta Magazine After finding the homeschooling life confining, the teen petitioned her way into a graduate class at Berkeley, where she ended up disproving a 40-year-old conjecture.

The one unintended takeaway I got from this article is that #homeschooling is so boring and anti-social that people become math geniuses and run away to Academia, to get formal schooling and socialize: www.quantamagazine.org/at-17-hannah...

05.08.2025 08:06 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

You can find thousands of good ones over at @feedle.world

feedle.world

02.08.2025 16:29 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

OK, ChatGPT, now you triggered my attention! Please, go on :)

#programming #golang

02.08.2025 16:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
The Virtual Lab of AI agents designs new SARS-CoV-2 nanobodies - Nature Nature - The Virtual Lab of AI agents designs new SARS-CoV-2 nanobodies

Not all uses of #LLM have to be about sending stupid marketing messages. Here's something I hope more people will use them for: www.nature.com/articles/s41...

P.S. Does anyone have a link to the actual paper? I hope it's not just some random AI text with zero substance.

#goodnews #science #AI

30.07.2025 09:39 β€” πŸ‘ 1    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

There's lots I have learned in the process, and I will soon write a series of blog posts addressing my experience.

29.07.2025 13:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

While it did draft out the initial MVP pretty quickly, bringing it to something even remotely usable took a lot more human guidance, going back and forth, throwing away a bunch of code and starting over.

--
#claudecode

29.07.2025 13:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I wouldn't have been able to pull out such a massive feat in such a short amount of time without working with Claude Code. And yet, it wasn't exactly a smooth ride.

---
#claudecode

29.07.2025 13:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Well, more than anything, the flexibility to have an entire email templating and sending pipeline directly in your Go app. No external APIs to deal with, no extra binaries to wrap your code around β€” just a regular Go package you pull into your project.

29.07.2025 13:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It should go without saying that this is NOT yet production-ready, but knowing myself, I'll push for using gomjml in a few projects I work on.

But what's the big motivation for having yet another MJML compiler out there?

29.07.2025 13:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

While not 100% feature-complete, the core MJML components are already there, and anyone can grab the library and fool around with it. Keep in mind that this the first release, and it is far from the most performant version it could be.

29.07.2025 13:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
GitHub - preslavrachev/gomjml: A native Go implementation of the MJML email framework, providing fast compilation of MJML markup to responsive HTML. A native Go implementation of the MJML email framework, providing fast compilation of MJML markup to responsive HTML. - GitHub - preslavrachev/gomjml: A native Go implementation of the MJML email ...

This morning, I open-sourced a project that Claude Code and I have been secretly working over for the past few weeks. Presenting gomjml, a native Go compiler for the MJML email templating language πŸ“§πŸš€

Some GitHub ⭐️ are more than welcome!

github.com/preslavrache...

---
#programming #golang #mjml

29.07.2025 13:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image Post image Post image Post image

Do you also, sometimes, have this uneasy feeling when you get your photos out of your camera, and there are absolutely ZERO edits you want to do to them?

Like, social pressure wants you to turn the RAW files upside down, but to your subjective eye, the JPEGs are just πŸ‘Œ?

#photography #SOOC

27.07.2025 15:48 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

#vibecoding #claudecode πŸ‘†πŸ»

26.07.2025 14:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Hitting the Brakes on Claude Code Prevent Claude Code from burning tokens aimlessly. Slow things down with a simple shell trick.

Claude Code has been a hit-and-miss for me lately. Yeah, it can get to the 80% in 2 hours, but the remaining 20% will bring frustration and burned tokens (a.k.a $$$). I found a solution that works for me, maybe it will for you, too β€” slowing the process down using hooks: preslav.me/2025/07/26/c...

26.07.2025 14:41 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
a man wearing sunglasses and a black shirt is saying rock and roll ALT: a man wearing sunglasses and a black shirt is saying rock and roll

Ozzy was one of those rare individuals, who could put up with a ton of πŸ’© in their lives, and still make it to a relatively old age.

RIP, man 🀘You'll be remembered!

#ozzyosbourne

23.07.2025 11:02 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

And automation β€” in fact, I happen to be writing one on that exact topic - automating tasks with Jupyter. Follow me to stay up-to-date when I bring out the pre-release.

21.07.2025 12:32 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
18.07.2025 18:52 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

cc @andrich.me πŸ‘†πŸ»

18.07.2025 07:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

A more detailed blog post will follow.

18.07.2025 07:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
An xbar plugin that displays your current Claude Code usage on your Mac's toolbar An xbar plugin that displays your current Claude Code usage on your Mac's toolbar - claude_tokens.5m.py

Here is the rough version of the plugin: gist.github.com/preslavrache.... If you have Claude Code installed, head over and grab xbar, then open its plugins folder and drop this file there. It will refresh itself every 5m by default, but this can be adjusted. Make sure the file has exec permissions.

18.07.2025 07:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

I want to be more mindful of my Claude Code usage throughout the day. So, I've put together a quick toolbar app thanks xbar and a Claude utill called ccusage.

If anyone's interested, I will write a short blog post these days.

P.S. Using Claude Pro, you still don't pay per token 😬

---
#claudecode

17.07.2025 16:51 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 3    πŸ“Œ 0
Graph from GitHub’s Octoverse 2024 report showing a spike in utilization of Jupyter Notebooks across GitHub. This is calculated by looking at the distinct number of public repositories with at least one Jupyter Notebook by the year the repository was created. Since 2016, we have seen this number surge from near zero to more than 1.5 million repositories using Jupyter Notebooks.

Graph from GitHub’s Octoverse 2024 report showing a spike in utilization of Jupyter Notebooks across GitHub. This is calculated by looking at the distinct number of public repositories with at least one Jupyter Notebook by the year the repository was created. Since 2016, we have seen this number surge from near zero to more than 1.5 million repositories using Jupyter Notebooks.

Almost more significant than the success of #Python is the growth of #Jupyter #Notebooks: β€œData scientists and machine learning researchers commonly use the #OpenSource application for #MachineLearning, #DataViz, and more.”
jupyter-tutorial.readthedocs.io/en/latest/in...

15.07.2025 07:53 β€” πŸ‘ 21    πŸ” 5    πŸ’¬ 1    πŸ“Œ 0

Π‘Π΅Π³Π° видях, Ρ‡Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Ρ‡Π°ΠΊ ΠΎΡ‚ 29-ΠΈ юли. Нищо, Π·Π°ΠΏΠ°Π·ΠΈΡ… я, ΠΈ Ρ‰Π΅ я ΠΈΠ·ΡΠ»ΡƒΡˆΠ°ΠΌ.

14.07.2025 05:39 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Бвалям! πŸ‘

14.07.2025 05:36 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Protip: For all of you vibe coders out there using macOS, you can ask Claude Code to send you a notification when it's finished implementing the task you asked it to do.

---
#vibecoding #claudecode #macos

07.07.2025 14:40 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Does anyone here remember good old @ngrok.com?

07.07.2025 14:19 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Another thing that helps is that people are more mindful when using pointers and indirection in Go. In Java, pretty much everything is a pointer, which causes a hell of a lot more work for the GC.

07.07.2025 05:59 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
runtime: green tea garbage collector · Issue #73581 · golang/go Green Tea 🍡 Garbage Collector Authors: Michael Knyszek, Austin Clements Updated: 2 May 2025 This issue tracks the design and implementation of the Green Tea garbage collector. As of the last update...

It has pauses - they are just smaller, more frequent, and they don't "stop the world" the way Java's GC does. That said, both languages constantly improve their GC performance. There is some recent improvement in Go, for instance: github.com/golang/go/issues/73581

07.07.2025 05:56 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Yeah, using pointers to express optionality. It’s one of those early bad practice hacks that somehow stuck. I’m assuming, because the OpenAPI predates generics and the custom nil-able SQL types, otherwise, they’d designed it differently.

06.07.2025 14:53 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@preslav.me is following 20 prominent accounts