Hello everyone, my name is Kaustubh Kishkar and I am doing MTech from CAC department and in this presentation I will be talking about a policy enforcement framework for Android. This is my, this is project topic, so let's start. In the outline I will first talk about the introduction about Android that you may have listened in other sessions. Then I will cover one of the research papers that I have read for this project and then what I will be implementing in this project and at the end I will conclude the session. So first talk about the Android application architecture. So you may know that the Android application can have any of the following components. The first is activity which is the interface between user and the application. So user can interact with the application using activity, then the service, next is a service. So if you have any high duty task, heavy duty task, then you can implement it as a service instead of implementing the logic in the Android activity. The third part is content provider in which it's a interface between your application and database and the last one is broadcast receiver. So Android sends out many events to the whole system. So say you get a call from someone or the Wi-Fi state is changed or something like that. So all these broadcast receivers can be captured or can be received to your application using broadcast receiver. For that you will have to implement a broadcast receiver. After that you will be able to capture all those events. So next is Android security. So Android provides some basic mechanism for the security purpose. First of which is application sandboxing. So as you may know that the Android is based on the Linux kernel. So in Android there is a concept of users. So for every application that you install, a new user is created and a new user ID is assigned to that application. So whenever you run the application, it's run as that user and it gets its own separate Dalvik VM. So even if the VM crashes, then at that time it won't affect the other executing applications. The next is application signing. So if you are an application developer, so before releasing your application to the any Google Play Store or any other store, you will have to sign the application using a digital certificate. Next part is Android permission model. So the Android as OS and many of its stock applications, they provide many features. So you get a calling features. Then you can have access to the GPS or you can also use internet. But for all these features, the Android system has given the permissions level. So if you want to use any of these features in your application, then you will have to assign the permissions level to that application. Then only then you can use those APIs. Otherwise the Android system will throw error or it will throw security exceptions. So the next part is all or nothing approach. So this approach is basically, so if you are installing an application, so at that time say there are 10 permissions which are mentioned in that application. So at that time you cannot say that I just want to assign or I just want to grant 5 permissions and other 5 permissions shouldn't be granted, that's not possible. So while installing, you will have to accept all the permissions, then only then the application can be installed. Plus once the applications are granted to the application, so once the permissions are granted to the application, then you cannot revoke the permissions. So if you want to revoke the permissions, then you have to uninstall the applications which basically obviously means that you won't be able to access the installed application anymore. And the last part is once you give the permissions to that application, you do not have any control on the resources. So say your application is using send SMS permission. So you don't have any control over how many SMS that application sends or if your application is using internet permission, then you cannot say that restrict this app by say if the application is using 100 MB of data for downloading and uploading, after that that application shouldn't get internet access. That's not possible in default android security mechanism. So that's why we need a policy framework. So one of the main goals of the policy enforcement framework is to restrict the usage of resources. So the policy framework will be able to give such kind of control to the user. So you can define policies saying that let this application send just 25 SMS per day or if the application is using internet access, then you will be able to define a policy saying that the weekly download and upload of that particular application should be limited to 100 MB. So if that application exceeds that said limit, then after that it won't have that particular permission. The next is to prevent the privilege escalation attack. So basically let me first give a brief idea about privilege escalation attack. So say you have two application, one is yours and the other one is attackers. So your application has the internet permission and you have implemented a service, but that's not a well protected service. So any other application can access your service and pass on the URL to the service and the service will basically download the data using that URL. So what attacker will do, it will create his own application and that application will use and that application won't have internet permission, but it will use your service to download the data. So basically for that attackers application it's a privilege escalation. So the policy enforcement framework will be able to detect and stop such kinds of attack. So in general the policy enforcement framework will deal with users security and policy concerns to provide users with fine grained access control. And then next is users of the system. So who can use this system? So the first one is end users, that's the users who have physical access to the device. So they can define the policies for their own or the next is trusted third parties. So let's assume that the employer has distributed tablets to his employees and employee, employer wants to not leak the data beyond company premises. So at that point the trusted third party as a, the employer as a trusted third party comes into picture and he should be able to define policies using this framework or even both end users and trusted third parties, both of them can define the policies. Now we have seen what kind of policies we can define and we can enforce, but when to enforce such policies. So the first or obvious mechanism is on different events that are generated by the system. So say if particular application is getting launched. So at that time we can say that particular policy should be enforced or we can also consider the environmental or system attributes which are part of context-aware policies. So time, location, CPU speed or battery. These all attributes come under the context-aware policies. So say if you are in a company from 10 p.m. to 4 p.m. So at that time context-aware policies will consider a time as a system attribute and it will enforce the policies. However you can use GPS also in which case if you are within the company premises then at that time it will execute the appropriate policies and so on. So this was the very brief idea, very general idea about the policy enforcement framework but then why I chose this as my thesis project. So the first is for the AKASH tablet. AKASH tablet is getting distributed to many school and college students. So let's say that teacher wants to conduct the quiz on AKASH tablet. So at that time no other applications should get launched. So during a quiz time or exam time applications which are not relevant to the quiz or exam say browser or any messaging applications, those applications shouldn't get launched. So the framework will be able to define and execute such policies. The next is limited sets of apps during school time. So during school time or college time applications such as gaming or messaging those shouldn't be allowed. So those policies will also be considered. The next is different set of apps for different courses or subjects. So say for history class a teacher may want Google earth or Google map application. So and this set might be irrelevant if the mathematics subject is going on. So for mathematics it will have different sets of application and during the history class it will have different sets of application and obviously at the end parental control. So parents may also want to have some kind of control over the tablet. The next is context attribute which is battery virtualization. So we have already seen that context attributes like time location. So all the research papers that I have read they have covered this time and location attribute but no one has ever considered the battery virtualization. So what it will basically do is it will get the battery consumption information for each and every application. So say you have 10 applications and you want to define a policy saying that if particular application consumes 30% of the overall battery then after that that particular application shouldn't get launched then this kind of policy will be enforced or other example that I can give is say you are running low on the battery and you have just 20 or 25% of the battery remaining. So at that time giving applications shouldn't get launched. So these kind of policy you can enforce and the last part is remote access mechanisms. So now consider that the Akash tablet is distributed to many students and there is some kind of change or update in the policies. So what admin will have to do it just collect all the tablets back and he will have to connect all the tablets one by one to the machine and enforce the policies or update the policies. So instead of that we can use this remote access mechanism to remotely enforce or update the policies. So existing mechanisms have suggested use of SMS, Bluetooth or Wi-Fi but this is not enough. So I will tell why in couple of slides. So just note that we will need something more than this. So this was the motivation behind my this topic. So I will first now explain one of the papers that I have read. So send is a research paper which basically is a short form for semantically rich application centric Android security. So basically this is framework which protects application from another application. So then the policy enforcement is done at the install time also and at the runtime also. So when you are installing the application at that time you can limit the installation or you can deny the installation based on the policies and also when you are launching another applications the framework will check the policies if there are any policies which violate the communication access between two different applications and it will restrict that communication part. So as I said the security policies are divided into two parts. The first one is install time policy and the second one is runtime policies. So the install time policies are nothing but permission granting policies. So the first this rectangle which you see here is what Android provides by default. So as we have learned that the permission it also it has the permission model by default. So the sent model they have suggested this 1.2 which is signature based policies. So what basically it means is once you are installing the application it will check the signature of that particular application. As I have already told you the application developer needs to sign the application before releasing it. So that digital signature will be considered in this policy. So if that particular application has the given signature then and only then allow this app to get installed on the device and if that particular application does not have this signature then we can assume that the application has been modified. The next part is application configuration based policy. It considers the requested permissions. So whatever permissions that that particular application has requested based on that application will be allowed to install or just to deny the installation. So and it will it may also cover the application version. So particular version has some kind of bug and that bug has been rectified in the next version. Then you can define the policy saying that the application version which is lower than this should not be allowed to install. So these two are the parts of run install time policies. Next we will focus on the run time policies which is nothing but the interaction between two application. So the first one is signature based policies which again considers the digital signature of the two communicating apps. So say one application is communicating to the another and you want to restrict the access. So you can define a policy saying that the other application which wants to communicate with the first application should have this signature. Again in this case also we can consider that if signature does not match then the application has been modified. The next is application configuration policy. So in this policy the particular permissions which are held by the communicating applications are considered. So in using this policy classification we can stop privilege escalation attack. So say that you had two application one with the internet access and one without internet access the example just I gave you. So in that case you can define a policy that the communicating app should also have the internet access. So if your application has an internet access then the other application which wants to communicate with you it should also have the internet access. So defining by defining such policy you will be able to stop the privilege escalation attack and the last part is context based policies. So next is proposal. So what I will be implementing in this project. So the first point that I told you was about the Akash tablet getting distributed to the school and college students. So the proposed architecture will be the end users will be school or college admins then the teachers parents and then the students itself. So in this case the school or college admins and teachers and parents we can consider them as trusted third parties and parents and parents and students we can consider them as end users. But now say in this the limited set of apps during school time. So the school admin has given the policy saying that these particular application shouldn't be launched for particular time when the students are in college or school and during the lecture time teacher wants to access wants to give access to say Google or Google map application and that app has been restricted by the school admin. So at that at this point there will be a conflict between the policies. So we will have to consider the priority handling also saying that the teachers have more access than the schools. So if the policies defined by teachers are more they get more priority than the policies defined by the school admins and then at the end say parents have also enforce the policies. So these policies shouldn't be removed by the children or the students. So for that we will need to provide some sort of access mechanism authentication mechanism and then I will also consider time location. Time location these two attributes they have already covered. But the battery form that I will also try to include in my final implementation. The next I talked about context attribute which was battery virtualization which considers the total battery consumption by particular applications. So if you have seen the settings in any AKASH tablet or any other Android device in the battery part it shows the top 10 usage of the batteries which applications have considered or they have consumed more batteries. So these so they already maintain this kind of battery information battery consumption information but that's not available to the final the end user or the application developer that's a part of the settings application. So I will try to read that or I will go through that power usage summary.yava I have given the reference here. So I will go through this code and I will try to implement same for my project. And the last part was access remote access mechanism in which the offered access communication mechanisms where SMS Bluetooth and Wi-Fi but SMS is a paid service. So not many may opt for this service then Bluetooth has very limited range and it cannot handle more users and at the end the Wi-Fi. So if you implement this remote mechanism so it will require polling. So if you have a framework on your tablet and say you have defined policies somewhere on the server. So the framework will have to poll again and again if there are any updates available. So instead of that we can use Google cloud messaging service. So this is the free messaging service which is provided by the Google and it has the client server architecture. So basically a framework will implement the client part and there will be a server part installed centrally in the college or school. So basically teachers or school admin they can log in to the server and they can just update the policies and after that those updates will be sent to the GSM servers. So what GSM servers will do is if the tablets are connected to the Wi-Fi and if they are connected to the Google Play Store then those policy updates will be sent back to the device and those will be updated and enforced eventually and if the tablets are not connected to the Wi-Fi then Google GSM servers, GSM servers they stores those messages on their servers itself and once the device is up then those updates are sent to the device. And at the end conclusion so for my thesis project I have compared many existing policy frameworks and have proposed a solution for these use cases and then this implementation hopefully will be completed before end, May end. Thank you and these are the references that I have given for you if you want to read those papers.


