So, this is the topic I was tasked to discuss with you and I would also like to thank everybody who came before me because we've discussed many of the elements that go into this synthesis in the days before this one, so this is what I would like to do. My research is really mainly on the West African monsoon, so that will be most of the work that I will discuss is based on my research, but also the research of Catherine who comes after me, who works with Yochanan and me at Le Monde and many others. Let's say the work on Eastern Equatorial Africa, we're talking about the decadal influences on these two rainfall systems. The work on Eastern Equatorial Africa is very much the work of a colleague of mine at IRI, Brad Lyon. But what I will try to do is try to bring some synthesis to how we look at these two rainfall systems, these two tropical climate systems in regards to decadal influences, influences on decadal timescale which come from the oceans. So the decadal timescale is very much dictated by the oceans and by variations on that timescale in the oceans and if I can summarize, I'll give you some of the conclusions already. It's mainly the Atlantic for the West African monsoon and the Pacific for Eastern Equatorial Africa. I would also like to bring some dynamics of tropical climates to the discussion. So try to go through some of the basic diagnostics of the variability that allow us also to some extent to bring some coherence across timescales from sub-seasonal to multidicadal and beyond. And I just put in gray here anthropogenic influence because the influence of the oceans on these climates can also be used to argue for or against anthropogenic influence. So a lot of the physics of this and the theory of this has to do with deep convection and vertical instability and what sets the instability that triggers deep convection in these tropical regions. And what is the role of the oceans? So what is the role of the oceans at the very most basic, so this is just annual mean precipitation over Africa and so the two regions are the regions that I will be discussing are the regions in the two boxes here. You can see based on climatology that we're talking about margins of climatological precipitation. So these are semi-arid regions and if you've been there, you know that my colleague from AgriMet likes to say, it really doesn't rain there for nine months of the year. So the moisture has to come from the ocean so at the very basic level we understand that the oceans have a very important role to play in the climate of these regions. Okay, so I'll go through some of the steps here and some of the motions in the case of West Africa in Monsoon and then try to repeat the same exercise for Eastern Equatorial Africa. So as has been pointed out already in the previous days, I mean this is one of the really, when we talk about decadal variability and predictability, the Sahel is really the most outstanding case of observed decadal variability in the 20th century instrumental record. And so what you see here in the red is a time series of the average of stations across the region from GHCN, anomalies, standardized anomalies in precipitation for this broad Sahelian region that was in that box that I showed on the map and so you see, I mean it's evident that there is multi-decadal variability and that there were decades of anomalously wet in the 50s and 60s followed by anomalously dry, persistent anomalously dry in the 70s and 80s and then perhaps some indication of a recovery in the most recent period. Now, there has been a long standing debate as to what caused these multi-decadal variations but I think now we can say with some certainty based on ensembles of AMIP simulations that these variations were caused by the oceans. So take an atmospheric model, force it with observed sea surface temperatures and you get something like the blue curve here. So knowledge of the observed global observed sea surface temperatures is sufficient to reproduce not just the decadal variations I would argue but also quite a bit of the inter-annual variations. So that's where you are. And then being that I work at IRI, this you can understand is the basis for seasonal prediction certainly perhaps also I guess if we could do decadal predictions then you can immediately see that there will be some value to those for this region. Okay, so how do we understand the role of the oceans? Yeah, that's the question one is prompted to ask here, okay, it's the global oceans but which oceans and how does this influence work? So I skipped a step here but if you look at, if you were to correlate the time series like the ones showed in the previous map to sea surface temperatures then you would see broad sensitivity of the significant correlations of the rainfall time series to sea surface temperatures in all the ocean basins. And here I broke it down by time scale if you wish into a long multi-decadal time scale and an inter-annual time scale and the moment I do that I can see that the inter-annual time scale is taken care of by ENSO. So here the blue means a negative correlation with Sahel rainfall. So positive anomalies where you see the blue mean drought in the Sahel. So El Nino typically causes drought in the Sahel most of the times that's the red bars on this plot. And if you're looking for an explanation for this multi-decadal variation then it's in the oceans around Africa. And so Indian Ocean Warming that Roxy just described is definitely one component and then the other component would be some kind of an inter-hemispheric gradient in the Atlantic. Okay so a little bit of how this could work specifically to well not just the Atlantic but let's take this initial figure which is the I guess the conventional wisdom about how rainfall varies in the Sahel says that if you have a gradient in sea surface temperatures of this nature so with a cool North Atlantic with respect to a warmer South Atlantic then this inter-hemispheric gradient drives the latitudinal location of the inter-tropical convergent zone and so when it's in this phase the ITCZ shifts southward and then you just extrapolate this to the continent and you get a dry Sahel. So I would like to offer a reinterpretation and a reinterpretation that moves us in the direction also trying to understand how climate change and warming may play into this and the interpretation is as follows it has two basic ingredients and that come from the theoretical work of all these people plus a few more perhaps I should have included for example also Adam Sobel or Lorenzo Polvani and to how so how does a tropical convection respond to these very broad-scale sea surface temperature variations. So one element is the global tropical oceans and you can think of El Nino as an analog so what happens if you warm the global tropical oceans as it happens during an El Nino event then what happens is that deep convection communicates that warming to the upper troposphere and so you affect the vertical stability by warming the upper troposphere you make environmental conditions more stable and so you you up the anti for convection to be triggered then in places that are remote from that deep tropical convection that has increased or strengthened. So then that would drive what we see as widespread drought during the development of an El Nino event and so the second ingredient and and you it would also so that would be for example the element of Indian Ocean warming affecting contributing to persistent drought in the Sahel. The second element is the moisture then how do you change that vertical stability how can you counter that increased stability that is communicated by deep convection through upper tropospheric warming and the idea here is that you counter it with the moisture that comes from the local ocean so in this case the Atlantic and so in this schematic of a cooler north to compare to a warmer south Atlantic then the cooler north Atlantic is not able to meet that up to NT that is driven by upper tropospheric warming because there's not enough moisture being driven into the monsoon and so you end up with a dryer Sahel in this configuration. Now if the climate were not warming then we wouldn't have to worry about this increasing trend in the warming so it's just that because we're in this transient warming that we have to consider the difference of the two. So when we consider the simple difference of these two oceanic influences which is in the then just simply captured in the difference between north subtropical north Atlantic sea surface temperatures and global tropical mean sea surface temperatures then we can explain the past variations so what do I have here I have these two elements here global tropical sea surface temperature anomaly on the x-axis and north Atlantic sea surface temperature anomaly on the y-axis and so you can see that my wet ears are in are when north Atlantic is warmer than global tropics so above this line that's full dots are positive anomalies and conversely the dry ears are below the line so north Atlantic not as warm or cooler than the global tropics and this on the right here is just how these ears are distributed in time so the blue dots are the wet epoch and the red dots are the dry epoch and now we're in this grey epoch where things are somewhat more variable here up on top so both north Atlantic and global tropics warming and now I just to show that how do we string along this convection that happens at very small spatial and temporal scales to sub seasonal characteristics of rainfall to then seasonal and then inter-annual multi-decadal and so on here I broke down rainfall into frequency on the left and intensity on the right and this is stations from the network of the National Meteorological Agency of Senegal and so same depiction here and what do we see now that the wet years are characterized by more rainy days compared to the dry years okay this is something that is well known so the wet years again the 50s and 60s had more rainy days during the rainy season than the dry years and now we're in this upper right corner so rainy days that are somewhat somewhere in between perhaps a little closer to the dry epoch than than the wet epoch in terms of number of rainy days and what is intriguing here is that the intensity actually what it really shows is more of more intense rains so more intense daily accumulation of rain that's in some ways compensates for the fewer rainy days so the recovery is really more of a recovery that is dictated by the by a slight increase in the intensity rather than in the number of days which is interesting I guess that's it follows expectation from climate change just generically speaking I know that Gavin is going to say something about that for sure okay so this it's how am I doing with time okay good so we know this very well so this is the time series of right the Sahelian rainfall so again the wet 50s and 60s the dry 70s and 80s and now this variable period that we're in so how do we explain this now coming coming to decadal variations and but I really want to remark the fact that it's it was really persistently wet in the 50s and 60s and sort of persistently dry and now we're in this really increasingly variable and epoch which again from the perspective of trying to apply the climate science really makes for an increased value I would say in a in a seasonal prediction system that can skillfully say something about how do you go from wet to dry year to year okay so I'm super imposing now these global multi-decadal oceanic influences the blue curve is an index of North Atlantic minus global mean so something very much like an AMO or an AMV index so North Atlantic sea surface temperatures detrended by subtracting the global mean temperature and so we see it has these nice oscillations that we've seen already the the green curve I should say is a smoothed version of Sahel rainfall and then the red curve here is broadly speaking equatorial Indian Ocean index with the sign reversed that's because the association is warming and with drying so I think you already get the sense that I can explain then the fact that it was persistently wet because both influences were in the direction of wet in the 50s and 60s whoops I am in trouble persistently dry in the 70s and 80s because both influences were in that direction and now we're in this phase because there's opposition of the two influences okay so that's the Sahel now let me try and wrap this up really quickly for Eastern equatorial Africa but there is an interesting the interesting decadal to longer term change and question here is that Eastern equatorial Africa has been persistently dry for about a decade or so but long-term projections say that it should get wetter so how do we reconcile these these two elements and I'm not going to try to do that but I'll just try and give an explanation for what's for what's going on at present so first an inter-annual timescale we understand so here the what what are the local and remote basins in relation to Eastern equatorial African rainfall so this is so in observations we see this relationship we're talking here this is the short range October November December there's a relatively clear association with the ENSO such that El Nino drives wet anomalies but it's mediated by an Indian Ocean warming so you get wet anomalies in Eastern equatorial Africa during El Nino if the Indian Ocean warms and so this is in observations in the top you get the same in Goga which was already talked about a global ocean global atmosphere but you don't get the same if you only have tropical Pacific warming with only tropical Pacific warming the atmospheric bridge would say dry Eastern equatorial Africa so you need this moisture you could cast this as a you need this added moisture that comes from the Indian Ocean that's supplied that is supplied into Eastern Africa to get wet maybe I'll skip this but to say that there's also but this breakdown of the seasonal rainfall into frequency and intensity also works to some extent here only now we're in the say let's say in the mature phase of ENSO so during El Nino's we get wetter conditions in Eastern equatorial Africa because we have more rainy days this is the stronger signal and but to some extent also more intense but it's not as strong a signature okay now on decadal time scale this is what has happened well it's a broader I mean you can see the signature in Eastern equatorial Africa but the case I would like to make is that it's part of us of a really a global signal that has to do with Pacific decadal oscillation variations so it's this what characterizes this persistence of dry now in Eastern equatorial Africa is part of this step change that happened somewhere at the end of the 1990s so this is an EOF that captures the broader picture but that also includes Eastern equatorial Africa similar so this is these are composites of sea surface temperature precipitation and winds that go with this shift so it's just simply the the difference in the averages of these two periods and again you see what you see what's popped out here is really the dominant I mean the one what seems to be the dominant influence here that can explain this shift is this Pacific signature or Indo-Pacific signature it's it can be I you know characterized as the first EOF in this residual sea surface temperature once you've removed Enso and global trend influences then whether you do this calculation on the Pacific or on the Indo-Pacific you get a time series like this red one here it's really the red and the blue so Pacific or Indo-Pacific give you the same multi-decadal variations here over the 20th century and so what we witnessed most recently is just the last shift here and so the shift I mean in some ways it's consistent with the El Nino influence in the sense that La Nina or cool conditions in the Eastern equatorial Pacific which occurred during La Nina are associated with dry Eastern equatorial Africa so I think that's all I have yeah so to wrap up there is a we can identify decadal variations in the oceans that have influence on these two regions and then we can also begin to tie two things together on the that allow us to go across time scales from a sub seasonal to multi-decadal


