Angus Hollands's Avatar

Angus Hollands

@agoose77

🌍 Open Source Applications Engineer @ 2i2c! πŸ“š Jupyter Book core team member. πŸŽ“ PhD in Nuclear Physics from the University of Birmingham.

63
Followers
192
Following
28
Posts
12.11.2024
Joined
Posts Following

Latest posts by Angus Hollands @agoose77

I'm trying out niri, after getting comfortable with hyprland. This will be interesting!

01.12.2025 17:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Adding User Group Insights to Cloud Cost Dashboards with Grafana | 2i2c We are excited to announce that we have extended our cloud cost dashboards to support display costs filtered by user groups using Grafana! This new feature allows administrators to monitor and manage…

"Who is using the most resources?" is a common question for cloud admins. With our new user group cost dashboards, you can answer that question with more granularity!

2i2c.org/blog/2025/cl...

24.11.2025 18:54 πŸ‘ 4 πŸ” 4 πŸ’¬ 1 πŸ“Œ 0

I believe this was the following keynote: jupytercon2025.sched.com/event/28U0G/...

I don't know where the data were from, but I know that Jason will!

05.11.2025 20:43 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
A testamonial about Jupyter hub's impact on someone's career.

A testamonial about Jupyter hub's impact on someone's career.

A talk on the voices of JupyterHub! The longer I spend in OSS, the more utterly convinced I am that the people are the resource, not the software. This talk really captures that.

05.11.2025 19:52 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
A graph of contributor capacity over time. We see a recent dip in new and returning contributors

A graph of contributor capacity over time. We see a recent dip in new and returning contributors

The GitHub Octoverse report shows that Jupyter notebooks are themselves distinct environments in github, and show exponential growth.

The GitHub Octoverse report shows that Jupyter notebooks are themselves distinct environments in github, and show exponential growth.

JupyterCon has been fantastic. The energy and warmth from the developers, users, and researchers has been delightful!

Here's an interesting slide that touches on the long term questions about the project:

05.11.2025 17:59 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Yeah, I think we're pretty aligned on the nature of the problem! I don't feel confident that I have the golden bullet either, but I am enthused that more of us are talking about it in general -- that's definitely an improvement.

31.08.2025 19:32 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

This is harder in semver - how do you encode/schedule N breaking changes ahead of time, whilst also making room for an undefined number of new features etc.?

I think that's a nuanced point that won't come across clearly here!

31.08.2025 08:25 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Yes you could do that! And we used to do that in awkward array.

The benefit to use calver is that you lose the misplaced assumption and force people to refer to the document that you would author in both cases. Additionally, in awkward we used time-based compatibility, so calver would have helped!

31.08.2025 08:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

In theory each month could be a breaking change, but by defining a schedule you can allow people to predict the calver numbers that these correspond to. With semver, you lose some of the segments to semver semantics.

31.08.2025 08:17 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I agree in part, and I don't think calver is perfect either. The point is more nuanced though - the idea is that you can make breaking changes for different parts of the code base at different times.

31.08.2025 08:16 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

So, I reckon you might want to identify the persona of the package author that would use effver, and ALSO speak to how consumers of effver-sioned packages should reason and use this (contrasting with semver, probably)

You might also wish to reference examples of where semver failed in practice?

30.08.2025 19:28 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

What I don't love about effver is that it surfaces the hand-waviness of this, but doesn't make it easier to trust a constraint.

That's why I tend to like calver on the basis that you can literally pre-define what a breaking change is, and when you'll make it. But, it's more work.

30.08.2025 19:26 πŸ‘ 1 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

That means semver is really there to help people apply upper AND lower bounds to version constraints.

30.08.2025 19:25 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

My suggestion for introducing people to effver is perhaps to center this point earlier on:

The whole point of ascribing meaning to version numbers is to permit someone to say "I'll use a range of versions, so long as they work".

The "whether they work" part is doing a lot of heavy lifting.

30.08.2025 19:23 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

- e.g. big projects that have breaking change windows (where they cram together a bunch of breaking changes)

30.08.2025 19:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

