All Episodes

November 21, 2024 • 27 mins
A summary of key contributions to the R language itself from R Dev Day at the Shiny in Production conference, and visualizing ice thickness in Greenland with the power of the tidyverse and leaflet.


Episode Links
Supplement Resources
Supporting the show
Music credits powered by OCRemix
Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:02):
Hello, friends. We are back of episode 186 of the R Weekly highlights podcast. This is the weekly podcast where we talk about the excellent resources that are shared in the highlights section at every single week at rweekly.org.
My name is Eric Nantz, and I'm delighted you're joining us from wherever you are around the world.
November's already getting close to being complete, but we're not complete here yet because

(00:25):
you know who completes me on this show. It is my awesome cohost, Mike Thomas. Mike, how are you doing this morning?
Eric, I'm doing well. I want to extend a warm welcome from on behalf of the Blue Sky community to you this week.
Thank you, sir. Yes. It it took a little bit, but I found my way there, and it seems like I've I've,
connected with a few people already, yourself included. So I'm

(00:48):
eager to participate, share my my,
little bits of, dev hacking here and there and learnings I've had such as
when I the post I shared recently about editing these Our Pharma workshop recordings and learning new chordal tricks from the esteemed Nicole Arini. So, I mean, there's all all sorts of things I'm learning already. Happy to happy to share that and also learn from awesome people like you at the same time.

(01:11):
Beautiful. Yes. No.
Hopefully, going forward,
I will be, at least myself, be posting,
the Our Weekly Highlights podcast episodes on there. So we have them both on Mastodon
and on Blue Sky for wherever you are on social media today.
Yep. And there's many choices, so that's why we wanna make sure we're we're touching the the audiences where they are, so to speak. So, yeah, Blue Sky is in in our future, so to speak. And but we'll talk about the present here. We got a great issue to talk about today, which has been curated by John Calder, another one of our longtime,

(01:47):
curators on the Arrucci project. And as always, he had tremendous help for our fellow Arrucci team members and contributors like you all around the world with your poll request and other suggestions for resources.
And one of the efforts that I've had my eye on for, now a couple years, but it's been really gaining a lot of momentum
is, of course, we're here talking about the R language. Right? Our language is built on the principles of open source,

(02:13):
which means that in theory, anybody around the world can contribute
to the core of our lang your language itself.
And there has been a concerted effort to bring in
new contributors that wanna be able to impact the R language, get, get involved with open source.
And that's what we're here to talk about today, where there was a special session

(02:35):
at the recent shiny in production conference run by our friends at jumping rivers, a couple months ago,
where a special our developer day.
And this is coming to us from the jumping rivers blog, but it was authored by Heather Turner, who has been spearheading this effort
of this
our con contribution working group, which has been a joint effort

(02:57):
of the our core team,
various community groups, including the our ladies initiative, the our forwards initiative,
the diversity and inclusion working group,
and additional members of the R community that really bring in, you know, an easy way to give back and contribute to the R language and helping with that
onboarding process.

(03:19):
But as such of a developer day, they tackle quite a few issues. And so this post talks about some really interesting issues that they are trying to tackle
with the R language and the R project as a whole.
So I'll give my take on a few things and then pass the baton to Mike. But the first issue on the docket here is talking about
translations.
Obviously, a very important part of any open source project

(03:42):
to be able to display
any, you know, diagnostic
messages,
other helpful messages that are happening in an R session
to the language pertaining to the locale that the user is
executing R with.
So,
Heather mentions,
Gabriela
de Lima Martin,
she was able to figure out how to contribute

(04:05):
to R's WebLATE,
which is basically a browser
that you can see in your R session
that gives you, like, the render documentation
and other things like that that she was able to build in
translational
messages,
1st in a conventional way by translating individual strings at a time,

(04:26):
but then leveraging a little bit of machine learning to help with that translation layer.
But as with anything with automation,
you need to have a set of eyes on it after that finished product because you might get some issues from time to time.
Yours truly has seen this. If you've been listening to our weekly highlights and one of the podcast apps that support transcripts.

(04:49):
Yeah. The transcripts are about 95% of the way there, but there are some corrections I have to make as after we release
it, such as, and I this happens to this day.
It thinks the our weekly highlights podcast, the r is spelled o u r every time we do this transcription. So I have to manually update that. So I'd imagine there were similar things

(05:10):
with the translations that Gabriela
involved. But the good news is is that she was able to translate over 200
messages,
produced by R on this developer day alone.
And she this has a link to the issue
on the R dev day repository where she put in her notes if you wanna help contribute

