Oh, hello and welcome to animal crossing new horizons. It's finally here. This is my very first animal crossing game I have never played animal crossing before and I'm super super excited. So I actually already got started last night I did the introduction is stuff by myself just because I wanted to and that's that so We're going to get into animal crossing today. I'm so excited. I've been playing this and do maternal which is a weird switch off I haven't really played much of this, but I played do maternal last night and then immediately after played This and started animal crossing to very different worlds there But we are going to be playing animal crossing on the channel. I'm super super pumped. I don't even I don't know that much about animal crossing. I just know that there's a huge fan base for animal crossing Justin Who's editing?  Here he is Tom nook big guy big guy Testing testing test test test Hello every oh dear. So sorry about that the volume was a little loud there.  So let me I want to give him an accent I feel like he's southern So lend me your ears for a short time now It's only fitting that we kick off this daily ritual with a doozy of an island announcement the cornhole airport My island is called cornhole. Don't worry about it. It's open for business starting a day You can use online or local communication to fly to other islands for a visit. That's not all no no the airport now Offers as postal services and just like the resident services center the airport is open 24 hours a day So please drop by for a look. Oh, I do have one other item to share and it's a and it too is a whopper, huh? As of this very day a brilliant fellow by the name of blathers will be joining us on cornhole Blathers has a keen interest in the biology past and present and he's here to study whole cornhole I sincerely hope everyone lends their cooperation Inquisitive residents should stop by his tent for details. That's all from me I do hope you enjoy another day Another fine day of luxurious cornhole living Tom I will and you will continue to take my money for years and years until I die in my sleep Here I am look at me. Look at me. This is eepers. Look at this little guy Look at him. Look at look at him. How cute. He is. Look at him. Wow Look at him. Oh He cute. He a little cutie. I would like a stick Guys, I kind of also want all the weeds off of my entire island Will I take an hour or two to do it? Probably I probably will but not in this game play. I've also got cherries on my island Which is great. Apparently our cherries rare. I don't know I've seen a lot of people with peaches and stuff not a ton of people cherries So I don't know if it's super rare. I don't know if I have a one-of-a-kind island, you know Oh my god, but here we are animal crossing guys. I'm excited about it So you can leave me some tips in the comments if you want I am going to be playing this game the way that I want to play it Um as I do with most games. So, you know leave your comments and whatnot Um, but I'm gonna play I'm playing this game for me Um, and I'm really excited to be playing this game and I'm excited to share it with you But also, please don't get mad if I don't play it the way that you You know want it to be played or whatever because this is my playthrough You go off and play it on your own. Is that a butterfly? It is a butterfly Fishy fishy come back fishy fishy come back. I would like I would like to have you fishy Come here here. Wait. Stop turning around fish. Come on fish. Oh Oh, yeah, we got a big one here guys a new fish Yes, I caught a loach. It's looking at me with reproach every time you cut your fishy. It gives you uh Fishing rod you did me well, sir. You did me well. These are all the things that I've uh that I've captured Look at that. Look at that fresh water goby Look at him jeepers jeepers jeepers jeepers Can I oh, I would love custom designs with this app You can create custom designs to wear on clothing or display around the island When you save a custom design to the app, you can share it with the other island residents There's a chance your custom designs will be seen by other players during the network play sessions When you visit other people on an island, for example, please don't create anything that infringes on others, right? So don't use private information bubba Well, this is great. I love the vine pattern a lot Yes, I would like to wear it top Oh, that's cute. Oh, that's cute What about what about the airplanes? Wow, look at that. Look at that. What about a flower outfit? These are all adorable and I love them a lot I could wear my face paint footprint pattern Oh, I love it. I love it my passport. Let's take a look at my passport Your passport information is shown here the information may be seen by other players blah blah blah blah blah You can change your photos out. Okay, cool. Look at me. Look how cute Cornhole cherries deserted island island dweller jeepers Let's edit uh Let's edit the comment Add a short comment to your profile Uh, I don't know what to do guys. I'm sorry. Oh my god deserted. Okay. Okay. Okay. Okay. Let's see. Let's see. Let's do Very first grandpa. I like festive papa Festive papa is pretty good pretty good indeed Okay, diy recipes. We have some more stuff. So we need to make a new fishing pole first But I also need to take this off. Also, this is out. I fear There's a lot of other stuff too drink a place to come if you want to look at it. This is so calming Check this out for info On the diy browser. Okay Oh, oh, we can make an axe. We can make a net This is good stuff. Oh, we make campfire Okay Good good good. Uh Let's see. We need five true branches We're gonna need 10 tree branches. What is this shiny thing? What is this? What's this shiny? Hello Maybe I should dig there if I got a shovel Oh, and I have mail in my mailbox From mom How's your new life treating you?  Oh dear. I'm all worked up. Here's a little something to help out. You did our plant it but think of me mom What did you give me mom? What did you give me mom? Huh a striped shirt? Wait, is that the shirt that I was already wearing eat it or plant it? So probably Probably not the shirt Wait present open An antenna switch I think those are the ones that I got from then uh the red tulip bags. Oh, okay. Okay. Okay. That's what mom get Wait, no, no. No, this is what mom gave me apples I love it. I love it. I love it. Uh, I'm gonna put a workbench Here wait Simple diy workbench learn Huh, okay Sweet I learned a diy recipe for a simple diy workbench. Oh, so I need to go and make said workbench. Okay, so we need a Bunch of wood probably let's collect the wood. That's gonna be blanchers blanchers. Is that his name? Please don't be. Ooh Love that give me some bells. So the currency in this game is bells. I'm sure everybody knows about animal crossing I'm sure I don't really need to explain but I'll explain anyway because maybe just like me This is somebody's first time playing ambival quad pigs Uh What is that? Wait, what is that? What was that? Was that a little capotiller? Look at all these branches. What's up axel yo eepers That's why you found for me is just incredible. Thanks. Hopefully we can keep looking out for each other like this It's uh, it's good to have buddies walk. Oh, right. I've got something here for you walk Thanks again for finding a place for my place Well, you're welcome a hat That outdoor hat is perfect for cornhole. You can try it on by pressing x to open up your Thank you so much Actually, you got me a hat Oh my god, I want to put my striped shirt back on I like the striped shirt Uh, and then the hat wait Nope He's so cute This is the best day of my life guys. This is the best day of my life Dog, I'm getting so many trees right now Give me trees not bees All right, so now let's go in here Let's see what Tom looks got for us. Tom look any sweet Tom hey Tom Should I craft something using Tom will nooks workbench? Let's craft Tom look Uh, but I'll do simple DIY workbench hardwood. How do I get hardwood and wow Log stakes birdhouse. Okay. I don't know how to get Hardwood. Oh, it's probably this Oh, yeah craft it. Let's do it. Let's craft a flimsy axe. Oh, look at me going to work Yeah, I made a flimsy axe keep crafting I want to keep doing more stuff Craftable, let's make another one of these We'll come back and make a butterfly net soon, but we don't really need it for now I made a flimsy rod keep crafting Um Flimsy watering can all good stuff all good stuff all good stuff A tire toy Okay, what is this Tom I'm gonna change Tom's voice. Oh, how could I forget, huh? I should have given you a brief exclamation about that terminal. That is our nook stop It's a terminal for services that'll further enhance your island life at the moment You can use two services ebbs. The first is nook shopping It's a catalog shopping service of items that can be hard to find on the island Second is the terminal services as an automatic bell dispenser or abd for the bank of nook We're also working on a service by which you'll be able to redeem nook miles for various things Please take advantage of these wonderful services quite beneficial indeed. Yes. Yes All um All deposit once per day accessing nook stock will board you bonus miles. Wow. I got 50 bonus miles Please select from the following services. Let's do the abd Let's deposit Let's deposit the full amount guys.  Thank you for using Uh nook shopping though, let's see what they've got here lawnmower.  That's really cute Denim pants. Oh my gosh So full kk cool Cool cool cool cool cool. This is incredible Sign it off. Thank you for your patronage. Of course time. Thank you so much. Thanks for taking my money every month Please don't kill me all right Timmy tommy. Oh e-persons. It's great to see you for keeping measures and services open at night So feel free to stop by if you want to talk about anything the time being I'll be out checking in with everybody Seeing how folks are doing if you're ever unsure about what you should do. Don't hesitate to stop me for a chat.  No, I need to use my axe Because I think I need I think that's how I get hard wood So I don't want to chop any of the trees by my house because I like the trees over there Oh, yes. Yes. Yes. Yes. Can you actually chop down the trees? Oh, I like that. I like that. You can't actually chop them down. That makes me happy Oh, and it drops the berries Ooh So that's the hardwood the other is softwood my pockets are full already. Should I swap it with something swap it? Let's swap it with the I guess I don't need these really okay if we go back in here now now that we have some hard wood Do we need more stones? We might have needed more stones We're about to find out I suppose Hello, Tom. I would like to use the workbench Yes, let's craft Can I make the simple DIY workbench?  Um, I don't even know how I get iron That's okay Oh, that's okay I guess that's okay Wait, no, no, no go back go back in there. I could just ask Tom I'll get some um get some things from him.  Yeah. Hello, Tom. I would like to learn Uh eepers. Hello. Hello. What would you like to talk to me about? I'm all ears Uh Oh, I guess what should I do? Yes, yes, that is the question by the way, thank you so much for finding a place for blathers to set up Uh, but you're looking for practical suggestion, huh? Well, I don't mean to mush you but there's a small matter of your moving fees Putting in some work to chip away at those is always time will spend if you ask me Remember you'll get a notification right at any nook phone. We've done anything to earn miles The doobie show to check it out. I think you'll find it quite useful, huh? All right All right, all right, I guess I'll go and do things Trying I'll go to the museum really quick Let's see what it's like there. Let's put that away Let's put away that uh Blathers right Blathers, what do you've got for me?  My name is blathers. I'm exceedingly interested in the eco system of this land Thus I have come to conduct research if you will. Uh-huh Could it be that you are ebbers the personage who uh chose the location for this tent? I am A splendid job indeed to you. I was able to light on this island with an With nary a ruffled feather Now regarding the aforementioned research Truth be told, I am determined to open a museum and henceforth dwell on the island amongst you So you should discover a new type of insect or fish to be so kind to bring it here I plan to exhibit these creatures as well as uh those you gave tom nook in the museum upon its completion Though I confess there's one smallish problem regarding said museum That is I lacked the number of exhibits needed to secure permission to open a museum proper Empty display cases will not do I'm told display cases that uh with something to display that is another matter Which is where you come in watt watt allow me to explain you see it is not only insects and fish I plan to display in my esteemed institution, but fossils too. Who? It happens. There's it's a substantial stretch of land beyond the river Be my I would bet my pin feathers this privative plot is flushed with the fossils I require But the river you say I can't just hop over it. You say oh silly you I have a solution Audacious is trying to populate an entire an entirely deserted island Pardon me ebers while I transmit the vital data to your nook phone. You're gonna teach me how to build a bridge Huh bridge boys. We gotta be bridge boys. Oh, what did I get on my cellular device? There you see with good gathered from cornhole. You can make a length lead a vaulting pole Pole can be used to propel oneself across the river up and over you go. Who do you? I sent diy schematics for a shovel to dig fossils from the ground as well Which brings me to my point please ebers cross the river and seek out ancient relics my feathers I have blathered on for far too long. That's why you're called blathers But let me leave you with this find to open the museum. I must acquire more items to exhibit 15 more to be precise I fervently hope you will donate your precious finds to the cause And I will blathers and I will all right boys time to make a vaulting pole. Let's get over that river I need more softwood. Okay. I'll be back. Okay now. It's time to make the vaulting pole Let's do it, dude Let us make the Vaulting pole Thank you. I made the vaulting pole. Wait, I'm I'm all done. I don't need to grab anything else Shit what about a A shovel I want a shovel Okay, I made a shovel I made the shovel. Uh, wait, where'd the sparkly thing go?  We need to go. Oh, there is a sparkle. There is a sparkle. Hold on flimsy shovel hold What if we Dig down right here Oh my god guys a thousand bells Gee whiz, dude A thousand bells Whom did I just steal from? Whom hold Now let's use this to get over.  Well, we're we're over on the other side of the land And there's much exploring to do look at this waterfall Oh my god Oh my god, can I just dig anywhere? I can probably plant things I want to use did I make a net? I didn't make a net. That's okay. Can I use a vaulting pole? To get up as well. Is this a fossil? This is not a fossil Is this one? No, that is coral That is coral We don't like him. All right, I might be able to use my vaulting pole to get up Mother may I I am not allowed a shame for sure a shame I can't use it to get over here though like that I like that Whoa, what's going on here? What's going on with this little thing? No, no, no, no, no, no this A fossil? I dug up a fossil Yes I found one guys. I found one It's so pretty over here. I should have made my house over here Those are little insects So cute so cute another fossil I'm killing it guys. I am killing it right now So I need to go back and make a net so that I can catch some butterflies and different insects and stuff Because if I don't have that then what do I have you know catch a fish catch a fish fish fish my wish Come on fishy. What do you got? Oh nothing new Loach bummer Bama Bama bad Thank you Should I swap it with something? Yeah swap it with something Oh man. Oh, yeah, get rid of the loach Who needs him? Who needs the loach? All right, any other fossils Down here. I don't think so.  Hello, sir I'd like to give you a fossil I take Who I wish you could bulk give him stuff An australipith My feathers what a fabulous fossil besides of a scepter. Oh, wow Do perhaps Consider donating this asian relic to the cause. I'm donating it I'm donating it. All right. I'm gonna give him the rest of these fossils.  Oh, you can do multiple fossils at once. That's wonderful That is wonderful There we go more than one. Let's take a closer look These are rare fossils each and every one I say you have a quite knack for finding valuable fossils terribly jealous I only hope I can convince you to donate these. Oh, no, man. Oh, man Make a donation. I will make a donation I will donate lift fossils this. Oh, man. I wish I could do more than one Could it be it is um Magicero skull. Wow Wow, wow, wow, wow All right, one more fossil To donate I've got something I've got something for you boy. Oh, I've got something for you. I've got a skull for you It is A spago spago skull eight donations left for the museum. So I need to go and get The thingy the what do I need? Net I need a net Let's make a net shelly. I'm going to craft something using Tom. What nooks work bench Bup, bup, bup, bup, bup blue Okay, okay. Okay. Okay. I've got the net now. It's time to go back Let's get the net out and let's get us some bugs Butterflies butterflies. Where are you?  Where'd you run off to now? Where are you bugs? No No, no, no, you cannot hide from me bugos Come on bugs No, I missed them. Damn it. I need this cockroaches Papa roach come back.  I've got one. I've got one. Yes I cut a warf roach. This water loving roach has no pier Onto the next bug onto the next bug. Come on. Give me a butterfly something. All right. Give me a butterfly Give me something beautiful. There we go We got a paper kite butterfly Wonderful, wonderful, wonderful We only need six more things Ah, can I get it? Ah, ah, wonderful. Yes. I caught a common butterfly. They often flutter by. Ha ha. I got it guys Hey Come here. Come here Come here. Oh, I'll get you. You think you can hide You think you can but you cannot you will not be able to escape Silly butterfly Ha ha ha ha Oh, yes, that's it. I got a tiger butterfly. I've earned my stripes Okay, let's swap it I can always get more stones guys sticks and stones, you know Maybe I will get the fish Fish my wish come on fish my wish come on. You know you want it.  I don't need weeds dude.  There's no room. Oh god God, oh god Had to let them go What do you got for me? Oh critterpedia got new things got new things. Let's dump some stuff real quick drop it Let's drop the weeds. I don't need to draw to keep any of that Those I can get rid of those All right, let's see if we can get a fish Give me a fish. Give me a fish. Give me a fish.  I was too slow, but there's a honker out here as well. Come on Come on fishy Come on fish Come on fish Fish my wish come on. Yes. Yes. Yes. Yes. Yes. Yes. Yes. Oh a new fish. Yes.  Oh, it's right next to you bud. Come on. Come on. You know you want it. Come on Come on, baby the squid I caught a squid off the hook That's not a new one though. I don't think I already gave him a squid the night the previous night Wait, I'm gonna catch the fish first Fish first fish first everything else second Oh Come on a tire. I hate it. I got an old tire. I sure am tired of that. Yeah message bottle Can I crack it open? Can I crack her open? Why not? Do I have to use this shovel? What's this a clam? That's fun Use this fishing bait. Oh, I've got an idea Damn, dude. How do I get this little bottle though message bottle pick it up? Oh, there you go. Huh? My pockets are full. Okay. I'll swap it with something. Yeah. Yeah, swap it We'll swap it with The squid because the squid Don't I don't need it. We're gonna deposit Everything I've got guys. I've got 1600 bells. Are you kidding me? Are you kidding me? Are you kidding? Oh, I need to pay him back his 50,000 bells. I can't believe that mother for charge me 50,000 Oh my god, please let me know if you have any arms tonight only the system So I'm here to help make a donation, please Marvelous. What would you like to donate? I'll donate a butterfly. Huh? Here you go, sir A paper kite butterfly the horror the repugnance. Good heavens. I must maintain my composure My begger part at bugs. I do detest them still. There's not um, there's much I can tell you about the insect I don't want to know You can put that in your museum, right? My sincerest thanks for your donation And though bugs are the bane of my existence rest assured the wretched thing will get the best of care here Okay. Well, I've got more bugs I've got something marvelous. What would you like to donate? I'm gonna give you something else that I will terrify you So sorry All right last thing Common butterfly. Here you go. Here you go to horrify you Eek All right, how much more do I owe you? With this we need three donations to open the museum. Okay We just got to get three more things guys. That's it. Okay. I think I have everything I got another carp, but I don't think I've given that to him yet. I'm not sure But we will find out. Hello, mr. Hootman make a donation Please Let me give you something. Oh damn. I've already given him that. Okay. I need one more thing While I'm here. I'll just give him these though. Oh baby A sea bass Have I already gotten a sea bass though? That's the thing. That's the thing. Have I already Conquered the bass. I may have already given him a sea bass. I think I gave him a black bass Something I can't remember. I gave him some sort of bass last night When I was playing on my lonesome. Please let me know if you have any items Blathers, I think I have something for you. I think I have A sea bass.  I got it guys. Okay back to the museum.  I have something for you. I'd like to donate the bag worm. Here you go.  I do believe this means Yes, how's our hooray? We have acquired the number my feathers. I whoopsies Never would I have imagined we could reach our donation goal on this my very first day in the island The generosity that has made this possible the passion Now we can submit our application and build a proper museum. Oh my I must make haste and prepare for the museum opening There's much to do hoodie. Who thank you very much. Yipers I don't get anything for that. I don't get anything Jesus All right guys. Well with that last thing to do.  It's not much. It's a humble abode for sure Here's my tent. It's a little yellow tent. I love it And this uh This is the inside You know, not much to do that much Got my little switch here I can play on it And I can sleep Which is I think what I'll do now. Just take a little nap. Just take a little nabby poop. Thank you so much for watching the first episode of Elevator question I hope you had a good time This game is so sweet. It's so fun. I love it. It's great so far. So Thank you guys so much for watching. Let me know Uh, if you have any tips, let me know what your islands are called if you're playing I'll see you guys later. All right keep crossing those animals Okay, bye


