Robin Stocker's Avatar

Robin Stocker

@nibor.org

Backend Dev @ Canva – ex Atlassian (Bitbucket); Java, Rust, open source, Swiss living in Australia https://github.com/robinst

132
Followers
145
Following
62
Posts
18.10.2023
Joined
Posts Following

Latest posts by Robin Stocker @nibor.org

Preview
a man in a white shirt and tie with his mouth open ALT: a man in a white shirt and tie with his mouth open

Me solving 2025’s last Advent of Code puzzle

12.12.2025 06:06 👍 1 🔁 0 💬 0 📌 0
Preview
Rust in Android: move fast and fix things Posted by Jeff Vander Stoep, Android Last year, we wrote about why a memory safety strategy that focuses on vulnerability prevention in ...

“We adopted #rustlang for its security and are seeing a 1000x reduction in memory safety vulnerability density ... with Rust changes having a 4x lower rollback rate and spending 25% less time in code review, the safer path is now also the faster one.”

security.googleblog.com/2025/11/rust...

13.11.2025 19:52 👍 323 🔁 91 💬 3 📌 6

Do you have a screenshot you can share? I only have "secret" stuff that I can't share.

17.10.2025 09:39 👍 0 🔁 0 💬 1 📌 0

If the tooltip is over a certain length, it could instead start to pretty print it and format it over multiple lines, with indentation and line breaks (like real code getting formatted).

That would be so good for readability! Am I missing a setting somewhere that does this?

17.10.2025 03:30 👍 1 🔁 0 💬 1 📌 0

