Luciana, you have seen the European Union being created, do you fear sometimes that you might die seeing its end? Well of course I am not very optimistic, I am rather pessimistic, but to be concrete, the issue of democracy does not only have to do with European institutions. Let's say that the European Union has been a pioneer in introducing what has been called as the post-democracy and this started in 1973 after the rebel years of the 1960s and the early 70s when they said well democracy we can't afford democracy the system cannot afford democracy the economy is a complex matter we cannot have parliaments dealing with it technocrats must take care of that and this process started back then and we are now in its full deployment not just in Europe also here at home and elsewhere but what I wish to say and I wish to tell DM to pay attention to one point because Europe has done an extraordinary operation that of expelling the people from its structure of course we know that there is no European people we were supposed to build the European people it was difficult and perhaps we did not succeed but the German constitutional court said something extremely important it said the European Union is not democratic because there is a lack of sovereign people and there is a lack of sovereign people because we do not have the intermediate bodies that can guarantee democracy in the intimidation between the individual citizen and the state political parties media trade unions organizations and so how did Europe solve the matter well it said okay you do not have the people but you have the individuals of course if there is nothing left but individuals there is really not much hope for us because we will have individual rights but we will not have a collective subject so if we help the process of building this intermediate bodies this intermediate structures which do not exist at the moment this is something that will in fact help the European union with the game that they are trying to play thank you Luciana if we perhaps change a microphone because there was a little bit of a difficulty thanks one to address what Luciana was saying how do you tackle the crisis of intermediate bodies in the European Union and what is DM going to do in terms of reinforcing the reinforcing those intermediate bodies that is to say what is going to be DM's approach to political parties trade unions and organized social movements perhaps we start with that first things first the question of individuals versus the police once upon a time both the left and the right confidently proclaimed that there can be no individual human outside the police so the individualization of the citizens is part of the disintegration of the european commons so you're absolutely right where we have failed as democrats whether we're left or liberal is in ensuring that the process of transferring powers from our nation states to brasses and to frankfurt is done in a manner where this sovereignty it doesn't go into a black hole unfortunately this is what has been happening for the last few decades especially with the creation of the eurozone how do we reverse it because the problem with the line of argument that democracy is a luxury that we can afford is exactly that which Winston Churchill outlined that democracy may be a terrible and very expensive and system that requires such very long meetings that make all of you very tired but nevertheless is the best of all alternatives and the reason why democracy evolved was not because we decided that it's nice it's because without it the decision the politics becomes toxic and the economic outcomes become catastrophic what do we need to do to respond to your question directly well what we need to do is to create the infrastructure that we're trying to create where all those intermediary bodies whether they're social movement states union organizations can join forces in order to confront the european union institutions and their particular contempt for democratic process effectively to say to them that this cannot go on we will deny you the oxygen of power if you insist on power relations of the 19th century brutal kind the whole point about constitutions is to convert power relations into political relations the european union has been about depoliticizing political decisions in europe it is disintegrate either it will be democratized or it will perish Jorge if i if i can bring you in if you if you can respond in english that would be amazing because it would save us time but if you prefer castilian i understand it sounds much better than i will do this in spain is so sorry but no fine totally fine totally fine it's quite difficult sorry it's my it's my horrible role of having to keep time which i really don't do anybody else okay um Jorge directly on what Yanis just said and perhaps to address one of the responses that we often get when presenting Diem Yanis says that in nine years europe would have to be and become a fully democratized continent and the answer is oh but this is madness oh but this is folly nine years is such a short time for such complex historical processes and yet Podemos was founded two years ago and in two years you managed to completely upturn the political dynamic and the political rhetoric in spain and uh you went very close to winning elections just two months ago so tell us how does this work uh is it true that nine years is too long if you can do this in two years and how do you do it um well first of all i would like to say Raymond Williams first of all i want to say thank you to all the sorry i think you have to be consecutively otherwise our interpreters will go crazy yeah i'm not a translator but i do my best i'm not a translator but i do my best in spain there's people that claim to understand and know everything about Podemos they think they can explain and they can give ideas about how it was created when it was born how where is it coming from and the first question i give to them and we all give storytelling there's no recipe to how to win we had a crisis of constituting power um it's an ongoing crisis emancipan del pacto social alcanzado los años 70 en españa después de la dictadura militar the first crisis comes from the power when they decide to be stop representing the the citizens the the populations and they stop representing them con una cierta expectativa debido al medio largo plazo they stop following representing those people and they start respecting the rules of that pact between citizens and democracy poner en duda el relato oficial que hasta ese momento se había dado sobre la crisis la crisis era para las élites un efecto meteorológico algo que sucede sin explicación the 15m was the movement that said that it was enough it was the movement who said that the it was the moment to start changing to start taking the power from bottom up and start changing the the the rules that were not respecting anymore from from from from the politicians se da por lo tanto una politización de la sociedad lo que antes se vivía de manera individual en soledad y que cada uno se la mía solo las heridas se convierten algo político si te echan de tu casa ya no es por tu culpa si estás en paro si sufres la precariedad ya no es por tu culpa hay razones colectivas y hay soluciones colectivas then what happened is that people start stop complaining in the private lives and start complaining in their houses and they start joining together and discussing about what was going on how to change the things and if they are killing kicking out of your house you have the right to discuss with your neighbor and you start you have the right to go into into demonstrations go to the streets doing politics on the streets from the basis of what what does is to make questions and to say that the status quo is not the one to follow the status quo is it possible to change and we can change the status quo pobemos first key of pobemos left and right is not in is not anymore the only dimension of discussion in politics it's not working anymore la frontera para entender como unos pocos una minoría privilegiada acumula cada vez más poder en menos manos how to understand that the minority is the one who is taking all the power taking all the decisions from the majority from the people entendimos que había que mover esa frontera we understand that this is enough y a partir de ese momento dijimos no es izquierda y derecha no more left and right es arriba y abajo is bottom up hay una mayoría empobrecida que sufre la crisis there are thousands of millions of citizens that are suffering they are poor they don't have jobs some of them are from the left but some of some others not y sufre mantienen una indignación no articulada que consigue lo que consigue podemos es tratar de darle voz a esa indignación popular que no se ascribe a una etiqueta and they are frustrated they are indignados podemos dar podemos give voice to all those who say basta who say it's enough para para terminar and to close and to close podemos uses the word casta in a different way that italiens do they use it in a different way they don't use the word casta in the same that italiens ya no responden a la soberanía popular se han emancipado politicians are not responding anymore to sovereignty to popular sovereignty they have said they are not doing it anymore they have revealed from their job y por lo tanto mantienen un estrecho lazo con las élites financieras por lo tanto han secuestrado la democracia y han secuestrado la decisión de la sociedad y en este momento es cuando el propio parlamento históricamente liberal they have kidnapped democracy in europe and they said that it's enough and they keep following financial institutions decisions sólo defendiendo los los derechos humanos la declaración universal de los derechos humanos ya se convierte automáticamente en un elemento de radicalidad democrática just defend in human rights it's an element of being radical in democracy thank you Jorge thank you for what you just said and for the hope that Podemos is conveying to the rest of Europe the sense that it can be done si se puede that is was expressed in Spain but thanks to what you're doing it becomes a possibility also elsewhere Yanis and I will now switch to the English language so that we can then wrap up the evening and I will need you for this as well so don't think you can leave just yet and my question is this two points from what Jorge Jorge has been saying the first to respond to the question of the difference between left and right you have said repeatedly that DM is a transversal movement that welcomes democrats of all sorts and I think I would like to ask you to clarify what you mean by that and a second question I will ask both of them at the same time is the question of who is the people of DM Podemos has been built on the incredible experience of the Indignados and of the 15M large-scale mass mobilizations in the squares without which the experience of Podemos would certainly have been very much more difficult and perhaps less meaningful where is the social power the popular power that you're counting on in the process onwards with DM the distinction between left and right will always be pertinent as long as there is capitalism nevertheless in Europe today we have neoliberals the demand of a government the Greek government and other governments to increase corporate tax and increase VAT when the left-wing government is fighting to reduce them at the same time we have left-wing governments that are reducing pensions in order to comply with the Troika the distinctions have been crushed by the ironclad will of the Troika not to impose neoliberalism but in order to ensure that the current power structures remain intact as even though they are through increasing doses of the returnism imposing policies that are destroying the ecosystems even these powers require to survive so DM is not left-wing or right-wing I am a left-winger but I would love to see in DM all sorts of Democrats coalesce in a coalition in order to stop the slide into the post-modern 1930s that are in front of us who are the subjects of DM those people Europeans who understand that united to stand divided we collapse into a post-modern 1930s Luciana can you answer the question which was asked here well many people well my grandparents talked about Europe as a peace project how are you telling about Europe to your grandchildren the Europe was built as a result of cold war could you could you just use a different microphone what you should tell your grandchildren that the Europe that was built was built that way because it was a part of the cold war and nothing whatsoever to do with the people that thought about Europe and dreamed about Europe in Ventotene but let me conclude on a point about what Yanis said we should ask ourselves the following question why that we are the 99 percent whilst the others are just one percent we never seem to be the winning the winners well it's well we could say it's easy to say no I don't like this and I can denounce it but it's very difficult to ensure that there is unity on a project they if we want to change the situation and that's why we keep being defeated so let's be very careful I don't think it's enough to just think about rights and transparency we must ensure that we get some power decision-making power and I'm not saying that we've got to take the winter powers as was what happened in Russia 1917 and I don't and I say that it's not enough to have 60 or 65 percent of votes to be in charge but we do have decision-making power if we organize society through the unions direct democracy bodies which starts the mindset of people so that sort of the and the opposition may sort of retake some of the roles that have been expropriated by the government so I'm saying this just to say let's be aware let's not simply ask that we uphold the human rights human rights are crucial of course but we need some power to sort of ensure that they're being upheld so let's not make the mistake about that what's happening in Europe with the support of many theoretical sort of advocates is that the thinking of Europe of citizens a Europe of individuals that means that they will only think in terms of rights without the actual decision-making power to implement those rights fulfill those rights there were European movements it's not true that there weren't movements in Europe which were strong we have the peace movement and we have the word social forum we have a movement and water and common goods which were pursued what we failed to achieve is to consolidate sort of power structures having a real sort of ability to intervene