(05:31):
to this effort as well. But going side to side with that,
they wanted to have, you know, as the project as a whole would like a more real time look at the progress of these translations. Where are the gaps? Where are the things that are on track to being completed?
So,
this separate effort was building

(05:52):
a translation
dashboard,
and this was tackled by a few people,
Mario Reaman,
midmercilynhausenrabie,
and Murad Kamalov.
Hopefully, I said that somewhat correctly,
where they
wanted to work on this translation dashboard. And within that, 2 specific items to address.

(06:13):
One of which is minimizing the dependency footprint by removing the string r dependency, which will help streamline
deployments,
and then switching from the previous framework of flex dashboard
over to quarto, which recently had dashboard support, which I made excellent use of recently in some open source work. So I

(06:33):
fully support that that that pivot of the infrastructure, and I think that's gonna set them up
for a great success.
And there were some issues that they found with looking at supplemental or markdown rendering,
things that they could streamline from the previous,
infrastructure from flexdashboard.
So there is a bit of cleanup
involved and also leveraging GitHub actions and making sure those are working correctly

(06:58):
with this new pivot to the portal dashboard.
And it does sound like they've got a scheduled deployment for this so that it can be updated in real time. But there are links in the post to looking at this in more detail,
but it's really looking promising to get kind of a
a fit for purpose look at the progress of
the translation of the R language into these different locales that, again,

(07:21):
will be a very, very big help for increasing adoption and in
in inclusion in general
for looking at the R language
itself.
And then lastly, from my standpoint, and I'll turn over to Mike after this, but there was
a slight bug that was found with the Cairo graphics engine,
which is used primarily by 9 maybe it's by default now. I'm not quite sure,

(07:46):
but there was
a bit as little sub set of bugs that were
being tracked on the Bugzilla page of the R project itself
and then be able to help reset,
looking at this particular issue
where in a plot, there's an example of this in the post itself, there should be a solid color. Let's say, like, a 1 bar bar chart or something.

(08:09):
There was a little white line that was, you know, happening
in, like, part of the plot. And
why? Doesn't make any sense.
So they took a look at the GR devices package,
which is now part of base r. They kind of see where they might we're seeing that crop in. And there was a lot of just investigation to see where this issue

(08:31):
was able to find it, but they learned some best practices from developers on this
and to be able to
get some advice that was given to them by Paul Merle himself, which has been one of the influential leaders of the graphic devices and R itself.
And they figured out there was,
you know, a key statement in this

(08:52):
plotting the grid rectangle that this example
is based from
that there was something being drawn or something not being drawn apparently
that had to be updated in the c code.
And then they found a workaround that was leveraged from the quartz device engine
to fix this white line even happening. So that's really getting into

(09:15):
the nitty gritty or graphic devices where for me, I know a little bit about the grid system, but this will be way outside my my expertise at tackle. But it's a great example of team effort of a couple of developers at this dev day. Again, taking advice from Paul Merle
and translating that so they could get a reprex of this going and then really isolating the problem.

(09:36):
And then they are working on now the next steps of getting this patch
accepted into base r so that the future versions of r won't have this
phantom line appearing
in these rectangles. So it really had to do with getting involved with not just a graphic device code, but the c code as well, which again, fair play. Great way to level up your knowledge because a lot of r is based in c, some bits of Fortran.

(10:02):
So it's a multilingual environment
even of itself with the source code. So really fascinating to see
where that takes you. But that's not all, Mike. Because apparently, there was some container fund to be had in this dev day too. No. And and as you said, you know, r itself is is built on a multilingual,
somewhat complex environment.
And if you want to build r

(10:25):
on your own computer,
it can be tricky to do so, you know, for the purposes of trying to contribute,
back to base our itself.
So another project,
that's been undertaken is called the our devcontainer
project, which is a
Versus Code dev contain well, not necessarily Versus Code, but, that's one way to to leverage it. It's a

(10:46):
Docker
containerized
environment for R, that can be launched. If you're in GitHub, you could use GitHub Codespaces
or Gitpod,
which is pretty cool to be able to essentially develop in the browser,
as I understand, using, you know, this containerized technology that has everything sort of already there pre installed
for you, all the dependencies that you would need to, work on contributing back to the R language itself.

(11:14):
One thing I didn't know about GitHub Codespaces
is that I think you get like 60 hours, I don't know if it's per month or per year,
for free,
because GitHub Codespaces sort of, you know, spins up a a server, on the back end for you that allows you to, develop in the browser, which is nice. So I know that a lot of those services have a cost associated with them, but it seems like there is a fair amount of free hours that you would get there. An alternative,

