Thanks for coming. I won't take it offense that people chose to stay at the trees note instead of getting here right on time I'm just kidding Yeah, I hope I didn't set up too much expectation for humor as far as with the video, you know It's easier to plan out ahead of time So, yeah, this is getting ready for automatic updates in Drupal core I'm Ted bowman a principal software engineer at the Drupal acceleration team at aquia One of the tech leads on automatic updates initiative and a layout builder and settings tray co-maintainer So automatic updates why did people most people came from the trees note? I just because I know we covered some of it in there Anybody not see the trees note Okay All right, so why is automatic updates important? So the overall maintenance of Drupal sites is high Of course, this is not going to solve that problem, but you know like completely but you know chipping away at that problem and a lot of sites don't apply security updates on time even Massively like the you know critical of critical security updates. It's usually, you know, like three weeks I think was like the quickest we have we got You know 80% of sites to use that and you know the exploit was probably like in one week so Yeah, it's I think we can just infer by that by for a lot of people that yet keeping up with security updates Especially is too hard And also composer has been a pain point for a lot of Drupal site builders and developers So I'm gonna go through a couple definitions Because oftentimes when I say automatic updates and then I show a form where somebody presses a button They say well, that's not automatic and I say, you know your dishwashers automatic, but you do have to press a button to start it So So manual update I'm considering you go to the terminal you run composer update. That's manual Even if you wrote a script to do that, I would still consider it manual Attended updates is basically you go to a form and you press a button and you update something Unattended update happens on Cron. You're not actually there And you could be asleep while this is happening. It's undetended Patch version update. So this is like going from nine three Ten to nine three eleven. These are mostly bug fixes. Usually I think usually are always no new features and Historically, or we try to be the lowest least disruptive on this type of update Security update does usually happen in a patch update, but Usually in a security window window, not always. So you kind of know they're coming up And then it usually contains only the security fix.  So Disruptive could be but also try to make it as least disruptive as possible by not putting a lot of other features in that security release Minor version update going from anything in nine three to anything in nine four And these are unscheduled six months releases and the Drupal project has a pretty good track record of Keeping on that schedule This does contain new features can be definitely can be more disruptive as far as like the history of Drupal eight and Drupal nine Then patch updates, but again try to keep it least disruptive as possible and then major version updates from Say nine anything in the nine to the ten up to to Drupal ten These are disruptive They remove deprecated API as we do try to make again try to make the process as simple as possible But for now, we're not even really talking about this as in scope for the automatic updates module It's not really a limitation of the tech. It's more a limitation of like the policy of like Yeah, things could go very bad If you if we get it wrong So current status we're beta testing the contrib module. We've had beta testers come through Drupal con It's gone pretty well at two thirty. I'm doing a buff and then after that I'll be in the In the contrib space or the contribution room, but two thirty. There's a buff We're gonna try to get as many people going starting as possible We have a script starting from nothing or you can try it on your existing site. So If you can get to the terminal on your site, then we can probably test this if you're going to the first time Contribution area and this is something that you'd like to contribute to as far as testing They will set you up with like Git pod So you don't necessarily if you don't know how to get to the terminal right now They can help you set up environment where you could test this and If you're watching this later There is on the project page. There's a link to the instructions to beta test So as long as we're beta testing that link will be there and I'm sure I'll remove it. It's the day. We're not so for sure Okay, so let's look at the features. So again patch version updates is the thing we're going to support right out of the box and So this is again going say from something in nine three to nine four and So nine three One in this case to nine three twelve So an example of minor version support like what you would basically be able to get away with without doing any kind of manual update is nine to zero came out in June 2021 or Yeah, and then nine three was released in December and then the next June nine four was released And then nine to support in so that would be like at that point You would need to do a manual update if we only support patch versions updates So of course if you wanted to get to nine three before that you would have to do manual But if you're okay with the bug and security fix or maybe it's just security fixes for a year Then you could stay on the nine two branch and we would Automatically update you So let's look at the update process. I am not going to play the video that we played For the Dries note, but generally you're shown a form You select to update it downloads the update. What's happening actually is that, you know, it's copying your site everything In your code base that we think is sort of composer Managed and we exclude a bunch of stuff like your public files and your private files because again that could be You know huge to copy over and composer doesn't care about those if you're using like a SQL like database we skip that and there's an extension system where you can exclude other stuff that we don't know about that Is not considered your code base. So once that's copied over Behind the scenes we run composer on it and we say get to your next version You're shown the update form. You can cancel or continue By default it's going to put your site in the maintenance mode unless you uncheck that We really recommend you do it in maintenance mode because Somebody's hitting your site while you're updating. There's not much we can do in a single environment from making that work well so You put the site in maintenance mode and it copies the staged update back to your site and Then you know you go to your page and see you updated to whatever the latest version is Okay, so we're going to look at some actual behind-the-scenes footage of like how that works Okay, so you have a Drupal 9 3 11 site and you have visitors coming to your site and then We make a copy of 9 3 11 your code base and we put it in a temporary spot and then composer comes down and we ask composer to update it to 9 3 12 and Then we put your site in maintenance mode very briefly We copy it back over now your main site is on 9 3 12 what we call your active site and Then we take your site out of maintenance mode and then we destroy this staged update because you don't need it any longer So at that point we'll talk about sort of the limitations of this system later But your site has been updated via composer so your composer Json your composer lock has been updated I guess your composer Yeah, your composer Json in this case would be updated So unattended updates you can either select to do all supported patch updates meaning like Everything that comes out. We would update when Cron when Cron detects it or Only security updates if you do only security updates and it's your responsibility to go to the form To make sure that you're ready for that security update. We're not going to jump you may Cron is intended for one patch release at a time So if you leave it on it will for all supported updates It will keep you up to date if you fall behind because you're only doing security updates Basically when a window is coming up Earlier in the week you should probably go to the form update to the latest minor or the latest patch version And then you'd be ready for that security update. We do have a warning system to say hey, you know, you're falling behind You know if a patch if a security comes out right now you would not be ready This currently is functional, but disabled because We are working on and the DA working on this thing called the update framework, which is a way to sign packages it's a cloud it's a sort of widely used framework for securing update systems and it's used by The best example is there's like a automotive Linux that uses this framework So not the exact code, but it's basically a protocol that you implement that protects you against a bunch of different types of attacks So automotive Linux uses this to update, you know cars over over the air But you know, we wrote the functionality into the module. It's working. We tested it and then we disabled it until On Drupal.org. They're implementing the server side because it needs a server side to get the signed packages and the information about the releases So that's in beta testing now on Drupal.org We wrote a composer plug-in that goes on the client side that basically interrupts any Requests to get things that are in the Drupal namespace and says, okay, I need to make sure this is signed correctly I need to make sure that there's not say like a freeze attack basically somebody trying to convince you that there's not an update So I don't know there's like five major types of Security tax that it protects against and if all that is good, then it downloads a directory to like Directory so it's not it is through composer, but composer has sort of an API for you to Check the updates after it's Before and after to say, okay, I need to make sure this is valid through my signing system So it provides update readiness checks and these are basically periodically checking to say hey If an update comes tomorrow, are you going to be able to apply it? So you don't want to be surprised on that kind of thing so This is an example of the status report on the status report This is one where you haven't run the current database updates needed from however you updated last time whether it was automatic or manually So this one's you're like, hey, we're not going to attempt to update unless you do this So there's a bunch of stuff like Well, we're getting at the limitations of the system But it basically checks the limitations of the system and make sure that you fit them And if you have permissions to do updates, it really annoys you and says well It annoys you on every admin page if you're not up to date and you have cron updates enabled Because basically you're telling us if you have cron updates enabled that hey I want this to be responsible for my security updates and If we know that you are not in a current state will work We want to let you know that that is the case so not every obviously not every site or every admin would see this but people with permissions would because We don't want to give you a false secure since the security that when a security update comes that you would be able to Apply it. So this is sort of to make sure Once you're set up, this should not happen really you should not see these areas But if something happens, you need to get out of compliance with this system, we're definitely gonna let you know So there's also another part where we have modules and theme updates and like I said in the trees note This is a sort of still under development. It does work, but we're still working on the validation System for this so we'll go in later about how the validation system works under the hood But basically we're writing the individual validators now to make sure that this is completely secure but Basically, it works right now if if you didn't try to hack it, but we're trying to protect it against if you tried to hack it So yeah, basically shows you a list of all your modules and themes to update So let's go into the limitations and requirements of the system so You need a writable file system So if you're gonna update your code base that means writing to the file system So there's really no way to get around That limitation Obviously, this is gonna make it not work on some, you know Drupal specific hosting In particular host like production hostings. They protect it for good reasons against it being writable. So Using this in production will maybe target the long tail sites without full-time devs and maybe that are running on lower fire hosting or say like a VPS something where they can sort of where the either the hosting provider makes it writable or they're setting up something that they make it writable So possible workarounds to make it work to use the module even though you're in a production non writable system is you know, you could use it in as a sort of composer replacement locally and Basically replace the part where you would usually go to the command line via going to the browser And then deploy as you usually would You could do it in custom writable update environments. So basically if you have a right protected hosting hosting a lot of Some hosting providers that have that right protected will actually have different environments that have different settings And so you could host you could and it's often used for like merge requests, right? So you have a merge request that you might want to review That is not your production site. So it's maybe not locked down as much So you could run an update there and then merge in the same way you would do a merge request Update event subscribers that we have that we'll go into later. You could actually make the code base to very temporarily writable This is theoretical. I don't know. There's no host since the module is new There's nobody's actually doing this yet, but theoretically that would be possible Or you could rely on the cron updater and have the cron updated or run as a privilege user That actually does have access to write to the file system Composer to is a requirement. There are a lot of improvements for memory usage in Composer to so basically It would allow it allows the up the composer operations to happen in one web request And also with the memory limitation settle that sort of a more broad range of hosting has You know technically it probably would be possible in Composer one for some hosting provider environments But you don't really want to get this wrong. So I mean Composer to is I don't know when Composer ones out of support, but Composer choose been out for a while And also it has API changes that make it easier for us to verify packages Through the the signing that I was talking about earlier. You probably could do it in Composer one But the APIs are just better in Composer to to do it Limitation it's not get or version control aware. So it's not going to commit code After the update so you have to take this into effect. Obviously, this is going to affect a lot of people do it on Production not everybody not everybody follows strict version cool control requirements But you know get is really inversion control is really developer dependent I'm sure there'll be contrib stuff that will start to take this into account Like I said, we do have an event system that somebody could write a get integration for this But yeah, but out of the box, it's not in scope for the module right now it doesn't support multi-site and the reason is Say if you did enable this on production, you don't really there's not a good locking system in Drupal to lock basically on multiple sites in one code base so We locked down updates so multiple users can't try to update Drupal at one time But if you have a multi-site that's much trickier to do because people could be on different databases and we can't say hey Somebody on site X is trying to update on site Y. You cannot Obviously if we're running this locally If you're using it as a local development tool to get around using composer That's really not a concern because you know other people aren't hitting sites So we'll probably put an override in settings dot PHP. We really can't put the override I think through the UI because then that defeats the purpose if you can turn it on on one site Through the UI and other sites don't know about it then you're kind of yeah kind of eats a purpose Limitations so right now database updates are not supported through the UI Sorry, not through the Through unattended cron updates because basically database updates can go very badly And if you're not around there to see that it went badly then then it's worse. So basically We detect in the staged environment we look and say okay Is there likely a database update because predicting database updates without bootstrapping Drupal is a little bit Difficult so we kind of veer on the side of like we could have some false positives where we thought there was gonna be a database update On your site and there's not but I'm pretty sure the system We have is will be very very low possibility that we're gonna do a false negative where we say okay cool There's no database update. Let's run this during cron So in that case you would just need to go to the form for that particular one security updates are less likely to have database updates though that they're not I don't think that's Policy that they wouldn't But they're less likely to And in the future if this is in Drupal 10 that would I think would be a factor in pushing out a security update if we know If we know it'll work via cron so people automatically updated to it if we don't put any kind of database update into it Then we would you know, I think people would try very hard to make security updates work that way So let's talk about using this in a production environment versus development environment So pros of using a production environment is it's that you know very simple way to keep your site up to date Cons obviously what we talked about it's not version control aware Needs a fightable right a writable file system and the stage update can't be completely bootstrapped so you can't actually go Browsing through your site and say okay everything looks good on this new version So this is something if you're using a hosting environment where you have multiple environments, obviously you can do an update in In another environment test it out So you could put you could potentially like I said use it that way But it'd be your responsibility from getting it from one environment to the other Development environment Pros is you don't have to deal with composer directly and once project browser is in then also for installing modules You won't have to use it directly and If you're using development environment, you can easily do whatever you do now to get your update in diversion control and You can fully test the update in the local environment so Using a development environment could be like a local host on your laptop or it could be Something that you have a special environment. That's not production Okay, so Let's look at getting Likely core roadmap, so this is not certain, but this is sort of what I Would like and then we've talked with the release managers as far as like how this might get into Drupal core So not certain but I think likely So each sort of step on how we get into the core depends on probably how the previous step went Obviously if we do patch releases and it's something I don't know it's not gonna be horrible But if something horrible happened, we're not gonna do minor releases right after that minor updates. So And I think all of this depends on the beta testing now And when the the stable module is contrib getting people to use it in contrib first Because auto updates is not something you want to test out in Drupal core first like ship it out to hundreds of thousands in site and say Okay, now we're gonna auto update also the way that Drupal's Experimental module system works or policy works is that it's harder to update something It's harder to test an updater using the experimental module process because if the experimental module in core is Alpha level stability. We actually take it out of the releases. You can still test it if you get clone But you can't test an updater real this kind of updater in a git clone. It has to be through a composer project so So first step would be patch level core updates. So basically the main functionality of the contrib module right now and again, that would get you one year with Without needing to do a manual update if you're okay with not being on the latest minor and this would be attended or unattended updates And this would of course depend on us getting the update framework integration done on Drupal.org After that probably minor core updates. I Think probably we should do minor core updates first via the form minor core updates are I think almost always going to have some sort of schema update or database update so unless we figure out that problem of running those updates via Cron then this is probably only gonna be on the form so but you know if you're doing if we support minor updates via the form That does give you potentially theoretically multiple years of without having to do a full update So it once we get minor updates in hopefully sometime in Drupal 10, then you won't have to do a manual update until Drupal 11 and then I think That I would hope we could get module in theme updates into Drupal core and really like Technically, it's not any harder really. I mean it's probably a little bit harder because you have to do with conflicts between contrib modules but It's really the more of the case that core is very careful about backwards Compatibility breaks about what goes in a patch release and what goes in a minor release and what goes in a major release There is not an ecosystem-wide policy In contrib to say, okay, we're all definitely not remove any API in a patch release I mean, I'm sure most people try not to but I'm sure people do sometimes so contrib updates can probably be even on a Patch release version update. You can't be sure that it won't be more disruptive so Well, the contrib module will support it and we'll test it out. We'll see how it goes. Maybe it's maybe I'm being Maybe I'm more worried than I need to be about how contrib module Theme and and module updates will be but I think we want to be very careful about putting that into core And it may need some sort of like policy change like maybe a release would opt-in to okay Yes, this is something that I'm saying is safe to automatically update even even during cron or something like that Because I think most people who are making releases now to a module. They they're not thinking Okay, somebody is just going to this is just going to apply and if nobody's ever gonna see it But that or not I can see it till you wake up in the morning, right? so if Drupal core has automatic updates in for itself, then obviously we're thinking about that when we release a patch version That is this something that could run during our cron update or not be disruptive So we'll have to see how that goes. I'm I Think it would be great to have this because basically then all your updating For for people who don't like to use composer directly can be done without using composer directly So let's take a look under the hood and basically this sort of section is okay If you're a developer and you want to figure out like how to integrate into this new system. This is what we're going into now So this is on three levels automatic updates package manager and composer stager And eventually this will be the top part will be split between automatic updates and project browser We'll both be using this lower level package manager and composer stager Project browser is not doing that yet and eventually any contrib module that wants to leverage our composer API or our API for making composer operations could do that So let's go back to the three Sort of level here and let's talk about composer stager. This is a PHP library It's not Drupal specific and it basically is job is to run composer operations in a staged copy of your code base It's not, you know necessarily a site. It's any composer project This is probably the least likely thing you would have to deal with as a developer It either uses a custom file copy or to do the file copying back and forth or it uses our sync if you have that on your system So then the next level up. Let's look at package manager This is an API Drupal only module meaning like no UI and it performs staged composer updates and but it can update any composer package It's not limited to updating Drupal modules or themes or Drupal core itself so if we look at the Sort of screen of what we showed the update looking like before for For automatic updates basically you kind of swap out the thing you're updating Instead of Drupal core you're updating any composer package as far as package manager is concerned and then also the version constraints package manager doesn't have the idea of like, okay, I'm going to restrict you to patch or Or minor or major updates all that policy stuff is in automatic updates and eventually Project browser would have its own policy. So it also doesn't do any checking of Automatic updates is the part that actually checks the update XML on Drupal.org and says, okay, is this a secure supported release? package manager think of just a generic Updater, but with this staged ability and the ability to do certain checks before it actually applies it So the update lifecycle according to package manager is create creates that staged copy require This can be multiple operations for Drupal core. We're saying, you know require Drupal core and a couple other Like the scaffold and a couple of things that come with Drupal core Apply is to apply those changes back to your site and then destroy is destroy the database destroy the copied code base And then during that lifecycle, we have events that are fired off before and after each event and All of the pre-events can flag errors to stop the operation. So I'll give some examples So we have a pending updates validator Inside package manager that says it listens to the pre-create event and says, you know If you have any pending database updates, then I am going to say you can't start an update So it listens to pre-create it flags an error if it finds any pending updates So this would be anybody who's using package manager. We put this restriction on it for now We have one called the lock file validator and this listens to pre-create and it stores a hash of the active Composer lock. So basically it looks at your site now It says, let me store the status of your current composer lock and then on the pre-require and Pre-apply events it'll check that hash and says okay has this lock file changed at all So the active lock file and it basically the idea is you don't want to stage a composer operation Then somebody else to the command line run another composer operation and now now you're going to copy your stage Code base back to your active when it doesn't know that something has changed. So basically it locks down your site From it locks down. It doesn't prevent you from doing other composer operations safe from the command line But if you choose to do that, it won't allow you to apply that update Because basically at that point we don't we don't know what you just did So just this is an example of how a custom module could listen to multiple events to implement more complex logic So package manager provides safeguards so any module that uses package manager directly Either automatic updates or project browser or your custom module We prevent conflicting operations basically there can only be one package manager operation going on at a time So we have an ownership idea of once you start an update your session or user owns that and you have to claim it on every Request so that nobody else can say okay. I'm going to start Automatic updates can't start updating Drupal core and then project browser says well somebody else on project browser Who doesn't know you're updating Drupal core can start to? Update can start to install modules and then somehow we try to resolve that together So any module that uses package manager will sort of automatically get into that and not have to think about it at all Just basically claim it try to claim the update stage And it'll tell you whether it's available or not And it also checks all the basic requirements. So the idea is you could write You could write it it's not too Hard to write PHP library that does this composer operations But package manager hopefully being a common API will be able to make a bunch of different modules that want to use This not conflict with each other So the events that we went over is sort of allow having custom logic And sort of a custom experience so you could tap into these events to make your own restrictions For automatic updates say or project browser So this is a example module. I'm going to go through called peak time update preventer In the basic idea here is that we want to prevent any package manager operation. So that would include automatic updates or Installing modules during one of our peak times if say we're an e-commerce site And we know we're having a big sale or it's a event website and while the event is going on We don't want somebody updating it. So all we have to do is Set a dependency on package manager and then we're going to create a file called peak time validator And this is just a service. Let me see if I get to the service file. I guess I didn't include the service file But it's a service file. It's an event subscriber And the meat of it is basically we tell it which events who want to subscribe subscribe to and this is pre-create or Pre-apply because it could be we don't want them to start. So that's pre-create. So we're going to start We're going to check peak time at start But also maybe you started an update and you waited six hours and you're oh now I'm going to apply it We want to check it apply. So we listen to pre-create and pre-apply and all we do is we call a function Is peak time? That's our custom code. You can see what it is here So it always may or may not be peak time. You never know But we call peak time if it returns true then we just add an error and say sorry, it's peak time You cannot update so basically You know, it's pretty simple code to sort of customize the update experience to what you need and Then we are going to look at the Ted bow module preventer. So this is another Custom module. So this is a little more complex, but we actually only listen to one event which is the Pre-apply event. So basically right before you try to apply the update. We're going to check some stuff So we have some helper classes. So first what we're going to do is we're going to get the stage So the stage is the thing that's doing the updater doing the updates and then we're going to get the active Composer so what's on your currently running site and then the staged composer and We're going to compare those by calling get packages not in the active. So say, okay You know, tell me all the packages that are about to be applied that I did not have before and then we just loop through them and The logic basically on the bottom there where you're looking through is just This is from the composer API. It has an object for like getting information about packages And we're going to see if any of the packages start with Ted bow slash and if they do We're not going to allow you to them install because we don't trust the developer or something like that so basically you know it's our our API stuff or helper modules is the getting the active composer and the comparing Comparing what's in one and what's not in the other but The other once you get the packages. This is composers API. So this is not something that we wrote. This is something that's you know Been around for a while So basically you have information about your composer in active and staged So you can really sort of find grain. We actually in the core update The automatic updates we actually do this type of comparison to make sure that Somehow inadvertently when you're updating core a Contrib module or theme didn't get updated along the process because we don't support that right now and we show you an error So but you could check any sort of they're also one of the examples I was going to put up but it's a little more complex is there's a number of PHP libraries that help you check security releases in any PHP project and You could check that to basically say okay did I act any of my vendor stuff that I updated not the Drupal stuff But any vendor stuff it are there known security risks in that So automatic updates as far as the API level it really just provides the readiness check event and Which we're talking about the warnings to make sure that you're gonna be ready to update Automatic updates can be customized a lot, but really you're just using the package manager API To customize the automatic updates experience and how you do that is basically when you respond to any vent event This is the pre-create event. You just say hey get me the stage Which is the thing that's doing the updating and then you check to see what class it is in this case the updated class Is the one that we have from Drupal core This is targeting project browser So you check okay, I want certain logic if we're using project browser Important note. This is not real yet. There's not an actual project browser installer, but you know there will be one day So before we get to questions just want to remind you about the beta testing 2 30 p.m. Is a bop and you know come through basically we have a script That can go through and do the basic Drupal core updates But if you have more if you have more time we can go through and do like test out the extension updating We can test more stuff like switching to our sync on your system to see how that works And then also get involved if you want to get involved with the project We have a slack which is pound auto updates on Drupal slack You can ping me there and we have issues in the queue if anybody's interested, but so now let's go with questions I'm gonna take a couple minutes later because we got trees bump me a little bit. So yes Yeah, so right now that's a Yeah, so I think the question was Contrib that is not enabled as far as Drupal is concerned but is on the yeah So basically we're leveraging the update module to determine whether stuff is secure or not And so basically the update module itself and core has a setting that says check for only installed or check for For things that are in my code base So if you have that turned on to check for stuff that's in your code base, then then we'll yeah, we'll let you update it The droop for checking if there's an update it relies on Drupal's XML because not package manager But automatic updates does because composer doesn't know about security Or unsupported as far as Drupal projects are concerned. Yeah Yeah, so you could so the question was can you tap in for like CI to actually run testing or something like that? so Once the update is applied. No, there's not a rollback feature, but in the staged version you could potentially write something that and that Does a pre-apply? listens to pre-apply and actually does whatever you want so running tests you could do in that case and you could You could can't you could destroy the stage first and if your tests don't Don't complete or aren't don't pass But after it's applied. No, there's not a rollback system after you apply the update so the The the actual database updates run after you apply because yeah, we don't We don't know how large a Drupal database is so like copying it over and saying okay Let's run the database updates first Though that being said if you know how big your database is or if you want to make a contrib module that does copy it over and bootstrap It should be possible though. You would also have to be responsible for moving any stuff That's not Consider that we don't consider your code base So if you need public files or private files over there, you'd be responsible for making sure they're not excluded There's an API for adding exclusions so So yeah, so theoretically you could do that, but that would definitely be custom code You could so so basically summarize you could run tests and then you could what was the other Thing that I just Roll back You can't roll back after it's applied, but you can you can cancel basically.  Yeah Yeah moving. Yeah, yeah Yeah, so you can do that you can actually access composer stage or Directly via PHP or I think it comes with the symphony console tool though if you're on the terminal the whole staging is not as I Don't know it's not as convenient. I mean doesn't give you as much features or not a use for it as much. I guess Yeah Yeah, yeah, so the question was will it be updating composer lock or he's just confirming that it would and yeah It will be so it basically it is doing a composer require update on your code base So it is as if you did it in the as far as you know, if you looked and get and did a you know get diff Whatever if you you know if you commit everything or if you just commit the composer files if you would you would see the same thing So usually yeah, so config files if they changed So my understanding is is like an update The like usually a module would use the update hooks I think to ensure that goes correctly So we would detect that During we have it we would detect that if it's a cron update and say actually we're not gonna allow you to do that during Cron so unattended because we don't there's not a system right now to say like this is Probably safe, you know, this probably is not a long-running operation. There's nothing that would tell us that on the API level so Through the form Right now if you went through the form and did the update or it's a okay We've detected that in the stage copy. It would say we've detected updates Just be aware you're gonna have to we're gonna reroute you to the update page the database update to trigger it So at that point you could be like yeah, it's not a good time for me to do that and back out In cron we will detect it and just say you have to do it via the form right now, we don't have the notification, but There before stable there would be like an email notification that says hey, we tried to update via cron, but we detected Configure update config schema changes or database update changes. You'll have to do this via the form Does that answer question If you're going through environments, right from Yeah, this won't deal with that because it's presuming you're in one environment Yeah Yeah, yeah, oh if the patch fails like through the Sea Wiggins patch composer plug-in So right now, I think we have a detection in there We have a validator that just checks. I'm not sure if it's committed Committed yet that basically makes sure that you have the setting in that plug-in to say fail There's a setting for that composer plug-in that says fail if a patch doesn't apply So it doesn't silently just like say cool you updated So I think the only integration we have right now I'm not positive that we committed that change is that we just say you have to have that setting to say that it fails and then basically We don't need to do any extra logic if the composer operation would fail itself and would let you know yeah Yeah So right now we kind of feed you the composer information directly We have a lot of verbose error messages if it's not directly from composer, but The problem is right now that I'm aware of like I think require an update You can't do dash dash format JSON, which would be great if you could it would be much easier for the parse So we're gonna definitely file an issue with the composer to see if it is possible to make those operations work with that format Because then we could actually give you more useful information right now We besides showing you it and knowing at what point in the process it happened. There's not much we can tell you Yeah Other questions Yeah Yeah, so if the versions pinned our updater will actually pen it to a different version at least core if you have something I mean we're do we do all with the with all dependencies And that we flag that so that would bump the dependencies. I'm pretty sure But say if it I'm trying to think when in case wouldn't it wouldn't work So right now the way that it works and we'd sort of got Feedback from the composer initiative is we pen to exact versions And that's I think the nature of like The updater itself, you know needing you know, we're telling you through the UI. This is the exact version We're going through we're not you know, we're not we're not acceptable in a range So we do pen to exact versions so as long as like There's like three lines in the code where this actually happened so it's pretty easy to see like oh, this is the composer operation that happens, but it's like a We had to do a composer up require and then it with no updates and then it then an update So but we there was some bug in composer. It could be fixed right now in certain cases, but It will pin you to whatever version that that it's saying it's updating you to for Drupal core But that also could be changed if if It could be changed it's a little harder to change it You could by writing your own updater, which is not that hard But also if we get feedback as far as like the preferred way to do it. We definitely looking for more input Any other questions The actual updater itself There is Now it's we make it whatever Drupal nines PHP version is The core version would we would tie to obviously to what Drupal core is right now Yeah, right now. We're just looking at the current supported versions of Drupal 9 I forget what it is 7 3 and and making it compatible with that But that will bump like he said for Drupal 10 it'll be 8.1 I think yeah Anything else? Thanks for coming. So boff testing 230. Thanks


