Eric flies solo for this episode with a recap of his positconf 2024 adventures! Also how not to panic when you see a merge conflict in Git, the genesis of the new R ARUG community in India, and a great primer on creating your own Quarto templates.
Episode Links
Episode Links
- This week's curator: Eric Nantz: @[email protected] (Mastodon) and @theRcast (X/Twitter)
- Please let me merge before I start crying and other things I've said at the Git terminal
- A New R Community in Ahmedabad, India, focused on Clinical Research and Pharmaceutical Industries
- Designing and deploying internal Quarto templates
- Entire issue available at rweekly.org/2024-W34
- Shiny-based clinical submissions using WebAssembly https://rpodcast.github.io/shiny-webr-posit2024/#/section
- Introducing saperlipopette, a package to practice Git! https://masalmon.eu/2024/01/18/saperlipopette-package-practice-git/
- NORC crime tracker Shiny app https://livecrimetracker.norc.org/#home
- Use the contact page at https://serve.podhome.fm/custompage/r-weekly-highlights/contact to send us your feedback
- R-Weekly Highlights on the Podcastindex.org - You can send a boost into the show directly in the Podcast Index. First, top-up with Alby, and then head over to the R-Weekly Highlights podcast entry on the index.
- A new way to think about value: https://value4value.info
- Get in touch with us on social media
- Eric Nantz: @[email protected] (Mastodon) and @theRcast (X/Twitter)
- Mike Thomas: @mike[email protected] (Mastodon) and @mikeketchbrook (X/Twitter)
- You Are Not Confined - Final Fantasy IX - Sonicade - https://ocremix.org/remix/OCR01064
- Seven Pipes to Heaven - Super Mario Land - Nostalvania - https://ocremix.org/remix/OCR03256
[00:00:03]
Eric Nantz:
Hello, friends. We're back of episode 174 of the Our Weekly Highlights podcast. My name is Eric Nance, and I'm so delighted you joined us from wherever you are around around the world on your favorite podcast player or other media device. This is the weekly show where we talk about the latest happenings and resources that are shared every single week on the rweekly.org site. And, again, my name is Eric, and this is usually the part where I tell you I really don't do this alone anymore. But, unfortunately, I am flying solo today because my awesome co host, Mike Thomas, is cranking on on a tight deadline. He's he's creating some, sure, very innovative solutions with VAR and probably Shiny involved. But he's heads down with that, so he's not able to join us this week. Then he'll be back soon enough. And with the week off that we had last week, I wanted to make sure we got an episode out to you this week. So, yeah, I am fine solo, but this was a rather unique situation where, yeah, guess who the curator is. It was yours truly. Yay.
And it just so happened to be the week that I was at Positconf, which is actually gonna be when I first talked to you about here. And, by the way, if you're listening to this show on one of the more modern podcast players, you may notice that we have chapter markers inside. So if you're not as interested in learning about my experience at POSITCONF, feel free to skip over to the next section. But since it's fresh off, my week at POSITCONF, I wanted to take a few minutes to share some of my takeaways and just my overall experience. First of all, yep, Seattle was a nice area. I've never been there before, but, yeah, the Pacific Northwest was was quite nice on the ice, so to speak, and had relatively smooth travel there. And right away, I was, you know, pretty busy, I must say.
My first day, I guess, conference related, if you will, was attending what we call the r pharma summit, which happened last year at PasaComp, but I could not join because I was actually teaching a workshop about Shiny with my co host, Mike, last year, which again was very well received. But this time around, they had the summit the day before workshop. So then a lot of my colleagues are in the pharma industry that I've been collaborating with quite a bit with the r pharma conference and my efforts of the submissions working group and whatnot, and it was, very nice to collaborate on some potential new project ideas, going over some new things that we can do with Shiny in the clinical space, and things we can do with data formats and package validations and qualifications as a whole. So great shout out to all my our pharma peeps that were there, lots of great ideas and had a lot of engagement to pursue some new adventures that you may be hearing about very soon from yours truly.
So then the next day was the workshop day, and I have been enamored with the DuckDV database system, which you've heard us mention in many highlights of this year and last year. So I was thrilled to be given the opportunity to learn at a workshop this time around led by Kyro Muir who is the lead of Syncra Research, a consulting firm in Europe, and he is such a wizard with databases. Some of you know that he has spearheaded many of the R database packages. He's actually worked with the R Consortium to get funding for that effort, and it was thrilled to see him lay out some of the basics, but also some of the advanced features that DuckDV offers you as an R user, data scientists, trying to analyze large datasets, and I am more than ever convinced that this is a tooling that I need to pay attention to, and I want to start implementing in my future projects. So the workshop was awesome. A great mix of lectures and hands on exercises.
You know sometimes cliche but Wi Fi issues hampered us for the first hour but I was a good little student if you will and downloaded all the materials beforehand and was able to get it working on positron no less I decided to live dangerously and use positron beta version as, like, the IDE for working on the workshop exercises, and I've done a little bit of quirks here and there and actually performed quite well. So that was a good way for me to test the waters of Positron in a, real applied setting. So I'll definitely have more thoughts on that as I get more use of it, but, overall, again, the workshop was spectacular and DuckDV is definitely going into my toolbox very, very soon.
And on to the main conference itself. So yours truly had the pleasure of giving a a talk about my adventures of WebAssembly and Shiny in the context of my efforts of the r consortium submissions working group. It was early in the conference. It was right after the first keynote and one of the first sessions, which had the awesome name of drugs not bugs, you know, efficient uses of orange and Python in in clinical work. And, again, really really fun presentation. I hope it was well received. It seemed like it was. Definitely had more of a story to tell in the initial goings, but my main point I wanted to articulate was that this is a fundamental paradigm, you know, shift in technology that I think can really supercharge many efforts were tedious static reports of some nature could be made interactive and shared efficiently across, let's say, different reviewers or different audiences.
So I was thrilled to be given the opportunity and, certainly, my thanks to Pazit for accepting my abstract and letting me be a part of this session. Had a really good turnout in the room. Lots of great questions both, in the q and a panel as well as afterwards. So, again, huge thanks to everybody that listened there live, and the recordings will be out fairly soon. And I can't wait to share that with all of you. Nonetheless, I will put a link to my slides in the show notes in case you wanna look at that before the recording. It's got some nice links to the GitHub repository and whatnot that I've created for the projects, and like I alluded to in the presentation, there's much more to come in this space as we finalize our submission to the FDA, as well as our adventures with the container piece of the submissions working group pilot as well.
So, yeah. 1 then I could breathe again so to speak with the presentation done and I attended many talks and, you know, as usual it's hard to choose and you got a lot of good talks happening at the same time. I've learned some great new things about Shiny development that I'm gonna take back in my my work, especially with some production apps I'm working on currently. Some good best practices of user interfaces and other great tooling that I think I'm gonna adopt quite quite soon in terms of structure and ways I organize some of my files and whatnot. Lots of good content as well.
And, honestly, one of the best features of these, conferences is the hallway conversation. So lots of great conversations both with my fellow compatriots in life sciences, but also listeners out there that are fans of this very podcast that came to say hi and I was very appreciative of that. It's always humbling to hear that this little humble effort that myself and Mike lead here is, helping people in their data science journeys That never gets old no matter how long I've been doing something like this, and having that feedback is a great way to keep motivated and keep going with this effort.
So I met a lot of new faces as well. I met, Colin Gipsy from jumping rivers. He was there at the conference. I had lots of great conversations with him. And, also, I was thrilled to meet Charlie Gao who had a joint presentation with my teammate, Will Landau, on the use of Mirai and crew for high performance computing and asynchronous processing. Wow. It was an awesome presentation. I can't wait for that recording to go out because Charlie and Will absolutely knocked that one out of the park and it was just the enthusiasm was infectious when you can see them talking about this, great tooling that they've been working on and, yeah, I was just kind of beaming with pride in the audience there where I barely found the seat it was almost standing room only so lots of lots of excitement in this space. So credit to Charlie and Will for a fantastic talk there. But, yeah, it was an absolute thrill to meet Charlie in person as well and met many other many other people I've seen online, you know, lots of great conversations and in fact we had a mini reunion of sorts of our streamer group. The the group of including Tan Ho, Daniel, Kyle, and others, and Jeremy as well from posit. We we met him for for the first time in person.
It was great, great to catch up on memories even though we've all, for better or worse, have not been able to stream as much as we would like since those early days of the streaming during the COVID pandemic. Nonetheless, it was great to catch up on memories and see what they're all up to and, yeah, lots of lots of fun time to be had in those conversations as well. And certainly, yeah, the conference kind of flew by at that point. And before I know it, I'm flying out early Thursday morning back here to the Midwest. That was a early early flight so that day was kind of foggy, but I was already looking at my notes of things I want to research when I get back, and I'm already doing that research as of now. So lots of overall a really great experience, and next year it will be in Atlanta, I think, for the first time.
So who knows what my adventures will lead to in terms of that conference. However, I'll be given another talk, maybe another workshop. You never know. But, nonetheless, it was a great experience. Again, I think my biggest takeaways are catching up with some of my my good friends from online, as well as meeting some new faces as well, and, yeah, some really spectacular talks and offer conversations throughout. So again, the recording should be out hopefully in a couple months, and you can bet that our week we will be featuring those when they are released. Well, enough of my positconf wrap up, and certainly when Mike rejoins us on the podcast we'll be sure to get his takeaways from his experience, and it was always fun to meet with him as well. We don't get to meet face to face often enough. We haven't met since last year at the conference, so it was great to catch up with him as well.
Well, without further ado, let's dive into our actual r weekly issue. And as I mentioned earlier, it was curated by yours truly, but thank goodness we have some great tooling and automation to put the post together. So I had tremendous help from our fellow Arruku team members and contributors like you all around the world with your poll requests and suggestions. Our first highlight to discuss today is actually stemming from the aforementioned PosiConf and one of the talks that I could not see live, but I was able to catch the special, you might say, sneak peek at the recording. And it is a topic that if you've been developing our code for a little bit, whether solo or in an organization with team members, you're likely leveraging version control.
How you leverage it, you know, that can vary across the spectrum, whether you're, you know, a git wizard or you're just doing enough to get that commit up to GitHub so to speak but our first, highlight today is a presentation from Megan Harris who is a data scientist at the prostate cancer clinical trials consortium and in fact she was also one of these students at the database workshop I remember she was sitting in the front row where I was close to but in any event her talk was titled please let me merge before I start crying and other things I've said at the git terminal.
Yeah. I feel seen with my early days will get when I read that title. So, obviously, when you see the recording of this, you'll get a lot more of the I'll call the first half of the presentation. We got the links of the slides in the show notes. And, by the way, Megan, you are easily one of the top, like, slide crafters I've ever seen with quartile. These slides need to be seen to be believed. It's a great mix of visuals and just really gets to the point of what she's trying to address. But, yeah, really in great engaging talk. And some of the takeaways I'll call out as I as I saw the talk and thought about how it relates to my journey we get.
The biggest thing is that it is easy, especially if you're new to this, that when you encounter an issue we get to kind of almost freeze a bit and might have, like, a panic moment of figuring out what did I just break and more importantly, how the heck do I get out of this emergency situation. But one of Megan's big talking points here is that there really aren't a lot of emergency situations we'll get. You can handle this. You just gotta kind of step back, calm down, and, you know, leverage some practical tips to get through situations such as merge conflicts.
So she does a great job in this in this presentation about, you know, just what exactly emerged conflict actually is and really giving you as the as a git user a few different ways that you can interact with trying to solve these merge conflicts. And, certainly, some of these are gonna be very basic, whether you're booting up a text editor, looking at the ways that a merge conflict is denoted, web what's the syntax for the branch that's trying to come in that particular side of development versus the branch is trying to merge into. There's different notation around how that looks and it can look very kind of cryptic at first, but once you get the hang of it, it's really not that bad.
And she has a great snippet in the slide deck of her literally solving the example merge conflict in her slides with the dates being different for what was called a data cut, and she literally just shows how in a text editor within our studio itself she just took one of those two dates cut out the cruft committed it and pushed it up the main or master branch so it does once you kind of get that sense of, you know what, all merge conflicts will eventually boil down to something like that, and perhaps there's more than a handful of lines, but the process is the same.
Step back, don't panic, and find what you're comfortable with to resolve that conflict. And, really, it's up to you how you resolve that. She has a fun little, shout out to retro gamers like me about how you could put some fun ASCII art in your in your, in your, final file that you're gonna push up. Maybe that's not a good idea for production code, but the retro gamer may sure loved it. But they really the other key takeaway I'll highlight here is that merge conflicts you often will find yourself, especially you're new to this, blaming git for all your troubles. Like, if I just didn't have to use git, I wouldn't have to worry about this. You know what? Maybe, again, take a step back because these conflicts are not really related to Git itself. They are more practical in nature.
Maybe you and a team member didn't communicate clearly enough on who was doing what. And maybe there's a more optimal way to set up the structure of your project so that merge conflicts are minimized. And, honestly, to be proficient in these situations, you do have to do a little bit of, you know, upskilling, if you will, on, you know, the basics of git. Maybe you can get away with using a third party tool like GitHub desktop or the, the pane in r studio or the the version control pane where it gives you some point and click ways to get your commits done or revert or things like that, but it can't do everything.
Sometimes getting a little dirty, so to speak, with the terminal and exploring ways to kind of get out of danger so to speak if you're really nervous about dealing with that merge conflict. There's a there's a command called abort for your merge that you can get back to right where you left off before you started that merge, that merge request so there are little nuggets like this throughout her talk that I think once you get the better handle on and you have some real practice with it's not like something you can just watch this talk and immediately you know be changed forever You have to really put these things in practice.
Speaking of practice, she doesn't have this in her resources, but I'll call it out because it's been featured in our highlights podcast before. But my Al Salmon has created that fondly named r package called seperpultate. I probably got that wrong again. I sorry, Ma'al. But this is a great way for you to literally practice different situations of Git right in the confines of r itself. So we'll put that link in the show notes as well so you could put a lot of the principles that Megan is talking about here into practice in a non production type project, but it's gonna mimic these real world scenarios. So I think booting up that package in RStudio or your preferred IDE of choice is a great way to explore, you know, dealing with merge conflicts, dealing with the tooling around it, and not frankly ever tooling around git itself.
I think the best way to learn with git is to actually do something with it, and if you want like a you might say a safe space to do that with, my else package is a great way to do that. Again, fantastic talk by Megan. Can't wait for you all to see the recording, but she related to a lot of her journey we get to, her adventures of parenting and travel, which again is a parent who recently traveled there in the summer on a long road trip yes I completely relate to all that and it was a great to make those connections so again slides are in the show notes the recordings will be out hopefully in a couple months but highly recommend to check this out especially if you do get that little twinge of panic or despair whenever you think of git Moving on to our next highlight today. It's always wonderful to see the diverse nature of the art community, especially in terms of geographic distribution and ways of the community getting together in different avenues to share their knowledge and insights and really help each other in their journeys of using our data science.
So our next highlight is a new blog post on the R Consortium talking about the new R community in Ahmedabad, India that is called the Ahmedabad R user group or ARUG for short, and some of its journey to bring those in the life sciences industry in that region together to share their insights about r. And so the interview was with Sanket Sanjo Sanojia. Sorry if I didn't pronounce that right. He has many much experience in statistical programming, in data science in the clinical industry. And it was in about 2021 that he was meeting with some fellow collaborators and wondered how they could bring this growing community of our users in Amadaba together to share their knowledge, and, hence, they had the idea of setting up the ARAG group.
And it over time, they started to get together more, and then they actually, after a lot of planning, a lot of work to mentor new members and start the foundation so to speak, they had their first meetup earlier this year in July and this was a very highly anticipated event called r evolution shaping the future of clinical trials. Again, this is right up my wheelhouse, so to speak, where they had many different featured talks talking about the spectrum of where r is being used throughout the industry. All from, say, creating innovative Kaplan Meier plots or survival visualization, looking at ways of Shiny, you know, innovations with Shiny with different use cases, having a roundtable on the different trends in r and the ways to prepare for conferences in terms of getting the most out of that, and really just bringing people together, I think, is the key point here.
He talks about how they're leveraging platforms such as GitHub and Meetup to get in touch with the users, but in the end from what I've seen in this post it was a highly attended session and it looks like there is a lot of enthusiasm to to to level up each other along the way, wherever you're new to the industry and are are those that are wanting to give back so to speak some of their learnings. So the link the post has links to how people are interested in joining the group there are links to join on that but overall it is terrific to see our gaining a lot of momentum in this space and not just you know in my neck of the woods here in the United States but around the world whether in Europe or Asia Pacific or other parts of the world we're seeing R really take off to bring life sciences to another level so needless for me to say I'm here for it and I'm really great to it's really great to see these user groups spin up and really getting the community together.
Last but certainly not least, we're gonna close out the highlights, section today with a great use case in leveraging what is becoming a rapidly growing and very, you know, influential communication platform that we're all many of us are now using in our daily work, and that is quarto, of course. And in particular, when you are working in an organization and you have maybe you've done, say, a report or a slide deck and there's always, like, a few common themes or common elements that you want throughout these shared in your organization, what is the best way to get people started on the right foot so that you're all are kind of starting from the same template, if you will.
So this last highlight is addressing just that and it comes to us from Megan Hall, who is a technical product manager of the hockey group as Xelliss Analytics. And, coincidentally enough, that's also where my good friend, Tan Ho, is, is working as well as a machine learning and and software engineer and statistical data scientist as well. So credit to them for joining the conference. But Megan's, talk, which again I couldn't see live, but she has an accompanying blog post about how they have designed and deployed internal portal templates at Xelliss Analytics and some of the tips that you can take from this if you wanna go on this journey for creating internal resources around quartile.
So first of all, motivation for why you wanna do this, certainly for me, you wanna have consistency in, say, your organization's, like, theming of these different communication reports or slide decks, again, whatever have you. And you don't want every scientist or data scientist to create these by hand if you want to just make it easy for them to get started. So having a template I think is quite valuable and we've seen this also in the R markdown ecosystem quite a bit. Lots of templates have been shared in the community in respect to that and I think in quarto we've already starting to see that as well. But, again, you can't always use the publicly facing one. Sometimes you have various elements that you wanna share only within your organization, Hence, the need to figure out how to build these internally.
So what actually goes into a template? Megan talks about you want to put in probably some styling elements, whether it's CSS, custom theming, which again the quartal site does a terrific job of documenting how you can get one of these off the ground. So you might have, you know, say theming also associated with the visualizations you're doing. Maybe you have a set of core r packages that should be used in each report to help set up some of these more aesthetic elements. She talks about having customized themes for ggplot2 and the GT package for creating tables so that the the scientist who's developing this report can just already have that snippet of code ready to go to load these internal packages that are giving these themes.
So that's a great win right there for, you know, reducing manual effort. So she has examples about how they design a certain element to tell that a report is confidential and not to distribute it outside of their of their walls so to speak she talks about how they how you can go about customizing that element and where that actually goes in your theming and CSS files so that again you can just put that anywhere you like and if you're still you know learning the nuts and bolts of how CSS actually works trust me I'm no expert in this either she has a great tip about using the dev tools you know interactive element in chrome so you can get to the actual CSS for each element using its inspector or whatnot, and then on the fly experiment with different parameters such as like the rounding of corners around this box that she puts at the top of the report. So you can kind of demystify what can be, you know, quite quite, daunting I would say when you look at CSS for the first time. You're not really sure what these parameters are doing.
So really getting getting your hands on it in the browser itself is a great way to learn. She also points to resources like the Mozilla docs that are great for learning CSS as well, And so lots of lots of practical tips on that front. Well, it's one thing to create this bundle. How do you actually share it with the rest of your organization? Much like the R Markdown ecosystem, if you're in the you're in the r landscape like we are, you probably want to make an r package for it. And r packages work just as well with quartile templates as they have with r markdown templates.
So she has a great example with some visuals on how they have constructed a bundle where the package within its INST folder which is the part of a package where you can put ancillary or accompanying files that will get installed with the package itself when the user installs it on their system. She has folders for these extensions that hold the both the HTML and the LaTex or you might say PDF styling files so that both the printed version and PDF, so to speak, or the static version, as well as the web based HTML version have, you know, accompanying style files over its CSS, wherever it's custom LaTex code, along with the the quartile document that actually has the template itself.
And when the user utilizes a function, she calls it create Xeliss HTML for the HTML version. It will copy everything to their working directory and then get that template file set to go as a new file. And then the user can customize it as they wish, but they're already up and running with utilizing that template. And so she is, you know, gained inspiration from this from Spencer Sheehan and by proxy Tom Mach, who I also got to see at the conference. It was great to say hi to Tom, but she leveraged a lot of their previous resources that they've shared on their blog posts to put all this in action and then lastly in her post she has a nice animated gif to show what this actually looks like when the user sets this up a simple call to that Xelliss HTML function gives it a title and right there your portal document is is right there open with everything filled in.
What a great way to make this as easy as possible for your rest of your organization to leverage your innovative quartile templates. I definitely need to start doing this because I was just talking with Will about some day job stuff a couple weeks ago about, hey, we love using quartile for our slide decks. We, not the biggest fans of PowerPoint. At least I'm not. I don't think he is either. So we're thinking of making an organization template based in quartile for our slide decks because, well, it's another story for another day, but HTML interactive content.
Yeah. I think that's a little more engaging than PowerPoint stuff. That's a battle. That's gonna be a battle, so to speak, but one I want to take with quartle at my hip, so to speak, so that we can start leveraging interactive slide decks at my company. So this Megan's post here is very timely because I'm gonna use some of these principles and practice to to make all this happen. Well, much like I tell you every week there is so much more that goes into an r weekly issue. So we we will close-up here. I'll talk about an additional find that I have. Again, somewhat related to the conference, but it was eye opening to say the least.
So as I mentioned, I visited the shiny track, at at positconf, multiple times after my presentation, and there was a terrific session on kind of innovations with Shiny. One of the talks was from Keegan Rice talking about what are some what are ways that you can build, you know, user friendly data exploration, you know, paradigms in your Shiny application. And she, she was inspired by, you know, many of the principles that we talked about in the community quite a bit, but she shared kind of the what were the the boilerplate of how she created this live crime tracker as part of her daily work at the NORC at the University of Chicago.
And this application, my goodness, when you look at this you are gonna be blown away. This is amazing. An amazing application. You would not know it's shiny by looking at this. It actually has a lot of vibes similar to what I saw shared at the Shiny conference earlier this year by Appsilon. I'm one of the apps that, that that I was enamored by. Great organization, great use of interactive maps with tooltips throughout, and a great, you know, comprehensive documentation that's styled very clearly both about the tracker crime tracker itself and the methodology around it. This is a great showcase of great user experience, you know, elements.
And again, if you just shared it with somebody there is nothing here that, you know, screams shiny so to speak in terms of the typical UI layout. I don't exactly know exactly what's under the hood on this just yet. I just know that it is a very engaging experience and, knock on wood, so to speak, if things go well later this year, we may, dive into this with with her even more detail if I can spin up the shiny developer series once again because I'm hoping to have Keegan on for an episode that we dive into this much further. But in any event, if you want to be inspired by optimal UX design in a shiny app, I invite you to check out this live crime tracker part of the NRC at the University of Chicago by Keagan Rice.
Alright. As much as I'd like to talk about the rest of the issue, I'm gonna have to close-up shop here, so to speak. But as always, where you can go to find more information on our weekly, well, hopefully, it's one place to go, and that's our weekly dot org. That's where everything that's our central hub, if you will. That's where every issue lands on the on the front page as well as the archive of all previous issues in case you missed any in the past. There was a great issue last week where Mike and I couldn't record because we were literally at deposit comp, so you'll wanna check out the archive if you haven't already. And, also, what's the best way to help the project?
Getting involved. We have multiple ways to get involved. If you've seen that great new blog post package that just came through CRAN or that great resource that you saw throughout or maybe one that you created yourself, we're just a pull request away. It's at the top right corner, a little banner there. Click that. You'll be taken directly to the pull request template in GitHub. You can do it right in the GitHub editor. No friction required on that front. It's all marked down all the time. I've lived marked down. Who knows? Maybe in my dreams, I'll dream of markdown. Well, maybe not that far. Either way, I use markdown so much. Hopefully, it's intuitive enough for you to put in that link to that great resource. And, also, we are always looking for additional curators to join our team. There is more information on that on the our weekly GitHub repository if you're interested in joining our team where we definitely could use some additional help, you know. People have real lives and we've lost a couple of curators along the way to their real life duties, so being able to have others join the team would be a welcome addition.
Also, we love to hear from you in the audience for this humble little podcast. On the show notes of this podcast, you'll find a link to our contact page where you can get in touch with us directly on that front. And if you're listening to a mod with a modern podcast app like Podverse, Found, or Cast o matic. You can send us one little boost along the way and share your love for the show there. And, also, I am on social media, you know, sporadically on the weapon x thing with at the r cast, but you'll find me more often on Mastodon where I am at our podcast at podcast index on social, and I'm also on LinkedIn as well. You just search my name and you will find me there.
So, again, thank you so much for joining me in the solo effort today. It's never the same without my trusting cohost, but he'll be back soon enough. And again, huge thank you to all of you at the conference that said hi and also best wishes to many of the, you know, colleagues I met. There are more than a few of you that unfortunately have contracted COVID, so I hope you're on the road to recovery quite well. I know in these times, these events, there's always at risk, but I'm thinking of you all And thank you again so much for the great conversations, and I hope you all recover soon enough. Well, that'll do it for this episode of our weekly highlights.
Thank you so much for joining me today, and we or at least I will hopefully be back with another episode either next week or shortly thereafter. Until then, that's end of line.
Hello, friends. We're back of episode 174 of the Our Weekly Highlights podcast. My name is Eric Nance, and I'm so delighted you joined us from wherever you are around around the world on your favorite podcast player or other media device. This is the weekly show where we talk about the latest happenings and resources that are shared every single week on the rweekly.org site. And, again, my name is Eric, and this is usually the part where I tell you I really don't do this alone anymore. But, unfortunately, I am flying solo today because my awesome co host, Mike Thomas, is cranking on on a tight deadline. He's he's creating some, sure, very innovative solutions with VAR and probably Shiny involved. But he's heads down with that, so he's not able to join us this week. Then he'll be back soon enough. And with the week off that we had last week, I wanted to make sure we got an episode out to you this week. So, yeah, I am fine solo, but this was a rather unique situation where, yeah, guess who the curator is. It was yours truly. Yay.
And it just so happened to be the week that I was at Positconf, which is actually gonna be when I first talked to you about here. And, by the way, if you're listening to this show on one of the more modern podcast players, you may notice that we have chapter markers inside. So if you're not as interested in learning about my experience at POSITCONF, feel free to skip over to the next section. But since it's fresh off, my week at POSITCONF, I wanted to take a few minutes to share some of my takeaways and just my overall experience. First of all, yep, Seattle was a nice area. I've never been there before, but, yeah, the Pacific Northwest was was quite nice on the ice, so to speak, and had relatively smooth travel there. And right away, I was, you know, pretty busy, I must say.
My first day, I guess, conference related, if you will, was attending what we call the r pharma summit, which happened last year at PasaComp, but I could not join because I was actually teaching a workshop about Shiny with my co host, Mike, last year, which again was very well received. But this time around, they had the summit the day before workshop. So then a lot of my colleagues are in the pharma industry that I've been collaborating with quite a bit with the r pharma conference and my efforts of the submissions working group and whatnot, and it was, very nice to collaborate on some potential new project ideas, going over some new things that we can do with Shiny in the clinical space, and things we can do with data formats and package validations and qualifications as a whole. So great shout out to all my our pharma peeps that were there, lots of great ideas and had a lot of engagement to pursue some new adventures that you may be hearing about very soon from yours truly.
So then the next day was the workshop day, and I have been enamored with the DuckDV database system, which you've heard us mention in many highlights of this year and last year. So I was thrilled to be given the opportunity to learn at a workshop this time around led by Kyro Muir who is the lead of Syncra Research, a consulting firm in Europe, and he is such a wizard with databases. Some of you know that he has spearheaded many of the R database packages. He's actually worked with the R Consortium to get funding for that effort, and it was thrilled to see him lay out some of the basics, but also some of the advanced features that DuckDV offers you as an R user, data scientists, trying to analyze large datasets, and I am more than ever convinced that this is a tooling that I need to pay attention to, and I want to start implementing in my future projects. So the workshop was awesome. A great mix of lectures and hands on exercises.
You know sometimes cliche but Wi Fi issues hampered us for the first hour but I was a good little student if you will and downloaded all the materials beforehand and was able to get it working on positron no less I decided to live dangerously and use positron beta version as, like, the IDE for working on the workshop exercises, and I've done a little bit of quirks here and there and actually performed quite well. So that was a good way for me to test the waters of Positron in a, real applied setting. So I'll definitely have more thoughts on that as I get more use of it, but, overall, again, the workshop was spectacular and DuckDV is definitely going into my toolbox very, very soon.
And on to the main conference itself. So yours truly had the pleasure of giving a a talk about my adventures of WebAssembly and Shiny in the context of my efforts of the r consortium submissions working group. It was early in the conference. It was right after the first keynote and one of the first sessions, which had the awesome name of drugs not bugs, you know, efficient uses of orange and Python in in clinical work. And, again, really really fun presentation. I hope it was well received. It seemed like it was. Definitely had more of a story to tell in the initial goings, but my main point I wanted to articulate was that this is a fundamental paradigm, you know, shift in technology that I think can really supercharge many efforts were tedious static reports of some nature could be made interactive and shared efficiently across, let's say, different reviewers or different audiences.
So I was thrilled to be given the opportunity and, certainly, my thanks to Pazit for accepting my abstract and letting me be a part of this session. Had a really good turnout in the room. Lots of great questions both, in the q and a panel as well as afterwards. So, again, huge thanks to everybody that listened there live, and the recordings will be out fairly soon. And I can't wait to share that with all of you. Nonetheless, I will put a link to my slides in the show notes in case you wanna look at that before the recording. It's got some nice links to the GitHub repository and whatnot that I've created for the projects, and like I alluded to in the presentation, there's much more to come in this space as we finalize our submission to the FDA, as well as our adventures with the container piece of the submissions working group pilot as well.
So, yeah. 1 then I could breathe again so to speak with the presentation done and I attended many talks and, you know, as usual it's hard to choose and you got a lot of good talks happening at the same time. I've learned some great new things about Shiny development that I'm gonna take back in my my work, especially with some production apps I'm working on currently. Some good best practices of user interfaces and other great tooling that I think I'm gonna adopt quite quite soon in terms of structure and ways I organize some of my files and whatnot. Lots of good content as well.
And, honestly, one of the best features of these, conferences is the hallway conversation. So lots of great conversations both with my fellow compatriots in life sciences, but also listeners out there that are fans of this very podcast that came to say hi and I was very appreciative of that. It's always humbling to hear that this little humble effort that myself and Mike lead here is, helping people in their data science journeys That never gets old no matter how long I've been doing something like this, and having that feedback is a great way to keep motivated and keep going with this effort.
So I met a lot of new faces as well. I met, Colin Gipsy from jumping rivers. He was there at the conference. I had lots of great conversations with him. And, also, I was thrilled to meet Charlie Gao who had a joint presentation with my teammate, Will Landau, on the use of Mirai and crew for high performance computing and asynchronous processing. Wow. It was an awesome presentation. I can't wait for that recording to go out because Charlie and Will absolutely knocked that one out of the park and it was just the enthusiasm was infectious when you can see them talking about this, great tooling that they've been working on and, yeah, I was just kind of beaming with pride in the audience there where I barely found the seat it was almost standing room only so lots of lots of excitement in this space. So credit to Charlie and Will for a fantastic talk there. But, yeah, it was an absolute thrill to meet Charlie in person as well and met many other many other people I've seen online, you know, lots of great conversations and in fact we had a mini reunion of sorts of our streamer group. The the group of including Tan Ho, Daniel, Kyle, and others, and Jeremy as well from posit. We we met him for for the first time in person.
It was great, great to catch up on memories even though we've all, for better or worse, have not been able to stream as much as we would like since those early days of the streaming during the COVID pandemic. Nonetheless, it was great to catch up on memories and see what they're all up to and, yeah, lots of lots of fun time to be had in those conversations as well. And certainly, yeah, the conference kind of flew by at that point. And before I know it, I'm flying out early Thursday morning back here to the Midwest. That was a early early flight so that day was kind of foggy, but I was already looking at my notes of things I want to research when I get back, and I'm already doing that research as of now. So lots of overall a really great experience, and next year it will be in Atlanta, I think, for the first time.
So who knows what my adventures will lead to in terms of that conference. However, I'll be given another talk, maybe another workshop. You never know. But, nonetheless, it was a great experience. Again, I think my biggest takeaways are catching up with some of my my good friends from online, as well as meeting some new faces as well, and, yeah, some really spectacular talks and offer conversations throughout. So again, the recording should be out hopefully in a couple months, and you can bet that our week we will be featuring those when they are released. Well, enough of my positconf wrap up, and certainly when Mike rejoins us on the podcast we'll be sure to get his takeaways from his experience, and it was always fun to meet with him as well. We don't get to meet face to face often enough. We haven't met since last year at the conference, so it was great to catch up with him as well.
Well, without further ado, let's dive into our actual r weekly issue. And as I mentioned earlier, it was curated by yours truly, but thank goodness we have some great tooling and automation to put the post together. So I had tremendous help from our fellow Arruku team members and contributors like you all around the world with your poll requests and suggestions. Our first highlight to discuss today is actually stemming from the aforementioned PosiConf and one of the talks that I could not see live, but I was able to catch the special, you might say, sneak peek at the recording. And it is a topic that if you've been developing our code for a little bit, whether solo or in an organization with team members, you're likely leveraging version control.
How you leverage it, you know, that can vary across the spectrum, whether you're, you know, a git wizard or you're just doing enough to get that commit up to GitHub so to speak but our first, highlight today is a presentation from Megan Harris who is a data scientist at the prostate cancer clinical trials consortium and in fact she was also one of these students at the database workshop I remember she was sitting in the front row where I was close to but in any event her talk was titled please let me merge before I start crying and other things I've said at the git terminal.
Yeah. I feel seen with my early days will get when I read that title. So, obviously, when you see the recording of this, you'll get a lot more of the I'll call the first half of the presentation. We got the links of the slides in the show notes. And, by the way, Megan, you are easily one of the top, like, slide crafters I've ever seen with quartile. These slides need to be seen to be believed. It's a great mix of visuals and just really gets to the point of what she's trying to address. But, yeah, really in great engaging talk. And some of the takeaways I'll call out as I as I saw the talk and thought about how it relates to my journey we get.
The biggest thing is that it is easy, especially if you're new to this, that when you encounter an issue we get to kind of almost freeze a bit and might have, like, a panic moment of figuring out what did I just break and more importantly, how the heck do I get out of this emergency situation. But one of Megan's big talking points here is that there really aren't a lot of emergency situations we'll get. You can handle this. You just gotta kind of step back, calm down, and, you know, leverage some practical tips to get through situations such as merge conflicts.
So she does a great job in this in this presentation about, you know, just what exactly emerged conflict actually is and really giving you as the as a git user a few different ways that you can interact with trying to solve these merge conflicts. And, certainly, some of these are gonna be very basic, whether you're booting up a text editor, looking at the ways that a merge conflict is denoted, web what's the syntax for the branch that's trying to come in that particular side of development versus the branch is trying to merge into. There's different notation around how that looks and it can look very kind of cryptic at first, but once you get the hang of it, it's really not that bad.
And she has a great snippet in the slide deck of her literally solving the example merge conflict in her slides with the dates being different for what was called a data cut, and she literally just shows how in a text editor within our studio itself she just took one of those two dates cut out the cruft committed it and pushed it up the main or master branch so it does once you kind of get that sense of, you know what, all merge conflicts will eventually boil down to something like that, and perhaps there's more than a handful of lines, but the process is the same.
Step back, don't panic, and find what you're comfortable with to resolve that conflict. And, really, it's up to you how you resolve that. She has a fun little, shout out to retro gamers like me about how you could put some fun ASCII art in your in your, in your, final file that you're gonna push up. Maybe that's not a good idea for production code, but the retro gamer may sure loved it. But they really the other key takeaway I'll highlight here is that merge conflicts you often will find yourself, especially you're new to this, blaming git for all your troubles. Like, if I just didn't have to use git, I wouldn't have to worry about this. You know what? Maybe, again, take a step back because these conflicts are not really related to Git itself. They are more practical in nature.
Maybe you and a team member didn't communicate clearly enough on who was doing what. And maybe there's a more optimal way to set up the structure of your project so that merge conflicts are minimized. And, honestly, to be proficient in these situations, you do have to do a little bit of, you know, upskilling, if you will, on, you know, the basics of git. Maybe you can get away with using a third party tool like GitHub desktop or the, the pane in r studio or the the version control pane where it gives you some point and click ways to get your commits done or revert or things like that, but it can't do everything.
Sometimes getting a little dirty, so to speak, with the terminal and exploring ways to kind of get out of danger so to speak if you're really nervous about dealing with that merge conflict. There's a there's a command called abort for your merge that you can get back to right where you left off before you started that merge, that merge request so there are little nuggets like this throughout her talk that I think once you get the better handle on and you have some real practice with it's not like something you can just watch this talk and immediately you know be changed forever You have to really put these things in practice.
Speaking of practice, she doesn't have this in her resources, but I'll call it out because it's been featured in our highlights podcast before. But my Al Salmon has created that fondly named r package called seperpultate. I probably got that wrong again. I sorry, Ma'al. But this is a great way for you to literally practice different situations of Git right in the confines of r itself. So we'll put that link in the show notes as well so you could put a lot of the principles that Megan is talking about here into practice in a non production type project, but it's gonna mimic these real world scenarios. So I think booting up that package in RStudio or your preferred IDE of choice is a great way to explore, you know, dealing with merge conflicts, dealing with the tooling around it, and not frankly ever tooling around git itself.
I think the best way to learn with git is to actually do something with it, and if you want like a you might say a safe space to do that with, my else package is a great way to do that. Again, fantastic talk by Megan. Can't wait for you all to see the recording, but she related to a lot of her journey we get to, her adventures of parenting and travel, which again is a parent who recently traveled there in the summer on a long road trip yes I completely relate to all that and it was a great to make those connections so again slides are in the show notes the recordings will be out hopefully in a couple months but highly recommend to check this out especially if you do get that little twinge of panic or despair whenever you think of git Moving on to our next highlight today. It's always wonderful to see the diverse nature of the art community, especially in terms of geographic distribution and ways of the community getting together in different avenues to share their knowledge and insights and really help each other in their journeys of using our data science.
So our next highlight is a new blog post on the R Consortium talking about the new R community in Ahmedabad, India that is called the Ahmedabad R user group or ARUG for short, and some of its journey to bring those in the life sciences industry in that region together to share their insights about r. And so the interview was with Sanket Sanjo Sanojia. Sorry if I didn't pronounce that right. He has many much experience in statistical programming, in data science in the clinical industry. And it was in about 2021 that he was meeting with some fellow collaborators and wondered how they could bring this growing community of our users in Amadaba together to share their knowledge, and, hence, they had the idea of setting up the ARAG group.
And it over time, they started to get together more, and then they actually, after a lot of planning, a lot of work to mentor new members and start the foundation so to speak, they had their first meetup earlier this year in July and this was a very highly anticipated event called r evolution shaping the future of clinical trials. Again, this is right up my wheelhouse, so to speak, where they had many different featured talks talking about the spectrum of where r is being used throughout the industry. All from, say, creating innovative Kaplan Meier plots or survival visualization, looking at ways of Shiny, you know, innovations with Shiny with different use cases, having a roundtable on the different trends in r and the ways to prepare for conferences in terms of getting the most out of that, and really just bringing people together, I think, is the key point here.
He talks about how they're leveraging platforms such as GitHub and Meetup to get in touch with the users, but in the end from what I've seen in this post it was a highly attended session and it looks like there is a lot of enthusiasm to to to level up each other along the way, wherever you're new to the industry and are are those that are wanting to give back so to speak some of their learnings. So the link the post has links to how people are interested in joining the group there are links to join on that but overall it is terrific to see our gaining a lot of momentum in this space and not just you know in my neck of the woods here in the United States but around the world whether in Europe or Asia Pacific or other parts of the world we're seeing R really take off to bring life sciences to another level so needless for me to say I'm here for it and I'm really great to it's really great to see these user groups spin up and really getting the community together.
Last but certainly not least, we're gonna close out the highlights, section today with a great use case in leveraging what is becoming a rapidly growing and very, you know, influential communication platform that we're all many of us are now using in our daily work, and that is quarto, of course. And in particular, when you are working in an organization and you have maybe you've done, say, a report or a slide deck and there's always, like, a few common themes or common elements that you want throughout these shared in your organization, what is the best way to get people started on the right foot so that you're all are kind of starting from the same template, if you will.
So this last highlight is addressing just that and it comes to us from Megan Hall, who is a technical product manager of the hockey group as Xelliss Analytics. And, coincidentally enough, that's also where my good friend, Tan Ho, is, is working as well as a machine learning and and software engineer and statistical data scientist as well. So credit to them for joining the conference. But Megan's, talk, which again I couldn't see live, but she has an accompanying blog post about how they have designed and deployed internal portal templates at Xelliss Analytics and some of the tips that you can take from this if you wanna go on this journey for creating internal resources around quartile.
So first of all, motivation for why you wanna do this, certainly for me, you wanna have consistency in, say, your organization's, like, theming of these different communication reports or slide decks, again, whatever have you. And you don't want every scientist or data scientist to create these by hand if you want to just make it easy for them to get started. So having a template I think is quite valuable and we've seen this also in the R markdown ecosystem quite a bit. Lots of templates have been shared in the community in respect to that and I think in quarto we've already starting to see that as well. But, again, you can't always use the publicly facing one. Sometimes you have various elements that you wanna share only within your organization, Hence, the need to figure out how to build these internally.
So what actually goes into a template? Megan talks about you want to put in probably some styling elements, whether it's CSS, custom theming, which again the quartal site does a terrific job of documenting how you can get one of these off the ground. So you might have, you know, say theming also associated with the visualizations you're doing. Maybe you have a set of core r packages that should be used in each report to help set up some of these more aesthetic elements. She talks about having customized themes for ggplot2 and the GT package for creating tables so that the the scientist who's developing this report can just already have that snippet of code ready to go to load these internal packages that are giving these themes.
So that's a great win right there for, you know, reducing manual effort. So she has examples about how they design a certain element to tell that a report is confidential and not to distribute it outside of their of their walls so to speak she talks about how they how you can go about customizing that element and where that actually goes in your theming and CSS files so that again you can just put that anywhere you like and if you're still you know learning the nuts and bolts of how CSS actually works trust me I'm no expert in this either she has a great tip about using the dev tools you know interactive element in chrome so you can get to the actual CSS for each element using its inspector or whatnot, and then on the fly experiment with different parameters such as like the rounding of corners around this box that she puts at the top of the report. So you can kind of demystify what can be, you know, quite quite, daunting I would say when you look at CSS for the first time. You're not really sure what these parameters are doing.
So really getting getting your hands on it in the browser itself is a great way to learn. She also points to resources like the Mozilla docs that are great for learning CSS as well, And so lots of lots of practical tips on that front. Well, it's one thing to create this bundle. How do you actually share it with the rest of your organization? Much like the R Markdown ecosystem, if you're in the you're in the r landscape like we are, you probably want to make an r package for it. And r packages work just as well with quartile templates as they have with r markdown templates.
So she has a great example with some visuals on how they have constructed a bundle where the package within its INST folder which is the part of a package where you can put ancillary or accompanying files that will get installed with the package itself when the user installs it on their system. She has folders for these extensions that hold the both the HTML and the LaTex or you might say PDF styling files so that both the printed version and PDF, so to speak, or the static version, as well as the web based HTML version have, you know, accompanying style files over its CSS, wherever it's custom LaTex code, along with the the quartile document that actually has the template itself.
And when the user utilizes a function, she calls it create Xeliss HTML for the HTML version. It will copy everything to their working directory and then get that template file set to go as a new file. And then the user can customize it as they wish, but they're already up and running with utilizing that template. And so she is, you know, gained inspiration from this from Spencer Sheehan and by proxy Tom Mach, who I also got to see at the conference. It was great to say hi to Tom, but she leveraged a lot of their previous resources that they've shared on their blog posts to put all this in action and then lastly in her post she has a nice animated gif to show what this actually looks like when the user sets this up a simple call to that Xelliss HTML function gives it a title and right there your portal document is is right there open with everything filled in.
What a great way to make this as easy as possible for your rest of your organization to leverage your innovative quartile templates. I definitely need to start doing this because I was just talking with Will about some day job stuff a couple weeks ago about, hey, we love using quartile for our slide decks. We, not the biggest fans of PowerPoint. At least I'm not. I don't think he is either. So we're thinking of making an organization template based in quartile for our slide decks because, well, it's another story for another day, but HTML interactive content.
Yeah. I think that's a little more engaging than PowerPoint stuff. That's a battle. That's gonna be a battle, so to speak, but one I want to take with quartle at my hip, so to speak, so that we can start leveraging interactive slide decks at my company. So this Megan's post here is very timely because I'm gonna use some of these principles and practice to to make all this happen. Well, much like I tell you every week there is so much more that goes into an r weekly issue. So we we will close-up here. I'll talk about an additional find that I have. Again, somewhat related to the conference, but it was eye opening to say the least.
So as I mentioned, I visited the shiny track, at at positconf, multiple times after my presentation, and there was a terrific session on kind of innovations with Shiny. One of the talks was from Keegan Rice talking about what are some what are ways that you can build, you know, user friendly data exploration, you know, paradigms in your Shiny application. And she, she was inspired by, you know, many of the principles that we talked about in the community quite a bit, but she shared kind of the what were the the boilerplate of how she created this live crime tracker as part of her daily work at the NORC at the University of Chicago.
And this application, my goodness, when you look at this you are gonna be blown away. This is amazing. An amazing application. You would not know it's shiny by looking at this. It actually has a lot of vibes similar to what I saw shared at the Shiny conference earlier this year by Appsilon. I'm one of the apps that, that that I was enamored by. Great organization, great use of interactive maps with tooltips throughout, and a great, you know, comprehensive documentation that's styled very clearly both about the tracker crime tracker itself and the methodology around it. This is a great showcase of great user experience, you know, elements.
And again, if you just shared it with somebody there is nothing here that, you know, screams shiny so to speak in terms of the typical UI layout. I don't exactly know exactly what's under the hood on this just yet. I just know that it is a very engaging experience and, knock on wood, so to speak, if things go well later this year, we may, dive into this with with her even more detail if I can spin up the shiny developer series once again because I'm hoping to have Keegan on for an episode that we dive into this much further. But in any event, if you want to be inspired by optimal UX design in a shiny app, I invite you to check out this live crime tracker part of the NRC at the University of Chicago by Keagan Rice.
Alright. As much as I'd like to talk about the rest of the issue, I'm gonna have to close-up shop here, so to speak. But as always, where you can go to find more information on our weekly, well, hopefully, it's one place to go, and that's our weekly dot org. That's where everything that's our central hub, if you will. That's where every issue lands on the on the front page as well as the archive of all previous issues in case you missed any in the past. There was a great issue last week where Mike and I couldn't record because we were literally at deposit comp, so you'll wanna check out the archive if you haven't already. And, also, what's the best way to help the project?
Getting involved. We have multiple ways to get involved. If you've seen that great new blog post package that just came through CRAN or that great resource that you saw throughout or maybe one that you created yourself, we're just a pull request away. It's at the top right corner, a little banner there. Click that. You'll be taken directly to the pull request template in GitHub. You can do it right in the GitHub editor. No friction required on that front. It's all marked down all the time. I've lived marked down. Who knows? Maybe in my dreams, I'll dream of markdown. Well, maybe not that far. Either way, I use markdown so much. Hopefully, it's intuitive enough for you to put in that link to that great resource. And, also, we are always looking for additional curators to join our team. There is more information on that on the our weekly GitHub repository if you're interested in joining our team where we definitely could use some additional help, you know. People have real lives and we've lost a couple of curators along the way to their real life duties, so being able to have others join the team would be a welcome addition.
Also, we love to hear from you in the audience for this humble little podcast. On the show notes of this podcast, you'll find a link to our contact page where you can get in touch with us directly on that front. And if you're listening to a mod with a modern podcast app like Podverse, Found, or Cast o matic. You can send us one little boost along the way and share your love for the show there. And, also, I am on social media, you know, sporadically on the weapon x thing with at the r cast, but you'll find me more often on Mastodon where I am at our podcast at podcast index on social, and I'm also on LinkedIn as well. You just search my name and you will find me there.
So, again, thank you so much for joining me in the solo effort today. It's never the same without my trusting cohost, but he'll be back soon enough. And again, huge thank you to all of you at the conference that said hi and also best wishes to many of the, you know, colleagues I met. There are more than a few of you that unfortunately have contracted COVID, so I hope you're on the road to recovery quite well. I know in these times, these events, there's always at risk, but I'm thinking of you all And thank you again so much for the great conversations, and I hope you all recover soon enough. Well, that'll do it for this episode of our weekly highlights.
Thank you so much for joining me today, and we or at least I will hopefully be back with another episode either next week or shortly thereafter. Until then, that's end of line.