Welcome to Spotlight. I'm Liz Wade. And I'm Ryan Gertzmann. Spotlight uses a special English method of broadcasting. It is easier for people to understand, no matter where in the world they live. A bell rings. Pastor Lee Jong-rok hears it. He quickly stands up. He knows that the bell has a special meaning. It means something important has arrived. Jong-rok runs to a small door in his home. This door leads to a special box that Jong-rok built. The box is warm and contains blankets. Someone has opened the box from the outside and left something. Jong-rok opens the box and finds a baby girl in it. He takes the baby into his arms. He kisses the baby and prays for her. This is the beginning of a short news film called Baby Box. It tells the story of Pastor Lee Jong-rok and his work. In the film, Jong-rok reads a note left by the baby's mother. It says, I am in year 12 of school. I have made a simple mistake that I cannot manage or take care of. I know leaving my baby in this baby box is wrong. I will carry this feeling of guilt for the rest of my life. I am sorry. I am so very sorry. Today's spotlight is on Pastor Lee Jong-rok and his baby box. Around the world, parents abandon thousands of newborn babies each year. That is, they leave their babies in a public place. Sometimes other people find the babies and care for them.  Pastor Jong-rok is a Christian minister from Seoul, South Korea.  So, he built the baby box. To provide a safe place for mothers to leave babies, they cannot care for. Jong-rok's baby box idea may seem unusual, but it is not. Over the past 10 years, people have built an increasing number of baby boxes around the world. Across Europe, there are almost 100 baby boxes. There are also baby boxes in India, China, the Philippines, South Africa, Japan, Canada, and Malaysia. In Pakistan alone, there are 300. Baby boxes provide a place for mothers to leave their babies instead of abandoning them. Often, religious organizations or hospitals manage baby boxes. Many baby boxes include information for the mother, including legal information about how long a mother has to change her mind and come back for her baby. Some baby boxes encourage the mother to leave her personal information. That way, when the baby grows up, he can have a chance to know his parents. Pastor Lee Jong-rok built his baby box a few years ago. But his desire to care for abandoned babies began more than 25 years ago. It began when his son was born. Jong-rok's son was born with a disability. He had cerebral palsy, a disorder caused by damage to his brain before birth. Doctors told Jong-rok and his wife that their son would not live long. But when they looked at their son, they loved him and wanted him to live. As Jong-rok cared for his son, he began to understand that all human life is special. He began to understand that God had a plan and purpose for every life. So he made a promise to God. He promised that he would take care of life that was not wanted. At first, Jong-rok's box received a few babies every month. Jong-rok and his wife cared for many of the children. And if there were too many, he would place some of them for adoption. Other parents would legally accept the babies into their families and take care of them. But in 2012, the number of babies left in Jong-rok's baby box quickly increased. The reason was because the South Korean government changed its national adoption laws. The government wanted to prevent stolen babies from being placed for adoption. So they required parents to legally report babies that they did not want to keep. This law makes it difficult for mothers who want to place their babies for adoption without anyone knowing about it. The act of legally reporting an unwanted baby can be very shameful, especially for mothers who are not married. Many of these mothers would have placed their babies for adoption before the new law. But now they feel that safely abandoning them is their only choice. Jong-rok told the Reuters News Organization If you look at the letters that the mothers leave with their babies, they say they have nowhere to go because of the new law. Today, Jong-rok receives up to 18 babies every month. And because they do not have legal parent records, these babies cannot be adopted. The South Korean government believes that Jong-rok's baby box encourages child abandonment and makes the adoption process more difficult. They have told Jong-rok that he must close his baby box, but he has refused. He says that he will bring the babies to the government in order to keep records of the babies, but he will not stop receiving abandoned babies. He told the filmmakers If people say the baby box is illegal, then we can make it legal. There is nothing illegal about saving a baby's life. Like the South Korean government, the UN also does not agree with the idea of baby boxes. The UN Committee for the Rights of the Child has called for an end to baby boxes. They say that children have a right to know who their parents are and that baby boxes violate this right. The UN also agrees that baby boxes encourage child abandonment. But Jong-rok believes that the mothers who use his baby box feel like they have no other choice. Often, mothers leave babies in Jong-rok's baby box immediately after birth. The babies have not received medical care, and often they do not even have clothes. Jong-rok told the filmmakers These babies come from dangerous situations.  Jong-rok's promise to care for unwanted life is based on his belief that God has created all human life. In the book of Psalms, in the Christian Bible, it says, God, you are the one who put me together in my mother's body. I praise you because of the wonderful way you created me. Everything you do is amazing. Jong-rok's desire to care for human life is good, but is his baby box a solution or a problem? Does it save lives or does it encourage child abandonment? Tell us what you think. You can leave a comment on the script page for this program. The writer of this program was Jen Hawkins. The producer was Mark Drenth. The voices you heard were from the United States and the United Kingdom. All quotes were adapted and voiced by Spotlight. You can listen to this program again and read it on the Internet at www.radioenglish.net. This program is called The Baby Box. We hope you can join us again for the next Spotlight program. Goodbye.


