Sign in

Norberto Lopes

@nlopes.dev
159 followers 265 following 212 posts

Engineering @incident_io nlopes.dev acdc.nlopes.dev haveyouaskedclaude.com dbschemer.dev securitytxts.com github.com/nlopes

PostsRepliesMedia
Norberto Lopes @nlopes.dev · 16/09/2026
Book 4 of Saga just arrived. So excited about this.
010
Norberto Lopes @nlopes.dev · 28/08/2026
I keep finding stuff I hadn't clocked in cargo nextest. I said it before but I'll say it again: I wish all software was this good. Big fan. I can't remember the last project where I didn't use cargo nextest instead of cargo test. (except for --doc)
1200
Norberto Lopes @nlopes.dev · 30/07/2026
This is cute but also... you ok github?
010
Norberto Lopes @nlopes.dev · 30/07/2026
This visual bug has to be the most annoying bug in @github.com that I am faced with every single day. Unless this is on purpose but I don't quite get the point.
000
Norberto Lopes @nlopes.dev · 25/07/2026
Just passed the 2k test mark for the AsciiDoc toolkit test suite in github.com/nlopes/acdc. cargo-nextest is one of my favourite tools in rust right now. It just works. Every time. Doesn't get in the way, it's fast, and has great UX. For me, github.com/nextest-rs/n... resolved makes it perfect.
1130
Norberto Lopes @nlopes.dev · 19/07/2026
The things one finds doing a deep cleaning. Farewell dear hp-ux and Veritas. You won't be missed.
020
Norberto Lopes @nlopes.dev · 18/07/2026
I've updated the AsciiDoc lsp github.com/nlopes/acdc/... to detect: - if a conditional is inactive (does not match the condition) - if a conditional doesn't close/is invalid - if a conditional is valid and active And you can also configure which "backend" it should use to parse your document as.
000
Norberto Lopes @nlopes.dev · 13/06/2026
Opus 4.8 on the left, my own on the right.
000
Norberto Lopes @nlopes.dev · 05/06/2026
OMG yes! I didn't realise jj allowed for "private" commits. That's awesome.
0191
Norberto Lopes @nlopes.dev · 05/06/2026
And the result...
000
Norberto Lopes @nlopes.dev · 05/06/2026
Gosh, having a lot of fun with asciidoc today. I had added a terminal replay feature earlier and now I've been adding asciicast format so if you record something with asciinema you are able to see it being played out in the generated html 👌 Animated gif in the threaded post.
100
Norberto Lopes @nlopes.dev · 05/06/2026
I've added a `[terminal%replay]` block to `acdc`. And then created an `adoc` with the full result of a `cargo nextest`, which now generates this lovely terminal replay in html (using libghostty-vt). github.com/nlopes/acdc/...
241
Norberto Lopes @nlopes.dev · 18/05/2026
I've added a :terminal-preview: attribute to acdc (github.com/nlopes/acdc/...) that uses libghostty-vt to generate html with the actual terminal with the right ansi colors 👌 #asciidoc #asciidoctor #libghostty
040
Norberto Lopes @nlopes.dev · 14/05/2026
JUST ANOTHER DAY OF
110
Norberto Lopes @nlopes.dev · 10/05/2026
Been vibe coding a neat rust release timeline but taking inspiration from newspaper styles. Any folks out there from #rustlang have opinions?
340
Norberto Lopes @nlopes.dev · 09/05/2026
This is such a nerdy movie that I keep re-watching - some parts are really good, others boring. And sometimes the soundtrack is bang on, other times so annoying (the void of space sound that drives me up the walls)
000
Norberto Lopes @nlopes.dev · 18/04/2026
Ignore the branch name, this is pretty cool. It also allows me to write everything in AsciiDoc now and then if needed convert to the lower fidelity markdown.
010
Norberto Lopes @nlopes.dev · 08/04/2026
acdc now generates a nice table with the times taken to parse and convert if given multiple files. It also displays wall clock time 👌
000
Norberto Lopes @nlopes.dev · 07/04/2026
I've started doing some performance work on github.com/nlopes/acdc. I'm quite happy. For small files, acdc (rust) is still slightly worse than asciidoctor (ruby). I need to tackle that. For big files (250Mb), acdc is 23x faster for parsing, and 1.8x faster for conversion. 🤯 #asciidoc #rustlang
000
Norberto Lopes @nlopes.dev · 06/04/2026
I did a think again with WASM using Claude Code. In order to commemorate Artemis II checking out the Moon, I've adjusted nlopes.dev homepage to show (yes, using NASA data from their OEM file) its trajectory. #rustlang #wasm #artemisii
021
Norberto Lopes @nlopes.dev · 06/04/2026
This is still going in Gemini CLI; I started the exact same task in Claude Code, it finished after 47 seconds. I really don't understand why it is this bad, consistently. I know it's unfair to compare the two like this but gosh, Gemini CLI either needs to level up massively or call it a day.
000
Norberto Lopes @nlopes.dev · 06/04/2026
Just playing around as a homage to Artemis II
000
Norberto Lopes @nlopes.dev · 05/04/2026
Massive slack-go release v0.21.0 coming, one of the biggest yet. Unfortunately it carries a bunch of breaking changes but all for the sake of making much needed progress. github.com/slack-go/slack 75 files changed, 4179 insertions(+), 365 deletions(-)
000
Norberto Lopes @nlopes.dev · 03/04/2026
While I was waiting in a park bench, I decided to spruce up the 404 page on my personal website. Ended up vibe coding an ASCII dungeon crawler for it: nlopes.dev/404 It's all in WASM. If you get to the end you get to pick where to go. It's pretty cool what you can do with a phone these days.
An ASCII dungeon crawler showing the website navigation as portals the user can decide to go into.
121
Norberto Lopes @nlopes.dev · 07/03/2026
@slack.dev these are mutually exclusive 🤣 I get it, it's either 0 or 1 but the errors leave a lot on the table.
000
Norberto Lopes @nlopes.dev · 07/03/2026
acdc now correctly displays manpage tables (using tbl with groff). Even when there's column or row spans. 🥳 github.com/nlopes/acdc
000
Norberto Lopes @nlopes.dev · 05/03/2026
If you work on personal projects on your work laptop (assuming your employer allows it), I've finally committed to this and it works pretty well.
000
Norberto Lopes @nlopes.dev · 08/02/2026
As part of building my AsciiDoc tooling suite in rust, I've used the Hubris documentation from Oxide (among others) to test it out. I've added a document attribute called `:dark-mode:` that also allows dark mode rendering. 👌 github.com/nlopes/acdc #rust #asciidoc #rust-lang
Side by side comparison of light mode vs dark mode of AsciiDoc html documents
020
Norberto Lopes @nlopes.dev · 24/01/2026
Every few weeks I get a few minutes with Claude and make improvements to securitytxts.com. All #rust, backend 99% me 1% claude, frontend about 50-50 (I think). I'm pretty happy with how rich the errors/warnings are now, including file positions (notice the top right in the error)
000
Norberto Lopes @nlopes.dev · 23/01/2026
Is rust 1.93 ok?
000
Norberto Lopes @nlopes.dev · 17/01/2026
YEEEES. This was much needed. Thank you @bcherny.bsky.social and team!
000
Norberto Lopes @nlopes.dev · 11/01/2026
Gosh conference swag can be wild... Doing some cloth cleaning and found this gem 😂
010
Norberto Lopes @nlopes.dev · 06/01/2026
Sometimes, one character fixes is all it takes. This may be my favourite commit so far in 2026. (From github.com/RustCrypto/R...)
010
Norberto Lopes @nlopes.dev · 03/01/2026
Hate to see it.
100
Norberto Lopes @nlopes.dev · 01/01/2026
Starting 2026 with a book and coffee 👌
Book cover for Cloud Cuckoo Land
010
Norberto Lopes @nlopes.dev · 01/01/2026
Close all the tabs. Start the year with an empty browser. Happy New Year 🎊
Browser showing no tabs open.
000
Norberto Lopes @nlopes.dev · 10/08/2025
Great tattoo - we used to have this on our t-shirts. It's a great reminder.
000
Norberto Lopes @nlopes.dev · 09/08/2025
Dread.
000
Norberto Lopes @nlopes.dev · 27/07/2025
I don't know how else to say it: Gemini CLI is incredibly disappointing. I can't go a few uses without getting a loop and halting.
000
Norberto Lopes @nlopes.dev · 14/07/2025
This should work. Why doesn't this work? #GoogleGemini please make this work.
000
Norberto Lopes @nlopes.dev · 05/07/2025
Yep, this is the way. For some it might just seem "easy", for others it will be the difference between "ok" and "omg, look at this tiny detail - that's incredible." At incident.io this was codified into a value which I really like.
010
Norberto Lopes @nlopes.dev · 04/07/2025
I know Claude, I know...
000
Norberto Lopes @nlopes.dev · 08/06/2025
Spent some of the weekend preparing and shipping v0.17.1 of slack-go.
010
Norberto Lopes @nlopes.dev · 21/05/2025
I can't believe they forgot to add Emacs to this. P.S: killer keynote, well done Google.
010
Norberto Lopes @nlopes.dev · 14/02/2025
My 17465 pet projects right now
000
Norberto Lopes @nlopes.dev · 26/01/2025
This is a pretty simplistic example but I'm quite happy about things coming along. Been working on this when I have time here and there. Left: generated by asciidoctor @asciidoctor.org Right: generated by acdc (github.com/nlopes/acdc - the project I've been working on) Lots left to do still!
Showing a comparison between asciidoctor and my own tool
030
Norberto Lopes @nlopes.dev · 05/01/2025
Well, sometimes tables have hundreds, even thousands of columns. You probably don't want to render all that, so added a regex compatible filter. P.S.: Friendly reminder that PostgreSQL has a limit of 1600 columns on a table, MySQL 4096, Spanner and MSSQL 1024 (the latter with caveats).
010
Norberto Lopes @nlopes.dev · 05/01/2025
TIL
010
Norberto Lopes @nlopes.dev · 05/01/2025
Also has a neat tooltip when hovering over a column entry.
010
Norberto Lopes @nlopes.dev · 05/01/2025
Played around with dbschemer.dev over the weekend again. Moved to @xyflow.com and it's been a delight to use. Outside of the graph, everything is #rust #rustlang.
220