estion um one of my concerns about the original motion is it calls for um communities to work with developers and I would ask how um councillor Roberts has already said there is an imbalance of power that is the fundamental problem with developers they don't have any incentive to listen to local communities because they they just want to be lovely nice people they want to maximize their profits and they will listen or they will appear to listen to the extent that they think it will help them to get their planning application through and damp down local opposition but there is no incentive to work with um local uh communities in a meaningful way so how are you going to empower them you're going to abolish the role of the local planning authority and give complete discretion to parish councils um to decide planning applications that would certainly give um some uh local communities some power um to deal with um developers and to work meaningfully with them because they have to um so I'm unclear as to what actually you intend by the original motion um I do think the amendment is actually much more reflective of the overall objective of your motions which actually I fundamentally um agree with thank you councillor Williams uh all right our next speaker is councillor Claire Daunton councillor Claire Daunton did you wish to speak oh okay my for once my trusty vice chair has missed identifying uh councillor Milnes I just find it very interesting councillor Milnes do bring your microphone a little closer please thank you could I also just in general could I ask members when they speak to avoid doing this because it blocks the microphone from your voice thank you I hope you can hear me now thank you good thank you oh it's just a bit rich to hear our Tory colleagues complaining of the role of developers in planning I just cite dinner with Jen rick and I the we are trying our best and put a motion here that signals are in our reservation with a new planning uh white paper and proposals before us and we all seem to actually agree actually so this is really just a silly time wasting uh exercise that isn't actually adding anything to the debate because the fundamental explanation chairman 15.14 thank you chairman um I would I would be short but this is not a silly amendment this says working with developers we here as elected councillors who yes serve a different party to the one that councillor Milnes but we are not calling for your elected members is not anything to do with accuracy are you referring to another rule of debate no I'm set the personal explanation thank you and it was said that it's a silly amendment just to drag time I'm personally explaining that as elected members we're entitled to raise our concerns and have been heard thank you thank you do carry on councillor Milnes I've made I've made my point with I've told you against this so if you've made your point that's great thank you councillor Bettson I believe you'd like to take a have a question thank you councillor Bettson do go ahead thank you chair um I um would welcome the um amendment because taking into consideration um the developments at Kanborn business park I would give an example and and to councillor Milnes perhaps he's not aware of this on the 8th of July the Kanborn town council wrote a letter to the leader councillor Bridget Smith I won't read the whole thing I'm sure she has either shared it or not shared it but I would just draw your attention to a few um mentions in paragraph two that the involvement of Kanborn town council has been marginalised in the development of west Kanborn the planning applications are usually sent to them for information only rather than for consultation and Kanborn town council feels sidelined they would hope that for Kanborn business park that the town council is fully involved and engaged in all the development plans quote this would bolster local democracy ensuring grassroots needs are being heard and joined the business park to the body of Kanborn preventing it becoming a rejected appendage so I feel that the amendment that has been uh refused and that is their right is a shame because we do want to empower our local communities to be heard by us the local planning um authority and not have the local authority be sidelined the grassroots and the residents that we are meant to be providing for thank you chair thank you councillor Bettson I don't think we have any further speakers on the amendment yeah no exactly no no further speakers before the second uh oh sorry yes okay do go ahead councillor Hawkins I'll be very brief thank you chair to answer councillor Richard uh Dr Williams sorry councillor Dr Richard Williams to answer your question that is exactly what this motion is about it is asking the government to give us the excuse me and councillor excuse me councillor Hawkins could councillor Heather Williams not interrupt another speaker can we just provide consistency I would can we ask councillor Hawkins to complete what she wanted to say chair I've said my bit it's exactly what we're asking that the government gives communities the power that balances the power that developers have already symbols can I suggest that we go to the vote can I just chair apply we're going to go to the vote on the amendment in other words whether we accept the amendment which was up on the screen until recently yes it would be helpful could just one moment councillor Daunton did you want to speak no her microphone was on her microphone was on can we we just uh vote on this amendment so the vote will be taken if you vote to act so he can immediately make £10 donation to the chairman's donation thank you let's go to the vote on this if you accept the amendment press green if you register yourself as president if you oppose the amendment press the red button and if you wish to abstain press the yellow button you have to register yourself first on the blue button and then indicate whether you wish to vote for green red against or yellow abstain can I just check has everybody voted good and there is the presentation so the amendment the amendment falls because we have eight votes for the amendment 16 votes against the amendment and one abstention so the amendment falls so we go back to the substantive and I'm going to go back to councillor Cathcart because he wished to speak on the substantive if you could excuse me I can't you've only got two minutes left so just just one moment councillor Cathcart can I just check did councillor Bygot vote get registered good thank you okay so councillor Cathcart would you like to speak briefly briefly yeah I support quite a lot of this my only problem is oh the issue where it says we have a voice you can have a voice and people won't listen to you I prefer a slightly stronger well considerably stronger clarification something along the lines of that local authorities will be able to continue to determine planning applications in a similar way to what they do at the moment I know it's not I know it's not on in the government's intention to do that but the problem is when we have the if our only comment is at local plan stage a huge amount of change between the local plan to the vote so that we can actually get this matter dealt with before we run out of time please um councillor Cathcart thank you for your comment does anybody else wish to speak we have two more minutes before we wish to go to the vote councillor Bygot thank you chairman so I'm happy to support the the motion the original substantive motion but I think a lot of this is speculation because although we've all written into consultation we've made a number of different points we don't actually there isn't a draft text to the legislation we don't actually know that they're going to take away people's right to objective individual applications I think it's very important that we send a strong signal to the government that they retain that right for the people and that's why I believe we should support this motion thank you councillor Bygot now does anybody object if I go to the vote good okay let's go to the vote then so in this case we are voting on the substantive motion sorry just one moment I'm sorry I'm sorry I'm sorry the time is up it was 1732 I'd apologize we haven't got time I'm afraid to take your summing up councillor Halings I do apologize it's only one is allowed or we can't sorry this is the point point of order we can excuse me one moment councillor Williams we can't take just one moment councillor Williams will you just wait while I clarify 15.12 would you please wait while I'm prepared to listen to you but would you please listen to me I'm saying that we are allowed to take the proposals summing up after we run out of time councillor Heather Williams what would you want to say point of order councillor Kakkar I believe was moving an amendment and then he was intercepted without opportunity and then other speakers will have to speak if he does still wish to do it I'm just standing up his rights if he still wishes to go on second yes councillor Kathar expressed a wish for a stronger wording but he did not that is like I'm just wondering whether the proposal of motion would consider strengthening a bit in order we can't do that at this stage councillor Kathar because we have run out of time at 30 minutes we can no longer take any debate or any further amendments all we can do after 1732 is to go back to the proposer of the motion and I'll invite her to sum up thank you no I'm sorry yes we can vote we can we just let me just take the wording it is that we have a maximum of 30 minutes for each motion to be moved seconded and debated after which we stop and then the mover of the original motion helped shall have the right of reply before the motion or amended or amendment is put to the vote so that's why I'm saying after 1732 we go back to the proposer for a summing up and then we vote yeah great thank you very much okay so councillor Haley's thank you and I won't take that time can I just ask councillor Nigel Kathar to turn his microphone off please and I'm sorry councillor Kathar but we um had to curtail that councillor Haley's do carry on with your summing up of the substantive motion yes and I would just like to say for those that have most support for the you know the overall spirit and principle of the substantive motion to make sure that our voices heard and absolutely I tried to word it that would we don't know yet so it's about would remove that's the kind of wording that's in there and to reassure councillor Kathar that actually in it is only talking about the community's voice not the local authority in the wording that second wording so I didn't think through local authority there you're absolutely right what we're trying to protect as well is local authority statutory rights as well but it's but that's not here what's in the second part of it is about the community voice that's where it's voice it's not local authority voice but you know councillor Kathar no okay and so therefore in summing it up I would just say I would hope I would I would like it not excuse me can I just ask everybody else in the room to be quiet well councillor Pippa Haley's is summing up thank you and it shouldn't be in a conversation I should have just explained how it came back sorry and so yeah and I don't want it to turn into you know something which is another motion which may be about how the local authority performs this is about our basic ability to continue providing that voice for local communities in terms of the way that the planning reforms are going I hope you can support that that motion there thank you very much thank you councillor Haley's let us now go to the vote so first of all register yourself on the blue button then indicate with the green if you wish to vote four with the red if you wish to vote against and with the yellow if you wish to abstain has everybody voted I has is everybody sure they if you have if your vote has been registered your microphone should show only your vote either red or green or whatever on the bottom oh you're not voting at all okay in which case I think those numbers are right okay 26 of us in the room 25 have voted four and there is one who is not voting at all thank you you so that motion is carried thank you very much uh with that thank you very much everyone uh I would just remind you that we are on item 15 can somebody just tell me how many hours we've been going and whether we need to no okay right uh so 15 is the chair's engagements as itemized on our agenda I attended on the night of July the RAF Alcunbury wing commander's welcome back reception this was after pandemic at which the wing commander was actually saying goodbye because he's leaving uh from his term of office uh was it a nice reception it's lovely good was it nice to be out in the world again it was very nice to see all the people from RAF Alcunbury again thank you and the USAF 501st wing support command item 16 uh I refer to our legal advisor the chair members will see within the report that there is a an exempt report at agenda item at 17 and on reconsideration what we would propose is that members do not need to go into closed session for the consideration of the report which is at pages 89 to 94 however if members did want to discuss the business case from page 95 onwards or ask any questions on the business case we would request that members go into confidential session thank you so um so uh I believe councillor bachelor is wishing to present this paper councillor bachelor uh thank you chair yes uh I'm presenting this as the um lead member for housing as housing has a vertical responsibility for ermine street business so you've got business plan before you um ermine street is our market rental housing company we review this annually and this is the current plan it was presented to the ermine street board on december 2020 and agreed by cabinet in march 2021 ermine street is now seen within the council as a close partner to our housing department rather than just an investment vehicle it concentrates on inquiring stock for rental within the investment area which is the gate greater cambridge commuting area as identified in the cams of peter borough independent economic review which does include peter borough recently they have acquired some houses in cambourne to be used as houses of multiple occupancy and are let by uh shire homes our other housing company uh there's a let for temporary accommodation this helps to reduce our need to use bed and breakfast accommodation in the council the business plan review gives the company an opportunity to review the trading over the year adjusts the budgets and reexamine the assumptions the bad debt provision and void loss assumptions have been changed because of the coded pandemic which has had an impact on rent arrears of void loss over the past year fortunately in the short term this will not have an adverse effect on the financial performance of the company and in fact in recent months that situation has improved significantly the current position today is that the company has acquired 470 properties and 29 in the pipeline totaling 499 if all the pipeline progressed to completion this would leave one to be acquired during the remainder of 2021 to achieve the target of 500 properties which were set back in 2015 any future expansion in the form of additional housing beyond the 500 properties will be subject to further agreement from the council with an agreement about future loan terms and rates the company's work will benefit the company of a council by around 3.43 million pounds in interest payments in this year the council commissioned an options appraisal from Savills last year to consider future options once the target of 500 homes has been achieved the report recommended that the company be allowed to expand to the original target of 500 homes and then the council will take stock and decide on future investment as well as buying homes to let Irmin street takes ministry of defense homes typically on five year leases improves them if necessary and rents them out they currently have three lease arrangements in place with the defense infrastructure organization these are at water beach basing born and brampton all leases have been reviewed and extended for another five years and the number of units increased by six in water beach five in basing born and 36 in brampton bringing the total under the lease arrangements to 190 properties the head of housing and head of Irmin street meet monthly with myself and councillor john williams to discuss the acquisition progress the future strategy and the possibility of future developments within the council this version of the business plan is to be received by full council as the sole shareholder in the company and the recommendation is that council receives the plan for information thank you chair thank you councillor bachelor um can i ask uh if there is a seconder thank you councillor williams did you would you would you like to wait to speak or do you like to speak now i reserve my right to speak thank you councillor williams i understand councillor fame may wish to speak thank you i don't wish to speak in the debate just as council may recall i was asked to take on direction of Irmin street i'm not this moment director but i don't propose to take part in the debate or debate thank you councillor fame we have other requests to speak councillor howell thank you chairman um just a couple of questions if you don't mind them to councillor bachelor i'm glad to see the housing stock is expanding i also remember the people quite concerned that when the Irmin street housing were going to be purchasing houses in peterborough which they thought was a long way away i noticed that we've gone slightly further than peterborough in now in Leeds um can i just ask please um is that a one offer that something that is going to be done in the future and as i said at the time let's see what happens when that goes um with regards to the houses and that we directly own may i ask please and i appreciate you might not know the answer directly how we how often and when do we check on these houses uh and um that also um i have no over i know of um an Irmin street house where the tenant where the tenant is um shall we say disrupting a little bit the other tenants nearby um there seems to be no real the i was told method of bringing their concerns to Irmin street housing could i ask please if that could be clarified in the future not now and i think that's excellent news with regards to the leases the 190 houses that's absolutely superb and well thank you councillor howl um councillor bachelor can i just remind you i'm sure we were aware that we need to respond in equally as neutral terms so that we don't get into the aspects which would need to be dealt with in confidential session thank you councillor bachelor yeah thank you very much um yes the we have uh or they have properties in Nottingham Leeds uh these these are brought about three years ago before we changed the policy to only uh by within um commuter this distance um the the distance ones and quite a few a few of our houses around are actually subcontracted to uh agents to um manage them you know suddenly the ones in Nottingham and Leeds that we have that situation um we do have quite a lot of properties in in Peterborough but i wouldn't confuse those with the issues about um putting homeless people in them that that's an issue for the housing department and it is not a part of Irmin streets activities and apart from that i'm glad he welcomes the money and you know uh to recognize that this is a multi-party operation really so you know the conservators had the credit of actually setting this up obviously in the first place and it's you're one of the great successes here i think so yeah well done to us all thank you councillor chairman i asked for two questions i'm happy to have a written response later on that's one of those things okay i'll i'll speak to you later on thank you thank you very much uh councillor right thank you chairman and through you chair could i ask councillor bachelor is he a director of Irmin street councillor no i was i was a director of Irmin street when i was appointed the housing pose that's that that's quite helpful and my question is a process one really no when Irmin streets business case is presented to this council it is a standalone company it's not part of this council and it should be the directors of Irmin street presenting just what you've given to us so my you know my question is we don't cock it up let's make sure we do the process is right and it should be the director and your friend as directors of that company presenting this business case to us as the independent council to adjudicate on um and you know how you wish to just iron that out for the future i don't know but uh that would be my concern thank you councillor right um councillor roberts thank you madam chairman um and through you madam chairman um i was one of those all those years ago six years ago that i was actually a little bit wary of the route that we were going down i'm sure mark mark is remembering that you're all going drunk and yeah yeah yeah um and i think you know at least i've been proven wrong and that's okay because it's been proven um that it's worked however um you know we ought to give thanks to actually then the conservative group who this idea came from um and saw it through and resolved to have 500 which we are just about to to get to i am concerned however that we don't appear to be doing an awful lot um for our own residents within this list um and to hear and see that leads is down and lester and nottingham um i would have been far happier if it had been south of it comes villages which seemingly other than pathworth isn't very much down here so you know it's down and thanks to the conservative group that we've got this um organization that is is working and is being successful so thanks to them i hope the rest of you agree if you can bear to and um you know i would just like to say that we need the problem of course for here is that the properties are overvalued in south cambridge uh bricks and mortar are overvalued um when you look at the price average price the properties and leads against what we are doing um this is where this is where all this uh development that we're doing is proving such a failure because the prices aren't going down here they're rising and they're rising horrifically um gosh good news for the um estate agents and the builders uh but not very much good news for anybody that we represent who's in need of a house that they can actually afford and can't afford to buy and they're looking to rent so i i think we've got still quite a lot of work to do on this um but let's hope it moves in the net right down thank you councillor roberts uh thank you chairman and i'm one of many in this room who wasn't here when um and street originally got set up um and but i'm sure that uh the words that have been said today are are appreciated by those who may not be sat here in the chamber with us but they were part of it um and i'd say it's also a really good example where we can make investments in things that we know and understand and use skills from our officers currently in the services that we do and put it to good effect um and i think that's what's been done here and i would also chairman like to thank officers who looked again at the exclusion of press and public and and did take in on board the concerns that i am like brave have raised so thank you very much for that officer thank you councillor williams uh councillor john williams would you like to speak a seconder just like to um basically add my uh thanks to um the staff of ermine street um for the way of they have conducted themselves in very difficult circumstances over the past year because of the pandemic um they have managed to um that you know that we did have um a number of um bad debts but actually through their hard work uh we are seeing that improving all the time um since this report was uh produced and i think by focusing on an investment area that's given ermine street a focus and a purpose and enabled us to use them as part of our housing strategy for those living and working in south camps because although it does cover peter birth of course we know from the travel to work area that there are people living in peter who work in south camps so so there is a connection there um we did this because we were concerned about purchasing properties in leeds and nottingham um which was which was done under the previous you know guidelines by the previous administration but now that we have defined the area in which they are to invest we are seeing them as i say providing homes for those who work here and also how does a multiple occupation for single people which was was not being done before so but i do thank everyone in ermine street for the efforts that they put in this past year in very difficult trading circumstances thank you very much councillor williams uh council bachelor would you like to come back as proposer thank you very much uh chair just to be brief um this is a a good business um which is contributing very significantly um to our coffers here um we need to be thinking you know carefully about where we go from here um at the moment we're just coming to our 500 um so that that decision will have to be taken in next few months about whether we continue or not um i can't actually finish without the temptation of noting councillor roberts is a statement that she had been proven wrong in all the years that i've sat opposite councillor roberts this is the first time ever if anybody would like to minute thank you thank you so so chair the world is changing obviously okay thank you councillor bachelor can i ask then uh it sounds as though broadly speaking um people are in approval we have noted that councillor fein is not going to vote can i just um have an indication as to whether people are happy to take this by affirmation very very lovely with the exception of councillor fein thank you and so uh at just three minutes to six i will bring this meeting to a close thank you very much for those of you who have turned up thank you very much for those of you who have attended online thank you for respecting the covid precautions that our democratic services officers have worked so hard to put in place to keep us safe thank you very much thank you chair thank you goodbye so members before we leave the room i just wanted to remind you that our next meeting is on the 23rd of september 2021