(11:41):
if you didn't want to use GitHub Codespaces or Gitpod,
would be to,
do it locally essentially and you would have to have Docker installed,
Versus Code installed, and the Versus Code dev container
extension. It's a workflow that, you know, we at Catch Brook love, as I probably talked about on this podcast quite a bit because it allows you to work in a containerized

(12:04):
environment,
and ensure that everybody
has essentially the same dependencies,
when they're collaborating on a project together. So it's it's pretty cool.
One of the drawbacks
is that,
the dev container is currently built
for a specific OS, and for a specific architecture that has some buggy things happening on more recent Mac

(12:28):
computers.
So the the team on our dev day worked on trying to improve,
the experience
for those who are working on a a Mac machine.
And unfortunately, I I think this
depends on the the Arm 64,
architecture,
if you will. And, you know, some Arm 64 machines, I guess, are not available,

(12:53):
on GitHub actions.
So they they were running into a few limitations there,
but they definitely made a lot of progress on solving this issue which is tracked as issue number 112 of the r dev environment GitHub repository, which I did not know existed,
until, you know, the the highlights came out this week, which is pretty cool. It sort of warms my heart that,

(13:17):
so many of these efforts, you know, not just the fact that it's it's using a technology that I love in in Docker containers, but it seems like there's a lot of efforts going along with our dev day that are trying to make it a lot more approachable and easy to actually contribute back
to the R base project,
itself
because that can be pretty daunting. I mean, when you you think about making a contribution to the language itself and not just a particular package,

(13:45):
that's pretty scary to me. And one of the reasons
being so is that, as you mentioned, Eric, you know, a lot of this is built on non our code, right? C or Fortran code.
But but a lot of it probably is in our code as well so it depends upon your comfort level and I think there's always a place to get started.
If you are, you know, willing to to put in a little bit of time and effort to take a look at the Bugzilla that's out there and all the bugs that are tracked,

(14:12):
well as part of the R project and see if you can find one that would be interesting for you to
try to take a crack at. And now that we have, the r devcontainer project, you can literally
have everything you need to start working on that, essentially at your fingertips in the click of a button, which is pretty cool. And going along with trying to make things easier for those contributing to the project

(14:36):
is that, there's an initiative out there in trying to create an R development guide or an R dev guide
for short to document some of these processes and document, you know, how, you can contribute
to the our project and sort of the workflows
that might work best for you to be able to accomplish that.

(14:56):
So it's pretty cool resource, you know, maintained again by that contributor community just like this translations dashboard that's out there. And if you haven't seen the translations dashboard, it's really cool. It was my first time seeing it,
which is what we talked about at the the top of this highlight. It's a great visual to take a look at how many functions,
and aggregate it up to to packages as well have,

(15:18):
translations
for the messages,
for those particular functions and then how many don't as well. So it's pretty interesting and I have to imagine that as you mentioned Eric, you know, AI could actually be helpful I think in a situation like that. Granted it's probably not gonna get it right a 100% of the time but maybe it'll take some of the legwork
out for you. So I I think this is a really cool blog post to walk through, you know, how folks were able to contribute on this r dev day. I think it's it's awesome that they even,

(15:49):
you know, hosted and and had this r dev day.
They already have one scheduled for 2025,
in October.
So if you feel like you want to be part of that, there's a registration form that you can sign up today. So kudos to to jumping rivers.
Yeah. I'm I'm loving to see, you know, giving the opportunity for

(16:11):
developers to to come together and especially bringing in new talent, new developers that wanna contribute. And and I'm really the myriad of issues out there. Yeah. I was looking at the issue
tracker itself as you were talking. There is a lot to choose from. There is lots of places that if you're looking at different areas to contribute, there I think there's something for everybody here. Even just, sifting through this, I see there's an issue about

(16:37):
would any was there a way to connect the positron ID? Of course, the new ID offered by posit
to one of those services I get pod over SSH to have that remote our session as a back end instead of having to have it locally. That's very similar
to what I've been doing on my local Versus code setup with my dev container dockerized

(16:58):
environment. Albeit, much like you said in the outside of your description there, I've only optimized my dev container stuff on Linux because that's what I'm developing on. I never tried on arm arm, processors for Mac. So I'm sure it wouldn't work there. And it gets really dicey in these situations. But to be able to have these
these development environments

(17:19):
going wherever the user is, wherever it's x86 base, like our typical Windows or Linux, you know, architecture
or the more recent arm 64, like these fancy MacBook m ones, m twos, m threes, m fours, too many m's out there. But, nonetheless, they are becoming way more popular. So to be able to have that experience out there, yeah, it's gonna take a lot of engineering. But just imagine being able to have that