One last thing here on the quick tip front from listener Jim that's kind of related to the new stuff that's coming. He says, of course, the new version of mail in the new operating systems will block all those tracking pixels as you guys discussed. However, as you know, tracking pixels depend on your download of the pixel or the image, which is included in the HTML download associated with some email. You may be able to avoid those tracking pixels in the current version of mail by changing your mail settings to download only text, not HTML content within Apple Mail preferences viewing uncheck the load remote content in messages box. While this makes some messages look ugly, you can always opt to download the HTML content while viewing an individual message by clicking the load remote content button in the upper right corner while it's displayed on the screen. So this way you can kind of be safe from those tracking pixels. That's a really good point. Yeah, you're right. It makes mail look ugly. So, you know, Apple's solution is probably certainly a more elegant thing for the masses, right? But thank you, Jim. That's a great tip for sure.


Please evacuate. Right now. Please pay attention to this emergency alert. This alert is from the SCP Foundation, an international security group, and it is essential that you follow the instructions of this alert. Seeing this message means a large-scale aggressor is in your area.  You must quickly and calmly evacuate the area now. The SCP Foundation is working with local authorities to make the evacuation as simple and effective as possible. Please cooperate with the SCP Foundation at all times. The origins of the LSE are unknown, but the SCP Foundation is relatively certain that there are no other similar anomalies. There is no reason to believe otherwise. Members of an SCP Foundation Task Force, Nu-7, will engage and terminate the LSE as quickly as possible. The SCP Foundation will have the situation under control soon, and your safety will be ensured. Thank you for your attention and cooperation in this difficult time. Secure. Contain. Protect.


