Shiny
Events featuring Shiny#
Resources featuring Shiny#
Strategic Budget Optimization through Marketing Mix Modeling (MMM)
Stop guessing which channels drive growth.
Join Isabella Velásquez and Daniel Chen for this end-to-end workflow demo on modeling marketing spend, building ‘what-if’ scenario planners in Shiny, and deploying automated Quarto reports that give non-technical stakeholders a clear, data-backed view of ROI.
We will explore:
- The Workflow Architecture: A look at the “plumbing” required to move from data to insights.
- The Interface: Wrapping an existing model in a Shiny dashboard for real-time “what-if” scenario planning.
- The Delivery: Automating communication via Quarto reports to keep stakeholders aligned.
- The Deployment: Using Posit Connect to turn your code into an accessible business asset for leaders.
This workflow demo grew out of the incredible energy at our recent Data Science Hangout with Ryan Timpe at LEGO. We were so inspired by the community’s interest in MMM that we decided to build this session to address your specific questions. Thank you for the great discussion. We’re excited to show you what we’ve put together!
Demo References MMM Demo GitHub Repo (https://github.com/chendaniely/dashboard-mmm ) MMM Demo Dashboard (https://danielchen-dashboard-mmm.share.connect.posit.cloud/ ) Ryan Timpe’s posit::conf(2023) talk, tidymodels: Adventures in Rewriting a Modeling Pipeline - posit::conf(2023) (https://www.youtube.com/watch?v=R7XNqcCZnLg )
MMM Resources Bayesian Media Mix Modeling for Marketing Optimization, PyMC Labs (https://www.pymc-labs.com/blog-posts/bayesian-media-mix-modeling-for-marketing-optimization ) Modernizing MMM: Best Practices for Marketers, IAB (https://www.iab.com/wp-content/uploads/2025/12/IAB_Modernizing_MMM_Best_Practices_for_Marketers_December_2025.pdf ) The Future of Media Mix Modeling, Measured (https://info.measured.com/hubfs/Guides/Measured_Guide%20The%20Future%20of%20Media%20Mix%20Modeling.pdf?hsCtaAttrib=184767817336 ) Media Mix Modeling: How to Measure the Effectiveness of Advertising, Hajime Takeda, PyData (https://www.youtube.com/watch?v=u4U_PUTasPQ ) An Analyst’s Guide to MMM, Meta (https://facebookexperimental.github.io/Robyn/docs/analysts-guide-to-MMM/ ) Full Python Tutorial: Bayesian Marketing Mix Modeling (MMM) SPECIAL GUEST: PyMC Labs, Matt Dancho (https://www.youtube.com/watch?v=lJ_qq_IVUgg ) Reading MMM Outputs: Dashboards and Decisions for Small Teams, SmartSMSSolutions (https://smartsmssolutions.com/resources/blog/business/reading-mmm-dashboards-article )
Driving Shiny adoption by removing friction | Jonathan Lin | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Jonathan Lin, Adviser of Data Science and AI at Ovintiv, to chat about scaling data science infrastructure with Kubernetes, the “show, don’t tell” method for leadership buy-in, creating internal handbooks to support users, and even a little chat around navigating a sparse job market.
In this Hangout, we explore Jon’s approach to driving adoption and scaling impact without becoming a bottleneck. He discusses moving from simple virtual machines to using Kubernetes to manage memory for over 900 users and 60 publishers (wow!!). John also details how he built a comprehensive internal “handbook” to answer repeated questions, allowing him to support a growing community of R and Python users while encouraging self-service learning.
Resources mentioned in the video and zoom chat: Posit Conf 2026 Call for Talks → https://posit.co/blog/posit-conf-2026-call-for-talks/ Data Science Lab → https://pos.it/dslab R Screencasts (David Robinson) → https://www.rscreencasts.com/ Python for Data Analysis (Wes McKinney) → https://wesmckinney.com/book/ Cool 3D printing ggplots and maps using Rayshader! (shared in chat) → https://www.tylermw.com/posts/data_visualization/3d-printing-rayshader.html
If you didn’t join live, one great discussion you missed from the zoom chat was about Dragon Boating! Jon coaches a team, and the chat lit up with curiosity, explanations, and excitement about the sport (and its potential crossover with 3D printing paddles? We are the best community). Have you ever watched a dragon boat event?!
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh The Lab: https://pos.it/dslab LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps: 00:00 Introduction 10:38 “What are tips for navigating a sparse job market?” 14:33 “How do you support all of your users with different skills?” 17:49 “What types of fraud were you working with?” 21:12 “How do you get people to actually read it?” 24:55 “How did you learn R?” 29:18 “What are some techniques you use to get people to trust the tech?” 33:35 “Do you block time each week for documentation?” 36:50 “How would you recommend getting a company to buy in?” 42:15 “How do you pick the topics to learn more about?” 45:34 “Advice on how to overcome fear and feel confident enough to ask questions?” 49:09 “Do you program much in your current position?” 51:34 “Is it truly necessary to have deployment experience to get a data science job?”
Turbocharge your Shiny Apps with remote submission to HPC
Turbocharge your Shiny Apps with remote submission to HPC - Michael Mayer
Resources mentioned in the workshop:
- Workshop site: https://pub.current.posit.team/public/shiny-remote-hpc/
- Workshop GitHub repository: https://github.com/sol-eng/shiny-hpc-offload
How to deploy Shiny apps in 2026 | Alex Chisholm | Data Science Lab
The Data Science Lab is a live weekly call. Register at pos.it/dslab! Discord invites go out each week on lives calls. We’d love to have you!
The Lab is an open, messy space for learning and asking questions. Think of it like pair coding with a friend or two. Learn something new, and share what you know to help others grow.
On this call, Libby Heeren is joined by Posit product manager Alex Chisholm as he walks through the evolution of shiny app deployment over the years, how to deploy shiny apps in the modern era, and peeks into Posit’s roadmap for future development. Do you call it “deployment” or “publishing” when it comes to Shiny apps? 🤔
This is a super friendly and conversational space, and being there live in the Discord chat can’t be beat!! We hope you get to join us sometime soon.
Hosting crew from Posit: Libby Heeren, Isabella Velasquez, Daniel Chen, Alex Chisholm
Alex Chisholm’s LinkedIn: http://www.linkedin.com/in/chisholm1
Resources from the hosts and chat:
Posit Connect Cloud for deploying Shiny apps in the modern era: https://connect.posit.cloud/ Install Positron: https://positron.posit.co/ Simon Couch’s blog post on local LLMs not being good enough yet: https://www.simonpcouch.com/blog/2025-12-04-local-agents/ Blue-Green Shiny App Deployments using Posit Connect posit::conf(2025) talk by Ryszard Szymański: https://youtu.be/QEEGLWj0nas Digital Ocean: https://www.digitalocean.com/ Ollama local LLM: https://ollama.com/ py-sidebot app template: https://shiny.posit.co/py/templates/sidebot/ querychat app template: https://shiny.posit.co/py/templates/querychat/ Dan Chen mentioned Render in the chat as an alternative to Digital Ocean: https://render.com/ Alex Chisholm’s AB testing GitHub repo example: https://github.com/alex-chisholm/shiny-r-abtesting Edward in the chat shared a GitHub repo for using GitHub actions to execute remote SSH commands: https://github.com/appleboy/ssh-action Abu in the chat shared blue-green vs. canary deployments: https://octopus.com/devops/software-deployments/blue-green-vs-canary-deployments/ Frank in the chat mentioned Simon’s blog on using local LLMs with the chores package: https://www.simonpcouch.com/blog/2025-12-10-chores-0-3-0/
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co The Lab: https://pos.it/dslab Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for learning with us!
Timestamps 00:00 Introduction 03:03 Meaningful applications and value creation 05:31 The evolution of Shinyapps.io and Posit Connect 08:12 DigitalOcean and Droplets 09:36 DigitalOcean vs. commercial cloud providers, 11:48 Comparisons: DigitalOcean, Azure, and AWS 14:47 Replicating local environments with Docker 16:51 The open-source Shiny Server 18:20 Use case: University of Illinois CITL 20:02 Key considerations for deployment decisions 21:53 GitHub Actions and version control 23:31 Addressing single points of failure and maintainability 24:38 Posit Connect Cloud features and portfolio 26:01 Beyond Shiny: Quarto, Streamlit, and Dash 27:07 Handling secrets and database credentials 28:56 Custom vanity links vs. UUIDs 30:04 Blue-Green deployment strategies 31:55 “Is it easy to set up a developer workflow?” 34:46 Guardrails for AI powered apps and token usage 37:32 Small language models and Ollama 38:29 Sidebot AI demo and LLM integration 39:41 Understanding manifest.json and dependencies 45:00 Automatic publish on GitHub push 46:51 The future of Shinyapps.io and migration 48:33 “Did you just build a custom agent for that specific dashboard?” 51:43 Publishing from RStudio IDE to Connect Cloud 54:16 Preview: Inspecting website APIs for data harvesting

Integrating Shiny with Epic EHR | Matt Maloney | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Matt Maloney, Director of Applied AI and Data Science at City of Hope, to chat about applying data science to cancer care operations, integrating open source data science tools like Shiny with Electronic Health Records (like Epic), and the evolving governance of generative AI in healthcare.
In this Hangout, we explore the technical and operational strategies behind integrating custom data science applications directly into clinical workflows. Matt discusses how his team moves beyond standalone tools by embedding Shiny apps and other solutions into Epic, allowing medical coders and providers to access predictions and summaries without leaving their primary software environment-of-choice. He also mentions the “build vs. buy” decision-making process as vendors release their own AI solutions, emphasizing the importance of validating external models against their specific patient population.
Resources mentioned in the video and zoom chat: City of Hope → https://www.cityofhope.org Unity Health Toronto Customer Story → https://posit.co/about/customer-stories/unity-health-toronto/ pointblank (Data Validation package) → https://rstudio.github.io/pointblank/
If you didn’t join live, one great discussion you missed from the zoom chat was about where data science teams sit within community members’ organizations and whether they like it or not, specifically the pros and cons of being housed within IT versus embedded inside business units. Participants debated access to infrastructure versus proximity to business stakeholders, with several sharing their own experiences of shifting between these departments (or between companies with different structures). Let us know below if you’d like to hear more about this topic!
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh The Lab: https://pos.it/dslab LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps: 00:00 Introduction 03:37 “What does the data science function at City of Hope help with?” 08:52 “Tell us a little bit more about how you’re integrating Posit with Epic” 16:08 “How do you handle the needs of privacy with the push to adopt AI?” 18:40 “How do you manage to stay abreast of technical advancements?” 22:45 “At what point do you hand off your data work to the software engineering team?” 27:23 “How much has development that involves LLMs and generative AI taken hold?” 30:38 “Does your team evaluate a lot of the things that Epic might be throwing your way?” 34:41 “How does Epic pass an encounter number or a patient ID to Posit Connect?” 35:57 “How does your team handle these nuanced pieces of clinical information?” 40:29 “Do the administrators appreciate the time that it takes to do things?” 44:22 “What happens in the academic division?” 46:10 “Do you have a piece of career advice for us?”
End-to-End Data Science Workflow with the Posit Team Snowflake Native App
Posit Product Manager, Chetan Thapar, demonstrates how the Posit Team Native App for Snowflake delivers an end-to-end workflow—exploration, iteration, and deployment—in minutes, not weeks. Built directly inside the Snowflake security perimeter, the app gives data teams instant access to governed data, managed infrastructure, and familiar tools like Posit Workbench, Connect, and Shiny for Python.
Watch how AI assistants like DataBot and Positron accelerate EDA, streamline coding, and help developers build an interactive, LLM-powered dashboard with ease. With one-click deployment and automatic Snowflake governance applied to every user, this demo shows what modern data science looks like when speed, security, and productivity work together.
Learn more about the Posit partnership with Snowflake: https://posit.co/use-cases/snowflake/ Get the Posit Team Native App: https://pos.it/Team-Native-App-Snowflake
Keeping LLMs in Their Lane: Focused AI for Data Science and Research
From R+AI 2025, hosted by R Consortium
Keynote
LLMs are powerful, flexible, easy-to-use… and often wrong. This is a dangerous combination, especially for data analysis and scientific research, where correctness and reproducibility are core requirements. Fortunately, it turns out that by carefully applying LLMs to narrower use cases, we can turn them into surprisingly reliable assistants that accelerate and enhance, rather than undermine, scientific work. This is not just theory—I’ll showcase working examples of seamlessly integrating LLMs into analytic workflows, helping data scientists build interactive, intelligent applications without needing to be web developers. You’ll see firsthand how keeping LLMs focused lets us leverage their “intelligence” in a way that’s practical, rigorous, and reproducible.
Bio
Joe Cheng is the CTO and first employee at Posit, PBC (formerly known as RStudio), where he helped create the RStudio IDE, Shiny web framework, and Databot agent for exploratory data analysis.
R Consortium Resources
Main R Consortium Site: https://www.r-consortium.org/ R+AI website: https://rconsortium.github.io/RplusAI_website R Consortium webinars: https://r-consortium.org/webinars/webinars.html Blog: https://r-consortium.org/blog/ LinkedIn: https://www.linkedin.com/company/r-consortium/

Scaling a shiny app to 100K monthly users | Tan Ho | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Tan Ho, Engineering manager at Teamworks Intelligence Soccer, to chat about scaling Shiny applications, working out loud and building a personal brand, defining “code in production,” and best practices for R package development.
In this Hangout, we explore how Tan built a successful Shiny application that scaled to serve thousands of users, challenging the misconception that R does not scale. Tan shared his firsthand experience running the Dynasty Process Shiny app which peaked at 200,000 monthly users. He explained that the app was able to handle this load because user sessions were kept very short (around 30 seconds to a minute). Key advice for performance optimization includes focusing on small round-trip times for users, moving as much logic out of the app as possible (such as pre-computing or caching common requests), reducing the interface, and optimizing the actual queries (for instance, by rewriting them in data.table).
Resources mentioned in the video and zoom chat: DynastyProcess GitHub → https://github.com/DynastyProcess Tan Ho’s Github → https://github.com/tanho63 Tan Ho talk: A minimum viable Shiny infrastructure for serving 95,000 monthly users → https://www.youtube.com/watch?v=zb3umo3Ka2g&t=3s Tan Ho talk: Shiny in Production 2023: Tan Ho - Effective logging for Shiny → https://www.youtube.com/watch?v=wbUXrK_YWfI Show Your Work by Austin Kleon → https://austinkleon.com/show-your-work/
If you didn’t join live, one great discussion you missed from the zoom chat was about display setups, with participants debating whether one screen is better for focus or if multiple screens (up to four!) are essential for data science work. How many monitors do you roll with? Libby can’t live without at least two external monitors, but admits that sometimes just one laptop monitor is better for focusing.
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps: 00:00 Introduction 04:15 “Tell us just, like, a snippet of your journey into R/Shiny” 07:36 “How many users did you have on your shiny app?” 09:44 “How did the techniques and skills you learned in NFLverse help translate to your professional role?” 13:03 “Do you feel like working out loud played a big part in building a personal brand?” 15:29 “What is your top advice for thinking about code in production?” 21:30 “Do you have resources for people starting their Shiny journey?” 25:01 “What’s the trigger point when you decide to bundle products into one package?” 27:25 “What were the biggest hurdles faced in scaling the Shiny app with high user load?” 31:23 “How can I do a better job of evaluating fantasy football players than ESPN projections?” 32:59 “What packages are most helpful for benchmarking and writing fast code?” 35:29 “Do you start with use case first or generic code and then refine?” 37:48 “What soft skills or personality traits help manage bugs efficiently?” 41:49 “Did you have instances when you felt you were going overboard with curiosity?” 45:25 “What are the best practices for reproducible production workflows for non-technical teams?” 49:00 “What piece of career advice would you give?”
Accelerating Study Insights with Shiny and Posit | Regeneron x Atorus
In this session, Atorus and Regeneron, and Posit showcase their innovative partnership.
Topics covered: -Building a Unified Analytical Environment: Learn how to reduce friction by integrating fragmented SAS and R workflows. -Case Study: A Config-Driven App: See a live demo of how a simple configuration file can build a fully functional application for data review and safety monitoring. -Operational Shifts: Understand how internal teams are empowered to independently manage and extend their own applications in a regulated environment.
This isn’t just about technology—it’s about the strategic shift required to simplify development and accelerate insights within a regulated environment.
Learn more about Posit’s work in the pharma space: https://posit.co/use-cases/pharma/?utm_source=youtube&utm_medium=social&utm_term=pharma&utm_content=atorus-regeneron
Lessons from a Broad & Varied Data Science Career | Arcenis Rojas | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Arcenis Rojas, Data Scientist at Indeed, to chat about econometrics, public vs private sector data science, navigating a varied career trajectory, AI integration in the hiring sphere, and making friends at conferences.
In this Hangout, Arcenis talked about how his career journey has been wide as opposed to vertically narrow. He shared that this breadth of experience has given him confidence that he can quickly figure out any dataset. He feels it also taught him how to communicate effectively about data to people at different levels and across various domains. He also shared his tech stack at Indeed, including RStudio, Positron, AWS, Snowflake, Quarto for reporting, Shiny for apps, and Posit Connect for deploying them.
An attendee asked about the impacts of AI on the job search space, and Arcenis shared the AI at Work Report (linked below) from the Indeed Hiring Lab. He says, based on research, generative AI is expected to assist many people but only replace small segments of the workforce in the coming 5-10 years, and that entry-level knowledge work is predicted to be the most highly impacted area.
Resources mentioned in the video and zoom chat: Indeed Hiring Lab: AI at Work Report 2025 → https://www.hiringlab.org/2025/09/23/ai-at-work-report-2025-how-genai-is-rewiring-the-dna-of-jobs/ To Explain or to Predict? (Galit Shmueli, 2010) → https://arxiv.org/abs/1101.0891 Announcing the 2025 table and plotnine contests → https://posit.co/blog/announcing-the-2025-table-and-plotnine-contests/
If you didn’t join live, one great discussion you missed from the zoom chat was about the wide variety of data types data scientists work with. Attendees shared that their data included genomics, finance/trading, environmental/natural resources, e-commerce products, and medical/clinical data. What kind of data types do you work with?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps 00:00 Introduction 06:16 “What do you like to do for fun?” 08:51 “What are the unique aspects of financial and economic data science?” 15:07 “What are econometrics?” 16:02 “Is the difference that hard sciences stats is trying to explain what happened where econometrics might be what might happen in the future?” 19:39 “Suggestions for making data friends and going to a conference alone.” 23:26 “Do you see any misconceptions about the job market online, specifically the ATS thing?” 29:52 “How has your varied career trajectory been an advantage or a challenge in data science?” 34:08 “How is the recent hype wave of AI integration manifesting in the hiring sphere?” 40:08 “What are the tools that you use in your job for reporting?” 41:42 “How do you know when it is time to pivot and leave your role because your skills are stagnating?” 45:56 “How would you persuade leadership to use R or Python?” 49:32 “Did you find yourself always trying to use more complex models when simpler ones would serve the audience better?”
Pair Programming for Sustainable Deployment | Kris Fabick | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Kris Fabick, data scientist at Nissan North America, to chat about pair programming as a mechanism for sustainable deployment, data science in supply chain operations, the challenges of integrating pair programming into a team, and even a little about Kris’s hobby, reffing soccer!
In this Hangout, we explore how pair programming can serve as a mechanism for sustainable deployment. Kris explained that using pair programming is the team’s solution to successfully deploying projects in a sustainable way, especially since they have a small data science team without extensive enterprise-level tools or IT support. Pair programming creates human redundancy in a project, meaning two (or more) people are familiar with it, allowing the team to react quickly to changes in development and deployment, and ensuring that someone can cover maintenance even if the original programmer is on vacation.
When pitching the investment of time to leadership, a crucial metric was cited: pair programming requires only 15% more time to implement but results in 15% fewer defects. The value proposition is that saving defects saves far more time and downstream costs than the initial investment, offering stability that was a great comfort to leadership.
Resources mentioned in the video and zoom chat: Shiny State Blog Post (by Eric Nantz) → https://shinydevseries.com/blog/2025-09-24-shinystate-cran/ Guest’s posit::conf() GitHub Repo → https://github.com/kfabick03/positconf2025 We don’t have the link just yet, but Kris’s conf talk will be on YouTube soon! You can search for the title, “Self-sufficient deployment- using pair programming to have fun and sell your solutions” and the speakers are Kris Fabick & Kristin Carr
If you didn’t join live, one great discussion you missed from the zoom chat was about the difference between using AI for coding versus using human pair programming. The group discussed how “Pair programming == everyone learns MORE about the codebase” while “AI coding == everyone understands LESS about the codebase”. Chris noted that when he uses AI to help with code, he actually knows less about it and would not be able to explain the functionality to stakeholders if changes were requested. Attendees also noted that chatbots don’t show their logic or mistakes and how they back out of them, which is a valuable source of learning. Let us know below if you’d like to hear more about this topic!
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Time Stamps 00:00 Introduction 01:47 “What is the best and worst thing about being a referee?” 04:58 “Kris, could you give us a little recap of your posit::conf(2025) talk about pair programming?” 08:52 “What was the most persuasive thing or metric that you feel like you were able to use to persuade leadership to let you adopt pair programming?” 13:52 “Are there any challenges or additional benefits of pair programming to the individual, that you’ve noticed?” 17:58 “Do you have any tips for being self-conscious while coding in front of someone?” 19:53 “Could you give a high level overview of supply chain?” 21:56 “Is it better to have both devs be at the same level of experience or expertise when pair coding?” 27:32 “I was just wondering if you could tell us a little bit about the container fill ratio problem you mentioned in your talk.” 31:41 “How as a pair of programmer do you set realistic expectation from the stakeholder? How do you manage the communication gap?” 36:50 “Do you think that AI and specifically things like Copilot might be able to replace some aspects of pair programming?” 40:59 “Do you have a piece of career advice that has really stuck with you or that you like to give people that you find impactful?” 43:36 “Have you ever done any fun data stuff related to your refereeing?” 48:36 “How do you balance the time that gets added on with pair programming with tasks that need to be done quickly?” Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Building the Future of Data Apps: LLMs Meet Shiny
GenAI in Pharma 2025 kicks off with Posit’s Phil Bowsher and Garrick Aiden-Buie sharing a technical overview of how LLMs can integrate with Shiny applications and much more!
Abstract: When we think of LLMs (large language models), usually what comes to mind are general purpose chatbots like ChatGPT or code assistants like GitHub Copilot. But as useful as ChatGPT and Copilot are, LLMs have so much more to offer—if you know how to code. In this demo Garrick will explain LLM APIs from zero, and have you building and deploying custom LLM-empowered data workflows and apps in no time.
Resources mentioned in the session:
- GitHub Repository for session: https://github.com/gadenbuie/genAI-2025-llms-meet-shiny
- {mcptools} - Model Context Protocols servers and clients https://posit-dev.github.io/mcptools/
- {vitals} - Large language model evaluation for R https://vitals.tidyverse.org/
Positron Assistant for Developing Shiny Apps - Tom Mock
Positron Assistant for Developing Shiny Apps - Tom Mock (Posit)
Abstract: This talk will explore building AI Apps with a focus on Positron Assistant for Shiny developer experience and in-IDE tooling for accelerating app creation. This talk will discuss tools like ellmer / chatlas / querychat / shinychat and compare it to Positron Assistant.
Resources mentioned in the presentation:
- Positron - https://positron.posit.co/
- Positron Assistant - https://positron.posit.co/assistant.html
Daniel Chen - LLMs, Chatbots, and Dashboards: Visualize Your Data with Natural Language
For information on upcoming conferences, visit https://www.dataconf.ai .
LLMs, Chatbots, and Dashboards: Visualize Your Data with Natural Language by Daniel Chen
Abstract: LLMs have a lot of hype around them these days. Let’s demystify how they work and see how we can put them in context for data science use. As data scientists, we want to make sure our results are inspectable, reliable, reproducible, and replicable. We already have many tools to help us in this front. However, LLMs provide a new challenge; we may not always be given the same results back from a query. This means trying to work out areas where LLMs excel in, and use those behaviors in our data science artifacts. This talk will introduce you to LLms, the Ellmer, and Chatlas packages for R and Python, and how they can be integrated into a Shiny to create an AI-powered dashboard. We’ll see how we can leverage the tasks LLMs are good at to better our data science products.
Presented at The New York Data Science & AI Conference Presented by Lander Analytics (August 26, 2025)
Hosted by Lander Analytics
(https://www.landeranalytics.com )
Building a Real-Time COVID-19 Surveillance System with R (Hugo Fitipaldi, Lund University)
Building a Real-Time COVID-19 Surveillance System with R: Lessons from the COVID Symptom Study Sweden
Speaker(s): Hugo Fitipaldi
Abstract:
During the COVID-19 pandemic, the COVID Symptom Study Sweden collected over 20 million daily health reports from more than 200K participants. This talk demonstrates how R served as the backbone for transforming this massive dataset into actionable public health insights. I’ll showcase our analytics pipeline built entirely in R, from processing raw data to developing an interactive Shiny dashboard for real-time COVID-19 surveillance. The presentation covers predictive modeling for prevalence and hospital admissions estimates and the creation of our ‘covidsymptom’ R package. Through practical examples, I’ll share key learnings about handling large-scale health data and creating data products with R during a public health emergency. posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Data 911: how Posit can support decision-makers in times of environmental crisis (Marcus Beck)
Data 911: how Posit can support decision-makers in times of environmental crisis
Speaker(s): Marcus Beck
Abstract:
Over 200 million gallons of mining wastewater was released into Tampa Bay in March of 2021. Concerns about the environmental impacts prompted a multi-agency response to monitor water quality changes in the bay, producing thousands of sample points in need of synthesis and communication to a concerned public. This talk will describe how the Tampa Bay Estuary Program leveraged Posit products to create a data synthesis workflow and Shiny dashboard to inform decision-makers on how, where, and when water quality was affected by this pollution. Our experience navigating this event in real time will be shared with the broader community as a successful example of how Posit products can address environmental crises. posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Disposable Shiny Apps (James Wade, Dow) | posit::conf(2025)
Disposable Shiny Apps
Speaker(s): James Wade
Abstract:
Many data scientists find themselves building Shiny apps for one-off presentations, client meetings, or teaching demonstrations. These “disposable” apps can suffer from overengineering, leading to unnecessary development time and complexity. Or, the apps never get built because the development hill is too high to climb. This talk covers disposable Shiny apps - intentionally minimal applications designed for specific, short-term needs. We’ll explore strategies for rapid development, including reusable templates, coding assistants, efficient styling, and design principles that prioritize speed and clarity. This talk will show how this approach can transform a typical week-long development process into a few hours while maintaining polish.
Materials - https://github.com/JamesHWade/posit-conf-2025 posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
maidr: Empowering Accessible, Multimodal Data Visualizations (JooYoung Seo) | posit::conf(2025)
maidr: Empowering Accessible, Multimodal Data Visualizations
Speaker(s): JooYoung Seo
Abstract:
maidr is a Python package that transforms visualizations into accessible multimodal representations. Designed for both blind/low-vision and sighted users, it integrates with libraries like matplotlib and seaborn and supports interactive environments such as Quarto, Jupyter Notebooks, Google Colab, Streamlit, and Shiny. With a simple function call, maidr synchronizes visual, tactile (Braille), textual, audible (sonification), and conversational outputs, enabling reproducible, inclusive workflows. By creating, modifying and sharing accessible visualizations, maidr fosters collaborative insights by bridging the gap between blind/low-vision and sighted users, empowering inclusive, data-driven decision-making that leverages diverse perspectives.
GitHub Repo - https://github.com/xability/py-maidr posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Talk data to me: How to present youR data to any audience (Freda Warner, CIHR) | posit::conf(2025)
Talk data to me: How to present youR data to any audience
Speaker(s): Freda Warner
Abstract:
Translating data and analytics to diverse audiences is a vital part of any data scientists’ job, no matter what level. Strong data communication skills are valuable for every shiny app or quarto-generated presentation you give, and involve more than just avoiding pie charts! This presentation will cover creating a narrative with your data, identifying key messages, creating effective slides and visuals, and delivering an oral presentation that is not only articulate, but will help your audience understand and remember your message. posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Theming Made Easy: Introducing brand.yml (Garrick Aden-Buie, Posit) | posit::conf(2025)
Theming Made Easy: Introducing brand.yml
Speaker(s): Garrick Aden-Buie
Abstract:
brand.yml is an exciting new project from Posit that radically simplifies theming. Every data science tool supports some form of theme and appearance customization, but each app framework, output format, or visualization tool requires its own special syntax for theming.
The goal of brand.yml is to create a portable and unified interface for brand-related theming that can be used anywhere that data science artifacts are produced. As a collaboration between the Shiny and Quarto teams, brand.yml provides a single interface to setting baseline themes in reports and apps across the R and Python ecosystems.
In this talk, I’ll introduce brand.yml and showcase the many ways that brand.yml can bring consistent styles to your data science outputs.
Materials - https://github.com/gadenbuie/brand-yml-posit-conf-2025 Slides - https://pkg.garrickadenbuie.com/brand-yml-posit-conf-2025 posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/

AskRADS: An AI Recommendation Agent for Maximizing ROI of Data Science Collaborations (Regis James)
AskRADS: An AI Recommendation Agent for Maximizing the ROI of Data Science Collaborations
Speaker(s): Regis A. James
Abstract:
Blockers to crucial data-driven decisions can often be a challenge. To address this, we established RADS, the Regeneron Analysts and Data Scientists, as a Community of Practice for exchanging strategies on eliminating these obstacles. RADS has grown to nearly 500 members, creating a new challenge: avoiding redundancy and helping non-RADS colleagues find the right experts. To solve this, we developed AskRADS, an AI agent on Posit Connect that provides recommendations based on discussions, experts, and relevant resources. It uses R, Shiny for Python, FastAPI, LangGraph, Neo4j GraphRAG, and MySQL. This talk will cover its architecture, AI search solutions, and optimization techniques. posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Design of Everyday Shiny Apps (Casey Aguilar-Gervase & Maya Gans, Atorus) | posit::conf(2025)
Design of Everyday Shiny Apps
Speaker(s): Casey Aguilar-Gervase; Maya Gans
Abstract:
Donald Norman’s Design of Everyday Things shows how even smart people struggle with bad design—flipping the wrong switch, pushing a door instead of pulling. The same issues exist in Shiny apps, where function often outweighs experience. But as a Shiny developer, you are the door designer, and it’s your responsibility to create user-friendly tools. Not to worry—good design isn’t just for designers. You don’t need an art degree to build intuitive, visually appealing apps. This talk covers composition, color theory, scale, and proportion—practical rules to improve usability. We’ll show real-world examples and code-based strategies to bring these principles to life. Because good design isn’t a luxury—it’s a necessity.
Materials - https://github.com/caseyag/Posit-Conf-25 posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Engineer Insightful Shiny Apps with Behavioral Science (Jeremy Winget, CrossStack) | posit::conf
Death by Dropdown? Engineer Insightful Shiny Apps with Behavioral Science
Speaker(s): Jeremy Winget, PhD
Abstract:
Opening a Shiny app to endless dropdowns and scattered filters leads to immediate disengagement and feeling like “death by dropdown”. This talk introduces the Behavioral Insights Design (BID) Framework, a behavioral science roadmap that transforms overwhelming dashboards into guided user journeys. Using the “Interfaces Need A Smart Vision” mnemonic, we’ll explore five stages: Interpret user needs through data storytelling, Notice cognitive friction points, Anticipate user behavior, Structure the application, and Validate & empower users. Drawing from established theories and real-world production examples, attendees will see how applying behavioral science can dramatically reduce the time between “Where do I even start?” and “Aha, now I get it!”. You’ll leave with practical techniques using the new {bidux} package to help transform user confusion into confident exploration and build dashboards that guide users toward better decisions (and fewer ghosted users).
BID Framework - https://github.com/jrwinget/bid-framework bidux docs - https://github.com/jrwinget/bidux posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Get Your Ducks in a Row with Databases (Melissa Albino Hegeman, NYS OGS) | posit::conf(2025)
Get your ducks in a row… faster Shiny apps with DuckDB
Speaker(s): Melissa Albino Hegeman
Abstract:
Our small team tackled sluggish Shiny applications by implementing DuckDB as a cache layer, transforming slow, resource-intensive operations into responsive user experiences. Initially, our application pulled data directly from SQL Server, performing real-time aggregations that resulted in poor response times. By restructuring our pipeline to pre-compute results in DuckDB, we significantly improved performance. This presentation demonstrates how we identified bottlenecks, implemented DuckDB integration, and measured improvements. We’ll share practical examples of DuckDB integration with R, discuss trade-offs, and show how this accessible solution can benefit other small teams with limited resources. posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Keeping Data Alive: Persistent Storage Options for Dynamic Cloud Applications (Alex Chisholm, Posit)
Keeping Data Alive: Persistent Storage Options for Dynamic Cloud Applications
Speaker(s): Alex Chisholm
Abstract:
Building cloud-based data applications that evolve over time requires persistent storage solutions. Without a way to record new information or modify datasets, applications like Shiny or Streamlit would reset after each session, losing potentially valuable information. This talk explores persistent storage options ranging from lightweight solutions like Google Sheets to scalable services like Amazon S3 and MotherDuck. We’ll also cover securing connections to these services using Posit Connect Cloud’s secret variable management. By the end, you’ll understand common persistent storage solutions, their trade-offs, and how to choose the best approach for your specific project.
Aquarium Search App - https://github.com/alex-chisholm/aquarium-search posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Lift Off! Building REST APIs that Fly (Joe Kirincic, RESTORE-Skills) | posit::conf(2025)
Lift Off! Building REST APIs that Fly
Speaker(s): Joe Kirincic
Abstract:
Picture the scene: you’ve successfully deployed your ML model as a plumber API into production. Your company loves it! One team uses the API’s predictions as an input to their own ML model. Another team displays the predictions in an internal Shiny app. But once adoption reaches a certain point, your API’s performance starts to degrade. What can you do to help your service maintain high performance in the face of high demand? In this talk, we’ll show some strategies for taking your API performance to the next level. Using two R packages, {yyjsonr} and {mirai}, we can augment our API with faster JSON processing and better responsiveness through asynchronous computing, allowing our services to do great things at scale at no additional cost. posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Modular, layout-as-code approach for customizable Shiny dashboards (Kim Schouten, De NZa)
Modular, layout-as-code approach for customizable Shiny dashboards
Speaker(s): Kim Schouten
Abstract:
To improve government supervision in the healthcare space, we have designed a Shiny dashboard that enables us to adhere to GDPR and other regulations and share different bits of information with different types of stakeholders. For that, we have implemented a ‘layout-as-code’ system where each user can have its own layout of pages and modules, stored as json in the database. Users have the option to drag and drop modules to different locations or change the layout altogether, adding and removing modules as needed! For developers, this system of loosely coupled modules helps to quickly contribute to the project as a new module needs only a couple of lines of code to integrate it within the framework.
Materials - https://github.com/KSchouten/elemental posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Observability at scale (Barret Schloerke, Posit) | posit::conf(2025)
Observability at scale: Monitoring Shiny Applications with OpenTelemetry
Speaker(s): Barret Schloerke
Abstract:
Understanding what happens behind the scenes in production Shiny applications has always been challenging. When users experience slow response times or unexpected behavior, developers are left guessing where bottlenecks occur. This talk introduces OpenTelemetry integration for Shiny for R, a new approach to profiling code and understanding application behavior.
Through a chat-enabled weather application, we’ll explore how complex user interactions trigger cascading events across multiple processes. You’ll learn how OpenTelemetry’s “high-quality, ubiquitous, and portable telemetry” can provide complete visibility into your Shiny application’s performance with minimal setup… just a few environment variables!
After walking through the chat app, you’ll have a taste of how to implement comprehensive monitoring for your Shiny applications in production, enabling you to proactively identify and resolve unexpected performance issues.
Materials - https://github.com/schloerke/presentation-2025-09-17-posit-conf-otel posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/

Old Apps, New Tricks: How AI can write Automated Tests for your Shiny Apps (Karan Gathani, Posit)
Old Apps, New Tricks: How AI can write Automated Tests for your Shiny Apps
Speaker(s): Karan Gathani
Abstract:
As Shiny applications grow in complexity, comprehensive testing becomes crucial yet often overlooked. Many developers struggle to implement proper testing due to time constraints and technical barriers. To address this challenge, we’re introducing an innovative solution that automatically generates regression tests for existing Shiny apps. By leveraging AI models trained on testing best practices, the Shiny package will streamline the testing process, making it more accessible and efficient for developers of all skill levels.
Materials - https://docs.google.com/presentation/d/130bJNGp3XIlKPaouA8K0Lv0O3P7OFesW/edit?usp=sharing&ouid=105060716153365836674&rtpof=true&sd=true posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/

Semantic Search for the Rest of Us with DuckDB (Marcos Huerta, Carmax) | posit::conf(2025)
Semantic Search for the Rest of Us with DuckDB
Speaker(s): Marcos Huerta
Abstract:
Semantic search matches a search query against documents not just by directly matching words, but by ranking results using semantic meaning - for example searching for “cat” could also turn up documents that have “tiger.”
While many enterprise level solutions exist for semantic search, I will show a low memory technique in Python that enables live semantic search for small to medium document collections that need to be deployed in constrained memory/ CPU environments - such as Posit Connect Cloud or a small cloud server.
I will show how a web app (such as Shiny for Python) using just a few hundred megabytes of memory can enable live search using the fixed array support in DuckDB, and the open source library LlamaCPP. posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Shinystate (Eric Nantz, Eli Lilly) | posit::conf(2025)
shinystate: Launching collaboration and session management to new heights in Shiny applications
Speaker(s): Eric Nantz
Abstract:
Shiny is being used more regularly as a front end to sophisticated workflows in data science, often with a large number of inputs and intricate reactivity. End users desire a way to save their progress through the application workflow and share their state of the application with others for review. For small applications, the existing Shiny bookmarkable state feature is a valid approach. However, many of the production Shiny applications I’ve created require more granular control. Enter {shinystate}, my new R package that offers an intuitive class system and integration with {pins} to let developers choose where to save application state, ability to save multiple sessions at once, and bring collaboration to new heights for end users.
Materials - https://rpodcast.github.io/shinystate-positconf2025/ posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
surveydown (John Paul Helveston, GWU) | posit::conf(2025)
surveydown: A Markdown-Based Platform for Interactive and Reproducible Surveys Using Quarto and Shiny
Speaker(s): John Paul Helveston
Abstract:
This talk introduces the surveydown R package and survey platform, which leverages the Quarto publication system and R shiny web framework to create reproducible and interactive surveys. While most survey platforms rely on graphical interfaces or spreadsheets to define survey content, surveydown uses plain text (markdown and R code chunks), enabling version control and collaboration via tools like GitHub. It supports complex features like conditional skip logic, dynamic questions, and complex randomization as well as a diverse set of question types and formatting options. The open-source package gives researchers full control over survey implementation and data storage, with reproducible workflows that integrate with R data analysis.
GitHub Repo - https://github.com/surveydown-dev/surveydown Materials - https://github.com/jhelvy/2025-posit-conf-surveydown posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Web applications with Shiny and React and AI (Winston Chang, Posit) | posit::conf(2025)
Web applications with Shiny and React (and AI)
Speaker(s): Winston Chang
If you’ve ever wanted to have complete control over the UI for a Shiny application, this talk might be for you. In this talk I’ll show how to integrate a back end written in Shiny (for R or Python) with a front end written in React.js. This lets you combine Shiny’s reactivity with the flexibility of the React web development ecosystem.
In the past, writing a front end in React was a large time investment, and would be reserved only for a serious project. However, with today’s agentic AI coding tools, it can make sense to create a React front end even for smaller-scale applications. But even with AI involved, you will still need to know some React or be willing to learn about it.
GitHub Repo - https://github.com/wch/shiny-react CLI tool - https://github.com/wch/create-shiny-react-app Anthropic Dashboard - https://github.com/wch/anthropic_dashboard posit::conf(2025) Subscribe to posit::conf updates: https://posit.co/about/subscription-management/

Laboratory science to data science & the art of the growth gig | Lisa Elkin | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Lisa Elkin, Senior Principal Computational Toxicologist at Pfizer, to chat about her career transition from a lab scientist to a data scientist, building Shiny apps for scientific audiences, and the value of internal programs for up-skilling and data literacy.
In this Hangout, we explore how to foster data science skills and build communities within a large organization. Lisa shares her experience with programs like an “Analytics Exchange,” where employees could dedicate 20% of their time to working on data science projects from across the company, allowing them to learn by doing. She provides tips on how to propose similar “growth gig” opportunities to leadership, highlighting the value of up-skilling the entire department to increase efficiency and innovation without necessarily hiring more specialists.
Lisa also gives advice for starting a new internal community from the ground up, emphasizing the need for a few passionate individuals and the importance of repeating introductory sessions to support newcomers. Lisa runs a Data Science Hangout internally at Pfizer!!
Resources mentioned in the video and zoom chat: Mastering Shiny Book → https://mastering-shiny.org/ Jenny Bryan - Code Smells and Feels Talk → https://github.com/jennybc/code-smells-and-feels Posit Academy → https://posit.co/products/enterprise/academy/
If you didn’t join live, one great discussion you missed from the zoom chat was about what a “mainframe” computer is. The conversation sparked memories of punch cards, floppy disks, and how the cloud is in some ways a return to the mainframe paradigm. Let us know below if you’d like to hear more about it! Better yet, join us live on Thursdays :) pos.it/dsh
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps 00:00 Introduction 04:50 “What is toxicology?” 06:19 “What are the data types that your tool users are interfacing with?” 07:19 “What is an assay?” 08:15 “How does your science background benefit or disadvantage you as a data scientist?” 14:55 “What kind of audience do you build Shiny apps for and what is your workflow?” 18:05 “What made you decide to switch to industry and what were the bottlenecks between academia and industry?” 24:39 “Do you have any tips on proposing an ‘analytics exchange’ program to leadership?” 28:38 “What tools or systems do you use for sharing apps and what tools do you use daily?” 32:33 “How much oversight do you have on your analysis and do you ever get stuck in skeptic paralysis?” 35:18 “Do you have any podcast recommendations?” 38:01 “How can organizations resolve the tension between allowing employees space to learn and being productive?” 41:12 “What advice would you give to somebody starting a brand new community within their company?” 46:05 “Any resources for learning modular Shiny apps or tool building in general?” 47:40 “What is the career progression like for a data scientist and is it possible to grow as an individual contributor?”

SAS to R, data harmonization, & a career in pharma | Dony Unardi | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Dony Unardi, Principal Data Scientist at Genentech, to chat about the Teal framework for Shiny, data cleaning and harmonization in the pharmaceutical industry, and career transitions from SAS (and web development!) to R.
In this Hangout, we explore Teal, an open-source framework built around Shiny to accelerate the creation of clinical trial analysis apps. Donnie explains that Teal provides out-of-the-box features like advanced filtering and, most importantly, code reproducibility. This allows users to generate the exact R code needed to reproduce a visualization or analysis from the app in their local environment, a critical feature for validation and submission in the pharma industry.
Resources mentioned in the video and zoom chat: Teal Gallery → https://insightsengineering.github.io/teal.gallery/ Pharmaverse → https://pharmaverse.org/ SAS to R: A Data Snack from the Fred Hutch Data Science Lab → https://hutchdatascience.org/data_snacks/r_snacks/sas2r.html A SAS to R Success Story (Posit Video) → https://posit.co/resources/videos/a-sas-to-r-success-story/ R Consortium Submissions Working Group → https://rconsortium.github.io/submissions-wg/
If you didn’t join live, one great discussion you missed from the zoom chat was about making the transition from SAS to R. Many community members shared personal experiences, valuable resources, and advice, emphasizing the importance of learning R’s idioms rather than attempting a direct, one-to-one translation of SAS code. Let us know below if you’d like to hear more about this topic!
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps 00:00 Introduction 06:34 “What is the teal shiny app framework?” 12:10 “Does being in the Bay Area make a difference for data careers?” 16:44 “What kind of sass are you talking about? (SAS!)” 18:07 “How do you approach technical interviews?” 20:22 “Do you have any tips for a SAS programmer being told to use R?” 26:10 “What are some of the data quality challenges that you find in pharma data?” 29:43 “How is reproducibility defined in the pharma industry?” 32:37 “What does Teal offer for reproducibility that a Git repo does not?” 36:48 “What are the pharma job titles for roles focused on data cleaning and QAQC?” 39:11 “What do you mean by harmonizing data?” 42:09 “How do you prioritize projects and collaborate with your teammates?” 44:36 “Should personal data science projects be for learning or for a resume?” 47:58 “How did you get leadership support to contribute to the open-source community?”
Data viz, Shiny app design, & technical career paths | Kiegan Rice | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Keegan Rice, Senior Statistician at NORC at the University of Chicago, to chat about data visualization design, bridging the gap between technical and non-technical teams, and building large-scale, public-facing Shiny apps.
In this Hangout, we explore how to effectively communicate statistical results and design intuitive data visualizations for non-technical audiences. Keegan shares her top tips, emphasizing the importance of knowing your audience and not assuming they have the same level of data literacy as a practitioner. She suggests testing your charts on friends or colleagues outside the data space to ensure they are understandable. The conversation also covers the challenges of explaining concepts like statistical significance and the value of forcing stakeholders to articulate their core business questions rather than just asking for a specific table or chart.
Resources mentioned in the video and zoom chat: Kiegan’s posit::conf talk, “Wait, that’s shiny” → https://www.youtube.com/watch?v=SAbV6d7Pn0U Kiegan’s reproducible GitHub repo from the talk → https://github.com/kiegan/wait-thats-shiny Deepsha Menghani’s talk on crosstalk → https://youtu.be/AbuK2F57NEs The NCVS dashboard, an example of a tool built for a federal client → https://ncvs.bjs.ojp.gov/Home The Medicare Current Beneficiary Survey Chartbook → https://chartbook.mcbs.org/
If you didn’t join live, one great discussion you missed from the zoom chat was about favorite board games and sci-fi/fantasy books. Recommendations ranged from board games like Ark Nova, Dominion, and Terraforming Mars to book series like The Expanse, The Stormlight Archive, and Gideon the Ninth. Come hang out with us live to chat about this stuff!!
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps: 00:00 Introduction 07:40 “What are your top tips for data visualization design?” 11:15 “What are the challenges you’ve faced when communicating statistical results to non-statisticians?” 18:30 “Do you experience any imposter syndrome because you’re not really doing stats anymore?” 22:04 “How do you see data visualization evolving and what are your book recommendations?” 26:56 “How do you get federal clients to modernize beyond using tables for everything?” 29:37 “How do you decide what aspects to drop when a data visualization is too busy?” 35:57 “Is there a middle ground for Shiny between Quarto and JavaScript?” 39:51 “Which sci-fi or fantasy books are you loving?” 42:19 “What advice do you have for someone just getting started with interactive data visualization?” 47:40 “What advice do you have for attending or giving a talk at posit::conf for the first time?” 50:35 “How important is it to show the lineage of data so people can trust your visualizations?”
Sports analytics, baseball metrics, and Shiny apps | Brian Chase | Data Science Hangout
ADD THE DATA SCIENCE HANGOUT TO YOUR CALENDAR HERE: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Brian Chase, Vice President of Baseball Systems at the Miami Marlins, to chat about the role of baseball systems and data analytics in professional sports, leveraging technology and hardware for player performance and team strategy, the evolution of sports analytics since the “Moneyball” era, and career insights for breaking into niche industries (like baseball!).
In this Hangout, we explore how the Miami Marlins leverage advanced technology and data analytics to enhance player performance and team strategy. Brian details the use of innovative hardware like the Trajekt robotic pitching machine that allows batters to practice against simulated versions of opposing pitchers with exact spin rates and velocities. He also discusses the Hawkeye cameras and other systems, which capture real-time player and ball tracking data, including bio-mechanical information, using 12 cameras at LoanDepot Park. This extensive data is then platformed in tools like Snowflake and Google Cloud for analysis. The team also utilizes wearables to track bat speed and other metrics. Insights are delivered to coaches and players through pre-game and post-game reports and dashboards, often built using Posit Connect and Shiny apps, which helps translate complex data into easily digestible stories.
Resources mentioned in the video and zoom chat: Miami Marlins Job Opportunities → https://www.teamworkonline.com/baseball-jobs/miamibaseball/miami-marlins Technology & AI Magazine Feature on Miami Marlins → https://technologymagazine.com/brochure/miami-marlins-using-ai-to-accelerate-competitive-sport Trajekt Sports (Trajekt pitching machine) → https://www.trajektsports.com/ MIT Sloan Sports Analytics Conference → https://www.sloansportsconference.com/ Astroball by Ben Reiter → https://www.porchlightbooks.com/products/astroball-ben-reiter-9780525576648 The MVP Machine by Ben Lindbergh and Travis Sawchik → https://www.sandmanbooks.com/book/9781541698925?srsltid=AfmBOorVPNYGMdhNFsiaUfJ2N88em1qiGfEf6Kok5Z3LmaREs-Iv25ac
If you didn’t join live, one great discussion you missed from the zoom chat was about mascots! Libby shared her love for mascots, especially the San Antonio Missions “puffy taco”. Attendees chimed in, sharing their favorite team mascot pics - you really have to be there live to appreciate all the fun in the chat!!
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Timestamps: 00:00 Introduction 00:55 “Tell us a little bit about what you do and how you got here?” 09:15 “How did you get your foot in the door for an MLB job?” 14:02 “What coding languages, tools, and systems do your teams work with the most?” 19:35 “What does data analytics have to do with baseball hardware?” 23:51 “What do pre-game and post-game reports look like, and how do you use Shiny?” 26:39 “How do you measure ROI for technologies, and how do you get buy-in?” 30:41 “How has stats analytics evolved since the Moneyball era?” 34:25 “Is qualitative analysis still used alongside quantitative data from scouts?” 35:27 “Who will play you in the future of Moneyball 2?” 36:27 “Will AI benefits plateau if all teams have similar access to tools and data?” 40:22 “Are you measuring off-field factors like sleep, nutrition, and injuries in your models?” 42:57 “What’s the thought process behind developing new features and actionable metrics in sports analytics?” 47:53 “What might someone be surprised by when turning a hobby into a job?” 50:40 “Did you ever feel discouraged during your 4-year job search?” 50:50 “Was getting your MBA worth it for your career in sports?”
Deploying Scikit-learn models for in-database scoring with Snowflake and Posit Team
Modern data science workflows often face a critical challenge: how to efficiently deploy machine learning models where the data lives. Traditional approaches require moving large datasets out of the database for scoring, creating bottlenecks, security concerns, and unnecessary data movement costs.
In this demo, Nick Pelikan at Posit highlights how orbital bridges the gap between Python’s rich ML ecosystem and database-native execution by converting scikit-learn pipelines to optimized SQL. This enables data scientists to:
- Use familiar Python tools for model development
- Automatically translate complex feature engineering to SQL
- Deploy models without rewriting code in different languages
- Maintain model accuracy through faithful SQL translations
While this example focuses on Python, Nick also gave this demo using Orbital for R users: https://youtu.be/pnEjYNgOG9c?feature=shared
Helpful resources:
- Follow-along blog post: https://posit.co/blog/snowflake-orbital-scikit-learn-models/
- Supported models for Orbital: https://orbital.tidymodels.org/articles/supported-models.html
- Orbital (Python) GitHub Repo: https://github.com/posit-dev/orbital
- Orbital (R) GitHub Repo: https://github.com/tidymodels/orbital
- Databricks and Orbital for R and Python model deployment: https://posit.co/blog/databricks-orbital-r-python-model-deployment/
- Emily Riederer’s XGBoost example with Orbital: https://www.emilyriederer.com/post/orbital-xgb/
- Sara Altman’s blog post on Shiny + Databases: https://posit.co/blog/shiny-with-databases/
- Emil’s introduction of orbital: https://emilhvitfeldt.com/talk/2024-08-13-orbital-positconf/
- Nick’s Blog on Running Tidymodel Prediction Workflows with Orbital: https://posit.co/blog/running-tidymodel-prediction-workflows-inside-databases/
If you’d like to learn more about using Posit Team, you can always schedule time to chat with Posit here: https://posit.co/schedule-a-call/
AI and Shiny | Keynote ShinyConf 2025
#ShinyConf #ShinyConf2025
This is a talk from ShinyConf 2025: https://www.shinyconf.com
Abstract: As LLMs continue to get more and more capable, you might find yourself wanting to build web applications that make use of LLMs. Shiny is a great tool for doing this. I will talk about some of the tools we’ve developed at Posit to help you build applications that use LLMs, and I’ll show you how simple it is to get started building your first AI chat application with Shiny. On the flip side, LLMs are great tools for helping to build Shiny applications, and I will show the AI-driven tools we’ve been working on at Posit that can help you build Shiny applications more quickly and with more fun.
Want to explore more sessions? Sign up for replay access:
Building Tailored Dashboards: Drill Down Visualizations and LLM-Powered Summaries with Shiny
Led by Isabella Velásquez, Sr Product Marketing Manager at Posit PBC
Scenario: Imagine the weekly scramble at DemoCo. Isabella, a lonely Marketing analyst, spends hours every Friday manually compiling marketing lead performance data from Salesforce, website logs, and event records into a sprawling Excel report. The tedious, redundant process is both a time sink and a bottleneck.
Marketing Leadership, who need to identify top-performing platforms, find the mass amount of information in the report confusing. They constantly return to Isabella for clarification or, even worse, don’t reach back out and make misinformed decisions on critical budget allocation. Determined, Isabella decides it’s finally time to automate and tailor this critical dashboard, and save headaches for both Leadership and herself.
In this demo, you will learn how to:
- Transform redundant, manual, error-prone data compilation into an automated lead performance dashboard with Shiny
- Integrate diverse marketing data sources for a holistic view
- Build tailored marketing KPI dashboards that address Leadership’s specific questions
- Use drill-downs, data visualizations, and LLM-powered summaries to reduce data overload and clarify complex takeaways instantly 5.Provide flexibility in dashboard functionality to meet diverse preferences and needs, from pre-selected insights derived directly from the data to implementing an LLM-powered analytics option
Helpful resources:
- Demo Slides: https://github.com/ivelasq/2025-06-25_marketing-demo/blob/main/README.md
- Demo Marketing Dashboard: https://pub.current.posit.team/public/marketing-demo/
- GitHub Repo (including links to packages used: pointblank, querychat, etc.): https://github.com/ivelasq/2025-06-25_marketing-demo?tab=readme-ov-file
If you have specific follow-up questions about using Posit in your organization, we’d love to chat with you: https://posit.co/schedule-a-call/
Demystifying LLMs with Ellmer
From R/Medicine 2025
Joe Cheng, CTO, Posit Joe Cheng is the CTO of Posit, PBC. He’s the original creator of the Shiny web framework and co-creator of ellmer.
Today’s best LLMs are incredibly powerful–but you’re only scratching the surface of their capabilities if your use is limited to ChatGPT or Copilot. Accessing LLMs programmatically opens up a whole new world of possibilities, letting you integrate LLMs into your own apps, scripts, and workflows. In this workshop, we’ll cover:
A practical introduction to LLM APIs
– Configuring R to access LLMs via the ellmer package – Customizing LLM behavior using system prompts and tool calling – Creating Shiny apps with integrated chatbots – Using LLMs for natural language processing
Attendees will leave the workshop armed with ready-to-run examples, and the confidence and inspiration to run their own experiments with LLMs.
Attendees should be familiar with the basics of R and have a working R installation.
Note that to avoid any potential firewall issues, it is recommended that participants use a personal computer for this workshop.
Resources
Presentation: https://jcheng5.github.io/rmedicine-2025 R/Medicine: https://rconsortium.github.io/RMedicine_website/ R Consortium: https://www.r-consortium.org/

Harnessing LLMs for Data Analysis | Led by Joe Cheng, CTO at Posit
When we think of LLMs (large language models), usually what comes to mind are general purpose chatbots like ChatGPT or code assistants like GitHub Copilot. But as useful as ChatGPT and Copilot are, LLMs have so much more to offer—if you know how to code. In this demo Joe Cheng will explain LLM APIs from zero, and have you building and deploying custom LLM-empowered data workflows and apps in no time.
Posit PBC hosts these Workflow Demos the last Wednesday of every month. To join us for future events, you can register here: https://posit.co/events/
Slides: https://jcheng5.github.io/workflow-demo/ GitHub repo: https://github.com/jcheng5/workflow-demo
Resources shared during the demo: Ellmer https://ellmer.tidyverse.org/ Chatlas https://posit-dev.github.io/chatlas/
Environment variable management: For R: https://docs.posit.co/ide/user/ide/guide/environments/r/managing-r.html#renviron For Python https://pypi.org/project/python-dotenv/
Shiny chatbot UI: For R, Shinychat https://posit-dev.github.io/shinychat/ For Python, ui.Chat https://shiny.posit.co/py/docs/genai-inspiration.html
Deployment Cloud hosting https://connect.posit.cloud On-premises (Enterprise) https://posit.co/products/enterprise/connect/ On-premises (Open source) https://posit.co/products/open-source/shiny-server/
Querychat Demo: https://jcheng.shinyapps.io/sidebot/ Package: https://github.com/posit-dev/querychat/
If you have specific follow-up questions about our professional products, you can schedule time to chat with our team: pos.it/llm-demo

Forecasting AI Demand at Microsoft | Sajay Suresh | Data Science Hangout
To join future data science hangouts, add it to your calendar here: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Sajay Suresh, Senior Director of Data and Applied Science at Microsoft, to chat about data center supply chain planning, forecasting AI demand, and navigating data science careers.
In this Hangout, we explored how the emergence of technologies like LLMs changed projections for data center demand. Sajay discussed how forecasting for something with little historical data, like AI demand, required drawing analogies from the past, such as comparing the training/inferencing model to the iPhone and its App Store. A major complexity in current supply chain planning is the lack of fungibility with modern GPUs requiring specific infrastructure like liquid cooling, meaning data centers designed for GPUs cannot easily be repurposed for traditional compute/storage workloads, increasing investment risk if demand is lower than planned.
Resources mentioned in the video and zoom chat: LLM Workflow Demo with Joe Cheng → https://pages.posit.co/05-28WorkflowDemo.html Posit::conf 2025 Virtual Registration → https://posit.co/blog/posit-conf-2025-virtual-experience-registration/ Sajay Suresh on LinkedIn → https://www.linkedin.com/in/sajay-suresh-12687631/ Find mentors on ADPList → https://adplist.org/ Officeverse R packages for Office documents → https://ardata-fr.github.io/officeverse/ Microsoft team meetup video on capacity planning → https://www.youtube.com/live/07j22d4B_hA?feature=shared Seattle Data And AI Security community → https://www.linkedin.com/posts/seattle-data-and-ai-security_microsoft-fabric-tour-seattle-data-ai-security-6891902675280633856-xLw3?utm_source=share&utm_medium=member_desktop Quarto Gallery → https://quarto.org/docs/gallery/ Quarto Guide → https://quarto.org/docs/guide/
If you didn’t join live, one great discussion you missed from the zoom chat was about communities and meetups recommended for networking and learning in data science. Participants shared various groups like R-Ladies, Data Book Club, local tech meetups, and specific conference recommendations like Shiny Conf and DataConf.ai NYC. What’s your favorite data community?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us! Subscribe to posit::conf updates: https://posit.co/about/subscription-management/

Create a PydyTuesday Shiny app with Shiny Assistant
Watch Sara Altman quickly prototype a Shiny app for PydyTuesday with Shiny Assistant, an AI-powered tool designed to help you with Shiny. Shiny Assistant can create Shiny apps from scratch, debug or assist with existing apps, and answer general questions about Shiny.
Shiny Assistant: https://gallery.shinyapps.io/assistant/
Learn more:
- Shiny for Python: https://shiny.posit.co/py/
- The potential for AI-powered Shiny app prototyping with Shiny Assistant: https://posit.co/blog/ai-powered-shiny-app-prototyping/
- TidyTuesday project: https://github.com/rfordatascience/tidytuesday
- Posit PydyTuesday GitHub repo: https://github.com/posit-dev/python-tidytuesday
- Other videos in this PydyTuesday playlist: https://youtube.com/playlist?list=PL9HYL-VRX0oSDQjicFMLIIdcLv5NuvDp9&si=i09_CuKmjiV86D-9
#pythoncontent
Standardizing a safety model with tidymodels, Posit Team & Databricks at Suffolk Construction
If you’ve ever struggled with standardizing machine learning workflows, ensuring secure data access, or scaling insights across your organization, this month’s Posit Team Workflow demo is for you.
Maxwell Patterson, Data Scientist at Suffolk walked us through how their team is:
Standardizing model workflows using tidymodels, vetiver, Shiny, and Quarto Leveraging row-level permissions in Shiny apps to improve data governance Using Databricks and Posit to gain insights faster and more securely
A few helpful links for this demo: Suffolk Customer Spotlight: https://posit.co/about/customer-stories/suffolk/ Quarto email customization: https://docs.posit.co/connect/user/quarto/#email-customization Vetiver package: https://rstudio.github.io/vetiver-r/reference/vetiver_deploy_rsconnect.html Pins package: https://pins.rstudio.com/ Tidymodels “meta-package” https://tidymodels.tidymodels.org/ More information on how Posit and Databricks work together: https://posit.co/use-cases/databricks/
Do you use both Databricks and Posit, but not together yet. You can use this link to chat more with our team as well: https://pos.it/chat-databricks
Q&A Recording: https://youtube.com/live/zU-bBUJMyQ4?feature=share To add future workflow demos on your calendar: https://pos.it/team-demo
^ These demos happen the last Wednesday of every month
Shiny Assistant - Prototype Shiny for Python Apps with AI
Ryan Johnson walks through how to use Shiny Assistant, an AI-powered tool for Shiny for Python app development. Learn how to quickly create and interact with a Shiny app based on your own description. Shiny Assistant is a powerful tool for rapid prototyping and iteration. You can also ask it questions about how to use Shiny.
Shiny Assistant: https://gallery.shinyapps.io/assistant/
Learn more:
- Shiny for Python: https://shiny.posit.co/py/
- The potential for AI-powered Shiny app prototyping with Shiny Assistant: https://posit.co/blog/ai-powered-shiny-app-prototyping/
- TidyTuesday project: https://github.com/rfordatascience/tidytuesday
- Posit PydyTuesday GitHub repo: https://github.com/posit-dev/python-tidytuesday
- Other videos in this PydyTuesday playlist: https://www.youtube.com/playlist?list=PL9HYL-VRX0oSDQjicFMLIIdcLv5NuvDp9
#pythoncontent
{shinylive}: Serverless Shiny applications workshop
{shinylive}: Serverless Shiny applications workshop: An exercise in deploying your app to GitHub Pages - Barret Schloerke
Resources mentioned in the workshop:
- Workshop slides (best viewed in browsers using Chrome engine): http://schloerke.com/workshop-rinpharma24-shinylive/
- Workshop GitHub repository: https://github.com/schloerke/workshop-rinpharma24-shinylive
Workshop recorded as part of the 2024 R/Pharma Workshop Series

R-Ladies Rome (English) - Interactive R, Python, and Shiny in the Browser with Quarto and Shinylive
In this session, Isabella Velásquez walks us through Quarto Live and Shinylive, powerful tools that allow us to create interactive R, Python, and Shiny applications without a server. These technologies make it easier than ever to share dynamic, engaging data science projects directly in the browser.
What You’ll Learn
️ How Quarto Live brings interactive code to static documents ️ How Shinylive allows Shiny apps to run entirely in the browser ️ Practical use cases for data science, education, and collaboration
This talk is ideal for data scientists, educators, and open-source enthusiasts who want to make their work more interactive and accessible.
To further explore the subject, we recommend visiting the presentation of the talk : https://ivelasq.github.io/2025-02-21_r-python-shiny-in-the-browser
More about the Speaker:
0:00 R-Ladies Rome Chapter Intro 5:00 Isabella’s Talk
Please visit: https://rladiesrome.org
Deploy your work to Posit Connect Cloud
Deploy your data science content with Posit Connect Cloud! Daniel Chen walks you through deploying a Shiny for Python app to Connect Cloud, sharing your content, and updating it via GitHub.
While this video focuses on Shiny for Python, Posit Connect Cloud also supports Quarto, Streamlit, Jupyter, and more!
Use Posit Connect Cloud to share your PydyTuesday work with the world. Learn more here: https://github.com/posit-dev/python-tidytuesday .
Resources:
- Shiny app code: https://github.com/posit-dev/py-shiny-templates/tree/main/dashboard
- Posit Connect Cloud: https://connect.posit.cloud/
- Shiny for Python: https://shiny.posit.co/py/
- Other videos in this PydyTuesday playlist: https://www.youtube.com/playlist?list=PL9HYL-VRX0oSDQjicFMLIIdcLv5NuvDp9
#pythoncontent
Shiny community, hackathons, and his AI mindset | Joe Cheng | Data Science Hangout
To join future data science hangouts, add it to your calendar here: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Joe Cheng, CTO at Posit, to chat about the Shiny contest, the use of AI in data science, and designing hackathons for learning new technologies. We were joined by several past and present Shiny contest winners who gave great advice on how to get started if you want to participate (and we really hope you do)!
In this Hangout, we explore the evolution of the Shiny contest since its inception, including what made the 2024 submissions unique and the ways the contest encourages community contribution and learning. Joe also shared about his personal journey from feeling skepticism about AI to seeing and embracing its potential. We got some amazing questions from the Hangout attendees! We hope you join us live next time to ask some of your own questions
Resources mentioned in the video and zoom chat:
2024 Shiny Contest Winners → https://posit.co/blog/winners-of-the-2024-shiny-contest/
Joe’s AI Hackathon Slides → https://jcheng5.github.io/llm-quickstart/quickstart.html
Shiny Assistant → https://gallery.shinyapps.io/assistant/
Isabella’s blog post on prototyping with Shiny Assistant → https://posit.co/blog/ai-powered-shiny-app-prototyping/
Posit Conf Workshops → https://reg.rainfocus.com/flow/posit/positconf25/attendee-portal/page/sessioncatalog?tab.day=20250916&search.sessiontype=1675316728702001wr6r
Shiny Conference 2025 → https://www.shinyconf.com/
Call for Speakers Shiny Conf 2025 → https://sessionize.com/shiny-conf-2025/
Shiny Tableau → https://rstudio.github.io/shinytableau/
Echarts4r → https://echarts4r.john-coene.com
Elmer package on Github → https://github.com/tidyverse/ellmer
All the Shiny app links mentioned in the video and zoom chat: Eric Nantz 2021 Shiny Contest Submission → https://forum.posit.co/t/the-hotshots-racing-dashboard-shiny-contest-submission/104925 Eric Nantz’s R/Pharma conference keynote on AI → https://youtu.be/AfMa1CVUdXU?si=ThLsKFyonntxzBUF Eric Nantz’s Haunted Places app → https://youtu.be/vX09QGMuOfo?si=K5_uPfK5bcfZZ92l Umair Durrani’s Shiny Storytelling app → https://umair.shinyapps.io/storytimegcp/ Umair’s Blue Sky profile → https://bsky.app/profile/transport-talk.bsky.social Umair’s Shiny meetings project on Github → https://github.com/shiny-meetings/shiny-meetings Abby Stamm’s Shiny Accessibility app → https://github.com/ajstamm/shiny-a11y-app
If you didn’t join live, one great discussion you missed from the zoom chat was about everyone’s favorite interactive plotting tools. Someone asked whether Plotly was the best option, and lots of people said they loved ggiraph, echarts4r, ObservableJS, and others. What about you?! What’s your favorite interactive plotting library?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!

The changing landscape of data science | Kanchana Padmanabhan | Data Science Hangout
To join future data science hangouts, add it to your calendar here: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Kanchana Padmanabhan, Director of Data and AI at Homebase, to chat about data science team structures, the role of math in understanding LLMs, building effective hackathons, and communicating model insights to stakeholders.
In this Hangout, we explore the importance of understanding the probabilistic nature of LLMs and how that understanding should influence how data scientists approach their work. We also discussed how to structure a hackathon to encourage learning, centering on the customer problem, and collaboration between technical teams and business stakeholders.
Resources mentioned in the video and zoom chat: List of R Conferences for 2025 → https://rworks.dev/posts/r-conferences-2025/ Posit Conference Call for Talks → https://posit.co/blog/speak-at-posit-conf-2025/ Julia Silge’s workflow demo on model cards → https://www.linkedin.com/posts/posit-software_join-us-for-a-live-workflow-demo-on-creating-activity-7287998741557522432-jseQ?utm_source=share&utm_medium=member_desktop Shiny Assistant Gallery → https://gallery.shinyapps.io/assistant Data Science Hangout Playlist → https://www.youtube.com/playlist?list=PL9HYL-VRX0oTu3bUoyYknD-vpR7Uq6bsR Add Posit Team End-to-End Workflows to calendar → https://evt.to/aoimiohuw Making of a Manager Book → https://www.amazon.com/Making-Manager-What-Everyone-Looks/dp/0735219567
If you didn’t join live, one great discussion you missed from the zoom chat was about how to gain domain knowledge for a new industry, where attendees shared their experiences and advice. Let us know below if you’d like to hear more about this topic!
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!

Stop Your Shiny Apps from Breaking on Mobile! Master Responsive Design in Minutes 📱💻
A comprehensive guide to implementing responsive design in Shiny applications using UI layout columns. This tutorial covers how to create adaptive layouts that automatically adjust based on screen size, from desktop to mobile devices. Learn how to leverage Shiny’s bootstrap-based grid system to create professional, responsive applications that look great on any device.
Key concepts covered:
• Default Shiny responsive behavior • UI layout column implementation • Screen size breakpoints • Bootstrap grid system • Responsive card layouts • Mobile-first design principles
Reference Documentation:
UI Layout Columns: https://shiny.posit.co/r/reference/shiny/latest/layout_column Layout Guide: https://shiny.posit.co/r/articles/build/layout-guide/ Bootstrap Integration: https://shiny.posit.co/r/articles/build/bootstrap/ Responsive Design: https://shiny.posit.co/r/articles/build/responsive/
Timestamps: 0:00 - Introduction 0:23 - Default Shiny layout behavior 0:38 - Understanding screen responsiveness 1:05 - Introduction to UI layout columns 1:38 - Screen size breakpoints explained 2:02 - Desktop layout demonstration 2:30 - Mobile layout adaptation 2:44 - Bootstrap grid system overview 3:21 - Documentation resources 3:45 - Conclusion
Transform Boring Forms into Eye-Catching UI: Shiny Party Tricks That Will Make You Look Like a Pro 🎉
Learn how to elevate your Shiny forms from basic to professional with dynamic accordions. This tutorial demonstrates how to implement intelligent form organization and visual feedback using Shiny’s accordion components. We cover both basic accordion implementation and advanced dynamic features including status indicators, automatic title updates, and section validation. Perfect for developers looking to enhance their Shiny applications with modern, user-friendly form interfaces.
Key features covered:
Basic form to accordion conversion Dynamic panel updates Status indicator implementation Visual feedback systems Section validation techniques
Reference Documentation:
For accordion implementation, see: https://shiny.posit.co/r/reference/shiny/latest/accordion For dynamic updates, see: https://shiny.posit.co/r/reference/shiny/latest/updateAccordion For input validation, see: https://shiny.posit.co/r/reference/shiny/latest/validate For modular development, see: https://shiny.posit.co/r/articles/build/modules/
Timestamps: 0:00 - Introduction 0:23 - Basic form structure overview 0:50 - Introduction to accordion components 1:11 - Basic accordion implementation 1:35 - Dynamic accordion enhancement 2:00 - Status indicators and visual feedback 2:29 - Updating accordion panels 2:55 - Documentation resources 3:18 - Conclusion
Wes McKinney & Hadley Wickham (on cross-language collaboration, Positron, career beginnings, & more)
We hosted a special event hosted by Posit PBC with Wes McKinney (Pandas & Apache Arrow) and Hadley Wickham (rstats & tidyverse) to ask questions, share your thoughts, and exchange insights about cross-language collaboration with fellow data community members.
Here’s a preview into what came up in conversation:
- Cross-language collaboration between R and Python
- Positron, a new polyglot data science IDE
- Open source development, how Wes and Hadley got involved in open source and their experiences in building and maintaining open-source projects such as Pandas and the tidyverse.
- Documentation for R and Python, especially in the context of teams that use both languages (shoutout to Quarto!)
- The use of LLMs in data science
- The emergence of libraries like Polars and DuckDB
- Challenges of switching between the two languages
- Package development and maintenance for polyglot teams that have internal packages in both languages
- The future of data science
The chat was on fire for this conversation and we’ve gathered most of the links shared among the community below:
Documentation mentioned: Positron, next-generation data science IDE built by Posit: https://positron.posit.co/ Quarto tabset documentation: https://quarto.org/docs/output-formats/html-basics.html#tabset-groups
Packages / Extensions mentioned: Pins: https://pins.rstudio.com/ Vetiver: https://vetiver.posit.co Orbital: https://orbital.tidymodels.org Elmer: https://elmer.tidyverse.org Tabby Extension: https://quarto.thecoatlessprofessor.com/tabby/
Blog posts: AI chat apps with Shiny for Python: https://shiny.posit.co/blog/posts/shiny-python-chatstream/ Using an LLM to enhance a data dashboard written in Shiny: R Sidebot & Python Sidebot Marco Gorelli Data Science Hangout (polars): https://youtu.be/lhAc51QtTHk?feature=shared Emily Riederer’s blog post on Polars: https://www.emilyriederer.com/post/py-rgo-polars/ Jeffrey Sumner’s tabset example: https://rpy.ai/posts/visualizations%20with%20r%20and%20python/r_python_visualizations Emily Riederer’s blog post on Python and R ergonomics: https://www.emilyriederer.com/post/py-rgo/11 Sam Tyner’s blog post on Lessons from “Tidy Data”: https://medium.com/@sctyner90/10-lessons-from-tidy-data-on-its-10th-anniversary-dbe2195a82b7
Other: Hadley Wickham’s cocktails website: https://cocktails.hadley.nz 5 Posit subscription management to find out about new tools, events, etc.: https://posit.co/about/subscription-management/
New to Posit? Posit builds enterprise solutions and open source tools for people who do data science with R and Python. (We are also the company formerly called RStudio) We’d love to have you join us for future community events!
Every Thursday from 12-1pm ET we host a Data Science Hangout with the community and invite you to join us! You can add that event to your calendar with this link: https://www.addevent.com/event/Qv9211919

DuckDB and the future of databases | Hannes Mühleisen | Data Science Hangout
To join future data science hangouts, add it to your calendar here: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Hannes Mühleisen, Co-founder and CEO at DuckDB Labs, to chat about the evolution of database systems, the unique architecture of DuckDB, and how to find opportunities in areas others might consider “boring.” He also showed us a picture of the real life duck, Wilbur, that inspired the name DuckDB! 🦆
In this Hangout, we explore how DuckDB is changing the traditional concept of a database by making it accessible to a wide range of users and use cases. We also discuss its origins and how it was inspired by the challenges of data analysis and the importance of focusing on real user problems when building tools.
What is a database and where does it live? DuckDB is challenging database assumptions by saying… maybe your expensive laptop can hold a database instead of just pinging one? Maybe it can do more than just run web browsers! Hannes wants you to know that database doesn’t have to be a bad word, and that you can actually have a great experience with one. If the data community’s affinity and enthusiasm for DuckDB is any indication, we think he’s right.
We hope you listen in to hear Hannes talk about: a simple explanation of what DuckDB is, DuckDB’s in-process architecture and why it’s so cool, different DuckDB use cases (should you be using DuckDB?), DuckDB’s compatibility with cloud data systems, and more.
Resources mentioned in the video and zoom chat: DuckDB Website → https://duckdb.org/ DuckDB Labs Website → https://duckdblabs.com/ Posit Conf talk by Hannes → https://www.youtube.com/watch?v=GELhdezYmP0 Sarah Alman’s webinar on using DuckDB and Shiny → https://www.youtube.com/watch?v=6AGroJb4zPM Forbes Article on Imposter Syndrome → https://www.forbes.com/sites/marycrossan/2024/12/18/how-to-combat-imposter-syndrome-by-developing-character/ MotherDuck → https://motherduck.com/ MotherDuck Blog Post “Big Data is Dead” → https://motherduck.com/blog/big-data-is-dead/ Posit Blog post on Shiny with Databases → https://posit.co/blog/shiny-with-databases/ DSH episode with Marco Gorelli → https://www.youtube.com/watch?v=lhAc51QtTHk Emil Hvitfeldt’s talk at posit::conf about orbital → https://youtu.be/Qnm1y0KPxVM Marcos Huerta’s Blog post on DuckDB and Bert → https://marcoshuerta.com/posts/duckdb-and-bert/
If you didn’t join live, one great discussion you missed from the zoom chat was about whether industry teams who use and benefit from open source tools could devote 5-10% of their time to giving back to the open source projects with code contributions or other support. Let us know below if you’d like to hear more about this topic!
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!

Real-World Python Dashboard Project w/ Quarto! (Airbnb Review Analysis)
In this video we use real-world Airbnb data to put together a dashboard with Quarto & Python. We start with the basics of layout and simple components and then progress to more advanced topics such as integrating Shiny within your Quarto doc.
- Github Repo: https://github.com/KeithGalli/quarto-projects
- Check out the recent Quarto Crash Course Video! https://youtu.be/_VKxTPWDhA4?si=sf7cbvSJGj6gnlCl
- Check out Mine’s Quarto Dashboards with R Code Videos! https://youtu.be/HW7QbqI4fH0?si=oyJhLaJ0n3Vg4v7Y
- Learn more about Shiny for Dashboards! https://youtu.be/I2W7i7QyJPI?si=Osqk5odwSOZ0ub01
- Bootstrap Icons: https://icons.getbootstrap.com/
Video Timeline! 0:00 - Video Overview 0:41 - About our Data & Get Started with the Code 1:38 - Basic Quarto Dashboard Layout Information 5:08 - Adding Value Boxes to our Dashboard 10:56 - Prepping our Airbnb Data for our Dashboard 17:00 - Adding Matplotlib Data Visualizations to our Dashboard (line graph, bar chart) 26:26 - Add a Map of Airbnb Listings using Latitude & Longitude (Folium Library) 33:18 - Adding Additional Dashboard Pages with Interactive Tables (itables library) 42:23 - When to use Quarto versus Shiny for Dashboards? 44:00 - Using Shiny within a Quarto Project 49:14 - Hosting your Quarto Documents with Posit Connect Cloud
#python #quarto #dashboards #pythoncontent
Sharpening your axe and the BAU trap | Steph Locke | Data Science Hangout
To join future data science hangouts, add it to your calendar here: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Steph Locke, Digital and App Innovation Leader at Microsoft, to chat about how to persuade your manager to give you more time for professional development, why “business as usual” (BAU) work can choke development, and how killing projects is actually a good thing.
In this Hangout, we explore the importance of investing time in skill development and how this can lead to long-term gains in efficiency and quality. Steph shares advice on how to talk to managers about the value of “sharpening your axe,” and why it is more efficient to train in order to do things well initially than to spend time on continuous maintenance of subpar work.
Is a bunch of “business as usual” work bogging down the potential output of development teams? This is where Steph’s concept of investing in high quality work up-front comes in. She talks about the dangers of rushing to release products that aren’t built with high quality and low ongoing maintenance in mind: “…when [people] don’t necessarily have time to invest in doing things in a way that’s going to have high quality and low maintainability requirements and is easy to extend and create new things, when people aren’t doing that, anything they ship is going to then cost them more time to do something to to look after whatever they’ve shipped. That then gives them less time to ship the next thing.” If this resonates with you, give Steph a follow on LinkedIn and make sure you read her article.
Resources mentioned in the video and zoom chat: Steph’s article on how BAU chokes development → https://www.linkedin.com/pulse/developer-velocity-choked-bau-stephanie-locke-fsiqe Posit’s documentation on using copilot in the RStudio IDE → https://docs.posit.co/ide/user/ide/guide/tools/copilot.html A YouTube video about using Shiny apps for data entry into a backend database → https://www.youtube.com/watch?v=zDJc8sXh2qw
If you didn’t join live, one great discussion you missed from the zoom chat was around the discrepancies in pay and responsibilities between individual contributor (IC) and management tracks in tech companies, and the perception that management roles often have better compensation and advancement opportunities, even when the work may not be more valuable than IC contributions. Let us know below if you’d like to hear more about this topic! Is there a need for more non-people-leader technical leadership roles for highly skilled individual contributors?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us!
Workflow Demo Live Q&A - December 18th!
This is the Live Q&A session for our Workflow Demo on December 18th to show how to build a Shiny app that reads from and writes to a database - using DuckDB.
The demo will be here: https://youtu.be/6AGroJb4zPM
Sara covers how to:
- Set up a connection to DuckDB from a Shiny app
- Query the database using R or Python
- Use editable tables to enable users to write back to the database
- Securely deploy your app to Posit Connect
Resources mentioned in this Q&A: Connect Authentication documentation: https://docs.posit.co/connect/user/oauth-integrations/ Git backed deployment in Posit Connect: https://posit.co/blog/git-backed-deployment-in-posit-connect/ shinylive: https://posit-dev.github.io/r-shinylive/ Mastering Shiny Best Practices: https://mastering-shiny.org/best-practices.html#best-practices
Blogs: https://blog.stephenturner.us/p/duckdb-vs-dplyr-vs-base-r https://outsiderdata.netlify.app/posts/2024-04-10-the-truth-about-tidy-wrappers/benchmark_wrappers.html Using Posit tools with data in DuckDB, Databricks, and Snowflake: https://posit.co/blog/databases-with-posit/ Creating a Shiny app that interacts with a database: https://posit.co/blog/shiny-with-databases/ Appsilon has a lot of resources on the topic: https://www.appsilon.com/post/r-shiny-duckd
Please note, while the monthly Posit Team Workflow Series is usually the last Wednesday of the month - this will be a week earlier. Cheers to a festive holiday season and a fantastic year ahead for you and yours!
To add future Monthly Workflow Demo events to your calendar → https://www.addevent.com/event/Eg16505674
You can view all the previous workflow demos here → https://www.youtube.com/playlist?list=PL9HYL-VRX0oRsUB5AgNMQuKuHPpNDLBVt
Connecting Shiny Apps to Databases with Posit Team
Many of us learned to work with data on our laptop, but at work data is increasingly stored in databases. Join us on Wednesday, Dec 18th at 11am ET with Sara Altman, who will lead us through building a Shiny app that reads from and writes to a database - using DuckDB 🦆
Sara will cover how to:
- Set up a connection to DuckDB from a Shiny app
- Query the database using R or Python
- Use editable tables to enable users to write back to the database
- Securely deploy your app to Posit Connect
Q&A Recording: https://youtube.com/live/C8j3d46AacM?feature=share
Resources mentioned in this Q&A: Connect Authentication documentation: https://docs.posit.co/connect/user/oauth-integrations/ Git backed deployment in Posit Connect: https://posit.co/blog/git-backed-deployment-in-posit-connect/ shinylive: https://posit-dev.github.io/r-shinylive/ Mastering Shiny Best Practices: https://mastering-shiny.org/best-practices.html#best-practices
Blogs: https://blog.stephenturner.us/p/duckdb-vs-dplyr-vs-base-r https://outsiderdata.netlify.app/posts/2024-04-10-the-truth-about-tidy-wrappers/benchmark_wrappers.html Using Posit tools with data in DuckDB, Databricks, and Snowflake: https://posit.co/blog/databases-with-posit/ Creating a Shiny app that interacts with a database: https://posit.co/blog/shiny-with-databases/ Appsilon has a lot of resources on the topic: https://www.appsilon.com/post/r-shiny-duckd
Please note, while the monthly Posit Team Workflow Series is usually the last Wednesday of the month - this will be a week earlier. Cheers to a festive holiday season and a fantastic year ahead for you and yours!
To add future Monthly Workflow Demo events to your calendar → https://www.addevent.com/event/Eg16505674
You can view all the previous workflow demos here → https://www.youtube.com/playlist?list=PL9HYL-VRX0oRsUB5AgNMQuKuHPpNDLBVt
From paramedic to leading analytics in pharma | Dan Haight | Data Science Hangout
To join future data science hangouts, add it to your calendar here: https://pos.it/dsh - All are welcome! We’d love to see you!
We were recently joined by Dan Haight, Director of Continuous Improvement Analytics at Merck, to talk about his unconventional career path, the value of lateral career moves (check out his book recommendation on this!), and the importance of creating “great charters” for successful stakeholder communication in projects.
Dan’s advice about project management in this episode is so valuable. He recognizes how tempting it is to rush into a project without knowing all the facts beforehand, but then your scope starts to balloon, you see the project getting behind, and there are all these constraints you weren’t aware of. So, he says to take time to build a charter, be upfront with stakeholders about realistic timelines, and then use the charter as a contract to negotiate scope changes and resource allocation.
He also discusses the challenges of working with incomplete data and the need to triangulate information from multiple sources to ensure accuracy and build confidence in the findings. If you’re a job seeker or looking to transition, Dan came with great advice to pursue continuous learning, network, and hone the ability to effectively communicate the value of their work. You’ll have to listen to learn more!
If you didn’t attend live, you missed the party in the zoom chat People were excited about posit::conf 2025 early bird tickets getting released, and there was a SUPER great discussion about how to share your work when it’s all under NDA or very private due to security reasons. There was some great suggestions, like:
🥸 Anonymize data if it’s possible, or present a similar project abstractly Use public data to demonstrate the methods you used, even if you can’t showcase the findings Emphasize lessons learned during a project (ah-hah moments) instead of the business impacts IF the overall project failed or wasn’t implemented (as is the fate of many DS projects!) Document projects as you go, in a format that you can safely take with you, so that you can remember all these things even after you leave your role Lean on your friends and colleagues to help you describe the impacts you had on a project, or the importance of what you did (we all need to be hyped up sometimes when it comes to writing resumes!!)
Resources mentioned in the video and zoom chat: Up is Not the Only Way Book → https://www.amazon.com/Up-Not-Only-Way-Rethinking/dp/1523083484 Shiny Assistant helps you build shiny apps → https://shiny.posit.co/blog/posts/shiny-assistant/ Brag Documents - Julia Evans → https://jvns.ca/blog/brag-documents/ Lessons From Four Senior Leaders in the Data Space → https://posit.co/blog/lessons-from-four-senior-leaders-in-the-data-space/
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co Hangout: https://pos.it/dsh LinkedIn: https://www.linkedin.com/company/posit-software Bluesky: https://bsky.app/profile/posit.co
Thanks for hanging out with us! Subscribe to posit::conf updates: https://posit.co/about/subscription-management/
Joe Cheng - Summer is Coming: AI for R, Shiny, and Pharma
Summer is Coming: AI for R, Shiny, and Pharma - Joe Cheng
Abstract: R users tend to be skeptical of modern AI models, given our weird insistence on answers being accurate, or at least supported by the data. But I believe the time has come—or maybe it’s a little late—for even the most AI-cynical among us to push past their discomfort and get informed about what these tools are truly capable of. And key to that is moving beyond using AI-enabled apps, and towards building our own scripts, packages, and apps that make judicious use of AI.
In this talk, I’ll tell you why I believe AI has more to offer the R community than just wrong answers from chat windows or mediocre code suggestions in our IDEs. I’ll also introduce brand-new tools we’re developing at Posit that put powerful AI tools within reach of every R user. And finally, I’ll show how adding some AI could make your next Shiny app dramatically more useful for your users.
Resources mentioned in the talk:
- Slides: https://jcheng5.github.io/pharma-ai-2024
- {elmer} Call LLM APIs from R: https://elmer.tidyverse.org/
- {shinychat} Chat UI component for Shiny for R https://github.com/jcheng5/shinychat
- R/Pharma GenAI Day Recordings: https://www.youtube.com/playlist?list=PLMtxz1fUYA5AYryl4t2mtqBngqWDrnMXJ
Presented at the 2024 R/Pharma Conference

Quarto Dashboards 3: Theming and Styling | Mine Çetinkaya-Rundel | Posit
Theming and styling Quarto dashboards built with R and/or Python.
Before watching this video, you might want to watch Parts 1 & 2.
This video takes you through
0:00 - Theming (including Bootswatch themes, light/dark mode, customizing themes with SCSS) 3:55 - Styling 4:55 - Live coding demo
Slides can be found at https://mine.quarto.pub/quarto-dashboards/3-theming-styling and the starter documents for the accompanying exercises at https://github.com/mine-cetinkaya-rundel/olympicdash .
Materials for all parts of the videos can be accessed at https://mine.quarto.pub/quarto-dashboards .
You already analyze and summarize your data in computational notebooks with R and/or Python. What’s next? You can share your insights or allow others to make their own conclusions in eye-catching dashboards and straight-forward to author, design, and deploy Quarto Dashboards, regardless of the language of your data processing, visualization, analysis, etc. With Quarto Dashboards, you can create elegant and production-ready dashboards using a variety of components, including static graphics (ggplot2, Matplotlib, Seaborn, etc.), interactive widgets (Plotly, Leaflet, Jupyter Widgets, htmlwidgets, etc.), tabular data, value boxes, text annotations, and more. Additionally, with intelligent resizing of components, your Quarto Dashboards look great on devices of all sizes. And importantly, you can author Quarto Dashboards without leaving the comfort of your “home” – in plain text markdown with any text editor (VS Code, RStudio, Neovim, etc.) or any notebook editor (JupyterLab, etc.).
This workshop will walk you through building an increasingly complex dashboard using various layout options and deploy them as static web pages (with no special server required) as well as with a Shiny Server on the backend for enhanced interactivity.
This course is for you if you:
- do data analysis in computational notebooks
- share your results with your audience in static or interactive dashboards
- want to improve the design, user interface, and experience of your dashboards

{mirai} and {crew}: next-generation async to supercharge {promises}, Plumber, Shiny, and {targets}
{mirai} is a minimalist, futuristic, and reliable way to parallelise computations – either on the local machine, or across the network. It combines the latest scheduling technologies with fast, secure connection types. With built-in integration to {promises}, {mirai} provides a simple and efficient asynchronous back-end for Shiny and Plumber apps. The {crew} package extends {mirai} to batch computing environments for massively parallel statistical pipelines, e.g. Bayesian modeling, simulations, and machine learning. It consolidates tasks in a central {R6} controller, auto-scales workers, and helps users create plug-ins for platforms like SLURM and AWS Batch. It is the new workhorse powering high-performance computing in {targets}.
Talk by Charlie Gao and Will Landau
Slides: https://wlandau.github.io/posit2024
GitHub Repo: https://github.com/wlandau/posit2024
mirai: https://shikokuchuo.net/mirai/
crew: https://wlandau.github.io/crew/

Aleksander Dietrichson - AI for Gaming: How I Built a Bot to Play a Video-Game with R and Python
I recently undertook to build a robot to play a video game online. Using reinforcement learning, a custom computer vision model, and browser automation –all implemented in R/Python– I was able to create an AI that played the game to perfection. In this presentation, I will share the lessons learned as I went through this process and some hints to avoid the pitfalls I tackled. I will present some real-world business cases to answer the obvious why-question. For colleagues who teach Data Science and AI, I will show how an activity such as this can provide the entry point and basis for discussion for more than half a dozen topics, ranging from formal logic, game theory, and empirical inference, all the way to Shiny and Quarto.
Talk by Aleksander Dietrichson
Write-up: https://chi2labs.github.io/x-mas-3/q/ GitHub Repo: https://github.com/chi2labs/x-mas-3
Alex Chisholm - Deploying data applications and documents to the cloud
Creating engaging data content has never been easier, yet easily sharing remains a challenge. And that’s the point, right? You cleaned the data, wrangled it, and summarized everything for others to benefit. But where do you put that final result? If you’re still using R Markdown, perhaps it’s rpubs.com. If you’ve adopted Quarto, it could be quartopub.com. Have a Jupyter notebook? Well, that’s a different service. And this is just for docs. Want to deploy a streamlit app? Head to streamlit.io. Shiny? Log into shinyapps.io. Dash? You could use ploomber.io, if you have a docker file - and know what that is. This session summarizes the landscape for online data sharing and describes a new tool that Posit is working on to simplify your process.
Talk by Alex Chisholm
Slides: https://docs.google.com/presentation/d/1zulnuaT2Dm_vM0l9Gd3vS26KWJuAf0gJ1pcFKjTUNbI/edit?usp=sharing
Barret Schloerke - Editable data frames in Py-Shiny: Updating original data in real-time
Integrating editable data frames into Py-Shiny and Shinylive applications streamlines data scientists’ workflows by allowing real-time data manipulation directly within interactive web applications. This new feature enables users to edit cells within the data frame output. Using the empowered data frame renderer, we can facilitate immediate analysis and visualization feedback. It simplifies the process of data exploration and hypothesis testing, as changes to the data set can be instantly reflected in the application’s outputs without the requirement to update the original data, keeping data scientists “scientists”, not data janitors.
Talk by Barret Schloerke
Slides: http://schloerke.com/presentation-2024-08-13-posit-shiny-data-frame/
Slides GitHub Repo: https://github.com/schloerke/presentation-2024-08-13-posit-shiny-data-frame
Shiny: https://shiny.posit.co/
Shiny for Python: https://shiny.posit.co/py/
Component gallery: https://shiny.posit.co/py/components/
Edit Data Grid table cells: https://shiny.posit.co/py/components/outputs/data-grid/

Brennan Antone - Democratizing Organizational Surveys with Quarto and Shiny
When gathering data from groups (e.g., surveys), where does it go, and who does it help? How can we deliver value directly back to all survey participants, not just top organizational decision-makers?
In this talk, I discuss re-designing how we report on organizational feedback surveys, moving from a top-down to a bottom-up approach to organizational change. Interactive dashboards can make data and feedback accessible to all. This tackles challenges with data quality, privacy, and power - allowing everyone to benefit directly from their data. I examine how Quarto and Shiny enable the creation of “flipped reports”, and describe takeaways from implementing them with two Fortune 500 companies.
This talk teaches how personalized tools can make data accessible to all, and can alter the power dynamics around how organizations enact change.
Talk by Brennan Antone
Slides: https://github.com/BrennanAntone/positconf24 Professional Website: https://brennanantone.com/
Carson Sievert - Supercharge Your Shiny (for Python) App: Unleashing Interactive Jupyter Widgets
Most Python packages that provide interactive web-based visualizations (e.g., altair, plotly, bokeh, ipyleaflet, etc.) can render in Jupyter notebooks via the ipywidgets standard. The shinywidgets package brings that ipywidgets standard to Shiny, enabling the use of 100s of Jupyter Widgets as Shiny outputs. In this talk, you’ll not only learn how to render Jupyter Widgets in Shiny to get interactive output, but also how to leverage user interaction with widgets to create delightful and bespoke experiences.
Talk by Carson Sievert
Slides: https://talks.cpsievert.me/20240814/ GitHub Repo: https://github.com/cpsievert/talks/tree/gh-pages/20240814

Computing and recommending company-wide employee training pair decisions at scale… posit conf 2024
Regis A. James developed MAGNETRON AI, an innovative, patent-pending tool that automates at-scale generation of high-quality mentor/mentee matches at Regeneron to enable rapid, yet accurate, company-wide pairings between employees seeking skill training/growth in any domain and others specifically capable of facilitating it. Built using R, Python, LLMs, shiny, MySQL, Neo4j, JavaScript, CSS, HTML, and bash, it transforms months of manual collaborative work into days. The reticulate, bs4dash, DT, plumber API, dbplyr, and neo4r packages were particularly helpful in enabling its full-stack data science. The expert recommendation engine of the AI tool has been successfully used for training a 400-member data science community of practice, and also for larger career development mentoring cohorts for thousands of employees across the company, demonstrating its practical value and potential for wider application.
Talk by Regis A. James
Slides: https://drive.google.com/file/d/1jq-WjuFz1Lp3m6v0SYjNoW1WcCBKPMs3/view?usp=sharing Referenced talks: https://www.youtube.com/@datadrivendecisionmaking
Full Title: Computing and recommending company-wide employee training pair decisions at scale via an AI matching and administrative workflow platform developed completely in-house
Eric Nantz - A New Era for Shiny-based Clinical Submissions using WebAssembly
In life sciences, Shiny has enabled tremendous innovations to produce web interfaces as front-ends to sophisticated analyses, interactive visualizations, and clinical reporting. While industry sponsors have widely adopted Shiny, a relatively unexplored frontier has been the inclusion of a Shiny application inside a submission package to the FDA. The R Consortium R-Submissions Working Group has continued the momentum of previous submission pilots, such as the successful Shiny app submission to the FDA in 2023. In this talk, I will share the journey of how we used containers and WebAssembly for a new and innovative approach to sharing a Shiny application directly with the FDA, paving the way for new innovation in the clinical submission process.
Talk by Eric Nantz
Slides: https://github.com/rpodcast/shiny-webr-posit2024 GitHub Repo: https://github.com/RConsortium/submissions-pilot4-webR
Joe Cheng - Shiny x AI
These days, you can’t turn around without encountering a large language model—they’re embedded in everything from Google search results to the lower-right corner of every Windows desktop.
But… in your Shiny app?
In this talk, we’ll discuss some ways the Shiny team is combining the magical chaos of LLMs with the structure and control of Shiny. You’ll learn how to use modern chat models to add features to your Shiny apps that will feel like science fiction to your users while minimizing the risks of hallucination, irreproducibility, and data exposure.
Talk by Joe Cheng
GitHub Repo: https://github.com/jcheng5/py-sidebot


Joseph Richey - Leveraging Data in a Volunteer Fire Department
The majority of fire departments in the United States are volunteer-based organizations. As an emerging professional in the field of data science, I was able to help my local fire department track, manage, and analyze data using R Shiny, Python, and AWS. This has allowed for increased efficiency within the department, and better transparency for fire department and local government officials.
Talk by Joseph Richey
Slides: https://docs.google.com/presentation/d/1JjjjfDBox7W1MK6CwBmu3cIFpzSEnLu_/edit?usp=sharing&ouid=117509225446346298730&rtpof=true&sd=true GitHub Repo: https://github.com/JosephRichey/fire-data
Lovekumar Patel - Empowering Decisions: Advanced Portfolio Analysis and Management through Shiny
This talk explores the creation of an advanced portfolio analysis system using Shiny and Plumber API. Focused on delivering real-time insights and interactive tools, the system transforms financial analysis with user-centric design and reusable Shiny modules. The talk will delve into how complex financial data is made dynamic and interactive via an internal R package integrating with an ag-grid javascript library to enhance user engagement and decision-making efficiency. A highlight is the Plumber API’s dual role: powering the current system and hosting other enterprise applications in other languages (python), demonstrating remarkable cross-platform integration. This system exemplifies the innovative potential of R in financial analytics.
Talk by Lovekumar Patel
Slides: https://docs.google.com/presentation/d/1dJJRBTxPL4x6anK_b8ya3iU4aIoFrC-z/edit?usp=sharing&ouid=110604780241045194549&rtpof=true&sd=true GitHub Repo: https://github.com/lkptl
Mark Wang - Using GitHub Copilot in R Shiny Development
Generative AI tools, like the GitHub Copilot, are revolutionizing software development, by automating routine tasks and boosting programmers’ productivity. R Shiny development is uniquely positioned to benefit from GitHub Copilot. Copilot can accelerate the process by automating front-end tasks, especially those involving HTML and JavaScript, as well as testing and documentation, thus letting R Shiny developers focus more on the value-added aspects of data science and statistics.
The basic workflow of using GitHub copilot in R Shiny development has three parts: prompt, context, and iteration. Three types of prompts: command, question, and lead-in, all have strong use cases in R development. Specific prompts create more helpful results as compared to vague ones, and Copilot can help add more specificity to your prompts when you are not familiar with the domain topic. The most important source of context for Copilot is typically your codebase, which should be well-organized and open in your IDE. Additionally, knowledge on the internet, as well as simple and concrete examples, can also be valuable contexts. However, sensitive personal information in your context can stop Copilot from generating appropriate responses. Iteration is modifying and enriching your prompt and context to improve the quality of Copilot’s responses. Function and module documentation is a valuable step of iteration. As R Shiny is often used with fast-hanging data, Copilot serves as a powerful tool in the iteration from static to dynamic app testing in the shinytest2 framework.
As we iterate over our prompt and context to generate better responses from Copilot, it is worthwhile to build an internal knowledge base in the form of prompt dictionaries. A Copilot knowledge base can include information specific to your organization that can be reused across projects, such as security and compliance conventions, code and documentation standards, and employment process and environment.
Talk by Mark Wang
Slides: https://1drv.ms/b/c/fd70c8a06be32527/ER8WuxYEw_NKksTI6t5wCDgBrO9slTr0HaumYp1eg2xYYA?e=KwQSfb GitHub Repo: https://github.com/ZIBOWANGKANGYU/posit_2024_prez/tree/master/presentation
Melissa van Bussel - Practical Tips for Using Generative AI in Data Science Workflows
Now that we’re a couple of years into the age of Generative AI, it’s clear that this technology has the power to transform the way that we work. As Generative AI continues to evolve, the ways that we use these models should evolve, too. In this talk, we’ll explore how we, as data professionals, can maximize the benefits of these tools in 2024 and how they can be incorporated into our everyday workflows. We’ll also look at creative use cases that might not seem immediately obvious, but that will allow us to combine Generative AI with other data science tools that we already know and love, like Quarto and Shiny.
Talk by Melissa van Bussel
Slides: https://github.com/melissavanbussel/posit-conf-2024/blob/main/slides.pdf GitHub Repo: https://github.com/melissavanbussel/posit-conf-2024
Wait, that’s Shiny? Building feature-full, user-friendly interactive data explorers - Posit Conf
In my work I am often asked to develop interactive data explorers for public-use data sets, with an emphasis on making the tools engaging, easy to use, and understandable for a general audience. I’d like to talk about the work my team does to develop user-friendly Shiny applications that look and feel like full websites and share some of the tools we use. This includes things like designing landing pages, creating detailed “About” pages, letting users share links to specific charts or download static versions, adding social media sharing links, site meta tags, sub-URLs, and so much more. After attending this talk, I hope others are excited about leveraging tools to make their users say “Wait, that’s Shiny?”
Talk by Kiegan Rice
Full title: Wait, that’s Shiny? Building feature-full, user-friendly interactive data explorers with Shiny and friends
GitHub Repo: https://github.com/kiegan/wait-thats-shiny
PDF Palooza 🎉 Save time with dynamic PDFs powered by Quarto, Shiny & Posit
Many of us need to produce multiple PDF versions for monthly business reports. This workflow demonstrates how to save time by dynamically creating PDFs using Quarto and Shiny, while also showcasing the beautiful possibilities Typst offers for PDF design.
You will learn:
- What is Typst and its advantages over LaTeX.
- Typst formats: posters, docs, flyers, articles, etc.
- New Quarto 1.5 feature - Typst CSS
- How to use a Shiny application to create Typst PDFs dynamically
Helpful resources for this workflow: GitHub Repo: https://github.com/ryjohnson09/pdfpalooza Q&A Recording: https://youtube.com/live/RTr5D4xV5_Q?feature=share
We host these Workflow Demos the last Wednesday of every month, and you can add them to your calendar with this link: https://www.addevent.com/event/Eg16505674
Workflow Demo Live Q&A - October 30th!
Please join us for the live Q&A session for the October 30th Workflow Demo - this Q&A room will open up immediately following the demo.
Please note that the demo itself will play from here: Save time with dynamic & professional PDFs powered by Shiny & Posit: https://youtu.be/dCoHNIPQzJE
Anonymous questions: https://pos.it/demo-questions
Demo: 11 am ET Q&A: ~11:30 am ET
Helpful resources for this workflow: Repo: https://github.com/ryjohnson09/pdfpalooza Recording: https://youtu.be/dCoHNIPQzJE
The importance of relevant analytics | Nechama Katan @ Pfizer | Data Science Hangout
We were recently joined by Nechama Katan, Director of Innovative Data Analytics at Pfizer, for a conversation about relevant analytics, the importance of understanding business context, and strategies for bridging silos within organizations.
“Technology on its own doesn’t do you any good.”
Nechama highlighted the common pitfall of organizations prioritizing technology over business needs. She stressed that technology is only valuable when it directly addresses a business problem. Often, companies invest in complex data infrastructure and tools without a clear understanding of how they will be used to answer critical business questions. This can lead to frustration and a lack of adoption by business users.
Nechama encouraged data professionals to prioritize understanding the business context behind the data. By asking questions, collaborating with colleagues in other departments, and actively seeking to understand the challenges and goals of the business, data scientists can ensure their work delivers tangible value.
How would you recommend acquiring the business background needed to succeed?
In our Hangout chat, Nechama stressed the importance of building relationships and breaking down silos within organizations. She encouraged data professionals to:
● Be curious: Ask questions relentlessly, seeking to understand the perspectives and challenges of colleagues in other departments. ● Offer help: Identify areas where your expertise can be valuable to others and proactively offer assistance. ● Be kind: Approach interactions with empathy and a genuine desire to build connections.
In sharing her career advice, Nechama advocated for “managing down,” prioritizing collaboration and support for peers. Building strong relationships and fostering a culture of teamwork is essential for solving problems and achieving impactful outcomes
Resources from the Chat:
Mosaic Crochet Shiny App Cascades: How to Create a Movement that Drives Transformational Change by Greg Satell Launching DyslexicU, the World’s First University of Dyslexic Thinking Move Fast and Break Shit: Burning Man’s Lessons for Success in Work and Life by Heather White One Data Scientist’s Assimilation of the Product Lexicon Spurious Correlations There’s Only One R in Pfizer
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
Thanks for hanging out with us!
Build Shiny apps with AI ✨
View the full video here: https://www.youtube.com/watch?v=fJNKdwdVQ8Q
Try it out here, free: https://gallery.shinyapps.io/assistant/
Get started with Shiny for R and Python: https://shiny.posit.co
#pythoncontent #positshorts
Shiny Assistant: Prototype and build Shiny applications with the help of AI | Winston Chang | Posit
Have you ever had an idea for a great web application with Shiny but felt something holding you back from getting started? Maybe it’s that you don’t know where to start, or that you don’t know which packages use to build the app, or maybe it’s just that you can’t muster the energy to get started. Sometimes you just need a little help to get unstuck.
We’re excited to announce a new addition to the Shiny ecosystem that can help: Shiny Assistant.
Try it out here, free: https://gallery.shinyapps.io/assistant/
Get started with Shiny for R and Python: https://shiny.posit.co

Hands-on Session: GenAI to Enhance Your Statistical Programming - Phil Bowsher & Cole Arendt
GenAI in Pharma 2024 kicks off with Posit’s Phil Bowsher and Cole Arendt leading an interactive session on utilizing generative AI tools to enhance statistical programming.
Resources mentioned in the session:
- PharmaSUG workshop “GenAI to Enhance Your Statistical Programming”: https://colorado.posit.co/rsc/genai_R_pharmasug/slides.html
- AI Exploration and Innovation for the Clinical Data Scientist: https://www.lexjansen.com/phuse-us/2024/et/PAP_ET08.pdf
- Shiny Chat - Using chatstream to show how easy an OpenAI chat app is! https://github.com/colearendt/shiny-chat
- GitHub Copilot on Posit Cloud: https://posit.co/blog/github-copilot-on-posit-cloud/
- Introducing Shiny Templates: https://www.youtube.com/watch?v=zQJiMRStYE8&ab_channel=PositPBC
- Introducing Shiny Express: https://shiny.posit.co/blog/posts/shiny-express/
Ralph Asher @ Data Driven Supply Chain | Data Science Hangout
In this Hangout, Ralph talks about his experiences in the supply chain industry - a hidden gem of a data job field - and his educational background in Operations Research. He talks about the types of problems supply chain analysts work to solve, how 2020 reshaped the landscape of supply chain, and how he decided to start his own business. He also gives some great advice about marketing yourself, whether you’re starting your own consulting company or looking for a new role: be specific about what you want and the problems you solve. If you’ve been curious about supply chain jobs, you’ll want to hear Ralph’s perspective!
Speaker bio: Ralph Asher is the founder of Data Driven Supply Chain LLC, a Minneapolis-based consultancy working at the intersection of supply chain and decision science. Since 2021, Ralph and his team have used decision science and data science to build advanced supply chain models, helping clients make tough supply chain decisions around network design, inventory optimization, and more.
Timestamps: 03:00 About Ralph Asher 05:35 What type of problems do supply chain analysts work on? 07:55 What type of data jobs are there in the Supply Chain Industry? 10:15 How did COVID-19 impact supply chain jobs? 13:10 How do you know you’re ready to start a consulting business? 15:25 With so much data, how do you make sure insights are actionable and not irrelevant? 17:30 What are some examples of data management or governance challenges in supply chain? 18:15 What career advice would you give new grads or people looking to switch careers? 21:10 Why being specific about what you want to do gets you job opportunities 23:55 Book recommendation: The Black Swan and preserving optionality, keeping doors open 25:20 Is a supply chain consultant more valuable and effective than a supply chain department? 26:50 How do you learn all the parts of running a business by yourself? The E-Myth Revisited book 29:20 Do you ever have to convince people to move past Excel? Supply chain runs on Excel. 31:05 Career advice - lean into something you’re good at. The Algebra of Wealth book 33:30 How do you manage data and metadata? How do you manage knowledge for your business? 36:25 How do you determine which clients to accept and which to turn away as a consultant? 37:45 How do you do discovery work with a consulting client to make sure they’re a fit? 39:10 Saying no to the wrong jobs so that you can say yes to the right jobs 40:00 Can client discovery be done as a paid project? Could it be its own product? 44:00 As a consultant, how do you make the unseen hours of labor visible? 46:10 What is a good entry point for a company that doesn’t have a dedicated supply chain team? 47:35 Should you go back to school for another degree to get a job that feels out of reach? 49:10 How does your career growth change between IC and management? 50:55 What are some supply chain communities to join? 52:10 Do supply chain teams work within data teams or separately? 55:50 As a consultant on your own, how do you keep your skills sharp and up to date? 57:20 How do you use Shiny in your supply chain consulting jobs?
Resources mentioned in the episode: The Black Swan by Nassim Taleb: https://www.randomhousebooks.com/books/176226/ The E-Myth Revisited by Michael Gerber: https://www.michaelegerbercompanies.com/product/the-e-myth-revisited/ The Irresistible Consultant’s Guide to Winning Clients by David Fields: https://www.davidafields.com/books/#section-1 The Algebra of Wealth by Scott Galloway: https://www.penguinrandomhouse.com/books/730881/the-algebra-of-wealth-by-scott-galloway/ Notion: https://www.notion.so/ HubSpot: https://www.hubspot.com/products/crm CSCMP, Council for Supply Chain Management Professionals: https://cscmp.org/ ASCM, the Association for Supply Chain Management: https://www.ascm.org/ ISM, Institute for Supply Management: https://www.ismworld.org/ INFORMS, Institute for Operations Research and Management Sciences: https://www.informs.org/
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software
The Hangout is a gathering place for the whole data science community to chat about data science leadership and questions you’re all facing that happens every Thursday at 12 ET.
To join future data science hangouts, add to your calendar here: https://pos.it/dsh
We’d love to have you join us in the conversation live!
Thanks for hanging out with us!
Deploy an LLM-powered Shiny for Python app to Connect Cloud in minutes!
Connect Cloud lets you quickly deploy data applications and documents from public GitHub repositories for Python and R projects.
This short demo showcases secret variable management on Connect Cloud to help deploy an LLM-powered Shiny for Python application.
→ Signup for a free Connect Cloud account → https://connect.posit.cloud/ → View the how-to guide → https://docs.posit.co/connect-cloud/how-to/python/llm-shiny-python.html
Next Generation Shiny Apps with {bslib}
In this workshop, led by Garrick Aden-Buie, a software engineer for Shiny at Posit, you will learn how to build Shiny apps using modern user interfaces and layouts with bslib, the next generation of Shiny UI. Garrick will guide you through creating stylish and convenient dashboard layouts and components, demonstrating how bslib can effectively replace shinydashboard. Additionally, you will explore innovative techniques for deploying Shiny apps using shinylive, enabling the creation of static sites that run entirely in the user’s browser without the need for a Shiny server.
Main Sections
00:00 Introduction 11:00 Shiny 14:57 How bslib started 18:29 Theming from start to advanced 22:19 College Scorecard Data 39:24 bslib layouts 01:20:25 Advanced layouts 01:49:18 Filling Layouts 02:42:09 Details on demand 02:50:01 New inputs 02:53:15 Wrap up
More resources
R Validation Hub Site: https://www.pharmar.org/ Main Site: https://www.r-consortium.org/ News: https://www.r-consortium.org/news Blog: https://www.r-consortium.org/news/blog Join: https://www.r-consortium.org/about/join Twitter: https://twitter.com/rconsortium?lang=en LinkedIn: https://www.linkedin.com/company/r-consortium Mastodon: https://fosstodon.org/@RConsortium

Creating tests for Shiny for Python apps | Karan Gathani | Posit
With the Shiny for Python v1.0 release, Shiny provides a simple way to create a test file for your Shiny app. The shiny add test command is a helpful CLI tool for Shiny app developers. It simplifies the process of creating test files for their applications.
When you run this command, it prompts you to input two pieces of information: the path to your Shiny app file and the desired location for the new test file.
Once you provide these details, the command automatically generates a test file at the specified location. This new file includes a pre-made test template, giving you a solid starting point for writing your app’s tests.
Reference documentation - https://shiny.posit.co/py/docs/unit-testing.html https://shiny.posit.co/py/docs/playwright-testing.html

Using controllers to write robust Shiny for Python app tests | Karan Gathani | Posit
With the Shiny for Python v1.0 release, controllers were exposed to provide a structured and consistent way for users to interact with and test UI components in Shiny applications. They offer an abstraction layer that encapsulates the complexity of interacting with specific UI elements, making it easier for developers to write robust tests and automate interactions with their Shiny apps.
Reference documentation - https://shiny.posit.co/py/api/testing/ https://shiny.posit.co/py/docs/playwright-testing.html

What did journalism teach you about data storytelling? | Sharon Machlis | Data Science Hangout
In this episode, Sharon Machlis shares her journey from journalist to journalist-who-codes. You’ll hear her talk about the serendipitous way she found herself covering business and technical news, the lessons she learned about storytelling with data over the years, and how she knew it was time to retire. You’ll also learn how to find the data community on social media in a post-twitter world, including a primer on Mastodon and how it works without an algorithm.
Timestamps: 02:45 About Sharon Machlis 04:55 How did you decide to start using R? 07:45 What did journalism teach you about data storytelling? 10:15 What’s your favorite headline you ever wrote? 10:45 How do you write high quality articles quickly? 12:30 How do you find people to follow on Mastodon? 15:35 How do you decide what new data topics to learn about or focus on? 20:55 What do you think about specialization in a world where everyone now codes? 23:25 Is domain expertise in data jobs undervalued? 27:00 What resources do you have for learning to write well? 32:00 Have you ever had a career setback that was a blessing in disguise? 34:05 How do you make data presentations more interesting? 37:00 Where is the data community now that Twitter is dead? Bluesky? Threads? 40:45 Has the evolution of graphics like the New York Times uses increased interest in data? 42:15 How did you decide you were ready to retire? 45:30 What data journalists should we be following? 47:55 What factors contribute to someone deciding to retire? 50:35 What projects can you focus on in retirement that you weren’t able to do before? 55:35 What resources do you recommend for learning Python? 57:25 Career advice from a data journalist
Links mentioned in this episode: Sharon’s retirement journey: https://nextchapter.machlis.com
Links Sharon shared in the chat: https://apps.machlis.com/shiny/positconf/ One way to see public posts on Mastodon with the #rstats hashtag without needing an account: https://fosstodon.org/tags/rstats Guide to R: https://www.computerworld.com/article/1533880/beginners-guide-to-r-introduction.html How to find better content on Mastodon by Sharon: https://www.infoworld.com/article/2338712/6-ways-to-find-better-content-on-mastodon.html
Resources Sharon shared after the Hangout Suggested prompts to use LLMs to help you learn a skill, by Lilach Mollick and Ethan Mollick https://www.moreusefulthings.com/instructor-prompts
Journalism-related resources for learning Python:
- First Python Notebook: A step-by-step guide to analyzing data with Python and the Jupyter notebook, by Ben Welsh, currently news applications editor at Retures https://palewi.re/docs/first-python-notebook/
- Python’s Not (Just) for Unicorns, by J Soma, journalism prof at Columbia University https://littlecolumns.com/learn/python/
Journalism-related resources to learn R - both a bit old but still work:
- R for Journalists by Andrew Ba Tran, investigative data reporter at the Washington Post https://learn.r-journalism.com/en/
- My book Practical R for Mass Communication and Journalism Several chapters free: https://www.machlis.com/R4Journalists/
My Shiny app with a searchable list of Mastodon accounts who post about R with the #RStats hashtag: https://apps.machlis.com/shiny/rstats/ Searchable table of all my Mastodon posts (it’s a public Shiny app, you don’t need a Mastodon account): https://www.machlis.com/mastodon.php Mosaic crochet Shiny app, the most popular app I ever published https://apps.machlis.com/shiny/crochetapp/ Additional Shiny apps: https://apps.machlis.com/
Thoughts on using generative AI to help with your writing: How to . . . use ChatGPT to boost your writing: https://www.oneusefulthing.org/p/how-to-use-chatgpt-to-boost-your or I, Cyborg: Using Co-Intellgience: https://www.oneusefulthing.org/p/i-cyborg-using-co-intelligence both by Ethan Mollick
Workflow Demo Live Q&A - August 28th!
Please join us for the live Q&A session for the August 28th Workflow Demo - this Q&A room will open up immediately following the demo.
How to use pins + Shiny for ever-changing data: https://youtu.be/u2OK8IWJWhk
Anonymous questions: https://pos.it/demo-questions
Demo: 11 am ET [https://youtu.be/u2OK8IWJWhk] Q&A: ~11:30 am ET
How to automatically detect data changes for your Shiny Calendar app (ft: Jira, pins, Posit Connect)
Do you manage constantly changing data and need your Shiny app to automatically update?
On August 28th at 11 am ET, Isabella Velásquez demonstrated a streamlined workflow for handling frequently updated datasets in Shiny. You’ll see how to simplify your process for keeping dynamic data current and how to reflect those changes in your app or dashboard.
Github repo to follow along or make it your own! https://github.com/posit-marketing/shiny-calendar
Timestamps: 1:03 - Introduction of the project (end goal: calendar that integrates with Jira to track and visualize a schedule for managing deadlines of content) 2:26 - Pulling data from an API in Python or R 2:56 - Introduction to pins (and scheduling automatic refreshes of it in Posit Connect) 4:30 - Introduction to Shiny for both Python and R (its power lies in reactivity) 5:10 - Enter pin_reactive_read() function 6:12 - Introduction to Posit Team 6:37 - Opening a new session within Posit Workbench and overview of code needed to create the calendar [Github repo: https://github.com/posit-marketing/shiny-calendar] 12:07 - toastui package used for Calendar (ex: adding colors to labels) 12:47 - Writing clean data to Posit Connect board 13:16 - Rendered Quarto doc for pulling Jira data from the board 14:00 - Deploying Quarto to Posit Connect (using push button deployment) and scheduling to run 16:54 - Using the data just pinned in the Shiny app 21:17 - Overview of Shiny Content Calendar application 23:04 - Creating an issue in Jira board and adjusting schedule in Posit Connect to show new item in Shiny calendar. 24:00 - pin_reactive_read automatically detects change and shows it in the Shiny app
During this workflow demo, you will learn:
- How {pins} stores and retrieves ever-changing data with ease
- How to use pin_reactive_read() in Shiny to automatically trigger updates when your data changes
- How Posit Connect can be set up to rerun your {pin} on a schedule, ensuring your app is updated without disruption
- How to deploy an always-up-to-date app for seamless sharing with stakeholders
Other helpful links: pin_reactive_read: https://pins.rstudio.com/reference/pin_reactive_read.html Basic reactivity in Mastering Shiny: https://mastering-shiny.org/basic-reactivity.html#reactive-programming Understanding reactivity on the Shiny site: https://shiny.posit.co/r/articles/build/understanding-reactivity/ Github repo: https://github.com/posit-marketing/shiny-calendar Shiny Calendar: https://pub.demo.posit.team/public/shiny-calendar/ Q&A Recording
If you like these workflow demos, you can join us monthly! They happen the last Wednesday of every month at 11 am ET. Add it to your calendar here: https://pos.it/team-demo
Share your data apps and docs easily with Connect Cloud
Turning your data work into applications and documents for others to consume is one of the most rewarding parts of data science. It can also be one of the most complex.
You shouldn’t need a systems engineer to deploy your Shiny application or publish your Quarto document.
Now, in Public Alpha, Connect Cloud makes it simple to publish and share your favorite Python and R frameworks within a simple cloud environment in just a few minutes.
All you need is code in a public GitHub repository. Connect Cloud does the rest.
This live event will demonstrate how Connect Cloud fits into your workflow and returns a URL for your deployments that you can share with the world.
Try Connect Cloud: https://connect.posit.cloud/
Workflow Demo Live Q&A - July 31st
Please join us for the live Q&A session for the July 31st Workflow Demo - this Q&A room will open up immediately following the demo.
How to create editable data tables in Shiny for Python
Anonymous questions: https://pos.it/demo-questions
Demo: 11 am ET [https://youtu.be/zDJc8sXh2qw?feature=shared] Q&A: ~11:30 am ET
How to create editable data tables in Shiny for Python
You built a beautiful Shiny app…but someone just asked you where the Excel doc is. Well, what if they had the ability to edit a table within the app, as if it were a spreadsheet?!
Editable tables are a recently developed feature for Shiny for Python, allowing the table itself to become an input value, so your app can react to—and use—the data your user enters.
On Wednesday, July 31st at 11 am, Garrett Grolemund will walk through building a basic app using an editable table and discuss the many potential use cases now enabled.
Helpful links: WSJF App - https://github.com/garrettgman/wsjf-app Interest Calculator App - https://github.com/garrettgman/mortgage-app Value Change App - https://github.com/garrettgman/value-changer-app To do a free trial of Posit Connect: https://pos.it/chat-with-us Posit Connect Cloud: https://connect.posit.cloud/ Q&A Session: https://youtube.com/live/-nG5aco-g84?feature=share
Ps. We host these workflow demo events the last Wednesday of every month! We’d love to have you join us again! You can add it to your calendar here: https://pos.it/team-demo
If you have any questions or suggestions for future sessions, let us know in the comments below :)
#python
How to Perfect Your Python Dashboard with Advanced Styling! (HTML/CSS - Shiny for Python)
This is part 5 of our multi-part series on creating professional dashboards with Shiny for Python. In this video, we dive into advanced styling techniques to enhance the visual appeal and professionalism of your Shiny dashboards. We’ll cover:
- Adding a logo and custom title
- Making use of custom HTML elements
- Using CSS to style Shiny components
- Customizing Altair charts for a polished look
- Advanced Plotly chart modifications
- Applying a consistent color theme and layout
By the end of this video, you’ll have a styled dashboard, ready for a professional presentation.
Access the GitHub repo with all parts of this project: https://github.com/KeithGalli/shiny-python-projects Shiny for Python Homepage: https://shiny.posit.co/py/ Check out the complete documentation here: https://shiny.posit.co/py/api/express/
Video by @KeithGalli
Video Timeline: 0:00 - Video Overview & Setup 1:50 - Modifying HTML and CSS in Shiny 7:44 - Adding a Logo Image 10:26 - Styling Labels and Containers (Aligning our Image w/ the Title — Custom Divs) 20:20 - Customizing Altair Charts (Gridlines, Font, Axis Labels, Etc.) 27:49 - Customizing Plotly Visualizations 37:16 - Customizing Seaborn & Folium Heatmaps 44:15 - Final Touches, Clean Up, Recap and Next Steps
If you enjoyed this series, give it a thumbs up and subscribe to the channel to stay updated!
All videos in the series: Part 1 - How to Build, Deploy, & Share a Python Application in 20 minutes! (Using Shiny): https://www.youtube.com/watch?v=I2W7i7QyJPI&t=0s Part 2 - How to make Interactive Python Dashboards! (Reactivity in Shiny): https://www.youtube.com/watch?v=SLkA-Z8HTAE&t=0s Part 3 - How to make your Python Dashboard look Professional! (Layouts in Shiny): https://www.youtube.com/watch?v=jemk7DoN4qk&t=0s Part 4 - How to combine Matplotlib, Plotly, Seaborn, & more in a single Python Dashboard! (Shiny for Python): https://youtu.be/xDgO5hB4-VU?si=kk20yhdpsBqkMYcC Part 5 - How to Perfect Your Python Dashboard with Advanced Styling! (HTML/CSS - Shiny for Python): https://youtu.be/uYZUS-eFbqw
How to combine Matplotlib, Plotly, Seaborn, & more in a single Python Dashboard! (Shiny for Python)
This is part 4 of our multi-part series on creating professional dashboards with Shiny for Python. In this video, we’ll explore how to integrate popular Python visualization libraries like Matplotlib, Plotly, Seaborn, and Altair into your Shiny apps. This allows you to leverage your existing visualization skills and seamlessly include them in interactive dashboards. We’ll cover:
- Integrating Matplotlib and Seaborn for detailed visualizations
- Utilizing Altair and Plotly for dynamic charts
- Implementing Folium for interactive maps
- Customizing data tables with additional filters and selection modes
By the end of this video, you’ll have a rich and diverse set of visualizations in your Shiny dashboard, setting the stage for the final styling touches in the next video.
Shiny for Python Homepage: https://shiny.posit.co/py/
Access the GitHub repo with all parts of this project: https://github.com/KeithGalli/shiny-python-projects
Check out the complete documentation here: https://shiny.posit.co/py/api/express/
Video by @KeithGalli
Video Timeline! 0:00 - Video Overview & Recap of Previous Video Dashboards 1:38 - Getting Setup with the Code (cloning branch from GitHub) 3:15 - Adding Matplotlib-based visualizations (render.plot Shiny for Python decorator) 10:15 - Create a Seaborn Heatmap Chart (Sales Volume by Hour of the Day) 14:59 - Creating Interactive Charts with Jupyter Widgets (Plotly, Altair, Bokeh, Pydeck, & More…) | render_widget decorator 20:14 - Implementing Folium for Location-Based Heatmaps (render.ui decorator) 25:32 - Enhancing DataFrames with Filters and Selection Modes (render.data_frame, render.DataGrid, render.DataTable, etc.) 28:49 - Additional Rendering Options, Final Touches and Next Steps
Stay tuned for part 5, where we’ll focus on styling and finalizing our dashboard. If you enjoyed this video, give it a thumbs up and subscribe to the channel to stay updated!
All videos in the series: Part 1 - How to Build, Deploy, & Share a Python Application in 20 minutes! (Using Shiny): https://www.youtube.com/watch?v=I2W7i7QyJPI&t=0s Part 2 - How to make Interactive Python Dashboards! (Reactivity in Shiny): https://www.youtube.com/watch?v=SLkA-Z8HTAE&t=0s Part 3 - How to make your Python Dashboard look Professional! (Layouts in Shiny): https://www.youtube.com/watch?v=jemk7DoN4qk&t=0s Part 4 - How to combine Matplotlib, Plotly, Seaborn, & more in a single Python Dashboard! (Shiny for Python): https://youtu.be/xDgO5hB4-VU?si=kk20yhdpsBqkMYcC Part 5 - How to Perfect Your Python Dashboard with Advanced Styling! (HTML/CSS - Shiny for Python): https://youtu.be/uYZUS-eFbqw
Data engineering for the 99% | Will Hipson @ HIAA | Data Science Hangout
We were recently joined by Will Hipson, Data Engineer at Halifax International Airport Authority to chat about scrappy data engineering for the 99% - managing the full data lifecycle from extraction to presentation with a team of one.
Speaker bio: Will Hipson is a data engineer at a medium-sized Canadian airport at the early stages of democratizing its data access. Will has a PhD in Psychology and Quantitative Analysis but transitioned out of academia after falling in love with R and data science. Now, he works across all areas of the data lifecycle, from building pipelines and maintaining databases to developing Shiny apps and Quarto docs for presenting data. He believes data engineering doesn’t need to be synonymous with massive enterprise platforms or bleeding edge LLMs. Instead, most organizations simply need help finding data and making sense of it. At HIAA, he helped architect a data platform around data discovery, data literacy, and data governance. He built creative solutions for orchestrating data pipelines that resulted in the development of an R package called maestro (https://github.com/whipson/maestro/ ) that they recently released to the community.
Links mentioned: maestro package: https://github.com/whipson/maestro/ HIAA x Posit Success Story: https://posit.co/about/customer-stories/halifax-airport/
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software
The Hangout is a gathering place for the whole data science community to chat about data science leadership and questions you’re all facing that happens every Thursday at 12 ET.
To join future data science hangouts, add to your calendar here: https://pos.it/dsh
We’d love to have you join us in the conversation live!
Thanks for hanging out with us!
How to make your Python Dashboard look Professional! (Layouts in Shiny)
This is part 3 of our multi-part series on creating professional dashboards with Shiny for Python. In this video, we focus on enhancing the visual appeal and structure of your Shiny dashboards using various layout components. We’ll cover:
- Implementing layout templates for quick setup
- Using cards and sidebars for a clean, organized look
- Customizing columns and grids for better data presentation
- Adding tab options for multiple views within a dashboard
By the end of this video, you’ll have a more polished and professional-looking dashboard, setting the stage for advanced visualizations in upcoming videos.
Shiny for Python Homepage: https://shiny.posit.co/py/
Access the GitHub repo with all parts of this project: https://github.com/KeithGalli/shiny-python-projects
Check out the complete documentation here: https://shiny.posit.co/py/api/express/
Video by @KeithGalli
Video Timeline! 0:00 - Video Overview & Progress Thus Far 1:28 - Using Shiny Templates to Get Started Fast 3:21 - Using Layout Components to Customize our Apps (Cards, Sidebars, Tabs, etc.) 7:55 - Adding a Sidebar within a Card 12:38 - Adding a Card with Tabs to Display Various Visualizations 17:35 - Structuring Data in Columns / Grids (layout_columns() & layout_column_wrap()) 26:30 - Final Touches & Tips (Filling in Visualizations into our Tab Views)
Stay tuned for part 4, where we’ll add more advanced visualizations, and part 5, where we’ll focus on customizing styles and adding final touches. If you enjoyed this video, give it a thumbs up and subscribe to the channel to stay updated!
All videos in the series: Part 1 - How to Build, Deploy, & Share a Python Application in 20 minutes! (Using Shiny): https://www.youtube.com/watch?v=I2W7i7QyJPI&t=0s Part 2 - How to make Interactive Python Dashboards! (Reactivity in Shiny): https://www.youtube.com/watch?v=SLkA-Z8HTAE&t=0s Part 3 - How to make your Python Dashboard look Professional! (Layouts in Shiny): https://www.youtube.com/watch?v=jemk7DoN4qk&t=0s Part 4 - How to combine Matplotlib, Plotly, Seaborn, & more in a single Python Dashboard! (Shiny for Python): https://youtu.be/xDgO5hB4-VU?si=kk20yhdpsBqkMYcC Part 5 - How to Perfect Your Python Dashboard with Advanced Styling! (HTML/CSS - Shiny for Python): https://youtu.be/uYZUS-eFbqw
Predicting Lending Rates with Databricks, tidymodels, and Posit Team
Machine learning algorithms are reshaping financial decision-making, changing how the industry manages financial risk.
For our workflow demo today on June 26th at 11 am ET, Garrett Grolemund at Posit will show how to use both Posit and Databricks to apply machine learning methods to the consumer credit market, where accurately predicting lending rates is critical for customer acquisition.
*Please note that while the workflow focuses on a financial example, the general workflow will be useful to those using Databricks and R together across any industry.
During this workflow demo, you will learn how to:
- Connect to historical lending rate data stored in Databricks Delta Lake
- Tune and cross-validate a penalized linear regression (LASSO) that predicts interest rates
- Select variables with the penalized linear regression model (LASSO)
- Build an interactive Shiny app to provide a customer-facing user interface for our model
- Deploy the app to production on Posit Connect, and arrange for the app to access Databricks
Resources for the demo: GitHub repo for today’s materials: https://github.com/posit-dev/databricks-finance-app Accompanying Guide: https://pub.demo.posit.team/public/predicting-lending-rates/lending-rate-prediction.html Q&A Recording: https://youtube.com/live/wNI3AhHP7uM
Additional follow-up links: GitHub Repo: https://github.com/posit-dev/databricks-finance-app Accompanying Guide: https://pub.demo.posit.team/content/fec42b3d-3aa9-43e1-8312-0ff553d09851/lending-rate-prediction.html While this demo uses ODBC package to connect to Databricks, you can also use sparklyr R package. Learn more about both here: https://docs.posit.co/ide/server-pro/user/rstudio-pro/guide/databricks.html Example using sparklyr instead of ODBC: https://posit.co/blog/reporting-on-nyc-taxi-data-with-rstudio-and-databricks/ Posit Workbench provides additional features for managing Databricks Credentials, learn more here: https://docs.posit.co/ide/server-pro/user/posit-workbench/guide/databricks.html#databricks-with-r For more on the Posit x Databricks partnership: https://posit.co/solutions/databricks/ Blog post on Edgar’s workshop on Databricks at conf: https://posit.co/blog/using-databricks-with-r-conf-workshop/ Solutions article on ODBC and Databricks: https://solutions.posit.co/connections/db/databases/databricks/
Want to chat more with Posit? To talk with Posit about integrating Posit & Databricks: https://posit.co/schedule-a-call/?booking_calendar__c=DatabricksJune2024Demo
Had fun and want to join again? You can add the monthly recurring event to your calendar with this link: https://pos.it/team-demo
Alex Freberg @ Analyst Builder | Data Science Hangout
We were recently joined by Alex Freberg (@AlexTheAnalyst) Founder at Analyst Builder to chat about teaching and advocating for data analytics.
Speaker bio: Alex is the host of YouTube channel “Alex The Analyst”, Founder of Alex Analytics Consulting, and Founder of Analyst Builder. Lover of all things data.
Timestamps: 2:41 - Start of Hangout (past intros and welcome) 5:55 - Lessons learned on influencing others in your company 11:03 - Upcoming Shiny/Quarto tutorials preview 14:20 - Pivot into becoming a data science influencer 20:35 - As someone who teaches, how do YOU like to learn 28:50 - Alex’s process for creating tutorial videos 40:32 - Advice for starting your own consulting company 54:36 - Working with clients who are just getting started with data literacy 1:00:00 - Most excited about in the year ahead
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software
The Hangout is a gathering place for the whole data science community to chat about data science leadership and questions you’re all facing that happens every Thursday at 12 ET.
To join future data science hangouts, add to your calendar here: https://pos.it/dsh
We’d love to have you join us in the conversation live!
Thanks for hanging out with us!
How to make Interactive Python Dashboards! (Reactivity in Shiny)
This is a quick-start guide to Shiny for Python, part 2 of a multi-part series.
Data scientists need to quickly build web applications to create and share interactive visualizations, giving others a way to interact with data and analytics. Shiny helps you do this.
In this video, we’ll build off of the last tutorial where we learned the basics of building, sharing, and deploying a Shiny app in Python. This video specifically focuses on reactivity in Shiny. You can watch this video as a standalone, but it may be helpful to watch the previous video (https://youtu.be/I2W7i7QyJPI) .
We’ll cover: ⬡ Creating toggle options for dynamic visualizations ⬡ Understanding Shiny’s reactivity model ⬡ Implementing various input selectors ⬡ Building reactive components and visualizations ⬡ Using reactive calculations and effects ⬡ Adding and formatting plots with Plotly ⬡ Documentation walkthrough to learn more about reactivity (reactivity.effect, reactivity.event, reactivity.isolate, reactivity.invalidate_later, etc…)
Video Resources: Video #1: https://youtu.be/I2W7i7QyJPI?si=nx1dk5ovPc91pvlB Starter Code (from end of video #1): https://github.com/KeithGalli/shiny-python-projects/tree/video1 Final App: https://keithgalli.shinyapps.io/final-app/
Shiny Resources: Shiny for Python Homepage: https://shiny.posit.co/py/ Component Gallery: https://shiny.posit.co/py/components/ Express Documentation: https://shiny.posit.co/py/api/express/ Gordon Shotwell’s “How does Shiny Render Things?”: https://youtu.be/jvV4y2xogf8?si=8uGP8ZfboUj1QM4p Joe Cheng’s “Shiny Programming Practices”: https://youtu.be/B2JzHv4FOTU?si=t4Atii-RSc5ojgom
Stay tuned for part 3, where we’ll explore how to make your dashboard look more professional (layouts in Shiny).
Video by @KeithGalli
Video Timeline! 0:00 - Intro & Overview 1:01 - Getting Started with Code 2:08 - Adding Shiny Components (Inputs, Outputs, & Display Messages) 3:21 - Creating an Additional Visualization (Sales Over Time by City) 7:55 - What are Reactive.Calcs and How Do We Use Them Properly? (DataFrame Best Practices) 10:27 - Creating an Additional Visualization (Sales Over Time by City) — Continued 14:30 - Filtering City Data with Select Inputs (UI.Input_Selectize) 21:15 - Rendering Shiny Inputs Within Text 22:15 - Quick Formatting Adjustments 22:54 - Understanding the Shiny Reactivity Model (How Does Shiny Render Things?) 24:23 - Adding a Checkbox Input to Change Out Bar Chart Marker Colors 28:00 - Deploying Our Updated App! 29:19 - Advanced Concepts in Shiny Reactivity (Reactive.Effect, Reactive.Event, Reactive.Isolate, Reactive.Invalidate_Later) & Other Resources
All videos in the series: Part 1 - How to Build, Deploy, & Share a Python Application in 20 minutes! (Using Shiny): https://www.youtube.com/watch?v=I2W7i7QyJPI&t=0s Part 2 - How to make Interactive Python Dashboards! (Reactivity in Shiny): https://www.youtube.com/watch?v=SLkA-Z8HTAE&t=0s Part 3 - How to make your Python Dashboard look Professional! (Layouts in Shiny): https://www.youtube.com/watch?v=jemk7DoN4qk&t=0s Part 4 - How to combine Matplotlib, Plotly, Seaborn, & more in a single Python Dashboard! (Shiny for Python): https://youtu.be/xDgO5hB4-VU?si=kk20yhdpsBqkMYcC Part 5 - How to Perfect Your Python Dashboard with Advanced Styling! (HTML/CSS - Shiny for Python): https://youtu.be/uYZUS-eFbqw

Max Kuhn -SHINYLIVE IS SO EASY
SHINYLIVE IS SO EASY by Max Kuhn
Visit https://rstats.ai for information on upcoming conferences.
Abstract: shinylive is an extension to the Quarto open-source scientific and technical publishing system. It enables shiny applications to run locally, without a shiny server using WebAssembly. I’ll show examples and discuss the limitations of using shinylive.
Bio: Max Kuhn is a software engineer at Posit PBC (nee RStudio). He is working on improving R’s modeling capabilities and maintaining about 30 packages, including caret. He was a Senior Director of Nonclinical Statistics at Pfizer Global R&D in Connecticut. He has been applying models in the pharmaceutical and diagnostic industries for over 18 years. Max has a Ph.D. in Biostatistics. He and Kjell Johnson wrote the book Applied Predictive Modeling, which won the Ziegel award from the American Statistical Association, which recognizes the best book reviewed in Technometrics in 2015. He has co-written several other books: Feature Engineering and Selection, Tidy Models with R, and Applied Machine Learning for Tabular Data (in process).
Twitter: https://twitter.com/topepos
Presented at the 2024 New York R Conference (May 17, 2024) Hosted by Lander Analytics (https://landeranalytics.com )

{shinylive}: Serverless Shiny Apps | Barret Schloerke | Posit
In the rapidly evolving landscape of web technologies, the integration of R (and Python) with modern web frameworks has become increasingly important for data scientists and developers. This presentation introduces {shinylive}, a new R package that exports Shiny applications to be run within statically hosted websites. We will explore the capabilities of {shinylive} through its use of the innovative R package {webR}, which allows for the execution of R code in the browser (via WebAssembly and service workers) without the need for a centralized server.
The presentation will cover the technical foundation of {shinylive}, including its architecture and the integration process with Quarto documents. We will also discuss the practical aspects and drawbacks of exporting Shiny apps with {shinylive}, highlighting the ease of exporting apps to a folder for local use or hosting them on GitHub pages.
{shinylive} bridges the gap between Shiny and static websites, making it a valuable resource for interactive data analysis and presentation.
Link to app: https://schloerke.com/presentation-2024-04-18-appsilon-shinylive/ Link to script: https://github.com/posit-dev/r-shinylive/blob/main/examples/deploy-app.yaml Link to use_github_action(): https://github.com/posit-dev/r-shinylive#github-pages Shinylive website: https://posit-dev.github.io/r-shinylive/ {webr} docs: https://docs.r-wasm.org/webr/latest/

Communicating Data Science with Shiny! 🚀 Garrick Aden-Buie #datascience #datavisualization #shiny
Ever seen this diagram? It’s from R for Data Science, outlining the journey of tackling new data problems.
1️⃣ Start: Import and tidy your data. 2️⃣ Cycle: Transform, visualize, and model your data. 3️⃣ Communicate: Share your findings.
But communication isn’t just the end—it’s an ongoing process! Shiny apps are your secret weapon for this.
Scenario 1: Quick Shiny app for colleague feedback ️ refine your work. Scenario 2: Small app grows into a full-featured web application.
From small, quick-use apps to robust final products, Shiny evolves with your project needs. Discover why Shiny is essential for every data scientist!
Get Started: https://shiny.posit.co #positshorts

How to Build, Deploy, & Share a Python Application in 20 minutes! (Using Shiny)
This is a quick-start guide to Shiny for Python. It’s part 1 of a multi-part series. Data scientists need to quickly build web applications to create and share interactive visualizations, giving others a way to interact with data and analytics. Shiny helps you do this.
In this video, we’ll walk you through the basics of setting up Shiny for Python, creating your first app, and deploying it so others can use it. We’ll cover:
- Installing Shiny and necessary dependencies
- Writing and running your first Shiny app
- Basic UI and server structure
- Deploying your app online
- Helpful Links
Shiny for Python Homepage: https://shiny.posit.co/py/
The link to the final app can be found here: https://keithgalli.shinyapps.io/final-app/
Follow along with the code examples provided in this repository: https://github.com/KeithGalli/shiny-python-projects
Check out the complete documentation here: https://shiny.posit.co/py/api/express/
Stay tuned for part 2, where we’ll dive deeper into advanced features and customization options.
Video Timeline! 0:00 - Intro to Shiny & Video Overview 1:43 - Getting Started with the Shinylive Playground 2:44 - Building a custom visualization with Shinylive 5:18 - Easily sharing the code/application for a Shinylive app 6:12 - Building a Shiny Express App locally (VSCode) 9:40 - How to run app if you’re not using VSCode 10:17 - Further customization of our app (adding title, using CSV data, dynamic input) 17:15 - Deploying our Shiny app to the web 21:20 - Conclusion & what’s coming next in the series
Video by @KeithGalli
All videos in the series: Part 1 - How to Build, Deploy, & Share a Python Application in 20 minutes! (Using Shiny): https://www.youtube.com/watch?v=I2W7i7QyJPI&t=0s Part 2 - How to make Interactive Python Dashboards! (Reactivity in Shiny): https://www.youtube.com/watch?v=SLkA-Z8HTAE&t=0s Part 3 - How to make your Python Dashboard look Professional! (Layouts in Shiny): https://www.youtube.com/watch?v=jemk7DoN4qk&t=0s Part 4 - How to combine Matplotlib, Plotly, Seaborn, & more in a single Python Dashboard! (Shiny for Python): https://youtu.be/xDgO5hB4-VU?si=kk20yhdpsBqkMYcC Part 5 - How to Perfect Your Python Dashboard with Advanced Styling! (HTML/CSS - Shiny for Python): https://youtu.be/uYZUS-eFbqw
Future of Shiny to the FDA with WebR ✨
For more on How Pharma is Pioneering WebAssembly with webR & Shiny for FDA Clinical Trial Submissions: https://posit.co/blog/webr-fda-pilot/ #positshorts
Joe Cheng | Managing long-running operations in Shiny | Posit
It’s been years since Shiny evolved to allow asynchronous operations within applications, improving scalability. The introduction of the {promises} package enabled concurrent processing between multiple Shiny sessions, a significant step forward in handling background tasks. However, this did not address the need for intra-session concurrency, where users expect to interact with the application while long-running calculations are executed in the background.
Recently, we added a new ExtendedTask feature to Shiny to allow for such intra-session concurrency. This new feature provides a different approach for developers to incorporate asynchronous tasks, enabling smoother user interactions during intensive computations. Alongside ExtendedTask, this talk will also discuss newer methods for launching asynchronous tasks, besides the usual {future} package. The focus will be on the practical application and integration of these features into Shiny applications.
Links mentioned in the video: ⬡ Shiny in Production: Principles, practices, and tools, https://youtu.be/Wy3TY0gOmJw?feature=shared
Timestamps: 0:20 Make your slow code fast 1:43 Long-running operations are a problem 3:28 Inter-session concurrency and intra-session concurrency 4:24 Introducing ExtendedTask 5:17 Demo of a slow API using ExtendedTask 6:13 Slow code example (R) 7:16 Fix slow code with ExtendedTask (R) 8:55 Slow code example (Python) 7:16 Fix slow code with ExtendedTask (Python) 10:46 Links to get started 11:06 ExtendedTask backstory intro 11:28 ExtendedTask vs. Shiny Async 15:50 How reactive programming works in Shiny 21:31 How ExtendedTask works in the reactive process 25:38 What we’re still working on 26:35 {future} alternatives 31:47 Wrapping up

Using your dataset in Shiny Templates | Carson Sievert | Posit
Watch the Shiny team’s Carson Sievert change the dataset in a Shiny Template.
Find the right template for you at https://shiny.posit.co/py/templates/
0:00 Intro with Carson Sievert
0:19 How to load the template code
1:14 Running your Shiny app in VS Code with a live reloading preview
1:29 How this template works
2:23 See the contents of your data in a data_frame
2:53 How this template imports data
3:33 A more optimized way to import a large amount of data
5:10 Changing the dataset
5:44 Troubleshooting the inevitable errors when changing the dataset


Introducing Shiny for Python Templates | Carson Sievert | Posit
Last month we introduced the Shiny for Python Components and Layouts galleries, which are a simple, visual overview of what Shiny can do, mixed with cheatsheet-like information. They are for new and seasoned users alike.
We’re excited to announce a third section which brings those two things together into opinionated boilerplate code: Shiny Templates. This is just a start… We expect this gallery to grow as time goes on.
These will allow you to hit the ground running, whether you need a quick simple app or a quick complicated one .
Get started at https://shiny.posit.co/py/templates/
0:00 Introduction to Shiny for Python Templates 0:38 How to work with a template locally in VS Code 2:24 Preview your app with the Shiny for Python VS Code Extension 2:45 A data_frame is a quick and easy way to see the contents of your data 4:39 See everything in your window with the “fillable=True” page_opts 5:16 Modifying inputs 7:40 Fix the logic in your @render.plot to show your modified inputs 9:00 Add a component to the sidebar 9:05 How to add input_dark_mode to your app 9:54 How to make your plot change to dark mode as well

Workflow Demo Live Q&A - February 28th
Q&A session from the February 28th Workflow Demo – Simplify Python web app development with Shiny Express and Posit Team: https://youtu.be/pBPF00M_bfU?feature=shared
Anonymous questions: pos.it/demo-questions
Demo: 11 am ET Q&A: ~11:30 am ET
How to write and deploy a Python web app with Shiny Express and Posit Team
Winston Chang at Posit joined us to share a quicker and simpler way of writing Shiny applications in Python, called Shiny Express
With Shiny Express you can create interactive data dashboards and data-driven applications faster than ever.
Helpful resources: ️ Introducing Shiny Express: https://shiny.posit.co/blog/posts/shiny-express/ ️ Shinylive: https://shinylive.io/py/examples/ ️ Component Gallery: https://shiny.posit.co/py/components/ ️ VS Code Shiny extension: https://marketplace.visualstudio.com/items?itemName=Posit.shiny-python ️ Q&A recording: https://youtube.com/live/zg4LP4lkihM?feature=share rsconnect-python package: https://pypi.org/project/rsconnect-python/
️ Follow-up links: Event Survey: https://forms.gle/8AcMAnjfPFSTQZJK6 Posit Team: https://posit.co/products/enterprise/team/ Request evaluation: pos.it/chat-with-us Posit Team demo resources: pos.it/demo-resources
What will you learn? If you’re new to Shiny → you’ll get started writing and deploying your first Shiny Express application in Python.
If you already know Shiny → you’ll see how Shiny Express can make your development experience quicker and more efficient.
Happy with the way things are? No need to change what you’re doing! We think of Shiny Express and Shiny Core as complementary, and intend to support both syntaxes indefinitely. Last month’s Workflow with Posit Team Demo featured Shiny in R and used bslib for custom theming, which you can check out here in the recording: https://youtu.be/O6WLERr5bKU?feature=shared
LIVE Q&A ROOM for ~11:30 am on Feb 28th: https://youtube.com/live/zg4LP4lkihM?feature=share
There is no need to register; join us here on YouTube at the time above or you can add to your calendar using the link below:
pos.it/team-demo
We host these Workflow Demos on the last Wednesday of every month, so you can use the link above to add the recurring event as well.
#python

Workflow Demo Live Q&A - January 31st
Please join us for the live Q&A session for the January 31st Workflow Demo - this will start immediately following the demo.
Theming Shiny apps with your company brand" session: https://youtu.be/O6WLERr5bKU
Anonymous questions: pos.it/demo-questions
Demo: 11 am ET Q&A: ~11:40 am ET
How to bring modern UI to your Shiny apps
Looking for ways to make your Shiny apps a little…shinier?
Join Garrett Grolemund at Posit on Wednesday, January 31st at 11 am ET to learn how to theme and brand your own apps.
The session will highlight how to:
Layout an app with the bslib package (modern UI toolkit with no knowledge of CSS required) Add cards, value boxes, and logos Customize the theme of the app Tweak the theme by swapping out primary colors, secondary colors, and more. Quickly apply the theme to every plot in the app Work with bootstrap classes
Helpful Resources: ️ Code at : https://github.com/garrettgman/shiny-styling-demo bslib package: https://rstudio.github.io/bslib/ bsicons package: https://github.com/rstudio/bsicons ️ Bootstrap icons: https://icons.getbootstrap.com/ ️ Bootstrap CSS classes: https://bootstrapshuffle.com/classes thematic package: https://rstudio.github.io/thematic/ gitlink package: https://github.com/colearendt/gitlink
️ Follow-up links: Posit Team: https://posit.co/products/enterprise/team/ Request evaluation: pos.it/chat-with-us Posit Team demo resources: pos.it/demo-resources
LIVE Q&A ROOM for ~11:45 am on January 31st: https://youtube.com/live/1G8ZM6kbt8c?feature=share
There is no need to register; join us here on YouTube at the time above or you can add to your calendar using the link below:
pos.it/team-demo
We host these Workflow Demos on the last Wednesday of every month, so you can use the link above to add the recurring event as well
How to collaborate effectively with other data scientists (version control, project sharing, etc.)
Tis the season for joy and connection, and what better time to extend that collaborative spirit into your data science endeavors
By popular demand, our upcoming monthly workflow with Ryan Johnson on December 27th is dedicated to enhancing teamwork. It’s recorded, so no worries if you’re out! Or perhaps you’ll add us to the mix of holiday movies and watch from the couch!
This Month’s Focus: All Things Collaborative Working
Version control Git-backed deployment Project sharing
Date & Time: Wednesday, December 27th at 11 am ET.
Packages mentioned: Shiny: https://shiny.posit.co/ bslib: https://rstudio.github.io/bslib/
️ Follow-up links: Posit Team: https://posit.co/products/enterprise/ … Talk to us directly: pos.it/chat-with-us Posit Team demo resources: pos.it/demo-resources
There is no need to register; join us here on YouTube at the time above or you can add to your calendar using the link below:
pos.it/team-demo
We host these Workflow Demos on the last Wednesday of every month, so you can use the link above to add the recurring event as well.
We will use this thread on the Posit Community Forum for follow-up Q&A from this month’s session: https://community.rstudio.com/t/event-on-12-27-collaborative-workflows-w-posit-team-version-control-git-backed-deployment-project-sharing/179181 (shortlink: pos.it/workflow-dec-23)
Happy holidays! Cheers to 2024!
AI and Shiny for Python: Unlocking New Possibilities - posit::conf
Presented by Winston Chang
In the past year, people have come to realize that AI can revolutionize the way we work. This talk focuses on using AI tools with Shiny for Python, demonstrating how AI can accelerate Shiny application development and enhance its capabilities. We’ll also explore Shiny’s unique ability to interface with AI models, offering possibilities beyond Python web frameworks like Streamlit and Dash. Learn how Shiny and AI together can empower you to do more, and do it faster.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: I can’t believe it’s not magic: new tools for data science. Session Code: TALK-1153

Building a Flexible, Scaleable Self-Serve Reporting System with Shiny - posit::conf(2023)
Presented by Natalie O’Shea
Working in the high-touch world of consulting, our team needed to develop a reporting system that was flexible enough to be tailored to the specific needs of any given partner while still reducing the highly manual nature of populating client-ready slide decks with various metrics and data visualizations. Utilizing the extensive resources developed by the R user community, I was able to create a flexible, scalable reporting system that allows users to populate templated Google slide decks with metrics and professional-grade visualizations using data pulled directly from our database at the time of query. This streamlined approach enables our consultants to spend less time copy-pasting data from one channel to another and instead focus on what they do best: surfacing business-relevant insights and recommendations for our partners.
By sharing my approach to customizable self-serve reporting in Shiny, I hope attendees will walk away with new ideas about how to combine parameterized reporting and dashboard development to get the best of both worlds. Additionally, I hope to end by sharing how this project was pivotal in making the business case for procuring Posit products for my broader organization.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Bridging the gap between data scientists and decision makers. Session Code: TALK-1075
Coding Tools for Industry R&D – Development Lessons from an Analytical Lab - posit::conf(2023)
Presented by Camila Saez Cabezas
Are you considering or curious about developing code-based tools for scientists? Whether you are an experienced developer or a fellow Posit Academy graduate who might be stepping into this role for the first time, the aim of my story is to inspire you and help you navigate this process. While developing custom R functions, packages, and Shiny apps for diverse analytical capabilities and users in R&D, I learned why it’s important to collect certain information at the start before writing any tidying, analysis, visualization, and web application code.
In this talk, I will share the essential technical questions that help me define and plan for success.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Lightning talks. Session Code: TALK-1168
Combining R and Python for the Belgian Justice Department - posit::conf(2023)
Presented by Thomas Michem
We build a great case on how to combine R and Python in a production environment.
So the justice department’s back office monitors the smooth processing of all traffic fines in Belgium. They gather that data from all police departments and check if any anomalies occur.
The back-office monitors that using a shiny application where they can see traffic signs showing the status of the whole operation and the status is built using Python scripts that perform anomaly detection if the number of fines is in line with what they expect daily. And the results of those checks are delivered to a front-end shiny application with Python flask API.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: R or Python? Why not both!. Session Code: TALK-1122
Developing a Prototyping Competency in a Statistical Science Organization - posit::conf(2023)
Presented by Daniel Woodie
The introduction of new tools, methods, and processes can be a struggle within a statistical science organization. Being deliberate and investing in the creation of a prototyping competency can help in accelerating progress. Prototyping allows organizations to quickly experiment with new ideas, reduce the risk of failure, identify potential issues early, and iterate until the desired outcome is achieved.
I will highlight the key areas we have focused on accelerating, our framework for developing this competency, how we use Shiny, and the lessons we’ve learned along the way. Developing a prototyping competency is crucial for statistical science organizations that wish to stay competitive and innovative in today’s rapidly changing landscape.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Building effective data science teams. Session Code: TALK-1059
Diversify Your Career with Shiny for Python - posit::conf(2023)
Presented by Gordon Shotwell
A few years ago my company made a sudden shift from R to Python which was quite bad for my career because I didn’t really know Python. The main issue was that I couldn’t find a niche that allowed me to use my existing knowledge while learning the new language.
Shiny for Python is a great niche for R users because none of the Python web frameworks can do what Shiny can do. Additionally, almost all of your knowledge of the R package is applicable to the Python one.
This talk will provide an overview of the Python web application landscape and articulate what Shiny adds to this landscape, and then go through the five things that R users need to know before developing their first Shiny for Python application.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Data science with Python. Session Code: TALK-1138
epoxy: Super Glue for Data-driven Reports and Shiny Apps - posit::conf(2023)
Presented by Garrick Aden-Buie
R Markdown, Quarto, and Shiny are powerful frameworks that allow authors to create data-driven reports and apps. But truly excellent reports require a lot of work in the final steps to get numerical and stylistic formatting just right.
{epoxy} is a new package that uses {glue} to give authors templating superpowers. Epoxy works in R Markdown and Quarto, in markdown, LaTeX, and HTML outputs. It also provides easy templating for Shiny apps for dynamic data-driven reporting.
Beyond epoxy’s features, this talk will also touch on tips and approaches for data-driven reporting that will be useful to a wide audience, from R Markdown experts to the Quarto and Shiny curious.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Elevating your reports. Session Code: TALK-1155

FOCAL Point: Utilizing Python, R, and Shiny to Capture, Process, and Visualize Motion - posit::conf
Presented by Justin Markel & Alyssa Burritt
One of the fastest movements in modern sports is a golf swing. Capturing this motion using a high-speed camera system creates many unique challenges in processing, analyzing, and visualizing the thousands of data points that are generated. These spatial coordinates can be quickly translated through Python scripts to well-known, industry-specific performance metrics and graphics in Shiny. Down the line, R utilities aid more complicated analyses and optimizations, driving new product innovations.
This talk will cover our company’s process of implementing these tools into our workflow and highlight key program features that have helped successfully combine these applications for users with a variety of technical backgrounds.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: R or Python? Why not both!. Session Code: TALK-1120
From Concept to Impact: Building and Launching Shiny Apps in the Workplace - posit::conf(2023)
Presented by Tiger Tang
Learn to build and launch a Shiny app like you are working on a start-up!
Unlock the potential of Shiny apps for your organization! Join Tiger as he shares insights from implementing Shiny apps at his workplace, handling over 160,000 internal requests. Discover a practical mindmap to find, build, and enhance Shiny app use cases, ensuring robustness and improved user engagement.
Materials: https://tigertang.org/posit_conf_2023/
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Bridging the gap between data scientists and decision makers. Session Code: TALK-1074
How to Help Developers Make Apps Users Love - posit::conf(2023)
Presented by Michał Parkoła
There are many resources that can help you design better apps.
But what if your org creates many apps?
Scaling good design to larger groups dials the challenge up to 11.
In this talk, I will share how we approach the problem at Appsilon.
- I will present our in-house Design Guide.
- I will share the successes and failures we’ve had building it and helping a wide variety of developers use it
- I will then share some tips about what you might want to consider if you want to help your org build better apps at scale.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Shiny user interfaces. Session Code: TALK-1127
How You Get Value as a 1-Person Posit Connect Team - posit::conf(2023)
Presented by Sean Nguyen
Sean, a sole Posit Connect developer, shares his experience in delivering business impact. He narrates his transition from crafting one-off reports to developing and deploying robust data science web applications using Python and R with Posit Connect. Despite its common association with large enterprise teams, Sean demonstrates how Posit Connect can be effectively utilized in smaller settings. He presents his work on creating and deploying end-to-end machine learning pipelines in Python, hosting them as APIs, and seamlessly integrating with Shiny apps via Posit Connect. This talk imparts practical strategies and techniques to foster user and executive adoption of Posit Connect within lean (and large) organizations.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Getting %$!@ done: productive workflows for data science. Session Code: TALK-1093
HTML and CSS for R Users - posit::conf(2023)
Presented by Albert Rapp
You can get the most out of popular R tools by combining them with easy-to-learn HTML & CSS commands.
It’s easy to think that R users do not need HTML and CSS. After all, R is a language designed for data analysis, right? But the reality is that these web standards are everywhere, even in R. In fact, many great tools like {ggtext}, {gt}, {shiny}, and Quarto unlock their full potential when you know a little bit of HTML & CSS. In this talk, I will demonstrate specific examples where R users can benefit from HTML and CSS and show you how to get started with these two languages.
Materials:
- Here’s the link to the video that I mention in the talk: https://youtu.be/QU8wSya-Y9E?si=zw59OSFPl1eJSY7M
- Part 1 of this two part series can be found at https://www.youtube.com/watch?v=jX4_Dnzhl0M
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Compelling design for apps and reports. Session Code: TALK-1105
Making a (Python) Web App is easy! - posit::conf(2023)
Presented by Marcos Huerta
Making Python Web apps using Dash, Streamlit, and Shiny for Python
This talk describes how to make distribution-free prediction intervals for regression models via the tidymodels framework.
By creating and deploying an interactive web application you can better share your data, code, and ideas easily with a broad audience. I plan to talk about several Python web application frameworks, and how you can use them to turn a class, function, or data set visualization into an interactive web page to share with the world. I plan to discuss building simple web applications with Plotly Dash, Streamlit, and Shiny for Python.
Materials:
- Comprehensive talk notes here: https://marcoshuerta.com/posts/positconf2023/
- https://www.tidymodels.org/learn/models/conformal-regression/
- https://probably.tidymodels.org/reference/index.html#regression-predictions
Corrections: In my live remarks, I said a Dash callback can have only one output: that is not correct, a Dash callback can update multiple outputs. I was trying to say that a Dash output can only be updated by one callback, but even that is no longer true as of Dash 2.9. https://dash.plotly.com/duplicate-callback-outputs""
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: The future is Shiny. Session Code: TALK-1086
Quickly get your Quarto HTML theme in order - posit::conf(2023)
Presented by Greg Swinehart
A 5-minute talk to discuss how I’ve used Quarto and Bootstrap variables to quickly make Shiny’s new website look as it should. The Quarto user I have in mind works at an organization with specific brand guidelines to follow. I‚ will discuss how to set up your theme, show some key Quarto settings, and how Bootstrap‚ Sass variables are your best friend.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Lightning talks. Session Code: TALK-1170

Running R-Shiny without a Server - posit::conf(2023)
Presented by Joe Cheng
A year ago, Posit announced ShinyLive, a deployment mode of Shiny that lets you run interactive applications written in Python, without actually running a Python server at runtime. Instead, ShinyLive turns Shiny for Python apps into pure client-side apps, running on a pure client-side Python installation.
Now, that same capability has come to Shiny for R, thanks to the webR project.
In this talk, I’ll show you how you can get started with ShinyLive for R, and why this is more interesting than just cheaper app hosting. I’ll talk about some of the different use cases we had in mind for ShinyLive, and help you decide if ShinyLive makes sense for your app.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: I can’t believe it’s not magic: new tools for data science. Session Code: TALK-1151

Scale Your Data Validation Workflow With {pointblank} and Posit Connect - posit::conf(2023)
Presented by Michael Garcia
For the Data Services team at Medable, our number one priority is to ensure the data we collect and deliver to our clients is of the highest quality. The {pointblank} package, along with Posit Connect, modernizes how we tackle data validation within Data Services.
In this talk, I will briefly summarize how we develop test code with {pointblank}, share with {pins}, execute with {rmarkdown}, and report findings with {blastula}. Finally, I will show how we aggregate data from test results across projects into a holistic view using {shiny}.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Leave it to the robots: automating your work. Session Code: TALK-1058
Shiny Developer Secrets: Insights From Over 1200 Applicants and What You MUST Know to Shine
Presented by Vedha Viyash
Over 1,200 candidates applied for the R/Shiny developer role at Appsilon in the last year, and I will be sharing some insights that we have gained from going through the qualitative and quantitative feedback collected from every round of the interview process.
I will be sharing some key takeaways that would help you focus on things that will make you a better Shiny developer. From reactivity to software testing, there are multiple skills that make up a good Shiny developer and you will get to know the major gaps and how to focus on them.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Lightning talks. Session Code: TALK-1173
Shiny for Python Machine Learning Apps with pandas, scikit-learn and TensorFlow - posit::conf(2023)
Presented by Chelsea Parlett-Pelleriti
With the introduction of Shiny for Python in 2022, users can now use the power of reactivity with their favorite Python packages. Shiny can be used to build interactive reports, dashboards, and web apps, that make sharing insights and results both simple and dynamic. This includes apps to display and explore popular Machine Learning models built with staple Python packages like pandas, scikit-learn, and TensorFlow. This talk will demonstrate how to build simple Shiny for Python apps that interface with these packages, and discuss some of the benefits of using Shiny for Python to build your web apps.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: The future is Shiny. Session Code: TALK-1087
Shiny New Tools for Scaling your Shiny Apps - posit::conf(2023)
Presented by Joe Kirincic
So you have a Shiny app your org loves, but as adoption grows, performance starts getting sluggish. Profiling reveals your cool interactive plots are the culprit. What can you do to make things snappy again? We can increase the number of app instances, sure, but suppose that isn’t an option for us. Another approach is to shift the plotting work from the server onto the client.
In this talk, we’ll learn how to leverage two Javascript projects, DuckDB-WASM and Observable’s Plot.js, in our Shiny app to create fast, flexible interactive visualizations in the browser without burdening our app’s server function. The end result is an app that can scale to more users without needing to increase compute resources.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: The future is Shiny. Session Code: TALK-1088
ShinyUiEditor: From Alpha to Powerful Shiny App Development Tool - posit::conf(2023)
Presented by Nick Strayer
Since its alpha debut at last year’s conference, the ShinyUiEditor has experienced continuous development, evolving into a powerful tool for crafting Shiny app UIs. Some key enhancements include the integration of new bslib components and the editor’s ability to create or navigate to existing server bindings for inputs and outputs.
In addition to new features, the editor is now available as a VSCode extension enabling it to integrate smoothly into more developers’ workflows. This talk will showcase how these new capabilities empower users to efficiently create visually appealing and production-ready applications with ease.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Shiny user interfaces. Session Code: TALK-1126

Speeding Up Plots in R/Shiny - posit::conf(2023)
Presented by Ryszard Szymański
A slow plots can ruin the user experience of our dashboard. This talk covers techniques for speeding up the rendering process of our visualisations.
Slow dashboards lead to a poor user experience and cause users to lose interest, or even become frustrated. A common culprit of this situation is a slowly rendering plot.
During the talk, we will dive deeper into how plots are rendered in Shiny, identify common bottlenecks that can occur during the rendering process, and learn various techniques for improving the speed of plots in R/Shiny dashboards.
These techniques will range from more efficient data processing to library-specific optimisations at the browser level.
Materials: I’d like to include a link to my linkedin profile: https://www.linkedin.com/in/ryszard-szyma%C5%84ski-310a7017a/
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Lightning talks. Session Code: TALK-1172
The Power of Prototyping in R Shiny: Saving Millions by Building the Right Tool - posit::conf(2023)
Presented by Maria Grycuk
The development of software can be costly and time-consuming. If the end users are not involved in the process from the start the tool we built may not meet their needs. In this presentation, I will discuss how prototyping in Shiny can help you build the right tool and save you from spending millions of dollars on a tool no one will use. I will explore the advantages of using Shiny for prototyping, particularly its ability to rapidly build interactive applications. I will also discuss how to design effective prototypes, including techniques for gathering user feedback and using that feedback to refine your tool. I will emphasize the importance of presenting real-life data, particularly when building data-driven tools.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Shiny user interfaces. Session Code: TALK-1125
The Road to Easier Shiny App Deployments - posit::conf(2023)
Presented by Liam Kalita
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.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: The future is Shiny. Session Code: TALK-1089
Towards the Next Generation of Shiny UI
Presented by Carson Sievert
Create awesome looking and feature rich Shiny dashboards using the bslib R package.
Shiny recently celebrated its 10th birthday, and since its birth, has grown tremendously in many areas; however, a hello world Shiny app still looks roughly like it did 10 years ago. The bslib R package helps solve this problem making very easy to apply modern and customizable styling your Shiny apps, R Markdown / Quarto documents, and more. In addition, bslib also provides dashboard-focused UI components like expandable cards, value boxes, sidebar layouts, and more to help you create delightful Shiny dashboards.
Materials:
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Shiny user interfaces. Session Code: TALK-1124

Using R to develop production modeling workflows at Mayo Clinic - posit::conf(2023)
Presented by Brendan Broderick
Developing workflows that help train models and also help deploy them can be a difficult task. In this talk I will share some tools and workflow tips that I use to build production model pipelines using R. I will use a project of predicting patients who need specialized respiratory care after leaving the ICU as an example. I will show how to use the targets package to create a reproducible and easy to manage modeling and prediction pipeline, how to use the renv package to ensure a consistent environment for development and deployment, and how to use plumber, vetiver, and shiny applications to make the model accessible to care providers.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Leave it to the robots: automating your work. Session Code: TALK-1149
Using R, Python, and Cloud Infrastructure to Battle Aquatic Invasive Species - posit::conf(2023)
Presented by Uli Muellner and Nicholas Snellgrove
Invasive species are a huge threat to lake ecosystems in Minnesota. With over 10,000 water bodies across the state, having up-to-date data and decision support is critical. Researchers at the University of Minnesota have created four complex R and Python models to support lake managers, all pulled together and presented with the most recent infestation data available.
Come along with us to see how we connected these models in the AIS Explorer, a decision support application built in Shiny to help prioritize risks and placing watercraft inspectors, using tools like OCPU and cloud toolings like Lambda, EventBridge and AWS S3.
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: R or Python? Why not both!. Session Code: TALK-1118
Why You Should Add Logging To Your Code (and make it more helpful) - posit::conf(2023)
Presented by Daren Eiri
Learn how the log4r package can help you better understand the errors your code may produce, and how to also get promptly alerted for severe errors by leveraging cloud monitoring solutions like Azure Monitor or AWS CloudWatch
When an error happens in your API, Shiny App, or quarto document, it is not always clear what line of code you need to look at, and the error messages aren’t always helpful. By walking through a simple API example, I show how you can use logging packages like log4r to provide error messages that make sense to you. I also show how you can use cloud-based data collection platforms like Azure Monitor or AWS CloudWatch to set up alerts, so you can get notified by email or text message for those severe errors that you need to be immediately aware of.
Gain more visibility into the health of your code by incorporating logging and pushing your logs to the cloud.
Materials: https://dareneiri.github.io/positconf2023/
Presented at Posit Conference, between Sept 19-20 2023, Learn more at posit.co/conference.#
Talk Track: Lightning talks. Session Code: TALK-1164
Shiny in Production 2023: George Stagg - R Shiny without a server: webR and Shinylive
R Shiny without a server: webR and Shinylive by George Stagg at the Shiny in Production 2023 conference, hosted by Jumping Rivers!
Note from the speaker: Shinylive is now available on CRAN! https://cran.r-project.org/web/packages/shinylive/index.html
Abstract#
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”.
This event was sponsored by:
- Jumping Rivers
- National Innovation Centre for Data
- NU Solve
- Posit
- R Consortium
- Royal Statistical Society

Eric Nantz, Alex Lauer, Rich Iannone - A Pivotal Year of Milestones in R Consortium Working Groups
A Pivotal Year of Milestones: R Submissions Working Group and R Tables for Regulatory Submissions updates - Eric Nantz, Alexandra Lauer, and Rich Iannone
Resources mentioned in the presentation:
- R Submissions Working Group: https://rconsortium.github.io/submissions-wg/
- R Tables eBook: https://rconsortium.github.io/rtrs-wg
Abstract: Within the life sciences industry, Shiny has enabled tremendous innovations to produce web interfaces as frontends to sophisticated analyses, dynamic visualizations, and automation of clinical reporting across drug development. While industry sponsors have widely adopted Shiny as part of their analytics and reporting toolset, a relatively unexplored frontier has been the inclusion of a Shiny application inside a clinical submission package to regulatory agencies such as the FDA. The R Consortium R Submissions Working Group has continued the positive momentum of previous submission pilots to achieve substantial progress in this domain. In this talk, we will share the development journey of the working group’s Pilot 2 successful submission of a Shiny application to the FDA, along with the progress on the use of novel technologies such as Linux containers and web assembly to bundle a Shiny application into a self-contained package, facilitating a smoother process of both transferring and executing the application. The R Consortium’s R Tables for Regulatory Submissions (RTRS) Working Group has released the first edition of (Tables in Clinical Trials with R)[ https//rconsortium.github.io/rtrs-wg/] as a free and openly accessible ebook. The book contributes to the development of a theory of displaying tabular information by identifying a small number of table archetypes that may be used to generate the most common tables employed in clinical submissions. Chapters in the book demonstrate how these tables may be rendered in different R Packages including flextable, gt, rtables (with and without tern), tables, tfrmt and tidytlg. All tables are generated from CDISC-compliant data. Comparing the code showcases the robustness of R for aggregating and displaying tabular information and illuminates the flexibility and design tradeoff of the various R packages. The talk will discuss the motivation for the book, present the idea of table archetypes, show some representative tables, and make the case for R as a superb language for analyzing clinical trial data. The RTRS working group expects Tables in Clinical Trials with R to become a primary resource of clinical programming teams.
Speaker Bios:
Eric Nantz is a director within the statistical innovation center at Eli Lilly and Company, creating analytical pipelines and capabilities of advanced statistical methodologies for clinical design used in multiple phases of development. Outside of his day job, Eric is passionate about connecting with and showcasing the brilliant R community in multiple ways. You may recognize his voice from the R-Podcast that he launched in 2012. Eric is also the creator of the Shiny Developer Series where he interviews authors of Shiny-related packages and practitioners developing applications, as well as sharing his own R and Shiny adventures via livestreams on his Twitch channel. In addition, Eric is a curator for the RWeekly project and co-host of the RWeekly Highlights podcast which accompanies every issue.
Alexandra Lauer is a Senior Principal Statistical Analyst at Merck KGaA, Darmstadt, Germany, with a background in mathematics. She specializes in bridging psychometrics and biostatistics, with a primary focus on Health-Related Quality of Life evaluations. Alex is an R enthusiast, co-leading the Merck-internal R User Group.
Rich Iannone: My background is in programming, data analysis, and data visualization. Much of my current software engineering work on R packages is intended to make working with data easier. I truly believe that with the right approach, tools like these can be both powerful and easy to use.
Presented at the 2023 R/Pharma Conference (October 26, 2023)

Gordon Shotwell & Tracy Teal - Build Simple and Scalable Apps with Shiny | PyData NYC 2023
https://gshotwell.github.io/shiny-algorithm
This talk explores the intuitive algorithm behind Shiny for Python and shows how it allows you to scale your apps from prototype to product. Shiny infers a reactive computation graph from your application and uses this graph to efficiently re-render components. This eliminates the need for data caching, state management, or callback functions which lets you build scalable applications quickly.
PyData is an educational program of NumFOCUS, a 501(c)3 non-profit organization in the United States. PyData provides a forum for the international community of users and developers of data analysis tools to share ideas and learn from each other. The global PyData network promotes discussion of best practices, new approaches, and emerging technologies for data management, processing, analytics, and visualization. PyData communities approach data science using many languages, including (but not limited to) Python, Julia, and R.
PyData conferences aim to be accessible and community-driven, with novice to advanced level presentations. PyData tutorials and talks bring attendees the latest project features along with cutting-edge use cases.
00:00 Welcome! 00:10 Help us add time stamps or captions to this video! See the description for details.
Want to help add timestamps to our YouTube videos to help with discoverability? Find out more here: https://github.com/numfocus/YouTubeVideoTimestamps
How to build a model annotation tool with FastAPI, Quarto & Shiny for Python
Gordon Shotwell, Senior Software Engineer at Posit walks through an end-to-end machine learning workflow with Posit Team. This demo will give you a robust pattern for hosting and sharing models on Connect before you deploy them to a customer-facing system.
This includes
- How and why to use an API layer to serve and authenticate internal models
- Why you should wrap your APIs in Python packages
- Using Shiny for Python to build a data annotation app
- Using Quarto to retrain models on a schedule
Agenda: 11am - Quick introduction 11:02am - Demo 11:40am Q&A Session (https://youtube.com/live/zhN8IZUBCAg?feature=share )
Timestamps: 1:27 - Quick overview of text classification model used in this example 2:15 - Overview of the people that will need to use the model (modellers, leadership, data team, annotators, other systems) 4:11 - Why APIs before UIs is a good rule 5:57 - What about Python packages? 8:23 - Advantages to using an API here 9:18 - Big picture overview of the workflow 11:17 - FastAPI on Posit Connect (Swagger interface) 15:55 - The way this model will be used (authorization by validating user) 19:00 - Building a delightful user experience by wrapping API in a package 25:07 - Quarto report for leadership team showing model statistics & deploying to Connect 26:34 - Retraining the model by scheduling Quarto doc on Connect 28:37 - Shiny for Python app for Annotators (people checking if model is producing correct results & helping improve the model) 35:28 - Overview / summary of this machine learning workflow
Helpful links: Github: https://github.com/gshotwell/connect-e2e-model Anonymous questions: pos.it/demo-questions If you want to book a call with our team to chat more about Posit products: pos.it/chat-with-us Don’t want to meet yet, but curious who else on your team is using Posit? pos.it/connect-us Machine learning workflow with R: https://solutions.posit.co/gallery/bike_predict/
In this month’s Workflows with Posit Team session (Wednesday, November 29th at 11am ET) you will learn how to use Posit Connect as an end-to-end Python platform for hosting internal machine learning models. This will give you a robust pattern for hosting and sharing models on Connect before you deploy them to a customer-facing system.
This will include:
- How and why to use an API layer to serve and authenticate internal models
- Why you should wrap your APIs in Python packages
- Using Shiny for Python to build a data annotation app
- Using Quarto to retrain models on a schedule
During the event, we’ll be joined by Gordon Shotwell, Senior Software Engineer at Posit who will walk us through this end-to-end machine learning workflow with Posit Team.
No registration is required to attend - simply add it to your calendar using this link: pos.it/team-demo
Ps. We host these end-to-end workflow demos on the last Wednesday of every month. If you ever have ideas for topics or questions about them, leave a comment below :)
webR 0.2: R Packages and Shiny for WebAssembly | George Stagg | Posit
WebR makes it possible to run R code in the browser without the need for an R server to execute the code: the R interpreter runs directly on the user’s machine. But just running R isn’t enough, you need the R packages you use every day too.
webR 0.2.0 makes many new packages available (10,324 packages - about 51% of CRAN!) and it’s now possible to run Shiny apps under webR, entirely client side.
George Stagg shares how to load packages with webR, know what ones are available, and get started running Shiny apps in the web browser. There’s a demo webR Shiny app too!
00:15 Loading R packages with webR 01:50 Wasm system libraries available for use with webR 05:30 Tidyverse, tidymodels, geospatial data, and database packages available 08:00 Shiny and httpuv: running Shiny apps under webR 11:05 Example Shiny app running in the web browser 12:05 Links with where to learn more
Shiny webR demo app: https://shinylive.io/r/examples/
Website: https://docs.r-wasm.org/ webR REPL example: https://webr.r-wasm.org/latest/
Demo webR Shiny app in this video: https://shiny-standalone-webr-demo.netlify.app/ Source: https://github.com/georgestagg/shiny-standalone-webr-demo/
See the overview of what’s new in webR 0.2.0: https://youtu.be/Mpq9a6yMl_w

Shiny is available for Python and is super easy to customize the look and feel of your app😍
Learn more about Shiny for Python: https://shiny.posit.co/py/ #positshorts
How does Shiny render things? | Gordon Shotwell
Discussion on the Shiny Python Discord channel from Gordon Shotwell. Gordon talks about how Shiny renders things with reactive programming, how other frameworks work, and how Shiny scales for complex applications.
0:00 - How Shiny renders things - reactivity 2:31 - How do other frameworks work 3:51 - Event driven programming, what’s a better way? 6:53 - Runtime tracing 8:25 - Declarative programming 9:20 - Drawing a graph 12:05 - How reactivity scales 13:30 - Reactive calculus 18:45 - Question and answer
Shiny for Python: https://shiny.posit.co/py/ Shiny for Python Discord server: https://discord.com/invite/yMGCamUMnS
“Shiny: Data-centric web applications in Python” - Joe Cheng (PyBay 2023)
Joe Cheng
https://pybay.com/speakers/#sz-speaker-7e5324de-3afa-4614-a498-562bd5eb9986
Shiny is a web framework that is designed to let you create data dashboards, interactive visualizations, and workflow apps in pure Python or R. Shiny doesn’t require knowledge of HTML, CSS, and JavaScript, and lets you create data-centric applications in a fraction of the time and effort of traditional web stacks.
Of course, Python already has several popular and high-quality options for creating data-centric web applications. So it’s fair to ask what Shiny can offer the Python community.
In this talk, I will introduce Shiny for Python and answer that question. I’ll start with some basic demos that show how Shiny apps are constructed. Next, I’ll explain Transparent Reactive Programming (TRP), which is the animating concept behind Shiny, and the reason it occupies such an interesting place on the ease-vs-power tradeoff frontier. Finally, I’ll wrap up with additional demos that feature interesting functionality that is made trivial with TRP.
This talk should be interesting to anyone who uses Python to analyze or visualize data, and does not require experience with Shiny or any other web frameworks.
PyBay features the most influential speakers presenting the most crucial technologies to help beginners and seasoned developers alike get up-to-date quickly, in a single-track format. Whether you’re interested in web technologies, data, devops, Python internals, or performance, PyBay will help you stay on top of your game AND network with engineers at companies that are hiring!
Working remotely and want to meet your teammates to boost team cohesiveness? Leverage the platform we’ve built. There are great talks, yummy food, fresh air, vitamin D… all the elements developers crave for these days. If there are talks that don’t interest your team, take the opportunity to talk to speakers, create your own team activities or book a tee-time at the adjacent miniature golf course!
PyBay is the regional Python conference for the San Francisco Bay Area, bringing together Pythonistas from around the Bay Area and beyond. It is a volunteer-run organization dedicated to building a stronger Python community. PyBay offers deep-dive talks and networking opportunities that aim to enrich and empower the Python community. PyBay is part of BAPyA (Bay Area Python Association). BAPyA member organizations are the SF Python, Pyninsula, and BayPIGgies meetups.
Produced by NDV: https://youtube.com/channel/UCQ7dFBzZGlBvtU2hCecsBBg?sub_confirmation=1
Sun Oct 8 18:30:00 2023 at Bungalo East

Hadley Wickham @ Posit | Giving benefit to people using what you build | Data Science Hangout
We were recently joined by Hadley Wickham, Chief Scientist at Posit PBC. Listen in to hear our chat about building tools (like the tidyverse) to make data science easier, faster, and more fun.
36:57 - While I’m bought into developing open source packages to help deliver better processes, any advice to those of us doing that development in getting their company bought in?
You have to give some benefit to the people using (what you’re building)
You’ve got to either remove pain or add pleasure in some way because if you can’t do that and you’re not someone’s direct supervisor, it’s hard to get people to change.
The way I think about the tidyverse is, how do we give people some sort of quick wins so they can be motivated to do the things that are slower where they’re gonna have to learn some new ideas or some new tools. You kind of build up some equity with that person.
They build trust that you’ve helped them in the past and now they’re willing to invest a little bit more time before they see the payoff. But in the early days, it’s all about delivering payoffs as quickly as possible.
And I think if you’re doing, like, you know “my company’s first R package” - the easy pain points are: make themes for your company corporate style guide, make a ggplot2 theme, make an R Markdown, a Quarto theme. Make a Shiny theme that people can just use to get, you know, something that’s reasonably close to whatever your corporate style guide dictates.
That just feels like an easy win for people because it makes them look good inside the corporation and because you’ve put in all the hard work, it’s like three seconds for them to type the right function name to get the right theme.
I think the other bit is making it easier to get access to data. Set up some wrappers around DBI connections to the most important data sources. Provide some conventions around authentication so that stuff just works so that they’re not struggling with “What packages do I need to install? What’s the password? Where’s the path I need?” Just give them some, like, a list of the top ten most common data sources and people will love you by and large.
Follow-up question: Once you identify the things that you think would be useful for people - do you have a philosophy or a way in which you approach putting things together?
When you’re in an environment of scarcity when you’ve only got so much time that you can take out of your everyday job to invest in writing a package, it’s really tough to balance. Like, how do I add new stuff versus making sure the old stuff continues to work?
I think, again, some of it’s about building up trust. So, give people some wins so that when you inevitably break stuff, you’ve got some kind of cushion so people aren’t going to be really angry with you right away. They’re gonna be like, ok, well there’s a little bit of suffering now, but this person saved me so much time.
But yeah, it’s really hard. And particularly as you’re starting out, like, you’re going to make mistakes. That’s inevitable.
You’re going to do things that when you look back a year later, you’re like, why on earth did I do it that way? You’ll want to rip out the whole thing and ride it from scratch. And I think that if it feels horrible, you have to remember, that’s great. It means you’ve grown immensely as a programmer.
Certainly if you have my kind of mindset, you have to resist the temptation to rip things out and redo them as much as possible and just focus on making the next generation better rather than breaking what stuff people already have.
So I don’t have any great answers here, but I think you just have to think about those tensions of “how do I keep my forward velocity up while getting better as a programmer and evolving over time, but also thinking about how do you make the things you did a long time ago better?”
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
Come hangout with us!

How to keep data up-to-date with 6 pins workflows (aka avoid data-final.csv & data-final-final.csv)
Ever chase a CSV through a series of emails or had to decide between data-final.csv and data-final-final.csv?
Pins (both for R & Python) is a package that a bunch of people at the Data Science Hangout wish they knew about earlier. It allows you to publish and share objects (data, models, etc.) across projects and with your colleagues.
Pins package (R) - https://pins.rstudio.com/ Pins package (Python) - https://pypi.org/project/pins/
Timestamps: 1:15 - Posit Team Overview 2:18 - Introduction to pins (scenarios where you might want to consider using pins) 4:42 - Installing pins 6:24 - Workflow #1: Pinning an R Object to Posit Connect (from RStudio) 10:23 - Workflow #2: Pinning a Python Object to Posit Connect (from JupyterLab) 15:19 - Workflow #3: Reading in a Python pin in an R Session 16:07 - Workflow #4: Reading an R pin into a Python session 17:50 - Workflow #5: Pin versioning 21:50 - Workflow #6: Automating the pin writing process (through job scheduling on Connect)
Helpful resources: Q&A for this session on August 30th: https://youtube.com/live/8hc9ck1ZNLE Blog post on pinning an R dataset to Posit Connect: https://posit.co/blog/pins-posit-connect/
Many people find this useful for:
- Scheduling reports that need to be updated with the newest data each week
- Reusing data across multiple projects or content (Shiny app, Jupyter Notebook, Quarto doc, etc.)
We host these end-to-end workflow demos on the last Wednesday of every month. No registration is required to attend - simply add it to your calendar using this link: pos.it/team-demo
If you ever have ideas for topics or questions about them, please let us know in the comments
Joe Cheng @ Posit | You have to be able to reason about it | Data Science Hangout
We were recently joined by Joe Cheng, CTO at Posit PBC to chat about all things Shiny - a web framework for data scientists, career journeys, being vulnerable, and so much more.
At 39:53 - Joe shared what it means when he says, “you have to be able to reason about it”
When you write software or do an analysis or whatever, there’s a level of “I got it to work” and then there’s the level of “it works, and I can reason about it.”
Complex pieces of software are among the most complicated things that humankind has ever devised. What other human-made constructs can have hundreds of millions of pieces and yet they’re expected to all fit and work together so precisely that, if one token is off, rockets explode.
I don’t know what the limit is, but even the smartest humans can only hold some small number of variables and operations in their head at any one time.
When we work on software that’s non-trivial, we work on software that in its totality is more than any one human mind can hold at any one given time. The main challenge in software engineering is about, how do you take all this complexity and break it down into smaller pieces, each of which you can reason about, each of which you can hold in your head, each of which you can look at and say, “Yeah, I can fully ingest this entire function definition. I can read it, line by line, and prove to myself, this is definitely correct if the functions that it’s calling don’t have bugs and if it’s called in the right way.”
So with those caveats, if the things that this is calling are correct and are called correctly, then the result will be correct because the logic here is correct.
Software engineering, at all but the most beginner level, is a lot about this. How do you break up inherently complicated things that we’re trying to do into small pieces that are individually easy to reason about?
That’s half the battle right there.
The other half of the battle is - how do we combine them in ways that can be reliable and also easy to reason about?
So it’s these two pieces– small pieces reliably composed– if you can achieve that, that’s what I’m talking about.
That’s software that you can reason about.
This has implications for data science as well. With data science, you’re doing some kind of analysis on some data, and it starts out as, oh, I’m just doing these simple things. I’m doing this manipulation and then I’m doing this visualization.
But then as you get deeper and deeper into it, it grows and grows and grows. You’re at the point where you’re at the end and you don’t remember where these variables came from.
You don’t remember what’s the difference between this data frame and this data frame. And you go back and hopefully start breaking it into functions or somehow dividing it into smaller pieces that each focus on a thing. Then you join those pieces together in your overall script.
That’s this principle of small pieces individually able to be reasoned about. When you think about other rules that you might have heard about software engineering – we know when you’re writing functions, using global variables is bad. That’s another one of these things where that hurts your ability to hold the entire function in your head and to prove that it’ll work correctly. Because who knows who is setting that global variable to what value? You can’t prove to yourself this function is definitely correct.
I think if there’s anything that you’re working on that needs to be correct and you do care that the answer is right, I try never to stop when I have an answer but I can’t reason about the code.
I always try to go back and do the refactoring that’s necessary just so I can prove to myself that the answer is right.
The other big benefit to this is that those individual pieces– if it does turn out that there’s a mistake somewhere, you can individually debug, test, unit test those individual pieces.
When there are problems, you’ll much more easily be able to find them.
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
Come hangout with us!
The Data Science Hangout is a gathering place for the whole data science community - including current and future data science leaders - to chat about data science leadership and questions you’re all facing that happens every Thursday at 12 ET

How to standardize access & ensure consistent data in data products with FastAPI & Posit Team
Episode 4: Standardizing access & ensuring consistent data in data products (using FastAPI and Posit Team) Led by: Ryan Johnson, Data Science Advisor
Follow-up links:
- Posit Team: https://posit.co/products/enterprise/team/
- Talk to us directly: https://posit.co/schedule-a-call/?booking_calendar__c=RST_YT_Demo
- Follow-along blog post: https://posit.co/blog/fast-api-posit-team-demo/
- Source code for example: https://github.com/ryjohnson09/fastAPI_demo
- Posit Team demo resources: pos.it/demo-resources
- Q&A session link: https://youtube.com/live/nRGWO_9OovI
Timestamps: 1:22 - Overview of Posit Team (Posit Workbench, Posit Connect, Posit Package Manager) 2:46 - Overview of demo workflow 3:18 - Introduction to APIs - what are they and why would you use them? 6:39 - Introduction to the data used in the example 7:31 - Building the FastAPI (data gateway in this example) 10:00 - Launching a VS Code session in Posit Workbench 13:20 - Deploying FastAPI from Workbench to Posit Connect 13:58 - Deployed FastAPI in Swagger interface on Posit Connect 15:27 - Authentication of the API 16:14 - Querying the FastAPI from Jupyter Notebook 18:02 - Querying the FastAPI from a Shiny application
On the last Wednesday of every month, we host a Posit Team demo and Q&A session that is open to all. You can use this to add the event to your own calendar.
Who are these monthly demos for? Everyone is welcome to join us - regardless of industry, background, or experience!
We will discuss topics that will speak to:
- Data scientists and administrators new to Posit Team or are looking to grow their understanding of our toolchain,
- Teams searching for a new analytic platform built to support open-source data science,
- And, those that are just curious about Posit Team!
What you can expect from the monthly Posit Team demo:
During the session, we will walk through an end-to-end data science workflow and demo the core functionality of Posit Team while highlighting some of our latest features!
While each session’s content will vary slightly, here are a few core topics we will address each month:
- Open Source Analytics: The future of data science is open source. We’ll discuss methods for leveraging open-source tools and packages in a secure and scalable way!
- Deployment: How to share the amazing data science assets your Team has built, including web applications, machine learning models, APIs, and more!
- Data Access: Data comes in various forms and is stored in various ways. We’ll discuss best practices for accessing, reading, and writing data!
- Job Scheduling: Do you have recurring data science jobs? We’ll show you how to automate these processes using Posit Connect.
What is Posit Team?
Posit Team is a bundle of our popular professional software (Posit Workbench, Posit Connect, and Posit Package Manager) for developing data science projects, publishing data products, and managing packages.
Registration is not required. The event will be streamed through YouTube Premiere
Python support in Posit Connect
Posit Connect: Deploy everything you create in R & Python, including interactive applications (Shiny, Streamlit, Dash), documents, notebooks, and dashboards.
Learn more at https://posit.co/products/enterprise/connect/
Joe Cheng - Shiny: Data-centric web applications in Python | PyData Seattle 2023
Shiny is a web framework that is designed to let you create data dashboards, interactive visualizations, and workflow apps in pure Python or R. Shiny doesn’t require knowledge of HTML, CSS, and JavaScript, and lets you create data-centric applications in a fraction of the time and effort of traditional web stacks.
Of course, Python already has several popular and high-quality options for creating data-centric web applications. So it’s fair to ask what Shiny can offer the Python community.
In this talk, I will introduce Shiny for Python and answer that question. I’ll start with some basic demos that show how Shiny apps are constructed. Next, I’ll explain Transparent Reactive Programming (TRP), which is the animating concept behind Shiny, and the reason it occupies such an interesting place on the ease-vs-power tradeoff frontier. Finally, I’ll wrap up with additional demos that feature interesting functionality that is made trivial with TRP.
This talk should be interesting to anyone who uses Python to analyze or visualize data, and does not require experience with Shiny or any other web frameworks.
PyData is an educational program of NumFOCUS, a 501(c)3 non-profit organization in the United States. PyData provides a forum for the international community of users and developers of data analysis tools to share ideas and learn from each other. The global PyData network promotes discussion of best practices, new approaches, and emerging technologies for data management, processing, analytics, and visualization. PyData communities approach data science using many languages, including (but not limited to) Python, Julia, and R.
PyData conferences aim to be accessible and community-driven, with novice to advanced level presentations. PyData tutorials and talks bring attendees the latest project features along with cutting-edge use cases.
00:00 Welcome! 00:10 Help us add time stamps or captions to this video! See the description for details.
Want to help add timestamps to our YouTube videos to help with discoverability? Find out more here: https://github.com/numfocus/YouTubeVideoTimestamps

Natalia Andriychuk @ Pfizer | Hosting an internal data science hangout | Data Science Hangout
We were joined by Natalia Andriychuk, Statistical Data Scientist at Pfizer to discuss running an internal Data Science Hangout, building a supportive R community, discovering and learning new R packages/tools, and contributing to open-source initiatives.
Resources shared: Rachael’s guide for hosting your own data science hangout: https://docs.google.com/document/d/1uKgLRacVyUJA1dH4f675dKP1gnbaw--QztxwIIiLAAA/edit?usp=sharing RTP useR Group: https://www.meetup.com/rtp-r-user-group/ Data Science Hangout LinkedIn Group: https://www.linkedin.com/groups/12610075/ Shiny app submitted to FDA Pilot: https://www.r-consortium.org/blog/2022/12/07/update-successful-r-based-package-submission-with-shiny-component-to-fda
56:41 - What’s something that you’ve learned from that process of starting your own internal data science hangout?
Summarized from below:
- Start with a list of 10 or so people you’d like to invite
- Ask colleagues you have an established relationship with to be your first featured leaders
- Create a calendar of events that you can invite people to
- Use a form to collect the speaker’s bio, photo, etc.
- Schedule a 30 minute call with each featured leader the week before
- Try to plan out 3 sessions in advance
- Start inviting people :)
Natalia’s response:
It was a little bit overwhelming to think about how to start it but one thing you would need to start is a list of 10-15 people who you’d like to invite.
First I would create the calendar of events. At Pfizer, we do our data science hangouts every other week. I specifically put the dates and send people an invitation asking them to be a part of hangout.
I actually started the hangouts with Mike Smith and Douglas Robinson, who are part of our core team and are moving this initiative forward.
For your first few hangouts, it can be easier to have colleagues join us as your co-host that you already have an established rapport with.
I set up a Microsoft Form that I would send out: asking about: occupation, bio, certain questions they want me to ask, etc. I also ask them to provide their headshot. I think it makes the hangout invitation a little more colorful.
For the featured leaders, I schedule a 30 min call with each guest the week prior to go over any questions that person might have if they never attended before.
It helps me to know more about what they’re doing, especially if this is the first time I’m having a 1:1 with this colleague. I’m pretty new to the company as well, so we would chat a little bit about their interests - and then we have the hangout session. I’ll try to have at least 3 people booked in advance.
So find your featured leader, and then start inviting people.
Having an internal hangout has been very valuable because we are able to talk more about certain topics within our organization. For example, if I come to this hangout and we discuss certain topics, sometimes I might have to say, “Well, this is a great question, but I can’t talk about it because the information is proprietary.” With your internal hangout, you do not have to worry about that. This is how certain problems get solved faster. It also brings people together that wouldn’t work together necessarily. I think this is a very valuable part of it.
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
Posit Presents: A Game of Numbers with PING
The innovators at PING use Posit solutions such as Posit Connect to impact how golf data is analyzed and shared with golfers worldwide. High-level data, once only available to professional players, is now in the hands of everyday golfers thanks to public-facing apps like Ballnamic, which allows golfers to choose the golf ball that best suits their game.
Through the use of Shiny apps, Posit Workbench APIs, and Posit Connect, the team at PING can now innovate faster, accelerate product development, and advance the democratization of golf data.
Learn more at https://posit.co/about/customer-stories/ping/
How to deploy a Shiny application using clinical trial data to Posit Connect
Episode 2: Publishing a Shiny application in R to Posit Connect - Using Clinical Trial Data Led by: Ryan Johnson, Data Science Advisor
Follow-up links:
- Posit Team: https://posit.co/products/enterprise/team/
- Talk to us directly: https://posit.co/schedule-a-call/?booking_calendar__c=RST_YT_Demo
- Follow-along blog post: https://posit.co/blog/publishing-a-shiny-app-in-r-with-clinical-trial-data-to-posit-connect/
- Source code for example: https://github.com/ryjohnson09/adam_analysis
- Posit Team demo resources: pos.it/demo-resources
Timestamps: 1:35 - High-level overview of Posit Team 3:30 - Overview of clinical trial data used 5:31 - Opening up RStudio session on Posit Workbench 7:51 - Creating a new directory in RStudio 9:16 - Upload the ADaM dataset to Posit Workbench 10:17 - Using packages from a validated repository on Posit Package Manager 12:37 - Install packages for your Shiny application 13:49 - Pasting the code for the Shiny application (https://github.com/ryjohnson09/adam_analysis ) 16:16 - Publishing your Shiny application to Posit Connect 18:36 - Changing access controls to published Shiny application 20:25 - Using renv to record your R environment
On the last Wednesday of every month, we host a Posit Team demo and Q&A session that is open to all. You can use this to add the event to your own calendar.
Who are these monthly demos for? Everyone is welcome to join us - regardless of industry, background, or experience!
We will discuss topics that will speak to:
- Data scientists and administrators new to Posit Team or are looking to grow their understanding of our toolchain,
- Teams searching for a new analytic platform built to support open-source data science,
- And, those that are just curious about Posit Team!
What you can expect from the monthly Posit Team demo:
During the session, we will walk through an end-to-end data science workflow and demo the core functionality of Posit Team while highlighting some of our latest features!
While each session’s content will vary slightly, here are a few core topics we will address each month:
- Open Source Analytics: The future of data science is open source. We’ll discuss methods for leveraging open-source tools and packages in a secure and scalable way!
- Deployment: How to share the amazing data science assets your Team has built, including web applications, machine learning models, APIs, and more!
- Data Access: Data comes in various forms and is stored in various ways. We’ll discuss best practices for accessing, reading, and writing data!
- Job Scheduling: Do you have recurring data science jobs? We’ll show you how to automate these processes using Posit Connect.
What is Posit Team?
Posit Team is a bundle of our popular professional software (Posit Workbench, Posit Connect, and Posit Package Manager) for developing data science projects, publishing data products, and managing packages.
Registration is not required. The event will be streamed through YouTube Premiere
Why Shiny for Python? - Posit PBC
Learn how Shiny for Python’s design philosophy sets it apart from Streamlit, Dash, and traditional web development frameworks.
With Shiny for Python out of alpha as of April, many have wondered how it stacks up against other popular alternatives. In this video, Gordon Shotwell – developer advocate on the Shiny team at Posit – explores the design philosophy behind Shiny for Python and how it compares to other frameworks for developing data science web applications. If you are a data scientist working mostly in Python, we hope this motivates you to take a serious look at Shiny for Python.
Learn more on Posit blog, https://posit.co/blog/why-shiny-for-python/
00:00 What is Shiny for Python? 03:05 What is Reactivity? 04:19 How does Shiny compare to Streamlit? 05:14 What are the main differences between Streamlit and Shiny for Python? 07:05 Why should I prefer Shiny over Streamlit? 09:09 How does Shiny compare to Dash? 10:22 What is the difference between a stateless and a stateful application? 12:19 Why consider Shiny for Python over Dash? 13:37 Shiny for Python’s Design Philosophy

[79] Create a Python Web App Using Shiny (Gordon Shotwell)
Join our Meetup group for more events! https://www.meetup.com/data-umbrella
Resources#
- website for presentation: https://shiny.rstudio.com/py/
- https://shiny.rstudio.com/py/docs/reactive-mutable.html
- https://www.shinyapps.io/
- https://huggingface.co/new-space
- https://shiny.rstudio.com/py/docs/shinylive.html
- https://shiny.rstudio.com/py/api/reactive.poll.html#shiny.reactive.poll
About the Event#
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack. If you want to develop a python web application you usually need to choose between simple, limited frameworks like Streamlit and more extensible frameworks like Dash. This can cause a lot of problems if you get started with a simple framework but then discover that you need to refactor your application to accommodate the next user request. Shiny for Python differs from other frameworks because it has tremendous range. You can build a small application in a few minutes with the confidence that the framework can handle much more complex problems. In this workshop we will go through the core limitations of Streamlit, and build a Shiny app which avoids those limitations.
Timestamps#
00:00 Welcome
00:23 Reshama introduces Data Umbrella
03:45 Reshama introduces Gordon Shotwell
04:21 Gordon Shotwell begins
04:29 The motivation to develop Shiny for Python
06:05 The main strength of both the R and Python library
06:56 What Gordon Shotwell will build during his presentation
07:25 Shiny documentation website
08:01 QuickStart for R users showing differences between the R and Python libraries
08:44 All the function reference in Shiny
09:08 Demo starts
09:50 Virtual environment
10:36 How to start shiny app in the terminal
11:15 Install shiny extension in VS Code which makes it easier to preview the web app
11:36 How the output function works on the preview app to execute
12:22 Penguin dataset description for the demo
12:45 Modules/submodules shiny app is built on
13:04 How to add a sidebar layout (sidebar, panel sidebar and panel main)
13:43 How to read in the data and the output functions
14:31 How to define some server logic
14:59 The conventional shiny rule
16:30 Use of slide input
17:50 Where the reactive magic comes in
19:30 Important note on what can really slow down your shiny app
20:14 Importance of Python data copy method when using external dataset
21:01 Important note to avoid dependency inside the render function
21:30 Q&A
29:35 Adding a plot to the output: The UI sides
30:12 Adding a plot to the output: The render sides
32:16 The core principle of reactivity in which you do not want to repeat yourself
33:26 Reactivate calculation concept which allows you to store intermediate values in one place
37:24 Q&A
38:53 Reactive calculations and rendering functions
39:30 Side-effects or user effect. Another class of interactions
41:18 How to tell reactive effect what it should respond to or what events to watch before executing
41:53 How to update the data filter in the side-effect function
42:22 The second important pattern for shiny
43:00 One of the important things to pay attention to once you start learning/using shiny
44:45 Series of Q&A until the end of the video. Some response includes live demo
01:01:03 Gordon Shotwell ends his presentation
01:01:17 Reshama closes the session
About the Speaker#
Gordon Shotwell is a Software Engineer at Posit. He’s been using Shiny to solve business problems for the past ten years.
- LinkedIn: https://www.linkedin.com/in/gshotwell/
Key Links#
- Transcript: https://github.com/data-umbrella/event-transcripts/blob/main/2023/78-gordon-shiny.md
- Meetup Event: https://www.meetup.com/data-umbrella/events/292848290/
- Video: https://youtu.be/pXidQWYY14w
#python #deployment
posit::conf Workshop:Leveraging & Contributing to the Pharmaverse for Clinical Trial Reporting in R
Register now: http://pos.it/conf Instructors: Pawel Rucki, Christina Fillmore, Thomas Neitmann Workshop Duration: 1-Day Workshop
You should take this workshop if you are interested in the future of clinical trial reporting, and would like to join this shift to between company collaboration.
In this workshop we will introduce the pharmaverse, a collection of open source R packages that provide the next generation backbone for clinical trial reporting. As of March 2023, 123 people from more than 10 companies have contributed to the pharmaverse packages - and this workshop is about how you can both leverage their work to date and get involved to help evolve this important collection of efforts.
We will create ADaM datasets, prepare tables and figures as well as interactive shiny apps. This course will also give a grounding in how to navigate pharmaverse R packages, and their repositories, and understand how you can contribute
posit::conf(2023) Workshop: Getting Started with Shiny for R
Register now: http://pos.it/conf Instructor: Colin Rundel Workshop Duration: 1-Day Workshop
This course is for you if you: • are comfortable with the basics of R, such as writing functions, indexing vectors and lists, debugging simple errors, and working with data structures like data frames • are interested in creating interactive web applications • have no or minimal experience with Shiny for R
Shiny is an R package that makes it easy to build interactive web apps straight from R. This workshop will start at the beginning: designing and creating user interfaces, learning and mastering the reactive model that connects your R code to the interface, and deploying apps publicly and privately. We will wrap up with some intermediate-level tools: debugging and modularizing your apps and implementing dynamic user interfaces. In the end, you’ll be a confident Shiny user, able to design interactive apps to achieve your purpose and produce a polished and professional implementation. If you have a bit of experience, you’ll see things in a new way. If you don’t, we’ll get you started on the right footing
posit::conf(2023) Workshop: Introduction to Quarto with R + RStudio
Register now: http://pos.it/conf Instructor: Andrew Bray Workshop Duration: 1-Day Workshop
This course is for you if you: • have a basic knowledge of how to use the RStudio IDE • have some familiarity with markdown, or • are excited to author flexible single documents like technical reports and slide presentations
Seasoned users of R Markdown will get more out of the Advanced Quarto with R and RStudio: Projects, Websites, Books, and More workshop, which is focused on projects, a distinct strength of Quarto in authoring work that spans multiple documents.
This workshop will prepare you to author a rich array of documents in Quarto, the next generation of R Markdown. Quarto is an open-source scientific and technical publishing system that offers multilingual programming language support to create dynamic and static documents, books, presentations, blogs, and other online resources.
The focus for this workshop will be on single documents. You will learn to create static documents, to add interactivity to them with Shiny and htmlwidgets, or steer them in the direction of sophisticated scientific documents. In the afternoon you’ll take the same authoring approaches to create slide presentations in various formats such as reveal.js, beamer, and pptx
posit::conf(2023) Workshop: Shiny Dashboards
Register now: http://pos.it/conf Instructor: Colin Rundel Workshop Duration: 1 Day Workshop
This course is for you if you: • have some experience with Shiny and want to improve your skills, • are interested in building dashboards for reporting, and • want to learn about styling and theming your dashboard.
In this workshop we will explore all of the interesting and variety of ways you can use Shiny: from adding dynamic elements to your existing RMarkdown / Quarto documents to building and deploying dashboards for reporting, and customizing the appearance and themeing of the app (and your outplots like plots and tables). This workshop assumes that you have a basic familiarity with Shiny (e.g. the ability to write simple apps and basics of reactivity)
posit::conf(2023) Workshop: Shiny in Production: Tools and Techniques
Register now: http://pos.it/conf Instructors: Eric Nantz and Mike Thomas Workshop Duration: 1-Day Workshop
This course is for you if you: • had a Shiny application work just fine on your machine, but encounters critical issues after deployment • are eager to prospectively apply techniques before deployment to plan for the unexpected • want to know the benefits and trade-offs between various ways of hosting Shiny applications
Shiny brings tremendous possibilities to share innovative data science workflows with others inside an intuitive web interface. Many in the Shiny community have shared effective development techniques for building a robust application. Even with the best intentions during application development, a myriad of issues can arise once it leaves the confines of your machine. In this one-day workshop, you will implement core techniques to account for common scenarios that arise once your application is used in production, such as accounting for thousands of simultaneous users, how effective profiling can address performance bottlenecks, and ensuring your application is doing as little as possible to ensure a smooth and responsive experience.
This course assumes intermediate knowledge of building Shiny applications in R and prior experience deploying an application to a platform such as the shinyapps.io service or products like Posit Connect
posit::conf(2023) Workshop: Web Design for Shiny Developers
Register now: http://pos.it/conf Instructors: Maya Gans and David Granjon
This course is for you if: • you are an R developer with basic Shiny knowledge • you want to quickly test new business ideas • you want to increase the reach of your apps and websites
Website design and development is one of the most critical factors contributing to whether the user has a good or poor experience while browsing your site, directly influencing the overall impression of your brand. Besides, bad design decisions can significantly impact app performances. By exposing you to common governing rules of design, this course will walk you through the entire design process, from ideation to execution. These rules will help you to become a better collaborator to design teams, and enable you to create beautiful front-end experiences for Shiny
Deploying a Python application with Posit Connect
Posit Connect is our flagship publishing platform for data products built in R and Python.
Learn more: https://posit.co/products/enterprise/connect/
Book a demo of Connect: https://posit.co/schedule-a-call/?booking_calendar__c=RSC_YT_Demo
With Connect, you can deploy, manage, and share your R and Python content, including Shiny applications, Dash, Streamlit, and Voilà applications, R Markdown reports, Jupyter Notebooks, Quarto documents, dashboards, APIs (Plumber, Flask), and more.
Give stakeholders authenticated access to the content they need, and schedule reports to update automatically
Deploying a Shiny for Python application with Posit Connect
Last week’s blog post announced that Shiny for Python is now generally available and Python programmers can feel confident deploying Shiny for Python apps in production.
This video will serve as a guide to deploying your applications so that users can interact with your apps and leverage their robust functionality using Posit Team.
Follow along blog post: https://posit.co/blog/deploying-a-shiny-for-python-application-with-posit-connect/
0:25 - Step 1: Load packages (in VS Code on Posit Workbench) Step 2: Create the app (example app here: https://shinylive.io/py/examples/#app-with-plot ) 1:02 - Step 3: Run the app locally in VS Code 1:36 - Step 4: Deploy to Posit Connect
Learn more We’d love to have you join us at one of our monthly Posit Team Demos where we walk through a different end-to-end data science workflow each month. They are on the last Wednesday of every month at 11 am ET on YouTube. You can add the event to your calendar here: pos.it/team-demo
What is Posit Team? Posit Team is the bundle of our most popular products including Workbench (for development work), Connect (for hosting and sharing your data products), and Package Manager (for managing your R and Python packages). Together, this bundle delivers an end-to-end toolchain for data science teams committed to R and Python, improving every step of a data scientist’s workflow, from developing insights to deploying data products, to managing environments.
If you have any questions and would like to talk with our team, you can schedule a time to chat: https://posit.co/schedule-a-call/
Natalie O’Shea @ BetterUp | Focus on relationships first | Data Science Hangout
We were recently joined by Natalie O’Shea, Analytics Consultant at BetterUp.
In this hangout we discussed developing communities of belonging in data science, building a business case and so much more!
(43:02) On building procedures and standards for your data science team:
Focus on relationships first.
Inevitably, what you define as the best practice in the first case, you’re not going to be doing that best practice in 6 months.
Not always - there are certain things that will stay, and teaching your team to use Git branches and merge into main and those things are going to be pretty stable.
But there are other more thorny questions that are really hard to build best practices around.
For example, in our team, we support a lot of different organizations with different data analyses. Do we put everything into one big GitHub repo? Do we make a repo for every organization for every project?
It’s always in development and it’s constantly iterating, so being comfortable with that is a key part of developing best practices, because it’s never going to be just like a set it and forget it.
It’s going to be constantly in building relationships and those best practices together.
We run an R users office hours every two weeks and I often don’t have an agenda or anything. It’s a great way to just first and foremost build community. But that’s also where people come to say, “I’m really struggling with this; how do you approach this?”
And now we’re starting to build those best practices as we build out the whole Posit onboarding infrastructure. Our hope is that we have internal packages. I think building that into vignettes, like Confluence documents (I did see that Quarto is supporting Confluence documentation, which is awesome)
Be comfortable with iterating and make sure that you’re always communicating with each other and building strong relationships.
(52:06) On building a business case for data science tools:
We did a survey of people in terms of how much time are people spending building a single slide deck?
Where are all the places that you have to go? On average, you spend, say, 10 hours building this slide deck.
Then hey, “if all of these data points were populated automatically for you, how much time would be remaining?”
We used that and factored in people’s salaries and all of these things, and then came up with a rough estimate of the time-cost savings that building out this app would have.
The app I’ve built now, I don’t think anyone would have been able to see that if I just started with that.
Building MVP– minimally viable products - like little pieces of the pie is important. I started off doing parameterized reporting with R Markdown, and people were like, “That’s amazing!”
But the problem is that people aren’t going to have the kind of flexibility on the end user side. So I’m like, “this is great - this is how we actually populate slide decks with data insights, but if you want the flexibility to change the branding, alter the wording, all of this stuff like, this is our next product.”
Then you just kind of work your way up - where now I have a production-grade Shiny app that does all of this for you.
Build in little chunks that get you there to your end result.
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
Leveraging Pins with Posit Connect
Leveraging Pins with Posit Connect Ryan Johnson, Data Science Advisor at Posit
You might find this helpful if:
- You have reports that need to be regularly updated so you want to schedule them to run with the newest data each week
- You reuse data across multiple projects or pieces of content (Shiny app, Jupyter Notebooks, Quarto doc, etc.)
- You’ve chased a CSV through a series of email exchanges, or had to decide between data-final.csv and data-final-final.csv
- You haven’t heard of pins yet!
For some workflows, a CSV file is the best choice for storing data. However, for the majority of cases, the data would do better if stored somewhere centrally accessible by multiple people where the latest version is always available. This is particularly true if that data is reused across multiple projects or pieces of content. With the pins package it’s easier than ever to have repeatable data.
Timestamps: 0:17 - install the pins package and load into your environment 0:32 - register a board 0:59 - connecting to your Posit Connect instance from Posit Workbench or RStudio IDE 1:43 - define the Connect instance as your board 2:01 - pin the mtcars dataset to your Connect instance 2:38 - a pinned dataset on Posit Connect 2:50 - reading a pinned dataset
Additional resources:
- Example workflow that involves Quarto, pins, plumber API, vetiver and shiny: machine-learning-pipeline-with-vetiver-and-quarto/
- Connect User Guide - Pins for R: https://docs.posit.co/connect/user/pins/
- Connect User Guide - Pins for Python: https://docs.posit.co/connect/user/python-pins/
- 9 ways to use Posit Connect that you shouldn’t miss: https://posit.co/blog/9-ways-posit-connect/
Learn more: If you haven’t had a chance to try Posit Connect before or you’d like to learn how your team can better leverage pins, schedule a demo with our team to learn more! https://posit.co/schedule-a-call/?booking_calendar__c=RSC_Demo
On the last Wednesday of every month, we host a Posit Team demo and Q&A session that is open to all. You can use this to add the event to your own calendar: pos.it/team-demo
Dan Negrey @ MarketBridge | Creating a framework for consistent measurement | Data Science Hangout
We were joined by Dan Negrey, Director, Analytics at MarketBridge.
At (15:11) we asked Dan about a tip for impacting the business with data science.
So I think every business is going to have KPIs (Key Performance Indicators), and there’s going to be other metrics besides KPIs, things that lead into that. As crazy as it sounds, some organizations struggle to measure those and to do so in a consistent and repeatable way.
Maybe they measure something that just comes from one person sitting at a desk, and they’ve done it for six years, and they leave. All of a sudden, who knows how they do that?
Creating a framework for consistent measurement is huge for an organization.
The measurement is consistent and the outcomes are measured consistently. Then taking action to improve those outcomes can be thought of as more reliable because the measurement process is consistent.
So that would be one thing for sure. Another – on that note, is decision making. Every company makes decisions. A lot of us are here because we like to do this kind of work, but most of our companies exist because they like to make money, and they like to grow. So we find a balance between doing what we do to help our company to achieve their goals.
Find ways to help your company optimize cost, reduce waste and increase growth.
All of that is through measuring and looking at decisions that have been made in the past and thinking about how they could have been made differently. This could be through historical analysis or building models to help make those decisions more effectively.
That’s a huge win for any organization.
There was also lot of love for repeatable data with the pins package at this Data Science Hangout.
Dan Negrey shared: “Pins has been a huge package that we’ve started using a year or so ago…if you’ve never used pins, it’s definitely worth checking out.”
Helpful resources on pins: Pins for R: http://pins.rstudio.com/ Pins for Python: https://lnkd.in/ghmxiEHV Great repo that uses pins: https://lnkd.in/ezvBkav Workflow that involves Quarto, pins, plumber API, vetiver and shiny: https://lnkd.in/e6gnMXfD Link to Ryan’s video & stepping stones: https://lnkd.in/erR-Mjr9
Other resources: MarketBridge career page (with open data science roles): https://marketbridge.applytojob.com/
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
David Granjon & Bo Wang @ Novartis | User-friendly, self-serve tools | Data Science Hangout
We were recently joined by David Granjon and Bo Wang, Senior Data Science Experts at Novartis during the Appsilon Shiny Conference.
We learned how their team designs production ready apps for clinical trials, from wireframing activities to automated deployments.
How do you get feedback from users when you don’t hear from them directly?
To know whether the applications are properly used, they use a tracker within Posit Connect. This is basically an application David developed using the Connect API.
With the Connect API, he can see “who is accessing the application, which gives you some insights like which team is using it and how to target support.” If you develop an application for several teams, you can have some insight of which team is using the application the most. If you see one team is using the application 20 times more than another one, maybe you want to invest more people to provide two paths here.
He supplemented this information by developing an R package, shinyHeatmap, to record in-app usage. “Each click is recorded to identify dead zones to refactor design,” he says. “If you have an app no one visits, maybe it’s poorly designed.”
For more information on that Connect API: https://pkgs.rstudio.com/connectapi/
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
Art Steinmetz, (formerly) @ Oppenheimer Funds | Communicating with Execs | Data Science Hangout
We were joined by Art Steinmetz, private investor and former Chairman, CEO and President of OppenheimerFunds.
During our conversation, Art shared his perspective on open source data science and how these tools helped contribute to the company’s bottom line. He also shared a few tips on communicating with executives - from an executive’s point of view, included below:
Two key points (20:31)
- Data visualization is the most powerful way to get a narrative across quickly.
- Don’t use a PowerPoint presentation when you should be using a memo that people can read in a narrative
On point one:
Spend time learning good visualization techniques. Even if you’re a math whiz and a coding whiz, understand good visualization. It’s an aesthetic issue. It’s an art.
There’s lots of blogs, lots of literature that talk about good visualization and bad visualization.
For example: Don’t use a linear scale when you should be using a log scale, simple stuff like that because I’ve seen so many bad charts. At best, you’re going to lose your audience quickly. At worst, your audience will draw the wrong conclusions and make bad decisions.
One point two:
The physicist Richard Feynman was on the Challenger disaster panel. One of the big takeaways in that inquiry was shortcomings of PowerPoint for technical work..
So the other point I would make is, don’t use a PowerPoint presentation when you should be using a memo that people can read in a narrative.
All of you are familiar with the problem of seeing a PowerPoint slide. You’ve got landscape orientation and you’ve got this incredible amount of 12 point text filling up a slide.
Sometimes you’re subjected to sitting in a conference room, having that thing with 2 minutes worth of text on a slide that you’re supposed to process. Of course, nobody looks at that at all as they’re listening to, hopefully, what the speaker is saying.
It’s a complete waste of everyone’s time to create and display this giant PowerPoint, this massive quantity of text on a PowerPoint slide.
So don’t use PowerPoint when a pre-read memo would do the job.
And yeah, some people aren’t going to read the memo. But treat your audience with respect anyway and tell them you’re going to assume people have read the materials.
Then if you’re going to have a PowerPoint or a slide deck: have three, four bullet points at most on a slide with compelling visualizations that tell your story.
That’s going to earn you far more respect than showing that you’ve crammed your PowerPoint with a million words.
Example of Shiny generating discussions and helping investors: (37:30)
So for instance, at Invesco right now– one of their folks has created a Shiny app that if one of our customers (our brokers) shares their customer’s (end investor) portfolios with us - we can run an analysis on that to help them optimize their tax situation– when they should take capital gains, when they should take capital losses, what they should sell to realize a loss or a gain.
Then if they want to keep the portfolio complexion the same, what should they then buy on the other side to keep the portfolio complexion– the overall risk or aggressiveness - the same.
He built a Shiny app that does that.
All of the Invesco salespeople can look at all of the advisors that they serve (in that Shiny app) and that generates discussions.
Salespeople love to have opportunities to call their customers up and have an interesting discussion. To say, “look, here’s an issue you have that I think I can help you solve.”
Then if the discussion goes further, with one click, they generate a detailed PDF report on exactly what the gains and losses are across the portfolio. And the salespeople just love that tool.
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
December 2022 Webinar: The R Workflow – Dr Ryan Johnson from Posit
The R Workflow Wednesday 21st December.
Ryan Johnson, Posit discusses the following (using a Shiny app as the end product):
- R Markdown Job Scheduling
- Pins - https://pins.rstudio.com/
- Plumber APIs
This session is a show-and-tell getting you familiar with various open source tools (Pins, Plumber) and how they can be used in combination with pro tools (Posit Connect) to improve workflows.
Resource links can be found on the NHS-R Community website: https://nhsrcommunity.com/events/december-2022-webinar-the-r-workflow-dr-ryan-johnson-from-posit/
Data Science Hangout | Javier Orraca-Deatcu, Centene | Excel to data science to lead ML engineer
We were joined by Javier Orraca-Deatcu, Lead Machine Learning Engineer at Centene.
Among many topics covered, Javier shared how his background in finance and consulting led to his interest in data science to automate some of his work - and how he helped get other data scientists together in his organization.
(26:31) How did you organize and recruit people for the data science community group at Centene?
So I sort of piggybacked from a general data science community chat that we had at the company. There were several hundred people on this of varying backgrounds and expertise levels so there was a lot of conversation happening. There was already a Python group that was meeting– I think every other month.
So three weeks after I started, I got really excited about the possibility of potentially creating something similar for R users.
-
It started by just trying to figure out who owns that already existing data science chat and see if they could help support the idea of creating an R user group, something to meet once a month or once every two months. At larger companies especially, getting that type of top-level executive stamp of approval and support can go a long way, especially if that individual is part of the already existing IT or data science function.
-
At the time, I created a Blogdown site. For those of you who are familiar with R Markdown, Blogdown is a package that allows you to create static websites and blogs with R Markdown. Now with Quarto you can do the same thing and create websites. I love the syntax of Quarto.
-
We had partnerships with Posit, so we were able to get some people to come in and do workshops as well.
-
We also had reticulate sessions, where it was a co-branded Python & R workshop where we were looking at ways in which we can actually communicate between teams of different languages a lot easier. I had a great experience with it. Everyone was so collaborative and it was such a great way to see the excitement around what you could do with both R and Python.
I think what started as 13 users the first month, jumped to about 100 - 125 monthly users on this monthly meetup.
…And on the journey to machine learning engineer, what was the hardest part? (49:10):
Because of SQL, I had a really good understanding of at least how tabular data could be joined and the different transformations that could be done to these data objects.
I think I would have really struggled without that basic understanding. But having said that, I think the part where I really struggled at first was function writing. Function writing was not intuitive to me.
Basic function writing was but in general, I found it to be very complicated and it took a solid three to six months of practice to feel actually comfortable with it.
Even when I started building Shiny apps– basic Shiny is quite easy but large functions underpin the entirety of a Shiny app. Everything you do within Shiny is effectively writing functions.
The process of learning Shiny and becoming more comfortable with Shiny was very difficult and something that just took a lot of repetitions but it all sort of played together.
While people may think of Shiny more as a frontend type of system, it did make me a much better programmer in the way I thought about actual functions and function writing.
Other things that I found hard, looking back, I’m sort of embarrassed to say this, was reproducibility of machine learning – being able to reproduce a code set and get the exact same predictions every time.
I wasn’t quite sure why this wasn’t working or how to create these fixed views, setting a seed or whatever you need to do to ensure that someone else downstream could replicate your study or analysis and get the exact same findings themselves.
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
Meetup | The Looma Project | Why I Stopped Worrying and Learned to Love the API
Why I stopped worrying and learned to love the API Led by Davis DeRodes, Director of Data Science at The Looma Project
Link to slides: https://github.com/RStudioEnterpriseMeetup/Presentations/blob/main/Looma_LearnedToLoveAPIs_PositMeetup.pdf
Source code: https://github.com/DavisDeRodesLooma/positconnect-demo-api
Helpful resources: ⬢ Brief intro to APIs blog post: https://rigor.com/blog/what-is-an-api-a-brief-intro/ ⬢ Isabella Velasquez, Intro to APIs blog post: https://posit.co/blog/creating-apis-for-data-science-with-plumber/ ⬢ Plumber package: https://www.rplumber.io/ ⬢ Public APIs: https://github.com/public-apis/public-apis ⬢ Aviation API that Davis used: https://docs.aviationapi.com/# ⬢ Posit Connect: https://posit.co/products/enterprise/connect/
APIs are the ticket to getting easy access to new data sources and creating automated ways to share data externally. Even the most stats-oriented data scientist with just R and Posit Connect can do some super useful and cool things with APIs. This talk will go over some best practices and interesting use cases for querying, posting to, and creating APIs using R packages, Shiny, Plumber and the Posit Connect ecosystem.
Speaker bio: Davis DeRodes is the Director of Data Science at the retail media start-up Looma whose work focuses on the intersection of human-centric content and sales. Davis’ focuses are full stack data science, causal inference, data quality, explainability and R. Davis is an ATL-ien who currently resides in Durham, NC and is an alumni of Columbia’s Data Science Institute.
Please note this event will be live streamed through YouTube Live and the recording will be available at the same link immediately following the event.
During the event you can ask questions through this link as well: pos.it/meetup-questions
Full playlist of meetup recordings: https://www.youtube.com/playlist?list=PL9HYL-VRX0oRKK9ByULWulAOO5jN70eXv
All upcoming events: pos.it/community-events
Data Science Hangout | Marcos Huerta, CarMax | Translating Academia Experience to Data Science
We were joined at the Data Science Hangout by Marcos Huerta, Manager of Data Science at CarMax.
A few snippets from the conversation with Marcos at 36:40: What was the most effective asset that you had that led to your transition to your current position?
⬢ A willingness to just try and teach myself new things. In graduate school, I’d done a ton of data analysis, but it was all in an obsolete language that wasn’t going to help me. I had to teach myself Python and R. I think the openness to trying that was key. ⬢ I gave myself a project to figure out how to use Python and understand classes and object-oriented programming, which I did not understand 10 years ago. ⬢ I do think that my work experience – because I had done a lot of non-technical stuff – helped as well. I had this record of professional accomplishment that maybe wasn’t technical but people knew I could think and I had this track record.
How do you do the mental folding to translate the many years you spent getting a PhD in astrophysics to a different position?
⬢ The first step for me was not to data science, it was to the science policy world. I think I always had this interest in politics and the government. That first transition came because of these talks at Rice that happened once a month about non-academic careers. Someone who had done science policy and worked at the National Academies of Science and as a Congressional Science Fellow came and gave a talk about what she had done with her physics or astrophysics degree. That really fascinated me. ⬢ From science policy, data science was more practical. There’s a ton of jobs at the entry level for science policy but as you start to work your way up I was running out of things to do. There become fewer and fewer job openings. ⬢ Turns out when I started itching that part of my brain again, I really enjoyed it. I enjoyed the Data Incubator. I enjoyed trying to do the swirl lessons in R, building some Shiny apps, etc. Once I got back into doing technical stuff, I found it was still very satisfying.
*non-verbatim transcription, summary of a few insights
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
Data Science Hangout | Jessie Pluto, Comcast | Taking Initiative with an Idea
We were joined at the Data Science Hangout by Jessie Pluto, Senior Manager of EBI Strategic Analytics at Comcast.
Question: As an analyst when you’re working with business partners, you’re just trying to deliver value and insight in a speedy way. So I’m trying to convince analysts to maybe take a bit of a step back and learn and implement something new that can help both them and their business partners in the future.
Do you have any advice for how I, as a person trying to get these things up and running, can help to create more of that culture of let’s go ahead and take a step back and do something now that will help me in the long term versus just trying to check boxes as quickly as possible?
Answer:
It is a constant battle. I feel like it is the place where it requires some strategy because you can’t do it all the time.
You have to really recognize when is the right time to pounce on an idea?
You have to have the ideas first. Sometimes you have to sit on them for a little while and then you have to just be able to recognize, I think, that opportunity.
It’s OK to make mistakes. Sometimes you push something too soon and it might hurt a little bit, but don’t let that kill your motivation.
I hate PowerPoint. I hate copy and paste so much. I might have said copy and paste 80 times already. But I hate it.
For a long time, some of the reports that I was doing– just to give you an example, Paramount is, like, 30 individual networks - and so sometimes we’re repeating views for 30 networks times five different views at the bare minimum.
It’s too many slides, too much copy and paste.
I had made a push for, oh, we should convert this to R Markdown or Shiny or something.
And same thing– it’s like, well, our stakeholders don’t know how to use that and it’s a server. It’s very private and customer information.
And COVID hits, and sports viewing kind of just went away. We had so many questions coming in about, what do we do? What’s going on? What are customers doing? What are they watching?
All sports just kind of went completely off the air immediately.
And I realized, this is my moment.
I created (we were in Hadoop at the time, we’ve since moved but we were in Hadoop at the time) some shell scripts, bash scripts to run at certain days and scheduled it and created this pipeline that I had been messing around with for a while, created an automated R Markdown report.
And basically, I was able to give the information that the business was asking for very, very quickly.
And they learned how to use it because they really wanted it. And it would have been too much for my very small team to be reporting every single week on what is happening this week.
It’d be a huge load on our team to do that every single week from scratch.
So basically investing– and I will admit that I spent a little bit of night time on this project - but it was a passion project where I was like, all right, this is my moment to prove that this is a feasible solution, and show that– because we had so many questions coming in.
This was one of a huge backlog of questions. I was able to show that, OK, this is done. We’ve automated it.
We can use this for other things, for other questions that business owners want every single week and still have time leftover for those ad-hoc questions. Those one-off things that are really important, we’ll have time for that, too, and not miss the report.
I think there’s just this strategy that you have to really always be thinking about of when is the right moment to maybe not necessarily ask for approval– to just do something and show the value.
Hopefully, you have leaders who will support you in those decisions
If it’s the right one and the right moment you can push some of the different tools that were not really supported in the beginning of my career here.
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.posit.co LinkedIn: https://www.linkedin.com/company/posit-software Twitter: https://twitter.com/posit_pbc
To join future data science hangouts, add to your calendar here: pos.it/dsh (All are welcome! We’d love to see you!)
What is Posit Connect | Deploy All of Your R & Python Content
Posit Connect is our flagship professional product for data scientists that want to share their data products with other.
Learn more at https://posit.co/products/enterprise/connect/
Whether you’re building a Shiny application, a Dash application, a Quarto report, or dashboard, you can host it on Posit Connect.
Posit Connect supports all the languages that data scientists love, as well as the development environments they love to build in
Barret Schloerke | {shinytest2}: Unit testing for Shiny applications | RStudio (2022)
Manually testing Shiny applications is often laborious, inconsistent, and doesn’t scale well. Whether you are developing new features, fixing bug(s), or simply upgrading dependencies, it is critical to know when regressions are introduced. The new {shinytest2} R package provides a toolkit for unit testing Shiny apps and seamlessly integrates with {testthat}. Under the hood, it uses the new {chromote} R package to render apps in a headless Chrome browser with features such as live preview and built in debugging tools. In this talk, you’ll learn how to test Shiny apps by simply recording your actions as code and extending it to test more particular aspects of your app, resulting in fewer bugs and more confidence in future development.
Talk materials are available at https://bit.ly/shinytest2-conf22
Session: I like big apps: Shiny apps that scale

Jacqueline Nolis | I made an entire e-commerce platform on Shiny | RStudio (2022)
E-commerce requires passing data between many components like managing a shopping cart, taking payment, fulfilling orders, and sending emails. I’ve successfully created a full e-commerce platform entirely in R for a quirky side project. The R package ggirl lets users order ggplot2 plots as postcards and more via R functions. Those R functions pass data to a separate Shiny app, which then passes data other services like Stripe payment APIs and printing APIs. In this talk I will walk through how to use packages like httr, callr, and brochure to have your Shiny apps call external services and do many tasks in parallel. You’ll leave the talk with more ways to use Shiny than dashboards plus the knowledge to monetize your existing dashboards!
Talk materials are available at https://link.jnolis.com/rstudio22-slides
Session: Unexpected uses of R
Lightning Talk | Andreas Hofheinz | leafdown: Interactive Multi-layer maps in Shiny apps
Interactive maps are indispensable tools for exploring spatial datasets because of their real-world context and intuitiveness. For a comprehensive understanding of the data, it is often necessary to switch between several map layers (such as states and counties) and to analyze multiple variables simultaneously - both of which are challenging. In this talk, I will show how we can overcome these challenges using the leafdown package, which allows us to create multi-layer maps embedded in Shiny apps.
Talk materials are available at https://github.com/rstudio/rstudio-conf/blob/master/2022/andreashofheinz/leafdown_presentation%20-%20Andreas%20H.pdf
Session: Lightning Talks
Lightning Talks | Shelmith Nyagathiri Kariuki | Leveraging CSS to Make Shiny Mobile-Responsive
As shiny developers, we spend a lot of time working on the server side, and less time on the UI/UX part. According to the Engineering Production-Grade Shiny Apps book by the ThinkR team, no matter how complex and innovative your back- end is, your application is bad if your user experience (UX) is bad. People spend more time on the internet from their mobile phones, so it is important to ensure that our shiny apps are mobile responsive. At the beginning of this year, I was tasked with creating a mobile version of an already made shiny app in the shortest time possible. In this talk, as much as this work is tied to an NDA, I will highlight a few css tricks that I used to achieve this.
Talk materials are available at https://docs.google.com/presentation/d/1HKcMBQiFo6oC5Cj3OFf6wlGuSGQxADyxJMG_74cNwaU/edit#slide=id.g116406a1a2a_2_135
Session: Lightning Talks
Nicola Rennie | Say Hello! to Multilingual Shiny Apps | Posit (2022)
Multilingual shiny apps are not straightforward to build. Translation affects almost every single aspect of an app. Although there are a few packages designed to automate the translation process, they tend to only work for the most widely spoken languages.
Using a bilingual English-Welsh shiny app we developed to present public health data as a case study, this talk will discuss:
• how we built a multilingual shiny app; • how translation affected design decisions; • how we overcame the main issues faced; • and most importantly, what we’d do differently next time.
By the end of this talk, you will have a better understanding of how to translate your Shiny app to help you to share your app with a much wider audience.
Talk materials are available at https://nrennie.rbind.io/talks/2022-july-rstudio-conf/
Session: Lightning Talks
Peter Gandenberger | Dashboard-Builder: Building Shiny Apps without writing any code | RStudio
I would like to create (more) Shiny Dashboards, but…
• I don’t know how • I can’t write R code • it’s too complex • I don’t have enough time (even though I know how to build them)
If this sounds familiar, this talk is for you. We present our latest project, the dashboard-builder that allows users to create full Shiny dashboards without writing a single line of code. You can find a demonstration video at https://youtu.be/oOKJLMAkEiw
This drag&drop dashboard-builder allows you to interactively create native Shiny dashboards. Lowering the entry barrier for new users starting their data-science journey. They can begin to visualize their datasets without prior knowledge of R. More experienced users can use the dashboard-builder to quickly sketch out their ideas and export them to act as a foundation for more complex dashboards.
Session: Pour some glitter on it: Polishing the design of your shiny apps
Tanya Cashorali | Cross-Industry Anomaly Detection Solutions with R and Shiny | RStudio (2022)
This session highlights two anomaly detection use cases in production: identification of problematic life sciences manufacturing units and identification of significant newsworthy events. With both solutions, Shiny is integrated with live data to provide early detection for proactive intervention. Shiny’s intuitive user interface also allows for interaction with the data behind anomalies to uncover potential causes and paths to action or resolution.
The session also briefly highlights a rapid prototyping development approach with Shiny. This technique allows for collaborative refinement of the underlying anomaly detection model in R, quickly incorporating user feedback, where end users may not have in-depth machine learning knowledge.
Talk materials are available at https://docs.google.com/presentation/d/e/2PACX-1vTE7Ee2QIUGDUmfEKmF8l_WTQPVgnGaLJLGuuMquio57bXojeeb5YYSjuzO-xzYxMHxuX2cm_QNC2y-/pub?start=false&loop=false&delayms=60000&slide=id.gbb68c6dbe2_1_44
Session: Working with people is hard
Open Source Environmental Monitoring with Shiny! | Wayne Jones, Shell
What are the critical factors for successful uptake of an application?
On Tuesday, October 18th at 12 ET, we were joined by Wayne Jones, Principal Data Scientist at Shell to learn about the Shiny application that has become a globally adopted industry standard tool.
GWSDAT (www.gwsdat.net ) is an open source, user-friendly, Shiny application for the visualisation and interpretation of groundwater monitoring data. In this meetup, Wayne will tell the story behind GWSDAT since its first release 8 years ago and will explain the critical factors for successful uptake in the environmental monitoring industry.
Resources shared: ⬢ gwsdat.net ⬢ Github: https://github.com/WayneGitShell/GWSDAT/tree/master/inst/extdata ⬢ GWSDAT LinkedIn Group: https://www.linkedin.com/groups/8715423/ ⬢ Shinyapps.io version of the app: https://stats-glasgow.shinyapps.io/GWSDAT/ ⬢ RStudio Connect: https://www.rstudio.com/products/connect/ ⬢ CRAN Task View for Reproducible Research: https://cran.r-project.org/web/views/ReproducibleResearch.html
Model Monitors and Alerting at Scale with RStudio Connect | Adam Austin, Socure
Deploying a predictive model signals the end of one long journey and the start of another. Monitoring model performance is crucial for ensuring the long-term quality of your work.
A monitor should provide insights into model inputs and output scores, and should send alerts when something goes wrong. However, as the number of deployed models increases or your customer base grows, the maintenance of your monitor portfolio becomes daunting. In this talk we’ll explore a solution for orchestrating monitor deployment and maintenance using RStudio Connect. I will show how applications of R Markdown, Shiny, and Plumber can unburden data scientists of time-consuming report upkeep by empowering end-users to deploy, update, and own their monitors.
Timestamps: 2:01 - Start of presentation 3:43 - About Socure 6:12 - Model performance matters, deployment isn’t the end of the story 7:26 - What is a monitor? 8:55 - What is an alert? 11:00 - Monitor example 18:09 - Firing an alert from RStudio Connect 19:00 - Why monitor from RStudio Connect? 24:33 - How monitoring drives success at Socure 30:00 - Git-backed deployment in RStudio Connect 36:00 - Shiny app that their account managers see 46:00 - Architecture of a monitoring system 56:00 - Connect hot tip System-wide packages 57:00 - Why did we try Connect for monitoring 59:02 - Why do we keep using it for that :)
Resources shared: Blastula package: https://github.com/rstudio/blastula connectapi package: https://github.com/rstudio/connectapi rsconnect package: https://rstudio.github.io/rsconnect/ Intro to APIs blog post: https://www.rstudio.com/blog/creating-apis-for-data-science-with-plumber/
Speaker Bio: Adam Austin is a senior data scientist and RStudio administrator at Socure, a leading provider of identity verification and fraud prevention services. His work focuses on data science enablement through tools, automation, and reporting
Getting Started with Shiny for Python - in the browser! || Winston Chang || Posit
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack. You can try out Shiny for Python without installing a single thing… All in the browser.
Learn more about Shiny for Python: https://shiny.rstudio.com/py/ Check out our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Winston Chang (@winston_chang)

Multiple Inputs in Shiny for Python || Winston Chang || RStudio
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack. You can try out Shiny for Python without installing a single thing… All in the browser.
Learn more about Shiny for Python: https://shiny.rstudio.com/py/ Check out our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Winston Chang (@winston_chang)

Plot Outputs in Shiny for Python || Winston Chang || RStudio
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack. You can try out Shiny for Python without installing a single thing… All in the browser.
Learn more about Shiny for Python: https://shiny.rstudio.com/py/ Check out our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Winston Chang (@winston_chang)

Data Science Hangout | JD Long, RenaissanceRe | Empathy When Integrating with Other Tools
We were recently joined by JD Long, VP - Risk Management at RenaissanceRe. JD is a financial risk manager, analytical polyglot, and purveyor of colorful metaphors.
As people have recently asked more about building communities, I’ll share this snippet here from 45:29 in his hangout. 🤝
I started the Chicago useR Group 13-14 years ago and the design pattern for that group was, I think, a really good one:
1️⃣ We had about four or five people who were going to get together, drink beer, and talk about R anyway, and what we effectively said was, “let’s get in the types of presentations the four or five of us would like to hear, and then invite other people.”
And if they don’t show up, we don’t really care because we were going to drink beer and listen to this anyway because we’re interested in this.
And that community grew wildly with me running it like as a benevolent dictator just getting the presentations I wanted to hear.
2️⃣ And then one of the things I observed is we were getting lots of new users of R. So I decided once a quarter we would have a beginner’s meetup–
And at the beginner’s night, we would make sure we had two things:
-
Topics appropriate for beginners: like grouping and summing, and getting environments set up or updating packages. All the normal stuff people have friction with. Focus on that.
-
Then we would make sure we had–I would call it now like a learner salon or something. We had a handful of people who were more experienced who said, I will sit at a table and anybody that brings their computer with questions, I will answer.
We would have really senior people with lots of experience there doing Q&A, and people could bring their own problems, literally eat pizza, drink beer, and look at code. Those beginner nights were super helpful.
So anyway, when people ask about building communities, I recommend those two things.
Resources shared in the chat: ► Esquisse package: https://github.com/dreamRs/esquisse ► Shinyuieditor: https://rstudio.github.io/shinyuieditor/ ► Shiny Developer Series episode 7 (talking about esquisse): https://shinydevseries.com/interview/ep007/ ► Another “bridge” tool for business analytics is radiant: https://radiant-rstats.github.io/docs/ ► Norm Conf: https://normconf.com/
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu
Follow Us Here: Website: https://www.rstudio.com LinkedIn: https://www.linkedin.com/company/rstudio Twitter: https://twitter.com/rstudio
To join future data science hangouts, add to your calendar here: rstd.io/datasciencehangout (All are welcome! We’d love to see you!)
Data Science Hangout | Tiger Tang, CARFAX | Quantifying the Hours Saved
We were joined by Tiger Tang, Manager, Data Science at CARFAX. Tiger (Chongtai) Tang is dedicated to building the Data Science team specializing in NLP and forecasting. He is a big fan of Shiny and he has a passion for the Data Science community.
We recommend checking out Tiger’s 2022 RStudio Conference Talk as well, “Saving 1000 hours with RStudio:” https://www.rstudio.com/conference/2022/talks/saving-1000-hours-rstudio/
How do you sell RStudio in your workplace? ️ Build a work automation process
How do you build an automation process? 1️⃣ Look at a typical report & identify all the manual steps 2️⃣ These manual steps can usually be tied into 3 portions: getting the data, wrangling/analysis/visualization, and communication 3️⃣ You can replace these portions with R code, with the help of various R packages
What are the three types of automation? 1️⃣ Attended automation - reports that still need human involvement: use R code in RStudio 2️⃣ Unattended automation - don’t need human input, but need to happen at the same time: use RStudio + RStudio Connect 3️⃣ Hybrid - combination of the previous 2, human input will come from the stakeholder & they can kick off processes to get answers: use Shiny + RStudio Connect
Ok, time to sell it to decision makers
What are the benefits? Reproducibility Less human error Cost benefit (hours saved)
Why weren’t they interested when you shared these?
The benefits listed above are great for selling to an R user who is concerned about the day to day workflow, but not decision makers who are more concerned about ROI.
Update your strategy in highlighting the benefits: Cost benefit (hours saved) - If we go through with this we might be able to save 1,000 hours per year Less human error Reproducibility (as a free add-on travel insurance)
It’s still the same benefits, just in a slightly different order. Start with one that does not require too much context to understand.
What do you need to do the actual automation?
Understand the current process and document it. This includes understanding: ⬢ the business reasons ⬢ the occurrence (daily, weekly, ad-hoc) ⬢ how you will communicate ⬢ how often to update the process so it will not become obsolete ⬢ you are not always the original report owner, so you need to know when to stop and call for additional help.
From this you will understand the complexity, impact, and stability & can help you decide which project to start with as well.
Top 3 recommendations for automation: 1️⃣ Always start with components: For ex, if you have a process that involves: SQL, Excel, and Outlook - code them individually because the same team will need this again and you can reuse the code.
2️⃣ Test, Test, Test: Capture all the scenarios possible.
3️⃣ Be practical and stay on target: Not everything needs to be fully automated. It’s not about building something cool with R but building something impactful with R.
Structure for you:
1️⃣ Identify tasks in your workplace 2️⃣ Build a proposal with the benefits that matter to decision makers in your workplace 3️⃣ Build a requirement doc that identifies the right task to start with 4️⃣ Code by component and do plenty of tasks, while staying on target 5️⃣ Share the progress from time to time
Where to find more?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu ► Data Science Hangout site: rstudio.com/data-science-hangout ► Add the Data Science Hangout to your calendar: rstd.io/datasciencehangout
Follow Us Here: Website: https://www.rstudio.com LinkedIn:https://www.linkedin.com/company/rstudio Twitter: https://twitter.com/rstudio
RStudio Sports Analytics Meetup: NFL Big Data Bowl 2022 Winners discuss the Math behind the Path
RStudio Sports Analytics Meetup: NFL Big Data Bowl 2022 Winners discuss the Math behind the Path
Led by Robyn Ritchie, Brendan Kumagai, Ryker Moreau, Elijah Cavan
Helpful Links: Kaggle: https://www.kaggle.com/code/robynritchie/punt-returns-using-the-math-to-find-the-path Github: https://github.com/ritchi12/punt_returns_using_the_math_to_find_the_path Optimal Path Generator Shiny app: https://rstd.io/meetup-shiny-app Related blog post, Tips for Getting Started With the NFL Big Data Bowl: https://www.rstudio.com/blog/tips-for-getting-started-with-the-nfl-big-data-bowl/
Timestamps: 3:02 - Start of presentation 4:07 - Meet the team 5:25 - Quick overview of 2022 NFL Big Data Bowl subject 7:00 - Finding the best path to the end zone 9:12 - Penalized Expected Arrival Time (PEAT) 13:10 - Take the PEAT to find the safest route (A-star algorithm) 15:11 - Comparing the optimal path to the observed path 18:30 - Key R functions for this project 23:37 - Optimal Path Generator Shiny app demo 33:38 - Comparing optimal paths (risk/reward) 35:44 - “Aiming for the side won’t provide” 37:54 - The precision of a good decision 38:38 - How do you have a good submission for the big data bowl 40:40 - Elements of a good big data bowl submission
Talk Abstract: Simon Fraser University has been a force in the NFL’s Big Data Bowl for years. Focusing on punt returns, this team used tracking data to develop an algorithm to find the optimal path for a successful return, quantify player formations on the field and predict yards remaining on any frame of the return. This year’s winning team will discuss their entry, the R code behind the optimal path and advice for this year’s entrants.
Speaker Bio: Robyn, Brendan, Ryker and Elijah are all graduate students in statistics at Simon Fraser University in Vancouver, Canada. They each have a passion for sports analytics and enjoy applying their stats knowledge to the game.
Q&A Timestamps: *rough estimate :) 15:00 - Do you think being in a general Statistics graduate program was beneficial to your work? As opposed to more specific like “Data Science” or “Sports Analytics”? 19:00 - Did you calculate PEAT at just a single point in time (at catch), or at multiple points during the return? 30:00 - Is it possible to share the code for future reference? 43:00 - What were the biggest challenges when going through the data? 45:00 - In terms of all your data inputs, do you see this extending to performance data like expected speed, fatigue etc., perhaps from practice etc.? 46:00 - At any point during the project, did you feel like you had hit a cul-de-sac or impasse? 48:20 - How do you get started working with player tracking data? 56:00 - Sounds like you were running the code locally? Were there any specific roadblocks to offloading that to the cloud, or was that just not really necessary?
Upcoming community events: rstd.io/community-events Feedback & Suggestions: rstd.io/meetup-feedback
A Beginner’s Guide to Shiny for Python || Winston Chang || Posit
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack.
Learn more about Shiny for Python: https://shiny.rstudio.com/py/ Check out our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Winston Chang (@winston_chang) Producer: Jesse Mostipak (@kierisi) Editing and Motion Design: Tony Pelleriti (@TonyPelleriti)

An Interview with Winston Chang: Building a Wordle App with Shiny for Python || RStudio
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack.
Learn more about Shiny for Python: https://shiny.rstudio.com/py/ Check out our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Winston Chang (@winston_chang) + Jesse Mostipak (@kierisi) Producer: Jesse Mostipak (@kierisi) Editing and Motion Design: Tony Pelleriti (@TonyPelleriti)

Data visualization and plotting with Shiny for Python || Carson Sievert || RStudio
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack.
Learn more about Shiny for Python: https://shiny.rstudio.com/py/ Check out our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Carson Sievert (@cpsievert) Producer: Jesse Mostipak (@kierisi) Editing and Motion Design: Tony Pelleriti (@TonyPelleriti)

Getting Started with {shinytest2} Part 2 || Exporting values || RStudio
00:00 Introduction 00:29 Exporting reactives 03:28 Using exportTestValues()
Part 1 - Getting started: https://youtu.be/SS1Na3c8lhk Part 3 - Using shiny.testmode: https://youtu.be/xDxa_mDwN04
Manually testing Shiny applications is often laborious, inconsistent, and doesn’t scale well. Whether you are developing new features, fixing bug(s), or simply upgrading dependencies on a serious app where mistakes have real consequences, it is critical to know when regressions are introduced. shinytest2 provides a streamlined toolkit for unit testing Shiny applications and seamlessly integrates with the popular testthat framework for unit testing R code.
shinytest2 uses chromote to render applications in a headless Chrome browser. chromote allows for a live preview, better debugging tools, and/or simply using modern JavaScript/CSS.
By simply recording your actions as code and extending them to test the more particular aspects of your application, it will result in fewer bugs and more confidence in future Shiny application development.
Read up on shinytest2 here: https://rstudio.github.io/shinytest2/
Learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Barret Schloerke (@schloerke) Motion design and editing: Jesse Mostipak (@kierisi)
Theme song: Brad PKL by Blue Dot Sessions (https://app.sessions.blue/browse/track/113507 )

Getting Started with {shinytest2} Part 3 || Using shiny.testmode in {shinytest2} || RStudio
00:00 Introduction 00:15 Testing production apps
Part 1 - Getting started: https://youtu.be/SS1Na3c8lhk Part 2 - Exporting values: https://youtu.be/7KLv6HdIxvU
Manually testing Shiny applications is often laborious, inconsistent, and doesn’t scale well. Whether you are developing new features, fixing bug(s), or simply upgrading dependencies on a serious app where mistakes have real consequences, it is critical to know when regressions are introduced. shinytest2 provides a streamlined toolkit for unit testing Shiny applications and seamlessly integrates with the popular testthat framework for unit testing R code.
shinytest2 uses chromote to render applications in a headless Chrome browser. chromote allows for a live preview, better debugging tools, and/or simply using modern JavaScript/CSS.
By simply recording your actions as code and extending them to test the more particular aspects of your application, it will result in fewer bugs and more confidence in future Shiny application development.
Read up on shinytest2 here: https://rstudio.github.io/shinytest2/
Learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Barret Schloerke (@schloerke) Motion design and editing: Jesse Mostipak (@kierisi)
Theme song: Brad PKL by Blue Dot Sessions (https://app.sessions.blue/browse/track/113507 )

Getting Started with {shinytest2} Part I || Example + basics || RStudio
00:00 Introduction 00:48 Overview of the demo Shiny app 03:00 Running record_test() 04:44 Results from record_test() 07:18 A note on .png files created during testing 08:52 Debugging with shinytest2 09:32 Using app$view() to open a visual representation of a headless browser
Part 2 - Exporting values: https://youtu.be/7KLv6HdIxvU Part 3 - Using shiny.testmode: https://youtu.be/xDxa_mDwN04
Manually testing Shiny applications is often laborious, inconsistent, and doesn’t scale well. Whether you are developing new features, fixing bug(s), or simply upgrading dependencies on a serious app where mistakes have real consequences, it is critical to know when regressions are introduced. shinytest2 provides a streamlined toolkit for unit testing Shiny applications and seamlessly integrates with the popular testthat framework for unit testing R code.
shinytest2 uses chromote to render applications in a headless Chrome browser. chromote allows for a live preview, better debugging tools, and/or simply using modern JavaScript/CSS.
By simply recording your actions as code and extending them to test the more particular aspects of your application, it will result in fewer bugs and more confidence in future Shiny application development.
Read up on shinytest2 here: https://rstudio.github.io/shinytest2/
Learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Barret Schloerke (@schloerke) Motion design and editing: Jesse Mostipak (@kierisi)
Theme song: Brad PKL by Blue Dot Sessions (https://app.sessions.blue/browse/track/113507 )

Hello, World! A Quick Tour of Shiny for Python || Carson Sievert || Posit
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack.
Learn more about Shiny for Python: https://shiny.rstudio.com/py/ Check out our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Carson Sievert (@cpsievert) Producer: Jesse Mostipak (@kierisi) Editing and Motion Design: Tony Pelleriti (@TonyPelleriti)

Hey Shiny Team, what are some of your biggest learnings from 2022? || Shiny Developers || RStudio
BIG THINGS happened on the Shiny team in 2022! Our team built out a new Shiny UI Editor, Shiny for Python, and Shiny for Python in the browser using WebAssembly. So we asked some of our Developers what their biggest learnings have been from building these products!
Learn more about Shiny for Python: https://shiny.rstudio.com/py/
Content: Winston Chang (@winston_chang), Carson Sievert (@cpsievert), Nick Strayer (), Michael Chow (@chowthedog) Producer: Jesse Mostipak (@kierisi) Video editing + motion design: Tony Pelleriti (@TonyPelleriti)





Shiny Programming Practices || Joe Cheng || Posit
Have you ever wanted to sit down and talk with Joe Cheng, the creator of Shiny and CTO of Posit (RStudio) and ask him how he approaches programming? Look no further - we’ve got that conversation for you right here!
Shiny makes it easy to build interactive web apps straight from R or Python. You can host standalone apps on a webpage or embed them in Markdown-style documents or build dashboards. You can also extend your Shiny apps with CSS themes, htmlwidgets, and JavaScript actions.
Learn more about Shiny: https://shiny.rstudio.com/ Check out Shiny for Python: https://shiny.rstudio.com/py/ Explore our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Joe Cheng (@jcheng) Producer: Jesse Mostipak (@kierisi) Editing and Motion Design: Tony Pelleriti (@TonyPelleriti)

Shiny UI Editor Feature Tour || Nick Strayer || Posit (RStudio)
The Shiny UI Editor is a dynamic drag-and drop interface to help you design beautiful Shiny apps. The Shiny UI Editor is a visual tool for building the UI portion of a Shiny application that generates clean and human-readable code.
The goal of the Shiny UI Editor is to allow people to build the broad-level UI for their Shiny app without writing code. The editor is intended for those who may not be comfortable with the HTML-style code of Shiny’s UI functions or who simply don’t want to fiddle with sizes to get things laid out correctly.
Learn more about the Shiny UI Editor here: https://rstudio.github.io/shinyuieditor/ And read up on GridLayout here: https://rstudio.github.io/gridlayout
Content: Nick Strayer (@NicholasStrayer) Producer: Jesse Mostipak (@kierisi) Editing and Motion Design: Tony Pelleriti (@TonyPelleriti)

Shiny UI Editor Project Walkthrough || Nick Strayer || RStudio
The Shiny UI Editor is a dynamic drag-and drop interface to help you design beautiful Shiny apps. The Shiny UI Editor is a visual tool for building the UI portion of a Shiny application that generates clean and human-readable code.
The goal of the Shiny UI Editor is to allow people to build the broad-level UI for their Shiny app without writing code. The editor is intended for those who may not be comfortable with the HTML-style code of Shiny’s UI functions or who simply don’t want to fiddle with sizes to get things laid out correctly.
Learn more about the Shiny UI Editor here: https://rstudio.github.io/shinyuieditor/ And read up on GridLayout here: https://rstudio.github.io/gridlayout
Content: Nick Strayer (@NicholasStrayer) Producer: Jesse Mostipak (@kierisi) Editing and Motion Design: Tony Pelleriti (@TonyPelleriti)

Shinywidgets - An Overview || Carson Sievert || RStudio
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack.
Shinywidgets lets you use ipywidgets in Shiny for Python applications. We called it ipyShiny during development, but we’re launching as Shinywidgets! Learn more about how to integrate them into your Shiny for Python apps. .
Learn more about Shiny for Python: https://shiny.rstudio.com/py/ Check out our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Carson Sievert (@cpsievert) Producer: Jesse Mostipak (@kierisi) Editing and Motion Design: Tony Pelleriti (@TonyPelleriti)

Wrangling data for a Shiny app in Python || Michael Chow || Posit
Shiny makes it easy to build interactive web applications with the power of Python’s data and scientific stack.
Learn more about Shiny for Python: https://shiny.rstudio.com/py/ Check out our interactive Shiny for Python examples: https://shinylive.io/py/examples/
Content: Michael Chow (@chowthedog) Producer: Jesse Mostipak (@kierisi) Editing and Motion Design: Tony Pelleriti (@TonyPelleriti)

Data Science Hangout | Alec Campanini, Walmart | Using Shiny to make business decisions
We were joined by Alec Campanini, Senior Manager, Merchandising Operations Omnichannel Business Analytics at Walmart. Alec loves to standardize and scale data in a targeted and meaningful way without sacrificing speed of development.
(5:12) - Alec shared an awesome example of the way their team is using Shiny at Walmart:
- Their team’s main scope is “rest of market” - trying to figure out every item that exists in the rest of the market, no matter if it’s in the store, online, through TikTok trends, social listening, whatever it may be.
- We have a lot of market share data, sales information, pricing over time, and bestseller trends that are popping up. We do a lot to find out where merchants would be lacking inside of a brand.
- Today I own a Shiny app (which has been alive for about a year and a half now) that is pushed to all merchandising. We have about 12,000 users on it today across all of the merchants and merch-ops.
What does it do?
-
Starting off it was insights on 28-30 different retailers in the e-commerce space. With so many items, there are a lot of different contracted data sets coming in. The biggest thing is normalizing all of those to the Walmart hierarchy. We need to have some way to tell a merchant that something from the rest of the market on a different website makes sense for them to look at.
-
Our Shiny app and workflow allows us to quickly identify what percentage we have of a certain brand and drill down into things like:
- What are the top items being sold?
- Do I want stable items or trending items? Do I want something that I’ve never seen before?
- Do I already have the item but need to increase what I’m giving the customer?
- Do we need to lower the price?
- Is it shipping too slow?
- Maybe Amazon has 10 images for the item and we only have 5?
An example of this Shiny app helping make business decisions:
- We released a line of new golf tech products for Father’s Day that came from the Shiny app
- We had a lot of the sports & fitness merchants find out that we sell a lot more golf technology rather than golf balls online. These are merchants that used to be in the store, but they got into the e-commerce space as a new merchant.
- They think the trends are going to be the same in-store as online, but they found a different trend inside of our app and were able to launch a whole slew of things this past week, which was really cool.
Other timestamps:
- When making the case for code-first data visualizations over BI tools (25:58)
Packages shared in the chat:
- bs4Dash: https://lnkd.in/gPUBDW72
- Rhandsontable: https://lnkd.in/gtYedxzY
- Bigrquery: https://lnkd.in/gtPM6Pn2"
Where to find more?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu ► Data Science Hangout site: rstudio.com/data-science-hangout ► Add the Data Science Hangout to your calendar: rstd.io/datasciencehangout
Follow Us Here: Website: https://www.rstudio.com LinkedIn:https://www.linkedin.com/company/rstudio Twitter: https://twitter.com/rstudio
Data Science Hangout | David Meza, NASA | People analytics for getting to the moon
We were joined by David Meza, AIML R&D Lead, People Analytics at NASA.
We had a great chat about people analytics for getting to the moon and beyond
Here are a few snippets:
What areas do you focus on in people analytics? (5:19)
A lot of our focus is around natural language processing, graph algorithms, and graph databases. We create a knowledge graph & apply various algorithms to be able to deliver answers.
An example of this is around our skills and competency capabilities. Trying to get back to the moon and onto Mars, we need to identify the various skills and competencies that we have in our individuals. From a human perspective, that’s very labor intensive. We’re trying to use some of the concepts I’ve mentioned to be able to extract NASA-specific competencies from individuals or people applying for jobs to see how they align to our workforce.
We’re starting to develop pipelines and methods to say: • We’ve got gaps here • Or here’s your career path • Here’s your training path • Here are the number of individuals we have that meet 70% of our skills and we need to upscale them to the next 30%
People analytics can be broken into so many different areas: • Attrition • Time to hire • Recruitment capabilities • Learning/ development
With regards to skills for people analytics: • NLP is a good tool to have because a lot of the data we have is unstructured. We need to be able to pull from that. • Understanding various classification models, how you’re grouping individuals & understanding various metrics within the HR area.
How much of people analytics is data science and predictive modelings versus reports and business intelligence?
Right now everybody does a little bit of everything
When I first got here, they were primarily focused on reporting and creating some type of visualization
Over the last couple of years, we’ve been trying to break into a group that focus on reports in general and a group looking more at the data analytics & modeling, creating the various algorithms that we can utilize for extracting skills and competencies or looking at our attrition models, for example.
Ideally, I would break it down to 5-6 visualizers, 10 data scientists and 4-5 data engineers or architects.
Resources shared:
Joe shard an example of Shiny at NASA: https://lnkd.in/gRJjFX6B David shared Predictive HR Analytics: https://lnkd.in/gPPjjzPZ David shared Inclusalytics: https://lnkd.in/g48tdrMu Rachael shared the rstudio::conf workshop for admins: https://lnkd.in/eB9FZt-c Rachael shared the RStudio workshop for people analytics: https://lnkd.in/e4DdhFAV George shared an article on writing a resume for AI: https://lnkd.in/g3cF_vtD
Where to find more?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu ► Data Science Hangout site: rstudio.com/data-science-hangout ► Add the Data Science Hangout to your calendar: rstd.io/datasciencehangout
Follow Us Here: Website: https://www.rstudio.com LinkedIn:https://www.linkedin.com/company/rstudio Twitter: https://twitter.com/rstudio
Data Science Hangout | Tanya Cashorali, TCB Analytics | Saving millions with a Shiny app
We were joined by Tanya Cashorali, CEO & Founder at TCB Analytics. Tanya is passionate about playing with data but using it for good causes whenever possible. Energized by working with ambitious people on difficult problems. I’m a huge advocate of rapid prototyping data products using Shiny and can talk about it for hours!
What was your biggest win for a client? (23:30)
We’ve had a lot of wins moving someone from Excel into a reproducible R pipeline and then displaying all the results in Shiny.
One example is a pharmaceutical company that was analyzing clinical trial data super manually, generating reports in Excel and putting together a PowerPoint weekly.
It probably took about 20 hours of multiple people’s time.
We made a Shiny app and that turned this into pretty much no time at all. They sent us the data and it was updated monthly.
They were able to then take that Shiny app to senior management and clinical trial managers to make decisions based on data very quickly, helping them understand which clinical trial sites were having problems.
Another similar one at another pharmaceutical company was focused on drug manufacturing, where there are a lot of things that can go wrong.
When there’s a contaminant in a batch, it can basically cause millions and millions of dollars in company loss because they have to shut down manufacturing completely until they identify the problem.
This involves going up and downstream of these different drug products to identify the issues. It was taking a team of 5-10 people sometimes 6 months to identify the problem. Meaning for 6 months, you’re not able to manufacture drugs.
We built a Shiny app that built out a D3 directed graph. This enabled one person to go and type in the drug compound and see everything up and downstream. It took that one person now maybe a week or several days to identify the problem now.
That’s an instance where you could say this is literally millions of savings from a Shiny app.
To me that just shows the power of R and the ability to really streamline manual processes.
Resources shared: Rachael shared Libby’s officerDemo: https://github.com/LibbyHeeren/OfficerDemo Daren shared the xaringan package for producing super impressive presentationshttps://github.com/yihui/xaringan Tanya shared Jesse’s Twitter as a great resource for learning Shiny: https://twitter.com/kierisi Javier shared xaringanthemer: https://pkg.garrickadenbuie.com/xaringanthemer/ and xaringanExtra: https://github.com/gadenbuie/xaringanExtra Tanya shared Hugo’s podcast: https://hugobowne.github.io/ Tanya’s Twitter: https://twitter.com/tanyacash21 Tanya’s presentation on “How to Hire and Test for Data Science Skills” https://tcbanalytics.com/2017/11/07/tanya-cashorali-presents-strata-2017-nyc-hire-test-data-skills/
Where to find more?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu ► Data Science Hangout site: rstudio.com/data-science-hangout ► Add the Data Science Hangout to your calendar: rstd.io/datasciencehangout
Follow Us Here: Website: https://www.rstudio.com LinkedIn:https://www.linkedin.com/company/rstudio Twitter: https://twitter.com/rstudio
Programming Games with Shiny || Roll the Dice: with Quosures! || RStudio
00:00 Introduction
03:44 The pain of copy + paste
07:28 Going on a helper function adventure!
18:09 Ready for rlang
28:17 !! + enquo()
37:57 Benefits of the rlang approach
38:46 Embracing the embrace operator
41:33 Visualizing what’s happening using reactlog
You’ve most likely used Shiny to build a web app that displays data, but you can also use Shiny to build games! In this video series, Jesse and Barret pair program simply games in Shiny as a way to uncover and explore new features.
Read up on the embrace operator here: https://rlang.r-lib.org/reference/embrace-operator.html
Learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Barret Schloerke (@schloerke) and Jesse Mostipak (@kierisi) Animation, motion design, and editing: Jesse Mostipak (@kierisi)
Theme song: Hakodate Line by Blue Dot Sessions (https://app.sessions.blue/browse/track/111291" )

Tom Schenk & Bejan Sadeghian | Making Microservices Part of Your Data Team
Making microservices a part of your data science team Led by Tom Schenk & Bejan Sadeghian at KPMG
Timestamps: 1:09 - Start of presentation 4:00 - Challenges and trade-offs of a growing team (how I stopped worrying about hiring) 8:14 - What are microservices? (help separate out the different layers of an app) 9:36 - Hosting other web technologies on RStudio Connect (ex. React) 12:25 - Simple Hello World example of microservices 16:00 - Reason to separate out logging 17:15 - How to design & plan microservices (moving from a monolithic Shiny app) 17:51 - Challenges to getting started with microservices 21:02 - How do you address getting started? (domain driven design) 23:17 - Applying cloud design patterns 25:37 - Separation of development duties 27:22 - Addressing any risks that come with microservices 29:17 - Considering costs and benefits 30:11 - Microservices in action: demo of KODA app (making changes to the organization) 36:21 - PowerBI interacting with the same microservice from Connect 38:30 - Growing teams face a trade-off of complexity and simplicity (KPMG’s path)
Questions: 43:28 - Can you use a Shiny front end together with a microservice backend? 44:09 - Do you hire separately for back-end data science development and front-end Shiny UI development? 46:00 - Are all microservices managed by a centralized unit? 47:02 - Who can access RStudio Connect in your organization? 48:29 - When you decided to go the microservice route, what was your first step? 50:47 - What roles are you hiring for? 52:20 - Might you suggest some web service servers that host R-based or Python services? 53:33 - Are apps build with microservices as responsive as those that adopt a monolithic architecture or do microservices introduce a lag? 55:09 - Can you show the back-end response data through developer tools? 56:45 - Can you speak more about the logging microservice? Did you build it ground-up or did you adopt an off-the-shelf package or app?
Abstract: Whether or not you’ve heard of microservices architecture, you may want to know how microservices can help you scale R-based applications across an enterprise.
As data science teams—and their applications—grow larger, teams can experience growing pains that make applications complex, difficult to customize, or challenging to collaborate across large teams. This meetup will discuss what microservices are, how it compares to Shiny, how it can help a data science team, and how you can deploy microservices using your RStudio Connect environment.
This meetup will help you understand several key items: • The basic concept of microservices and benefits, such as making your code modular, domain-driven design, and reducing the complexity of application development, and facilitate larger development teams. • How to use the Plumber package to deploy APIs as part of a microservices architecture. • How you can work with front-end development teams using their preferred framework (e.g., React, Angular, Vue) using RStudio Connect.
We will show a widely-used application built using a microservices architecture and hosted in RStudio, including before-and-after comparisons to show the strengths of a microservices framework leads to a better-looking and better-functioning application. Our team will discuss the journey and growth to arrive at the new approach to make development easier within a quickly growing group.
Speaker Bios: Tom Schenk Jr. is a researcher and author on applying technology, data, and analytics to make better decisions. He’s currently a managing director at KPMG. He has previously served as Chief Data Officer for City of Chicago.
Bejan Sadeghian is a director of analytics at KPMG and leads data science development, which spans from advanced analytics to machine learning engineering.
For upcoming events: rstd.io/community-events-calendar Info on RStudio Connect: https://www.rstudio.com/products/connect/ To chat with RStudio: rstd.io/chat-with-rstudio
Data Science Hangout | Alice Walsh, Pathos | Improving an Interview Experience
We were joined by Alice Walsh, PhD, VP of Translational Research at Pathos. Alice works in drug development, where she is excited about the potential of computational research to yield breakthroughs for patients.
Loved that Alice also asked this question back to the audience:
How do I make an interview a good experience for a candidate? Or have you had any nightmares that’d be helpful to share?
A bunch of thoughts shared from the group: ⬢ I’ve had way more success not giving a technical interview, and having the technical interview be more of a discussion where I’m not even asking them to whiteboard anything or it’s just talking.
⬢ If I asked them, “how do you develop a shiny app”, I’d much rather someone tell me I’ve never developed a shiny app in my life but I use R Markdown every day. That tells me a lot about their ability to actually jump in and learn something new and their transparency.
⬢ I’m much more interested in the process. How do people approach a problem and solve challenges that they encounter versus the specific project they worked on because they’re not going to work on that project ever again with me. It’s going to be a new project so they will need to learn something anyway.
⬢ I’ve had success hiring from meetups or hackathons. Seeing people here and the way they problem solve gives you a lot of insight about these individuals.
⬢ My company actually does do a technical interview and we give candidates a data set while they’re on site or in a Teams meeting. We give them an hour to see what sorts of insights they find with a few very specifically directed questions. What we’re often looking for is not someone to have perfect answers to those questions - it’s really about understanding how they looked at the data set, what other information they want, and what do you wish you had more time to do. You get to see how people work through something and it’s okay if they don’t have a perfectly polished presentation.
⬢ I’ve had a nightmare interview that became a pop quiz on R stuff. What are all the packages in the tidyverse (and at the time I didn’t use tidyverse I was base R)
⬢ A nightmare one that sticks in my head was, please describe in detail the differences between Python 3 and Python 2.
⬢ I think, “this is something I would Google” is a valid answer sometimes because even if I don’t know this, I know where to find it and am really confident in my ability to Google this.
⬢ Honestly if I ask somebody a question and they said this is something that I know I could find the answer to, that would be a perfect answer to me. Not knowing but knowing where to find the information great.
⬢ I went on 3 interviews and they each had a technical part where for every single one of them the answer was: dynamic programming. They must have gone somewhere and decided that was the algorithm to ask about. I found that a bit ridiculous because it wasn’t relevant to what they were working on and it was off-putting. Now, when I interview people I try to make it more of a conversation around the data and what we might actually be doing.
⬢ I have an optional take home: “here’s a data set, take an hour and tell me something. Use whatever tools you want: Excel, R, Python, an abacus.” The key thing I want to see is a written output of what you did. I’m still on the fence, though, because I know a lot of people are anti-technical component. I’m still trying to figure out if it is really helping us make the best hiring decisions.
Also wanted to share a link to a job posting on Alice’s team! She has simplified to just one posting, but they have a couple of openings. They are hiring both for more experienced scientists and folks transitioning from academic research and no drug development experience:
Where to find more?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu ► Data Science Hangout site: rstudio.com/data-science-hangout ► Add the Data Science Hangout to your calendar: rstd.io/datasciencehangout
Follow Us Here: Website: https://www.rstudio.com LinkedIn:https://www.linkedin.com/company/rstudio Twitter: https://twitter.com/rstudio
{gt} Table Battles || Eurovision || RStudio
00:00 Introduction 00:07 Jesse’s gt table, with a focus on flag emoji and interactivity via a Shiny app 09:50 Rich’s gt table, with a focus on CSS and embedded animations
Code: https://github.com/kierisi/rstudio_videos/tree/main/gt/table-battles
Learn more about the gt package here: https://gt.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Rich Iannone (@riannone) & Jesse Mostipak (@kierisi) Motion Design & editing: Jesse Mostipak Music: Gemeni City by Blue Dot Sessions https://app.sessions.blue/browse/track/113567

Dr. Uli Muellner & Nick Snellgrove | Shiny modularization, Leaflet for R and Leaflet JS extensions
Shiny modularization, Leaflet for R and Leaflet JS extensions Under the Hood of the Aotearoa Road Trip App with Epi-interactive
App: https://rshiny2.epi-interactive.com/apps/AotearoaRoadTrip/
Abstract: Come along with Epi-interactive for a tour through the design and development of their 2021 Christmas R Shiny App - the Aotearoa Road Trip!
We will start off with a short history of Epi-interactive’s Christmas Tools, followed by a demonstration of the 2021 Edition and a discussion about its design and concept. Then we will go under the hood into the Shiny / JavaScript code backend which makes it run, such as Shiny modularisation, Leaflet for R and Leaflet JS extensions such as MovingMarker, and some Shiny tricks we picked up along the way.
Speaker Bios: Dr Uli Muellner is Epi-interactive’s Director (IT & Information Design) and has been leading the company’s data visualisation and user interface work over the last decade. After various leadership roles in IT and online learning he co-founded Epi-interactive and built up the company to where it is today. As an advocate of open source technology, he has been the driving force behind the company’s innovative and user-centric approaches and methods.
Nick Snellgrove is a Full-Stack Developer at Epi-interactive. Along with being fluent in R and Shiny development techniques, he has a particular passion for spatial data visualisations, User Experience (UX) development and XR technology
Using Python with RStudio Team
Using Python with RStudio Team Led by David Aja, Solutions Engineer at RStudio
00:30 - Overview of RStudio Team - RStudio Workbench, RStudio Connect, RStudio Package Manager 2:38 - Use case of RStudio Package Manager with Python packages 4:29 - RStudio Workbench (ability to use RStudio, Jupyter Notebook, JupyterLab, VS Code) 5:48 - VS Code running on RStudio Workbench 11:50 - Deploying a Streamlit app to RStudio Connect 14:00 - Pause for questions 18:55 - Jupyter on RStudio Workbench 19:41 - Extension in Jupyter that gives you push-button publishing from RStudio Workbench 20:35 - Publishing with source code vs. publishing only the finished document 21:10 - Hiding the code that is generated when publishing Jupyter to RStudio Connect 23:30 - Creating a custom url in RStudio Connect for your content 24:30 - Adding viewers / collaborators to your content in RStudio Connect 25:18 - Scheduling your Notebooks to run repeatedly 25:54 - Stepping back to describe the differences between RStudio open-source IDE and RStudio Workbench
*please note that this meetup will cover our enterprise product, RStudio Team but all who are interested in joining are welcome!
Many Data Science teams today are bilingual, leveraging both R and Python in their work. While both languages have unique strengths, teams frequently struggle to use them together:
⬢ Data Scientists constantly need to switch contexts among multiple environments. ⬢ Data Science Leaders wrestle with how to share results consistently and deliver value to the larger organization, while providing tools for collaboration between R and Python users on their team. ⬢ DevOps engineers and IT Admins spend time and resources attempting to maintain, manage and scale separate environments for R and Python in a cost-effective way.
Join David Aja in this meetup, which will highlight how other data science teams are able to solve these problems with RStudio Team by:
⬢ Combining R and Python in a single data science project. ⬢ Launching and managing RStudio, Jupyter Notebooks, JupyterLab, and VS Code from the RStudio Workbench environment ⬢ Sharing Jupyter Notebooks, Python APIs via Flask, Dash, Streamlit, Bokeh, FastAPI, Shiny, R Markdown, etc. with the business through RStudio Connect. ⬢ Controlling and distributing Python and R packages with RStudio Package Manager.
A few helpful links shared and mentioned during the call:
⬢ Examples David used: https://lnkd.in/g8bdbj7Q ⬢ Example usage patterns of Using Python with RStudio: https://lnkd.in/gek3BhgW ⬢ Helpful place for questions about using Python in RStudio: https://lnkd.in/gWRV2rbG ⬢ Model Management with Python example: https://lnkd.in/gyX2YVvi
Product / Conference Questions: ⬢ More info on RStudio Team: https://lnkd.in/gv4YQj2G ⬢ If you’re starting to champion data science at your company: rstudio.com/champion ⬢ If you’d like to chat about RStudio Team: rstd.io/chat-with-rstudio ⬢ RStudio Conference: https://lnkd.in/dcrz79y ⬢ System Admin Workshop at RStudio Conference: https://lnkd.in/eB9FZt-c
Programming Games with Shiny || Roll the Dice || RStudio
00:00 Introduction 01:40 Rolling with eventReactive( ) 06:26 Reducing eventReactive( ) to reactive( ) + isolate( ) 16:23 Combining reactive( ) and bindEvent( ) 20:11 Reviewing our reactives 21:23 Writing a function to de-duplicate dice rolls
You’ve most likely used Shiny to build a web app that displays data, but you can also use Shiny to build games! In this video series, Jesse and Barret pair program simply games in Shiny as a way to uncover and explore new features.
Read up on tabset panels here: https://shiny.rstudio.com/reference/shiny/0.14/tabsetPanel.html
Learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Barret Schloerke (@schloerke) and Jesse Mostipak (@kierisi) Animation, motion design, and editing: Jesse Mostipak (@kierisi)
Theme song: Hakodate Line by Blue Dot Sessions (https://app.sessions.blue/browse/track/111291" )

Veerle van Leemput | Analytic Health | Optimizing Shiny for enterprise-grade apps
Can you use Shiny in production? A: Yes, you definitely can.
Link to slides: https://github.com/RStudioEnterpriseMeetup/Presentations/blob/main/VeerlevanLeemput-OptimizingShiny-20220525.pdf
Packages mentioned: ⬢ shiny: https://shiny.rstudio.com/ ⬢ pins: https://pins.rstudio.com/ ⬢ plumber: https://www.rplumber.io/ ⬢ blastula: https://github.com/rstudio/blastula ⬢ callR: https://github.com/r-lib/callr ⬢ shinyloadtest: https://rstudio.github.io/shinyloadtest/ ⬢ shinycannon: https://github.com/rstudio/shinycannon ⬢ shinytest2: https://rstudio.github.io/shinytest2/ ⬢ feather: https://github.com/wesm/feather ⬢ shinipsum: https://github.com/ThinkR-open/shinipsum ⬢ bs4Dash: https://rinterface.github.io/bs4Dash/index.html
Timestamps: 2:44 - Start of presentation 5:41 - What qualifies as an enterprise-grade app? 10:46 - UI first / user experience / prototyping 13:20 - Separating code into separate scripts and creating code that’s easy to test 17:15 - Golem 19:28 - Functionize your code 20:50 - Rhino package, framework for developing enterprise-grade apps at speed 22:33 - Infrastructure, how do you bring this to your users? (lots of ways to do this. They do this with R, pins, plumber, rmd, blastula, and Posit Connect on Azure) 31:17 - Optimizing Shiny (process configuration, cache, callR, API, feather) 47:35 - Testing your app (shinyloadtest and shinycannon) 50:23 - Testing for outcomes (shinytest2) 52:15 - Monitor app performance & usage (blastula, shinycannon, usage metrics with Shiny app)
Questions: 57:38 - What’s the benefit of using pins rather than pulling the data from your database? 59:30 - Are there package license considerations you had to think about when monetizing shiny applications? 1:00:45 - Do you use promises to scale the application? (they use CallR) 1:01:49 - For beginners, golem or rhino? 1:02:50 - The myth is that only Python can be used for production apps, what made you choose to use R? 1:05:12 - Is feather strictly better than using JSON? 1:06:38 - Where do you see the line between BI (business intelligence) and Shiny for your applications? 1:08:36 - Any tips for enterprise-grade UI development? Making beautiful apps (bs4Dash app) 1:10:25 - Have you found an upper limit for users? 1:12:19 - Any tips for more dynamic data? (optimizing database helps here) 1:13:50 - Where do you install shinycannon? (on our development Linux server) 1:15:00 - Can you share other resources or examples of code? (Slides here with resources: https://github.com/RStudioEnterpriseMeetup/Presentations/blob/main/VeerlevanLeemput-OptimizingShiny-20220525.pdf )
For upcoming events: rstd.io/community-events-calendar Info on Posit Connect: https://www.rstudio.com/products/connect/ To chat with Posit: rstd.io/chat-with-rstudio
Katie Masiello || Build a Codenames app using {pins} and Shiny! || RStudio
00:00 Introduction 00:05 Project outline 03:56 Create a codename generator (using RMarkdown) 09:35 Publish to RStudio Connect 10:38 Create a Shiny app 18:15 A little bit of troubleshooting 18:18 Ta-da!
Learn more about the pins package here: https://pins.rstudio.com/ Learn more about Shiny here: https://shiny.rstudio.com/ And learn more about RStudio Connect here: https://www.rstudio.com/products/connect/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Katie Masiello (@katieontheridge) Animation, motion design, and editing: Jesse Mostipak (@kierisi)
Theme song: Contrarian by Blue Dot Sessions (https://app.sessions.blue/browse/track/64281 )
Data Science Hangout | Michael Chow, Posit | Exploring Team Structure w/ Data Scientists & Engineers
We were joined by Michael Chow, Data Scientist and Software Engineer at RStudio. Michael also previously led a team at the California Integrated Travel Project.
On this week’s hangout there were a lot of thoughts shared on structuring a data science team from both Michael and the broader group:
⬢ Jacqueline Nolis also shared thoughts on this on a data science hangout that there were virtues to different ones, but ended up sold on the decentralized model where data scientists are embedded in teams: https://youtu.be/CcPE29bYGVo?t=325
⬢ Michael agreed that data scientists and analysts should be sitting with the teams that they’re pushing out reports for. Otherwise, I would be trying to send people into those teams to figure out their priorities.
⬢ A data scientist should work with a Project Manager or whoever’s leading the team to push up metrics but also help change the roadmap.
⬢ It leaves a tricky question of where data engineers should be and how they should interact with the team. Today data engineers are often doing more tooling empowerment, so it can be okay to have them a bit more centralized and connect to the data scientists to enforce best practices or enable new pieces for them.
⬢ I think a nice model is for data scientists/analysts to live in the teams and data engineers to be like spokes of a wheel where then the data scientists connect with them and work closely to enforce better best practice and enable new important things.
⬢ Tatsu shared that in thinking of the structure, it’s also important to find your translators and to use the power of feedback. Reach out to those people to start to put that feedback into action.
⬢ George shared that insurance companies have come from a really traditional landscape where they have lots of actuaries working on lots of excel spreadsheets and there can be a lack of knowledge sharing and tool sharing. This is where the data science element comes in. To me, within the organization, you need to have this team which is a mini-spoke if you will, because they are central to the actuarial team. If they are too far removed and they’re back with the IT team, you end up with the old problems because they may not get the business concept communicated back. It’s all about getting enough skills, so they can get stuff done, especially proof of concepts. Maybe after that you can take a step back and then start to look at the centralized model again.
⬢ A central team can help converge to what they see as best practice, but if you’re pushing out something new, exploring a new line of work or area it can be important to set the data engineer there to actually do whatever they need to. Make sure that the converging doesn’t stifle creativity or prevent a team from doing the right thing.
⬢ Manny jumped in to share the perspective from data science being with IT as well, data science is a new field for their company (in real estate) and there’s an identity of where does data science fall. The IT team is fantastic and they’re very structured. Data science is so fluid and creative and non structured at the moment, so you kind of have to look at where it actually should fall.
- please note that some of the points above are summarized and not 100% actual quotes.
Resources shared:
⬢ Tatsu shared in the chat, a few projects that Michael is working on: vetiver: https://vetiver.tidymodels.org/articles/vetiver.html , siuba: https://github.com/machow/siuba ⬢ Libby shared a helpful tip on creating a 2 minutes YouTube video with a cover letter, to get the attention of a hiring manager ⬢ Javier shared an example Shiny app used in an interview: https://javierorraca.shinyapps.io/Bloomreach_Shiny_App/ ⬢ Michael mentioned David Robinson’s screencasts: https://www.youtube.com/channel/UCeiiqmVK07qhY-wvg3IZiZQ ⬢ Michael mentioned an article on “What data scientists really do according to 35 data scientists”: https://hbr.org/2018/08/what-data-scientists-really-do-according-to-35-data-scientists ⬢ Rachael shared a blog post link where Jacqueline Nolis talked about team structure as well: https://www.rstudio.com/blog/building-effective-data-science-team-answering-your-questions/#Structure
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu ► Add the Data Science Hangout to your calendar: rstd.io/datasciencehangout ► View the Data Science Hangout site here: rstudio.com/data-science-hangout
Follow Us Here: Website: https://www.rstudio.com LinkedIn:https://www.linkedin.com/company/rstudio-pbc Twitter: https://twitter.com/rstudio

Programming Games with Shiny || Guess the Number || RStudio
00:00 Introduction 00:35 Setting up our app UI 06:19 Using observeEvent() 10:02 Writing an if else statement as part of our feedback mechanism 13:40 Testing our app and deciding which bugs to fix first 14:20 Check yourself before you req() yourself 17:10 Using tabset panels to control what the user sees
You’ve most likely used Shiny to build a web app that displays data, but you can also use Shiny to build games! In this video series, Jesse and Barret pair program simply games in Shiny as a way to uncover and explore new features.
Read up on tabset panels here: https://shiny.rstudio.com/reference/shiny/1.5.0/tabsetPanel.html
Learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Barret Schloerke (@schloerke) and Jesse Mostipak (@kierisi) Animation, motion design, and editing: Jesse Mostipak (@kierisi)
Theme song: Hakodate Line by Blue Dot Sessions (https://app.sessions.blue/browse/track/91291 )

Kelly O’Briant | Building a business case for data science & advocating for analytic infrastructure
3:10 - Start of Kelly’s presentation 5:05 - Identifying where you are in your organizational culture when asking for change 9:30 - What is analytic infrastructure: the how, where, and with what that goes into your daily data science work 10:55 - Production looks different at different organizations 12:20 - Don’t get caught up in the hype - there is no perfect deployment pipeline 14:00 - Tactical metrics for communicating devops - code deployment lead time 15:55 - Your analytic infrastructure is what enables you or teams to deliver value through decreasing that code deployment lead time 20:49 - What is an analytic administrator / R Admin? (A data scientist who onboards new tools, deploys solutions, support existing standards. They work closely with IT to maintain and scale analytic environments. They influence others in the organization to be more effective, and are passionate about making data science a legitimate analytic standard) 24:04 - Building a business case (introducing rstudio.com/champion)
Join us for future champion chats the 4th Monday of every month (not the date I said in the recording) rstd.io/champion-chats
Let’s admit it. Getting to use the tools you want sometimes needs a little convincing.
We’ve had the opportunity to meet so many wonderful people from the community. People that: organize meetups in their own communities, spend time after-hours teaching their co-workers, solve business problems at work with Shiny, write blog posts to help others, and so much more..
People are doing amazing things with data science, yet so many are still in a position where they are not able to make the case for it at their own organizations.
Hear from Kelly O’Briant on how you can start to navigate the internal process and advocate for great analytic infrastructure as a data scientist.
Whether you’re getting pushback about using open-source, being told to use a BI tool instead, or just unable to find the other data scientists at your company - we want to help make this process less frustrating. Come hang out and chat with us!
*Please note, only the presentation portion of this meetup was recorded, the open discussion and Q&A was not.
Resources shared this week: ⬢ rstudio.com/champion ⬢ John shared a typology of organisational cultures: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1765804/pdf/v013p0ii22.pdf ⬢ Kelly shared The Phoenix Project book: https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business-ebook/dp/B078Y98RG8 and The Unicorn Project book: https://www.amazon.com/gp/product/B07QT9QR41 ⬢ Kelly shared Benjy’s talk on conveying data science findings to non-experts: https://www.youtube.com/watch?v=UUIda4-CSXQ ⬢ Nick shared: The pkgdown package can be used to build informational web pages about R packages, which can themselves be deployed to RStudio Connect: https://pkgdown.r-lib.org/ ⬢ Kelly shared Nathan Stephens RViews blog on Analytics Administration for R: https://rviews.rstudio.com/2017/06/21/analytics-administration-for-r/
Data Science Hangout | Jennifer Listman, Statespace | Culture that Helps Avoid Burnout
We were joined by Jennifer Listman, Director of Research at Statespace. Jenny likes mining multidimensional datasets to find valuable unknown unknowns.
One of the questions that had a lot of people sharing in the chat as well was:
““How do you ensure a work-life balance to avoid burnout?”” ️
A few thoughts:
The culture of the team matters. Make it okay to take personal time in the middle of the week to go to doctors, take children somewhere, etc. If it’s a family member’s birthday, let people do what they need to help them celebrate that person. Having that freedom is important.
As a manager, take time off yourself to set a good example.
Managers have to be really careful and be on top of that with your employees. Understand who has to take responsibility for certain things and if they are at risk of experiencing burnout.
A good manager recognizes when the team needs a break is key. Know when they’ve had a crazy week & let them allocate mental health days accordingly
Especially for companies that have nebulous working hours and lack of specific vacation time, ensure that people are taking vacation.
HR may keep tabs on if people are taking enough time off, and will make people take off. Try quarterly check-ins to make sure that people are on-track to take enough time off.
Some people make the choice to not have any work stuff on my phone at all or delete those apps from your phone on the weekend.
Links shared about burnout ⬢ https://lnkd.in/g5GssAck ⬢ https://lnkd.in/g5DUVj8r
Speaking of culture, Statespace is hiring! ⬢ Statespace Data Scientist (Remote) - Data & Analytics team: https://lnkd.in/ddxpp3Ep ⬢ Statespace Manager of Marketing Analytics and Data Science (Remote) - Data & Analytics team: https://lnkd.in/da-9J9aw ⬢ Statespace Biostatistician / Data Analyst, Digital Health (Remote) - Digital Health team: https://lnkd.in/d2ni-7vu
Other resources shared: ⬢ Jenny shared a paper Statespace recently published (all of my analyses were done in R!): https://lnkd.in/dWFE-Cqx ⬢ Rachael shared Resume Review Club form: https://lnkd.in/gjtQDS9D ⬢ Antti shared a thread on R-related podcasts: https://lnkd.in/gTNtZhdg ⬢ Book on importance of sleep: https://lnkd.in/gUtWb8YF ⬢ Bala shared a link on keeping your mind young: https://lnkd.in/g9XiGmmb ⬢ Antti shared this post on LinkedInHardMode (content challenge): https://lnkd.in/giKWzeYh ⬢ Upcoming Shiny conference (April 27-29): https://shinyconf.com/ ⬢ Bala shared podcasts he enjoys: Datacast (https://lnkd.in/gJtSURsh) , AI Podcast (https://lnkd.in/gVddYDT2 ) and Data Science Imposters (https://lnkd.in/gMEUMUWN )
Where to find more?
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu ► Data Science Hangout site: rstudio.com/data-science-hangout ► Add the Data Science Hangout to your calendar: rstd.io/datasciencehangout
Follow Us Here: Website: https://www.rstudio.com LinkedIn:https://www.linkedin.com/company/rstudio Twitter: https://twitter.com/rstudio
Alan Carlson | Robust, modular dashboards that minimize tech debt | RStudio
Robust, modular dashboards that minimize tech debt Presented by Alan Carlson, Snap Finance
Abstract Dashboards can be complex but building them shouldn’t be! We’ve built a wrapper for developing production level dashboards that streamlines onboarding new developers and standardizes the initial infrastructure to mitigate tech debt. Now you and your team can spend more time developing insights and less time trying to spin up shiny code with {graveler}.
Speaker Bio As the Tech Lead for the BI (Business Intelligence) team, Alan’s primary focus at Snap is researching, creating, and maintaining methods that help the rest of Snap’s BI Team in their work. From dashboards to visualizations to R code in general, he has built multiple packages and bookdowns that make BI easier to train and to use within the RStudio environment.
Helpful Links: Blog Post: https://www.rstudio.com/blog/make-robust-modular-dashboards-with-golem-and-graveler/ Graveler package: https://github.com/ghcarlalan/graveler Environment variables: https://docs.rstudio.com/connect/user/content-settings/#content-vars Git-backed publishing: https://docs.rstudio.com/connect/user/git-backed/ If you’d like to join events live: colorado.rstudio.com/rsc/community-events
Question about style guides: Tidyverse Style Guide: https://style.tidyverse.org/ Efficient R Programming book that Colin Gillespie wrote: https://csgillespie.github.io/efficientR/
Questions about RStudio Team: ⬢ RStudio Connect: https://www.rstudio.com/products/connect/ ⬢ Chat with RStudio about RStudio Team: rstd.io/chat-with-rstudio
Programming Games with Shiny || Dragon Realm || RStudio
00:00 Introduction 00:05 Fun dragon facts 00:35 Describing the Dragon Realm game 01:20 Outlining our approach 04:38 Coding the basics of our app 10:15 Programming our action buttons 14:10 A note on coding objects “outside” of Shiny 15:27 Programming cave choice logic 20:29 Connecting action buttons to our consequences function 29:40 Creating separate pages using tabsetPanel() 39:35 Conclusion
You’ve most likely used Shiny to build a web app that displays data, but you can also use Shiny to build games! In this video series, Jesse and Barret pair program simply games in Shiny as a way to uncover and explore new features.
And because we know you’ll ask, Jesse is using the Woodland theme from the base16 palette. You can get it - and other themes - from the {rsthemes} package: https://github.com/gadenbuie/rsthemes
Read up on tabset panels here: https://shiny.rstudio.com/reference/shiny/1.5.0/tabsetPanel.html
Learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Barret Schloerke (@schloerke) and Jesse Mostipak (@kierisi) Animation, motion design, and editing: Jesse Mostipak (@kierisi)
Intro music: RGift by Blue Dot Sessions (https://app.sessions.blue/browse/track/91282 ) Theme song: Hakodate Line by Blue Dot Sessions (https://app.sessions.blue/browse/track/91291 )

Shiny Usage Tracking in Posit Connect
🤔 Who actually used my Shiny app and for how long? ↗️ Is viewership increasing? Did my CEO use it?!
Did you know? Posit Connect can record event-style usage information which is intended to answer questions like this and is accessed via the Posit Connect Server API.
Please note: during the meetup you can ask questions here anonymously as well: rstd.io/connect-meetup-questions
We will walk through several examples for getting started with the Posit Connect usage data designed to help you answer questions like:
Who is visiting my content? What reports are most common? Has viewership increased over time?
During/after the meetup, you can use the GitHub repo to create the dashboard in your own Connect environment as well and schedule the report to be distributed through email (with inline graphics). The goal for this code is that it is generic enough so that you can copy/paste it into your own R session and run it successfully.
In order for the code to work in your environment, you need two pieces of information unique to your enterprise: Posit Connect’s server path A Posit Connect API Key
We’d love to hear your feedback and learn how you have taken this API and created dashboards for your own organizations as well.
Helpful Links: Follow-up thread on community.rstudio.com: https://community.rstudio.com/t/rstudio-connect-usage-data-thread-to-discuss-ideas-improvements/130581 Contribute to open-source examples: https://github.com/sol-eng/connect-usage Posit Connect Server API: https://docs.rstudio.com/connect/api/ Cookbook: https://docs.rstudio.com/connect/cookbook/ R Client: https://pkgs.rstudio.com/connectapi/ Python Client (mostly deployment): https://github.com/rstudio/rsconnect-python/ Cole’s slides: https://github.com/RStudioEnterpriseMeetup/Presentations
If you ever have questions about Posit Connect or any of our professional products, you can use this link to chat with our team: rstd.io/chat-with-rstudio
Carson Sievert || Using tagQuery() from {htmltools} to modify HTML snippets in R || RStudio
00:00 Introduction 00:45 Motivating example - enabling front-facing camera as an input for fileInput() 01:55 Breaking down the return value of fileInput() 04:16 Design philosophy of fileInput() 07:27 tagAppendAttributes() overview 11:05 tagQuery() basics 12:00 Quick overview of the htmltools package 13:18 How tagQuery() is used to append attributes 20:54 How tagQuery() is used to append children 23:45 Using tagQuery() on an actionButton()
Learn more about tagQuery here: https://rstudio.github.io/htmltools/articles/tagQuery.html
Read up on tagAppendAttributes() here: https://shiny.rstudio.com/reference/shiny/latest/tagAppendAttributes.html
And learn more about the htmltools package here: https://rstudio.github.io/htmltools/index.html
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Developer (@winston_chang) Animation, design, and editing: Jesse Mostipak (@kierisi)

Data Science Hangout | Katie Schafer, Beam Dental | Building a Data Science Portfolio
We were recently joined by Katie Schafer, VP of Advanced Analytics at Beam Dental, to discuss the most important things going on with data science leadership.
Great tips & resources shared for this question: What can I do to be able to present my skills and build a portfolio if I’m not able to share my work?
Many people expressed that they are in this position.
Katie: Is it possible to simulate something akin to some of the data you would use? For project portfolios, submitting the actual work is not something that I’ve seen often.
In interviews, you need to be able to discuss the work. Describing the projects is really tough because you want to say something meaningful but you don’t want to be too specific. Having a role play conversation with yourself on questions you’re getting & practicing answers that are more generalized can be helpful. Take one specific problem, translate that to an abstract problem that you tackled with statistics and programming.
Javier: I’ve been in a similar boat. There’s a package called synthpop: https://lnkd.in/g_paFGNB , which helps take actual data points and simulates them to make a completely synthetic data set.
When I was interviewing for my job now I built a shiny app that I deployed to a free shinyapps.io. I styled the whole app to be consistent with their brand. I don’t attribute that alone to getting the job, but the interviewers were super impressed. The ability to change out the theme is so easy, so for anyone who’s trying to get a job this could be an easy way for you to have something that you can change whenever you interview with a new company.
Rick: If you’ve ever worked with a designer - they have a template and they’re not just creating everything from scratch. If you have a nicely organized project as a data scientist, you’re showing your skills as a software engineer.
Zac: I do a lot of personal projects because I don’t use R at work. For these projects I focus the topic on what skills I want to show off. I’m looking to start my career, so I write a blog & include reasons why I did something. I think this makes it a lot easier to share what I’ve done https://lnkd.in/gzhwuCqw
Libby: For me with portfolio work, it’s been difficult because sometimes my contributions are one algorithm inside a larger shared project, so I stick to descriptions, talking about what I did and why I did it, what the result was.
Larry: I describe the topic and present the deck. Sometimes I just make fake data, but talk about the steps I took.
Katie: Some of my richest connections have also come from speaking. R-Ladies has been a great starting point for that. A lot of meetups have gone virtual so you can now join a chapter even if you don’t have one in your city.
Jiwan: Maybe start with a 5 min lightning talk with a topic you’re excited about!
Other resources shared during the chat: Prabha: Technical debt in ML systems - https://proceedings.neurips.cc/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf Rachael: R community explorer app: https://benubah.github.io/r-community-explorer/rugs.html Javier: GitHub for the {bslib} app, feel free to clone as you see fit: https://github.com/JavOrraca/bslib_demo_shiny
Jobs shared during the chat: Niklas: Several data science roles at my company (sustainability SaaS). 2 data engineers, 1 data analyst, 1 data scientist - https://higg.com/careers/ Jill: We are hiring for a Data Analyst role here at Viemed. We are a healthcare company and we LOVEEE DATA. https://viemed.apscareerportal.com/jobs/1338665/apps/new?embed=1"
James Blair || Getting Started with {plumbertableau} || RStudio
00:00 Introduction 01:19 Setting up the problem - capitalizing text with a custom function 02:18 Using Plumber to create an API for our function 04:08 Using Run API + Swagger from the RStudio IDE 05:44 Giving Tableau access to the function with PlumberTableau 09:16 Reviewing what we’ve done so far 09:47 Comparing results between Plumber and PlumberTableau 10:12 Overview of what PlumberTableau does 14:27 Centralized hosting with RStudio Connect 15:17 Looking at our API in RStudio Connect 18:14 How to access the deployed API from Tableau 21:03 Overview of RStudio Connect, Tableau, and PlumberTableau process 21:52 More in-depth example using sample sales data 22:36 Example with the Python equivalent of PlumberTableau, FastAPITableau 25:15 Overview of how these Tableau extension packages work 27:21 Setting up a connection between Tableau and RStudio Connect
Read more about the plumbertableau package here: https://rstudio.github.io/plumbertableau/
And learn about the fastapitableau package here: https://rstudio.github.io/fastapitableau/
If you’re unfamiliar with Plumber, this Quickstart guide gives a good overview of the package: https://www.rplumber.io/articles/quickstart.html And you can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: James Blair (@Blair09M) Design and editing: Jesse Mostipak (@kierisi)
Music: Borough by Blue Dot Sessions https://app.sessions.blue/browse/track/89821
Carson Sievert || Customizing Navigation Items in Shiny using {bslib} || RStudio
00:00 Introduction 00:15 Linking inside navbarPage 01:19 Replacing tabPanel with navbarPage, and navbarMenu 02:32 nav_spacer() 03:41 Adding header and//or footer content 04:07 Replacing tabsetPanel with navs_tab and navs_pill 04:32 navs_tab_card() and navs_pill_card() variants 04:40 Demo of all of the nav_*() functions
The bslib R package provides tools for customizing Bootstrap themes directly from R, making it much easier to customize the appearance of Shiny apps & R Markdown documents. bslib’s primary goals are:
- To make custom theming as easy as possible.
- Custom themes may even be created interactively in real-time.
- Also provide easy access to pre-packaged Bootswatch themes.
- Make upgrading from Bootstrap 3 to 4 (and beyond) as seamless as possible. (Shiny and R Markdown default to Bootstrap 3 and will continue to do so to avoid breaking legacy code.)
- Serve as a general foundation for Shiny and R Markdown extension packages. (Extensions such as flexdashboard, pkgdown, and bookdown already fully support bslib’s custom theming capabilities.)
You can read more about bslib here: https://rstudio.github.io/bslib/articles/bslib.html And you can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Carson Sievert (@cpsievert) Design & editing: Jesse Mostipak (@kierisi)

Carson Sievert || Developing Shiny Custom Themes in Real Time Using {bslib}| RStudio
00:00 Introduction 00:09 The magic of bs_theme_preview() 01:43 The interactive widget provided by bs_theme_preview() 02:12 Using Bootswatch themes 02:57 Using the interactive widget to adjust your theme in real time 03:38 Integration with Google Fonts 04:22 Thematic is enabled in bs_theme_preview() 04:45 DT tables is enabled in bs_theme_preview() 05:30 Going from the interactive widget to your R code 07:03 Using interactive theming on your own Shiny app 09:01 Interactive theming with R Markdown documents
The bs_theme_preview() function launches an example shiny app via run_with_themer() and bs_theme_dependencies(). This is useful for getting a quick preview of the current theme setting as well as an interactive GUI for tweaking some of the main theme settings. Link to docs: https://rstudio.github.io/bslib/reference/bs_theme_preview.html
You can read more about the bslib package here: https://rstudio.github.io/bslib/ And you can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Carson Sievert (@cpsievert) Design and editing: Jesse Mostipak (@kierisi)

Carson Sievert || Custom Theming with {bslib} in Shiny and R Markdown using bs_theme() || RStudio
00:00 Introduction 01:15 Jumping right in with the theme argument in Shiny 01:31 Shiny’s classic navbarPage using bs_theme() 01:46 Specifying your Bootstrap version 02:31 Using the theme argument in R Markdown 03:17 Custom theming in R Markdown using bs_theme() 04:10 bslib templates provided by RStudio 05:33 Review of common arguments for the theme parameter 08:47 Tips for working with dark themes 10:34 Introduction to the thematic package, which styles plots 12:04 How thematic handles fonts 13:09 Using fonts with bslib in R Markdown 14:36 Moving a theme from an R Markdown document into a Shiny app 16:51 Setting warnings for contrast ratios 18:42 A quick tour of Bootstrap 4 and Bootstrap 5 Sass variables 20:35 A quick overview of writing custom HTML in Shiny 22:15 How bslib automatically handles color contrast ratios
bs_theme() allows you to creates a Bootstrap theme object, where you can choose a (major) Bootstrap version, choose a Bootswatch theme (optional), customize main colors and fonts via explicitly named arguments (e.g., bg, fg, primary, etc), and customize other, lower-level, Bootstrap Sass variable defaults via ….
You can read more about the bslib package here: https://rstudio.github.io/bslib/ And you can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Carson Sievert (@cpsievert) Design and editing: Jesse Mostipak (@kierisi)

Barret Schloerke || Maximize computing resources using future_promise() || RStudio
00:00 Introduction 01:45 Setting up a multisession using the future package 02:05 Simulation using two workers 04:14 Simulation using 10 workers 05:20 What happens when we run out of workers? 05:35 How Shiny handles future processes like promises 07:16 Introduction to future_promise() 07:45 Demo of the promises package 09:21 Setting the number of workers 10:40 Demo of processing without future_promise() 14:11 Wrapping a slow calculation in a future() 14:53 Demo of processing using Plumber 16:25 Considerations on the number of cores to use 17:21 What happens if we run out of workers? 19:44 Decrease in execution times using future_promise()
In an ideal situation, the number of available future workers (future::nbrOfFreeWorkers()) is always more than the number of future::future() jobs. However, if a future job is attempted when the number of free workers is 0, then future will block the current R session until one becomes available.
The advantage of using future_promise() over future::future() is that even if there aren’t future workers available, the future is scheduled to be done when workers become available via promises. In other words, future_promise() ensures the main R thread isn’t blocked when a future job is requested and can’t immediately perform the work (i.e., the number of jobs exceeds the number of workers).
You can read more about the promises package here: https://rstudio.github.io/promises/articles/shiny.html And you can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Barret Schloerke (@schloerke) Design and editing: Jesse Mostipak (@kierisi)

Nick Strayer || Part IV: Styling a Shiny Wordle App with CSS || RStudio
00:00 Introduction 00:44 Switching from verbatimTextOutput to uiOutput 01:42 Switching from renderText to HTML DOM elements 03:17 In-line styling with divs 07:30 Converting individual letters from block elements to adjacent grids with CSS grid 08:56 Adding CSS at the head of the UI variable in Shiny with tags$head (and wrapping with HTML!) 10:36 CSS targeting of the background color 12:24 Link: Complete Guide to CSS Grid 14:05 Moving text position within each individual div using CSS classes 16:48 Creating a gap between grid elements 17:13 Rounding border edges for letter grids 19:00 Formatting letter grid background color to indicate result “correctness” 21:30 Increasing font size 23:37 Updating the legend to use color, not text indicators 26:40 Adjusting padding to improve app aesthetic 28:08 Formatting the app UI with justified centering 31:56 Adjusting the text input and Go button 34:07 Why Flexbox is the right tool for this task 35:09 Exploring Flexbox Dev Tools in Chrome 39:14 Adjusting the colors of letter grids using Inspect Element 40:40 Making text bold with font-weight 41:04 Hint on how to approach formatting the keyboard
In final installment of this four-part series, RStudio’s Nick Strayer walks through using CSS to stylize our Shiny Wordle app.
Code + word list: https://github.com/wch/shiny-wordle Check out the full Shiny app here: https://winston.shinyapps.io/wordle/ You can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Nick Strayer (@NicholasStrayer) Animation, design, and editing: Jesse Mostipak (@kierisi) Music: Lakal by Blue Dot Sessions
Wordle: https://www.powerlanguage.co.uk/wordle/

Barret Schloerke || {reactlog} Rundown || RStudio
00:00 Introduction to Reactlog 00:44 Viewing Reactlog using an Old Faithful Shiny app 02:07 The Reactlog interface 04:31 Walking through a reactive graph with Reactlog 05:14 Downstream dependency invalidation in Shiny 06:43 How Shiny “grabs” data 09:41 How the Reactlog timeline works 10:46 Switching between idle states in Reactlog 11:58 Reactlog interactivity - clicking a single item 13:21 Reactlog with the Pythagoras Theorem app 15:45 Adding a UI and server value to add Reactlog to your Shiny app 18:05 Walking through the reactive graph using the Pythagorean Theorem app 21:07 Append-only behavior of Reactlog 21:18 Marking a time point in Reactlog 23:17 Using Reactlog to debug reactivity 26:55 Resetting our app and testing logic changes 28:01 Reactlog with a large Shiny app, CRANwhales 34:10 Freezing reactive values 36:19 Calculating click count in a Shiny app 37:10 Click the button, render the plot is bad - see why
Shiny is an R package from RStudio that makes it incredibly easy to build interactive web applications with R. Behind the scenes, Shiny builds a reactive graph that can quickly become intertwined and difficult to debug. reactlog provides a visual insight into that black box of Shiny reactivity.
After logging the reactive interactions of a Shiny application, reactlog constructs a directed dependency graph of the Shiny’s reactive state at any time point in the record. The reactlog dependency graph provides users with the ability to visually see if reactive elements are:
- Not utilized (never retrieved)
- Over utilized (called independently many times)
- Interacting with unexpected elements
- Invalidating all expected dependencies
- Freezing (and thawing), preventing triggering of future reactivity
There are many subtle features hidden throughout reactlog. Here is a short list quickly describing what is possible within reactlog:
- Display the reactivity dependency graph of your Shiny applications
- Navigate throughout your reactive history to replay element interactions
- Highlight reactive family trees
- Filter on reactive family trees
- Search for reactive elements
You can read more about reactlog here: https://rstudio.github.io/reactlog/articles/reactlog.html And you can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Barret Schloerke (@schloerke) Design & editing: Jesse Mostipak (@kierisi)

Sjoerd Wierenga & Job Spijker | Public Health | Shiny in Production | Posit
R in Public Sector: Organizational & Technical Aspects of Shiny in Production with the Dutch National Institute for Public Health and the Environment.
00:00 - Introductions 2:47 - Organizational aspects of Shiny in production 32:52 - Technical aspects of Shiny in production 52:33 - Ask us everything / Open Discussion
Questions: 29:00 - When you first introduced Shiny, what other tools were you comparing it to? How did you explain the difference to your leaders? 30:00 - What were the most important aspects of your prototype app to create buy-in? 52:33 - As Clusterbuster began to be used by more people, did you face any performance issues? How did you adjust your app to deal with more concurrent users? 56:10 - Can you say anything about the update frequency of the data? 57:15 - Which model was used to define the clusters? 58:23 - Did you ever consider not using a database? 1:01:50 - What’s the communication with the data engineering team? 1:03:51 - How often do you collect feedback from users and update your app? 1:05:10 - Was your data loaded into Docker in a form of some aggregates? How did you create them? 1:06:26 - What is the main advantage of keeping it all in R with Shiny? Did you feel at any point you were sacrificing simplicity? 1:08:14 - Did you use any specific methods to increase the performance of your app? Did you scope your data, or load it all in the global file? 1:12:03 - How did you make sure regions and users felt comfortable using your app? 1:13:25 - What types of businesses are hotbeds for covid clusters? Has this info informed policy changes? 1:14:50 - How did the data quality issues improve over the rollout? 1:16:47 - Did you use CI/CD? 1:17:38 - Did you have any functionality within your apps to send individual-level data to municipalities? 1:19:47 - For huge amounts of data, have you tested out different file types to store your data set within your containers? 1:20:54 - For people just starting to use Shiny, what is one piece of advice you would give them?
Proof on Concept with fictitious data: https://rivm.shinyapps.io/clusterbuster/ Blog post from the team as well! https://www.rstudio.com/blog/how-the-clusterbuster-shiny-app-helps-battle-covid-19-in-the-netherlands/ Code-first blog post mentioned: https://www.rstudio.com/blog/code-first-data-science-for-the-enterprise2/
How the “Clusterbuster” app provides actionable information to 300 health professionals Presented by: Sjoerd Wierenga
In this talk we want to give an overview of what it took to create the Clusterbuster from an organizational perspective. We will go into detail on how we got from an abstract question to an application that is user-friendly, safe, and valuable. Furthermore, we will offer a glimpse of what is yet to come, and where we see possibilities to turbocharge a more data-driven public policy approach.
How to build a production shiny app within the context of public health governance. Presented by: Job Spijker
This presentation goes into the more technical details about the production environment of the Clusterbuster application. We will show how we deployed the application, how we ensured security and mitigated the risks in case of a security breach, and how we organized our code for maintainability and refactoring.
Presenter Biographies:
Sjoerd Wieringa: As the son of two healthcare professionals, with a background in Public Administration, and a passion for technology, it is no surprise that Sjoerd Wierenga now works at the National Institute for Public Health and the Environment leading a team of highly skilled Data Scientists that created an application to support the battle against COVID-19. After having worked as a healthcare manager for several years, he decided he wanted to learn how to program. Which he has been doing now since 2016 in different capacities.
Job Spijker: Job Spijker is a senior research and data scientist at the Dutch National Institute of Public Health and the Environment. He has a PhD in Earth Sciences with a focus on computational and statistical methods of spatial data. He is currently involved in projects about how the institute’s environmental and health data can be leveraged to create insightful actionable information to assist policy makers at local, regional, and national level
Winston Chang || Part III: Adding a Keyboard to a Wordle Shiny App || RStudio
00:00 Introduction 00:25 Setting up a keyboard 00:54 Using an HTML p tag to print out letter indicators 01:56 Back to our keyboard! 03:44 Setting up a search and replace 06:32 Removing letters using regular expressions 08:43 Making guesses a reactiveVal() 11:00 Avoiding an infinite loop with reactiveVal()
In Part III of this four-part series, Winston walks through how to build a keyboard in a Shiny Wordle app.
Code + word list: https://github.com/wch/shiny-wordle Check out the full Shiny app here: https://winston.shinyapps.io/wordle/ You can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Developer (@winston_chang) Animation, design, and editing: Jesse Mostipak (@kierisi)
Wordle: https://www.powerlanguage.co.uk/wordle/

Winston Chang || Part II: Handling Duplicate Letters in a Shiny Wordle App || RStudio
00:00 Introduction 00:52 Setting up the problem with duplicate letters 02:08 Coding the first pass for exact matches in the correct position 06:29 Re-evaluating how to approach the problem 12:28 Removing only one instance of a letter 13:56 Testing our code 14:54 Setting up the second pass 19:08 Scoping with a double arrow 19:52 Debugging with a browser() statement 21:28 Checking our code
In Part II of this four-part series, Winston walks through how to handle duplicate letters when building your Shiny Wordle app.
Code + word list: https://github.com/wch/shiny-wordle Check out the full Shiny app here: https://winston.shinyapps.io/wordle/ You can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Developer (@winston_chang) Animation, design, and editing: Jesse Mostipak (@kierisi)
Wordle: https://www.powerlanguage.co.uk/wordle/

Winston Chang || Part I: Build a Basic Wordle App with Shiny || RStudio
00:00 Introduction 00:12 What is Wordle? 00:36 The Wordle app we’ll build by the end of this four-part series 01:08 How to approach the problem 01:38 Word list (link to file below) 01:52 UI function with fluidPage() 02:24 Print out what player guesses using verbatimTextOutput() 03:36 Run app in Viewer Panel 04:04 Adding an action button with actionButton() 04:29 Using bindEvent() with actionButton() 06:02 Limiting guesses to words with five characters 07:40 Using req() and cancelOutput() 08:54 Incorporating the word list 10:13 Matching player guess to word list 11:06 Matching player guess to target word 13:50 Writing a function to match guess to target word with feedback 18:15 Checking word length between guess and target 23:02 Why we’re using intermediary functions 28:51 Printing formatted letter information
In Part I of this four-part series, Winston walks through how to build a basic Wordle app using Shiny!
Code + word list: https://github.com/wch/shiny-wordle Check out the full Shiny app here: https://winston.shinyapps.io/wordle/ You can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Developer (@winston_chang) Animation, design, and editing: Jesse Mostipak (@kierisi)
Wordle: https://www.powerlanguage.co.uk/wordle/

Rich Iannone || Making Beautiful Tables with {gt} || RStudio
00:00 Introduction 00:37 Adding a title with tab_header() (using Markdown!) 01:47 Adding a subtitle 02:48 Aligning table headers with opt_align_table_header() 03:48 Using {dplyr} with {gt} 06:03 Create a table stub with rowname_col() 07:35 Customizing column labels with col_label() 09:45 Formatting table numbers with fmt_number() 12:10 Adjusting column width with cols_width() 15:39 Adding source notes with tab_source_note() 16:55 Adding footnotes with tab_footnote() 18:55 Customizing footnote marks with opt_footnote_marks() 19:10 Demo of how easy managing multiple footnotes is with {gt} 23:41 Customizing cell styles with tab_style() 27:07 Adding label text to the stubhead with tab_stubhead() 28:15 Changing table font with opt_table_font() 29:25 Automatically scaling cell color based on value using data_color()
With the gt package, anyone can make wonderful-looking tables using the R programming language. The gt philosophy: we can construct a wide variety of useful tables with a cohesive set of table parts. These include the table header, the stub, the column labels and spanner column labels, the table body, and the table footer.
It all begins with table data (be it a tibble or a data frame). You then decide how to compose your gt table with the elements and formatting you need for the task at hand. Finally, the table is rendered by printing it at the console, including it in an R Markdown document, or exporting to a file using gtsave(). Currently, gt supports the HTML, LaTeX, and RTF output formats.
The gt package is designed to be both straightforward yet powerful. The emphasis is on simple functions for the everyday display table needs.
You can read more about gt here: https://gt.rstudio.com/articles/intro-creating-gt-tables.html And you can learn more about Shiny here: https://shiny.rstudio.com/
Got questions? The RStudio Community site is a great place to get assistance: https://community.rstudio.com/
Content: Rich Iannone (@riannone) Design & editing: Jesse Mostipak (@kierisi)

Ralph Asher & Laura Darby Rose | R in Supply Chain Management | RStudio
Two talks! 3:24 - Start of meetup 3:24 - Intro to Supply Chain Design - Ralph Asher 33:38 - Forecasting Demand with R - Laura Darby Rose
Intro to Supply Chain Design - Ralph Asher
Abstract: COVID-19 has moved supply chain management from the back office to front-page news. And along with it, the discipline of supply chain design – the strategic evaluation of deciding where to locate manufacturing sites, warehouses, and other supply chain facilities – has gone from a little-known niche to a C-suite priority.
In this talk, I will introduce the field of supply chain design to the R community. Drawing upon my decade of experience in supply chain design and R, I will give a short example of how to design a warehouse network to support future customer need. This example will be drawn directly from my experience in the corporate world and my consulting business.
Speaker Bio: Ralph Asher is the founder of Data Driven Supply Chain LLC, a Minnesota-based consulting firm that uses data science and AI to evaluate, design, and optimize supply chains. (www.datadrivensupplychain.com ) Prior to founding Data Driven Supply Chain, Ralph worked as an Operations Research Scientist in corporate supply chain functions for 8 years at Target, designing e-commerce supply chain networks, and at General Mills, designing warehousing networks. Ralph has used R for supply chain analytics for a decade and can be reached at ralph@datadrivensupplychain.com or via LinkedIn.
Forecasting Demand with R - Laura Darby Rose
Abstract: Over the course of about a year, Mallinckrodt Pharmaceuticals’ Specialty Generics division replaced an expensive SaaS (Software as a Service) with an R script and alternate forecasting process. Using an RStudio Enterprise solution, they have found a more flexible and cost-effective way to forecast demand and analyze data with R. This discussion will detail the process of replacing a SaaS with R, as well as challenges and next steps in the project.
Speaker Bio: Laura Darby Rose is Manager of Demand at Mallinckrodt Pharmaceuticals, where she is responsible for statistical forecasting, forecast visualization, and forecast accuracy measurement for the Specialty Generics division. She has a M.A. in Economics from the University of Missouri-St. Louis, and enjoys using R and SQL for time-series analysis, creating Shiny apps, and data wrangling/cleaning.
Are you a data scientist or data analyst working in supply chain management? Are you interested in joining a group of fellow practitioners and taking a leadership role in developing and promoting open source solutions in your field? Join us!
At this meetup, we also proposed the formation of a community working group focused on developing and popularizing open source solutions for data scientists and analysts working in supply chain management. We’d love to start by creating a home – initially a website – which hosts resources for supply chain data scientists. More to come. Form to be part of the working group: rstd.io/supply-chain-community-org
Data Science Hangout | Nate Kratzer, Brown-Forman | Focusing Tools on Adoption, BI Tools & Shiny
The Data Science Hangout is a weekly, free-to-join open conversation for current and aspiring data science leaders.
An accomplished leader in the space will join us each week and answer whatever questions the audience may have.
We were recently joined by Nate Kratzer, Data Science Manager at Brown-Forman.
A few key snippets from our conversation: 01:31 - Start of session 11:11 - The very first Shiny app we deployed 11:57 - How do you calculate the ROI of data science? 13:52 - What a data science tech stack in the liquor industry looks like 21:20 - Marketing data science to your colleagues vs them coming to you with projects 23:43 - How we think about Shiny and BI Tools 27:26 - Example that would need to be a data science visualization instead of BI dashboard 44:50 - Supporting both Python and R 39:58 - Specialized skills vs general skills
► Subscribe to Our Channel Here: https://bit.ly/2TzgcOu ► Add the Data Science Hangout to your calendar: https://www.addevent.com/event/Qv9211919
Follow Us Here: Website: https://www.rstudio.com LinkedIn:https://www.linkedin.com/company/rstu… Twitter: https://twitter.com/rstudio
Leveraging R & Python in Tableau with RStudio Connect | James Blair | RStudio
Leveraging R & Python in Tableau with RStudio Connect Overview Demo / Q&A with James Blair
Tableau combines the ease of drag-and-drop visual analytics with an open, extensible platform. RStudio develops free and open tools for data science, including the world’s most popular IDE for R. RStudio also develops an enterprise-ready, modular data science platform to help data science teams using R and Python scale and share their work.
Now, with new functionality in RStudio Connect, users can have the best of both worlds. Tableau users can call R and Python APIs from Tableau calculated fields, getting access to all the power and analytic depth of these open-source data science ecosystems in real-time.
For Tableau users, this makes it easy to add dynamic, advanced analytic features from R and Python to a Tableau dashboard, such as scoring predictive models on Tableau data. They can leverage all the great work done by their organization’s data science team and even call both R and Python APIs from a single dashboard.
Data science teams can continue to use the code-first development and deployment tools from RStudio that they know and love. Using these tools, they can build and share R APIs (using the plumber package) and Python APIs (using the FastAPI framework).
Speaker Bio: James is a Solutions Engineer at RStudio, where he focuses on helping RStudio commercial customers successfully manage RStudio products. He is passionate about connecting R to other toolchains through tools like ODBC and APIs. He has a background in statistics and data science and finds any excuse he can to write R code.
A few other helpful links: Tableau Integration Documentation: https://docs.rstudio.com/rsc/integration/tableau/
Tableau / RStudio Connect Blog Post: https://blog.rstudio.com/2021/10/12/rstudio-connect-2021-09-0-tableau-analytics-extensions/
Embedding Shiny Apps in Tableau using shinytableau blog: https://blog.rstudio.com/2021/10/21/embedding-shiny-apps-in-tableau-dashboards-using-shinytableau/
James’ slides: https://github.com/blairj09-talks/rstudio-tableau-webinar
Taylor Rodgers - PKGlobal || Manufacturing Meetup (Democratizing an ML model ) || Posit
Abstract: In this webinar, Taylor Rodgers will present a short case study on how Shiny apps allowed a manufacturing client to make machine learning models more accessible to its plant workers. He’ll cover concepts and packages, such as plotly, shinyMatrix, reactive values, and event observations. He will also answer why engineers really are the best data science clients.
Speaker Bio: Taylor Rodgers is a senior data scientist and project lead at PKGlobal. He has written extensively on data science and R programming topics, including the books Data Work and the upcoming R Programming in Plain English. You can learn more about him at www.taylorrodgers.com or https://www.linkedin.com/in/taylor-rodgers-4b8632127 .
Blog Post with code from example: https://posit.co/blog/how-to-use-shinymatrix-and-plotly-graphs/
GA Tech || “Communicating with 8 Million People through Shiny” || Posit
Georgia Institute of Technology faculty, scientists, GIS specialists, and graduate students launched a tool that provided real-time, localized information on the estimated risk of COVID-19 exposure by attending an event.
In talking with their team it was clear that their empathetic perspective of the audience and communication-focus helped successfully share their insights with event planners, policy makers, various news outlets and individuals - adding up to ultimately over 8 million unique users around the world.
Lessons learned from the GA Tech team about their experience building the COVID-19 Event Risk Assessment Planning Tool can apply to visualizations across many different industries and use cases - whether you are communicating to a handful of executives at your company or out to the world:
-
As a Shiny developer, make sure that you have a specific question in mind. What is the problem that you have that your app is helping them solve? Think about who your audience is going to be and what they would use this for. For the COVID-19 Event Risk Assessment Planning Tool, this question was “what is the risk level of attending an event, given the event size and location?”
-
View your audience through a lens of empathy. Think about metrics that people can really get a grip on and visualize. For example, the risk of attending a local event with 100 people in your own town vs. communicating this as cases per 100,000 people. If you want to communicate something that’s critical to the public, put it in the right terms.
-
Balance the straightforwardness of your visualization. You don’t have to anticipate every single question. With every feature or piece of information included, ask yourself if this supports your overall point? Importance of continued communication.
-
Keep the lines of communication open with your users. If you share a visualization, make sure that people have a clear way to contact you (email, Twitter, LinkedIn) with questions or feedback. Their team made an intentional effort to be available for local news particularly. They were responsive to the kinds of decisions people were making and adjusted the app to match their needs with event sizes for example.
Check out their Shiny application here: https://covid19risk.biosci.gatech.edu/ Read the related blog post here: https://blog.rstudio.com/2021/09/14/how-do-you-use-shiny-to-communicate-to-8-million-people/
R Markdown Advanced Tips to Become a Better Data Scientist & RStudio Connect | With Tom Mock
R Markdown is an incredible tool for being a more effective data scientist. It lets you share insights in ways that delight end users.
In this presentation, Tom Mock will teach you some advanced tips that will let you get the most out of R Markdown. Additionally, RStudio Connect will be highlighted, specifically how it works wonderfully with tools like R Markdown.
Please provide feedback: https://docs.google.com/forms/d/e/1FAIpQLSdOwz3yJluPR2fEqE0hBt92NtKZzzNACR8KJhHUt9rhFj3HqA/viewform?usp=sf_link
More resources if you’re interested: https://docs.google.com/document/d/1VKGs1G9GcQcv4pCYFbK68_LDh72ODiZsIxXLN0z-zD4/edit
04:15 Literate Programming 09:00 - Rstudio Visual Editor Demo 15:44 - R and python in same document via {reticulate} 18:10 - Q&A: Options for collaborative editing (version control, shared drive etc.) 19:30 - Q&A: Multi-pane support in Rstudio 20:46 Data Product (reports, presentations, dashboards, websites etc.) 24:15 - Distill article 26:27 - Xaringan presentation (add three dashes — for new slide) 28:58 - Flexdashboard (with shiny) 30:30 - Crosstalk (talk between different html widgets instead of {shiny} server) 35:03 - Q&A: Jobs panel – parallelise render jobs in background 36:50 - Q&A: various data product packages, formats 39:35 Control Document (modularise data science tasks, control code flow) 39:58 - Knit with Parameters (YAML params: option) 41:20 - Reference named chunks from .R files (knitr::read_chunk()) 43:00 - Child Documents (reuse content, conditional inclusion, {blastula} email) 47:07 Templating (don’t repeat yourself) 47:38 - rmarkdown::render() with params, looping through different param combinations 49:30 - Loop templates within a single document 50:40 - 04-templating/ live code demo 54:37 - {whisker} vs {glue} – {{logic-less}} vs {logic templating} 55:30 - {whisker} for generating markdown files that you can continue editing 57:49 RMarkdown + Rstudio Connect 1:00:41 Follow-up Reading and resources 1:04:49 Q&A - {shiny} apps, {webshot2} for screenshots of html, reading in multiple .R files, best practice for producing MSoffice files, {blastula}
Ralph Asher | Intro to Monte Carlo Simulation | RStudio
Introduction to Monte Carlo simulation, using Shiny Presentation by Ralph Asher
Monte Carlo Simulation is a powerful methodology to model and understand the impact of uncertainty upon real life. In this talk, I will introduce Monte Carlo simulation through a simple example: I’m meeting my neighbor after work for dinner in our neighborhood. Given the uncertain length of our commutes, will we make it in time for our reservation? I’ll talk through the scenario, then walk through a simple Shiny app that explores the power of Monte Carlo Simulation to recommend decisions under uncertainty.
Bio: I am Ralph Asher, and I am the founder of Data Driven Supply Chain LLC, a Minnesota-based consultancy that helps organizations apply data science and AI methods, including simulation, to design and improve their supply chain. Prior to founding Data Driven Supply Chain, I worked as an Operations Research Scientist at Target, designing e-commerce supply chain networks, and at General Mills, designing warehousing networks. I have used R for supply chain analytics for over eight years at these companies. I live in the Minneapolis, MN area and love running in the (usually cool) Minnesota air. I can be reached at ralph@datadrivensupplychain.com
Chris Bumgardner, Children’s Wisconsin || Healthcare Meetup || Posit
Cultivating an R-based Analytic Practice in Healthcare
Supporting the advanced analytic needs of an active academic healthcare organization requires tools and practices that enhance the application of statistical and algorithmic approaches. To positively impact care, system operations, or even well-being at the community level, these tools need to support solutions that can be rapidly deployed and communicated as well as reproduced when studying longitudinal trends.
At Children’s Wisconsin, we use R and Posit’s suite of tools to enable forecasting, modeling, and data mining among other data science activities. We communicate the results of our efforts using interactive applications built with Shiny as well as reports and push analytics created using RMarkdown. This talk will discuss how we have developed this capability and provide a few examples of the applications that have been created to support our vision that the kids of Wisconsin will be the healthiest in the nation.
Agenda
- Children’s Wisconsin Introduction
- Data Science Tools and Supporting Infrastructure
- Example R-based Projects [Community: Missing Youth, System-wide: COVID-19 Response, Operational: Patient Placement Planning and Optimization]
- Challenges and Future Plans
Speaker Bio: Chris Bumgardner leads the data science efforts at Children’s Wisconsin and works with teams across the health system to improve decision-making. He is focused on applying statistical methods to data sets large and small to discover and visualize insights that will help ensure Wisconsin’s kids are healthy, happy, and safe. Chris can often be found awake far too early thanks to an insubordinate rescue dog named Dutch.
R in Healthcare Slack Group: https://join.slack.com/t/rinhealthcare/shared_invite/zt-sc7lc4k6-K9zb~kX826dOXMcaj~Wt~w
RStudio Enterprise Community Meetup for future events: https://www.meetup.com/RStudio-Enterprise-Community-Meetup
Nicolas Nguyen - ZEISS | Supply Chain Management Meetup | RStudio
0 - 50:20 Presentation 50:20 - 56:52 Q&A Presentation by Nicolas Nguyen, Digital Supply Chain and Global S&OP Leader for Carl Zeiss Meditec
Abstract: In demand & supply planning, we often need to calculate projected inventories and replenishment plans - sometimes for hundreds or thousands of SKUs, and through different levels of the distribution network.
In the sales & operations planning (S&OP) process, we might need to run some scenarios to balance demand and supply to support sales: changing inventories plans, sales plans, delivery lead times, production plans, product mix, etc.
Using Shiny, we can design simple, powerful, scalable, and reproducible apps for demand & supply planning as well as the S&OP process. In this talk, you will learn about real-life examples of web applications, which can be deployed in a few minutes to perform some popular demand & supply planning operations.
__
Thank you to Nicolas for an awesome presentation on how he is using Shiny today. With all the interest from the community in this topic, we’d love to continue the discussion and connect us all through:
Future meetups: https://www.meetup.com/RStudio-Enterprise-Community-Meetup/ R for Data Science Online Learning Community (“chat-supply_chain”): r4ds.io/join RStudio Community: community.rstudio.com
Katherine Kopp | COVID vaccine distribution Shiny app walkthrough (mock data) | RStudio
Learn more:
Data Driven West Virginia: https://business.wvu.edu/research-outreach/data-driven-wv
DDWV PPE forecasting: https://wvutoday.wvu.edu/stories/2020/04/27/wvu-business-experts-partner-with-the-national-guard-to-forecast-ppe-needs
DDWV inventory management system: https://wvutoday.wvu.edu/stories/2021/03/22/a-different-kind-of-science-wvu-chambers-college-data-scientists-propel-west-virginia-s-acclaimed-vaccine-strategy-with-digital-inventory-management-system
West Virginia National Guard: https://www.wv.ng.mil/
Shiny: https://shiny.rstudio.com/
West Virginia leading nation at start of vaccine rollout: https://www.vox.com/first-person/2021/3/4/22313540/covid-19-vaccine-west-virginia
To understand just how hard it is to get vaccines to the population, it helps to understand where it can go wrong. This starts with how vaccines are packed into containers.
To fill up a container, Pfizer places 195 vials into a tray, and up to 5 trays into a single container. Moderna puts 10 vials into a small box, and then combines a minimum of 10 small boxes into a single container. In most states Pfizer and Moderna ship directly to the organization that will be administering the vaccine to the population. This could be a hospital, a pharmacy, or any place where trained professionals will be putting shots into arms.
But what happens when a pharmacy receives a full container from Pfizer, 975 vials, but only needs 600?
West Virginia has removed this complication by shipping directly to five hubs strategically located throughout the state. Within each of these hubs, containers of vaccine vials are broken down into smaller components and then either picked up or shipped directly to the hospital, pharmacy, or organization that will be administering the vaccine.
These hubs are managed by the Joint Interagency Task Force (JIATF), a team of teams composed of public, private, and governmental organizations as well as the National Guard. The Joint Interagency Task Force is responsible for drawing up a weekly distribution plan for each hub, in alignment with CDC allocations, and matching vaccine supply with demand.
By using a statewide system managed by a central organization, there’s a level of agility and fluidity that allows each hub to adjust to a variety of changes in order to maximize the number of vaccines that are being administered to the population each week.
RStudio’s mission is to create free and open-source software for data science, scientific research, and technical communication to enhance the production and consumption of knowledge by everyone, regardless of economic means, and to facilitate collaboration and reproducible research, both of which are critical to the integrity and efficacy of work across industries.
RStudio also produces RStudio Team, a modular platform of commercial software products that give organizations the confidence to adopt R, Python and other open-source data science software at scale, along with online services to make it easier to learn and use them over the web.
Together, RStudio’s open-source software and commercial software form a virtuous cycle: the adoption of open-source data science software at scale in organizations creates demand for RStudio’s commercial software; and the revenue from commercial software, in turn, enables deeper investment in the open-source software that benefits everyone. Check out www.rstudio.com .
Follow us on Twitter: https://twitter.com/rstudio
Facebook: https://www.facebook.com/rstudiopbc/
And LinkedIn: https://www.linkedin.com/company/rstudio-pbc/
Managing COVID vaccine distribution in West Virginia | RStudio
With a little help from open source software
Learn more: Data Driven West Virginia: https://business.wvu.edu/research-outreach/data-driven-wv
DDWV PPE forecasting: https://wvutoday.wvu.edu/stories/2020/04/27/wvu-business-experts-partner-with-the-national-guard-to-forecast-ppe-needs
DDWV inventory management system: https://wvutoday.wvu.edu/stories/2021/03/22/a-different-kind-of-science-wvu-chambers-college-data-scientists-propel-west-virginia-s-acclaimed-vaccine-strategy-with-digital-inventory-management-system
West Virginia National Guard: https://www.wv.ng.mil/
Shiny: https://shiny.rstudio.com/
West Virginia leading nation at start of vaccine rollout: https://www.vox.com/first-person/2021/3/4/22313540/covid-19-vaccine-west-virginia
In the United States, approximately 2.5 million doses of COVID vaccines are being delivered each day, and how these doses go from the manufacturer to a shot in someone’s arm varies by state, often with mixed results.
But early on in the vaccine distribution process, one state led the pack in terms of using the majority of vaccine doses it had been allotted. That state? West Virginia.
Part of what has made West Virginia successful is the creation of an inventory management system using Shiny, an open source framework for building interactive web applications. The system was built by Data Driven West Virginia, part of the John Chambers College of Business and Economics at West Virginia University, in collaboration with the West Virginia Army National Guard.
Using Shiny has provided visibility into each component of the vaccine supply chain, leading to the creation of distribution plans that are able to quickly and efficiently match supply with demand, getting vaccines to the right people in the right location at the right time.
RStudio’s mission is to create free and open-source software for data science, scientific research, and technical communication to enhance the production and consumption of knowledge by everyone, regardless of economic means, and to facilitate collaboration and reproducible research, both of which are critical to the integrity and efficacy of work across industries.
RStudio also produces RStudio Team, a modular platform of commercial software products that give organizations the confidence to adopt R, Python and other open-source data science software at scale, along with online services to make it easier to learn and use them over the web.
Together, RStudio’s open-source software and commercial software form a virtuous cycle: the adoption of open-source data science software at scale in organizations creates demand for RStudio’s commercial software; and the revenue from commercial software, in turn, enables deeper investment in the open-source software that benefits everyone. Check out www.rstudio.com
Follow us on Twitter: https://twitter.com/rstudio
Facebook: https://www.facebook.com/rstudiopbc/
And LinkedIn: https://www.linkedin.com/company/rstudio-pbc/
Kelly O’Briant | Interactivity in Production | RStudio (2019)
https://rstudio.com/resources/webinars/interactivity-in-production/
In part 3 of this 3 part series, Kelly covers: Interactive products take your data science to a new level, but they require new coding decisions. This webinar will give you clear guidelines on when and how to add interactivity to your work. Here you’ll learn: when to use off-the-shelf interactive products like parameterized R Markdown and htmlwidgets, when to create bespoke interactivity with Shiny, how to make your Shiny apps as fast as possible, how to support interactivity in production, and much more.
About Kelly: Kelly is Solutions Engineer for RStudio and also an organizer of the Washington DC chapter of R-Ladies Global. It’s an R users group for lady-folk and friends
Garrett Grolemund | Reproducibility in Production | RStudio (2019)
https://rstudio.com/resources/webinars/reproducibility-in-production/
In part 1 of this 3 part series, Garrett covers the following:
Computational documents offer limitless opportunities for your business. With them, your consumers can rerun your report with new parameters, apply your analysis to new data, or schedule future, automatic updates to your work—all with the click of a button. This is the first in a three part webinar series that will describe this new form of reproducibility. Here, we begin by showing you how to write executable R Markdown documents for a production environment.
About Garrett: Garrett is the author of Hands-On Programming with R and co-author of R for Data Science and R Markdown: The Definitive Guide. He is a Data Scientist at RStudio and holds a Ph.D. in Statistics, but specializes in teaching. He’s taught people how to use R at over 50 government agencies, small businesses, and multi-billion dollar global companies; and he’s designed RStudio’s training materials for R, Shiny, R Markdown and more. Garrett wrote the popular lubridate package for dates and times in R and creates the RStudio cheat sheets
Tom Mock & Shannon Haggerty | Theming Shiny and RMarkdown with {thematic} & {bslib} | RStudio
From rstudio::global(2021) Shiny X-Sessions, sponsored by Appsilon: this presentation covers the basics of how the thematic and bslib packages can be used to consistently style all the components of a shiny app at once.
About Tom Mock: Thomas is involved in the local and global data science community, serving as Outreach Coordinator for the Dallas R User Group, as a mentor for the R for Data Science Online Learning Community, as co-founder of #TidyTuesday, attending various Data Science and R-related conferences/meetups, and participated in Startup Weekend Fort Worth as a data scientist/entrepreneur.
About Shannon Haggerty: Shannon is on RStudio’s Customer Success team working with teams across the Life Sciences and Healthcare. In her free time, she likes to bake, hang out with her dogs, and explore new hobbies.
Learn more about the rstudio::global(2021) X-Sessions: https://blog.rstudio.com/2021/01/11/x-sessions-at-rstudio-global/
Pedro Silva | Styling Shiny with CSS & SASS and Speeding Up Shiny Apps | Posit
From rstudio::global(2021) Shiny X-Sessions, sponsored by Appsilon: in the first part of this talk I will discuss how to use CSS to give your application a fresh and unique look, while keeping your codebase clean and organized with SASS. During the second half I will discuss how to leverage Shiny update functions, proxy objects and JavaScript messages to speed up your dashboards.
About Pedro Silva: Pedro has nearly a decade of experience combining frontend and backend technologies, and is an expert on augmenting R Shiny dashboards with CSS and JavaScript.
Learn more about the rstudio::global(2021) X-Sessions: https://blog.rstudio.com/2021/01/11/x-sessions-at-rstudio-global/
Damian Rodziewicz | Scaling Shiny to Thousands of Users | RStudio
From rstudio::global(2021) Shiny X-Sessions, sponsored by Appsilon: in this talk I will discuss how to scale Shiny dashboards to thousands of users.
About Damian Rodziewicz: Damian is one of the four co-founders of Appsilon. Before founding Appsilon he worked at Accenture, UBS, Microsoft and Domino Data Lab.
Learn more about the rstudio::global(2021) X-Sessions: https://blog.rstudio.com/2021/01/11/x-sessions-at-rstudio-global/
Dominik Krzemiński | Appsilon’s Guide to Working With Open Source Shiny | RStudio
From rstudio::global(2021) Shiny X-Sessions, sponsored by Appsilon: There is no need to praise Shiny for its influence on interactive data visualisation. As with many other technology stacks, Shiny could benefit from community contributions for the further development of the package itself and the growth of independent packages that add new features. In this talk, I present some of the most popular Shiny extensions and explain what are the ways to help with developing Shiny-related tools.
About Dominik Krzemiński: Dominik is the Open Source Tech Lead at Appsilon where he enjoys contributing to open source tools, mainly in R and Python. He created shiny.i18n, shiny.semantic, and the TODOr package for R. He also participated in the Google Summer of Code, where he developed tools supporting neuroscience analyses. He’s also a fan of all kinds of board sports and capoeira.
Learn more about the rstudio::global(2021) X-Sessions: https://blog.rstudio.com/2021/01/11/x-sessions-at-rstudio-global/
Olga Mierzwa-Sulima | Best Practices for Developing Shiny Apps | RStudio
From rstudio::global(2021) Shiny X-Sessions, sponsored by Appsilon: Best practices for developing Shiny apps presentation covers organizing app’s code with modules and R6 classes, setting up development environment, and testing.
About Olga Mierzwa-Sulima: Olga is experienced in production applications of analytical solutions, especially for FMCG companies. Recently she developed a price elasticity model for Unilever.
Learn more about the rstudio::global(2021) X-Sessions: https://blog.rstudio.com/2021/01/11/x-sessions-at-rstudio-global/
Filip Stachura & Marek Rogala | Empowering Data Scientists to Build Spectacular Shiny Apps | RStudio
From rstudio::global(2021) Shiny X-Sessions, sponsored by Appsilon: in this talk, Appsilon’s CEO and CTO show their vision of challenges facing Shiny app authors and what is crucial to achieving success. They announce 3 key initiatives that Appsilon undertakes to empower data scientists to build spectacular Shiny Apps, including the {shiny.fluent} package.
About Filip Stachura: Filip is a CEO and a Co-founder of Appsilon. He holds a double degree in Applied Mathematics and Computer Science from the University of Warsaw. He started his professional career at Microsoft in California. Passionate about data analysis, elegant visualisations and tackling hard algorithmic and analytical problems.
About Marek Rogala: Marek Rogala is the CTO at Appsilon, where he drives innovation in R and Shiny as well as Machine Learning. He previously did software engineering at Google and at Domino Data Lab, where he worked on enabling data scientists to experiment and collaborate effectively.:
Learn more about the rstudio::global(2021) X-Sessions: https://blog.rstudio.com/2021/01/11/x-sessions-at-rstudio-global/
Marly Gotti | Risk Assessment Tools: R Validation Hub Initiatives | Posit
From rstudio::global(2021) Pharma X-Sessions, sponsored by ProCogia: we will present some of the resources and tools the R Validation Hub has been working on to aid the biopharmaceutical industry in the process of using R in a regulatory setting. In the talk, you will learn about the {riskmetric} R package, which measures the risk of using R packages, and you will also see a demo of the Risk Assessment Shiny application, which is an advanced user interface for {riskmetric}.
About Marly Gotti: Marly Gotti is a Senior Data Scientist at Biogen and a former RStudio intern. She is also an executive committee member of the R Validation Hub, where she advocates for the use of R within a biopharmaceutical regulatory setting.
Learn more about the rstudio::global(2021) X-Sessions: https://blog.rstudio.com/2021/01/11/x-sessions-at-rstudio-global/
Mike Garcia | R in Pharma: Intro to Shiny | Posit
Slides: https://garciamikep.github.io/rstudioglobal-2021-shiny-slides/slides.html#1
From rstudio::global(2021) Pharma X-Sessions, sponsored by ProCogia: in this introduction to Shiny app development, we begin with a quick review of visualization with {ggplot2} and then cover core concepts in app structure and reactive programming. After building several Shiny apps of increasing complexity, we wrap up with a demonstration of how to include your Shiny app in a dashboard using the {flexdashboard} package.
About Mike Garcia: Mike is a Data Science Consultant with ProCogia, with a background in Biostatistics and experience in clinical trial design and public health research. If not geeking out on data with a cup of coffee and spreading his passion for R, he’s probably out enjoying the outdoors.
Learn more about the rstudio::global(2021) X-Sessions: https://blog.rstudio.com/2021/01/11/x-sessions-at-rstudio-global/
To hear more about how other major pharmaceutical companies are transitioning to open source data science you can watch talks from this year’s R in Pharma conference: https://www.youtube.com/@RinPharma/playlists
At Posit, we have a dedicated Pharma team to help organizations migrate and utilize open source for drug development. To learn more about our support for life sciences, please see our dedicated Pharma page where you can book a call with our team. (https://posit.co/solutions/pharma )
Winston Chang | Making Shiny apps faster with caching | RStudio
Shiny’s 1.6 has a new function, bindCache(), which makes it easy to dramatically speed up reactive expressions and output rendering functions. This allows many applications to scale up to serve several times more users without an increase in server resources.
Note: Shiny 1.6.0 isn’t yet on CRAN, but will be in the next few days. In the meantime, you can install it with:
remotes::install_github(““rstudio/shiny@rc-v1.6.0 "”)
About Winston: Winston is a software engineer at RStudio. He holds a Ph.D. in psychology from Northwestern University and is the author of R Graphics Cookbook, published by O’Reilly Media

Joe Cheng | Styling Shiny apps with Sass and Bootstrap 4 | Posit (2020)
Customizing the style–fonts, colors, margins, spacing–of Shiny apps has always been possible, but never as easy as we’d like it to be. Canned themes like those in the shinythemes package can easily make apps look slightly less generic, but that’s small consolation if your goal is to match the visual style of your university, corporation, or client.
In theory, one can “just” use CSS to customize the appearance of your Shiny app, the same as any other web application. But in practice, the use of large CSS frameworks like Bootstrap means significant CSS expertise is required to comprehensively change the look of an app.
Relief is on the way. As part of a round of upgrades to Shiny’s UI, we’ve made fundamental changes to the way R users can interact with CSS, using new R packages we’ve created around Sass and Bootstrap 4. In this talk, we’ll show some of the features of these packages and tell you how you can take advantage of them in your apps.
Resources: https://speakerdeck.com/jcheng5/styling-shiny

Mine Çetinkaya-Rundel | Making the Shiny Contest | RStudio (2020)
In January 2019 RStudio launched the first-ever Shiny contest to recognize outstanding Shiny applications and to share them with the community. We received 136 submissions for the contest and reviewing them was incredibly inspiring and humbling. In this talk, we shine a spotlight on the backstage: the inspiration behind the contest, the process of evaluation, what we learned about Shiny developers and how we can better support them, and what we learned about running contests and how we hope to improve the Shiny Contest experience. We also highlight some of the winning apps as well as the newly revamped Shiny Gallery, which features many noteworthy contest submissions. Finally, we introduce the new process for submitting your apps to the Shiny Gallery and, of course, to Shiny Contest 2020! https://rstudio.com/resources/rstudioconf-2020/making-the-shiny-contest/

Yihui Xie | One R Markdown Document, Fourteen Demos | RStudio (2020)
R Markdown is a document format based on the R language and Markdown to intermingle computing with narratives in the same document. With this simple format, you can actually do a lot of things. For example, you can generate reports dynamically (no need to cut-and-paste any results because all results can be dynamically generated from R), write papers and books, create websites, and make presentations. In this talk, I’ll use a single R Markdown document to give demos of the R packages rmarkdown,
- bookdown for authoring books (https://bookdown.org ),
- blogdown for creating websites (https://github.com/rstudio/blogdown) ,
- rticles for writing journal papers (https://github.com/rstudio/rticles) ,
- xaringan for making slides (https://github.com/yihui/xaringan) ,
- flexdashboard for generating dashboards (https://github.com/rstudio/flexdashboard) ,
- learnr for tutorials (https://github.com/rstudio/learnr) ,
- rolldown for storytelling (https://github.com/yihui/rolldown) ,
And the integration between Shiny and R Markdown. To make the best use of your time during the presentation, I recommend you to take a look at the rmarkdown website in advance: https://rmarkdown.rstudio.com
Emily Robinson | Building an AB testing analytics system with R and Shiny | RStudio (2019)
Online experimentation, or A/B Testing, is the gold standard for measuring the effectiveness of changes to a website. While A/B testing is used at tens of thousands of companies, it can seem difficult to parse without resorting to expensive end-to-end commercial options. Using DataCamp’s system as an example, I’ll illustrate how R is actually a great language for building powerful analytical and visualization A/B testing tools. We’ll first dive into our open-source funneljoin package, which allows you to quickly analyze sequential actions using different types of behavioral funnels. We’ll then cover the importance of setting up health checks for every experiment. Finally, we’ll see how Shiny dashboards can help people monitor and quickly analyze multiple A/B tests each week.
VIEW MATERIALS http://bit.ly/rstudio19
About the Author Emily Robinson I work at DataCamp as a Data Scientist on the growth team. Previously, I was a Data Analyst at Etsy working with their search team to design, implement, and analyze experiments on the ranking algorithm, UI changes, and new features. In summer 2016, I completed Metis’s three-month, full-time Data Science Bootcamp, where I did several data science projects, ranging from using random forests to predict successful projects on DonorsChoose.org to building an application in R Shiny that helps data science freelancers find their best-fit jobs. Before Metis, I graduated from INSEAD with a Master’s degree in Management (specialization in Organizational Behavior). I also earned my bachelor’s degree from Rice University in Decision Sciences, an interdisciplinary major I designed that focused on understanding how people behave and make decisions
James Blair | Democratizing R with Plumber APIs | RStudio (2019)
The Plumber package provides an approachable framework for exposing R functions as HTTP API endpoints. This allows R developers to create code that can be consumed by downstream frameworks, which may be R agnostic. In this talk, we’ll take an existing Shiny application that uses an R model and turn that model into an API endpoint so it can be used in applications that don’t speak R.
VIEW MATERIALS https://bit.ly/2TXfFR5
About the Author James Blair James holds a master’s degree in data science from the University of the Pacific and works as a solutions engineer. He works to integrate RStudio products in enterprise environments and support the continued adoption of R in the enterprise. His past consulting work centered around helping businesses derive insight from data assets by leveraging R. Outside of R and data science, James’s interests include spending time with his wife and daughters, cooking, camping, cycling, racquetball, and exquisite food. Also, he never turns down a funnel cake
Eric Nantz | Effective use of Shiny modules in application development | RStudio (2019)
As a Shiny application grows in scale, organizing code into reusable and streamlined components becomes vital to manage future enhancements and avoid unnecessary duplication. Shiny modules are customized R functions that are easily reused multiple times within an application by avoiding namespace collisions and assist with organizing the code base. Like R functions, modules can be simple utilities or elaborate pieces with multiple inputs and outputs. While the process of creating a module is uncomplicated, application developers can quickly encounter challenges including communication among modules, defining logical compositions, and avoiding hidden state modifications. In this talk, we will introduce practical principles and techniques developers can leverage to address these issues head-on such as documenting modules, passing parameters and return values effectively between modules, and how nesting modules enables dynamic user interfaces with minimal overhead.
VIEW MATERIALS https://rpodcast.github.io/rsconf-2019
About the Author Eric Nantz I have a broad background in statistics, computer science, and system administration which gives me a unique set of skills for using state-of-the-art technology and techniques to accomplish important and innovative data analyses. In my professional role as a statistician, I support the design and analyses of clinical trials evaluating treatments for auto-immune disorders. I also perform statistical analyses of specialized biomarkers utilizing cutting-edge statistical software such as R and high-performance computing infrastructures. I am also the creator, producer, and host of the R-Podcast. The R-Podcast is dedicated to helping those who are new to statistical computing develop their skills and confidence in using the free and open-source statistical computing package called R to get their data analyses done
Hao Zhu | Empowering a data team with RStudio addins | RStudio (2019)
RStudio addins provide a mechanism to extend RStudio in various ways. Addins can interact with the RStudio IDE through RStudio API. It can also provide users a graphical interface with the power of Shiny. In practice, we found it very useful for enhancing or streamlining interaction with data and computing infrastructure. In this talk, we will demonstrate how our team develops and uses RStudio addins to empower our work. You will see some internal tools created to help us manage database connections, and an addin which helps us access external cloud computing resources. We will also show an example of using the addins in rcrossref and citr to download and manage citation and literature databases during rmarkdown document development.
VIEW MATERIALS https://github.com/hebrewseniorlife/addin_demo
About the Author Hao Zhu Hao is a data analyst and software developer working at the Hinda and Arthur Marcus Institute for Aging Research. He completed his training at Boston University School of Medicine in the program on Clinical Investigation. His interests include research reproducibility, data visualization and machine learning. At the Marcus Institute, he works with different teams on various topics, ranging from smartphone motion sensors to MRI images, and helps researchers understand their data by creating analytical reports and web applications. At the same time, Hao leads the development of R packages in the Biostatistics Core. He has contributed multiple R packages to the open source R community, such as kableExtra and memor. He also has a passion for teaching and has mentored several students at the Marcus Institute
Jim Hester | It depends: A dialog about dependencies | RStudio (2019)
Software dependencies can often be a double-edged sword. On one hand, they let you take advantage of others’ work, giving your software marvelous new features and reducing bugs. On the other hand, they can change, causing your software to break unexpectedly and increasing your maintenance burden. These problems occur everywhere, in R scripts, R packages, Shiny applications and deployed ML pipelines. So when should you take a dependency and when should you avoid them? Well, it depends! This talk will show ways to weigh the pros and cons of a given dependency and provide tools for calculating the weights for your project. It will also provide strategies for dealing with dependency changes, and if needed, removing them. We will demonstrate these techniques with some real-life cases from packages in the tidyverse and r-lib.
VIEW MATERIALS https://speakerdeck.com/jimhester/it-depends
About the Author Jim Hester Jim is a software engineer at RStudio working with Hadley to build better tools for data science. He is the author of a number of R packages including lintr and covr, tools to provide code linting and test coverage for R
Barret Schloerke | Reactlog 2.0 Debugging the state of Shiny | RStudio (2019)
The revamped reactlog provides an updated visual display to traverse through the reactive behavior within your shiny application. Using live shiny applications, we will use reactlog’s directed dependency graph to find missing reactive dependencies in “working” applications and address suboptimal reactive coding patterns. Correcting these coding patterns will reduce the amount of calculations done by shiny and keep reactive objects from being created unnecessarily.
VIEW MATERIALS http://github.com/schloerke/presentation-2019-01-18-reactlog
About the Author Barret Schloerke I specialize in Large Data Visualization where I utilize the interactivity of a web browser, the fast iterations of the R programming language, and large data storage capacity of Hadoop

Nic Crane | The future’s Shiny: Pioneering genomic medicine in R | Posit (2019)
Shiny’s expanding capabilities are rapidly transforming how it is used in an enterprise. This talk details the creation of a large-scale application, supporting hundreds of concurrent users, making use of the future and promises packages. The 100,000 genomes project is an ambitious exercise that follows on from the Human Genome Project - aiming to put the UK at the forefront of genomic medicine, with the NHS as the first health service in the world to offer precision medicine to patients with rare diseases and cancer. Data is at the heart of this project; not only the outputs of the genomic sequencing, but vast amounts of metadata used to track progress against the 100,000 genome target and the status and path of each case through the sample tracking pipeline. In order to make this data readily available to stakeholders, Shiny was used to create an application containing multiple interactive dashboards. A scaled-up version of the app is being rolled out in early 2019 to a much larger audience to support the National Genomics Informatics Service, with the challenge of creating a complex app capable of supporting so many users without grinding to a halt. In this talk, I will explain why Shiny was the obvious technology choice for this task, and discuss the design decisions which enabled this project’s success.
VIEW MATERIALS https://github.com/thisisnic/rstudio-conf-2019
About the Author Nic Crane Nic Crane is a Data Scientist at Elucidata, and has formerly worked for Mango Solutions and IBM. She is passionate about learning and teaching all things data science
Joe Cheng | Shiny in production: Principles, practices, and tools | RStudio (2019)
Shiny is a web framework for R, a language not traditionally known for web frameworks, to say the least. As such, Shiny has always faced questions about whether it can or should be used “in production”. In this talk we’ll explore what “production” even means, review some of the historical obstacles and objections to using Shiny for production purposes, and discuss practices and tools that can help your Shiny apps flourish.
About the Author: Joe Cheng is the Chief Technology Officer at RStudio. Joe was the original creator of Shiny, and leads the team responsible for Shiny and Shiny Server. GitHub: https://github.com/jcheng5
Materials: https://speakerdeck.com/jcheng5/shiny-in-production

Jeff Allen | RStudio Connect Past, present, and future | RStudio (2019)
RStudio Connect is a publishing platform that helps to operationalize the data science work you’re doing. We’ll review the current state of RStudio including its ability to host Shiny applications and Plumber APIs, schedule and render R Markdown documents, and manage access. Then we’ll unveil some exciting new features that we’ve been working on, and give you a sneak peek at what’s coming up next.
Materials: http://rstd.io/rsc170
RStudio Connect Deployments with GitHub Webhooks and Jenkins
This video complements the article at https://medium.com/@kelly.obriant/rstudio-connect-deployments-with-github-webhooks-and-jenkins-c0dd8a82b986 TL;DR: New content management Connect server APIs are easy to integrate with programmatic deployment workflows.
Content Management API Resources:
- API Reference: https://docs.rstudio.com/connect/api/
- User Guide: https://docs.rstudio.com/connect/user/cookbook.html#recipes (Deploying Content)
- Example deployment scripts: https://github.com/rstudio/connect-api-deploy-shiny
Intermediate Shiny 2-Day-Workshop - rstudio::conf(2019L)
What is the 2-day Intermediate Shiny Workshop? That’s a great question, I’m glad you asked….
Register at https://rstd.io/conf Learn more at https://rstd.io/conf-agenda
Intermediate Shiny Workshop - 2 Days
This two-day workshop is designed by Shiny author Joe Cheng for the experienced Shiny developer. By taking this workshop, you’ll improve your understanding of shiny’s foundations and learn how to make the most of reactive programming, techniques for extending and improving UI, techniques for debugging and tools for modularizing applications. By the end of the two days, you’ll be able to push the envelope of what you and your organizations can do with Shiny.
You should take this workshop if you are already familiar with the basics of shiny and you have built your own simple applications.
This course is led by friend of RStudio and Education Practice Lead at RStudio Certified Partner Mango Solutions, Aimee Gott. Winston Chang, RStudio Data Scientist, Developer, and author of the R Graphics Cookbook will join Aimee to provide hands-on advice and answers to the Shiny application development questions that stump you.
Speakers: Aimee Gott (Mango Solutions), with Winston Chang (RStudio)


Shiny Train-the-Trainer Workshop - rstudio::conf(2019L)
What is the 2-day Shiny Train-the-Trainer Workshop? That’s a great question, I’m glad you asked.
Register at https://rstd.io/conf Learn more at https://rstd.io/conf-agenda
Shiny Train-the-Trainer Certification Workshop - 2 Day
- Day 1 of the course will be co-taught by Mine Cetinkaya-Rundel and Garrett Grolemund, RStudio Data Scientists and Professional Educators.
- On Day 2, Mine will teach the Shiny track and Garrett will teach the Tidyverse track.
This two-day workshop will equip you to teach R effectively. We will draw on RStudio’s experience teaching R to recommend tips for designing, teaching, and supporting short R courses.
On Day 1 of the course, you will learn practical activities that you can use immediately to improve your presentation style, learning outcomes, and student engagement. You will leave the class with a cognitive model of learning that you can use to develop your own effective workshops or courses within your organization. The course will also cover how to use RStudio Cloud and its curriculum of tutorials to jump-start your own lessons.
On Day 2 of the course, participants will have the option to choose one of two tracks: Teaching the Tidyverse or Teaching Shiny.
- Teaching Shiny: Classroom examples will focus on teaching Shiny at the beginner and intermediate levels. The course materials will build on RStudio’s Mastering Shiny workshop as well as the upcoming book from the author of the Shiny package, Joe Cheng, and they will cover the entire lifecycle of a Shiny app: build ️ improving ️ share. Participants will receive the course materials for teaching Mastering Shiny. You should take this workshop if you work as a training partner and want to qualify as an RStudio Certified Shiny Instructor or if you are an advocate for R in your organization. You should be proficient in Shiny already and be prepared to submit examples of your work. Prior teaching experience is helpful, but not required. Please bring a laptop and a device that has video recording capabilities (such as a laptop or cell phone).
Instructors: Garrett Grolemund, Mine Çetinkaya-Rundel


Tidyverse Train-the-Trainer Certification Workshop - rstudio::conf(2019L)
What is the 2-day Tidyverse Train-the-Trainer Workshop? That’s a great question, I’m glad you asked.
Register at https://rstd.io/conf Learn more at https://rstd.io/conf-agenda
Tidyverse Train-the-Trainer Certification Workshop - 2 Days
- Day 1 of the course will be co-taught by Mine Cetinkaya-Rundel and Garrett Grolemund, RStudio Data Scientists and Professional Educators.
- On Day 2, Mine will teach the Shiny track and Garrett will teach the Tidyverse track.
This two-day workshop will equip you to teach R effectively. We will draw on RStudio’s experience teaching R to recommend tips for designing, teaching, and supporting short R courses.
On Day 1 of the course, you will learn practical activities that you can use immediately to improve your presentation style, learning outcomes, and student engagement. You will leave the class with a cognitive model of learning that you can use to develop your own effective workshops or courses within your organization. The course will also cover how to use RStudio Cloud and its curriculum of tutorials to jump-start your own lessons.
On Day 2 of the course, participants will have the option to choose one of two tracks: Teaching the Tidyverse or Teaching Shiny.
- Teaching the Tidyverse: Classroom examples will focus on how to teach students to do data analysis with the Tidyverse. We will use Master the Tidyverse, which is an award-winning two-day workshop developed by RStudio, as an example. Participants will receive the course materials for teaching Master the Tidyverse. You should take this workshop if you work for a training partner and want to qualify as an RStudio Certified Tidyverse Instructor or if you are an advocate for R in your organization. You should be proficient in the Tidyverse already and be prepared to submit examples of your work. Prior teaching experience is helpful, but not required. Please bring a laptop and a device that has video recording capabilities (such as a laptop or cell phone).
Instructors: Garrett Grolemund, Mine Çetinkaya-Rundel

Shiny and R to Build Dynamic Dashboards
In a static report, you answer known questions. With a dynamic report, you give the reader the tools to answer their own questions. Unleash the full flexibility of analytic app development with Shiny.
In this talk, Winston Chang will discuss how to use R and Shiny to quickly create data dashboards. You’ll also get a glimpse of some new features in Shiny for presenting and interacting with data. He will also demonstrate how you can easily deploy apps to the web via RStudio’s hosting service shinyapps.io.
Related blog post: https://blog.rstudio.com/2017/05/18/shinydashboard-0-6-0/

Interactive Graphics with Shiny | RStudio Webinar - 2016
This is a recording of an RStudio webinar. You can subscribe to receive invitations to future webinars at https://www.rstudio.com/resources/web … . We try to host a couple each month with the goal of furthering the R community’s understanding of R and RStudio’s capabilities.
We are always interested in receiving feedback, so please don’t hesitate to comment or reach out with a personal message
RStudio - Shiny Server Pro Architecture | RStudio Webinar - 2016
This is a recording of an RStudio webinar. You can subscribe to receive invitations to future webinars at https://www.rstudio.com/resources/web … . We try to host a couple each month with the goal of furthering the R community’s understanding of R and RStudio’s capabilities.
We are always interested in receiving feedback, so please don’t hesitate to comment or reach out with a personal message
Shiny Gadgets with R | RStudio Webinar - 2016
This is a recording of an RStudio webinar. You can subscribe to receive invitations to future webinars at https://www.rstudio.com/resources/web … . We try to host a couple each month with the goal of furthering the R community’s understanding of R and RStudio’s capabilities.
We are always interested in receiving feedback, so please don’t hesitate to comment or reach out with a personal message