Okay, this is something we've been looking forward to for a very long time. We decided to plan one of the keynotes at the conference to be a keynote with a difference. So I'd like to introduce you to Taskine Adam, Judith Petta, and Caroline Kuhn. These three women are from the global south, but far beyond that they are women who are engaged deeply with questions of peripheries, global versus local tensions and possibilities, and inequality, both within contexts and across contexts. And Laura and I both feel that this doctoral work that all of these three scholars are engaged in, they're doing this in ways that illuminate key issues around open education for us all. So what we've done is we've structured this keynote panel in a way so that we're going to ask each of the panelists to share a little bit about themselves and their work, and then we'll open up for questions so that you can ask questions individually and together. But really briefly, before we ask you to introduce yourselves, we would like to explain, as we do with all the keynotes, why we invited each of you. So Taskine Adam started her professional life as an engineer, founding projects and a startup. She changed tack, however, and her current work is rooted in a conviction that historical injustices, cultural imposition, and economic dependence play a pivotal role in education. Judith Petta has a background in sustainable human development. She works as a lecturer and a mentor, and one of her many goals is changing the lives of girls in Kenya through education. And finally, Caroline Kuhn has been a teacher for her entire adult life in first-name mathematics, more recently in educational technology and sociology. And she is motivated in everything she does by a passion for combating structural inequality. So welcome to all of you. We're so delighted that you could be here for the keynote. And we'd like to start by asking you to please introduce yourselves. Thank you so much, Catherine and Laura. So if any of you came to my presentation earlier, I talked about the embodiment of knowledge. And in many ways, my research is an embodiment of my life experiences, firstly, growing up with the inequalities in South Africa, and then being a student at the elite university of Cambridge. So my research intersects with the conference theme at two levels. So the first one is at a philosophical level, where I talk about digital neocolonialism and MOOCs. And so I define digital neocolonialism as a colonization of online space by hegemonic powers, which could be corporates or countries, as a means of indirect control over marginalized groups or countries. And the second angle is something that's much more practical, where I look at building an inclusive framework for online education that draws on theories of decolonization and social justice. That's linked to my work in South Africa, my fieldwork in South Africa. I'm from Kenya. I'm passionate on the issues of improving quality education among the rural dwellers. Personally, I grew up in the rural, in the village lifestyle. In the rural, we have a lot of challenges, a lot of differentiations. And the first time I saw electricity, when I came to the United Kingdom, to the main city, so there's no power, there's no electricity, and therefore there is no internet. But life has to continue. Education must be attained. You like it or not, there is nothing you can do with education, which is power. So I attained all my education achievements through chances. From well wishes, because of my background, growing up as an orphan was not very easy. But I am where I am because I had the passion to ensure that people attain quality education that is going to provide social transformation, of course, making people live decent lives. My PhD study is very related to the theme of this conference, differentiation in the youths and access to open educational resources. And this is within three countries in Africa, Kenya, Ghana, and South Africa. And this conference is very important for me because I'm going to share with you on how we can enhance quality education through equity, inclusion, and diversity. And I am Caroline Kuhn. Thank you for this invitation. It's incredible for all of us. So I was born in Venezuela, but I have German parents. And in Venezuela, having German parents and having a German upbringing is a privilege by default. I think that made me very, very uncomfortable. I never felt I was in the place where I wanted to be. And that inspired me always to, I think, to pursue what I could in order to see how I could do anything for that inequality where I grew in Venezuela. It's a very unequal country. That same inequality and that same really unevenness in society brought me then to Europe, back to my German roots, I would say. And very funnily enough here in the UK, well, not here, but in the UK, I engaged in my research in the same issue, a bit different, but how can we raise students' voice? How can we hear to these kind of marginalized voices that little people pay attention to? And to whatever conference I go, there is very little always done a wrap students voice. So I think that my values just they are, they don't have frontier. And so I think with that, I end this first part. Thanks so much for that. Can you each tell us about some of the challenges that you have experienced and faced? Okay. So in my research, I'm challenging whether openness is innately and unquestionably good or unquestionably beneficial. So one of the main concerns for me in terms of openness is that in its well-intentioned philanthropic attempts to strive for universal free education to all parts of the globe, we often assume a one-size-fits-all model to diverse populations from different world views and different material contexts. And this can actually amplify injustices because the producers of online content actually lie predominantly in the West and the global saw they're seen mainly as recipients and they don't have the financial means to become producers of content. So this leads to something that's quite foundational in my PhD and that is placing open education historically. So by this I'm referring to the historical imbalances that are embedded in education systems and how they are now carried over and amplified in online open education. So often when we try to fix problems such as lack of diversity online without actually reflecting on how these imbalances came to be and how they continue to impact us. So we actually end up addressing the symptoms rather than the causes. So when I'm talking about these injustices, I'm not just talking about the material injustices such as lack of access to resources. But what I'm talking about is epistemic injustices such as what counts as knowledge and whose knowledge counts. And here I would echo the sentiments of Jan Derry when she highlights that while we are continuously improving our online pedagogies, little question is given to the question of knowledge, meaning our epistemologies. And this is what I want to bring to the forefront of openness. Now looking at open online education production such as a heat map produced by Aras, Suzanne and Len, they really highlight the inequalities of open educational publications. And these maps are crucial in highlighting inter-country inequalities. However, we really have to be wary of the information that these maps hide. And as the authors allude to, many of the publications come from just a handful of institutes within these countries and they don't actually represent the thoughts and views and practices of the country in general. Now adding to this, we often fool ourselves into thinking that if we have representatives from many countries, like the panel right now, we have included diverse voices. But this is actually not true because in the age of globalization, we have elite and well-educated in all countries, just as we have marginalized voices in the US. So what I'm really trying to say is we need to look at inter-country divisions in class as well. And we need to focus on including marginalized voices on their terms. And that is something I'll get to in a bit. I'm challenging the fact that people normally assume Africa as a country. Indeed, Africa is not a country. There is a lot of differences between the African countries that we really have to understand. And the openness has not embraced differentiation among African countries. And in fact, focusing on the universities that we have, we do not practice similar educational systems. They are very different. The focus to any curriculum is very different. The approach to research is very different. And therefore we cannot just assume there is no universal understanding of openness in all the African countries. And indeed, such barriers that we experience like the barrier to legality, the barriers to access, barriers to use and reuse. All this gives us an indication that African countries are not the same. While these barriers exist, how then can the uses who come from the global south, go beyond just reading and using the resources that are out there for their use? How then can we rebuild and also adapt these resources to help us in solving our local problems, identifying our local solutions to our local problems? And just to put you in context, my context is a very small sample of 20 students. And so it's just to, yeah, that you're aware that what I'm talking is in that context. So the question is, what does open look like in my context, which is a higher education institution in the UK? And it's really a fantasy. Students wanting to engage with digital practices is not enough. I think that there is a need to look deeper and what is really constraining that. And four things came out of my research. One of them is the conflicting emotions, anxiety, stress, not knowing what to do, uncertainty. And so those learning spaces are spaces of struggle more than any other thing. Technological infrastructure. So how do we go to these new tools? How do we speak these new languages? How do we embrace new roles and new norms? How do we communicate? What's sharing? How do we do that? All of that is a constraint. And necessarily, they know how to overcome that. We know from research that students have three ways in which they can approach learning. Normally, it's surface learning what they do, strategic if we are very lucky. And in a way that is a problem when you want them to dig deeper and to explore and have an explorative mindset is not there. It's not obvious. And it doesn't happen all the time. And to finish with, I would say, and the talk this morning couldn't be better for our talk this afternoon. We are really the institutional culture and the institution is in a jail, I think, in this kind of marketization. I don't know how to say it, or as it's best. The way in which we would need a culture that supports embedding, modeling these open practices is really difficult. We I think we don't have we don't have it. So yeah, that's my context. Thank you. One of the things that Laura and I wanted to ask each of you was your work is arising in very different contexts, geographically the granularity of the work as you talked about Caroline. So but you're all bring forward this notion of the praxis of openness. So we're just wanted to ask you to highlight how you're doing that in your work specifically and maybe really highlight what you're doing in your doctoral research. Um, so in responding to the challenges that I raised earlier about trying to include more local, more nuanced voices into into openness, the question then becomes how so how do we include how do you recenter local in this big expansive place of openness, and where there are millions of locals to center and privilege. So in answering this, I've drawn up the areas of social justice, decolonization and liberation. And I particularly focus on the work of Jonathan Johnson. So what I do here is I draw parallels between his work in decolonization of education in South Africa, and I've mapped it onto the online space. So in the first movement, we talk about this absolute movement to replace all things Western and colonial for with with local ones, for example, African knowledge systems in order to rebuild one's own knowledge base. Now, such a movement is crucial in establishing, developing and strengthening marginalized worldviews. However, it can also lead to essentialism and nativism. And as Cheryl mentioned earlier, sort of throwing out the baby with the barb water. Now, in the second movement, it's slightly different in terms of recentering one's education around local knowledges, such as Afrocentric knowledge systems, while still acknowledging other models relative to it. So this suggestion is much more useful in the online, open online education space, where if, for example, a move comes from Brazil, it can embody a Brazilian worldview within that.  However, the question here then becomes this idea of this romanticization of the local and indigenous knowledge as something that is beyond critique. So in the last model that I look at is that looking at knowledge more as something entangled in a way that is not regional, but something that is traveling across space and through time. So in this type of model, there's more of an emphasis on the concept of the principle rather than the region that it's from. And in this type of model, a diverse participant who is actually the feature of the model rather than the challenge. Additionally, this type of model will produce room for critical engagement and for dialogical learning, where ideas can be shared inter-cultury and evolve. However, what is really crucial and what is important is that the first and second movements need to happen first before we can get to the step. Because it's important for these marginalized voices to first be acknowledged and established before we can take them to a stage of critical engagement. And this is the concept that Gayatri Spavak calls strategic essentialism, where the one first privileges the marginalized voices before they come into engagement with others. So for me, if dialogue is futile, if we don't actually have a plurality of voices existing in the first place, and how I see it is that it's a three-stage process rather than alternatives. So another crucial point on a different note that I want to make is that we need to understand to what extent local knowledges and pedagogies can want to be open. And here, while we need to look at more, or while we need more local and indigenous knowledges online, I also want to draw attention to the idea of adverse incorporation, where certain ways of knowing, certain epistemologies don't actually fit into the rubrics of openness at all. As a, for example, I want to draw your attention to Marabitul Hajj, who is a Mauritanian scholar, Islamic scholar, who to me represents this pre-modern Islamic pedagogy. Now, in this type of, in this epistemological foundation, it's entirely different where just sitting with the teacher, being in their presence, following them around in their daily life is counted as valuable learning because one would be blessed by their spiritual presence. And here, the connection between the student and the teacher is one of the heart and the soul and not just the mind. The teacher is not just the source of knowledge, nor are they the facilitator of knowledge. They are the embodiment of knowledge. And who the teacher is is much more valuable than what or how they teach, how they teach. And so now my question to you is, how do we even begin to bring such pedagogies into openness? The foremost that I would propose is the fact that we need to embrace differences. There is power in differential. When we all accept and appreciate that we belong and they belong, and we are one, then I believe we are moving towards achieving the strength of openness. Now, fairness is a value that we cannot ignore irrespective of where you start from. And acknowledging the fact that individual levels of support are needed at any level. And remember the fact that we are from different backgrounds, brought up differently, our beliefs and practices are also different. And therefore, when we come up with support, we need to understand what form of support do I provide to whom and how do I provide this support? Are there strings attached? We need open and free support that are not binding people. Now, integration of open educational resources and cognitive justice in teaching and learning is a powerful tool to enhance openness. Now, I will talk about cognitive justice. I believe to the fact that knowledge rests in people. And when people are properly understood and respected, you get that knowledge for free. And you get the best. And when we have the best, and you include them in the processes of coming up with solutions, then we are going to respond or come up with policies that are responding directly to particular or specific problems. Now, equal collaboration and ownership is another key factor. When I feel respected and I feel I belong, therefore I own. When I own, I will never let go. Therefore, another model of socialism that I really would like to strongly support is what we call the social inclusion. We need to understand that we are both from different contexts. And therefore, whichever solution that we come up with to solve a particular problem, I need to be part and parcel of. We need to embrace and involve the marginalized. We need to appreciate the fact that we are not the same. And once we do this, then we come up with solutions that are going to respond to the needs of the people on the ground. The local communities are very open and free. The knowledge they are in from our great grandparents was shared for free. And there were no strings attached to this knowledge. I would rush to my grandmother to tell me how I will be a wonderful woman to my husband. How will build that family? I would pay nothing to my grandmother. Can't we get to that level where I am felt or I believe that I own the knowledge that I share. I own the knowledge that I get out there. Then I adapt this knowledge and then reuse it to help me solve the local problems that I face. Therefore, building up the quality from the local perspective is the way to go to solve solutions that are sustainable solutions that are giving dignity to life and those that are going to last longer and will build the generations to come. So going back to the micro picture, which is my research and responding to the challenges I have seen in my in my data and in my students and in my group of people that students aspire to a better and more sophisticated digital practice. They acknowledge the need and they want to improve that. So the way I have thought that could be done is rethinking and redesigning curricula, but paying special attention to space. I think space is a really important construct and is a really important thing that we should think about. Actually, I think what what we what I see in my maps is disjoint spaces between the personal space and between the institutional space and you will see that. So these are the maps that I got from my participants. As you see, that is the visitor resident approach that David White and Arisone Cornu did in 2011. Thank you, David White. If you're around, it's a great resource to work with and students map the tools with which they engaged and they then explained why they did it and what motivated them to do what the maps say. And what we can see here is how incredibly populated the personal space is and how incredibly scarce and discerning the academic or institutional space is. And that really caught my attention. Why is this so? Why why why do we see these maps that don't have one tool, even? And it really is is a thing that I'm putting all my intellectual energy into finding out why that's happening. I think that this euclidean vision on static and space as an empty vessel that we need to fill with tools, in this case. And with actions, it's very, very problematic. I think that space should be seen as an opportunity to share meaning with the lecturer with so the academic space and the personal space should be sharing meaning. And we shouldn't see and I go back this. I argue for something a bit different. So what I am proposing and I have drawn on social theory for this and the social theory of space and human geography, which has been incredibly useful. I have kind of used that theory to do virtual spaces, but I think it has been quite powerful. And so I think we should craft learning spaces. Sorry, I lost it. And we should also crafting learning spaces with tools and resources is complex, new ones, relational and emotional. There is a lot of this stress and anxiety and preoccupation that I think we need to take into I think that learning spaces should be emergent and spaces for coming. And coming means learning as becoming. And that's the way I envision learning. I think learning is that process of becoming a person and that is different in different stages of our life. And becoming as co-intentional as Paolo Freire said in his work early, the pedagogy of the oppressed. And I think there is a lot of power to exploit there. And there should be a transition between space and place. And I won't read this quote, but it's a quote that talks about how that transition can be achieved. And what it really tells us there is that so that's social theory of space. And it's about natural spaces become social spaces, which is what we want to we want to achieve. Once people begin to use it, boundaries are put on it and meanings are attached to it. The air over dirt, which I like very much becomes a plot and the user obtains control over the bounded space. And I think this is what we really would like to achieve. A space, a digital space that is open, that is populated, that is active, that relates and that is meaningful for that person that is enacting that space. And this is a work I'm doing and visioning how can we conceptualize these open learning spaces for a variety of students. And topology of spaces is very helpful in this case because topology is the strand of mathematics that studies the invariant properties of spaces that have continually been changed in shape or in size. And so that begs the question for me, at least, to think about what are these invariant properties for open learning spaces? And these seven duplets are, as I have called them, are the answer, the tentative answer that needs a bit more work to do. But it's what I have been thinking about. So I imagine that brings us to the last question. Yes. The last question, and it's really unfair to do this to you, to ask you very briefly to speak about your vision.  So if you can do that in a sentence. Well, no, it's true. OK, so for me, we think we need to approach the future of openness much more cautiously. And I think we'd be preaching to the choir here because everyone knows about the lack of diversity online. But what I think we really need to be wary of is how these knowledges are brought online. And this really boils down to who owns the means of production and who owns decision-making power. Specifically with my work on MOOC, MOOC platforms, you see there's a well-intentioned aim to try and include more diverse voices. But what happens is actually this MOOC form of localization just as McDonald's has the McSpicy Paneer and the McAlloo Wrap. Now we have these diverse MOOC platforms, but actually what we have is a Western oligopoly of MOOC platforms. And we don't actually allow for space of diversity of platforms. And for me, this leads to an idea of commodification of culture. So I'll just leave that to you as my challenge of really how are we going to bring these online? What is the most ethical and moral way? Now, for me, as one presenting the voices of the people who are marginalized, all the unheard voices, I advocate for equity unbound. Working together without boundaries. And friends, I want to tell you from a personal experience that boundaries create sphere, boundaries limits. And of course, it frustrates. As an open scholar, I felt like climbing the walls to get to an open conference because of certain boundaries. And I just got here just in time because of boundaries. And therefore, I believe so much that if we embrace equity, then we appreciate and understand that I am because you are and you are because I am that spirit of coexistence that we're going to achieve a lot. And I'll close this with Brian Matters, illustrations who are just brilliant saying that open is an attitude. But I don't think it's an attitude that is natural, that we're just arise because life is nice. I think we need to work on it. I think we need to design for open. So for that attitude to open, to arise and to flourish in a space that is thought and designed for that openness in a way. And we have a last slide, which is again, Brian, thank you very much for your beautiful work. And just saying that there are a constellation of pathways and the pathway that whoever is here takes is wonderful. If it's with the intention of really as you did this, trying to really blur the boundaries and try to that we all in the lecture hall and the three of us get to this one vision of being open, really the default mode of learning and of existing, I think. So thank you very much. I am very sorry that the program was not going to allow us to have questions for now, I think, because there are sessions after this. But I think thank you seems a really inadequate thing to say for what you've just shared with us. And I'd like everyone to just express their appreciation to our panel. The door is open. Killer sperm, blue and humpback. These are some of the ways of go away pain. Come see these beautiful, intelligent creatures, hire doggy web stuff for all of their academic projects. That thing they do with the tail that's them dancing in happiness at another successful project by Big Oggie Webster. You're not going to need a bigger budget. You're going to need Big Oggie Webster, darker.