STM32-WL55 dual-core project inter-processor communication controller. What are the goals of this session? Using STM42Q by DE, I will demonstrate how to select, configure and use inter-processor communication controller and shared memory concept. Then we'll monitor preference within debug session using the project running on two cores and by using built-in single-wire viewer with an STM32Q by DE, we'll monitor in graphical way some variables modified by both cores. Before this, I would spend a while on discussion about theoretical points related to inter-processor communication controller. Pre-requisites. We'll run this example on a Nucleo W155 JC2 board. This board will be connected to PC using micro USB cable. Additionally, we would need one single wire to connect two standard gold pins on the board and this is raster 2.54 mm. We would need as well PC with pre-installed the following software. STM42Q by DE in version at least 1.5.0 and STM42Q by WLQ library in version at least 1.0.0. Inter-processor communication controller IPCC theory. Inter-processor communication controller is used for communication between two cores. CPU1 or C1 is assigned to Cortex-M4 and CPU2 or C2 is assigned to Cortex-M0+. Inter-processor communication IPCC contains 12 channels, 6 per each direction, CPU1 to CPU2 and 6 from CPU2 to CPU1. These channels can work in simplex mode where data transfer is in a single direction from sending to receiving core and it can work as well in half duplex mode when both cores are exchanging data. So after one core sends data, the other one sends a response to it. This is kind of ping-pong operation. Inter-processor communication controller can generate interrupts on selected, means masked channels activities. Once the data has been loaded into shared area, so this is IPCC underscore x underscore occupied flag and once data has been read from shared area and this is IPCC underscore tx underscore free flag. To exchange data, both cores must use the same IPCC channel and the same shared memory buffers so it requires some modification on their linker file. IPCC doesn't handle buffers nor memories so it is up to the developer to handle them. Configuration flow using HAL libraries done with a code generated by STM32 cube mix or STM32 cube IDE to activate and use IPCC controller. It is necessary to enable IPCC's interface clock. Then in case of interrupt mode selection, which is a default setting of cube mix and cube IDE generated code, we need to configure the IPCC interrupt priority and enable its NVIC channel. In case of polling mode, it is up to the user to poll the status of the communication. Most of the configuration of IPCC is done with an user code. So STM32 cube mix and STM32 cube IDE are just enabling the IPCC, its clock and its interrupt. Communication flow using HAL libraries with an user configuration part. So after we will generate the basic skeleton of the application with IPCC using STM32 cube IDE or STM32 cube mix, we need to select the IPCC channel from 0 to 5 for both cores and it needs to be the same for both cores. And then we need to specify the direction of the communication. It should be IPCC underscore channel underscore, dir underscore tx for the core, which would transfer the data and it should be Rx for the core, which would accept the data. Then we need to select the communication mode. So it can be either polling or interrupt mode. Then in case of interrupt mode, we need to implement the interrupt callbacks for transmission and reception. And the last point is to associate the callback to the corresponding channel and direction using HAL underscore IPCC underscore activate notification function. Communication flow using HAL libraries polling mode. To send information, please use HAL underscore IPCC underscore notify CPO function with IPCC channel, dir tx argument. And to know when the other processor has handled the notification, please poll the communication using HAL underscore IPCC underscore notify CPO function with IPCC underscore channel underscore dir underscore tx argument. To receive information, poll the status of the communication with HAL IPCC get channel status function with IPCC channel dir Rx argument. And to notify the other processor that the information has been received, please use HAL underscore IPCC underscore notify CPO function with exactly the same argument. Communication flow using hardware abstraction layer libraries in interrupt mode. To use IPCC in interrupt mode, we need to implement a callback function or functions which will be called at the end of IPCC interrupt. Before that, we need to assign a callbacks. So the function names for the channel and the direction using HAL IPCC on activate notification functions. This should be done for both directions or the direction we would like to use within the selected core. The directions can be either transmit, so Tx or reception, so Rx what you can see on the screen. Then to transmit an information, so after transmission of the information to the shared buffer, we need to use afterwards the HAL underscore IPCC underscore notify CPO function with IPCC underscore channel underscore dir underscore Tx argument. And the callback related to this direction would be called once this notification has been sent because this notification was triggering the interrupt which would be handled by the other processor which has this notification enabled. To receive an information, the callback configured within HAL underscore IPCC underscore I to activate notification function and the Rx argument will be triggered on reception of the communication. To notify the other processor that the information has been received, we need to use HAL underscore IPCC underscore notify CPO with this Rx argument. IPCC in simplex mode. What you can see on the screen is a communication between both cores called processor A and processor B. So processor A is sending some data, so write communication data. After this, it is sending the function HAL IPCC notify CPO which is triggering the interrupt or an Rx direction on processor B and it is interrupt is let's say triggering the read communication data on processor B side. And after completion of this read operation, processor B is triggering again the function HAL underscore IPCC notify CPO which can trigger the same interrupt on transmit side on processor A. In this particular case, it is clearly just clearing the flag on the selected IPCC channel which allows processor A to write next data on the shared buffer. IPCC have duplex mode. Here we can see the communication between both processors, processor A and B. It can be Cortex-M4 and Cortex-M0 plus like in our example. So processor A is writing some data to the communication channel, so to the shared buffer. After this, it is sending the notification using HAL underscore IPCC underscore notify CPO function and it is triggering the Rx occupied interrupt on processor B side. Then the processor B based on this interrupt is reading the data and once it reads the data, it can write any response to the shared buffer. As you can see this channel on IPCC selected channel, it is still on active side. So it blocks processor A from sending new data over there. So after writing the response by the processor B, processor B is calling HAL underscore IPCC underscore notify CPO function which is triggering the Tx so transmit free interrupt on processor A side. This is clearing this channel flag for the IPCC which is used to communicate between both cores and it allows processor A to send the new data over this shared channel. So we can see it on the screen later on. So processor A is reading a response then writing the communication data and after this it is again is calling the function HAL underscore IPCC notify CPO which is raising the Rx interrupt on processor B side and processor B, when this interrupt, it is reading the data, writing a response and it is triggering again the Tx free interrupt on processor A side and we can see this ping pong operation it can continue like this. Interprocessor communication IPCC API key functions from STM32WLXX underscore HAL underscore IPCC.C file. STM32WL HAL functions present with an STM32 cube mix or STM32 cube ID generated code are the following. So the function executed from main function added initialization stage so this is main.C file for both cores is HAL underscore IPCC underscore init function with a handler to IPCC as an argument. Then the function which is executed from HAL IPCC init to set the priority and enable the interrupt from this for this peripheral it is HAL underscore IPCC underscore MSP init function and it is a starter with an HAL underscore MSP dot C file for both cores. So those two functions are generated automatically by cube mixer cube IDE. Then we've got as well the skeletons of the functions of an WL underscore IT dot C file so the file for interrupts and we can see there already HAL underscore IPCC underscore TX or RX underscore IRQ handler so there are two separate functions for transmit and receive direction for IPCC peripheral and those functions are generated automatically and start within this interrupt dot C file. Configuration of selected IPCC channel with activation of its notifications via interrupt is done by HAL underscore IPCC underscore activate notification function. It requires four arguments. The first one is IPCC handler. The second one is IPCC channel. It can be the number from zero to five. Then there's a direction so it can be either transmit or receive what we can see on the screen and then the last argument is a callback function which will be called at the end of the interrupt service routine in case of interrupt trigger. The return value can be either HAL okay means zero and it means that the operation was successful or HAL error which means that IPCC was busy not initialized or its handler is not defined. It is possible to deactivate notifications so interrupt triggering on select channels using HAL underscore IPCC underscore deactivate notification functions. It needs three arguments. The first one is IPCC handler. The second one is selected channel. It can be number from zero to five. And the last argument is a direction so it can be either IPCC underscore channel underscore DIR underscore TX for the transmit direction or RX for the receive direction. This function will return one of the values either HAL underscore okay once the operation is successful or HAL underscore error in case of any problem. So it can be IPCC busy state or IPCC can be not initialized or its handler is not defined yet. One of the most important functions so when IPCC HAL library function set it is HAL underscore IPCC underscore notify CPO. This function is creating a notification to the core the course about operation on the shared buffer. So write or read operation in fact. So it requires three arguments. The first one is IPCC handler. The second one is a channel. So it can be from zero to five. And the second one is IPCC channel direction so it can be either transmit so TX or reception so RX. Once we activate the notifications this function will trigger an interrupt on the second core informing it about the change in the shared buffer. Thank you for watching this video.