All right it's 10 o'clock so good morning everyone welcome to the third day of the CVMFS workshop. So in the last two days we showed and you did the exercises for setting up the actual infrastructure for CVMFS. Today we will actually start using the infrastructure to publish files to your repositories and show you some details about the transaction process and some other techniques. But I first want to do a short recap again of things that we saw yesterday, some questions and issues that we run into and other remarks. So I collected a few of the things that I have seen in the Slack channel and questions that we got after the talk. So one thing that is important because it can cause very annoying issues is that on your stratum one you basically define a directory where you store all your public keys. So for instance if you make this directory where you have to leave out the repository name but you just use the domain name then you put all your public keys into that directory for this particular domain. But even if there is one that exactly matches your repository name, so let's say that's repo.yourdomain.tld, CVMFS server will still check all the other public keys in that directory as well. And yesterday we saw a very weird issue that if one of those public keys in that directory for some reason is incorrect then CVMFS server will still complain even though the the actual one that you want to use which completely matches your domain name and your repository name is correct then it will still complain because there's another incorrect key in that directory. That also means that the the public key that you want to use doesn't have to match the name doesn't have to match exactly to your repository name so you can rename it to whatever you want and then CVMFS server will still find it. So again make sure that they are all correct otherwise you can get weird errors about the white list being invalid or similar kind of errors. Another question that we got is if you start with your stratum one not using the geo API so by using the workaround that we provide on the tutorial webpage can you then still later on enable the geo API or do you have to redo all the steps from scratch instead of the replica from scratch? That's not necessary so if you still want to use it later on you can just request that key and insert it in your server.local file on your configuration and then when you do the next snapshot CVMFS will detect that you have that have set the license key and it will then just start updating the geo database so what it does basically every snapshot it will contact the website of MaxMind which provides that database and it will check for a new version and pull in that new version of the database that contains some information about which IP addresses are located where. Then we got a request if we could add some kind of too long and then read a page section to each page so there's quite a lot of text on each page now and every now and then somewhere in between you will find some commands that you will have to run or there's some instruction that you have to edit a certain file so what we want to do we didn't have time to do that yet but we will try to do that maybe this week to add some kind of quick summary or quick overview to each section or each page which will just list the commands that you will have to run to set up some kind of server so for instance the stratum zero so which commands you have to run which files you have to edit or which files will be created by either the packages or the the tools themselves so that you have a quick overview in case you want to redo something without having to read the entire page again. Bob can you make the slides a bit bigger? Ah yes. Just make it full screen for now or something? Yeah that's probably better I'm using the terminal anyway. Then I was questioned that most of these commands especially for the server but also some for the clients have to be run as root so it was questioned can you run CVMFS in user space? Well for most of the server parts that's not really possible for instance the stratum zero and one do require some root permissions to change stuff in directories that you don't have access to as a regular user you also have to edit some configuration files. It also uses tricks with overlays to make the the CVMFS repository writable as a writable overlay on top of the read only parts that cannot be done with singularity for instance. It is possible to run the server in a docker container if you want to do that then you have to give it full privileges to do whatever you can in that container. So that's possible but that probably doesn't really help if you want to run this somewhere where you're not root anyway then you probably can't use docker either but for the clients there are solutions to do this without root permissions so there's for instance singularity which can do this for you which can at least mount your repository inside the container using a fuse mount which I think Jacob also demonstrated in his talk on Tuesday or Monday and for instance in the easy project or in the talk that I gave about easy I also gave a quick demo of how that works then you can just pull in a container which does need to have some packages installed but given that they are installed already you can just let singularity mount CVMFS for you in that container and then you don't need any kind of root permissions on that system. There's an alternative some kind of wrapper called CVMFS exec which can mount CVMFS in several ways and it will do several checks on the system you're running this on and will for instance check if you have user namespace is enabled on that system so that depends on your kernel and then it has several fallback mechanisms to do the mount for you and depending on which features are enabled and which ones are not it can do certain things or cannot do certain things it even has a full fallback on singularity so if all those namespace features are not enabled it can still use singularity and basically do what I just explained as well so use singularity with the fuse mount option but if I think user namespaces are enabled and the fuser mount tool is available then it can mount CVMFS for you even at slash CVMFS meaning that you can just mount CVMFS for instance inside the cluster job and just mount it as a regular user for your job only. There are still some things there that you have to take into account for instance with respect to caches etc but it is possible and the final thing which was I think mentioned on Slack so at some point in the instructions we say at the end run this command start minus fee to make sure that your connection uses the proxy and connects to the stratum that the right stratum one in order to run that you have to be sure that your repository is mounted so if you run it you might get an error saying that the repository is not mounted and then you just have to do an ls on your repository or do a cpmfs config probe or whatever other commands that just accesses the repository because whenever you access it in some way it will automatically mount the repository and then you should be able to run this command. I think that covered most of the things that we've seen yesterday so unless there are still other questions I will continue with today's section if you have a question now just raise your hand see any questions so then I'll continue there was one other question which I will cover later on I saw some discussions about how long it takes if you ingest new files how long it takes before they show up on the clients which I will cover in the next section because that's about publishing anyway so today I will show you how to do actual transactions you've already done that basically in the first session because you already added a file to your repository so I will explain that a little bit more I will show you how to easily ingest large star balls for instance if you have a build machine where you build lots of software and you want to ingest that all in one go there's an easy way that you can just tar up everything on the build machine copy over the tar ball to your stratum zero and then just without extracting that entire tar ball again and adding it to the repository there's an easy command that you can just give a tar ball and then it will automatically ingest it for you which is also a bit more efficient than entering yourself yesterday I was already a question about tags and snapshots and revisions so I will say a little bit more about this and how to do actual rollbacks so that you can go back to previous versions of the repository finally a very important aspect is the catalogs that CVMFS uses to store all the metadata so by default you at the beginning you just have one big catalog which stores everything about your repository which can become very inefficient at some point if you store too many things in your repository that's where you can make nested catalogs so I will also explain that and then again you can work on an exercise so let me go to the tutorial web page not sure how many commands I will run but for now I will do it with a split screen again so first the transaction well there's not a lot more to say about it than what you already did during the exercises so basically if you want to change CVMFS which is read only by default so if you want to change something add a file remove a file modify a file create directories etc you first have to open a transaction which you can always do with this command if you made your user who's running this command also owner of the repository when creating the repository you don't need group permissions for this so you can just run it as a regular user and the transaction will basically make sure that you get a writable overlay on top of the read only CVMFS folder and then it will capture basically all the changes that you make inside that CVMFS folder so once you've done this you can go into that folder go into the repository folder and you can just start modifying adding files removing files but they will not actually show up yet so it's still a kind of scratch area where you're working and only when you run the publish command it will actually start figuring out which changes you have made and add them to the repository so we'll do the compression the deduplication update the catalogs to adjust the metadata for everything that you've just changed when you haven't run the publish command yet so nothing is published yet and you can always abort by running this abort command and that will basically just wipe the entire writable overlay and undo all the changes and close the transaction so then nothing has happened that can also be useful if you just want to test something if that really works then you can just play around in your repository and see what what it actually does and then if you're not happy with it just abort it and nothing will will be changed um well that's basically everything about the transaction um so then the tarbles um it's already mentioned sometimes you want to ingest just a large bunch of files of directories and then it's sometimes easier to just take a tarble and ingest that to the repository you can of course start the transaction and unpack the tarble yourself but again this should be a bit more efficient if you use the ingest functionality and so how does that work same kind of command so again a cpmfs underscore server which basically does everything on the server um then the ingest sub-command and then you have to provide it with two arguments first the name of the tarble of course so that's the minus t here and the name of your tarble and this shouldn't be a compressed tarble i will get back to that in a bit but here i will assume that it's not compressed and you have to of course provide the name of the the repository over here a bit of a weird order here probably the two turn this around but this is the name of the repository and the minus v basically says where you want to ingest this to so it should be a relative path in your repository so in this case what it will do it will extract this tarble in slash cpmfs slash your repository name slash some slash path so that's where everything will end up important remark here don't prefix this with a slash so then you will get an error as i've seen before so don't include slash over here but just a relative path without a slash so this is where it will go then in all the versions of cpmfs you couldn't do this to the root folder so if you want to ingest something to the root folder that wasn't possible but if you have a recent version the latest one 2.8.0 you can also pass a slash to the minus b option and then it will just extract it to the root folder well often your tarble is probably compressed so how do you do this for compressed tarble well you first have to basically use the right tool to decompress it and make it a regular tarble so for instance if it's a gzip tarble you can use the g unzip tool and then use the minus c to basically unzip or unzip to the standard outs and then just pipe that to the cpmfs server ingest tool and then instead of passing it the name of the tarble you just add a dash here which means that it will read it in from standard ingest other than that it just works in the same way so then the tags basically every published operation that you do you can assign a tag to that so that can just be a name or end or a description that you can assign to that publication by default unless you change the default settings but by default cpmfs will add an automatically generated tag to each published operation that you do I can show that here already demonstrated this yesterday a little bit but if you use the tag minus l then it will list the current tags then I provide my organization or my repository so you will see the name of the tags over here so this is the automatically generated one which is often then called the generic dash and then the timestamp you see the revision number which will just be increased by one every time you change something you see the timestamp and there are two special ones that's trunk and trunk previous which is just the current version and the previous version but you can add a custom tag if you want to by using the options that are explained over here so for instance here you provide an example tag you can also provide a description which will then show up here in the last column this full screen make it a bit easier to read so if you provide the description it's more or less like a git commit message basically where you can just add a message to this tag and if you then want to roll back at some point so let's say you do something and then you find out that you made a mistake you want to go back to an earlier version then there's the rollback command that you can provide again with the name of the tag and then it just switches the latest version back to whatever tag you provide here so if you want to know more about all these commands just run cbmfs server and you will see all the different commands that you can run and for instance the rollback is explained over here so then you can find out which options you can pass in and for the tag it has quite a lot of different options that you can provide so you can create tags you can remove tags for instance you can list all the current tags etc yes i see there's a question yes if you do rollback you can't can you go forward again that's actually a good question i'm not sure if it removes the the current tag then i see jacob is here as well maybe yes um uh you can't so the there's no redo the rollback is is is very permanent so what it does in fact so what it does technically it actually republishes because technically the repository can only ever move forward so it takes this old uh tag that they want to roll back to and it republishes it as the latest state now also technically all the hashes are still somehow in there they are not deleted but it's then very difficult to get them back it's only with with manual intervention yeah it it's what the rollback does sound like but i just wanted to make sure okay thanks jacob and thanks for the question i also see a question on slack maybe i can try to cover those now as well so kasper is asking before you do an actual publish is there a way to check which changes are staged so equivalence to git status i think there's a diff which you can do on a working tree uh correct me if i'm wrong jacob but i think that also works if you're just working inside the transaction and haven't published it yet uh yes that's right there's diff dash dash work tree with a 2.8 release yeah so to be released on monday and the other question cvmfs server ingest immediately also publishes right yes so if you use ingest that will uh i will demonstrate that in a bit but that indeed it does the publish right away so you don't have to do a manual publish afterwards um so maybe i can show you that right now no let's first do the catalogs then i will show you how the ingest works then i can do both at the same time um so that's i think everything about tags um then catalogs which is a very important thing uh as already mentioned so in the catalog is basically a sql database which stores all the metadata about the actual files um so from the client side you need this catalog for instance to make sure what the structure of the entire repository is and which part you're accessing and then the database knows which files have to be pulled in so which compressed versions of all those files um and of course that catalog will grow so the more files you add to your repository the larger this catalog becomes and the more overhead or the more metadata has to be pulled in by the client um so at some point if you add a lot of files that catalog will get unmanaged manageably large and it will take a lot of time to do all the overhead um so that's where nested catalogs come in then you can basically make catalogs per subtree of your repository um where it's important that you make that catalog in such a way that for instance files that you often access together so let's say an entire software installation for one particular application then you probably need most of those files in that directory at the same time so that you make catalogs per uh software installation for instance uh or for any other kind of directory structure that you often access together um now there are some recommendations about catalogs uh some principle you should stick to these rules so each catalog should have more than 1000 files otherwise they will get too small and you get another kind of overhead but they should contain less than 200 000 entries so files for directories um and there are several ways to do this um which I will come to now first uh how does it look like if you ignore this then at some point when you start doing publications that's when you run cvmfs publish you will see uh such a kind of error let's make this full screen zoom in a little bit uh so then the the publish operation will give you a warning saying hey your uh your root catalog so the one stored at the root folder uh contains more than 200 000 entries uh and also shows the actual number here uh so then it really warns you that you should do something about it otherwise you will notice this in performance um if you do use nested catalogs already uh and some of the nested catalogs exceed this limit then I think the warning only shows up uh at 500 000 files so uh then instead of 200 000 you will see it a little bit later um so how to make these nested catalogs so there are a few different ways uh first one is that you I don't think we discussed that one here but you can do cv uh let's cvmfs do it automatically for you so then we'll just uh make them with some assumptions but there are two ways to do it more manually because often you will probably know which ones which files belong together so for instance again make sense to make one catalog per software installation um so you can do that by uh making these files yourself what you basically have to do then is touch this file inside the directory where you want to make the nested catalog so it can just be an empty file but this is a an indication for the cvmfs server command that in that directory you want to have a nested catalog or for that directory and everything beneath it so the entire subtree will then get one catalog and you can nest these in whatever way you want so you can put one in the root folder you can put one in one directory below that and again for all the subdirectories in there you can add even more so in whatever directory you put such a file and everything below it until it reaches another level where where it finds such a file but for everything it will create these nested catalogs so you can just open a transaction yourself touch the the file in the locations where you want to make these catalogs and do the actual transaction um or the the publish I mean and when you do the publish command uh cvmfs will search for these files and generate the catalogs for you um then from the client if you for instance access the root folder it will only retrieve the root catalog um but once you go into the directory structure for basically every level where a nested catalog has to be used it will pull in that nested catalog but that means that at least the root catalog for instance is can already be much smaller and depending on what files you access it will retrieve the additional ones for you um but this might sound easy but at some point of course you have so many files then you also might lose the overview yourself where you have to create these files unless you come up with some smart scripts for instance or a hook for instance that you can use to make those files but an alternative is to make a cvmfs dir tab file which is basically a text file which specifies in which directories you want to create these nested catalogs um and that's all just relative paths inside your repository so this is an example that shows a structure of a repository probably a quite typical software tree on the hpc cluster so you have the software and the modules folder with uh applications over here and inside the application folders you have the version folders and inside those folders you have actual software installations for that particular version and in the same way you have these module folders and then just one level less with the the actual module files so if you want to create nested catalogs for this as i mentioned before you probably want one catalog for this version you want one catalog for that version etc one for that one one for that one um and for instance you could make one for um the entire software folder so in this case there are only two applications then it doesn't really make sense if you make a nested catalog here then there's basically only two entries in it but assuming you're going to add lots more applications in here you could make a nested catalog inside the software folder as well and you could make one in the modules folder which will just take up all the module files and module directories in here depending again of course on how many apps and versions you have but probably that's good enough so how can you do it but you don't have to specify all the directories individually you can use these wildcards which make things very easy so then you can for instance here say i want one catalog for each folder and each for each sub directory of every directory in my software directory so that means you will get one for this so this is two levels deeper from the software directory so that's where the two wildcards point to so now you get one for every software installation and then we also make one for the entire software directory itself assuming that there will be more than two applications in here in the same way we also want one nested catalog for all the modules so you get one for all the folders here and all the the files in that directory and you have to make quite a lot of software installations before you actually exceed 200 000 here but then you can even start splitting this one up if you want to one remark here so with the cvmfs ingest commands you didn't have to use this this leading slash here for the dear type i think you have to use it so that's a little bit different but something to remember and one other thing which i think i didn't mention here you can also use exclamation marks to exclude something so if you don't want to have a nested catalog for something that you did specify here you can so exclude something well for most cases this will work fine and of course at some point you may have to add customized entries in this file as well so for instance let's say you have a software installation which is extremely large with lots of files because it has some kind of subdirectory with lots of examples or libraries or whatever then of course you can add individual lines here let's say i want to have one more for my software and let's say every matlab installation for instance if that would have lots of files if matlab has a subdirectory with lots of files for which you want to make an additional nested catalog you can just add that line here as well or you can even combine this method with the previous one so you can also still add manually created files with this name so this dot cvmfs catalog so something which can be useful is this command so let's show you how that works so i'll run this on my server that will just show you all the catalogs that you have well at this point it doesn't do anything yet because i only have one catalog but i can show you what happens if i'm going to add more first we'll show you the ingest command what i did this morning because it takes quite a bit to ingest this tarble i prepared a tarble just a dummy tarble i'll show you how that looks like to my stratum one with lots of dummy software installations and dummy directories and files in here so just empty text files basically or almost empty text files with just one number in it but just to make sure that i'm going to exceed the limit of my catalog so there are lots of files in those directories i'm going to go through it all now but i just ingested that this morning that took about i think 10 minutes or so so i used this command as demonstrated on that page to ingest it and i ingested to a software folder in my repository so that's going to take the tarble and well you get all these dots as some kind of progress marker that it's chewing on the tarble but at some point it will say okay waiting for upload of the files committing the new catalogs and then you will see this warning over here that i showed you on the page ready because my tarble added like half a million files it's going to warn me that this catalog now has too many entries so that i should split it up but nevertheless it will just publish this this tarble so then you have to basically sync the stratum one so assuming you have a chrome job set up you don't have to do anything just wait for a bit but you can of course also do a manual snapshot on your stratum one so that's what i did here so it's going to replicate and you will see that it has to pull in quite a bit of files and also this too i don't know also again like five to ten minutes or so because there are of course quite a lot of changes in the repository but after that's done it will show up on the client so now on the client i can browse to my repository and go into that software directory so there's dummy one dot zero and then in share i think i added all those directories where i can just go into one of them and in each directory i think there are 500 files or so which all have if i'm correct just a number in them so just the name of the directory and the file which means they are not the same otherwise cvmfs would have been smart and deduplicate all the files if they are empty for instance or contain the same contents and then it would have been quicker probably that also brings me to another question that was raised yesterday on slack how long does it actually take before files show up on the client after you ingest them which can vary of course but there are several layers in between that have to be synchronized basically so first you have to ingest it on the actual stratum zero that can take a while but after that's done the first the stratum zero has to pull in all those changes so that both depends on your cron job of course or whenever you run it manually the snapshot command so first you have to synchronize the stratum one and that can take a few minutes for instance and also the actual synchronization itself can take a bit depending on how many files you have added so for me this took like five or ten minutes before it actually pulled in all the changes this is the stratum one so this took like five to ten minutes and that even then when this is synchronized it might still take a bit of time before it shows up on the client because the client has this catalog and the catalog has a default time to live value of four minutes which you can change if you want but that's the default and that means that in principle you would have to wait four minutes or maybe less but at most four minutes before the client is going to check for a new version of the catalog I think you can force it to reload the catalog by for instance remounting a repository but if you don't do that you might have to wait a few minutes and then you should see that the next operation that you will do on the on the repository will pull in the new catalog and you should see the new files let's go back here so assume that I now want to fix my catalogs I can either go into my repository so first I have to open a transaction and now I can go into my repository and I can either start creating the deer tab file here or I can go into the software directory over here and manually change or add all the cpmfs catalog files so if I just want to make a deer tab I'm just going to add a file here and I have to tell it that I want to add this for the software directory and then the right sub directories not completely sure what the layout is again so let's check that so the software then there's dummy and the versions so I want dummy and the versions so now I basically get one per installation which might be enough I'm not sure anymore how many files I added inside those directories but let's just first try this and see what happens so commit this file just to run a publish on my repo so now it should read in my deer tab file and it will start creating those nested catalogs that might take a bit of time because it has to process everything in the repository let's in the meantime see if there's anything else I haven't explained yet no I think I already reached the end so in the meantime I can have a look if there are questions there's quite a lot of things going on in the chat so I haven't followed there was a there was a very good question let me scroll back oh yeah can you purge old tags or prune the data if you remove a large part of the repository yeah that's a good question you can indeed manually remove tags if you want to so that's the this larger again where's the tag commands so over here you can see how to remove tags which will basically mark them for removal and we will discuss this also tomorrow so there's a topic about this in the advanced section this will not immediately remove all the files in in the repository then you still have to do garbage collection which is another command which is also listed somewhere here that's the gc command but I will discuss how that works tomorrow so then you can basically mark tags for removal and then the garbage collection will basically do a scan of which files are no longer used by the the still active tags in your repository and everything that's that's basically an unreferenced file will then be removed from the repository but then you have to enable garbage collection and do some other things so I will show that tomorrow but now you see here that it's going to defragment the catalog because it can clean up lots of things from the root catalog which will now be moved to the nested catalogs to verify that these catalogs have been created you can of course just go into the repository yourself and check if for instance in my dummy 1.0 folder I now have a .cvmfs catalog and indeed it shows me that there's catalog in here right now and in the same way you can do that for the name of the other my app so also for my app you indeed see that this catalog is now here this file which is an indication for the server commands that it should create a nested catalog here there's also a nice command for this which I already showed you the list catalog catalogs sorry typo so this shows it in a bit more graphical output where these catalogs are located so it lists all the paths that have a catalog and there's a nice option for this so again this catalogs where you can get the actual number of entries in the catalog so that's the minus e option over here so if you run that you will even see how many entries are in that catalog that nested catalog for each of the the the ones that you've added so now you see that even the ones that I created here are still quite large so you could even split those up I think for this one it might be a bit tricky because we have if I'm correct 500 folders with 500 each 500 files in them so then you have to come up with something smart to not make them too small and also not too large so I will not do that now but that's part of the exercise as well and then the structure is a bit more or just makes a bit more sense so then it's a bit easier to solve this and then you can be sure okay make sure that you get the right size just for your catalogs but on the client basically nothing will change or at least you will not see it so the client will still work in the exact same way at least from a user's perspective but under the hood it will now pull in the right catalogs based on by hue access so if I'm going to access this dummy 1.0 over here I'm doing ls on that directory it will only pull in the catalog for this particular folder and not for all the dummy 2.0 or the my app folders or whatever so we'll do that on demand I think that's everything I wanted to cover for today so for the exercise let me explain a little bit about that so we prepared a similar kind of star bowl for the exercises which is in some sense a bit easier in terms of structure but on the other hand a bit more complex so it has a structure with several kind of architectures and in those folders for applications so if you've played around with maybe the easy repository already that's kind of similar structure so you get software installations for for instance Intel Haswell and different architectures and for each architecture you will have a similar kind of tree with some dummy applications in them where some of the applications have lots of files in them so we added a folder with lots of files so what you will have to do in the exercises first grab this star bowl from the specified URL then don't extract it manually that can take a very long time because there are lots of files in there so just leave it as a tar bowl this shows the overview of what's actually in the tar bowl so as you can see and there's a AMD Roam with modules and software installations so we have a software installation for R and for Flensource stream and whatever that may be and it also explains a little bit about the number of files or directories that you will find in there so for instance those are very small but here is the thing where you have to be careful the examples directory of open phone those actually have three sub directories with lots of files in them so this is where you will have to be careful with the catalogs and then the same thing for two other processors so an ARM processor and Intel Haswell processor with the exact same structure as the other one so what you're going to do in the exercises is first ingest the tar bowl using the ingest sub command into a directory called easy build so again this more or less mimics the thing that you might want to do if you set this up yourself by having a build machine or several build machines and then build the software on those machines tar them up as one big tar bowl and then ingest that in one go to your server then you should see that error that I also showed you about the catalog being way too big so then you have to think a little bit about where to create those nested catalogs but don't do it manually yet but just think if you would have to do it manually where would I place those files and then instead of doing it manually you're going to make a cvmfsdir tab file with the right locations for those nested catalogs then you do another publish because you have to add that file to the repository and then you have to be sure that the at least the warnings go away instead you will see probably those defragment messages because it's going to move lots of entries to the nested catalogs and then you have to make sure that indeed the catalogs are now in order by either doing something like this a find on your repository and print all the locations of the cvmfs catalog file you can do the same thing with that list catalogs command and if you use the minus e you can also see the counts of all databases so here's a solution for the cvmfsdir tab but first try to come up with it yourself and then you can maybe use this one to verify that you've done it correctly okay so that was everything I wanted to tell about today I see at least one raised hand here in zoom so Marcus go ahead I'm sorry I was muted regarding the replica on start from one if I have set up a cron job for doing a snapshot every five minutes so if I'm ingesting for example million files also the snapshot will take its time what happens if the cron job starts to transactions on to snapshots operations at the same time I think it will detect that a snapshot is already running and then it will just skip it and do nothing so it will not cause any issues okay perfect so even if a snapshot can indeed even take several hours I mean in this case it should go quite fast because both VMs are running very close to each other but in practice you might have a certain one in Europe and one in the in the United States for instance and then indeed a very large transaction can take hours or maybe even days if it's an initial snapshot which consists of several terabytes of software but that just works fine so then it will just take a very long time but that should just work okay perfect thanks yes there's a yeah okay Victor go ahead yeah just a question more to the easy build itself integration with cvmfs somehow I don't know if it makes sense to easily support the creation of the catalog automatically does it make sense to let easy build do that for you you mean yeah created this dot catalog file cvmfs catalog files on the fly so it passes minus cvmfs catalog and even created catalogs could perhaps make sense we indeed also for easy have thought about maybe using an easy build hook to just ingest a cvmfs catalog to each software installation because probably in practice you want one per installation anyway um so yeah that could probably make sense but maybe kind of as an easy build developer something about it no yeah I think that makes sense but it would be up to in of course it only makes sense if you're using cvmfs but so having these dot catalog files in the tarpaul you ingest is it enough to make it a single ingest or do you still have to do a separate transaction afterwards that's a good question I think I didn't say that here I don't even know if we added that warning here but there's one small issue with ingesting tarpauls and nested catalogs as in that if you do an ingest of a tarpaul then the ingest commands will basically ignore the cvmfs deartap file so it will not create a nested catalogs for everything in the tarpaul but it will do it on the next publish so what I often have to do is ingest the tarpaul and then do a manual transaction plus publish with no changes but then at least it will read in the deartap file and generate the nested catalogs I think they are working on a solution for this so I hope in the near future that's not no longer necessary and then I expect indeed if you put those dot cvmfs catalog files in the tarpaul that it will automatically use those as well but yes again I think it makes perfect sense if you would let easy build creative files for you or do it in some other manual way or with a hook and to be clear about these dot catalog files dot cvmfs catalog files they're just markers right where the catalog should be created but they remain empty so it's not like cvmfs puts the catalog in there that's all internal it's it's not an actual catalog itself indeed I can show you the also on the client side when you see those files I just ask one here that's probably not visible on the client yet but let's do it here then so software dummy 1.0 so you will see the file but it's just still an empty file so it's not that this is the catalog itself but indeed it's just a kind of marker which says for this subtree I want to have a nested catalog and if you ever want to get rid of it you can also just again delete this file and then it will basically merge it back into a higher level catalog so the reason you have to do the two-step thing with the nested catalogs is because on ingest it's creating the markers but it's not actually creating the catalog so that's why you need a second transaction yeah yeah okay so yeah it sounds like something that could be fixed on in cvmfs itself there was another question by by true is there a way to clone a repository of a given tag to archive it forever so I guess similar to what gets archive can do um so make a full copy of everything of a specific tag and I guess for backup reasons or thinking of this I'm not aware that something like that exists let's take a look here but I don't think there's some kind of export commands or so there's a tag which cannot do that and that's just tagging no as far as I'm aware of that's not possible and it I think the question is actually not not to create a separate tarble but to make sure that a tag remains there forever so whatever the state of the repository was then that you can never lose it so in this some kind of archive but that's actually sticks to the repository itself so that may be a good feature request to take up with Jacob he's no longer in the call in the call now but so maybe that's something to take up with them via their JIRA or their mattermost and I noticed they also have a new forum setup what's it called they don't call it the forum yeah this is a discord so you can you can jump into their discord and ask there if this is possible or if it's a good idea to add something like this there is actually a check out I'm not completely sure what that does compared to a rollback so maybe that's something you could play with and check out a specific tag and then make a tarble or whatever well that's still not the archive that you mean but yeah we can probably ask a jacob okra has a question as well yeah does it ingest on or the outer catalogs setting so that it creates the catalogs on the fly or do you still need a dummy publish sorry I didn't get the first part of the sentence does the ingest command acknowledge the outer catalogs setting to be when it's set to true so that it actually creates the catalogs on the fly or do you still need an empty published transaction if I'm correct there is something in the documentation with the ingest where you can indeed make catalogs or was that this one um not completely sure but at least with the daretop file it will not do that um but maybe indeed if you use the auto catalog setting then it might be able to do that I haven't really played with that myself because I think for most cases it's better if you do this manually since you often know better which files belong together well maybe well at least more I would guess than the cvnfs server command because well you probably know better what kind of structure you're ingesting into the repository yeah we're using both okay make sure that they aren't that they don't get too large anywhere yeah there's another good question in the slack as well like apil um is there a way to check if a transaction is already open on the repo short of getting an error so um I think the info command will do that so I can uh transaction or what was it list or info um here it doesn't say no it doesn't there's there's no way to check you just have to try or it's list so list shows in transaction and I think well but there's also a way correct me if I'm wrong that you can start a transaction on a part of the repository you can you can give it a part and say I'm only gonna make changes to this specific part of the repository but maybe that's is that the gateway stuff or can you do that straight on strato man that's definitely with the gateway indeed um can you do that with a regular transaction probably no don't see that here but indeed with um so that's also a topic we're going to cover tomorrow in the advanced topics but if you use a gateway which allows you to have different um publisher machines or different machines that are allows to make changes to the repository then you can indeed add a setting that says this build machine only has access to this part of the repository and then you can even have multiple transaction transactions running at the same time as long as they don't overlap in whatever they have access to but yeah so the list command does show if something is in transaction or not and I think that was already part of the question then but if you don't check it and accidentally try to open a second one you will get an error or warning or at least a message which says this doesn't work because there's already a transaction open okay a more practical question maybe by by york how long will we have access to the VMs so we will we will keep the VMs running um until tomorrow evening so we plan to wrap everything up before uh the weekend so around 8 p.m european time tomorrow evening we will kill everything that's still running and close the accounts so until then you can play around um and if you're done with playing so if you've uh done all the exercises and and maybe some stuff after that you're you're certainly welcome to but as soon as you're done and you don't plan to use it anymore please terminate the cluster yourself okay I don't see any more questions so I have one if you allow me sure Victor so it's about the disbalance between the number of catalogs the number five and catalog right it sounds like to be a difference between the size of the message versus multiple messages right so uh is it because you can parallelize the the importing of the mysql or the my sorry the the sql light database or is it because it takes forever to read files and this limit of 200 000 where it comes from it's empirical or I think that's related to um let's say you have one extremely large database for basically your entire repository um so on the client size you kind of have some kind of virtual file system so the files are not actually there but when you access a file in slash cdmfs slash whatever um it will basically translate that path to the compressed file that it needs and for that it has to run queries on that database saying okay I'm accessing this file what is the actual uh compressed file name so the all the compressed file names have a file name consisting of the hash of the file and then it has to pull in those files on the fly from your proxy or stratum one and I assume that if you make that database too large that it will become too slow to run those queries on that large sql light database plus you of course are pulling in a very large file a very large sql light database where you might not even use like 90 of the information because you just want to access one specific sub directs v so in this case if you make nested catalogs and you access just one application folder for instance in your repository all it does is pull in I guess still the root catalog but also then the nested catalog for that particular folder which is small so it makes it easy to retrieve it it won't take a long time to download this catalog and it makes it much quicker to run a query on that smaller database but yeah on the other end if you make them too small then you're going to have to pull in quite a lot of those small databases I guess and you have to open them all and run queries on all of those so making them too small is not the best idea and I think the exact numbers I don't know where they come from exactly but we also noticed that CVMFS will give you a warning if you go over 200 000 files in the root catalog but for nested ones you can actually go up to half a million before before it starts creating um or spitting out warnings so there's some heuristics there or I don't know how they were determined exactly that's a very good question for Jakob who is not in the call anymore I'm sure he would know one of the reasons is that the root catalog is needed to buy all clients always yeah yeah yeah so that keeping that smaller makes sense but how exactly they got to the 200k and 500k I'm not sure okay thanks also it's just a target if you if you prefer keeping smaller catalogs so if you keep the limit at 100k yourself that's fine that's a question because you know going back to my previous question about easy view support the christian catalog so you could do like minus minus cvmf catalog equal and then you give a number of files right and then you always split in that amount of files therefore for easy build going back to the creating the dot catalog files automatically we do have installations that are quite small which are like one binary and maybe two libraries and here and there are files so it may be a dozen or so files well while the recommendation is to have at least a thousand files per catalog so that in mind creating a dot catalog for every installation is probably not a good idea on the other hand we do have installations like are where there's certainly uh several tens of thousands of files um in there so there you there you do definitely want at least one catalog maybe multiple ones even but that'd be great if you automatically skip those that are very small right but you give a warning say not creating because it's too small you can force it by minus whatever force catalog creation something like that and then voila sure and then it could just create a catalog higher up so one catalog for all the software versions if it knows the installations are small yes that could definitely be some logic there and i think that's also what we'll do in the easy project so we will probably combine a nested catalog like via dit tab together with dot catalog files that were either created manually or by easy build so we'll do a combination of both for the exceptional cases thanks i think we should wrap up here because the the reframe tutorial is starting in 15 minutes so we have to make sure we don't overlap with that in terms of streaming um so yeah if there's more questions um please use the slack channel and we will make sure there's there's some time for questions tomorrow as well in the in the last session i think bob tomorrow it's mostly going to be explaining and showing things we don't have an exercise anymore yeah for the hands on so a bit more advanced topics tomorrow so indeed without an exercise okay all right thank you very much everybody see you tomorrow you tomorrow thank you thank you


