Welcome to Seesaw. You may already know a little bit about Seesaw, like that kids get this excited to use it, that it gives you a window into your child's thinking, or that you become a powerful partner in your child's learning when you connect on the family app. We're here to help you get started. It'll only take a few minutes. Your child uses the Seesaw Class app to complete assignments with Seesaw's learning tools. As a family member, you use the Seesaw Family app. It was made just for families. Let's get you connected. There are two ways your child's teacher can invite you to connect to the family app. You may have received a text message or an email. You'll see a link to connect. Click the link on the text message or email like you see here. If you've never used Seesaw as a family member, create a new account by signing up with a Google email account or simply typing in your info. If you already have a Seesaw Family account, all you need to do is sign in. That's it. You're connected. The second way your child's teacher may have invited you to Seesaw is with a PDF, like this. It'll have a QR code. This QR code is unique for your child. Here's what you do with it. If you're brand new to Seesaw as a family member, open Seesaw. Download the Seesaw Family app or go to app.seesaw.me. Click I'm a family member. Click Create Account and scan your child's code. Then you can sign up with your Google email address or type in your account details. If you already have a Seesaw Family account, you can connect to all your children's journals on your one Seesaw Family account. Go ahead and sign in. Click your profile icon on the top left. Click Add Child's Journal. Click Scan Code, then scan your child's code.  How do you use this new Fangle technology? We'll show you. First is the Home tab. Up here. In the Home tab, you'll see the most recent work from all your children. Next is the Journals tab.  Click on your child's name to view their entire journal for a class. You can do way more than just look at this work. Your child's teacher may have enabled likes and or comments. You can click Comment, type a comment, or click the microphone to record a voice comment. Students light up when they know you've seen their work. Finally, the Inbox tab. This is where you communicate with your child's teacher. You'll receive class announcements and one-on-one messages. You can type a reply or click the plus button here to attach photos, videos, and more. Don't worry, messaging is always private. Even when you reply to a class announcement, your reply only goes to the teacher. One last important detail. If your device is set to a language other than English, you'll see See Translation when translation is available. Pretty cool to have your child's learning and communication with their teachers all in one place. It may seem simple, but connecting to your child's seesaw journal makes a huge impact on their learning. That's it! You're ready to seesaw! See you soon!


