Hi there, my friend and friends. If you'd really like the simplicity of writing vanilla HTML CSS and JavaScript, but you'd like the extra features and other cool stuff you can get from having components and using things like scope styling and all that other good stuff. And maybe you have a simple project you'd like to sprinkle in a little bit of react here or you're using svelte and you just need it for this one little thing over there. Well, if that's the case, then astro is amazing. And it's something that I've been using a lot lately. I'm really in love with it. And today I want to look at why I think it's such a cool tool. So here is their website. It's nice and simple build the web you want. And really the if we jump on over the documentation, where they talk about some of the benefits here of it where we have the component islands server first API design zero JS by default. So it is a static site generator by default, which is really, really cool. It's a really nice feature that it has. So it just makes you have much faster websites as a default. And there's a lot more going on including UI agnostic. So it supports react react view svelte solid, lit and more meaning, you know, I can do it one way, you can do things your own way. But what I really like about astro, despite all of that is the simplicity of it and how easy it is to get started with it. For me, when I was using other static site generators, and I love like I use 11t for my personal site, I absolutely love it. But you're learning the static site generator, you're also learning templating tools, and you're jumping between different documentations and it can seem like a little bit much, especially early on. And I feel like astro removes a lot of that friction and it makes it feel like a very simple experience. And so today, I don't want to look at how we get started with astro. Honestly, if you just come and go into here and you do they're getting started, their docs are really good, you can just look through on the getting started, or you can go to the build a blog here and follow this tutorial. It's excellent. I definitely recommend it if you want to get started with astro. But this is more of a sales pitch with it. So what I'm going to do is take this page that I built recently. You know, I just use vanilla HTML CSS and JavaScript to be able to create it. And thanks to your recommendations, I'm looking at astro. It was suggested that I look at how we can modify it to be an astro project so we can see what some of the benefits of it are. So right now, everything is working. It's basically exactly what I had before. It's just regular old HTML with one important difference. As you can see up here, it looks like front matter. And it basically is front matter that's up at the top here in a regular what would be an HTML file, but it's my CSS that's coming in this way instead of through a regular link. Now I could use a regular link. The advantage of doing it through the front matter and importing it this way is if ever I do want to make a change to my CSS. So let's just change this to 1.5. I think we'll see those dots update right there. And so if I want to take advantage of the hot module reloading, then I just want to have this, it's, you know, just floating around in my source. I have my styles and my main. I'm just importing it this way instead. This does not get shipped like this. Remember, there's no JavaScript by default. So astro is going to do its magic behind the scenes, and it will just become a linked file. But for now, just bringing this here instead of having it as a link there is the only difference I've made from where my project was. And the first thing I want to look at is with this list of different icons we have here, because when I created that, I did it all the way down here. And it was kind of annoying because I had my list item, then I have this visually hidden paragraph, and then I have my image that I was bringing in. And maybe I want to, you know, bring in another one of these so I could come on to here, I could duplicate that, and then we end up adding another one here. And, you know, it's not that bad.  And then also, if I want to go and style it, I had to come in here and then I had to search around and find the right styling. It's right at the bottom in this case, and I'm in the right spot. But when you have a large style sheet that can be a little bit annoying, and people are always asking me about organizing their CSS, and what's the best way to organize it? Do I split things up into multiple files? And so we're going to see how Astro can really help with that as well. So the first thing I'm actually going to do here is I'm going to come into my project and in my source folder, I'm going to create a new folder called components, because we're going to create a component.  We're going to see how simple this is and how great it is. So in my components here, we're going to do a new file. And because it is this list, we're just going to go and look at what I called this. It was my icon list. So we're going to go with that. So I will do icon list dot Astro Astro supports dot Astro files, which will look a lot like just HTML files basically, sort of, we'll see some differences. But it also supports markdown files. We'll see that in a little bit later. It supports MDX as well. So there's a lot of cool stuff you can do. But for now, we'll stick with this Astro file. And I did start it with a capital I it's just the naming convention when we have our components. And so let's jump back to my index here. And I'm just going to take this entire UL that we have right here, I'm going to cut it. And it's going to disappear from here. We're going to go over to here, and we're going to paste it in hit save. And now we have a component basically. So what we can do is I can come back over to here. And where we had that, I can actually come in and do icon list. And this is getting autocompleted. I did install the Astro extension. And the nice thing with that is when it finds this, I'm going to use that. So we get my icon list coming in. And you can see it's come here. What the extension has done is it's actually automatically imported that at the top here as well, because it recognized what I was bringing in, which is really, really handy and makes life a lot easier. And so right away, you can see how we can sort of clean things up. I just do icon list and it comes in. And then if you want your icon list, it's right here. And you know what the name of it is. You can see it's right there. So I can just do my control P. I can start writing icon list. It's right there. And I can come in and make my changes to it. So that's that first thing that you can do. You don't have to do anything else other than that. And you're using Astro and you're sort of creating these different components, which is nice. You can be a little bit more organized with it. It's also really easy if you need to reuse this on another page or reuse it somewhere else. But the next thing we can do, which is really cool is I'm going to come down here and make a style tag. And this is where things look a little bit different. But what we can actually do is I can take all of these styles that are related to this icon list away from my main CSS file, and I can keep them here as well. And you can see all the styling is working right there. So that's pretty cool, right? I think that's really awesome. And this is one thing I like about it. The other thing that's nice is these are scope styles, meaning if I had an icon list class somewhere else, that this is not going to affect it. It's only going to affect what's inside this file. And that actually means that I don't need this icon list class on here anymore. I could just do this and then I could come down here and I could just have this as my UL. And that's here. We got rid of it in all the places. Let's just go through and make sure that all of them are. So that's my UL. And then like here, I don't even really need to do that. I could just do something like this. And I don't need to worry about this CSS bleeding out and affecting anything else. If we come and take a look in here, let's go look in our DevTools. We're actually going to see that things look a little bit different because Astro is adding these classes onto here automatically. And the class that we put on before, all that stuff I did, you can see it's just on my UL and then it's using the where to keep the specificity low and it's putting all those styles on there based on that class that's right here. So it's a really nice way to work with some scope styling without having to do anything. This just works. It's super simple and it's that next step that you can do. And then you're getting that separation of files where you know where your CSS is because you're just going into that component and your CSS is right there. So now if ever I need to change this, I can just remove one and we get one less I should have taken the LA as well. But now we're down to four and so on and so forth. But we could even take this another step further if we wanted to just to run through this practice again. And to get content that's maybe a little bit more dynamic. So what I could do here is actually remove let's take all of these allies off. We're going to take everything out. And I'm going to go and open up my components and make another new file in here. I'm going to call this icon list item dot astro. And what I'm going to do is paste this in here. But in this case, we want things to be a little bit different because I mean, I could come here. And then so here I could say icon list item, the import is automatically getting brought in by the astro extension. So again, definitely make sure you have it. And now I should be able to get one icon. And let's get another one two, three, four, five. One thing you'll notice now is when I do that, this styling isn't actually coming in and doing anything because the allies here, it's looking for ones that are in this file. And it's not it's not looking for the ones that are in here. So that's really important is like, remember, I said the styles are self isolated. So the styles of my icon list item are isolated to the styles in there. So now what I'd probably want to do is actually take all of these styles and we can take them. And there's ways of actually making global styles, even if you're in a scope style like this, but we'll just come here, you can open up a style, paste that in. And now our styling for these are all here. My styling for the list itself is over here. I don't know if I'd necessarily take this extra step like this, but I just want to show you how sort of this next step of something we can do because right now we have all these HTML and we want to be able to update those a little bit easier. And this is sort of as complicated as things are going to get at least for what I'm showing right now. But what we want to do is I don't want HTML to be here. And I want this source to be something that could be updated. So we need both of these to be a little bit more dynamic. And so to be able to make something dynamic content, what I'm going to do is wrap this in curly braces and I'm just gonna write skill here because this is the skill that we're talking about. And I am getting an error right now. Don't worry about that. And we're going to come here and we're going to do the same thing. We're going to write image. And whenever we see these curly braces, it basically means that there's some JavaScript involved somehow that's coming into what we're doing here. And it's giving me a syntax warning because right now it's saying I don't know what these are. So what we're going to do is we're going to come and add some front matter up here with those three hyphens right there. And then what we can do is we can say const. And we're going to do skill and image. And we're going to say is equal to astro dot props. And now you can see that the syntax highlighting is gone from here. And what the astro props are is whenever we use a something like this, we can pass props through to it. And then so we're saying that the skill and the image we're deconstructing the props here. And we're finding the skill and image from there. And then we can insert them dynamically. And basically, you just need the names to match up. And you're going to have that there at that there. And then we can jump on over to here. And I can write skill is equal to HTML. And I can write that the image is equal to the path to my image, which I think was HTML dot SVG. And that one's actually not going to change. So let's go and grab this next one. And actually, we got to save here, they should all disappear. There we go. I was like, wait, why didn't there we go? So now what we can do is we can come in with the same type of thing. But what we're going to have here is this one was my CSS. And then I have my CSS coming right there. And let's go and take a look in here at what's actually getting generated. And you can see that I'm getting my Li, then I have my paragraph that has the visually hidden with HTML. And then I have the HTML icon. And then over here, the visually hidden has the CSS. And then we get the path to the image there. So it's just taking this text here, and it's inserting that where we have skill here. And then what it's doing is grabbing the path to my image right there. And it's inserting it where that source is, and it's doing it separately for each one. So really nice, simple way to be able to build out our components. And then if you have other ones that you need to do, well, it's super nice and easy to add those extra ones in. And there we go, we have all of them brought back in right now. Again, it works really well. It's relatively simple to do. And this would definitely be the first type of thing I'd be using on a regular basis. If I started bringing in components and all of that through Astro. So super, super handy. But another thing we can do, and this may not be the best use case for it, but I still think it does work where we're going to look over here at these jobs that I brought in. And you can see we have the list of jobs that come down underneath my head here. And what I want to do with that is let's come and make a new component. So we're going to do a new file. And I'm going to call it job listings dot Astro. And then we can jump back on over to our index. And we can go and take a look in here. Here's my individual job. So let's just go and take this entire job listings right here. I call the job experience. We'll grab all of this, cut it out of here and go over to the job listings and paste it in. We can close this extra stuff down. We don't need that anymore. Hit save and it will disappear. And just like before, I can come in now and save my job listings. And once again, Astro has automatically imported that up here. So that's super and it's showing back up. We could take my styles and bring that over as well. I definitely would actually do that if this was a real project and have everything together. But what I want to look at here is making this a little bit more dynamic. And so to do that, what I'm going to do is in here where I have my source, I'm not going to be in any of these, we're going to create a new folder called content. And it should not be inside my styles. We want that directly in my source, we can move that over and I have this content one that's right here. And the reason I'm creating content is we're not going to be creating components here. I just want to create the content around each one of these jobs. So for this, I'm going to be using markdowns. And then so in here, you might have blog articles, authors, you could have tons of different stuff. So what we'll do is we'll make a new file. And I'm just going to put jobs and then job one md. And I'm going to do this as a markdown file. So it's content, then a folder jobs. And then we have job one that's in there. And I've already set this up as a markdown file. So I'm going to paste that in. And so you can see that we have that right there, the company, the role, the year and then I put the description right here. And actually I've gone and just now just really fast made job one job two and job three here all in markdown files just to speed things up a little bit. And so we have all of those there, they're all ready to go. And they're just sitting there is markdown files. So what can we do with that? And this is where definitely we're stepping things up a little bit into a little bit more JavaScript and stuff, but it's still not going to be anything that's too complicated. And we're going to come back here to my job listings. And in my job listings, let's make this a little bit bigger, just so we can see everything that's going to be going on, or we'll keep one of these jobs here, actually. So let's just leave that one. But I'm going to delete all these extra ones. So we'll just come down, delete all that. And the only reason I'm even leaving this here is I want to use it as my template for what my jobs are going to look like. So what we can do is we're going to put in the curly braces here like that because again, anytime we see that when it's inside regular HTML, it means that we're going to be writing some JavaScript. But remember, Astro does ship zero JavaScript by default. So this will be static files that are generated from what we're doing here. Now, for this to work, there is another little Astro thing. So I'm going to come up here and we're going to create our front matter at the top here. And I'm going to create a new thing. So we're going to say const all jobs and we need to collect all our jobs. We want them all, you know, where can it find all the information for the jobs? So we're going to do it equals a weight and you might be going, where do you find this? Don't worry, we'll talk about that in a second. I'm going to say astro dot glob. And there's different ways we can actually do what we're doing now. We can create collections as well. But for something simple like this, I find this is the easiest way to do it. And then we just basically need to find the file path. So we're going to go a step back, right? Because right now we're in our components folder. So I want to go out of the components folder. I want to go into my content. Then we go to jobs. And then we're going to do a star dot md. So let's just make this a little bigger so you can see everything I put there. So we're just finding that and we're just using the glob of star. So it's finding all the markdown files that are inside of jobs. And so those are all going to be collected together. And that means we can now do something with them. And this is where things get kind of interesting. And so we're going to be doing some JavaScript. And what we want to be doing here is we're going to go to our all jobs that we have up top. And we're going to map over them. And in this map, what we want to do is look for go through each one of the individual jobs that is part of this. So we're going to put in a like that and then like that right there. And so now we want to do something. So let's start off with the first thing. We're just going to grab this paragraph that's right here. And let's bring it in there. But obviously we don't want it to be 20. We want this to be dynamic. And we can't do like before where we said year because where would this year be coming from? Well, it's coming from this job and we want each one to be separate. So we can actually get that information from here. So I'm going to say job dot front matter dot year. And now if I hit save, we have all those years are popping up at the top here, because it's going through all three of those jobs and it's generating that. Huh, that's kind of interesting, right? And you can see it because I didn't have a lot there. Prettier was jumping in and trying to solve things for us a little bit. So let's come in and do a little bit more work here where we're going to have this should be inside of a job class. So we have a little bit more going on. Then we can have my H2 that's or we have this whole you know what, let's just grab all of this and cut all of that out, delete this year and paste that there. And the reason we have this front matter here, we have job dot front matter dot year is just because if we go and take a look at my jobs, let's just go and look at job three here. Anything that's in this area here is considered front matter. So we have the company, the role of the year. These are all different pieces of information in the front matter of this markdown file. And so jumping back over to here, we can change this. And now we just do job dot front matter dot role. And then the last one right here, you can probably figure it out job dot front matter dot company. And I'm going to save even though we haven't brought in the description for these yet. And we can see, look at that, we got them all coming in. So cool. Awesome. So I'm really happy with that. But we have this last bit down here that we still need to solve. And that one obviously isn't being done with front matter, that's the actual content down here. So for that, how can we get the content in? How do we know what that is? And there's a few different things we could actually get from here. Now, I'll show you one thing we could do, we could come here and do job dot raw content. And this would actually work right now. And you can see it's all coming in. But I'm not necessarily going to recommend it. Because what it would do it lets us come to job three here, and we're going to add another paragraph. So here is a second paragraph. And when you're doing front matter line breaks like this, create new paragraphs. But if we go and look at this third one, the second paragraph is not because it's raw content. It's just grabbing everything in here like it's a string. So even if I, you know, tried to make this a heading as well, it's not going to work. It's literally going to bring that in, which does not look great. Now, the other thing that you might find when you're digging around is we have more than just this. We also have compiled content. So we could come in and do compiled content. But oh my goodness, now we get our tags and everything. And that's a complete mess. We definitely don't want that one. So if neither of those are what we actually want, what is it we want? And this is definitely one that is a little bit different looking where we're just going to do a paragraph like this. And what I'm going to do on this paragraph to be a self closing paragraph, which is kind of weird. And this is where we're getting away from this idea of like these are kind of easy to figure out, in my opinion, if you're coming from native HTML and CSS, you know, we're going to care we're looking at the front matter. We've brought in Markdown, which maybe you're not used to, but it's the easiest thing to learn. And you don't need to use Markdown. You know, you could just have the content coming in. You could do this like we did those lists earlier. But this one's a little bit weird where what I'm going to do is a set HTML. And if you're used to any JavaScript, this is very similar to doing an inner HTML on something inner HTML, right, where you're just injecting HTML into something. And this also does come with the caveats of using inner HTML. So you do want to be a little bit careful if you are using it, make sure you trust the data source that where things are coming from, you know, if you were allow it, you know, if you were opening this up to like third party people being able to like use a CMS to bring in the content that's getting injected in here, maybe that would be a little bit dangerous. But if it's just for your own personal site and you're in complete control of everything, then you should be fine. And what would the HTML be? And we saw before the compiled con job.compiled content. The job compiled content was giving us actual raw HTML. So now if I had save on that, you can see it looks back to normal, but we are actually getting like full Markdown support coming in through here. So in this case, I don't actually need that second paragraph. Maybe it's a little bit of overkill for what we built here because we saw the rock content did work, but I just I did want to like highlight how we could do something like that. If you needed a little bit extra of being able to come in here. Another option instead of doing this, if you find that's like a little bit extra is you could just not have the content here and you could come here and put description, right?  That'd be completely fine as well.  And that would bring in the description. And so that's definitely another option if you prefer going that type of route instead of doing it the way I did here, but I figured I'd show both options just so we have different ways of achieving the same type of thing. And what's really nice about this now is, you know, that took a little bit of setup, though really creating this is no more work than it really was before where we had to create everything. But the advantage of this now is when you need a new one, you just come here. I'm going to copy all that. We can come here, make our new file, which will be job or md and I could have, you know, 20 maybe way back in 2010, I worked at some some other company as a sales engineer and hitting save on that. I now have the sales engineer for some other company right here. And it just took seconds to generate. And it's right there. So it just makes life a lot easier for that. If you have blog articles, other things, it's really fantastic. And this is really just like an overview of a couple of the things I really like. So we had, you know, creating components, having the scope styling, which is absolutely amazing, is really nice for organizing your CSS and you could stop right there, or you could add in more dynamic content, or you could take the next step to going to what we were just looking at now and adding more stuff on top. And I just sort of wanted to wet your appetite and show you some of the things that are possible with Astro. Let me know in the comments below, we could do something definitely more in depth starting from scratch, though I really well recommend their documentation. It is fantastic and a really good way to get started as well. With that, I would like to thank my enablers of awesome Andrew James Enrico, Michael Simon, Tim and Johnny, as well as all my other patrons for their monthly support. And of course, until next time, don't forget to make your corner the internet just a little bit more awesome.


