Sign in

Johannes B. Gruber

@jbgruber.bsky.social
1.5K followers 1K following 508 posts

Senior Researcher @gesis.org // Data Editor @polcommjournal.bsky.social 🔎 political communication (#polsky + #commsky) with text analysis and #rstats (#opendata + #openscience) 🌏 JohannesBGruber.eu 👨‍💻 research software github.com/JBGruber

PostsRepliesMedia
Reposted by Johannes B. Gruber
Christina Viehmann @christinaviehmann.bsky.social · 24/09/2026
🔍 How robust are findings based on topic modeling? Our 🏆 Top Faculty Award article on #TopicModeling + #MultiverseAnalysis is now #openaccess in Communication Methods & Measures. 📄 doi.org/10.1080/19312458.2026.2714769 🔁 gesistsa.github.io/multiverse_tm/ wonderful teamwork @gesis.org 👇
doi.org
Beyond beyond standardization: studying robustness of empirical claims based on topic modeling through multiverse analysis
While topic modeling is widely used, some scholars have already announced that the application of topic modeling in social science research is impossible to standardize. Meanwhile, researchers have...
1268
Johannes B. Gruber @jbgruber.bsky.social · 23/09/2026
Alright, let's give this paper a final read before resubmitting it 🤗
View of a laptop with text with the Brisbane City Botanic Gardens in the background.
040
Johannes B. Gruber @jbgruber.bsky.social · 23/09/2026
Shoutout to @m-dot-brown.bsky.social, @orangechair.org , Gabe Maldoff, @solmg.bsky.social, @zevesanderson.com, & @michaelzimmer.bsky.social for this excellent work. I used it to completely revamp the implications section in my web scraping course and I find myself citing it.
journals.sagepub.com
Sage Journals: Discover world-class research
Subscription and open access journals from Sage, the world's leading independent academic publisher.
130
Johannes B. Gruber @jbgruber.bsky.social · 21/09/2026
I needed to come to Brisbane to see people being good at riding e-scooters. I wasn't even aware such a thing existed. But quite often I see people in groups casually doing a wheelie here. And just now, someone drifted around a corner at full speed on a lime. Pretty wild.
010
Reposted by Johannes B. Gruber
GESIS - Leibniz-Institut für Sozialwissenschaften @gesis.org · 14/09/2026
Many people misjudge how many migrants actually live in their community and how well they are integrated. Berbée, Brinkmann, Gallegos Torres, Lange, Naumann, Sommerfeld, Perceptions of migration and integration in Germany: The role of regional context and migrants’ origin, doi.org/10.1093/pnas...
045
Johannes B. Gruber @jbgruber.bsky.social · 09/09/2026
New #rstats 📦: mediacloud2 (happy about name recommendations). Since the exitsting R packages were stale and I needed data, I wrote a new package. MediaCloud is an amazing resource for getting news media data, especially if you rehydrate the articles (e.g., through paperboy).
jbgruber.github.io
MediaCloud API (v4) Wrapper
A simple wrapper for version 4 of the MediaCloud API, which provides programmatic access to the MediaCloud archive of online news content (<https://www.mediacloud.org>).
0218
Johannes B. Gruber @jbgruber.bsky.social · 09/09/2026
To prepare for this talk, I created an entire R package (with an actual purpose) from scratch in less than 8 hours (would have been less without the meetings in between). Let's see how it does while I'm using it for work today.
jbgruber.github.io
MediaCloud API (v4) Wrapper
A simple wrapper for version 4 of the MediaCloud API, which provides programmatic access to the MediaCloud archive of online news content (<https://www.mediacloud.org>).
011
Reposted by Johannes B. Gruber
MZES Social Science Data Lab @mzes-ssdl.bsky.social · 08/09/2026
▶️ Social Science Data Lab: Fall 2026 Events Four input talks by great researchers (see below ⤵️)! 🗓️ Details & Zoom: socialsciencedatalab.mzes.uni-mannheim.de/page/events/ 👥 Organizers: @rubac.bsky.social, @denis-cohen.bsky.social, Nadia Granato and Alexander Wenz
Upcoming
2026-12-02 | Workshop | Johannes B. Gruber (GESIS – Leibniz-Institut für Sozialwissenschaften)
Vibe, Check: Authoring R Packages for Open Science in 2026 with usethis, devtools, and Coding Agents
more

2026-11-04 | Input talk | Anne-Kahtrin Stroppe (University of Greifswald)
Measuring Infrastructural Deprivation from Big Geodata: On the Inferential Validity of OpenStreetMap Proxies
more

2026-10-14 | Input talk | Valentyn Melnychuk (LMU Munich)
Causal ML for treatment effect estimation
more

2026-09-16 | Input talk | Marc Ratkovic (University of Mannheim)
Harnessing GPT for Enhanced Academic Writing: Evidence from a Field Experiment with Early-Career Researchers in the Social Sciences
more
264
Johannes B. Gruber @jbgruber.bsky.social · 01/09/2026
Right after my last post I see this. Absolutely. I also hate how AI is shoved in my face constantly. There are a few tasks at which it is great, and a million where I don't need or want AI and I especially hate that everything is called Gemini or Copilot now.
061
Johannes B. Gruber @jbgruber.bsky.social · 01/09/2026
Qwen3.8 27B comes extremely close to Claude in programming tasks. It's been said, but I wanted to share a test I ran in #rstats for {paperboy} 📦. TLDR: Qwen in opencode got it done in 28 mins, Claude Code ( Opus 5) got it done in 3.5. Results differ a little, but both are perfect solutions.
1165
Johannes B. Gruber @jbgruber.bsky.social · 24/08/2026
rollama 0.3.1 just hit CRAN! 🥳 Highlight of the new version is that it now supports batch annotation of images with structured outputs. Screenshot from the updated vignette below:
Annotating Several Images with Structured Output

You can combine this setup with the structured output workflow to get a systematic classification of images. First, define the schema for the fields you want back for each image:

```r
animal_schema <- create_schema(
  dog = type_boolean(),
  cat = type_boolean(),
  human = type_boolean(),
  bird = type_boolean()
)
animal_schema
#> <rollama structured output schema>
#> ├─object: <NULL> (required)
#> └─properties
#>   ├─boolean: <dog>  (required)
#>   ├─boolean: <cat>  (required)
#>   ├─boolean: <human>  (required)
#>   └─boolean: <bird>  (required)
``
184
Johannes B. Gruber @jbgruber.bsky.social · 19/08/2026
Had a fantastic warm welcome at @qutdmrc.bsky.social where I'll be spending the next 8 weeks working on CSS and data donation topics with @antmandan.bsky.social and meeting fantastic new people every day so far 🤗
2131
Reposted by Johannes B. Gruber
Aleksandra Urman @aurman21.bsky.social · 12/08/2026
Thanks @adfichter.eurosky.social :) And it was exciting and refreshing to write in a non-academic genre for once! Glad I had the opportunity!
0103
Reposted by Johannes B. Gruber
Katrin Weller @kwelle.bsky.social · 04/08/2026
*JOB* My group at @gesis.org has an open position: we are looking for a candidate to support the expansion of our Trusted Research Environment for providing access to sensitive research data: gesis.jobs.personio.de/job/2707934?...
gesis.jobs.personio.de
Research Infrastructure Specialist (Postdoc) for Trusted Research Environments (DSS-26) | Jobs at GESIS – Leibniz-Institut für Sozialwissenschaften
GESIS is one of the world's leading social science infrastructure facilities, supporting researchers at all levels of their research projects with expertise and infrastructure services. We help ensure...
12226
Reposted by Johannes B. Gruber
Katrin Weller @kwelle.bsky.social · 28/07/2026
While we are still waiting for the final funding decision (which will be made by the BMFTR) for RIDLOP, we are delighted to see the Wissenschaftsrat's report that was published yesterday. So keeping our fingers crossed for the last steps in the evaluation process!
2163
Johannes B. Gruber @jbgruber.bsky.social · 27/07/2026
There is some hype in the world of AI this month and it's about open weight models 😮 Today, Kimi-K3 will be published and on paper, it's head to head with the biggest commercial models. You can't run it (unless you happen to have a supercomputer), but still exciting that you can download it!
huggingface.co
moonshotai/Kimi-K3 · Upcoming release · Hugging Face
The latest model from Moonshot AI.
040
Reposted by Johannes B. Gruber
GESIS - Leibniz-Institut für Sozialwissenschaften @gesis.org · 27/07/2026
#RIDLOP #Wissenschaftsrat #ResearchInfrastructure The German Science and Humanities Council (Wissenschaftsrat) supports the implementation of RIDLOP, the Research Infrastructure for Data from Large Online Platforms, in its statement published today.
1187
Johannes B. Gruber @jbgruber.bsky.social · 15/07/2026
New preprint: my contribution for @marhai.bsky.social and @emesedomahidi.bsky.social 's The Handbook of Computational Communication Research discusses the transition of the field from bag-of-words to word embeddings to transformer based contextualized embeddings. doi.org/10.31235/osf...
2122
Johannes B. Gruber @jbgruber.bsky.social · 06/07/2026
If you have any questions about this job, let me know! It is a great opportunity and very important work!
043
Reposted by Johannes B. Gruber
Daniel Thiele @thieled.bsky.social · 03/07/2026
Thanks @christinaviehmann.bsky.social, @jbgruber.bsky.social and @gesis.org for the invitation! I had an absolutely fantastic time with many inspiring conversations and new connections with excellent researchers. Thanks for treating me so well, Cologne! #CSS #DSS
0111
Johannes B. Gruber @jbgruber.bsky.social · 26/06/2026
Finally back home again, sleeping between my loved ones: my wife, our dog, and our Midea Portasplit 12000 BTU 3.5kW air conditioner 💗
010
Johannes B. Gruber @jbgruber.bsky.social · 24/06/2026
3 conferences in the last 3 weeks done! Was ist too much? Maybe, I'm definitely exhausted. But it was great to see so many colleagues doing new and interesting research, and I feel updated about what's happening in #commsky, data archiving, and #polsky
140
Johannes B. Gruber @jbgruber.bsky.social · 24/06/2026
I read an article in a German newspaper yesterday that passionately argued for age restricting social media. Just a reminder that this is a very stupid idea. pluralistic.net/2026/06/23/d...
pluralistic.net
Pluralistic: Spying on kids to save kids from spying is very, very stupid (23 Jun 2026) – Pluralistic: Daily links from Cory Doctorow
011
Reposted by Johannes B. Gruber
GESIS - Leibniz-Institut für Sozialwissenschaften @gesis.org · 22/06/2026
#pride26 #pridemonth This Pride Month we want to highlight two very different publications: a practical guide on how to account for gender diversity in evaluation, and a cartoon on what diversity looks like in everyday life. 🔗doi.org/10.31244/zfe... 🎨pushbacklash.eu/wp-c...
0103
Reposted by Johannes B. Gruber
Katrin Weller @kwelle.bsky.social · 19/06/2026
#cessda50 was such a great event - and lots of fun being there with my amazing colleagues. Thanks to @cessda.bsky.social for bringing the community together
071
Reposted by Johannes B. Gruber
EPSS @epssnet.bsky.social · 19/06/2026
About to begin-💡 EPSS Showcase: Using AI in Political Science Research virtual.oxfordabstracts.com/event/75765/... 15:20-17:00 | Lagan (ICC), with @kenbenoit.bsky.social, @mdigiuseppe.bsky.social, @jbgruber.bsky.social, Allison Wun-hui Koh, Simon Luck and Leonce Röth
virtual.oxfordabstracts.com
OA Virtual conferences
041
Johannes B. Gruber @jbgruber.bsky.social · 18/06/2026
Photo evidence by @aytalina.bsky.social 😃
082
Reposted by Johannes B. Gruber
Katrin Weller @kwelle.bsky.social · 17/06/2026
Happy Birthday to @cessda.bsky.social ! Looking forward to an exiting conference progam here in Bergen, Norway.
072
Johannes B. Gruber @jbgruber.bsky.social · 13/06/2026
Einen Monat später immer noch nicht gefixt...
000
Reposted by Johannes B. Gruber
Johannes B. Gruber @jbgruber.bsky.social · 05/05/2026
@gruene.de ihr habt da irgendwas komisch eingestellt. Wenn man auf bsky.app/profile/grue... geht, kommt man zu @felixbanaszak.bsky.social . Oder soll das so?
bsky.app
101
Johannes B. Gruber @jbgruber.bsky.social · 08/06/2026
Announcing #rstats {atrrr} 0.2.0 is on CRAN now! 🥳
170
Johannes B. Gruber @jbgruber.bsky.social · 08/06/2026
Posting live from stage at #ica26 where I present our #rstats 🎁 {atrrr} which can interact with 🦋
0123
Reposted by Johannes B. Gruber
Jakob Ohme @dscheykopp.bsky.social · 06/06/2026
Hi #ica26. We have an open 4.5 yr Postdoc position @weizenbauminstitut.bsky.social Berlin in PolComm/Comp Social Scienes on opinion dynamics in climate topics. Hit me up if you want a to talk about it in CT or send to colleagues who might be interested. www.weizenbaum-institut.de/news/detail/...
01916
Reposted by Johannes B. Gruber
Philipp K. Masur @masurphil.bsky.social · 05/06/2026
Hey #ica26, I recently wrote a little something that I believe might be interesting to many. Over years I tried to find a way to properly keep up to date with new journal publications across those journals that are most important to me... (1/n)
15015
Reposted by Johannes B. Gruber
Katrin Weller @kwelle.bsky.social · 07/06/2026
Computational methods division top paper goes to Paul Balluff, @christinaviehmann.bsky.social, Maximilian Linde, @yapete.bsky.social, Jun Sun, Chung-hong Chan from @gesis.org. Huge congrats everyone!
4285
Johannes B. Gruber @jbgruber.bsky.social · 05/06/2026
The dedication of some #ica26 presenters! Kunhao Yang got delayed by a day by a Taifun and used it as an example 8n in his presentation he gave after walking on stage straight from the airport 😮
020
Johannes B. Gruber @jbgruber.bsky.social · 05/06/2026
Very happy I made it to #ica26, and not just for the great breakfast view 🤓
View from Hotel Sky, Cape Town breakfast area
1150
Reposted by Johannes B. Gruber
Jenny Bryan @jennybryan.bsky.social · 19/05/2026
I have to update one of the most inflammatory things I said back on the bird site, but for the LLM era: 🔥 🔥 🔥 🔥 If your agent prefaces every tool call with `cd /the/current/workspace &&`, I will come set your data center on fire 🔥 🔥 🔥 🔥
2610012
Reposted by Johannes B. Gruber
Johannes B. Gruber @jbgruber.bsky.social · 14/01/2026
I will teach Web Scraping and Data Management at @essexsummerschool.bsky.social this year! Learn to: - manage research data (in tables, files, databases etc.) 📂 - Systematically get data from the internet (APIs, scraping, browser automation) 🤖 - wrangle your data in #rstats to make it useful 📈
essexsummerschool.com
2H Introduction to Web Scraping and Data Management for Social Scientists – Essex Summer School in Social Science Data Analysis
0224
Johannes B. Gruber @jbgruber.bsky.social · 05/05/2026
@gruene.de ihr habt da irgendwas komisch eingestellt. Wenn man auf bsky.app/profile/grue... geht, kommt man zu @felixbanaszak.bsky.social . Oder soll das so?
bsky.app
101
Johannes B. Gruber @jbgruber.bsky.social · 04/05/2026
PSA: I nearly got ❗scammed ❗today. There is a surprising amount of correct details in this message, including the dates of my post #ica26 stay in Cape Town, my name and phone number and even the correct booking code. I still checked via the booking com chat - they never texted me!
113
Reposted by Johannes B. Gruber
hackingcommsci @hackingcommsci.bsky.social · 02/05/2026
Marvin wanted to introduce the second set of breakout sessions for #HackICA26: 🖼️Multimodal data analysis @Nadezhda Ozornina 💻From Vibe to Rigor: Claude Code in Social Science @jbgruber.bsky.social 🌐Hosting academic websites on GitHub @feloe.bsky.social Register now! www.icahdq.org/events/Event...
072
Reposted by Johannes B. Gruber
Nicola Rennie @nrennie.bsky.social · 29/04/2026
📊 Five #ggplot2 functions I wish I'd known about earlier 📊 I've written a short blog (with examples) of some of the lesser-known {ggplot2} functions and arguments that make it easier to create better charts! Link: nrennie.rbind.io/blog/five-gg... #RStats #DataViz
nrennie.rbind.io
Five ggplot2 functions I wish I’d known about earlier – Nicola Rennie
There are a few small tweaks you can make to your ggplot2 code to improve your charts. However, they’re not often mentioned. So here’s a few functions and arguments I wish I’d known about earlier.
616549
Johannes B. Gruber @jbgruber.bsky.social · 29/04/2026
I updated to R 4.6 this morning. Time to run my good old script again that install all my old packages from the previous R version again 😀
gist.github.com
get_old_packages.R
GitHub Gist: instantly share code, notes, and snippets.
020
Johannes B. Gruber @jbgruber.bsky.social · 25/04/2026
I had to either present or be discussant during all 3 panel slots yesterday at #COMPTEXT2026, so I didn't understand how difficult it is to choose between 6 parallel sessions that all look great! Can I please see them all 😭
010
Reposted by Johannes B. Gruber
Axel Bruns @snurb.info · 24/04/2026
🆕 I am exceptionally pleased to announce the release of the 'twitter' issue of M/C Journal, which I co-edited with @hermida.bsky.social. This celebrates / commiserates / memorialises / laments the 20th anniversary of what used to be #Twitter. #mcjournal journal.media-culture.org.au/index.php/mc...
M/C Journal 'twitter' issue cover image, created by Alfred Hermida using Google Nano-banana.
23324
Reposted by Johannes B. Gruber
The COMPTEXT Association @comptext.bsky.social · 24/04/2026
The Annual General Meeting is under way at #COMPTEXT2026 – you can still make it and make your voice heard!
063
Reposted by Johannes B. Gruber
Emil Hvitfeldt @emilhvitfeldt.bsky.social · 19/04/2026
If you are doing any #quarto slidecrafting, i have been trying really hard to keep this page updated with everything I have done emilhvitfeldt.com/project/slid...
Screenshot of grid of some of my quarto extensions in a grid layout
27221
Johannes B. Gruber @jbgruber.bsky.social · 18/04/2026
I love the open source community! I wondered if you can run Windows in a Docker container on Linux, and yes you can and yes, that includes older versions of Windows 😀
161