Hello everybody. Good afternoon. My name is Travis Newhouse. I'm the chief architect at Formix, and it's my privilege today to introduce Mike Kraft and Brian Eckblad from Viasat, who are users of at Formix.  So I'll give it a way to Mike. So hopefully it's Mike's work. Good. So I'm Michael Kraft, Brian, both of Viasat. I try to say he's from at Formix, a partner of ours. So today I'm here to talk about fancy title here, how service optimization keeps Flyasat flying, in essence how we deploy and use OpenStack at Viasat to some degree. So tell you further ado if I can get this keyboard to work. Maybe. So today I want to cover who we are. A lot of people don't even know Viasat still. We're a rapidly growing company. So why OpenStack? You want some clouds? We did OpenStack. Current state of the cloud, some numbers, some data, show that we're actually really using it, and some key areas of interest that we've found to be successful that you should use some guidance possibly, some good questions, and answers you should think about, and then some specific challenges. I think we got three of them today and some solutions, including the partner we just mentioned. So let's get into it. So Viasat, for those that don't know, we're a global broadband services company and technology company. We launch satellites, operate satellites, we do ground stations, we do IT, we do everything in between. So we provide consumer. A lot of people know lately from airline services. We do a lot of in-flight Wi-Fi. So we're getting a lot of publicity on that. Commercial, so business and residential, home broadband, so internet services, if you will, and not your old stuff. It's actually true broadband to your home. And government customers, insert three letter words here, three other acronyms here, but a broad spectrum of customers. And again, this is our PR statement, but we think big, and I love it. We think big. We act intelligently. We're not done. We're just beginning. So motivation. So why OpenStack? So we got to a point where we just needed to scale, as with a lot of companies, right? So that's an awesome problem, awesome challenge to have. So we needed some reasons here. And OpenStack provides for us on-demand infrastructure with self-service. We are truly using it as a complete self-service IaaS platform. Reduce infrastructure capital operational costs. Of course, you can get some vendors that cost a lot of money if you want to buy their hypervisor. So we were looking at ways to how do we get out of that existing model, that expensive model, and how do we get to 10x, 100x of that scale, right? And then behind the covers, we want to be able to have something that'll allow us to be transparent with capacity scaling and then also additionally add additional services and still stay within that standardized umbrella to API endpoint. So we have, again, a wide range of applications, which makes us kind of unique. I think we're customer-facing, internal and external very soon. We have airline verticals, government verticals, residential, commercial again. We are employee-facing also. So with that, we have a lot of pets. And then internal development test environments, which are more cattle, but again, have a wide breadth of things that we address here. Again, enterprise apps, service delivery apps, ISP-based apps, if you will. So history, so it gets a little more text heavy, sorry. So internal POC environment started in 2014. As you can see here, I don't want to just read it verbatim, but we used it for select development teams, kind of get our feet wet internally here, and then our customers see if people actually liked it, could use it, could actually do self-service. A lot of people, right? They just get thrown too many toys in their basket and they kind of freak out, right? So, and we start with Havana with Open V-Switch back then. I should mention we had success with the platform itself, but had very specific troubles and problems with OVS. As you kind of read on, you can see we kind of went away from that. So our production design minus OVS started in September 2014, so not too long ago. And then we iterated and started to build out of a production environment quickly in November 2014, with our first production cloud and customers coming on board in December of 2014. So it was a little nice little Christmas present for our customers. And that was with Ice House and specifically we dropped OVS and went to Straight to Linux bridge. So our current production clouds are running in pretty wide, you know, three versions of code now, right? Juno, Kilo and Liberty, which presents its own challenges. Don't suggest it, but that's where we're at. We're trying to stay with an NMIS one model, if you will, or maximum two versions. So we intend to stay with Kilo and Liberty once we get there, then hopefully go Liberty and DACA and so on and so forth. So for production releases, as you can tell, we've partnered with Rackspace. You know, there's our hometown, so we've got to mention them. But with that, it's enabled us to be, you know, you leverage our professional services, their support teams, stay lean internally and then get to a production ready cloud and offer that as a service for our customers really rapidly. And then the last bullet point, you know, we're ever-evolving to be in-house supported, hopefully 100% someday. Rackspace won't like that, but, you know, that would be the end goal with any application team really trying to deploy something. You really want to own it end to end, right? So OpenStack Operations is a bias set. So to reiterate some data, we have five private clouds. We're out over 200 physical hypervisors, 7000-plus instances. Not all of this is Rackspace managed, just to be clear. We have over two petabytes of storage between Cinder and Swift. Underneath the covers, a little ad hoc data point there. We are running, still, we have LVM, Ceph, and then we have some highly available storage arrays. So from Spring Disk to SSDs, we have completely standardized on Linux Bridge across everything at the moment. We are looking at possibly getting more flexible there in the near future. We have a six-member DevOps team. Again, something that makes us unique. I think we have no silos. We own everything within the infrastructure service umbrella. So if you will, you can look at it. We get basically a link from our data center backbone fabric, you know, our Ethernet packets, and we build everything and own everything all the way down to the floor in the data center within our small little team. And then last one, you have 300-plus internal users' customers. We are really, really pushing the boundaries of multi-tenancy and the wide, wide, wide breadth of requirements you have when you have that many customers. So our current, for instance, I don't have it up here, but our current biggest production enterprise cloud right now, we have close to 70 different projects. So I think it's pretty unique. Of course, it's challenging. So unique aspects. So to further that conversation, so we truly provide self-serviced IT to our users. We give them some resources, capacity, and they do what they need with it. We give them all the IPs they need. We give them big quotas, and they're allowed to digest it and eat us alive, if you will, you know, take it all, right? Supporting projects, expanding private public platforms. So question mark. But yes, we do. So this makes us unique, I think, because we have customers leveraging OpenStack privately and then additional public clouds for production rollout. Or even we even have the flip side of that, too. We have customers using AWS for development and then using us for production. So they see us as an equal, which I think is awesome, and allows us to invest more and get bigger and offer more in the future, right? So lean operations team, one operator to too many instances, but a lot. A lot of people like those kind of stats.  But on average, we're easily pushing 100 plus instances created in deleted daily, fully CI CD, customer base. Over-subscribed compute ratio, so we vary. This is just one specific area, again, but we allow up to a four to one, and we're going to probably push this and maybe substantially higher, right? And we've been able to do this further, having some really cool new tools from the App Formix, but it's something you have to be very, very careful about, but we do push that envelope. So then our Densys Cloud supports NFV, network function virtualization, if you don't know. So firewalls and other stuff I can't get into, but this environment has 50 plus hosts, on only 50 hosts, 2,500 instances, and up to 80 instances per host. And this is one environment we're going to probably stack, even maybe two access them out. So to us, that's really, really cool, because you don't see that many people doing these kind of numbers on a given host, right, and being successful. And our network underlay is vendor agnostic. We're currently pretty much a major brand, major brand vendor right now, but there's nothing we do with that vendor that we could not do with any other vendor. So we really look forward to exploring that in the near future. Again, no proprietary features, right? So very conscious choice. Operating Lean team. So we think we have some key ideas here, if you will, that we have been providing that really enable us to be Lean and still have a happy customer. So availability. Because we have such a wide swath of customers from enterprise to very cloudy apps, you know, cloudy apps are more resilient by nature, but because we have just a huge swath, we focus on availability. We don't care if you don't need your app to be available all the time. If you can lose a node and be okay, we have customers that can't. So we just cover the whole swath. We try to make sure things are highly available, enable you to do things like boot from volume, be able to react to a hypervisor going offline, you know, have an F5 in front. So if you need to load balance, we can offer those kind of things. Be visible. So this is something we've personally been pushing really heavily on too. Be very visible to our customers, especially in a private cloud space. If you go to Amazon, you have no idea what actual host you're living on, what their real numbers of capacity are under the covers. Generally, you don't have to care. But in a private cloud, we are budget constrained, sometimes by the same manager that you have as a customer, right? So we try to be very, very visible about who's using what. Is there really capacity left? If there isn't, is your neighbor using too much? You know, can you be friendly and just go talk to them? Can they tear down their test, their playground, right? Because I need this for something that's actually making money. It's just the reality of business, right? So we can only build so fast. We can only invest so fast. So we think it's been really key to be very visible and transparent to our customers across the board. Cost management. Again, visibility helps cost management. We try to tell people not to be wasteful. We empower them again with data, real data. Not just, you know, here's your flavor size. And then that's it. That's chunk of data. Here's your flavor size. We can actually tell them all their instances in use and how much resources of that given flavor they're actually, actually using. So hey, if you need to add more capacity or use more stuff within your project and you don't have any more room, go look at this report. Go figure out what actually you need to use. Go redeploy with a smaller flavor or a bigger flavor sometimes, right? And be very cost-conscious there, which leads me into capacity planning. So it's been very, very critical and key, again, be transparent and provide capacity, very clear, easy to understand capacity planning. And I'll get to that later. I'll show you some visual on this. But we can literally show you all of our offerings of flavors. We can tell you at any given time how many we can build, how many more we can support. So if you have a smaller or tiny lot of people use like tiny flavor, we'll be able to tell you, hey, we can support 80 more of those right now. Or if we're out, it's zero. But we're transparent about that data again. And self-service all things. So continue to focus on self-servicing everything. We're not perfect. We still require some hand-holding onboarding tenants, unfortunately, but really aiming to be self-service all the way in. So if you want a project, we shouldn't have to be in that workflow at all, right? They should just be able to go to a forum, sync their user. Boom, you have a project, right? Should be that simple. So a little bit further detail on this. So availability is key. So understanding your customers. So like I mentioned, we have a wide, I think we're unique, but we have a wide breadth of customers from enterprise to very agile apps, if you will, real small, tiny little things because they're very cloud aware. But it's really, really key to understand your customer. Are they going to be okay with an LVM target sender back in? If that falls offline, did that just tear apart their glare cluster? That's affecting billing transactions? You need to know these little things. We really want to just provide infrastructure and not necessarily care. But in turn, you have to actually understand what your customer is using your platform for to be able to deliver the right service. Operator must know if resource is available. So again, I'll hit on this a lot, right? You need to know the typical 500 no-host available, right? Is that a real message or is it something else? So if you know it and you're clear and transparent on the amount of capacity you have, then if you get a 500 no-host found problem, for instance, which is very, very common in our environment, you know immediately, okay, this is probably actually a rabbit problem versus a capacity problem. So it helps you actual real data help get you down the right path quickly. And real-time data plus history for comparison is baseline. So this again for, so now that we have some real production customers, if you will, it's very important again, give them real data. Are their apps performing the same today as they were a week ago? Are they getting hammering harder, less, and then all the metrics, right? Just simple data, disk, network, and then are they consuming more of that host, too much of that host? And then be able to empower them to actually do something about it, you know, that's a whole other step, too. So visibility and hypervisor instances, you see, I hammer this a lot. So where does the problem exist? Hypervisor instance. So you know, in Amazon, you don't know. In private cloud, again, we like to show you exactly empower you to be self-service and be able to tell, is that host overloaded? You know, there may be 30 instances on the hypervisor you landed on, right? Do you care? Generally not. Am I slow? You feel like you're slow? We can tell you, just go the tool, and you can show exactly that host is overloaded, or is my instance flavor overloaded, right? Do I just need to resize and go bigger? Do I need to resize and go smaller? Or do I need to actually migrate my workload to another hypervisor completely? Of course, we want to, again, automate that kind of thing, so customers don't have to worry or provide some sort of DRS equivalent to VMware. People are familiar with that, and we'll get there. But for now, at least, we give them the data, give them the tools, so they can do something about it. And again, yeah, just with instance, generating IOPS load, and I'll show a very cool visual on this later, too, but you can literally tell what noisy neighbor, exactly what instance is the noisy neighbor. So pros and cons of that, right? Some, you know, it caused some internal politics, but it works. So manage infrastructure costs. So private cloud differs from pay use model of public cloud, of course. I mean, this is a really obvious statement, and I kind of had on this earlier, but you're very, very budget constrained, generally, in private cloud. So you have to be very cost-conscious and be very transparent, right? Make sure they're not wasteful. If they're wasteful, then be empowered and have the data to be able to make deterministic opportunities, if you will, with, say, no oversubscription, right? If you want to go oversubscribe, RAM, disk, CPU, you better make sure as an operator that you can actually do that safely. Organize, organization must collaborate, utilize resources efficiently, right? So again, visibility, visibility, visibility. Reclaim underutilized resources. So this was a very, very big challenge with internal tooling and open source tooling. You know, we were trying to use collect D, Grafana, try to graph instances, but at a certain scale, you know, we're over 1,000 instances on one of the smallest clouds. You can't graph every individual instance and be able to tell on a chart who's actually using their stuff or not. So I don't hammer too much on it, but I mean, the app-forming supporting has been critical in us for that. We can do a report for any given timeframe and empower users to generate those on their own.  Who the heck is making all these things? Are they actually using them, right? Generate that report, be able to tell if there's actually any CPU, RAM, or disk usage on any of them, or all of them, and be able to do something about it. So this last one, does a user require a specific flavor size for an instance? So I'll touch on this later too real soon, but if you have to make a specific flavor size, if anyone here has actually done flavor size management or created flavors, please, from my experience, make the legas fit. Don't just make what they want. Don't make a 768 megabyte RAM of flavor with a 15 gig disk, right? Try to make sure that all the flavors can fit within each other, because it's real, real critical from my perspective, and even Brian's experience, right, that that's how you can generate these cool dashboards of visibility, reliable capacity metrics, and be able to scale and use your hardware. So capacity planning, what is the utilization of infrastructure? Where is it coming from? Memory disk, CPU. Again, these are just key points, things that I think are good questions, right, things you should think about. What is the utilization trend over time? You know, capacity information is a great point in time that's real, real critical over time, right? That weak view is going to look way different than in our view, right? And you need to know, are you running out of capacity just today? Is this a normal ebb and flow? Does the business come in Monday, spin up, use all your capacity, and then they're cool anyways, and they kind of just trail off and rinse and repeat, right? Do you really need to invest more hardware, or can you work within the footprint you have? When will infrastructure resources be exhausted, right? So this has been real interesting to track over time too, right? I really try to use a good 30-day view and this kind of stuff. And this, again, is really interesting. It gives you visibility to patterns, ups and downs. Do you really need to add on? So self-service. So some things that we've done for self-service for users. Recently, we've partnered with App Formix to provide monitoring as a service for projects and instances. So complete, touchless, out-of-box experience. Every new project we create and users we onboard, they are onboarded into this application, enables them to create their own alarms and event triggers without us touching anything additional. And your real-time monitoring of that data, and I'll show a couple screenshots later. We expose underlying infrastructure data points. We're very clear. We show raw collect D metrics from our hypervisors, your basic CPU RAM disk. And we even allow, we've made some policy adjustments to even show users where they actually live, so they can tell from their instance view what hypervisor they actually live on. We enable users to answer questions about their own resource utilization via the platform above. And then users can understand issues around hypervisor and storage health. So we not only have the data there, but we also educate them to help them understand what the data means. If the hypervisor is overloaded, it's different than if your instance is overloaded. I mean, these are kind of basic things, but a lot of people don't understand that. They say, I'm 100% CPU. Well, your instance is 100% CPU. There's plenty of room in the hypervisor. If you just resize to a larger one and you get more cores, you'll be totally fine. Infrastructure can handle it. So again, transparency is key to empower users into scale. And then we have implemented a standardized network design. We'll touch on that a little bit later too. That's also helped a lot. So a couple of challenges here we'll cover. So right sizing instances. So we started with custom flavors. It just proved to be very unscalable. Every kind of new project, every new tenant request that came in, if you will, they all wanted their custom everything. They were coming from VMware. They're coming from AWS. They had expectations. They wanted to literally basically copy paste what they had in the old environment to the new environment. And we took that as is and we were trying to make people happy. So what happened was over time, we ran out of capacity really, really quick. And we're like, hmm, what happened? So basically what happened here is we had an inefficient workload placement. So we had overallocation. CPU generally is mostly RAM and even huge disk sizes.  Well, you can only fit four of those on hypervisor. So what do you run out of at first, your disk? Even though it's all thin provisioned, you're technically out. And then at the time, we had no data to say, hey, we actually overprovisioned or not because they were telling us they need that space. So we had to trust them. So to get away from that, we standardized on flavor sizes. So we make all the Lagos fit. We avoid resource fragmentation. So the largest flavor all the way down the smallest. All the small ones fit into the largest. That's how basically the model I have. So for instance, I don't know how the exact math here, but our smallest one, I believe we can fit like 32 of our smallest flavor into one of our largest, for instance. So it fits together really well, which enables us to capacity plan really well. And then users need data to choose the right size. So to that. So here's our current capacity. This is something our customers can see. It's completely self-service. So this is an example of one of our clouds and the resources available capacity and our use capacity. So this is one of our brand new ones. And you can tell it's not very used yet. But you can see very clearly up on the upper right, how much capacity we can provide at this given moment when I took this screenshot. So this has been very, very, very helpful for our customers. And even us as operators. So again, if you get the good old Nova 500, no host found, looks like there's plenty of capacity to me. So it must mean there's actually a real problem in you to go look into. So here's some deeper information. So this is a reporting mechanism we allow our customers to self-service. And you can see within this given project, there's quite a few instances here, maybe the majority. So you can see for instance, the host CPU column, instance column. So instance CPU, do you see anything that's actually really, really used? Probably not. So what does that tell me? It tells me that this customer can probably resize their flavors down dramatically, right? And get a lot more out of their current existing project. So we're not forcing our customers to do this, but we're empowering them at least to get the data, be cost-conscious, be aware of what they're doing, and how they're actually using their environment. Challenge. So hypervisor health. So we've had issues in the past with virtual memory thrashing, due to many different reasons. But is the instance memory oversubscription good or bad? Is it disk blocking? Are we just exacerbating some local IOPS problem? CPU contention, disk IO, latency issues. So tenant missing software raid over, misusing, sorry, software raid over Cinder LVM. We've had experiences with customers trying to carry forward their old pets and doing software raid over LVM targets, which were actually making the latency issues they were trying to address worse. So this is another example of another self-service view they have. So this is showing, as a tenant user, not an admin, they can come in and look at a host, and there's a host name up her left. You can see this box has 30 instances, right? And then they can see, is this host that I live on actually healthy? So then they can just self-service all that data from CPU usage, and you can flip a lot of these things around. CPU usage, host, disk response time for the fan roll local, memory usage, and then vCPUs allocated. So they may look at this day and go, well, I don't like how overallocated this box is, because in the future I know my apps are going to need to leverage a lot more of my CPU power in my instances so they can use this data then figure out how to migrate to somewhere else or work with us to get less oversubscribed. Do you want to talk about this one? Okay. So last one I have for today is this challenge of rightsizing a network. So we initially allowed each project to request basically anything they wanted from a network perspective, mainly around the subnetting, and we have a lot under the covers connectivity things too, but this talk is mostly subnetting, so size or design, and we just had too many stuff, like everyone was unique, everyone has a different idea what the network showed or shouldn't look like. So we took that and we standardized on L2L3 project design, including it was basically a slash 26 subnet with certain amount of instances, certain amount of disk, and all this standardized quota across the board actually. It's a go, we standardized IP project allocations, some people didn't like it, most people did, and we architected the whole underlay to simplify the design to provide better tenant isolation. So this results in better end user experience, mainly around project onboarding, so a lot of this was just to make people, not make people, but enable people to use the platform quickly and easily, and our old experience took them forever to get onboard. I mean we were talking two or three weeks of just initial back and forth before we even created the project, now we can turn a project around, or project request around in a day really easily, a lot of this stuff is already pre-allocated. So that's all the information I have for today. Any questions? Business model for VISA or everything? Why do we need OpenStack? Is that the question basically? So the company as a whole is basically porting over, transitioning over to using OpenStack projects for all applications. So that's what I think makes this unique. Everything from NFV, like you mentioned, I can't get into too specific stuff right now, but from NFV stuff all the way up to, I want to say, exchange-based type applications, so corporate-facing, database-facing, billing, revenue, all of the above. So we're going to do that by multi-site, we're all single site right now, being completely geo-redundant, multi-site, true private-cloud operator, and then there will be places where public-cloud makes sense too. Yes, a lot. Again, it varies wildly, yes, but a lot of it is because they are dev and test, and then they may prod somewhere else, if you will. So a lot of it is very bursty, and then they just sit there idle. As you can see, that report was very, very idle right across the board. That allows us to oversubscribe certain areas like CPU real, real heavily. I mean, 4-1 is actually pretty mild. We can probably triple that quite easily to be quite frank, and we'll probably get there. A lot of the reason too has been historically, they actually were not empowered with any data, so they were provided some, say, full bare metal box, and they were using that as a reference to come into OpenStack, which creates a false economy, but they had nothing else to leverage they thought they needed 16 CPUs, for instance, right? So we go, well, it's not going to work, try 8, and then they go 8 and they're barely using a tenth of that power, right? But they had no idea until now, which is sad but true. So now that we provide the platform and the spin key, that monitoring and service built in, they can get that visibility and start actually designing better apps, better resource utilization, see if they actually need to scale up or scale out, kind of things. So, hope that helps. Yeah. Hi. I have two questions. First question is, you showed hypervisor monitoring, and then you mentioned about underlay. Do you do underlay monitoring as well? Not with our current App Formics tooling. It's on our roadmap starting next week, actually. So, if you will.  Let me ask for clarity. So you're talking about underlay, the OpenStack control plan underlay, or the networking underlay? Networking underlay. Yeah, we've been very lucky. We've had over a year of solid uptime with our networking underlay and have had no real hard problems. It's a lot to do with, because we still do everything probably by hand, unfortunately. It's all VLAN-based, because it's Linux bridge-based, but it's been really, really stable. But we do need visibility, and we need some kind of App Formics-level view of our real-time data streams to see when, as these applications actually start to ramp up, when you get more prod applications. Yeah, we need to keep track, make sure we're not saturating ports. Are we starting to get drop packets somewhere? We lack that visibility, which is just not okay. My second question is, what about your orchestration? What tool did you use? How did you... So, for those that don't know, Rackspace leverages and we leverage the OpenStack Ansible Project. So that's our orchestration engine and how we deploy and manage OpenStack today. So our environments are a minimum of three control nodes, and then for those that don't know, the control plane lives within LXC containers running all on top of Ubuntu. So it is a network, it's more like your own network, right? To not host it on Rackspace is probably... Yeah, we are completely private, isolated in our own data center. Okay, thank you. Hi, so I've got a network latency question. You've got an application that probably more, certainly more so than most OpenStack users. You've got a lot of latency in your network just by the laws of physics. So my question is, I'm curious if there are any unique architectural elements that you have to take into account as you're deploying OpenStack and running it, well, I guess that's more about deployment, to take into account and allow for the latency so that the customer experience is preserved. We don't face any current latency problems. I'm not referring to... We don't have any current challenges around latency, any hard latency challenges yet. We're referring to the satellite stuff. There's nothing we've ran across yet in OpenStack that cares about that kind of data stream. Yeah, we take care of a lot... Before it even gets to us, it's taken care of mostly in the hardware. So it's a good thing. So we're kind of insulated from that, thankfully. But I envision in the future something will happen, but I'm not sure what yet. So again, we are looking at getting away from Linux Bridge potentially and actually going to an SDN solution to hopefully get in front of that problem, too. So, yep. Anything else? Cool? Well, thank you for your time, everyone.


