 All right. Well, thank you everyone. It is my pleasure to welcome you to the final day of BIOC 2022 and to introduce Professor Minna Chetankaya Rondel who is a professor at Duke and affiliated at University of Edinburgh and also working with Posit and she'll be telling us about the new product called Corto. Thank you, Minna. Take it away. All right. Thank you very much. Are you able to see and hear me okay? Yeah. Are you able to see and hear me okay? Yes. Okay. Great. I'm seeing yeses. All right. Well, thank you for joining today and I am very excited to talk to you about Corto. So I have been sort of working with Corto over the last year testing it out and teaching it to my students and today hopefully I'll be able to give you a nice overview for it. Before I get started, I want to acknowledge two people who have been kind of critical in preparing this presentation. One of them is Julia Stewart-Lounds who is with Openscapes who I'll talk about a bit more in my talk but I've given a version of this talk with her and this is sort of my part of the talk bringing in some of her ideas as well but she's been critical in kind of planning this talk out and also the cute artwork that you're going to see throughout the presentation is by Allison Horst who has made these illustrations for our talk and also Opensource them so you also can use these illustrations if you would like and they're available on her GitHub repository. All right. So let's say hello to Corto. You might be wondering you know what is Corto? Why is Corto? So I'm going to try to answer that question for you and give you a few demos. So Corto unifies and extends the R Markdown ecosystem. It unifies it for people who love R Markdown and it extends it for people who don't know R Markdown. So what I mean by this is that if you are an R Markdown user you are probably familiar with all the packages associated with that system and we want you to start thinking about Corto as what if we were able to bring the functionality all of them from all of them together and extending it so if you're not an R Markdown user or even not an R user and you might be coming into this idea of creating reproducible documents that are publication ready and that are web ready you'll be able to see some features of Corto that that might be useful for your workflows. So what I'd like to do is I would like to actually start this poll. So if you are following along with my slides which let me actually put the link up here it's bit.ly slash hello dash corto dash bioc or bioc I guess I just never read that as bioc in my head before. You should be able to do that or alternatively you can go to slido.com and then do the keyword is Corto and send in your results as do you use our markdown maybe use it all the time maybe use it rarely maybe you've never heard of it and it will be interesting to see sort of the results I'm seeing you know three responses so far so if you would like to participate if you're listening along go to slido.com slash corto and let's take a look to see what the results look like. I'll come back to these perhaps at the end and although we want another poll and so we can take a look at the results then too. All right so at least we don't have anyone in the room who's never heard of it so hopefully much of this presentation will feel quite familiar. So Corto is a new and open-source scientific and technical publishing system and the goal of kind of creating Corto and bringing it to you is to make the process of creating and collaborating dramatically better so we're going to be talking about documents that you might be creating on your own but also talking about documents that you might be kind of collaborating with colleagues and students who might be coming from different backgrounds. Corto is natively kind of natively works with many computing languages so beyond R you could be writing code chunks in python or observable or julia and it's actually designed to accommodate computing languages that don't yet exist as well and so all of this goes goes through the corto machinery and you are you can get a variety of outputs we could be talking about html that is a single html page or it could be a you know a website or a web book we could be talking about pdf anything from a simple formatted pdf document to something like a journal article which i'll give an example of as well or you could be outputting to word or powerpoint as well so i am going to organize this talk enforce kind of share collaborate teach and reimagine and we're going to try to give you an overview of corto and hopefully entice you to look into it more because there's no way i can kind of demo all of the features in the time we have but the goal is to provide an overview all right so let's start with share so i am an educator i'm a researcher and i'm a developer as well and when i say educator you might be thinking well maybe she's giving a lot of lectures that she's 24 7 in front of in front of audiences lectures but actually a lot of what i do is in front of my computer in front of my computing creating materials to share with the world either that is with my students or with my colleagues sometimes i'm writing a slide deck for a lesson sometimes something like this that you're seeing and sometimes i'm writing documentation or i'm writing a creating a course website oftentimes i am thinking web first i like to share all of the materials that i create openly and with an open license so others can use them reuse them adapt them and learn from them and web is a great you know venue for that but i also live in the confines of academia and kind of traditional journal publishing which means i need to get things to render to pdf quite often and need them to be formatted according to a very specific format and so i need a system that will allow me to take the same source code and output to these different formats as much as possible and also this system needs to enable that i put my code and my pros in the same document so that i could be developing these computational documents that are reproducible and that you know kind of remove the paradigm of copying and pasting computer output from one thing to another and for the last decade that thing has been our markdown for me i vividly remember us our 2012 where um jj lare and ua she at their keynote introduced the knitter package which kind of provides the backbone of our markdown as it processes the executable code chunks in in our markdown document and when i started hearing about the knitter package i realized that this was a year into my teaching at duke so my first year as a faculty member a lot of what i do was to create you know teaching materials and i was sort of struggling with how to create materials for teaching r where i can bring in my code and have it be syntax highlighted in a particular way have my code and my output live in one place so that if i made say one change in my lesson notes and had to recompile them i didn't have to copy and paste a bunch of stuff again and knitter seemed like a great solution for this preceding that i used to try to use sweep and found it quite difficult to work with and definitely impossible to teach to my introductory students so as their keynote was going on at user 2012 i basically started converting my teaching notes to it i started converting my kind of the lab assignments that i was writing for my students and then started making slides with it as well and by the end of their keynote it's now that i had you know half listen to them and half also um half also um uh like create started converting my own materials i realized this is actually pretty straightforward to use that i don't think i should just be using this to create my materials but is there a way for me to be teaching r to my students my intro stat students while also teaching them this unpredictable paradigm and writing these computational documents as well and in fact the following year that's what i started doing um and that's been a great kind of trajectory for my career frankly um in terms of getting the work i do out there and sharing with the world as well as changing the way that i teach r um so um i'm hoping that um with that story you might be thinking okay um what do we do with corto well if you stop kind of listening to me right now and just go to corto.org and do exactly what i was saying i did at that keynote and start playing with corto i will not be offended i will call this keynote a success but i do hope that you continue to uh listen a little bit maybe with one ear and um and if you would like to just sit back and listen to the talk if you go to bitly slash hello dash corto dash bio c um you'll be able to see these slides and if you sit back as i proceed through the slides they should be advancing for you as well so i said started by saying um corto unifies the r markdown ecosystem let's talk about that a little bit here are a bunch of packages uh package hex logos that you might be familiar with um and you might be relying on for creating and sharing your work you might be making your slide x and sure engine using blog down or distil for making websites or uh writing blogs or the articles package for writing uh scientific articles corto basically unifies the functionality from all of these packages into one um command line interface so instead of being an r package it is a command line interface that kind of unifies the the functionality so um when working with corto you sort of don't need to think about i need to do task x and for that i need this particular r package rendering documents with corto as long as you have defined the um the desired output format will basically get you there so some highlights of um kind of this effort of unifying these packages and also not just unifying them but in the process of working on unifying them um just discovering gaps in functionality and perhaps inefficiencies in user experience and trying to better these um there is a consistent implementation of attractive and handy features across outputs so when i say outputs i'm thinking a slide deck to a simple document to a book or a website things like tab set tab sets code folding syntax highlighting all work in all formats and not only do they all work you request them with the same syntax so going between formats um you don't need to change any of your kind of code chunk options to get that desired output um corto features more accessible defaults as well as a better support for accessibility and it comes with guard rails that are particularly helpful for new learners so for example um there is yaml completion to help with defining um the yaml for your document or your code chunks it has informative syntax errors um that will that will kind of guide you in the right direction when you're making errors and for those of you who may not be coming to this from an r or r markdown background it also has support for other languages like python julia observable and more and the way it does this is that in addition to nitter it allows for using the jupiter engine for executable code chunks so you might already be playing with corto or you might be thinking um let's go ahead and actually um um show me what corto looks like so that's what i'm going to do next and in order to do that i am going to open up my demo and let's give it a go so what i have here is an r markdown document and in that our markdown document it should look familiar to you i have a yaml and some code chunks and let's knit that document to see what the output looks like this should be familiar to those of you who've used our markdown before in addition to my code i can see my output i'm going to turn things to the visual editor so um i did that but uh by kind of changing from my source editor to the visual editor on the top and the visual editor gives you a slightly different authoring experience that i find much preferable it allows you to do things like folding and highlighting without writing um our mark down syntax um and i'll feature a few more um kind of a few more features of it as well but if i was to knit this document you'll see that the output stays the same so the visual editor is just a preference in terms of authoring experience not changing the output but now let's go ahead and change i'm going to rename this to say hello qmd so this is going to become a corto document and let's go ahead and render the content should be exactly the same the button has changed from knit to render and we can see that the content of the output is the same but it has a slightly different style i'm going to change my yaml to say format instead of output and that's basically how we change between different output types with corto and so going forward uh we're going to change between those i might want to make a pdf for example and if i want to make a pdf um i am going to um just change my format and something i really like is if you're using our studio you can basically see that pdf in the viewer as opposed in a pop-up window so let's go back to html and let's start playing around with some chunk options so we define them using the hash pipe as opposed to a character string up at top and let's say that i want to hide this chunk but um i want to do yaml uh i can't remember the exact chunk option the yaml completion helps me by giving me suggestions and if i render this document now i will see that that particular chunk is not printed out in my document anymore if i want to hide all of my chunk options i can set basically what we used to know is global chunk options up in my yaml through the execute field and what's neat about that is i don't know it's a syntax i've always found difficult to remember setting chunk options and this is something that will work with the midder engine as well as the jupiter engine which we'll demo in a little bit so um let's also think about these new chunk options which allow us to write each chunk option in a new line i think they make things like writing alt text for example so alternative text for the visualizations we create a lot easier because you know placing all of that text alternative text into the older style chunk option would have been quite kind of tedious um and so an alternative text won't appear in the output but we can see that it's in the html source code which will be accessible to screen readers now let's change things up a bit and let's make a slide deck i am only going to change my format nothing in my content um and if i sort of reload my editor and render you'll see that each of those second level headers are going to be a new slide in my deck so i'm able to move between formats really easily really nimbly my my code my plot only has so little space in that slide so let's give it a little bit more breathing room by simply adding another header into my file we'll call that plot or something like that i'm able to move the rest of the content to the next slide i don't need to add other syntax to indicate slide uh breaks that may then not work in a different format something like a horizontal line okay so i've demoed one document to a slide deck let's bring this back to a single document and let's see if we can make a website in less than 10 minutes uh if i want to do something like a website chances are i have more than one document so i'm going to create one more document um and um in this document um i am going to say let's call it index dot qmd and put some text into it i am specifically going to remove any computation from this document so we can feature two types and i'd recorded the demo earlier for another talk so it says here's a demo site now i'm creating another text file a yaml file that will allow me to bring these two things in a corto project so a corto dot yaml and we're going to write some yaml on the fly i'm going to define that i'm creating a corto project the type of it is a website and let's lay out our website i want a title for it maybe let's call it corto and let's say i want a navigation bar and in that navigation bar i want um the um left uh on the left i want my index qmd and i also want that hello dot qmd which we've been working with so far um i now have a corto project that defines it as a website i'm going to restart my r studio session to get that build tab to appear and i can render or preview my website so a render or a live preview of my website let's go ahead and render it so we've brought these two documents together in this very simple minimal yaml and we basically have a website with multiple pages in it i think is a really neat way of putting things together and this would be exactly the same way if you were making a book for example uh you'll see that there's an underscore site folder now and that's basically where the contents of my website is the html files that are the results of this render um what's next so we have created a website um let's think about the computation and the website one of my documents has some compute in it and what i might want to do is say please don't rerun the compute in that file every time i want to recreate uh rerender my website you know maybe i'm writing some text so what i'm going to add here is a chunk uh is a yaml option called uh freeze and what it does is it will basically freeze the results of my computation if i set it to true and won't rerun them until i um until i perhaps um do something like um re-render that particular document again and you can see that i now have a freeze folder in my files pane where those computations are saved it will also a little bit later allow me to re-render this website in an environment that doesn't have r installed so we have prepared our website and now let's publish it i'm going to go to the terminal now and i run my corto publish command and i'm going to publish it on a um let's go ahead and see if this will work um on corto pub um from my account and i'm going to maybe call this hello corto demo so corto pub is a new publishing um kind of a domain that you can just like our pubs if you have used it before and basically i can publish directly from the terminal um if you are hearing of corto pub for the first time it is quite new and you might want to go claim a username for yourself i was able to get Mina so i basically have published my website as well i think all of this is um you know i didn't have to worry about um other places that i could also directly publish to things like github pages or netlify or something but obviously that would have required additional authentication and i think this is a really neat way of just you know uh publishing your documents as quickly as possible all right so let's go to um kind of recap this so what we've seen here is that the corto cli so the corto command line interface is the one that's doing the orchestration of each step of rendering with our markdown um the our markdown package would do that so you would need to have our installed on your system and our the our markdown package would be doing the orchestration with corto we have a qmd file that depending on the code you have in that file or um or in the execution uh kind of style you have chosen uses either nitter or jupiter under the hood to uh kind of um run the code in the executable code chunks and create a plain text markdown document and then we rely on pan doc to do the last bit of kind of putting everything together and give you the outputs that you want um corto also makes moving between formats straightforward so i've shown you a single document like the type of thing i regularly write is something like a lesson one in kind of a lecture notes format maybe in html next i might say take that and let's create some lecture slides from that so all i have to do is change the format in the yaml and next i might say i have maybe one of these and a couple more that i'm going to add on to it create a yaml file that will call all of these and put them together as a website um it also facilitates open sharing um because even when it is it might be so easy to create documents locally and even if you are going to openly license them if sharing them and publishing them openly is a hassle chances are many folks are going to choose not to go there and i think that tooling that makes it easy to share what you do with the world on the web is incredibly useful um and it's not just useful for you but to the world because it facilitates open sharing of knowledge and learning for reuse and being able to kind of get accustomed to using tooling that allows for this i think can help for this culture shift where we're creating openly licensed materials and sharing them as early as possible the next in the next act we're going to talk a little bit about collaboration i've talked a lot about myself so far i write slide decks i write documents but i obviously don't operate in uh silo disconnected from others i collaborate with a lot of people and you probably do as well well i collaborate with a lot of people and some of those people don't use our many scientists actually use python too so um i'd like to ask you another uh slide dough question so again you can go to the link for the slides or you can go to slido.com then hashtag corto and i'm curious our other our languages other than are part of your life you might be thinking yes i code in r and also some other language um you know could be python but something else as well for me it is i uh code in r but i also have collaborators who code in some other language and it's possible that for some of you know uh other languages than are are part of your life so go ahead and answer this and we'll come back to the results um sort of at the end um what is really neat about corto is that enables uh collaborating across coding languages so here you can see a corto yaml just like the one we have created but this is for my uh um colleague uh jillie allowance's um website that she has kind of put together for a kind of a group that she's running and we can see that there's a lot more pages than the two that we created some of those are qmd files some of them are our python notebooks and some of them are rmd files and some of them are plain markdown files so the fact that we don't um need everyone to kind of change their tooling but actually can come together and bring whatever they have created in an environment that they feel comfortable with i think is a really neat feature um of um of corto um so i think i saw a comment that said that the poll isn't working maybe i'll try to remedy that at the end of uh paul because it's supposed to pausing now um corto enables contributing from our current tools so you could be working in the r studio ide which is personally my preferred uh place to be writing code but you could also edit corto documents in jupiter you could edit them in vs code and or you could um edit them directly on you know github for example and what is really neat about this is that um you know folks choose where they want to be writing code or where they want to be writing pros and get comfortable with it right and when they basically get comfortable with that um asking them to change where they're doing their work just to collaborate with you is often faced with resistance people want to kind of stay at their own home and wish that their collaborator would come to them so an alternative is to say you can stay at your own home and you can collaborate with me on the same project from wherever you are um well let's look at one other uh demo here where we're going to be editing that same site uh from uh jupiter it's working okay so i am in jupiter hub right now and uh you can see that um you can see that on the side the same files that we created earlier with the um with the um website that we have we're going to do a live preview of this so i've run corto preview in the terminal and that gives me a URL where i can go and see the results of my website and generally um you know keeping these side by side is a nice way of sort of um editing your document live and then seeing the changes so we're able to and note that this uh jupiter environment does not have our installed right now so it's the freeze feature from earlier that's allowing us to re-render or preview the website without running the r code again and here we have a jupiter notebook that basically has very similar content to that first hello um that qmd file that we had created we have some text in markdown and we also have some code to recreate a similar analysis and the code chunks have python code in them so we're going to run one of these code chunks and we can see the results of it directly in the notebook and let's go ahead and render that plot as well and now we're going to save the results so we've rendered executed the code in the notebook and we have saved the results and now we're going to go back to that yaml file where we had said put these two documents together and add this third document into it so that is hello in python and this time it's not a qmd file but it is an ipython notebook and let's go ahead and watch to see if things are rendered again and if we go back to our website we can see that we have added that third file and so this could be a collaborator adding to your project basically without leaving their home they're able to use their preferred computing language and they're able to use their own preferred computing environment let's take a look at some other things so we've talked about these code chunk options that we can add using the hash pipe the same syntax works in jupiter as well so we might add a caption to this figure so let's go ahead and run it and you'll see that the caption is going to be visible on the output so if we kind of refresh this you can set the caption as a visible above our plot but it is not in the jupiter notebook so it's not getting in the way of the notebook but it is present in the output we're going to demo adding one other chunk option and this would be something for what if we wanted to move this plot to the margin so kind of a style that many folks prefer where their plots appear in the margin so this allows us to basically change the layout of things to our document in a way that would not necessarily be possible to achieve just within the jupiter notebook but we are able to get that in our rendered output so if your screen is wide enough it's basically moving it to the margin so I think okay and one other thing that I'll show here is that we can actually convert between ipython notebooks and between ipython notebooks and qmd files which might be helpful if you are a if you are for example wanting to check this into git because this way you get a kind of a plain text syntax for your files all right so going back to our slides we've talked about kind of collaborating across languages but I want to talk a little bit about the teaching implications of this as well and I'm going to do this with an example from a student of mine so this is Halenstam who is an art history and visual media study student who was in my class in last spring where she had only one semester of an interdata science class where she had learned our markdown and this was her second class a regression class where we were using corto and she is working on a pretty quantitative art history thesis where she's looking at representation in art history textbooks and actually measuring kind of each of the each of the pieces of art featured in the textbook and joining that with demographic information about the artists as well and she was working on a thesis that is basically that is basically quite quantitative and had a bunch of code and a prose in it even though in our class each of our we teach corto you know every single assignment is a single corto document and we don't end up writing something pretty extensive like a thesis that brings a bunch of documents together but she was able to pretty quickly level up from writing a single document to being able to bring them together because we're able to do that with a single YAML file which in my opinion has been a challenge for students who learn our markdown so easily but then have you know struggling with that leveling up to writing more extensive things especially if they need to worry about kind of running thinking about I don't want to write my render my code every time I make changes to my text and so as a side note if you are interested in the data set that she collected with another student Sarah Lemus they've actually packaged this up as a package called art history and you could get a sense of that but sort of kind of the moral of the story that I wanted to tell here is that this leveling up was possible for a student in their second semester of statistics with a very minimal introduction to corto and to me that has been a very pleasant surprise for teaching with it so next I want to show you a few things about teaching with corto and we'll try to kind of speed this up a bit so the first thing that's really neat is that you can just render corto documents in our studio there is no additional install necessary and to me that's really really nice but beyond that you can do things like adding linking to documentation directly by adding a YAML option called code link and what this will do is in the rendered document every single function regardless of which package they come from is going to link to its documentation if it can find a package down website it'll link there otherwise it'll link to kind of standard our documentation for it and this comes with you know very minimal kind of very minimal work on your part which is really neat other things that I create with corto are obviously oh so let's let's show the sorry the YAML errors as well let's try to make a mistake here like it's hard to make a mistake because it gives you so many suggestions but let's say that I did make a syntax error and render the document the syntax the errors are very human readable and it even gives you some suggestions around how to fix them which I think is very helpful for new learners I'll show a few other things that are in so we're going to change this to reveal js to make some make our slides from the same document and I'm going to add a couple things so you can see for example that we have you can see here for example that we have the sorry I just realized that my computer is dying apologies for that just plugging in now okay there is a kind of a sidebar that allows you to go between things and also you can do a pdf export which I think is really nice students always ask for can I get a printable version of your slides other things that are really nice that I found is this chalkboard feature which allows you to kind of annotate your slides as you go and in the past I've struggled with this sort of thing you know needing to bring an iPad with me to write over things and I think it's really neat to be able to do this on the fly and you can actually save these things as well and you can get like a chalkboard to actually write on which is nice when a student asks a question that you otherwise you know don't have space to expand on in the slides I'm going to proceed a bit there's some really neat features here but I wanted to show you one other thing because we've been talking about html output a lot but what about the research side of things so if I can there are corto templates for a growing number of journal styles so here I'm going to use jessa for example that I can install this is basically adding something like an extension to my project and asks me do you trust the author of this template gives asks you to give it a directory name and now let's take a look here at the files that it has created for us I'm gonna you know adjust my title I'm gonna adjust my sort of my author name for it and we're going to render this document and you can see if you have submitted jessa articles this format should be familiar to you the fact that we're able to get to this so nicely and quickly I think is really neat so now I'm like okay I'm going to go and you know start writing my content actually and if I wanted to change my journal style to something else that would just be a change in the yaml all right so I think that I'm going to wrap things up quickly here because we are running out of time which is a huge shame but I'll take maybe two more minutes to wrap things up and then we should have plenty of time for questions so the last thing I want to talk about is going beyond what you might be doing what you might be used to doing and for this I want to give a huge shout out and credit to my friend and colleague Julia Lowndes who leads this effort called OpenScapes with her partner Erin Robinson and their model is to mentor is to mentor scientific teams kind of towards a culture of open science and I'd like to read this quote from Elena Fenwick who is an OpenScapes member because of OpenScapes I have renewed hope in how we can bring about a kinder future in science I see a commitment in the OpenScience community to bridging the gaps where we've left members of our community behind and it inspires me so the work that the sort of work that OpenScapes is doing and is inspired by things like this this is an excerpt from the FAE lab manual which basically says you are coming into our lab you are going to be a member of our research group and you might be coming from a variety of backgrounds in terms of what you've seen as part of data science as part of data analysis they're a ecology lab and it basically makes the implicit explicit by saying here's our code of conduct these are your expectations but also here's where we keep the files here is where we run our code and what the goal here is to be able to get people to contribute to authoring of things at the very beginning even if they're coming with a minimal background and so how are we going to be able to do this one way that working with Korto and our studio supports this is that visual editor so I'm not going to play for you the whole demo but I am only going to show you one thing that I think will be of super interest to everyone which is adding a citation to our document so what I'm going to do here is I am going to kind of add this at symbol and it is linked to my Zotero and I am able to with some just by searching through my Zotero library insert a citation directly in the visual editor and when I render my document I'm able to see that it has created a bib file for me and it has basically added that citation to my document it's things like this that basically get the minutiae of the syntax out of the way and allow people to focus on the content and be able to contribute as quickly as possible I can even do this with something like a DOI search so if I have the DOI for a document or a paper that I am citing I can simply place that in there and it will go through and search through the DOI kind of repose the search the DOI for me and insert the citation and it's things that ease I think authoring and collaboration like this that you know moves things forward and personally I really enjoy being able to write like this so we are going to I'm going to wrap this up with a big thank you to joining this morning I hope that this has been a good overview and introduction to Korto once again the slides are at this link hello dash Korto dash by OC and if you scroll to the next slide you'll be able to see a bunch of resources you can even get the source code for the demo that I the website that I created if you wanted to pick things up right there and I'd be happy to answer any questions thank you very much audience here are the questions in the audience yes hello very nice talk I was wondering with anything new like this I feel like there's usually something that you really wish you could do that still isn't easy I was wondering if you could share if there's something like that yeah so for example this the journal article templates that I just mentioned are very new so if you had asked me this question like last week I would have said well some of the journals are implemented but not the ones I submit to those are developed as extensions and I think that that for me has been has been nice to see that the both the Korto development team has been responsive but also the community has been building them I don't mean to say Korto is not missing anything but I've had the pleasure of making you know requests for certain things and I kind of seeing them in action I think that things like generating slides for example when you want to do a lot of styling I find that I still have to write CSS which I'm not very good at myself and I would like some of that stuff to be more built into Korto but aside from that so far I haven't encountered anything that is in no way to say the system is complete just for my workflows it has been I've been able to like open issues and get them resolved so far and I encourage you all to do the same because this is kind of baby ages of Korto and I think the team developing it is kind of really looking out for things people are struggling with so they can work on those next I have another question from the floor hi good morning at least this morning here so thank you this is great you talk a lot about education maybe it's the artwork that also makes me think of this but do you have any intentions for getting this to a level that youth could learn from this as well um so that's a really nice question and let me clarify when you say youth do you mean below the um college level yes yeah I have a young kid so I'm thinking of them yes yes um so I think that's a really good question uh while I have limited experience um with that I have ran a few workshops for high school students um a few um kind of um conferences um stat fest that ASA runs which is like a diversity focus conference I've done that there first with some high school students and I think that this sort of thing with the visual editor particularly is entirely I think a real good way of introducing students to code in the past um what I have used are learn our tutorials for that and the idea there was I know that you can't do real data science outside of something like an ID but can you give them a taste of something outside of that and I think the the answer is yes and the reason why I had kept things out of the RStudio ID and done a learn our tutorial was that I didn't also want to teach them markdown syntax and I think with the visual editor how it distinguishes between what's pros and what is code so distinctly um it would be worthwhile to try to bring that audience into that to see how they react to it I personally have not had um experience with that but I will tell you that um if you follow along with some of the like stats education work that goes around particularly um presented at conferences like us cots and ecots there's always a group of people who are working with that crowd and they're working on really neat things hi I have a question about the um collaboration so you showed how you could I guess have people different people say contribute different files like you know somebody puts their python notebook in this or whatever when you're building the website um which seems really interesting I was wondering if there's any provision for like collaboratively editing the same document so I'm imagining something like a google docs type interface where people are contributing to one document or is it currently file based in the sense that like you'd be needing something like git on the back end to manage multiple contributions to one document yeah great question um the what I showed would have assumed something like it so you're absolutely right in that um when it comes to collaborative editing so I have two answers for this if you are working in our studio um there is a collaborative editing function uh functionality that's being developed for our studio cloud it is my hope that it goes beyond just our studio cloud and it's I think just a beta feature um but I would hope that in due time uh we're gonna see a nice implementation of that in something like our studio server there is in I am not very well versed I'm afraid in like VS code I don't use it regularly but I feel like I follow enough people on Twitter that I see things that they share so I think I believe in VS code you can do collaborative editing um don't quote me on that but I think it's worth googling and and if you don't code in VS code obviously that may not be very helpful but ultimately the fact that corto is like authoring environment independent I think means that you're not stuck in our studio in the sense that if another editor has these sorts of bells and whistles that are useful for your workflow you can take what has been developed at the command line interface level and use it there and that portability hopefully um you know allows for exploring some other solutions that might be useful in this case and then we're going to have to close so we have Leo hi me this is Leonardo um um I'm very enthused by your presentation in quarter um so do you know if uh the vignette builders or in in our um are going to allow quarter vignettes and then my second question would be can you have two quarter files where they share the R code but you don't execute it in both at the same time so you have like a html and a beat and a presentation that have the same R code behind it but you don't have to spend the computational power to render it twice um so question number one vignette builders I do not know the answer to this question however I think this is a good opportunity to point folks to where a good place for asking questions is um on the corto github repository there's a github discussions feature so you can just have a question it doesn't have to be an issue like a software bug so if you go to the corto website and click on help it will get you there and that is a fantastic venue for that question and I apologize that I don't have an answer for it for the second question of having a single R source code for um multiple kind of QMD files if that's that if that's a workflow that you prefer um you can have include statements in your uh corto file so it's just two curly braces and then include and so the way I would solve that problem is put the R code that you want in a third file that you then include where necessary and you can do that at the YAML level but I imagine it's going to be interspersed through the text so I think you would want those include statements interspersed through your text as well I wish we had a little more time maybe I'll ask one more question though um this has to do with books and uh how many examples there are of volumes that are satisfactorily produced in the corto framework that are monographs and they include cross references between chapters and so forth something we have found difficult to deal with yeah so there are plenty actually let me link to and I'll put this in the chat here for folks to see so on the corto website you'll be able to go to the gallery where we've collected um books and a handful of these um also have pdf output as well personally something I've struggled with in the past has been making things look good in html and in pdf and you know until you'll be able to see examples of that corto is quite new so the number is not in hundreds but there is a growing number of them and hopefully that gallery is like inspirational in terms of solving that cross references and stuff um kind of I've demoed that at the very end with the visual editor not that you have to use the visual editor but the same cross reference style works whether it is a single document or it's a book or a website which I think perhaps resolves some of those challenges with adding references to a book fantastic I'm going to have to close the session because some of them have to change buildings thank you so much for a wonderful presentation thank you have a good day