Call to order. This is a special meeting of the Sheboygan Common Council and as is customary the Poet of the evening will be read by Sue Richards our city clerk. Thank you mayor I've come to believe that my past failure and frustration were actually laying the foundation for the understandings that create a new level of living Thank You sue Roll call, please Warren here Bulk Bowers Decker Gisha Hannah Heidemann Cough Kittleson Clowness Montemay or excused Rindflash Cirque Vanderweel Voo and Wongamon 15 present. We have a quorum Alderman Cirque, please lead us in the Pledge of Allegiance Thank you. I pledge allegiance to the flag of the United States of America and to the Republic for which it stands One nation under God indivisible with liberty and justice for all. Thank you Thank you, man report of officer S3-1 by the city clerk submitting a complaint demanding the public removal of Bob Ryan as mayor filed with the city Clerk on the evening of October 6 2009 Along with the city attorney's opinion as to whether the submittal constitutes written verified charges brought by a resident taxpayer For purposes of the Wisconsin statutes relating to removal of governmental officers President Gisha Thank You mayor Ryan motion to file based on Explanations previously given We have a motion and a second under discussion Turning McLean would you like to comment first or you want to excuse me? Okay Turning McLean, we have Alderman Rindflash asking for your comment. Sure. Thank you. I believe all the alderman have copy of the Memo I provided to the city clerk the day after she provided me with the The paperwork that had been provided to her demanding the removal of the mayor When I looked at it First I was struck by the format of What's the title complaint and I think it boils down to what these really are in my view is a petition submitted by a number of city residents Each of the pages is identical just with the blank lines 10 lines on each page to be filled in It requests removal proceedings, but under the statutes under 1716 of the Wisconsin statutes The the statutes require that Removals from office for cause under this chapter may be made only upon written verified charges Brought by a resident taxpayer of the governmental unit of which the person against whom the charges are filed as an officer Written verified charges is more than just a petition Verification requires some sort of acknowledgement oath or affirmation of the individuals that what They've stated they declare as true to the best of their knowledge or True to the best of their understanding these Complaint pages there. There is no verification on there. They're just Signatures and in fact I would note in some cases They're not even signatures. They're just Handprinted names So on that basis Really without going any farther In my opinion that does not constitute written verified which gives the council jurisdiction to proceed with removal proceedings I Also looked at the issue of whether or not There are really charges and I guess What is a charge and what isn't a charge? Is There's no bright line test for that but here in these complaints. There really Wasn't any conduct alleged at all. It was basically Conclusory that the Conduct of the mayor which really was not identified has caused the scandal so I think from the standpoint of These being charges These complaints would arguably be defective, but I guess the bottom line is it's not Verified and the statutes require that before the governing body has authority to Proceed with removal proceedings So if anybody else has questions, I'd be free to feel free to answer them Thank You attorney McLean Alderman Bowers Thank You mayor right In reading this petition that was submitted by I think some 52 53 people I noticed 90% of the signatures on here are invalid because it could not contain The city The state and I don't know if you need a zip code or not a number of them were printed besides What I would like to point out if and I'm not saying that the people shouldn't take it upon themselves and submit petitions but what you've done is take up the city attorney's time you've taken up the city clerk's time and It seems to me that if these things are to be done, they should be done right This is a amateur attempt, and I don't know who started it But anyway in the future. I wish the people would Take pay more attention to the what they're signing. Thank you. Thank you Alderman Bowers President Gisha Thank You may Ryan if I may address Steve McLean certainly thank you Steve it attorney McLean It seems to me you're written opinion down to the last sentence of the second to the last paragraph of your opinion That reading as follows as such the Common Council should not indeed It is without authority to commence removal proceedings. Is that still your your opinion? That's my opinion, and that's based on the statutory language It says removal proceedings Can only be commenced Upon filing of a written verified charge That was that was the basis of me asking for this document to be filed Do you agree that based on that particular sentence in the document in front of us? That's an appropriate action I think that would be appropriate You know you can treat it as petition send it to a committee if you wished but that would be up to the council I would not treat it as a Qualifying complaint for purposes of removal. Thank you Thank You president Gisha Any further discussion nothing further roll call please born Bulk Bowers Decker Gisha Hannah Heidemann Kittlesen Clowness Rindflash Cirque van der wheel Voo and Wongamon 15 eyes motion passes document is filed Resolution introduced S2 dash 2 by Alderman Gisha and bulk requesting that mayor Bob Ryan be officially censured due to the Embarrassment is recorded the actions have caused the residents of Sheboygan and to the office. He now holds President Gisha Thank You your honor. This is in follow-up to our last meeting where myself and Alderman bulk Made a promise to bring this to the council. I appreciate that this be called as a special meeting that was greatly appreciated it's sometimes easy to Sweep things like this kind of quietly. I appreciate the fact. It's being up front a special meeting that was not I think that's extra Special and good for the city that is being done this public way I move that this resolution be put upon its passage. You have a motion in a second Any further discussion Alderman both Mayor I would just reiterate what I said at our last meeting is is that and based on counsel from attorney McLean What some folks wanted to see done. We don't even have the authority to do in the world of division of powers where legislators can do things to executives and Their powers are separate and there are checks and balances. This is what we can do to send a signal to the mayor That says we disprove of what you did and it's been an embarrassing thing to us and our Constituents so I urge the people in this room to support this by voting aye. Thank you, mr Thank you, Alderman bulk and as I stated myself I will accept this center with dignity in order to move our city forward This is not this does not come to me in a manner that I don't deserve So in order to move our city forward to put this chapter behind us I do accept this and I hold no animosity toward anybody Good turn to McLean Yeah under the Roberts Roberts rules of order which is really what we're dealing with here. This is disciplinary proceedings of the governing body itself There's two types of conduct that are covered by the disciplinary provisions of Roberts rules one dealing with Conduct occurring within the body itself during a meeting and the other is outside the meeting those procedures dealing with incidents outside of the conduct of the meeting Roberts rules provide for more due process and Opportunity for hearing and that sort of thing and just so we're clear on the record. It's my understanding that the mayor is willing to waive any rights to any sort of Due process hearings and I'd like to get that on the record. That is correct I have waived any any any rights in in order to move this process forward Alderperson Clioness Thank you, your honor. I guess I also speak I think we represent the city of Sheboygan and So it's not just an action by this body. It's an action by the city of Sheboygan that you take this office very seriously You've pledged to do that and you have 48 50,000 people who will be watching you That's right, and that's a that's a big thing to put yourself out for and You know, there'll be times when they'll be more difficult for you to do and others and just know that everybody's watching and Will support you but I I think it's gonna be a tough thing to do because everybody will notice wherever you are and Make, you know comments or whatever make their judgments. So I'd be safe just beware and we're and through your best That's bound to keep anybody honest. Yes. Thank you All the person cut I'm going to pass it this time. Thank you All the way along them Thank you, mr. Mayor. It's been suggested by some that a censor is just a slap on the wrist But I'm here to tell you that I'm sure no one in this council takes it that way It's no small thing. I'm sure you don't take it as a small thing either I think a censor is a Big thing actually it's very important it shows the council's displeasure and I think no one likes to have all his People that he works with tell him that they're disappointed in him So I don't take this lightly and I'm sure you don't either and I take a great issue with people who say this is just a slap on The fingers or possibly an attempt to sweep it under the carpet. Thank you. Thank you Any further discussion None roll call please Bowers Decker Gisha Hannah Heidemann Kittleson Clowness Rindflash Sirich van der wheel Voo Longman and boring 15 eyes motion carries Report of committee 8 s3-3 by the committee of the whole recommending Establishing the community budget goals and objectives and specific guidelines for the 2010 city of Sheboygan budget All the person Clowness Thank You man mere I move that the we accept the report of the committee the whole and put the resolution 7309 10 on passage We have a motion in a second under discussion President Kisha, thank you your honor don't get a lot of television coverage for these things, but This is important step by this council Just as important as other issues and the kind of business that That now will be back into Doing full-time, and I think we're all looking forward to that this document is entitled standing with our citizens looking beyond tomorrow it was put together by the finance committee and With input the whole plus Working sessions within the finance committee recognizing we have some financial problems Increased tipping fees increased taxpayer retirement contributions for our employees reductions and shared revenues maintenance of effort now to include emergency services this Continued mediation arbitration restrictions which makes it virtually impossible for us to be nimble when it comes to our long-term economic conditions It the state has dumped their issues on us Using I think the economy has covered the economy has not caused our budget problems in the city of Sheboygan The economy has exposed our budget problems in the city of Sheboygan And I think this document and the work that's been done via the various committees is dealing with it head-on Just briefly to highlight What this is it breaks our budget unlike the usual paragraph or paragraph and a half Into goals and objectives long-term goals and objectives and three specific points dealing with the 2010 budget Under the goals and objectives, and I'll try to be brief with this But it's important. I think for the citizens to understand what this is and what maybe it's hoped to be the significant Point number one is a significant progress be made before toward Financially sustainable pay-and-benefit goal of 80% or less of general expenditures. That's gotten a lot of talk in this community And it's not just words. We have the data to back this up Finance director Hansen would be happy to come up and speak to this if anybody wants more information Appleton 75.74% of their budget is paying benefits Manitowak 71.6% Janesville 68.27% Wausau 78.69% And we are after star well over 80% prior to star about 85% Pay-and-benefits. It's just a matter of not being able to be financially sound long-term Even though we're a service industry and that's been brought up But not a lot of service industries has to spend millions on roads millions on sidewalks millions on sewers There's not a lot of service industry categories that have those kind of obligations to their citizens We believe public safety is a priority item to however Due to retirement and other reorganization efforts. We believe there's still 3% that can be pulled out of Public safety sectors of our budget They were left alone during the star resolution with patient in that resolution that We expect that to have that this type of look this wasn't a surprise this was telegraphed in the star item 3 Neighborhood needs throughout the city We feel special attention is warranted in increasing inspections and expanding code enforcement and from what I understand with the budget There's a great component that we'll have to do with Landlords and things like that should help us all so I think some of that is in the works We're concerned as a council. It says about fund-balance transfers to kind of fix last-minute holes in the budget There will be some fund-balance transfers the way it kind of works But to use certain fund balances that may be deemed inappropriate It's a notation the council will be watching those types of things and expect explanations on them We believe our employees are item 5 the last item are of great value to the city and their citizens. They're great people and Joy working with every single one of them. However We are asking for a formal training program for employees to bring their skill levels up as their pay goes up and having goals and objectives toward toward personal development and skills development so that as they raise in in Step increases and so forth having to do with the city that their Talents raise with it and I think we've let our employees down over time And I think the committee did too we would be asking them for more But we're not supplying the necessary training that goes along with it So we think they'll benefit from that and in turn in turn the taxpayers will too Now just briefly going to the three specific guidelines and they are very brief We are we are asking for in this document and expecting a zero tax rate increase for the 2010 budget Zero that means the city of Sheboygan and actually with the calculations and the discussions We had at the committee the whole will spend will not raise your tax rate a nickel But furthermore based on that it'll end up that the city's levy the amount of money We take in and put in the checkbook from the taxpayers will actually be less in Coffee shop talk rather than government levy talk that means we'll spend less in 2010 than we did in 2009 by roughly a hundred and ten thousand dollars substantial That's a big deal because oftentimes you can play games with lowering the levy and raising this or Increasing the levy and increase it lowering the rate. There are no games This is saying not only zero tax rate, but based on the calculations that we've done initially with the budget We're looking at the amount that the city takes out their checkbook and writes every year by just over a hundred thousand dollars Upon passage of this budget item two of three the current hiring freeze resolution will be amended and extended to December 31st 2010 and is further now amended to now include all full part-time and temporary positions Just gives us all an extra kick at the cat and frankly the mayor's office an extra kick at the cat when it comes to expanding That eighty five percent figure it goes back to our goal of getting down below eighty percent Final item capital improvement program, and I know this is a an issue with many in the council I know it's an issue in the mayor's office our quumbling infrastructure the kind of things that service industries don't have to deal With that we have to balance Would be a minimum funding borrowing level of two million dollars for two thousand and ten and There was some question regarding the language of a minimum funding borrowing level. We have a cap of three million dollars We set the minimum of two million dollars which establishes a payment for two thousand and ten and beyond of a certain amount based on bond or borrowing level and if Efficiencies and cash can be squeezed out of the budget the that gives the the mayor's office with his budget and all his Department heads an opportunity to increase that up to three million dollars where our statutory cap is so it gives some flexibility yet, can I think makes the point that the council believes that putting Money back into the infrastructure that things our citizens need and use every day of streets sidewalks and sewers and things like that Are of a high priority so I want to thank the the mayor's office for working very closely with the committee and committee members on This and the committee the whole for their their diligence in Discussing this and my hope is in conclusion is that we revert back to this document so often we stick them on a drawer I'm no different than anybody else and And very seldom dust them off But as we're making decisions throughout the year back to the title standing with our citizens looking beyond tomorrow that we use This is a guiding document For making decisions through the years is it fitting into our goals and objectives for two thousand and ten that can help Us all with deciding on how to support or not support various items based on your vote here tonight so That's in a nutshell for the citizens I think the council and the I think the council again and the committee the whole and the finance committee for all their help and putting this together Well spoken Alderman Bob Thank You mr. Mayor. I'd like to add that the labor in a good team led by the acting HR director Tom Rice The the salary and grievance committee has already voted that this document once it's passed tonight will be the guiding Principles for our labor negotiations for this season as well And these are being communicated to the collective bargaining units so that they know that that the labor negotiations team is not authorized to To engage in bargaining that would result in that percentage of our budget that goes to Labor and benefits to that going north that needs to go south they would and that this council will not will not approve that Also, it sends the signal that this maintenance of effort legislation that Madison put through We both the finance committee and salary and grievance committee have done their homework and the The fire department and the police department based on principle number two are being made aware that that doesn't isolate them from certain cuts And that that 3% expectation is still there so in short mr. Mayor this document Not only will it be referred but it'll be the guiding principles for the negotiation team as we begin negotiating the next contract Thank You Alderman. Mr. Mayor if I may if I may speak for a moment Our finance director Terry Hansen and I have done quite a bit of work on the budget already And we have Monday as our as our deadline to have the preliminary budget done So we have dual coffee pots going and we have the pizza delivery number And we're we've been working on it quite diligently and we're going to keep working regarding some of our departments in conversation with our fire department they have Turned in a budget that they they think that they can meet that 3% goal 3% reduction voluntarily which is which is a big thing for them to voluntarily come in at 3% Below last year's budget and for them to do that voluntarily even though they are under a perceived maintenance of effort Says a lot for our for our firefighters and then for their department Regarding the tax rate increase 0% tax rate increase we've been brainstorming on Basically setting up a different tax structure for our city right now our city is almost a hundred percent dependent upon property tax for our for our government and we're looking at gearing more toward a fee-for-service type of type of tax system Whereas in the initial year and this of course will be debated quite Loudly in the initial year. We're looking at lowering our tax rate up to 14% our property tax rate It'll be more fair. It will be more if we're not increasing our taxes We will be going more toward a a fair-based system based on services rendered rather than strictly the the property tax and It's going to be a lot of work But in the long run it will it will benefit our city when somebody looks at our tax rate And they see that we are in the upper 20% in the state when we can get that down where our property tax rate Is down toward the middle we look much more appetizing as a community both for residents and for business And that's our goal. It's going to take a lot of work. It's going to take a lot of input by the council It's going to take some some big brainstorming by the finance committee in particular, but I think we can get there So I appreciate everybody's work so far to date on the budget. I appreciate everybody coming together tonight I'm looking forward to putting the recent weeks behind us and working diligently with everybody. Thank you Now we do have a motion in a second correct Any further discussion roll call please Bowers Decker Gisha Hannah Heidemann Cough Kittleson Clayunas Rindflash Cirque van der Wiel Vu Wongamon Warren and Bulk 15 eyes motion carries Motion to adjourn Motion to adjourn in a second all in favor say aye opposed We are adjourned