Mountaintop Sports made its way to Stonecrest Sports Complex on Wednesday night for the boys 15th region, all a soccer tournament. Martin County took charge against Pikeville in the nightcap and the Cardinals' crews to an 11-1 win over Pikeville. Bobby Hill scored five goals and assisted on two other goals, while Reese Merrill added four goals and one assist. Justin Barker scored two other goals and had two assists. Goalkeeper Ethan Frey had three saves and allowed just one goal. The Cardinals advanced to Thursday night's championship match against a defending 15th region champion Prestonsburg. The Black Cats beat Paintsville 10-0 in Wednesday night's opening match. Matt Birchett and Isaiah Collins had three goals apiece in the win. Mountaintop Sports will livestream Friday night's clash between Pikeville and Belfrey. This can go to mountain-topsports.com to subscribe. We had a chance to talk with legendary coach Phillip Haywood about this week's game. He earned his 450th victory last week in the Pirates 33-13 victory over Pulaski County. Even though it's a big rivalry game between Pikeville and ourselves, it's almost like a second scrimmage. We're still learning about ourselves at this time of the year, who can play and or we've got kids at the right position and things like that because we've got a lot of youngsters out there playing this year and we're still trying to figure out who can play best and who can play what and what moves we need to make. With a limited practice time, you're going to go through that. Every team is going to be similar to us depending on who they have back and what their strategies are. With Mountaintop Sports, I'm Cody Davis. Thank you. Thank you. Thank you.