Okay, we're about to begin. It's good to see that the room is not, you know, overbooked, so no one's getting dragged out of the room. Welcome to Engine Yard's sponsored talk, Deep Dive into Docker Containers for Rails developers. So that's a mouthful, so let's take a look at the title. Deep Dive, this is me and my wife, scuba diving in the Philippines, where advanced open water is certified and it's beautiful underwater and when you go deeper, it's actually even more beautiful. So we're going to talk about Docker containers. Who among you have used Docker before? It's sort of good, it's more than half, but who among you has used a container but not Docker? Okay, we got one, two. Okay, so this is not an introduction to Docker talk, but we will look into container internals, right? What are containers made of? So, and then I have to be specific, this is where I have to make sure this is for Rails developers because when they announced Rails Conf will be in Phoenix, I was just thinking, oh no, a lot of Phoenix jokes, right? So you've probably heard a lot of these jokes already, right? So this is seven Phoenix, one of the organizers and the Phoenix framework. Some people have moved on to other languages or framework that's fine, but we're here to say that we use Rails and a lot of people still do. This is sponsored by EngineYard where I work for and we're celebrating our 10 years this year, so please join us tonight. There will be a party tonight at seven p.m., so please join us and we also have a booth tomorrow and on a Thursday. So EngineYard's a great place to run your Rails applications where you can easily scale from one to hundreds of servers, right? We have 10 years of Ruby and Rails optimizations on top of AWS and we have top notch 24-7 support. So let's get into the talk. These are the topics that we're going to talk about. The reasons for using containers, what are containers made of and how do you run containers in production? So there are a lot of uses for containers but here we're going to focus specifically about on deploying your Rails app in a container. I remember when I started Ruby back in 2006 or a few years after, one of the most popular deployment tool back then was Capistrana and it probably still is in some shape or form, we still use that the Capistrana way of doing things at EngineYard. We have deployed a lot of Rails applications using Capistrana, you know, big customers, big applications and it works and even still works until now but here I'm going to try to discuss why you should put your Rails app in a container. So with Capistrana, as a station to a server, if you're using Git, you're going to do a Git clone, Git pull, install the gems, pre-compile assets and maybe run migrations and it's fine, it works. We have big apps using that approach and it works but sometimes when GitHub goes down then no one would be able to deploy it, right? This is not enough on GitHub, we use them, it's a great service but when they go down, a lot of people notice, right? Because a lot of people use them so we get a lot of tickets actually when GitHub goes down, nothing's wrong with the EngineYard platform but when GitHub goes down, a lot of our customers can't deploy. That's only a small reason though why you should use a container but let's take a look at what's involved in using a container. Here you would see that you still need to install Ruby, install the packages, copy your code, install the gems, pre-compile assets, it's very similar to Capistrana, right? So you're not, it's not a silver bullet that would remove all these steps, right? You're still doing it but now you're putting it in a container and once you have that container, your server needs only to know how to run that container, right? It doesn't even know what's inside it, just run that container and you could run it with other containers. It could be another Rails app if you have another one, you could run it on the same server or it could even be something like Redis or a database, although our DBA is here and he wouldn't like that. You shouldn't run your database in a container but it is possible, right? Whatever you put inside it and your host knows how to run it then it should work. Then you could also have multiple servers. There's no real world analogy to this but you could duplicate a container easily. You could run it on multiple servers so now when you try to scale and you know that Rails can scale, right? You just run a lot of different servers and then on those servers you run your containers. So containers start faster and you'll be able to easily run any code that you could put in a container which makes the whole process faster, like your developers would be able to release code faster in staging or in production and you get to focus on your business problems but what are containers? There are a few descriptions that I keep on hearing when people discuss containers. Well, first is lightweight VMs and a lot of people don't like this description and because technically a container is not a virtual machine. When you have a virtual machine you could have a host for example that's using the surrounding Linux and you could have a virtual machine that is a Windows box, right? You could have a guest that is different from your host but with containers, when you have a Linux host you could only have Linux containers. There are Windows containers but we're not going to discuss them that's outside the scope of the talk so we're specifically looking at Linux containers but I like this description that it's a lightweight VM because of what I described earlier that in a container you could put everything on it. In fact, you need to put Ruby, you need to put your packages like if you have MySQL client libraries you need to put those inside your container. So for me it's a good description, it's a lightweight VM. Next is chroot on steroids. So chroot, if you have a directory for example you could make that your new root. You would still be using the same Linux kernel so that means it's technically one OS but if you have different sub-directories and you change your root into that you could do a lot of interesting things. Like let's take a look at this. So here I have an Ubuntu directory and let me just pause that and you could see that the directories on that Ubuntu 17.04 are just, you know, they're similar to what you can see in your Linux box, right? But here they're just sub-directories and you could run chroot, you could run chroot, so let's just run it again. So you have an Ubuntu directory, you could chroot into that and now you're inside a different OS, right? You think you're inside 17.04. So I'll check slash RailsConf, it exists on the host but not on the new root. So here I also have a CentOS 7 sub-directory and I could chroot into that and you would see that it's in its own, you could see the version of the OS but since it's a CentOS root I now have YUM inside it. So I have an Ubuntu box but I have YUM running. So it all shares the same Linux kernel but you could see that you could run whatever distro you want. So here at the end I just have another directory, Debian and you could see the version. So now I have one Ubuntu, I think it's a 16.04 LTS version but I've showed you three other distros that I could run by using chroot and chroot is one of the things that a container uses. You have file system isolation where you're inside it, you can't see anything outside of it. However, it's not built for isolation. So you could not see different files outside but you could see other processes as I will show you later on. But this was, this is a very old technology like released in 1982 and it was used mainly for testing or for building software where you don't want to use any dependencies. So it's like having your pristine OS inside your existing OS. So the third description is namespaces and c-groups and this is the meat of the topic and what containers really are, are namespaces and c-groups. These are kernel features.  They don't think that there's another system, they don't see the host, they see their own system. So a container, you could look at it as a different route, a namespace and a c-group. So there are tools to create namespaces but we'll look first at the higher level, higher level tools that create namespaces and these are the things that people are familiar with. Calling the container runtimes, LXC for example. It has been popular and it has existed before Docker, right? Docker at the beginning was using LXC to create a container. So it was just a wrapper, for sure it provides a lot of different advantages but at the beginning it was using LXC. Then you also have Rocket, SystemD and Spawn. But at the end you're just creating namespaces and c-groups. So none of these tools added new features to the kernel. They are using namespaces and c-groups. So when you're in a container, there's an illusion to the user that you are on a different OS. As I've showed you earlier, you think the process thinks it's in its own OS. So then that is the goal for the containers, right? So here we'll see the ch-root again. I'm using Ubuntu 17.04 and you would see that inside it, I could see all the different processes that are running. I just cleared the screen very quickly but I could grab for top, I could see that process inside that root and I could kill it, right? So if someone in the host was running top and I'm inside the new root and I killed it, then well, I'm sorry to that person running top. So what namespace does, right? Namespaces, what they do is provide you that isolation. So first let's look at the Pid namespace. So I'm going to introduce a tool called Unshare or a program called Unshare that would create the namespace. So I'm going to combine that with ch-root. So I'm going to say Unshare, make a new namespace for a Pid namespace, ch-root Ubuntu 17.04, I'm using the same thing. Going to mount the proc file system and after I run PS, you would see that I only see the batch process and the PS process. So now inside it, well, it thinks it's Pid number one. But in fact, it's not process number one in the host system. It's something else, so it's just mapped to something else but inside that namespace which we created using Unshare, it thinks it is Pid number one. So now you've created a namespace that can't kill the processes that are running on the host and why is this important? When people run containers that were created by someone else, you don't want that container to be able to go to the host and just kill any process, right? So next is the mount namespace. So when you create the mount namespace, you inherit all the mount points of the server, of the host, but then when you make changes to it, the host won't be affected. So why is that important? So when you create a new container or a new namespace, Docker, for example, changes the mount points for proc, season, dev, and so the containers won't have access to the hosts. For example, here, the container won't have access to the disk, why is that important? Well, if you have access to the disk, then you could corrupt it and every container running on that host would have a problem. So you don't want your containers to be able to access certain mount points and that's where the mount namespace would help. Another namespace that we'll look at is username space. And this is actually relatively new and even Docker only added this maybe a few years ago. So, but this is like PID mapping wherein when you're running inside a container, when you're running as a user on a container, you are actually a different user on the host. So it's like PID mapping. So a lot of containers run as root inside, you run as the root user inside a container and that could be a problem because when you're running as root without username space, you're also running as root on the host and you know why that's not good, right? Because if you have privileges on the host then you could do a lot of different things. So when you enable username space, you'll have root inside a container but you won't be root outside. So you won't be root on the host. Next is the network namespace and inside a container you will use your own network interfaces. So it won't have any connection but what Docker does, for example, is create vif pairs and use a bridge on the host. So now you have one pair on the container, one pair on the host and so you'll be able to have your network connection and we will show later on how that works. And there are seven namespaces right now. So we started with mount and the latest is the cgroup namespace and this is actually more than 10 years in the making, right? So mount was added at the root kernel 2.4 and user, for example, was added in 3.8 and cgroup recently was added on the 4.6 kernel. So it wasn't, there wasn't a just one time we're in, okay, we're releasing containers. They release namespaces and they release it incrementally. So let's take a look at how you're going to use everything, how you're going to combine everything to create your own container and run Rails inside it. So we're going back to our same example, unshare but now I'm just showing here that you have a typical Rails app on user source app. So we're going to create namespaces using unshare but now we're going to pass mount, UTS, IPC, Net, PID and run chroot so that it's what we've been running this whole talk and we're going to mount the proc and then next I'm going to add a lot of environment variables but these are just needed by my Rails app. Like they have database URL and secret key base. I'm going to create just so it's easier to see and now I'm going to run bundle exact Rails server to run my Rails app. So I'm now inside a container and running a Rails app. So I'm going to try to curl and see if I could access that and you would see that it would fail because I haven't set up the network with pairs that I mentioned, you would see here there's only one loopback interface. So now I have to create those with pairs, right? So I'm on the second tab on the host and I'm going to create the with pairs using the IP command, you just use H for the host HP ID and then C for the other pair. So now I have two pairs, I put the C one and put it on the pro society. So that's the container part. Then I put the H5140 on the Docker bridge that is running on the host. So now you would see that there are two network interfaces, right? So now I'm going to bring up those interfaces. So bring up the loopback interface. Going to bring up the other, the one pair, one end of the pair, name it if zero inside the container. Here I'm just going to add an IP address. Of course you want to be able to connect to your container using an IP from the bridge that I just chose randomly. And I'm going to add a route to be able to have connection routing it through the bridge and after that I would be able to curl the real stuff inside the container. But note that I'm using the local host, so 127001 inside, but outside of it in the host you need to use the IP address that I use. So here you would see that the Puma process is running. That's the default now with 5.1 and you would see that it's PID 9 inside the container but it's a different PID on the host. So this is the PID namespace at work. So next is C groups. So C groups are used to limit resources. Like you could set a limit, a memory limit, a CPU limit or even access to devices. You could also set a limit to the number of processes you can fork because you don't want to exhaust all the process, the number of process you could run. And these were, C groups were added on the 2.6 kernel. So let's take a look at how you're going to set a memory limit to that. So at the beginning it's just the same. We just create the namespaces. So we're doing the same thing at the beginning, creating the mount UTS namespaces. And then I'm going to mount the proc and then the environment variables that we also need. But before running Puma, we're going to use C groups to set up a memory limit. So here I'm using C groups. So here I'm using the CsFS C group memory which is the C group file system. It's already mounted on my box. I think it was done by system D. So unlike namespaces wherein you use unshare as the program that create namespaces with C groups, you actually just interface with a file system, with the C group file system. So I create the directory, create the Rails directory, and you would see that if you, I just created a directory but after creating it, it creates all these files for me. And those are the limits that I could use. You would see memory limit there and other things. So what I need to do now is get the process ID of my container. So I'll get the process ID of bash. So there's 1045A there and I'm going to put it inside Rails slash tasks. And tasks on C groups are the processes, right? So I'm saying process1045A should be under the Rails C group. So there's nothing special with this. I created the Rails C group. And I'm going to say 40 megabytes will go to Rails memory dot limit in bytes. So who wants to guess if that's enough for a Rails application? It's a very basic Rails application. So now I'm back to my container and I'm going to run Puma. So I'm going to run bundle.exe Rails server and it says it's killed, right? So with a limit of 40 megabytes, our Puma process can start. So now I'm going to increase that to 80 megabytes and let's see if it works. So this is a new Rails app, so I think this would work, right? So now you could run that process and you would see here that Puma is running. So that's how you use C groups with your Rails app. So next description and the last one and this is the most accurate description is containers or processes. So you might have heard of this. They're not VMs, they are processes and this is the correct description. And if you take away nothing else from the stock is you could run a lot of processes as you know but containers make it easier to run those processes together on the same host. So let's take a look at this next video. You can see that I have a lot of Puma processes, right? So and then I'm just showing you that the PID, I'm not sure if that's easy to read, but the PID namespaces, so you could check the namespaces on the proc file system, they're all different. So I'm just showing you that this processes are all in different namespaces, right? But they are namespaces and what's interesting is I have a lot of Puma processes running and I don't have even Ruby installed on the host, right? So your host doesn't need to have anything. In fact, there's an OS, core OS, or I think they've renamed it to container Linux, but it doesn't even have a package manager because they want you to run everything in containers.  I think I'm using the same version so this is the same container, but you could run whatever Ruby version you want, whatever app server you want, you could mix and match Puma, Unicorn, and containers make it all easier to do all of that. So containers are processes, but containers being a new root, having namespace and cgroups, they're not actually enough. We have, whenever you create containers, you have to make sure you know how to secure them. So let's talk about container security. The way security works with containers is you apply layers of them. There's just no one setting that would make all your containers secure. Like you have to run a number of different things to make sure they are secure. For example, we have app armor, this Linux security module, or if your host doesn't support it, SCP Linux, and it limit the actions that a given program can take. So it provides a lot of limitations on the container, but actually if you start using the username spaces, a username space, some of these restrictions from app armor are not needed anymore, but you still keep them, so you just have another layer of security. So next is capabilities. In the beginning, there's only a root and non-root. If you're a regular user, you don't have access or you don't have privileges to do a lot of things. And Linux introduced capabilities so that a regular user would be able to do something if it has privileges. Some privileges, some capabilities, but not a full-fledged root user. So containers need some capabilities, but you don't want to give them all the capabilities. So that's why you also shouldn't run your containers as root. And while when limiting capabilities for some containers, then you limit what those containers can do. However, how do you know which capabilities to restrict containers and which capabilities not to restrict? In fact, when you search GitHub, for example, on Docker, there's a lot of discussion on what capabilities to allow or to deny. So there's no one answer. When you use LXC, they give you some set of capabilities and when you use Docker, they give you another set. So it's different. And the other is Seccom. So this is a Linux kernel feature and it filters system calls. And Docker, for example, disables 44 system calls out of 300 plus. Like one example of a system call it blocks is opened by handle add. Because when you use that, you could escape the container. So then the solution is just to disable that system call. But again, which settings should you block or should you disable? So those 44 system calls, how did they arrive at those lists? It comes from years of running the Docker project and to know which system calls to block. Like at a beginning, if there's a vulnerability, some system calls will have to be disabled. So the last part is running containers in production. So I've shown you namespaces and C-groups. So I hope I've convinced you to look at namespaces and C-groups or containers to run your Rails app. But I hope you don't go from this talk, creating namespaces and C-groups on your own, like running on share. Because most likely that would be not secured and will have a lot of bugs. For example, I've shown you CH-group, but that's not even actually what Docker is using. They're using pivot-root, which is more secure than CH-root because as I said, CH-root wasn't meant for isolation. So you don't write your own, it's like, I think it's like cryptography, right? You don't write your own, you let the pros do it. So you use a container runtime. I've shown you Docker and Rocket and that's actually good. If you're going to start running containers in production, that's the first step because they would create the namespaces, C-groups, and they would have default security for you. But then you'll also have other problems, right? What if the Docker daemon dies and, you know, I've had to restart Docker a lot of times and all your containers are gone? Like, well, what do you do with that? The site would be down and it would be bad. So you use something on top of it, you know, an orchestration system, and here you would have Kubernetes, messes, Docker, Swarm. You could choose, I mean, we like Kubernetes. When you run your containers, this system would choose to host with resources, right? So if you have 10 servers and you'd say, hey, I want to run this Rails app, then or this container with the Rails app and then Kubernetes would choose, okay, you run it on this host because it has memory. And then when a host dies, when a server reboots or becomes inaccessible, Kubernetes would then, oh, all the containers that are running on this host, I'm going to move them to another host. So with just the Docker, with just the container runtime, you'd have to manage that yourself, right? So that's why even Docker has Swarm because they know it's just running Docker on its own and one server is not enough. Then Kubernetes also provides your downtime deploy. If you have containers, then you want to be able to create new containers and with newer versions. But all of this, you still need an image, right? Which I didn't talk or gave the technical details. You still have to create that image, right? I tell you, install Ruby, install the packages, copy your code, install the gems, but how do you do that? And some people, they just don't want to do that. Of course you could automate this, right? A lot of you are using or more than half are using Docker or containers with Docker so you could use Docker build. And there's a lot of automation that you could use. You could tie them up with your CI, for example, and you could have an image. But what if you don't want to think about all this, right?  Then you could actually use a platform, right? There are a lot of open source projects for this, days, open shift, wherein you just, you don't need an image, you just push, right? You run a command like get push or the Cloud Foundry CF push and your app will be sent to the platform and it would run containers for you. But in that case, the containers are just implementation details, right? Like you don't care that they're running containers. I just care that it works and I just care that if I push my app, I would see the new version and scale automatically. And yeah, that is the goal. So you now know about namespaces and C groups but you don't even have to use them. And in fact, engineering, so this is just a plug, engineering has a platform that does that or we'll have a platform that does that and there would be an announcement though we have a keynote on Thursday that where you will hear more about it. So we work on that level. Actually, we had a workshop at Kubernetes so we could actually also work at the orchestration level but you know, most people would just like to push their app and just be done with it. So yeah, in closing, I mean, deploy your Rails app in a container. Looking to the technology, it's mature enough. A lot of people are using containers. It also has a long way to go, like databases. I think you should not run your databases yet in containers, it is possible but it's still early. And that's it, thank you.


