Jacob Tomlinson
@jacobtomlinson.dev
📤 344
📥 295
📝 250
Building RAPIDS and Dask at NVIDIA. Views are my own. he/him.
https://jacobtomlinson.dev
How my choices of Python build backends and VCS plugins have evolved over time: 2016 `setuptools` + hard coded 2018 `setuptools` + `versioneer` 2020 `setuptools` + `setuptools-scm` 2023+ `hatchling` + `hatch-vcs`
1 day ago
1
2
0
I’m definitely adding the Tron Ares soundtrack to my Coding Focus playlist!
4 days ago
0
0
0
Python 3.14 is out! Prepare your CIs!
add a skeleton here at some point
7 days ago
0
4
1
reposted by
Jacob Tomlinson
Esther Schindler
8 days ago
I just saw someone use the abbreviation “AI;DR” and I’ll be laughing for a while.
29
7305
2515
"In theory there is no difference between theory and practice, while in practice there is" -- Benjamin Brewster - The Yale Literary Magazine 1882
13 days ago
1
0
0
reposted by
Jacob Tomlinson
Dask
14 days ago
The monthly Dask Community Meeting is on Thursday, October 2nd at 10:00 US/Central. Come along and share what you've been doing with Dask.
github.com/dask/communi...
loading . . .
Dask Community Meeting October 2025 · Issue #429 · dask/community
The monthly Dask Community Meeting is on Thursday, October 2nd at 10:00 US/Central. Feel free to add any updates you wish to share to the docs. Calendar: invite Video Conference: Zoom link
https://github.com/dask/community/issues/429
0
0
1
When working on open source projects it's important to remember that most users think about your software way less than you do. The majority of your users are busy getting on with their own work.
jacobtomlinson.dev/posts/2025/t...
loading . . .
The Majority Of Your Users
The majority of your users don’t read your changelog. The majority of your users only upgrade to new versions when forced to.
https://jacobtomlinson.dev/posts/2025/the-majority-of-your-users/
14 days ago
0
6
2
My 5yo has been struggling with nightmare recently. We’ve all had pretty poor sleep in our house for the last month or so. I feel exhausted today after another night of broken sleep, but my Apple Watch just told me that my sleep last night was 98/100 so I guess I’ve got that going…
16 days ago
0
0
0
You know what’s worse than having no signal in a coffee shop. Having just enough signal that you convince yourself you can get some work done, but then everything half fails intermittently sapping all your productivity.
18 days ago
1
2
0
The length of my todo list is stressing me out, so let’s set 20 mins on the clock and see how may things I can check off.
20 days ago
1
1
0
I think this is a new personal record 1:30pm: couldn't find a tool to do what I need, started building it 2:00pm: pushed initial release to GitHub and PyPI and shared with others 2:10pm: someone pointed me to an existing tool that does exactly what I need 2:30pm archived my tool
21 days ago
1
2
0
reposted by
Jacob Tomlinson
Justin Garrison
28 days ago
These are too good
@neal.fun
neal.fun/not-a-robot/
loading . . .
I'm Not a Robot
Prove your humanity
https://neal.fun/not-a-robot/
1
8
4
@agoose77.bsky.social
when talking to folks about EffVer I find myself quoting your point from SciPy that "Version numbers are a social contract and can’t exist in isolation". This is really helpful phrasing. Do you have thoughts on how I can update the EffVer page to communicate this better?
about 2 months ago
1
1
0
If the title of an article is a question, then the answer to that question is no.
2 months ago
0
1
0
The rise of coding agents means OSS projects need to ensure agents can parse their docs easily. The llms.txt standard defines a way to publish docs in markdown for loading into context windows. I made a quick Sphinx extension that makes it easy for you to do this!
github.com/jacobtomlins...
3 months ago
1
6
1
Conda has virtual packages which allows you to expose system packages to the solver. This is commonly used for environments that use CUDA. However, I'd never thought about how this is fundamentally incompatible with lock files and portability.
#SciPy2025
#pixi
docs.conda.io/projects/con...
loading . . .
Managing virtual packages — conda 25.5.1 documentation
https://docs.conda.io/projects/conda/en/stable/user-guide/tasks/manage-virtual.html
3 months ago
1
0
0
reposted by
Jacob Tomlinson
Simon Willison
3 months ago
Quitting programming as a career right now because of LLMs would be like quitting carpentry as a career thanks to the invention of the table saw.
64
884
196
semver.org
effver.org
calver.org
4 months ago
0
0
0
The recording of our tutorial from PyData London 2025 on GPU Accelerated Python with CUDA is now up on YouTube 🎉
www.youtube.com/watch?v=UnNw...
@pydatalondon.bsky.social
#python
#programming
#tutorial
#gpu
#pydata
loading . . .
Jacob Tomlinson - GPU Accelerated Python w: CUDA | PyData London 25
YouTube video by PyData
https://www.youtube.com/watch?v=UnNwex8M9jI
4 months ago
0
5
2
reposted by
Jacob Tomlinson
EuroPython 2025 Prague & Remote
4 months ago
Join Kamil Tokarski at EuroPython for "GPU performance or ease of use: why not both?". Talk:
ep2025.europython.eu/3NB3PX
0
0
1
reposted by
Jacob Tomlinson
Talk Python Podcast
4 months ago
Interested in GPU accelerated Python? Data science? LLMs? Something else? Check out the latest @TalkPython episode with Bryce Adelstein-Lelbach and host
@mkennedy.codes
#python
#509: GPU Programming in Pure Python
talkpython.fm/episodes/sho...
loading . . .
GPU Programming in Pure Python
If you're looking to leverage the insane power of modern GPUs for data science and ML, you might think you'll need to use some low-level programming language such as C++. But the folks over at NVIDIA ...
https://talkpython.fm/episodes/show/509/gpu-programming-in-pure-python
0
3
3
Apple just moved their operating systems to CalVer. This makes total sense to me. They’ve released annually for a long time. Users will find it easier to reason about how old an OS release is. Releases will age more quickly and will encourage upgrading, nobody wants to be stuck on iOS 2022.
4 months ago
1
0
0
reposted by
Jacob Tomlinson
Jed Sundwall
5 months ago
Loved doing this with
@al.merose.com
while at
@cloudnativegeo.org
Conference at the beginning of the month. Special shoutout to
@maxlenormand.bsky.social
for production assistance!
add a skeleton here at some point
1
3
1
news.ycombinator.com/item?id=4417...
loading . . .
EffVer: Version your code by the effort required to upgrade (2024) | Hacker News
https://news.ycombinator.com/item?id=44178876
4 months ago
0
2
0
I'll be at
@pydatalondon.bsky.social
this weekend. On Friday we are running a GPU Accelerated Python tutorial where we will dig into CUDA development in Python with Numba, RAPIDS and more. Hope to see lots of folks there!
cfp.pydata.org/london2025/t...
4 months ago
0
7
3
Dear everyone implementing a snooze function in their software If I snooze an item to a specific date and time then include that in the list of defaults next time I snooze something. It's likely I'm going to snooze a bunch of stuff to that point in time.
5 months ago
0
1
0
Microsoft's LightGBM (a popular open source gradient boosting ML library) just officially adopted EffVer as their version scheme!
lightgbm.readthedocs.io/en/latest/In...
5 months ago
0
5
0
Many Microsoft sites don't work properly in Firefox these days. Azure hasn't for a long time, but more recently Outlook web keeps logging me out and refusing to sign in again unless I clear all cookies/cache. It's getting harder and harder to fight the pressure to switch to a Chrome based browser.
5 months ago
0
1
0
TIL that Python processes on Windows can only leverage the efficiency cores of a modern Intel CPU by default. You have to run the process as administrator for it to be able to use the performance cores.
github.com/dask/distrib...
loading . . .
Dask only uses ~40% percentage of CPU on Windows · Issue #9073 · dask/distributed
Describe the issue: After multiple attempts, including setting the LocalCluster in "processes" mode to multiple combinations of n_workers and threads_per_worker, using Dask Dataframes with MapParti...
https://github.com/dask/distributed/issues/9073#issuecomment-2886749531
5 months ago
1
4
0
I think "funky junk code" is a great term for code you just blindly accept without really reading when vibe coding.
@joshwcomeau.com
www.joshwcomeau.com/blog/the-pos...
6 months ago
0
1
0
Yesterday I spent a bit of time running ollama in a GitHub Actions workflow to generate nice titles for automated PRs. I love the idea of leveraging LLMs locally in a workflow without needing to call out to a third-party API.
jacobtomlinson.dev/posts/2025/g...
6 months ago
1
3
0
Playing with Cursor again today. It tried to commit some code and the pre-commit hooks kept failing. It hasn't added the correct type annotations and mypy was complaining. It tried to fix them a couple of times and when it couldn't it gave up and decided to skip pre-commit altogether 😅
6 months ago
2
0
0
Wow Marimo just overtook Jupyter Notebooks in terms of GitHub stars, and is quickly gaining on Jupyter Lab.
6 months ago
0
5
0
Dask is a Python library for executing distributed code on remote machines. Yesterday we got an AI generated CVE reporting that Dask allows remote code execution 🤷♂️. I should hope so, it's sort of the point!
news.ycombinator.com/item?id=4343...
loading . . .
AI published a bogus CVE for my project | Hacker News
https://news.ycombinator.com/item?id=43435855
7 months ago
0
3
0
The 2006 version feels more like "my Neopets". I was starting to learn HTML around this time too, and spent ages trying to figure out how they achieved this layout. It was tables! This was before CSS layouts. You would put everything inside a table and manage your columns and rows that way.
add a skeleton here at some point
7 months ago
0
2
0
"Programming library usage is usually taught by documentation. If the goal of documentation is to turn novices into experts, then the documentation must teach. You should think of your documentation as a lesson (or series of lessons) because that's what it is."
stevelosh.com/blog/2013/09...
loading . . .
Teach, Don't Tell / Steve Losh
https://stevelosh.com/blog/2013/09/teach-dont-tell/
7 months ago
1
4
0
Today I learned why my markdown titles sometimes don't render properly.
jacobtomlinson.dev/posts/2025/w...
7 months ago
2
2
0
I just used the “what’s that over there 👉?” distraction technique to get away from my 4 year old during a game of tag. It was so effective I feel super guilty 😅
7 months ago
0
2
0
Friendly reminder to everyone with transatlantic colleagues. The US changes their clocks this weekend, but Europe doesn't until March 30th. So get ready for three weeks of calendar shenanigans!
7 months ago
0
0
0
MacBook Air M4 conversations right now
7 months ago
0
2
0
Today is Day 1 of using a different coreutils command every day for 100 days!✨ GNU Coreutils are the built-in command line tools like cat, ls and rm. I use many of them every day, but there are many others I've never heard of. So I'm going to try them all!
jacobtomlinson.dev/blog/100-day...
loading . . .
100 Days of Coreutils
I consider myself an advanced Linux and macOS user. I’m currently a software engineer developing primarily for Linux systems, and I’ve previously worked as a Linux and Mac System Administrator. Over t...
https://jacobtomlinson.dev/blog/100-days-of-coreutils/
7 months ago
1
3
0
Did you know that the KUBECONFIG environment variable behaves sort of like a path. You can specify multiple Kubernetes config files and kubectl will load and merge all the ones it finds? Lots of Kubernetes tooling supports this. But not many people know about it.
jacobtomlinson.dev/posts/2025/u...
loading . . .
Using multiple config files with kubectl and other Kubernetes tools
If you want to point tools like kubectl to a config file other than ~/.kube/config you can set the environment variable KUBECONFIG. But did you know that KUBECONFIG behaves sort of like a path, and ku...
https://jacobtomlinson.dev/posts/2025/using-multiple-config-files-with-kubectl-and-other-kubernetes-tools/
8 months ago
1
3
1
And here's me thinking I was just having a quiet afternoon...
8 months ago
0
3
0
In the EffVer version scheme you increment the version numbers based on how impactful the change will be to users. But what defines "some impact"? Is that a small effect on lots of users, or a large effect on one user. How can you differentiate?
jacobtomlinson.dev/effver
8 months ago
1
1
0
Principle of least astonishment If users expect something like a button or an API method to behave a certain way, then it should probably behave that way.
en.wikipedia.org/wiki/Princip...
loading . . .
Principle of least astonishment - Wikipedia
https://en.wikipedia.org/wiki/Principle_of_least_astonishment
8 months ago
0
3
0
reposted by
Jacob Tomlinson
Dask
8 months ago
Our February community meeting is today at 10am US Central time. We will be chatting about ongoing development of Dask and showing community demos of cools things folks have built. Come along!
docs.dask.org/en/stable/su...
loading . . .
Community — Dask documentation
https://docs.dask.org/en/stable/support.html
0
0
1
Overpay your morgage if you can, even just by a little bit. Small overpayments have an outsized impact on the amount of interest you'll save over time. With current interest rates if you increase your monthly payment by 4% it will save you 10% of your interest payments in the long run.
9 months ago
1
2
0
I am totally obsessed with Dragon Sweeper
danielben.itch.io/dragonsweeper
9 months ago
0
0
0
JAX is the latest project to adopt EffVer! Thanks
@jakevdp.bsky.social
for proposing JEP 25516!
jax.readthedocs.io/en/latest/je...
loading . . .
JEP 25516: Effort-based versioning for JAX — JAX documentation
https://jax.readthedocs.io/en/latest/jep/25516-effver.html
9 months ago
0
7
1
Despite what people say it can be ok to rebuild things that already exist. But do so defensively, and only when absolutely necessary, because everything you build needs to be maintained. In 2023 I gave a talk at PyCon UK about figuring out when to rebuild things.
jacobtomlinson.dev/talks/2023-0...
9 months ago
1
2
0
Load more
feeds!
log in