 Hello everyone and welcome to the first bite-size-in-fall. I'm happy to have with me today Marcel, he's from Zekera Labs and is telling us today how to set up a Gitpod environment which might be specifically of interest for people who will join the training tomorrow. So off to you. Hello everyone, it's great to be here again. So Gitpod is a very nice product or service and we've been using it to help people have some hands-on as fast as possible access to the training material that we have in Nexlo. Some people, they have some difficulties. They try to look for up-to-date material on how to use Gitpod or how to use Gitpod to access the trains, the Nexlo community trains. So we decided to provide this bite-size-stop so that people can have an up-to-date video tutorial on how to do it and also to give some more, to get into more details about how Gitpod works which is something that we don't do during this training because that's not really the focus. So I'm going to share my screen and show a bit of Gitpod. So that's the official website, Gitpod.io. The best way is not the training material but here to find more details about pricing and everything else because it has changed reasonably often in recent mountain years. So even though in the training we try to have the most up-to-date information about how it works, ideally you should come here and check how it works. Because sometimes even the measurement of the hours used, they are different. So the first thing to do is to sign up. So I already have an account. So what I did was to complete screens of the process. So when you go and click on sign up or sign in, you're going to see the screen which means you don't really create an account for Gitpod but you use another account that you already have. In the past you could only log in with GitHub but now you can also log in with Bitbucket and GitLab. So once you choose one of these options, you're going to see a window similar to this one. This one is for GitHub asking you to authorize Gitpod to access your account and so on. Once you click to authorize that, you will get this window asking, okay so it was out, it was out, you authorized that so it synced your GitHub account or Bitbucket account or anything like this with Gitpod. You're going to choose a name and this is the thing that's relatively recent. So you can connect your LinkedIn account with your Gitpod account and then you get 50 hours of usage per month. If you don't do that, you only get 10 hours per month. It's a bit annoying but this is more than enough, the 10 hours is more than enough to follow the training, the foundational training. If you want to use Gitpod often afterwards, then it may not be enough and you may have to pay or to connect your LinkedIn account to get the 50 hours per month. But it's not only that. When you're configuring the version of the VS Code because in the end, Gitpod is going to provide you a VS Code web version in your browser. So here you can pick what's the default version that you want, the team and then it's going to ask also some information about you, what you work at and what you're using Gitpod for and so on. In the end, you get the screen which has all these workspaces. So what are workspaces? So what Gitpod provides you in the end is not only like this web viewer or VS Code but also a virtual machine, right? And you point to Git repository URLs, like GitHub repositories, that have some Gitpod virtual machine prepared for that and when you access that, you have one workspace. You may have multiple workspaces for the same repository. So they are all going to appear here. And the thing is, when you decide to open one of them, and I'm going to show here one example, so we can go to GitHub, Microsoft, train. So when you go to the repository and we know that the train activity, we have a Gitpod for that, you just get the URL and you add Gitpod.io, slash, hashtag and the address of the GitHub repository. And then you're going to have this new workspace window. The detail here that I want to emphasize for you is that here you have some options of what machines you want to use to run this container immediately built for the train material. You have a standard one and a large one. All of those 10 hours or 50 hours that we saw a while ago, a few minutes ago, they're actually the standard machine, which means that if you choose the large machine, which has more memory, more storage, and more CPU cores, it's going to be less than 10 hours and less than 50 hours if you collect your LinkedIn accounts. So it's much better, of course, to use this large machine, but be aware that the time is going to be shorter than 10 or 50 hours. I usually use the standard one and it's pretty fine. So you're going to click Continue and then you're going to see this screen loading and building the workspace for you. Preparing, starting. The first time you do that, it's going to take a bit longer. It's pulling the container image. It's going to install some software. It's going to do a few things. And in the end, it's going to provide to you this window. It takes a while for everything to finish because there's more that we want to show to you. OK, so that's ready now. You can close the debug console here, click Continue. And you have access to your terminal, which shows everything you see on the left. We are in the NF Training folder. This is the folder for the Hands-on Training, which is another training in this platform. We have it here, Hands-on Training. You're going to just compress it here. This is the folder for the foundational training. This one here, the basic Nexo Training workshop. And we can see here with the last, you're indeed inside this folder here. So once we are inside, then there's all these features that if you already used VS Code, it's all the same. We have the File Explorer here. You can click on any of these files to open them. You can close them with this X at the top. If you want to download some file, you can click with the red button depending on your computer and your machine. And you have the option here to download the file. It's going to download the file to your computer. You can rename files. You can delete files. You can copy and paste. You can do lots of things, but all these features are pretty similar to what you have VS Code, just like these other ones here. So we have this computer image that is already pulled, which will be used during the training material for the RNA-seq pipeline. We can open our browser here, extensions that some are already installed. You can set and install others. We have some search control. Anyway, it's VS Code, right? You can create folders, files. There are many things. You could spend the whole day here showing you how this VS Code works. If you want to create a new file, I mean, everything you can do by this last panel here, with the red button and so on, but you can also use the terminal. So if I want to create a new file named example.nf, I can type code, example.nf, and it will open a new window here, or you could type something. You can just save that, and it will appear here, example.nf. Just like you would do in your machine, type in code, right, for VS Code. So once you do that, you have access to all this amazing environment. It's not your machine. So maybe I don't have Nextful installed in my laptop, but here I have Nextful, right? Maybe I don't have Docker installed in my machine. So here I have Docker, right? So everything that I installed here, so that when you're following the training material, which is here, right? When you're following this training material, even if you don't know how to install, or maybe you cannot install software in your machine for some reason, or you don't want to mess the configuration of your computer, you don't have to do anything in your computer. You just go to the Gitpod workspace, this virtual machine, and do everything there because everything is already installed. So for example, this in the Sempernistic workflow that we're going to be at some point in the training, you could just run Nextful, run script one.f. You don't have that in your machine yet, but it's here, right? So I can just do Nextful run script one, not enough. It's going to work. It's going to do whatever it's saying here, showing something, like printing the reads back, right? So Gitpod allow us to very quickly start practicing Nextful and to very quickly be able to follow the training material that we have with the recordings and everything that you will soon see. Another interesting thing is to set up your Gitpod instance for your personal GitHub repository. So the focus of today is really to show how to use Gitpod for the training material, GitHub repository, but it's also interesting to show you what's going on in the background. So the first thing is that we have a container image that we created. Here's the training GitHub repository. So we can go to .github and we have this Gitpod Docker file. So this is just the Docker file we use with the GitHub action to build this container image. It installs lots of software that are required for the training material, including Konda and Mamba and Nextflow and NF4 tools and a few things, right? There's some configuration. This is the GitHub, the container image. You could do it locally in your machine and push to a container registry, but we have a GitHub action doing that. The interesting thing though, is the .github.aml file at the root of your GitHub repository. And here is where you have all the magic happening. So you have some workspace location, some information about what you want your VS code to look like and so on. The checkout location in the virtual machine, right? Within a container, of course, you have some interesting thing here. So enable for the master default branch, enable for all branch in this repository. So maybe you want to open this GitHub repository with Gitpod, but you want a specific branch, right? No, you don't want master or main. We have lots of things here. Then you have the container image where you will be inside when you open the Gitpod workspace. So here we have the container image that I just showed the Docker file to you, right? And a few things, a few tasks and here's some VS code extension that we want by default, right? So this .githpod.yaml is where most of the magic happens. But then we also have that other file that we mentioned at the top of the previous file, which is gitpod-ws.code-workspace. So here, for example, I show what folders I want to be automatically opened in the Power Explorer on the left as we saw a few minutes ago. And then a few settings also. All that you can find in the Gitpod website. You have the resources and docs and so on. So everything you can find here, if you want to have a Gitpod instance for your GitHub repository, right? When you do the gitpod.io slash hashtag and the GitHub URL, Gitpod, we will look for these files, mostly for the .githpod.yaml that we saw here. And the other ones that it refers, like this Gitpod, that's all. So I don't know if there's much more in that. Talk about it. It's very, it's simple, but I agree that without a video tutorial like we did here, it can be maybe challenging to start using Gitpod all of a sudden when you want to do the next full training. But we believe that with this byte size talk, we can have some step-by-step video training, like I showed with the with the print screens of every screen you have when you sign up. Indeed, we have this connect with it in detail now. It wasn't like this in the past. So some people were trying to follow our courses or training materials and they were like, oh, there's something different here. Why do I have my linking account and so on? So I believe that right now, if you try to connect the linking, maybe it will ask for a phone number to confirm. I'm not sure someone told me that, but I already have an account. So I can't really be sure. Inequent Connect with my linking again. So yeah, I think that's it. So if you have any questions I can answer or maybe focus on something specific that at first seemed so important to me, but maybe for you, you want to know something else about this Gitpod or training material and so on. So back to your friends to manage these questions. Thank you very much. So are there any questions from the audience? Maybe I can start with one question from my side first. So there seems to be quite a few files that you have to create in order to get this to work. Is there any easy way where there's like a builder or something that you just have a wizard that guides you through creating one? Do you know about that? Yeah, so these files are really if you want to create a Gitpod workspace for your personal project, right? For the training material, everything is done already. So they have a command line called GP and they have a command, I think it's GP View or something that you run it and it views the .gitpod.yema for you. So in the Gitpod, go to resources and docs and there are multiple files explaining how to do that, how to build this Yema file, how to test the other ones, how to train stock stations, it's all there. And it's very useful if you want to maybe have a workspace to play with your next low pipeline, for example, that you are developing. But I want to emphasize that for the workspace that are already in there, like the training material, you don't have to do anything. The only thing you have to do is to sign up for an account and go to the URL, gitpod.io slash hashtag and the GitHub repository URL of the training material. That's all you have to do. And then the signing up, of course, and waiting for it to load with the page and the browser and so on. Yeah, we have a question in the chat. Cohen is asking, what is the main advantage over VS Code plus .dev container? Yeah, that's a hard question actually, because until a while ago, the obvious difference is that VS Code, the GitHub code space, they were more expensive, right? So, I'm sorry, I'm confusing VS Code and container with the code spaces with GitHub. That's a good question. So I'm not sure if I remember correctly. I use the containers, but I think I also use it with code spaces. The thing is, until a while ago, gitpod was better than the other solution because it was cheaper. Everyone was more limited, less powerful machines and more expensive than Gitpod. But then recently, things started to change. So with GitHub code spaces, for example, they made it, I think, as cheap or maybe cheaper, because I think they also provide maybe 55 or 60 hours. I remember when they released the latest change, it was something like, we give you for free the same amount of Gitpod or maybe even a bit more. So this was like killing blow-on was, I don't know. Gitpod is still there, of course, and we love it and we use it, but it was a very, I don't know how to say, it was a very strategic move from GitHub because now maybe a lot of people we use GitHub code spaces, people that before use Gitpod. And we even have some GitHub code spaces for, I think, an NFCore documentation if I'm not mistaken, but we stay with Gitpod because we already have everything working. It's easy and the amount of hours they provide to us is enough for the training material. So I can't say it's the best, but it's been working pretty good for us. Okay, to come back to the question, there may not be an advantage, but it's working pretty well for purposes. Yeah, yeah, yeah, yeah. Phil is also giving some comments. By the way, anyone could also unmute themselves so you don't have to write that long. So he says that all NFCore pipelines ship with configs and containers, and it's part of the template. So no need to create them for those repos, but repos without configs will just work. It's only if you want to have fancy stuff with the configs. And he also says that def containers is code spaces, but can also run locally and he's not quite sure. So if Cohen could confirm that, but one thing is Linux, so if you're on a Mac it can help and Git port is totally disposable. Yeah, this is something that I do a lot actually. So for example, I have a Mac book, right? Some of my Apple Silicon architecture here. And sometimes when I want to run some pipelines, some things they go high wire because the container, the tools use our containers for Linux and I have Mac OS, which means that my Docker is actually running a virtual machine with Linux and inside running my container. And my operating system is emulating all these internal instructions to the Apple Silicon architecture. So it's a lot of emulation. So using Docker on Mac, if you use Mac OS, using Docker on Mac OS is not really straightforward in the sense that things don't work as expected for no apparent reason. Sometimes it gets stuck. Sometimes it gets longer. Sometimes you have a weird error. So whenever I'm developing pipelines with Linux containers and so on, or I wanna test something, I go to Git port because I get very weird mistakes on Mac OS. So just like you said, it's a great place if you want to have a Linux box, a Linux machine to play with and to run a pipeline to configure something, go to Git port. It's very, very nice. It's disposable, right? When you're done, you just close the workspace and that's it. And one thing that Simon Pierce also replied in chat and I think it's very important to emphasize is that Git port is entirely web-based. So the same way you don't have to have next to install or Docker, you don't have to have DS code installed either. You can have this very, you just bought this machine, nothing is installed, just the web browser. This is enough. You just open Git port and everything will be there for you. Yeah, we just got also the confirmation that Dev container is locally, or that it's at least possible. Okay, great. Do we have any other questions from the audience? It seems everything is clear. Then I would like to thank you myself for this nice talk. And as usual, I also would like to thank the John Zuckerberg initiative for funding our talks and for the audience to listen and for this nice discussion. Thank you very much. Bye everyone. Have a nice day.