It's now time for Member's Statements. Member for Moschigewok, James Bay. Thank you, Mr. Speaker. I was wondering what I was going to say in my Member's Statement regarding all of that which is happening in the Francophone world, so I can't not speak about it. We have seen the Conservatives' true colors this week. I had the opportunity to speak to various people throughout the province regarding Francophone life. We are very disappointed that our rights aren't being respected, our constitutional rights. We gave the government the opportunity to do the right thing to support a motion for the French Language Services Commissioner and for the French Language University. This is a slap in the face of the Francophone community. This weekend, more than 5,000 Francophones will protest. This is our right. This is the place in this province. I want to re-establish our place and there are certain people who don't support us like the Conservative Party. You had the opportunity to do the right thing and to recognize Franco-Antarians. I was very disappointed that my Premier said in English even though and we see their true colors with respect to Francophones in Ontario. Thank you. Member's Statements. Member for Richmond Hill. Thank you. Mr Speaker, I attended the 26th anniversary Inauguration Gala for the Scarborough York Region Chinese Business Association last week. I was impressed by how they filled a room with business leaders and politicians from all three levels of government. They are one of four associations making up the Confederation of Chinese Business Association. I served on the sister association in Richmond Hill for over 20 years and was the past president. The mission is to support businesses, especially we organize networking meetings for Chinese businesses to integrate into the mainstream. We help build relations with all three levels of government. We work with economic development to organize seminars on business development, financial management, crime control, security and much more. The Chinese Business Association have an effective trade bridge for Canada and China, helping Ontario to grow in economic development as we supporting the growth in Ontario. Ontario is open for business, Mr Speaker, through these kind of work. Thank you. Thank you. Member for Oshawa. Thank you, Speaker. Oshawa has a long and impressive 140-year history of automotive excellence. I toured our award-winning state-of-the-art facility on the day GM Canada was celebrating its 100th anniversary. There were cars and trucks and a bright future on the line, and that was only three weeks ago. For 100 years, our community has had a strong relationship with GM. We have nurtured the spirit of innovation and an automotive dream for a century. GM has been a part of our city's foundation, but GM didn't build Oshawa. Oshawa built GM. On Sunday night, my community was blindsided by devastating news. GM Canada has decided to stop investing in Oshawa and has said it will not allocate product to be built beyond December 2019. This is not what our community deserves, but we are told it is all we're going to get. We are talking about thousands of good jobs, jobs that pay for homes and car payments and family and school costs, with benefits to cover medications and dentists and with pensions and security. We are talking about tens of thousands of supporting and connected jobs in the supply chain. Some of those have benefits, most of them won't have pensions, and all of them are in jeopardy if GM abandoned Oshawa. These are the kind of jobs we want to create, but here we have thousands of them already here, and this government won't fight to keep them. On the day of the announcement, after one phone call with the company, this Premier threw in the towel and said there was nothing he could do. What he could do is stand alongside us. The workers and the community of Oshawa believe there is always something to fight for. We don't know how this will turn out, but Oshawa is worth the fight. Thank you. For Etobicoke Lakeshore. Thank you, Mr. Speaker. In the writing of Etobicoke Lakeshore, my writing, we've had some really important guests visit us over the last few months. We've had Minister Yakibuske there twice, Minister Clark there to talk about the Mimico GO station and to announce a partnership to improve station building and create a new housing development around the station. Over the summer, we had the Minister of Finance and even the Premier joining us in the writing to announce Buckebier Challenge with the local Etobicoke Brewery. But I think that we can all agree that even more well-known and anticipated guests will be making a special one-year appearance in Etobicoke Lakeshore this Saturday. Mr. Speaker, Santa Claus is coming to the Lakeshore. The Etobicoke Santa Claus parade now in its 27th year is happening on December the 1st, and I'm told that Santa himself will be taking time out of his busy schedule to march in the parade. The Lakeshore Village and Long Branch BIAs have been working hard all year to make this parade even the biggest and best yet. And I'm looking to participate in the parade, and if I'm lucky, a chance to see the big man himself. And to make sure all the constituents in my writing are on his nice list for Christmas this year. The member from Waterloo. Thank you very much. I had the pleasure of recently visiting East Village Animal Hospital's Kitchener location. They provide an essential service in my community, low-cost veterinary services for pets cared for by low-income individuals and non-profit animal rescue groups. East Village operates under non-profit principles, yet for nearly two decades veterinary clinics across the province have been unable to obtain charitable status due to regulations in the Business Corporations Act and the Veterinarians Act. East Village and organizations like it want to change that. They're asking the government to allow vet clinics like theirs to register as charities under these two acts. This is a solution that will not financially impact the province. It's just the right thing to do, Speaker. It will help animal hospitals like East Village who care for the pets of individuals who are living in poverty, those coping with mental illness and with disabilities and, of course, our seniors. Pet ownership has been shown to reduce strain on the health care system by reducing physician visits and reducing the prevalence of mental illness. A team led at the Canadian Mental Health Association shared this about a client who required inpatient treatment. When the client found out that the East Village Animal Hospital could help, it gave her an incredible amount of hope when she needed it most. As legislators, we should be doing all that we can to assist groups like the East Village Animal Hospital to be the best that they can be. I look forward to supporting East Village Animal Hospital in their journey of receiving charitable status in the province of Ontario. It is just the right thing to do. Member statements. The member for Scarborough, Guildwood. Thank you, Speaker. I'm pleased to rise in this house and speak on behalf of the Ontario Child Advocate. Queen's Park earlier today stood Anna May Troy, Bailey, Elsbeth, and hundreds of children and adults who were on the front lawns to hear the stories of the youth, vulnerable youth in this province, where a system is not working for them. And for the first time, they felt listened to under the Ontario Child Advocate. These stories were heart-wrenching. I urge the Conservative government to reinstate the independent child advocate and to protect Ontario's youth. I want to say thank you to Erwin Elman, who has been serving ably in this office for over a decade. The Conservative government's first chance to explain to Ontarians what their plan was for the future of this province contained the most damaging cuts to the independent officers that we've ever seen. And included in these cuts is the Ontario Child Advocate. The Child Advocate listens to vulnerable children, to those children who need the most help. And this is a ruthless act to save money. The voice of Indigenous youth, LGBTQ youth, Black youth, youth in children's aid societies, special needs youth, youth with disabilities, must be heard in this province. And I ask the government to rethink its decision to close this office. Member Statements, the member for Northumberland, Peter Burrow South. Thank you, Mr. Speaker. Mr. Speaker, this past weekend, I had the great opportunity to attend the fishability dinner in Beaudley. Fishability was founded in 2008. It's a fishing club for children, youth, and adults with any disability. But it's so much more. It's an inclusive group that helps really break down barriers. They show everyone in our community that with a little effort, time, and commitment, anything is possible. Or as they say, making the impossible possible. Now I have to actually credit my dog Max for first introducing me to this remarkable group when we were at Brighton Apple Fest. He got pulled away to some of the treats young Vicki Hillier who is with the fishability group was selling. And I've got to say, a big thank you to Vicki, to her family, to Debbie and Keith Hillier who are working, and to all the people who volunteer their time to make fishability dinner a success. Thank you for bringing my attention to the important cause. Thank you for giving me a deeper understanding of the challenges those with disabilities face. And so that we in this place, in this legislature, can make Ontario more inclusive, break down barriers so that everybody can have the opportunities you fight so hard for the young men and women in our community to have. So thank you very much for the fishability dinner. Thank you. Thank you. Member for Nickel Belt. Thank you, Speaker. I would like to share a message from my constituent, Chantal Chartrain, who lives in Cape Reel. She wrote, and I quote, I'm writing to you to express my concerns about the current wait time for autism spectrum disorder diagnostic services and program. She goes on to write, I am a special needs mother to two amazing children, nine years old Emily and three years old Valerie. Both have been diagnosed with developmental issues. Valerie is severely delayed in all areas of her life. She has been receiving speech and language therapy since 2017. It took 12 months before her physiotherapy could start. And she was told that she will finally start occupational therapy in January of 2019. She finds that she is fortunate because since she's been receiving therapy, she was nonverbal before. Now she's doing way better. After Valerie receives her diagnostic, she asks, what are the next steps? They recommended ABA therapy. But there's a minimum three year wait list for her to start. Emily will be six years old. When you're three years old, a three year wait list is a lifetime. This is not an exception, Speaker. It is the norm for the families in Nicobalt. We want this government to realize that those kids' lives depend on them doing the right thing. Make sure that the services that the children on the spectrum disorder needs are available to all, including the people of Nicobalt. Thank you, Speaker. Members statements? The member for Durham. Thank you, Speaker. I rise today to again voice my disappointment with the recent decision of General Motors to close the Oshawa assembly plant. We've made cars in Oshawa for more than a century. And thousands of my constituents, their friends, their family, work at GM or have worked at GM in the past. I want to let the people of Oshawa and Durham know the affected workers and their families. I stand with you. And I will continue to stand up for you. While GM has made clear that they're abandoning skilled workers and a region that has stood by them in good times and bad, Oshawa and Durham are resilient. And together, we will get through this. I want to also let the people of Durham know that our government for the people will work day and night to bring good paying jobs back to the region. Years of economic mismanagement has hurt innocent families. And we as legislators must do everything we can to create the economic conditions that will open Oshawa and Ontario for business once again. I stand shoulder to shoulder with our Premier and my Durham Progressive Conservative colleagues in this legislature, promising you, we will do just that. Thank you. Member Statements. The member for Perry Sound, Muscova. Thank you, Mr. Speaker. I rise today to thank the community groups and local businesses that come together across my riding to bring Santa Clause to our communities in the form of the Santa Clause parades and through gift drives. In Huntsbone Bracebridge, the Santa Clause parades are organized by the local Rotary Clubs. In Perry Sound by the Optimist Club and in Graveners Balla and Port Carling by the Chamber of Commerce. Local Lions Clubs organize the parades in Mac Tier and Baysville. The Sundridge and Berks Falls parades are organized by the municipality. Local businesses put a great deal of work into these parades, including Kimberley Clark, which has been building Santa's Float for the Huntsville Parade for more than 20 years. But how much fun is it to see Santa on Christmas morning if there aren't any presents under the tree? I also want to thank all the businesses, groups and individuals that collect, donate and deliver gifts and other supports to those who might not otherwise have anything to open come Christmas. There are too many groups to list them all, but I do want to make special mention of the Salvation Army and all of our local food banks who work to support people in need both at Christmas and year round. Whether these groups are collecting toys for children, gifts for adults or food for families, I want them to know their efforts are appreciated not only by the recipients, but by the whole community. I'm looking forward to delivering some shoe boxes to the Muskoka Shoebox Project in time for the deadline this weekend, and I encourage anyone else who is able to donate to any of these gift drives to do so. Thank you very much, Mr. Speaker. Good. Thank you very much. This concludes our member's statements this afternoon. Reports by committees. I recognize the member for Burlington.


