Alright, so I'll start with summarizing few of the numbers from what we had this year. We had 131 participants as compared to a lot more that we had earlier, either in our live session or even in tribal, but as you can understand, we're just coming out to find out how to do this soon, by the way, and we were expecting just a number of attendees. 31 countries, 247 speakers, and again, thanks to all the speakers who came in here, 53 talks, so quite an impressive number of numbers that we had. We also had a training day, and this was mainly conducted by Elena and Saskia in Elements, and we had as many as 100 participants who had 75 hours of more learning. Most of this was online, this was only for one day, and it had three tracks. So, thanks to the developer as well as Andrew, and again, there are links on what was covered in this training as well. The organizing committee, and basically when we took this venture, we were extremely excited by the same number in others, and it's really great to see coming from that almost a year ago, when we announced that we couldn't have this in Minneapolis today, but we have, I think, successfully conducted this conference. I just wanted to call some of the organizing committee members, starting with Jen Vesio. Jen, would like to welcome you. And this is Afghan. Bia and James are not here, but we'd like to clap for them. Bia has generously awarded this, or has given this as a gift for the organizing committee, and I'll give it to Jen, and if you'd like to say a few words about what that is. Oh, we opened a stiller region this state of two years ago again, and of course, we have some Scandinavian heritage in the state, and our clinic comes from that, and a lot of the people that are Vikings fan will say Skoll, whatever, having no idea what our meet or Skoll means. But anyway, I was trying to think of something state-wise, or, you know, something from the state that could go with people. That's all I got to say. All right, thank you so much. Thank you so much. My Venmo is. All right, so thank you very much. Take a picture with John Davises here. Yeah, well, can somebody take a picture with your phone? Everybody wants to take a picture of this. Focus on the phone. And one more. All right, thanks everybody. So like to thank our sponsors without whom we wouldn't have been able to have this conference. We did help us in reducing our registration rates. In particular, 8 of us, we are a patented sponsor, World Sponsors PRT, and with cloud, and for Silver Sponsor, we had Galaxy Works, from Sponsors for ThermoScientific, and Lima Brain as well as TikaSan. So thank you very much. I already mentioned training, we had Delana and Saskia who helped us on that. In conference training, it was Assunta who helped us in that training. Assunta is also the co-fest for organizing with Darren Baker and James Johnson. And please contact her for details in terms of what's going to be happening for the next three days in the co-fest. And we also had an official photographer, John Davises. Thanks John. The scientific committee was chaired by Sumina Mehta and Ms. Afghan. And they also had Assunta as well as PRT as committee members. And then there were quite a few scientific committee reviewers who they coordinated with. Thank you very much for putting up this great scientific schedule. And yeah, thanks. We had quite a few session chairs. That particular snapshot is for one of the sessions that can be in the next session chairs for ensuring that all the talks were taken on time. And at the same time, there's a good exchange of questions and answers. We had quite a few speakers and really enjoyed talks by many speakers. Again, I'd like to thank all the speakers for putting in effort into presenting the latest work. We had a lot of good scientific discussion afterwards. So thank you very much to all the speakers. We also had a lot of posters and demo presentations. As you can see here, quite a few posters present here. We also had a 3D poster this year. Thank you very much for working with that poster. In terms of both organizers, again quite a few both organizers. And I just wanted to mention that the both sessions will continue today. And that's the schedule of the rest of the talks. I think there are four more works of sessions today. But to all the both of us, thank you very much. Information on the co-fest. As you know that co-fest will be held for the next three days, 21st, 22nd, 23rd. This will be at the Minnesota Super Committee Institute. That particular thing there will take you to show you the path to go from here to Minnesota Super Committee Institute. It's less than a mile in 2.7 miles from here. So walk a bit since you kind of had to cross the Mississippi to get there as a bridge. So you should be able to get there. And again, the idea is to meet at the hotel open at 8.30 in the morning for those who want to go together while others can go and use that link and go there. There is lunch included. That's what I've been told. So, you know, so please tell me what that is. Yeah, so I think most of you are waiting for this. I just wanted to let you know the scavenger hunt was actually a social experiment. We really did not have any plans. So given it given any prices, so we really appreciate people to part of this. Yeah, so we'll be sending a link for feedback to people who took part and also people who did not take a part, but why didn't you take part in this so thanks. Thanks for taking part in this. Those are the nominees for scavenger hunt price with us. Yes, my two sandwiches is that the last name. Okay. And we also have Stephen shank. And then there was this group of researchers including Alex and Yeah, Wendy was there too. So they put in some group photographs, but there were also some which And then we also had, you know, somebody put in a Now we're coming close to another winner. So on the third prize was Natalie Pooja. So Natalie visited nine out of the possible 13 or 14 sites that we put up on that. You're the second. You know, put in some photographs on a daily basis, but he visited 11 of the 14 sites. He got 13 out of the 14 sites and Very good public transportation system. Yeah. The last photograph actually took it from a bus. Yeah, Well done. And Stephen check actually got on the six sites which was pretty So I don't have much but I have this. So coming back to the closing session right so we, as I said, when we make this announcement almost a year ago. You know, the enthusiastic Of course, you know, but we have been forward to make this happen because we really had meant for two years by the end of those three years. And we really worked hard for this as I said the organizing committee. There was some galaxy members who put up their hand and really this challenge of making this happen.  So again, thanks a lot for making this possible. We could actually get all of you here and we'll have this this interaction that That's going to be all the same. I mean, we need to zoom and Other channels emails and other things but you're actually meeting somebody and talking About projects and even some random thoughts that might inspire new projects. It's really, really valuable. As you can see, there are moments like we have. There's some really nice photograph that was put up in the scavenger. I really like this photograph. It's one of the scavenger sites and one of the photographs that really, really And this is just the fact and I saw this actually this is happening though. They're like after three years and the amount of the murder that they had in the Medici that was really kind of captured the spirit behind this this conference. So thank you very much everybody for making this possible. Okay, that's my last slide. Thank you very much everybody. I cannot reveal. Which is the letter you want to have the next case conference. We don't give it any. I'll just pass this on to the next speaker. This is the secret of this year's GCCC. So you're all going to have to learn to say good day, mate. I've been involved in the Galaxy community for a really long time. A dream of ours has always been to steal the Galaxy conference away from the Northern hemisphere and have it down south where everything goes backwards. And so the next year's conference will be in July in Brisbane in Australia. The Galaxy Australia will be hosting it. We're one of the large public Galaxy servers part of use Galaxy dot star. We've got a team of 13 people and we've been an over the last four years we've been trying to grow the Galaxy community in Southeast Asia and places we've been interacting with places like Indonesia and India and Malaysia and New Zealand. And this is a real opportunity for us to really grow Galaxy in this region of the world. Alright so Brisbane in case you don't know is halfway up Australia. It's in a subtropical zone so it's going to be winter there but it might be winter like anyone from around here understands. Winter in Brisbane means sunshine, warm weather and no rain. So it's a city on a river. Everything is outdoors, alfresco. There's lots of natural experiences and attractions. We've got a whole bunch of new entertainment precincts. It's going to be the host of the 2032 Olympic and Paralympic Games. So there's some infrastructure happening there. So this is kind of like where it is. We're hoping to be able to have it somewhere around here around this part of the river down here. So there's going to be ferries and gardens and hopefully really nice places to come. You can get there pretty easily. Even though Australia is a far away and it's going to be 32 hours to get here. There's actually a lot of direct connections from all over the world. So it should be fairly easy to get to. Direct international access from 34 destinations. The airport is located 20 minutes from the city by train. There's actually a railway station at the airport to get on it. And you end up in the city 20 minutes later. So it's actually really good. Cool. I am going to cue two of our Galaxy members here in camp.  These are the same gifts that I brought to private in 2019, when we started lobbying the Galaxy PIs for this opportunity. So I've got more of those. Teresia Brisbane City Council. So once you arrive in town, that's where I've been with the last 15 years before escaping out of Cool Melbourne. You will find we have things like the dock bars that are in this photo under one main bridge, the Story Bridge. The river is heavily used by public transport, which is great. We have three city coppers that pass across the river in about a 15 minutes. Thanks to some of the co-support we've already got for this conference, which is paid for by the Brisbane City Council. Whoever comes will get discounted public transport fees. There will be discounted restaurant tokens, depending on where we end up. And yeah, we're also encouraged you to bring your walking shoes or cycling shoes because it's a lovely place to do both of those things. As Simon already hinted and something we're quite aware of, given the lovely weather that it is outside right now, the average temperatures this time next year are global warming aside, about 15 to 22 degrees. And it's true, most days I'm still in shorts and T-shirt in winter, which is absolutely lovely. And that is our dry season. So that bar there, I've eaten that. I'm not sure it's that table. I recommend it. That's our street reward. So that's a lovely place to go. And one of the things we know this year about GCC was the need to travel, you know, zoom conferences are environmentally friendly. Potentially we're getting on planes. I think this proves that having face-to-face conferences are also amazing. But Brisbane does pride itself on being quite a sustainable city. And certainly when you fly in, you'll see that nearly every house has solar on its roof. The largest local university, University of Queensland, is carbon neutral thanks to its own solar farm that powers the campuses. So it really is quite a sustainable city with a huge amount of rent space, which is awesome. Once you get there, all the things that we've noted from here, how much beer costs, for example, or how much does beer cost or how much does coffee cost. So there are some prices to be arranged for what you'll expect when you arrive. In terms of things that we hope might bring you to Brisbane outside of the conference. And clearly the conference is the only reason you're ever going to come and that's what you're going to say on the justification letters. So there are some things that might just add value. So local to the city. It is a river city, so you can explore the river. The bottom right there is the Kangaroo Point Cliffs. So for any of you that are keen climbers or out-sailers, that's a lovely location to do that. The bottom left is the State Library, which is actually quite a lovely building. And the top right, we have an artificial beach located from World Expo in 88. And our beautiful place to come, admittedly, in July, you can find no locals in the beach. There will be English tourists, but they're determined to get some sand in. But it's a lovely location by the best. Not just Park and Brisbane, and we admitted the slide, which is not so clear at this resolution, but within about an hour or less, you have access to the bay. So we've got dolphin feeding, some beautiful swimming and scuba diving on the bottom left at Moreton Bay, which is actually all four of these pictures, to be honest, but really lovely area to experience just inside Brisbane. And then if you go the other way, inland, well, except Wales, they're not inland. Most of those photos show you the lovely mountains we have. And the bottom left photo I quite like is when I was putting these slides together, I realised that same photo from that hill. And that hill is at Lone Pine Koala Century, which is nearly 100 years old. Beautiful location just down the river, certainly earmarked for me as our conference dinner venue for next year, because they'll let you cut a little koala and everything else. And for proof, that's my daughter there a few years ago playing with one of the lullabies at the cube. I had no idea who the other girl is, so I claimed that. But beautiful place and well worth coming. So with that, we hope to see you in Brisbane next year. We would love when we share these slides or it could be quick enough to type out. We have set up a tiny URL just really as a mailing list if you're all updated about how the conference planning is coming on. And thank you.