- at this point, it's fair to compare semver with other schemes that also require additional context to interpret version numbers, e.g. calver, effver, zerover, etc.

30.08.2025 19:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

- good semver usage *requires* that you author some additional document that defines the bounds and intention of compatibility

30.08.2025 19:16 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

- it really suffers for big projects (as the number N of distinct pieces grows, the likelihood that successive versions are "breaking changes" grows), i.e. as Nβ†’βˆž you end up with something equivalent to monotonic incrementing numbers

30.08.2025 19:16 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

- it gets worse with languages like Python where APIs can be tested far more deeply (e.g. introspection)

30.08.2025 19:15 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

The way I've been thinking about versioning is as follows:
- semver is fundamentally a lie that we tell ourselves. It presupposes a lot of ill-defined notions of compatibility.

30.08.2025 19:15 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Lol, listing my blueksy in my bio and not logging in for a week!

I'd love to give this some more thought to articulate my feelings on this more clearly. Let me get back to you!

26.08.2025 17:35 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Ugh this was so useful. Time for a new extension...

18.07.2025 18:15 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
conda-forge Audit Complete! – OSTIF.org

We β€œconda” believe it! In collaboration with 7ASecurity and @sovereign.tech, we carried out an audit of conda-forge. Read the details at our blog: ostif.org/conda-forge-...

16.07.2025 14:35 πŸ‘ 5 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Preview
We did the math on AI’s energy footprint. Here’s the story you haven’t heard. The emissions from individual AI text, image, and video queries seem smallβ€”until you add up what the industry isn’t tracking and consider where it’s heading next.

www.technologyreview.com/2025/05/20/1...

10.06.2025 23:04 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
We did the math on AI’s energy footprint. Here’s the story you haven’t heard. The emissions from individual AI text, image, and video queries seem smallβ€”until you add up what the industry isn’t tracking and consider where it’s heading next.

@choldgraf.com shared this with me, and it's worth a read!

www.technologyreview.com/2025/05/20/1...

21.05.2025 16:35 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Launching Jupyter Book for 2i2c Communities | 2i2c A core component of our mission to make research and education more impactful, accessible, and delightful is leveraging our unique global network of communities to make meaningful improvements to the…

We've launched Jupyter Book for 2i2c communities!

With Jupyter Book 2, communities can focus more on content than design, with improved interactive environment launches from Jupyter Book, added features for landing pages, and colocated community documentation with hubs.

21.05.2025 11:28 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Deepdive links in the TuringWay.

Deepdive links in the TuringWay.

Excited to see the @turingway.bsky.social move to Jupyter v2, which is powered by mystmd.org.

Check it out:
book.the-turing-way.org

Especially the glossary:
book.the-turing-way.org/afterword/gl...

19.02.2025 11:05 πŸ‘ 12 πŸ” 6 πŸ’¬ 0 πŸ“Œ 1
Preview
Towards frictionless, portable, and sustainable reproducibility with Binder | 2i2c Last December I had an opportunity to discuss the current and future state of the open publishing ecosystem at a workshop hosted by HHMI1. While 2i2c doesn’t primarily focus on β€œpublishing”…

We're exploring ways to support scientific reproducibility and sustainability with Binder. What if we could reduce the gap between where researchers conduct their computational analyses using open source technologies and bridge them to publishing platforms for dissemination?

19.02.2025 12:00 πŸ‘ 5 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0
Inline Options for Roles and Directives by agoose77 Β· Pull Request #28 Β· jupyter-book/myst-enhancement-proposals This is a WIP draft for adding "inline attributes" to MyST. Spec Issue: jupyter-book/myst-spec#68

New MyST proposal! It's for a short-hand way to add classes/options/labels to roles and directives. Read and comment here: github.com/jupyter-book...

This will unlock a lot of functionality for extending roles in particular, I'm really excited about it!

(led by @row1.ca and @agoose77.bsky.social)

29.01.2025 18:09 πŸ‘ 12 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0

There is the odd bug, though, and the author formatting is a todo!

22.01.2025 19:39 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0