Shiny in Production: Full speaker lineup
We are pleased to announce the full line-up for this year’s Shiny in Production conference! Don’t miss out on this excellent set of talks and workshops - head over to the conference website to sign up now!
Workshops
This year’s workshops consist of two delivered by our JR trainers, and one by a special guest, Andrie de Vries of Posit!
Andrie de Vries - Posit
Introduction to Shiny for Python
This workshop provides an introduction to coding a web application using Shiny for Python. It is aimed at providing R users, who are already familiar with Shiny, the tools and understanding to write similar apps using Python. In addition to using Shiny for Python yourself, this will also give you the capability to discuss Shiny with your Python colleagues, for example when you work in a bi-lingual data science team.
About the speaker
Andrie is Director of Product Strategy at Posit (formerly RStudio) where he works on the Posit commercial products. He started using R in 2009 for market research statistics, and later joined Revolution Analytics and then Microsoft, where he helped customers implement advanced analytics and machine learning workflows. To keep healthy, he practices yoga and does some recreational running and canoeing.
Keith Newman - Jumping Rivers
Building Responsive Shiny Applications
The diverse range of devices used for modern web browsing presents challenges when designing an application that works well for all users. Enter responsive design: the practice of building fluid web pages that “work” on huge 4k and 5k monitors, tiny smartphones and all things in between. This course will look at responsive design principles and best practices for Shiny developers, covering page layout, easy-to-add widgets and some simple CSS tricks for when built-in solutions don’t quite cut it.
About the speaker
Following a PhD in statistics at Newcastle University, Keith developed software to improve road safety modelling. He enjoys creating Shiny apps and teaching the use of R.
Russ Hyde - Jumping Rivers
Shiny Testing
Automated testing plays a vital role in any production-grade software project. But what benefit does well-tested code bring to a project, and how do you write a good test suite for your shiny application? In this workshop, we demonstrate how to document the behaviour of an application using browser-driven end-to-end tests and show that lower-level, module- or function-focussed, tests make development a happier and more predictable experience. The tools used here (shinytest2, testServer) all build upon the testthat package.
About the speaker
Russ has previouly worked in molecular biology and bioinformatics. He holds a PhD in Molecular Physiology and MSc in Mathematics. Russ is an author of several CRAN packages and mentor on the R-for-data-science community.
Talks
The second day of the conference will consist of a great line up of talks from people from a variety of industries!
Keynote: George Stagg - Posit
R Shiny without a server: webR and Shinylive
WebAssembly (Wasm) is a technology that enables software that’s normally compiled for a specific computer system to instead run anywhere, including inside web browsers. WebR is a version of the R interpreter compiled for Wasm, bringing this technology to the R world.
Earlier this year, the initial version of webR was released and users have already begun building new interactive experiences with R on the web. The latest release, version 0.2.0, includes improvements to graphics, accessibility and internationalisation, developer API updates, and introduces a new webR REPL app. The release also includes expanded support for Wasm R packages, including the ability to run fully client-side Shiny apps.
In this talk, I’ll introduce webR with some simple examples and discuss some details of how the system works. I’ll talk about how JavaScript APIs can be used to integrate webR into wider web applications and describe webR’s communication channel. Finally, I’ll give a description of how Shiny apps can be run using webR without an R server, ending with a demo of an in-development “Shinylive for R”.
About the speaker
George is a software engineer working on the webR project as part of the Open Source Team at Posit Software PBC. A former academic, George also has experience with teaching and research in computational mathematics, statistics and physics. When not working with software, George enjoys hacking hardware, photography, fantasy & sci-fi, and tinkering with electronic synthesisers.
Keynote: Cara Thompson - Freelance Data Consultant
Dynamic annotations: tips and tricks to make text shine without stealing the show
Data. It’s complicated! And there are often many facets to our data stories, which we need to present succinctly enough for our readers to want to engage with. On top of that, it changes! If we want our apps to reflect up-to-date data, how do we make sure the annotations stay up to date, and don’t end up off the edge of the plot or on top of each other with the next batch of data?
In this talk, we will explore how to make text work for us, by first considering how much of it we really need. Once we’ve decluttered and explored how we can use colours to make our plots less text-dependent, we’ll look at how to optimise text hierarchy in descriptions and in-plot annotations to keep the main thing the main thing, and how to create dynamic content and alignments for our titles, subtitles, axes, and annotations. Finally, we’ll explore coding tricks to apply these typography tips to tables and interactive plots, giving readers additional information on demand. Throughout the talk, I will share the packages and code snippets used to create and modify plots in R straight from readily available data, as well as tools which we can use to check for accessibility in our dataviz design decisions.
About the speaker
Cara is a freelance data consultant with an academic background, specialising in dataviz and in “enhanced” reproducible outputs. She lives in Edinburgh, Scotland, and is passionate about maximising the impact of other people’s expertise.
Naomi Bradbury, Clareece Nevill & Janion Nevill - Complex Reviews Support Unit
Health Data Scientists Developing Production Grade Shiny Apps
In 2017 a group of Biostatisticians at the University of Leicester embarked on two mini-projects to investigate the feasibility of using R Shiny apps to perform meta-analyses. Six years later, we have produced a suite of four R Shiny apps that automate network meta-analysis and diagnostic test accuracy meta-analysis, allowing researchers and healthcare professionals to access cutting-edge statistical analysis techniques without the need to write their own code. We also have two further apps currently in development. Our apps have approximately 1,000 user hours each month across the globe, and they have been used to conduct numerous published meta-analyses and in the development of clinical guidelines.
In this talk, we will give an overview of the project and the lessons we have learned (and are still learning) along the way as research scientists entering the world of software development, and how the power of R Shiny has enabled us to achieve this. We will discuss:
- How we transitioned from working individually on apps to creating a research software development team
- Leveraging existing R analysis packages to avoid ‘reinventing the wheel’ and ensuring our users could be confident in the accuracy of the results delivered
- Developing novel data visualisations available within the MetaInsight and MetaDTA apps
- Creating a living network meta-analysis of treatments for COVID-19 during the pandemic using a combination of R Shiny, Python and a Raspberry Pi
- The changing landscape of Shiny app development and journal publication of apps across the time span of the project.
About the speakers
Naomi, Clareece and Janion are part of the Complex Reviews Support Unit (CRSU) based at the University of Leicester. The CRSU began in 2015 as a support group of experts in the field of evidence synthesis, but now include a strong interdisciplinary team primarily tasked with developing and maintaining the CRSU’s suite of Shiny apps for assisting evidence synthesis.
Chris Brownlie - Barnett Waddingham
Anatomy of a Shiny app
Have you ever wondered what really goes on under the hood of a Shiny app? What the building blocks are and how they fit together to enable us to build reactive web apps using R? Shiny apps are made up of a collection of objects that all link with each other and external sources to make the app work. These objects and methods interact in various ways in order to: start up the app, build the reactive graph, handle reactivity and much more. In addition to this, the inner workings of Shiny rely on the use of other, less well-known R packages.
In this presentation I’ll be exploring the building blocks of Shiny - such as the Shiny Session, reactive context and reactive log - as well as the key functions provided by Shiny’s dependencies, giving a high-level overview of how they fit together and what they are each responsible for in the lifecycle of an app. I’ll also discuss how understanding these can be useful when debugging or monitoring a production Shiny app.
About the speaker
Chris is an analytics consultant in the Management Decision Analytics team at Barnett Waddingham, specialising in R and Shiny-app development. He comes from a background in data science and formerly worked in the public sector. Besides coding he enjoys rugby, reading fantasy books and spending time with his dog, Nero.
Colin Gillespie - Jumping Rivers
Securing Shiny Dashboards
Shiny apps, Rmarkdown reports and flask dashboards provide a rich user experience for relatively little development time. Often this experience is created by utilising third-party Javascript functions, CSS files, fonts and images, but every external file we use means we implicitly trust the authors. The NHS and thousands of other government websites can attest that this is an issue; in 2018, they ran scripts that made their visitors use their computing power to mine cryptocurrencies.
This talk will look at how organisations can improve their Shiny application security. We’ll discuss general procedures for securing your overall workflow, such as security audits of your R packages and general Git security. We’ll then see how Content Security Policies (CSPs) can be leveraged in Shiny apps, which allow a website to specify what external content a site can access. This talk will discuss implementing these precautions within Shiny and Posit Connect. We’ll demonstrate that securing and monitoring your applications is relatively straightforward.
About the speaker
Colin has been using R since 1999. He’s the author of a number of R packages and has published the book Efficient R Programming with O’Reilly.
Tan Ho - Zelus Analytics
Effective Logging for Shiny
This talk will share some strategies I’ve found effective in setting up logging for Shiny apps to help with debugging applications both in development and when deployed to production.
About the speaker
Tan is a data nerd from Ottawa, Canada who loves R, Shiny, fantasy football and carving pumpkins! By day, he’s an ML engineer for Zelus Analytics. In his spare time, he maintains DynastyProcess.com Trade Calculator (a Shiny app that serves over 200,000 unique monthly users), develops nflverse R packages, and mentors in the R4DS Slack Community.
Liam Kalita - Jumping Rivers
The Road to Easier Shiny App Deployments
We’re often helping developers to assess, fix and improve their Shiny apps, and often the first thing we do is see if we can deploy the app. If you can’t deploy your Shiny app, it’s a waste of time. If you can deploy it successfully, then at the very least it runs, so we’ve got something to work with.
There are a bunch of reasons why apps fail to deploy. They can be easy to fix, like Hardcoded secrets, fonts, or missing libraries. Or they can be intractable and super frustrating to deal with, like manifest mismatches, resource starvation, and missing libraries.
At the end of this talk, I want you to know how to identify, investigate and proactively prevent Shiny app deployment failures from happening.
About the speaker
Liam has been the InfoSec Lead at Jumping Rivers since the start of 2023, specialising in compliance, security controls, and policies (GDPR, Cyber Essentials, ISO 27001). With a previous 2 years in infrastructure support and consultancy, he ensures secure Shiny app and Posit platform deployments, and promotes a culture of security awareness within the company.
Anna Skrzydło - Appsilon
3 reasons why nobody uses your app
You’ve built a great app. You are sure that once your coworkers will start using it, their life will be so much easier. You are waiting for some signs of success: your happy colleagues praising the app or recommending it to others. But … it doesn’t come. Does it sound familiar? Have you ever wondered why nobody is using your app? Come to my talk and wonder no more. During my talk I will present 3 main reasons for low user adoption: don’t need the app, can’t use the app and don’t trust the app. I will not only share the examples, but also recipes on how to deal with each of those situations.
About the speaker
Anna is a Delivery Manager, Business Analyst, and R/Shiny developer with over 10 years of professional experience leading software and Data Science projects, facilitating user workshops and mentoring Project Managers. She is a regular speaker at industry conferences, including WhyR, UseR and Data Science Summit - Dog lover, salsa dancer and stand-up comedy fan.