So, yeah, this talk is Emilia Bediria Learns to Code. I am Kylie Straubly. I just want to welcome you guys to Atlanta. I'm sure you've been welcomed already. I just want to brag and say that I live here in this awesome city. So there's that. It's just a fact. I live and work here, like I said. This is my first time speaking at a tech conference if you didn't notice by my, like, complete lack of respect for, like, societal expectations and, like, how to not be a weirdo. Yeah. So I wanted to tell you guys about a character who was really important and special to me when I was a child. I guess before I get started, though, can I get a quick show of hands? Who here, at any point, so now or sometime in the past, was ever a child? Any current or former children? You laugh, but not everyone raised their hand. So we have a couple in the audience. Cool. Yeah. So the special character in my childhood was Emilia Bediria. And I liked Emilia Bediria because I really identified with her. She is notoriously literal, and she's practical to a fault. In many of the stories she works as a maid. And in the titular Emilia Bediria story, Emilia Bediria, she's working as a maid and she gets these to-do lists. And on one of the lists it just says, prepare a chicken dinner. And Emilia's never heard the term or the phrase chicken dinner before. So she tries to rack her brain and figure out the most logical conclusion. What is a chicken dinner? Emilia surmises that a chicken dinner is a dinner for chickens. So, yeah, she serves up cracked corn because if you know anything about chickens, you know they love eating cracked corn. You know who doesn't love eating cracked corn for dinner? Emilia's employer is the Rogers family. In the book she is consistently just causing them to be super exasperated and flabbergasted at her unique new ways of being extremely literal. She's determined to complete work, like even when it doesn't make sense to her. Another time in the same story she has a to-do list item that says dust the furniture and the way that it reads is strange to Emilia because it seems to indicate they like dust applied to the furniture and she's like, that's weird, but that's what was written. So that's what I'm going to do. Even though I think it makes more sense to remove the dust from the furniture. Does this sound familiar to anyone in here at all? A request is worded in a way that seems to indicate that something really, really strange is needed and you're thinking surely this isn't what they want, but it's what they wrote so you deliver to them only to be informed that this is not the desired result. This happens sometimes in software development, maybe, to a couple of people. That guy laughed, it happened to him, so that's all I mean. Thank you, whoever you are. I feel like I have a really strong connection to you now as friends. So as an adult now you can see how I'm starting to think of Emilia Les as just kind of a silly character and more of maybe kind of an archetype of a developer. The literal interpretations, the silly mistakes, they're not asking for help. Yeah, and then at the end of the stories, Emilia always saves the day.  In this story, Emilia Christmas, Emilia Bedelia, she saves the day with a date cake, but because it's Emilia Bedelia, when she can't find the fruit dates, she cuts up a calendar and uses those dates instead. But everyone, yeah. In the last picture of the book though, everyone's eating cake and smiling, so I guess that is really good for them. That one still escapes me. I don't claim to be the Emilia Bedelia scholar. But everything ends well. And so I think that as developers, we tend to talk about our own stories this way, especially people who are maybe self-taught developers or you went to a boot camp. Just those of us who don't have the traditional computer science background, we say, you know, I wanted to be a developer, so I did this stuff and I made a lot of mistakes and at the end we have this redemption that we talk about and now everything's perfect. And that works because it's a really good story. People want to hear these good stories. You know what? Honestly, okay. I'll level with you. This is my first conference talk. I am extremely nervous. It is the afternoon. You seem sleepy. I'm seeing glazed eyes. What if instead of doing the talk, I read you a really good story instead? Yeah? Okay. I'm going to get my book. The name of the book is Emilia Bidella Learns to Code. Written by Kylie Stravely, very good prolific author. Look that person up. Illustrated by Sam Smith and inspired by the works of Peggy and Herman Parish. Emilia Bidella is speaking with her employers, the Rogers family. It's time for our annual review. Mr. Rogers says, Emilia, you've always done good work once we managed to get on the same page. We definitely appreciate your unique approaches to problem solving. But you're so literal, it drives me insane. It's like talking to a robot or a computer. Talking to a computer, Emilia, thanks to herself. Now that sounds like fun. If you don't have binary memorized still, I know everyone obviously hasn't memorized, but if someone didn't, she's saying hi in binary. Emilia reads that to talk to a computer, you have to speak their language. But it looks like there are quite a few languages you can use to talk to computers. Emilia's new friends, some Rails girls, mentioned she might enjoy a language called Ruby. Emilia thinks that sounds nice enough, but why Ruby specifically? Why Ruby? Why not Ruby? I bet you guys would like that. Shout two strange foxes who have mysteriously appeared. Ruby has elegant syntax. It's natural to read and easy to write. They follow up. If you like Ruby, you'll love Ruby on Rails. It's a web framework that's optimized for developer enjoyment. Rails lets you write beautiful code by favoring convention over configuration. Yeah, what he said. An easy way to talk to the computer that's designed with developer happiness in mind. If being a developer is what it takes to talk to computers, I certainly want to be happy while I do it. Ruby it is. Emilia says to no one in particular, as the strange foxes have already disappeared in the same mysterious way they arrived. If you're a beginner or someone who didn't read Wise Elegant Guide to Ruby, you should check it out. Sorry, I didn't want to make an inside joke. I thought it was rude. This Ruby on Rails stuff is easy, Emilia thinks. It's got HTML and CSS. I know how to use those. There's a database. I've worked with databases before, too. Emilia is working her way through a beginner Rails project when she realizes that she needs to add a table to her database. Looks like this schema file is a central resource for the state of the database. There's a bit of audience involvement on the next slide. I'll do it first and you guys can join in. On the next ones, you'll get it because there's a pattern. So what does Emilia do? You guys could say that. So what does Emilia do? Oh my gosh, I knew you'd get it. She edits the schema, of course. Now she has another table in her database without involving those strange, randomly numbered migrations. I can't read this at all, exclaims Emilia's computer. In some languages or frameworks, you can edit the database schema directly to make changes to the database, but in Rails, the database schema is just a representation of the state. The migrations seem to be randomly numbered, but those numbers at the beginning of the file are actually the date time that the migration was created. Emilia nods and her computer continues. Since we've only built a really basic database, it seems like the migrations represent individual tables, but they really represent the changes that are going to be made to the database. I use the migrations to make the database for you and put the date time of the last one migration at the top of the schema to let you know that the migration and all of the previous migrations are included.  I won't do something like that again. I'll remember to write migrations when I want to update the database and run them using rakes so that they'll update my schema file. Emilia is cheerfully working on a brand new application, totally independent of tutorials and guides. She's not exactly sure what all she needs, but she knows she can cover most things using the Rails Generator to scaffold new models, views, and controllers. You guys ready? She uses the scaffold for everything, of course. I'll just use the Rails scaffold to create my new model. That's just as easy as writing the files myself. In fact, it's even easier. Plus now, I have the controllers and views pre-made in case I need them later. Can you guys see from the illustration? Oops, she has a blueprint for a doghouse, but because she used the scaffold, she's building this dog mansion instead. Do we really need all of this? Ask Emilia's computer. The Rails scaffold is handy, but you don't have to use it to create everything. You can just use the generator to generate a model, view, or controller. You can even create new files without using the generator, and Rails Convention over Configuration Design will make sure things match up how they should. But it's so much easier this way, says Emilia. Easier for you maybe, replies Emilia's computer. I still have to load all of the assets created by the scaffold. Plus, do we need all these scripts? I thought you just needed a model. You're right, we don't need all of this stuff. I didn't realize it added a lot of extra work for you. I'll be sure when I use the scaffold to only use the parts I really need. Okay, so I know I don't need the Rails generator to make everything. I can just create the files myself, Emilia says. She remembers what the foxes told her, that Rails is designed with Convention over Configuration. Still not sure what that means, but I want to write the best code that I can. I'll follow the framework's Convention and write good code the Rails way. In each of her new files, she mimics the code and style generated by the scaffold. If this is how DHH would write Rails, this is how I'll do it too. He didn't come to this, did he? Is he here? Raise your hand if you're DHH. Perfect. Oh no, Emilia, exclaims Emilia's computer. Convention over Configuration doesn't mean you only have to use Rails within the framework's conventions. It just means you don't have to configure the connections between conventionally named models, views, and controllers. When you include all that code, you can accidentally include different features. For instance, leaving the two respond width blocks in the controller could allow you to inadvertently expose a JSON endpoint for that controller. So that's what that means, says Emilia. I definitely don't want to expose a JSON API in this application. Just because I can do something with Rails doesn't mean that I should. I should only include those things when I need them and not just hold on to them for later. You got it, Emilia. Emilia's having a lot of fun at her first hackathon. The team she's working with is requesting a ton of features, many of them directed to all different routes. Emilia's teammates are excited but getting antsy for the new web views for their app. I need to make a lot of routes, Emilia says. She activates each of the routes by raking them before committing and pushing her code. With each new route, she writes a new HTML file, adds the route to the RouterB, and rakes the route. Rake is shorthand for Rubymake. So I rake each new route so it will be available in my web views. I'm not going to make the same mistake I made with migrations. Forget to rake my routes, expecting them to be there anyways. Did you guys read the Rails 5? Here's just a non-sequitur. Did you guys read the Rails 5 proposed changes yet? Okay. They might alias Rails to rake and change some of this stuff up so it won't be as confusing. So this is a really good slide, so do welcome for this good slide in that fact. Oh, no, Emilia. You don't have to rake the routes to activate them for your application. Rake just shows you a preview of what the routes will look like in a URL. Why not, asks Emilia? I have to rake the migrations. It makes sense that I need to rake the routes, too, right? Emilia's computer explains. It is a little confusing that rake creates your database migrations, but you don't need it to create routes. Rake is just a tool that run tasks. The routes are created when you add them to the RouterB. There's no harm in raking the routes, but it's not needed either. Oh, I think I'm getting it a little bit now, says Emilia. Rake is a tool, and it can run a lot of different tasks. Unlike the schema, routes aren't generated. I wrote them myself, so they exist as soon as I write them. I can't believe I spent so much time raking each new route I added. My teammates are going to be excited to see all the new routes much sooner. You're really starting to get it, Emilia. Emilia is writing an application with her to out-of-town friends, Fred and Carrie. Fred and Carrie have been developers for a while and always hit the latest trends and ruby gems. Fred and Carrie say, gyms are great, they're just libraries of code. Why write it yourself when you can put a gym on it? You can find a gym for everything. It's like you never have to write your own code. Emilia thinks, what, did you guys do that? That's so bad. I can't believe you guys would do that. Emilia thinks, these gyms are pretty handy. Seems like I can just drop them wherever and have access to a ton of code written by someone else. Emilia adds all of her favorite gyms to each new project she starts. I'll save myself some time and some code. Fred says, you know what this app is missing? Gyms. Let's spruce it up. Make it pretty with the draper gym.  I know, I'll put the Rails admin gym on it. That's the whole joke. Just kidding, I'm sorry, that's a great gym. Whoever did it, you did a good job. Did you see this app before? I didn't. Right, I thought so too. Not so fast, says Emilia's computer. Gyms can be very useful, but they're not the answer to every problem. Every gym that you add to the gym file might have dependencies on other gyms, and those might have even more dependencies on other gyms too. All of those dependencies can cause complications and eventually make it harder to upgrade your project. Oh no, I don't want that. I heard Rails 5 is coming out soon. I'll want to try out TurboLynx 3. Try it, Emilia. I guess I should make sure the gyms I'm including are the ones I'll really need. Emilia is working as an intern at a software development company. The client she works with, Business Corporation Inc., requests that new parameters be added for customer addresses. Parameters, Emilia thinks. I know exactly what to do with params in a Rails app. She does exactly what they ask for and adds them directly to the params hash. They'll be so excited. Have you guys... All right. Two people have had potato hash before. Potato hash is hash browns and onions and customer address parameters. And it's an Atlanta specialty and you can get it at Waffle House. I'm glad my friends came to this. I get the feeling that some of you don't find this as amusing. Whoops, says Emilia's computer. A client can save parameters which seems like a general term, but that word has more meaning in a Rails application. Turns out what the client really needs is just a table column to save records to. Well, at least my workplace has code review, so the mistake is caught and corrected before being deployed, says Emilia. Hey, don't be so hard on yourself, Emilia, says her computer. This is a great opportunity for you to push back on a client request in the future when they seem off to you. And you were able to teach a semi-technical client a little about Rails architecture in the process. Yeah, I guess you're right. Nothing bad happened and I learned something. I guess I am getting the hang of this. Emilia is coaching at her very first Rails workshop. She finally knows enough to feel comfortable coaching and helping others learn to code. She overhears a group talking about scheduling tasks for an add-on to the workshop's base project. They want to use a time field for this, but everything falls apart when they try to schedule dates very, very far in the future. Emilia's worked with future dates before and made this very same mistake before too. She heads right over and explains, hey, I've had that problem before too. It's an easy mistake to make, but if you use date time instead, you won't have that problem. That's why I always use date time whenever I need dates. That's a good one.  That's not even the silliest mistake I've made yet. I'm still making mistakes every day, and that's okay because making mistakes means that I'm learning. Even if it feels like I'm learning things the hard way, I know a lot more about why things work the way that they do. Plus, sometimes my mistakes help someone else learn too. When we talk about why it happened, I can help them learn better. Maybe they try to edit the database schema because they've worked with Microsoft Access before. Whoever that is could be anyone here, probably one of you guys. And I can help them learn by pointing out the analogous parts of ActiveRecord in a Rails application. I think, though, that's what software development is about, making a lot of mistakes and learning from them. That was pretty cute, right? Yeah. But that's not really how it is, though. Before I told you the story, I told you the story about the story, the meta-story, if you will, which is that a lot of times as developers we frame our struggles into a cute little story and tie it up with a little bow at the end. It was hard and then I figured it out and I redeemed myself and I feel good now. And Amelia always has a redemption at the end of her stories, too. But what you may or may not know is that there is a series of Amelia Bedelia stories. She's always having these ups, these highs, the date time cakes, I assume, full of calendar clippings as well.  You have the highs and the lows, you have the awesome days, and you have the Amelia Bedelia days. You don't really ever stop making mistakes. This is what the day-to-day is more like. So, unlike a book, our stories don't end with a cathartic day anymore. Ideally, our stories don't end for a long time because, I don't know, that might mean that you're dead or something, and that would be sad, and we would hate that. But beginners don't know that this is what our day-to-day looks like. And I wrote this talk because I want people to share their mistakes. So I guess I should probably put my money where my mouth is, and I'll go first since I'm saying that I want you guys to share your mistakes. Have you guys heard Gary Bernhardt's talk? He gave it at Codemash in, like, 2012, maybe, maybe some other places, about wets. This is how you say it, that sounds familiar. All right, like, two people have heard it. Okay, well, this word, which I won't try to say again. It just means, like, a weird quirk or strange, unexpected bug in a language. And so Gary found a bunch of these in Ruby and Python, maybe, and definitely in JavaScript, where the language just behaves strangely. So recently, for me, one of my big mistakes, I was working with a more senior developer at my company, someone I really respect. And we were pretty deep, like elbows deep, like in the mud of writing a spec for like a strange, fragile case. And as part of this, we wanted to verify that something happened at a certain time. So we were trying to force equality on time.now. So time.now equals equals time.now. And they were returning false. They were not returning as equivalent. And we thought we found a what in Ruby, and we were like, oh, my gosh, these should be equal to each other. And they're not. Like, we're the Gary Bernhardts of our time. Like, even though he is alive and is the Gary Bernhardt of our time, yeah. We were like, we're Ruby Heroes. And so we go into the company chat room of the back end team and we tell our teammates, we're like, you guys can't explain this. Look, time.now equals equals time.now returns false. Isn't that ridiculous? And everyone was like, that's pretty standard stuff. That makes sense. Like, what is the problem here? And we were just so entrenched, like, super laser focused on this one thing that we were doing. We forgot how time worked. Like, that's a pretty silly mistake. And that happened recently. And the person, yeah. And like, not just it happened recently to me and like, I know about time and stuff. But like, this happened to like a senior developer that I work with who I think is extremely smart. And they are extremely smart. But because we were so entrenched in what we were working on, we just forgot and we weren't thinking. And this kind of stuff happens all the time. These kind of things happen to me, obviously. Like, six of them happened up here. I didn't tell you about all of them. They happen to the people that I really look up to and in real respect. They probably happened to you. Probably DHH is in here. So they probably happened to you guys. So, that was a good trip. Whatever, fine.  Beginner developers make a lot of mistakes. I'll come out and say it. They make a lot of mistakes. I make a lot of mistakes. But the biggest mistake I think beginner developers make, and the one I made too, was thinking that I was alone in all of this, that I was the only one making these dumb mistakes.  It's so easy to feel that way if you're not talking to people about it. And, sorry. Beginner developers are much more prone to these amyloidialisms, because unlike senior developers, they don't know about that, like, sine wave of highs and lows that I showed you guys that we kind of go through on a daily or depending on how quickly you work hourly basis. And they don't realize this for two reasons. One, they don't ever ask us. And two, we don't tell them. They don't ask for a lot of reasons, but basically it boils down to the same thing. They're afraid of looking dumb. Afraid of asking such a silly question. Hey, did you ever make a mistake? Like, how silly would you feel asking that to someone? Not at all. Okay, never mind. Please remove that from the video. Thank you. Thank God for modern video editing.  And they don't want to look like Amelia Vadilla. But it's okay. It's okay to ask these dumb questions. And it's okay to ask someone if they've ever made any mistakes, because advanced developers make a lot of mistakes. And we don't tell beginner developers this, right? If they wanted to know, they'd ask. Right? How many times have you ever said, hey, if you have any questions, just ask me. Right, so you put it out there. You've done your part. They have no good reason to be afraid to ask, except for they're new and they want to impress you. And from where they're sitting, it looks like you're holding all the cards. We don't tell them because we don't think about it. We forgot what it's like to be afraid to ask dumb questions. And so a lot of times we assume that other people aren't afraid either. I think this is one of the biggest mistakes advanced developers can make. And it's okay. It's okay that we make that mistake. But what I think that what we should do instead is try to remember the mistakes that we made when we were first learning. And I'm grouping myself with advanced developers now. I don't know how that happened. But you guys, you advanced developers. Just everyone should do it. Everyone does it now. We're all advanced developers. Congratulations, welcome. We should remember the mistakes that we made when we were first learning. Sharing these slip-ups with the junior developers that you work with or the junior developers in your community. One, it humanizes you to them. When the person I was working with made that mistake, I was like, oh my gosh, they're a person. Two, and not a highly sophisticated robot. Because there was some concern. This person seemed infallible up to this point. And I just felt better. I was like, okay. So even if I do get really good at this, I could still make mistakes. This is okay. And then it also just humanizes the process of learning to code. When we think about it as you're going to make mistakes. And not when you make a mistake, but you will make a mistake, that's okay. When you're learning the mistakes you're making are common. You feel like you're heading down the right path. It still feels not awesome to make a mistake. But you're like, well, at least a lot of other people were thinking that way too. Making mistakes means that you're learning. It means that at some point you look back on what you did and realize that it's wrong. That's learning. I think that a lot of us say that we want to create safe spaces for people to learn in. And I think that a place that's safe to make mistakes in is that is the environment that's safe to learn in. We want people to learn the hard way, but we don't facilitate that. I was going to say we don't make it easy for them to learn the hard way. If you really want people to learn the hard way, make it easy for them to talk about their mistakes. So talk about your own mistakes. Go to where you work. Tell your boss that you have to do this, because it's the law, and tell them you just want to talk about mistakes. Maybe just have a, hey, everybody does this. Everybody always, whenever you work on whatever app first, everybody makes that mistake. Don't worry about it. Just talk about your mistakes and create the safe place to learn that you say that you want. Illustrations for this talk created by San Smith, who works with me, and she is an excellent co-worker and illustrator, and that is her website, if you want to go to it. Should have ended on a higher note, huh? My name is Kylie Ferris-Stradley, so you can find me at K-Y-F-A-S-T, basically everywhere. Well, probably everywhere. Probably. And like I said, because I've been really, really lucky that when I first started learning Ruby, I felt really comfortable making mistakes. I started going to Rails Girls Atlanta when I first started writing Ruby, and everyone was working on an extension of the Rails Girls workshop application, and they were going up, complete beginners, at each meetup, and talking about the application that they built and the mistakes that they made. So when my database schema looked exactly like it should, according to the tutorial I was following, but I couldn't get the Rails server to start, I felt comfortable going up to the front of the room and saying, hey, I don't know what I did, but it's clearly wrong. So it turns out, you can't or you can't edit the database schema. Should you? It seems like no. This is what my sources are telling me. And then when I started working at Big Nerd Ranch, I was exposed to a ton of people who were extremely smart, who were extremely comfortable talking about their mistakes. And even though the environment was really great, when I first started, I was still really scared to talk about my mistakes, because I thought they would find me out, and they would find out that I was in the Ohia and they would have read the books and they would be like, we got to get her out of here. But even in that super welcoming environment, it took me some time to warm up to talking about my mistakes. Once I started talking about my mistakes, though, I started learning so much faster. And I think that if we really want to facilitate learning, what we need to facilitate is making mistakes. So clap now. Yeah, just like that. That's it.