Everybody forced here up in 2022 certified elements and gold standard football hobby six box mixer number 12 You can look at the results anytime a latent sports cards calm Good luck everybody and thanks for joining Let's do certified first to certified two elements to go We'll go certified elements then gold standard gonna skip three cap on this one guys. We're a little behind sale Got XR next then select to close us out for group breaks personals have been full since before we started We'll rip until 2 a.m. Get as many done as I can got more personals tomorrow night. I'll be doing those for you after group breaks Gold team Kyler certified stars Daven Cook Vikings 93 of 199 Almond Ross St. Brown number to 175 to 275 Lions Danny Gray for the Niners rookie jersey to 349 Kenzie is live tomorrow guys at 10 a.m. Eastern Saturday morning group breaks That's what's up, man Get your sugar smacks your cabin crunch Watch cartoons and watch breaks Kenny Pickett graffiti. How can you beat Saturday morning group breaks? Breeze Hall Jets on their freshman fabric RPA 55 of 149 I said jets Dark horses Mac Jones for Darian Mathis rookie to 274 325 for the commanders 325 Michael Pittman, Jr. 173 of 199 Colts face pack there 20 Bacelli Jags auto here. There we go. That's six of 10 on the Canton certified cool hit for the Jags Hall of Fame 2022 most recent class beast right there Dark horses Mac Jones gold for the Patriots that was in the 13 of 25 pets Maybe Mac back to the playoffs this year maybe Patriots Taekwon Thornton rookie jersey to 299 Sam Donald rookie to 349 Panthers Dark horses Elijah Moore got a latte Taylor rookie to 275 Horta Saints One more certified Carson strong rookie graffiti for the Eagles base pack Jerome Ford rookie to 75 Browns Eric Yuzukan my rookie patch card to 349 dolphins. All you gotta know is Denver is killing it Celtics are good, you know gold team Aaron Rodgers numbered to 249 Packers Magic are the best Jets Garrett Wilson on the freshman fabric RPA 20 of 75 both RPA so far going to the Jets Nice Garrett Wilson to very nice. In fact, that's the 399 Wanda Robinson for the Giants Vante Adams Raiders numbered 120 of 149 Kyle Hamilton graffiti rookie Ravens Bearcat legend Jerome Ford Dark horses almond Ross St. Brown Brian, who's the best bearcat of all time for football chiefs auto Derek Johnson here numbered to 99 Muir signatures Browns David Bell rookie patch card to 399 old team Cooper Cup. I Have no idea bebo Probably DJ more to 275 Panthers Tyree kill dolphins seal of approval numbered to 199 Traylon Berks working to 275 Titans trying to be the best UCF night ever. I probably have to say brand of Marshall The Hammer Culpepper, I would think Marshal Think I'm warm. I'm missing the guys. There's never was like God here His restaurant stuff though when it opened only lasted only lasted a few years. He sucks with the Dolphins Two elements now great for the Vikings Okay, yeah Travis Kalsy's a good one, too. Yeah sauce and Travis Kalsy's he's like a leaders right now Alright some elements now. We've got Joe mix and Bengals numbered 53 of 199 Niners rookie Tyrion Davis price tungsten 24 of 74 Yeah, Brandon Marshal was a beast though, man. He was so good Packers triple patch Corderole Patterson Dez and Ritter Drake London Falcons number 24 of 25 See if Sam were here. I'd say it was a brashad Paramount Skymore rookie neon signs chiefs Well, it looks nice get the Took up like most of space there 44 50 there we go chiefs always like a nice looking autograph Took out the full space. That's what you all you can ask for on those and steel signatures Brent Selick Eagles legend Brent Selick 83 of 199. Oh a Sante Samuel was it was it was it night as well? That's a good one, too For God about a Sante Samuel Except he dropped that which would have led to the Pats perfect season drop that pick Super Bowl would have been So Brandon Marshall Debo Samuel 45 out of 199 Shaquille Griffin pretty good too though, but not not brand Marshal level. I'm Reese. I'm Ricky Romeo. Dobb 31 of 95 Yeah, no, Brandon Brandon Marsh was awesome, man Smoke and Jay and Brandon Marshall rookie Jersey Bailey zappy Pats 49 of 75 Got a Texans rookie out of Derek Stingley jr. 70 of 199 and our ps. Steel signatures Ricky Vules Jones jr. For the bears 130 of 199. All right couple of gold standards. That was where the Broncos, right Rich?  How does that happen? I don't care. I don't care who it is. Yeah, Jerry Rice never did that Moss Owens Lynn Swan none of them Let that happen Steelers rookie Jersey Kenny Pickett a 399 Who was the quarterback that day? Who is the quarterback for the cowboy for the for the Dolphins and that happens?  No, dude. No way. I don't believe that. I'm looking it up right now looking it up right now I'm looking it up right now Was it Kyle Orton? That was a 21 reception game was Kyle Orton. He did it twice basically That was Kyle Orton was the Broncos when I was 21 catches That's wild AJ Turrell the 275 the Falcons Good job Kyle Orton Kyle Orton had his moments. I will say oh big card here Opulence rookie Aiden Hutchinson 10 of 10 Sick hard Lions Getting that magged for sure Opulence rookie Aiden Hutchinson to 10 It's like an emerald parallel. That's gorgeous big insert there. We'll get that magged Damian Pierce Texans rookie Jersey to 399 Yeah, I see it here Cut all but eight of Kyle Orton's 29 attempts that's outrageous How do you Kyle Orton did them all 29 times Marshall had 21 For reception not just targets crazy Kenneth Walker the third rookie Jersey to 399 Seattle Derek Johnson auto for the Chiefs to 99 Do you guys see I think was Aiden Hutchinson the first player in NFL history to have Five sacks and three picks in a season or something like that at first rookie to have five sacks and three picks Probably not first ever that'd be kind of crazy. I feel like a few linebacks have done that but Yeah, I'd read probably the few times to Jerry Rice golden records auto one of 10 49ers Wow, dude.  Thanks again everybody. We've got XR coming up next


