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
Episode Links
- This week's curator: Jon Calder - @[email protected] (Mastodon) & @jonmcalder (X/Twitter)
- R Dev Day @ SIP 2024
- Greenland ice thickness
- Entire issue available at rweekly.org/2024-W47
- R Contribution Working Group https://contributor.r-project.org/working-group
- R Translations Status Dashboard https://contributor.r-project.org/translations-dashboard/
- R Development Guide https://contributor.r-project.org/rdevguide/
- Connect local Positron IDE to Gitpod via SSH? https://github.com/r-devel/r-dev-env/issues/193#issuecomment-2383816303
- 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), @rpodcast.bsky.social (BlueSky) and @theRcast (X/Twitter)
- Mike Thomas: @[email protected] (Mastodon), @mike-thomas.bsky.social (BlueSky), and @mike_ketchbrook (X/Twitter)
- Ice Cap Zone (Pulse Mix) - Sonic the Hedgehog 3 - MkVaff - https://ocremix.org/remix/OCR04400
[00:00:03]
Eric Nantz:
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 you know who completes me on this show. It is my awesome cohost, Mike Thomas. Mike, how are you doing this morning?
[00:00:35] Mike Thomas:
Eric, I'm doing well. I want to extend a warm welcome from on behalf of the Blue Sky community to you this week.
[00:00:39] Eric Nantz:
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 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.
[00:01:11] Mike Thomas:
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.
[00:01:26] Eric Nantz:
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, 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, 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 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 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.
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 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 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, 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.
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 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 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 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. 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 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 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, 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, 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. 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 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 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 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. 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.
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,
[00:10:20] Mike Thomas:
somewhat complex environment. And if you want to build r 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 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.
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, 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 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 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, 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, 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, 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, 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 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.
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, 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, 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.
[00:16:07] Eric Nantz:
Yeah. I'm I'm loving to see, you know, giving the opportunity for 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 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 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 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 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.
[00:17:58] Mike Thomas:
Couldn't agree more.
[00:18:16] Eric Nantz:
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 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, 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.
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. 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.
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. 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,
[00:21:02] Mike Thomas:
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 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, 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.
[00:22:10] Eric Nantz:
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 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 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
[00:23:29] Mike Thomas:
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 that I believe correspond to maybe some of the datasets, that were used or references on the topic itself. So fantastic attribution here.
[00:23:47] Eric Nantz:
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. 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 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, 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, 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.
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 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 [email protected].
[00:26:29] Mike Thomas:
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.
[00:26:47] Eric Nantz:
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 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,
[00:27:11] Mike Thomas:
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.
[00:27:20] Eric Nantz:
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, and we should be back for another episode of our weekly highlights next week.
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 you know who completes me on this show. It is my awesome cohost, Mike Thomas. Mike, how are you doing this morning?
[00:00:35] Mike Thomas:
Eric, I'm doing well. I want to extend a warm welcome from on behalf of the Blue Sky community to you this week.
[00:00:39] Eric Nantz:
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 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.
[00:01:11] Mike Thomas:
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.
[00:01:26] Eric Nantz:
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, 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, 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 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 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.
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 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 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, 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.
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 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 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 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. 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 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 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, 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, 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. 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 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 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 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. 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.
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,
[00:10:20] Mike Thomas:
somewhat complex environment. And if you want to build r 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 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.
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, 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 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 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, 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, 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, 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, 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 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.
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, 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, 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.
[00:16:07] Eric Nantz:
Yeah. I'm I'm loving to see, you know, giving the opportunity for 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 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 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 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 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.
[00:17:58] Mike Thomas:
Couldn't agree more.
[00:18:16] Eric Nantz:
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 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, 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.
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. 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.
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. 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,
[00:21:02] Mike Thomas:
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 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, 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.
[00:22:10] Eric Nantz:
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 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 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
[00:23:29] Mike Thomas:
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 that I believe correspond to maybe some of the datasets, that were used or references on the topic itself. So fantastic attribution here.
[00:23:47] Eric Nantz:
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. 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 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, 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, 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.
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 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 [email protected].
[00:26:29] Mike Thomas:
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.
[00:26:47] Eric Nantz:
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 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,
[00:27:11] Mike Thomas:
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.
[00:27:20] Eric Nantz:
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, and we should be back for another episode of our weekly highlights next week.