Sign in

Clemens Brunner

@cbrnr.bsky.social
78 followers 226 following 35 posts

I love Python, R, and Julia, and I combine their power to do neuroscience, EEG processing, machine learning, and applied statistics. I am currently working as a senior scientist at the University of Graz, Austria. cbrnr.github.io · scholar.social/@cbrnr

PostsRepliesMedia
Clemens Brunner @cbrnr.bsky.social · 06/10/2026
MNELAB v1.6.0 is out! This release includes initial support for pipelines, which allow users to replay several processing steps in one go. It also includes a Line Noise removal tool à la Cleanline. github.com/cbrnr/mnelab... #eeg #python 🧠 🐍
010
Clemens Brunner @cbrnr.bsky.social · 17/02/2026
🚀 MNELAB 1.2.0 is out! This release includes support for reading the new BrainVision Recording Format (BVRF) (www.brainproducts.com/support-reso...). It also includes light and dark app icons on macOS and a redesigned XDF chunk dialog. github.com/cbrnr/mnelab
brainproducts.com
BrainVision Recording Format (BVRF) | Brain Products GmbH
BrainVision Recording Format (BVRF) - description, documentation and BVRF license agreement. An EEG recording consists of...
010
Clemens Brunner @cbrnr.bsky.social · 23/01/2026
🚀 MNELAB 1.1.0 is out! This release includes ICLabel, a classifier that automatically assigns independent components to one of seven categories (e.g., brain, eye, heart, ...). 🔗 github.com/cbrnr/mnelab 👉 Install it as a standalone app (macOS and Windows), or run it via `uvx mnelab`. Enjoy! 🎉
020
Clemens Brunner @cbrnr.bsky.social · 28/07/2025
I've just released MNELAB 1.0.4 (a GUI for MNE-Python, a package for analyzing EEG/MEG data), which now includes standalone installers for macOS and Windows: github.com/cbrnr/mnelab #EEG #Python
github.com
GitHub - cbrnr/mnelab: MNELAB – a GUI for MNE
MNELAB – a GUI for MNE. Contribute to cbrnr/mnelab development by creating an account on GitHub.
061
Reposted by Clemens Brunner
Florian Aigner @florianaigner.at · 23/07/2025
Newsflash: Fliegen kann man nicht billiger machen. Man kann nur erreichen, dass die, die fliegen, weniger zahlen. Die Schäden, die dadurch entstehen, müssen von allen anderen gezahlt werden. Hätten wir Kostenwahrheit im Transport, würden wir längst hektisch Highspeed-Zugnetze bauen.
732798835
Clemens Brunner @cbrnr.bsky.social · 16/04/2025
#rstats 4.5 now includes the `penguins` data frame! 🚀
010
Clemens Brunner @cbrnr.bsky.social · 16/04/2025
When installing #rstats on #macos, installing packages defaults to the system library. R won't use the user library (~/Library/R/arm64/4.5/library) unless I *manually* create it. On Linux and Windows, R creates this location automatically. Is this intentional? It feels unintuitive and inconsistent.
010
Clemens Brunner @cbrnr.bsky.social · 28/03/2025
Do you use #vscode? Have you ever wanted the Explorer view in the sidebar to just show all tracked files under version control? I made a feature request, give it a thumbs up if you think it would be useful! github.com/microsoft/vs...
github.com
Only show tracked files/folder in Explorer view · Issue #244951 · microsoft/vscode
I don't know if I'm missing something, but currently I don't think it is possible to have the Explorer view only show tracked (i.e., under version control) files/folders. I know that there is a set...
010
Clemens Brunner @cbrnr.bsky.social · 05/03/2025
Buchempfehlung: www.acityonmars.com Die Autoren sind auch hier auf Bsky zu finden (ich tagge sie absichtlich nicht).
acityonmars.com
A CITY ON MARS
Earth is not well. The promise of starting life anew somewhere far, far away—no climate change, no war, no Twitter—beckons, and settling the stars finally seems within our grasp. Or is it? Critica...
021
Clemens Brunner @cbrnr.bsky.social · 19/02/2025
#Electron apps cannot be resized on #Wayland anymore, at least on #GNOME. Given that GNOME defaults to Wayland nowadays, I wonder why so few people experience this problem, since it affects VS Code, Signal, Discord, and so on. If you can help, please check out github.com/electron/ele.... #Linux
github.com
Resize window doesn't work on Wayland · Issue #44543 · electron/electron
Preflight Checklist I have read the Contributing Guidelines for this project. I agree to follow the Code of Conduct that this project adheres to. I have searched the issue tracker for a bug report ...
010
Clemens Brunner @cbrnr.bsky.social · 10/02/2025
Ja, ist mir schon vor einiger Zeit positiv aufgefallen! Jetzt fehlt nur mehr ein Mastodon-Account 😉.
110
Clemens Brunner @cbrnr.bsky.social · 10/02/2025
I'd say yes, because instantiating a project is instantaneous (if you've downloaded the packages before). However, there are alternatives, such as running just the script, or even `uvx python` (short for `uv tool run python`) for spawing a REPL. I'm still learning new things about uv every day too!
000
Clemens Brunner @cbrnr.bsky.social · 10/02/2025
Exactly! Alternatively, if you don't want to create a project, you can even include it in the script directly (see docs.astral.sh/uv/guides/sc...).
docs.astral.sh
Running scripts | uv
A guide to using uv to run Python scripts, including support for inline dependency metadata, reproducible scripts, and more.
100
Clemens Brunner @cbrnr.bsky.social · 10/02/2025
And I also agree, maybe it's still too early times. IDE integration could also be much improved with native uv support for example!
000
Clemens Brunner @cbrnr.bsky.social · 10/02/2025
I guess my point is: uv is the greatest thing Python tooling has ever seen, but you cannot and should not expect it to work just like pip and venv!
100
Clemens Brunner @cbrnr.bsky.social · 10/02/2025
uv requires you to re-think many things you have gotten used to. It took me a while to wrap my head around. It doesn't work like pip, but you can (but probably shouldn't) use `uv pip` (e.g. you can `uv pip install` packages into the corresponding venv, which you can manually create with `uv venv`).
210
Clemens Brunner @cbrnr.bsky.social · 10/02/2025
Using the official installers is a good solution! But I don't think you should blame uv here, it sounds like an IDE-related issue. In VS Code, you can set the interpreter for a project, then it will use the venvby default (`python` works). Also, there is no global Python in uv (you don't need it).
110
Clemens Brunner @cbrnr.bsky.social · 10/02/2025
I think this is kind of the point, you should never have to think about environments. If you hate running `uv python`, then you can always activate the underlying venv to use `python`. Although I'd be interested to know what's bothering you.
100
Clemens Brunner @cbrnr.bsky.social · 04/02/2025
MNELAB, a GUI for #EEG/#MEG analysis in #Python, has reached the v1.0.0 milestone! - UI improvements such as an improved sidebar - Improved Montage dialog - Improved Filter dialog - A new dialog to inspect channel statistics - Improved export to BrainVision format github.com/cbrnr/mnelab
github.com
GitHub - cbrnr/mnelab: MNELAB – a GUI for MNE
MNELAB – a GUI for MNE. Contribute to cbrnr/mnelab development by creating an account on GitHub.
2143
Clemens Brunner @cbrnr.bsky.social · 22/01/2025
Python 3.13 currently has a known issue on Windows that prevents users from pasting code snippets containing indentation into the new REPL. The Python development team is looking for someone with Windows expertise to help test a proposed fix: github.com/python/cpyth... #Python #Windows #VSCode
github.com
Pasting a function definition does not work in 3.13 REPL with Windows Terminal · Issue #124096 · python/cpython
Bug report Bug description: I use Python downloaded from python.org without using a graphical environment such as IPython. Instead, I use the Windows Terminal with the REPL built into python.exe. I...
010
Clemens Brunner @cbrnr.bsky.social · 13/01/2025
Ja, vermutlich damit dann noch mehr Chalets in die Berge gebaut werden können...
010
Clemens Brunner @cbrnr.bsky.social · 19/12/2024
Does anyone else find it irritating that the default behavior of #RStats on #macOS installs packages to the system library instead of the user library? I think the problem only occurs if the directory does not exist. If I manually create it, then everything works. Is this a bug? Or is it just me?
000
Clemens Brunner @cbrnr.bsky.social · 10/12/2024
Also, Excel cannot open more than one file with the same name, but in different folders, at the same time (at least on macOS).
020
Clemens Brunner @cbrnr.bsky.social · 10/12/2024
Here's my #AdventOfCode Day 6 solution in Julia: github.com/cbrnr/aoc202... Not optimized at all, so Part 2 takes a few seconds, but I'm quite happy with the solution. #julialang
github.com
aoc2024/06.jl at main · cbrnr/aoc2024
Contribute to cbrnr/aoc2024 development by creating an account on GitHub.
040
Clemens Brunner @cbrnr.bsky.social · 09/12/2024
Naja, Grazer Radweg wäre es, wenn man da zwischen den Schienen fahren müsste und es nicht extra gekennzeichnet ist 😆.
011
Clemens Brunner @cbrnr.bsky.social · 06/12/2024
Here's my #AdventOfCode Day 5 solution in #Julia: github.com/cbrnr/aoc202... Nothing fancy to see here (no graph-related algorithms), just some nice function vectorizations made easy in Julia. In Part 2, I simply swap items for each incorrect rule until all the rules are satisfied.
github.com
aoc2024/05.jl at main · cbrnr/aoc2024
Contribute to cbrnr/aoc2024 development by creating an account on GitHub.
010
Clemens Brunner @cbrnr.bsky.social · 04/12/2024
Here's my #AdventOfCode Day 4 solution in #Julia: github.com/cbrnr/aoc202... Fairly straightforward and OG implementation I think, I'm just manually checking all directions in a matrix of chars.
github.com
aoc2024/04.jl at main · cbrnr/aoc2024
Contribute to cbrnr/aoc2024 development by creating an account on GitHub.
010
Clemens Brunner @cbrnr.bsky.social · 03/12/2024
Yeah, I guess (2) is the correct definition from a technical point of view (since methods are just callable attributes). But I still think of attributes vs methods, maybe because other languages make a clearer distinction.
010
Clemens Brunner @cbrnr.bsky.social · 03/12/2024
(1) for sure!
110
Clemens Brunner @cbrnr.bsky.social · 03/12/2024
Here's my #AdventOfCode Day 3 solution in #Julia: github.com/cbrnr/aoc202... Part 2 took me way too long, because I was trying to create a regex which only captures multiplications between "do()" and "don't". It was easy when I did the opposite (searching for parts between "don't()" and "do()").
github.com
aoc2024/03.jl at main · cbrnr/aoc2024
Contribute to cbrnr/aoc2024 development by creating an account on GitHub.
010
Clemens Brunner @cbrnr.bsky.social · 02/12/2024
That's what I ended up doing as well, but I'm sure there's a super-optimized solution on Reddit (I haven't checked yet). www.reddit.com/r/adventofco...
reddit.com
-❄️- 2024 Day 2 Solutions -❄️-
000
Clemens Brunner @cbrnr.bsky.social · 02/12/2024
Here's my #AdventOfCode Day 2 solution in #Julia: github.com/cbrnr/aoc202... I used the `InvertedIndices` module, which allowed me to elegantly exclude a single element from a vector. For example, to subset a vector `x` without the third item: x[Not(3)] (This is equivalent to x[-3] in #RStats.)
github.com
aoc2024/02.jl at main · cbrnr/aoc2024
Contribute to cbrnr/aoc2024 development by creating an account on GitHub.
000
Clemens Brunner @cbrnr.bsky.social · 01/12/2024
Have you tried vscode.dev?
vscode.dev
Visual Studio Code for the Web
Build with Visual Studio Code, anywhere, anytime, entirely in your browser.
110
Clemens Brunner @cbrnr.bsky.social · 01/12/2024
Here's my #AdventOfCode Day 1 solution in #Julia: github.com/cbrnr/aoc202...
github.com
aoc2024/01.jl at main · cbrnr/aoc2024
Contribute to cbrnr/aoc2024 development by creating an account on GitHub.
220
Clemens Brunner @cbrnr.bsky.social · 19/11/2024
Here’s a book that explores this question (I haven’t read it yet): www.goodreads.com/book/show/19...
goodreads.com
Our Mathematical Universe: My Quest for the Ultimate Na…
Our Mathematical Universe is a journey to explore the m…
000
Clemens Brunner @cbrnr.bsky.social · 18/11/2024
If anyone wants to create warming stripes with R (for any region), I've written a short blog post: cbrnr.github.io/blog/warming...
cbrnr.github.io
Warming stripes with R – Clemens Brunner
Warming stripes are a popular way to represent average temperature changes in a particular location over time. In this post, I show how to generate these visualizations using R.
000