Okay, we're back. We're live. It's the one o'clock clock. I'm here in likable science. Here's where I am. I'm Jake Fidel. That's Ethan Allen. He's the heart of likable science and he's likable, but he's also a scientist. In fact, he's our chief scientist here at ThinkDec. Thank you. Welcome to your show, Ethan. Glad to be here. So we're going to do something that's really interesting and it springs off an MIT newsletter article, and it's all about the genome, but it's also about artificial intelligence and how it has helped us, how artificial intelligence has helped us look at not only the human genome, but other species not too far from humans and look at that genome and tell the relationship. It looks into heredity and descendancy, if you will, the evolution of the human species. We know more about it now than ever. So what happened? What's the news story here? Well, the news story is a group applied very smart deep learning algorithms to examining a huge trove of data, modern human DNA data, ancestral human DNA data from old Homo specimens, Neanderthal data, denozovan data, which denozovans are another line of... Like Neanderthals. Like Neanderthals. Another place in the world and in the chain. Right. Australopithecine DNA. All kinds of different DNA. And these DNA records are incredibly sort of like giant code books. I mean, there's long strings of sort of meaningless strings of letters, which are coding for not only our 20,000 genes, with several thousand of these letters making up each gene, but huge stretches in between the genes of what used to be called junk DNA, but is now recognized as being very important. It's not so junk after all. It's very, very important. And reading the stuff and finding patterns within it and finding which patterns look like what other patterns that you're seeing in these other groups. It's a huge mind-bottomly complex task, and then matching that with what we know from bone structure, skull measurements, human migration pattern that's revealed by archaeological evidence. I mean, there's sort of multiple data sets stacked on one another. And the bottom line is what I find out is that we not only have sort of the lineage we knew, our basic Homo lineage. Some years ago we actually, we carry Neanderthal DNA, which had for years we thought we never did. I think I know some of those people here on Bishop Street. We all carry some of it, and some maybe a little more than others. And then we all carry this Denilovian DNA too. Again, different groups carry different amounts of it. But it turns out that's not enough. The AI found there is still missing something else we are carrying. So there's some other ancestral group that we have not yet identified. There is some thought that it's a, that the other group is a hybrid of the Neanderthal and Denilovians who went off and formed their own special group for a while and then came back and interbred with humans. But that's a little speculative still. It's mind-boggling. It's like a night in the museum because you get to see other species and you get to connect up, except it's not speculation anymore. It's not based on 19th century science. It's based on 21st century science. So now we can confirm exactly how evolution worked. This is different than before. Yeah, it's a great way to look and see a refinement of a story. We used to tell this very sort of simple story of human evolution. You know, one branch out of Africa, one migration, and now it turns out, no, it's much more complicated. There was an early exodus that spread widely and developed in these other groups. A later exodus of actual, our homo sapiens species that then for some while interbred with several of these other lines and various times and places and before they all went extinct. Well, it's thrilling. Thrilling. Not only our survival, but their demise, their extinction, as you said. So let's unpack some of that, though. You know, about six months ago, I went to a program offered by Kamehameha Schools and Ocean and across the street. And it was a sort of combined program in the in the facility that Kamehameha Schools has near the university. And there was a class and there were the people, a very diverse group of people, including some judges, believe it or not, who were in this class, what to learn artificial intelligence to get a smattering of it to see. And they had a, actually, a Japanese national gave the program and he got right into it. We all had computers and we all learned the basics of artificial intelligence. And, you know, if the one thing I carried away from that, it's a matter of comparing data, comparing images, mostly in that class and many, in many applications of AI.  And then you compare and you can see. It's like facial recognition. You can see the face because it knows the face. It's already done that and it requires a lot of computing power and it requires, you know, a fair amount of sophisticated programming. But fact is, you know, this is not all that complicated. It's the applications that are complicated. And that's what China is doing right now to apply it, you know, to various problems. So tell me how artificial intelligence works in the context you are describing as far as we can go anyway. Well, let me step back for a moment. Yeah, all human learning, virtually all human learning can really be said to be pattern recognition. I mean, that's sort of what we start out being able to do is, you know, as an infant, you're distinguishing one shape from another one color from another, you're beginning to be able to group orange objects against blue objects or triangles against squares. I mean, this kind of thing apples against oranges.  There's bicycles, there's cars, there's motorcycles. These things all have their patterns you're recognizing. And so we learn the universe around. Right, exactly. And they've now taught computers to basically do that same kind of recognition, pattern recognition on very sophisticated levels. And they look around their universe is these monstrous data sets, these long strings of numbers, or letters, or gazillions of images. It's not only patterns in terms of graphics, it's patterns in terms of data in general. Yeah, it can be sequences of numbers are certainly patterings, right? Sequences of letters, I mean, words are patterns, you know, so it is it's all it's all sort of pattern recognition, and how much you can ask it to match things very precisely, or just sort of say your your goal is to get generally near near to it. And with that kind of thing, they now teach computers to teach themselves to learn all kinds of things. They now have computers that can play multiple games can play go and chess and other games and play them better than people play them. And they've taught themselves haven't been taught and programmed to play these they've actually played millions and millions of games against themselves and learn the patterns that every game they play, they learn right. And so what we have is recognition at a much higher level. We have learning, we have computers teaching each other. What we don't have is awareness. We're at the lip of that, I think it's not too far away. Right. But for now, it's it's very sophisticated learning about the world around us and teaching other machines to learn about the world. So what is machine learning? Is that what we're talking about? That is the other terms, machine learning, artificial intelligence are often you somewhat interchangeably people who are deeply in that field would probably argue those are two subtly different things. But to me, they're pretty much the same. Yeah, but yeah, it's it's a growing them and the applications as you say are enormous. We we just had people a few weeks ago from Ocean it on Ocean it has developed now a camera on a drone hooked up to artificial intelligence that can fly over a storm scene and tell whether telephone holes are upright or down and then report that back to the emergency crews. So they'll know where to move where to bring in how much equipment and how many crews so they can get communications restored quickly. Yeah. Yeah. And all it's based on I mean, fundamental level is a you have a you have a pattern of a telephone pole upright, you have a pattern of a telephone pole bound or partly down, and it's going to be able to tell that by comparing the patterns as they teach it initially with some clear examples and keep giving fuzzier examples and the computer teases them out until it understands what that difference is. And, you know, again, how to make a reasonable judgment on that. Yeah. So you may not get a perfect right result, but you get a reasonable judgment, which is no more or less than what you can expect from a human being on on the scene there. Right. And again, they use this now for radiological examining radiographs, x-rays and all I guess is that would be more accurate than a radiologist. Yes, because it's incredibly tedious work to look at image after image after image of these sort of gray scale images with little darker spots and lighter spots. Sure. It's mind bogglingly tedious. And but a machine doesn't get tired. And the machine says, does this match my image of a tumor? Yes, no, maybe. Yeah. Yeah. And run through it. Based on so many samples, more samples than the radiologists could ever have available to more samples and all the radiologists in the country could look at it in 100 years. Wow. Changes everything. Yeah, exactly. That's what this study did. So apply then the, you know, the notion of an artificial intelligence machine learning to what they did here to compare the human genome with the genomes of these other species. Well, okay, I haven't thought about this in real depth, but basically, it is like you had multiple sets of multi volume encyclopedias all stacked around and one huge set for current human beings, one huge set for Neanderthals and one huge set for Denizovians, huge up for Australopithecines, huge sets and then other sets of encyclopedias for migration routes, other sets for comparison of bone structure, other sets of encyclopedias for skull structure. And this machine essentially read every single word and every one of those sets addiction of encyclopedias and said, Oh, look at this, this piece of text here matches this piece of text here. I think these guys are pretty much more the same. And this doesn't quite match it, not quite as closely. So they're a little more distant from these guys.  It's the best thing all that they built a tree of life, basically a human evolutionary tree that that's probably considerably more accurate than anything we've had to date. Yes, let me go back for a minute, though. So what we're looking at is the bones, the composition of the bones. We're looking at the skull structure, because that's important in all this. And in fact, the MIT article had a picture of all the skulls of these related species, species related to human. And then you're looking, I mean, are we looking at DNA? Are they able to extract DNA from some of these, you know, prehistoric bones and skulls? Yes, the first Denizovian they found that they had one bone from the little finger and they used a piece of that bone to essentially get the DNA and show that she was of a different species. She wasn't Neanderthal, she was not, she was not Homo sapiens, she was something else.  You know, I saw a something on PBS or CNN not too long ago on cable, about a teenage Mexican girl, or founded Mexico, because you can't say Mexican, that was, you know, from thousands of years ago, who was alone and being chased by either animals or humans into a cave. And she died in such a she fell and broke some bones when she fell and she died there on the spot.  And they went back and looked, and they did find DNA in old bones, they were able to do it. Right. And they were able to find out so much about this Mexican. I mean, this woman girl found in Mexico, her age, you know, her life history, what made her strong, what made her weak, how she spent her time. You know, that's the magic of science. You take the data, and you evaluate everything you have, and you come up with an analysis of all kinds of things that you wouldn't expect. Yes, I was just reading a fascinating analysis of a woman who studies Mayan skeletons and has developed this theory about the very sophisticated ritualistic sacrifice that Mayans did based on subtle markings on bones that she she has indicated a very highly sophisticated operator, basically slicing people's chests, you know, and being able to pull the still beating heart out out of the chest. Wow. But yeah, they can now find DNA or markers of DNA, very, very old stuff, and they're constantly pushing that boundary back further and further and further. Yeah, so I mean, but that's just one vector.   And okay, then you look at it and you look at the you know, the biochemical composition of it at a molecular level, I guess. And now you now you have some data. And really, we stop there. And then we bring in the artificial intelligence, right? And you compare that with other DNA you found elsewhere. And now you start to get this is where the challenge really comes for the sciences. What How do you make something of this data? Right, you know, exactly. These are literally just strings of letters or strings of numbers, depending on how you want to look at it, just long, long, hundreds and hundreds and hundreds of thousands and millions of these strings letters together. And yeah, how do you start sorting through those? How do you break them up in meaningful patterns that sort of match our chromosomes? How do you then look at those and determine how much of it is how similar to another sample that you may have? What are you counting as similar? What are you counting as different? Yeah, it's really stunning stuff. And then of course, matching completely different kinds of data too. Sure. And one of the elements is carbon dating, which was so for the girl in Mexico. They want to find out when, when did she die? And it's not just looking at the physical specimens they were able to pull out of her. But also the carbon dating on how old those things were and lock it in. And then you can start really developing an evolutionary pattern, draw the chart. Right. Yeah. And now there's all kinds of other dating to they can look at decay of very relatively rare elements that decay in certain ways over even longer periods than carbon 14 decays and get extract time lines much further back now. Can we take a digression on that? And can you tell us how carbon dating works? So carbon dating works on the fact that there are a number of different isotopes of carbon. Most of the carbon around us is so called C 12 carbon 12 has 12 protons 12 neutrons or six six. There is so called carbon 13 and carbon 14 have extra neutrons in their nucleus. Prickly C 14 is a little bit unstable. It's it's a good molecule hangs to our good atom hangs together pretty well. But for a while it tends to like one of those neutrons pops off and disappears.  But you you look a lot of those atoms together. And what you find is, after about 5700 years, there's about half the amount of carbon 14 in any sample than there have been when you when you put it in there. Now, again, you're talking about, you know, when you're dealing with a little speck of materials, they're talking literally about trying to count. Yeah, count atoms, basically. So and so you can see carbon 14 can take you back, you know, some 1000s and 10s of 1000s of years. But after a while, there's not going to be enough of it left to do the counting. Yeah. But they're, let's say there are other radioactive elements that have much longer half lives on that that have half lives in the orders of 20,000 and 40,000 years. And so those now you can stretch things back hundreds and hundreds of 1000s of years in terms of doing timelines. So assuming you have enough material, and assuming you have, you know, the right equipment, which is expensive and major. How accurate a reading can you get on that? Can you get it to one year, 10 years, 100 years, what? I actually do not know off of using just one technology, but what what now happens is that typically science apply a lot of different analyses to a thing that they'll look at the kinds artifacts that are associated with a given skeleton. And there the archaeologists have built their own timelines of when these kinds artifacts were built. They'll look at pollen records. And again, the climate records will tell you that should be more or less on kinds of pollen at certain times. So they'll look at all this stuff together and they can sometimes get this stuff quite quite down to a relatively limited number of years. So you look at everything, right? And let me let me let me say that we're talking in the pronoun of a single person. But if you get machine learning to make this comparison of all these data vectors, so to speak, data can, you know, constituents, then you could probably do it better with with more data and get a better result, right? You couldn't do it without without machines now. I mean, realistically, even when I was in graduate school, a graduate student would spend their entire graduate career sequencing one part of one of the genes of 20,000 genes of the human genome. And now they can they can run off a whole genome of a person in a few minutes. And you don't need that student. No, no, you got machine that'll do it. The student has to be off doing something right more, more amazing. Yeah, at a higher level. But but this is the beauty of it. And you get all these multiple data sets and data sets that are very hard to compare. It is it's an apples and oranges kind of data. It's building the spreadsheet. It's building the fields. It's comparing the fields. Right. It's as they said in this Nature article, it's not just saying X and Y and here's a line. There's a thousand dimensions and you're making some squiggly pattern that connects these thousand dimensions in some reasonable way. And it's it's it's mind boggling complex. But the more we can get machines to do this, you know, the less mind boggling it is and the higher we can go on the thought change, but I want to unpack one more thing. You mentioned in that stream of vectors, geographical location, which I mean, you know, we know that humankind, at least the Homo sapiens species came out of the East Rift Valley in Africa and East Africa. And it went from there and they have maps you can open any any book and find not any book, but many books. Right. You can find maps of how, you know, the species traveled over, I don't know, 120,000 years or something like that all around the world and populated the same genome everywhere. And that's really interesting because because the evolution of the species depended in substantial part on the environment. humankind has a relationship with the environment. It tests us and the survival of the fittest is based against the survival of the fittest in that particular environment. Right. Absolutely. So tell me how they get the data, the geographical data you were talking about as an element of this analysis. So again, different groups of scientists have been looking at different aspects. So there are scientists who study the ecology of different regions of the earth and its paleo ecology is looking back at the ecology a long, long time ago. So they will, for instance, drill cores of mud out of lakes and they will look at the layers of mud and turns out layers of mud are very much like tree rings, particularly in temperate climates. Different things fall into different seasons. They pack down in very neat, orderly sequences. And again, by getting into one of those layers and starting to pull apart, what's in that layer? What are the shapes and tines and patterns of the pollen grains? Are these grass pollens? Are they tree pollens? You know, you can begin to infer, is it warmer? Was it colder? Was it wetter? Was it drier? Was there more thing, you know, more here? You get little parts of insect exoskeletons in that. And again, from those they can tell, was this a dry land or was it a swamp? So again, you've got that kind of data that can tell you a great deal about the environment. So once you know about the environment, you know about the challenges that the species had in that environment. Right. And you can get a beat on how that might have changed the evolution over thousands of years. Right. If you were stronger, taller, if you were capable of dealing with cold weather or warm or disease and all that, and so that would be a function of your environment. Exactly. And gee, God, you know, that actually opens the whole door to climate change and how climate change might affect evolution. But let's not go there yet. Let's have a break, okay? Okay. That's Ethan Allen. He's our likable scientist here on likable science. And he's our chief scientist and he knows a lot of stuff. And, you know, what I'd like to do when we come back from this break, Ethan, is examine what, what in fact we have learned about the greater processes of evolution from then till now, and what, if anything, we can infer and how, logically, scientifically, we can infer it going forward on evolution to follow. Oh, exciting. I'll see you right back. Hey, loha. My name is Andrew Lanning. I'm the host of Security Matters Hawaii, airing every Wednesday here on Think Tech Hawaii, live from the studios. I'll bring you guests. I'll bring you information about the things in security that matter to keeping you safe, your co-workers safe, your family safe, to keep our community safe. We want to teach you about those things in our industry that, you know, may be a little outside of your experience. So please join me because Security Matters, aloha. Okay, we're back with Ethan Allen, our likable scientist here on likable science. So Ethan, you know, trying to make sense out of this, it's a big question. I don't know if it was covered, I really wonder that it was covered in the MIT article, but what, what have we learned? What can we learn? Why should we care, really? Because, you know, these sound like profound scientific experiments and, and findings, but at a very scientific database level, what, what larger picture can we get about the evolution of the species or all species? The evolution of all species on the planet from learning about the connection of the homo sapien and these various other contributing species? Well, I mean, for one, you can, you can look at this and say, and ask a simple question. So why is it that we have retained certain neanderthal genes? What, what value have those genes brought to our species? What good did they do to people who possess them that enabled those people to reproduce and keep, keep that gene in, in the germ line, you know, and what, what other genes didn't make it? What did those genes do? And yes, they, they are now actually just beginning that line of investigation, trying to find out what that neanderthal DNA does when those genes get turned on in our development. And some of it has to do with aging processes, they already know that. Some of it may have to do with, with some brain development. This is there just sort of scratching the surface of this whole, this whole area now. But it's the kind of thing that, yes, you can learn a whole lot about because genes are sort of expensive. They're biochemically costly to make and to maintain, and if they're not good, they rapidly get dumped out, that the people who possess them don't reproduce. That's, that's ultimate marker of a bad gene, right? Yeah, yeah. And conversely, the marker of a good gene is, you've produced a lot, lots of descendants, right? Yeah, yeah. And so, assumedly, the genome that we have today is, represents pretty good genes, you know, that it's, it's scavenged from other species as it were, which is really an interesting idea if you think about it. We don't often think of ourselves as stealing genes or borrowing genes from other species, but we, we now know we have done this in the past. Yeah. The second part of your question, of course, is much tougher, is where, where does this take us? Because we have now a, you know, biological evolution that is proceeding along and has always proceeded to perfect the species within the environment. Right. And if the environment is changing, that makes it all the more complicated. So it's biological evolution is never going to have, is never going to hit perfection, right? Because the environment is changing, but it's always going to track the environment in some sense and try to match it. Yeah. But now we have an environment, a physical environment that's changing much more rapidly than it ever has before. We have a cultural environment and we have a technological environment that all of which can influence the genes. And we're now able to go back and start actually manipulating the genes due to our technology and our culture, right? And literally physically manipulating the genes. We talked a while ago about the CRISPR babies that have been born, that the genetically modified human beings that have been born. Yeah. So, and so your question about where this might take us, I mean that. It's really unanswerable. Yeah, yeah. There are too many variables even from machine learning, I think. Because one is we, you know, we don't know the effect of climate change and that's a study all in itself. Right. So you can't throw any assumptions in. You can only say it's going to change and dramatically and more quickly than before. Secondly, the species itself has the technology to change the genes and not only the genes in one generation, but the genes going forward. We can modify ourselves and our progeny. That's pretty scary. We can do a good job or maybe not. And that's unpredictable also. Right. So I was just reading a fascinating article about honey bees. And honey bees in hot weather have to stand in the entrance to the hive and fan to get cool air going through. But it turns out they're not doing this sort of randomly. They are standing in the hottest places of the entry of a narrow entryway and fanning there and not in the cooler places and purposely sort of setting up a good draft flow. Furthermore, different bees have different thermostats for that that behavior so that as a colony they can even cooler whether you'll still get some bees doing it hotter whether you'll get different sets and maybe more bees doing it in a very hot weather maybe a whole bunch of bees will be doing this. So yes in some sense as the temperature global temperature rises will we decide at some point we better start manipulating our genes to be more thoroughly tolerant or tougher to be able to withstand flooding or you know or whatever you know traits we want to pick. And that gets to be a very interesting kind of scenario right. Challenging and scary. Yeah yeah I mean it's one thing to go and fix a genetic problem. Somebody has a genetic defect that you can go in and fix early on and let the live a relatively normal life. That's grand and virtually no one will argue that's that's allowable. But it's not that simple. Right now once yeah and who gets to have this technology how would we decide who to use it with. Maybe you have machine learning artificial intelligence can look into the future and crank all these variables together somehow and make some speculative you know expectations and guesses and whatnot and tell us about the future of the of the human race. I don't think I want to know right now. It's too scary. It is it's a little frightening to look at. Thank you Ethan. Yes indeed. Great to talk to you as always. As always.