(17:43):
whole development stack of our itself without you having to think about
uh-oh. How do I compile Fortran code on my Mac? Oh, gosh. You know, having this in a containerized environment just opens the doors. There's so many possibilities here.
Couldn't agree more.

(18:15):
Rounding out our highlights today. We got another visit to a visualization
corner of sorts, and this is
very similar to last week where we had a notebook style
presentation of an infographic
here. We've got an interesting visualization
on the thickness of ice in Greenland.
This post is authored by Michael, not the same Mike that's joining me on this show, but

(18:40):
Michael. And we don't know his last name because that's how we got on the blog. But, nonetheless, if you're listening, Michael, feel free to send us your, detailed info after this if you like. But, nonetheless,
he has authored on his blog
this, very notebook style post on looking at
how to visualize
the ice thickness in a very innovative,

(19:03):
mapping heat map structure
using data that's either available or
or or processed into
via typical tidyverse function. So we'll
dive into this. And specifically,
he is using the Greenland 5 kilometerdemice
thickness and bedrock elevation grids. That's a mouthful.

(19:26):
But, nonetheless, he's got a link to download, I believe, the CSV after you register for that service. And once you have that,
you can read this into
your session.
And apparently, it's an ASCII
style file, and he's got a link to the user guide to look at this. But he mentions that the wrangling,
not quite straightforward.

(19:47):
So
there is a collection here of data processing with mutating, grouping, modifying,
more mutation,
more pivoting with the tiny r package.
And in the end, he's able to finally get to a format
to compose this as a raster
image, which again, you're talking to a novice with spatial visualizations.

(20:09):
I always learn
on the fly. But the first render here in the post
is a war a raw mapping of Greenland,
but with
the color gradient, if you will, based on the thickness.
And the plot itself is only, like, 1 2 lines of code after you feed in that tidy dataset. So the meat of it was in the processing to get this initial visualization.

(20:34):
But
very nice straightforward,
you know, heat map like representation of the ice thickness. And as you might imagine,
the closer to the center of Greenland you get, the more thicker the ice is as opposed to the outer layers
near the ocean.
But then there's more that you can do here, Mike, and that's where we turn to our friendly leaflet projection time. What do we have in store there? Alright. So using a combination of the leaflet package and the Terra package, I believe,

(21:02):
Michael's able to modify the original data frame that he called thick,
that was used for the first static plot,
and use a function called project in RAST,
in concert
to be able to build this new object called thick WGS 84,
which is really the the main object that's supplied to the leaflet function add raster

(21:25):
image here. So that's that's gonna be this raster image that he's able to supply to Leaflet that does most of the heavy lifting, and then a really nice, gradiented
palette,
legend that, is up at the right hand corner
of the chart. And obviously, you have the the interactive
zoom in, zoom out functionality to be able to explore this,

(21:46):
in sort of more of an interactive leaflet
context. So really nice, 2 different plots sort of visualizing, you know, fairly
the same dataset,
on Greenland ice thickness, and it's it's just really well, concisely written code. So if you are in the geospatial
space or interested in the thickness of ice in Greenland, this one's gonna be for you.

(22:10):
Yes. And and some of the inspiration where this came from,
at the top of the post, he mentions that this is part of the 30 day map challenge that's currently ongoing. So if you wanna hone up on your visualization
skills and kinda
be part of a community of of aspiring data scientists and visualization
experts
doing this, he's got a link to the 300 map day challenge, which again, if I had infinite time, I probably would get my hand at that. But my last adventure at Leafa was ironically for this past our pharma conference where I built this I call haunted places shiny app where I had a leaflet map

(22:47):
of these of the US and United States. But then each city where this quote haunted place was located at, I use another data set to get the cornice and throw it on the leaflet. You know, not too dissimilar to what, Michael has done here.
But it's amazing just with a few lines of coding, you get this interactive map up right away. And I'm sure you could add

(23:09):
way more to this. But in the end, it does it does the job, and it does it really well and really
concisely. So
great great example what you can do in the r side of things with with spatial visualization. And, yeah, I'll be keeping my eye out on his blog as well as others on social media to see whatever creative maps that people
are are creating with art these days. Absolutely. And one thing I I love about the blog post is that he he finished it off by adding, three references

(23:37):
that I believe correspond to maybe some of the datasets,
that were used or references on the topic itself.
So fantastic attribution here.
Yep. And if I my eyes don't see me. This looks like a Cornell based blog if I had to guess, but nonetheless,
great
great, great, post on Michael's blog here. So definitely check that out.