DevCon Decisions by Clay Mackle, episode 14, Caves. If it's too hot outside, a good place to cool off is in a cave. Three local caves include Natural Bridge Caverns, one of the largest in Texas, and includes other activities like mining, sublinings, and mazes. I remember the cave without a name, finally, because it's further off the beaten path with fewer tourists. It always felt more like a personal tour. The third is Cascade Caverns, which first opened in 1932 and contains a 100-foot waterfall in the cathedral room. It is also the home to the rare Cascade Cavern Salamander.


Welcome to Monet Café, Artistic Friends. This is artist Susan Jenkins and I'm excited about this art tutorial. You're going to learn so much today. I'm calling it Tiny Treasures. I'm painting these little tiny gems. They're all called art trading cards. I'm going to do six of them. Now, I will have an extended version of this video where I go into more instruction. You get a little bit more if you're one of my patrons on my Patreon page. It's only $5 a month, but I give my patrons a little something extra. And if you'd like to learn more about painting small or artist trading cards, I do have a few other videos on my channel. I'm going to try to organize them in a playlist, probably called small paintings. And a very quick thank you to my patrons. Because of my patrons and their support on my Patreon page, I was able to purchase the iPhone 11 Pro Max, which is an amazing camera. The video quality and the ease of me being able to produce my videos is going to be so much better. So everyone should thank my patrons because it's making Monet Cafe better in many ways. But now the video quality is going to be awesome. So let's do this video. I am starting out using these artist trading card sized pastel surfaces. I'm also going to be sharing with you how I'm getting my reference photos. So here we go. Now, what is an artist trading card? They are basically small surfaces for painting that are 2.5 inches by 3.5 inches. Of course, you can use them vertically or horizontally. They come in different colors. These particular ones that I'm using are by Color Fix. It's a company, Art Spectrum's the company, and the paper or the surface is Color Fix. I didn't realize Art Spectrum was in Australia. How neat is that? I'm going to provide a link to where you can get these. I had a hard time finding these actually. I've had these for a while, but I'm going to put a link in the about section. Now keep in mind, you don't have to use particular artist trading cards from a company. You can make your own. These are some that I made with Sennelier La Carte pastel card. Well, except for that one. I'm not sure what that one is. I have another video on painting small where I describe how the whole history of artist trading cards came about. They're officially called A-C-E-O. That stands for Art Cards, Editions, and Originals.  I actually use a different company, but I'll be showing at the end of the video how to put your tiny works of art, your tiny treasures into these, and some other goodies as well. Now here's a really fun part about this painting project that I did.  I call it of reference photos. It's images I've printed out over the years, and I just I have a bigger one too, but I just thought let's just paint whatever we pull out of the grab bag. So I literally take images and randomly pull them out and just paint them. What does this do? It causes you to be spontaneous, and it also helps for you to not have to spend so much time searching for a photo. And sometimes we pick our personal preferences when we should probably paint some things that are a little out of our comfort zone. So that's why this grab bag reference photo process is going to be neat and I highly encourage it. Now I hope you enjoy while I create these six tiny paintings. Here on the Monet Cafe channel you will see all six paintings created, sped up a little bit to music. And this is the particular content that my patrons will receive. They've already received the extended version, where I go into actual painting instruction and more of an in-depth tutorial sharing more about the creation process and some art instruction. All right guys, enjoy.  There is more information, not just these sped up paintings, towards the end of the video. So keep watching. Little mini clear bags I used for the artist trading card sizes.  Again I used a company before called Crystal Clear. Now I use clearbags.com. They're great. They're less expensive. It takes a little finesse getting these into the bag. But once you do they're great. Now I wanted to show you they make the little frame cards also. I believe that one was from Strathmore that you can use to put your little artist trading cards in a little framed card to send to someone, even teeny weenie little envelopes. I don't know if you would mail it or just give it to them as a gift like that. And this is the company clearbags.com. You have to kind of search around to find the, what's it called, flap seal bags. Those are the ones that I use. But I'll provide a link for those in the video section or in the description section. Now here I'm just showing how, when I have a bigger painting, I normally put in some pastel painting and framing tips in with the painting along with my business card. And this just makes it nice, clean and very informative. Now that piece of foam board was too big for that. But I also put in a piece of foam board to keep the painting sturdy. And I didn't do it with these smaller paintings because it was kind of little. Now here's an example. This is an older painting of mine. I didn't have the framing tips and my business card in it. But here you can see how I put the foam board in to keep the painting sturdy. This makes it nice if you're doing an art show, sending it. It's easy for people to handle without messing up the pastel. And it's pretty easy to bring them in and out of the plastic bag. This is an example of another product. If you recall, I just did a little video where I painted some snowmen and I said there are some little frame card things you can insert your painting into. And this is them. They're also on ClearBags.com. You basically put your painting in one of the little ClearBags, slip it into the pre-made little framed card, and ship it. I might put some foam core in with this. If you're going to mail it to be safe, I think it would probably fit. These are my cards that I love by Moo.com. The neat thing about these cards is that I got the rounded corners, which is cool. You can get multiple images of your paintings in one order. You can choose up to, I think it's 50 different paintings. So you have a combination of paintings. A lot of times it's fun giving your cards away. People are like, oh, can I pick which one I want? It's kind of neat. Okay, I'm really going to speed this up and put all of these into the little plastic bags.  I got these little stands from, you can get them from like Michaels or Joanne. Sometimes I'll stain them like that one that you see there. But these are fun. They're great to give as gifts. They're a great way to practice. If you mess up, you can just throw it away. And there is so much to be learned from painting small. So if you are a patron of mine, you will be sharing your little tiny works in our Patreon group on Facebook. There's an exclusive group just for my patrons on Facebook. So wasn't that fun? As always, I have a great time here in Monet Cafe with you guys. If you have not subscribed, I encourage you to also find me on all these places you see here. All right guys, happy painting!