And uh, because you know it's not done like this in the music industry We know what y'all do but y'all not doing it that way And p looked at him and he stood up and he said last time I checked this was my company Wow Last time I checked y'all doing distribution And the problem with y'all y'all think white is right. Hmm. That's the problem Yeah, we on boss talk one-on-one one-on-one. Yeah, we gonna talk Talking earlier about the 28 albums that y'all did in that one. Are you going back?     So Everybody wanted us, you know across the street. They want us Everybody right there So the motherfuckers sending me off as a sentry anybody trying to get us to come over, you know So at the time that's going on.  Let's go And we got out the door.  So After that never had no more problem Never had no problem. That's so but we're doing all of this. Okay. Were you? married or had kids and you know doing all this time Because when I think of it from a woman's perspective, you're talking about you in the studio all the time You're busy all the time when you find time For her and was she tripping will she be like, man, you gone all the time? Why you never harmed her? Because that's what most women are gonna do. Well, you know, I'm not really moved by any of those things You know, once I have a focus and I know what I want to do Put your mind to it. Yeah, it's none of that gonna affect what I do No, I'm not saying things didn't occur like that, but Trying to take that and she stayed by your side through the whole thing. That wasn't uh We could say that kind of I think I had a better it was better for me personally when I was going more than when I was there Just because it like kind of like yeah, I was living Yeah, I always was a guy like that, you know, I've always loved women I've been around and I've traveled a lot.  And she knew that Yeah, no different things about me like that.  I love anything else out there. Anyway, so Well, I ain't about loving the music is knowing what you're doing for your life and for your people And I'm gonna be able to help you in other ways that I can't now You may not understand what's going on But as you see things progress and all that Well, you're gonna get another money to pay this household and you can that's right And you pay this call and you could have it and you could put this in your accounting is yours and You know, like I'm doing things to change the life of you my son the generations to come my other kids Because I had kids outside of that too.  So that's what and that's what eventually happened