Alright, so I'm going to talk to you today about big and labeled multidimensional arrays. And the context, the sort of data that I work with and sort of the problems are, so I work in industry at a company called the Climate Corporation. We help farmers make use of weather information to make better decisions. So I work with a lot of different types of scientific data and different sort of, and a lot of scientific data looks like, so it's data where you have, where you see like physical simulations or a bunch of measurements, and it's complex data, there's a lot going on the tools we have for working with that weren't that great. So that's kind of the impetus for the work that I've done. So let me be a little more specific about the sort of data that I work with on a day-to-day basis and maybe we'll see some similarities with sort of data that you're interested in or the, I think there's, it's a little different from what people usually work with in sort of the data science industry. So we have, and I think the, I guess the first big difference is that this data is that we work with data that's, it's like primarily it's numeric data, it's, it has this multi-dimensional tensor structure to it. So for example, I'll use an example that I work with, I work with a lot of weather forecasts and weather forecasts are made on a grid and they, they come out that you might say, predict say surface air temperature over North America. And we make the weather forecasts, we'll make predictions for say today's weather and tomorrow's weather and the day after that, so in time and we'll, we'll even work with, we'll add extra dimensions for things like keeping track of, I make a weather forecast today and then I run the model again tomorrow and make a new weather forecast, so every day I have a new weather forecast and then the weather forecasts aren't just, I don't just make one weather forecast, I actually run my weather forecast model maybe 10 or 50 times to get a range of the possibilities for what the weather could be. So I, so for the weather next week in Berkeley, well it's probably gonna be sunny, but there might be, it's unlikely that you, you can't say with complete certainty what the, the weather forecasts are not very good, say anything with complete certainty when you look at next week or next month. So we look at ensembles as well, different scenarios. So we have, say like big, say five-dimensional tensors of data that are, and so the, that's kind of awkward to work with just the, the five-dimensional tensor, but the good news is there's a lot of labels and a lot of metadata associated with, with, with these data sets. So we have things, we have, we know things like, we have like names associated, like, like we know that one of my axes from my array is gonna be latitude or longitude or time. Each, each point is, is also identified by the coordinate labels as well. So like we have, we have numbers associated with every, with, we have a, we have a date associated with every, every point along the time axis, we have a, let's say like a floating point number for every latitude and longitude. So there's a lot of metadata that can help us work with these tools. And there's also, I guess lastly, the, the amount of data we work with ranges from sort of small data sets that they can pretty easily fit in memory to gigabytes or terabytes of data that requires sort of new, new tools to work with that. So this is kind of the motivation and I, I would claim that this is actually not that different from a lot of scientific data sets. There's a lot of, a lot, a lot of the data that we work with in the physical sciences is, comes on, comes on grids and across sort of all different sorts of domains. From, from neuroscience, sort of client modeling to say, physics or experimental data. There's lots of different, very different types of sort of, I think a lot of the, a lot of the stuff we learn about the, learn about how the world works. We collect it and or we simulate it and we do, we do that, we do that on, we do that on grids and we do that, we do that with arrays. It's part of why, part of why in, in scientific computing we, we work so much, we use, we use multi-dimensional arrays. And actually a lot of the attributes that features which are sort of tricky with, with our data sets are also, I think, common with, with these assets as well. I think every, every time someone writes that, almost every time someone's writing data down in a grid, there are actually a point in that grid has a lot of, there's a lot of, there's a lot of metadata associated with it. There's a, and there's sort of, we have, there's a lot of implicit information in terms of how, how, how we, how we set up, how we set up our problem. That, that would be, that our tools really should be able to make use of. So, so the fraying problem for me is thinking a little more generally, I don't just want to make a tool that works well for, say, for weather forecasting. I mean, I could write a library that does, say, crunches specifically weather forecast data. That's not something that, I think that there's a, that there's a common thread here, and there's a need for, for tools and kind of, like, span disciplines. Sure, if, absolutely, if you're looking quick, that's great, yeah. Yes, sure, so the regular, the, the, the, the regular spaced aspect is, the, the grids is not necessary. I think that the aspect that you, that you represent, if you're representing it as some sort of a, some sort of a grid, whether it's regularly, or irregularly spaced, something that, that I could write down in terms of like a, as like a matrix of numbers, or like a multidimensional tensor of numbers with some, some set of consistent indices. It's true, so yeah, so I, I can't, so it's, I think things get really hard if you try to talk about, say, like, if I have some, some, say, a bunch of like point measurements, for example. And there are a lot of data sets that are like that. Sometimes, and like, there are, there are tools we can build for working with that, but that's, that has not sort of been the focus here. I, I think those are often interesting problems. I think that oftentimes, I guess I would claim that, that sort of the unstructured problems have to some extent been solved, are more like what, what we see in terms of, say, the tools that are, that are used in, in sort of, I guess, sort of traditional, like data science tools for, say, with databases, or sort of the tools that have been built for processing sort of big data in sort of the commercial world, is that they deal with very unstructured data. And that, so I think the, the structured aspect, I think is one, one of the, one of the big differences between, say, the data of sort of physical data science versus, like, I don't know, say, click data, or advertising, sort of things like that. So the, the work I've done here has been, has been in Python. And it's, so the, it's sort of trying to fit in to this, to the, the ecosystem of different libraries that people use in, for doing scientific programming in Python. So the, in my view, one of the really awesome things about, about Python is that there's not one way to do it. There is this vibrant ecosystem of a bunch of different tools. Maybe, I mean, this is kind of a strength and a weakness in some extent. We don't necessarily know what the right tool is for, for every job. But there are, there, there's some sort of core stack of tools that a lot of, that people from many different disciplines kind of come together to work on. And, and this is, these are sort of some of the core tools. And there, there are others as well. And they're sort of, this list is growing and shrinking. But, so I'm going to suggest a couple of tools that I've worked on, which are, might make sense to, to, you know, possible additions to sort of add to this sort of sci-fi stack. And they, and each one of these tools does sort of, there's one of these things I've been talking about. So xray is a library that, a library that, that I'm the main author of adding, we're doing sort of labeled multi-dimensional arrays. And this other library is, that I want to talk about today is called Dask. Actually, Matthew Rockland, who's right here today in the audience, is the main author of Dask. But I've also made some contributions there. And that's a tool for working with, for working with larger data sets that don't fit into memory. So I think that these, that these tools can possibly make a, could be valuable additions sort of, through this core stack of tools we have for, for doing scientific computing in Python. Okay, so let me get started and start talking about, more concretely, about labeled arrays. Okay, I'm going to start by talking about, about data frames. And so this, so data frames are real, so data frames. So this library xray, its genesis comes from thinking about, from seeing how people work with tools like data frames in a Python library called pandas for, for working with data frames. So data frame is really just, it's a, it's sort of a mashup between, somewhere halfway kind of between arrays and, and, and a relational database. It's a way of, it's, it's a tabular data structure. So things like you would see in a spreadsheet, but where, but with a, with an API that's very usable for, for doing data analysis and for crunching numbers. So, and they work really well for when I have, I think the data frames work really well for say like human data or data that's not, that's not at all structured. So data where it's a bunch of records that, that, that fills out and I, I can say I have some number of variables and a whole bunch of measurements and there's not like some really obvious structure to it. Data frames are a really great, great tool for that. And there's, there is kind of a, a right way and a wrong way to do data frames. There's a notion of, of, of tidy data. And this is, if you're, this is actually, this comes from, from Hadley Wickham, who's one of, who's the, they contributed to the, the R world and like R data frames. And the right way to do data frames, sort of to make things sort of easy to analyze is, so you follow a couple of, a couple of simple rules. The first rule is that we, we, is that we make sure that each of the columns is, is, is a variable in our data set. So something that, that changes and then each observation is a row. And if we follow these two simple rules, this is, this is, this is also sort of one of, sort of a standard way in which people will organize. There's a certain normal form for database as well. I'm forgetting the name of it, but it's sort of a standard sort of concept in, I guess in the world of, of database, that we do this, we see, we can make data, we organize in a way that makes it really easy to use, sort of standard data analysis libraries. And we can, and like, we can make it a whole tool, tool suite for working with tidy data that works really well. So there's, if you have one concrete example, here I've organized some survey data about this is taken from the tidy data, Wickham's Hadley, tidy data paper. Here is one version of it. And here's another sort of reformed version of the same data. Now this version here might be easier to read, like or print out if I, if I, if I had to sort of like look at this on a sheet of paper, but for doing the data analysis tool, I want, I want something that looks like this long version where every single row is extended out. So this, this is not what you want. This is not tidy data. And if you see, kind of the clue is when you see things like, like, like numbers in the column names, that's like a clue that you're not working with, with sort of the well-organized data. So what, what is X-ray? And how, how does it build on these notions of data frames and tidy data? Well, we, so X-ray is kind of, it's, it's like a generalization of data frames except where each of the columns can actually be some sort of multi-dimensional array. And that the unifying characteristic here is that, is that all these arrays, they might not all have the same dimensions. They might, for example, I have a pressure variable and I have a, an elevation variable and a latitude variable. Each of these has a different, a 3D array or a 2D array or a 1D array, but they all live in the same coordinate system. So because they exist on the same coordinate system, they share the same, they share the same coordinates, we can talk, we can think about doing operations that we would perform on the, on the shared, on the shared set of arrays that act on the coordinate system. And it's also kind of a form of, of tidy data as well, because we have, it's sort of, a bit of, I guess, I like to think of it as sort of a multi-dimensional tidy data, because again, it's now very obvious that each of the, let's say, each of the column names should be a single variable and that each observation, here the observations can have this, they can have this multi-dimensional structure, but, but it's very clear that should be logically distinct from the, from the column names as well. And so we have the shared coordinate system and we have, we have metadata here as well, and it's implicit in this coordinate system. This is the, the, the latitude access, or the, the longitude access, or the time access. So we have labels corresponding to these, the names of these dimensions, and we're also going to have labels corresponding to the points along, along the dimensions as well. So we're going to have both types of, both, both types of labels. And I'll show you an example of what happened if you, if you, you, you printed out this, this, this, you get a little, you get a preview and you see a list of, you see the names for each of these variables, you see the type and you see the first few values and you see the, the coordinates along which they exist. So we all share the same length along the time, latitude and longitude coordinates. These are all, each of these coordinates has some, has some size that is fixed across the entire data set and the entire data set has reference again across say the shared values of the time dimension or the, or the latitude dimension. So this is sort of, this is what the, this, this is what the, this basic data structure next where it looks like. So what can we do with this and why is this, why is this useful? And I think the first thing we can do with this is that we can start describing operations on our data set in terms of these labels instead of in terms of the arbitrary sort of numbers that we would use if we're using sort of traditional unlabeled arrays. So tools, tools like NumPy, tools like, tools like Matlab, tools like, I mean like sort of all these scientific computing libraries and languages. So if we're, if we want to select out the data for January 1 and we want to take say the maximum along the, the, of this data for January 1 say the, the warmest station let's say on the, on a particular day with, with X-ray we can describe that, describe that using, using the metadata. So we say I'm going to, I'm going to access something along the time dimension or along the station dimension. I'm going to pull out say I'm going to provide a date that's going to select out one particular or some, some set of values along that dimension. And I can write something that's going to sort of, that's going to, that I can write, I can write code that directly reflects my intent and that, so that directly maps my that doesn't need any explanation. So I can, I can write this and it's, it's almost entirely clear what this means even if you don't I mean you have to guess how cell is short for select but like it, the intent of this code is, it's sort of very obvious. The intent of the, of the version with just the, with just the numbers is much less clear and that's because I have, I have, I have, I've had some arbitrary numbers here like access to or like this you know like one, two, three zero through three. So you wouldn't really write code like this, hopefully. Maybe you would if you're doing some quick little one-off analysis but like, hopefully if you're doing it right you, you would this code would actually be expanded, it would be something oops, it would be you'd probably write like, you know, three lines with some comments or maybe you'll define some, some variable names maybe you will save some separate data structure that like keeps track of the, the keeps track of the maps from say the dimension names to the access numbers. You wouldn't, if you're, if you're writing something like this you, this, if you want to be able to sort of come back to it and know that it works properly to do this right it's, it's, it's a lot more work. So it's great to have tools that sort of directly provide some metadata. I think that's, that's the first thing, that's like the, the biggest thing about why I think X-ray is a useful tool. There are also some nice tricks we can do with this metadata that provides sort of additional incentives for using the metadata and that provide, give us additional things we can do with it as well. So one, one example is a vectorization. So for those of you who are, I think it's like most of you are familiar with, with, with saying a tool like, I can add together a scalar number and a vector and get back a vector. Or I can maybe add together a vector and a matrix and if I do it right I'll get back another matrix. So I can, I have operations where I, where I sort of can do an implicit loop based on, based on the dimensions, based on the, based on the arguments. So when we have dimension names we can actually do even better than that. We can match things up based on, based on, based on the names, not just their order. And so let me show you an example. Let's suppose I have two one-dimensional arrays. I have a timer, one array a long time and one array a long space. If I add these together, I don't want, I, I don't want to just, I don't want to like create some sort of hybrid space time dimension. That would, that would not be very useful. So I could maybe give, just give an error message. That would be one option. There's also, there's actually a useful thing you can do with that. And that is say like, well, when I add time and space, maybe I really want something that has that is sort of, that is the, that has both dimensions. So the full set of, that's going to be aligned along the full set of dimensions. So we can set up the broad, the, this, NumPy is called broadcasting. We can make broadcasting work with the name, with the name, with the names of dimensions. And that also, so that's useful for things like this. It's also useful for things like, if I happen to have my matrix and I have my matrix transposed, I can still add together my matrix and it's transposed and get back something that has sort of sensible dimensions. Yeah? Yes. So this is so, what would happen here, that's a great, what are the values in these arrays? So what would happen is that if I have, maybe I should probably annotate this example actually. If I have a1, a2, a3, and b1, b2, b3, the first, the first element here is a1 plus b1, the second element is a1 plus b2. It's the indices here, each if a cell in here corresponds one time in one space to find out what values go in that cell, I would need to refer back, I'd refer back to the corresponding elements of the original arrays, by, by their labels. So this, this sort of thing works, does that kind of answer your question? Okay, so, so here I'm, so here I'm literally, it depends on what the operation you're doing. That's a great question. Here, if I'm literally doing a plus operation they would be added together. If I was doing a times operation, they would be multiplied. I would get four in this case, exactly one three would give you four. Yeah, so I'm recycling the points. And one, one neat trick about how the tools like NumPy work, is that they can do this, so NumPy, the design of a tool like NumPy actually works is that you can actually do all this recycling basically for free.  It's like this large once. I don't have to copy these arrays in memory. That's sort of a neat trick of the way of the way that the, like say the strided n dimensional array model works. But so this is actually a pretty cheap operation. It's, we can do this vectorization almost, almost for free in some sense. It's not any more expensive than it is. It's something we can do very efficiently. And the other the case where this comes in really handy is basically I don't have to worry about the especially I say when I'm working with if I'm working with something that has more than two dimensions. If I have, if I have three or four or five dimensions for my array there's a zero percent chance that I will correctly guess what the order of those dimensions are. It's just, it's like some mix of dimensions and I have to like think really carefully and look through my code to figure out how it works. I've written a lot of stuff where without dimension names where you have a mess of code where you're like okay let's try transposing that array maybe it'll add together. Let's try adding in a new axis. Let's try, you know, and that stuff is just you spend a lot, I mean it's not that much time but it's a source of annoyance and it's a source of you have a really hard time keeping track of a lot of noise in your code basically. So the labels make that better. Yep. So the order of the resulting dimensions is in order of appearance from the from the arguments from sort of left to right. So we look at, so there's an order for the dimensions in the first argument and then an order in the second argument and then here if it's time space then we'll do time space. If it was time, if I was if I was adding in another array that had some other dimension here like time, space and I'm not even sure what goes beyond time and space but so something let's say we're going into, you know, some fractal dimension or something. Anyway, that would be an extra one at the end. So that's vectorizing by dimension names. That's one trick we can do with labels. Another trick we can do when we do with labels, this is making a different aspect to the labels is that once we know what the dimensions are we also have labels along each dimension. So every cell has given some label and here I'm using letters but what might happen is that I might have two arrays and I might have, they might have different labels actually with them. So I might have you could have a case where I have one has the labels A through G, another has say a different size as labels D through I. When I when I get in a situation like this we don't want, we certainly don't want to try to the approach with a tool like we get to a couple things we do. One thing we could do is we could say if the labels don't exactly match up then we'll just give an error and we'll stop. That's a perfectly sensible thing to do. But another neat thing we can do is we can actually still make this work even in a useful way by saying that if the labels don't quite match up then what I want to do is I want a result that has the aligned labels. So I want to line up the arguments based on the labels and I want a result that is defined on the on say the intersection of the labels from the arguments. So that's something we can do with this is something we've borrowed from the PANAS library for working with the labels. This is another operation that actually we can do we can do pretty efficiently because PANAS can very efficiently calculate say the intersection of two sets using using hash tables. But not too much overhead we can make this alignment stuff work as well. So those are a couple of things we can do with this stuff. Maybe I'll mention a few other sorts of operations that sort of make sense or generalizing things from now taking things from the world of data frames and databases to sort of arrays. And I think the biggest operation one of the most common analysis tricks that people do is is a grouped operations. So things like I have somehow for example I have some data set that is defined on a big grid say it's over the United States and I have 50 states and now I want to calculate I want to say calculate say the average elevation by state for example. And these sort of operations also make sense on also make sense on multi-dimensional arrays and we can define things like this with x-ray. We can do things like we have the labels we can that means you can just plot something you don't have to you don't have to fill that in later so like that's really convenient from a data analysis perspective. And I think this actually has so I think this is pretty important and maybe it seems a little trivial but the metadata makes it easy to do to compute some of this stuff and like that's great that's a nice incentive for doing the data analysis but the other aspect is that we know metadata is important but unless it does something for us we don't it's hard to actually use it so I think the another really important point from the perspective of reproducibility and science is that we know that metadata is good and that our analysis should sort of preserve the metadata use the metadata sort of check that it's all there but unless you're being super careful about it unless you have the right data structures it's such a pain to actually keep around the metadata that you're they're not going to bother and or you're only going to bother for something that's like for something that's really important and that means that in many cases you lose that metadata and that's something that makes stuff harder to harder to reproduce harder to understand so I think the metadata is really important and I think things like the plotting are actually a great example I mean the main reason half the reason for plotting is not so much because I mean it's nice sure it's nice to be able to make a plot easily but just as importantly the best way to get someone to fix the name to like fill in the the name of variable the longitude not just like dimension zero is to show them a plot that's labeled by like dimension zero they're going to immediately go back and like fix their data structure keep that metadata maintained make it look right so having the data structures that use the metadata and do things with it is a great way to encourage people encourage people to use it that's the carrot as opposed to the stick of metadata okay so that's my intro to x-ray now I'm going to talk a little bit about about Dask and what we can do with Dask for sort of another approach to working with arrays so Dask so again I'll talk a little bit about the ideas behind Dask and then I'll then I'll show you a quick demo of what Dask can do so Dask is a tool for that tries to extend these scientific computing tools in Python like NumPy and Pandas to working with sort of medium sized data sets so I guess I kind of lied when I said big data but big data is sexy so hopefully you'll forgive me the reality is that most of the world doesn't really have big data where you really need a supercomputer or a giant cluster of machines to access for a lot of data, there's a lot of data that falls in this range of say 10 gigabytes to 10 terabytes which is pretty awkward to fit on you can't fit into memory on your machine but you can fit it on your hard drive and you don't necessarily need a truly gigantic scale sort of supercomputing solution you actually maybe a single machine or a small cluster of machines can get you a huge amount of bang for your buck so Dask tries to solve this problem first before trying to solve the really big data problem and it tries to there's two things it does the first thing it does is it lets you use your multiple cores on your machine so these days even my laptop has four cores and but many of these traditional scientific people libraries only can use one core at a time so Dask lets you do that and it also lets you do things that are bigger than fit into memory so it can do streaming computation that you can't necessarily even if I can't load the entire data set in memory at once and the other part that I really like that was really impressed me about Dask is that it has a very simple data model hopefully I'll show you in a few minutes what that looks like and a simple approach it starts very naturally where tools like NumPy leave off on a single machine and it very naturally it generalizes that in a way that's not immediately trying to solve really hard problems the sort of massive distributed systems it's sort of slightly distributed and then maybe hopefully maybe a little more distributed and so the tools that will starting simple with a sort of transparent model that you can understand from and starting on one machine I think that's great and again my disclaimer this is Dask it's not my project this is all these good ideas here there are really Matthews sitting over here in the audience who is the author of Dask so I wanted to talk a little bit about it and it's something that we've integrated into X-ray because it's it helps us solve problems that we couldn't do otherwise okay well I've made some contributions Dask right so let me talk a little bit about the bigger picture for Dask Dask has a very has a clean separation between an idea of a collection which would be a data structure that someone would work with like an array or a data frame and then an abstract representation of how these computations are represented in terms of different tasks in terms of graph of tasks and then there's a matter of how they are actually how they're actually evaluated in terms of different schedulers and I think the focus so far has mostly been on on a multi-threaded or multi-processing schedulers which run the machine and those actually work very well they let you do a lot of neat stuff there's also a hope that eventually we'll have a distributed scheduler and that's what Matthew's been working on over the past few months so that we can scale us up to clusters as well and then we can start solving problems that look sort of more similar to what things people would do using using more sort of big data tools like Spark for example so let me talk a little so that's the tool I'm familiar with and that works really well with tools like X-ray so a Dask array is a data structure where you built out of tasks defined on chunks so like many of these sort of distributed array systems a Dask array, I have a big block and I divide it and I'm going to define how things work on individual pieces of the array so I'm going to how they can fit them all together later so at any given point in time a Dask array is defined by a knowledge of what these chunks are and a knowledge of say how to create a new chunk out of an old chunk and that's represented just in terms of the tasks that are represented in terms of dictionaries in Python that are defining say element 00 of the X-ray is based on you pull it out of the Y-ray and you add one and these are operations that are defined on top of NumPy arrays so it builds on top of these on top of tools like NumPy that work very well for handling say a block of data in memory and then I'm just going to and if NumPy can handle say a thousand by a thousand matrix like a million elements pretty well I'm just going to define things in terms of operations that are defined in terms of a whole bunch of little things I'm going to do on like arrays of a million elements and then it's just a matter of putting them all together and figuring out how to actually execute these tasks so with that I'm going to show you a little I'll show you a little demo a little demo of things you can do with what you can do with Dask and here I'm going to borrow this is again inspired by something that let's make this let's do this full screen let's see if that is that a readable size on the screen here awesome okay so I have let me just restart this so I have a notebook here where I'm going to show you what a Dask where it looks like so Dask has an API design that looks that is almost exactly like NumPy if you're familiar with NumPy the only difference is that when I create an array so if I create a five by five array of ones in this case there's also this chunks argument which says I'm going to divide it into blocks of size three so there are three elements in each chunk so that's actually going to be two by two chunks and what this and it doesn't actually nothing exists here until I compute it so if I compute the array I see it's a five by five array of chunks but until then it's just a bunch of chunks that are sort of it's sort of an abstract computation that is sitting in just to define it in a very abstract way so the things we can do so we can also because we have this representation with of this array in terms of tasks we can actually we can inspect the tasks and we can do things like visualize the graph of tasks so I'm going to show so this is I guess the very simple example here of right now this doesn't look very interesting right now I just have four blocks and they just they're just sitting there basically but I'll show you a little bit like I'll show you what we can sort of build up here out of these what we can build up out of these smaller pieces with the with with Dask so we'll start I'm going to start simple I'm going to add one to the array and we see that we have four blocks of the array and they just kind of get they get they add one task I'm going to do something I'm going to take the average of the array now you can see that these blocks it's a little hard to the scrolling is not working great here but there we go we're now we're putting together all these different tasks we're taking the average of each little chunk and now we're going to aggregate them all together and we can even do some really some really complex stuff which is which works remarkably well so for example if I'm going to say add one to x a transpose doesn't really do anything but maybe I'll do a dot product and oh my that gets a lot more complicated so we have this so we can so because of how the flexible model that the Dask has in terms of sort of creating these tasks and dictionaries it can represent really sort of pretty complex operations there would be a lot harder to do for example in terms of say like the map reduced paradigm for example and we can continue to imagine putting together putting together a task like this plus x we can take some averages we can do some we can build these sort of towers of tasks and then eventually now that I have this representation here of doing a few simple array manipulations later we can come through with a scheduler and execute each of these we can execute each of these little blocks so this is so as an example of sort of the complex things you can do with this so one of the contributors to Dask this was I'm forgetting his name a machine learning researcher wrote some linear algebra routines the bill on top of Dask so they can let you do things like this is the graph representing a QR decomposition which we can visualize which we can really it's also it gives a sense of sort of how the data flows to our algorithms even in these sort of fairly complex sorts of situations and again because we have these task graphs we can also we can do things that say plug in to the we can also plug into the execution engine we can see things like we for example we can we'll see here we can profile the task so for example this task is going to take me takes a minute to complete and you can actually see how much time it's spent doing each individual chunk of of that giant computation so for each piece we can have an interactive graph that will show us really like what the time spent doing different types of computation so it's kind of a a bit of a pre sort of the architecture of Dask I guess I'm close to running out of time so I will show you a little bit about I'll just say that this is the tool that I like Dask because it has a sort of a simple understandable abstraction and it's something that we were able to really easily hook in to X-ray and let's us do really awesome things with with the scientific data that we work with so for example I'll just show you really quickly you're not really have time to go into it but here I have an example where I have data that is maybe it's only in this case it's only five and a half gigabytes on Dask but by the time if I open up a whole bunch of these this weather data in form of the form of these nestdf files it's in memory it's got more data I can plot it out in memory it turns out it's something like it would be something like 23 gigabytes loaded into memory which is more memory than I have in my laptop but I can easily set up computations here which will ensure they're a little bit slower it might take me 30 seconds to sort of go through my array and compute the mean but that's just the price of loading data from disk because it's awesome that we have tools that can do that and integrates really nicely so the computation in x-ray will do things like building these task graphs if you compute because we only define things on little pieces of the array I can compute something I can really quickly say if I'm converting say to do some scalar arithmetic to convert from Kelvin to degrees Fahrenheit I can see a little preview of what the result looks like before it's without having to compute the entire array because it only needs to compute one little block and then we can sort of hook into tools like again the execution engine would ask to do things like add to do things like add profiling for example or to see a progress bar that shows us how long it takes to execute each task or do things like to cache execution so we don't have to calculate the same values twice and if you compute things we build these task graphs we can really see what goes into our computation and how we would and how we're going to execute it so that's a bit of a preview of x-ray and desk let me go back and talk a little bit more about in the last few minutes here talk about some of the opportunities in the bigger picture areas that I'm excited about in the future of tools like x-ray and desk and the broader scientific computing array ecosystem so desk works very well for what it does there are some things that it struggles to optimize that are sort of based on based because of the data model that it has and I think an example would be figuring out the right way to divide up your data into little chunks is something that's very that a tool like desk is just really not suited for you really need something that keeps track of what your entire computation is can then maybe go back and say given your computer architecture given here's how much data you can store in memory here's how you're going to use it here's what the right side of the chunk should be in practice that might make a large difference things like avoiding unnecessary reading of data from disk so maybe I don't want to read an entire block of data maybe when I compute say like a sine function on the first 10 elements I would rather I want to do the indexing operation first and then I want to compute the sine function these are things that we can do that in principle if you know what the computation is mathematically and some of these things we can do in desk but some of them are hard especially things like if I want to add say add two things together again I want to pull out the data first before I add them together and these things can be hard to make work with some of the tools we have another example would be again if you have an abstract representation of the computation you can often optimize it and speed it up as well and you can do neat tricks like in a tool like NumPy when I add together I create a lot of intermediate I create an intermediate result that has a lot of extra data and in reality I could if you know it is ahead of time you can do the computation much faster without any temporary results and so that's that would be the fusing operations and this is possible especially with things like just-in-time compilers it's a tool like so for example there are some examples of tools that can do things like this like Theana or Numba so maybe there's another one for another comp project for lazy array optimizations and I'll mention there are a few products that are going in that direction that I'd like to see improved upon and try to build a tool that lives on top of Dask yeah yeah that's a great question so if I have an operation that does x plus one that uses like two different say does the same operation but not the same variable I think that's another example of something where I think with the way that Dask, Matthew correct me this but I'm pretty sure I think that currently the way Dask works it probably would execute both of those separately if we're lucky hopefully it will all be the same can you want to compute it twice that's another thing that you might imagine adding in some higher layer on top to notice that stuff and some of these tricks with Dask are a reasonable job but I think that there's some brum here for sort of building on top of this and something that could use other products as well the other thing coming back to x-ray x-ray is something kind of like there's a lot going on it's sort of I think it's really powerful almost like an in-memory array database with these labels and these multiple arrays that all in the same coordinate system and for a lot of use cases that's really overkill that's not what we that's more than what we really want or what we need to deal with and particularly for tools like say scikit-learn is a machine learning library in python they really would love to be able to keep track of just they just want to know if my matrix has samples or features or features versus samples or if it's features and like there's a lot of bookkeeping to keep track of this stuff and something simpler might meet those needs without being as complicated as x-ray so maybe something simpler than x-ray maybe something maybe there's a way we could put these labels into closer into a tool like numpy a simpler version of this this is something people have talked about for some time yeah so x-ray does maybe not quite the right word so x-ray absolutely can execute computations on top of desk and you could in principle even put x-ray objects inside inside desk in some cases that might make sense so it does do out of memory stuff as well but it doesn't do but again it's with this sort of complex data model and that's the last thing I'm gonna probably end here because I'm without going into too many details as well but there's a lot of really cool tools for working with arrays and I told you today about a couple of them that I worked on told you about x-ray and desk and these build upon tools like build upon numpy for example but there's a whole bunch of different about a whole bunch of different tools that fit together that meet all these needs for doing things like in-memory arrays or parallel arrays different ways I want to memory something like a sparse array or a compressed array or different types of labeled arrays different types of arrays with units different types of parallel sort of distributed back ends maybe I want to do it using the DAS approach maybe I want to scale it up, I want to do it on a tool like spark for example that's what Bolt does then there's like a million domain specific libraries as well so how can we make it so that we can mix and match these different tools together scientists can pick the right tool and they're not locked in to say we don't have to have every astronomer uses like the exact same set of like underlying libraries that has been standardized on how can we make this easier to sort of compose these operations, I think it's a really important problem I won't tell you, I have some ideas about how we can fix that in numpy, I won't I'm not going to go through this today but I will say yeah so there's a lot of different types of data we I guess I don't really have time to go into this but alright so maybe I'll leave it here, I think we can do really awesome science if we have better array structures we can do it faster, we can do it more reliably more reputable so let's build some awesome new data structures so rank statistics are hard to do with distributed with out of core data