OK, can everyone hear me OK? Great. So hi, I'm Anton, Anton McConville. I'm a developer advocate with IBM BlueMix, which means I spend most of my time developing applications that showcase our product, or working with clients to help onboard them onto it. Underneath the covers, I'm a sort of experienced developer. I've got apps in the iTunes store. I've had a career that's spanned UX and development, and I lead a tech team at IBM. So we're going to get busy with some code during this talk. And so the talk is going to be in sort of four little parts. We've got half an hour, and we could spend a good two hours working on Swift and learning it properly. So we're just going to be skimming the surface. But I'm just going to talk about why Swift makes sense with Cloud Foundry and on the cloud, show the basic structure of working with a Swift project. We're going to do some seed of the pants coding and for 10 or 15 minutes, just working through a simple example and hopefully deploying that to BlueMix. And then we're going to look at some future steps. So just to sort of set the scene a little bit, Swift is a pretty young language, a quick show of hands who's coded with Swift in the crowd. Just a few of you. And how many of you are mobile developers in general? OK. So it was born in 2010. It really just became public in June 2014. So it's super young, and it's evolving really rapidly. It's pretty immature. The first sort of public release of the language came in September 2014. And then the second release came in September 2015, and they're working at the moment on release three. And then the big announcement at the end of last year was Open Swift, where we had a version of Swift that runs on Linux. And that's the big enabler for getting it on the cloud, so it can run on things like Cloud Foundry. So caveat there, it's data mature. It's December 2015 when it started to go open. But the other sort of the flip side of that is now is the time to start paying attention to it because there's so much momentum behind it. IBM have a team of open source developers contributing to the app or the big team. So let's look at sort of step back a little bit and look at why Swift makes sense. Hopefully many of you are familiar with this model. This is like day one computer science. Computers only do three things, input, process, and output. And the lines used to be pretty clear where those things happened. 2016, they still only do those three things, input, process, and output. But what's really dramatically changed is the number of wires that you can input information. So multimedia, social media, wearable devices, internet of things from factories, that sort of stuff. Location awareness, the number of targets that we can output has really radically changed as well. So we're at the sort of tipping point where more applications are being appreciated on mobile devices than they are on the desktop. But we're also targeting things like haptic communication, touch, navigation, awareness, and some of the same things that are input. So wearable devices, speech, that sort of stuff. The only way to make sense of this whole sort of environment is to process it in the cloud because of the volume of data that's available and the variety of sources and targets for that data to connect it all. Obviously we need a cloud and I'm preaching to the choir here because you're at a cloud conference. We also can process the information differently as well. IBM has this thing called Watson. Lots of the other cloud companies have got artificially intelligent software. So we no longer need to think of data as just numbers. We can look at it through natural language as well. So that's the sort of environment we're working in. And Swift really plays well in this environment because it's been designed to run on mobile devices to interact with social media, to interact with haptics, to interact with multimedia, and all of the things in the picture. It's kind of a really convenient language for doing a lot of this work. There's no easier way of capturing your voice data than on a mobile device, right? Because you've got a microphone right there. It's much harder to do that through the web. So this is from Apple's website, where they say Swift is a modern programming language that is safe, fast, and interactive, and it's their baby, so they're very unlikely to say it's unsafe, slow, and a bugger to work with. But it is, I mean, certainly compared with Objective-C, it's much more fun to work with. The syntax is more familiar to things like Python or Go or even JavaScript. It takes much more influence from that, but it's built on the solid foundations of Objective-C as well and the rich history that it has and it can offer.  So what are the other advantages to Swift? Well, the clear, obvious advantages, it works full stack. So many of us probably come from the enterprise where we're used to using Java or .NET on the server side, and then we have JavaScript, HTML on the client side. The days of writing Java on the client side are, I think, falling behind us, at least, and then working with mobile technology as well. So you get a mismatch of languages. And teams were certainly in my experience from the enterprise. Teams have been split up into front end and server teams. But then you get people like me. I've had experience in both sides. And the context switch when you're working on a mobile app and then switching back to a different language on the server, it's taxing and time consuming, and there's formatting issues to go through. It's just not as convenient. One of the most beautiful things for me about Cloud Foundry was working with Node and being able to choose where to run the JavaScript code, whether that be on the server or the client, and actually moving it back and forward and experimenting and not having that context switch and being able to deliver JSON objects really simply and easily from the server to the client. And it's almost seamless. You start to lose the boundaries a bit more. So the idea of using Swift full stack, coding on the server, coding on a Raspberry Pi, whatever. And then building your front end piece with Swift as well, it's really attractive. It sort of opens up the opportunities a bit more. It's compiled. So again, with things like Node, which isn't compiled, you just load it up to the server and let it loose. So it's more prone to failing, where you don't have that type checking, that stronger type checking at compile time. So compiling gives you that advantage as well of a more of a safety check ahead of time. And getting back to those sort of Java developers on the server side, what I've noticed from them is they're slower to adopt JavaScript and Node because it isn't type checked. It's less of a familiar way of working for them. And future friendly. So again, looking at that picture that I showed a few minutes ago, thinking of the future. You've got wearable devices from Apple. You've got their laptops, their phones. God knows their car. They're all gonna be running with Swift. So people have already written great libraries, even in that short time frame from the last couple of years for working with Swift on the phone. It's booming sort of area. It's a growing, it's a rapidly growing language. So it's kind of future friendly. It's very modern. So that's sort of the background on why Swift makes sense in the cloud. So working with Swift, what does it take to work with it? So if you wanna get started, the place to go is Swift.org. So you can just take a quick look at that. It's got details about Swift. You can download the latest releases. If you're a Linux developer, you can get a Linux version of it. You can get the latest version of Xcode to work with it on your Mac from the command line as well. It's got getting started walkthrough, which is really good. This is how I learned. I'm not part of any Swift development team. I'm a consumer. So learning hopefully like most of you. And then what I wanted to do today was be kind of authentic about it and show you the reality of where it's at. So this is your starting point. Swift.org is where you go to get set up. And just mentioning that compatibility. So it's compatible on Linux, compatible on OSX obviously. So the fun thing is it's gonna be running on Raspberry Pi soon enough. It's early days still on Linux. So a lot of the foundational libraries that come with Swift on OSX are currently being ported to Linux. So that's a very bare minimum at the moment. But like I'm saying, now's the time to start paying attention. Now's the time to really, if you're interested at all in Swift and the future of programming with it, now's the time to really get engaged with it because I promise you by the end of the year you're gonna see a lot more vibrancy even on the Linux platform. It's moving so quickly. So one of the things I introduced with open Swift was package manager. And like many other programming languages, like Node for instance, it's your way of organizing things into modules. It's your way of relating dependencies to the code. So this is what makes it possible to take Swift program and deploy it to the cloud. You've got an organized way of packaging it. So just getting into that, a package consists of a Swift source file and the manifest file. The main manifest file is called package.swift. We also use manifest.yaml when we're deploying to the cloud foundry. Hopefully we'll see that in a second. And then it has one or more targets where you specify the product. So this is what the package file looks like. So it's a Swift file itself. You're importing the package description. And then you just give it a name and list the dependencies on there and you can give it a GitHub or a Git dependency and it'll take care of downloading that for you as part of the installation. The structure of it looks a little like this. So you have a project folder. Inside there you have another folder called sources where you keep your Swift files and your package.swift file. So it's not rocket science there for the structure of it. And then for building, Swift build. So you go into your folder and type Swift build and it will create a .build folder within which there's a debug folder and these artifacts. And to run it, you type .build slash debug server. So we're gonna just quickly make a really quick hello world program. You guys let me know if you can see this shell. Can you read it? No? Okay. Let me see what I can do. Let me know when you can read it because I won't be able to read it. Okay. Okay, so I'm just gonna make a quick folder called summit and CD into it. I'm just gonna touch package file just to create it. It's gonna be an empty one for a second and make sources folder. Gonna CD into the sources folder and then I'm not gonna use an editor just to prove to you it's not any sort of magic that's happening with Xcode.  So all we're gonna do here is just do a hello world. Okay, so we should be able to go back up again. This is just reflecting what I just showed you that the packaging and we can do Swift build and we've linked it. So now we can type build, debug. What do we call this folder, summit?  So that's your basic Swift program. So we're gonna try and do something a little bit more complicated in the second and then deploy that. So just getting back to the slides for just a second. So Copa America, any soccer fans in the crowd? Anyone looking forward to this? One person, so there are two of us in here. Copa America is a big soccer tournament from South America. It's 100 years old and for the first time ever it's being played in the United States this year and I think next week. I'm a big soccer fan. You can hear from my accent. Although I live in Canada. I'm not originally from North America and I was really just fascinated by where all of the players came from. I was interested in plotting them on a map. So I've been building up this set of data and I thought it might be a fun set of data to work with to show you a quick app. So what we're gonna do is we're gonna plot the Argentina team on a map view on the iPhone and we're gonna serve that from Swift on Bluemix. All being well. I was just to cheat a little bit. So this is what we're gonna build hopefully. Just to cheat a little bit, I'm gonna take a pre-made Hello World app that runs on Bluemix already. So this is your starting point. I keep reinforcing that it's very, very early days with Swift. So serving Swift from Bluemix, from Cloud Foundry on Bluemix requires just a socket connection at the moment. That's what this Hello World app is built using. So I'm just gonna go to GitHub. All of this stuff is available on GitHub by the way and I'll put all of my workshop on GitHub and if you follow me on Twitter, I'll tweet out or just look me up on Twitter, I'll tweet out where the coordinates of it are. So again, we'll just create a folder or we'll just clone it. So we'll start off with the Hello World app and in here, it's gonna look pretty familiar to what I've been talking about already. We've got a package file, we've got a manifest, we've got our sources folder in there. Let's take a look in the sources folder at the demand program. And so this has got a bit more Swift going on in it. So you can see it's importing. This bit at the beginning is either figuring out if it's on Darwin on OSX or if it's on Linux. So it's grabbing different versions of the foundation depending on what's there. It's creating just a socket on there and then it's looking at the environment variables and my system. So please don't be taking any photographs when I wanna start running it. But you can see this is building up some hits to him out to show that. It's got an environment variables, this line here. So line 46, so it's got an environment variables and then building up a little hits to him out to show it. And we've got a little socket server down here at the bottom, which thankfully I'm not writing from scratch today. So let's go back up and we'll build up. So Swift build again. And you can see in here, it's already showing deprecations. This is one of the things that you'll notice if you're working with Swift, how quickly it changes. This thing is deprecate, like lightning. And it's a nuisance if you're programming an iPhone app at times but it's also healthy and they're evolving the language pretty well. But it's one of those things you gotta be ready for working with it because it's so changeable. So if we run this, you can see it's starting. It says server is listening on port, 9080. So a little hard to see, can I? So you can see here it's just going through the environment variables in my system and printing them out on screen. So we built a little Swift app and this will deploy to Bluemix or to whatever Clive foundry host that you're using as long as it supports the Swift build pack. So what we're gonna do here is we're just gonna take a JSON file. So I've got one called copa, I think copa JSON and put it right there. And then we're gonna edit the men file.  All we're gonna do is serve this JSON data from the Swift backend. So I'm just gonna get rid of this bit where it puts together the environment variables. So let's see, maybe, okay. And this time round, rather than do that, we're gonna just read from the file system. So I'm just taking, just getting the path to the file system there to that file. And then reading that into an NS data object. So that's a native object for iOS, usually. And then for the response body, what I'm gonna do is just encode that data. So in the real world, you'd be getting your data from some other source. A lot of this data I actually mined script from Wikipedia. So ideally you'd use Swift for doing that kind of thing. There are some good libraries already for doing things like screen scraping with Swift. So it's kind of risky for me doing this here just right in the raw file. But I wanted to give you that sort of simplistic authenticity of doing it in just in a VI session. So that should be enough to get us our string and encode it. The other thing we're gonna do here is the content type is now just gonna be application and JSON. And so fingers crossed that should build. Oh, okay. So I've got an error saying it should be var instead of let for response body. Okay. Do I have, I must have two of them. Yeah, here we go. Phew, it built. Okay, so now if I try and run that, so when I refresh the page this time, we've got our JSON data showing up there. These are the Argentina footballers that we wanna see. We've got latitude and longitude in there. So that's pretty cool. What would be even cooler if we got that onto the cloud? So what I'm gonna do is for the sake of speed is take one that I take a manifest file that I built earlier. And it's, we've called it Swift CF Summit here. So if I just quickly go to Bluemix, I did deploy this earlier and then deleted it. So we've got the spinning wheel of death here on Bluemix, but it should be fine. It's just, I think I closed my laptop while I was still doing it. So there we go. It's not there. So if I do a CF push, I've already logged in and everything so it should find my endpoint. It's using the manifest file there. One of the things in the manifest file is that it's got a Swift build pack on there. So as it's starting to upload, we'll leave it to upload and I'll get back just to, actually what I'm gonna do is pretend that it's gonna upload and go into the, into Xcode and show you this little app. See if I can find this. I keep moving these things around. Can you read this okay? Okay, good stuff. This isn't a very sophisticated program at all. It's just one view, a map view. And so we've got view controller Swift here and we've got the beach ball of death recovered. So in this view what I'm doing is I'm setting an initial location which is around Argentina centering the map on that location. And then I'm taking that data source. So I've actually programmed it already. So it's just taking Swift CF summit.mybloomix.net. So that's that JSON data that we just put together. And then parsing through, finding an Argentina item, getting the latitude and longitude and just plotting it on the map. So if we've deployed, it's still starting the app there. I'm just gonna let it do that and multitask back in here and we'll look at that in a second. So I'm just a little bit worried about running out of time. So future steps. Katera is a web framework that's been developed by the IBM team. So if you're familiar with Node, it's like Express except for Swift. And that's coming along. Keep your ear to the ground. It's gonna be some big announcements on that. And during the summer, probably around the developer conference timeframe for Apple. So that's, I'm looking forward to that coming so that I don't have to use sockets anymore. I can build proper web apps. Swift 3 is coming along. There's some new evolution steps in there. Windows is a curious one. So there's talk of Swift appearing in all kinds of platforms. This was a link that I saw. The other day I was putting the slides together. So Microsoft also working on a Swift compiler of red. Google are considering it for Android. It's another rumor. I don't know if these are malicious rumors coming from Apple or what. But I keep hearing these things. Blue Mix and Swift. From this web address, you can see how they relate to each other. I have to show you IBM's really deeply entrenched in Swift and believing in it for its future. There's a whole bunch of open Swift packages as well. Linked in there. And then this workshop is there as well. That's all of the slides. I just wanna see if we can get this app running and show you that. So we're apparently running. So if you go back to Blue Mix and I refresh here. So you can see, oh, I've got two of them somehow. Oh, one of them's gone. It's good. So if we view the app, we can see it's running in the cloud now, that same code that I just programmed. If we start up the simulator, hopefully it's starting. We should see, there we go. So it's consumed the data and it's plotting the pins on the map. So 100% Swift server and client. And that's all I've got for you. I can take questions. Thanks very much for listening. Argentina. Youself. Any other questions? Yeah, the package manager that I was showing you is works very similarly. If you go to swift.org, you can read about it more in detail there. I had to skim through it, but definitely, yeah. Yeah, I can't quite hear you for Swift.  They're being pretty diligent with this one. And trying to get it using, and trying to port as much of the native foundation stuff as possible. A lot of the other frameworks have cheated to Polyfill while the Linux equivalent is being made. So I would put my money on this one. I'm being patient and waiting to use the KaiTuro one.  I'm like a shameless consumer of these things. I'm a front-end developer and a designer and that's, but from what I've seen, I would prefer using Swift to Java for sure. It's not as verbose. It's not, you don't necessarily need as many files, you know, headers and footers and things like that. It's single file. It's lightweight. It's very script-like, so it's strong that way. It's a good language that way. It's type, it's strongly typed as well. So better, if you like strongly typed languages, better obviously than Node, but it gives you the familiarity of using like a scripting kind of tone on the server. So there are the language sort of strengths as I see them. And then the value of it is that you've got that huge ecosystem that Apple are building and all those amazing libraries and APIs that go along with it from whatever service you want. You can start to consume those easily. You've got ready-made APIs on there for using them. Yeah. Which has that definition word. Yes. I would love an answer to that question too. But I'm tolerant enough. I mean, it was sort of awkward at times programming on the client side for that. But the benefits, far right strip, the drawbacks certainly compared to programming with Objective C in the past. So it's one of those worlds, right? It's one of those things. But I've heard a lot of people compare it to go. Anything else? If he's brand new, I would say it's probably a good idea to start with Swift and start learning it. To start, and I would say probably on the client, like start building, if you've got a Mac, start building iPhone apps with it. It's fun and you get an instant gratification. You've seen this little program. It's hardly any lines of code in it. And you can run it in your phone. So it's a fun way. And then he'll be able to graduate really easily into running stuff in the server. So for the server side Swift, you need to use that sort of package management. I haven't capped up with how that works on the client side. On the client side, you typically build with Xcode, takes care of all that stuff for you and packaging it up. I imagine they're probably gonna align. I would go to Swift.org and read about the future for it. Okay, thanks again, guys. Have a safe trip home. Thanks.