Siem pip N sesi I've made over five hundred review videos for this channel so far and I still keep finding Super Nintendo platformers I haven't covered yet with titles like Arles Humongous Adventure So Harley makes me think of Harley Davidson motorcycles Humongous makes me think of Lord Humongous from Mad Max 2 and adventure makes me think this might be an RPG Hey, that sounds awesome, but nope. This is just another platformer, but thankfully it's not all that bad It's not all that great, but it's not all that bad either either. You play as Harley, your typical rad dude from the 90s who may or may not be related to the rad dude on the cover of Kid Chameleon. Only this kid's a genius who somehow invents a shrink ray, but apparently he's not that smart because he accidentally shrinks himself and destroys the machine in the process. So, you play through the game as tiny Harley, going around your own house collecting parts for your machine so you can repair it and presumably reverse the shrinking process. You get three lives and one continue to use across 20 levels, no saves or passwords here, and it's the typical platforming stuff. B, jumps, X's to use your jetpack, which is a nice bonus. A is a projectile attack and the L and R buttons are used to flip through the different weapons you can pick up, which are household objects like nails, thumb tacks, rubber bands, and marbles, and they all do different things. And as you progress through the game you learn which weapon works best for each enemy type. For instance, the marble is gonna work best here since you can drop it straight down. You also eventually find firecrackers too so you can make stuff go boom. However, Harley's humongous adventure is one of those games where you take one glance at the screen and say, eh, this is pretty lame, and I don't blame you. The visual style falls kind of flat, but it does need to be pointed out that the enemies and bosses you run into here look like something you'd see in a claymation game, like claymates, and that's because the enemy models were made by that same dev team. The boss in particular is interesting because it's the same boss that keeps coming back, but he's replacing his own body parts with stuff like a spring for legs or some sort of cannon thing that replaces his eyes? But yeah, other than the enemies, stuff like the settings, environments, and your own character sprite are all kind of blah. The controls are fine, they're about what you'd expect in a game like this, but with one glaring flaw, you have to come to a complete stop to turn around and fire your weapon in the other direction, and it's really annoying. You'll try and jump and use your attack when an enemy passes and comes after you, and you'll turn around to face them and you'll end up facing the wrong way more times than not. Ugh, so obnoxious. And what's with these flies trying to vomit on you? That's some bizarre enemy design. Other than that, the controls are okay, and that's mostly thanks to the wide open level design that allows you a ton of freedom to move around. Many of the levels are huge, and these machine parts could be absolutely anywhere, but there's no time limit, so you can take your time and collect all the different weapons, and these nuts that give you an extra life when you reach a hundred.  Bear in mind you're only allotted a certain amount of fuel per level, and when you're out, you're more than likely out until the next level, so you could essentially soft-lock yourself into a game over, because there are certain levels where you have to use the jetpack to get to the next spot. I didn't run into this myself. The fuel is pretty generous, but I could see this happening to someone, and they would end up writing the game off entirely as a result. Anyway, there's other levels here, like where you're riding a jumping tank, or flying around in the air ducts, or floating around in bubbles above a bathtub, or swimming underneath the kitchen sink. It does get pretty hard at times, but the most frustrating part for me, more often than not, is just finding the machine parts so I could move on with the game. But that definitely wasn't a deal breaker for me or anything. There are plenty of checkpoints here and there in the form of these bells, so that's handy. So yeah, Harley's Humongous Adventure is extremely average. I don't think it's as good as other platformers like Claymates or Plock or Artie Lightfoot, the latter two I looked at a few weeks ago, but it's definitely not as bad as stuff like Incantation or Bubsy. I put it in the same category as stuff like Dino City or Rocky Rodin, and I described those games as good enough. Not worth going out of your way to play, but not awful. Just good enough, and Harley's Humongous Adventure is good enough. And I want to thank you for watching, and I hope you have a great rest of your day.


