Sign in

Simon Smart

@simonsmart.bsky.social
217 followers 267 following 119 posts

✨ Research Software Engineer at University of Birmingham 🥔 Former spudologist 🌱 Grows plants 🚲 Rides bikes 🍺 Brews beer 🌐 github.com/simon-smart88

PostsRepliesMedia
Reposted by Simon Smart
Stats For Bios @statsforbios.bsky.social · 11/09/2026
Preprint shinyapp by @simonsmart.bsky.social here. User-friendly, reproducible software for high-resolution predictions from aggregate polygon case counts (or other data). Once you're done, click a button to get a Rmd file out. #RStats #DiseaseMapping #malaria www.medrxiv.org/content/10.6...
The Disagapp hex logo. Polygons and rasters superimposed.
054
Simon Smart @simonsmart.bsky.social · 09/09/2026
I like the backticks as it makes the options immediately distinguishable from the explanatory text and to me this is valid R code. Including the quotes makes it easier to copy and paste and is what the user needs to provide. So it seems as if C is “correct”, but if so why do tidyverse use B? 3/3
120
Simon Smart @simonsmart.bsky.social · 09/09/2026
Then I inherited code with option C and checked the tidyverse style guide which says “Text that contains valid R code should be marked as such using backticks” style.tidyverse.org/documentatio... but then looking at various docs in the tidyverse, they use option B. github.com/tidyverse/ti... 2/3
style.tidyverse.org
7  Documentation – Tidyverse style guide
100
Simon Smart @simonsmart.bsky.social · 09/09/2026
#rstats When you have a choice of characters as a parameter to a function, how should the choices be formatted in the docs? I have previously used option A without ever checking what the "correct" way is. 1/3
3 options for formatting:

character. Outcome type for the dataset. Either `binary` or `continuous`.
character. Outcome type for the dataset. Either "binary" or "continuous".
character. Outcome type for the dataset. Either `"binary"` or `"continuous"`.
250
Simon Smart @simonsmart.bsky.social · 11/08/2026
It's not ready yet but quarto-hub.com see some of the comments in www.reddit.com/r/rstats/com...
quarto-hub.com
Quarto Hub
050
Simon Smart @simonsmart.bsky.social · 06/08/2026
Oh completely. But it's understandable that the committee would have put themselves in a very awkward position by questioning the claims. LJMU should have stepped in and postponed it until he recovered but presumably he wanted to go ahead.
110
Simon Smart @simonsmart.bsky.social · 06/08/2026
He claims to have had a brain tumour removed two weeks before his viva and then had a stroke causing him to lose his memory. Presumably the committee took this into account and did not scrutinise sufficiently.
100
Simon Smart @simonsmart.bsky.social · 24/07/2026
Disappointed to see you publishing this when there is zero published information to support these wild and biologically implausible claims of massive yield increases. I looked at their website and the trials are tiny, unreplicated and unrandomised - that's not science!
000
Simon Smart @simonsmart.bsky.social · 23/06/2026
I haven't but see no reason not to. The main limitation is slow load times, particularly if your app uses lots of packages. What do you mean by "the processing takes FOREVER" though? That doesn't sound like something that would be improved by shinylive and could be worse than deploying on a server
020
Simon Smart @simonsmart.bsky.social · 18/06/2026
If you want to learn more, try out the deployed version at crsu.shinyapps.io/MetaInsight_... or read the vignette at apps.crsu.org.uk/MetaInsight/... and the talk I gave last month at RMedicine is up on YouTube: youtu.be/uMLz5sb6Qlg 5/5
020
Simon Smart @simonsmart.bsky.social · 18/06/2026
As a side-effect we also created a way to conduct a variety of NMAs through a simple API without using the app. Once the data is configured, you can generate some outputs or pass the data to a model function and use the result to generate more outputs. 4/5
configured_data <- setup_load("my_data.csv", outcome = "continuous") |>
  setup_configure(reference_treatment = "Placebo",
                  effects = "random",
                  outcome_measure = "MD",
                  ranking_option = "good",
                  seed = 123)
freq_forest(configured_data) |> 
  write_plot("frequentist_forest_plot.pdf")

bayes_model(configured_data) |> 
  bayes_forest() |>
  write_plot("bayesian_forest_plot.pdf")