Hi, so you're from Optimac? Yes, I am. Can you introduce yourself for us? Sure, I'm Kelly McDonald with Optimac. I work in the R&D branch, which is located in Minnesota. Our headquarters is located in New Mexico. And what do you do? What is this that we're looking at? This is aerosol jet technology. So sort of the bare bones explanation. So this is aerosol jet technology. So the bare bones explanation is that we start with a liquid ink. We turn that ink into an aerosol, and then using a carrier gas, we feed the aerosol into a printhead, where it's focused down into a spot size of your desired size, and then deposited onto a substrate. That's great. That's very interesting. Thanks very much. So you can actually print an area with that, right? Yes, you can. Great. And that's what we're watching right now. That's correct. This is a printed aerial. So this is actually a printed antenna onto a cell phone case. One of our big advantages is our very high standoff distance. We can be anywhere from one to five millimeters off of a surface. So that gives us a huge advantage with putting onto 3D parts. Our most popular material that we print is nanoparticle silver. But we can print really a very, very wide range of materials. Really anything that we can turn into an aerosol, we can deposit it onto really any substrate that you can fit under the nozzle. Brilliant. And am I right in thinking that you also have a 3D printer? Yes. We have a second type of technology called lens technology. And that's a metal powder feeder. So we have four powder feeder heads that come in with a laser down the center that sort of centers the material on the fly. It has a couple of advantages. We can print alloys of materials by feeding different powders through each feed head. We can also print gradients of materials by radiating the powder as you're printing. Brilliant. As I saw you posted 75% growth over last year for the company, so business is booming. And how are you finding the ID Tech X show today? Oh, it's been great. It's been crazy busy. A lot of new faces to talk to. We're really excited about it. And the ID Tech X itself is always growing, so we're always excited to come back. Wonderful. Thank you very much.