Well, thanks Kevin for inviting me here, and glad to see all of you here, showing some respect to what I have done so far, although that does not mean anything. So yeah, so what we have been trying to do over the last four or five years is create this platform here at NASA Ames called the NASA Earth Exchange, and what the whole idea was that you wanted to bring the research community and do cool stuff essentially, right? So what we have seen over the last 20 years being coming from a research background, obviously, during my PhD I almost spent almost 80% of the time actually trying to download data, you know, filter the data, probably decompress the file and stuff like that, and then 20% I did real research. So my advisor was not happy with me, so he was always coming, you know, every ten minutes is like anything to see? Every ten minutes, anything to see? And then so I had to tell him that, you know, it's very difficult, you know, at that time we were dealing with Landsat data and stuff like that, you know, you had to do all this atmospheric correction and stuff like that, and then I had to say that okay, it takes time, so and I don't have the codes ready yet, and we don't have any open source codes right now. I'm talking about ten years back, right, so today I was wanted to talk to you about what we have been doing at NASA Earth Exchange, and what kind of big data problems we're handling, what kind of high-performance computing architectures we're using, and what are we doing in terms of machine learning, because it's getting more popular nowadays, and I was telling Kevin right now that the last 30 years actually, we both actually have been doing machine learning, although we didn't realize we have been doing that, right. It started with unsupervised, supervised classification, long time back. So this is something interesting, I was thinking yesterday, should I call it big data or fact data? I like that word fact data, so it's lots of 3D stacks, it makes it look fat, or it's intelligent data, or it's large data, you know, large matrices, whether it's massive data, 4D stacks, so you can use all sorts of words, and I found an acronym for it, film, and yes, it's a lot of data too. So then I was thinking the other day, you know, how about cloud computing, let's use another objective for it, thunder computing, I didn't hear it anywhere, so it's a copyright, and then we have high-performance computing, which I still like, I didn't have any other acronyms for it. This I showed actually last time when I was here at GIF, but it's the same thing it still holds, whether earth science data is still big, right, and it is big, model and analytics are core components of dealing with earth science data, data center infrastructures, we have been dealing with it for a long time now, how actually you bring in all the data from the satellites to data centers and then bring it to different centers like NASA, USGS, you know, we're talking about a lot of bandwidth here, and then high-performance computing, solutions are necessary for actionable intelligence, that's what I write here, because slowly we're realizing that we're into this deep data space where we need to, you know, implement algorithms, you know, much faster and efficient manner, right, so you need a high-performance computing infrastructure, it can be a public cloud or your own private cloud, and then live data visualization, right, which is very important nowadays to really make sense out of the data. So the challenge here is storing more data, accessing large quantities of data faster, understanding better what the data tells us, whether it's structured or unstructured, and integrating efficiently, you know, cloud computing solutions and data access methodologies, it's a very basic here, a very high level, but essentially following industry standards, right, so can we really solve it, yes, we have lots of tools now, lots of techniques, everyone kind of knows how to do these things if you're a programmer, and I don't want to go into details about all these things, I mean, you guys are already doing a lot of this stuff here at BIDS, so what are some of these techniques, and access and sort data in an efficient manner, you know, we can deploy open source solutions like Apache Hadoop, MongoDB, to create all these fancy data structures, right, improve legacy infrastructure to meet demands of real-time analytics, scale out solid state storage areas are becoming big, and then you can deploy cloud computing solutions, obviously NASA aims, you know, we all know that we came up with OpenStack, and we still have it running there, AWS, Rackspace, you know, Microsoft Azure, whatever, and then you have efficient learning algorithms, that is what we have been trying to do for the last two years, a lot, you know, implement scalable machine learning algorithms to deal with satellite data, and then visualize the data also, you have a lot of open source solutions, you know, Tableau, high charts is open source, and then what essentially NASA Earth Exchange is, is provides science as a service to the earth science community, and we provide a lot of code, a lot of data, almost in the order of petabytes now, we bring in all the satellite data from all the land imaging sensors, be it Landsat, Modis, now we are actually bringing in the Sentinel-2 data also, which is a new, you know, they're getting pretty good imagery, it's a ASA-based European Space Agency satellite, and we have all the climate model output data, we have different models running on the NASA Earth Exchange, and all of this, not just providing access to code and data, but we are also creating workflows, so if you want to, you know, recreate a specific workflow, which is in a given article or a paper or a manuscript, you can use that workflow to recreate the whole process, and then create results in no time, essentially provides access to wide variety of ready-to-use data, provides the ability to bring code to data, and next offers capabilities for reproducing science through virtual machines and scientific workflows, so we are also creating a lot of these virtual machines using, like, Docker kind of interface, right, where you could actually take it and transport it to a machine and then do stuff, and then also it offers state-of-the-art advanced compute capabilities using our pleady supercomputing facility. It's just a repetition, I want to go ahead, and then what we have been trying to do is, it's more of data to knowledge, right, so we have this, we started as a small group, 10 years back at NASA, it's called the Terrestrial Observation and Prediction System, it all boiled down to this, and everyone follows the same model nowadays, if you're talking about commercial ventures, well, we have all this ground-based, air-based satellite, you know, climate data coming in from different sensors, IOT coming in nowadays, you know, from fields and agricultural fields, it's nothing new, it's been done for a long time now, right? It's all about how you could actually bring this data to a centralized platform and, you know, put these models and create sense out of it, right, so we had these ecosystem simulation models, old-age models, like, you know, crop VC model, you know, crop, how the crop is doing actually, leaf area index, stuff like that, right, we have been running these models for a long time. That time we were having a lot of problems, how we could actually handle different metadata types, different satellite data sets, different weather data, these are sparse data sets, right, you know, you see a weather station data actually is completely switched off for a long time, and then how could you actually use meaningful information, so what we had to do was, okay, let's do a monthly composite and then use the monthly composite number, and then you could match it up with monthly values from satellite data, then you have one single dimension, there's no sparsity, right, and then you could create a model and then come out something with it, cool, but again, you know, it's essentially now we're trying to adapt to new realities, so we have a lot more data, a lot of high-resolution data sets coming in, people want to gain insights at a much more granular level, so we have been talking about agricultural yield prediction for a long time, well, people say you can't do really yield from Landsat, essentially you can't estimate yield from NDVI, and NDVI is one of those satellite indices, right, which we calculate from the near-infrared and red, so what we have been thinking about is, okay, why about how about using very high-resolution data, and then take ground data with some kind of a mobile interface where we take pictures of crops and then, you know, blend it with satellite data in a machine learning framework to predict yield, so quite complicated, it seems like that, but you know, you can never have yield the exact number that you desire from satellite, that's not possible, right, and this was essentially the drivers for this kind of NEX initiative, researchers spent a major fraction of time as I was telling you, finding, ordering, waiting, downloading data, you know, I have my friends long back, you know, from India who are still in research organizations, they've been telling us, oh my God, how do you actually download Landsat data, it's impossible, we probably download two scenes in a week's time, it's the same with the US also here, if someone is using the bulk download tool, it takes forever, right, to download Landsat data, and then moving data says that they're getting larger each year over when is getting expensive, right now actually, today morning I had a telecon with the USGS and ESSA, we are actually worried about what kind of storage requirements we need and what kind of bandwidth we need to open up for getting all the Sentinel-2 data, right, it's a lot of data coming in, and there's no standard mechanisms for transparency and repeatability, and this is what I mean, right, if you have a paper published in Science on Nature, no one knows how to replicate that whole process, and that's what we are trying to do, and I highlighted in yellow actually, it's culturally local access is how science is done, so everyone will have their own desktop machine, download the data, run their own algorithms, and that's how science is done, right, so we want to get away from that, so this is the present state of art for NEX, we have data over 800 terabyte on a near line, and then we have almost 1.3 petabyte storage, a lot of these data states are populating now, we're getting new storage, we have to actually transfer some of the data to tape storage, because a lot of people are not using some of the data, the old Landsat data especially, we're increasing our sandbox environment, our sandbox is more like a prototyping environment, so you have a 96 core server, which is pretty good for us prototyping, you know, phase, and obviously then once you're happy with your prototyping phase, you can scale it up to the high performance supercomputer which we have, you can actually have, you can run a job accessing almost 100,000 cores, so that's pretty cool, right, so we are processing 6,000 scenes of Landsat in a day or so, again it depends, whenever I'm saying we could do all this great stuff, there are caveats, right, so you're always waiting in a queue, so unless your job gets into the queue, but once you are in the queue, and you know you get the allocation for the next day, probably waiting for 24 hours, but after that you get the whole thing working out for you, so, but that still saves a lot of time, and then we're bringing in a lot of these satellite data states as you can see here, we have model data sets, we have Glass, Prism, DayMet, we're getting all the high resolution data sets from the National Agriculture Imaging Program, NAPE, we are actually buying those data sets because, and it's kind of strange, we spent a lot of time transferring data from the small drives they send us, one terabyte drives, and USB 2, and it takes forever, so we had to build this nice stack, we built it on a buyer hand, this nice stackable, you know, drive system where you put all these hard drives, and then we have these wires coming out from it, and it basically syncs up, and we figure out which drive is failing, you know, at what time, but it's syncing up all the data, it takes forever, so for one year of data, for the whole of US, one meter, we spent probably three months just transferring the data from those one terabyte drives, right? If you want to order it through FTP, forget about it, take forever, so we are actually getting all these NAPE data sets from 2010, they really have good data, this is a multi-spectral RGB and IR, one meter, really good data, clean data, and we are also getting a lot of this digital global archive through our connection with NGA, NGA actually gives us all this data for free, but we can't redistribute it outside, so it's like a constellation, right? You have world view 2, world view 1, rapid die, everything is there, but they don't have a standard database structure which you can use, so you have to create your own database first, and then you have to start working with those data sets, and everything is like, you know, you have to find the projection files for them, you have to re-project, and as you know, we have been, NEX has been releasing this downscale climate projection data sets at a high resolution now, so we are making them available, all of them also into the Amazon public cloud, which I'll talk about later, scale it up, yeah, I mean I wanted to give some examples on the classes of next big data projects, and this is how we categorize them, essentially fully distributed data processing with no inter-process data dependencies, right? And we're talking about data sizes from hundreds of terabytes to five petabytes, data mining with some inter-process data dependencies, we're talking about 300 terabytes to two petabytes, and then analytics and science applications, we have a lot of applications folks who are running on NEX, you know, right from irrigation to mapping fallowed land to forest service people, so you know, they are, they mostly require database query systems, and we are talking about one to ten terabytes, everyone using Landsat, and then provenance and knowledge graph queries, we're talking about 100 million to 1 billion triples in 2015, and then we have climate and ecosystem modeling, a lot of those research folks are trying to do, deal with this kind of stuff, and these are essentially NASA funded projects, like mostly funded in the NASA ROSES program, and some of these processes are actually computationally intensive, and so we're talking about 2 to 20 terabytes, not much, but still, we have to support these projects, and then I wanted to show some of the projects which I have been involved with helping them scale up their problem essentially, and the first one is about machine learning for anomaly detection, I wouldn't say it's more machine learning, but I put this in context because I'm slowly moving towards that, this is actually one of those studies which we did for a long time, this has been a controversial study about, you know, how the vegetation in Amazon actually responded to the droughts in Amazon, right, and there have been a lot of papers, so what we wanted to do was capture these workflows in these papers, all the datasets they're using, be it trim, be it MODIS, and MODIS has different datasets from radiation to temperature to NDVI to EVI, so we capture this process and then provide this whole workflow to all the researchers, right, whoever is doing this Amazon study, so everyone was trying to use this workflow and coming up with different results, so it's a very interesting process actually to see, and I have seen this over the time, if you use a MODIS reflectance product and the MODIS N bar, which is also a reflectance product, BRDF adjusted, and you do this analysis, you actually end up having two different spatial maps of anomaly, and then you have other complexities, so what's going on, what you wanted to do was, okay, you know, we made this available to all the researchers, we have this code, you can scale it up for all the MODIS styles, just do it globally, you know, it probably takes like half an hour right now to do this global analysis of MODIS, again we are talking about 10 terabytes of data and 1 million for 15 years, right, total number of scenes, MODIS scenes, this is some of the images, the drought monitoring, and this was one of our other projects, which was funded under the NASA measures program, which is the five years funded project, and this is about creating monthly mosaics of global Landsat data, so and people have been using this data for different purposes, creating just monthly mosaics of Landsat is a big deal for me, especially when I come, when I look back five years from now, I couldn't have done this without having access to this kind of facility, right, and it doesn't require much, I mean it just requires the necessary tools and techniques which you use in your day to day life, but there's a scaling part takes a little bit of a coding, right, that's the only, only, only aspect, and we are actually prototyping a lot of land products from this mosaics of monthly mosaics, especially LAI, F-par and Albedo, going from where we have been involved in this North American forest disturbance project, where we have been using this Landsat tiles for the whole time stack from the 70s till now, and this has been one of our biggest projects so far, involved a lot of computation, so processing 96,000 scenes from 85 till 2010, and we actually created this disturbance product now as part of this project, it's available on any X, if you want to get a hold on this data set, please contact Sam Goward, he can actually give access to this data set, but again we're trying to sort out means on how to distribute this data, because either we have to do it by UTM zones or you know split up into modus kind of tiles like well does and then distribute the whole thing, this was actually detecting forest disturbance, this is just another you know you know just showing how the scenes come in, and then one you know just to put this context 4.3 billion pixels, if it was a commercial company right here, that would have been a great pitch, 4.3 billion pixels classified as forest in one hour, 434 path rows, 29 years, several scenes per year, 16 hours wall time for 12 cores and 1736 nodes, so almost 20,832 cores, right, and then these were all done using our packages and custom parallel wrappers you know, which were written in Python some of it, this was some of my stuff which I did two years back, creating 30 meter resolution Landsat, Leaf Area index maps, it's still there for people to download this data set, it was done for one or two times timesnaps actually, just showing the potential of doing Landsat based LAI, and if you see all this right hand region here, you could see a lot of heterogeneity which has been captured in the Landsat scale, if you actually see the modus imagery of LAI you won't see this, I mean that's what I wanted to you know showcase here, that you know unless you use a high resolution information you cannot get anything useful out of it, and then I've been involved with this NASA carbon monitoring system for the last three years now, and we have been working with tons of sensors to come up with the best possible estimate of biomass at the highest possible resolution, and we're talking about 30 meters again here, 30 meters is good enough for the policy and stakeholder, so but what they wanted to understand the uncertainty associated with each of these pixel estimates, so we created these uncertainty maps for them and the carbon monitoring system is still running now, it's a multi-year funded project, a lot of teams are involved in this, we're trying to do high resolution, my last project which was funded last year was about doing biomass at one meter, and that's what you've been trying to do, create a whole one meter continental mosaic of tree cover for the whole of US, and once you have the tree cover estimate, you can do biomass because you have all the other metrics coming from LIDAR and stuff like that, and you have all the all the metrics all in place, essential the biggest uncertainty is the forest cover, global one meter tree cover map, I have not seen that anywhere, oh it's a big undertaking, I'll tell you about the complexities because we're coming to that, some of the machine learning applications we are doing, and then we have this, we have this funded project from the National Climate Assessment NCA, we have been supporting NCA for a long time now, what we're trying to do here is create high resolution climate model projection datasets, and you know this is where we actually first collaborated with Jeff, Kevin, Maggie is here, and Nancy is now actually working with us also, we wanted to visualize these datasets right, and visualize in a way that makes sense, so when I create a pixel you know I show this map, it should automatically query all the time series data that has, it's a big dataset we're talking about, it's lots of data, we have multiple projection, we have multiple models, we have multiple scenarios, but if there is a nice visualization platform, people can come in and you know make sense out of this data, and then you can have a you know an API level interface where you could actually download those datasets right, if you're given a given a lat-long coordinate, if it pulls the certain time series, you can actually take that to your system and then do some analysis, so these are some of the stuff you know that comes out of this and this shows temperatures you know how it looks like in 2100 from 2000, and then we have been involved with the California Department of Water Resources, and what they wanted was can you actually map the fallow area maps for the whole of California in the last two years with the drought right, so what we did was okay you know given all these Landsat scenes we have we actually map for you what are those fields which have been cultivated which have been actually fallowed or emergent or actually we have two seasons, so we also you know give them regions where it's summer idle right, so and this has been a very useful information for them, they didn't want real-time or near daily maps they just wanted snapshots going forward we had this open NEX which is the open NASA Earth Exchange Initiative, we partnered up with Amazon we had a space act agreement with this it's a no-cost kind of a space act agreement where Amazon provides free storage for all of our data sets, so we have been you know putting a lot of these NASA Earth Exchange data sets onto Amazon S3 and it's part of the public data program so you all of you can actually download those data sets the DCP 30 and the global downscale climate projection data is also available on Amazon now and the core features were essentially we had a concept of providing virtual labs I think Maggie was there we gave a lecture last year part of our lab series and then we have all the data coming on S3 we have on-demand computing from EC2 using Amazon compute instances what we do essentially is we create all these virtual machines you can spin them up and then you know run those virtual machines accessing our data pool from the public data set right, so you can do a lot of stuff only problem is at some point when you're doing a lot of this processing you have to pay your own money which is not much if you compare your private you know storage requirements and computer comments you have a really big challenge if this actually works so we had this OpenNEX workshop last year almost 600 people participated in this workshop it was a challenge open challenge and what we told them to do was create some kind of tools using all the AWS stack and that involves anything you want to use you can use the database you can use their computing sensors you can use spot instances whatever but use our data sets to do something useful and we what the problem was create climate resiliency tools because we had to satisfy this White House because it had to be aligned with the White House initiative right so the whole idea was okay create this web apps or mobile apps or you know web dashboards or tools which relate to climate resiliency or you know I mean the example we gave was you know what would New York look like in two thousand hundred you know whether it will be like Arizona right it's a twin cities concept and we had some extremely extremely innovative submissions and there was two phases the first phase was the ideation the second phase was more of implementation in the implementation challenge we received almost 30 30 replies because that had to do the whole we had to implement the whole thing right so there are very few people who participating but all the replies were very interesting and we had some very very good ideas and then we had to justify both Amazon and NASA that why do you want to actually go forward with this model so what we came out with this okay now you have all this NEX data essentially NASA open source data some of you know some of the data is being produced by researchers it's still open source and you have this compute platform and then you have big science being done right so scaling on the cloud is a must I mean it's the only option right now you have to do that what are the components associated with it yes if you have reduced cost you have open science you have data discovery and exploration you have on-demand scalable computing we have been using a lot of the spot instance model extremely interesting and then you have open open resources which we provide as labs and tutorials we're trying to expand on those tutorials now and then there is low barrier of entry because whenever we're talking about access to high performance computing inside NASA aims you have all the security restrictions international people cannot participate unless they're associated with NASA projects in some form right so you have all this barrier of entry so what are the new features we have open NEX new features data discovery data visualization which a lot of the stuff being done by GIF and then we have virtual labs tutorials lectures sample example is this essentially shows shows our open NEX stack that's what I call we have a front end we have a back end and then we have all the AWS stack that's not what I'm doing it's kind of tight actually just let's fast forward a little bit I don't want to show this this is our typical web platform which we have for the open NEX again these are some of the new open NEX features if you have been following the open NEX site I don't know how many people know about this but you've been trying to revamp the whole site and that essentially involves you know again knowledge capture usage more of analytics recommendations you know standard stuff nowadays right so this is what I wanted to show you know what the geospatial innovation facility Maggie Nancy and Kevin has been you know Kevin initially started this and Maggie has started this so they've been trying to build this interface it's a it's a visualization platform for our NEX open NEX climate projection datasets and it's pretty cool actually I love the interface you know you have a lot of options to play with because the data is so big and the query is so hard even taking less than 20 seconds to query the data for each pixel is a lot for us there's some cool stuff going on behind the back end when this is basically spitting out all the time series given an idea of interest you could actually move back and forth from 2000 you know present till till 2100 so everything is there at some point give is going to release that probably in their their website and we're also going to integrate it to our open NEX website so going to happen very soon and this is our other chip model planet OS where we're doing a lot of search and discovery which which we had been lacking actually for the last four years we have this lot of datasets but whenever people come in they say you know given a region of interest given a time span you know I want to just use this dataset and then feed it to my code and that should automatically happen every time I do that and so you know and we created this interface okay given a variable of choice temperature it spits out all the datasets and a given of region of interest it spits out whatever datasets are available on any X creates a nice JSON file for your fields it to your program which is running behind the code right and then it automatically works right so you don't have to do it manually now and discovery needs to be fast so if I'm talking about filtering the modus datasets now that's an interesting question which you have dinner which we did actually right now in our discovery platform is given a modus dataset you have qf flags right I have aerosols I have clouds I have you know shadows coming in so filter out all the pixels which has higher results high clouds and you know high cloud shadows so how do you do that I mean very easy we actually pre-can all the datasets initially for each of those pixels it's basically sitting like on a side db kind of a database and then you could do this query and then create the dataset for you to use right so and now I would like to show some of the machine learning stuff which we have been doing although I have probably 15 minutes I would actually skim through some of the basics of machine learning which every one of you know here what we have been trying to do is derive three cover from one meter multi-spectral datasets right and this is essentially the native dataset again I was telling you it's a beautiful dataset but you still have to address the scale scalability part of it so we're talking about 60 terabytes of images nothing but the granularity is high right so we're talking about 330,000 scenes each scene is like 7000 by 7000 in matrix dimension it is big data what we did for now and we actually scaled it to three other states we don't have the results now but for california it takes us 48 hours to run 11,000 scenes and mosaic it and then create the tree cover but obviously the interesting problem is tree cover delineation is a hard problem and when you're talking about this problem you're talking about a lot of heterogeneities you know mix pixel problems you know you're talking about whenever you're talking about using multi-spectral bands and you're talking about what kind of features you should use and whether those features actually help whether they're complementary or whether you have a better way of doing this so we created this deep learning based image image classification technique for doing this and what are we really using in terms of features to classify this and we had to split this up into three different parts this is actually a processing architecture on the supercomputer end so we have this image is being fed in parallel to all this course and again split up into small images we have three parallel routines running one is the segmentation one is the classification and one is the feature extraction part of it the classification is essentially deep learning component and that is being split into an unsupervised and a supervised we also did this on amazon this is kind of what it looks like in the amazon front it's a it's a complicated we can discuss this offline but but essentially we leverage a lot of spot instances almost 70 percent savings for us right so I'm not going to the system requirements part of it but let's go into the algorithm we need segmentation after we do the classification that's for sure this is some of our features which we have been using from the native data set again we can discuss about this why we have been using these features we have a total feature ranking process and what are some of the features we have been using in our remote sensing discipline for a long time so why don't we use them also overall we use restricted boson machine to do the unsupervised part of the deep learning component and then we have a supervised component which which actually takes the initialized weights from the rbm network and it's more of a stacked rbm model now why this is important because essentially we need this unsupervised architecture to create these weights because we have limited training data that had been a problem for a long time for us now so and that's that's addressing your problem of global classification of trees when you're talking about just classifying trees for the US you can't just manually go on doing training samples right for the whole of us so you need to have representative samples again if you have too many samples you end up having over estimations or under estimation right so you need a trade-off right so and this is where we found out that where it where this algorithm outscores the traditional algorithms in classification is this unsupervised classification right so we're actually creating these high-level features out of the input features which we are already giving it to the network and those features are much better in terms of converging in a much faster way again you know I can go offline on these topics we are using the restricted boson machines for our unsupervised learning and essentially it's a maximum likelihood learning for the RBMs we use contrastive divergence learning it's a faster alternative to maximum likelihood again won't go into the details let's go actually to this part yeah so we have this training phase that's more of the learning module here so we had the unsupervised learning each layer is a dbn is and it's trained using contrastive divergence and with repeated Gibbs sampling if you want to know all of these terminologies can discuss again after that lecture and so it initializes the weights of the network using the using using the RBMs and then it goes to supervised learning where we have our own set of representative training samples and which we saw that it actually performs really well when we scale it to other states that's what we have been finding out right so and when we are talking about accuracies if we even reach 80% accuracy it's a lot and even though people claim that they have been having this high accuracy I don't believe so when we talk about the NLCD which has been done a really good job for the US classifying land cover classes of 30 meter if you just take the urban landscape you'll find out that trees are missing right you cannot classify 30 meters so if you look at the urban landscape anywhere there are no trees essentially at the NLCD scale now if you aggregate all the Landsat pixels for the whole of US and then say that okay all the urban trees are missing from this land cover imagine the uncertainty you have coming out of it right especially for biomass mapping and carbon and stuff like that right and I show you some of the results we have we actually use structured prediction using conditional random field also again we can go into details experimental results well this is what is more important for us for the whole of California we found out that 82.59 is the overall true positive rate and the false positive rate is 1.73 that is more interesting right when you compare it to the NLCD which we should not ideally because it's a different skill but that's the state of art right now right so true positive rates 72 versus 87 look at the false positive 50% NLCD and 1.9 again we're also using other models recently came out with a paper called deep sat it actually involves more of a feature enhanced dbn model and compare it to the traditional dbns and convolutional neural networks and I won't go into details here but we had again data sets which we constructed from the native data and if you look at the results our results actually almost 97% accurate for all these two data types if you compare it with the stacked auto encoders it is 79% versus convolutional neural networks with 86% so this is a big shift right 10 to 11% change as some of the results here just showing San Francisco Bay area I mean this is exactly the example I wanted to show you like if you see here this area highly granular right in NLCD this comes up at white completely white no no trees right and you are interested and this is exactly what we're interested in if you're doing carbon monitoring if you don't have this estimate from these regions you're missing a lot right even for urban heat island applications right so this is a semi team or simpler but let's go to the big one this is actually the tree cover mosaic which we did for the whole of california looks pretty good we had some list classifications over water bodies but we figured that out why it was happening it was interesting you know you don't want people to distribute data sets and people finding trees in oceans right so we say okay it's chlorophyll so then we're also doing yield prediction that's been our more recent exercise using the belief network again it's a hybrid model I'm running short of time but we could discuss it offline I wanted to show some results actually I won't go into this but some of the yield predictions we have been doing using Landsat and ground based data sets this is actually using very high resolution data sets some of the other applications we have been doing some rooftop detection trying using our algorithms just to see what it takes and this is the most interesting part we're actually trying to segment fields from these data sets automatically now given the segmented fields you could actually hand it over to the farmer saying that hey can we just have a look looks good or not and he says okay it looks good and he can redefine the boundaries but this is actually the most I would say the hardest problem we've been dealing with till now just segmenting field boundaries I don't want to talk about this well summary essentially well any x lowers the barrier of entry allows knowledge sharing earth sciences is big data we have a lot of machine learning applications you know intelligent information prediction estimation the machine learning is great we're understanding the data is critical that's where the domain expertise comes in and scale and generalized learning models such that they're applicable to different domains and that's about my talk here and I would encourage any questions thank you