More than 90% of the people that go out and dine at a restaurant, they do their research online, unlike any of the industries out there. Now if you have the capacity, if you have mastered these digital marketing tactics, then you can focus on other types of marketing tactics.


Good morning friends. I am Purva and today we will discuss the following question. In a hostel, 60% of the students read Hindi newspaper, 40% read English newspaper and 20% read both Hindi and English newspapers. A student is selected at random. If she reads Hindi newspaper, find the probability that she reads English newspaper. Now the conditional probability of an event E given the occurrence of the event F is given by probability of E given F is equal to probability of E intersection F upon probability of F and here we have probability of F is not equal to 0. So this is the key idea behind our question. Let us begin with the solution now. Now if a student reads Hindi newspaper, we have to find the probability that she reads English newspaper. So let E be the event that she reads Hindi newspaper. Then we have probability of E is equal to 60 upon 100 because we are given that 60% of the students read Hindi newspaper and this is equal to 3 upon 5. Now let F be the event that she reads English newspaper. Then we have probability of F is equal to 40 upon 100 because we are given that 40% of the students read English newspaper and this is equal to 2 upon 5. Now we are given that 20% of the students read both Hindi and English newspapers. So probability of E intersection F that is probability that she reads both newspapers is equal to 20 upon 100 and this is equal to 1 upon 5. Now in the question we have a student is selected at random. If she reads Hindi newspaper find the probability that she reads English newspaper. So we have to find probability of F provided E has happened that is we have to find probability of F given E. Now by key idea we know that the conditional probability of an event E given the occurrence of the event F is given by probability of E given F which is equal to probability of E intersection F upon probability of F. So probability of F given E is equal to probability of F intersection E upon probability of E and here probability of E is not equal to 0. This is equal to now we know that probability of F intersection E is equal to probability of E intersection F and it is equal to 1 upon 5. So we have 1 upon 5 upon probability of E which is equal to 3 upon 5 and this is equal to 1 upon 3. So we have got our answer as 1 upon 3. Hope you have understood the solution. Bye and take care.


