Okay, so we talked about exploring how to use SCAC for container image distribution. First, my name is Agon, I live in Berlin, I'm a team folk, and we are basically a team of developers. We like to work on container things, both on Kubernetes and global Linux containers. Today I will talk about the existing distribution mechanism for container images. I will mention a couple of them, and I will explain the problem I'm trying to resolve to optimize the network traffic to try to find less data about the network. And I will mention two different ideas, and I will focus on SCAC. And then I will explain my experiments and show some numbers and some graphs about what I've got. So, first, I'm a rocket developer, so that's what I know more. On rocket, there are two mechanisms that are supported to download container images. There is, of course, the Docker way, connecting to a Docker registry, and getting the Docker image from that. It uses the Docker distribution model. And it supports as well the SCAC discovery protocol. And that's something which is supported by a rocket. I don't mention OCI here because OCI is the OCI brand name. That's the image format in this. That's not really about the distribution. So, the way we get image from the Docker hub, from the Docker registry, is to keep this way. Here I have Kubernetes node. We rocket this image, and when I get an image, a Docker image, the rocket will use the Docker to SCI tool internally to automatically support the Docker distribution model. And it will download from the Docker registry all the layers from the Docker image. In this model, you can configure your Kubernetes cluster to either use the Docker registry, the Docker hub, or your own registry, if you want to. The SCI discovery protocol is different. When you specify an image, for example, in this case, corwest.com.scgtc, Rocket will first go to the web page, corwest.com.scgtc, and look at the same page. Inside, there should be meta-attacks to explain how to get the image. So, it's more decentralized, but it relies on DNS to get the image. In this example, you say to go to bitter.com.scgtc, etc. So, it will download an SCI file, which is actually a table. And that table will then manifest on the rootFS that are other directories or files on your container. Optionally, your image can refer to order image. If it has a parent image, it will repeat the process. On both those models, there are two issues I can see with the wasting network I'm with. In this one, I have several Kubernetes clusters. All of them are configured to take images from the Docker hub. So, we see it's a quite centralized place. So, the first issue is if you update your Kubernetes application to detect the next version. All your nodes, your Kubernetes cluster, will have similar time to download from the same place the next version of the container image. So, that can put a lot of pressure on the centralized registry. The other issue is when you upgrade your application from one version to another, the two different versions of the same container might not have so much differences. Maybe there is some change in the binary, but most of the data file will be the same. So, it seems quite wasteful to download the full image. So, for these two problems, one problem is the centralized space and the other problem is the small differences between two versions. There are two different strategies that people have thought about. The first one is to use Bitcoin. So, there is an example of people doing that with QCTL, Q.IO, or Way.IO which is a registry for Docker image or ACA as well. And you can check the score with Wordpress where there is a way to use Bitcoin for that so that there is pressure on the registry. That was written on QCTL. And in the rocket, there was some discussion about using Bitcoin as well, but nothing was measured or finished. The other way is using CSV, which is the most... whatever you focus on for this talk. So, the motivation for using CSV is only to download the change between two versions. So, here I have two versions of one image. In every image, the difference between image one and version one and version two is only one small piece of change. So, it goes from orange to green on the back. In this case, I would like to only download that small version and not we download everything when I upgrade. So, it's cutting to change. But there is a problem to... if we do it lately without thinking too much, if the image gets unbiased or added, we can see if the change size while you fix, it will not really work because the hash of the next change will be completely changed. So, to fix this problem, CAC can do something which is a variable size for change. And the size of each change can vary depending on the content. So, it gives cryptographic hash to determine the probability to know whether to get more data in the change or stop passing. In this way, there is a more likelihood to not affect the next change. So, here, in the orange check, I remove some bytes. But still, CAC may need to have the same change for the web and the network button. So, it can manage to only download a small part. So, what's the full process for using CAC? First, when you have the container image and you want to CAC, you need to serialize the data. You can do that in a better way than the table of your territories and files. When you have all your container image serialized, you speed it into a check of a variable size. And then, CAC will hash each change and they will be back in the content of addressable storage. And then, each change will be compressed. So, they can be downloaded individually. When the container runs out, we have to download the container image. It will use an index file to know which change to download. And it will do basically the same process but in the address. So, what I did was a proof of concept to try that in Rocket. So, what I want to do is, I'm going to do Rocket fetch the version one of my image. It will initially have to download everything but when I download the version two, I need to download the difference because I will cache the change in the local change star. I'm going to integrate that in the way the SCI discovery protocol works. I'm just organizing the meta tag in HTML and if I have an image with a specific CA ID, it's just the index file for CAC, then Rocket will know that it has to use CAC to download the change and it will use the default directory which is default.ca star. There is a grunt for that so that's just a proof of concept. The amount is quite basic just to try. I have a list of to-do that I would like to try or maybe some of you are interested to try it out. There is now a library for CAC in Go. So, since Rocket has a lot of different software in Go that could be more practical than using the CAC. There is no database collection for the change yet. So, if we use it a long time, it will treat the problem that's not very practical yet so we need some information in CAC for that. Another idea is to use Fuse in CAC. There is a Fuse browser to be able to mount the container image immediately and download on the fly the change in which I did. So, that was a bit of the theory that in practice does it actually work to know whether it works or not if I can search memory with that idea. One some experiment and I have some thread to test on the different images to see if it works. The first method I tried was the registry image available on the look-alike app. I downloaded a lot of different versions from quite old 061 to 071. In the blue line, the size of the look-alike image is compressed. The size I would have to download if I were not to use CAC. I compared that to what happens if I use CAC to download all of the versions when I first download them. So, the first download I see using CAC doesn't save anything. It's actually a bit worse because I don't have anything in the cache yet. Actually, after the third version, I set quite a lot of network bandwidth and don't have to download so much. It's not really because the content didn't change that much so I don't have to download that much. Sometimes I see that actually I have to download everything probably because the version, it's a major version or a lot of things change so there is not much to win. I tried with other images with Ubuntu, tried different snapshots of Ubuntu and I see that in this image as well, after the first version I can set some network scope from Revox as well. It looks not too bad. Some other software, but this one I didn't get what I expected. Here I see that I can use the spacing method but actually it seems worse at most of the time. I had a look at the image of Prometheus to try to understand what's happening there. I see the image is based on Revox. Revox is quite small so it's not close there. But mainly the Prometheus image is just two big binaries of 16 MB, something like that. Between each version, there are some lines of code change between the versions, not that much, but still when accompanying it completely change the binaries so it doesn't help very much. In the scene cut stream there are some people trying to make it better for this kind of situation by recognizing the health format of binaries to recognize where to start the change. So that's about it. So with this, I can save a network bandwidth for a lot of images, but not a whole problem. But to properly integrate that to a lot of my work, what I did was just a proof of concept. Is there any question? Why is it worth the first unknown? I have a guess, I'm not sure if it's really worth. When locating is racing, I don't know the contrast image. When using racing, I don't know the contrast chunk, but each chunk is a contrast individually. So probably the compression algorithm is not that good when only compress small chunks individually. That's my guess, but I don't check. Again, how you dealt with the fact that there might be bites missing in the middle because as far as I understand, the chunk size is fixed, right? Okay, but I mean, it's not fixed based on the event or it's not fixed for like... So what you're saying is... So try to understand how do you detect that a chunk is going to be smaller this time? Sorry, sir. It's based on the body and the contents of the data. So what we actually knew, we decided how much the size is going to be and it's not exact size. So it's around 64 kilobytes to when we want to write something in this branch. Every time we write, we have a C-click hash, but no, that gives us a probability that the situation... You use a rolling hash, essentially. Okay, because I felt you're using a crypto hash as trying to think, like adding a byte to try and find the window at which size it seemed expensive. So you're using both a crypto hash and a rolling hash? The rolling hash is to decide when to swap. So when we cut the chunk in the front-end of the store using a crypto hash. Hi. I'm also curious how well this works with, for example, beta-infest with compression on or... Sorry, not only compression, but also things like the encrypt and stuff like that. How well do these things work with changing an encryption into blocks and so on and so forth? How well does the chunking work with those? Do you mean when the image is encrypted? So, for example, if you have B3FS with encryption around it with using blocks or something like that, how well does it work? How well does the chunking work with things like that? I guess it should not work. So, what I'm trying to do is do the serialization on the table, uncompressed table not directly, because I don't know how it will be possible to do that with compression.