120
Simon Smart @simonsmart.bsky.social · 18/06/2026
We also added the ability to upload and visualise risk of bias data, a new interactive plot for excluding studies from sensitivity analyses and exporting results into CINeMA cinema.med.auth.gr 3/5
110
Simon Smart @simonsmart.bsky.social · 18/06/2026
It was already one of the most impactful academic shiny apps with > 400 citations, but this update makes it reproducible using {shinyscholar}. Whatever you do in the app, you can download a Quarto document that reproduces every step or render it to produce an html report. 2/5
Example Quarto and html reports produced by the app
111
Simon Smart @simonsmart.bsky.social · 18/06/2026
Metainsight is now available on CRAN! cran.r-project.org/package=meta... It is a shiny app for conducting network meta-analysis, which in simple terms, is used by doctors to decide which of multiple treatments is best to treat your ailments. #rstats #metaanalysis #openscience 1/5
A screenshot of the app running show options in the sidebar and two forest plots displayed side by side
161
Simon Smart @simonsmart.bsky.social · 15/06/2026
Oh my! How is that even going to be slightly enforceable when you don't need an account to watch YouTube, or will the law put a stop to that?! Or is it only apps that are verboten?
100
Simon Smart @simonsmart.bsky.social · 15/06/2026
They can just chat with AI instead. And then vibe code a new social media app that isn't yet banned.
000
Simon Smart @simonsmart.bsky.social · 13/06/2026
Saturday meetings aren't great but can't get a much better venue to chat about #rstats
000
Simon Smart @simonsmart.bsky.social · 09/06/2026
Yep. It's still not great though as it undervalues all the work that goes into producing food to the consumer.
110
Simon Smart @simonsmart.bsky.social · 09/06/2026
Yes to the first part, but no vegetable farming in the UK is subsidised. I'd argue it should be as it's in real danger of disappearing.
100
Simon Smart @simonsmart.bsky.social · 08/06/2026
*7p
010
Simon Smart @simonsmart.bsky.social · 08/06/2026
If it's sold at 17p they're making a loss and taking the hit but the growers get paid the same. Sure they should be paid more but these deals are a red herring. In the short term at least it's good for growers as low prices = increased demand.
350
Reposted by Simon Smart
Peter Coles 🏳️‍🌈 🏳️‍⚧️ 🇮🇪 @telescoper.bsky.social · 07/06/2026
Whichever of the purple dots you look at turns more purple.
28767273
Reposted by Simon Smart
BF Francis Ouellette @bffo.bsky.social · 14/05/2026
From @plos.org #Computational #Biology | Biomedical open source software: Crucial packages and hidden heroes | #Bioinformatics #RStats #Bioconductor #CRAN #PyPI #ScientificSoftware #Research #Education #OpenScience #OpenSource | 🧬🖥️🧪🔓 ⬇️ journals.plos.org/ploscompbiol...
journals.plos.org
Biomedical open source software: Crucial packages and hidden heroes
Author summary Scientists today use software as an important tool for their research. The progress of science depends on the people who write software being properly recognized, rewarded, and incentiv...
1144
Simon Smart @simonsmart.bsky.social · 20/04/2026
Deepwiki is awesome! So helpful for getting your head around a repo and for copying or adjusting functionality
000
Simon Smart @simonsmart.bsky.social · 26/03/2026
I’m giving a seminar on 20th April about refactoring crsu.shinyapps.io/MetaInsight/ to use {shinyscholar}, producing crsu.shinyapps.io/MetaInsight_... Details and sign up: www.eventbrite.co.uk/e/crsu-webin... A shorter version is also coming to R/Medicine in May #rstats #metaanalysis #openscience
Poster for the seminar: MetaInsight v7: Making a comprehensive app for network meta analysis reproducible
002
Simon Smart @simonsmart.bsky.social · 20/03/2026
Ah yes bsky.app/hashtag/rstats is still fine.
bsky.app
010
Simon Smart @simonsmart.bsky.social · 20/03/2026
Thanks for breaking #rstats with your spam @energtx.bsky.social. Even after muting you, there are no older posts.
2110
Simon Smart @simonsmart.bsky.social · 05/03/2026
Partial matching of names in #rstats is wild. I knew the function would run, but didn't know it "works" with dataframes as well!
f <- function(very_fast, 
              incredibly_dangerous){
  data.frame("very_fast" = 
             very_fast, 
             "incredibly_dangerous" = 
             incredibly_dangerous)
}

