Advertisement · 728 × 90

Posts by Thomas Lin Pedersen

Preview
1.1 Introduction - Visualization with R’s ggplot2 Package and AI Tools - Open Visualization Academy

NEW Open Visualization Academy COURSE: 'Visualization with R’s ggplot2 Package and AI Tools' openvisualizationacademy.org/courses/visu...

And in the newsletter: 'Designing for the Middle Reader': openvisualizationacademy.beehiiv.com/p/designing-...

#dataViz #dataJournalism #dataVisualization

2 days ago 25 10 1 2
Kermit the frog screaming with excitement

Kermit the frog screaming with excitement

We have summer internships y'all! Come work at Posit on the PyData, tidymodels, shiny, or Connect teams: grnh.se/tigz810a3us. You will have an awesome time, learn a ton, and help advance our open source and pro tools 🧰 #rstats #pydata

2 weeks ago 71 46 2 0
Preview
a man is holding a can of soda in front of his mouth and says `` time is a flat circle '' . ALT: a man is holding a can of soda in front of his mouth and says `` time is a flat circle '' .
2 weeks ago 1 0 0 0
Post image

I'm not entirely sure what the rules of this meme is...

2 weeks ago 19 2 0 0

I'll take it

2 weeks ago 1 0 1 0

Already in the works... Thankfully it is somewhat simpler and a subset of the LaTeX functionality

2 weeks ago 3 0 1 0

In the future, everyone will have their own LaTeX math parser

2 weeks ago 1 0 1 0
Four complex equations shown in a grid, with their LaTeX representation shown above and the rendered expression below

Four complex equations shown in a grid, with their LaTeX representation shown above and the rendered expression below

Some of the test cases for the native LaTeX math expression parser and renderer I've been working on for textshaping which will soon bring native math equation rendering to #rstats and marquee

2 weeks ago 102 15 3 3

I just love the stories you are able to tell through a single face ❤️

2 weeks ago 1 0 1 0
Advertisement

Ah, yes... typography — the one area of design famously devoid of any decoration

(I know this is a small point but...)

3 weeks ago 7 1 1 0
Post image

This perfectly captures my feelings while interacting with Claude Code today

3 weeks ago 9 3 2 0

I recall that at one point I took the narrow passage around the pillar and it still gives me chills to this day... don't know why it left such a mark

I'll probably revisit it this summer so maybe I can face some demons then :-)

3 weeks ago 1 0 0 0

I remember when I visited as a kid I was terrified to see people casually sitting on the edge of the lower level with their feet dangling...

3 weeks ago 1 0 1 0

| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| SEIZE THE |
| MEANS OF |
| ART |
| PRODUCTION |
| _______|
(\__/) ||
(•ㅅ•) ||
/   づ

1 month ago 2 0 1 0
Video

I built a free tool that shows how night-time lights have changed anywhere on Earth.

Here's how it works and why it's useful for monitoring conflict, disasters, development and growth. 👇

1 month ago 94 48 9 1
Grumpy cat "Before I knew how to extend roxygen2". Happy cat "Once I got how to extend roxygen2".

Grumpy cat "Before I knew how to extend roxygen2". Happy cat "Once I got how to extend roxygen2".

On the right you see the steps of roxygenize(), on the left different files and objects. First roxygenize() loads packages. Then it parses R scripts, recognizing normal and custom tags. This creates blocks which are sorts of lists of tags. Then for any registered roclet: Rd roclet, collate roclet, NAMESPACE roclet, your custom roclet, roxygen2 will run the preprocess methods then the process methods then the output methods. The Rd roclet work will lead to the man/ folder, the NAMESPACE roclet work generates the NAMESPACE file, your custom roclet could have done anything like generating test files or a report on statistical software standards.

On the right you see the steps of roxygenize(), on the left different files and objects. First roxygenize() loads packages. Then it parses R scripts, recognizing normal and custom tags. This creates blocks which are sorts of lists of tags. Then for any registered roclet: Rd roclet, collate roclet, NAMESPACE roclet, your custom roclet, roxygen2 will run the preprocess methods then the process methods then the output methods. The Rd roclet work will lead to the man/ folder, the NAMESPACE roclet work generates the NAMESPACE file, your custom roclet could have done anything like generating test files or a report on statistical software standards.