Suspense tonight suspense brings you an all-star cast of Hollywood's finest radio players in 100 in the dark but first wherever hospitality is a gracious art and entertaining is the last word in luxury the first name in wines is CRE S.T.A. B.L.A.N.C.A. Cresta Blanca Cresta Blanca yes that's Cresta Blanca wines a symbol of perfect taste of gracious living to pay your guests a sincere compliment distinguish your holiday dining by serving a fine Cresta Blanca California burgundy or sautern when you pour these proud Cresta Blanca wines from the finest of the vines you enjoy the best shenly's Cresta Blanca wine company Livermore California and now shenly brings you radio's outstanding theater of thrill presented by Roma wines that's R.O.M.A. Roma wines for your enjoyment tonight Roma wines of Fresno, California presents 100 in the dark a study in suspense produced edited and directed for shenly by William Spear oh that was a fine meal indeed me for the club anytime here you know sit here Queenie oh yes yes if you just drop that chair for Mr. Peters thank you do you all know Peters oh this is Mr. Steingar how do you do glad to know you Mr. de Gaulle yeah I believe we've met yes how are you know each other and the one who drew up your chair Mr. Rankin all right the chair well I guess we're all acquainted now to get back to our table discussion oh yes yes yes yes oh how about some coffee all of us thank you all fine oh John John well now a steinger as I said there are only half a dozen stories in the world what is more to the point there's every yes sir yeah oh yes yes coffee John anything else anybody no not I don't think I go yes now where was I oh yes human relations are so simple and yet so fundamental that they can be eternally played upon redressed and reinterpreted in every language in every age they remain inexhaustible in the possibility of variations well that's true of course that's very possible but you take the eternal triangle two men and a woman or two women and a man it's variations extending to the thousand that right rank it well in a way yes but oh yes coffee yes just set them right now I'm afraid we we can't see I die 20 now I believe there are situations original situations that are independent of your human emotions exist just because they are situations accidental and nothing else now as for instance well I'll cite just an ordinary one that happens to come to my mind where are you taking it in a group of five men such as we are here a theft takes place one man is which one now I'd like to know what emotion that interprets and yet it certainly isn't original theme it's at the bottom of a whole literature story I could answer the situation you give can be traced back to the commonest of human emotions curiosity I think when he has you there and yes why the whole art of a detective story consistent the statement of the problem why anyone can do it I can do it Steingall can do it well I don't rank and I believe even you could yeah thank you the solution doesn't count it's usually banal it should be prohibited what interests us is can we guess it yeah well that's true every crime expresses itself in the terms of the picture puzzle that you feed your six-year-old it's only the variation that is interesting you know the well-known instance of the visitor at a club and the rare coin for example of course you all know that seems a distinguished visitor is brought into a club doesn't men say present at dinner long table conversation finally veers around to curiosities and relics one of the members then takes from his pocket what he announces of one of the rarest coins in existence passes it around the table coin travels back and forth everyone examines it and the conversation goes to another topic who say the influence of the automobile on civilian life or some other such intellectual club topic you know all at once the owner calls for his coin it's nowhere to be found yes yes precisely everyone looks at everyone else first they suspect a joke then it becomes serious the coin is immensely valuable who has taken it the owner as a gentleman does the correct idiotic thing of course laughs says he was someone is playing a practical joke on him and that the coin will be returned tomorrow the others refuse to leave the situation so one man proposes they all submit to a search everyone gives his consent until it comes to the stranger I refuse to allow me person to be such as he's very firm very proud very sure and I refuse to give the reason for my action well there's another silence the men eye him and then glance at one another now what's to be done nothing nothing there is etiquette that magnificent inflated blue the visitor evidently has the coin he is their guest and etiquette protects him my situation a well the table is clear a waiter removes a dish of fruit and there under the ledge of the plate where it had been pushed is the car yes of course by now explanation I know I know solutions always should be at once everyone is profuse with apologies whereupon the visitor rises and says now I can give you the reason for my refusal to be searched there are only two known specimens of the coin in existence and the second happens to be here in my best pocket of course the story is very well invented but the turn to it is very nice very nice but the ending the ending row is too obvious to be invented so the visitor should have had on him not another coin but something absolutely different something destructive say to a woman's reputation and a great tragedy should have been threatened with a casual misplacing of the court I've heard the same story told in a dozen different ways oh it's happened a hundred times it must be continually happening I know one extraordinary instance in fact the most extraordinary instance of the sort I've ever heard I beat as you rascal I see you've quietly been letting us dress the stage for you well it's not a story that will please everyone oh why not because you don't want to know what no one can ever know it has no conclusion and yes and no far as it concerns a woman however quite the most remarkable woman I've ever met the story is complete a woman and a crime a crime of fever a such as we've been a crime of fever yes quite a story I think yes I have just time before I catch my train to tell it to you for suspects Roma wines are bringing you 100 in the dark Roma wines presentation tonight in radios outstanding theater of thrills suspense suspense radios outstanding theater of thrills is presided by Roma wines that's our own a Roma wines selected for better taste from the world's greatest reserves of fine wines next week Americans everywhere will celebrate Thanksgiving and in millions of homes families and friends will give a toast of thankfulness with better tasting Roma California wines that's because Roma wines are America's favorite wines for festive occasions as well as everyday enjoyment no matter what you're planning for Thanksgiving dinner there's a fine Roma wine to make every morcella taste delight glorify the flavor of your turkey with gold and hue delicate Roma Saturn or if you're having meat enjoy robust full-bodied Roma burgundy the perfect flavor mate of your favorite roast that's why more Americans enjoy Roma wines that's our own ma Roma wines than any other wines and now Roma wines bring us back to the artists and writers club where five club members regaling themselves over after-dinner coffee are settling down to hear a story told by a guest a certain Mr. Peters his is a narrative well calculated to keep his listeners in suspense 20 before I start I wonder would you ask the John I believe this is a John yes gentlemen John I have a train to catch would you be good enough to get me out of here in exactly 15 minutes in 15 minutes thank you well you have our attention Peters it concerns a woman do I know the woman possibly probably I should say but no more than anyone else on actress what she's been in the past I don't know a promoter would better describe her a very feminine woman and yet as you shall see with an unusual instantaneous masculine power of decision Peters you're destroying a story your purpose will bring an anticlimax you should be the judge of course it should be particularly interesting to you because I believe most of you are acquainted with the people involved the names I shall use of course are disguises Mrs. well Mrs. Rita Kildare inhabited a charming bachelor girl studio very elegant of the duplex pattern and one of the buildings just off Central Park West she knew pretty nearly everyone in that indescribable society in New York that is drawn from all levels that it imposes but one condition for membership and that is to be amusing good phrase that she had a certain amount of money she knew a certain number of men in Wall Street affairs and her studio was furnished with taste and even distinction she was of any age she might have suffered everything or nothing at all in this mingled society her invitations were eagerly sought her dinners were spontaneous and the discussions though gay and usually daring were invariably under the control of wit and good taste on the Sunday night of this adventure she had according to her invariable custom sent away her Filipino butler and invited to an informal shaping dish supper seven of her more congenial friends at seven o'clock having finished dressing she put an order her bedroom which formed a sort of free passage between the studio and a small dining room with the kitchen beyond then going into the studio she struck a match it was about to light the candlesticks which illuminated the room when the bell rang and a Mr. Flanders a broker in fact nervously alive well groomed was waiting as she opened the door on the contrary dear lady you are late well in any case hello and come on inside here let me take your things thank you I I'm the first I of course and since you are you can be a good boy and help me light the candle delighted who's to be here tonight the enus Jackson's oh I thought they were separated not yet how interesting only you dear lady would dream of serving us a couple on the verge well it is interesting isn't it yes surely where did you know the Jacksons through the wearings Jacksons are rather doubtful person isn't he let's call him a very sharp lawyer they tell me though he's been gambling pretty much in deep oh how about yourself for me I'm a bachelor if I lose my shirt it makes no difference who is that possible probable even who else is coming home odd Lyle you know her I don't think so you do too you met her here some time ago a journalist oh yes yes I forgot Mr. Harris a club man is coming and the Stanley Chiever Stanley Chiever we're going to gamble well don't you object certainly not only the Chiever's they play quite a game well united and they have an unusual streak of good luck say by the way it's Jackson isn't it who's so attractive to Mrs. Chiever's quite right well what a charming party and where does more Lyle come in oh don't joke she's in a desperate way and young Harris he used to make the salad and cream the chicken I see the whole party I of course I'm to add the element of respectability of what no one of course knows who's coming no one of course Stanley Chiever's entered a short fat man with a vacant fat face and a slow-moving eye and his wife valuable nervous overdressed and pretty mr. yes mr. Harris came with more Lyle a woman straight dark Indian with great masses of somber hair held in a little too least loosely for neatness with thick quick lips and eyes that pulled away from the person that was talking to her the enus Jackson's were late and still agitated as they ended his forehead had not quite vanished the scowl nor her eyes the scorn he was of the type that never lost his temper but caused others to lose theirs Mrs. Jackson seemed fastened to her husband by an invisible leash you looked at her curiously and wondered what such a nature would do in a crisis with a lurking sense of a woman who carried whether her own impending tragedy as soon as the company had been completed and the incongruity of the selection had been perceived a smile of malicious anticipation ran the rounds which the hostess cut short well well now everyone is here this is the order of the night you can quarrel all you want you can whisper all the gossip you can think of about one another but everyone is to be amusing also also everyone is to help with the dinner if you please nothing formal and nothing serious we may all be bankrupt tomorrow divorced or dead but tonight we'll be gay that is the invariable rule of this house me for the cooking apron you're to go into the kitchen and bring in the order may I be of any help oh thank you more darling of course Mrs. Cheever you might come along too please tie me up in back will you oh there you are fine thank you now to get these rings all soap and water always seem to do it oh there rings are so beautiful thank you they're very nice but there's only one that's very valuable the sapphire beautiful oh let me see oh it must be very valuable of course 10,000 six years ago it's been my talisman ever seen for the moment however I am cook wait are you going to leave the rings out like that temptation you know now now I am the cook Maud Lyle you are scullery made Harris is the chef and we're all under his Mrs. Cheever did you ever peel onions good heaven no they are no onions to peel all you have to do is help set the table well under their hostess's gay guidance the seven guests began to circulate busily through the rooms laying the table grouping the chairs arranging the flowers and preparing material for the chafing dishes Mrs. Kildare in the kitchen ransacked the icebox and with her own hands shredded the chicken and measured the cream I've got it with my life good boy oh jeeva stop watching your wife and put that salad ball on the table everything ready Harris all set good all right to her bedroom took off her apron and hung it in the closet then going to a dressing table she drew the hat pin around which were her rings from the pin cushion and carelessly slipped them on her fingers all at once she frowned and looked quickly at her hand only two rings were there the third ring the sapphire was missing returned to her dressing table immediately she stopped she remembered quite clearly putting the hat pin through the three rings she made no attempt to search further but remained without moving her fingers slowly drumming on the table her head to one side her lips drawn in a little between her teeth listening with a frown to the babble from the outer room who had taken the ring each of her guests had had a dozen opportunities in the course of the time that she'd been busy in the kitchen too much time before the mirror dearly dear well it's not flanders then she reconsidered to gain time she walked back slowly to the kitchen her head bowed and fought the thumb between her teeth she ran over the characters of her guests in their situations as she knew strangely enough that each her mind stopped upon some reason that might explain a sudden temptation and slowly deliberately she began to walk back and forth her clenched hand beating the deliberate rhythmic measure of her journey five minutes later at Paris installed as chef over the chafing dish was giving directions spoon in the air mrs. killed air came into the room like a little shadow her entrance had been made with scarcely a perceptible sound and yet each guest was aware of it at the same moment with a little nervous start dear lady you came in on us like a Greek tragedy what is it you have for us a surprise I have I have something to say to you mr. Enos Jackson yes mrs. killed air kindly do as I ask you I go to the door go to the door please bring me the key please some kind of a game here you are thank you and now the bedroom door would you do the same of course thank you mr. Jackson mr. Cheever yes would you blow out all the candles except the candle lab room on the table blow out all the can except the candle lab room goodness sakes mrs. killed air what is it I'm getting terribly my love yes put the candle arm on this table here no no wait a minute mr. Jackson yes first clear off the table please I want nothing out that's it no no please put down the candle arm the last candle all right now listen my sapphire ring has just been stolen the ring has been taken within the last 20 minutes I'm not going to mince words the ring has been taken and the thief is among you absolutely mrs. cheaper there's not the slightest doubt three of you were in my bedroom when I placed my rings on the pincushion each of you has passed through a dozen times since my sapphire ring is gone and one of you has taken it I was in the room when she took them off the sapphire ring was on top now listen I'm not going to mince words I'm not going to stand on ceremony I'm going to have that ring back now dear listen to me I'm going to have that ring back and and until I do not a soul she'll leave this room I don't care who's taken it all I want is my ring now I I'm going to make it possible for whoever took it to restore it without possibility of detection the doors are locked and they'll stay locked I am going to blow out the remaining candles in the candelabrum and I am going to count to 100 slowly you'll be in absolute darkness no one will know or see what is done but if at the end of that time the ring is not here on this table I shall telephone the police and have everyone in this room searched am I quite clear everyone take his place about the table please that's it that will do very nicely now I I will blow out the candles and count 100 no more no less remember either I get that ring or everyone in this room will be searched 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Mr. Cheever you may give it to me well well now now that that's over we can have a very gay little supper Harris Harris will you please help me like these candles are you are gentlemen boy I say Peter's little boy that's not all absolutely sorry and that story ends there but who took the ring uh-huh what it was never found out never no clues none I'm not sure I like the story it's not story at all permit me it is a story and it is complete in fact I consider it unique because it has none of the banalities of a solution leaves the problem even more confused than at the start I don't see of course you don't my dear Rankin you do not see that any solution would be commonplace whereas no solution leaves a true intellectual problem also in the first place whether the situation actually happened or not which is in itself a mere triviality Peters has told it in a masterly way the proof of which is that he's made you listen let's observe now each person present might have taken the ring landers a broker just come a cropper maud Lyle a woman on the ragged side of life in desperate means either mr. and mrs. Cheever suspected of being card shops and a very good touch there to Peters mr. Enos Jackson a sharp lawyer or his wife about to be divorced even Harris concerning whom very cleverly Peters has said absolutely nothing to make him quite the most suspicious of all there are therefore seven solutions all possible all logical but beyond this is left a great intellectual problem also was it a feminine or a masculine action to restore the ring when threatened with a search knowing that mrs. Kildare's clever expedient of throwing the room in the darkness may detection impossible or was it a woman who lacked the necessary courage to continue or was it a man who repented his first impulse is a man or is a woman a greater natural criminal that simple 20 woman took it of course oh on the contrary was a man for the first action was more difficult than that first man certainly the restoration of the ring was a logical decision I recognize most of those characters Peters mrs. Kildare of course is all you say over extraordinary woman stories quite characteristic of a friend is I'm not quite sure of what I think I know him too I'm positive I do did it really happen exactly as I've told it the only one I don't recognize is Harris your humble servant what you Peter's you were there I was there pardon me gentlemen oh yes sir what is it John mr. Peters sir your train you told me to remind oh yes thank you I didn't know it was so light are you gentlemen pardon me yes of course Peters nice to have met you curious chap extraordinary now I wonder I wonder if we're wondering the same thing gentlemen suspense and so close as 100 in the dark Peters was played by Howard Duff and the other club members were Joseph Kearns Frank Albertson John McIntyre Dick Ryan and Horace Willard Teresa Marshall was Rita Kildare and at her party were Janet Nolan Wally mayor Mary Jane Croft Jerry Hausner and Grace Gillan tonight study and suspense resided by Roma wines that's R. O. M. A. Roma wines America's favorite wines if you could see how Roman California wines are grown you'd understand why they are America's favorite wines first you'd see how Roma selects and presses only the choicest grapes then how Roma master vintners with ancient skills and unmatched wine making resources guide this luscious great goodness unheardly to tempting perfection finally these better tasting Roma wines are placed with other mellow Roma wines to await later selection for your enjoyment from the world's greatest reserves of fine wines this is Truman Bradley with a suggestion for making your Thanksgiving dinner even more enjoyable top off the meal with glasses of fruity Roma port Roma port is a truly distinguished entertainment wine Ruby red full bodied clear as a bill be sure to ask for Roma that's R. O. M. A. Roma wines America's largest selling wines thank you tonight suspense radio play was adapted by Jack think from short story by Owen Johnson suspense produced and directed by William Spear for the Roma wine company of Fresno, California this is CBS for Columbia broadcasting system