Well, hello everyone. Welcome to week one of splashing around with Installatron apps at our flex course for May of this year, which is crazy to think we're already five months through the year. I'm here with Amanda this this time. And we're super excited to kick off this month of the flex courses, our flex course on Installatron apps. And I think it's gonna be really fun. I'm excited to see how we go through like the different applications and everything that we're gonna talk about. So you might notice that this week or this month of the flex course is not WordPress related, which is crazy to think about. WordPress is primarily our main bread and butter at Reclaim for Installatron applications, but we wanted to take this time to look at some of the other applications we offer that are super cool within Installatron. Yeah. And I mean, I think I second Meredith's idea or point that this is really exciting. We're happy to do this. And while we have like some we're very comfortable with WordPress and we have a very strong WordPress user base, there we're definitely seeing a lot of interest and usage and potential for some of these other applications that we're going to talk about. So while, you know, we're certainly not experts on these applications, certainly not and even to the same extent that we are pretty comfortable with WordPress. We are also expanding our knowledge on them and we are excited to support them however we can. And we also, even for some of the ones that you may not be as familiar with on this list, we have some interesting takes on why they might benefit the community. Absolutely. Yeah. So this week in particular, we're looking at Omega and Omega S, or commonly known as Omega Classic and Omega S. So two different applications, but under the same development group. So we're also going to look at scalar URLs, URLs in Matomo through the next couple of weeks, all open source. And I'm looking forward to the last half too, because there are definitely some good alternatives to like Google Analytics and Bitly as well. So stay tuned for those. And we'll share some good resources there. So yes, so we are looking at Omega and Omega S today, particularly how each application is used and the differences between the two. So how you can use them in different ways within your classroom, or for projects and that sort of thing. So we'll go through each individually and then on that side and then how you might incorporate those. We'll look at some example sites towards the end. I've got some different projects throughout our reclaim infrastructure through domain of one's own and shared hosting users and how and they how each version of Omega is used within those applications from there. And then looking at how to install and install a Tron and some fun updates for Omega S in particular and some functions within install a Tron that now work for those. So we can go over over that side. And then some other things to keep in mind about manual updates through plugins and themes and what to look out for when working with those. So got those. And first, if you're not familiar with Omega, you might be like, what the heck is it? What is Omega and Omega and Omega S? Both are open source. And they are about or they are applications working with digital collections and aimed towards working with media rich exhibits. So this is a great way to visually encapsulate any projects or events in history and kind of create a collection of all different resources there. Omega or Omega Classic is a single site use case so you can have different elements within the exhibit of images, videos, audio recordings and even maps and timelines, which is really cool. And this is really centered around one topic. I kind of look at it as like a single WordPress site. I know I'm referring to WordPress in this instance, but that's kind of how my brain immediately goes to when I'm talking through the different versions of Omega. So Omega Classic tends to work towards one project or showcasing a few events. Within a larger event, you can build those collections and exhibits there using different themes and plugins within Omega Classic on that side. On the flip side, Omega S is good for multiple sites within one install. So this would equate to WordPress multi site within the Omega atmosphere. I've seen professors use this in their courses, and then assigning one site to each student. And so if it was an overall general course throughout the year on history of America, you could assign out like the 1930s or the 1940s to each student. And that would be one site per student as a project. So that's always really cool to see. So you can have multiple in the same sense as Omega Classic, you can continue to have multiple collections and exhibits with Omega S, you can make them their own site. So they'll have their own unique theme. And they can use different plugins as needed to help build out the site, the sub site as well. Awesome. So when you're getting started with Omega or Omega S, you can install with an install atron directly. Just super cool. One click installer and also handles automatic updates to the core versions. So all the files and folders within the application that allow it to run as a Mecca or a Mecca S. On the flip side for those you do have to manually update plugins and themes within the file manager, but we'll go through all of that as well. Install atron also incorporates the quick cloning feature so you can clone between locations if you're going to redesign a website but you want to keep the old one up. Cloning is really helpful to make sure you have a copy on each side. I feel like for installing Omega, it's very similar again to WordPress. Absolutely. Where install atron almost, I mean, install atron knocks you out of the park with WordPress support and setup. But Omega is kind of like the coming in second there. They they've definitely upped their game with being able to support Omega and being in keeping things running smoothly. And as we're going to talk about like making it even easier to add it to install atron, I think that the main thing that when I was an admin at a school was difficult for me to wrap my head around is that the one click login does not work the same in Omega for WordPress. And so something for folks here to keep in mind is that if you're having some issues with your Omega installation, and you need maybe us to look at the back end, we're not going to be able to get in as easily. We can't we can still get in but it would make the process go faster if you made us an account or something like that. So that we could get into the dashboard section because we don't have the same kind of like immediate access as we do to WordPress sites. Yeah, absolutely. And that is a good point about the password resets and everything. We have a little trick on our end to be able to like access the back side of things. And I actually was troubleshooting a ticket this week and figured out how to do it with Omega S instead of Omega Classic. So we're able to get access if you need help with anything, but we're not getting the password resets and all that good stuff. So we can bypass email password resets if needed on that side. So I do want to do a little demo as we go through installing Omega Classic and then Omega S and we can take a look at like the dashboards and kind of see how they're different. I think that's pretty cool. So I'm in my cPanel here and I'm going to install Omega and Omega Classic or Omega S. I keep getting them all mixed up in my head. So most of our shared hosing servers do have them for under featured applications and you can customize this list within domain of one's own, which is really helpful. So you can highlight the different applications that you want. So we've got Omega and Omega S up at the top here. I'm going to go ahead and install Omega Classic on my account. So I'm going to use sub folders and just leave CMS here for now. And then I'm going to change the username and the password super quickly. So I know what it is when I log in and then easy peasy one click to install down at the bottom of the page. Like it literally takes two seconds to install Omega and through install Tron, which is incredible. So all of those and that's going to process here and you'll see a couple options. You can go to let me zoom in actually realize my screen is probably a little too small. You can zoom in or click on the top URL to access the main site right away or even directly to the admin dashboard, which is what I'm going to do. And then you'll put in your username and password. Get logged in and you'll see your Omega Classic dashboard from here. You can move between different your items, collections, item types, and all of that sort of thing. So you can customize the types of items you want to upload. So if you have like a particular video, you can add that in here or customize if you're like documenting different quilting techniques to I've seen a site about quilting within Omega, you can create those as as types to kind of categorize your site and then put all of the items into the items section. You can modify any plugins. Here you'll see a list of all the plugins that are available for installation through your install. And we'll go through adding those really quickly too. In configuring on that side. And then same with themes, you'll see a couple of themes we have built in into the installer in installatron three in particular same with the plugins. And these are all set as defaults when you install a fresh copy. So it kind of gives you the base to get started. Yeah. Question. Yes. When it comes to adding a completely different theme or a completely different plugin. Is there a easy one click way to do that? Or is that going to be more involved? It's a little more involved. Unfortunately within install within Omega and Omega s you have you do have to go to the Omega repository for plugins and modules. I'm gonna look at that really quick. So Omega lists all of their plugins on a single page. Then they do this for Omega s too. So it's really handy to have this repository here. So it is a little bit more manual in the sense that you have to download the latest version from this page and then upload either through FTP or in the file manager to the plugins folder, extract the folder and then you can install. So I'll just do admin images as an example. I typically tend to use the file manager more than FTP for the scenario just because it's quicker, quicker clicks for me and I'm already in cPanel if I'm working on my Omega site. So I'm gonna be in public HTML. And then I'll go into the CMS folder. So you want to navigate to the directory where your application lives. Typically, we recommend that you do subdomains for Omega or installing it on the Apex domain. This is to prevent any issues with HT access rules, redirects or anything like that. If you're working with more than one application on your domain name. So if you wanted to have WordPress over top of your main domains like I have WordPress on my domain, meredithfiero.com, I would want to do omeka.meredithfiero.com. If I was working on a project to work with work through those applications, that just helps more with organization. You can even see on my file system, I've got tons of subdomains set up just in general testing. So you want to so that's really helpful to kind of isolate where a particular project is on that side from there. So I've got the admin images plugin downloaded, and then I'm going to move into the plugins folder. And you can see we've got coins, exhibit builder and simple pages. Those are the defaults included with our application installer. And then I'm going to upload the zip of the admin images. You want to make sure it's the zip not folder of the plugin itself.  And that's super quick. You'll see if I reload the page here, we'll see a folder for admin images, which is perfect. And if I go back to the plugins page on my dashboard, you'll see it's already there ready for installation at that point. Omega recognizes that the plugin folder is in the file system and is ready for installation at that point. So super cool. I will post the documentation on managing themes and plugins. And it's really important to keep track of the plugins that are installed on both Omega and Omega Classic to make sure that those are up to date before you update the site and particularly with Omega S. Omega S requires that all plugins and themes are using the most recent version at the point of update. So like, Omega S is at like 4.1. So once 4.1 is released, all plugins and themes need to use the latest version at that point to be updated. And I think another thing that might be helpful to point out is that you're not necessarily going to be told by this dashboard that an update is needed for your plugins. You're going to have to, you know, it's it's kind of an extra step where you're going to have to go and check and see if there's there is an update to that plugin. But like Meredith said, there's a handy page that has all of the plugins listed there. And when you click into each plugin, you can see, you know, it has the download link to the latest version and also just lists all the other versions. So if you know an update is coming to the main application, always workflow should be check plugins and themes first and see if you need to make any updates there. But Omega is not going to tell you from within the dashboard the way that WordPress would. Yeah, exactly. We have a lot of people use like GitHub repos because these are in GitHub as well to subscribe to notifications on release as well. So that's really helpful. Or using RSS feeds if there's there's one for for the particular plugins on that side. That's a good way to kind of aggregate notifications on that side. So that is a Mecca classic kind of a quick glance at the dashboard. We can go into Omega S as well. I'm going to uninstall this one just so there's no confusion. And while that's uninstalling, I'm going to install Omega S on the education subdirectory. And I'm super excited for this one because there were some changes with the way that install a Tron interacts with Omega classic, okay, or Omega S on that side. So I'm going to install this and kind of talk about what those changes are. So Omega S is fairly recent in the sense that I want to say it's been out for the last since I've been working at Reclaim, which is about five years at the point of this video, it came out about three to four years ago, and we built a custom installer for Omega S, which means that it wasn't managed through install a Tron. So we pulled an installation of Omega S created essentially a template. So kind of kind of what Taylor's been working on with the with the spot templates and all of that stuff across domain of one zone sites, we were able to replicate that across all servers. And then when we installed the application, there were two things that did not work when we use custom applications. And that was cloning, sorry, three things, cloning, importing a two year account, and across accounts, and restoring backups, which was super unhelpful at some points. But we were able to make some workarounds where we could like install a fresh copy of the the site and like compressed files to make sure that it was using the same, same version and all of this sort of stuff. So the workarounds we could work with. But recently with our custom application installer changes, we were able to submit Omega S to install a Tron for their repository. So now Omega S is available to any server that runs install Tron, which is super cool. And as a result of that, we gained access to restoring, importing and cloning, which is so much easier than than the workarounds. So I'm going to do that really quick because I just like I love that we can actually work on that from here. So I'm going to click clone on my Omega S application, and then just use Omega S. And we'll let it go. Might take a minute, but now you can clone applications or clone Omega S between different sites. So if you wanted to create like a template of one site and then move it over from project to project, that's super easy to do now with the cloning feature. You no longer have to move things over manually. So I've got my Omega S clone here. It's super cool. There. So all right, so we'll take a look at what the dashboard looks like really quick as well. So this definitely looks a little different between the two. So if I go to Omega, and then Omega S, you can see like it's definitely showing that it's two different applications there. For sure. So you'll see on the left, you can even even have your own site, different item sets, users modules. There is a little bit of language changes between Omega Classic and Omega S. So plugins are modules on that side. So you can see we don't have any currently set up in the application, but I'll go through like we did with Omega Classic to adjust the particular application. And within the site's profile, you want to create a new one. So I'll just create a test one super fast so you can see what it looks like when working with particular application or particular site to change like themes and all that good stuff. When you're in the main dashboard, it's kind of like the network admin dashboard for WordPress, you'll see a full list of everything like sites, items, all of that, and you can even navigate further into a particular site at that point. If you go to site admin, believe you'll be able to like make different pages, change the navigation for like menus, create new users and at like provide them with access to the particular site. So this is really helpful too for user management, but then you'll also go into items here and then add all of the items. So I guess within Omega S you have to add items to the main site and then assign it to particular sites on that side. So if I go to edit, you can check the theme. So this is the classic default theme that Omega S installs with each site. I'm going to grab a module really quickly and download that. So I'll do something similar like coins as well. And then move up in my file manager to my education directory, and then click on modules and upload the zip as well. So the same way that you would with Omega Classic. And you would do the same with the themes if needed. Any themes you might have from there. And actually, while I do that, I'm going to go into modules and I'll show you what the module looks like. So I picked this is a good troubleshooting moment. So I picked an older version of a plugin that has not been updated recently. So because of that, Omega S is what I installed. It's using version 4.0.1. But the module and plugin requirements require a lower version of Omega to be able to install. And so I personally don't like the way that that kind of error comes up because I've had people before get confused. And because if you look back at that error, where it says it requires version three, it looks like it's indicating that it requires at least version three. Yeah, that's true. Really confused because they think, well, you know, I'm above version three, so this should work. But that's really not what it's saying. It's saying that it requires that version. And that's no higher. Right? Yes, either lower than the version 3.0.0 or lower than that version. So I will grab a different one, probably one from 2023. So I'll just use this access resource one. And that's a good tip to look at the updated date on each plugin. Because if it's updated around the time that you're updating the Omega version, that is a good tell that it is ready to go or closer to the version and compatible. And that point. So I'm going to upload access resource. And this is all it's also really kind of handy to like pay attention to what the dates mean. Also when we're working with PHP 2. That's a whole other conversation we could have. But I've always found that the date correlates to PHP compatibility as we're moving through different versions there. So I'm extracting the new plugin on that side. And we have the file open. And then I'll just give this page a refresh. And you can see I have a green light to install the plugin on that end. From here. And so then there's just some additional configuration needed sometimes on those plugins there. I have a question. Yes. If you go back to the dashboard for Omega. You were able to click into the site section and control the theme for a particular site. Right from there. But I don't see light and there's like a section that says theme, but I don't see a section that says modules that specific to that site deep. Can you only install modules that are network wide? Or can you? Yeah. Okay. Yeah. So that would be network wide across all sites. With Omega S for my understanding of it is that there is the one hub URL, but then you were able to designate one site as like the homepage. So folks can be redirected automatically to like a front page. And then at that point, once the other sites are worked on, you can change the theme in particular for those pages are for those sites. But the modules are going to be available to all all sites within the network. You can't specify specific specific ones on that side. And probably the same thing for themes in terms of availability. Yeah. But you can activate whichever theme you're looking for specifically on on a site. Yeah, absolutely on the on that side. So that also brings me to a cool trick with with the HT access file within Omega S. If you want it to be a particular site that you're working with. So if I go to the homepage here into sites and view the test URL, you'll see at the top it goes to my domain name education slash S. So that shows that's where all of the like application files of Omega live. But if you go to just education on the main domain, it's going to bring up a list of all sites. So a lot of times, admins will create a homepage site, and then redirect all traffic to Merida fear.com slash education to the home site. That is done through a redirect within cPanel. So you would set up whichever URL you wanted to wanted the homepage site to be within Omega S. And set and configure that. And then once that's configured, you want to go into the HT access file itself. And cPanel automatically drops the redirect rule at the bottom of the file for the HT access. So you want to move it all the way up to the top and click save so that the the server sees the redirect when loading the site first. And then it just automatically processes to the to the homepage site itself. So I found that that really helps with site management on that side. From there. And then another thing to look at is just the core files for Omega and or Omega S in particular. And that is anything that's not modules, themes, or the config file. Yeah, the config modules and themes are all dynamic and are specific to your particular application. The config folder holds the database credentials that are needed to connect the files to the database within the site. And then obviously modules and themes, as well as files, I did not include that in my last list files. So if you have any images or media embedded in your items or collections within Omega, you want to make sure to save those. So if you do have to update manually, I just grab a like select each folder, and then compress them into a zip drive, like a zip archive, and then update the application manually if I need to. And once the application is updated, you just extract the folders back out into the system and it'll override the default into what you've you've set up on that side. So that was the way around moving things as well before the cloning feature fixed was fixed with the installer. So we've got those demos there. So let's go back to our slides and see what we're looking at from here. So we've got the cloning. We talked about the plugins and themes as well. So just a reminder to download the full zip of those plugins to move over to the file system and then extract within the plugins or the themes folder modules or themes folders for Omega S in particular and then be mindful that these are all going to be manual going forward. There's no automatic updates for plugins and themes within the Omega, the Omega sphere on that side from there. So we did briefly mention this too. But when you're working with Omega, we definitely recommend working with subdomains, particularly if you're working with multiple applications on your account. So if you're working with WordPress over top, I have an example site that's actually that that works through this. So that's pretty, pretty interesting to see that you can do like, like WordPress is like a landing page, and then move into like Omega on a subdomain on that side. This helps with any HD access rules, or permissions and that sort of thing. So we want to make sure subdomains are utilized wherever possible. For those for more stability there and Omega S will default to sub folders, and that's totally fine. So if you wanted to work on a project on a subdomain, that's Omega S, it would be like, Omega S dot mario fear.com slash S slash site. That's totally fine because it's within that one folder. So no need to worry about sub folders, or subdomain changes there. So and that's actually not a feature within Omega S, you can't change the directory route, like how you could in a multi site, or press multi site, you could you could change it from a sub folder to a subdomain install, it's only sub folders within Omega S, right from there. Awesome. Okay, so now we are going to move into some examples. I've got a couple for each, Omega S and Omega Classic here. And these are all across reclaim from shared hosting to domain of one's own, and even reclaimed cloud to we have a project that's working in reclaimed cloud. So it's kind of cool to see I know this is install a trunk focused, but with reclaimed cloud, it's really cool as examples. So to start, we've got the cork LGBT archive, which showcases the history of the LGBT community within the within Ireland, and in cork specifically. And I learned that this is actually the second largest community in Ireland, which is really, which is really cool to see. So I've got the site here, let me switch my screen share. So we've worked with I've worked with Orla and some of the support tickets that that they've submitted and to see the site kind of grow in the way that it has has been really cool. They have a lot of items, which showcase particular media items from from videos to pamphlets and flyers to particular items themselves. So pictures of the items and then organized into collections from from books to alliances to photography as well to kind of showcase the different events throughout the the community.  And in a London, London based group performing in cork, which is really cool from there. So exhibits and collections are a little a little bit the same that you can kind of compile different items into different topics. So in the same way, like a category would be categories or tags on that side. So that's really, really cool. So you can see that this is the exhibit itself that piles four items into an exhibit there on that side. So then this links out to some other other folks in the community, which is super cool. Next is making modern America. This is a domain of one zone in particular project, working on the Great Depression. And I thought this was really cool because this is a great example of a class project working together to build out a particular site about a specific topic. This could be all this is also a good example of how omega s can be created, or be incorporated to I believe this was built before omega s was a was an application. So this was a class research project that dove into the 1930s and the American world after the Great Depression, which is really interesting. So they showcase like lesson plans. Here, you can see like different PDFs of that great example of like how you're able to embed different media types into the application. Yeah, I really like how, how different these two projects are in terms of both kind of dealing with history, but one is dealing with a kind of an evolving history. I imagine whereas for the cork community, you have that balance of something that is archived, something that's historical, but also like what's developing as well. Whereas this is a great example of something that is kind of a fully cohesive and wrapped up package of a snapshot of the past. Yeah, absolutely. I definitely like that and like how they both incorporate different media options within each. So this site in particular works with Neatline as well to create a map to show to show how Oklahoma looked in particular during the 1930s there, which is I think really cool on that side. Next is Georgetown slavery. This is the one that I was talking about that uses WordPress over top and then Omega to kind of showcase the different events. And this is a important website that showcases the the history of slavery with the George with Georgetown University and their interactions with with that and how they're reconciling it today as well, which is really interesting to kind of take a look through and understand how it was incorporated into the university at the time and then how they've evolved how they've evolved from that. And here is the WordPress site itself. So this is the landing page on the main Georgetown.edu website and it shows different page kind of talking about the project itself. And then the history quick link. No, that's different. It's a little bit of a way to get into it. So I got to look at the history and then I had it promise the Georgetown slavery archive. So the archive is the Omega site that showcases the different events of the of slavery within Georgetown. So this uses even a different theme than the other sites too. So this was particularly built in a mecha classic. Yeah, so I definitely recommend to read through if you are interested in the site, it was kind of interesting for me to read through to see how like how it was built and even just understanding the whole the whole project in general. There and then moving on to a mecha as examples, particularly within this Mount Sinai archive, which is an interesting collection of items from a monastery in Michigan from here. So we've got this one in particular works on recline cloud and is a project between Princeton University, Michigan and Tufts University. And this one is cool because it works with Amazon web services s3 storage. So if you find that your your site is taking up a lot of space because media files tend to do so with photos and videos, they just hold a lot of data. You can incorporate s3 within your mecha site, which I think is really cool. So you can offload the storage there and then continue to build your site on recline hosting and manage manage the core of the site from there. So that's really helpful. So this is I believe they have each site built into like the icons, manuscripts, and liturgical objects between. So that's really helpful. You can see all these different, these different pictures from there, which is super cool. And then finally, we've got another slavery project built in omega s through the on these ground project. It's a melon melon grant funded project across the country. But this one in particular is built from the University of Georgia. So that's that's really cool to see as well. So you can look at different organizations and resources as well. Cool. Alright, so that's on these grounds. I'll post like stall these websites in the chat as well. And that is all I've had for resources. Let us know we'll be in the discord chat to if you have any questions throughout this, definitely let us know we can we can chat through those on that side. But yeah, that's that's omega and omega s from here. And then that show a little splashed into omega and omega s. Yeah, absolutely. For sure. Well, thank you all so much for joining. And we are looking forward to next week. And seeing what what applications we're working with it. Yeah, join us next week for scalar. So scalar. Yes. We were talking about the other the other applications. So I was not sure which portion of the timeline we were in that side. So we'll be looking at scalar and that's also going to be a really cool one. I'm excited to to see that as well. For sure. Awesome. Thanks, everyone. Yeah. See you next time. See ya