In 2018, we're taking GitLab from being a development tool to a DevOps tool, a single application for the complete DevOps lifecycle. Customers have seen the value of integrating GitLab CI into the core GitLab, and we want to extend that. I'll start by showing a merge quest. At the top, we see a test summary, which shows a deeper understanding of your test results than the job level. Using standard JUnit XML output, we can tell exactly which tests fail and provide that information in a nice summary format. We also see links to the artifacts and container images associated with this merge quest. As I scroll down, we see a lot of information about the extensive collection of tests we've run on the code. First we see the code quality section, which has been around for a while. And the relatively new security section, with static application security analysis to find vulnerabilities in your code, dynamic application security analysis to find vulnerabilities while actually running your app, and an analysis of any vulnerabilities in your underlying Docker layers. We'll also be checking your dependencies for any violations of your company's license policy. And lastly, we show how your application's performance has changed. This is a lot to cover for every merge request, so we have separate issues to redesign for all of this new information, but I wanted to show it all to you now to see how much we're doing automatically for you. And this is all part of the shift left movement, where important quality security and performance tests may have once been run manually, if at all, and usually much later in the development cycle, are now being run automatically as soon as the first code is written. There's a lot more planned, but this is a good idea of the direction we're going in to help developers get their ideas into production faster. Actually one last thing is down here, I'm also showing an enhanced code coverage view where we can show the code coverage. If you're looking at a new test, you can see that this test hasn't been covered. And if there is other kind of code quality announcements or warnings, we can put them directly in line with your code as well. But all this only covers a part of our vision, because the other side is from the operations point of view. And a big milestone for our complete DevOps vision is when operations start using GitLab as their primary interface. There's a long way to go here, but let's start by looking at an operations dashboard. Here we see an overview answering the question, how is production doing? In this case, we're seeing a group with four projects in it and a quick green-yellow-red indicator of how those projects are doing. We've tentatively put a graph of the aptX score there to represent the one metric to watch. Below the projects is a view of the cluster, including CPU and memory usage, possibly indicating when you need to scale up or down the cluster size. Now if there was an indication that something was wrong, you'd be able to drill down and see more details and rectify the situation. But that's only the first level understanding of operations. I mean, if we've got the data about how things are doing, why not proactively alert you to the problem? So that's the second level, and a natural step. But we're not going to stop there. The third level is to automatically detect and resolve any issues. If your app needs more resources, just autoscale it. If you then hit a limit on the cluster, well, add a node to the cluster automatically. The operation's experience then should really just be, I go to work in the morning and see an email summary of what has happened without me having to do anything. But autoscaling is just scratching the surface. As operations involves a lot more, from application, infrastructure and network monitoring to security patches and beyond. After we introduce this, we look forward to the feature requests.


OK, folks, Larry Pesavento, mid-morning update on Fed Day in about three hours time. The jury will be out and we're going to be finding out what's going to be happening. I think it comes out at two o'clock. That must mean noon. Yeah. Yeah. At 12 o'clock. It's just in two hours. Well, we've got a mixed market today, as Basil Chapman would say. It's bifurcated. We've got the S&P and the NASDAQ up. We've got the Dow Jones and the Russell down, but very slightly, of course. The Russell has, you know, the small caps, but the Dow Jones is influenced by one stock in particular, which is UnitedHealthcare. And that is down. It was down six or seven percent. And that, because it's price-weighted, weights the Dow down. Because if that wasn't the case, the Dow would be up several hundred points. But because it's price-weighted, that's the way it is. Folks, the reason for that is, because the Dow family, the Dow Jones, you know, there is a Dow. There is a family named Dow. They're the ones that are in control of this. They originally had the chance to be the CME's choice for trading back in 1982 when Mohamed was trying to select, but the Dow Jones wouldn't have anything to do with. They didn't want anything, at least suspect, to commodities or futures or gambling or anything like that. They were in an investment house. So finally, it was the E-mini S&P that was chosen, and later it was a NASDAQ. And then finally, a few years later, the CBOE got the Dow Jones, and that eventually came over to the Merck when they merged. So that's pretty much it. So I think that's the important thing to remember here, folks, that when you're watching these indices and you see one of them that's way off, especially in the Dow Jones, it could be just because of one stock, and that is exactly what's happening today. In the NASDAQ, it's totally different because they are cap-weighted, but these are expensive stocks. You've got Meta at $400. You've got Tesla. It used to be $1,000. It's at $260 or something like that. So these are monster, monster price stocks, so there's seven stocks control. You don't believe it, folks, 93% of what's going on in the market. So keep that in mind as you're watching some of these things, because we live in interesting times, and as they say, that is a Chinese curse. It's not a Chinese blessing. So we'll be right back,<PHONE_NUMBER>.