So I'm Ike, I mostly work on Kalk and a little bit in IED in end. I'm employed by Red Hat and Still give me some time to work on this even if not necessarily official, but well, I find some time Hello, I'm Kendi. I work for Kualbra and in the SCI I'm representing mostly the online stuff I'm Stefan, Red Hat, plumping Hello Quella McMurray Red Hat as well and I go with GNOME integration Yes, I guess I'm Michael Meeks and I represent the forces of darkness Now I don't know all sorts of different technical things Christian. Yeah, I'm Christian Loma or Glove and I'm doing the release builds a release engineering and that's why I have a seat on the ESC I can use this This way. Hello. I'm Miklo Schreiner. I'm very bad at updating minutes as you see Otherwise, usually I'm doing writer things and whatever else is necessary Yeah, I'm Olivier, I'm Olivier. I am with documentation Lionel, I work a bit on base in my free time I'm Gabriel Representative from one and one just for a month. I think member of this committee nice meeting Hi, I'm Michael W from the city of Munich and not really representing one specific topic Hey there, I'm Thorsten work for CIB Yeah, I'm pretty much on everything that nobody else wants to work on Oh Hi, so I'm Gisco. I work for TDF and I represent quality assurance in the ESC meeting I go from TDF and I'm here in the ESC for a user experience Cool, so we run a call every week. I guess and It's really very open for people to turn up or not turn up and plenty of people take that opportunity to not turn up So that's that's great. And we we write some minutes at the end and it's just really I guess the heartbeat or the rhythm of You know, some of the engineering that has to be done We just check in compare notes and see see where everyone's at and communicate. Hopefully So, yeah, everyone is welcome to join if they so wish Do you want to go through things? Nicholas, is there a Sure, so perhaps we can explain back. It's mystifying sections in minutes. You never understood So Regarding the Yeah, so we have this funding action item for Sophie to check with a little bit With the Libre Office conference heck best we could page a guest that's either done or no longer interesting Or we don't have Sophie or perhaps all three at the same time Yeah, and from last week there was this action item to backboard that Patch that was the result of the discussion of the regarding the is equal to be slash firebird migration That's his code. Did you do that? I can answer it has been done. Yeah, it's has been great. Thanks Then we would have the release engineering update So if you are walking away I know the status is that the six three two RC one is on the mirrors currently and the Tagging for the six three two RC two is going to happen the week after the conference so probably next Wednesday and The six to eight RC one is the week after that the last week of the timber basically and Yeah, and now we are also getting closer to the 64 alpha which is mid-October So, yeah, if you have experimental stuff then now is the time to get it integrated to have enough time to polish it for the alpha and Yeah, just not delay your major stuff What was the three point six star The is six three two RC two will be tagged next week May I remind you on the release plan 6.4 release plan is not online. It is online. It has been since two or three weeks Okay, sorry that case. Thanks Do you want to say anything about the remotes or the hundred year? Yeah, I know it I mentioned yesterday to me that the Android viewer master the arm-based one Crashes on every file operation. So something needs to be tracked down white crushes But yeah apart from that No updates And and I think with this new requirement to have us 64 bit version Yeah, and have a patch working to build a 64 bit version, but It'll be external the nss But need some tweaks and yeah, but it's in progress Okay, thanks. What else?  So Some tinder boxes didn't build during the time frame As far as I know it's back online again. So it should be available for all platforms and Torsten also Restarted his own windows tinder box. So there's another source for for Windows daily builds again Yeah, when it finishes it does I Was there was an issue with the with the JDK Jre update It's not but it's now hitting or UI test problems Like every other build is failing now And I think the signing thing that's also a bit of an issue I don't know is that something you can fix or yeah, I fixed the signing thing basically I changed the signing operations to better allow for signing with a private key on a smart key on a crypto device So you don't have to enter the key so many times But I use the variable that is set to an explicit false and set to empty like other variables And this broke the packaging on the windows build, but this should also be fixed right now Let me check. So if it's succeeding then and no UI test is failing then it should actually upload something Are there other get mirrors that are hot of our Garrett mean is there a good lab or a get how we have an active replication to a get up to launch pad and To free desktop. Okay, so if free desktop starts to flake we can encourage people to migrate to something better potentially Yeah, yeah, or they can also just use a carrot. It's also Accessible without authentication And it's any other commands regarding real is engineering No, then we would have the documentation update Olivia you want to share us with something this week on the maintenance and Updates in terms of translation for the online version on master and six point three No more developments for the new help but not yet ready and On the guides, it's still starlet Google's season of dogs, but we have some work already started by the technical writer and With the outline of the documents so it's progressing on time Okay, thanks Any questions to Olivia If not, then we would do you the UX update haiku are you you are here? Great? Yeah, thanks. We have a long list of contributions contributors Numbers of tickets that require input from the music experience or design perspective And what I do every week is to copy all the new tickets just to draw a bit attention on what people are interested in I Pull the data out of the RSS feed. That means it's not only new tickets that are listed here, but also tickets from the past that get a flag needs your eggs and Since I'm very really badly prepared. I don't have a list for this week. So Yaks is on hold what I did here is to put in two examples from That's the latest two tickets that have abses flag and usually I highlight things that are interesting from my perspective that I think it's Something worse to consider in a larger scale if it's Crazy idea or if it concerns just Visual changes I don't highlight it. So sometimes it's nothing and I have no idea what has been Was what came in this week? Okay, thanks Any questions to haiku So then we would have the crash reporting section. This is done Yeah, I don't have anything particularly up to date this week. I launched the crash testing script, but I can't As I say chin to see if it's still in progress or if it has failed So the numbers are the same there as last week to import failures to export failures There are better numbers I have seen better numbers I've seen all zero, but I think it's fairly a random that happens Converting that 35 which is the same as it was last week So no great change there and the Google fuzzing hasn't found anything at all this week What's new this week then is that I've announced the two latest CVs 2019 285 4 and 285 5 Which gives us eight? CVs that we have had since we became a CV numbering authority They asked us initially how many CVs we need and seems we only ever used two previously I felt it was foolish to ask for two so I decided asked for ten and it looks like we're going to have to go back and ask for another block of ten With these most recent round to see these there are fixes for our previous efforts, which in themselves were fixes for previous efforts so additionally in the latest releases we've changed The behavior of the core issue which is these scripts that can be run without prompting the user that they're being run I've been changed to be covered by the same macro security Handling that we do for ordinary macros so any documents that hopefully documents that contain calls to these scripts Will themselves be flagged as containing macros even though the macros that they refer to are actually the pre-installed ones So they'll fall underneath the same macro security, which will hopefully give us an extra layer of protection there So even if we have failed yet again to block these issues then either way we should fall back to the next layer Which is that this document is an untrusted document and could do anything Are you sure you want to do that? So hopefully that will bring this saga to an end and that's right, but Okay, thanks Then we would have the crush reporting Section Cisco, is there anything unusual that you would like to point out or? Hello What I said last week in 6.3.0. We had many classes related to the Dynamic number of columns worked on by Noel. It seems it speaks now in 6.3.1 At least first week the numbers are much better. So we have 800 Crushes while in 6.3.0. We had the first week 2000 crushes, so we are getting better there Okay, thanks We still don't have Sophie, right? Okay So we normally have a section for hackfasts and events and trying to discuss how to distribute people and so that There is always at least one or two mentors on each event So I think Torsten knows about the Google Mentor Summit hackfest. Ah, you did You want to say anything about that? Maybe again the call for Or the invitation to participate at the potential Munich hackfest There's a helpful link in the minutes. If you click on that you find a registration table And if you will be at all interested in potentially coming there's no There's no it's no commitment from your side But so that we can gorge the interest and either hold the event or not Putting your name there that would be really quite great If you could do that by the end of the week that will be even better As well with a bit of lead time also we're pondering perhaps to do some hacks Hackfest ng which requires some mentoring On-site and it has a bit of a lead time there so I would think probably Everything below 10 people doesn't make that much sense that will be my Mike my aim To get 10 by the end of the week and it looks like for the moment. That's probably gonna be before the mentor summit That will be 17 18 of October I This date So did the summit is on the weekend Saturday Sunday, but it's the 19th and 20 exactly So 17 18 will then be Thursday Friday before that Which sounds ideal? Michael, can you can you make it? And now I've got a corporate event that unfortunately so me make large candy and rush count But it's possible. So neither before nor after Before I can't offer have personally something but others might be able to do after but I think there'll be a gap Okay, so no harm. I mean this was a bit of a crazy idea with the And also there's quite a lot of other open source people in Munich at that time So from if we get some critical mass there and perhaps making doing some outreach and inviting other people over To fill the ranks, but it doesn't make sense if there's just two to the bro for suckers there on site to do that, obviously Okay, thanks Then we would have the G socks section. There will be a separate g-sock panel so just Torsten or Cisco or I grow you want to give us an update on just in summary where we are Everything is done finished passes down So maybe then I'm just a reminder that all the mentors, please if you don't have a student here Demoing the project. Please send me some slides me or Heiko Before tomorrow when we have the G-sock panel Before tomorrow means today Let's say I need I need some hour to paste it all together. So if you would give me that Much time that would be appreciated and then of course if your student is not here It will be really quite helpful if you could then be on stage as a mentor and present the work otherwise I'm not sure I would do justice or Heiko to the project So so I realized that there might be conflicts So of course, obviously then we'll find another way Okay, thanks Okay, then we would have the mentoring or easy hack update. This is actually up-to-date stats, which also shows that this week we did not have a first-time contributor But then we go double clap on the new contributor next week Regarding commit access anybody want to propose somebody to have commit access or None this week. So normally the way we do this is that in case there is somebody who does already quite a nice work And there is little value in forcing somebody to be reviewed for each and every commit for master then He or she is proposed in this meeting and then we discuss if there is anybody objecting If that's not the case then we send some welcome mail to the developer and I Teach that actually this is this means that now it is necessary to take part of the review process and how about its reviews Developer certification, I guess that's still sleeping for four more weeks Christian any young kids are see I update and why I Didn't prepare any stats this week, but like more like if there is anything unusual that that is worse nothing No, I don't think so At least I'm not aware of any problems currently Okay for the third time. We don't have Sophie. So Yeah, I can say that your web light is in the in the public testing Now and I will have a talk on on Friday morning at 10 o'clock Basically giving a summary and being there to basically summarize the feedback we have gotten of so far but the short Summary is that we will likely switch to web late So there are no real blockers that were raised so far. So it seems to be the tool of choice going forward I Great thanks. There was this topic regarding the fire burn migration from it's equal to be from last week But that's apart from doing that but poor that you already did Cisco There is nothing to to be discussed further than right, okay So then we would have the QA update Regarding most pressing box this is meant to be up to the stats so we You did that. Okay, so we did the work twice But the good news is that it matches what I pasted so It's good to have things reviewed So we don't have a new most pressing buzz bug this week, which is great Regarding other most pressing blocks the first one is Has no name much to that. That's some macOS problem Now what why is this tag this macOS is it normally what we try to do is Review these bugs and find out who might be a good person to look at that Given that it's probably serious enough that it needs some action And The the problem we have here is that now in six dot three we use Xcode 10 to build for Mac and It's giving Problems with a high resolution screens If you scroll up, you'll see that there are many duplicates already so many users are Having this problem Then we did a build with Xcode 9 and the problem is not happening, but we cannot use that We cannot build with Xcode 9 because Christian well Because of the notarization feature the additional Signing stuff that Apple introduced and enforces for the new versions of Mac OS those require Mac OS 10 So while it might be possible to build the software with Xcode 9 and then do the signing with Xcode 10 I don't want to Mitch and mix and match those tool chains So you rather just want to build with Xcode 10, but unfortunately, I don't have a High DPI Monitor or Mac, so I cannot really reproduce the problem myself Christian the hardware budget for TDF for the year is under spent by several thousand My suggestion would be that the board would Approve something here, and it will be worth you having high DPI screen I don't know if other board members. Yeah, I think we're probably quarreling here to have a board meeting and by you But even having a high DPI screen wouldn't mean that I automatically knew where the problem lies So that's very true, but you want to change But at least I would have a You at least have a high DPI screen which would be nice So just to add in 6.2. We had a similar problem Initially we build it with Xcode 10 and then There were many crosses and hangs in on Mac so then we decided to use Xcode 9 and then Tomas Fixed those crosses and hangs, but we still have this remaining issue with high definition screens Is there any hope that the new toy chain will be a hard requirement for the app store version and then Whoever does the app store version of Mac would be interested in looking into that That's us so yes It just depends how much time and quick he has and his managers can give him a way to fix Stuff like that, which at the moment is Not a lot, but okay So in just to sum it up if somebody has the needed hardware here and could look into that That would be great otherwise and or later We should get cloth to have a high res high DPI screen just to smoke test the builds because Increasingly it behaves differently I would thought Give him an action item Well, I don't think I need to test it personally. There's people from QA team already So it's very fine this issue So release engineering would traditionally smoke test something by running it to see if it runs Usually a good idea Okay And there are two more bucks here, but at least there are some ideas who could look into those and those are not new Then we have the new high severity box of the week. So For these If it's something that's in your area, then it is worth having a look For next week, I would try to do this usual annotation where We can have some idea who would it would be a domain of what developer Yeah, normally we don't have such a long list of high severity box I normally double check that they are indeed high severity box, but I didn't do it this week So someone it's increasing the severity and yeah It needs a double check Yeah, if you could double check if those are really high severity that would be very much welcome Okay, so that's about the high severity box and Other than that, we only have the QA starts so Is there any Top-level topic that we would like to discuss here or is there any question from the audience that You hope that there is an answer from the ESC or any comments on the work we do or I Thought Ashley's question earlier was good in but much too generic. I wanted to know what specific architectural problem So That's a very good question. I should elaborate So the things that I have in mind Take a concrete example would be something like configuration infrastructure for example, I think it's it's quite old right and it underwent some changes and some It took some some punching around I guess, you know during the years and I don't think there is an expert that I know of who can Explain it maybe you can okay And I'm not sure this is one this is just one example and I can I can think of others I think conflict is quite good. I mean compared but what do you think? More than ten years ago, maybe But Maybe it's just one part of the overall experience of what you mean with configuration. So So my experience the bug generic maybe For example for me the pain point is if I need to debug something there. There's a there's a whole Mechanism that kicks in whenever you change something that triggers a Config update that the config update then would enable a feature or disable a feature Right and based on that you would have UI items show up like sidebar something an area that I worked on quite a bit On and it's almost it's so opaque that it's almost impossible to trace it to figure out essentially what changed here At runtime maybe depending on the config files that ultimately triggered the enablement of a feature or a UI element Or something or another and this whole thing happens Because of you have the notification Subscriptions and listeners that would update the config that then would trigger Other listeners right including UI etc. Etc. So it did the whole thing is almost impossible to Okay, so that's the layers atop the configuration. That's what I meant That's just one piece of the of the puzzle probably. Yeah, that might be true I'm not I'm not right and similarly familiar with the layers above So you say luckily almost nothing changes in reaction to configuration keys changing, right? There's also some manual horrors to make these things actually have effect, right? So it's easy to imagine a world where you know You set the gconf key and then everyone reacts to the event listeners and makes them happen, but it's Typically not the case in the game Yeah, she's kind of sucky because when you want the demo you want to do your LDAP Okay, so that doesn't have notification either, but you want to do some kind of Change and then see all the machines go power power power down the road as they as they change because Demes are everything right and that's not where we're at another good example would be the some of the the way we Managed the UI and how how we define them all these I mean some of it it seems to me that a review I'm not I'm not saying they're necessarily so bad that they need to rewrite that that wasn't my point my point is How do we manage the problem of revisiting major features and components just to at least have a you know a core developers? Opinion and input as to whether there needs to be some You know major investment in improving that infrastructure Because going forward it's becoming very costly to maintain or add features or you know We're spending a lot of time tracing Bugs because it's just so opaque. No documentation. No code comments or minimal or misleading because they've changed You know what I mean my my point that I'm trying to raise is how do we deal with the problem of having a very very large piece of software That the expertise in the different areas is is constantly changing for lack of a better word People leave people come on board and and then they do touch parts and pieces not necessarily understanding it fully, right? Which is fine. We encourage that right But ultimately how do we deal with this problem so that going forward we make sure that the project stays in a healthy Form so that when somebody new comes on board is able or she's able to pick up And and go on without spending months on end trying to wrap your head around something To make a change. Hmm. That's not hackish. That's not horribly So so my personal response will be that I guess we're doing quite well on on that end and I don't think there's any Any money we can throw on anything that would improve things substantially in that regard So I mean we all know there's areas that are lacking Maintenance and then if somebody comes up with a problem there we collectively try to to to find out a way To do better there or to to to invest energy into into certain areas And sometimes it works to to make a tender out of it other times somebody Heroically finds the right idea to to to get things working again And then there's other areas that are more more maintained So I think on a large-scale overall we're doing quite well and we're quite healthy I would say so there's nothing That we would fear If something broke in some area that we would be totally helpless I mean we demonstrate that all the time that we together are able to to address the the issues that come in even for areas that are under under maintained for years and Documentation of course, but nobody writes documentation and and even if you throw money at that issue I'm not convinced that what would come out of that would be any any any better What we have so if there's an issue It's always I I think it's always this reactive thing if there is an issue cropping up somewhere You start to ask around on on IRC on mailing lists in the ESC What other people's opinion is there and if that's an area where we are lacking then we try to to build our Our ideas around that and and see how to fix the the issues that do come up and not Ours has proactively tried to to lay the grounds for for future contributors That would make it easier for them because that's always a thing that doesn't happen in reality anyway So you you do what you think needs to be done, but you don't cater for this hypothetical newcomer that you want to a handhold in some area and Just to add to that like we have done this several times in the past which was a mistake Yes, so take the config manager case it was a second system Rewrite that we started with and it was designed heavily designed and it was even documented and All the modern technologies 80 locks for every single key you took are not thread safe You know and so just simplifying it and focusing on the real need can really help The other thing is that I think Chris Sherlock was trying to write some overview documentation And I think that would be extremely helpful So I think if you look at the Linux kernel There are people who write books that explain give you a map And we have some pictures of the code that are helpful, but I think having having the basic concepts written in a book Might help if people still read books So just the the classical answer to that question I think is and it's It's a cop-out, but it's still An answer if you're dealing with like huge monster of legacy code that nobody understands or that you find hard to to find your way around with is start writing tests and Whenever you discover an invariant or something that you reverse engineered You reverse engineer to be maybe a design decision in the beginning and you can write a test for it and the good thing about tests is they are documentation and They are documentation that is that drops harder than other documentation because it breaks if if you break the software that makes Breaks the invariant that you have so And that that can be incrementally helping to get a grip of what this old thing is Once you want to kill it off and replace it with something saying again So I was One particular answer so there was there was this I'm not saying you said that but there's this idea and then Michael You were also referring to that That if you don't understand something you need to rewrite that the problem that comes from there Is that unless you have not completely understood the problem very likely the the solution We're coming up with is either the same same like like Baddest of the earlier one or worse because you you have to learn what the other person implemented that already knew so I'm not at all enthusiastic and Entering that sort of Turn especially because we are kind of under resourced anyway So we're much usually much better things to do than preparing for the hypothetical If you look at some of the larger refactoring's we've done inside modules They've been I think immensely successful when quailons UI rework Takes us to just such a an immensely better place for Well, let's not say it's a small part, but I mean, you know, what would you lay out and rearing? There's still plenty of problems in VCL that need fixing You know from rendering and drawing and things but taking one part and made it Nominally clean and much more beautiful, right and and all the calc core being rewritten or you know life cycle problems being fixed It does happen. It's not I do agree if you give me a minute to Add a point. That's very important. I think I completely agree with every everybody's Feedback, so let me clarify. I'm not suggesting that we rewrite parts that are hard to understand That's absolutely not what I suggested what I am asking is when do we know if a part of the system has become a So messed up because of multiple hacks that maintaining it making a change is Extremely costly meaning you need to make a change and the only sensible way to do it either is to change a lot or you break features or behaviors and change those test cases to adapt to the new behavior and Potentially make a lot of users very very angry at you So how I mean this is this is a little bit of a hypothetical problem the examples that I've given Are examples that I felt that there were too many hacks that changing it is almost impossible You can't go around and change it because if the system is fragile enough, right? There is no clear way of doing it and the next thing you have to do is invest a lot of time How do we manage that? That's that's it's an open-ended question. I apologize, but otherwise I agree with you I wouldn't go around rewriting things Any other comments to that are probably we discussed that to dust now So I think actually we're relatively blessed with people who are experts in areas and also an understanding of who is expert in what area Say that broadly we have reasonably minimal conflict and it's reasonably obvious what needs fixing and usually how The only thing that's not obvious is how to fund any of it So, you know Any other questions? Yeah, Mike. Hello My question is about the situation the question from Possible contributors that I face very often when they want to do a one-time Contribution for instance fix some built-on some system some Operating system for instance and they Struggle well, it's not too complicated, but usually they complain that they are busy people already having account at github or something. Why do they need another account and They usually not only need one another account, but multiple one for filing a bug at bugzilla one to have some access to Garrett and so on My question is not that we should for instance move to github or something, but could we have at least At first stage a single Sion sign on to bugzilla and Garrett and further possibly to have some way to create a change from bugzilla to Make it easier for such contributors to create bug and then from then create a Change possibly using use web UI. It's often desired from my experience when talking to such Developers So that make it easier for them. So for the first question I hear there might be news on Friday on that So for your first question or the first suggestion I hear there might be news on Friday on on that topic as a single sign on is something that Clough and Guilham has been working on for a very long time and as Torsten says it's not yet finished. I Think there is hope that in the in the near future That will come to an end and actually you can really just register on the user document foundation or again And use that account everyone Yeah, and even without having it in place already you could already use your GitHub account to look into Garrett you could also use your Google account to look into Garrett So you wouldn't have to create a completely new account For this and if you want to not use kit check out you can create a change in Garrett web interface and don't have to Yeah, use command line if you don't want to so for simple fixes or one line fixes you can create the Change request from within Garrett web UI But yeah, as Torsten already mentioned the single sign-on system is spread out of a multiple Services on the TDF infrastructure already and Garrett will be the next one to be switched over and then hopefully the problem Thanks with gun Okay, so the other thing is While it is possible to create Garrett changes just using the web UI it's In my view it's a relatively rare that that's the bottleneck usually. It's not the building time or the Or the code writing time does the bottleneck is you spend most of your time reading existing code And then it does not really matter if you at the very end you create a change locally or It's actually helpful to create the exchange locally so that you can quickly test it get some good Iteration once you are happy with that you can upload that for review And regarding the bugzilla integration. I also don't see how you would start the fix With your bugzilla ticket. So our integration works the other way around when you create a Change request and reference the bug ID then there will be an automatic notification in the bugzilla ticket that the Commit has been committed But if you have a concrete suggestion how we could integrate it the other way around. Yeah, please talk to a calamity or drop an email I suspect as well that I guess that so I Think right now the the problem we rather have is on the review mentoring and and that's side so Opening some fire hose for people posting random Changes to quote from I don't know if that is really the largest issue we have right now I agree that the sign-on thing is irritating and I wonder if I mean perhaps getting getting signed up then this is really just If people are already on bugzilla, then there's nothing else they need to do double my hope when this Everything works Because right now even if you have a github account, it's still a bit of clicking in the just ring and form filling Yeah, just One another thing of course like if you run into things that are like easier to done Then like it takes time to actually contribute that Please do file easy hacks for that because like I don't think that we have some good flow of easy hacks Now so if you find things like this that can scale to to other people That would be extremely appreciated Yeah, and just a closing remark. I think the most troubling Stuff for newcomers these days if they join the project is getting used to carrot at all because they have never seen it before No, the other stuff is probably easier But so I think it's a valid point and we should revisit this regularly to just see If if we move too far from the mainstream so that people are already scared off by our tooling But I don't think there's there's an easy solution to that now So I think back in the day we discouraged people from sending emails with patches in them for some reason But but a long time ago an email with a patch in it was the preferred means and if anyone is scared or worried or put off Then just email the patch to Mike who will help review it and get it into Garrett for you That's what I suggest in terms of Habitual workflows or muscle memory that people will be used to get hub So with both GNOME and KDE having migrated to GitLab There were probably a nice source of data on that whether that changes contribution on their side my I don't know so Personally, I guess that's probably if you want to master liberal first and Garrett is your smallest problem But I might be wrong. I think we're coming up to the end of our slot on the beginning of Stefan's which shirt You know, I know no janitor of sanity, you know, so Last last things got a few more minutes of two five three Anything else otherwise you can do QA QA gets relegated to the end tragically Cisco is there any any well, I just want to comment on that Be your mention Garrett, I think Now especially John and newcomers are not used to IRC And that might be another thing that they are they might be afraid of I think in that way at least in communication way Nowadays other tools are used. I'm not I don't have personally. I don't have anything against IRC But that's something that maybe we should consider as well So you can embed it in the web page so as you're filing a bug that's the bugzilla, you know QA channel You know, you know IRC widget on bugzilla, so you can ask Cisco which button do I press, you know, yeah, could be Hmm, I don't say anything about the QA bug stats. Let's go. I don't know if make if they're up to date That's the only section which is not up today. So at least depending on that, please don't draw a different conclusion compared to last Well, I updated it Okay, so do you is there anything unusual that that is worth nothing? Well to be honest, I Normally don't look at this stats, I think they are just more for information Probably the primary At least one purpose of this is that there are these top lists And if you are one of those top bug fixers, then finally somebody writes your name there and you can be happy Fine, so I guess that would be the end of this ESC slot unless anybody wants to talk about anything else have it Yes, see No, nobody Now this is done. Thanks for your attention