Germany won't allow Putin dictated Ukraine peace. Olaf Scholz. Germany will not let Russian President Vladimir Putin forcibly alter Ukraine's borders or impose the terms of peace. Chancellor Olaf Scholz has vowed, we will not accept a dictated peace at the expense of Ukraine. Scholz told German lawmakers in Berlin, law is stronger than violence. He added that Putin sought to violate that principle with the launch of Russia's military operation against Ukraine in February 2022. We will not let him get away with this, he said. Scholz insisted that Germany's backing of Ukraine in the conflict with Moscow will not decrease and that expecting otherwise would be a miscalculation. He reiterated his criticism of Putin's re-election last weekend for a fifth term as president, saying it showed that Russia is not strong. If the Russian president believes that he just has to wait out this war and that our support will weaken, then he is mistaken. Scholz underlined while addressing the Bundestag. He reiterated that the Weimar Triangle and the entire European Union stand together in their support for Kiev. In his remarks, Scholz criticised the debate in Germany around the potential delivery of tourist cruise missiles to Ukraine, which the Chancellor opposes. The debate in Germany is nothing short of ridiculous, he declared. This is embarrassing for us as a country, he said, arguing that the debate was not understood outside of Germany. Scholz has argued that tourist deliveries could spark further escalation with Russia and cause Germany to be drawn directly into the conflict. He said Ukraine would be able to use the missiles to strike deep into Russian territory and that Ukrainian forces would need guidance from German personnel to use them. He pointed to the fact that Germany is Ukraine's second largest supplier of military aid, saying that this must be recognised. However, as EU foreign policy chief Josep Borrell acknowledged in an interview, European allies will be hard pressed to fill the funding gap if Kiev's biggest backer, Washington, reduces its support. US President Joe Biden's administration ran out of funding for Ukraine in January and has struggled to secure congressional approval for over $60 billion in additional military and financial aid.