Meme "Doctors hate him!". plumber2 extends roxygen2 without roclets. With this one weird trick! Learn the truth now.

Meme "Doctors hate him!". plumber2 extends roxygen2 without roclets. With this one weird trick! Learn the truth now.

Table of uses and extensions of roxygen2 with these two dimensions: parsing code decorators, generating stuff when calling roxygenize(). The most populated cell has the two aspects, it contains every example we saw except plumber2.
Plumber2 does use code decorator parsing but not through roxygenize().
If you do neither of those things you’re clearly not in roxygen2-land.
Now there’s a weird thing where you can use roxygenize() without using information from the code decorator parsing. Roxygen2 has an old roclet that is no longer recommended, the vignette roclet that would update the built versions of your vignettes using Make. It’s no longer recommended to have those files in your package source. In any case, you could make roxygenize() run any code from a roclet: maybe formatting your code? Updating your changelog? I can’t think of actual good ideas but you can do it.

Table of uses and extensions of roxygen2 with these two dimensions: parsing code decorators, generating stuff when calling roxygenize(). The most populated cell has the two aspects, it contains every example we saw except plumber2. Plumber2 does use code decorator parsing but not through roxygenize(). If you do neither of those things you’re clearly not in roxygen2-land. Now there’s a weird thing where you can use roxygenize() without using information from the code decorator parsing. Roxygen2 has an old roclet that is no longer recommended, the vignette roclet that would update the built versions of your vignettes using Make. It’s no longer recommended to have those files in your package source. In any case, you could make roxygenize() run any code from a roclet: maybe formatting your code? Updating your changelog? I can’t think of actual good ideas but you can do it.

Yesterday I got to present what I painstakingly learnt about

✨ extending roxygen2 ✨

masalmon.eu/talks/2026-0...

#RStats

1 month ago 2 1 0 0
Post image

Screens #521 (2022)

1 month ago 18 0 0 0
Advertisement

that's just too big, man... too big...

1 month ago 1 0 1 0

looking around a bit I'm not sure which current HP model I'd liken mine to

1 month ago 0 0 0 0

damn 33" is huge...

1 month ago 0 0 1 0

This is the model name back in the days: HP Z27 27-inch 4K UHD Display

It has the niceness of charging the MacBook through the same cable as the video. That is probably more standard these days but back then it was pretty premium

1 month ago 1 0 0 0

For reference I've had the same monitor for the totality of my Posit employment

1 month ago 1 0 1 0

I've been happy with the HP Z line of monitors

1 month ago 1 0 2 0
Upcoming CFP Deadlines

Upcoming CFP Deadlines

posit::conf(2026) call for talks may be over, but there are still many #RStats & #Python events where you can submit! Maybe we'll see you there:

🇬🇭 Ghana R Conference (Jul 9-10, Virtual): Feb 25 ghana-rusers.org
🐍 SciPy (Jul 13-19, Minneapolis, MN): Feb 25 pretalx.com/scipy-2026/cfp

1 month ago 5 2 2 0
Advertisement

I think it all started when our PM had the audacity to call Trumps idea of buying Greenland "absurd" during his first playdate with presidency

1 month ago 0 0 0 0
Preview
rainbowR Conference 2026 Feb. 25 – 26, 2026

🌈 rainbowR is next week!

⏳ Registration closes this Sunday at 23:59 UTC.

If you’re planning to join us, now’s the time to sign up 💜

🔗 pretix.eu/rainbowr/con...

#RStats #LGBTQ #QueerInTech #DataScience

1 month ago 10 11 2 2
Post image

Storms 3118 (2020)

#rstats and #ggplot2

1 month ago 13 1 0 0
Video

Here's a small portion of an animated bumper I made to promote a video game from @owlcatgames.bsky.social (Blind Descent). Seeing the latest advances in generative AI and how they've invaded space, I feel lucky to have at least produced this little piece from start to finish 🥲.

1 month ago 1344 343 31 7

We have all met a physicist who believe with great ferocity that all sciences are just varying degrees of applied physics

1 month ago 3 0 1 0

came here to compliment that analogy as well

1 month ago 4 0 2 0