And this title is a quick bait. I'm not going to talk about the simplest gem you'll ever use. I will be talking about the gem that I created some time ago. And it is pretty short, probably not the shortest one. So recently I was checking what are the actually simplest gem that I'm using around and I found a few that are, I found plenty of gems that are below 1000 lights of code. Surprisingly, most of them were related to JSON, I don't know why. So one of them is active support JSON encoder, which fixes some issues that appeared in Rails after they changed the library that was encoding JSON. So this gem in 200 lights of code provides you some functionality. Basically they fix what they broke. Then you get another one, which is Rails pass, patch JSON encode, which fixes JSON in Rails as well, but it fixes the performance. So this gem provides you some value in 35 lights of code. And then the last one, the really simplest gem that I found, and this is the simplest gem that I'm using, is called all-JMIMI JSON. And it provides you some value in 10 lights of code. However, this gem, the only thing that it does is that it replace the JSON library that you use with the optimized JSON, which is written in C and makes it way faster. So you don't need to change anything in your application. You just load this gem and it replaces the library. So 10 lights of code and you get a much better JSON speed. So the gem that I wrote is called SimpleOperation, and it's a version that I wrote 10 months ago who had 33 lines. And last night, I added two new features, and now it's crazy. 40 lines of code, 42 lines of code. So it is not the simplest gem that you can ever use, but it's pretty close. This gem, as its name suggests, it implements operations. So what I call operations is sometimes called actions or services, and these are basically classes that allow you to perform some set of actions. So as I see it, I treat this operation as kind of a function. So it has inputs and it has output. I provide parameters and I get the result. So I build a class that behaves like a standard function, and I do it because it might be a bit more complicated than a normal function. I want to have some private methods in that class. So that's why I use a separate class to perform a single operation. This class has one public method, except for 50. It has because it's Ruby class and every Ruby class has 50 public methods. But I'm only just one public method, and its name is co, and I will explain you later why. I name these classes with verbs, so I don't call this class user creator, or I don't call this class checkout, I just call it create user or make a booking. And what I try to do with these classes is to prevent it from keeping any state. So you use it as a function. It doesn't hold anything inside. You have input, output, and whatever happens between is not available later. So I will show you an example of what I do. An example is that I want to select valid records from an array of records that I provide. So I create a new class that is called select valid records. It inherits from my class simpleoperation.new. And simpleoperation.new with some parameter will return you a class. So this is, if you use struct class in Ruby, you will find it very similar. Then I define the method call, the only public method at 95. And whatever happens next is just private. It's just for the purpose of running this one method call. And this is the whole class. This class behaves like a function. And I call it this way, I validate records dot and then I provide parameters in parenthesis. So this syntax might seem quite weird to you because it is not very common. First, because normally when you create an object you do class.new. And then because here after a dot you've got parenthesis right away. You don't have the name of the function. So validate records, this class simple operation defines a call method on a class level. That's why when you do this you actually, what you call is validate records dot call. And Ruby has this nice native syntax sugar that when you have method called call you don't need to provide its name, you just do dot and then you use parenthesis. What's interesting is that this class behaves exactly the same way as croc or lambda. So I find it interesting because I can provide either lambda, I can provide block of code or I can provide this class and it behaves exactly the same way. You just put dot call and it calls it as a function. Now another feature that I have is that sometimes you need to return something more advanced than just a simple value. So usually in such case you can use multiple return, so you can like return 1, 2, 3. But I don't find it really convenient because then the order really matters. So you need to remember what is the order of arguments, order of results that this function gives you. So that's why in simple operation on the class level you have method called result where you define what you will later return. And then in my method call instead of giving return in the end I call result and I put their values that I want to return. So now instead of having just a simple array as a result of this function you've got a struct that has named fields. So it's much more convenient than having multiple values returned in specific order. Now let me show you the code of this gem. So the whole gem consists except for all these gem spec license, etc. It has just three files, one of them is version, so it does almost nothing. One file is extension that I just added for fun and I will explain in a moment. And now this is the whole gem. This is everything, this is its whole body. Let me just make it bigger. Is it enough for everyone to read in the back? It doesn't become bigger than one. Now, can you read it now or still pull? It will go larger. It will go larger. Now? Good. Okay cool. So this is just like 37 lines of code here. So there are a few Ruby tricks that I used in this gem and I wanted to share with you. Some of them I already presented a few months ago on the five random Ruby tips. So first thing here is what I do in a simple operation is that I override the method self.new. What it does is that when you call simple operation.new it doesn't actually return simple operation. It returns something different. So for example, let me show you here. For example, if you hate your coworkers, you can do something like this. class hash that self.new return an array. And now if I do hash.new, it returns an array. And then you will see them banging on the wall. So this is the way that struct also works. And this is the way that my gem simple operation works. So it returns you a different class than the simple operation. Now what I do is that what I return is the class.new. So I return class object. So this is alternative syntax for creating class in Ruby. So you got the class and then the name and this one. This one is way slower. It's like five times slower. But way you don't define class on every call of your function. You just do it usually on the start of your application. So this speed doesn't really matter. But what it does is that you can define the class inside some method, inside the body of a method. You can't do it with the native class syntax unless you use the eval method. So now I'm defining the class. This class takes first, it evaluates the block. So whatever I do in simple operation inside the class will be evaluated another new class. Then class eval also can take string as argument. So I couldn't provide this code as a native code. I had to use the string because as you see I have the list of arguments with nils. So it's a string so I just embed this string here. And whatever I put here is later interpreted as Ruby code. The next thing is perform method which I added here just for the purpose of compatibility with something like delay job. So I often use this in the background and just because I didn't want to write this method perform myself all the time I just added here. And then you've got a few private methods. So first is all add reader with the arguments. I added it as a private because I don't want people to use this from the outside of the class. This class is supposed to work as a function. The only way to reach it should be via the call method. And then this thing result. So first result is the class method we sell. And it basically defines the structure. You write the arguments there and it creates a new struct, a new class that will be representing later the result that you return from the function. And the second one is with the same name but it's an instance method. It's not a class method anymore. It basically finds this result class that I defined above and it returns instance of it. I did it via this instance variable get. And this is because I didn't want to make this public once again. And I didn't want to write any method that returns it outside of it. So I just used instance variable get. And that's actually all the code that is here. The only thing left is the extension file which overrides which adds the new method to kernel module. So kernel module is basically everywhere in any of your Ruby applications. You've got included kernel module. So now you can call something like... So now I can do something like simple operation new. And it works. And if I require the extension, what I get is also that I can use it as a method. So I just call simple operation. So it's both names of the class and it's the method. And the same works with array. So you can do array.new. Yeah. And then you can do array. And it works in a different way but still works. Okay. So that was the code. So the tricks that I used here is that I'm overriding the class new. I'm using class evo which is a metaprogramming technique. I'm using class method as a method name in the extension that I showed you. Assigning class to a constant. I didn't show you this one. So you can do something like... If you do class A, let's say class A. I'm going to find something. You can discuss. So this is one way of defining it. But now what I can do is that I can create a new class. You will inherit from A. So I'm just basically assigning the result of the class new method to a constant. It becomes a new class then. So this is another thing that... I think it's a very neat but not very popular Ruby syntax. And the last thing that I do is that I use dot and then parenthesis instead of calling the call method with its name. If you're interested in it, the gem is on GitHub. I've been using it for, I don't know, almost a year. And I use it in all of my applications just because this pattern that I'm using is so common. It is somehow related to train laser library. If you've heard about it, it's like an architecture on top of Ruby on Rails. Nick has this whole set of Ruby gems that he uses to facilitate his work with Ruby on Rails. And one of his gems is called operation. It's somehow similar but a bit more complicated than the concept that I'm using. I think that's it. If you're interested in such stuff or you're hiring at Caligo, we're hiring Ruby and RLang and Elixir developers. And if you have any questions now, don't hesitate to ask. No questions? Okay, go. Thank you very much.