(23:59):
But also check out, you know, everything else in our weekly we got going here.
And then when we do the time, we don't have time for our additional fine segments. But rest assured, there's another great collection
of new packages
and awesome,
you know, shiny app links here that I saw a few there that caught my eye and other upcoming events and whatnot. So

(24:20):
as always, every issue has got a mix of everything for everybody.
How does this issue get created, folks? It's not automated.
As much as we love them machines take over certain automation things, this is a human created effort, but, honestly, it's gonna stay that way. Well, we rely on you out there too to help with the projects. So one of the best ways you can do that,

(24:40):
we wanna make it as easy as possible for you to contribute. And honestly,
the whole get and GitHub model is what drives our weekly, where if you find a great resource that you think should be shared,
we are a pull request away, folks. It's just a markdown file in the
end. Every issue here is just a markdown file. If you can read markdown, you can contribute to our weekly. So it's just a pull request away. And the upper right corner, a little Octocat image,

(25:06):
giving you straight to the 10 straight to this week's issued draft. And then you can send the poll request right then and there and help us with that new resource you have found. And, also, we love hearing from you in the audience as well. It's amazing that 2024 is already almost over. But, of course, we love seeing what our weekly has done for you in terms of, like, shared learning or other tidbits.

(25:28):
You can get in contact with us a few different ways. We have a contact page in the episode show notes and your podcast player that you can link link to and click on and send us some feedback there.
We are also with a modern podcast app. You can send us one little boost along the way to share your love for the show there directly to us.
And, lastly but not least, we are on these social medias as well, Where, apparently, I got another thing to share now, but I am

(25:55):
mostly on Mastodon still with atrpodcast
and podcast index dot social.
And now I am on Blue Sky as well, as Mike mentioned. I am atrpodcastat
bsky.social
as well. If you wanna find me there, I'm happy to connect. I've already connected with a few of my good friends already back again. Love to connect with more of you. But, Mike oh, last but not least, I'm also on LinkedIn as well. You search my name and you'll find me there. But, Mike, where can they find a hold of you? Yeah. You can find me on Mastodon, I think at mike_thomas@phostodon.org.

(26:29):
You can find me probably more often on Blue Sky. Now it seems to be the one I'm checking a little bit more, atmikedashthomas.bsky.social.
Or if you search Ketchbrook Analytics
on LinkedIn, you can find me there as well, ketchbr0ok.
Very good stuff. And, also, you know, you do have a blog out there too on your Catchbook Analytics site. I was just checking that out for for some stuff I'm doing, a little little off the cuff here. But in my infrastructure at home, I just spun up a self hosted

(27:01):
RSS aggregator.
So when you put an RSS feed, Mike, I'll be able to put your blog on mine too. I couldn't quite get it, but we'll we'll follow-up offline on that one. But, nonetheless,
Mike's got a cool blog out there. Check that out. Yeah. Just don't look at the the last blog post date because it's been a little while.
Hey. Hey.
No no shame in that. Look at my last episode of the r podcast itself, then then then I'll feel ashamed. Nonetheless, I hope you don't feel ashamed about listening to this episode. We do our best to give you the great resources that are shared on our weekly. So that'll wrap up episode 186. That means we're 14 away from 200. One way or another, we'll get there. So until then, we hope you enjoy this episode,

(27:42):
and we should be back for another episode of our weekly highlights
next week.
Advertise With Us

Popular Podcasts

On Purpose with Jay Shetty

On Purpose with Jay Shetty

I’m Jay Shetty host of On Purpose the worlds #1 Mental Health podcast and I’m so grateful you found us. I started this podcast 5 years ago to invite you into conversations and workshops that are designed to help make you happier, healthier and more healed. I believe that when you (yes you) feel seen, heard and understood you’re able to deal with relationship struggles, work challenges and life’s ups and downs with more ease and grace. I interview experts, celebrities, thought leaders and athletes so that we can grow our mindset, build better habits and uncover a side of them we’ve never seen before. New episodes every Monday and Friday. Your support means the world to me and I don’t take it for granted — click the follow button and leave a review to help us spread the love with On Purpose. I can’t wait for you to listen to your first or 500th episode!

Stuff You Should Know

Stuff You Should Know

If you've ever wanted to know about champagne, satanism, the Stonewall Uprising, chaos theory, LSD, El Nino, true crime and Rosa Parks, then look no further. Josh and Chuck have you covered.

Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Follow now to get the latest episodes of Dateline NBC completely free, or subscribe to Dateline Premium for ad-free listening and exclusive bonus content: DatelinePremium.com

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.