And welcome back everybody. This is the Cube, SiliconANGLE's premier TV production where we go out to the tech events, the top tech events. It's to separate the signal from the noise. We bring on the smartest guests at the shows to really provide you with the information on the enterprise IT trends and technologies that you're interested in. My name is Jeff Kelly. I'm with Wikibon.org and we're here of course at .com 2012 which is Splunk's annual user conference. I'm joined by Jeff Frick, my colleague and co-host on the Cube from SiliconANGLE. Thank you Jeff. And we are joined by two guests this segment. We've got Lena Joshi, who's the senior director of Solutions Marketing at Splunk, a very busy woman with all the different new releases that are coming out. And a little bit title challenge, I think you have to get one of those funny Splunk titles. We've got to work on that for you. Like the super coolest gal or I don't know, we've seen some great Splunk titles here. And also we're joined by Matt Culver. He's an IT guy with Discover Communications and I'm sure he's happy that it's not shark week this week so he could actually take some time off. He's going to tell us a little bit about what really happens on the front line in his world and how Splunk has helped him out. So welcome both of you to the Cube. Thanks Jeff. Is the show going well for you so far? Absolutely. Loving it. Loving it. So what's been kind of the biggest surprise that you've seen Matt in some of the sessions that you've sat in? Well you know I mean I would say the biggest surprise wouldn't even have been in the sessions so much so it's just having all the employees around here and accessible and able to communicate with them about Splunk and ask questions and be involved. That's great. Yeah I think that the community aspect on a show like this that's still relatively new, relatively young as we've seen with all of our guests is still a lot of communication and information sharing and best practices sharing and everyone actually is talking about it. It's not just a vendor fest which is great. And Josh what about you? You've got a ton of product releases that have come out recently. Probably the biggest one with the cloud offering. Splunk Storm, yes. This is Splunk being available as a service for application developers in the cloud and we've seen a really good traction so far and we continue to get a lot of interest. The app that is catching everybody's attention here at dot-con is actually the Splunk app for VMware. It was GA a few months ago and we're showing off some really really cool stuff with the app here. Lots of interest from customers and virtualization since it's one of the biggest trends of the last decade and knowing what Splunk can do with all that virtualization data is super exciting to a lot of people. Can you talk a little bit about Splunk's overall strategy when it comes to applications and what role that plays in Splunk trying to expand and become as we heard from Gottfried Sullivan yesterday the kind of an enterprise data platform versus a point solution. So what role did the big data apps play and then maybe if you could dig into the VMware app a little bit I know we have a large number of our viewing audience as interested in virtualization and especially where it converges with big data and how that interacts. Absolutely. So one of the things that we've really brought out to the forefront this year is this notion of a connected data center and how Splunk enables it. You may have many different technologies in your data center interacting with each other and our goal is to make the data from all of those technologies available in one place. Now this is not a new idea. It's just Splunk is uniquely positioned to deliver on this idea. When you think about the problem right it's lots of different technologies providing data and a variety of formats in in you know these these different types of data that mean different things. Being able to aggregate it and index it analyze it harnesses is a big data challenge and you can't use a traditional technology to harness all that. So that's what uniquely positions Splunk. You think about the types of data the volume variety and velocity of data that's coming from all of the technologies in your data center.  Now what where the virtualization app plays is virtualization really has forced these conversations in the data center that weren't happening before right. You had the server guys on one side the storage guys on one side applications guys on one side and they didn't want to talk to each other or do anything. But now the virtualization they're forced to not only talk to each other like I need a virtual machine and I don't know where it's running and can you please tell me what's going on. But they're also forced to talk to their neighbors the people who are sharing those resources with them. And this is the reason why there is so much demand for an app for virtualization is because the data that will help you get visibility into what's happening with my virtual machine. What who's taking all the resources on a server is really hard to get at and Splunk can get at that data and visualize it in a way that's not been possible before. So Matt tell us a little bit about your role at Discovery and what you're doing and then maybe kind of let's explore the challenges you were facing around what we've been talking about around big data in your infrastructure. So I'm in the global operations center Discovery. So my primary role is operations and what we're using Splunk for is primarily operations but also we're using it for a lot of a lot of compliance data. And we've been doing that for some time and we found Splunk very effective in that role. So we've heard some stories about how Splunk customers kind of started off downloading the free application and kind of expanding from there. How did you kind of come to work with Splunk?  What's really brought you to Splunk? Well you know the neat thing about Splunk is it's really a game changer in technology. I mean prior to that the only thing that really was around was grep. And you know there are some other smaller solutions but Splunk the engine itself is really where the power comes in and the ability just to feed it that text data and get at it any way that you want to is what really makes it powerful. And then you know since they've expanded it and started building these apps on top of it that just makes it even more so useful for us. Very cool. That's good. What kind of compliance data again is from the layman sitting outside I'm thinking Shark Week I'm thinking dirty jobs I'm thinking all kinds of fun stuff. What kind of compliance stuff do you have to be concerned about and why do you need something to really keep on top of that? Right so you know we adhere to ITIL standards and we've got a lot of SOX compliance data a lot of its security data and things like that where we've got to make sure you know people aren't accessing machines that shouldn't be people have certain roles there and you know they can't get into certain systems and which that all just needs to be tracked and accounted for and Splunk makes it really easy to grab that data in there from all of our disparate systems around generate custom reports and push it up to the top where everybody's looking for it. Was there any is it just a better tool to do something you haven't been able to do before or have you had any kind of aha moments where you know you've really seen something that you weren't expecting or to get on another path or you know kind of demonstrated the other value in that data that maybe nobody knew was there before. Well you know it is another app but it's the best app for what its purpose is in addition to that I mean we have definitely had a lot of aha moments in terms of what I'm doing with it in terms of operations. I do a lot of automation and Splunk is perfect for that because I can not only pull the data in I can report on it it's got all the amazing dashboards but in addition to that I can complete the workflow and I can have it automatically create tickets in our ticketing system and and really bring our entire IT group together in terms of being able to facilitate the beginning to end process with Splunk. Can you contrast that to what you were doing previously I mean what how was that a very manual process or were you just not able to do a lot of it. Yeah a lot of a lot of custom programming I mean certainly a lot of it I wasn't able to do and you know we were struggling to do with various systems and doing things manually and stuff like that so you know that's why I say Splunk was certainly a game changer and the fact that we're able to go in there and just you know do it completely differently now in a better way. Cool so you know we're here at the show and there's one of the themes really is around the community here and kind of customers learning from customers so just would love to get your impressions of the community that's being built up around Splunk I mean in the big data world overall we're seeing community play a very important role whether it's the Hadoop community or other big data technologies but certainly here at Splunk they're very focused on kind of building up a community and helping allowing customers to help each other. So what are your thoughts on that and what does your take you mentioned kind of the vibe here but as you've come to interact with some of your fellow Splunk users what's kind of information have you learned and what role does the community play and how you're going to be using Splunk. Well you know they have a Splunk community on their website obviously and I've just noticed in general I mean the people here they're really helpful everybody is here to basically share their experiences with Splunk and give people other ideas of what they're doing and how they're doing things a little bit differently and the neat thing about Splunk being as generalized as it is is that everybody kind of can do things in a different way with it and so coming together like this allows us to share that and I've noticed that you know there's a lot of really neat things that people are doing and there's a lot of things that we can learn from sharing with other people here. And the fault with you Eileen on that same topic because you know you're your solutions a marketing person you've got roadmaps you've got new features and functionality that you want to roll out but at the same time you've got this active community that's building apps and you want to encourage that you know how are you managing and how much is that community of kind of app development part of your process and part of your roadmap. So they're a very active part of our process and roadmap in fact later on today we have sessions on you know tell us what you want to build and tell us what you want us to build that sort of dialogue with our customers but even in the absence of that if you just walk around the show floor over here you'll see a number of partners have already sort of taken matters into their own hands and say and have identified market needs people need XYZ with Splunk and they've gone ahead and will develop those apps already and they're showcasing some of the apps here it's been a fantastic eye-opener for us to see how much how active our community has been not just in terms of customers but in terms of partners building their businesses on Splunk. Right and then does that does that kind of push your needle when you're prioritizing more towards kind of platformy type of stuff to for enablement versus more kind of solution feature functionality. Absolutely absolutely it does it sort of helps us you know focus on the things that are really hairy and we can't expect partners to deliver and focus on making enabling technologies available for partners to take advantage of best practices the right kind of APIs and SDKs the right kind of hooks basically into Splunk and a lot of these have been delivered already so and that's why you're seeing so many new solutions here at at the solutions exchange. Yeah it's really been a consistent theme as we've had these interviews with people from Splunk that everybody likes going after these big hairy problems I think we may have your new title now it may be the queen of the big hairy problem maybe not I don't know that might not work. I don't want to make that one. We know everything but but it is it is great that you guys continue to focus on these really big challenges and the enthusiasm around attacking big challenges seems to keep everybody pretty excited and then we've got folks that are they're using it and doing stuff they couldn't do before and or extending the application for these very special purposes. Yeah could could we dig in a little bit more on the Splunk Storm so you've you've now deployed us make it available in the cloud basically for as I understand it for developers who are building applications from scratch either on Amazon and Google's compute engine or other cloud cloud environments what kind of led you to that conclusion that you needed to really get out into that cloud environment. So there is what we what we identified pretty early on at least a year or more ago was that there is this big transformational shift going on in the industry with people moving to the cloud and other than the hype associated with with you know cloud and there are actually people who are using tremendous amounts of cloud services they're just not in the formal like purchasing processes that exist in most big organizations these are typically development or engineering organizations that are part of bigger organizations or even much smaller organizations who are just looking at the cloud is a great way to go off and bring the applications to market right it's it's they don't have to wait for infrastructure anymore they don't have to wait for some some guy in purchasing to approve their PO anymore they can just go off get the service use as much as they want pay for only what they've used and sort of deliver applications in a very agile fashion and for these kind of people to add I mean they're to ask them to download a piece of software and install it and manage and maintain it is is a is a hard thing they typically don't even have data centers they run almost exclusively in the cloud and so we wanted two things one is we wanted to make the whole thing easy for them we wanted to make it available as a service meaning someone can just go log in send their data start using it without having to download install maintain software scale it really easily so when they want to index additional amounts of data just move the move a slider and you get more capacity provision to you and the third thing is that we wanted to make it you know fit in with their model of purchasing so it is this flunk storm has a different pricing model it is pay monthly you subscribe to a plan and you pay on a monthly basis and and that fits in really nicely with this notion of disposable infrastructure that a lot of our first flunk storm customers have and do you anticipate Splunk storm customers at some point you know maybe as they're starting their projects in the cloud but bringing those back in the house at some point and how will Splunk help support them in that transition we we absolutely anticipate that a lot of these smaller companies will grow to be bigger companies a lot of the smaller projects will grow to be bigger projects because if anything the cloud is meant for scale and and and and people are going to do this you know large-scale stuff in the cloud we're also noticing that once you get to a particular scale in the cloud then it becomes more cost-effective for people to just bring it in house and the idea behind Splunk storm is if you're in the cloud you can get the facility of Splunk the the flexibility the fabulous search language available to you in the cloud if you want to bring it in house Splunk Enterprise is there to support you as well yeah what's your deployment Matt? we've got our own physical deployment physical appointment yeah we've got a we've got a lot of systems around the globe and you know and pretty much every region and so we just found that that works out best for us to to have the servers at our facilities so looking at looking ahead you know obviously Splunk is growing they're working on you know new apps all the time what is kind of on your roadmap and maybe you know all companies have to grow and keep keep expanding what would you like to see Splunk maybe expand into different areas are there particular use cases you're interested in what's kind of on your roadmap your challenges that you're hoping to tackle with Splunk's help well you know I'm going to continue to use Splunk in the operations you know predominantly so that's where I'm hoping that they have the majority of the growth apps like the VMware app are extremely helpful for us and allowing us to get to that data that we really have a hard time getting to and so the more that Splunk rules out apps like that the more useful Splunk will be to us but you know we're also developing a lot of custom apps and things like that as well because we've got our own applications that we need to facilitate so you know we're going to continue to go down the operations road and and see you know how far we can get as far as like getting all the data in there and and being able to automate as much as possible okay great all right guys well I think we're just about out of time thank you so much for joining us thank you we really appreciate it love getting the insights of a practitioner and and we know as well release some really interesting insights about the product direction at Splunk so thank you for the opportunity absolutely and so you're watching to cube this is silicon angles premiere tv broadcast we go to events like dot com 2012 here in Las Vegas and bring you the top tech trends and execs and customers to share their knowledge with you so we will be right back with some more guests we've got a full day of coverage ahead so please stay with us