In the post show last week, John, the concept of blockchain and specifically NFTs, non fungible tokens came up. I think you mentioned the word fungible in the show, which is what led to that discussion starting to happen. And I found it very difficult to explain what an NFT was. So I did a little bit of research this week to see if I could come up with a better way of explaining what an NFT is and why some of these non fungible tokens are super valuable. And the best example I could find was an article posted by JackRusher at JackRusher.com, it's already linked in the show notes, that equates non fungible tokens to signed copies of an artist's painting or an artist's work in general. So you can take an artist's painting and copy it and that is true of any digital data too. In fact, when you make a copy of digital data, it's an exact copy. So you literally are getting the same quality and you can replicate that millions of times. What happens though, when an artist signs their painting, even if you can make an exact copy of it, you are not making a copy of that particular artist's painting and that particular signature, right? And especially if the artist says, you know, this is, if they sign it and they say this is 1 of 50, this is 2 of 50. Now those things are unique in that way. And that is a verifiable uniqueness. Now with an artist's signature, that can be forged, but let's for the moment say, we've proven that it's not forged. So now that's why this signed painting or a signed book or whatever it is, is now more valuable than the unsigned book. That's what these non fungible tokens equate to. The difference is that by using blockchain as sort of the proof of this thing's existence and its uniqueness and its path of ownership, there is no forgery possible.  The blockchain is an open, confirmed source of the history of any of these tokens. Of course you can use it with cryptocurrency and things like that, but it can be used with lots of things. And it confirms that this is valid. So it's signed paintings. There you go. Or signed books. Signed books might even be a better way because the book can be mass produced. But you are signing one of them and now that has a level of uniqueness to it or a piece of uniqueness to it. Again, there's no levels of uniqueness. All right. That's where I got. I don't know. Do you have anything to add to that, John? Yes. Let's get a timestamp here. There's an entertaining video that we will link to in the show notes that also attempts to explain it. Excellent. You like it. You get a chuckle out of it. Oh, that's super helpful. Having different ways of looking at these things is key.


