Robin Stocker
@nibor.org
130 followers 140 following 58 posts
Backend Dev @ Canva – ex Atlassian (Bitbucket); Java, Rust, open source, Swiss living in Australia https://github.com/robinst
Posts Media Videos Starter Packs
Pinned
nibor.org
Intro post: Have you ever done a `git push` and it printed a nice link for you to create a pull request (see screenshot)?

That was me! One of my first 20% projects when I was working on Bitbucket at Atlassian. GitHub later copied it – glad they did because I use it almost every day :)!
Terminal showing the output of a "git push", with a link to create a pull request
nibor.org
Not sure about the annotation, but Javadoc apparently can’t be there, it has to be in a @param on the record itself.
nibor.org
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.
bioinfoadv.bsky.social
🧰 Now published in Bioinformatics Advances: "Atlantool: A command line tool to retrieve DNA and RNA sequencing reads from BAM files by the read identifier"   

Read the full paper here: https://doi.org/10.1093/bioadv/vbaf226 

Authors include: @nibor.org, @egiannoulatou.bsky.social
nibor.org
I had to implement this at work.. Thanks JavaScript/JSON/Java/UTF-16 :/
nibor.org
`jj undo`, I love you.

(jj is a git-compatible git alternative. You should try it.)
nibor.org
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.
nibor.org
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.)
nibor.org
This was a really interesting episode about databases but also UX trade offs. (No prior knowledge of DB internals required.)
Implementing Hardware-Friendly Databases (with DuckDB co-creator, Hannes Mühleisen)
Developer Voices · Episode
open.spotify.com
nibor.org
It me
mart-the-gooner.bsky.social
Incoming Robin #Birds #Birdsinflight #SuperBob
A Eurasian Robin aka Robin Redbreast flying directly towards the camera with its wings tucked in.
nibor.org
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!
Maven
central.sonatype.org
nibor.org
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.
nibor.org
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.
nibor.org
I like that Australia has mandatory voting -> ~90% turnout: www.aec.gov.au/Elections/fe...
nibor.org
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
nibor.org
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:
Terminal command: duckdb -csv -c 'select * from "documents.csv" natural join "users.csv"' > joined.csv
nibor.org
Would be great to have it formalized, yeah! Excited for jj and other tools :)
nibor.org
I see, so it’s more like “it happens to work” than being explicitly supported at this point.
nibor.org
Oh, I didn’t know git allowed custom headers in commit objects, when did that happen?
Reposted by Robin Stocker
nibor.org
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
nibor.org
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
nibor.org
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.
nibor.org
Contention
nibor.org
I used github.com/BurntSushi/xsv for this before which is great, but having the full power and familiarity of SQL is super useful!
nibor.org
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:
Terminal command: duckdb -csv -c 'select * from "documents.csv" natural join "users.csv"' > joined.csv