Tomasz Kalinowski's Avatar

Tomasz Kalinowski

@t-kalinowski.bsky.social

Software Engineer at Posit PBC. I mostly post about R, Python, and Deep Learning. Github: https://github.com/t-kalinowski

1,929 Followers  |  933 Following  |  30 Posts  |  Joined: 07.11.2024  |  1.7612

Latest posts by t-kalinowski.bsky.social on Bluesky

A screenshot of my JSM 2025 Agenda Chat bot, featuring the answer to "when is Mitchell O'Hara-Wild presenting".

A screenshot of my JSM 2025 Agenda Chat bot, featuring the answer to "when is Mitchell O'Hara-Wild presenting".

There's so many parallel sessions at #JSM2025 that it's hard to choose where to go, so I web-scraped the schedule and made a chatbot to help.

I've made it public, so hopefully it can help you too - try it out πŸ‘‰ shiny.mitchelloharawild.com/jsm2025/

04.08.2025 15:32 β€” πŸ‘ 12    πŸ” 5    πŸ’¬ 5    πŸ“Œ 0

This would be a prime example to showcase quickr!

22.07.2025 17:07 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

ragnar should support this if you provide a custom `embed` function, e.g., using a local graph embedding model via reticulate, or if you just insert chunks with precomputed embeddings. This would be a good example for us to add to docs! Feel free to open a github issue if you run into any problems!

22.07.2025 17:03 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The @posit.co new reticulate package with managed/uv python implementation really changed the game (and speed) of using modules without a huge condaenv overhead. In scripts but also big for packages with python deps.

09.07.2025 13:20 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
How to create your own RAG applications in R See how to query documents using natural language, LLMs, and Rβ€”including dplyr-like filtering on metadata. Plus, learn how to use an LLM to extract structured data for text filtering.

RAG has come to the tidyverse! Check out my step-by-step #InfoWorld tutorial on how to use the {ragnar} and {ellmer) #RStats πŸ“¦s to answer natural language questions about a document or Web page.
www.infoworld.com/article/4020...

#GenAI #LLMs

17.07.2025 12:36 β€” πŸ‘ 27    πŸ” 11    πŸ’¬ 3    πŸ“Œ 0

It works with shiny! We’ve deployed ragnar on a few connect apps already.
Some models are more or less eager to call tools; it depends on the model. If you’re seeing an error, please open a github issue!

17.07.2025 09:36 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Changelog

Other highlights:

- `read_as_markdown()` handles HTML better, now supports selectors
- Store inspector now displays chunk context and looks nicer.
- More embedding providers (Google, Databricks, Bedrock)

Full changelog: ragnar.tidyverse.org/news/

15.07.2025 13:44 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Preview
Retrieval-Augmented Generation (RAG) Workflows Provides tools for implementing Retrieval-Augmented Generation (RAG) workflows with Large Language Models (LLM). Includes functions for document processing, text chunking, embedding generation, storag...

#ragnar 0.2.0 is on CRAN #rstats!

It has a MUCH improved chunker; markdown_chunk() picks better boundaries, builds context, segments by headings, and handles overlapping chunks. Oh, and ragnar_retrieve() can deoverlap retrieved chunks now.

Website got a big update too: ragnar.tidyverse.org

15.07.2025 13:44 β€” πŸ‘ 41    πŸ” 16    πŸ’¬ 4    πŸ“Œ 1

Can’t believe I forgot to share this back in February... Check out this intro to RAG by @christophscheuch.bsky.social! blog.tidy-intelligence.com/posts/rapid-...

RAG before ragnar!

It’s also a good intro to ragnar internals, since ragnar makes similar implementation choices.

14.07.2025 18:25 β€” πŸ‘ 8    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Preview
Let’s Git started | Happy Git and GitHub for the useR Using Git and GitHub with R, Rstudio, and R Markdown

You might enjoy this (even if you don’t use R): happygitwithr.com

06.07.2025 17:37 β€” πŸ‘ 8    πŸ” 2    πŸ’¬ 3    πŸ“Œ 0
Original post on fosstodon.org

New post: https://jcarroll.com.au/2025/06/29/counting-digits-quickly/

What if you could just wave a magic wand over your R #rstast :rstats: code and have it transform into something that ran as fast as or faster than C? @t_kalinowski's {quickr} 'R to Fortran Transpiler' does that for you! […]

29.06.2025 02:00 β€” πŸ‘ 13    πŸ” 8    πŸ’¬ 0    πŸ“Œ 0
Preview
Deep Learning with R, Third Edition Deep learning from the ground up using R and the powerful Keras library!</b> Deep Learning with R, Third Edition</i> introduces deep learning from scratch with examples that use the R language and th...

I’m very pleased to announce that a preview of the 3rd Edition of Deep Learning with R is now available! mng.bz/X7xa

The book is 50% off through July 8!

20.06.2025 17:58 β€” πŸ‘ 97    πŸ” 19    πŸ’¬ 0    πŸ“Œ 1

Easiest way is probably to pin all package versions to a known working date:

py_require(exclude_newer = "2025-06-09")

10.06.2025 21:39 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - t-kalinowski/quickr: R to Fortran Transpiler R to Fortran Transpiler. Contribute to t-kalinowski/quickr development by creating an account on GitHub.

#RStats WHAT MAGICKS IS THIS?!?!?! github.com/t-kalinowski...

03.06.2025 22:08 β€” πŸ‘ 32    πŸ” 12    πŸ’¬ 5    πŸ“Œ 0

We recently added a new "Getting Started" guide ragnar.tidyverse.org/articles/rag...

Blog post coming soon!

30.05.2025 22:39 β€” πŸ‘ 6    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0