I'm Dambioui and this is Talking Dirt. When was the last time you rode in England? Last time I was in Manchester. Okay. But I've done only half lap. Because that was an open meeting. The track was in really bad condition. Actually the corner was in really bad condition. The meeting was off. So we go to the track to try. After half lap there was no chance to ride. So that was last time. I was surprised that happened here, you know. In Poland, in Russia, sometimes I try to hide a little bit, you know. But this is very nice. Show your muscles. All these guys setting all this up. It's great. If you were here before, these guys took over. What they're doing and how they're making team GB look is good stuff. Yeah, for sure. It's definitely a lot more professional than it was. That's how we want to be moving forward for the years to come. Rob and Vicky and the rest of the team have been doing an amazing job of doing that. So it's nice to have them involved. You'll see tomorrow when it's all done. If there's any track, this one's probably the most like any Polish track, isn't it? It doesn't matter though. We race Swedish League, Swedish Grand Prix. There's no problem. There's narrow straights, tight corners. So at this level with the sport, you need to ride them all. Jona might be a bit one-liners early on, because everyone has to be looking at our practice. So what's the situation with Sweden? Well, the problem is... Yeah, we're off the problem. Unless we ride us or... Yeah. Yeah, at the moment, we only have... ...Phillip and Eastern Banks for tomorrow. This is the first time since... ...BWL Nation start. We don't have a reserve rider here, you know? Yeah. This is the worst. This is disaster for the team. We have put so much effort into it. We can't get enough and everyone is racing, but... Real shame. How are you feeling, dude? Good sore. Yeah? Are you all right for tomorrow?  I see how I feel in the morning, but if I'm not up to it then... I'm wearing good hands with Dan, as well. Of course. Yeah. It's going to be the golf champion tomorrow. Bartos coming? You coming for golf? He said he'll beat you. Yeah? Yeah. Maybe we've got too many balls. That's better than Speedway. No, I'm joking. Speedway is the best. Did you play golf with Greg? Yeah. Greg is good, you know? I'm not telling that. He's good, but I know he's training now a lot. But I'm training, too, you know? I try to prepare for next season.  They never go where you want. So, Wuffy's out tonight. Is that good or bad for Poland? To be honest, for Poland, it doesn't matter what it is for Poland. It's bad for him as my friend. It's not good when someone is hurt. The result is important, but at the end we all want to go home in one piece. That was a very scary crash. That shame he will not race with us today. For me, I would prefer to race against Ty in his best performance, you know? You're going to try and hit it really hard? Yeah. How far do you think you can hit it? 200, if I hit the ball. That's not what was meant to happen. That was only for the camera, you know? It's only for the camera. Sorry. Jerry, let's go, baby. What? Oh, better than two hands. Better than two hands. Your guy, one-handed. Let's do something serious now. A bit of rain down the track, good? A little bit of grip on this corner. A little bit of stick down that hand. How is it, still? Just a little bit. Got a few hours to go, try out. You've done some damage. Exactly, you come in with your foot sort of out. In round knee, you wouldn't really even touch your foot on the ground because it's not a track where you've got a turn so tight. So you'll see the left leg just hanging beside them and as they come off the corner, there's a little foot rest just up like that.  Normally the bikes, everything is blue. Yeah, but you're not generally meeting for yourself already. So you have to change everything? So these red bikes, they only get used for polish meetings? How many other bikes are all in blue? Five, blue and two at least. They're used the second time. Oh, wow. Man, today, if it gets one point for every mechanic, we're going to be doing good today. Wasn't the weekend you was expecting? What I expected was like getting two hits. But I get much, much, much more than I expected. But it's good, better for me. And the crowd here got behind you as well, yeah? Yeah. Everyone is crazy. So you had a good weekend? Yeah, I had a very good weekend. Oh, medallist. I was watching Magic, there were some maps in my head. I couldn't remember if we needed it. So I didn't have a clue. It was awesome. Yeah, when I was seeing him going, I forgot even how to ride. It was awesome weekend. Finally done it. It's been a long in the process, but that's just that one race. We're building up to, finally done it. It's incredible. How proud are you? Very proud. No voice though. Does that make all the hard work worth it? Yeah, it certainly does. You've done it, awesome. What a great job for these guys, amazing. And yourselves? Yeah, the riders do the work on the track. Ty led the team and Dan come in, did a great job, Robert's the captain, Tom scored max points. Doesn't get much better than that, really good. Proud of him? I couldn't be proud of him. How's it feel boys? It's been a lifetime trying to achieve that. You finally got one of those. But this one will speed actually. Armando's going to get the only one. There you have it. It's been a few years, I believe, since 1989, since Great Britain brought home this trophy. They've really worked really hard. And yeah, that's a wrap. Speedway of Nations, GB, on top of the world. So is this your first experience of Speedway? First experience of Speedway? Absolutely insane. I mean, I've seen it on TV, don't get me wrong. You see them boys live, side to side, pinned, no brakes. Amazing, absolutely amazing. But fair play, you know, it takes a lot of guts and courage to do any kind of motorsport. Now it's as raw as it gets.