Okay, good afternoon. That's kind of loud. Doot, doot. Wow, okay. No, not that. All right, good afternoon. So we're going to do a bit of review. This isn't new content, but we will solve a mystery. So everyone loves solving mysteries, and then we'll get into the time you can work on your lab. I can help you, and we can wrap that up. So memory mapping. We kind of touched on this a little bit. We kind of know the principles behind it, but we didn't actually explore actually useful things we can do. So everyone loves large language models now, right? Chat, GPT, everything like that. So there was this post on GitHub that got circulated around. So they have like a 30 billion parameter model that takes like 20 gigabytes, and there's one implementation of it that's like, oh my God, whenever I try to use the model, get some output out of it, well, my laptop doesn't actually use 20 gigabytes of RAM, which is the size of the model. It only uses 6.8. So how's that possible?  So it's supposed to be like this is an efficient implementation, and it's so efficient that people were just like ultimately really, really confused. So like here's the post. So it's like, oh, this model only fits in this mail RAM. How is this even possible? So we will explore how this is possible, and you'll be able to answer the questions here better than anyone else has posted in the replies here. So just really quick. So there's a system call that has kind of been used in the labs that we haven't actually explored, and we can actually control our own processes' virtual memory. We can't modify our own page tables directly, but we can ask the kernel nicely through a system call to change page tables for us. So that's what you do with an M-map system call. It's just short for memory map, and you can actually use it to map files into your own processes' virtual address space. So this makes it so that the pointer you get, which is your own virtual address, it allows you to just access that file directly through memory addresses, instead of doing read and write system calls. So you don't have to do any system calls after the M-map. You just read and write memory, and it actually reads and writes from the file. So let's go ahead and see that example. So it's surprisingly small, and here's the whole example. So at main, we know how to open a file, I hope. So you have an open system call that say we're going to open this file. So this is just a C file, so it's just going to open itself. It's essentially going to CAD itself. So it opens this file as read only. Of course, we get a file descriptor back. We can probably guess what file descriptor number we'll get back because 0, 1, 2 are all used. So we can just make sure that we get file descriptor 3 back because we're just kind of flexing our OS knowledge here. And then there's this structure stat and an F-stat system call. And you kind of know what this does if you have been good and you've done Lab 6. So this will get all the information about that file if that file descriptor is pointing to a file. So if you've done Lab 6, you know that this will actually kind of read that I-node and give you the fields from that I-node. So one of the things we care about is like the size of the file because you have to tell M-map how many bytes I want to map in. Whoops, that's a big thing. So after that, you can do M-map. So M-map takes like six arguments, but a lot of them don't have to be used or they're for permissions. So M-map takes the first argument where you can kind of suggest what virtual address you want if you're super picky about it. If you want the default, you just say null. And then the next argument is the number of bytes you want to read. So we're going to make it match the size of the file. So that stat structure essentially just has all the fields that would be in an I-node. It just works for file descriptors that aren't regular files. But in this case, this is just a regular file, so it would actually use an I-node. And then the next argument are like the permissions. So for this, we'll say our memory map. We should just be able to read. We don't want to write because we're not going to try and modify the file. Then there's flags. So there's a private flag, which means you want that memory mapping to be private to you. This is how one of your test cases worked. So another option is to set it to shared. And that means whenever you fork, that virtual memory will be available in your child process as well. So you can actually share memory through this too if you want. Next one is the file descriptor you want to map. So that is our M-map file that we specify. But in general, this can be any file you want to open. And then offset, which is just how many bytes to start mapping into that file. So if you set zero, it means I want to start reading at the beginning of the file. All right. So any questions about that, we'll kind of explore it as we go on. But so after that, we're done with our file descriptor. We can close it. We don't need it anymore. Our kernel is set up so that if we try and access through this pointer now, which is data, it's valid for length bytes, which is our size. And we can just read from it. Yep. Yeah, normally you'd be using like a read and write system call, right? If you wanted to read from a file, you'd be using read. You'd have to set up a buffer, then transfers back and forth. And it's kind of a paint. So in this, you're actually requesting. So normally if you open a file, we have to read from it, right? So you read and it copies the contents of that file into the buffer. And it would go on, if you call read again, it copies the next byte, so on and so forth. This doesn't copy anything. It says take this file, map it to my virtual memory there. So if I access that address, it actually accesses the file. So you don't have to copy. There's no buffer involved. If you access the address specified by data, that's the start of the file. So you can just read it directly. No system calls, no mess, no anything like that. So it's actually quite useful. So that way that data pointer we get back is to the beginning of the file. So we could just have a for loop. If we want to print every character in the file, we can just go ahead for loop zero to the however many bytes we have. And we'll just print out that character. So data i and that's all we do. And then if we unmap it, that means we're done. That's essentially like its version of free. So if we run this now, it should pretty much do what cat did before, except now I don't even have to do a read system call. So if I do that, it just spits out that contents of the file. Yep, yep, yep. Yeah, so you can kind of tell behind the hood if you've done the lab six. So lab six, all the contents of a file points to a block. So what the kernel would do is make that virtual page. It would say, oh, this virtual page should actually map to this block in the file. So if you try and access that memory, you get a page fault and it would actually fill in that memory contents with the block so they match. So it loaded into memory, does a whole bunch of steps for you, and it's actually quite awesome. So it saves you a lot of work. Okay, so why did I, so yeah, any questions about that and how it works? So go over it real quick. So yeah, like six arguments like I said, I probably don't have to go over this, but it's like suggested address, which generally you just say null, don't care, however many bytes to map, protection flags, mapping flags, and by default, this was originally set up that you map a file, but if you want to use this because it's actually quite good at just allocating memory if you really want to or sharing memory, you can, one of the flags is anonymous. So if you have an anonymous flag, that means the file descriptor doesn't have to be valid. It's actually not backed by a file. It's just some random shared memory or just random memory you could get. So you could just ask for some pages too, and you could do your own slab allocator or do whatever with it too. So it's a very sweet thing to do, and it's also really lazy. So all it does is set up page tables kind of like what I alluded for. It doesn't actually read from the file at the time of the M map. So how it would work, we've done lab five, so it would create an invalid PTE entry with whatever address it decides to use. And since it's invalid, it can use the rest of the bits in the PTE entry to be whatever the hell it wants. And one of the things it could be if we're mapping a file, well, you could store the information that says, oh, this page maps to this block of the file. And then if that process tries to access that memory, you'll of course get a page fault, and then you can do your copy on write thing like you did in lab five. But instead of that, page fault happens, you read the page table entry and be like, oh, this is supposed to be this block of the file. And to resolve that page fault, you go ahead, read that in to memory and then just set it as being valid now because it's actually been used. And you can return back to the program and the program can use it and it would read it kind of on demand. So only the first access to that page would be a page fault, then the kernel loads from that file into memory and then it works, right? And the nice thing about that too is if it's a gigantic file, like for that large language model, well, it only reads the part of the file that actually gets used. So if I set up a 20 gigabyte file, I would have to set up all the page tables for that, but if I only used parts of it, then it would only load parts I actually access and I actually try and use. So yeah, going back to the question then, so how does a 20 gigabyte file only use 6.5 gigs of memory? Well, for these large language models, they're gigantic, it's a 20 gigabyte model, but for any one question you ask it, well, it's really, really sparse and you're not going to use actually all the model. So there's some parts of the model that are dense that you do use, but a large portion of the model just is really sparse and you don't use it. So if you have this, let's go back, so if you have this, you M-map the file and then you use it, well, it's only going to actually read into memory but it's actually being used and it turns out that, hey, it's actually quite good for this implementation.  So if you go there, it's like, oh, it doesn't do the impossible, so someone has taken an operating system course and knows it hasn't done the impossible, but it is using only 6 gigs of RAM. Then let's see. So someone says there's some voodoo going on. And yeah, so here's someone that made it, which made the improvement. I'm glad you're happy. So the thing that makes this possible is now we're using M-map to load large models. That was the only thing they changed to bring the RAM usage down like 15 gigabytes. So we can actually read this. So this lets us read the weights without having to read them or even copy them because it does that M-map thing. So if you just read the memory address, then you let the kernel handle it under the hood. So it says the operating system, so clearly this person has at least knows the stuff in this course, creates a page table entries which reserve 20 gigabytes of virtual memory address spaces. Crudely speaking, the mapping of 20 gigs of RAM requires 40 megabytes of page tables this calculation. The individual page tables aren't actually loaded into memory or the resident blah, blah, blah. So this calculation, you guys should know, does this actually kind of look correct like what are the parts of this calculation that should be correct since this person kind of knows what they're talking to. Does that make sense? So I'll give you a hint. So the whole file is 20 gigabytes. So 20 and then here, this is just 2 to the 10 times 2 to the 10 times 2 to the 10 3 times. So that just means gigabyte. So that means 20 gigabytes. Why would they divide it by 4096? Page size, yeah. So that's our page size. So that's how many pages 20 gigabytes would take. And why do we multiply by 8? Yeah, that's the size of the page table entry. So we need this 20 gigabytes is how much memory we're using and they're divided up into pages. So each page is 496 and each page table entry takes 8 bytes. So this is how many at minimum we would need and this is just to divide it to get megabytes. So this is just 2 to the power 10 times 2 to the power 10, which is megabytes. So yeah, this is actually 40 megabytes. So can we improve on this? So instead of crudely speaking, can someone be more specific of exactly how much this takes? Because it's not quite right. Yeah? No? Yeah. Yeah, this would be the real systems multi-level page table, right? So this number is how many L0 entries you would need, which is like best case scenario. Yeah, so we need to split it up into a bunch. So we need to split it up into how many L0s we need and then from how many L0s we need then we can figure out how many L1s we need and then once we figure out how many L1s we need well we're pretty much done because we'll only have one L0 page table. So for a bit of fun because we should be exact or I guess a bit sadistic. Well, here's some calculations. So this is someone posting that you need this. Someone later in the post clarified because someone threw those numbers up. Of course, someone couldn't read them but since we've taken this course, we can read them.  So this is divided by the 4k page size times 8 bytes for page table entry divided by 1kb, which they had to typo because that's supposed to be megabyte and then we kind of argued that oh, that's just for L0. So how much space do we actually need? So that's correct. So if we took, you know, we have 20 gigabytes. So this is 20 times 2 to the 3. And then if we divide by page size, so oops, that's supposed to be 2 to the 12 because that's our page size, means yeah, we do need 20 times 2 to the 18 page table entries. And from that we can figure out how many L0 page tables we need. So we just take that number and divide it by 2 to the power of 9. Why 2 to the power of 9? Because that is how many entries we can fit in a page table if it just fits on a page, right? That's the page size divided by the page table entry size. So this is also assuming best case scenario where all of your entries are located beside each other so they don't span over tables. Worst case is it would be super spread out and you have like different tables for each one. But we'll assume the best case scenario where everything's located together. So in this case, you need 10,240 full L1 page tables which matches their 40 megabytes so far we should be good. And then we know that each L1 page table can point to 512 L2 page tables so we can figure out how many of those we need. So if we take however many entries, L0 entries we need and divide it by 512, well that's how many full L1 page tables we need so we would need 20 full L1 page tables. So in total, we would need 10,260, not 40 page tables and if you multiply it by the page size and then divide by megabytes actually this is like that really nerd thing but actually we need 40.04 megabytes of memory in the best case. So why did I do that? I have no idea, I wanted to and you guys should be able to but it kind of makes sense too that if the L1 entry is full, well it can point up to a gigabyte of pages like it can span up to a gigabyte so if we have 20 gigabytes that we need well we could have 20 L1 page tables because each of them could actually translate a gigabyte of memory if we wanted to. Yeah, this 8 here? Yeah, it's supposed to be in brackets there. Sorry, not in brackets. So it's supposed to be 20 gigabytes divide this and then just times 8 after that answer. Yeah, if you just throw it into Python it calculates correctly. Bed mass and all that. All right, so yeah, but this is kind of neat to know that hey, if it's a full L1 table that makes sense that it points up to a gigabyte and my whole address space is 512 gigabytes and in my L0 page table I have 512 entries so that kind of makes sense. All right, cool. We can finish Lab 6 then with the remaining time or just there's still chocolate. Eat it so I don't have to bring it home. Yeah, that's it of me talking. You can work on Lab 6, ask me questions or whatever.  All right, just remember, we're pulling for you, we're all in this together.