Mimir Mimir was written by Dr. Shoulder and Yasipasi. It is under Creative Commons 3.0 share-alike attribution license. You'll be able to find a link to it in the description below. And yes, Dr. Shoulder is underscore shoulder underscore. The same guy who does quite a lot of the memes from our daked memes from site 19 videos. Item number 6442 Level 5, Top Secret. Containment Class, Thomial. Disruption Class, Vlam. Risk Class, Critical. Special Containment Procedures. Due to the anomaly's role in preventative containment efforts in maintaining Foundation secrecy, the protection of SCP-6442 is to be ensured by any means necessary. Access to its containment facility is granted solely by the SCP Foundation's Counterintelligence Agency. In efforts to conceal the geographical location of the facility, personnel assigned to the site are not to have access to geo-positioning tools, and Class V amnestics are to be administered upon arrival. Personnel on site are neither expected nor encouraged to familiarize themselves with the layout of the facility, due to the possibility of compromising containment, save for designated emergency zones, and to perform necessary maintenance of the site. Any unauthorized attempt to exit or gain access to the facility will be met with immediate detainment and the offender will be subsequently amnesticized, demoted, and or terminated. The containment facility's exterior is guarded by a collection of Foundation-made automatons, specializing in covert anti-infiltration tactics. In line with general concealment protocols, the automatons are designed to covertly terminate infiltrators, silently destroy hostile aircraft, and conduct thematurgic counterspells against anomalous weaponry. SCP-6442 itself is located within one of 16 identical spherical containment chambers, located at least 50 meters apart and connected through maze-like narrow structures designed to obfuscate navigation. Each chamber is entirely featureless and has a single entrance possessing no distinguishing marks that could differentiate it from other chambers. The exact location of SCP-6442 is not to be known by any personnel in the Foundation. The interior of each containment chamber houses a sphere of tungsten alloy containing either SCP-6442 or a near-identical, but non-anomalous, replica inside. Each sphere is suspended in the center of the corresponding containment chamber to ensure access requires significant coordination and effort to achieve. Furthermore, the interior of the containment facility is to contain multiple layers of protection against individuals attempting to neutralize and or retrieve SCP-6442 via force. Current measures taken include, but are not limited to, anti-nuclear and eigenweapon defense protocols, aerosolized Class 1 amnestics throughout each chamber, six Scranton reality anchors per chamber to prevent ontological attacks from harming SCP-6442, as the Yank Anastasikos constant temporal sink per chamber to prevent temporal manipulation, 36 experimental Randall-Yasarian Akivia nullifiers per chamber to prevent and discourage divine intervention, one set of mobile task force Tau-5-Samsara construction tanks per chamber in the event the above procedures are insufficient or on-site security is overwhelmed by hostile forces. In the unlikely event that extraction of SCP-6442 is necessary for an unforeseen reason, all decoys are to be extracted from the facility alongside SCP-6442. Once the solution is provided to the problem, SCP-6442 is to be returned one of the 16 chambers at random. Should the United Nations Global Occult Coalition be successful in retrieving SCP-6442, all attempts are to be made to neutralize the object to prevent the organization from developing a hypothetical inoculation. As all of SCP-6442's training data and construction materials have been incinerated to prevent reverse engineering, the protection of the object is considered a high priority. Due to tensions within the wider anomalous community and de-escalation meetings performing poorly, the above special containment procedures are to be continued indefinitely. The procedures must be re-approved or updated at least once per three months by the Counter Intelligence Agency as per the orders of the SCP-05 Council. This document has been altered to exclude an undetermined portion of the full containment procedures for security concerns. SCP-6442 refers to an inscription created by the SCP Foundation Counter Intelligence Agency and Memetics Division. SCP-6442 is engraved within a sphere constructed with a classified carbon fiber-based elastomer. Upon perceiving at least 73% of the inscription exposed subjects experience a complete cessation of all neurological functions instantaneously. This effect occurs in any singent being, including non-organic life forms. To date, it is the most potent cognitohazard produced by the organization. It is estimated it would require a cognitive resistance value of 742 or higher to survive. As a result, inoculation is considered unfeasible or potentially impossible. Since its creation and containment in 2023, SCP-6442 has successfully neutralized at least 8,000 omniscient entities, at least 2,000 of which were employed by the Global Occult Coalition.