Hello. Thank you for being here today. I'm Peter D. Hahn, and I'm going to talk about the broken link checker plug-in. And I'm going to tell you everything I know in the next 14 minutes. Are you ready? There are two reasons why we want to be concerned about broken links. One is it hurts the user experience. I don't know about you, but myself, if I'm on the website and I click on a link and it doesn't work, I'm going to abandon that website unless I'm very, very vested in what I want to find out. So that's a quick way to get me off your website is to feed me a broken link. The other is that most SEO experts say that Google will penalize your organic search results if you have a site with broken links. And I can guarantee you that if you haven't checked your site for broken links on a regular basis, you have a lot of them there that you don't know about. So those are two reasons why we want to address broken links. There are two ways to deal with it. One is off-site solutions. And I have played with some of those and got very quickly frustrated because they were cumbersome to use. And they gave me a lot of false positives that I had to wade through. Maybe hundreds or thousands of things to check, which really weren't broken links but came up as errors. Now, maybe I didn't look at the right resources, but the ones I used, I quickly rejected as being so cumbersome that I would never actually use them. Which brings us to on-site solutions or plug-ins. And that's where I've landed on is on-site solution using a plug-in to check broken links. For those of you who are end users, I recommend that you put this plug-in on your website. For those of you that are developers or provide any sort of service to website users, this is something you could add as an added value to your services or as an additional sale where you can tell them I will monitor your site for broken links and check them and fix them each month. And yes, they could add the plug-in themselves, but they probably won't. And if they do add the plug-in, they may not configure it correctly or may not follow through with fixing them. So you are the one way of guaranteeing that the broken links will be fixed. So the broken link checker plug-in has two sections. One is the configuration section. And the other is the user section. And I'm going to talk about both of those. Some shared hosting service providers don't want you to use broken link checker because if you configure it incorrectly, it can be a real drag on resources and can actually slow down the site. And I've actually tried using some shared hosting providers that actually said don't use it. Now they let me use it anyway, but they weren't too happy about it. And the reason is that some people configured incorrectly. When you go into the settings for the broken link checker, on your general settings, the very first thing is your status, which just gives you some information about what it has found. Next below that is how often they check each link. And this is where people get into trouble because they might say, well, check it every hour. Well, that's going to give you information very quickly, but it's going to keep your server cranking through links on a regular basis and slow things down. As a side effect, it's also going to give you some false positives where maybe they checked a link at this instance and it didn't look very good. So they flagged it as an error, but then later on it fixed itself. You don't want to have to wade through all those. I actually have to go through once a week, which is 168 hours. Now every time you add a link or add a page or add a post, it will check those links right away. So what it's checking on a weekly basis is links that have been on your site pre-existing. And those, for the large part, are not going to break very often. You don't need to be checking them every hour or even every day, but the lesser frequency is all that you really need. And that's under the general tab. There are three more tabs, which you can pretty much leave as defaults. You can play with them a little bit if you want to. The middle one, which links to check, is misleading because it also has a section, which links to ignore. So if you have a certain website, you just want to ignore all the links on that website. You can flag those in that section. The advanced tab is where you want to give some focus. The first one is a timeout. Now I would never wait 30 seconds to see if a link is going to work before it times out. But if you set that too low, it's, again, going to give you some false positives. Maybe it happened to check a link when that site was momentarily overloaded and it looked like it was broken, but if you gave it a few more seconds, it would come through fine. Sometimes I use 30 seconds, sometimes even a minute. The next one, the link monitor. You can run it continuously while your dashboard is open. That will slow down the responsiveness of your dashboard. One time I turned it on, and I intended it to be a short-term thing. I forgot to turn it off. The next time I'm in the site, and it's just, and that isn't admin, it's going so slowly, and I turned off that option and it speeded up for me. And you can also check to run hourly in the background. And there's going to be something on the next site that will tie into that. As you scroll down that page, there's a server load limit. And I believe this only applies to shared hosting sites where it looks at the server load of the host. And if you surpass the host traffic, surpasses a certain threshold, then it will suspend link checking, which is good for the host. It's bad for you because you don't know if you have broken links or not. One time I was on a host that my particular server was overburdened for a couple of weeks. And the server load was running consistently high, and it stopped my link checking for a couple of weeks. Now you can manually go in and bump up the setting threshold to overrun that, overwrite that. But that's dangerous, and it does go very slowly when you do that. So that's the second area where people come in the problem is they don't care about the host. They'll set that threshold as high as they want so they can get their link scanned. But that does drag everything down. The very last option at the bottom is force recheck. And they call that the nuclear option. I'm really tickled by that label. But basically that means you can go in and click that button, and it will automatically be in the rechecking every single link on your site at that point on. There are two good times to use that. One is if you move from one host to another. For some reason, it confuses links. Probably you know why that happens. I don't, I just know what happens. And by checking them right away, you can find those and fix those. Usually they're things they have to redirect them properly. The other is, say, moving sites. The other is going from a development to an online version. I've had problems with links in those instances as well. And that cranks through them very quickly. So that's the configuration aspect of it. And then the tools aspect of it, and you can see it's under the tools settings. I actually did the screen capture before the last version of WordPress came out, which has the GRDP or whatever options, which will appear below the broken links. But there's the broken links option there. And you can see along the top, there are five different categories. All is the number of links it checks. And broken is the number of broken links. Warnings is the number of warnings. The number of redirects, the number of dismissed links. And the reason that I'm not doing this live is the number of what I don't like live demos, because they always backfire on me. The other thing is I like to keep my sites nice and clean, so I didn't want to purposely leave broken links on my site so I could show you what they look like. So these are all screen captures. So under the broken links section, it has one broken link on this particular site. And you can see it gives the URL of the site, and it gives me some options. I can edit the URL, I can unlink it, I can flag it as not broken. I can dismiss it, or I can click on recheck. If you click on recheck, it usually rechecks it very quickly. You can also click on the link, and it will open up that page in the separate tab on your browser, which is probably the quickest way to find out if it's working or not, or what you might be dealing with. On the far left, you can edit the post, you can view the post, you can trash the post. I've never done that. It seems a little extreme. And then you see in the middle on your status, there's the Details tab. If you click on that, then it gives details about why it thinks it's broken. The main thing I look at is in the lower left-hand corner, the number of times it's failed and the length of time it has failed. If it's only been a couple hours and I want, and I think the link is good, it's just a temporary thing, I'll ignore it, but if it's been there for a week, two weeks, then I'm pretty sure that that link will never work again, and then so I want to remove it rather than try to wait it out or fix it. In one of the setup screens, and I must have missed this, but there's an option for you to enter your email address. If you put your email address in, it will email you every time there's a broken link found. I apologize for skipping that. Warnings is a link that is potentially suspect. It may be good, it may be bad. And that's just things to watch. Usually things that come up on the warning list will clear themselves within a day or so. So it's usually not a big deal. If I'm busy, I skip this. If I have a little extra time, I'll explore them. Usually I find that the links are working. The next area is redirects. And the redirect is, as you would think, when a link redirects from what you have in your site to something else. Where this happens most often is when people change to SSL. And you've got HTTP, and you're supposed to have HTTPS, and that will come up as a redirect. And you can click on the Fixed Redirect button, or you can edit the URL. Those will both be ways to fix it. This will display up to 30 redirects per page. You can click on the global box there, or highlight all 30 of them, and you can fix all 30 redirects all at one time. When I switched one of my sites to SSL, I had 3,200 internal links that needed to be redirected. So I was glad I could do them in batches of 30. And even that took a while. The final thing is dismissed. For some reason, broken link checker flags Twitter and LinkedIn as being redirected. And no matter what you do, that's always going to come up as an error. So what I do with those is I just simply dismiss them. It goes into the dismissed column. And I believe periodically it puts it back out and has you check them again. But that's a good thing to avoid nuisances. That is the end of my presentation and the end of my time. I will hang out outside if you want to talk to me more about this. Thank you very much for your time and attention and for putting up with my cold and my sore throat and all that. I appreciate it. Have a great rest of the day.