Iroca is really excited to continue to provide like a legal platform and a home for Nottywood which we think is pretty awesome content and in addition we do understand the challenges of optimizing for the African market and we're working really hard to innovate and to optimize for mobile in Africa and idea is that mobile plus awesome Nottywood content is a wonderful fantastic union and a dream and a big hope is actually to digitize for Africa.


So I'm gonna go ahead and get started. I'm Jeremy Dean, Vice President of Education at Hypothesis. I've been at Hypothesis for six years now and before that was at Genius. I've been doing the social learning and social annotation thing on the tech side for almost a decade and before that I taught high school and college English and got a PhD in English and so this has been a truly thrilling day for me. Okay, I'm gonna start with a series of thank-yous, first internally to the Hypothesis team. This is largely the work of our marketing team of Wendy and Wendy Morgaine and Fanny Franny French. So please let the applause emoticons rain up I guess. They rain up, they don't rain down on the screen for Wendy and for Franny especially for this event and all the work that it goes into it for really months preparing to get everything in place and then for today for pulling it off which I think we did. I also saw a lot of the Hypothesis team in the sessions today engaging with the presenters and with the audience namely Michael and Matt and Becky and Aaron and I'm sure Autumn would have been here too if she wasn't out of office today. If you're already working with Hypothesis you know these folks as our success and support team members and they not only were great today but if you work with Hypothesis you will also know how great they are and how even today at multiple times they were complimented for one of the reasons why it's been such a lovely experience for certain instructors or administrators to be working with Hypothesis. So let the applause rain up for Michael, Matt, Becky and Aaron and the Hypothesis success and support teams and thank you to everyone who attended today. So let the applause rain up and the party signs rain up for you. Thank you to everyone who attended today it's been a really great afternoon of social learning about social learning. See what I did there? Of course I'm going to be meta like that meta with a lowercase m because that's what social annotation is all about commenting on the commentary. So thank you for great conversations throughout the day and for sticking around long into Friday afternoon for at least those in the Eastern seaboard and across the pond. In closing I want to share reshare quote from the Laverne experience program started by Devorah Lieberman. Real learning cannot happen in a vacuum connecting oneself and one's new ideas with others across classrooms across the curricula and into the community builds confidence, deepens experience and maximizes success. Sounds like an amazing program. Go check out the website and if you don't have something like that at your university or college try to make it happen. I think we practice this sort of social learning pedagogy today. I feel smarter than I did this morning and it's because of you and all the conversations we've had today so thank you again for that. Today we've talked about social learning tools and specifically about hypothesis as a social reading and social annotation tool. Yes we build a social learning product. As an organization we also believe in social learning as a practice that's why we host events like the social learning summit today that bring people together to discuss ideas and to learn from each other and look for us at your campus or at your favorite professional conference and we might be there with some piggyback event bringing folks together to talk about social learning and social annotation in those spaces. We also believe in partnerships with other technology companies and working together to create a better experience for our shared users. Some of you may have learned about our Slack coalition in the previous session or can by viewing the recording later it's actually already later it's already up. I just noticed looking at the table of contents that or the schedule that you can already see the sessions that that happen. So if you miss the Slack coalition or the the conversation around tools working together you can go check that out after this. Slack is a coalition of platforms, publishers, tool providers, and schools working together to ensure that social learning tools like hypothesis work for students across the too often siloed spaces where we access and engage with content. Hypothesis currently has pilot programs with the vital source platform vital source e-reading platform and with the JSTOR library aggregator that our LMS customers can access. These integrations were built through partnerships and collaborations with other companies and other tools. The JSTOR collaboration I was thinking about today began around five years ago when Alex Humphries and Ron Snyder from JSTOR labs came down to Austin where I'm based and we invited a bunch of faculty to think through the design of social annotation of a social annotation layer to JSTOR content teachers and technologists from two different companies working together to build a better experience for students and teachers and others. We learn better and we build better in community. Robin Derosa who I mentioned earlier was first first in the chat. Robin Derosa was reminiscing in another session about her first interactions with hypothesis as an early adopter. This was one we had far fewer logos on our website they're almost illegible at this point. Robin mentioned how helpful our much smaller team was back then in onboarding her and her students but my memory from that time was how much we learned from you and your students Robin. The blog your student Shannon Griffiths wrote for your class is still on our website and remains one of the most powerful student accounts of their experience with social learning and social annotation that I've read. Hypothesis also emphasized social learning in the way we collaborate with our customers that are implementing the hypothesis social annotation tool. We're always learning from you. In the CTL showcase session today Dana Canard from University of California Santa Cruz mentioned how when a course she was supporting had a visually impaired student she the student and the instructor met with Matt Dricker our accessibility lead and others on our team to walk through the how-to's of using hypothesis with a screen reader. We could not have achieved what we've been able to achieve in terms of accessibility if we had just been paying attention to the ticking of the boxes for compliance which are important institutionally but we really learn about accessibility when we work with everyday users and so again partnership matters those collaborations matters matter. We're always learning from you and from from our community. If you are already partnering and are inspired by today to deepen and expand the practice of social annotation in your class and we're on your campus please reach out to us there's an email address on the screen education at Hypothesis and as I said before we're still learning both about the possibilities for social annotation in the classroom and expanding our understanding of how our tool is used in the classroom from our users so we can learn together as you adopt and implement hypothesis social annotation. We have exciting new integrations that were mentioned in the session with JSTOR and vital source that we're testing out and so that's an exciting reason to start partnering with Hypothesis today. If you're not yet partnering reach out to us and we can work together to make that happen and if you are an educational institution we can get a free pilot going at your school this fall and with that I'll just say thanks again for so many great conversations today and for the ongoing collaboration to improve the hypothesis tool to push social annotation practices in the classroom it's been a it's been an amazing journey and I'm so excited to continue on that journey with you guys and I guess I'm ending early here with just eight minutes time gone by if there are questions or comments feel free to throw them in the chat but again thanks so much for a really great day really great conversation it matters