Are you facing an issue where you can't open the Task Manager in Windows 10 and are wondering why is the Task Manager disabled? In this video we will show you some of the solutions to fix Task Manager has been disabled by your administrator error in Windows 10. Usually a third party program, virus or spyware might prevent you from opening the Task Manager. So to fix this issue and protect your computer from such malware or spyware, we suggest you use SysTweak Antivirus which provides overall protection to your computer and secures your data. Download and install SysTweak Antivirus on your Windows computer. You can also use the link given in the description below. Once installed, click on the Scan Now button. Once the scan is complete, your data will be safe and secure. If this doesn't fix the issue, try the following solutions. First is using the Registry Editor. Press Windows plus R to open the Run box, type REG Edit and press Enter to open the Registry Editor. Now locate the path, Current User, Software, Microsoft, Windows, Current Version, Policies and then right click on System. Select New and then select 32-bit value from the popup menu. Now name this new value as Disabled Task MGR and press Enter. Next, double click on the Disabled Task MGR, set the value data to 0 and click OK to finish. The Task Manager has been disabled by your administrator in Windows 10 issue should now be resolved. Second is using the Local Group Policy Editor. Press Windows plus R to open the Run box, type GPEdit.msc and hit Enter to open the Local Group Policy Editor. Next, navigate to User Configuration, Administrative Templates, System, Control plus All plus Delete options. Double click on the Remove Task Manager option on the right-hand sidebar. In the next window, select the Disabled or Not Configured option. Come there, click Apply and then click OK. Now restart your device. Third is using the Command Prompt. Type CMD in the Windows search bar, right click on Command Prompt and select Run as Administrator. Now type the command. You can find the command in the description box and hit Enter. Once done, your Task Manager should now be fixed. Reboot your computer to apply these changes. Hope this video can help you fix your Task Manager in Windows 10. If you found it helpful, do like and share this video. Also, don't forget to subscribe to our channel.