Peption asks, do we need to take a step back to go forward, letting the big banks store our crypto keys? In previous videos, you spoke about one of the most important next steps for the crypto world. Namely, to increase the liquidity of the market by increasing vendors of all kinds, making it easier to buy and sell crypto. How do you look at custodial banks allowing people to, in the future, store their crypto next to their fiat money on their bank? Do you think that taking this step back to the banks is necessary for increasing the liquidity? In fact, any step that adds an intermediary and a counterparty or custodial owner into the system, no matter what benefit it gives you in liquidity, maybe it even increases the price of cryptocurrencies, creates a rally in the market, and a few more people get lambos, is not something I would be interested in seeing. The reason is because it detracts from the most important principle of this technology, decentralization. If you are interested in seeing decentralization as the most important principle, and you are looking to remove intermediaries, remove trusted third parties from the world of finance and commerce, then you are willing to do so while not having a lambo. That is okay. When you say, what do you think about custodial banks allowing people in the future to store their crypto next to their fiat money in the bank? I would argue that it is not their crypto, it is also not their fiat. It is the bank's crypto and fiat. Part of the problem we have in our modern world is that when you use a custodial third party like a bank, you have to trust that they are going to give you that money back. In many cases, they don't. It is not your crypto anymore. It is not your fiat either. It is the bank's crypto and the bank's fiat.  If that is the way you increase liquidity, I am not interested in more liquidity. That is not a trade-off that is worth doing. I am much more interested in maintaining decentralization. There are some trade-offs that are worth making, and there are some trade-offs that are not worth making. This is not a step back. This is complete capitulation. You don't get a step forward because you increase liquidity of the banks. You don't increase liquidity of the crypto sector, because you no longer own any of it. Be very careful of people who try to persuade you that all you need to do in order to achieve your dreams is to capitulate on your principles. You were talking about financial institutions having caused many problems, that Bitcoin is combating. I am curious, as the blockchain ecosystem matures, these same institutions are hopping on the bandwagon. They are recreating a lot of the same financial instruments or have ambitions to. They haven't quite done it yet. I am curious what you think the implications are for when these guys hop on the bandwagon, and they are probably going to go a lot faster than the rest of us can, even if we, as individuals, have access to creating our own financial instruments on the blockchain. That is a great question. I get that question a lot, too. I am not particularly worried, because the fundamental issue here is that what most financial institutions are trying to do is take the fundamental idea and use it to do business as usual, without changing the fundamental practices. The most important thing to realize about this technology is that its main feature is a thing we call decentralization, which is this system's architecture, which says no one is in charge, no one is in control. Everyone participates. It is a collaborative project. The truth, the thing that gets recorded on the blockchain, is the result of a collaboration of hundreds of thousands of computers. It is not controlled by any single entity. They could adopt decentralization as a principle, and that would make the economy far more robust. They are not going to do that. They are going to try to pretend to do that while creating something which they control, because the nature of corporations is centralization. The nature of financial corporations is even more so centralization. As to the fact that they will be able to move faster, there is this pervasive idea that, just because financial services companies have all the money, quite literally, because they made it themselves, that they can simply buy their way into the future. Fortunately for us, unfortunately for them, there are a few things you can't buy. Innovation and creativity is one of them. You can't buy innovation and creativity. These large organizations, once they get beyond a certain size, if innovation arises within their company, they will strangle it within 72 hours, probably by deciding to create an innovation committee to study it. If they see innovation outside their industry, if it is not too disruptive, they are going to buy it, embrace it, ask it to get a haircut, wear a suit, and get into a 401k, at which point all of the creative and innovative people will leave. They will be left with a husk of a product. Unless it is a very disruptive innovation, in which case they won't even try to buy it, they will try to snuff it out. This technique has worked for them really well in the past, because in financial services, they could either buy the disruptive competitor, sue the disruptive competitor, or their favorite technique, have the government turn off their disruptive competitor for them, by making sure that there are enough regulations in the way that the smaller competitor can't compete. Then Bitcoin happens. You can't buy it because it is not an it. You can't sue it because there is nowhere to sue. The government can't regulate it out of existence because we forgot to ask their permission. Now they are faced in the first time in maybe 75 years of traditional financial services, with the one competitor they can't do any of those things. They haven't started panicking yet, because hubris is a pretty big mountain to overcome. At some point they will, and some of the smart bankers are already getting that. They are taking their Christmas bonus and their jumping ship at the end of the year, and then they are using their Christmas bonus to fund the blockchain startup in January. I have heard this story repeatedly from former Goldman Sachs bankers, JP Morgan Chase bankers, and others. The rats are already abandoning the ship, so not worried about that. Questions about blockchains for other industries. Why would a company use a permission-centralized blockchain to track supply chain procedures? What efficiencies are gained over using a traditional database or the cloud? Phil, that is a very astute question. If you ever find the answer to that, I would love to know it. Other than the fact that it allows you to stick every possible new buzzword into your marketing brochure, perhaps raise a whole ton of money in an underground ICO, from a non-ex-tradition tax haven country, and bamboozle a ton of investors, I'm not quite sure what the point of the centralized permission supply chain blockchains is. In fact, the very word centralized blockchain is an oxymoron. Permissions blockchains are almost equally an oxymoron. Blockchains are structures that are useful in creating decentralization and open access, making them centralized and permission completely removes the need for running a blockchain. In that case, it is simply a very inefficient database. You can imagine certain scenarios where a blockchain-type system could be useful for supply chain primarily, for organizing supply chain interaction between partners who do not trust each other, and who want a neutral, censorship-resistant, decentralized platform that serves their needs in a deterministic, predictable manner where no one is in control. That's what blockchains do. For that purpose, you can imagine a supply chain blockchain would be very useful. However, that implies that you're using the supply chain across multiple participants in an industry. The problem is they all have to agree to do that rather than try to jockey for position and massage the standards until they get relative advantage, as always happens when these things are designed by committee. That is exactly why successive efforts at standardizing IT infrastructure and systems in industry committees fail and fail again, and again, and again. It is exactly why things like the internet, the web that have emerged from neutral, research-oriented, scientific, open-source endeavors have succeeded again, and again, and again. So, let them try to create a supply chain. In fact, what we're going to see is every company tries to make their own. None of them are interoperable, all of them give too much power to the company that owns it. Therefore, none of the competitors will want to use it. Therefore, it's just an inefficient database.  Phil has some more astute questions for us, all of which reveal some very interesting gaps in this idea of using blockchains for other industries. Would someone who uploads a hash of a music file on the blockchain prove that he, she, is the first creator? Yeah, exactly. That is precisely the problem with trying to use blockchains to do digital rights management, and provenance, and all of the other stuff, which is that garbage in gives you garbage out. If you have a blockchain that guarantees that information is recorded accurately forever, that doesn't mean that information is true. It's only true if you can validate it with consensus rules that remove centralized power. But if anybody can simply put a hash up, that doesn't prove anything. You can't prove identity, you can't prove provenance, and you cannot prove ownership. If you have a third-party proving identity, provenance, or ownership, then it's not a decentralized blockchain. It's simply a database for registering the decisions of a committee, registry, agency, etc. Again, an inefficient database. Furthermore, using hashes to identify unique pieces of content, like music or video, has been proven again, and again, and again to be completely pointless. All you need to do is change one bit, and the hash won't match anymore, so you can't verify that a piece of content is the same. All of this demolished the ICO pitch and white paper of at least 20 different startups that are playing around with this concept. But the truth is that there really isn't much of a use case for provenance of music and other things like that, simply by doing proof of existence. Okay, let's destroy industry number three. Phil asks, how would a patient holding his private key make the healthcare record management simpler? How could blockchain-based healthcare data be accessed if a patient who holds the private keys is in a coma? Fortunately, most of these things have been designed by startup people who seem to be in a coma when they were writing the white paper, because none of this makes any sense. The idea that you would put healthcare data, which is the ultimate most private data, on a public distributed ledger, is asinine at best. Healthcare is probably one of the most narrow applications for blockchain technology, despite the fact that millions are being raised by companies at the moment to do healthcare records management. Ask yourself this, which problem in healthcare records management do you solve by a global, neutral, censorship-resistant, decentralized system? Because that's what a blockchain is. Is someone trying to do censorship on records management? Is someone trying to introduce non-neutral data in healthcare records management? Is someone trying to artificially raise borders in healthcare records management? Is it a problem that the healthcare records management participants do not trust each other and cannot vest power in anyone? None of these things are really solved by a blockchain, because the problems in healthcare records management are not problems that relate to blockchains. So, again, be very skeptical about industry applications of blockchain. Stephen asks, could a blockchain be implemented to distribute credits to the elderly, who could use up the collected credits to pay their rent or social activities? For example, supposing the credits are validated by certain authorities, priests, city social service, clerks, etc. Can you see a blockchain platform be created for that application, or could an existing one be used to timestamp and validate the credits? Can a system be created where buying and selling of these credits is prohibited? Stephen, I am sorry to say that what you are saying is an admirable idea, and clearly I can see where you are coming from. What you are describing is money, and yes, you can create tokenized forms of money. But the problem is that when you create tokenized forms of money that you try to restrict the circulation, restrict the liquidity, restrict the places that they can be spent, and restrict who owns them, that reduces the value of that money. In the end, you cannot prohibit people from buying and selling these credits. You cannot prevent secondary markets from existing in anything that is perceived as valuable. If something is valuable, it is traded. That is just the law of economics, the natural rules of economics. You can't prohibit people from trading these tokens. They will trade them on secondary markets, even if it is illegal to trade them. If you try to prevent people from trading, all you are doing is discounting the value of that token. People will trade it at a discount, the less liquidity and circulation and velocity it has. The more of a discount it will trade at, the more you erode the value of that token. Effectively, what you have created is simply bad money. People will try to get rid of that bad money and replace it with good money. That is called Gresham's law. If people have two forms of money, and one of them is considered bad, and it is sold at a discount, they will use only that to do all of their spending, until they run out of it, while they hoard the good, real money that they perceive to have greater value. Unfortunately, these basic rules of economics can't be violated. We see these scenarios play out again and again. Again, we see them in places where you have hyperinflation, like Venezuela and Zimbabwe. You see it in places where you have demonetization, as we saw in India, where the demonetized notes flooded the market immediately at a heavy discount, as Gresham's law played out in reality. We also see the negative implications of using this kind of restricted script. These were very popular in company towns in the Old West. They still are in certain places where disadvantaged and disempowered workers live and work inside compounds. For example, mining companies, oil extraction companies, resource extraction companies, etc. Where the only credit they can spend is tokens that are issued by the company, spendable only at the company store, to buy food and basic amenities. These are used as systems of control, not a good system, and not a good outcome. They are used to control people for the most part. While I appreciate your approach to do this in order to help people, unfortunately, the laws of economics will work against you. In the end, it just becomes a poor substitute for money.