It finally sold, and guess what? It was a big money bolo. Hey, bolo buddies, thanks for watching. It's from my little pony. Amazing, right? All right, let's get started. Hey, bolo buddies, thanks for watching. All right, you guys, thanks for being here. I'm gonna share with you some of my big money bolo's that I sold on eBay, but I'm gonna do it a little bit to something a little bit different in this video. I'm gonna show you some footage from a past video of an item I sold. I purchased it at the Goodwill Benz that it would either sell fast or it was gonna be long tail. Well, it happened to be long tail, but I sold it for $100. Woo, so I'm super excited about that. So let's watch some of that footage first and then I will show you my eBay listing. Oh, did not mean to do that. Great footage coming soon. These are McDonald's plates. Now, these are two of my solds from a past sales on Mercari. And they are Hercules McDonald's plates. If you guys do not know about those, they are definitely a bolo. Here it is, you guys. What do you think? I was like, should I get this? Will I get this? I'm going to definitely get this. So this rode around in my cart and everybody was probably like, why is she getting that? But I love it. I think it's gonna sell. I think it's a fun, unique item. It is called Footstool Unlimited, is what it says on the bottom. A footstool with a personality. And I was only able to find one comparable on it and it was on worth point and I'm not sure if it was the same brand. So I will pop that up, could not find anything on eBay. I don't know what I'm doing wrong if I'm typing in the wrong keywords or what, but nothing. And I would think that an item like that would be easy to find. So it must not have been mass produced. There must not have been a lot of them made. The cool thing is you can put whatever socks and shoes on that that you want. So I'm gonna do a 10 day auction on that and just see if it gets some bids. I am gonna start it at what I would like to at least get out of it. If it goes higher, great. If not, I'll be happy with that sale price. If it does not sell, I will re-list it at a buy it now price or best offer. Now it did have the foam on the top was showing it does need a cover. Somebody needs to refinish the top of it which is no big deal. Some people might wanna do that themselves anyway. But the condition overall was pretty great. Not sure the age on it, but pretty sure it's vintage. That was my weirdest find. Now, like I said, I go next door to the thrift store and I come back and that is when I find a whole bin of stuff that everybody has already gone through. Everybody left it behind. Nobody's digging in this bin and I am scooping up the treasures. So that will be coming here shortly. Okay, so here is the footstool. It did not sell on auction obviously and I ended up re-listing that for $162.50 plus shipping and somebody made me an offer of $100 because it needed a new cover on the top or however you fix that, I'm not sure what that's actually called and they offered me a hundred. So I went ahead and took it. My cost of goods was $5 because it was considered a heavy item. So they worked with me on the price. They probably thought, yes, you can have it for $5, get it out of here. It did take a long time to sell. I listed that April 6th of 2022. So over a year to sell. But this is something that you have to have the right buyer for and I just boxed it when I packed it or when I listed it, it was ready to go when the person bought it. Could I have priced it lower and sold it quicker? Probably most definitely but I felt like it was a unique cool item and I was willing to wait on the right buyer. All right, the next item I sold is this silver plate flatware. I picked this up I think just like at miscellaneous garage sales or maybe my husband gave this to me. I can't recall. I didn't have much in it. So I ended up selling this for, I ended up selling this for a best offer $37.20 plus shipping. The next item here is this bath and bodywork soap. I got this at a garage sale for a dollar each. It is refill foaming hand soap. A lot of times these are discontinued. I'm not really sure but I couldn't find a whole lot of comps on this. So I priced at high at $62 and took a best offer of $40 plus shipping. The next item I sold this for a best offer of $90 plus shipping. It's a vintage 14 karat gold one in a million charm or pendant by Michael Anthony MA signed. It was really easy for me to find comparables for this and I priced it on the high end and it sold really fast. This is a vintage suit. Oh my goodness. This is a vintage sun bonnet suit girl and farmer wedding ring pattern fabric. And I got this at a clean out from an estate and I sold it for $46.50 plus shipping and the buyer was all in for $58.52. Up the next one and it's I think above low also but this one is a little bit confusing because there's high solds and there's low solds and we're gonna talk about that but first I wanna show you this little cutie. Any cutie is a frog. Now, have you guys seen my jelly cat video? There is a jelly cat frog that goes for like $800. If you haven't seen that video, definitely go watch it. Just search Bolo Buddies jelly cat and it will pull right up. There is also another one I think called Fergus, the frog that does pretty well. This is neither of those. This is just a plush frog. Now, it is by, hold on. Animal Adventure and it is from 2014. So this is a retired discontinued plush. I believe he's probably 18 inches. He's pretty big. He is really, really cute. I mean, just look at that smile. It just makes you wanna smile, right? I mean, look at him. Just look at him. Okay, so this is gonna be available on my eBay store but here's the deal. I wanna take you over to eBay and I wanna show you some solds because again, I went to high solds and I have not looked up to verify any of them. We're gonna do a little bit of that and see if we can maybe verify something. I don't know if this is a big money Bolo or if this is a bread and butter but we're gonna research it together right now. I'm gonna show you how, okay? Are you ready? Let's do it. Okay, so I'm over on eBay and I put in Animal Adventure Frog. Okay, so in that video, I talked to you guys about how to research solds and how to price your items. You guys can check that out. I'll link it down below but I ended up selling this for $77.50 plus shipping. That is what the conclusion was from my research that I came to and you guys can watch that video to see how I came up with that price. This did end up selling to a viewer so thank you so much to Pinky's secondhand store. This is her eBay store. Definitely go and check her out. You can follow eBay stores by clicking on the heart and that'll let you know when they post new items and it will send you coupon alerts. So go and follow her. She is a great support of the channel and she has great things for sale. Okay, got another one for you. I buy items and I sell them on eBay and other platforms to flip for a profit. Check out what I sold. All right, here's a Bolo you might not know about. I picked these up a long time ago so they have been long tail but I probably picked up 40, maybe 50 of these and they have just been selling over time. I just sold five to one buyer for a total of $64.13 with free shipping. I will cover the shipping. I will ship them priority mail because they do have advertisements in them and what's really cool, I still have these left and as I was pulling the other order I got a whole bunch more cha-chings and I sold six more to the same person for over $70.   These are items you can pick up cheap at garage sales and thrift stores, estate sales so definitely be on the lookout. All right, so that was an awesome sale. It did take a long time to sell. I've been selling those magazines over the last, I don't know, two or three years but yeah, that person wanted a bunch so pretty cool. Now this is a vintage 1999 Pokemon. I thought that the two of these were gonna sell super fast. Well, they did not. They took a long time to sell but the right buyer finally came along and I got $40 each for these. I picked these up at a garage sale for $2 each. So four bucks into $80, I will take that all day long. All right, so this video was a little bit different. I had some footage from other videos of the things that I sold. So I thought I would just share those and kind of incorporate them into the video to chop it up a little bit. Go check out that Goodwill Binz video. I have tons of Goodwill Binz videos. If you guys like to watch me dig, I do pop up educational information throughout them so it's not just me digging. I try to keep everything educational on the channel. Thank you so much for being here. What do you think about those solds? Are you a long tail patient reseller or do you like to only buy things that have a really fast sell through rate? Let me know down in the comments. Thanks so much for being here and check out another video. There's gonna be a video popping up here and here, one down below. If you're not subscribed, I would love for you to subscribe and thanks for watching. It was super, uh-oh, my internet lights on.  So let's give it a second. Oh, come on. Come on. Oh, it's getting worse. Oh, it went off. Okay, we can continue. All right, so I'm gonna show you some Goodwill Benz footage. This is probably something that most of you would not pick up. It was really big. I knew.