Today, I want to talk about software engineering for artificial life, in particular software engineering with the goal of getting artificial lifestyle computations to be able to perform useful computations in the real world. This is, well, it's sort of overdue to just sort of have one of these research notebook videos. Also, Robert Golosinski in one of the comments below was saying I shouldn't just be posting these talks that I do at conferences, but I should actually be talking directly to y'all and not freaking out about the time limit so much. So I just want to say, you know, be careful what you wish for, because this is probably going to go on a little bit. And in the middle, it's probably going to nerd out pretty hard for a little while, because I actually want to look at some code. All right, so the plan is first to get a running start sort of previously on, and then talk a little bit about where we are now. And I feel like I really haven't tried to state that as clearly as I sort of think it is in my head, so I want to take another run at that. Talk a little bit about the ULAM-2, the new version of ULAM. We announced ULAM-1, which is called ULAM, at E-Cal, at York in England a year ago and a couple of days, so this is almost the anniversary, and show a few demos, and then in particular show a demo of a fairly substantial example that I just sort of got working in the last few weeks, which is, you know, I think a little bit badass actually. Take a look at that, and then sort of wrap up with, you know, wishing and hoping, okay? So if you're just joining us, the way we do computing today is based on this idea of hardware determinism. You make the physical hardware provide absolute repeatability as good as you possibly can, so that same input, same program, same output guaranteed. And of course, you know, in the real actual world, nothing really works like that. Everything's got a few little errors and rubs and things go off in some weird way, but a computer, digital computer hardware is designed and manufactured to control that, at least as long as it takes to do whatever the computation is. And that's worked really great, but it has also coated us into this bad situation where for the guys who are doing software, they just get to think that reliability is taking care of by magic, and the job of the software guys is to just be as efficient as possible in getting whatever done one wants to get done. The consequences of that is that at the software level, there's essentially no redundancy, no error checking, nothing that you would do if you couldn't rely on an absolute ironclad guarantee from the hardware that everything was going to be deterministic. Exactly the same as expected. The world that we are living in today with all of these crazy security faults and data thefts and breaches and everything getting busted into, that is a symptom. Not so much of the fact that programmers are stupid or that companies ship crap, although both those things might be true in individual cases, but really it's more a symptom of the architecture, the fundamental way that we've architected computers based on this entire hardware determinism efficient software is broken.  The memory, the RAM is just completely passive. And you say, put a one there, increment that variable, test if this variable is bigger than that variable, and so on. And it does it, yes sir, yes sir, yes sir. And once you start to get a little good at programming, it really is quite a heady feeling, you know, you can make it do exactly what you want. You are the master of the universe, control everything, granted it's a fairly small universe, but it's yours and it's great, but it doesn't scale. It's the dream of dictators everywhere that if I just get everybody everywhere to obey me, exactly everything would be fine and it never is. And these attacks that we're having, these computer bugs and viruses, all of this stuff that's happening is because the whole way we've been set up is this sort of totalitarian government, where not only do the individual data members that are keeping track of everything that's going on, not only do they not have any investment in what's going on, not are they not allowed to care to say, wait a minute, I got changed. They're not allowed to do so. They must be utterly passive. If that was the only way to build computers, well then okay, we would live with it, but there is another alternative. This is what I'm calling living computation and this is where we don't assume hardware determinism. We say the hardware is going to try to do what it says, but it reserves the right to make mistakes sometimes and software is going to have to be organized so that it can tolerate some amount of mistakes and still get useful work done. Now that means the software is no longer going to be able to guarantee to get everything absolutely perfect, but that guarantee was only as good as the hardware guarantee, which was only good up to an asterisk anyway. In exchange for saying that software is going to have to deal with redundancy and taking care of checking its work if it's got a little spare time and so forth, what we get from that is that the job of hardware is to be able to be plugged together as big as we absolutely want to need more hardware, just plug more hardware in and never run into a limit where, well, you know, sorry, we ran out of address space, we got no more addresses, whatever it is, indefinite scalability is the job of hardware to be able to compute as large as we need. And given that we can no longer assume that we are in this totalitarian, everybody will obey absolutely. Instead, we're going to let responsibility flow downwards toward the individual agents by making methods where they can say, well, you know, I don't know the big picture, I don't know really what's going on, but I have enough information to know that we'd better if this thing was over there. So I'm going to move it over there and go, member of the team versus master of the universe. And the difficulty is and so the argument I'm trying to make for eight years now, or in a broader sense for 30 years or more, is that this living computation style where, you know, you don't require everybody to be perfect and you get along and you make things better, is a better way to do manufactured computing than the way that we've been doing it. But getting from A to B, getting from the deterministic attractor to the best first attractor is really hard, because there's zillions of decisions that we made on the process of coming up with the deterministic attractor that all reinforce each other. And if you try to change just one of them, then it looks much worse. You try to change two of them. It looks much worse still. So the idea is we're going to escape from determinism in two or maybe three steps, depending on how you keep score. The goal is using artificial life technology, things where stuff, you know, software programs are reproducing, they're healing, they're growing, they're having kids, the kids are moving out of the house. All of that in service of useful computations, perhaps driving cars one day, no we're close now. But I'm not sure exactly how close the software on the traditional computers are is either. So how can we do it when you have to change sort of everything it wants to leap out of one valley and get into the other, you can do it with a very small strike team that makes an expedition to the other attractor and starts to set up a colony. And that's what we've been doing for the last several years. The steps in building the colony is define an indefinitely scalable architecture, this way of hardware that won't guarantee to absolutely be correct, because correctness is not even going to be well defined, but will do everything necessary so that if you have real estate power money and cooling, you can buy more of these things and plug them together and make a computer as big as you want from here to the horizon. We've done that. The one that we're doing is called the movable feast, movable feast machine, MFM. Create a programming language that isn't counting on global determinism to deal with it. Now, there's lots of languages, the existing languages that one could talk about that might get pulled into this.  We need to reevaluate every damn assumption that goes into programming languages and so forth. So even though Ulam and Ulam 2 looks quite familiar from the surface, we designed it that way to try to make it a little bit less terrifying to imagine, do I want to take a trip to the colonies? It's got some weird features. It's got some fundamentally weird features like unary numbers, for example. You don't find that in many languages. In some ways, it's closer to a hardware description language than to a traditional programming language because in a way, we're lifting a lot more of the tasks that hardware design traditionally would do. We're lifting them up to the software level, making the hardware level just more uniform and indefinitely scalable. Develop simple tools and techniques. That's what we've been doing all along. We've got these demos. You see some of them on the YouTube channel that do various things. We're continuing to make those and we'll look at some in a second. But then the next step is to go beyond just playing with the tiny little things and start building more advanced tooling, more sort of factory stuff to start of settling down to actually bring in some people that are not there just because they want to be explored, but to be there because it's going to be useful for them in some way or at least there's a narrative, a story that's believable enough about how they're going to get to something that's helpful. And to do that, we need software engineering. To do that, we need to be able to go beyond tiny little one atom things that do funny stuff to say, how can we organize complexity to deal with stuff at multiple spatial scales, multiple temporal scales, things running quickly inside, things running more slowly, and so on. And that's what we're starting to do. That's what I want to talk about today. In the future, in the near future, hopefully for step five, we want to build a next generation hardware tile, the indefinitely scalable tile prototypes that will be, you know, absurdly expensive and absurdly weak for what they do. But the goal is for them to collectively allow us to benchmark the average event rate, indefinitely scalable. The primary metric of these things is not MIPS, millions of instructions per second, but how many events can you deliver to each spot in the matrix that you're working on in a given second, assuming that some of those things are going to have to talk to neighboring tiles, so there'll be communication coordination involved, taking all that into consideration, what air can you show us, what average event rate, events per site per second on average. I will be thrilled if our next generation hardware can show 10 air. I mean, I'll be satisfied if it can show one air because we're drawing a line in the sand. I'm not a hardware guy, I need hardware help. The point is, is to draw a line in the sand and say, you know, hey, it's starting to look like this architecture could actually be useful for something. I bet these computer engineer guys, especially because now they're liberated from absolute determinism, could just crush this. They could be reaching 10 air, 100 air, who knows.  That's down the road. Okay, so today, more about step four.  All right, so, ULAM-2 announced July 30th, announced today, at least I'm recording it on July 30th. We'll see when we get through posts and so forth. So it's ULAM-2, there's been a bunch of little releases just trying to get the packaging working and MFM-334 might end up being 335. The easiest way by far is to use the personal package archive and install it on ULAM-2. Any of the current long-term support 1204-1404-1604 on an Intel box, 32-bit or 64-bit. The more machine you've got, the better. If you've got an eight core burner, well that would be great. But it'll even run, like, is this thing running? There we go. So, right, can you see this? This is my little ancient EPC, I think it's the first generation, 701 or whatever the heck it is. It's running the burn demo, which is one of the demos, which is included in the ULAM package, which you get if you install now.  The simulator will take advantage of as many cores as you've got, but it'll fall all the way back and things will just get slower and slower and slower. And so let's look at that demo actually. One of the programs that gets installed is MFZ Run. MFZ is the packaging format, like a jar or a zip. In fact, it's based on zip that you can put together with ULAM code, compiled code, and initial kernel configurations that you want to do.  It sticks user bin on, it doesn't really need to. Here's the burn demo that we just looked at on the EPC. It works here too. I was going to show you another one. Let's look at the base layer. Is it kind of a cap in it? Yeah, it does. All right, so this one, look at this. We got a bunch of these touch reporter guys sort of in the middle, and they are sensitive to mouse input, and this is just a tiny little down payment on how the Moogle Feast grid is two-dimensional, but it has the potential to interact in the third dimension through the base layer, and there's a library site utils in that you can write code. So this thing is detecting mouse motion, it can detect dragging, it can detect clicking, although you notice clicking is not necessarily hitting one exact site. It's more like imagining sort of a tablet with a finger, but also the point is we need to come up with things that will figure out how to debounce that kind of information ourselves rather than just assuming we're going magically be able to hit the one pixel, the one site that we want to do. Also in this directory is the site writer demo. There's a video of that on the channel where, you know, has it started to show up yet?  Well, the way it's possible is because the colors are actually being painted onto the base layer, so the atom can move on and leave an effect in the world. This could be used for pheromone trails, if one's doing an ant model, or a limited sort of communication, or a little bit of extra state that's accessible from the site that you're in. And the reason we can see it is because in the full-on version of the simulator, this is where you get the interface. If you dare, you click on more, you get the whole thing. Back is what are we going to display in each little rectangle for the site. Middle is what we display in a circle inside that, and front is what we display in a little teeny dot in the center so we can pick whatever we want for all those three layers. In this case, we're picking the site paint to see what the site writer atoms are doing. Now, again, with all of these demos, it's really just the simulator running from a particular initial configuration, so if we want to mess with it, we can do that. We can add a bunch more site writers and see what happens. We can take site writers and add a bunch of touch reporters and so on and so forth. So, I told you this is going to go on a while. So we've got all of these demos, and they're great, and they serve in addition to being just sort of fun to play with and fun to look at, what they're doing is they're training our eyes for the kinds of dynamics that happen naturally in these sort of systems. I mean, a lot of these demos you can find in like NetLogo, other packages meant for agent-based modeling, and so forth. It's all very similar concepts, and they're worth looking at just to see, I mean, like in the burn demo in particular, in a classic burn thing, you know, you can get a loop set and it'll just burn around and around and around forever, which is sort of weird to think about burning, but it's as if you're imagining you have a circular forest, and the forest is burning, and it takes so long to get around the circular forest that the forest has regrown, and it's burnable again once the time it gets back, and you can get these ring oscillators going. And it's a model of things like transmission of signals in neurons in your brain. It's related to how your heart works, the cardiac muscle pacing, and so on. All of those things are good to teach us what the sort of, you know, basic resources of our colony are like, but once we've played with a bunch of them, we need to start saying, okay, well, how can we build larger tools with them, and that's where software engineering comes in, and that's where several of the new features of ULAM-2 come in. So ULAM-1, where things have been carried forward, it's just a regular looking programming language. I mean, if we look for the sake of argument, if we look at, let's look at site writer, when we install the package, everything ends up in user-lib ULAM. Let's see in the ULAM side, share ULAM demos. So there's our demos. The site writer is in the base layer, like that. So here's the whole thing. We have a data member, which is of type argb, which is a four element array where each element is an unsigned eight. So eight bits, an array of four groups of eight bits, 32 bits total. The behave method is called automatically by the engine when an element, an atom of type site writer, it gets a turn to have an event, and it just pulls up its color, modifies it by a random number, and writes it back. Now you might think, ooh, what's going to happen around when we have wrap around there? What if I add minus two and the color is only one? It's going to wrap around a 255 and the color is going to completely change. Well, no. One of the unusual features in ULAM is that arithmetic is saturating. So one minus two is zero if it's an unsigned, which it is in this case. Although we can't really tell that, we'd have to go look in the site utils, which is one of the standard library packages, in order to find out what the type of channel is. But as it happens, it's unsigned. So we modify the color pinning at black and white, if need be, and then we use the site utils package to paint it on the floor, and then finally we swap ourselves with state one is the guide of the west site one. We are site zero, site one is the guide of our west. So that would mean sort of go west, except for the fact that we have, whereas there it is, we have some metadata declaring that this thing is symmetric, it's rotationally and mirror symmetric, which in the case of the movable feast means every time this guy's at an event, pick amongst its legal symmetries at random and apply it. So in this case, white west might actually be north or what have you. Okay, so ULAM, ULAM one, from one point of view, it's a very conventional looking language. It's got objects, it's got methods, it's got data members. There are weird data members. Primitives and objects are allocated by the bit, arithmetic saturates, and then the biggest pain of all, which is the whole point, is that there are no pointers and there's no random access memory. There's just a tiny number of your neighboring sites. We looked at zero, which is where I'm stored. We looked at one, which is one site away, depending on the symmetry and so forth. And so fundamentally ULAM is a method of programming transition rules, like for a cellular automata, like the game of life, except for relative to standard cellular automata, a much bigger set of neighborhoods and much more particular symbols per state for each one. But unlike traditional programming languages, you can't take a pointer to anything. There is a stack and you can have functions that call functions that call functions and return and the stack is assumed to be ample to do serious programming. You can have local variables in stack frames, methods that have been called, but you can't take pointers to them. You can't store them any place. The only persistent memory you have available to you is your event window, that little neighborhood, plus the base layer underneath you, the site paint, and so on. In ULAM too, we add single inheritance like Java and virtual functions like Java and C++, and we even add reference variables, but they're limited. You can't have a data member that's type reference because it doesn't actually really make sense. All of the persistent memories out in the event window, those things do not have addresses, so you can't actually take a reference to them. When you're executing on the stack and you're doing locals inside a function, you can because all of that stuff is going to disappear as soon as the event is done. The stack unwinds, the event is done, some other guy gets called on. His behave function and off he goes. One of the most aggravating things, which again is fundamental to the mission, is that all objects in ULAM1 are the same size. Well, they're all fitting inside an atom, which is 96 bits, minus a bunch that are used for type information and error checking, so ULAM programmer only actually get to use 71 bits for an object. That's still true for anything that's going to be persistent, but I have a notion of a transient, which is a struct that acts just like a class pretty much. You can have transients inheriting from transients and so forth. That can be much larger. They can be a kilobyte in size if you want. Eventually there'll be a limit on stack memory, but it's again imagined to be reasonably ample to do software engineering with. You can have them and the keyword is transient to drive home the fact that they only exist from one entry to a behave function until the time that behave function leaves, and you only get to do that for one event. Still no pointers, still no RAM. Okay, so we looked at these little guys. We looked at some of the little demos, but I want to talk about a bigger one, sort of a more of an example of software engineering that I really just got going, which is cell 1.0.  But the mission of this exercise was to build something, some mechanism that could replicate a relatively large object where relatively large object means dozens or hundreds of sites maybe, but not necessarily thousands or millions. Since everything is small, we have to size things as we go. But we want to be able to say, okay, here's a pattern, and you go wham, and something happens, and it takes some time, and then we've got two of them, and they're pretty much the same. With best effort results, they are the same. Something might go wrong, but assuming nothing does go wrong, there'll be copies.  They're the kind of thing that I want to move. Oh, there's a thing I don't care about. I'm going to ignore that and so on. I have to code all that up. Given that events happen asynchronously, there's no absolute addressing. We cannot say that, well, just give me the contents of location 2634, because there is no 2634. I'm at zero. I'm the center of my event. If I move and get another event, I still think I'm zero, even though it's different than the zero I had on the previous event. When we're starting to talk about objects, we're meaning now collections of atoms, like a molecule or cell. And when you start dealing with this, when you actually start programming it, you have very, very basic stuff. Like, how do you tell whether an atom is considered part of the object or not? And worse, when you're starting to replicate, how do you tell whether this particular atom is part of the parent or part of the kid? You need to tell it apart because different things happen to them once the kid separates from the parent. So that's the problem of distributed control.  I mean, when you look at a movie, like Tron or Matrix or whatever it is, and somebody gets killed inside the digital world, they fall into these bits and then the bits vanish, which is very convenient from a point of cinema instead of having one pile of half-cooked bits over here and another pile of half-cooked bits over here, like you'd have when someone got chopped with a sword in real life. But how the heck is that supposed to happen? I mean, though all of the things representing that thing, they're distributed in space. They're made of zillions of things that are operating independently. Object identity, clean living, clean dying, basic, basic stuff that comes up in this code. Distributed control, and then finally the software engineering, if readable code that there's hope for, it could be reused either literally or with modifications for other purposes. And again, in traditional cellular automata stuff, that really just doesn't come up. Because the entire control system is imagined, number one, to be really part of the physics rather than in this programmable layer. And all of the work is in the layout of the pieces in the grid. But now we're taking a lot of that down. It's on the same idea that you could build a computer, and this is as Peter Corey mentioned in the comments recently. I think some Corey, saying you could take the movable feast and you could implement the NAND gate out of it, and then you could have it build up a traditional von Neumann machine on top of it. So isn't that kind of weird? And that's absolutely true. But we don't make computers, we don't make actual normal computers today out of NAND gates. You know, we make them out of more complex things because it's more useful. And here, we're going to do the same thing rather than saying the goal is to find the minimum set, you know, two symbols, neighborhood of four, and so forth, that can lead to a certain behavior here. We're deliberately giving ourselves more room to engineer. And that does not make everything sort of magically easy, because we still have the fact that it's asynchronous, the object is bigger than the neighborhood, we have to schedule all this, we have to coordinate all this without determinism or synchronous updates. Okay. So how are we going to solve these challenges? We're going to tell who's in and who's out by having a tag. And if you have the same tag as me, then we are in the same object. You have a different tag, you're not. We're going to put that tag up in a base class, which is actually going to be a template base class. So we can say how many bits we want to dedicate to the tag in this demo, we have five bit tags. And that's going to determine how we're going to kill things and so forth. And well, actually, let's look, let's look, we'll come back to that in a minute. Oh, man, it was like a half an hour already. It's going to go forever. All right. So here's the way that the solution builds up. Suppose we take one of these guys. This is, we plop it down, and it's a little, I think 16 side line, and it heads east. We can make a bunch of them. And when they run out of the edge of the universe, they go away. And I developed these things called swap lines to do a little demo in a paper that's going to be coming out in the artificial life journal real soon now. And it took me the longest time to realize this. So what these lines, what these guys do is they wait and make sure none of their neighbors are behind them. The neighbors are all caught up. And then they swap themselves forward once. And so that way, even though the line isn't completely straight, it never gets more than 45 degrees, it never actually tears.  All right. It took me the longest time to realize, let's make something here, that, okay, here's the thing, that if these swap lines are swapping to the east, that means anything that they run into is actually moving to the west. Like that. And this idea means that, you know, perhaps we could use swap lines to come up for a method of large, where this is large now, bigger than an event window, and actually see the event windows if we want there. Let's get a line going. Yeah, so those, the, I don't know if you can see it, the little diamond guys here, that's the size of a single event window. And it's flashing around because the events are happening at those various places and so on. Like that. So we can get a bit of a, we could use the swap lines to move large objects incrementally, and how to move a large object in a cellular automata has been a bit of a challenge for quite some time. And that's why, you know, in Conway's Game of Life, the glider, this tiny little configuration that moves is so celebrated, and then the larger spaceships and tractors and various things that they have that move while retaining their pattern are all sort of inherently interesting. One problem with, again, the sort of deterministic everything out in the world, nothing, this minimal amount in the rule set is that those things are extremely limited about what they can do. You cannot make a modified glider that has six guys in it and, or carries a different kind of configuration. All of its shape is used for the dynamics of moving and repeating in its pattern. Whereas here, in principle, you know, we can change the shape. We could change the shape. We could add other stuff to it. And if we could figure out a way to release a bunch of swap lines in front of it in some coordinated way, we could move the whole thing. Okay? So the problem of large object motion, and a lot of people have taken cracks at this over the years, you know, this would be one way to approach it. And the thing that, again, as you sort of think about the design stuff, the reason a swap line is helpful for this is because it's not completely synchronous, because the world is not completely synchronous, and the world can't be completely synchronous if it's going to be indefinitely scalable. But it's a little bit synchronized. Things wait for the back man to catch up, so that as long as the line hasn't actually gotten torn or damaged in some way, we can make certain assumptions about it that if they're, if they're not at the end of the line, then we're going to see a guy before me, next to me, or in front of me. And those are the only three possibilities. So I can tell what's going on locally. So a swap line is an example of a little bit of synchronization. And what we're trying to do is rather than assume we could have the architecture take care of synchronization for us and always do, you know, kachunk, kachunk, kachunk, kachunk, the idea is to use just the amount of synchronization that we need to get the job that we're trying to do done. And by keeping that limited stuff, we leave ourselves open to be able to apply it to different shapes and different circumstances with different inputs in effect. We get more general, more flexible mechanisms if we limit the amount of synchronization that we need to just when we need it. Okay. So I took this idea of the swap line. And once we have this, well, you know, so now we've got a guy who's moving, why couldn't we like as though we're moving him, why couldn't we like make a copy of his last line and leave it behind him? And then the next time he moves makes a copy of his next to last line, and leave that there as well, and sort of make an on the wing replicator. And that's what I did. So here's an example. These are blocks. And blocks have a tag, a content tag. This guy is hex 17. Again, we have five bit tags available like that. Now by itself, a block doesn't do anything. But let's pick, let's see, let's go east. Let's plop one of these sea plates in here. And I blew it again. That interface could use some work. So a lot is happening here already. When we put down one of these things, what happens is it circumferential, circumferences, it plates the whole object all around out to a depth of two. It's this particular atom is called sea plate, because that's what it does. It does circumferential plating. And it's got a ton of stuff in it. Whoops, a ton of stuff in it. Whoops, and I'm putting that pull that in. That we're not going to really look at here. But among the many purposes that sea plate serves is it isolates the object that's going to be copied. It is used to establish a absolute addressing grid from the lower left most point that is in the bounding box of the object to the upper right point of the bounding box of the object. And then each of the sea plates within the entire collective localizes themselves relative to that grid. And that's what's actually happening now. And then once the grid has actually stabilized, we move on to phase two, which is the actual copying step that uses like the swap lines, except now the swap lines are like tractors and each of them has a trailer going on behind. So it's moving two steps at once. And when it gets to the column, its job to copy, it replaces the trailer with a modification of the thing that it's copying.  So let's just let this finish for now and see if it's pretty cool. Replication. It's cool. We can send guys in different directions. Oh, and once again, come on. North. Send this guy north. Send this guy south. And so on. Oh no, actually look at, see now that guy's kind of messing up. Because he's getting interference right in here. He hasn't managed to successfully finish the plating because he's running into interference from the kid that the other one is making. But actually in this particular case, it looked like the kid got out of the way and now this guy is just behind and hopefully he will successfully localize and maybe move on to actually making a copy. He may not, there are any number of ways that the replication can fail. In fact, we can induce one deliberately if we want. And again, what happened there? All of the sea plate, all of the stuff associated with the replication disappeared but the object was left behind. There are other, we can get into worse situations where in fact the thing will kill the object entirely. I'll give it another shot. But in that case, it was a miscarriage but otherwise it worked okay. So what this is, it's kind of like, you know, it's like, well it's like a 3D printer, right? Working layer by layer. Except it's only in 2D making 1D layers so it's kind of a 2D printer. Like that. Which is only one sort of limited but very effective approach to replication. The, one of the goals of the original replication stuff going all the way back to von Neumann cellular automata was to explore this duality between like DNA. They didn't know what DNA was at the time. But to explore the duality between components of physical systems being interpreted as control, execution, things to do, and being then just taken as absolutely passive data. And in this case we're doing reproduction in essence by self-inspection. And we're actually, you know, since we're able to spread ourselves out as we pass swap lines through, we can inspect a given line and say, okay well I need another guy like that, oh did I send that guy out of the east? All right, so there's another one that's sort of messed up. Now it turns out this will eventually clean up after itself but it'll take a very long time because that's our absolute last backstop. In addition to the being able to abort a replication, we also have poison that, so we really wanted to send a guy west. So why don't we send this guy west and maybe he'll run into that poison and he'll have a sad outcome. This is a lot of fun to play with. This is not, oh say there we go. This is not yet in one of the demos. This is brand new. But how does this actually work? We could talk about software engineering. Let's talk about software engineering. The circumferential plate, the C plate has a bunch of jobs. These are some of the data members.  Now with 71 bits, so we've got S2D. S2D is a data type that is an array of two seven-bit numbers like that. So an S2D takes up 14 bits all by itself, which is a lot in ULAM land. I mean once you start figuring out this stuff it's kind of like sort of like bonsai programming.  Oh, that's really three bits. Couldn't I do it with two bits? Which is, it's fun. It's got a sort of purity and cleanliness, sort of like assembly language in some ways. But the size of an S2D being seven bits, that determines our sort of build plate in, you know, 3D printer land. So we can build, we have a chance at replicating things up to 128 by 128, more or less. It doesn't mean that's all very likely to succeed in any case, but that's our capability. We have a source, which is really quite nice. Can't take the time to talk about it now. But every time a C plate, which just automatically spreads around the object, every time a C plate creates an offspring, it sets the source of the offspring to point back to it. So in fact, when we got done, and we had, where is it here, you know, if we take one of these guys, I'm just going to start them up a little bit and then stop them. He's not running. All right, so here's the C plate, like this guy, oops, I did it again. His source is 15. We have to look in the thing and find out which site number that is. You really want to have the event window picture. I guess I don't have it here. Can you see it here? Oh, yeah. I was trying to figure out how to get the volume to be right. If you go to robust.ucs.unm.edu here. So site 15 is up one and two to the left from me, and that's the guy who created me like that. And so if we do this, if we track the source here, that the source actually creates is a parent pointer in the offspring tree.  I started this guy. Did I start it? Yeah, I started it there, and we can tell because he's the only guy who has a source of zero, which is himself. And the algorithms take advantage of the fact that the C plate has two addressing mechanisms. It has X, Y coordinates. I am located at 4, 4. The guy below me is located at 4, 5, and so forth. But also it takes care, takes advantage of the tree structure in order to sort of break ties and bias the gossiping algorithms that work. It's a little detailed, but it's very nice on the one hand. And it's also familiar computer science. These are trees. Unlike typical trees where we try to make them as bushy as possible, these are very long straggly trees, but they have uses nonetheless. And we are representing an NRE tree in 4 bits. And how can we do that? We can do that because we know that our parent is in the same event window as us. With 4 bits, we have enough in the way that the C plate uses it to find all of those possible locations for our parent. And if the parent needs to go the other way, if the parent needs to go down to the kid, it can just search that location in its neighborhood and look for guys who are pointing back at it. So we can navigate in both directions in this tree. Again, only one small number of steps in a given event. But over time, we can pass information up the tree to the root. We can broadcast information from the root out to the leaves and so on. C plate is not a standalone class. It inherits from U-grid content, which is in charge of forming the absolute localization, finding the zero coin and so forth. And C to D is, these are 16-bit 2D coordinates, so each C to D takes 32 bits, which we really do not want to blow 32 bits, especially because we have two coordinates down here. That would be 64 bits right there just to remember where I am and how big the space is. So that's why we use the little squished down one and accept a smaller build plate in order to have room to do other things with our bits. So U-grid content provides mapping operations. It's not either U-grid content inherits from rotate content, content which has a 2-bit data member that specifies a rotation relative to east is east and north is north. So the reason that we have an east C plate and a west C plate and so forth is because those trigger C plates with a different orientation. So when we make a guy who's heading south, the code is all written as if he's heading west, I think, and then the rotation is being implied transparently by rotate content. And rotate content in turn inherits, whoops, inherits from content, and content inherits from this thing called QID, and that's where we actually start. And QID is a Q stands for quark. Anything that's smaller than an atom, well, anything that an element is going to inherit from is a quark.  They're kind of like abstract classes. They're sort of, you know, they can have data members, but they're sort of incomplete until they've finally been instantiated as an element, and from elements we can make instances that are called objects. QID is a template because you can provide information to say, you know, everybody has to have the given species ID, and that ends up costing nothing because it gets compiled into the code and represented by the type of the atoms, rather than by the small number of data members. The number of tag bits we set to five, the number of progress bits, the other thing that IDs provide, QID provides, is a timeout watchdog, and there it is, yeah. It provides a progress method, so the code down below needs to call progress every so often, or eventually the watchdog will not only destroy the guy who failed to show a watchdog, but in calling it this emergency death method, here we have, we've got the sample. So this is what the behave method looks like at the level of QID. It calls super dot behave, which in this case there isn't any super, so it inherits from herself, the sort of analog to object in Java, and then all it does is count the watchdog, increment the watchdog, and if it reaches the alarm level, it calls emergency death, which erases itself, but first it looks everywhere in the neighborhood and signals emergency death on everything else, and that's in fact how the poison works and the replication terminator works. The poison actually signals emergency death. The replication terminator is handled lower down, and that's why it can actually leave the parent, at least in some cases. So this is a lot of stuff, so even squishing the data members, the coordinates down to 14 bits is not enough for all the things that we need to do, so in fact C plate has here, so this thing U, which is not labeled with M, so it's not really good, programming practice, we're not being systematic about our data members, is a union. So here we go. So there are three phases in the whole process. Grow is surround, build the C plate out and perform localization. Grow is when we actually do the copying line by line, and then QID is at the end when we're done and we're going to separate it and strip out, dissolve away the C plating, and each of those, being a union, gets to have different use of the same bits like that, and the reason I wanted to bring this all up is that the copying mechanism has to do some pretty tricky synchronization, and so here, for example, we've got, okay, let's get rid of this guy, we've got this green guy and this red guy, and those are really C plate, of course I just got rid of it, now I want it back, they are C plate, these are all C plates and so forth, but what makes this thing special is he's the leftmost highest C plate that exists, and this guy is the rightmost southernmost C plate that exists, and so this guy becomes the, in charge of, there, so this guy is in charge of issuing the swap lines to be copied, he is the head commander, this guy at the back is the tail commander, he's in charge of allowing the lines to release into the kit, and if you look, it's a little hard to see in this one, that the line actually squares up, it can get kind of wiggly as it goes through, but once it gets to the tail commander, everybody dresses the line so that we know everybody is ready to move into the next phase and everybody waits until the tail commander releases them, and in order for this, I mean there might be other ways to write this, but you know this is the way I was managing to get it to work, and all right there it is, just for every single time, it's like Sancho Bob and the Rakes, so now the head commander and tail commander are different axes because the thing's heading down and so on, but the head commander does not release the next swap line until the tail commander reports that it's gone through, and how do they do that? Well if you look at the little dots of color inside the sea plates here, they're shifting between red and green and blue, and actually what they're doing is they're sort of playing a little game of rock, paper, scissors with each other, rock is red, paper is green and scissors is blue, and the only one who's allowed to change to scissors is the head commander, the only one who's allowed to change to rock is the tail commander, and the only one who's allowed to change to paper is the root, the original guy where this all standard all started, and they work together to coordinate between it, and again this is another example of, where's my UML, this is another example of how we use a limited amount of synchronization just what we need in order to do it in order to get coordinated action done at a distance like that, so we have a rock, paper, scissors class whose job is that, and that costs us two bits, and in fact we represent it as a unary two bit number because we only need three states, zero, one, and two, and that's all that you can represent with two bits expressed in base one, all right, running out of time, way running out of time here, so this is a non-trivial from some points of view, certainly from compared to the burn demo and the fork bombs and so on, this is a non-trivial amount of code, that UML diagram was not complete, that was just some samples of the classes, didn't actually have the behavior classes that were involved, there's a separate class for controlling when we're doing grow and copy and kid, although the kid's very short, but it's a way to be a flexible object replicator that works with pretty high reliability as long as it isn't impacted by events happening around in the world, and to some degree it even handles unexpected events either by miscarrying or in the worst case by actually cleanly killing the object that was trying to replicate, all right, looking forward, language development continues, there's much more that we could want in the language, I really want to get the motion, I mean so this in a way kind of a little bit out of order because this sort of took the motion technology and is applying it to replication, it'll be nice if these guys could just move themselves around without it, cells control their own motion and replication, and we really want to start looking forward towards tiles, making a new prototype tiles, we're probably going to use one of these little tiny system on modules that'll run Linux so that the port of the code that's currently running in the simulator to the tile won't be that hard, the tiles will be incredibly expensive compared to what they could be if they were optimized for it, but again they can serve as a line in the sand, and that's about it, and let's do one last one or maybe we can just sort of leave this running, and it's worth noting that we can actually reproduce things other than just block content as long as they're sort of surrounded by block content so that when the circumferential plating comes through it'll know what is supposed to count as inside and outside, so why don't we send this guy north here, see if that works, bigger objects take a lot longer to localize, and there's just in general more, it's a higher risk replication, actually this guy is going to be heading, this dark area here is in between two tiles where there's significant timeshare, you know, tidal effects due to the communication delays between the things, which also can stress the mechanisms, as much as possible I tried to make the mechanisms interlock so that if something isn't ready because for example time is running slower where it is, other guys will wait, but there are still in particular the ending of the growth phase, determining when we have localized and we're not going to see any more in the coordinates of involves a certain amount of ballistics and timing and there can be failures, we're probably in pretty good shape here because now we're into the copy phase and that's a little bit more robust. Is this the be all end all of object replication? Absolutely not, it's kind of brute force, I mean it would be nice to have the thing grow from the inside from the seed, hold it from the approach, it would be nice if it could handle things that, you know, sort of more, you know, sloppy way rather than this, you know, literal line at a time and one of the other things that C plate does I didn't get to talk about is it does passivization, that all the, everything that was inheriting from content, the blue blocks in this case, when they see C plate around they suppress their normal activity, I mean because these things are all happening in parallel, those res that I stuck inside the O there, they would be trying to move if they could because they don't inherit from content, they don't know what's going on, now in this case they were in an area that was small enough that C plate got in there and kind of immobilized them all sort of like in gel, but in a more general case if you make a larger object with this thing with big gaps, you can have all kinds of difficulties because things will be moving around and doing their normal whatever they do while the swap lines are moving through and trying to copy them and in fact it's easy to end up with not quite exact duplicates and you know there's an awful lot of development that has to be done between here and there but it's possible that we could end up seeing evolution happening not because it was programmed in deliberately like we do with typical genetic algorithms and a-life software models but just because that's what happens because of our best effort implementation of replication motion and so forth in this world of best effort computing, I think those in fact aren't quite they might be seven res each, not sure that's it for now Robert I hope this was long enough for you thanks for watching