So before we start I'd like to get to know you of the audience a little bit more So my name is Pierre. I'm developer in Azure IoT So we work mostly on the cloud side and I do SDK work so both on the device and the service side to help stuff connect to Azure IoT What do you guys do in general are you more on the embedded side or cloud side? So who's embedded? developer Right low-level bare metal stuff cool What about cloud architects and you do everything cool Okay So more of an embedded ground who is doing well, I guess everybody's doing embedded Linux Anyone never touched them Microsoft embedded thing. Okay, that was a while ago Used to be used to have a pretty That back in the days. No way a window C was was a nice play at some point We do have a thing called IoT corp. That's definitely not the topic of today's talk because Linux crowd Cool shall we get started Yeah, I guess I guess we're gonna get started. All right So welcome. Thanks for Sticking around. I know I'm the last thing before lunch too. So I'll try to finish on time if not early We're gonna be talking about Azure IoT in general. It's going to be another view I will get into a little more of the specifics of that component called IoT hub Which is the thing that you we wish you would connect your devices to and So Basically the agenda is and answer these two questions How are we thinking about connecting devices and hopefully making it easy? If it's not easy enough you got to tell us And the other thing is and that's a question we get from a lot of customers It's like we understand that when we connect things magic happens What's magic and what do we do once we have all these devices connected? So we'll try to cover that a little bit too Let's dive right into connecting stuff and So these little blue squares, let's say these are devices They're gonna have to talk to something and so one of the first components we have been working on are Field gate what we call field gateway and protocol gateway Field gateway the ID is really Your devices are not or cannot connect to the internet Maybe because they only speak Bluetooth or Maybe because you have security concerns or you know, whatever your reasons are so we need an on-premise solution That helps you that that can connect to devices and then be a single point of contact between all your devices and The cloud and so we build an SDK for that the field gateway SDK The second thing we figure is that you might have already have devices Connected to the internet and these devices probably speak some sort of protocol So I'll go in the details of the protocol later with IOT hub with support a few of them, but maybe You have your own you you speak a protocol that we don't support yet And so it'll be ideal if we could have a solution running in the cloud in our data centers that would speak your language and then trend Transform that into stuff that I Azure IOT can understand and that's the goal of the protocol gateway the main thing and I think that keeps me busy every day is Azure IOT hub and this Piece of clouds cloud software is basically a huge data ingestion Mechanism it has endpoints for you to send billions of messages from millions of devices And this is one of the things we do kind of well in Azure. It's a scale We have so so we built Software that scales and allow you to send tons of messages.  So we have a bunch of building blocks that you can assemble together to build your own IOT solution And we'll get into some of the building blocks and some of the stuff we do to help you discover all these building blocks later But we are gonna start at the on the device side and we're gonna talk about the different primitives that we have to To talk to Azure IOT hub All right, so in order to talk to Azure IOT hub the first thing that we need from you is a device identity and and so The device identity for us is basically two things. It's a unique identifier and It's a secret that can be used to encrypt communications between your device and and the cloud and this is one thing We're a little bit strict about Everything has to go over TLS. We do not do I guess this is gonna get a few chuckles, but we do not do unsecure stuff So it has to be over TLS So Whether we use symmetric keys And so you start them in the registry in the device registry and then you find a way to start them on the device For example in a TPM and then you generate a token and you encrypt that TLS connection with the token Or if you're using X5 or 9 certificates We need to share some sort of secret in order to secure the connection And we'll get into the registry a little bit later Now once we have Yeah, one more interesting things We actually don't share one secret. We share two secrets so that if one of them gets compromised you can roll the keys and And and keep using your device without having to taking it offline or worry about About maintenance ascending a technician or something like that Obviously you can you we have APIs so that you can create devices one by one But we do like to brag about scale. So we also have bulk APIs that enable you to Provision, you know as many devices as you want in in in one API call Now now that your device has an identity it's gonna want to connect to Azure And I have a slide later, but I guess I could have started with that we support three different IOT protocols IOT ish HTTP not really IOT, but it's got to be there It's nice because it allows to punch through firewall doesn't scale at all. So You can do HTTP if you want that's not what we Recommend we are much more fans of mqtt and amqp And so whether you're talking one of these three protocols You can connect your device to directly to Azure IOT hub if you're spinning something else I don't know co-app for example, you're gonna need a protocol gateway or a field gateway And once we have this connection So the first and the obvious thing most obvious thing we can do is is get messages from From your devices and it can be any sort of payload. It doesn't have to be structured. It can be binary. We don't look at it so You can send messages and these messages will have a payload and what we call properties and We implement properties in a mqtt and HTTP and different layers of the protocol And these properties will be used to route messages to the different endpoints on the cloud side the other thing we can do is Send commands send messages to the device and basically it's the same message except it goes in the other direction We often use D to C as in device to cloud and C to the cloud to device To refer to telemetry and and and commands Microsoft does love its acronyms You'll see a lot of those So that's the basic stuff everybody does it so we had to add more stuff The another thing we introduced is a primitive called device twin and What the device twin is you can think of it as a document that lives in in in a separate in in a store in the cloud and that has Three sections the first section is known only to the cloud application and its tags It allows you to categorize devices so that then you can query your millions of devices and say give me all the temperature Sensors for example, I'll give me all I don't know the devices on the third floor of the Hilton Portland But that leaves only on the cloud what's really being shared with the device are two other sections called desired and reported properties and Basically the way it works is the cloud can your cloud application can set desired properties and your device will get Notifications. Hey you have a new desire you have a new thing new desired property that changed and your device itself can read these desired properties or get notified for this desired properties and write to reported properties and Then the reported proper when reported properties change your cloud applications get notified and you can see how the device reported something new and The idea is that it complements the telemetry because you're like well things going one way things going Why have two of these well the twin is a document that lives in the cloud Your device gets disconnected the twins still here So you have some sort of last known states that always exist there that you don't have if your device is disconnected And you have to send a message to read something The other nice thing you can do with twins is run queries And the idea is that you want to find so I was saying you want to find all temperature sensors You can do that with obviously tags But then maybe you want to find all the temperature sensors that are reporting a temperature over, I don't know 50 degrees And you can and so we have a query engine and basically this is starting to a no sequel database and and and you can just you know start Looking at all your devices and and finding stuff about them that way So that's twins telemetry commands twin We also have one other thing which is device methods and It's yet another way to talk to devices This way is a is is is a little different from the first two. So basically Whether it's telemetry commands these are message that goes into queues and then the device of the cloud reads from these queues and And and so it's a very very asynchronous Also, you can manage to do bidirectional communication like request response Be with telemetry and commands, but then you have to match, you know, you have to correlate what's going in what's coming out It's not it's asynchronous.  So And same with the twin It's just a document and it gets read and and written to but it's asynchronous the idea between behind device method is I Need the device to execute code right now and give me the answer for my cloud application So it's kind of a synchronous request It's not synchronous because it goes over the network, but it's synchronous request So your device has to be connected and you're like give me the last ten lines of your log file For example, and this goes to the device and in the same age. So in the same HTTP request So your Service is talking to Azure IoT hub sends an a sends an HTTP request to Azure IoT hub and Then wait for the response and during that time IoT hub is going to take the request Send it to the device get the device to execute some code The device will send back the response and you'll get the response in the HTTP response itself So it's like a very direct way. We call them direct methods or device methods It's a very direct way to ask the device to do something But the caveat is it only works is your device is connected So if you want to queue stuff for execution later, you can you can use commands But if you want the device the response right now, you have to have device methods Another thing that you may need or want to do with devices is upload large amounts of data For example, your device has been disconnected for a while. Let's say it was a container on a container ship It's been at sea for six weeks Coming into the point. It has tons of telemetry data You could argue that sending like fifty thousand messages one by one of two hundred and fifty six K Might not be the best way to do that You'd rather upload a big blob of data and that's what the file upload endpoint does for you The device is says I have a bunch of data to upload give me a place to do that Service respond. Hey, here's the place where you can do that and your device sends the data and Then you can read that data that blob of data from from your service And the nice thing that this thing does is that your device doesn't have to store multiple secrets for multiple Endpoints like the place we are going to upload the file and the way you're talking to IOT hub IOT hub is brokering everything for you. That's the device facing endpoints. So I mentioned that MQTT MQP and HTTP and protocol gateway if you need to support something else If you need to support something else, we do want to hear about that though We started with a MQP and HTTP we added MQTT Per customer request and that's one of the fun things with Azure IOT The team I'm a part of is that we're very much talking directly to the customer If you're finding an issue in our github because all our SDKs are open source, of course If you're finding an issue the dev who wrote the code is going to reply to you, which is not always the case at Microsoft Company's changing Now that was the device side, let's move on to the the back end and on the on the back end of course you have kind of symmetrical endpoints to what we have on the device to Get your telemetry get send commands Get feedback from commands. So that's also something we can do So that's only supported with the MQP because that built in the protocol Which is the idea that the device accepted or rejected or abandoned the command that you send The file upload notifications, of course And device management endpoint that allows you to create and change device identities and and change the state of the device twins A couple more things though on the cloud side and by the way, I just I just want to make it clear It's symmetrical, but it's it's presented We can get into the nitty-ditty gritty details if we have more time at the end It's presented in a different way. So if you have a million connect device connected We're not giving you a million of these endpoints, right? We're giving you cues where it's easier to read data from a million different devices That way we do the scaling and you worry about the application Sorry that was side note going back to to these endpoints one thing we added in the in the back end with APIs to schedule tasks that are going to do stuff with your devices whether it's actually Changing desired properties When we're talking about twins or executing device methods and the idea is that Let's say you want All the pressure on the temperature sensors Let's stay on the temperature sensor. You want the temperature sensors to all Reset or accept a new desired property at 2 a.m. two days from now and You can you can you can schedule that and then IOT hub will take care of that job for you connect to all the devices to which this This task is applicable to and and and will make sure this task runs correctly And then it will give you a nice report saying hey, this is all the things that work This is all the things that didn't work. We think that thing is not connected Etc. Um So that's that Time stamping. Yeah, everything's time stamped all the all the messages that go back and forth all the actually methods Won't have a time stamp But all the messages that you get are are time stamped and all the results will have time stamps on them They're UTC time One more thing that we offer on the on the back end of course is something called operations monitoring And what that does is it allows you to monitor everything? So different levels of events Pertaining to what is happening with your IOT hub like hey, there are 50,000 devices with unknown identities trying to connect What's that? or Hey, you're about to get throttled Because you didn't pay for it So we give you alerts of what's going on with your IOT hub whether it's general statistics or just errors that enable you to programmatically scale your IOT hub or Or change configuration of your IOT hub if you need to and you could say hey, what the hell? You told us you are scaling automatically and now you tell me I have to do it and the reason is We don't want some Malleficient person or not Malin not well meaning person to manage to hack some of your devices or connect and just try and deed us your service and Because basically what you're paying for is a capacity to ingest and send messages and so if that guy if if one guys owns your device it could potentially throttle you and so You we don't want to break up your bill and say hey, sorry you got hacked a million dollar, please That would add insult to injury So instead of that we just say hey you're getting throttled you need to watch this And then you can decide how to react to that you're like yeah, this is normal activity Please give me more units or you could say this is not normal Please do not scale and do not bill me for Inordinate amount of money So that's what operations monitoring is for a New thing we rolled out Late last year, so I guess a couple months ago is is the ability to route messages to different things different services in On on the Azure cloud and the reason is before all your telemetry messages We are getting randomly assigned to some what we call partitions Which are basically cues that you can read from and their persistence so that you you can move a cursor and go back and forth in your messages and we were Kind of telling you well read that from the cues and then figuring out figure out where you want to send it You know to stream analytics or to some machine learning thing or to storage our databases And we got the feedback that hey, that'd be nice If we could do some basic routing ourselves and you could configure endpoints and then based on message properties We would do the routing so that you don't have to write code for that. So that's what it is And I've included way more stuff in the presentation links and you can download everything if you want to including sample codes That show all of these primitives and all these things I talked about telemetry twins They're just one line of code API So yeah, we have Bunch of SDKs for devices. I'm going to go back to that you can manage device identities millions of messages Route messages to endpoints upload files store and query device date Execute code monitor operations that that's what IOT hub is for now How did it get started with IOT hub? For you just go to the Azure portal create an account and spin a new IOT hub and the best part of it is it's free as you start the basically what we have it is a SQ system where based on the capacity you want you have to pay more or less money The basic skew allows for a few thousand messages and and I don't remember how many devices I think there's there's a cab, but it's allows you to experiment entirely for free all our SDKs are Free and open source and available in github So you can even if you want to run your own little automate home automation project and it's free go for it As you scale you're gonna start wanting to switch to some more Paying skews, and then you can add You can multiply these skews as you want to scale dynamically. So you really we really encourage you to Start low see what your plan kind of plan for your data the amount of data you're going to send and Pay as you go. That's the cloud ball No, the QoS is the same no matter what you pay so you get you get the best stuff even if you're on the free skew The SDK so I'm part of the team that write the SDKs for IOT hub And obviously we went where our customers are So lots of Android Linux embedded Arto's We do have windows SDKs Now I'm not the one that are giving us the most work But we are where you guys are and I was just talking to the Zephyr Fox earlier and we're going to be looking at that too. So If you go to our SDKs and you are not finding the platform you're using and you want us to build that for you Just let us know on the github As far as languages go our most popular and most portable SDK is of course the C SDK We have very good embedded C engineers that provide Open-source SDKs and by the way the SDKs include AMQP and MQTT libraries. So if you're looking for portable embedded C MQTT or AMQP libraries, you can get that from us even if you're not using Azure IOT hub just say We do Node.js. That's my thing We do Java.net Python If your thing is not on there same thing, let us know we look at building it And the way you get the SDKs is obviously look in your favorite package manager Repository with our 8 10 p.m. Maven APT NuGet if you are into that Or you can clone directly all the source code on github The gateway I mentioned the gateway same thing with our gateway play right now is an SDK We are not giving you a device. We figure you already have that device, but you may want to write code For that connects to devices and then streams everything to IOT hub gateway SDK It's C-based. So it's very embedded embeddable. I would say It's It does have connectors that allow you to write modules for the gateway in Java node And I'm guessing that net yeah.net. It's a sister team from mind. I'm a little less Aware of that. We did have a talk earlier during the conference about the gateway. I included the link at the bottom Now maybe you don't have a device and if you don't have and or maybe you are making a device and you want to make sure or advertise that your device is Can connect to Azure IOT hub so we also have that a Partner program and a device catalog and if you go on that address catalog that Azure IOT sweet dot com You can find literally hundreds of devices that we have tested and we know our SDKs work on those and they can connect If you're building devices and you're interesting in being there, you also have a link to sign up and it's really a quick thing So there you go device catalog now We talked about devices how to connect to these devices We how to connect to IOT hub with these devices Let's maybe does anyone have questions about the first part Let's do a little Q&A first before we jump on that. I did put everybody to sleep That's what I was afraid of So it depends on what you want to so I'm assuming You're talking about the CS DK Okay The it depends on what you want to build the way we built the SDK is we separated the the protocol stacks from the high-level primitive APIs and so Sure, you can build everything and it would take a few kilobytes. I think you can get quite a few kilobytes You could you can cut the protocols you don't need and then it'll be building even less We have been running our SDKs and Arduino's and yes ESP8266 and devices like that. So I don't have the exact number. I know it's a few K's of memory Building the SDK is another thing because we are macro heavy No, it gets it needs quite a bit of memory to build that thing, but once you're deploying it's only a few kilobytes And if you are looking for more precise stuff, let's talk after and I can connect you with the right guys Within the limits of the protocol, it's whatever you want to be I'm gonna say meaning You have an HTTP a device that connects over HTTP every Two days we're going to get your connection every two days and that's it and the request is as small as you want to make it if You give up the device methods in HTTP. Yes If you have an always connected device with a MQP or MQTT It depends on the keep alive you set on in these protocols We do rely on the protocol keep alive the one thing I will say if you want your device to stay connected and I think we're working on changing that any mistake I'm gonna be Purposely Conservative here is if you want the device to stay connected I think the Azure load balancer right now requires you to do something with your socket every four minutes I'm gonna say Because after if you don't get anything after four minutes, we are basically considering your thing has disconnected so we cut the connection Does that answer your question, okay? Yes No the device so Each device has a unique ID Each device should have a unique secret I don't think we're enforcing this So if you want to put the same secret on all the devices is your bad call But no each device should have its own secret And one thing that we are not covering yet for transparency is how to get this secret on the device We're certainly looking at a bunch of things and trying to make this easier for customers But right now it's still the customer's responsibility to provision that secret on the device and to find a secure way to store it on the device We have some demos and And code that shows for example how to store it into a TPM on the Windows IoT core Stuff because we have good TPM support and IoT core If you're working on these topics we have engineers working on these topics too And we definitely want to hear about that, but we don't have anything from C to offer right now for provisioning questions, all right Now Azure I mentioned before it's that big Lego set for cloud architects You have a bunch of different components databases stream analytics machine learning Hosting mechanisms whether it's for VMs or for apps serverless computing if you want So you can really build your own thing connect these Lego bricks together and build your own solution And that's how we started we were not prescriptive about what should be the cloud the IoT cloud application architecture at first we did realize that A lot of our customers had no idea where to start on that and so what we did was Build what we called pre-configured solutions and what pre-configured solutions are is basically a default architecture to solve one One of the many problems the industry would like to solve and so we built two of those one of them is predictive maintenance And the other is remote monitoring The I and I'll get into the details of that Again, if you're like to see some patterns Additional pre-configured solutions we have folks working on that. We want to hear about it But what these guys give you is basically a file that you can upload to Azure and will initialize Everything for you the web jobs the scrim analytics processing the machine learning And the things that you want that you would like to use and we back these with real customers I don't think I remember who is doing remote monitoring the predictive maintenance I like because it's world's Roy's airplane engines and I like airplanes so That was pretty fun. And so what we give you and Understand this might not be very readable from the back but what what it gives you basically is is All it provisions all these components for you so that in a few minutes You can connect devices to these pre-configured solutions and see stuff running in the case of remote monitoring What we have is basically a web app here That's going to present to you a dashboard with the list of devices the data that is being sent by devices and some Stream analytics here that are going to be able to do a normally detection Basically, you're saying hey if this sensor goes over this threshold or if these sensors meshed mashed up together with some mathematical formula get to that point you can raise an alert and then do something with it in your application and And of course in order to store all the data that's being sent we're also provisioning storage And and that will enable you to go back and look at your data in time So that's what the portal looks like You have a bunch of devices you can add rules for the anomalies you want to detect and and that's the dashboard you get With little nice little graphs and a little map. Of course, it's the Seattle area, right? That's where we live and So you get that literally so if you go to azureautsweet.com you click on remote monitoring and 15 minutes later you have all that built for you and you can play with it It is a reference architecture Demo call it what you want all the code source is open source, of course You can customize it the way you want We are not selling this as hey if you want to do remote monitoring Here's how our supported and packed up solution for you, right? This is an example of how you would like to build this thing Same for predictive well same difference predictive maintenance In that case we illustrated how to run machine learning on the data you get so You find the same basic building blocks, right you get devices over there and we provide Then okay, and we we provide a device simulator in case you don't have Devices to connect and that goes through IOT hub you have stream analytics job That allow you to run queries and the data route the data on different endpoints so that you still get You know these nice little graphs But we also use this data into a job that runs the Bruns your the current data on the trained model that you established using the Azure machine learning Component and so and that way you can detect You can detect What are predict what is going to happen based on the sensor data and the established model you have so typically And then of course we have a web app to manage that Database to start the data This is kind of the same as the the remote monitoring stuff and what it looks like is this so you get your nice little graphs and and Here what you probably cannot read is remaining useful life on the engines and basically what we did was we took the maintenance logs for these engines fed that into a machine learning algorithm and Now we're looking at the data of That is coming in real time from the sensors and we're like hey Last time I saw this pattern 20 hours later the engine did that part of the engine failed or performance started degrading or something like that and so We enable Rolls-Royce to detect the potential problems before they happen So Yeah Okay, not the same. That's the Azure machine learning studio. That's where you you define the different components of the machine learning algorithm you want to use and how you Where you upload the model train, etc. To be honest, this is I Wish I was more proficient with that. This is a little far away from my daily SDK development tasks But like I said, everything's in GitHub. So you want to look at how we are doing that just go for it And now we're into not like the end of the talk and announce time and time We did roll out or announce 4 CES a connected vehicle platform And the idea behind the connected vehicle platform is we want to be talking to car makers Because we realized that for many car makers and funny enough the first one with a French one funny for me, I guess the Cloud car manufacturer don't always have an idea of what services and how to Offer customers and how how we can build these intelligent services for customers when it comes to when it comes to connected cars And so we are we said well, let's let's do the thinking together and roll out a partnership We're going to build solutions for connected cars together So that's coming If you want to be a part of it, you know Come see us talk to us on the github or wherever We also hold out a security program Microsoft security very long love hate history The Azure folks learning working in security are pretty impressive if you ask me, but the the idea is that Same thing customers are like hey, you know, we understand. It's a big deal. We watched the news last year How can you help us do that? And so we have a program where we partner with security companies security firms and we develop best practices and White papers and we talk to customers about how to secure the whole IOT solution. I included the links for that To And that's the end I'm actually a little bit early So you guys get a head start for lunch or we can do questions. I'm gonna stay here and do questions Anyway, thanks for your attention and for listening even though I speak in a very monotone voice Um Questions yes Yes Extended the customer absolutely Yeah, yeah, the goal of power be power BI is yet another Kit if you if you will buy Microsoft that enables customers to build dashboards Yes, and And and so yeah power BI can read from very different, you know data sources storage Obviously stream analytics and and so you just configure the power BI solution for that And and it comes pre-configured in the pre-configured solutions Haven't had one Microsoft one job at Microsoft in that talk I cannot believe that well you guys have been an amazing crowd. I've been in the booth all day yesterday and We were very well received. It's really cool Kind of surprised still How does that work? That's kind of the secret sauce What is going to limit well we don't have a bandwidth limit try us Well, that's the thing So so that the question is about is about the price. All right, so Azure has a really Nice tool and I think I may have mentioned the right so the price calculator. I think it was before that Right, we have a pricing calculator and based on and so in that pricing calculator You select IOT hub and you say I want unlimited devices And I don't know four million messages a day and it says that's that much And then you have it's that much per unit and then you can add units. Thank you so you can Yes, like I said try what one Azure is one of the Most under estimated thing at Microsoft One thing I like to say So we understand scale. There are not that many cloud providers Out there that understand hyperscale marketing term the way we do We have more data centers All over the world running Azure and deployed then AWS and Google combined So whenever we're talking about streaming capacity to Ingest I'm like yeah try us We want to find out so that we can scale even even more It counts the way we count that is in Message units a message unit is 4k. I think And you buy them by the million. Yes Yep Well, we're part of the MQTT five working group. So I guess I guess we can say we're looking at that I don't want to announce anything or You know, but obviously we're working with the industry Standard bodies and and groups To be honest We would like the customers to not care about the protocol We think if you want to develop smart IoT stuff, we need to get you To trust us we'll figure out the plumbing for you concentrate on, you know, the higher level primitives where you're gonna build the intelligence We started with HTTP and a MQP MQTT was obviously big feedback We had a bit of an experiment on our first device management beta With LWM2M and a version of co-op that was running over TCP instead of UDP I didn't work out well So I don't know if we can make any plans or commitments or whatever, but we're Obviously MQTT is up there as far as industry is concerned Yes This is going to be a bad answer We let you guys figure this out Bad answer, sorry our software just Runs on the device and assumes that we have some sort of connectivity We are not trying to be smart about punching through firewalls and things like that We use the configuration the parts you give us And that's it. Does that answer your question? So No, it's pretty much on your own. We do have one thing and that might be attached to your question But we do have one thing one little tool called IoT Hub Diagnostics So if you're wondering, hey, am I going to be able to connect from this network or that network? You can just download download this little tool run it and you'll test all the you give it You have to have an IoT Hub so you can start with the free instance you give that tool the connection string, which is the the Configuration basically for your device to connect to IoT Hub and what this thing will do is create a fake device and IoT Hub test all the protocols and Give you a nice little report saying hey AMQP didn't work, but AMQP of our WebSocket work Or and it goes that it does that for AMQP MQTT and HTTP Yeah, did I mention we do WebSockets We do AMQP and MQTT over Regular TCP sockets and over secure WebSockets There I said that reads one minute. I need to change my glasses one minute, right? Three okay, I really need to change my glasses. Thank you Were you expecting something else from this talk? Did I leave questions and answered? Were you surprised at all with anything? Yes, right. Well, I will go back to the Microsoft booth that we have in the sponsor showcase for the Well, I guess it's closing now, but I'll go back there if you guys want to have more of a private talk and Thank you very much