Break-even is an important concept. When starting a business, the first test of reasonableness is how many units need to be sold to break-even. If it's a whole lot, maybe starting the business isn't a good idea. Break-even can be defined a few different ways, but it always means the same thing. It's the sales level where operating income is zero. Another way to think about it is when contribution margin equals our fixed costs, or the total revenues equal total expenses. There are three approaches to calculating break-even. The income statement approach, a shortcut approach using unit contribution margin, and a shortcut approach using contribution margin ratio. This short video will focus on the shortcut approach using unit contribution margin, and it is a much better way to do break-even analysis than the income statement approach you learned earlier. Here is an example of the contribution margin income statement. The shortcut formula you'll want to remember to calculate the units sold to break-even is fixed costs plus target operating income divided by unit contribution margin. Remember that to break-even means that operating income is zero. Let's assume the following. Price is $50, variable cost is $30, therefore our contribution margin is 20, and fixed costs are $10,000. The calculation is $10,000 plus zero divided by $20. Thus, we've calculated in a much faster and easier way that 500 units is needed to be sold in order to break-even.


Welcome to Toffy TV, it's Everton versus Gormaria in the Sport Payser Cup. It's the big one, Baz! It's the big one, come on! We can put it alongside the Melbourne Cup trophy and the Everton versus Everton Chile trophy. Oh, whatever that was. It's just, yeah? It's a chance for silverware. Of course it is. No, listen, what it is, is an opportunity for, you know, a real hard work and bunch of lads to come to Goodersham Park, experience something they will never have experienced before, maybe never experience again. For that reason, I think it deserves the respect of a match preview. And hopefully as many people get into Goodersham Park, as possible to watch this game, because I think that's the most important thing. So some people, this might just be an annoyance or an inconvenience or whatever, but you know what? This team won a competition, got to the final, won the game, got over here and we deserve to pay them the respect. I think, yeah, most definitely. Also history in the making, isn't it? I mean, over the first 30s, the African team to play a Premier League team in England.  The series about it, the well-off for it. Definitely. There were four million journalists with them. Yeah. So it's a massive deal in Africa. It's a big thing for Sport Pays, yeah? It is, yeah. So, you know, from an Everton perspective, it's an opportunity to give play, because it's the first team fixture, or that's what it's being agreed in the sponsorship. It's an opportunity to give people who haven't been playing a game. Well, it doesn't matter whether it's... It's against it's a game of football, it could have some park, you know. We've got the opportunity to play. I mean, the man that's here already, in his press conference before Brighton, talked about getting me into playing in it. So that's a good solution. So it's an opportunity machine and for, what, five minutes of the weekend. So it's a chance for him to get a game ahead of Chelsea. And then there's lots like Benny Benningamy, who come back from injury. James McCarthy. He's fit, James McCarthy, Leighton Baines hasn't played for a while. Then you've got the players like, you know, Snidlin, who hasn't been getting in, and Dowell, and... Virginia. Yeah, Virginia. And then Tom Davis, who needs games, Dominic Calvin. Yes. 100,000, yeah. So there's all of these, you know, to... When you actually break the side... Luckman. Luckman, when you break the side, that's what it could be. I'm probably the team I played last year in the Premier League a lot.  But you would have thought that maybe Ghana might get on the pitch for 15 months. I don't know. Yeah. Because I don't know what Marco Silver's thinking will be in that. But from our perspective, going, going to the game and for the fans, going again, it'll be an opportunity to see where, where other players are up to and still have a decent side to watch. So who should we be looking out for in the Goal Mario team, but... Just all of them. They're all good. They're all, they're all, they're all working at the same level. Yeah. Yeah. And it's going to be... We've got an English coach out in the Israelis. He's really proud of the team for coming up.  It's going to be a physical game saying not too physical, we hope. But, you know, they'll be taking the occasion really serious. We played them last year and they're friendly, friendly away, didn't we? When Rain Rooney scored that goal and Dal scored an equally won the goal. And on that day, they really, you know, really tested us. Obviously, different circumstances. But, you know, they've worked hard to get in. I think what's different is that we're used to. Players from West Africa and Northern Africa, they're the power bases, obviously, of African football. And we're used to them. And this is a team from Eastern Africa and not too many teams or certainly players. I don't think I've broken through from that side. It's not a, you know, it's different equations, you know, in terms of set-up and stability and those kind of things. And there's no access to there in terms of you've had, you know, North Africa, West Africa, the roots out of there into European clubs and stuff. So if East Africa isn't renowned as much for producing players, there's got to be a break-through point somewhere. And for them, this will be the showcase to kind of, you know, to come over here. It's called, listen, it's called their imagination. Like Yikubi was saying, it's a big thing for them. The proud and people back in Africa, you know, delighted that they're glad to get the opportunity. Just on a bigger point of view, I think, you know, we went over to Africa last year and obviously with Sport Pays as our sponsor and with Stephen Pinar as an ambassador with Yikubi, having obviously that link up as well. He does a lot of work in Africa, you know, representing Everton as well through Sport Pays' brand. I think it's an opportunity, you know, to make Everton's name a little bit more, more synonymous with, I don't know if you, the Premier League's obviously a big thing in Africa. And it's weird because we talk about Africa as a one thing. It's a huge continent with loads of different things. But I think that, again, that's a problem we face, is that we look at it as one big thing. But it's an opportunity for Everton to start laying down roots with the likes of Pinar, with the likes of Yikubi, with the sponsor, by playing these games and saying, you know, we're here as the, I wouldn't say the team, of Africa, but certainly starting, you know what?  Listen, we're trying to grow our global brand. You know, the way Sport Pays are trying to grow in Europe, we're trying to grow in all continents, like the America, Asia, Africa. We've been over there and played last year, we've seen how the teams received and treated there, and, you know, we've seen all the stuff on Everton TV, of the, you know, when they were cooking and when they were getting received and meeting people, meeting the kids, seeing, like, how they welcome Yannick Balassie, got people like that. So, you know, we've still got, we've got Umani Asir, we've got Ghana, you know, Ghana playing the well cup for Senegal, scored the other week in the international show. You know, you're right to Everton, it's about spreading, from our perspective, spreading our name. We've got strong links with African players in the past, Namakachi, Joseph Yobo, Stephen P, and so, to name but a few, you know, Yikuba, of course, as well. So, you're right, it's about that, it's about how much can we get our name around, can we make young African kids go, I like that, Everton, or... The big thing they'll do is we'll put Everton's name there, be it through Gomaria, won't it? Like it's done with Gomaria for us, didn't know them till we played them, so, you know, the second time we're going to play them. And that's how we have to look at it, we have to look at Everton, no, two-fold, at least, you know, we're asked to, we have to look at it and go from a playing perspective. It's a, you know, you don't normally have friendlies at this stage, but it's an opportunity. Well, you know what, growing up, we did though, didn't we? We had the PSV. Yeah, yeah. They had the PSV. Guy in Munich, I remember PSV. PSV was for the, for the Floyd lights, because it was Philips, I remember that. Romario played. Romario. I remember that. Guy in Munich, we played. Guy in Munich. Mark Hughes was on loan from Barcelona. Didn't he score for Bayern? I think he did, yeah. I think we beat them 3-1. 3-1, yeah. So we did have these kind of things, obviously, they're not very odd. I just think that, as I said, I think, while everything is good at the moment, we're all happy. I just want a vehicle to some park. I want to go and watch Everton play full team. So from that point of view, that's a reason to be there. I think the other, and just on that, is it'll be interesting, because we've seen, Bernard, and we've seen the Charles, and Sigurds, and we've seen how they've taken Silver's tactics forward. Now, if this is almost a second team, shall we say, with a couple of ones? Can they replicate it? Because that's ultimately what you're looking at, because at some stage, we're going to have suspensions and injuries, so players are going to drop out of form, and you're bringing the same type of play, or a player that's coming in, who can do the same job as what your faith seems to be. Okay, the level of opponent, we don't know, because obviously, we'll have to see what it's like, but it's about that. And good teams are able to rotate players and still play in the same way. So that's why I'm interested. Yeah, and it's a great opportunity for, I've got tickets for myself, for my dad, my lot, seven quid for the three of you know, parents, for kids, and... I just think, and I genuinely mean this, I honestly think that the team we're playing deserve to run out at Godusan Park, and to be a decent crowd, and a decent atmosphere, and for them to feel welcome, because I just think they've worked so hard to get here, not just as players, but obviously as a club, and for the coach to get them here, and it's just football in a hole, is that I would like them to be going back, just thinking that was brilliant, that the playing for them, to that crowd, and they give us respect. I'd like to think that, that's how people thought about our football club, is that we turned up and appreciated this set of footballers. So I hope people do. I've got a feeling there's gonna be a big walk up for this game. I think the extra... So if you're going, I don't know, get your tickets online straight away, because I've got a feeling it's a seven o'clock kick-off, and all that's gonna make it a little bit more difficult for people, but I've just got a feeling, like six o'clock round of Godusan tomorrow, there's just gonna be mass queues at the box office. So get your tickets early, that's all I'm gonna say. Yeah, because at the end of the day, you will, tomorrow you'll go. Yeah. I haven't a playing sign, and it's the first team, and it's a fiver, or if you've got a couple of kids, seven quiffy, it's like a couple of kids, you know. It might be the first opportunity to take your kids to a night game at Godusan Park, because it'll be start at seven. You know, you'll be finished by nine. It's a little bit hard as well, I mean, because like, nice season ticket. You know, my lads isn't like next to me, so I can sit with them properly tomorrow and things, like that, you know, where they're coming, but it is gonna be, you know, I think you're right if we can, as many people can go, because they do, they do kind of do whatever, but I always have that thing of, and I always think this replace as well, is like, I want them to go away from everything, and go, boss club down, and then it stays in the red, that is a good club shop. That's what I want. I'm gonna be good if, but obviously, you know. That's what I want, yeah?  Really? That's all you're really giving up. And it's for some people, it's the way of the games, but obviously, if you can't afford it, you wanna go and see us while we're winning, and we might win a cup. Ha, ha, ha, ha. No, but it's like, I think it's good. Get down there, get down to Godusan, thanks for watching everthing. This is Goonmari, Sport Pays a Trophy. Yeah, do you love me? Thanks for watching Toffee TV, we'll see you later.