df <- f(v = 1, i = 2)
df$very * df$inc
df$very_broken <- 3
df$very * df$inc
341
Simon Smart @simonsmart.bsky.social · 03/03/2026
I guess there are some good / historical reasons for this, but it's not an ideal situation and doesn't encourage developers to write tests.
020
Simon Smart @simonsmart.bsky.social · 03/03/2026
When submitting #Rstats packages to CRAN you can either: spend weeks writing a comprehensive test suite and get threatened with removal when one don't pass under some unusual condition, OR don't write any tests, R CMD check still passes, most users are none the wiser and you won't be threatened.
3100
Simon Smart @simonsmart.bsky.social · 26/02/2026
I can't find the exact versions but this might be useful: ropensci.org/blog/2026/01... R-hub has three versions of mac but not exactly corresponding r-hub.github.io/rhub/ (I don't understand why it's so hard to test on machines that match what CRAN use)
ropensci.org
Testing the R-universe build workflow from your own GitHub repository
We refactored the R-universe CI workflows to make it possible to run the exact same workflow from your own GitHub repository.
111
Simon Smart @simonsmart.bsky.social · 23/02/2026
thanks - I will give it a go.
000
Simon Smart @simonsmart.bsky.social · 23/02/2026
It's surprising that neither R CMD INSTALL nor R CMD check flag having two identically named functions in an #rstats package. It's easy to accidentally duplicate when refactoring code and can lead to much confusion!
361
Simon Smart @simonsmart.bsky.social · 10/02/2026
There's a version from last year on archive.org which looks similar. "You do not need to be registered with any statistical organisation to come." suggests it isn't RSS any more.
archive.org
Internet Archive: Digital Library of Free & Borrowable Texts, Movies, Music & Wayback Machine
010
Simon Smart @simonsmart.bsky.social · 10/02/2026
Not sure if that's the same thing?
000
Simon Smart @simonsmart.bsky.social · 10/02/2026
sites.google.com/view/youngst...
sites.google.com
YSM
SAVE THE DATE! YSM is coming to Cambridge, UK 29th - 31st July 2026
100
Simon Smart @simonsmart.bsky.social · 10/02/2026
Is there a term for figuring something out that LLMs say isn't possible? Grind coding? Organic coding? In this case, rendering <text> elements in an SVG to <path> in #Rstats. (Claude cooked up a whole non-functioning package in an attempt to do it).
'<svg><text x="0" y="200" 
style="font-size: 100px;">
Hello world</text></svg>' |>
charToRaw() |>
rsvg::rsvg_svg(NULL) |>
rawToChar()
010
Simon Smart @simonsmart.bsky.social · 09/02/2026
That doesn't sound like too much data for leaflet to handle. I noticed your time column is chr rather than a date/time which might be causing problems - maybe some are formatted differently? It's probably worth trying to convert with that column with as.Date() as a first try.
100
Simon Smart @simonsmart.bsky.social · 08/02/2026
Do you mean www.rdocumentation.org/packages/lea... ? I adapted the example to use 200 data points and that works fine. Can you share an example showing the problem?
rdocumentation.org
addTimeslider function - RDocumentation
<p>The <a href="https://github.com/dwilhelm89/LeafletSlider">LeafletSlider plugin</a> enables you to dynamically add and remove Markers on a map by using a JQuery UI slider.</p>
110
Simon Smart @simonsmart.bsky.social · 19/01/2026
(which is what lazydata loads)
000
Simon Smart @simonsmart.bsky.social · 19/01/2026
Confusingly that package put the data in "cancer.rda" which seems to be what data() references, but that file evidently contains the data in a variable called rotterdam.
100
Simon Smart @simonsmart.bsky.social · 11/12/2025
Agree that would be cool. There's a CRAN mirror on github but someone needs to make that a single repo and feed it into deepwiki.com
deepwiki.com
DeepWiki | AI documentation you can talk to, for every repo
DeepWiki provides up-to-date documentation you can talk to, for every repo in the world. Think Deep Research for GitHub - powered by Devin.
110
Simon Smart @simonsmart.bsky.social · 05/12/2025
Plenty here already: web.archive.org/web/20250730...
web.archive.org
bookdown: Authoring Books and Technical Documents with R Markdown
The platform bookdown.org is provided by RStudio for authors to publish books online for free. The bookdown package is an open-source R package that facilitates writing books and long-form articles/re...
010
Simon Smart @simonsmart.bsky.social · 05/12/2025
Sounds like tidyplots.org might be helpful.
tidyplots.org
Tidyplots – Publication-ready plots for scientific papers
The goal of tidyplots is to streamline the creation of publication-ready plots for scientific papers. It allows to gradually add, remove and adjust plot components using a consistent and intuitive syn...
150
Simon Smart @simonsmart.bsky.social · 02/12/2025
I've spent a lot of time wrestling with base #rstats plots in Shiny this year and thought I'd share the solution I've come up with to ensure they scale correctly and downloads match exactly what is shown in the app: simon-smart88.github.io/forest_plot_...
simon-smart88.github.io
Seeing the forest for the lines - Scaling complex base plots in Shiny
050
Simon Smart @simonsmart.bsky.social · 28/10/2025
en.wikipedia.org/wiki/Grokipe...
en.wikipedia.org
Grokipedia - Wikipedia
010
Simon Smart @simonsmart.bsky.social · 28/10/2025
en.wikipedia.org/wiki/Wikiped...
en.wikipedia.org
Wikipedia:Mirrors and forks - Wikipedia
020
Simon Smart @simonsmart.bsky.social · 28/10/2025
This is definitely not the case - people have been free to fork wikipedia from the get go as everything is CC licenced. All contributors are made aware of this every time they edit an article.
240
Simon Smart @simonsmart.bsky.social · 28/10/2025
Also, are you aware of {wallace}? That's what I forked to make {shinyscholar} and seems to have some crossover with what you're doing - I think it can load paleo data as well as current data.
110
Simon Smart @simonsmart.bsky.social · 28/10/2025
Interesting to see you used {shinymeta} I'd looked at it but wasn't sure how scalable it would be for complex analyses. github.com/simon-smart8... is my attempt at making a generic solution for reproducible apps
github.com
GitHub - simon-smart88/shinyscholar: A template for creating modular shiny applications that meet academic standards and are reproducible
A template for creating modular shiny applications that meet academic standards and are reproducible - simon-smart88/shinyscholar
110