I still have my Christmas tree up cuz I haven't put it away yet and also that's not a window That's a weird modern electronic fireplace thing. The place I live is not on fire. Hello and welcome to Kyle talks about Writing I've been experimenting with long-form content. They tend to involve a lot of research So I do write them all out ahead of time and then I you know perform them very Professionally kill me while his son is watching cut that part But I have some topics I wanted to cover that I thought would actually work better in sort of a free form Format I've obviously covered superheroes already exclusively. I do think about other things I think my brain just gets clogged up and I have not stopped thinking about superheroes For like ten years who am I kidding? I've thought about superheroes my entire life That's literally what I grew up on I watched the spider-man 90s TV cartoon And I read my dad's old Marvel comic books and I played spider-man video games It was mostly spider-man plus other people who tended to show up in Spider-man so I was really familiar with the Marvel heroes as a little kid and when they started being produced as films That was just like a dream come true. I still can't believe the MCU Happened honestly like just the sheer scale of the cultural phenomenon that is the MCU I don't think will ever happen again And I never really agreed with people saying that the early superhero films weren't cinema or weren't as good as I don't know Tarantino movies I like using food analogies to talk about films a lot and my comparison for that has always been like if you wanted Ice cream and someone was like oh no no no you should go have this steak at this restaurant in Paris great advice But I don't want French steak. I want ice cream. That's why I'm going to Baskin Robbins I just think it's all equally valuable You know like it does it just depends on what you're in the mood for from my perspective the MCU is effectively dead Despite whatever Disney keeps trying to sell us it all culminated an end game and they had those cool credits Worldly actors signed their name and then it was and then it was done That was all that needed to happen. I obviously care way too much about superheroes But also I think the MCU is kind of like looking at filmmaking under a microscope a lot of issues I have with big movies and giant studio productions are specifically really apparent in the Marvel films And like I said, it's been like ten years I've had a bunch of other nerdy friends who I talk to constantly about all of this stuff Collectively, we've come up with all of these weird terms and rules and things that we've learned about writing by just Observing what Disney has done with this one franchise I figured I'd start today with something I learned during phase one of the MCU A rule that we developed and have referenced multiple times in our own writing that we call Asgard isn't interesting In the early days they were much more dedicated to making each character's film feel more like its own genre Iron Man felt like this, you know modern story about a tech mogul coming to power Captain America felt like a war film at least the first one kind of seemed like it was supposed to and then Thor was Fantasy they all ended up as kind of watered-down versions of the genre They were going for and arguably would have been way cooler if they had kind of leaned into it more But that's probably a whole other video Thor is the Norse god Thor like the literal Actual god and he's from the actual land of Asgard which we see and it's absolutely beautiful It's this giant city of gold They clearly put a lot of work into designing the visuals and it's a steady location through several other films multiple characters come from there Probably second only to New York City as like one of the Marvel's central locations and yet every single time anybody goes there I suddenly don't care about anything that's happening. It was hard to pin down exactly why for a while This happens a few other times too as they kind of extend the MCU into space I feel like Guardians of the Galaxy has this issue slightly though Not nearly as much and then an infinity war half the film feels like it takes place on this barren planet where they're fighting Thanos I just start tuning it all out It's like there just isn't anything for my brain to grip on to and this isn't just a problem in the MCU Which is kind of the whole point of these videos and I'm kind of a writer But mostly I just pay attention to things that don't matter I think the next most obvious example of this problem is occasionally. There's like a big blockbuster Original sci-fi film or at least one you haven't heard of before. It's probably still an existing thing The recent ones that come to mind were like that one with Eddie Redmayne as the villain Jupiter ascending and then there's another one that isn't that one that stars The kid that plays the green goblin in the amazing spider-man 2 Dane de Han that's his name Why is how is that his name and that girl that looks just like him, but they aren't related in the movie Valerian in the city of a thousand planets you know in 2017 I thought that was way more recent than it was the other person is Cara Delevingne And they do look very similar in that movie for some reason I feel like I made a point though, which is that I don't remember either of those movies And I watched one of them all the way through and I'm not even sure which one it was I had to have been Jupiter ascending and it feels like there's one of these like every couple of years I know I've seen trailers for similar sci-fi films more recently than 2017 and if it's not sci-fi It's some high fantasy thing where a chosen one kid has to go fight an evil king And the problem is not they're repeating the same idea over and over again But whenever I actually watch the movies and don't just ignore the trailers The problem seems to be yet again that Asgard isn't interesting if you create this whole big fantasy world That is nothing like Earth filled with characters that don't talk like us don't really look like us Don't dress like us. Don't follow our customs say sland and the war of the seven Dr. Seuss monsters it doesn't stick in your brain because you've never heard any of those things before in your entire life There is nothing in these movies to ground us when everything is unfamiliar It becomes really hard to stay invested in the story stories work best when we can immediately project ourselves on to someone or something Happening in the scene and it doesn't take much and it can happen in worlds that we aren't familiar with That's why Lord of the Rings and Star Wars are all popular. They may take place in different worlds They may have observes elements and use crazy wacky names and we don't forget those details They're made up names become part of our regular vocabularies We may even name our kids after them the world's become places we want to visit We can actually remember details about it and could probably navigate it if we suddenly showed up there But Asgard never became one of those places for some reason and again It's not just that those films did it first and now anything else feels like it's Copying those originals most of the time. They're actually not successfully doing the same thing at all Oh you Star Wars as an example since every writing class in the world loves to use Star Wars as an example Star Wars could be textbook Asgard Nothing there is familiar. It doesn't take place on earth. None of their names are anything real There's aliens walking around people with funny heads and robots except that that's actually not quite true We start out on a kid on a farm named Luke Lord of the Rings is the Original dense fantasy, but in the movie a lot of the Hobbits lives feel very relatable They're just little guys enjoying food having a holiday. They're just like British people the familiarity just being present though is not quite enough when you're being introduced for the first time To a massive world that you don't recognize there is one extra step that tends to be forgotten and it is that the audience Needs to learn things. I just praised Star Wars for actually not explaining everything that was going on in the world They walk into this cantina full of aliens and they're all just kind of there They have nothing to do with the scene They don't really interact with the main characters in any way and just kind of shows us that this is what goes on here But there's a difference between adding flavor to your world and expecting your audience to just kind of be on the same page From the get-go like I said earlier the audience needs someone to latch on to that's sort of how stories work In fact if you're ever stuck Starting a story the easiest cheapest way to grab your audience's attention is open on a scene with a person Struggling in that guy that we see could be billionaire Tony Stark But if the first thing we see happen to him is that his car gets blown up and he's scrambling around for his life We are now that snarky billionaire even though we're not anything like that guy breaking bad does this all the time Including the lack of context in the first episode the zoo has crashed his RV and he scrambles out of it in his underwear Completely terrified holding a gun and you don't know what's happening, but he's certainly having a bad day It's important that we are on the same page as some of the characters Experiencing that world if everybody in the world is familiar with where they are Accept you then it feels like it's not for you you feel Disconnected and like you don't belong you weren't invited You just become more of an observer and you're trying to pick up the details of what you're looking at and without that Baseline it becomes much harder to tell like is this normal are these people reacting to this thing in a way that? Somebody else would in the same world Luke doesn't react to the aliens in the bar And we know that means those are normal because he does react like a normal teenager when he's told he can't go Fly jets for a living. He's disappointed that he doesn't get to go do the thing that he wanted to do He's tired of being on this planet. His life is similar to ours and all these core ways So when he acts differently to something than we would We know that that's normal for him to and then when he acts surprised by a hologram popping out of the robot He just bought we know that's unusual my favorite recent example of this in media is actually the anime attack on Titan You have no idea what's going on in that show I wasn't supposed to none of the characters in the show knew what was going on either They were all trying to figure it out and when they got new information They would put it together with what they already knew and they would learn something new about their world That then I also learned at the same time because I was watching them figure it out anime actually does a pretty good job Most of the time of using normalcy to Established context and boundaries around the ridiculous fantasy situations that they introduced one popular example of this I've heard is the persona series. I've not actually played them myself But they did ask me to promote their new game for it's an actual ad. This is real. It's an ad it's 60 seconds I need the money. Hi ad Kyle here wearing a sweater because I got cold and I still didn't take down the tree Persona 3 reload is the captivating reimagining of the pivotal game of the persona series faithfully rebuilt with cutting-edge graphics Modernized quality of life features and signature stylish UI basically a ground-up remake of persona 3 Which I'm actually pretty excited about because I've been wanting to get into the persona series for a while The story is self-contained and you don't have to have played any other persona game to get started on this one It's like an alternate universe modern-day role-playing game with fantasy elements Half of it is like this social focused role-playing story and the other half is this Strategic fantasy combat system where you battle people with your persona sort of your characters avatar in this other world Both sides affect each other you develop relationships with all the other characters in the game It's all about the meaning of existence in your own mortality all that fun stuff And now you can play the game without having to go back to the old graphics from forever ago It's available on Xbox series XS Xbox one windows steam PlayStation 5 and PlayStation 4 is good because it means I can play it It's available for pre-order today, and it launches tomorrow February 2nd Be sure to check out our link in the description to get yourself a copy and also to support this channel A counter example of that would be lost which frustrated many people by being too mysterious And I think part of that is that there were a bunch of characters who would show up clearly knowing What was happening and just not telling you and I created that disconnect where you were like, okay Well now I'm just kind of watching something that I'm not a part of and don't understand when we're first introduced to Thor He's fighting a bunch of big monsters. We don't know on an ice world. We can kind of piece it together He can laser from one planet to another. He's a prince. His dad is a king He's a spoiled rich brat who needs to be taught a lesson And I think it never really gets fixed because while Thor talks about Asgard to his earth friends There's really no interaction all the way up until Thor Ragnarok Even when he brings Natalie Portman back to Asgard in the second movie They don't really use that opportunity to give more context through I don't know her reacting like a normal human being I'm pretty sure she kind of looks around in awe and makes some Observation that one of their devices is like some science that she heard of once But imagine if he had brought Tony Stark back He would have had some things to say some like normal human interactions like you guys have a lot of gold Or why is everybody wearing such ridiculous hats? There a ceremony going on or is this just the style these days? I don't know questions that like you probably Would have if you visited a foreign country even because no one in the movie asks them We don't ever get any context We don't know the answers and so it just stays uninteresting I know I'm not the first one to figure this out But I don't know it's just stuff that I think about a lot and it also always feels obvious like once I learned something I think well surely everybody else knows this and I'm just behind But maybe I'm not and this was interesting and maybe even helpful if you're a writer and you get stuck on things like this If you liked it or hated it, I'd love to know I have plenty more topics to bring up if you did enjoy it You might be able to tell by my general demeanor and face that I still haven't slept, but you Can help make that happen after the last video that I posted up our patreon actually went up by like $700 we have two or three hundred new people And I just want to say thank you so so very much I said that if we hit $4,000 by the end of this month I would take better care of myself and that motivated a bunch of you to go donate money and that's incredible You're amazing. Thank you. I'm still aiming for that So if you're interested in seeing more of these videos and in supporting me making them head on over to patreon.com Slash door monster you can get more content I do streams and podcasts and you can get bonus rewards for higher tiers But you only have to give a dollar every little bit helps and The more it goes up the less stressed out I get about finances So everybody who has donated already you've genuinely made a huge difference And if we can raise about another thousand by the end of the month I will do the Kyle sleep stream and I will live stream myself sleeping an entire night So you can all know for sure that it happened. Thank you for watching. I hope you have a great weekend and I will see you soon