It's funny, NFTs are all the rage right now, right? Everybody's talking about a non-fungible token. Although with a lot of artists and the content creators in our community, I think NFTs are a thing. We might be in a little bit of a bubble right now, but as you saw, like the artist Beeple sells for 69 million, you got CryptoPunks, NFTs that are selling like crazy. That's a different thing than what I think is the potential for content creators. What I like content creators and content entrepreneurs, I love creator coins or tokens. I think that's where I would start. Basically, what a creator coin is, like we have our own creator coin. It's called Tiltcoin. We use Rally.io to manage all that. Rally is great. You could also have Roll, which is triroll.com. There's a number of them out there. I just happened to prefer Rally, where you can create your own economy with a currency. You could use it like a loyalty system, like airline miles, so you could give out your own coin to your best subscribers. We use it for referrals for our newsletter. The more people that refer our newsletter, we give them actual Tiltcoin, like Tilt is traded. You can buy one for a token for $6 a share. It's actually some value. What we are going to do is, if you get enough Tiltcoin, you'll get exclusive content opportunities, which we're planning right now. If you have a certain amount of Tiltcoin, you get to go to certain events. In the fall, if you want to pay for our training, you could pay for that out of US dollars, Bitcoin, or Tiltcoin, however you want to. It's all about decentralized finance. I'm a big believer in it. I think a content creator can actually create their own economy which is what we're trying to do. It's really a thing. We're early, early days. We're all going to make a lot of mistakes in this thing. I don't know where it's going to go. I'm testing it out just like everyone else, but the possibility that we can do that and be with more people being open to Ethereum and Bitcoin and cryptocurrency in general, it opens up the floodgates for all kinds of different business models. Does that mean that if I sell my first blog post as an NFT, a non-fungible token on, let's say, OpenSea, which is like the eBay for NFTs, if I go do that, will somebody actually want to buy the rights and the digital certificate for my first blog post? I don't know, but it's possible. You're seeing that happen with musicians where musicians are selling fan experiences and cover artwork to a fan, and they're selling it for thousands of dollars. I don't know where it's going to go. What does that mean, Joe? If you sold your book, Content Inc., as an NFT, would that mean you don't have the publishing rights anymore? That's actually a really good question. I believe that you're selling the rights for them to use that, and they actually own that. However you set up the smart contract. That's basically what an NFT is. An NFT is a smart contract set up on one of the Ethereum networks, if I'm correct, and you can set up that contract to say anything it wants. If you set that contract up and say, you actually own the rights to this post and you can use it however you want to, you are selling the rights away to that. If you were going to sell your book, Content Inc., as an NFT, and that also included publishing rights, what would you start the bidding at? That's a great question. I have no idea what I would do. I probably would not do it at this point. You know what I would rather do? I would rather give it away for free if I was going to do that, because I can't put a price on that. I literally can't. You know what I'd rather do? I'd rather sell 500 shares at $1,000 a piece, or $100 a piece, and let people share it. But I don't think that's what the NFT is going to be going for for content creators. I think the opportunity is not in non-fungible tokens. I think it's in fungible tokens, and that's the creator coins. I think that's where the asset is. Apparently, the carbon footprint of Bitcoin is huge. Pia, who's in the house, says, given the vast amounts of energy that's used for Bitcoin and NFT, do you see it continuing? I got to think it's just going to get more efficient. I got to think that that's a handleable problem. Well, first of all, if you read on the sustainability efforts, that's a big issue, and a lot of the miners are very aware of it, and they're trying to go carbon neutral, I think by 2025. Everyone's talking about this because there's been a lot in the news about the energy that it's taken up. But when I talked to somebody else about this, I said, yes, you can measure it. You can measure every little bit of energy it takes to mine a Bitcoin and move Ethereum on the blockchain because we know it. Well, how much does it cost for us to financially support the US dollar? We don't know that. We don't know all the energy it takes, all the buildings, all the people in the buildings, all the energy that they're consuming, all the electricity. We don't know any of that. It's just a different financial system, but you can't measure that. That's the difference. And I think people are looking at this and say, oh my God, look at all this energy. Well, yeah, there's a lot of energy and you can also measure it. So the good thing is there's a lot of smart people trying to work on that, and I don't think long-term that's going to be an issue. I really don't.