So my name is Shane Lynn and I am co-founder and CEO of a company called Edge Tier here in Dublin. We work on the development of software systems that are powered by machine learning and artificial intelligence for the customer contact center industry. We particularly work on the use of artificial intelligence in conjunction with human agents to massively boost their productivity and change the way that industry is working. Today I was speaking about the new applications of AI, the new developments in that area and how those developments are poised to revolutionise the industry of customer service and the people working there. I'll be speaking about similar techniques and artificial intelligence in customer service at the British Conference coming up this year in October. I look forward to seeing you there.


Live from Los Angeles, it's theCUBE, covering Open Source Summit North America 2017, brought to you by the Linux Foundation and RedHash. Welcome back, everyone, live here in LA for theCUBE's exclusive coverage of the Linux Foundation's Open Source Summit North America. I'm John Furrier with Stu Miniman. Our next guest is Erin Welch, who's the co-founder and head of product at Packet. Welcome to theCUBE. Thank you. Innovation's booming here. We're the product guys who love to have that product founder perspective of the collision between Open Source, accelerating at a massive scale, not just in the classic sense of all the normal projects that are getting more and more derivative projects, but new projects. You get the hyper ledger, you got IoT, you got a massive amount of collision going on between software and your world is about hosting all that and making sure it's on-premise support with low latency and multi-cloud architectures. So there's an architectural battle happening while Open Source is massively accelerated. What's your take in reaction to all that? Yeah, I mean, it's pretty interesting and I think especially with the sort of advent of containers on the scale that we're now currently seeing and obviously that's a technology that's been around for quite a while, but I think Docker finally fixed the user experience side of that and made it comfortable for developers to deploy on. And so now all of a sudden you have a sort of portability on the application level that the cloud sort of always promised but didn't ever really deliver. You never really ran a AWS instance image on GCE for example, right?  But now with the advent of containers, both your development pipeline and your CI CD pipeline, once you've obviously made the investment to get that all running properly is so much more accelerated and so much more isolated from and doesn't rely so much on sort of the traditional infrastructure gatekeepers. So I think that development cycle is accelerating in that regard, but also it's enabled people to get sort of come full circle and now you have the ability to deploy your workload on specialized hardware and target that specifically, right? So we're going from a sort of like very abstracted cloud environment where it's a certain amount of RAM and CPU, you don't even necessarily know your clock speed to I want to push my SSL offload to my network card and people are able to do that. So that's an interesting sort of thing of the last I would say. So Aaron, I want you to take us back to the founding of packet. What was, what was it going? I mean, we look at technology is changing so fast. We're talking about containers. Heck, you're in New York City. We're going to probably be there. Serverless conference is going to be there. Amazon's pushing the next generation. There's always the new, new, new thing. And there's companies that come out with a new, but the big guys are also jumping all over it. So, where do you guys fit? What was the impetus for the start? Yeah, absolutely. Well, you know, it was an interesting time. You know, and most of the people when we're starting the company were like, are you completely out of your minds? Why would you start, you know, that game has been won. The cloud game is over. You know, AWS has taken the prize. What are you doing even getting into that space? But, you know, around that time, 2014, was when sort of Docker was coming out. Kubernetes was really shortly after we sort of started the company. And we felt like there was a real value around the economics and performance of dedicated bare metal hardware that just wasn't accessible by people who had cloud native workload requirements. But with the advent of containers, now all of a sudden they could do that. And, you know, we really felt like there was a gap in the space where all of those big players are still virtualized. They are still co-tenant. They're still, you know, using a hypervisor.  You're paying for co-tenancy. You're paying for noisy neighbors. You're paying for generally poor shared network. And so there wasn't anywhere in that space for people who are either on-premise or in a dedicated environment that wanted to move to a more nimble cloud infrastructure and vice versa. People that were getting pinched on the higher end of the economics and paying for poor performance in a virtualized public cloud, wanting to go the other direction, but not wanting to give up all of the flexibility and tooling that they'd invested so much in. So being able to actually automate bare metal, give that experience of the cloud with the performance and economics of dedicated servers was something that was missing. Aaron, take us inside the customer viewpoint here because I've been looking at surveys and they say, you know, how much are they deploying? Things like we used to talk past.  What are you hearing from customers? Where are they with that kind of, you know, cloud native, if you will, or kind of application modernization? And is that a necessity to leverage your offerings? Because I guess I look at most companies and say, oh, I've got thousands of applications. I've got some that I'm doing new stuff with, but I got a whole lot of stuff that I need to do something with. And there's lifted shift or platform it or anything like that.  Yeah, for us, we're very agnostic. So we really focus on sort of automating that fundamental infrastructure. So we have plenty of people that are bringing their own hypervisor and standing up their own sort of traditional virtual clouds using KVM or Xan or VMware. We have people deploying OpenStack on our platform. But I feel, I definitely feel like in the industry in general, the excitement and the inertia is definitely behind containers. I would say it's still very early. I think most large enterprises that have a cloud transformation strategy or initiative internally that have their own team are still in the proof of concept phase right now. You know, they're still playing around with it. I think it's probably going to be a couple of years before they're really deploying serious workload. But I do think that sort of there's a large, but still I would say mid-level enterprise who are paying consulting agencies to boot them into microservices framework using Kubernetes and Docker and those other frameworks. So still spending real money, still doing it, but are paying some of the kind of leading edge pro-serve firms to do it for them at this point. And then of course there's just I think massive amounts of just development and experimentation on the sort of individual developer front. Eric, talk about the impact of Amazon web services because we're seeing a lot of workloads certainly going there. Stu and I have commented that, kind of, well I've commented, I won't speak to Stu. All rows lead to the cloud, eventually. Because as startups, start companies, we are all in the cloud, no one starts a data center and says, I'm going to spend all those cat-backs. They might have an operating model at some point, realize something on-prem needs to be there. So you have that kind of mindset. A lot of hybrid going on, which is basically true private cloud as Stu points out. Your thoughts on this trend, how much of that debate of Amazon workloads being real vis-a-vis their competitors and on-prem, what's really happening in terms of the trends? Is Amazon running a lot of workloads and what kind of workloads and where's the on-prem gateway to the cloud happening? Or do you even agree with that? Oh well, I mean I think without question, I mean Amazon has been validated by the market. They're running plenty of production workload, absolutely. I think that their strategy of sort of having a diaspora of supporting, sort of hosted services has served them very well. I think EBS and obviously their object store S3 has been like fantastically successful in keeping that revenue sticky. So I don't really, I don't hear anybody debating that anymore. The debate in my opinion is much more like how fast in is the Kolo world going away? And the number show it's still growing, right? Data center providers are still building more data centers. People are still selling more Kolo. So the question is, is that new workload that's going into those sort of on-prem or physical data center locations that aren't necessarily on a cloud provider? Is that hybrid workload? I think most people at this point either have something running in Amazon or one of the other cloud providers. And either that's fine and they're going to expand there or on-prem or have a DR strategy or something. But I think most people aren't going to put all their eggs in one basket with one.  Yeah, absolutely. Check the box now. Get your thoughts on architecture. So things that we're seeing a lot of practitioners doing is saying, okay, look, I got to protect my jewels. I got to get my own house in order, which is usually their on-prem situation. And changing their operating model. Same time, you mentioned the virtualization tax. There's still the aspect of I still want to run software define something that's either servers, hyper-converged to stoop. Let's talk about many times. A lot of that, they look at a new architecture. What are some of the new, cool reference architectures that you see emerging that give the enterprise a great solution to maybe take baby steps to the cloud. Maybe certainly bursting is in the cloud. We see that a lot. Maybe some production workloads make sense there. We've seen that too. But there's still the legacy enterprises. What's the preferred architecture? Yeah, it's tough. I mean, for those legacy, I mean the problem with most of those monolithic applications is that they're so bespoke. That it's pretty difficult to kind of, you know, say, this is your solution. This is going to solve all your problems, right? And a lot of times, in the container world, they cause a lot of problems that you may not even be aware of, right? Like especially in the security space. All of a sudden that perimeter is disappearing, right? Like your services move around, they're dynamic. So, I mean, I don't know if there is a reference architecture, at least that I see that's sort of coming out as a standard. What are your clients doing? Well, like I said, you know, our clients are kind of all over the place. We have people that are running containers directly on the bare metal. I think that Kubernetes is probably the, you know, leader in at least the orchestration space. I think, but there is still a lot of workload that is just virtualized. I think also there's, you know, there are some interesting kind of like, I don't know, dark courses out there in the virtualized container space like Hyper. So these super, super lightweight actual virtual machines that behave similarly to containers and sort of have, you know, are compatible with the Docker API, but that actually provide the isolation that true VMs do. So I don't know exactly where that is going to fall out. And the other kind of piece that's floating around out there is all the serverless, right? I think you eventually you're going to see people that are literally just deploying functions to the cloud and those functions are likely going to be deployed into some edge compute network of some sort.  I mean, anything that has, you know, requirements where you have to have a response time of 100 milliseconds or less and you're deployed in major metro areas. So, you know, it's just extraordinarily disruptive. And, you know, when I speak a lot of some of these, you know, events and that's the question is like, so what tool should we use? Like what should we do? There's no silver bullet. There is no silver bullet. And quite frankly, it's still the Wild West out there. Like there is no lamp stack equivalent for the container space right now. And I think that will eventually happen. But I think we're a little bit away from that. Yes, sir. And one of the things I think we've seen the maturation of Kubernetes has happened pretty fast. One of the announcements this week was the Kubernetes certified solution providers trying to make sure, where do I get it? Is it, you know, got an open stack where it used to be? Is it pure? Is it forked? It's, well yeah, do you have a solution that doesn't work in for Kubernetes? Does it actually give me that portability that you talked about? What are you seeing in the Kubernetes community? What would you like to see even more? We've, you know, watched this kind of tsunami come. So, you know, what's good? Where are the customers? And I'd love to follow up on some of the serverless stuff. Yeah, absolutely. I mean, I think that it's great that the certification program is coming out and like kudos for the CNCF to kind of get that rolling. And I think it needs a lot of work.  So, you know, I think that the Kubernetes project in general needs to look at some sort of longterm non-breaking releases. I mean, I think, I think right now it's still pretty dangerous for you to deploy anything like serious on it even though I know that there are definitely people that are doing that. But those are always early adopters and they know they're going to probably have to pay the price. But for Google, Google does it, you know. Google has some resources that a lot of people don't. Well, I mean, you know, like Google does a lot of things a lot of people don't do. They got a clause in the goodness they can just bring out. Sure, and you can either be, and you can be fine with that and still be successful with that. You just should be aware that you're going to have to pay that price in terms of resources and potential downtime and breaking changes and whatnot. But I think for widespread adoption, especially in the enterprise, there has to be a certain roadmap and a certain amount of security there to feel like you're going to be, you know, you're not going to lose your job for deploying something, right? Yeah. Well, my big thing that I look at, Stu and I look at is that the true private cloud report that Wikibon put out recently is getting a lot of traction. Certainly at VMworld a couple of weeks ago was they went viral and that was the revelation and I've been having a lot of debates with the Amazon folks here. I'm not trying to say Amazon's not winning. They're blowing it away and there's a zillion workloads moving to the cloud. But, certain enterprise for the bespoke applications and many more other reasons of legacy baggage that they just aren't moving as fast. So they're doing a lot of retro onsite, changing their operating model, which takes some time. Then they kind of move to the cloud as quick as possible where they can. So that seems to be the trend. So with that in mind, you're starting to see people jockeying for position. We saw Pivotal launch the Kubernetes Container Service or KPI, the Pivotal Container Initiative which is tied to Google Engine. Is that real? I mean, because now you have a lot of different things happening. It's so confusing. You got Docker, now you got Pivotal, but Pivotal's got some cred, VMworld's involved and you're tied to Google Cloud Engine. Making it management easier? Sounds good on paper. What's the reality? Everyone has their own Docker solution, right? And some of those are more bolted on than others. I think you saw Mesosphere with their DCOS. I think you see Docker appearing and Canonical and even Susie over here has something that I hadn't seen before. Everybody wants to kind of get on that Docker bandwagon and some of that is more native than others. So yeah, I mean. At the end of the day, it's got to work. It's got to be manageable. It's got to be manageable and I think that's right. I think in the end, operational reliability is what's going to win and lose, right? I mean, the bottom line is a lot of those foundational technologies are quite old and it's all about having visibility into your stack, being able to troubleshoot it quickly, being able to deploy it seamlessly, being able to truly segment your sort of, if you're really going in that full DevOps mode, giving your developers the freedom and nimbleness that they want and making sure that the DevOps and traditional security teams have the good, warm, fuzzy feeling that everything is in out of control. And so whatever that is in terms of integrated, CI-CD pipeline, virus scanning, security, integration. So the better mouse track will win. Yeah, absolutely. Final question I have to ask you. I look in your bio and it says something about fire eating. So how do you?  So sorry.  Yeah, get burned. Yeah, I mean, I think it's a really good question. I mean, I think with anything, it's important, especially if you're deconstructing a monolithic application is really trying to find those pieces that are safe and easy to carve out and use those as a little skunk works internally and really put it through its paces. I think, I don't think I'm breaking any NDA or anything, but I went to a very great event at Moody's a number of weeks ago and they did basically an internal all day summit. They have a cloud transformation project that's running there that's going very well. And they did something fantastic where they invited the entire company and they did basically a day long camp just internally and they invited a bunch of people out of the space to just come and inform everyone and making sure that everybody sort of understood what the ramifications were, give them an opportunity to learn. And it was really clear that from the very top there was buy-in around making sure that this works and making sure that people have the tools and that those teams trust each other and understand what's happening as much as possible before moving into something that they may not fully understand. So it really was kind of a kumbaya messaging, gathering to get people on the same page. That's pollinating ideas, testing, getting feedback. Yep, they ran multiple tracks and so you could go talk, they brought in experts from various areas of the field and gave their staff opportunity, staff questions. And which is... Should have jammed it down that throat, it would have been more open. It was open policy and it was really great. They streamed everything so people that were working remotely could watch it and they had a really fantastic turnout. I think they had many hundreds of employees to sort of take the day. Thanks for coming on theCUBE, appreciate it, congratulations. You've been three years as co-founder and you know it's a battle to have your own startup. You're a warrior, great to see you on theCUBE. Thanks for coming on, sharing your perspective. Absolutely. I always love to have the entrepreneurial perspective here on theCUBE at Open Source Summit North America Linux Foundation. I'm John Furrier, Stu Miniman, more coverage after this short break.


And Heartbeat is gonna be free, of course. Just like YouTube is free, we will also build Heartbeat Premium, which is a paid subscription version of Heartbeat, just like there's YouTube Premium. Look, we're inspired by YouTube. YouTube does a lot of things that we love. Does a lot of things that we don't love. So we're gonna fix the things that we don't love and we're gonna build the YouTube that once was has Heartbeat. And you should check out my favorite moments. This is the stuff that I believe you will love and if you do, that means we have a shared interest if probably we should talk and maybe become good friends. But my favorites tab, you can see it by clicking the link down there in the description below that says follow my Heartbeat, click that and then click favorites. I encourage you to check them out.


Cohesion is the tendency of molecules of the same type to stick together. Water molecules are highly cohesive. This cohesion is what allows water molecules to move against gravity. As you can see in this animation, as one water molecule evaporates, it pulls along a chain of molecules sticking together via cohesion, illustrated here by the molecules holding hands. This draws water up from the roots, through the trunk, and out the branches to leaves, moving against the force of gravity.