I wonder what happens if you train with a regularizer that penalizes super weights like this. I’m guessing the model quantizes better, maybe becomes more robust, or makes more efficient use of weights.

28.05.2025 17:52 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
A digital illustration on a pink background with white dots. A raven with a piece of paper in its beak in a colorful hexagon covered in various graphs and doodles. Dotted lines extend from the hexagon to four white rectangular documents with horizontal lines representing text. An 'AI' icon is in the upper right corner

A digital illustration on a pink background with white dots. A raven with a piece of paper in its beak in a colorful hexagon covered in various graphs and doodles. Dotted lines extend from the hexagon to four white rectangular documents with horizontal lines representing text. An 'AI' icon is in the upper right corner

Introducing the btw package for teaching LLM chat apps about your #RStats package!

Inject "invisible" messages into chats via system prompts and use tool calls to dynamically fetch context when needed.

Check out a dplyr example and learn more in @simonpcouch.com's post! posit.co/blog/custom-...

27.05.2025 16:04 β€” πŸ‘ 42    πŸ” 12    πŸ’¬ 2    πŸ“Œ 2
Preview
shikokuchuo{net}: mirai 2.3.0 Advancing Async Computing in R

mirai - minimalist async framework for #RStats - released as an 'r-lib' package.

Blog post: Advancing Async Computing in R.
shikokuchuo.net/posts/26-mir...

mirai provides event-driven async for #RShiny and parallel processing for purrr #tidyverse.

Really excited to be working on this at Posit!

23.05.2025 14:11 β€” πŸ‘ 64    πŸ” 19    πŸ’¬ 1    πŸ“Œ 0

S7 is used very heavily in ellmer. I would suggest using it.

20.05.2025 12:59 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
The package logo, a small cute elephant holding a quill and writing promptdown

The package logo, a small cute elephant holding a quill and writing promptdown

Just made promptdown public. It's a plain-text interface for working with LLMs using literate programming.

See and edit the full prompt each turn.

No cramped input boxes, no hidden context, no append-only chat.

Still early alpha, feedback welcome!

github.com/t-kalinowski...

08.05.2025 15:36 β€” πŸ‘ 30    πŸ” 9    πŸ’¬ 2    πŸ“Œ 0
Screenshot of a chatbot that's answering the question 'Tell me about Saxonville Mills during the Civil War'. On the left sidebar is a list of 5 hyperlinked newsletters under "Source searched for responses"

Screenshot of a chatbot that's answering the question 'Tell me about Saxonville Mills during the Civil War'. On the left sidebar is a list of 5 hyperlinked newsletters under "Source searched for responses"

Thanks to new tools like the {ellmer} #RStats πŸ“¦ - and {shinychat} and {ragnar} -- as well as powerful new #LLMs, I built an app to query as well as text search a local group's PDF newsletter archive. It's SO much easier to create #GenAI apps in R than just a year ago.

www.district2framing...

01.05.2025 14:59 β€” πŸ‘ 12    πŸ” 2    πŸ’¬ 3    πŸ“Œ 0

I really enjoyed chatting with Karin about bridging R and Python. This post is a deep dive into reticulate, rpy2, and what great interoperability really looks like.
#rstats #python

30.04.2025 15:19 β€” πŸ‘ 29    πŸ” 4    πŸ’¬ 2    πŸ“Œ 0
Screenshot of viewer with search box at top, list of documents at left, document preview text at right

Screenshot of viewer with search box at top, list of documents at left, document preview text at right

Latest {ragnar] #RStats πŸ“¦version now has a very useful viewer to browse and search the duckdb vector store!
github.com/tidyverse/ra...

I'm having fun with this #R RAG πŸ“¦! Thank you @t-kalinowski.bsky.social and @dfalbel.bsky.social (and @posit.co )
#GenAI

16.04.2025 20:50 β€” πŸ‘ 11    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0
Preview
GitHub - kevinushey/dotty: Destructuring assignments in R with the `.` object. Destructuring assignments in R with the `.` object. - kevinushey/dotty

Checkout dotty for multiple assignment

github.com/kevinushey/d...

12.04.2025 00:31 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

If you want a more python-style approach, there is a small package I wrote a while back for this:

envir::import_from(dplyr, mutate, summarize)

11.04.2025 13:15 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Python Version Configuration

If you create a `.venv` from the pyproject.toml then reticulate will automatically use it. See number 8 in rstudio.github.io/reticulate/a...

09.04.2025 16:27 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
What the Package Does (One Line, Title Case) What the package does (one paragraph).

For the last couple of months I've been working on something and I'm excited to finally share an early preview:

Say hello to plumber2 πŸŽ‰

plumber2 is a full rewrite of the plumber package for creating powerful webapis in #rstats. It takes everything we have learned from plumber and adds even more

08.04.2025 09:59 β€” πŸ‘ 141    πŸ” 38    πŸ’¬ 5    πŸ“Œ 3
Convert Python bytes to an R character or raw vector β€” as.character.python.builtin.bytes Convert Python bytes to an R character or raw vector

There is an `as.raw()` method for python bytes rstudio.github.io/reticulate/r...
py_to_r/r_to_py can also convert between numpy arrays with dtype void8 and R raw arrays.

26.03.2025 21:27 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

`names()` for anything that doesn't start with `_`
`py_list_attributes()` for everything.

22.03.2025 23:23 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

How amazing is {reticulate} #RStats

I now don't even blink, just py_require() or use_python("/pathto/env/bin/python3") and (this is how it feels) the entire Python ecosystem is now available as an API in R

19.03.2025 09:56 β€” πŸ‘ 16    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

@t-kalinowski is following 20 prominent accounts