Alright, so good afternoon everyone. My name is Justin Klein. I'm the project lead for Microsoft Teams and the rollout for the Air Force. So as most of you have seen from some of the other conferences or some of the other breakout sessions you've gone to, we've talked about a lot of things that are coming down the road. The good news here is Teams is very close to being out and a lot of your cases is already out. So the things you're seeing here, you'll be able to go back onto the Air Force Network and use. Hi everybody. Sorry for the wait. My name is Rima Reyes and I work for Microsoft, as you can see by this insanely large linear. I work for the Teams product group. So essentially I work for the part of Microsoft that helps and builds to develop and create teams. So I work directly with our headquarters engineers and developers that actually build teams for DoD. I've been taking a really close eye on US Air Force because you guys are really ahead of the game. And so we want to ensure that everything is great with the product. So that's why we've got a really close relationship between essentially the government folks and the military folks and myself. So I want to say really quick, I've had a long history in the Intel community as well. So I'm really familiar with this space even prior to joining the product group. So government is what I love and I'm really passionate about it. So it's also why I'm here. Okay, so what is Microsoft Teams? So Justin, let me ask you this. How do you envision Microsoft Teams? Like what does that mean to you? All right, so today we have all of these cloud services that we run on our time. SharePoint Online, you have OneDrive, you have Do Now. And you go into a different application to use all of these things including Skype. You're one of one conversation. So what Teams gives you and the main value for you is that this is a one application window into all of those services. In addition to that, to bring some new things that you may have never seen before and used and you go into those things. Yeah, so that's a perfect explanation. And I swear I did not tell him to say that's his own volition. So yeah, so Microsoft Teams, in the engineering team, in the product group, we say that Microsoft Teams is actually the presentation layer to everything else in Office 365. So a lot of times we have various applications that usually are all over our desktop or we have a lot of different files. Teams really brings all of that together into a single pane of glass. Kind of like Outlook. Like Outlook is like your one productivity hub two for email. Microsoft Teams is a little bit different because it's really for chat for things that are a little bit more quicker for collaboration. Like if you want to quickly share a file instead of emailing it, it's a lot faster to do it in Teams. So we call it the hub for teamwork and DoD. We have three main pillars. Communicate, collaborate, and working with confidence, really security, right? In the first pillar, communicate, we have persistent chat. Does everybody know what persistent chat is? What is persistent chat? Exactly, perfect. And that's very different than Skype. Who's familiar with Skype? Okay, I'll talk a little bit about Skype later on. So persistent chat means that you have that entire chat history, right? It doesn't go away when you close the window. It's still there when you reopen the application, which is really important. You also have group chat. Group chat essentially means you can have more, anytime you have more than two people. So essentially like three people or more in a chat conversation. That's called group chat and you have persistent chat with that as well. So really important. Let me go over an example for that. The one thing that we have found by using it in the Air Force was amongst our beta test group. So you've got a group of people and you're all chatting back and forth. And let's say you've worked through some project details. Now you want to add a new person to the group. Well, the nice part about the team's application and services, when you add them, they have the entire history of all the chats that you've done. So they can see what decisions you've made, why you've made them. Any kind of communication you want to provide them is given already. That's a really good point. That's really important. When I worked at the National Security Council, I worked at the White House for six and a half years prior to joining Microsoft. And everything was really fast in terms of document collaboration. I mean, if the president needed content, he needed it five minutes ago. And also having a history or understanding of how that decision was made was really important. So if we had teams back then, who would have been revolutionary? Teams also has meetings too. And these are just peer-to-peer online meetings. Do you want to talk a little bit about meetings? Most of us today use the telecom services through DISA or through maybe other parties. And one of the big problems I experience as an end user is I meet with 100 people on the telecom. Somebody goes on mute and you guys know the story. You have the music playing in the background. You tell somebody, please stop. You know, no one stops. And then you try to talk over them and it becomes a mass chaos. Well, with a team service and a meeting, you can hold, again, this is all using a microphone attached to your computer, but you can hold a meeting with a group of people and you can see exactly who's talking at any given time. And you have to go and go in, now they're muted. So there's a lot of other features that come with that. You can all take meeting notes together while you're in a meeting. You can record meeting notes and push them back in your team. There's a lot of other features, but to me, that is the primary annoyance I have. Dennis in the back and talk to that. We've had many meetings where we're shouting at people to please don't use, don't put us in the hall. So how does that scale? Well, I mean, I don't know if you've ever dialed in the cybersecurity forums, but they're always a nightmare. There's tons of that. But there are hundreds of people trying to dial in and kind of support that kind of volume. Yeah, so peer-to-peer meetings right now can support up to 250 people. Eventually, that's what's on the roadmap is to have something called live events. It's not in DOD yet. It's going to be further down the road. And that will have the ability to hold up to 10,000 people. But it's not here today, so just... Okay, so the second pillar, collaborate, which is the core, the meat and potatoes of this thing, right? I know Microsoft Teams is a really generic name, right? I'm sure people are like, what does that mean? But really, the crux of all of this is this app right here, this Teams thing right there, that icon. Because essentially, you can create a team, and a team is a workspace where your work team, like your colleagues, and you can work together on content. You can chat together. You can pin certain things that you want within your workspace, and it's all in just one place, right? Before in the past, sometimes I work with my colleagues, and I have to send an email, and then I have to go visit a different website because I had my favorites there or my files were here. Everything is just jointed, right? Teams really brings all of that together into a seamless workspace. It's really easy to understand. Do you want to talk about Teams, yeah? I have a question for everyone who here loves SharePoint. Loves it. It's crazy about it. I'm a former SharePoint person. I'm also the SharePoint program manager. I'm sorry. There we go. Teams gives you an overlay to SharePoint. So you don't have to worry about all of the billion other Features that SharePoint gives you. As an end user, you just put your file in there and you collaborate on it with your team. That's it. It's as easy as that. It connects in your OneDrive. So your OneDrive account, you can take the file shared with your team members. You can all collaborate on it at the same time. You can see who's typing what at the same time. Simple as that. You don't have to go into all of the complexities of SharePoint and worry about people messing up all the permissions, messing up things in your SharePoint site. You're not doing that anymore. So it's a huge value for us just in that proposition. All right. And so working with confidence. So Teams for DOD is accredited for just the IL-5 information. So you can have solace in the fact that everything that you're putting in Teams is okay. And it's okay by just that. So we've already done the hard work for you. The accreditation, please. And I'll add to that. The IL-5 means that the files are double encrypted. They're encrypted at the database level. They're encrypted in transit using the latest standards, the ST56, and it's FedRAMP approved. So this environment was built for the DOD's information. Oh, and it's HIPAA as well, too. A lot of people don't even know that. It's also HIPAA approved as well. And on permissions, the other nice part about the team function is when you create a team, by default they are private. So that means any information that you're sharing across the team is only searchable by your team members and no one else. That's a good point. So Microsoft Teams was actually built from kind of the ground up through a web-based interface. So we really kind of focused on, okay, how can we make it into a product that is easily portable to any sort of device? Because we know all over the world, people have various devices. Now in DOD, and especially specifically in US Air Force, we've got the desktop application available and the browser version available. I know, like, mobile. So Teams Engineering is going to have teams available on like an iPad or an iPhone soon. But we know that there's extra processes that US Air Force has to take in order to enable that piece as well. So on the roadmap for the Air Force, today, as I said, we've turned on the license for almost every user for the web client. So you can go in through Chrome, Edge, and Firefox to access this application. We have a link for you at the end to tell you how to get to that. Additionally, the web, the desktop client, we're pushing out slowly. We're still working with the EffectModel program office to see if we can push that out. But our target is the end of September to get, to offer that up to everyone. And if it's not available through a push, then we're going to offer it up through other methods, either probably through SCCM, so you can go out and get it if you want it. There we go. Well, one other thing. The mobile portion is coming, but we still have a couple things that we need to work out with this on what connections we need to enable to allow that. But that is very much the Air Force's goal to open up teams and all of the chess services to mobile devices. Oh, yes. And obviously, it's a pretty good Air Force network and it can hold more system information, which is great for a slot to be in the SBA. That's what you owe. And you're bringing it to mobile devices, but what's going to be my incentive to use teams versus Slack? Is it going to be available to commercial phones to download? And somehow, do you authenticate users to be able to use this instead? Okay, so there's a couple portions to that question. First, I'd like to address the bring your own device perspective of this. Right now, that is on a road map. That is also a place that we want to get to. But we need to solve the mobile on GFE first. Once we get there, we're looking at solutions that will allow us to do it on a bring your own device. I don't know, Dennis, if you wanted to add anything to that. So, yeah. So, I'm Dennis Plansky. I'm a mobile fan. I also work with Chas Kremel and partnering with Justin on teams. So, working with the mobile drives and some other things. So, our goal is that we make the Airman mobile, right? So, it is to get it on that device. It is to get the native container, not, you know, right now we use Blackberry UEM, but how can we get it natively? We're working through those things with Justin, and then, I guess, Mr. Koninsky was up here earlier from SAF. Working on the BYOD, there's a proof of concept that went on. And working through the results of that, I don't know, struck back there from SAF, working through the different policies. Now, when you talk to Mr. Greenwell at DOD, the security guy, Slack is in an IL too, maybe even if it's an IL.  Probably hosted in other nations. Those are some of the adversaries that we have today. So, the goal is that you would use Teams, and it is on the mobile device. Slack, you can just pop in and out of there. But by policy is really, I think, enforcement, having worked at DISA, they really like to cut the connection to Slack because of the information that's being spilled out there today. Does that answer it? It does. I was just curious if it is going to go through commercial vocal just because, obviously... So, our goal is that, and so, our other goal is that we want to use it, not have to use it because of policy. Exactly. So, we've got to get that end user experience there, but we're not there yet, so we're working towards that. Yeah, something just really quick to note about Slack, because I have purviewed to about like 14 million end users with Gov using Teams. And what's interesting is that we've had a lot of interesting scenarios where we've had customers use WhatsApp or Slack. And unfortunately, when you have the free version of either one of those, Slack owns your data. And if you are part of a team, and let's say you get fired from work or you were forced to leave, you still have access to the information if you're on Slack or WhatsApp, which can be a huge security risk. With Teams, it's a centralized admin, right? So, your identity follows how you are in the workplace. So, essentially, if you get let go, if you move to another company, that data, that essentially entry point to that data gets cut off. So, no longer can you access it once you leave. So, that's really the big, I think, kind of like selling point with Teams is really security here for the most part. So. And I would add in the integration with the other services, many of which you guys haven't seen yet, but they're on the road map to be delivered as part of Chess as well. Forms and flow, workflows that pass through all of the Services will go through Teams also. So, it kind of enhances that, and it gives more incentive to use it. And also, our slogan is W-U-S-D, but with Slack there. So, we don't want to. Did not know that. Good to know. So, I went a little nutty with the Air Force images on the Air Force website. So, excuse my excitement here. So, the reality of the modern workplace. So, we have a lot of studies done in the product group. And so, 20% of our average workday is spent tracking down information. Who feels kind of that pain? People are like, yeah. Right. 28% of an average workday is spent managing email. I feel like mine is 50, but I don't know what you guys are. Right. And then, 59% of leaders say that they're missing important information daily due to information overload. I mean, even if you're not a leader, right? There is information overload, right? So, Teams helps kind of focus you on where you need to be and what information you need to actually read or get to. So, why Teams? So, I know we've sprinkled a little bit about the why, but Justin, why do you think the Air Force should be using Teams? I've already mentioned a couple of those reasons earlier, but you mentioned email. So, I get several hundred emails a day, sometimes more than that. I can't sort through all that. Whereas the teams that I've been using in conversations, I never have to go back to an email. You see this greatly reducing the amount of email traffic we do as an Air Force. Now, that's not going to prevent information overload. You're always going to have that. But Teams has built-in filing system for that information. And the search capability is far more robust than what you get in trying to find an email in a haystack. All of our communications are filtered in. We'll go through the channels and the demonstration, but they're all filtered into which groups are used in a team and which channel is talking about what. So, you kind of know where to go to find things. Yeah, absolutely. I mean, that's a great point. You know what's interesting? When I first started living and experiencing Teams, now I know I work for Microsoft, which is a commercial company, totally different environment, right? Apples and oranges. But I will say this. There was an interesting change in behavior that I experienced. And behavior and end user experience is really important to me. I was actually a psychology major in college. So I care about what people think and how they actually perceive technology. It's one of my passions. What was interesting is that I started using email a little bit less, and I was more conscientious about who I sent emails to. So I had more email etiquette, because I knew email took time to read through. And it was more, it felt that it's a bad thing. It was just it took a little bit more time. I had to be more focused and detailed on email. And then internally in my company, so if I ever wanted to communicate, for example, with Amanda, who's sitting in the back, with Microsoft, I just wanted to send her a quick note. I would use Teams. And I realized the response and reply time was much faster than having to go through email. But email's still a really important part of my day. I'm adorably, for the most part, use email to communicate with external entities. So anybody outside of Microsoft. So that was just an interesting shift that I experienced. Not saying that you guys are going to have the same experience, but outside the company, email inside Teams. So just to kind of support what Justin just said too, there's been a study done, a Forrester study, that four hours a week at minimum were saved using Teams. And then essentially for a 5,000 user organization, which you guys are about 600,000, maybe more. I'm sorry, 700,000. That'll probably be a higher cost savings for you guys. So I expect that check. We'll ask Forrester, like, hey, Ramison. So we can deep dive into a little bit more. I'm going to kind of set up a little bit the details of the communicate, collaborate, collaborate, and working with confidence. And then Justin, while I'm running maybe through the first two slides, can we try to see... Well, I guess I can't really do that with your machine, but I'd like to try to test out your machine to see if that'll work for the demo. That's okay, so afterwards. Okay, so we talked about communicate. So we talked a little bit about threaded and persistent channel discussions. Channels are essentially a subtopic in a team. We'll go through that. You can stay in sync with private chats. We talked a little bit about that before. Justin, I think you have a good story regarding communicate across geographies. Yeah, so our organization is geographically separated. Most of my home office is at Hanscom, and it's been a pain, just a real pain. I'm sure those of you in the same situation understand. Trying to communicate and stay on top of things is nearly impossible through email. You get so much email anyway, you can't read it. But using this service, I'm able to just dial in members of my home office at Hanscom, have a quick call, or I'm able to set up a chat, and just helps the collaboration greatly. And I know once you'll use it, you'll see what I'm talking about, but just being able to scroll through and go through all of those communications so that I'm up to speed with what's going on at the home office is hugely beneficial for me. So I see this helping out those organizations across the airport immensely. Yeah, and something to add to this too. A lot of times our communication can seem really formal, and sometimes that can give people some anxiety because they're like, am I writing the right words? I reread emails that I write sometimes several times just to make sure that I'm not saying something colloquially. Anyways, Teams takes down some of that kind of rigor a little bit, and you can actually use stickers and emojis and memes in your team's conversation, so you can do smiley faces, or face problems is my favorite one. Finally, we can communicate with your members. Sometimes a meme does more justice than a meme. It's like an understanding without some words. All right. So I know this is like a really like, whoops, there we go. We've got a couple of pictures here, and I know this isn't necessarily Air Force pictures. I don't replicate this with Air Force pictures, but this is an example of what a meeting looks like. Who uses an iPhone and has like FaceTime? Yeah, does this look a little familiar to FaceTime if you have like multiple people when you chat with them? Or I think even Google has their group meeting solutions very similar to this too. Now, when you're sitting at your desk, Dustin, do you have a webcam? It's been the same. It's totally fine. Do you need a webcam to talk? As a matter of fact, for us, the webcam really doesn't add a lot, but the key is the audio conferencing. That's where, as I mentioned earlier, that's where we get a lot of value, particularly with the large telecoms that we hold. Yeah, and the call quality, in general, like we take pride in the platform to say that the call quality is really, really supreme. I'm sure Dustin, you would agree with that too, but I've noticed even a difference from moving off of Skype and into Teams. The call quality is way different. So is this... Can we use Teams to say to the contractors, meaning I have a telecom, I have a telecom, I got military members that are going to be in it, I have this contract that you see that I'm doing business with, will it be able to use in that sense, as far as holding hold of it? So this service is only right now built for members that have CAPCOM and an athletic company. So as long as they have that, then yes, you can use it with them. Yes, you have something out on that. So a couple things. One, if you have users who are external sitting at their corporation, if they have access to the CAP card, the work mode of solution, that would allow them to be able to use Teams. The other portion of this is, coming down the line, there is a separate solution that would allow different tenants to federate so that you could share with a company's IO for a tenant and have that communication, that is in the roadmap. It's a combination of the flow of free and business. That's actually a good point. So you mentioned telecom. Today it's not telecom. It's audio calls. So there is this distinct difference that is another feature that's on the roadmap that you'd be able to purchase with telecom. But it's the audio. And that's what I meant. No, I get it. Some people, they hear different things. That's the audio portion. So another thing is the other services, the Navy, Marines, DLA, they're moving into Office 365. Very near term, we're going to federate between the other services so you'll be able to collaborate with all of the joint services. All right. Question? Not today, but that is coming in the future. So, yeah, another asterisk coming soon. There is an Office 365 service called Stream that will be like YouTube for the Air Force. That will let you record your meetings, help through this, and then play them back and even transcribe them. Yeah, in the paper, yeah. Any other questions? So collaborate. This is, again, the meat and potatoes I was talking about before. So this is where the actual team, the employees, and start collaborating on information. You can share and co-author Office documents within the team's app and Justin knows the answers to what is actually helping you enable to do that. So this user's SharePoint is the background in which we mentioned, but it's hidden to the end user.  Love it. Great. That's the right answer. Thank you. You also get built in apps, SharePoint and SharePoint, and there's a few more coming down the pike too, so you'll be able to integrate all those apps within your team. You can also search across people and files. Justin was talking about that earlier. It's pretty amazing. I actually used to use SharePoint Search a lot, and now I actually just use Team Search because it searches through SharePoint as well, which is really cool. So one thing I don't think we're going to show any of the files button on the left actually goes through here. So if you've touched anything recently, it'll let you know you don't have to go find it. Here it is. Just click on it. Go access it. Question? Can you share a problem with PIA? I don't know. So right now you can. Now there are some policy things that we're going through with SAP on do you need PIAs to be able to do that? So maybe that changes in the future. But right now the policy is you can. Everything needs to be made private, so it's not searchable. But you can do that. Yeah, and to add to that search piece, which I think you touched on it earlier, everything is security trim. So if I search for something in Teams, I'm only finding results of things I have access to. I'm not going to be able to find things that I don't have access to. So it's really important, is the security trimming on that piece. Question? So if you're sharing files on the backside of it, when you save those files, do they go into just like, say for instance I'm coming out of Teams and go into SharePoint? Will I see those same files that I've shared in Teams? Yes, so what this does is when you create a team, it creates a new SharePoint site. So you can access it by going to the SharePoint site if you want it. If you love SharePoint like me, then do it that way. Or interface, a much easier to use interface for that type of collaboration. Any more questions? Okay, so working with confidence, again we touched on this earlier a little bit too. The biggest thing here, and I mentioned this with Slack, is the single admin experience. Is that a good question? I'm just trying to put it all together. I'm an ISSM for one of the jobs that I do. So that's a job that you don't have all the information. So we've linked up on Skype to it's been a lifeline to help each other. So this way we can do it, but our conversations don't disappear and we can have files to help each other out is what you're saying. So I'll give an example. When I switched roles in Microsoft, I joined a different team. I had no idea who was who or even the context of what was happening. But they started adding me to some of the teams and I was able to actually go back in time and see a lot of content, what decisions were made. I had context as to what was going on with my role today. And it actually helped me get up to speed much, much faster if I didn't have that information. So it's really the beauty of persistent chat within teams here. The direct correlation is when I worked with my ISSM and ISSOs to put together an eMass package, we handled all that through a channel. All of the cyber security plan, all of those things were done through a channel in our team. All right, so let's see if we can do a demo. Do you want to try to see if your computer would work? So give us like two minutes while we switch over. If you guys have more questions, feel free to ask them. So with the conversations... Question? Oh, sorry. Being after certain teams, so let's say you're in a team of five people you know, but someone that says, I don't want to be added. Okay, anyone remove someone from the team or just a person that created the team initiative? Great question. So a team has a structure to it. An old structure. The person who created the team is the owner and they have control of who else gets added. You can give other people owner privileges if you'd like, but by default when you add other people they're just members. So that's part of the etiquette of using teams. So if you put together any guide that would be out in a public team that you could find when you get access to the service, it'll explain those types of things. Can you come here and log in? Don't mind. The conversations like in Skype, and I think you said something about as different than Skype or Skype for business or whatever, but with Skype the conversations are saved in Outlook. It is tied to Outlook in any kind of way. It is. Actually your conversations are stored in Outlook in your mail profile. You just don't have access to see them and the reason is is that all your conversations are saved in the team's client anyway. So you don't have to go to Outlook to go search it. So it's literally like single pane of glass. You just go to teams to search, find anything you need. You don't have to switch. For the meeting part, can you move full screen chair? Yeah, absolutely. Yeah. Okay. Great. Okay. So this is what teams look like and this is Air Force teams. So this is real. This is real to you guys. I want to make sure that we did like a real demo. So on the top left here and I'll use this. So on the top left right here, this is called the app bar. You've got activity, chat, teams, meetings and files. Right here is the left rail. This is where all your teams are. And over here is the main arena. You basically push a button here and then push a button here. That influences what happens here. So essentially it's a cascading effect, right? So Justin, do you want to show us? Yeah, one of the teams. So just showing us our 0365 teams soft launch. And this was a team to play in teams. I know that sounds crazy. And as you can see, we've got some windows 10 emojis here. Right into the channel names and a channel essentially is a subtopic of the team. So you're right now. Can you click on like one of the channels? So perfect. So Justin just clicked on a channel and as you can see this window changed and we've got three main tabs up here. We've got conversations, files and wiki. Conversations is where your persistent chat goes through. So Justin, do you mind like scrolling up and just so it goes all the way for it, right? And you can see there's files embedded in here, right? So there's context to the files that you're sharing. You're not just dropping an email and being like, hey, good luck. Go have fun with it. You're providing context to the files that you're sharing which is really important because we have information coming from everywhere. So a lot of times we really need that context. Can you scroll all the way back down? So do you guys see this purple line right here? I know it's tiny. Should we zoom it in? Can you guys see it?  So this is what you need to focus on because you haven't read that part. Do you see that in Outlook? No, right? And that's, I mean, for me, I love Outlook but for me, that's what takes time because I have to go through the whole entire reply history. Right? Can you show the files tab? So Justin just clicked on the files tab and the secret trick is that SharePoint is actually behind the scenes here. So SharePoint is storing your files for you. So nothing's changed in that perspective. You can still create folders. You can still upload files. And can you click on Open in SharePoint? And if you really love SharePoint because I love SharePoint because I came from the SharePoint world so I love it, you can actually go directly to the SharePoint site if you want. So long as you are a member of the team you can access the site, right? And there it is. Regular SharePoint site. You can do all the same things you can with SharePoint. Yeah, question in the back. So with the files thing, I noticed that you can have multiple messages maybe with the same file attached so is it just putting a single copy here in the file area? And if there's a duplicate I'll ask if you'd like to overwrite the previous. Yeah, so single source of truth. How many people have done a V.3 of a document? Oh, I have to merge the changes. It's so difficult, right? You don't have to do that with teams in SharePoint. Okay, and then I don't know if you have anything on the wiki on that. Yeah, so this is a wiki right here in a wiki's part of the tab.  So as he's running this team you're like, hey Rima, you have a task and he'll put it in there. So again, single pane of single pane of glass, single source of source of truth. It's one place to go to find what you need in a very kind of easy and you know, inherent way. It does look like one note and one note is coming. We had to wait for one note to get approval. They're a fed ring up cycle. So if you click on the plus sign that's where one note will be. So there's a plus sign where you can add these tabs into teams. Eventually this will grow and you'll have more. So as they go through the accreditation process and get approved we'll get more tabs in there. Do you have stream? Yeah, that's new. That is absolutely true. Yes. So you guys have a workaround for this which is pretty genius. You see key links. You can use a wiki for a number of things. I like to have it as like a read me. If I'm added to a team, where would I go first? So all of your key links, all of your key information you can have immediately accessible to the user. Did you want to just show what the upload process looks like? Sure. Just for like a file? Like to a conversation? Yeah, the attached function or something. Or you can try. Whatever you want to do. So Justin's going to upload a few things here. So you hit the paper clip icon, right? Similar to Outlook? Yeah. The Wi-Fi is a little spotty in here. That's what I was going to ask. So the speed of it is going to be depending on the speed of the network, right? Yes and no. We've done a lot of performance improvements in general just to make sure we're using as little bandwidth as possible. But yeah, obviously, if you have really, really slow Wi-Fi it's going to take a little bit longer to upload. For example, it usually doesn't take this long. But everybody's on the conference Wi-Fi. So it's fighting. Sometimes we're down on the network as far as SharePoint Outlook, all that stuff. Yeah, if you don't have internet, correct, if you don't have internet then you might need to go take a coffee break. But, um, yeah, sorry. I don't know what to tell you there. Dennis, do you want to talk about how it's helped you? Sure. So as I mentioned, you talk about what's down with Outlook and things like that. So I'm the lead for the IRT. How many have heard General Holm's State this morning about the end user experience? How many have heard about General Skinner? What's happening about the end user experience? Well, I'm neat even that. I was the email PRT lead. I work in Africa. I work with Scott Hightman. So, if, if, Justin, can you go down?  IRT, right? PRT. There we go. Use-afi latency troubleshooting. So, the 30-HC-IG AFNIC, Use-afi A6 and many other 691st, 83rd, 26th. Everybody's been working a lot of this. So if you go to the files through our troubleshooting, we talk about one of the most disadvantaged sites, Interluk Turkey, in probably the Use-afi AOR, we found problems trying to share packet captures. I had a solution. I did talk to Justin a little bit, but I got a little aggressive sharing with a lot of the teams. So you can see a lot of the packet captures and all these sources of information, although Interluk's email wasn't working very well, we're downloading files to teams and it's working just fine. So, the team around the world, literally, this was done a lot of it. We had packet capture going on at 1 o'clock this morning. I got a couple hours this late. But, and everybody's dumping them in the team so that the folks at the 38th at Panker can review the packet captures. So, folks at Use-afi, the 83rd, so everybody's using teams for truly a collaborative space. And it's working, working well. Probably not the most organized, but I'm learning. I love SharePoint, I love Justin, but I'm not as good as Justin at SharePoint, so I'm learning. But it is, it is critical to sharing information with your mission partner. To my 38th brethren back here, does it help? Has it helped? I know, I know that they have a Netlaw team at Interluk, to get the Netlaw mission. We are here for Interluk and they've been doing a great job loading this stuff up, so truly a mission need was solved by using this. That's awesome. Thank you guys. No, thank you, that's awesome. Do you want to leave the parting story? I also want to show the last screen of the slide to where they can go and get more information. So, who's interested in finding out more about teams and being able to use it? Oh yeah, that's what I'm talking about. Okay, there we go. Okay. So, if you want to find out more, here's my recommendation. Take a picture. So I'm sure all of you guys have a mobile phone, right? Take a picture of the slide so that you have the URLs that you can go visit it and find out more about teams. We have weekly learning events. Did you want to talk about Tile? Yeah, so part of the rollout of this event towards the end of September and leading up until it, we're going to be running weekly learning events with all of the users who find their way into this service. We're going to be opening up and doing engagement events at the bases, running public fairs articles. We're also going to be running AMAs, Ask Me Anything through these learning events so that you can dial in if you've got a question about this or you want to know how to use it better or what we've learned, some lessons learned for you. Please dial in and join us. Yeah, and the contact down there below is one of our colleagues who's helping to run the events and that way Justin also doesn't get overloaded because he's leading this, so you want to make sure that he's got time to... You can send me a message in Teams, but don't be mad at me. Beautiful, love it. Thank you, yes. So do we have any questions? Yes. All of their contributions remain, their access to those contributions gets removed. So we have more Q&A time at the Microsoft booth right after the session for an hour and we also have some Power BI Q&A if you guys are interested in that. So please follow us to the booth if you guys want to talk more about Teams. We're happy to share. Thank you. Thank you.