All right, I Said two minutes So anyone went out for a drink or whatever Let's give them a couple of more minutes, but Then we're gonna move on with day 12. I hope day 12 isn't too hard But since this was quite fast, I mean, I think we're I think we're good Let's see Do All right, I think it's been approximately two minutes Let's say Close all the array stuff But I like I like a bit of code in this sense, right?  How would you Like how do you deal with immutable data is if everything is immutable by default and you're like, well We have data types for that. It's just like instead of mutability being the default we make it explicit Which fixes a lot of places. I'm gonna get some coffee and then we'll start I Keep pushing the keep warm button on my coffee maker, but then it just doesn't do it So slightly cold coffee, but hey I'm somewhat of a bad coffee aficionado you know, I Just like coffee and then bad coffee is not as a best coffee, but it's not too bad either Let's go back to Admin of code. Let's go look at day 16 not open yet day 12 Rain risk. All right, your fairy made decent progress towards the island But the storms came in faster than I never expected your fair needs to take evades of action, right? Fortunately the sips navigation computer seems to be malfunctioning rather than giving around directly to safety It produced extremely circuitous You see how I pronounced that word it was a magic card So I had to think a bit when I was playing magic about circuitous route Circuitous circuitous, that's how I say it With the cat in use of the PA system To ask if anyone can help you quickly volunteer Navigation instructions your puzzle input consists of a sequence of single character actions paired with integrable values After staring at them for a few minutes you work out of the problem mean and it's north south east west left right forward Okay, so Action have means to move forward by the given value in the direction the ship is currently facing Ship starts facing east Okay So north So north will always give us north so we can kind of we can kind of Take the north south east and west instructions out in the beginning Okay, let's start by Let's start by doing that. Okay Do-do-do-do-do-do, so I mean we we we in essence we have a bunch of instructions and we have to translate them to the right instructions Let's do it. I'm just gonna go do text dot parser combinators Repeat look at this written by My arch nemesis Let's look at it day 12 oh it went into the wrong directory No Thank you Do not ask me again. That's very harsh, right? new file Day 12 dot HS All right, let's see a Import no, this is gonna be module main where Import text dot pars parser combinators dot repeat I'm not even gonna write a parser. Okay. I'm just gonna say Data So it's gonna be what do they call it? Instructions right now it's gonna be It's gonna pay north north-int or What put in the order north-south east-west? South-int east-int west-int And then it says Then it says Left right forward right left and right in forward Now I'm curious Well, will it only ever be r90 or like will it ever be are something that's not Go to turn it into So, I mean it seems like, you know, none of them will be like r45. See r45. No, no l45 I think they'll always be Just flipping in the new direction That's gonna be fine. Okay Deriving, okay. Now you write to instur Take a string and write the instruction What's the type of read So if I want to import implement and read instance, I can write read sprek Read sprek is in streets s. I read as it's just a list of strings. This is just it. Okay, so instance read Nam where I'm not allowed to do this. I need read sprek. I'm just gonna ignore this. This is gonna be the string and I'm just gonna Write it here If it starts with north and rest Is it gonna be and Read and dollar read our comma Like this for all of the data types s s e Oh shit, it's not. Oh, I didn't do the thing. Okay so and s He Oh my god, let's See, this is the difference between whim And vs code. Are you ready? We're opening this file in Vim Now this is a wrong directory day 12 Vim day 12.hs I'm gonna open it here and I can copy These and I can paste it Here and it and it does the correct thing if I did this in vs code. It would like paste each of the lines Which is super annoying. Oh I copied too many like this. Okay our f Okay, and then get input is going to take a file path and it's gonna return as an IO of a list of nav Get input it's going to be F map read dot lines of Read file. I think I have to do map now main IO main equals yet input test input into print So you Chrono Kirby and Timmy How long did this run for you to Was it a lot of work? Like what is the what is the baseline here that we're competing against I think actor competing That we should evaluate ourselves against. Well, I'm gonna say here GT Oh three day 12 measure command Expression D12 Default We just parse it and print it All right F10 North 3 F7 R90 F11 Now we're gonna write a function here is dear it's gonna return now to Is we're gonna derive enum Is dear It's gonna be an Is there is gonna be LM north So no, okay This is too too brutal because we don't we don't have a north south east West Okay solution. So we first of all we're gonna take a list of nav's and we're gonna return an inch Solution, okay Undefined now we're gonna say here where span We're gonna we're gonna text Google we're gonna split into two lists the instructions The span what is it called again like the not the span but the other function Like the one that breaks it into two groups and Drake drop while split at Okay, let's So it's gonna be here. It's gonna be tears comma There's gonna be directions and this is gonna be the other one is going to be Instur and this is gonna be Filter is dear That's comma filter not is dear I Now for the nav's We can actually just sort them we could do like we could do We could do imaginary numbers. Let's see a can we do complex numbers in nascar? Is that even wise let's just do it now let's write Dear to complex Board data.complex It's gonna take a nav and you're gonna return as a complex dear to complex on north And that's gonna be And plus zero now, that's gonna be oh, no, sorry, that's gonna be zero plus and Dear to complex south and so we're gonna be zero plus minus and Dear to complex East It's gonna be n So this s s E and e and then West West is gonna be Minus v and you're too complex anything else is just gonna be undefined Now can we we can some right? Let's see here Whereas see It's gonna be the sum of map dear to complex of Dears after to complex and this isn't why why do you define complex numbers? If I can't add them that is That is useless Some complex numbers has cool.  Oh right a Map dear to complex Okay, now we have a final coordinate and Let's see here. Let's see magnitude Magnitude of Red Sea And that is Real float into we'll be working with floats But that's okay. We get the input and We will print solution So this will be the They kind of the result after After If we only look at the directions Non-instruction non exhaustive patterns in function is dear. All right Gotta I just had two ins for x and y.  I mean it's like we use polar coordinates, right? That's what that's what the space people do We're gonna be like astronauts Using by look got complex Okay now we have to figure out now you have to Now you have to figure out this for forward ten oops, oh My god, no This is all the input it's gonna be a lot of input and I don't have access to any of my commands anymore. That's fine No, I have some okay Can I get an F in chat? For my terminal history Let's see The thing is like it starts with east so so we're gonna say Make polar let's look at that occur phase Starts off and the current phase starts off at zero now Now we're gonna we're gonna go are the instructions We're gonna make them into complex coordinates so we're gonna say a Instance to complex that's gonna take in a list of Nav It's gonna take in like the the phase which is gonna be a float and a list of Navs and Instance to complex it's gonna Instance to come it's gonna take in the current phase and a list of Navs And it's going to return a complex a float Instance to complex a phase So if it's if we're just gonna say phase Nothing, so if we are for the end No, let's let's use And then we're gonna have another complex We're gonna have a complex float Okay float complex float nav complex float So curve phase Thanks and Steve TV Hope you all are enjoying some Haskell programming It's I like it Curl Oak and everybody empty one then we just return curl Oak Now insters and it doesn't matter Insters to complex of curve phase Curl Oak So if this is the case of this is F If it's the case that it's If it's like our okay, we don't actually need These are to put the P. We can see it's gonna be it's nice Now these two these two will be in So if the current phase of the look is so we're gonna have a couple of phases We're gonna have our R 90. We're gonna have L 90 and 180 so R 90 rest equals That is going to be insters To complex of This will be cur phase Let me see So, okay, we're start off in east and then we go right so okay Let's go do that one if we go left 90 then the current phase goes up By pi over two Okay, if it goes left 180 Then it goes by Hi, if it goes R 90 Then it goes Because R 180 then it also goes plus pi So that's gonna be fine, but if it goes right So because good doing plus by a minus pi here is the same because it just loops around R 90 is gonna be minus five. Let's just have it minus five. It's gonna be fine now insters to complex a So cur phase and cur look Okay, so now if we have And so now we're only gonna be looking at forward and Magnitude rest It's gonna float That's gonna be That's so then we're gonna create a new number We're gonna say Where X plus Y equals Make polar Make polar M Cur phase It's gonna be insters to complex Cur phase and now here we're gonna have Cx See why Cur phase is gonna be unchanged But this will be a Cx plus X a C y plus Y I Think this needs to be a bunch of parentheses Right Let's see if it works It's gonna be magnitude a res C Plus insters to complex Okay, so res Instur is going to be Okay, so But this is res C that's gonna be are a Rx plus ry and now now the It's gonna be the a dx dy It's gonna be instruction x plus instruction y of Applying insters to complex and we start at zero current phase is zero. We started this current look zero Current look zero zero plus zero and We give it the inster and then we simply return the magnitude and then res equals dx plus I x Plus dy plus I y like this and we turn it to magnitude of res Let's see. I Really, I it's a bit sad that there's no native support for 18.78 Okay, that is not That is not correct. Let's see Laugh 90 So it you can return all the instructions So we just have two ints. Oh sheet. I flipped around wait now make polar magnitude In the current phase right Let's say data complex It's gonna be magnitude in Yeah, yeah, yeah, this is correct Okay, let's return Complex float here. Let's return the res. Oh, yeah, so we're gonna return the Manhattan distance of 17 plus 8 25 So the magnitude is like going there directly Yeah, it's goes gives us a Euclidean distance exactly to me Timmy has it again Let me see so this is just gonna be abs of dx plus I x plus ABS dy plus I y right all right 25 point oh So that was that's correct, right? Let's get the puzzle input. Let's see how it performs on the input Okay, 48 milliseconds. Oh, no Non-exhaustic patterns in function insters to complex. I apply them to what?  Oh Yeah, no, okay, and then our arrest Because her sure are Let's see. Well, let's see what it fails on L 270, okay Yeah, okay, we have L L 90 pi plus two L 180 and then we'll have L 270 which is gonna be pi three times three times pi Over two and the same for R.  Oh my god Okay, let's see. What's the result? Dammit, you know, what is this? Is it like? Okay, we're gonna have to just rewrite it Let's rewrite it Let's drop these complex stuff.  This is gonna be A little bit from me if you're gonna say, well Insta Don't mind Actually, let's let's change it. Not quite there Let's keep these as complex numbers But let's change these to int And now this return on a complex int Make polar Won't work What can I just have this be? int Well make polar well Only work for floating So if it does L x Curve phase plus x now if it says R x We are going to return x and then When we have this Uh curve phase x plus y case curve phase of Zero then it's going to be We're going to the east is going to be cx plus m ci Which if it's 90 then we're going up if it's 180 then we're going backwards 180 and looking at packets linear linear v2 Oh, yeah, that looks good. I mean but kamateza He is a real legend, you know Yeah, then you can do oh, then you can do some of vectors Oof, but also this angle Needs floating Yeah, I wish I'd known about it before I started today I I concur So and always here we will do We do the current phase plus x mod 360 360 Let's see. No, this won't happen I mean it might happen, but I don't think it will happen. This is not 17, right? so, okay zero 90 180 270 and then 360 No, okay. Yeah, this is just supposed to be nx plus nine Okay, now we get this 198 plus minus 121 So then we get this 300 we get this That was like well, it was almost all we got before right, but this is fine 319 let's see We said 320 earlier, right? We should just round it down. All right We got part one Now, let's see what part two is going to be about Uh, before you can get this you realize that the actions actual action meaning we're pretty on the back, okay Almost all the actions need to get how to move a waypoint, which is relatively just Rotate the waypoint around the ship this uh I am going to save this as int version I'm going to save day 12 adages day 12 Hint adages I'm going to go back to the floating point version Because I think that would be way better for doing any rotations and stuff like that We're gonna do all of these things Oh, shit, that's too many undoes and we just run it on the We run it on the input I forgot yeah, I this is I didn't have the number two To 70 and then R minus Let's let's replace the double float with double It's gonna make it all slower, but that's okay. Do we get the same errors if we don't have uh Yeah, I mean, okay, so the error will just be smaller Okay, like this and I will just use this and now instead of saying We will say We'll just round it I'm just assuming it's close enough Let's find a dag to rod into float Dag to rod 0 equals 0 Dag to rod 90 equals pi or 2 Dag to rod 180 equals pi Dag to rod 270 equals three times Pi or two Uh Oh, this is not supposed to be here Change this to be Something more second D Let's dag to rod to D And then for R It's minus much clearer Sweet Okay, and It's probably this function exists somewhere What we could actually do is like we could merge these two, but that's I don't think I don't know Oh, let's commit it Get status And day 12.hs and then input and test input Hit commit a m day 12 Part one Push it I like I keep saving my work. I keep just I'm always pushing on git Usually like if I yeah, so I usually you know, I have my own branch I just commit a bunch to that bunch and then I push on the branch and then Afterwards I fix it up, you know, I merge it to merge requests for the branches Uh, but this is It's nice Okay, so It starts at 10 unit east and one unit north relative to the ship The waypoint is relative to the ship that is if the ship moves point waypoint moves with it So F10 moves the ship to the waypoint 10 times So 100 units east and 10 units north So what I'm hoping is, you know, if we have the complex coordinate, we can like rotate about the coordinate No, I mean you don't really have any So to rotate the imaginary number You just change the face so then we We move it and we rotate it. Okay Oh, okay Let's start this is gonna be something right So we move the waypoint north and we move the south east west. Yeah But now we have to kind of do it on the fly Because uh, we can't just like we can't take it out Okay, let's see. Let's see No, let's just move. Let's see here. Okay, let's see. Let's see what happens Volition to now instead of doing these We actually need to be instead of this we will just say abs x plus abs i y And now this will be And abs okay, so The current phase Okay, that's gonna be the face of the waypoint So every time we move so we move the waypoint and then So, okay instructions to complex. Okay, we have the phase We have the Ship look and then we have so this is gonna be s ship and waypoint We Then we return in the end. We return where the ship is complex Float and this yeah, they have different numbers on argument.  Okay if we're at the end, we don't care about the ship Uh, now let's just call this run actually Okay, so if we are in the end and this is gonna be then So we start at 10 the waypoint starts 10 units east and one unit north relative to the ship So this is going to be the position relative to the ship So The current Faye the current rotation is a rotation of the waypoint so I In the initial rod We don't need the rotation. We just need We just need the position of the waypoint Okay, and now this is a so the initial position of the ship is zero zero The initial position of the waypoint Is 10 units east And one unit north Complex float Okay, uh, so let's see ship Okay, then yeah Ship and then we pee and then okay Now for n So the magnitude These are all floats. These are ints So the n magnitude We move the waypoint north by the given value So this is gonna be v x v y Rest First of all, then we are going to say there's gonna be run The ship is going to stay the same place But we move the waypoint v x plus m plus v y Rest Okay now for south We will remove the waypoint south Um For east and oh, let's do east first No, no, no, this is this is this is wrong This is east and this is west and this would be north Uh North magnitude that should add to the y coordinate y plus m and This should be and then we have moving this south This is going to be y minus m Okay now Let's let's do f though f means move forward to the waypoint a number of times equal to the given value Now that means a run ship Weep we Of if it says forward Forward magnitude rest It's going to be run Ship prime The move point doesn't move and the rest Where ship prime Then we want to uh, we want to You compute the new number Okay, so uh v p v m v r equals polar v p right v m v r and then a This is going to be uh n n p Uh New look it's going to be a mk polar mk polar of v m times m v r so that's that's like The position of the ship relative to the ship where it's going to be moving a rx relative x and relative y And now I wish I could just add these two So let's just say s x plus sy is going to be s sx plus rx Plus sy Plus ry I think Then we moved forward in the direction of the waypoint Relative to the ship now, I think actually That left and right Are going to be very easy ship vp left wrote It's going to be vp prime Where vp prime equals That's going to be vp prime. It's going to be the magnitude of vp We're going to make polar Polar with the same magnitude as a waypoint But the uh the We're going to have the phase vp plus dig to rot of the the rotation Doesn't look too bad, huh? Using polar coordinates Rotations of vectors and stuff. Let's see what let's see what it does already pushed 274 for the test input But it says 286 Let's inspect the float This would be a complex float So it's 126 plus 148 Okay, let's uh Let's see here. I want to show this Our assembly access space here should be this is how like this slightly more concise More aesthetically pleasing as you Import debug without trace this needs to be at the top Okay We're going to say here trace show trace l l uh l plus d trace All right Trace is going to be we're going to trace show Uh R comma vp prime If we be all right, okay. Let's just say you are here also trace show R comma Ship prime Ship prime Let's see what it does for not for this one But for the yeah for the test input. Yeah, let's see That says Over 10 The new one is nine 99 plus 99 So leaving the ship at east 100 north 10. Yeah Okay, let's let's actually change this Let's make this a die. This is like the instruction right Where vp prime is going to be this number here And here we're going to show i comma vp prime I No, we're going to return the vp prime Yeah, like this So for south it was minus here for this it was plus m here It's east and then for West it should be west minus you're just joining us. We are doing Day 12 of the advent of code for 2020 Uh, we already did day 15 earlier today But Uh, we finished it quite fast So we're doing day 12 because we have to catch up because I missed out on day 11 day 12. I did day 11 yesterday Now we're doing day 12. Okay, so North so f 10 says go. Yeah Okay, so move the the f is correct and three moves of 8.3 units north Uh three two to 10 units east and four units north of the ship Yes, okay. So then f 7 Move the wave one seven times 70 units east and 28 units north Uh, okay, I think it's just because I'm adding it Wrong here, uh, so Right, so when when I So that's this thing right so n three f seven Most of the way point seven times so f here Should not do the polar thing It that that's too much. Yeah, so it should just be A the ship x Vx a Plus a we y and this should just be Plus m times and this should be plus m times and this should be one we y way And then okay, let's see if this works some bug Vx we y Vp at Let's see. See if it works It's running at least that's something okay, so North ring was a way point then f seven Leaving the ship at east 170 north 38 Yes, okay, so that was right. So the f was right So then let's do the polar thing, right? Okay, and then it says Okay, so it moves it depends up at 170 north 38. Yeah R90 rotates a waypoint around the ship clockwise 90 degrees Moving it to four units east and 10 units south leaving Four wrote four units east and 10 units south But we're we have it at four units Four units west 10 units south Did we just rotate in the wrong direction? Yeah, okay, we forgot when you fix this we forgot to change this to minus Let's see. Let's see. I think I think we got it now Yeah Yes, so then we rotate it and it ends up at four and minus Minus 10 And 10 units south. Yeah. Yeah. So yeah, south is south is down south. Yeah Which we're in the polar cord is more than not in screen coordinates, right? Okay, so And then we move the ship and it ends up at abs They should be correct. I want to just define I'm just gonna do it like this Instance num complex float where This is Flex any flexible instances for this language flexible instances I probably needed something else also right. Yeah overlapping instances for num there's There isn't there isn't one already So I don't have to do this. I can just do ship equal ship plus 10 times vp ship Oh sheet Oh, wow. Okay. We didn't actually need to do this Uh m times vp from integral Because this m here will be a float, right? How do I change it? Return This is a function that goes from float To complex float Yeah Yeah, so I need to you need to So this should be a Make polar m zero Does it still work if I do it like this? Yeah, it still works nice so This vp here that's just going to be vp prime is going to be vp minus West is minus m Plus zero So it's going to be this is going to be vp is this Because we don't need to like pattern match or anything I like the way I like writing it that way better We put so much effort into Defining all these All our coordinates, but then we didn't actually have to do anything You just write zero here, right? And I think like we could write m here. No, okay, we have to So north and south That's they're gonna go from zero Plus m and it's gonna be zero So M and it's gonna be minus Okay, apparently this works also even though I don't know. I don't like how it reads Because it looks like kind of like zero times vp, right? Okay, but it works right Then this here This is just uh So Yeah, I think this will do it Do All of these change the vp Um And you can see that because we use puller we use complex numbers and polar coordinates like we didn't have to deal with the whole Rotation stuff, right? It just works I like it Let's uh clean it up because uh Complex numbers, you know, I did I did math Math not even one skins Uh, they are essentially Just a vector They are not essentially they're literally Do a vector That's how we do talk about the complex numbers and then you know the whole eye and imaginary that is just That is just lies put on later I think that's what I think this all changes the The way point somehow I wish I could like there's there is a number I you can Uh, there's like you couldn't Uh, I think you there's like a there's like a number you can multiply by Oh shit If you multiply by I If you multiply by I then You you get You get the rotation, right? Let's see Uh, so instead of saying here make polar What I want to say is I want to do vp times So, uh Deg to rot I want to say make polar one Deg to rot D and this should be magnitude here should be Minus No Deg to rot should be complete, but this should be minus and we end up at 274 Which is not 286, right? No, yeah This is this is still giving us 286, right? Yes Let's see. What if I Okay, so in the test input I have r 90 so I only need to be changing this if I want to see what it what effect it has So where vp prime equals vp times Uh, I want to do d Like how how many times oh my god d div 90 So this is how many So this is why that is not correct Polar d div 90 times Pi over 2 Make polar Make Polar and what this is you here Couldn't match type. Uh, okay. This should be 1.0 No Here I got 274, but I see we get 286 Magnitude should be a positive number Uh, oh, yeah, sweet. So here this should be positive No, we don't need this Deg to rot thing and we don't actually need these Here well, okay Deg to rot is Going to be need this this is going to be minus Deg to rot d And this is going to be Deg to rot. Do we need all of these? And this we don't need these here. Okay. Now, let's see. Let's see what happens sweet You see So now Um So for all the things Uh, so now I want to uh No, I want to just yeah So we could we could map these all into changes, right? But now we're just using complex number math To do it directly, uh, which is nice So Uh See that's going to be where this is cxcy that's coming from That's the ship It's going to be c plus r Or rot I like it this way now. Let's see. What's the solution one give us? Because we're changing that up a bit too, right? That gave us 25 Which was yeah, that was part one So let's see here curve phase We don't actually need to change the current phase, right? Oh, yeah, okay. Yeah, we need to because we're just rotating the ship. We're not rotating like the entire Are we No, yeah, we yeah, okay. This is good Let's copy the dig to rot from here Picks this up and make it more general How can we like make this a bit nicer? Can we make it a nicer at all I like this. Uh, it's pretty second, right? assistant second Yeah We don't need this Now, let's let's we have this is dear function, right? Now, let's let's write a Dear to move Yeah, it takes in a nav And returns a complex flow Here to move so nm is equal to zero plus a now sm is equal to minus East is equal to m And This is west Now we can just say here Run ship vp I rest Case is dear I equals run Ship vp prime run ship Vp plus dear to move a I Rest we can move all these lines These are all doing the same thing Ince This is gonna be ince Okay now Dear to change it's gonna be nav complex complex float Dear to change a Ld is going to be Make polar a 1.0 Deg to rod d and then R It's gonna be Deg minus Minus take to rod These are all non-tool functions So we have is dear and then we have So we can do it like this if it's a dear then it's like this If it is n then we just move it otherwise The ince here is going to be ince It's going to be this so then we just say vp Times dear to change Ince because if it's if it's not if it's not If it's not a direction and if it's not like an f then it's going to be a rotation and this is going to be I like this specification of the thing So here we So it's going to be we're going to be multiplying or we're going to be adding and so Dear to forward It's going to be nav to complex Float Dear to forward it's going to be ffm is equal to um M0 ince run is zip plus forward Ince But here we have to check is a Is a forward is f.  Otherwise, it's a rotation So this should be a Dear to move this should be a rot to change and this would be f2 So this is going to be is f Ince And it's going to be a f to move and this is going to be This is going to be to change Okay Now this is a very nicely put way of doing it now Let's see if it's correct. We haven't actually checked We've just been refactoring all day every day 9563 Seems to run pretty fast. Uh, let's see. That's not the right answer. Damn Oof Did we do something wrong in our refactorings?  We don't we don't get We don't get it correctly. Oops Uh, this is why you have to have tests, right when you refactor Let's see. We yeah, we should have checked if we had it correct, you know the tests output Okay, that's wrong. So if it's a direction Then Then it's then we change the VP by the direction to move It goes north Then it goes north goes south goes south east goes east where it goes west the left rotation right rotation Uh, no, wait, this is this is wrong. This should be F to move times VP I think that's the issue here. Yeah, now it's Now it's saying 2086 and 319. Yeah, now it's correct All right We finished day 12 And we did it all using nice complex math Uh, I like this I like this solution I like uh, because it's like it's like succinct. It's uh, you know, we didn't have to do any pairs or vectors or anything like that we just Kind of directly We kind of directly, um Fixed it we did we did it all directly, right? All right, and we did it, you know in 732 milliseconds for all of it And I mean that's not a bad That's not bad at all. Let's see. Let's see What like only the part two of the solution picks Not very time complex this task now exactly I think it's also, you know, because this is mostly about like Can you make it look nice? In the thing, you know, because like I don't think there's any shortcut here I don't think like okay. We did take a shortcut in the first one here But that's that's it, right That was it. That was like the shortcut we take took That we could just we could just move the north south first and then Use that directly Uh, but yeah, this is this is quite nice So first we we change here we change the Here we change the VP here we change the ship here we change the VP again Yeah, all right.  They always warm up first and make the machine warm Is yeah, I mean that's what I would assume it's like it's some like first It has to read the definitions and everything from the runtime system into the memory And then because that's like a couple of megabytes Like the runtime system the executable itself is like 80 megabytes compiled and it hasn't like load that and but you know, I I don't know because like when rust When rust people run it it goes fast Uh, but like I don't think they're doing time on the command line Like when I when they say we do it in a couple of microseconds. That's I think that's like after Reading all files from disk because like microsecond read times of files. It's just that's way too fast for me. You know All right, so Yeah, we did day 12 Uh get commit Let's just remove the int solution.  That's why I assume That's why I like this complex number of stuff because then we could just use you know times and plus and multiply To do all the rotations And it just works right away. It goes fast I like it. I like it timmy Hey And uh, you know, we could probably do this nicely by saying here Instead of saying float we would say this is a complex number And then we wouldn't have to Do so much here. You know, this would just be like this here is essentially Let's let's do here Uh Data change is going to be Let's do uh, if it's the waypoint complex float No, so this is going to be a deer And then it's going to be a rot complex float And it's going to be move complex float and then we just do deriving show Then write a function Taking all of these Here when we're where we're going to say, okay, this is going to be the function We just want to be so if I was like writing this actually it would be like A nav to change takes a nav and returns Change And now nav to change is going to be all of these right to change Uh, this is going to be these are all going to be deer Actually, I don't need these Deer applied to dollar Let me just answer one message Okay, uh nav to change then For these it's going to be uh, no this is going to be Rot and then finally It's going to be And now we don't have the Dag to rot function anymore. So we have to go get it To rot just going to be this Okay, now to change dag to rot Uh, then we just do here And we are just going to do So Changes is going to be map nav to change Naves We don't need these Uh, and then Chit-chit-chit-chit changes Uh, so changes is going to be a list of changes Change that was what obama said, right? Oh, okay. Yeah. Okay. Yeah. Yeah, sure I think you know for us we we could have dealt with non non rotation not like degree rotational stuff, you know So if if it is Rot of R Then it is vp plus. Uh, no if it is Deer d then we just say vp plus d If it is rot to no, so here we say if it is Rot R and then we just say vp R and if we say move m And it's gonna be ship M10cp Pretty nice, no Map nav to change naves This solution is pretty short Let's look at timmy's solution Yeah, I mean it's good kind of the same, right? Uh, but right direction. Okay. Yeah, this is nice To have direction as one thing and then Then you can kind of match on direction instead of yeah It's clever timmy very clever I see so now we have okay now we don't need these is dear So what I like about this is now we have no non total functions So we don't have your filter or anything, you know, oh we we do need dear here So we do it we do it for a solution one, right? Why we don't do it for anything else Which is nice Let's run again now solution two is like super short Um and runs quite fast And it just works out You know, I think we could rewrite this as a fold somehow by like encapsulating the state in like a pair And then it says pair to pair and then fold over the pair But you know, this is just fine. I think it's quite fine Let's uh, let's see Yeah, so I think this is quite nice quite this is for quite fast It's very detailed Uh, and the solutions themselves are kind of easily expressed, uh, which is nice All right, um, I think that's gonna be all for today. We did two days today get commit him day 12 refactored Refactor red push Yeah, that's gonna be all for today Things again for joining in I had a lot of fun doing this. I like doing complex numbers Because they you know, I know that works Got to use So timid solution is like, uh, I think this is a like a proper pattern Can you even see this? You know like where you Where you have, you know, you have two fields. So I had like one field Uh You know one field encapsulating the entire thing, but Timmy has the direction here Which means that later um He can define these a Functions on the direction itself And then he can like look at the direction here, you know Which is It's good It's good stuff timmy. Yeah, and exactly like because the Because for timmy He's just using pairs of ints and you know, luckily, you know, the changes are all pairs of ints So it all works out But we use floats because we're using complex numbers And you know, it interests is some floating point operation errors, but that's just because the default float in handschool is like 16 or something That is it's a weird choice, but you have double which is like oh like yeah float is like 32 and you have double which is 64 but uh Yeah, I pushed it and uh, thanks for joining in and uh, you know Look look in on the youtube channel. You want to see the recordings or on this channel And uh, join us tomorrow Five o'clock tomorrow. Uh, we're gonna be doing day 16 It's gonna be good And i'm still in quarantine so You know, this is great Great to have something to do quarantine. All right. See you all Tomorrow. Bye. Bye