Today, Muslims in Canada and around the world will celebrate Eid al-Fitr and mark the end of the Holy Month of Ramadan, a month of fasting, spiritual reflection, and service to those less fortunate. Usually, this is a time to gather with friends and family for large meals and to share snacks and sweets. But with COVID-19 continuing to impact people across the country, we will once again need to find new ways to celebrate and to also recognize the many contributions that Muslims have made and continue to make to Canada. My friends, soon this crisis will be over. Vaccines are here and when it's your turn, I encourage you all to go get your shot. But until then, let's find inspiration in Islam's teachings of equality, compassion, and service, and let's join together to finish the fight against COVID-19 and build back better for everyone. On behalf of our family, Sophie and I wish all those celebrating a joyful Eid, Eid Mubarak.


Good morning and good afternoon. Thank you for joining us today. Welcome to the Open Education Consortium's Quarterly Membership Meeting. So there's a lot to cover today. We always do, but we actually have a lot to show you. So let's take a look at the agenda first. So we have a guest speaker from Creative Commons. And I'm going to talk about three activities from the consortium that would need your participation, which would be the call for proposals for the Open Education Global Conference, Open Education Week 2016, Open Education Awards for Excellence nomination, and then I'm going to go through the membership survey results followed by briefing on two activities by the consortium, which are the Open Education Information Center and the OECX MOOC project. And again, as usual, we'll open the floor for questions, comments, and discussion items from members. So first, we have a guest speaker. We've been inviting guest speakers who can show us a glimpse of what they're up to so that we can learn from each other and also find ways to collaborate. Now Suhyun is from Creative Commons. She is a regional coordinator in the Asia-Pacific region. She'll brief us about the Creative Commons Global Summit that'll take place in October. So without further ado, Suhyun, the solider. Thank you, Mina. Can you hear me? Great. Thank you. So it's my pleasure to participate in this call and I really appreciate this opportunity to speak and introduce this Global Summit to you guys. First, before I start, apologies for two things. First, please understand these ugly slides because I didn't have enough time to prepare proper slides for this call. But I hope these slides can give you at least the gist of this Global Summit and its information. Thank you. And second, as Mina might told you before, I have some audio problems. So unfortunately, I cannot hear your voices and might not be able to take your questions. But if you have any questions regarding my talk and regarding the Global Summit, please contact me at Suhyun at creativecommons.org. Yeah. But sadly, again, I have to leave in five or ten minutes. So if I don't have enough time to take your questions, yeah, you can just ask any questions via my email address. So Creative Commons holds this Global Summit every two years to bring together a fleet around the world and other activists, academics, and experts who promote and advance the cause of the Commons for culture and open knowledge around the world. And as you may, as some of you may know, CC has a vibrant affiliate community and network around the world in more than 80 countries now. And we think this Global Summit is a very important event to boost our energy and promote the value of the Commons and openness to the public as well as to affiliate ourselves. So following the previous Global Summit in Buenos Aires in 2013 and in Warsaw in 2011 to see the Global Summit will be held in Seoul, South Korea, my home country from October 14th to October 17th. And the main theme of the Global Summit is Hello Sharing World. This is like a catchphrase. So this is the theme and there is something for each day. For day one, we have celebration of sharing and for day two, work of sharing and for day three, future of sharing is the sub-theme of each day. And we frame this event like this because we want to give an overview of what CC has done in the past and what CC is doing in collaboration with other open culture communities around the world. And then we want to talk carefully about what kind of future we want to bring. So these are the main themes and the main venue for the Global Summit is the National Museum of Korea which is located in the center of Seoul. And it's a very beautiful museum We held, actually held the Asia Pacific Regional Meeting a few years ago and also last year at this very building. And there are many speakers from around the world not only from our affiliates but also from various fields, academics and activists and other open culture communities including Yokai Bankler, the Bergman Professor at Harvard Law School who is also the author of a seminal book, The Wealth of Networks. And Laila Tratikov is the new executive director of the Wikimedia Foundation and she will also be one of our keynote speakers on day one. And Julia Reda, a member of the European Parliament and she is also at the forefront of the EU's Copyright Loan Reform Movement and she will be the main keynote speaker of our summit on October 17th. And last but not least, Ryan Merkley, the CEO of the Crave Commons of course and he will give a keynote, special keynote speech on October 16th along with Jae Yoon, the political leader of ZZ Korea and Professor Geelam Jeon who is so-called the father of Korea's internet. So there are many more important speakers from ZZ Global Network and some other representatives of open businesses and organizations like TJ Police of Hewlett Foundation and Andy Yang, the CEO of 500pxl. So they will be there to give short talks or participate in panel discussions. And if you look at the slides, the summit website also provides a schedule of the program and we use the shared application which some of you are already familiar with. So the program is currently draft and is subject to change but the organizers of the summit is aiming to lock the program down by the end of this month. I know this is very tight schedule but we hope to make it work. And among the sessions, I think most of you are very interested in what kind of OER sessions are going to happen during the summit and there are mainly three OER related sessions on day one and day two and on October 15th, there is a short talk by Cable Green, the director of Global Learning for Creative Commons and he will give an overview of the global OER movements and this is role and value there. And this day is sort of a public-facing event so the organizers asked him to briefly talk about the global movement and the status of OER movement and this is role. Whereas on October 17th, there are a lot of panel discussions, workshops and other seminar-style sessions happening on the day and there are two OER related sessions. One is OER projects showcase which will feature various OER related projects from around the world including the open education movement in Poland and some other OER showcases like Dr. Fazz's OER in Arab worlds and Creative Commons licenses for OER development adoption and some very specific OER cases studies in schools in Australia and some education camps in China and the last one is OER mainstream and the Moonshot. This session is run by Cable Grain and he will collaborate with many other speakers and participants. Actually there are several proposals on open education and the organizers were finding very hard to include all of these great OER proposals into this program and so we just decided that all the proposals submitors work together to collaborate in creating one session and this is the result so there will be an open session on education Moonshot for 30 minutes and another global OER movement coordination session for 50 minutes and our Minahwang and some other speakers of Korea OER movement community will likely be participating in this session as well. I just saw Igor's question so there will be live streaming but we are currently checking with venue and facility service provider and we hope to live stream all of the sessions on day one which is October 15 and some keynote speeches on day two which is October 16 but again most of the sessions will be recorded and will be uploaded to the website afterwards. Thank you. So that's it for me so if you have any other questions just contact me at my email address Suhyun at CreativeComments.org Thank you everyone I'll give Thank you. Bye bye. Suhyun for giving us, showing us a glimpse of what this wonderful event would look like so I don't know if you remember but we have been working together with CreativeComments that passed in quite a few occasions for example our global conference in 2010 in Hanoi Vietnam was also the launch event for CreativeComments Vietnam so because OER Open Education uses CreativeComments as a common license or protocol of sharing we have been working together with them and it's really good to see that they're putting a lot of emphasis on education in their Global Summit also. Alright, so next on the agenda is Call for Proposals Open Education Global 2016 so we announced in Banff this past April that the 2016 conference will be held in Krakow, Poland AGH University of Science and Technology is the local host for the conference and if you've been coming to our Global Conferences which you have been you will know that our Global Conferences take place in the most beautiful parts of the world and their local hosts have showed a great hospitality so the theme for the coming conference is Convergence Through Collaboration you see the Call for Proposals here Igor has just put in the link to the website you can see the five different tracks that we have but even before you go into the tracks you'll see that just from the theme you'll see that we're trying to bring in together bring together many different aspects of openness open access, open education, open source open anything, we would love to see how they can converge merge into one great effort now the Call for Proposals are due on November 16 and again this year we've partnered with Open Praxis so that if you're interested in publication opportunities please make sure you specify that you're interested in having your proposal reviewed by Open Praxis okay so next on the agenda is the Open Education Week 2016 again you are very familiar with what Open Education Week is like next year it'll be in the week of March 7 it's from March 7th to 11th and it just is a global celebration of open education so people who host webinars they host regional events they submit resources whatever they can do in open education they will contribute or anybody who's new to open education can come and learn about open education and this is our request to you today we're looking for people to participate in the planning group so if you're interested please send an email to infoatopeneducationweek.org it is a very important event for the consortium to serve the broader open education community if you have great ideas on how to promote open education around the globe please do contact us so planning group works on organization of events how we can promote these events etc so some people work on doing press releases blogging, social media some would concentrate more on the program aspect of things some others on just making things more possible in each region by doing outreach work yes you can choose to work by geographical areas okay so we move on to the next item another call for participation which is the nomination for open education awards for excellence is now open so there are three categories for the awards individual awards, site and course awards and project awards if you know of a great individual in the area of open education or a wonderful project please nominate them for the awards they will be announced at the open education global 2016 and here's the link for nomination and now that brings us to the membership survey results so a couple months ago we had sent out a survey to our member institutions and organizations and the purpose was to better understand member needs and plan consortium activities around the specified needs so the turnout was not that great we have 40 respondents and yet the responses that we got I believe are quite significant you'll see what the members are looking for and here's a snapshot of what they told us so the first topic that we asked about is how people are using OER the question was do faculty at your institution currently use OER within their daily teaching and learning practices 22 said yes, 18 said no the next question was do faculty at your institution currently develop new OER collaboratively with other academics or institutions 23 said yes and 17 said no so that's about the same so we asked them so if you are creating these contents collaboratively do you describe what you're doing and somebody told us that they're adding OER as a part of course reading materials or assignments another institution said all their content is OER and somebody else said their faculty use MOOCs and OCW in their teaching and some faculty use their OCW courses as an alternative to publishing their materials on the university elements so that'll save some time for them each semester and in another institution OERs are built into courses by faculty subject matter experts as learning resources and at another institution it was a part of course requirement to confirm that they considered OER as an option for course materials and textbooks and some were translating materials in their language classes now the second topic we asked about was institutional policies we asked does your institution have policies related to open education 25 said yes 15 said no if yes of those 25 which areas does the policy cover so for this question the response called answered and you see that they had policies on open data open access open licensing adoption of OER such as open textbooks faculty support for OER creation and the next topic was MOOCs we asked do you consider MOOCs as an open education initiative 34 said yes 36 said no I'm sure you can imagine why we had that no and then we asked does your institution offer one or more MOOCs 21 said yes 19 said no if yes what platform are you using so it was really interesting how the ones who said they do have a MOOC project going many were on multiple platforms Coursera, edX and FutureLearn were the most popular and then there were a couple other options such as developing their own platform and we see OECX or there are two responses saying OECX we asked the ones who said no to having a MOOC project so if no does your institution plan to start a MOOC in the coming 12 months 8 said yes and 11 said no so having asked those questions we asked do you have any comments or thoughts on MOOCs and some of the comments we got were there was difficulty in joining well-known platforms probably because of the membership fees and whatnot they're not ready to tackle sustainability challenge with MOOCs and one person said MOOCs will be one of the lasting innovations in open education and online pedagogy in the future it helps university to benchmark its quality of services with a prominent university globally another person said MOOCs will serve as important tool for virtual student mobility another response was encouraging all MOOCs to use open licenses will broaden use of OERs across cultures there were some negative thoughts on MOOCs as well this one respondent said not sure if the MOOC is the long-term solution at this time there was some concerns about the height on MOOCs and this response said MOOCs have come here to stay but there's no sustainable business or operational model yet so you see this mixed ideas and thoughts on MOOCs so in 2014 the open education consortium ran an open MOOC pilot project that allowed OEC members to offer openly licensed MOOCs on the edX platform under the OEC shingle now an OECx course must be based on existing OERs if OECx continues to offer the opportunity we asked would your institution be interested in running an open MOOC as part of OECx 19 said yes and 16 still said no so if you were to offer an open MOOC with OECx what kind of assistance would you need but people thought assistance in using the edX platform was the most important or most needed service using the edX platform knowing about best practices in MOOCs course evaluation developing MOOC strategy these were the topics that our members were interested in and then we went on to the topic of open education week 2015 did you participate in the 2015 open education week 26 said yes or team said no yes what did you do our members did a series of webinars one each day some institutions had even more than one workshop a day they did webinar tour of a site or their open education project event there were colloquiums and presentations participation at a conference related to open education launching a MOOC in time for open education week and hosting a competition during open education week to bring awareness in open education so I don't know if you're aware of this but we have materials from the open education week website to promote open education week so in the form of web banners and posters and slide templates etc 15 have used these promotion materials to increase awareness of open education and then our question was what suggestions do you have to make open education week more expected so we got comments like get more people to participate host a contest maybe it can be regional enable submission and events on the website early on organizing events by region would be more effective than just having everything all over the world in the globe making all presentations downloadable at once would be a great source of resources more use of social media and blogging would be good and somebody mentioned maybe we should have a showcase for newcomers so that people are inspired by these cases so we went on to ask about other consortium activities we asked about the quarterly membership meeting have you participated in an OEC online or quarterly membership meeting 22 said yes 18 said no if yes what did you like or dislike about the meeting we only got likes in the comment box people have mentioned repeatedly that it's good to know current projects of the consortium and it's good to have updates on what other members are doing so yesterday there was another meeting and we had people from MIT presenting on OCW Scala program so when you learn about other people's projects it does give you certain ideas about what you can also be doing about the newsletter do you receive the OEC newsletter 28 said yes 12 said no on professional directory are you listed in the directory 21 said yes 15 said no so still we are seeing that we need to promote these activities a lot more to our members we asked about the information center as we were preparing for the launch of the information center we asked what kind of information would you like to see in the open education information center the responses they could choose multiple times and we see that many people wanted links to slides and presentations on open education there were more responses saying they would like to see forums presentation templates information on starting an open education project maybe a central location for tools and apps case studies and FAQs we are going to talk about the information center a little later on today we will see that the survey results were reflected in the information center and this was our last question on the consortium activities we asked please indicate if you are interested in participating in any of the following initiatives and activities many showed interest in marketing and messaging on the value of openness so this shows that we really have to utilize our member base more in order to increase awareness for open education some others showed interest in open education with planning groups, outreach to businesses the global conference program committee improving discoverability of resources and open education for lifelong learning so we have members who are interested in jumping into consortium initiatives and activities so that's the summary of our membership survey we've got two more things that I will very quickly zip through and then we can open the floor for questions so the open education information center I'm sure you've seen this by now the information is organized in a way that it addresses different audience groups such as faculty, students, administrator researchers and policymakers when you go into a subject topic of interest you will see that the information is organized in question and answer format links to other resources that explain or that provide further information on the question what's most important about the open education information center is that this is a community effort so you will see the submit an info button wherever you go on every page there is submit info button if you know of really good video, a deck of slides just good resources on open education please submit it to the information center and then you can see the open education events page there is a calendar for events and there is a forum which is not, we haven't really started using the forum yet but you know that it is to come have community news, forums for question and answer etc. so that was the information center and the last to brief you guys on is the OECX MOOC project yesterday Una briefed on this because Una was in charge of this project now the reason we started this OECX MOOC project is because we wanted to transform open content into massive open online courses to increase access and reduce costs we worked with edX and they were the ones to issue verify certificate and we had two questions in mind when we started this project the first was how can we reusing OECX MOOC to make MOOC development more cost effective second is how can we reusing OECW increase collaboration opportunities so with these two research goals we were funded by the Hewlett Foundation to start this project and in the pilot phase we had nine courses from universities in Taiwan, US, Spain UK, India, Japan and a community college in the states and the average enrollment was 3250 students courses were in engineering business, sciences, teacher education they were on various topics so after having completed these nine courses we came up with support tiers it turns out that even when you have your open courseware ready to be used in your MOOC it takes a lot of effort into designing the course into just making sense out of all the courseware that you have three tiers the first one is the new OECX developer this is for somebody who only have open courseware OER courses somebody who wants to do MOOCs for the first time for this tier there will be up to 60 hours of support and the preparation time period will be anywhere between 6 to 9 months will provide instructional design review and some platform support and the second tier is new MOOCs by current OECX developer which we figure would need about up to 30 hours of support in 3 to 6 months again instructional design review and limited platform support will be provided and the last tier would be a rerun on existing OECX MOOCs OECX platform is quite strong but it gets updated at least twice a year so if you want to rerun a course even though you've got same materials you're going to have to rethink your course design in order to enter the interface many things change so in this case there will be about between 10 to 15 hours of technical support in the period of 3 to 4 months and maybe 10% or less modifications to the original MOOCs they had so if you're interested in creating an OECX course you can click on the link at her email address at the bottom of the slide and at Munda vouchers for the fact that UNAS think giving great support to the OECX project so the ones who participated in the project so that's all the information that I needed to part for today so the last part of the meeting is questions, comments, discussion items from you guys yeah UNAS worked really hard at it too so all of you guys have speaking rights which means as long as you click on the microphone button on top menu bar you should be able to speak if you would rather ask questions in the chat window that's fine too any questions? Okay for now UNAS has all the data, all the interview results so she plans to report on it sometime this fall and of course it will be made available on the website and will announce it through social media if you're interested in the raw data do contact UNAS yes I think so to try our best to get the word out on the information center so when we launched the open education information center we had told everybody that it is still in the beta version and we haven't done the official official launch of it yet in the meantime I'll make sure that you hear about it in our social media more I'll ask members to help us to promote stuff any other questions, comments? I actually was expecting a lot more questions on our next MOOC project thank you so much for joining us today our last slide is how to get in touch with us more on social media so if you don't know about them get to know them now thank you