Let's look at the code that we used for timing the sum from 1 to N method. There are three main parts. We get the current time, then do the method that we want to examine, and figure out the elapsed time. All of this is in a loop that goes for as many trials as we want. The loop and timing is the same for every timing test we want to do. The only thing that changes is the code that we want to time. In order to eliminate the need for duplicate code, we've constructed a class that helps us do timed tests. The class will have the number of times you want to run the test and the number that you want to keep. By default, we'll run each test 25 times and keep the last five timings. Remember, we're doing this because the Java virtual machine needs time to stabilize for its setup and for its memory usage. If you're not happy with the default values, you can use this other constructor to change the number of trials to run and the number of results to keep to anything you want. And here are the getters and setters. Nothing new to see here. Those are followed by three methods that you can override. The first one is setup. Some tests may need to set up variables or files. And you can do this by overriding the setup method. The do test method will do the actual test that we want to time. You'll definitely want to do something in this method when you overwrite it. After each trial, you may need to get rid of some of the objects you created during setup. That's what teardown does. For example, if your setup method created a file, your teardown method might delete that file if it's no longer needed. This method is where the magic happens in run test. It starts by declaring an array to save the timings we want to keep and an index into that array. Here's our for loop.  This method will clear out any unused memory. We get the current JVM time. And at last, we do our test. After the test, we get our elapsed time. If this is one of the trials that we want to keep, we store the elapsed time in the results array and move to the next index. And then do any teardown that's necessary before we go to our next trial. When all of the trials are finished, we return the array of timings to whoever called us. The last method in our class returns the average for the tests that we wanted to keep. It calls run test to gather those times, and then calculates the average to return to the caller. Now that we have our framework, how do we put it to use? Let's look at that first anagram method from section 2.4.1 in the book. The book says it's supposed to be a quadratic algorithm, so let's do some timing tests to see if it really does exhibit quadratic performance. We're going to try detecting anagrams with strings of length 2600, 5200, 7800, and 10400. Why those numbers? Because they're multiples of 26, and there's 26 letters in the alphabet. Let's set up the test code in the anagram test class, which extends our time test framework. We'll need to have two strings that we want to compare, and we might as well make those private. We'll want to have the number of times we're repeating the alphabet, and we'll also use constants for the alphabet and a mixed-up alphabet. I've copied and pasted them here, so you won't have to watch me typing them. Now we need the constructor. It's going to be public anagram test, and its argument is going to be the number of repetitions of the alphabet that we want to use for our anagram. We'll call the superclass constructor, which gives us 25 trials, keeping the last 5, and then we'll set our variable for the number of repetitions. In this case, we do need to override the setup method. That's where we're going to construct the strings to check for whether they're anagrams or not. So here's our public void setup. We'll set S1 to the empty string, and S2 to the empty string, and then run a for loop from 0 up to the number of repetitions of the alphabets, and we'll tack on the alphabet to S1 and the mixed alphabet to S2. I left off this dot here because it's unambiguous, but just for the sake of completeness, let's put that in here. We'll also need to override the do-test method, which is going to do the actual checking for whether the S1 and S2 are anagrams or not. Again, I'm going to copy and paste this so you don't have to watch me type all of it, and there's the code. That's all we need to do for this class that extends the time-test framework. We don't need any teardown here. We'll reallocate the memory as we need it during setup. Now let's return to main and make use of what we just did here. We're going to create an array that tells how many copies of the alphabet we want to work with. We'll call it alpha copies, and we'll start with 100 repetitions, 200, 300, and 400 repetitions of the alphabet. Now set up a loop for each of the copies in alpha copies. We'll create an instance of our anagram test, and it'll be a new anagram test with the number of copies of the alphabet we want. We'll run the test and get the average time for that many copies. Our average time becomes test.getAverageTestTime, and then we'll print the result. Using printf, so with our length and the time, that'll be copies times 26, and our average time. Let's save that, and hope I've typed everything correctly. Let's compile it. It says the compilation finished successfully, and now let's run it and see how this algorithm performs. So when I doubled the length from 2600 to 2200, I got 4 times as much time, 3 times as long, took about 9 times as long, and 4 times as long took about 16 times as long. So yes, this version of anagram detection is order n squared is a quadratic algorithm. So again, here's how to use our time test framework. In the time test framework, you create any variables that you might need. Make a constructor to set the parameters the way you like them. If you need a setup, overwrite it and put it in. You'll always want something to override due test, because this is where you're going to actually be testing things. If you need a tear down, you can also put that in there. And then in your main, you create a new instance of this test that you just wrote, and get its average test time, and save it in a variable where you can print it out later.