So a little while ago, I decided I was going to switch from my beloved DWM to BSPWM mostly because I just wanted a change of scenery and it was kind of nice to try something new now I've used BSPWM several times in the past But I've never actually lived in it like actually set down and made it my daily driver customized it to everything that I needed To actually do and how did how I needed to do it? I'd never actually done that so I decided to go through and do it and I've been In that process now for probably close to two weeks Maybe a little bit over two weeks and I have some thoughts on the process So let's start off with the positive things because there are many positive things to say about BSPWM For the first thing I really enjoy the fact that it does all of its key binding configuration in Essex HKD In every single window manager. I've ever used I've used Essex HKD Despite the fact that it has a horrible name that I can't say and the reason why is because it's just easier to configure key bindings Inside something like that the syntax for that configuration file is just super easy and it's way better than the whole Xk underscore whatever that DWM does and Xmonad does and Qtile does it's just it's better and it's even better than the More simple syntax that I3 has I just enjoy it more So using Essex HKD for all the key bindings without having to deal with any Nonsense in the actual window manager configuration is very cool. I like it a lot I've also enjoyed being able to use poly bar as my bar now I know that in DWM I could have done this and eventually I will go through and do that But I haven't done that so far and because I've been able to use poly bar in BSPWM I've been able to experiment with poly bar more than I have in quite a long time. It's been Well over a year maybe even longer since I've used poly bar for any length of time The prior time was when I was using I3 as my daily driver So that has also been a very positive experience in terms of daily usage BSPWM has been just fine. I really haven't had any Significant issues there are some key bindings that I haven't changed that are stock that still kind of drive me nuts so for example if We have two terminals open here and let's just say I want to make the one on the right here Smaller I have to be focused on that one in order for the key binding to work If I'm focused on this one over here that key binding no longer works I can make this one here smaller if that one is is focused, but I cannot then go through make it bigger with the opposite key binding so Super control H Would make it smaller, but super control L does absolutely nothing It's a very odd choice for a key binding and it's kind of bothered me I haven't gone through and fixed it yet though because I don't really know how I'd want to set it up the point is is that Those two key binding super control H and L work different depending on which or what client you have focused and that's kind of like I said, it's kind of super annoying and Changing the size of clients is something that I do You know every all the time every time I restart my computer I'm resizing stuff on my workspaces to where I need to be and Having to make sure I know where I'm focused all the time instead of just having That key binding work in both Clients, you know the way you'd expect it to has been a little weird in terms of layouts and stuff like that I haven't done a lot of messing around because this one here does just fine. I never had this many windows open So if you can see them the like this, I'll take the camera away I never had this windows when this may windows open This is usually the number of windows I have open now one thing I find Interesting is that let's just say I'm focused on them the main window here Because they don't really do a like a master stack thing here It's just kind of where every you know you're focused So if I'm actually focused on the left-hand side here and I open up another terminal It actually spawns there and that's another thing that has kind of been Weird for me now you remember I've been using a dynamic tiling window manager now for well over a year I've spent the entire time just falling in love with DWM and DWM has one main Layout it has all the layouts, but for the most part nobody ever uses those things Monocle every once in a while when you want full screen, but for the most part you use master stack That's what you do and you always know in there in DWM where the next window is going to spawn I mean it does change determining on which Patches you have installed so I have like always always below or something like that. Yeah, I can't remember which patch It is but the the point is is that the clients always spawn in the exact same place on DWM in this that's not always the case So if I'm actually focused here and I hit open up another terminal It's focused there, but if I go up here and hit enter as it spawns there It's uh, it's taking some getting used to because I'm not used to Windows spawning willy-nilly wherever they seem to want to spawn and I'm there is a there is a System here. Yeah, you know that it's always going to spawn next to it And I mean I can just continue to spawn things here, and then it would this is just like in this little quadrant This is the specific BS PWM format. Oh, it's Fibonacci or whatever it's called So that has taken some getting used to now The one thing that I haven't done very much of and there's a reason for that is pre-selection pre-selection is basically BS PWM's Way of allowing you to manually select where the window is going to spawn So if we do this and I hit, you know open up another window like that That would determine that that windows is going to spawn there same here and then if I'll let's just say here and like that so that's pre-selection and It's fine, right? It's it's Okay, also, sorry for the dog. She normally doesn't bark But apparently today she's decided to bark during the video. That's all right Anyways, the point is is that I haven't used pre-selection almost at all And the reason for that is that it feels like a very weird system to me Now you can remember I came from I3 and I3 has is a manual Tyler just like BS PWM is and the way I3 does Manual tiling is that you're in horizontal mode or you're in vertical mode Like either the the windows are always going to spawn horizontally or they're gonna respond They're gonna spawn vertically and you get to change between those things, right? There's not much else to it You're not gonna change the Size of the spawn you're not gonna change where it's gonna spawn You know in terms of where the windows are It's always just going to be either vertical or horizontal and that's very simple And it's very easy for me to get my head around Pre-selection and BS PWM is not so easy for me to figure out like it's I mean it's fairly easy But getting the key bindings like there's several key bindings by default that deal with pre-selection Canceling pre-selection selecting what size the pre-selection is going to be Determining where the police pre-selection is all that stuff There's like several key bindings that you have to learn and at least so far. I just haven't learned them or So I mean I like I had to look them up every time I wanted to use them And that hasn't been a great experience just because it adds added complexity onto a task that should be really super simple It's not a horrible thing or anything It's just that it's one of those things where I haven't really found a need to do that for one thing Like I said before I only ever usually have three windows open on a workspace Hardly ever do I have four and usually that's when I'm scripting or something and it's easy enough to just make sure I know where I'm focused and in opening up another terminal that way and just knowing where that's going to be as long as I know Where it's going to spawn I don't really need control of anything else beyond that so pre-selection at least so far has been fairly useless for me and Probably that's the reason why I haven't gone through and in-depth learned of those key bindings Just because I haven't found a need to actually use that and that's honestly the the biggest thing I have taken away from My BS PWM experience so far is that pre-selection is kind of the key feature You know, it's the feature that you are expecting to use in BS PWM. That's why you would use it because otherwise it's just a Good window manager, I guess it's not anything special It doesn't and there's nothing if you took out the pre-selection bits the only thing that BS PWM stands out for is Like SXHKD. That's basically it and I don't know that that's enough and the the the thing is is that there's enough annoyances here for me specifically not always knowing where the next client is going to spawn also the Controlling the width of the clients you using that weird key binding where it sometimes works sometimes doesn't work So because of not using pre-selection and all that stuff, it's kind of just made me Miss DWM quite a lot and the reason why is because I'm so used to knowing Exactly where the client is going to spawn now If you would ask me like a year and a half ago before I switch to DWM If I would be happy to be forced to use a window manager not forced to use a window But would I be happy to use a window manager that Forges me to have windows spawned in a certain order all the time like you have no control in DWM Really where the window is going to spawn and that's your repatch things like rate So the way DWM works is that the the clients always spawn in a certain place in a certain order Whether it's at the top of the stack at the bottom of stack, whatever depending on what patches you have installed That's the way DWM works and even when you have other layouts Installed and you are using other layouts the windows still spawn in a certain order They are there's always a top of the stack and I was the bottom of the stack and Before I started using DWM. I was an I3 guy and I swore by the ability to Always control where I was going to spawn the next client like I always wanted to either be able to control With it was spawning vertically or horizontally and I love that about I3. I still like that about I3 So if you'd asked me a year ago or so Whether or not I would have been happy to use another manual Tyler I would have been said yes because I didn't I really enjoyed manual Tyler's the problem is my time with DWM has kind of spoiled me. I like the fact that I always know Exactly where the next client is going to spawn Even if I don't have control over it. I like having that knowledge, right and It turns out my experience with BSPW has kind of led me to Realize that I'm not a big manual Tyler guy anymore Like I used to be but not anymore. I prefer dynamic tiling window managers now It was an odd realization because like I said, I used to love manual Tyler's quite a lot Now it'll be interesting to see because I'm going to try I3 again with my old I3 config file and I'm going to see if this Realization holds true because it's possible that I just don't care for the way BSPWM does manual tiling if I if I go Back to I3 and realize I like that. Maybe it was just BSPWM now I know what there was one other positive thing about BSPWM that I forgot to mention at the beginning is that it allows You have as many workspaces as you want and That's awesome. Like that's so good. I have I have 20 workspaces right now ten on each monitor and That's really only two more than DWM gives you right That's just two more because you get not on each workspaces on each monitor But I like the fact that not only do I get to have those extra two because more workspaces is always better But also in BSPWM you because it uses SXHKD You can set up key bindings to go to specific workspaces no matter how many ever you work you have So I have key bindings for all all 20 workspaces and that's awesome That is something you can do on DWM, but it requires a patch that I have never been able to get to work So those are my beginning thoughts on BSPWM The question is am I going to stick with it? I think I am for a little while longer But it really wouldn't surprise me in the next week or so if I end up switching back to DWM or installing i3 or Installing Qtile or something like that going to a different way to manager It wouldn't surprise me because there are just a few little Pieces of BSPWM that just kind of bugged me now I'm gonna try in the next few days to go through and try to fix those things like if I can Change that key binding so I can change the width of the clients in the way that I expect to be able to do So they'll get rid of one of the things that bother me If I can go through and try to learn that pre-selection thing Maybe it will catch on in my brain and if it can't if I can get to the point where you know This it feels natural then BSPWM will be even better than I think it is right now I doubt that that's going to happen. I doubt that it's going to Click for me in that way, but we'll see so that is it for this video if you've used BSPWM And you really like it or you don't like it leave those comments in the comment section below I'd really love to hear from you You can also send those comments to me on Twitter at the Linuxcast You can support me a patreon at patreon.com slash the next cast before I go I would like to take a moment to thank my current patrons Today Devon Chris East Coast Web Gen 2 is fun to Patrick O primus Marcus Maglin Jack snip tool Steve a cyber guy Linux Garrett Mitchell Art Center carbon dated Sean Jeremy Odin Merrick camp Josh Lee day dog VCs rock Peter and crucible Thanks everybody for watching. I'll see you next You