So let's take a quick question on condition of tangency and then we will make some more analysis on it. Question is prove that Lx plus My plus N equal to 0 touches the parabola y square is equal to 4ax if ln is equal to am square if ln is equal to am square. Please prove this. If done, please let me know. Okay, so let's discuss. So again just now we have discussed that c should be equal to a by m. Okay, now for this line what is the slope? First of all you have to write my is equal to minus Lx minus N then y will be equal to minus L by Mx minus N by M correct. So note that this will be acting as your slope. Now don't confuse between this M and the M given in the problem. Okay, so just replace c this is going to play the role of c. C is equal to a by M. Okay, so cross multiply. So minus N into minus L is going to am square which becomes nL equal to am square is the required condition for this line to be a tangent to this parabola. Okay, next question show that show that x cos alpha plus y sin alpha equal to p touches y square is equal to 4ax if p cos alpha plus a sin square alpha is equal to 0 and also show that the point of contact point of contact is a tan square alpha, minus 2 a tan alpha. So all this and let me know if you are done. So I think first part would be easy you would be able to do the first part very easily. Okay, so getting this condition is not difficult. You are going to have to use c is equal to a by M since your parabola is y square is equal to 4ax you can use this condition again over here. Okay. Now what is c in this case? If you write it in the y equal to Mx plus c form if you write this parabola in y equal to Mx plus c form we get something like this correct. So M is minus cot alpha and c is p by sin alpha correct. So c which is p by sin alpha this will convert to c which is p by sin alpha is equal to a by M. A by M by M will be minus of tan alpha and minus of tan alpha could be written as minus a sin alpha cos alpha cross multiply. So it becomes p cos alpha is equal to minus a sin square alpha. So p cos alpha plus a sin square alpha equal to 0. So first condition is proven. Now this is done. The next is point of contact. How do I find point of contact? First let us go back to the case where we had y square is equal to 4ax and the line y equal to Mx plus c was touching it. Okay. Then what is your point of contact in this case? Can somebody tell me the point of contact in terms of a M and c? C is already a by M right? So you can change this to a by M. So in terms of a and M can somebody tell me what would be this point of contact coordinates be? Can you type it on your screen on the chat box? Okay. So it is very simple. You just have to simultaneously solve it. So y square which is Mx plus am whole square is equal to 4ax. Okay. If you expand it you are going to get M square x square. Okay. Plus 2ax minus 4ax plus a square M square. If you simplify it this is what it appears which can further be simplified to Mx minus a by M whole square equal to 0. Right? As you can see this is going to be a perfect square. This is going to be a perfect square. Okay. So here Mx will become a by M which means x would become a by M square. And if x becomes a by M square we can easily find out y as well because y is nothing but Mx plus a by M. So y will become M into a by M square plus a by M that's going to give you 2a by M. Okay. So this point of contact is am square comma 2a by M. Right? Now we have to prove now in this case that it is a tan square alpha minus 2a tan alpha. Now remember your M role is being played by minus cot alpha. Isn't it? Your M, I think we had written it somewhere over here. Yeah, here. M role is being played by minus of cot alpha. So your point which is poc which is a by M square comma minus sorry a by M square comma 2a by M could be written as a tan square alpha minus comma minus 2a tan alpha and hence proved. Exactly. Correct Rima. Okay. Now since you have started talking about the equation of a tangent, so we'll talk about equation of tangents in other forms, in other forms. By the way, y is equal to Mx plus a by M. This is called the slope form of the equation of a tangent. Right? Because in this case you're just given the slope and the parabola and you're asked to get the equation of a tangent. Right? For example, if I ask you, find the equation of a tangent, find the equation of a tangent to y square is equal to let's say 8x with a slope of 5. Then what would be the answer for that? Answer would be y equal to Mx plus a by M. So this would be your answer. Now the second form of the equation of a tangent that we are going to look at that is called the point form. Now what is the point form? Let's say I give you the standard case of a parabola y square is equal to 4ax. Okay? And I give you a point on this. And I give you a point on this. Okay? And I have to draw the equation of a tangent to this parabola. Okay? So what would be the equation of a tangent to this parabola at this point? Can you tell me the expression? At x1, y1, what would be the equation of a tangent to the parabola? Yes, these equations are only for y square is equal to 4ax rm. So as the parabola changes, the equation will undergo a lot of changes. But why we are dealing with this case is because it's the most frequently asked type of parabola. The standard form is most commonly asked. That's very simple in this case. For finding the equation of this tangent, you would need the slope. Right? And you have all learned that slope can be obtained by finding the derivative of the function at x1, y1. Correct? Yes or no? So when you have been given 4ax, let's find dy by dx at x1, y1. Now, when we find dy by dx, it means 2y dy by dx is equal to 4a. Correct? So I differentiated both sides with respect to x. That means dy by dx is 2a by y. Correct? That means dy by dx at x1, y1 would be 2a by y1. Okay? So using the form of the equation of a line in point slope form, I can write it as y minus y1 is equal to slope x minus x1. Which means yy1 minus y1 square is 2ax minus 2ax1. Correct? Which means yy1 is equal to 2ax minus 2ax1 plus y1 square. Now we know from here that y1 square will be 4ax1 because x1, y1 lies on the parabola. Right? As x1 comma y1 lies on the parabola. Okay? So yy1 is equal to 2ax minus 2ax1. And instead of y1 square, I can write it as 4ax1. Which makes the equation of the parabola as 2ax plus 2ax1. Which is yy1 is equal to 2ax plus x1. So please remember this as the slope form or sorry, as the point form of the equation of the tangent. Point form of the equation of the tangent. Clear? Now the third form that we are going to deal with is called the parametric form. The third form that we are going to deal with is called the parametric form. This is one of the most important of all the forms. You will be heavily using it in problem solving in case of comparative exams. Now in parametric form if I ask you, find the equation of a tangent at some point at square comma 2at. Okay? So find the equation of the tangent at atat square comma 2at. Then all I need to do is replace my y1. Replace my y1 over here with 2at and replace my x with at square. Okay? So 2a and 2a gets cancelled. So ty is equal to x plus at square becomes the equation of a tangent in parametric form. Please remember these results. So please remember this. Remember this. Okay? So this is called the equation of a tangent in parametric form.