Chapter 1 of Obadiah, American Standard Version. This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information and to find out how you can volunteer, please visit LibriVox.org. Recording by Sam Stinson. Chapter 1 The Vision of Obadiah Thus sayeth the Lord Jehovah concerning Edom. We have heard tidings from Jehovah, and an ambassador is sent among the nations, saying, Arise ye, and let us rise up against her in battle. Behold, I have made these small among the nations. Thou art greatly despised. The pride of thy heart hath deceived thee. O thou that dwellest in the clefs of the rock, whose habitation is high, that sayeth in his heart, Who shall bring me down to the ground? Though thou mount on high as the eagle, and though thy nest be set among the stars, I will bring thee down from thence, sayeth Jehovah. If thieves came to thee, if robbers by night, how art thou cut off? Would they not steal only till they had enough? If grape-gatherers came to thee, would they not leave some gleaning grapes? How are the things of Esau searched? How are his hidden treasures sought out? All the men of thy Confederacy have brought thee on thy way, even to the border. The men that were at peace with thee have deceived thee, and prevailed against thee. They that eat thy bread lay a snare under thee. There is no understanding in him. Shall I not in that day, sayeth Jehovah, destroy the wise men out of Edom and understanding out of the Mount of Esau? And thy mighty men, O teamon, shall be dismayed to the end, that everyone may be cut off from the Mount of Esau by slaughter. For the violence done to thy brother Jacob, shame shall cover thee, and thou shalt be cut off forever. In the day that thou stoodest on the other side, in the day that strangers carried away his substance, and foreigners entered into his gates, and cast lots upon Jerusalem, even thou wasst as one of them. But look not thou on the day of thy brother in the day of his disaster, and rejoice not over the children of Judah in the day of their destruction. Neither speak proudly in the day of distress. Enter not into the gate of my people in the day of their calamity. Yea, look not thou on their affliction in the day of their calamity, neither lay ye hands on their substance in the day of their calamity, and stand thou not in the crossway to cut off those of his that escape, and deliver not up those of his that remain in the day of distress. For the day of Jehovah is near upon all the nations, as thou hast done, it shall be done unto thee. Thy dealing shall return upon thine own head. For as ye have drunk upon my holy mountain, so shall all the nations drink continually. Yea, they shall drink, and swallow down, and shall be as though they had not been. But in Mount Zion there shall be those that escape, and it shall be holy, and the house of Jacob shall possess their possessions, and the house of Jacob shall be a fire, and the house of Joseph a flame, and the house of Esau for stubble. And they shall burn among them, and devour them, and there shall not be any remaining to the house of Esau, for Jehovah hath spoken it. And they of the south shall possess the Mount of Esau, and they of the lowland the Philistines, and they shall possess the field of Ephraim, and the field of Samaria, and Benjamin shall possess Gilead, and the captives of this host of the children of Israel that are among the Canaanites shall possess even unto Zarepheth, and the captives of Jerusalem that are in Sepharad shall possess the cities of the south, and saviors shall come up on Mount Zion to judge the Mount of Esau, and the kingdom shall be Jehovah's. End of chapter one. And also the end of Obadiah, American Standard Version.