Hello, my name is Tobias Kaminski, I'm one of the main and paid developer for the Android app and I want to show you the next big features of the version 2.0. Just to compare it to the last release, we had 90 pull requests solved in the four-month development cycle with roughly about 23 solved issues. Now within the same development cycle we have roughly about 200 pull requests even growing if you still fix boxes and solved 180 open issues. And as you can see the blue line marks the version 1.0, we have a really nice and growing over a commit history. The main thing you will see if you open our new app when it will get released is the extended and enhanced drawer icons and drawer items. So yeah, I just want to present them the next big features to you. One of the main thing was done by Mario, the other paid Android developer. He completely rewritten the auto upload, so it's now possible to use it for all devices. Previously we had separation between the Android 4 or better Android 5 and below and Android 6 and above. The old devices still used instant upload whereas now we can use auto upload for all versions and we had to do a trade-off between reliability and battery consumption on the one side and instantly on the other side which was all so enforced by the new Android 6 system 6, 7 and 8. So it's now more reliable or at least it should be 100 reliable, but it will never be instant because we cannot control when the upload will take because the Android system will decide this for us. And the next long wish feature was to separate the images and videos so that you can say you want to upload the images right now and the video is only via Wi-Fi. On the drawer you can now directly access the favorite files with our marked on the web UI or on the Android client with the star and you can just access them directly or directly show the images to your friends or if it's a not text file you can just edit it. So it's really nice to have the favorites directly accessible. The search function was enhanced. Previously it was mainly filtering on the current folder but now you can just type in the search bar any search query and you see the result completely from the server even with external folders and you can then access and manage them and manipulate them like the normal file listing. This is a feature which is only capable to use with the latest next lot server. If you or if the server admin has enabled the user theme app you can now see all colors and server name and background images from the server so you can just distinguish different servers if you have for instance a work server and a private server. You can see by switching your accounts and the color which server you are currently on and it cannot happen that you just think that any file has been deleted because you are just on the wrong account. So this is just an image to show three different account types with three different images and the one on the left is a nice Frankfurt skyline. So notification is something that will yours present so I just wanted to say that we have integrated it and using it push notification on Google Play devices and calling for the other apps like fdroid or if you build it manually also you can see the activity stream that you are used to see on the web UI and also here you can just directly access all the files and access the folders. The big community contribution was to enhance the security where you can just now use the fingerprint if your device is capable of it and you have set it up so you can just use it to even more secure the app instead of the pin which was just a four digit pin you can just now use your fingerprint. And the last one big thing we have implemented is the new web login flow you will first if you want to set up an account you have to enter your server URL and if it is server from next cloud 12 or above it will redirect you to the server URL server login flow on the left we have to enter your username and password and then it will automatically generate a unique app password and use this for further connections. So if you lost your mobile phone you can go log in into your web UI and just reset only this session to make sure that the device will never be connected to the server again. And if either the server is too old or for some other misconfiguration issues the login will not work we have still a fallback to the old system. So this is in short the main big features of our 2.0 version and I want to especially thank the whole community for the great support either by pull requests or finding bugs or contributing via feature requests or testing the beta versions or the release candidates. So I really wanted to thank them because I think otherwise we could never have such a great release without them. Thank you.