What better way to start a recording after, I don't know, two months since the last time we did this and change up everything? What could possibly go wrong? Should I talk a bit about WebAssembly threats, Jake? What do you think? Well, have you written slides about that? Because if that's what you've written all the slides about, then I think that is what you should talk about. Otherwise it would get very confusing. I wrote the title and I'm like, well, now I wrote the title. I've got to write the rest around this. And so I did. Well, so the thing I really like about WebAssembly and this is very much, I think, a surma thing that doesn't necessarily apply to everyone is that WebAssembly has very little surface in itself. WebAssembly can't do a lot of things by itself. Very tiny things, and I'm going to talk about this, what we can do. And yet, we end up with capabilities like threads and SIMD, all these things that JavaScript can't provide. And so I kind of wanted to talk about that, talk about WebAssembly, what it can and cannot do by itself and how interactions with JavaScript can open up all these possibilities. And for that, I thought I'd start a little bit with a small introduction to WebAssembly at the low level. Before I start, it's probably important to say like, this is not what you need to know to use WebAssembly. This is a bit like looking under the hood. So before we continue, you said JavaScript doesn't have threads and JavaScript doesn't have threads, correct? But the web has workers, node has workers. I'll talk about that. Oh, okay, fair enough. Yeah, because that's exactly the interesting bit because to an extent yes, but on other perspective, you would say no, and then you combine these two and suddenly magic happens. And that's kind of what I want to talk about. So I'm going to give a bit of an incomplete overview enough so that you hopefully understand what WebAssembly can and cannot do, but probably not enough to cover every variant in which it can do these things. But just like a peek under the hood of WebAssembly, something you don't necessarily need to know to use WebAssembly but could be interesting or useful to know every now and then. So this is WebAssembly, kind of. This is the human-readable assembly languages. The human-readable... I'm going to have to take issue with human-readable. Is this human? It can't read it. It's, yes, I hear you. It's assembly. I mean, people who have seen assembly or any form of machine code, the human-readable versions are not readable in, oh, I understand what's happening, but at least you can decipher individual words compared to the binary representation of this file. So this text presentation is called WAT, or What WebAssembly Text, period, I guess. This language is literally a text representation of what is in the file in binary. So you can define module and one module will basically end up as one WebAssembly file. So as a module can contain multiple functions and functions can take numbers as parameters. And numbers in WebAssembly can be 32 and 64-bit integers and 32 and 64-bit floats. And you can do math with these numbers and then you can return a number as a result. And you can export... What more could you possibly want? Exactly, it's all you need, right? And you can export some of these functions to be callable from the outside. I'm going to talk about outside in a bit. So JavaScript is one of the host systems for WebAssembly. There's now actually multiple host systems out there, some for PHP, some just standalone like Wasm Time, which runs as a standalone app on your desktop machine. But we're going to talk about JavaScript because we are a web show. And so in JavaScript land, you would fetch the .wasm module and instantiate it, which means that it will compile the module and instantiate it and you can call these exported functions, which is now, you know, this is what the outside is. And here I declare a function that takes two parameters and a return type. 32-bit integer is the return type of this function. And then I use these two parameters to add them and that is also implicitly the return value of this function. And at that point, it returns to JavaScript and the JavaScript environment knows how to convert between JavaScript types and WebAssembly types. And pretty much all the wasm times just turn into 64-bit floats because that's the only number type JavaScript has. Recently, there's been an addition to WebAssembly where 64-bit integers are now going to map to big ins because a 64-bit float can't represent all the numbers a 64-bit integer can assume. So that will address that problem. But does that mean then JavaScript can, like JavaScript has a number type that WebAssembly doesn't support as well? Cause like if you get an arbitrarily big number, it will get to a point where WebAssembly can't, once it's beyond the 64-bits. Yeah, that can happen currently. So yeah, if the big end grows too big, it cannot be represented as in 64. I actually don't quite remember how that is handled. If it throws or if it gets clamped or something like that, I would look into that. I have to look into that. You see here that JavaScript can call WebAssembly, but WebAssembly has access to absolutely nothing. You can pass in the numbers and use these numbers to do arithmetic within WebAssembly, but you don't have access to any of the APIs you might be used to. The WebAssembly is completely isolated. And that alone is actually surprisingly powerful, but we need a bit more to make it actually useful. So the next step is that you can declare imports. And here I'm saying that I'm expecting an import in the Sorma's imports namespace, and that the import is called alert. And I expect it to be a function that takes 132-bit integer as a parameter. Later, I call that function with a result of our computation instead of returning the result of the computation. The instantiation for this WebAssembly module remains largely unchanged, except now we have to provide these imports. And that has to happen at instantiation, and instantiation will fail if I don't provide all the imports the module requires. So this here is the so-called import object, and the alert is obviously good old alert function that I hope we all remember from our start of JavaScript debugging. I certainly used that a lot for debugging. So this shows now that you can not only export WebAssembly functions to JavaScript, but also you can expose individual JavaScript functions to WebAssembly, but still only number types will be able to be passed back and forth because WebAssembly, for example, has no built-in understanding of strings. Now, so far, these WebAssembly modules have worked with just parameters and did arithmetic on these parameters. For any more complex kind of work, you actually need a bit of memory. And that's why WebAssembly also has a way to handle chunks of memory that you might already know as array buffers. So here we declare that this WebAssembly module expects a memory in our import object, and that needs to be at least one page big. WebAssembly measures memory in pages, each page being 64 kilobytes, that has security and operating system integration reasoning. It doesn't really matter, but basically the smallest unit of memory is 64 kilobytes, and every memory has to be multiple of that size. And now we can use load and store to manipulate the values in that memory. So instead of adding the two values from the function parameters, we are now adding two values that we find in memory. WebAssembly memories are, as I mentioned, a lot like array buffers, but not quite the same. They have their own type because they grow, they can grow, they have a different unit of measurement, and they need a bit of special setup for security under the hood. But in a way, they behave exactly the same. So here I create a new WebAssembly memory. So we can create a typed array view on this array buffer, just like with normal array buffers, and then we can use this array view to put these values into memory and then use our wasm module to add them up. This is obviously kind of a useful example, just put two values in memory and add them up, but it just shows how the interaction with the memory works. So the memory in wasm is it's just like, or sending a function into wasm like you did with alerts and sending memory into wasm is just exactly the same. It's pretty much the same. You have to declare what an import is supposed to be because WebAssembly is strongly typed. So at Compatim is known that this import needs to be a function and this import needs to be memory, but it's the same way you as the whole system have to make the conscious choice to give something to WebAssembly. WebAssembly cannot just grab anything by itself, which is one of the security. Can I talk to what you said before of how WebAssembly is so lightweight? Like I always assumed like there was a deep integration of how the memory in WebAssembly works, but it is just chucking a JavaScript object in there and then you're performing operations on it in WebAssembly land. So for complete transparency, a WebAssembly model can actually declare its own memory and export it instead, but it still functions the same. It's just like here's because the WebAssembly module declares its own memory, you also know it doesn't get access to anything it shouldn't get access to because it's created as instantiation time. So it doesn't get random access to unknown data. So it's all about the security and the primitives that are being exposed here. That kind of covers all the things that WebAssembly can do that we need to know about to talk about this. This is pretty much what is called the WASM MVP, the Minimal Vibre product, which was the synchronized launch between all the browsers. There are proposals obviously in WebAssembly land to augment what WebAssembly can do, but almost all of them are just almost syntactic sugar on top of these things. Very few of the proposals actually expose new capabilities. And if they are, they're often limited to arithmetic, which I think is very interesting. So let's talk about threads because JavaScript is a bit weird on this topic because it is by design single-threaded. JavaScript, however, supports parallelism at least on the web and a note recently with workers which runs a JavaScript file in a truly parallel fashion to your main thread. However, you can only send messages back and forth with the worker and the main thread with post-message. And there's no way to share a variable between those two threads like you might be used to from other languages that support threads or any form of threading primitive. And Cynthia. Oh, well, except she shared a rainbow thread, right? Well, Jake, that's what I'm getting to. Okay. So if you just added shared memory to JavaScript, things would break because many of the permits are designed around the fact that they cannot get interrupted or that there could be race conditions. So instead, the shared memory concept has to be isolated to a specific type, which, as you already spoiled, Jake, is the shared array buffer. I'm sorry, I'm sorry.  I'm just glad you asked this question exactly here because that was my next slide. So I did something right at least. So, yeah, shared array buffer is pretty much just like an array buffer in the end, but you can get shared access with the same array buffer from across the threads. And both of these threads will see the memory manipulation under the hood in real time. So here what I'm doing is I'm running the main thread and basically have a while true loop to wait until the first cell in the memory is bigger or greater than, greater or equal than 100. So this basically means the main thread is blocked. And in the worker, I get access of the same shared array buffer and I increment the first cell value. So even though the main thread is blocked, at some point it's gonna get unblocked because the worker is running in parallel for real and can work on the same except memory chunk as the main thread. So this is called a spin lock where you just keep spinning an endless loop and keep checking your condition to continue. You know, they're a thing, but they're obviously quite bad because you just lock in your CPU at 100% for this thread because that's all the process is doing. Are you going to mention Atomics in a little bit? I am now going to mention Atomics aren't you on top of things? Because I actually think that Atomics are not that well known because very few people probably work with shared array buffers and they only work with shared array buffers. And basically they have just a couple of operations in Atomics to make operating on these shared array buffers more reliable and predictable. As for example, in a worker here we can block on a memory cell and wait for other threads to notify us that this memory cell is now ready to use. It's a form of a mutex. So in the worker we can use Atomics.wait to wait on a certain cell. The first value here is the index and the second parameter is the X and the first memory is the view. I should read my own code. The first memory is the actual memory view. The second parameter is the index and the third parameter is the expected value that needs to be in the cell before we start blocking. And that is a typical mutex programming parameter to check if the value had been changed before you started waiting. Now the main thread we can basically just wait on the user to click a button and once they do, we use Atomics.notify and that will wake up all the threads that are waiting on this memory cell. And so this way the CPU is not locked 100%. This is not a spin lock. It's actually in cooperation with the operating system and will put the thread to sleep and save system resources. Now, that was basically all the prelude, all the building blocks that we need to know to understand the WebAssemblyThreads proposal that is now in Chrome stable. So WebAssembly, the WebAssemblyThreads proposal is actually much less than I thought it was because when you think about threads in C or Rust, you think about calling a function and having it run as a thread. WebAssemblyThreads is not that. What it really is, it's just it allows you to declare a memory as shared, which basically makes this WebAssembly memory behave exactly as a normal memory, but also like a shared array buffer in that you can have multiple views in real time onto the same memory from different threads. And additionally, it exposes these Atomics as WebAssembly instructions. Now, this is interesting because it doesn't actually allow you to spawn a thread. It just gives you these Atomics and this is actually solved by the language compiler or the runtime that you use to write your WebAssembly. So I did a diagram, I know people find these kind of UML diagrams scary, but that's actually what I found interesting, but it is more complicated outside of WebAssembly and it is inside of WebAssembly. So basically you write your JavaScript and whenever you compile something from C to WebAssembly with MScript, MScript will not only generate a .wasn file, but also a JavaScript glue code as it's called. And that piece of JavaScript takes care of loading the WebAssembly module for you, populating the memory with all the values it needs to be in there. And it provides the integration with a host system that the C language expects to be in place. So for example, when in C you call pthreadcreate, which is the function to create a thread, that is actually a JavaScript function that is imported into the WebAssembly. So when you call pthreadcreate, the call goes into JavaScript, it will spawn a worker, it will send the module and the shared array buffer over to the worker. The worker will also load the glue code and instantiate the same module on top of the exact same memory. And now we have main thread and worker running on the same memory with the same WebAssembly module and they can now use the atomics to synchronize. So from here on in, it actually behaves like a real C program, but all the magic really happens in... So what's the new bit then? Because we could have like today, you know, before this wasm feature became a thing, like we can still give WebAssembly a shared array buffer as memory. So there'd be nothing to stop us instantiating two bits of wasm that are actually using the same bit of memory in different workers. And they could be instructed to work on separate things at separate times. So is that the case? And if so, what's the new bit? Before you couldn't instantiate WebAssembly on a shared array buffer, that just wasn't possible. And you didn't have the atomics instructions inside WebAssembly. So that's what I mean. Like those are really just the new additions and they already exist in JavaScript. They're not new capabilities on the web really. The difference is that in JavaScript, we don't have any way of expressing complex objects on top of a shared array buffer. But any normal compiled language does exactly that. You can build complex classes and structs and they all somehow get represented in linear memory. And so that is this combination of old, actually kind of old JavaScript features, shared array buffers and atomics and WebAssembly's capability to bring the high level constructs to a low level virtual machine that in combination we now have real threads on the web which kind of was possible with workers and shared array buffers, but not in a comfortable way. Yeah, we've been using it with Scrooge now and it worked surprisingly well for some of them. Yeah, and so I looked into it and I was like, I was surprised at how small to an extent the proposal really is. And yet the combination of these things really turns it to something very powerful. So I'll put you on the spot a little bit because I haven't looked in detail at what we've done with Scrooge because it wasn't me doing that work. So it's going to be spinning at these workers. When does it get rid of those workers? Like, does it generate them per thread and then destroy them per thread or does it have a thread pool? I think it has to. So actually, no, that's not true. I think different compilers can handle it differently. I know that M-scripten takes a worker pool parameter. So I wonder if that is to an extent how it works because I mean, a computer has, you can spawn as many threads as you like technically, but you have limited amount of cores that can actually run any of these threads at any given time. My hunch is that naively, it will probably spin up as many workers as you call create threads and it will kill the worker when the thread is done.  I mean, workers, not workers, I think what we find these threads are still so new to an extent that there's so many things to measure and to optimize and to see how, with actual usage patterns, that how that affects performance. I know that Google Earth has been using them for a while. So I'm guessing they had, and I know they've been talking about it. So I'm wondering how much feedback has been flowing back between the M script engineering team and the Google Earth engineering team. But so far, threads has been quote unquote good enough to run all these use cases with good performance results in the wild. And that makes kind of hopeful at least. So is there any proposal to put in like genuine threads? Like, I don't know. I say genuine threads and that was kind of like, what? You want to spawn something without having to write the glue code, right? That's what I thought, that that would be the capability to somehow spawn a thread. No, I don't think so. I think what this would be, that would be WASI, where you have a standardized systems interface. So instead of, for each language, you reinvent how to mock out a thread creation call, there would be a standardized interface to the host system, which is what WASI is. Where you can say, open the file, create a network connection, but probably also spawn a thread. And then the WASI implementation, may that be in a desktop environment runtime, or maybe a JavaScript layer on the web, or wherever would just have this generic implementation. But that is still, I think, bit out being, you know, worked on being service. There's experiments, and that's really, really good, but I had nothing that I would say you could settle on for production right now. But yeah, that was basically the web assembly, handwritten version speedrun with Serma, and threads. Did you mention something about SIMD along the way as well? Is that a, what's happening there? SIMD is an even smaller proposal, because it just, well, it adds one new type, which is 128 bits something. And you can interpret these 128 bits, either as 432-bit integers, 264-bit integers as 816-bit integers, and just see them as vectors, and add them, and multiply them, and they settled on that, because that seems to be what will compile on most actual CPUs. Because web assembly by itself is just an intermediate format, right? Like when you download web assembly, it will get compiled to real machine code that runs on your actual processor. So you need to find a SIMD equivalent that will compile as many processors as possible. And then all it does is just add this new type and add a couple of new instructions. And then the compiler can decide whether the CPU supports or not, and either pretend to run those instructions in one instruction cycle, or just do it in series and pretend that it did it in one cycle. And that's, yeah, that's the other thing that we need to look into, but we haven't done it, have we? That's still one of the things we want to look into first. Actually, so the status of the threads, that's shipped, right? Like the... Well, so Ingvar, our colleague has done some experiments and has got it to work with both Rust and C++ and we have seen some pretty good performance improvement on those. SIMD is harder because often SIMD needs to be handwritten. Like the compiler often can only figure out very clear cases to auto vectorize, as it's called, to automatically turn a loop into a SIMD instruction. That only works in very few cases. The problem is that many codecs that have SIMD instructions use handwritten assembly, but not handwritten web assembly, but for other CPUs, those don't compile to web assembly. So we're kind of in a niche where we don't know how we can make use of the SIMD from these codecs to make use of web assembly SIMD, but I think we'll play around a bit and maybe he'll find something. But in terms of the thread stuff, the new thread stuff, what browsers has that landed in? I know it's in desktop Chrome. I know it's in Firefox desktop if you have co-op and co-op enabled. And I think we even have an Android Chrome soon if you have co-op and co-op enabled, which we have on Squoosh. So we also have future detection. So if you have support on your browser, Squoosh will just use threads. If not, you will get the old codec version without threads. So I think the reason for this is because on desktop Chrome, you get process isolation out of the box, whereas you don't get that in Firefox and you don't get that on Android because there's more of a memory concern. And that's when you need to sort of... Exactly. Yeah, close all the doors to outside content, which is the co-op and co-op stuff. We've got another episode on that. We can link to that. Oh, do we? Yeah.  Oh, we already did that one, you're right. ...with all the acronyms. Yeah, I mean, we lost shared our A-buffer for a while due to Spectre and Meltdown, and now we have found mechanisms how we can bring them back without them being a risk, which is co-op and co-op. And we should link that episode because it was good. Thank you. Well done, Noah. All right, that's it. That was my Wuppers and Beespeed run. Cool, bye-bye. Bye. Not good, right? Oh, no.