Hello everybody, Andrew Maski here with dental L. So you guys know me by now. I am real. I am honest So here's a real and honest video for you all. I am getting very annoyed with dental hygiene Facebook groups out there full disclosure not all of them, of course not but I Don't feel like I can ask questions. I don't feel like I can comment I don't feel like I can do anything because there's always people out there that are negative and they want to Attack you for having a different opinion, you know Somebody posted a question the other day about whether we're pro fluoride or we're against it. I am pro Fluoride I like to comment, you know, I like to interact but man people's comments were just so negative But I want to talk to you guys about a very specific case and please comment and let me know your thoughts, too Maybe I'm in the wrong. I don't think so, but I would like your opinions on that So I was an admin for a Facebook group.  Let's just put it that way.  She needed help I'm like, you know what sure that would be awesome. I would be happy to help But I posted something in that page. So I was the admin so I kind of consider it my page, too I just posted a post a couple weeks ago of you know, hey guys, I'm a Dental hygienist, you know, obviously, um, I have started my own dental L mobile hygiene clinic I just wanted to share with with all of you.  Do not let money hold you back. That's what loans are for This is the best thing that I had ever done, you know, so I just kind of posted like that Well, the admin of that page that I was also the Admin of apparently a lot of members were complaining They were saying that I was selling my services because you're not allowed to sell on the page make sense And I kind of said to her the other admin. I said, I'm not selling anything I was just posting about saying yay. I'm excited. I Wanted to share my excitement with other dental hygienists out there, you know If you don't like it then move on to the next post like who cares, right? But I guess members were complaining that I was selling my services I thought that was ridiculous and very very sad So I said, oh, okay Like do you want me to word it differently because I'm just I want other Hygienists to know that if they need help I am more than happy to help them because when I was opening up my Dental hygiene practice I felt that I couldn't go to anybody for help like there was just nobody out there Who was willing to help me but I am more than happy to help anybody because I don't see anybody as Competition I think it's amazing that dental hygienists can open up their own practice But anyways, so all in all the admin was kind of like no, you know, you can't post that I was like, oh, but I'm the admin of the page like I'm not saying hey purchase now come come to me now No, I was just posting my excitement. I'm not allowed to do that So then I said, you know what I don't think this page is for me then, you know I'm kind of surprised and she just right away. She blocked me She kicked me out of the page. She kicked me out of the group, but I'm like whoa And I'm just not that type of person. So I kind of felt Weird I'm like, okay. I'm kind of annoyed like I can feel my blood pressure rising. I'm like, um Kind of pissed off now. I kind of want to message her Upset, but then I'm like no now So I just kind of sent her a message before she was she blocked me and said Because I think she mentioned that I can't post that but she didn't mention that she was going to kick me out of the entire group So when she said that I can't post that I just said, oh, okay.  I shouldn't be the admin because why am I working so hard to help you on this page?  I don't think I should be the admin because I'm working really really hard to help you with this page And I feel like I can't post what I want, you know, which I think is fair, right?  I was kind of like you're kidding, right? And it's such a sad thing because there are so many hygienists on that group that would probably Benefit from me helping them me teaching them Like I liked being a part of these groups on facebook so that I could help to answer questions to Put aside those negative dental hygienists and make things positive But I'm not posting in groups anymore. Um, even the groups that I'm a part of A lot of my posts don't get To be shown because they're monitored now by admins even if I post something it it takes like two weeks To show up on the group and by then It's already done. Like I don't need the help anymore. So I think I'm going to start my own thing Um, I do have a group now, but it's a page. It's not a group. You know what? Everybody do you guys think I should make my own group? For dental professionals. So like dental hygiene dental assisting just dental professionals What do you guys think? I never thought about that. Why don't I do that and then have it be a safe space? If you're negative though, I'm going to kick you out. That's that's the one thing I don't like negative I don't mind having different opinions, but there's a nice way to say something and there's a wrong way to say something, right? What do you guys think? Do you guys think we should have our own group? Um, what do you guys think? Please tell me I actually didn't even think about this I don't know why but then this way I can ask questions. I can ask my own questions and have people answer them I can help other hygienists and not be yelled at I kind of like that But anyways the purpose of this video was to just share the fact that I was kicked out blocked and banned From a facebook group for sharing You know the wealth for just talking about I am excited to open up my own business Fellow dental professionals, please be excited for me. So I guess that's why I have my own youtube channel So I can do what I want which is awesome Um, and you have all been awesome so far So thank you so much for your likes and for your comments Make sure to hit subscribe because I do upload often So what do you guys think should I have my own facebook group like a dental professionals one for you know students for dental professionals everybody Let me know I will talk to you guys very very soon. Thank you so much for watching


My name is Michael Rehm. I've been lecturing in property here at the University of Auckland Business School for 14 years and I teach building construction. I also teach our introduction to property course. I've been taking students physically onto sites ever since I began and it's part and parcel to the property program where a practical degree and for example I've been taking them here in this business school building. I take my students up to the roof. We see some of the plant equipment and take them down to the bottles of the building but these are noisy kind of dangerous places to be honest and now we have some new safety regulations in place. That's really made it impractical to take large groups of students to these dangerous places and so now we've looked into VR. Instead of physically taking them there I produce a 360 video, 360 panoramas and now at home here in uni wherever they might be they could virtually experience the same tours that I've been giving for over eight years now. One thing that I have here is what's called a Google Cardboard and this is a glorified pizza box that's turned into a VR headset. Now once I saw this I knew I could put it in the hands of every single student. Once they're in the hands of the student then you could really have broad learning take place. Not a show-and-tell just in the lecture theater but students actually participating directly and benefiting from it. So VR is kind of the next frontier. You take the walls of the lecture theater you bust them out and students can experience all the things that we do in the classroom in their own time at home being dangerous environments but at the end of the day it's all about having fun and that's what I'm using VR to do.