My name is Rick Reynolds. I am currently the Deputy for Corporate Operations at the Spay War Systems Center in San Diego. I spent 27 years in the Navy as a helicopter pilot. On my first tour I flew and I flew combat search and rescue in Vietnam for three different cruises. How did your time in the Navy help shape the person you are today? How did my time in the Navy help shape the person I am today? I think that from the get-go my time in the Navy I learned a lot of hard skills. What I would consider hard skills things that you do like I became a helicopter pilot and I flew helicopter for the Navy for most of my 27 years. But I think it's the soft skills that you learn, the leadership skills and I think that there's a big difference between managers and leaders. Managers can pretty much manage anything. Leaders build teams around them and the teams help them be successful. The leadership skills that I think were the most important part of what I learned in my career. How to deal with people, how to build teams, how to provide support for those teams. Get them to take care of you the way you want to be taken care of and not the way if you don't take care of them they'll take care of you in a different way and you won't be happy. So I think those soft skills what I call the soft skills are the ones that are most important to us as we as we mature in our lives and we move forward into whatever career we have as we continue in the military and then after we get out of the military.


A climate agreement can reduce the risk from climate change by cutting greenhouse gas emissions, but in my opinion the capacity for that to be really significant is really quite limited. We collectively as a society should be looking at other options to reduce risk from climate change. One set of ideas that has received increasing attention is called climate engineering. What this is, it's a group of proposals to intentionally intervene and modify natural planetary systems in order to reduce risk from climate change. There's two categories and perhaps I can give an example in each to help you see what I'm talking about. One thing we might be able to do is to encourage the earth to pull out carbon dioxide, which is the most important greenhouse gas from the air. That gas stays there for a long time on its own. Perhaps we could build machines of some type that pull carbon dioxide out of the air on a large scale and store it somewhere, perhaps underground, perhaps at the bottom of the ocean. Another approach we could take is to alter the planet or parts of the planet in such a way to make it just slightly more reflective.  One way we could do this is to spray a fine mist into the upper atmosphere, higher than where airplanes fly. This would effectively make the sky just a touch hazy and like a hazy day is a little bit cooler, this could cool the planet by just enough to counterbalance this warming effect. The particular use of the second method of sunlight blocking is that it's fast. Part of the challenge of climate change is that if it turns out to be really bad then it's going to be too late to cut our emissions. The damage is already done, the carbon dioxide is already in the air and the earth is going to keep warming up. If that turns out to be the case, it might be very useful to have the knowledge of how to reflect some sunlight as something of a tool in case of emergency. Thus, a desire to research this does not imply that we should necessarily do it. It has a high value just as a capacity. And that's what some researchers are thinking about. They think it's probably about time to move beyond what's been done thus far, which is computer modeling as to how this would work and maybe work a little bit outdoors and see how these fine particles might behave in the upper atmosphere and whether they could in fact cool the planet. There's a few risks that scientists think this may have. The leading risk is that both climate change and climate engineering would affect both temperature changes and rainfall patterns. They would do so differently and these changes would be different around the world. So a big question would be what's the net effect when you put the two things together? We're going to end up with places that are still a little bit warm and still a little bit cool and maybe too wet and maybe too dry. So would it be worth it? Would the net effect be worth it? The evidence thus far is that it would. Europe has been a world leader in cutting greenhouse gas emissions. It's really embraced this as a cause that the EU is behind. And to that extent this idea of climate engineering, particularly blocking sunlight, continental Europeans in particular are a bit nervous about this. The other places that have been considering this and been doing research such as England and America have been in my opinion somewhat warmer to the idea. No one is enthusiastic about it to be clear. It's something of a sign of desperation and concern about climate change and about the limited ability and likelihood of greenhouse gas cuts to really do what needs to be done.