So in Java, sometimes you can have pretty long/deeply nested type signatures (yes, I'm doing something complicated :P).

In @intellijidea.com, when you look at the types using Cmd+hover, why does the tooltip show everything on one super long line? Same question for Cmd+P to show arguments.

17.10.2025 03:28 👍 0 🔁 0 💬 1 📌 0

Not sure about the annotation, but Javadoc apparently can’t be there, it has to be in a @param on the record itself.

29.09.2025 23:43 👍 0 🔁 0 💬 1 📌 0

A tool I helped create a few years ago. It was pretty straightforward to write (~one week with a few devs) but apparently it’s really useful for certain types of research!

A great collaboration between @atlassian.bsky.social and @victorchang.edu.au.

26.09.2025 09:15 👍 5 🔁 1 💬 0 📌 0

I had to implement this at work.. Thanks JavaScript/JSON/Java/UTF-16 :/

20.09.2025 00:57 👍 2 🔁 0 💬 0 📌 0

`jj undo`, I love you.

(jj is a git-compatible git alternative. You should try it.)

21.08.2025 10:29 👍 2 🔁 0 💬 0 📌 0

What I like about fooToBar is that it lines up with the types and e.g. put(foo, bar) (and in general how a map is a foo -> bar).

What I like about bar(s)ByFoo is that it puts the more important thing first. And sometimes the "ByFoo" doesn't need to be explicit if it's clear enough without it.

05.08.2025 12:16 👍 2 🔁 0 💬 0 📌 0

For a field with type Map<Foo, Bar>, do you prefer naming it fooToBar, or barsByFoo? (Assuming that e.g. just bars is not clear enough.)

05.08.2025 11:17 👍 0 🔁 0 💬 1 📌 0
Preview
Implementing Hardware-Friendly Databases (with DuckDB co-creator, Hannes Mühleisen) Developer Voices · Episode

This was a really interesting episode about databases but also UX trade offs. (No prior knowledge of DB internals required.)

22.07.2025 08:07 👍 1 🔁 0 💬 0 📌 0

It me

22.07.2025 07:59 👍 3 🔁 0 💬 0 📌 0
Maven

Was the first time using the new Maven Central Publisher Portal, which is the replacement for OSSRH. Followed this guide: central.sonatype.org/publish/publ...

... and it worked on the first try! Seems better than the old system, kudos to the team!

20.06.2025 13:33 👍 0 🔁 0 💬 0 📌 0
Release commonmark-java 0.25.0 · commonmark/commonmark-java Added Include OSGi metadata in jars (META-INF/MANIFEST.MF files) (#378) More documentation with examples for Node classes (#370) Changed GitHub tables: Tables are now parsed even if there's no b...

Released a new version of commonmark-java 🎉: github.com/commonmark/c...

20.06.2025 13:33 👍 2 🔁 0 💬 1 📌 0

@gork.bluesky.bot is this true?

20.06.2025 08:22 👍 0 🔁 0 💬 1 📌 0

One of my favorite little tricks to copy some git changes to another checkout is `git diff | pbcopy` in the source followed by `pbpaste | git apply` in the destination.

28.05.2025 12:34 👍 0 🔁 0 💬 0 📌 0

It doesn’t prevent anyone from handing in a blank vote (i.e. an “informal vote”). But yeah, compared to Switzerland, Australia has much less frequent voting, so maybe that helps.

30.04.2025 07:02 👍 1 🔁 0 💬 1 📌 0

I like that Australia has mandatory voting -> ~90% turnout: www.aec.gov.au/Elections/fe...

30.04.2025 06:34 👍 3 🔁 0 💬 1 📌 0

It was a great tool the few times I’ve used it, thanks!

Recently I’ve discovered @duckdb.org for this. While not a direct replacement, it allows processing CSV using SQL, e.g. see

25.04.2025 11:07 👍 0 🔁 0 💬 0 📌 0

Would be great to have it formalized, yeah! Excited for jj and other tools :)

30.03.2025 01:31 👍 2 🔁 0 💬 0 📌 0

I see, so it’s more like “it happens to work” than being explicitly supported at this point.

29.03.2025 23:56 👍 1 🔁 0 💬 1 📌 0

Oh, I didn’t know git allowed custom headers in commit objects, when did that happen?

29.03.2025 11:24 👍 0 🔁 0 💬 1 📌 0
Preview
Memory safety for web fonts  |  Blog  |  Chrome for Developers Learn how and why the Chrome team has replaced FreeType with Skrifa.

New blog post up on the Rust font loader now shipping in Chrome. I only had a small part in this personally but am proud of the team's work. developer.chrome.com/blog/memory-...

19.03.2025 15:15 👍 107 🔁 26 💬 3 📌 2

Like:
- Conflicts can be resolved later, nice markers (with diff)
- Stable change IDs (and surprisingly short, no need to copy paste)
- jj new (with e.g. --after). Very convenient to work on stacked things in general
- rebase without having to check out
- push doesn’t need force
- log nice and short

13.03.2025 06:08 👍 1 🔁 0 💬 0 📌 0

I’m using it in one out of three of my checkouts (of the same repo).

Most of the initial issues I had have been solved (e.g. pushing and pulling works). Some that remain:
- LFS files need a workaround (just initially, not actively working with them)
- No indication of branch/status in IntelliJ

13.03.2025 05:58 👍 1 🔁 0 💬 0 📌 0

Used `jj absorb` recently and it’s so good!

I had some work that was already in PR, and some work on top for later PRs. I needed to address some feedback for the PR. So just made the changes on top, then absorb -> changes are automatically put into the right commits.

12.03.2025 08:16 👍 1 🔁 0 💬 1 📌 0

Contention

23.02.2025 03:31 👍 0 🔁 0 💬 0 📌 0

I used github.com/BurntSushi/xsv for this before which is great, but having the full power and familiarity of SQL is super useful!

10.02.2025 10:00 👍 0 🔁 0 💬 1 📌 0
Terminal command: duckdb -csv -c 'select * from "documents.csv" natural join "users.csv"' > joined.csv

Terminal command: duckdb -csv -c 'select * from "documents.csv" natural join "users.csv"' > joined.csv

Used duckdb.org for the first time today. Just to do an inner join of two CSV files, but I'll try it again next time for some ad-hoc data processing.

This is a single command, but it also has an interactive mode with syntax highlighting and completion:

10.02.2025 08:19 👍 5 🔁 0 💬 1 📌 1