So this is the demonstration of the posterior chest wall. This is a prone cadaver So this is the left side of the chest wall and we are demonstrating this from the left side of the cadaver In order to demonstrate the chest wall posteriorly, we have to reflect the following structures First we reflected this muscle here This is the erythrospinate part of the erythrospinate which is known as the Iliocostallus. This is the posterior layer of the thoracolumbar fascia that we have reflected and this is the other part of the Iliocostallus The next muscle that we have reflected is this one This is the longasmus. So now we have reflected the longasmus also And the third muscle that we have to reflect was this one This is the spinalis So we reflected these three muscles of the erythrospinate and this is the remnant of the latsomus dorsi Which also we have reflected. Superiorly, we had to retract the scapula with its attached muscles And we can see the remnant of the latsomus dorsi here also Immediately we reflected the trapezius muscle and we can see the trapezius muscle here. Having reflected these muscles, we see the space here These are the transversal spinalis muscles which are located deep to the erythrospinate muscles and this muscle that we see in front of us This is the Semi-spinalis and deep to that will be the multifidus and the rotators These transversal spinalis muscles as the term implies they are located between the spinalis process Which is here and the transverse process of the vertebrae which are here That's why they are called transversal spinalis muscles. They are the deep intrinsic minor group of Muscles at the back. Extending from the transverse process to the rib. We have these ligaments These are known as the lateral cost of transverse ligament. This is one lateral cost of transverse ligament here This is another lateral cost of transverse ligament. Let me first mention accessory muscles of respiration that we can see here We can see this muscle here with a shiny aponeurotic expansion fibers here This is the cilidus posterior superior and we can see that the fibers as they go down Laterally they become more flesh Then we have another set of fibers, which are very similar in appearance We can see that these fibers are very shiny aponeurotic and Further actually they are more fleshier. This is the cilidus posterior inferior The cilidus posterior superior is responsible for Elevation of the ribs and the cilidus posterior inferior is responsible for depression of the ribs Both of them have proprioceptive function. The cilidus posterior inferior was located under the latsomus dorsi muscle Which we can see here The cilidus posterior superior is located under the rhombus and the levitas and we can see the remnant of the rhombus major here And the rhombus minor higher up. Now let me point out another accessory muscle of respiration that we can see here If we look closely We can see these muscle fibers coming down from the transverse process above to the rib below Next from the transverse process above the rib below from the transverse process above to the rib below These are the levitaries costorum They go obliquely down and therefore we have already guessed it. Their action is to elevate the ribs Now if you look very closely, we can see a small triangular space bounded by the levitaries costorum the inter-transverse ligament and the lateral costor transverse ligament and In between this triangular space We have a neuro vascular structure coming out and that is the dorsal rami of the spinal nerve which supplies the Muscles of the back and we can see we have picked up one of those and we can pick up another one here also These are the dorsal rami of the spinal nerves which come out through this triangular space bounded by the levator is costorum the inter-transverse Ligament and the lateral costor transverse ligament. Now let's mention a few things about the Back proper. We can see the ribs. They are taking attachment from these transverse process of the vertebrae This is where the tubercle of the rib articulates We cannot see the head of the rib articulating because it articulates with the body which is deep inside Then we see that the ribs are making a bend here and we can see the bend all along down like this This is referred to as a costal angle. This is the place where the rib makes a bend From back slightly towards the lateral aspect. Next what we see are the intercostal muscles here The muscle that we see in front of us This is the external intercostal muscle and we can see the direction of fibers are like this the way my fingers are pointing We have split in this space We have split the external intercostal muscle and I'm removing it and I've separated them with my finger And as I separate them we can see the muscle deep to that that is the Internal intercostal muscle and if you look very closely We will see that the fibers are at right angles to the external intercostal muscle Not only that if you look further medially We will see that the muscle disappears and it gets replaced by a membrane and that membrane is referred to as the internal intercostal membrane in contrast to the external intercostal muscle The internal intercostal muscle as it goes closer towards the vertebra It becomes membranous the external intercostal muscle becomes membranous anteriorly where it is called the external intercostal membrane Now I will point out the next important structure in the posterior chest wall and for that We have again completely separated this rib and this rib and we have retracted it far and wide And we can see this neuro vascular structure under my finger This is the strained to coastal artery and the intercostal nerve The first intercostal artery is here and the intercostal nerve is below that They run in the coastal groove where my finger is located and the muscle which is just in front of this is the innermost intercostal and the subcostal muscle and deep to that will be the endothoracic fascia and we can see the neuro vascular structures running here We can see the neuro vascular structures in this view also. This is the nerve and This is the artery Whenever there's any compression injury of the chest like for example a steering wheel compression hearing road traffic accident in a car The weakest point of rib which fractures is the postural lateral angle of the rib where the rib curves from posterior to anterior And that is a site where it can fracture by indirect compression if minimum three adjacent ribs Fracture in at least two places then it produces what is known as a flage chest when we auscultate the posterior chest wall We auscultate the lower lobe of the lung and before I conclude I want to show one more thing so for that I have put back the lexibus dorsi in its place and I put back the Scapula also in its place and I'll put back the rhombus major also in its place and The trapezius also in its place though the spaces are wide apart because we have retracted them This triangular space that we see here This is referred to as a triangle of auscultation. It is bounded by the trapezius The lexibus dorsi and the scapula and the floor is formed partly by the rhombus major So this triangle of auscultation is relatively free from muscles and it is used to auscultate the lower lobe of the lung So these are some of the findings which we noted in the posterior aspect of the chest wall of this cadaver Thank you very much for watching Dr. Sanjay Sanyal signing out if you have any questions or comments, please put them in the comment section below. Have a nice day