We need to find coefficient of friction or full friction force. Friction force acting on it. This should be what? So that it rolls without thinking.  Take care. Tau is equal to? Which force friction? 2 by 5 mg center. No, no, no. All right, I will do it now. There will be mg force, there will be normal force. Friction will be in which direction? upwards so that it start rolling like this. You have to look at the rotation as well. This is the force of friction. Any other force that we have missed? No other force, right? So which four, are you seeing any fixed axis? Bottom most point is instantaneously at rest but at times we do not feel comfortable treating at this as a fixed axis. So we will apply torque into iso about the center of mass. So which force has a torque about center of mass? Mg passes through the center of mass or not? So torque due to Mg is 0. Torque due to normal reaction? 0. Only friction will have torque. So if friction is not present, alpha can never happen. Alpha can never be there. It will just slide down. It will not rotate because torque will be 0 about center of mass. So r into fr is a torque about center of mass. This should be equal to what? 2 by 5 into alpha. So alpha into r is ACM. So friction will be equal to torque mass, ACM. Mg sin theta minus fr is equal to what? Friction value over there. So I get Mg sin theta minus 2 by 5 m into a 5 by 7 g sin theta. Substitute over there alpha friction to be equal to 2 by 7 mg sin theta. 2 by 7 mg sin theta. This is what they call rolling friction. Only this much friction is required for it to roll without slipping. The maximum possible friction is mu into normal reaction which happens because of sliding. This much will be the friction acting on it which is very less. Any doubt? You can also do this by balancing torque about that point at the bottom. They do balanced torque. Yes, over there. About this you can write the torque. Mg sin theta into r is equal to moment of inertia about this axis into alpha. You can't use about that axis moment of inertia. That's right. But then don't do like that because it is a fixed axis but it doesn't appear to be a fixed axis. So every time when you do like that you will not be feeling in control of the power. Any doubt? So what is the moment? You can't parallel axis. Yes, parallel axis will be 2 by 5 m r square plus m r square. That's okay. Any no doubt right? If this question correct you will get 2 minutes break. 5 minutes break.  I will know if somebody copies. What is the whole thing inside right now? So should I speak? Yes sir. Okay. So when you look at it from this side it appears like that. My god. It's a cylinder from the middle. Another small cylinder comes out. This is a string which is wrapped around the smaller cylinder which is fixed on the bigger cylinder. So this is, what happened? How do you fix it up? I took a big log, wooden log. You removed this material from the wooden log. Then you left with this kind of structure right? Yes. It's a, if you take this line, now it will feel okay. Okay sir. So where are you? You put it on the cylinder, put it on the call. Sir, both are like non-call. Both are cylinder only. See, total mass is given and complete radius 2R is given. The moment of it is M into 2R square by 2. Okay. So you don't need to add up each house. Actually, yeah, it will not be M into 2R square by 2. You can say that, see here, let me tell you the radius of gyration. The radius of gyration is let's say K. Haven't taught radius of gyration? No. Nothing happens. See, seriously. If radius of gyration is K, moment of gyration is M into K square. So radius of gyration of a ring is what? R only. For a disc it is R by root 2 because M into K square should be equal to moment of gyration. Okay. Okay. Okay. Okay. So, I should be scared about that axis. You need to find out the far A and what else? Force of gyration. Sir, it's impossible. Just write out equation like this. That's all I want. Sir, it's not slipping. No slipping. No slipping. We just watched string said something about it. String is getting pulled. String is wrapped around here and it is pulled at an angle theta with the horizontal. What's going on? If F is very large but F is not that large. Can I slide on the motor? There is no slipping. There is no slipping. It is pure rolling. Rolling without slipping. So roll backwards. Yeah. Attempt it. Okay. If you assume rolling without slipping the bottom most point is to get rest. Just write down the equations. Write down the torque equation, force equation. How simple is that? You're pulling string like this. Yeah. With force and tension. Okay. Okay. Okay. How simple is that? You're pulling string like this. Yeah. With force and tension this string is F. Oh, tension in this string is F. Are you pulling string with F? So string will pull you with what force? Yes. F only. That is a tension. Okay. Okay. Okay. Okay. Okay. Okay. Okay. Okay. Okay. Fx. Fx what? Fx is friction. Both are F. If R is equal to F of course there is a Y. Why should balance? Why should balance? There is script now it does not roll without slipping. You do not need this equation to vertical direction, normal direction. It is correct, no one else. Mu n, why you taking mu n as friction? It is not mu n, friction is not mu n, it is just sufficient for it to have to rolling. Mu n is when sliding happens, it is rolling friction we are taking. But who else? No one else. Sir, sir, I just changed mu n to friction and it is okay. So, because everything will remain the same, I did not use. Tongue to friction is wrong. Wait, no sir, I thought due to friction was wrong. Tongue to friction is wrong. The tension should be, because it has to be rotating. See, at times you will, listen, listen, listen, at times what will happen is that you will start wondering how it is rolling, where is the friction applied. What I am saying is that at times you will worry about how it is rotating, where is the direction of friction and all that. What I am saying is, do not worry about consistency. That is all. You can assume any direction. You can assume any direction of force or friction. But when you write down the equation, you should not equate force in this direction to mass emfration of that direction. Similarly torque, clockwise torque you should not equate to I of alpha of anti-clockwise. Are you getting what I am trying to say? You can assume any direction of friction, any direction of maintaining consistency. Because torque here to I of alpha does not tell you that friction direction should be this and that. All it tells you that it should be consistent with applying the equation. Are you getting it? So, let us assume friction is this way. I do not know which way it is. So, I will assume any which way. This is the friction direction. If my assumption is wrong, friction magnitude will come out to be in the friction. That is all. So, if I write net force along x direction is equal to mass emfration, I will get f cos theta minus friction is equal to what? f into a cm vertical direction I will not write because this is the normal direction will come in place.  Because entire force is perpendicular to this distance. To find the component of force you have to use as cos theta. But in order to find torque force into r. I will just throw you out. There is a counter in my head.  I am not that sarcastic. There is a limit up to which then I have to ask you to. While I am telling here you should maintain silence. When I am asking you to solve problem then you can discuss. But when I am teaching something here you should be quiet. This is a cm. This angular acceleration alpha. Why I should take angular acceleration alpha like this? No, sorry. It will be like that. It should be like this. Why should I take like that? The reason? Only then this point can be at rest. Only then alpha into r this way and ACM that way. Getting it? Everywhere there should be consistency. So f into this way. But alpha is in opposite direction. So minus f into r. Getting it? Friction into 2r. This is the total torque about the center of mass. This should be equal to ICM which is m into k square times alpha. So you can solve this and alpha is equal to a by r. This is also constraint equation rolling without slipping. 2r is equal to alpha into 2r. Sorry. So after the break we will derive the argument by alpha. Then we have angular momentum left, center of energy left. Then let's see we can start angular momentum probably. Come in 10, 15 minutes.