The ancient Egyptians used two different systems to write numbers. On permanent surfaces, like stones, they used hieroglyphics. Each symbol represented a specific value. So a single vertical mark represented 1. An inverted loop would represent 10. This spiral hieroglyph would represent 100. A lotus plant, or Audrey, 1000. A tadpole, 10,000. And a bird, 100,000. To represent higher values, multiple copies of the symbols were set down. For example, in something like this, we see there are four ones, two tens, and three hundreds. And so we would read this number as 324. Because the value of a number depended on the sum of the values of the symbols, we say this system is additive. One of the advantages of writing on stone is that material lasts for a very long time.  So 4,000 years later, we can read something about his life. At least if you can read hieroglyphics. Well, we can at least read some of the numbers. So if you take a look in this upper right-hand corner, we see this number, which is a 10 and three ones, or 13. And if we look down towards the middle of the tablet, we see three 1,000 symbols. So this represents the number 3,000. On less permanent surfaces, the Egyptians used hieratic. This was also a form of additive notation, but it required more symbols. So forms changed over time, but reasonably common forms for 1 through 9 were these. For 10 through 90, they used these forms. And 100 through 900 looked like this. So to read this number, we'll figure out this first symbol. And if we look at our table, we see that it's an 8. Our next symbol looks to be a 40. And our last symbol is a 300. And so we might read this number as 348. The hieratic numerals were suitable for day-to-day use, and these were the things that you wrote with when you had to record accounts or do business or do anything useful. Unfortunately, because they're written on much less permanent material, what we have left is very fragmentary. And so here we see the fragment of what appears to be an inventory of bulls and beer also written around 1970 BC. And let's see if we can read some of the numbers. So we can see many instances of the numbers 2 and 3. And if we look elsewhere, we can see the numbers 5 and 10. And if we look around, we can actually find a symbol for 100 as well.


Paddington, this is indeed an honor welcome to the British Library. My name's Tom, I'm a map curator here and I'm really happy to be able to show you some old maps. Shall we start here with this map of 1598. It looks fresh, it looks like it was printed yesterday because we've looked after it so well. Thank you, thank you, we try. As you can see we have America here, North America, South America and here right in the west of South America is your homeland Peru. I tried very hard to find an image of a bear in a map and I found one and it's in this map a star chart of 1590. This is the only example of the first star chart produced in England and it's got a bell. Look at the bear and notice there's something quite unusual about it. It's quite a long tail isn't it. The reason apparently in mythology is that the tail was used to swing the bear up into the heavens. Yeah brutal, brutal which explains the really long tail.


Hello, I'm Adam Lawrence and welcome to the Service Design Show. I don't think you really need much training in this stuff, honestly, because when we're kids we do it all the time. We play it through. We just get up and try it. My colleague Marcus, when he introduces the tool Desktop Walkthrough, and he's showing people how they draw out the locations on a piece of paper and they take their Lego pieces or Playmobil, whatever it is, or a piece of paper, and they walk through a process on a table to do a kind of very primitive but robust process simulation, he says, you know, if you were kids I wouldn't need to explain this.