Sign in

Grant McDermott

@gmcd.bsky.social
5.2K followers 182 following 765 posts

Economics and data science | Former academic now working in the tech sector | Views my own | 🇿🇦 in 🇺🇸 | grantmcdermott.com

PostsRepliesMedia
Grant McDermott @gmcd.bsky.social · 02/10/2026
Missed this originally, but: jev + @duckdb.org ! duckdb.org/2026/09/29/jev
duckdb.org
Jev and DuckDB: Plain-English Conditions in SQL
TypeSafe AI released Jev, a model that returns typed answers instead of text, on September 15, 2026. Within ten days, several community extensions let you filter, classify and score DuckDB rows with p...
0153
Reposted by Grant McDermott
Paul Goldsmith-Pinkham @paulgp.com · 28/09/2026
New post: paulgp.substack.com/p/ai-in-jour...
paulgp.substack.com
AI in journals, conferences, and submissions
A variety of facts about AI’s effect on economics research
2154
Grant McDermott @gmcd.bsky.social · 28/09/2026
Preach, brother 🙏
011
Grant McDermott @gmcd.bsky.social · 28/09/2026
Lots more besides: plot recording and replay, axis padding control, faster plots, and many bug fixes. Full changelog: grantmcdermott.com/tinyplot/NEWS.html Thanks to everyone who contributed, made suggestions, or filed bug reports.
grantmcdermott.com
news – tinyplot
000
Grant McDermott @gmcd.bsky.social · 28/09/2026
Lines can now be coloured by a continuous variable; nice for plotting time-dependent trajectories. Separately, a new `tinyplot.array()` method plots multidimensional arrays directly. grantmcdermott.com/tinyplot/man/tinyplot.array.html
Lorenz attractor with the line coloured by time. Code: https://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/line-lorenz.RHip vs knee angle through the gait cycle for nine boys, coloured by time, from a 3D array.
Code:
gait9 = gait[, 1:9, ]
plt(gait9, draw = plt(gait9, col = "lightgray", facet = FALSE, add = TRUE))
130
Grant McDermott @gmcd.bsky.social · 28/09/2026
Order categories on the fly (e.g., by ascending or descending sort), no prior factor leveling required. Unrelated, but nice to demo with these examples... we finally have support for a long-standing FR: rotate tick labels by _any_ angle. grantmcdermott.com/tinyplot/man/type_barplot.htm
Bar chart of mean chick weight by feed, sorted in descending order with rotated labels. Code: plt(weight ~ feed, data = chickwts, type = type_barplot(xord = "desc", fun = mean), xaxr = 45)The same bar chart sorted in ascending order. Code: plt(weight ~ feed, data = chickwts, type = type_barplot(xord = "asc", fun = mean), xaxr = 45)
100
Grant McDermott @gmcd.bsky.social · 28/09/2026
Finer control over facets: custom titles via `prefix`, `labeller` & `sep`, outer-only axes, and dropping empty facets or unused categories. Plus new tools for axis labels, including dictionary-based relabeling, e.g. `xaxl = c(wt = "Weight")`. grantmcdermott.com/tinyplot/man/tinyplot.htm
Faceted scatter plot of mpg vs weight, with custom facet titles and outer-only axes. Code: plt(mpg ~ wt | factor(cyl), facet = ~ am + vs, data = mt, facet.args = list(prefix = c(vs = "V-shaped", am = "Trans."), sep = "\n", axes = "outer")Coefficient plot with tick labels relabelled via a named dictionary. Code: plt(est ~ term, ymin = lwr, ymax = upr, data = coefs, type = "pointrange", xaxl = c(wt = "Weight\n(1,000 lbs)", hp = "Horsepower", ...))
100
Grant McDermott @gmcd.bsky.social · 28/09/2026
New plot types: tiles & heatmaps, sina plots, hexbins (see above), and stacked areas. grantmcdermott.com/tinyplot/vignettes/types.html
Correlation matrix of the attitude dataset drawn as labelled tiles. Code: plt(Var1 ~ Var2 | Correlation, data = catt, type = "tile", col = "white", ylim = "rev"); plt_add(type = "text", labels = round(catt$Correlation, 2))Sina points layered on violins, showing penguin bill lengths by species. Code: plt(bill_len ~ species | species, data = penguins, type = "violin", alpha = 0.5, theme = "clean"); plt_add(type = "sina", alpha = 0.3
100
Grant McDermott @gmcd.bsky.social · 28/09/2026
𝐭𝐢𝐧𝐲𝐩𝐥𝐨𝐭 v0.8.0 now available on CRAN 🎉 grantmcdermott.com/tinyplot/ This is another big release: new plot types, finer facet & axis control, smarter handling of categorical data, and lots more. Same tiny footprint, though. Short highlight thread below 🧵 #rstats
Heatmap of the mtcars dataset, scaled within each column. Code: https://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/heatmap-mtcars.RHistogram of New York temperatures, with bars coloured by their own x values. Code: plt(~ Temp | Temp, data = airquality, type = "hist", theme = "classic")Hexbin plot of 20,000 bivariate normal draws. Code: https://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/hexbin.RStacked area plot of telephones in use by world region, 1956-1961. Code: plt(WorldPhones[-1, ], type = type_area(stack = TRUE, byord = "end"))
13513
Reposted by Grant McDermott
Rob Ready @robready.bsky.social · 24/09/2026
Remember when the Tesla valuation case was that their cameras were out collecting real-world data? Every top academic in the world is currently furiously typing their most cutting-edge thoughts into AI chat windows.
041
Reposted by Grant McDermott
Matt Hodges @matthodges.bsky.social · 23/09/2026
I mean? Incredible. (Opus 5.5) PROMPT: Here's a challenge: can you turn this post into a beautiful manim animation video (bonus points for narration). The post is not a perfect video transcript so make a transcript with edits if helpful. matthodges.com/posts/2022-0... use uv with a venv
4579
Grant McDermott @gmcd.bsky.social · 23/09/2026
A legit banger?
010
Grant McDermott @gmcd.bsky.social · 16/09/2026
Same
000
Grant McDermott @gmcd.bsky.social · 16/09/2026
We're obvs all exhausted from endless hype cycles + own benchmarks. But jev still feels like a bigger deal than a lot of people in my orbit are giving credence to.
220
Grant McDermott @gmcd.bsky.social · 05/09/2026
With that done, time to read my youngest a delightful allegory about the Springbok scrum and maul.
050
Grant McDermott @gmcd.bsky.social · 05/09/2026
Leroy Carter with four try assists. (Two in attack, two in defence.)
120
Grant McDermott @gmcd.bsky.social · 05/09/2026
What a half. I'm exhausted and I'm not even at altitude.
000
Grant McDermott @gmcd.bsky.social · 05/09/2026
Obviously, Will Jordan is very, very good. But there's something Johnny Sexton like about the way defenders keep falling for the same trick. (Surely, he can't get away with it again? Makes 50m. Rinse and repeat.)
000
Grant McDermott @gmcd.bsky.social · 05/09/2026
Flyovers out of fashion this week?
000
Grant McDermott @gmcd.bsky.social · 05/09/2026
Haha. A fair meme to call it a stalemate.
020
Grant McDermott @gmcd.bsky.social · 05/09/2026
Look, I understand the technical differences. But, aesthetics aside, I think the few meaningful <- vs = exceptions are actually coding shotguns that, newcomers especially, are better off fencing {} as explicitly scoped.
121
Grant McDermott @gmcd.bsky.social · 05/09/2026
As a paid-up member of team "=", I'm contractually obliged to share the (literal) Ross Ihaka rejoinder: "A lot of silly people think assignment is indicated by `<-`. You're wrong!" (35 min) www.youtube.com/live/88Tftll...
youtube.com
Ihaka Lecture Series 2017: Statistical computing in a (more) static environment
YouTube video by University of Auckland | Waipapa Taumata Rau
2150
Grant McDermott @gmcd.bsky.social · 04/09/2026
At this point, a foundational package. (And those speed-ups!) Congrats mate.
010
Reposted by Grant McDermott
Vincent Arel-Bundock @vincentab.bsky.social · 04/09/2026
Big news! 🎉 𝚖𝚊𝚛𝚐𝚒𝚗𝚊𝚕𝚎𝚏𝚏𝚎𝚌𝚝𝚜 1.0.0 for #Rstats is out. It’s a big number and it feels like a big step. I wrote a blog on the challenges of interpreting statistical models, SPEED, cool new features, the future, and a 5 year package development and writing odyssey. arelbundock.com/posts/margin...
1642299
Grant McDermott @gmcd.bsky.social · 31/07/2026
Would appreciate some #rstats feedback on a potential `tinyplot` change: github.com/grantmcdermo... Should we default to suppressing the (redundant) inner axes for faceted plots? We already do this for themes without a plot frame (box). But I'm thinking of enabling for framed plots too. #dataviz
Faceted tinyplot where the same axes are displayed for all sub plots.Same plot as before, except the redundant inner axes are now suppressed.
662
Grant McDermott @gmcd.bsky.social · 07/07/2026
This is harder to do than you might think. Do you mind raising an issue on our GitHub repo so we can track, though?
110
Grant McDermott @gmcd.bsky.social · 07/07/2026
Get on the phone. There are only two men for the job.
NBC rugby pundits, Alex Corbisiero and Dan Kyle, inexplicitly in the same room rather than Skyping from their kitchens.
100
Grant McDermott @gmcd.bsky.social · 03/07/2026
There's always the next edition ;-) (Congrats on making it to the final stage, though!)
040
Grant McDermott @gmcd.bsky.social · 03/07/2026
Typos aside, forgot to tag #rstats #dataviz
060
Grant McDermott @gmcd.bsky.social · 03/07/2026
5. There are a bunch of other improvements... from "smart" axis limits to caption support to numerous bug fixes... See our full v0.7.0. changelog for details: grantmcdermott.com/tinyplot/NEW... Thanks to everyone who contributed, made suggestions, or filed bug requests. Happy tinyplotting!
https://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/polygon-valentine.R
061
Grant McDermott @gmcd.bsky.social · 03/07/2026
4. We've added `tinyplot.*` methods for core R objects (data.frame, matrix, ts), making it trivial to visualize your data quickly, e.g. grantmcdermott.com/tinyplot/man... Bonus: this all means you can use tinyplot with pipes, e.g. `mydata |> plt(y ~ x | group)`. grantmcdermott.com/tinyplot/man...
tinyplot(iris, by = "Species", frames = TRUE)tinyplot(EuStockMarkets,
         facet.args = NULL,
         type = "area", xlab = NA, yaxl = ",",
         main = "European stock indices")
181
Grant McDermott @gmcd.bsky.social · 03/07/2026
3. Support for direct legends and (automatic) text repelling, e.g. grantmcdermott.com/tinyplot/man...
https://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/direct-labels-aq.Rhttps://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/line-ipcc.R
140
Grant McDermott @gmcd.bsky.social · 03/07/2026
2. We've added more plot types and improved the functionality of existing types. grantmcdermott.com/tinyplot/vig...
https://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/likert.Rhttps://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/ellipse-penguins.R
141
Grant McDermott @gmcd.bsky.social · 03/07/2026
1. We've significantly refactored (and added to) our theming capabilities. Choose from 20+ built-in themes... or roll your own. grantmcdermott.com/tinyplot/vig...
https://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/add-text-mtcars.Rhttps://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/pirate-iris.R
151
Grant McDermott @gmcd.bsky.social · 03/07/2026
𝐭𝐢𝐧𝐲𝐩𝐥𝐨𝐭 v0.7.0 now available on CRAN 🎉 This is big release, with loads of new features. Same tiny footprint, though ;-) Short highlight thread below, borrowing examples from our gallery: grantmcdermott.com/tinyplot/vig...
https://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/bubble-quakes.Rhttps://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/simpsons-paradox.Rhttps://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/barplot-meat.Rhttps://github.com/grantmcdermott/tinyplot/blob/main/vignettes/gallery_figs/spineplot-titanic.R
48726
Grant McDermott @gmcd.bsky.social · 01/07/2026
`jgd` v0.1.1 is freshly baked & available on CRAN. Mostly doc updates, but includes an important Easter egg: VS Code integration is now baked directly into the main R extension (dev version). It should work out of the box if you grab the latest GitHub release: github.com/grantmcdermo... #rstats
051
Grant McDermott @gmcd.bsky.social · 29/06/2026
Live prediction model updating to odds of 1.5 goals in the 94th minute of (at the time) 0-0 game?
200
Grant McDermott @gmcd.bsky.social · 28/06/2026
Eff. It really is the hope that gets you.
360
Grant McDermott @gmcd.bsky.social · 24/06/2026
Objective anthem rankings: 1. Wales 2. France 3. USSR <big gap> 4. Scotland 5. World in Union 6. Waka Waka ...
110
Grant McDermott @gmcd.bsky.social · 22/06/2026
Fascinating chart. Not that it undermines your response to that inane meme/agitprop, but I didn't realize the recent uptick was quite that sharp. Do you know whether this dataset conditions on _first_ marriage? If not, composition effects (↑ 2+ marriages) likely act as a major confounder, right?
110
Grant McDermott @gmcd.bsky.social · 20/06/2026
🎉 Potentially out of scope, but any plans to support package (documentation) websites, maybe as a backend to existing options?
110
Reposted by Grant McDermott
Vincent Arel-Bundock @vincentab.bsky.social · 20/06/2026
🎉 Announcing Calepin 🎉 A new tool to create computational notebooks and static websites, built on Typst. Write code and prose directly in your .typ files, then publish them as documents or as a full website. vincentarelbundock.github.io/calepin/ 1/6 🧵 #Rstats #Pydata #Typst
611026
Grant McDermott @gmcd.bsky.social · 19/06/2026
Canan Moodie is SA's Sam Prendergast, albeit for very different reasons. Unstoppable when on song, but if not... Side note: Ruan Nortjie is SA's Tadhg Beirne, but for very similar reasons (including the fact that they both look absolutely buggered half the time).
100
Reposted by Grant McDermott
The R Foundation @r-foundation.bsky.social · 17/06/2026
The 2026 Rousseeuw Prize for Statistics has been awarded to the R Project. #RStats www.rousseeuwprize.org/2026
rousseeuwprize.org
The Rousseeuw Prize for Statistics
The Rousseeuw Prize for Statistics is a biennial prize to celebrate outstanding contributions to statistics research.
2280106
Grant McDermott @gmcd.bsky.social · 18/06/2026
Are GitHub Actions / CI jobs hanging for anyone else? (Specifically on Ubuntu.)
020
Grant McDermott @gmcd.bsky.social · 18/06/2026
Gregor Mendel! Franz Kafka! Václav Havel! Martina Navratilova! Can you hear me, Martina?! Your boys took a hell of a beating*! YOUR BOYS TOOK A HELL OF A BEATING. * drawing
010
Grant McDermott @gmcd.bsky.social · 15/06/2026
I have a memory of fighting my way through the crowds after, trying to make my train back to Schipol. Sweating, full baggage in tow, but caught up in euphoria (& multiple pints deep). Prob the most concentrated per capita good vibes that I've experienced (alongside St Antonio Festival in Lisbon).
010
Grant McDermott @gmcd.bsky.social · 15/06/2026
One of my best tourist experiences was a long layover in Amsterdam. I'd been back home to catch the 2010 WC (an epic time in of itself). But my return flight coincided with a NL v Brazil QF, so I risked heading into the city for a few hours. NL won 2-1 and the city was, literally, painted orange.
150
Grant McDermott @gmcd.bsky.social · 14/06/2026
We're all agreed that the two PREM semifinals were the sporting highlight of the weekend, right? 🏉 <Puts ear to the ground. Ominous rumbling in the distance.>
010
Reposted by Grant McDermott
Paul Goldsmith-Pinkham @paulgp.com · 02/06/2026
In a new post, I pull data from four different sources --- arXiv, NBER working papers, SSRN, and the AEA --- to look at how much working paper growth and submissions have changed with the growth of AI. paulgp.substack.com/p/the-number...
14815