well hello oh man pee pee bass we're about to do it yeah I mean let's do it let's go time hey man this is today air big bass conditions I don't see any like thick hydraulic or anything so they may just be either right on the bank or on the trees but I definitely saw some that were pushing bluegill around on the banks got him so tree okay oh she got a bite oh it came off just got bit under the boat hey there we go first one of the day there we go dang boy starting out doing a little something here doing a little something here that was on a swim baby hit it like right under the boat caught me by surprise that's good that's good news oh it's like a four something probably four and a half got two bites on the swim bait they were like don't don't kind of tappers that one was just like a little random cadences and then just letting it sink for a few seconds at loss first fish got him on up that's that's a good sign to have a good fatty like that I like it yeah wow wow hit it on the pause like super dead dead smash things gone you got one too oh oh look at that one boy let's compare about longer than yours three pounder another healthy fish though that's the smallest fish of the day but goodness he hammered it look at the thickness onto his belly I know it oh I have a fish yeah got one of them well I just wanted to see if I could throw out there and catch the smallest fish in the lake and pretty much did see you dude nothing big but they are in here to break out something something for you guys you want to check these out these will be down in the description the hands always get sunburned we have a solution now it's the Guggen Glove the Guggen Glove the Guggen Gloves prevent cancer on your hands with the Guggen Squad gloves yeah first one on the wacky oh dang it dude I'll come right out of his dang mouth I know it was like never really got a good hook in him yeah looks good too there's one up shallow love that sound oh come on yourself oh you just slapped me right in the belly button with his tail that's the first time I've ever had that happen he was yeah one time one bit me in the nose I got a brain tumor we have been trying and trying on a bunch of different stuff it seems like the only thing we can get bit on or baits that are slowly sinking or like these swim baits something just kind of hovering suspended style try to Texas rig dabbling in these stumps they just they don't play with it just got broken off as long as stump it was a large march dude look where he slapped me bro what slapped me hard you serious I'm serious it itches to where's his tail it's tail he slapped me right there you already gave me skavies or maybe that's from our hotel could be either one all right just broke off that large one switch up to my signature series LFG ride go up to 18 pound fish breaks me off with this I know it's a true mondo you never know how big they are look at that little baby already got a bite just testing it out I was literally just sitting down the fish ate it this is your rod I just rigged up but just wanted to do a little test cast and think they like it there we go Chad Kellard wacky little dude got one little bucky kind of a slow morning we've had the swim bait suspended fish have kind of been the deal and we've just spotted our first bedding pair like all that was gonna make a cast in there yeah they're on there it's a little sandy spot the sun's out just enough where we could see we got this fish we know it's a good fish I don't know if it's quite outlaws PB but it could be close been throwing that jig in there she's definitely taken interest in it that there might be two fish in there but I'm gonna rig up a white bait that we might be able to see and then keep that jig handy white hyper freak oh yeah baby there you go see how that rules she's sitting off the right yeah this is this is like textbook female behavior right here bro how big was it I didn't see it one huge it was like a three and a half I don't think that was it right in the mail is on the bottom of the bed outlaw just hooked the fish you check it out on this channel but the fish came off I didn't I didn't look at it I was looking for something to boat turned around and I just heard splashing and the fish was gone he says it was like three and a half pounds the one I've seen I think is a lot bigger I think there's two fish in this bed just like the other day when I was fishing I pulled it to you know I was no I think a bigger ones in here see the fish yeah came back on that jig hard get back in there there's two fish I see that I see two fish that's not the that's the male that's the male the bigger ones off the right just got that the bigger ones off to the right we're gonna keep that fish okay we go get that fish off okay I'm gonna put that fish in there that's the male and he's like going back in with a white two and a half three we switch it up but the hopefully this female will get fired up now a little bit of song yeah all right we just can't get this female to lock in she's just hanging off to the right so we're gonna have to come back to this fish outlaw's gonna let the male go hopefully they'll get paired up again little guy points back on point it's one of those been dabbling me up there oh watch that tree buddy watch that tree it's a big oh my gosh watch that tree over there to watch that tree over there keep his head up here we go it's a good one got a lot of fight bring him left oh it's it's gone it's it's gone oh yes you go baby dude dude pick with that one oh yeah right after I said hammered it dude that was just like that big one I had rosie I don't know I think I'm home it could be his mouth it's five pounds oh we got a big oh we got a buddy can you help me this is bigger than I thought it was first come on come here come on one more little turn one more little turn grab that face that's a Mando just fell out oh my gosh dude that's a bug-eyed Mando that's a nice fish man dude that's a good fish wow wow that's a flute no that was the same thing swimmer dude that's three fish where we've been like I think we're home and they just start swimming out dude I thought you were oh whoa that's a blaster oh my gosh that's a blaster I think that's probably an eight it's a healthy eight all right sweet baby go do your thing I love you bye bye bye bye bye that is a big in y'all I wanted outlaw to catch up and I'll be honest with you caught a few eights in my life certified good I'll take every single one but I want him to cut he caught a five just before I did came down to banking yeah I didn't that was every every time it's one of those it's like I'm stuck whoa it's moving literally we've been like like I think I'm high and then just what what what yes love them fat girls no same mmm dude it almost pulled me in I don't know if you're recording I literally almost went in look at that it's the same place that big one broke me off it was freaking huge man that's when bait seems to be getting the bigger bites I would love to see that fish I want to know if it's like a 7 or like a 12 it's not it's not the case of like is that a four yeah I got a hydrate I got a headache Willis is coming to town right now busting the shad pods pretty good oh gosh yeah it's a good oh come here baby four or five something like that I think I got this guy I think oh yeah about to jump in yeah we got a little wind action going right here oh shoot man there go let him go for he just peas ever on everybody just discovered a little channel with a lot of shadlets around actually outlaw did he said look at that blow up over there I said no I said that's a lily pad he said no man I know what I'm talking about then Shad started blowing up everywhere it's crazy total shocker here at the end of the day top water action I've already caught a few on top water outlaw so in that swim bait there's fish that are coming out it's going it's freaking nuts I don't know if there's any Mondos down under the schools but we got this ledge here the winds blowing on the bank just typical scenario where you got wind blowing and then it drops off to deep water and they're just pushing these shad up against the ledge and then rushing them up and when they come up man there's like four or five of them together and they're just fired up there's another one swirling right there oh my gosh these top water oh gosh that one got away they're freaking hammering the top water oh my gosh on the bank over here on the bank over here oh I'm tangled no I know dude oh are you hooked look at them all no way dude I'm untangled what is happening oh man oh top water top water Sally the coffin box right here well gang this is where we're gonna call it this is where we're gonna end the day can't say it's a bad day it's pretty good pretty damn good day didn't crack that PB but we had some Mondos on still my feel my face about to go into the water the swim bait was the deal the wind helped us out a little bit today couldn't sight fish that great if you're around a lake or a pond it's got semi clear water and you got fish that if you ever see fry all on the banks I'm tiny little fry which we saw today break out that swimmer start swimming it that's also when top water starts to get good not not great but when you start to see fry around start chasing around little bluegills and things like that it's gonna throw the frog papar and just hit that stick bait game if it's calm swim baits when it's windy and he will be successful always a pleasure though getting to fish with my boy he's gonna be linked down below if you haven't checked out his channel he's tons of fun and I'm proud to call my friend all right y'all they for tuning in today we are gonna break that PB one of these days one of these days but until then we'll catch y'all in the next one