the U.S. Marine Corps, Admiral Paul Daphne Zuckumst. I'm the Maritime Administrator and I'm representing today the Secretary Anthony Fox of the U.S. Department of Transportation. The Maritime Administration's broad mandate is to keep the trend. This presents significant risks to our nation's ability to execute our operational contingency plans. That is because anything the unassisted, existing and emerging trade routes that will magnify their global presence and their economic power.  That power allows the U.S. to influence the daily choices of our allies and trade partners and its presence just as densely combined. This year so coming down the home stretch and this will define the Coast Guard as a maritime service and in the President's budget request for 2017 there is $150 million in that to start like they did 20, 25 years ago. That generation of pilots have now timed out and they're going to our pilots with 3, 4,000 hours of cockpit experience and they'll never have to move again. It is a growing scenario but at the end of the day I remain bullish on the United States Coast Guard. Thank you very much. Thank you. You can see those of you that represent the research and development community, that's a global enterprise as well. And then finally it's a privilege to share the information domain competed in the technological world. I think a key part of the solution will be to explore new architectures, new formations, new ways to get at this challenge to ensure that just as he said we're using our current resources as U.A.'s our industry partners point out ways that we can be more effective in that partnership. And then there is this international partnerships and so it is encouraging to see so many internationally sure that we would hope that that competition does not migrate into conflict which is a form of competition that I think we all would want to avoid.