Hello all and welcome to Tomorrow News. This week, Ryan has so many things to talk about with SpaceX that I'm not even going to attempt to try to list them all. With NASA, gas, or grass, they don't get a free ride and their perseverance rover is making some progress in order to get itself to Mars. We've also got Space Weather with Dr. Tammeth Escove.  So let's go ahead and get going for your Tomorrow News for the week of May 17th, 2020. And let's meet up with Ryan to start with our SpaceX update. Even though Starlink 7 has been delayed, SpaceX are preparing three Starships at the same time as production has looked to increase down in Boca Chica. SN4 is preparing for a third static fire as it gets ready for the 150-metre hop that I can't wait to see. SN5 is already stacked up in the vehicle assembly building, and just to boggle your mind even more, SpaceX have just made the nose cones for SN4, 5 and 6. The speed of development of this rocket is staggering, as SpaceX have made three vehicles in around a month and I believe that if they so wanted to, they could be pumping one of these out every five to seven days. In the countdown to Demo Mission 2, which is only 10 days away, SpaceX have released their ISS docking simulator, which is an online game which allows you to attempt to dock the Crew Dragon spacecraft to the ISS. The UI is actually modelled off of the real-user interface that is a part of the Dragon capsule, which I think is pretty cool. For anyone who hasn't played Kerbal Space Program or Orbiter before, I think that this is a pretty good entry-level place for you to mess about and practice in, and of course it has a Tesla Roadster in it. But it hasn't just been the virtual world where SpaceX and Tesla have collided this week as the SpaceX Astrovan, which is really an SUV, has been shown to the public through tweets from Jim Bridenstine. As was shown in the launch animation released by SpaceX, Bob Benkin and Doug Hurley will arrive at Launch Complex 39A for their historic mission within a Tesla Model X. Everyone who owns a Model X will turn into the owner of an astronaut transfer vehicle soon, but NASA have bought another seat on another type of vehicle, which I believe Jared has some more words on. With DM2 coming up, NASA is finally going to be flying American astronauts in American vehicles to the International Space Station, but there is a little bit of issue in terms of schedule and how that's going to play out.  And that seat was a cool $90 million, and it's no shocker either, NASA Administrator Jim Bridenstine was talking about purchasing this seat a year ago, and he did note that this also included covering the cost of training, operations, recovery, and cargo delivery. The NASA also agreed to take 800 kilograms of cargo up across several U.S. spacecraft missions in the future. For comparison, that $90 million seat aboard the Soyuz, well, we could fly you on a Crew Dragon for about $55 million per seat, or we could throw you on a Starliner for $90 million per seat as well. Yes, that's right, Starliner costs just as much as this current Soyuz seat does. And Roscosmos, they have been rising the prices on Soyuz seats ever since 2008. NASA has paid Roscosmos $3.9 billion since 2006, and that's kept Soyuz production at full steam, but with U.S. crewed vehicles returning for the grunt work of delivering American astronauts, flight rates have slowed to two Soyuz a year. With Crew Dragon and Starliner, especially Starliner, there are a lot of unknowns as to how the spacecraft are going to operate in space and how the systems are going to react and other things like that. So NASA, they are hedging their bets and are currently in talks with Roscosmos to try and purchase a Soyuz seat for a launch in April of 2021. Now that is a bit of a ways from where we are right now, so why don't we go ahead and talk about a departure and some launches this week? Let's kick it off at the International Space Station, where in Northrop Grumman resupply craft Cygnus NG-13 was unberthed and released into orbit on May 11th at 1609 Universal Time. Astronauts had packed it with trash and unnecessary equipment for disposal, and then it will perform a controlled re-entry. Now that won't be happening for a while, though, as NG-13 will deploy several CubeSats and NanoSats, while inside it will have several experiments being performed, including a demonstration to study sizable fires in space and systems to detect and put out a fire automatically. These extended operations of Cygnus NG-13 will continue till May 29th. Now this Cygnus spacecraft was named the SS Robert Lawrence Jr., the first African American selected to be an astronaut in the U.S. space program in 1967, who unfortunately died in a jet crash the same year. Heading to China, a Kaijiao 1A rocket launched on May 12th at 0116 Universal Time from the Jiquan Space Center, carrying two 100-kilogram Zhinyun satellites to begin a build-out of a constellation of 80 Zhinyun satellites for an Internet of Things data relay system. Now the side of this Kaijiao 1A rocket had several illustrations on it dedicated to the medical teams fighting the COVID-19 pandemic. Three, two, one, there's ignition. And liftoff of the United Launch Alliance Atlas V rocket with USSF-7 for the United States Space Force on a mission dedicated to America strong. Wrapping up at Decate Canaveral Air Force Station, a United Launch Alliance Atlas V lifted off from Space Launch Complex 41 at 1314 Universal on May 17th. The Atlas V was in the 501 configuration, meaning a five meter payload ferry, no solid rocket boosters, and a single engine Centaur upper stage were used. The payload is a Boeing X-37B being flown by the US Air Force for experiments and research and development in orbit. A majority of that payload that the X-37B is carrying is classified as is the design of a new service module being utilized. However, if you did watch the scrub the day before, you did get to see a little blip of a clip showing an X-37B separating from a Centaur upper stage, and that was quite a treat. And here are your upcoming launches. If you've got your ticket to Mars, your launch window to get there is coming up, and NASA is working through the COVID-19 pandemic in order to assure that the Perseverance Rover and the Ingenuity Mars Helicopter will be launching on time. The launch window this year opens on July 17th and closes on August 5th, lasting 20 days. If you miss that window, you get to wait 26 months till around September 2022. In late April, Perseverance was attached to the descent stage, which will provide the sky crane maneuver, which will lower Perseverance to the surface of Mars for its planned landing on February 18th, 2021. On Mars, Perseverance will be operating an instrument that will be taking readings of radiation at the surface. That way we can know how do we build a habitat in order to protect you from that radiation when you're on Mars. And space weather is also something that you're going to have to worry about as well. And in order to talk a little bit about this week's space weather, here is Dr. Tamatha Scove. Space weather this week is beginning to show some signs of life. As we switch to our front side, son, you can see there's a lot of prominence activity on the East Limb, especially on the East Limb in the North. And also on the West Limb, we've had some solar storm launches, including one that looks like it's just going to go barely west of Earth, but it looks like it's not going to cause any aurora. However, we do have a coronal hole that's also going to be rotating into the Earth strike zone here over the next couple of days. And that could be sending us a burst of fast solar wind. So aurora could be happening at high latitudes for your aurora photographers. But also the big story is look at the bright regions that are also rotating into view off of the sun's East Limb, especially the top one. As we switch to our far-sided sun, this is Stereo A. And it's looking at the sun pretty much from the side. You can see that sunspot region in the Northern Hemisphere. Now, this is a long-persisting sunspot, and it will be given a designation by NOAA as it continues to rotate into Earth view. But you can also see there's a sunspot in the Southern Hemisphere that's beginning to build. Now, the Northern one has been firing off some solar storms, but it doesn't look like it's been giving us any big flares. So as it rotates further into Earth view, don't expect it to cause any issues for radio comms and space traffic, but it could easily boost the solar flux back into the marginal range for radio propagation. For more details on this week's space weather, including when and where you can see aurora and how these new cycle sunspots are going to affect you, come check out my channel or see me at spacewetherwoman.com. And to wrap up this week's tomorrow news, I just want to thank all of you who helped contribute to the shows of tomorrow.  And I got to tell you, we really can't do this without you. Even though we're doing it in my garage right now, we still wouldn't be able to deliver this amazing show to you without your help. So if you'd like to contribute to the shows of tomorrow, head on over to youtube.com slash tmro slash join to do so and check out all of the great rewards we have available to you at the different levels of support. And of course, watching our shows, liking, subscribing to tomorrow, setting up notifications and sharing these shows everywhere, that's an incredible help as well. And that's Miko for this edition of tomorrow news. Thanks for stopping by this week. And until the next one, remember, stay safe, stay healthy, and keep exploring.


Okay, everyone. Good morning My name is Lars Brinkhoff. I'm from Sweden by the way I am here to talk about the incompatible time-sharing system a little bit about my background I got started as a kid programming basic on a week 20 computer I switch over to assembly language programming on a 68,000 processor the Atari ST I Read this book the hackers dictionary which is full of histories and mythology and A lot of it is about PDP 10 computers. So that kind of stuck in my mind as a kid Much later. I was involved adding Assembler and linking support to the be new tools tools For the PDP 11 so that kind of got me started with the retro computing and Then I contacted a company in Seattle, which still makes the PDP 10 computers and Asked about doing the same for them and I said, yeah, sure. Do you want to work for us to port? GCC to the PDP 10 so I did that for two hour for two years So then I was really into this retro computing and PDP 10 computers So I I decided to look in looking to where this ideas operating system, which I read about as a kid So a short overview on my presentation. It's first of all, what what is ideas? the history and the kind of what makes it special and A little bit about what's going on today. So first of all, what is ideas? It's an operating system a time-sharing system for the PDP 10 family of computers I'll tell you more about that in a minute It's a time-sharing system, which means that like 10 or so people shared a single computer It was first written at MIT. This is MIT in in Massachusetts, USA in 1967 and it was running until 1990 One of its most famous characteristic is that it has no security So I'll tell you a bit more about that later, but it has no passwords or file permissions or anything So it's very open and very easy to use in a way and it was Involved in a very interesting period of time when the ARPA network was made which evolved into internet we have today and It's as as LISP was invented at MIT. It was heavily involved in LISP development and Many interesting games like Sork the e-max editor and so on. I'll tell more about these in other slides So the PDP 10 computer It's a very large computer made by digital equipment corporations or DEC Here is a Typical setup Just this part here is the CPU so you can see it's rather big There were five generations through the years first it was the PDP 6 Which was kind of the prototype for the PDP 10 and then four models k a k i KLKS for the PDP 10 There were no no more development from 1983 or so So that's kind of where the PDP 10 ended and also the therefore ITS fell out of use eventually It has a 36-bit word length which was quite common in the 60s and It was designed with LISP in mind so you can see that Two 18-bit addresses fit in a word, which is perfect for LISP and a con cell It's very nice to program in assembly language, which was very popular with programmers and academics Especially on the ARPA network At some point maybe a third of the computers on ARPA network to PDP 10 computers So it was quite dominant in its day Just to paint a little picture of the landscape right before ITS was made There was an AI artificial intelligence group formed in the late 50s at MIT Kind of where AI research began There was a CTSS compatible time-sharing system for the this IBM computer in the early 60s And it was one of the early time-sharing experiments before Time-sharing was even invented also The the time-sharing concept was invented recently and this was one of the first experiments And then we had project Mac formed at MIT Which involved both time-sharing and development of Maltics in the mid-60s And it was also for the AI research And not a very good photo of this particular Maltics computer, but there's one I found So ITS was written at this AI laboratory at Project Mac At Project Mac for their first PDP-6 computer It's they've at first they started with Stannolune tools which ran without time-sharing so they had an editor, a sampler and so on But only one person at the time could use it So it was realized that would be more efficient use of the computer if you could have a time-sharing system So ITS was written for that purpose They also had access to CTSS and Maltics, but they didn't like it It's those weren't very responsive systems It was more like a line-oriented system and Maybe it could Take up to a minute to get a response sometimes so The the researchers and so-called hackers which wrote ITS that didn't like those systems. So Here's a picture I found In the ITS backups, which says happiness is not using Maltics So that's kind of how how they thought about Maltics and why they wrote ITS I mentioned hackers hacking is something that's been going on at MIT for for a very long time and Hackers considered themselves Very good programmers Before the term was changed to mean computer criminals They wrote ITS more as a practical tool Whereas let's say Maltics was more like something they planned for years and implemented for years But hackers they wanted something done now. So they wrote ITS very quickly and it was very Oriented towards practical use So it's also highly interactive most programs respond within less than a second if you type a single character So many of the programs are very character oriented whereas there's Maltics It's more line-oriented and less interactive As I mentioned, there are no passwords until later when there were four kind of force to add passwords for incoming network connections and no file permissions So it's very easy to get access and there was source code for everything open like open source today and Also do it yourself attitude. So if you needed a feature, well, why don't you implement it yourself or or fix a bug or anything? And they allowed the guests coming in from the network and also like high school kids in the area could Walk in and starting use the computer thing. You can't even encourage that After this initial period There were a period of further development. The the iLab got a newer PDP 10 computer to Replace or supplement their PDP 6 in the late 60s. They added virtual memory The first system didn't even have discs, but as soon as they added discs, they could have a swapping and paging towards the disc They joined the very fresh ARP and it's in the early 60s 70s and Two more groups got their own PDP 10s and started using ideas on those as well So that's an actual photo one of the very few of the AI lab PDP 10 and This one is for dynamic modeling headed by lick lighter Who was the one who started our planet? And the third one is for mathematics We shall talk about more later So in the mid 70s There was a period of very a lot of development and New things happening They since they were on the ARP net they had a common Router so to speak so they used that for internal networking and they made a Network file system that could transparently access files between all these computers Maybe the first network file system They implemented new graphical displays with these fancy keyboards which has control meta alpha lambda and so on They are for under to the list machine keyboard There they implemented their own chaos network with the local kind of like Ethernet, but their own version of that And They got yet another fourth PDP 10 a KL 10 model, which is the biggest and fastest Mostly for running Maxima, which is a mathematics program. I'll tell you more about that later The emacs editor was implemented in 1967 and In the 80s they switched with the rest of the ARP network from from the old protocol to TCP IP So little of the various kinds of research done with these computers First and foremost artificial intelligence, of course and robotics and computer visions were kind of part of that As I mentioned Lisb and scheme Well, this was invented on an IBM mainframe But this the the famous Mac list implementation was developed under ITS and scheme was Invented on these machines and Eventually, they created special machines for running list lists machines There was Maxima for mathematics the logo programming language we see a turtle for turtle graphics there Model is an kind of important language in some and clue as well There's separate slides for those Here's a famous AI program. It's kind of hard to pronounce but something like a shrewd Lou So kind of a robot simulation with a graphical display You can tell it in natural language what to do and how to manipulate these Geometric objects in a small world and it would kind of plan and solve problems if if it wanted to Rearranged things and things were blocking each other. They couldn't come up with a plan how to perform the actions Okay, Lisb as I mentioned It was invented in the late 50s by this guy John McCarthy for an IBM mainframe But it was the soon as they got the PDPS 10 it was implemented for that and It was such a lot running standalone when then ported over to run in time sharing and Then it was called Mac Lisb for project Mac Lisb It had a great compiler Then we have a green blad to the right and Tom night to the left who made the list machine and We have guys steel who invented scheme Okay, Maxima. It's a program for symbolic mathematical manipulation Kind of like Matlab or War from alpha or something like that It was mainly written by Jill Moses here It's also more important that lots of people from all over the ARPA network logged in from remote sites to use this So it was very important. It was written in that Mac Lisb. So there was a lot of funding for Development on and maintenance of Mac Lisb, and it was so important they got to PDP 10s just for researching and development of Lisb and Maxima the logo programming language It was invented at the BBN company in Massachusetts, but Pretty soon. It's moved to MIT and for for all of the 70s. It was pretty much developed under ITS So we have for example the another turtle there and Over there we have Marvin Minsky and he invented a machine for running logo, which is very well-hidden secrets, but and We have an emulator for that now and They also had their own smaller PDP 11 and they wanted something familiar with that So they wrote a small ITS system for that PDP 11 and That is also working on an emulator and it's kind of similar to this big brother PDP 10 ITS Mentioned the model programming language It's the most famous thing is that it was used to implement this Zork game It's kind of a Lisb it was intended as a kind of Lisb 2.0 But it was only used by one of the groups the dynamic modeling group The other groups kept using Mac Lisb instead Of course Zork led to the Infocom company and the text adventure boom in the 1980s so that left left quite a mark And it was also used to boost rep another programming language, which was Yes Right Yes So the original Zork was written in model and it didn't have like a framework It was more like a monolithic program and then they invented the Zork implementation language, which did As far as I know a run on PDP 10s, but it generated code for a virtual machine that ran on the microcomputers It looks very much like model, but they're separate things really so the clue language One of the most important languages no one had heard about It's the the name stands for cluster, which is kind of a class. It was Invented by Barbara Liskov here for exploring a new concept of data abstraction, which we all take granted for day It was it's very very modern. It has exceptions iterators parameter types It's all the language designers in the 70s 80s 90s Know about this and it influenced many of the languages we use today So it's had really great impact, but outside of language designers almost no one heard about it and also Barbara Liskov's clue group they got some graphical Workstations and the need a graphical window system for that So they took something from Stanford called W and the developed X So That's where the X window system came from there were a lot of games on ideas Space war was invented on a PDP one, but it was imported to the PDP sex and 10 as well And it's runs under time sharing in ideas if you like The Mac hack six program is a green blood chess program It's a picture there It was first program to compete against Humans in real chess tournaments, so it even had like a membership in a chess club The adventure game was very influential in the text gaming text adventure Genre and was the inspiration of the sword. It wasn't invented on ideas, but they had running there as well Maze you can see it's very well over here, but it's kind of the first first person shooter treat 3d game There's another unknown game called a dazzle dart, but which I would like people to know more about so keep that in mind I will not tell you more about that, but I want to mention it anyway Luna lander is a Famous game for landing something on the moon surface And of course or guess I mentioned before Also wanted to mention a little bit of the of the multi-processing aspects We we don't have just the PDP 10 computer and that's it We have a PDP inside 10 is surrounded by many other for and many other smaller PDP 11 computers They still had the PDP 6 attached for running standalone programs without time sharing So it was kind of a real-time microcontroller except very big They developed the first list machine called cons which was directly attached to the PDP 10 with shared memory and Also chess machine for a green-blast chess program We have a GT 40 up in the upper right and we have a Luna lander running on there and The the maze the first person shooter game was running on the in black to the lower left and Lower right we have that logo machine Marmin Minsky made had a dual displays one for text one for graphics and For all these there were tools software and so on on the ITS system So it was kind of the hub of all this development some of the special features One of the most Pride it features is a PC looser ring which sounds kind of strange, but it means that A user space program it can never observe another user space program when the other program is running in the in the kernel So as soon as we say you're debugging another program It will either finished the operation halfway or back out and go back to user space So that's that's kind of good for debugging and things like that And that's something that Unix still has some problems with today. It doesn't really a solved problem As soon as you log in you will see that you're in a very strange user interface, which is actually a debugger Which is actually quite convenient for starting and manipulating programs It has this single character user interface which most programs in ITS has so it's very quite different from Unix But once you get to learn it is kind of like emacs, but for memory and jobs and files They had the user space device drivers Which one of those were for implementing the file system the remote file system They had real-time scheduling for controlling robots and this had lots of different terminals. They had quite advanced Take terminal independent system kind of like curses for Unix Some of the things we consider limitations today There was just love one level of directories. They could not have a directory inside another directory and Also file names are just two parts. We each always is just six characters So that's a bit of a limit Okay in the 1980s there was a decline period As I mentioned deck stops making hardware in 1983 That was kind of the cancellation announcement The old machines the PDP six and k a's were Kind of not working anymore that was scrapped So at one point there was just one machine running ITS But to dictate donated several KS 10 the newest model And it was ported over to that. So there we have actually the new AI ITS machine, which is now in Seattle The KL 10 was also getting old it was shut down and shipped to Sweden In the late 80s and then also shipped to Seattle. So Seattle is now kind of a PDP 10 hub And eventually the KS 10 machines were The discs and memories were getting old. So they were shut down as well in 1990. So that was the end of ITS at MIT Here's some data These are all the unique timestamps from the files that are on backup tapes So that kind of gives you an idea how many how much work was being done Over the years so we can see they started backing up around here, but then The usage clearly shot up as a peak here probably because the new KL 10 was Started then and then we can see there was a period of Sustained development and then a decline in the 80s Here's another view of data. This is the version numbers for ITS It started way back in 1967 but we don't have any data for that The first we have is around 600 in 71 and we can see it's kind of gross quite linearly and In the mid 50s that's a jump maybe because the new KS 10 computers Arrived then and then it's kind of leveled off in the late 80s Some of the legacy things we still have today that comes from ITS Maybe one of the most important is the GNU projects I'll talk about more about that the emacs editor was Ported over to Unix a new implementation, which is still running today Both emacs lisp and the standard common lisp pretty much comes from Mac lisp Maxima I'm not sure it was still a very available in a commercial version not too long ago But I'm not sure today, but anyway, there's another Maxima Free software which comes from the original ITS Maxima I would argue that the meta key we have known some keyboards today comes from these Keyboards and then where they were supported in X as well, and that's probably why we still have it today Unix job control if you type control Z Z it's It's to a suspended program and that's exactly what it is in ITS as well So it was actually an MIT ITS hacker that added that to Unix and the more utility is a Unix version of what's done internally in ITS and of course this is called less in the GNU version The that GNU projects was started by Richard Stallman, which was an ITS hacker from the early 70s So he was greatly inspired by the ITS values and how everything was free and open and apparently he Tried to update some software for this Dover printer and he wasn't allowed to so he was so angry with that So we started the GNU project Okay, so After this decline period in the 80s people were still curious about ITS in the 90s So a PDP 10 emulator was written and it was running ITS in the early 90s and That emulator wasn't available to many people but in the early 2000s there was another PDP emulator available and that was put on Internet in the early in Tutors 2001 and Public ITS distribution was made is what's kind of a finished disk image with everything. Well, not everything those programs that were available in 1990 were in that disk image, but it was kind of a static image But Very much usable and nonetheless, but without much of the older software from like the 70s or 60s and Many units tools for these files and protocols were written and here we see a photo of a FPGA PDP 10 computer, which is running ITS What this is more recent development when I got involved in like seven years ago, I I got in touch with MIT I got access to their Archive of the PDP 10 backup tapes. I was able to go through these and locate many old programs and I decided rather than produce a static disk image I would have to build scripts that takes all the source code and builds and assembles and compiles and so on so we can know How exactly how everything needs to be built or we can Also make updates and bug fixes and so on and To do to run all these old programs We also have to update the PDP in 10 emulators for lots of strange hardware that was used And the MIT hackers like to use their or invent their own special hardware Which was only like one or two ever made And there was also an emulator for the chaos network Here's an actual tape a photo from that archive So this describes a little bit more in detail how this build script works It makes a virtual magnetic tape with just a few bootstrap programs to make a file system on a disk and Then it's copies the ITS kernel and a few assemblers and so on on to that binary Onto that disk and then we get all the source code and that's Scripts will build builds like over 400 programs. It takes like one or two hours It would take probably take weeks back in the day only if they ever did it's on the real machine and We added many bug fixes and updates and There's the Gita projects so we have a kind of easier tracking and continuous integrations and all those modern facility facilities and The most recent development is Oscars Pi Dp 10 Which we have on an exhibit here today So we are very excited to see this soon coming alive and finally If you want more information, we have the Gita projects We have a new manual being written for ITS and all its programs and One of the most engaging descriptions is this book Hackers Which describes a lot about the pdp six times and how it is first written and so on So I recommend that book Okay, that's it for my project representation. So do we have any questions? A lot of information. Yeah, I'm sorry Nothing, okay Okay. Yeah, come talk to me later Okay, thank you everyone


Today of class, and mainly what will consume us today is just an open, free-for-all exam Q&A session. So I don't have slides. The slides are online. You know, I think you guys know what you have to cover at this point. I'm happy to take questions. We can review some of the old exams. We can, and again, also to answer general questions about the exam and about the material we covered this semester. Before we do that, it's the last call for the 100-Hundred Club, and happily we have two new groups. Yusuf and Patrick. I don't know if those guys are here. All right, Patrick's here. Yusuf is sleeping, maybe. Yeah, these guys have been in office hours, I think, pretty much continuously since March, so they're done. Yusuf, congratulations. There he is. And Abhishek and Seraf. Are those guys here? All right, one of them's here again. So these were, I was glad I checked before class, because these were like last-minute editions, like maybe an hour ago. So congratulations. That group is now 11. But you guys still have another week. We will hold office hours next week. We're going to shuffle the schedule around a little bit. Obviously, your schedules are different. Our schedules are different. It's exams. But we will do plenty of office hours. And on Friday in particular, we'll do office hours to help you guys sort of wrap up. Okay, so you guys made it to 90%. You can still keep doing the evaluations. There's no need to stop. The 13 people that are left that haven't filled it out, I would still really like feedback from. So I don't know if you guys saw it on Piazza. I just posted one of the short answer questions and the medium answer question for the exam. So you guys have those and can prepare. Look, all bets are off on those questions. You can discuss them on Piazza. You can discuss them amongst yourselves, whatever. The only requirement is, as someone asked, no, I'm not going to give you the answers to. That was a great question. I mean, why not ask? If you don't ask, you don't get. So again, there's no rules about how you guys talk about these. You're welcome to discuss them openly. I would just, again, caution you to... The questions are fairly straightforward. One of them is directly drawn from a couple of the papers that we read. So don't be led astray by the crowd. When you come in here on Monday, you're going to have to write your own answers to be prepared to do that as well. There's no materials allowed for the exam either. So you're going to have to prepare and answer mentally and be prepared to sort of convert it into text on the page that we could read. And as soon as I write the long answer question, I will release it. I have a couple that I have drafted and they're just not quite done. But I will send them out as soon as possible. Hopefully today, maybe not today, probably tomorrow. But as soon as the long answer question is written, I will release it. Okay. Just since we're wrapping up today, I thought it would be appropriate. They're not here, unfortunately. But I sort of wanted to allow myself to thank the TAs for the class as you guys well know these guys, these two men and one woman worked their butt off all semester in office hours, behind the scenes grading your assignments, but particularly helping you out with the assignments. So they really run the class at this point. I just wander into this room periodically and talk for 50 minutes. So they're really doing a lot more work than I am. So I'd like to thank them first. Now I would encourage you if you see them and of course, if you probably will see them over the next week, please thank them. They work really hard to make this course work and they do make the course work, particularly the assignment part. Also the ninjas. So Jerry, Yee Hong, Scott, Doug, James, Carl, Natasha, Sriram, Ryan, and Mack. So these are volunteers. So the TAs get paid. These people are there out of the goodness of their hearts because they want to help you guys do the class. They want to make the department a better place. So I can't say enough about these people. I think they've done a fantastic job. I know a lot of you guys have interacted with them during office hours. So again, please, if you see them over the next week, say thank you. I'm hoping that some of you guys will consider doing this next year and let's give them a round of applause as well. Because the only reason they did this is because I asked them to. They didn't get anything out of it except the fun of reliving their days in this class. Okay, so the exam. Let me just go over the format. It's Monday at 3.30. It's in this room, I think. Can someone confirm that? I think it's in this room. I'm planning on it being in this room.  You're going to get a zero. And I'll release more details about this. At some point, we're going to have to sort of close the exam. So if you don't arrive, probably within an hour, you're going to get a zero. So please come. On the other hand, compare with the midterm. And this is something that you should keep in mind. The exam timing is a lot more relaxed. So I'm giving an exam that is roughly twice as long as the midterm. However, you have over three times as long to actually do the exam. So if we don't get you started exactly at 3.30, just relax. It's not the end of the world.  Most people have no problem finishing the exam in the allotted time slot. And I also think that's something that's going to allow you guys to do better on the exam. You just have more time. So even if you spend, for example, an hour on the first 10 multiple choice questions and the short answer questions, that still gives you two hours to write answers to three more questions. So I think that you will have enough time and you won't feel the sort of time pressure that you did on the midterm. So I'm hoping this allows you guys to provide answers that indicate what you know and not that you ran out of time or whatever. OK, so the format's a little bit different than the last few years of exams. My only excuse for this is that it's getting harder and harder to write good exam questions. And so I'm reducing the amount of redundancy, particularly for the long and medium answer questions. So this year, the same as last year, same as the midterm, 10 multiple choice questions, six choose four short answer questions. I've released one of those. I've released the medium answer question, but there are no other options for the medium answer question. That is the medium answer question. And then same thing with the long answer questions. I will release one, but you will have to answer both. So in the past, I've written three and you got to choose two, or two and you got to choose one for the medium answer question. I just can't keep going at that rate. A year or two from now, people will hate me because I'll be writing these incredibly inane and complex questions because I'm sort of out of good things to ask about. So by the time you arrive on Monday, you will have seen the medium answer question and a long answer question as well. So the only big surprise is going to be the long answer question. The other long answer question, and then some of the short answer questions as well. So many questions about the format, logistics, whatever. I mean, everything else is pretty much midterm redux. We're doing the same thing. We'll release a seeding chart, blah, blah, blah, blah. Any questions about this? All right. Okay, so at this point, I've got like three or four minutes of material for the end of class. I have nothing between now and then. So I'm happy to ask questions, answer questions. We can go over past exams of which you have access to several. The floor is open. Or if we don't use the time, we can all piece out early, which is also fine with me. What would you guys like to do? Who has a question who wants to go over a question from a previous exam? The only thing I will not do is discuss the questions that were released just to preempt that. Those I think I've given you plenty of help on. Can you discuss them with the TAs? Yeah, why not? And the ninjas as well. I mean, these questions are now publicly available. So go to town for how to sign. Any questions? Yeah, the OS design principles. Uh-oh. Yeah, so who can... Well, let me give you a hint about the OS design principles question. I would suggest that the best source for the OS design principles question is to read the Hintz paper by Butler Lambson. That paper pretty much subsumes the OS design principles that we've talked about this semester. But we talked about, I mean, who can name some of the OS design principles that came up in class? Who can name one? Yeah, Josh. Use of cash. Use of cash. So we had a distinguished speaker yesterday who came in from University of Rochester. Sandy had worked at us. She's a computer architecture person. She works on caches in particular. And her talk was incredibly cool and interesting. It was really sort of bound up in the type of stuff we've been studying. And I discovered something that I did not know, but kind of makes sense, was just that caches, some caches actually have their own TLB. Who knew? So the L1 cache has its own TLB so that it can resolve addresses when it's loaded into the cache. Anyway, so even the caches have caches, right? Like there's no escape from this. The system is a series of caches and one way to make a big slow thing faster is to put a smaller, faster thing in front of it and figure out how to use that thing effectively. But her group has also done work on adaptively sizing cache lines, which if you remember, back to the scaling Linux paper that we read, would allow us to address some of the issues that we faced with false sharing and other types of cache issues. So yeah, so I would refer you to the hints paper for not only for the exam, but just as a general guide to life, right? Just print off that paper, fold it up, put it in your pocket, and just carry it around with you for the next 10 years as you guys write code and build different types of systems and do other types of programming projects that that advice will rarely, rarely ever lead you astray.  But it won't lead you astray. Other questions? Design principles? So I think I mentioned this before, the exam is cumulative, so it'll cover everything. There will be a slight emphasis, particularly in the short answer section, on things that we covered in the second half of class, file systems, virtualization, some of the papers. Obviously the medium answer question is drawn from the paper that we read, but also has something to do with OS design, so that's a second semester thing as well. Performance analysis, something else that we covered in the second part of the course. RAID, stuff like that. So again, I feel free to ask about anything we talked about this year. I will probably tilt a little bit towards the stuff that you have in mid-testa now, which is the stuff from the second semester. Other questions? Last year's final questions, three and four. Yes, we can. Let me just pull those up so we can look at them together. Three and four. All right. Okay, so three will not be on that. So we did not read the GFS paper. So three won't be on the exam. Certainly not going to ask you about papers. So can we skip that? Yeah, yeah. Okay. All right, four. Describe two ways that file systems compensate for or design around specific properties of spinning disks. For each first identify what the property is and second explain how the file system is designed around it. I'm glad we're reviewing this because I think this is on my list of questions to consider for this year's exam. So sorry, it just dropped off that list of questions. I regularly forget the questions that have been on prior exams. All right, two ways that file systems compensate for or design around specific properties of spinning disks. Who can do one? Yeah, Josh. What's that? Yeah, so remember the idea of cylinder groups.  Seek is the thing, moving the heads back and forth is the thing that really dominates latency on spinning disks. So a number of file systems tried to had features that were designed to try to incorporate this. So FFS introduced the idea of cylinder groups. So I'm going to try to locate related files together or related file metadata together. Now EXT4 still reflects some of these features. So what's an example from EXT4, if you guys remember, the file system feature that reflects seek times. What does EXT4 do that directly reflects something about the fact that seek is slow? It's similar to cylinder groups. Yeah. Yeah, it's not quite that, right? So remember, EXT4 breaks the disk up into these pieces. And each piece has an area where it has a file system metadata. And ideally EXT4 is going to try to use that metadata to, it's going to try to attach the blocks that are located in that group to that group of metadata. So remember, each sort of I'm blanking on what the name is, but each little sub-disk had things like inodes, had an inode map a block availability bitmap. So if I'm going to allocate a file, I'm going to allocate the inode and hopefully I'm going to allocate the data blocks in the same group so that the goal is that the data blocks are close to where the inode is located. So that's one way that EXT4 did this. What's another? This is probably the harder part of the question. Yeah. I don't even know if that's in the answer, but that's a good answer. It takes a long time to position the disk to read or write data. So by the time I've done that I don't necessarily want to read or write the smallest amount of data that the disk can support. Particularly as file sizes have grown I don't want to take all this time to move the head all the way over somewhere and then only pick up 256 bytes of data. That doesn't make any sense. I'm trying to find out if the large number of disk channels or multiple megabytes may end up consisting of a bunch of different 250 bytes blocks that have fragment and end up all over the disk. So EXT4 and even FFS incorporated this larger block size of 4k and more farther file systems have made it even larger. I try to allocate large contiguous areas to amortize the time it takes me to get the head there, get the data under the head, and then I can read a whole bunch of it all at once. What's another feature of spinning disks? You guys are thinking about internals. Yeah, we're thin interface for reading and writing. What's that? OK, yeah. So I think we would accept that. The disk interface is terrible. The disk doesn't know about names. The disk doesn't know about directories or whatever. All of that stuff is built on top of a very low-level read and write block interface that the spinning disk provided. What else? Yeah. Oh, yeah. Now you're thinking to terrible FFS quirks. Yeah, so remember FFS did that thing where it would skip blocks on the disk because the bus couldn't keep up? Yeah, that's terrible. How about stuff that survived until the modern day? That's a good answer, guys. I always hate thinking about that because it's just like this dark past. It's like the middle ages of disks. Yeah? Have you heard of it? Yeah, disks fail. The spinning disk is a physical device. It's the only part of your computer that you can break by dropping it. Not going to break it. I mean, you might break memory by dropping if you drop in the right way or karate chop it or something weird, but in general, it's the most flimsy part of your system. It's spinning, things are really close together, and so jolting it, dropping it, it fails. It wears out, things are moving, wears out a lot faster than silicon electronics, which, I mean, I'm assuming that transistors wear out eventually, but I don't know anything about it. Talked to somebody in EE, but I assume they don't last forever, but they certainly last longer than something that's spinning around at like 10,000 RPM. So all of the consistency things we talked about with disks, everything that disks do to try to survive failures, faults, sectors, dropped sectors, stuff like that. All of these features of disks that are there because they are physical devices. I think that's enough, but that's a good question. Other questions? We can do other questions from this year's exam. We can do questions from other exams. Anything else? It's a good question. I would expect you to understand the papers to the level of detail that we discussed in class, but I don't think it would hurt to read them and find out a little bit more about them. But I'm not going to ask you about the details of some. In class, when we talked about the research papers, intentionally we focused on why the motivation was what the big design changes were, things like this. We didn't get into the nitty gritty of how, for example, exo-kernels move data between the exo-kernel and other parts of the system. And if you look at those papers, if you look at Zen and the exo-kernel paper in Atlantis, there's all these sort of gory implementation details that are super interesting if you're sort of a hacker person, like a lot of us are, but not the type of things I would ask about on an exam. So I'm not going to ask you how the IO rings that Zen uses work. I don't even understand that to be honest. That's a good question. So I think how about this? How about if we agree that watching the videos and absorbing the discussion in class should prepare you to answer the questions about the research papers? Other questions? Yeah, what's that? Yeah, sure. Yeah.  And every year, there is always a long answer question. You know, one of the things I want to do with the exam is give you guys a chance to tackle an interesting design problem that's related to computer systems. And so there's always one or two long answer questions. Some of them are somewhat processing stuff that we've learned, but there's usually one where I ask you to sort of think about a new design problem and provide a solution. So let's look at, let's see, which one of these is a good example. Yeah, OK, let's talk about this. This is a fun question. So essentially, what this question says is, look, for a long time, we've dealt with the fact that we have this trade-off between performance and durability. Memory is fast, not durable. Same thing with cash as in other things. Stable storage, durable storage, whether it be for long-time disks and now spinning disks and flash, have been slower. And that's been something that sort of created the storage hierarchy that you guys know and that you guys have on your machines. However, there is research, sort of hardware research going on that could potentially lead to having storage that is as fast as memory, but persistent. So imagine if flash were as fast as your DDR3, DDR4, DDR68, whatever, memory. And so the question was, how does this change the design of computer systems? So this is present and motivate five different significant aspects of OS design that you would reconsider if you were designing OS for a device with a single, large, and fast byte addressable NB RAM chip replacing both memory and the disk. So essentially, you can think of this as a system that has no disk, quote unquote, but just a huge piece, like a multi-terabyte piece of something that's as fast as memory, but does not ever lose its contents. So what's one? Well, a virtual memory goes out the window. Well, what part of virtual memory would we not need to worry about anymore? Yeah. There we go. No disk to swap to. That's awesome. So there were a couple of answers to this question that were essentially just kind of like parts that you could now kick to the curb, like swapping, gone. What else can I kick to the curb? So there's aspects of linking and loading that could be very interesting. So load-elf, what does load-elf do? Load-elf is designed to take this blueprint that's in a file. Why is the blueprint stored in a file? Because the files are persistent and memory is not. So load-elf is supposed to take this and move it into memory when the process is run. Why do I do this when the process is run? Because until then, I don't want to use the memory for it. But now I don't have this distinction anymore. So Isaac makes a great point. It's just sitting there. The program is just sitting there at any time. Now, so load-elf might become as simple as just copying. So load-elf kind of starts to look like fork. I already have an address space set up for this process. It may not be running. It's just sitting there, dormant. And instead of using load-elf to move stuff from the disk to the address space, I just call fork to create a new copy of the address space. So I need a copy of the address space that's sort of at t equals 0. I need a copy that represents what should start to happen when this process starts to run. But I can just have that address space sitting there. And then I call fork and let it start executing. And that's sort of how things work. So that's a great point. What else? What else can I do? Yeah. Well, remember, I don't lose this memory. This memory is persistent. So if I shut the machine down and power it back up, everything's just the way that I left it. But remember, again, I know it's hard to wrap your mind around. It's hard for me, too. This was like four years ago. I was at Hado West at someone present this paper. And it's like, it just really blows your mind. It's like you have a huge chunk of memory, multiple terabytes of memory, but it's persistent. It does not lose state when the machine powers down. So yeah, so this is great question about in a system like this, what does it mean to reboot? On a normal system, rebooting or having the power pulled out resets the contents of memory. Now, on some level, that's a pain because the OS does all of this work to unboot, which takes a few minutes sometimes, to essentially use state sort on disk to reconstruct the memory state that's suitable to sort of boot the system until it do whatever the system does when it boots up. So the system does the same thing every time it boots. But because the memory is wiped, it has to sort of go through this routine of loading things from disk. But now I don't have a disk. The memory doesn't get wiped. So on some level, this is sort of a trade off here. So what's good about this? There's both good and bad sort of aspects to this change. What's good about it? Yeah, what's that? Oh yeah, so again, this system has a single store. I don't know what to call it because if you call it something you guys are used to hearing about doesn't make sense. You can think of it as a single store that's persistent but as fast as RAM. Now you're still probably going to want to have caches because caches close to processors still make things a lot faster. So you can still assume your processor has an L1, L2 cache. Well remember, in order to have a cache, there has to be something bigger underneath it. This is the bottom. If I have a terabyte of memory, I don't need any more storage or 10 terabytes or whatever.  Who cares? But that can be off device. Again, I have imagined two terabytes of RAM that does not lose its contents when the device reboots. So in theory, again, what's good about this from a reboot perspective? Right. So yeah, it's impossible. But you're getting to the root of what's both good and bad about this. The problem is rebooting doesn't reset anything. So good news is I don't lose data. So what is one thing that this should allow me to do better than I can do today? Yeah, so that's a great point. This makes sleep trivial. I just need to make sure I stop things cleanly and then the device can. So this device is going to sleep like a champ. And yeah, power off, power on. Under normal operating conditions, this is the smartphone that runs out of batteries.   So power off is really nice. Yeah, so that's the bad part. The bad part of rebooting is one of the reasons that systems reboot is something went wrong. And rebooting helps me get back to a good state. So there's some bug in one of your programs or in a bug in the OS. Let's focus on the OS for a minute. And failing in rebooting allows me to sort of reset the system and clear out somehow, again, somehow I got to this bad place. I went down a series of paths and maybe it was caused by a series of really weird race conditions that the user did something funny or a device was misbehaving or something. But I got into this state that I didn't want to be in. And so despite the fact that it's super drastic, rebooting allows me to say, start over. Just clean the slate and I can start over and we'll see what happens again. And I'll try not to do that again. This system doesn't really have a concept of doing that. Yeah. Yeah, so that's another great point. I mean another reason systems reboot is because they run out of memory. And so that's another case where I made these mistakes over time and they sort of built up over time and then eventually I didn't have any memory left over. And the way to get back to a known good state is just to reboot, right? To just state every process, start over. And then you can start leaking memory again. But if I reboot periodically, so actually just anecdotally, we recently had a problem with one of our phone lab machines and I actually had to come in at 3.30 in the morning and power cycle the VM host. And it turned out that as soon as I did that, the whole machine got a lot faster. So I had this theory that the VM host was leaking memory slowly for months and things were just slowly degrading over time. And then finally power cycling, it caused the VM host, actually the hypervisor, the VM or hypervisor to go back into a better state. So anyway, even hypervisors leaked them. That's my theory though. I am in no way imputing VM wear on the software. Yeah, what's that? Well, I mean we could still do a scheduling in the old fashioned way. I mean scheduling doesn't really have to change.  But what does this allow me to do? Let's come back to reboot. So bad thing is it's not clear how I can sort of unwind mistakes because wiping the memory is this really sort of dramatic action. But it tends to work. I mean it's a big step, it's a big hammer. You have to hit the machine with and it's frustrating because it takes a minute to come back up. But when it does, things are usually better. You've managed to sort of clean out the system and give it a fresh start. So we may need to find a way to redo that. Now on the good side, what is something I can do with this machine that I really can't do on a normal machine as far as reboot? So let's say I've got 10 applications running and the kernel hits some sort of fatal fault. So what should I be able to do here that I wouldn't be able to do normally? So normally on a normal machine, the application is using RAM and the kernel is using RAM. And in order to get, now of course, the kernel, I'm not going to make very much progress with the kernel that's hit some sort of fault. That's why the machine usually starts over immediately. What can I do here? Yeah, so I should be able to reboot the operating system without affecting the state of any applications. So it's kind of like apps are running. They're making system calls.  And then they just keep making system calls and everything goes along. Now the problem is, of course, there might be some state that the application is relying on the kernel to keep, like its file table. But you can imagine designing an application so that there is now a signal. Wouldn't this be awesome? A signal that the application gets that says, the kernel just rebooted. I don't know what's going on with you, but I just powered off and restarted. So that file table that you were using, I forgot all about. So you might want to reopen those files that helped me out because I don't know what file handle 4 is anymore. I knew a second ago, but I forgot because I've been restarted. So that's another example. Yeah, so I mean, you can try to, well, OK, remember, there's no disk.  But again, the problem is the kernel has state about applications that may or may not be easy to save. And actually, there's quite a bit of that. There's page tables and other things. But in theory, I might be able to reboot the kernel in a way that preserves as much application state as possible while allowing the applications to continue to run. Normally, you don't care about this, right? Because you just think, look, the kernel rebooted. If the kernel reboots the machine, everybody loses all their state. And so who cares, right? The application can't keep running because all of the state that it had in its own memory is gone. So again, who cares at that point? But now, because I have this persistent memory store, it's possible that I can soft reboot the kernel without affecting everything else. Any other questions about this question? This was a fun question. No, but this is a problem file systems already have, right? I mean, the idea of a file. So one of the things that's really interesting about this, of course, another change here is, normally, I've got memory and I've got a disk. And I might use part of memory for pages and part of memory for the cache. And we talked about how those two can flick with each other. And I might use part of the disk for my swap file and the rest of it for file systems. That's usually static. So usually, on Linux, there's a swap region that's just defined on the disk. There's no file system loaded on it, and it's just initialized, and it has some maximum value, and that's where things go. And the rationale is that it doesn't actually take up that much room on the disk. And so the rest of the disk I use for my file system, and I don't really miss that chunk that I use for swap. On this system, everything competes for storage. Now, what's one thing that I just mentioned that we can get rid of now? One of our uses of memory is no longer needed. I don't need a file system cache. The whole file system is in memory. That's awesome. So the file system cache can be dumped. But in the swap file, somebody already pointed out, I don't need to swap, so that's gone. But now I have a system where I have a file system that competes for space with memory. So process pages are now competing for space in the same chunk of the store, what do you want to call it, that's going to be used to hold the file system. And there are certainly aspects of file systems that you would probably want to rethink if you design them on something that was as fast as memory. Yeah. Yeah, that's one of the right buzzwords. There's a bunch of different names for that technology. And again, I am not an electrical engineer, and so I don't understand it, but I think it's awesome. I hope that somebody actually solves that problem so we can use it. Yeah, so that's another great point, which is that in a lot of cases, kernels can sort of tell when they've messed up. Like I had an assertion, like your own kernel has done this all the time. A kernel panic is caused by a state that the kernel cannot recover from. And so it'll just die now. But there are times actually where the hardware has to get involved. So most systems have sort of hardware mechanisms to reboot the system if the OS gets wedged in a way that it doesn't understand. So for example, an example of this would be a watchdog timer. So certain types of systems have, the hardware requires that the system repeatedly write into a register. And if I don't write into that register for a long enough period of time, the whole system reboots because it just thinks something went wrong. So yeah, that's a great point. I mean, how do I handle cases where the OS is broken, the hardware can tell, but without this memory, without this mechanism being able to wipe memory and reboot, I may be hard to recover. Now of course I can still kind of get the same behavior. So for example, I could build a system like this by just partitioning the store so that a certain amount of it was memory and a certain amount of it was the file system. And then I could treat it very much like we treat systems today. So when I quote unquote reboot would involve zeroing out that whole part that was memory and then sort of essentially emulating the behavior of a bootloader. So I can refill that memory space with contents that are in a known good state. It's a cool question. It's too bad I used it last year. So any other questions? Okay, I just have a couple more slides, slides. All right, so the next part of the, just to finish up, what do you do now? So in a couple of weeks, you're gonna have like this enormous amount of free time and maybe next semester if you're still here. So I just want to sort of introduce you to some of the options that you have now that you've finished this class.  I've really been trying my best to get this course into the curriculum earlier because there's a lot of cool courses that, because this is traditionally been a senior level course or whatever that means, people haven't been able to take, right? So for example, there's a cool class on OS internals with Ken Smith. So he's one of our IT staff in the department, but he's also done a lot of work on BSD and he teaches this course in the summers. So if you're around, that's a very cool course. I know it's being offered this summer as it usually is. Next spring, Oliver Kennedy teaches a course on database programming that's also quite development heavy, but databases, I think compared to operating systems, databases have a lot more sort of theory to them and there's some performance challenges and things like this. So this is a course that you guys might enjoy. Distributed systems, which is taught in both semesters, fall and spring, fall by Marat and then the spring by Steve. That's the class that's been in this room before we get here. This is really sort of fast forward into the 90s and the aughts, right? So this is actually how we build systems today. And you'll see there's a lot of interesting new sort of theoretical ideas and new ideas about how to build systems that emerge when you actually try to program a bunch of systems at once and require that a bunch of systems work together. So this is fun. Networking, another very cool course taught. I don't know how they're gonna structure it. It's normally taught in the spring by Demetrius. This year he taught it in the fall. I think next year he's back to the spring, so Chen Ming will teach it in the fall. Regardless of who's teaching it, another very fundamental aspect of how computers work. I mean, I think all these courses should be required because this is the present. This isn't even the future. This is just how computers actually work. Yeah, yeah, but people like that, right? That's why they took this class. So yeah, 489, 489 and 462, and to a certain degree 486, depending on who you take it with, will also give you a great chance to do more programming and to do some fun assignments that require you to write code, which is something that some people enjoy. And also, of course, as you know, programming is a skill. The more you do it, the better you get at it. Okay, so if you are an advanced, and I don't wanna say graduate student, because I would be happy to try to figure out how to get undergraduates into these courses if you guys are prepared for them. This is the course on advanced computer systems in the fall. That's taught by Kartik and Steve. They do primarily sort of Android smartphone work.  And again, I think that course is quite related to what we did this semester. So there's a lot of nice OS design principles. I am teaching a seminar in the fall, particularly for PhD students or any master's students that are PhD curious. And so we're gonna be building, continuing to build a system that some of my students have been working on that's very cool and that we're gonna probably roll out this summer that's allowing programmers to express development time uncertainty. So write code that's more uncertain and that can be adapted at runtime. So this is sort of what's happening course-wise. So I hope that next year we will continue the tradition of having a large and enthusiastic group of ninjas for this class. I know that there's people in this course who will get an email from me asking them, begging them to help out just a couple hours a week like the National Guard. A couple hours a week, a couple weekends a semester and you can be a ninja for this class. And again, I mean, I think this semester having a big group of volunteers really helped make the class work a lot better. So I'm hoping that some of you guys will be able to do that. I will also point out that you will discover and I'm sure the ninjas in this class will agree with me that you do not really understand these assignments until you try to help somebody else do them. You think, oh, I got it to work. I got 100 out of 100 or whatever, fantastic. Try helping somebody else get to that point and explain to them how to do this. That'll actually help you sort of understand these things at a much better level. And finally for graduate students, I'm always looking for talented students to work with me. Also for undergraduates, I've always had some undergraduates in my group doing various projects. So if you're around next year and hopefully for years to come and you're curious about this, this is sort of like step. Doing well in this course is sort of step one in the process of starting to get to the point where you could work in my group. All right, so yeah, exactly. And maybe this will lead you down the path of becoming a systems researcher, but I hope at least what we've been able to accomplish this semester is giving you guys some guidelines and help you to improve as programmers so that you build better computer systems and just build whatever you build in the future better and have a little bit more fun doing, all right? So we're done, I thank you guys for a great semester. I think this has been a really talented class. I've had a lot of fun. I wish that I had a chance to get to know some of you guys better, if you guys are around next year, please stop by and say hi. Good luck finishing up assignment three. Good luck on the exam. I will see you guys on Monday. Have a great weekend. Thank you.


Good morning and welcome to the second meeting of the solicitors in the Supreme Courts of Scotland amendment bill committee in 2020. Today we will take consideration stage of the bill. Consideration stage normally consists of consideration of objections first and then formal proceedings and amendments. In this instance, no objections were lodged. The promoters have suggested 11 amendments and I have lodged them all on the promoters behalf. The committee will need to debate on deciding those amendments and also formally consider and agree the individual sections and long title of the bill. However, before it can do that, the committee is first required to screen the amendments to ensure that they do not adversely affect private interests. In that event, it might be necessary to defer the rest of consideration stage until anyone who might be adversely affected had had an opportunity to make their views known. However, my view, based on the advice that I have received from the clerks, is that none of those amendments adversely affect private interests. Do committee members agree? Could you indicate agreement by saying so? Are we nodding heads? Thank you very much. In that case, we can now turn to the disposal of the amendments. Any voting again would be required by nodding your agreement or saying your agreement. I am now going to move on to the marshaled list. I call amendment 1 on behalf of the promoter. Amendment 1 is group with amendments 7, 8, 9, 10 and 11. Amendments 1, 7, 8, 9, 10 and 11 address the committee's recommendation at preliminary stage that the procedure set up in the bill for winding up the society be strengthened. We were concerned that, in the worst case, the procedures in the bill may not be detailed or robust enough to manage any tensions over the disposal of the society's assets should the society, one day, have to be wound up. The committee recommended that the society's members be consulted as to how any property being distributed. Amendments 7, 8 and 9 now set a requirement that this consultation takes place and that it occurs before the meeting where members would discuss a proposal to wind up the society. The committee also questioned whether the bill should specify a quorum for certain meetings where key decisions about the society would be made and whether a voting threshold should be considered. Amendments 1, 10 and 11 address the issue and ensure that a voting threshold must be set up for any decision to wind up the society. I welcome those amendments proposed by the promoter and I am pleased to move amendment 1 on the promoter's behalf. Does any other member wish to address this? No one is indicating it. The question therefore is whether amendment 1 would be agreed to. Are we all agreed? That is a nodding agreement. Thank you very much. This is very strange but there we are. I call amendment 2 in my name on behalf of the promoter. Amendment 2 is grouped with amendments 5 and 6. Amendments 2, 5 and 6 are minor and technical amendments. Amendment 2 relates to the wee-type link of the widows fund as the dependence fund. Amendment 5 clarifies that the type of general meeting that a member created under a new form of membership is not entitled to participate in. Amendment 6 makes the 1871 act more consistent in terms of style. I move amendment 2 on the promoter's behalf. Does any other member wish to address that? No member is indicating that. The question is whether amendment 2 would be agreed. Are we all agreed? We are all agreed. Amendment 2 is therefore agreed. I call amendment 3 on behalf of the promoter. Amendment 3 is grouped with amendment 4. Amendment 3 and 4 relates to the procedure for closing the dependence fund. In its preliminary stage report, the committee noted that the bill requires that society's members are notified in advance of any proposal to close the dependence fund completely. However, the bill does not require a newtons or prospective a newtons to be notified. Amendments 3 and 4 therefore require that all a newtons and prospective a newtons be notified in advance of any decision to close dependence fund completely. I believe that those amendments will improve the bill and I am pleased to move amendment 3 on the promoter's behalf. Does any other member wish to address that? No member is indicating that. The question is whether amendment 3 would be agreed to. Are we all agreed? We are agreed. Amendment 4 is therefore agreed. Amendments 4, 5, 6, 7, 8, 9, 10 and 11 have all been previously debated and moved amendments 4 to 11 on block. Does any member object to a single question that we have put on amendments 4 to 11? No member objects. The question is therefore that amendments 4 to 11 be agreed. Are we all agreed? Thank you. Members have indicated agreement that they are therefore agreed. The question is that section 1 be agreed to. Are we all agreed? We are all agreed. The question is that sections 2 to 5 be agreed to. Are we all agreed? Yes, thank you very much. We are all agreed. The question is that the long title be agreed to. Are we all agreed? That ends consideration of the bill. As consideration of the bill is complete, it is very likely to be the final meeting of the committee, and the bill will now proceed to the final stage, which will take place in the chamber. I thank the promoters and members for their assistance and work on the bill, and I close this meeting. Thank you very much.


Ahoy Hoy, and welcome to the video. I'm Dr. Sumeria, not a real doctor, and today we're going to talk about some channel news updates, whatever. I've actually, this channel has been kind of slowly dying for like two years now, almost, but the more recent videos I did on the Bright Situation and the Bright List, shockingly, and that's sarcasm in case you can't tell from tone, but shockingly are some of my most successful videos in a long, long time. Of course they are. I always try to cover news, and sometimes the news on the SCP Wiki is drama, but I try to cover the news on the SCP Wiki from a non-drama-y standpoint, but there really isn't always a way to do that. And I don't mind that those videos, who not many other people are doing that kind of content, almost no one else does that, covering news about the SCP Wiki itself. So of course, the one person, I'm sure if somebody else started doing it, I'd probably fall by the wayside again. But the channel health I'd like to try and preserve, and something I've noticed about YouTube recently is that YouTube shorts seems to be the driving factor for subscribers and views on YouTube. Now, I'm not going to stop doing my Tuesday and Thursday videos, but I'm going to try, I might do these on Thursdays and Tuesdays as well, but I'm going to try and do at least one YouTube short video, and I'll probably be mirroring them on TikTok as well. Starting next Monday, I'll be doing one every day. It's just something I thought you guys would want to know about before it happens. As far as I know, the way they've got things set up right now, it won't spam you with notifications every day, but they will show up in your suggested videos and stuff like that on your main page as well. Either way, I thought you might find that interesting. And yeah, that's just a little bit of stuff I'm working on. I was noticing that my Patreon is actually starting to slowly inch up close to $200 again. That'd be really nice if it went over. And I appreciate you guys. If you enjoyed the video, hit the subscribe button. Hit the notification bell next to that, so I don't even know if the notification bell matters as much anymore. It's a whole thing. And then head on over to Patreon.com for it. So I should decimarion. Pledge at any level, like everybody here on the screen already has, including Synderiki, who's pledged $100. It is nice to know that I'm not alone out here, and I should see you again in a YouTube short on Monday.


Hi, how's everyone doing? Hello, yeah. Okay, I'm gonna address it immediately.  My father was devastated, but it's okay. He's now happily married to a smoke machine. So, it's happy stories. Okay, I'm gonna address it immediately. It is ridiculous that I'm doing comedy in the Lewin Hall and I haven't graduated from this hall yet. So, everybody, I think we've got to change the vibe up a little bit. We've just got to, because you're not, in the next 20 minutes, you're not gonna learn a damn thing, all right? We can all relax, all right? Because I know our brains have been very much switched on. Ooh, let's get into the comfy seat because nothing's gonna happen here of importance. So, I want everybody on the count of three to take a big breath in, one, two, three.   All right, so we're gonna do that because really, guys, I'm just a very, very attractive distraction for the next 20 minutes while the judges make their deliberation. Originally, actually, we were going to get a massive mirror, a huge mirror about the size of this stage so that you could be distracted by your own reflections. You know, just like a very complicated cockatiel in a cage situation, but we crunched the numbers and that is extremely expensive, extremely expensive. So, here I am. So, exciting. Undergrads, cheap labor, A-N-U, I'm gonna get kicked out. Okay, but I do want us to feel like this is a support group, okay, for the next 20 minutes. If you wanna laugh, because we don't have time limits now. I mean, we do, but like, they'll wait. So, if you wanna laugh, laugh. If you wanna cheer, you can cheer for me. If you wanna, thank you. Oh, what, stop it, no, me, no, stop it. Keep going, though.  I'm kidding, no, cry, cry. This is a big support group except I'm gonna be the only one who talks. No one's gonna hug each other and I will leave here tonight with a large sum of money. So, okay, I guess we'll just get started. We'll just get started. All right, so, as you can already see, I'm a very attractive, fat lady. Yes, we exist. Lizzo is our current head of state. If you haven't heard of her, look her up. But I've gone to the age of 26, guys. And my body's starting to betray me. It has really started to betray me because I'm in the generation and there was a generation before us where we were having kids later in life, right? We were sort of moving along. We were doing the things. We were sort of having babies later or not even having them at all. And I liked that because as you can tell, I have a little bit of growing up to do. I've gotta stop making very large sequin purchases before children come on the scene.  Hasn't. It's gotten really out of hand, guys. Every time I see a baby on the street, my uterus is just like, steal the baby! Woo! Woo-hoo-hoo-hoo! Okay, not your baby, so leave it alone. Become a mummy blogger! All right, I think those things do more harm than good. I don't think we should, you know, be making motherhood into a comfort... Become an anti-vaxer! Okay! Woo! Lot going on. And I've started to... Guys, is this... I've started to dress to impress babies. Seriously. Not men, not women, not even myself! I am not dressing to get an hourglass figure. No, I am dressing for the moment that a baby will clock me on the street and just go, mm, I wanna put my little empanada legs on that perch! On that squidge, right there, right there. Look at the squidge, look at the cushion. It's too much. It's too much. And if you don't think babies look at you and think that, grow up.  I come from... I think the medical term is a big old titted family. And that means that my nieces and my nephews have very unrealistic expectations when it comes to women's bodies, okay? So I was holding my one-and-a-half-year-old niece, Maeve, love her very, very much. I was holding her, having a moment.  You don't have to tell me, Flat Earth Society's already given me a ring, all right? And that one gets you right here because that body-shaming is a whole new level. Because I can't be like to her, you know what, you've got your own issues and you're projecting them onto me, okay? So it's a real, she's one-and-a-half. She doesn't even know she has a body. Okay, so you know it's just the objective truth. It's a struggle. It is a struggle, guys. Also, just on family, do your parents gaslight you about your own childhood memories to make themselves seem like less shitty parents? This is not just me, right?   My mum's been doing this recently to me, right? I mean, she's been doing this my entire childhood, but she's really honed in in the last five years or so. And the constant one at the moment is, my mum's a smoker, right?  Her smoking is constant and foreboding, all right?  So when I think of my mother, when I conjure an image, it's always her on these old leather couches, just sitting there, just... Laura? Laura, bargain hunts on. Yeah, bargain hunts on, yeah. Oh, Tim Wannacott, he can pull off a bow tie in a spectacle combo, can he? Yeah, chuck the kettle on, yeah. That should give you an idea of how Bogue in my childhood was, right? So when I was back home, we've adopted, my sharehouses adopted these couches, right? And so when I look at them, it's weird to not see my mother there just bargain hunt, right? And I was talking to her at a family gathering and I was telling her about this, because, you know, in my defence, family gatherings are when you get drunk and bring up grievances from 10 years ago and fight about them, right? Family bonding. And so we're talking about it. And she goes, Laura, I didn't smoke in the house. And I was like, yes, you did. And she was like, you know what, Laura?   Well, excuse me, I'm sorry you got stuck with me. And I was like, excuse you, all right? You being the worst mother in the world is an entirely separate topic that I do not have the facilities here at a public prestigious speaking event to host with my three hour PowerPoint and interpretive dance. So let's get back to the main topic, which is you smoking. And we're going along and we're going back and forth and she goes, you know what, Laura? You were a child. How can you remember?  I have memories. I can remember things. This stone cold killer didn't flinch, didn't flinch. She just stuck to a story. She goes, I did not smoke in the vicinity of that house. And now, guys, I'm starting to doubt myself. Did I make this whole story up? Did I create this vivid conjuring of a memory towards my mother with the resentment in the background haunting me to make this idea cloud my reality?  Maybe I turned a vivid dream into a concrete memory by constantly retelling myself. I mean, what is memory anyway? But just sensory expectations and experiences that we just keep retelling ourselves until it becomes seared within us. I mean, what is anything but the present now? I mean, we are just floating in an abstract pool of reality. What is reality? Is my memory any more important than a dream? Important that a core is important than the world we live in today or the present now?  And I'm like, this bitch, too much. Thank you. I think my mother is watching this via live stream, so this is gonna be a conversation when we get home. But things are happening. I did just recently have a very exciting new part of my life happen. I just had a hip replacement. Plot twist, she's 60. Ah! And yes, I look fantastic. No, I did get a hip replacement. I'm Benjamin Buttney myself with moisturizer as we speak. If the routine goes to plan, I will be a baby in three months. But I know I did. I did have a hip replacement. And for those who are worried, very routine. Very, very routine procedure. It's like putting the washing out or burning down a post office to feel alive. It's a very Tuesday to do list sort of thing, you know? It's very routine. But there is something like, the most exciting thing that happens is you're given a roommate named Ethel and she is filthy. She is filthy. Her life, she's like 82 and her life is just a pornographic parody of Forrest Gump. I'm not joking. She was just grinding her way through moments in history. Just World War II, the assassination of JFK, the disappearance of Harold Holt. Where were you on 9-11? Because according to Ethel, she was on Tyrone. It's a lot. But there is one thing that does happen and I wanna talk to you guys about it because it will change you if you ever go through this. It changes you emotionally. It changes you physically. It changes you spiritually. I was put on hospital grade ketamine for seven days straight. Now, how do I explain this? Have you ever tried proper weed for the first time? And it's Canberra, so let's not lie to each other, okay?  And if this doesn't apply to you, how would I put it?  Everyone smoked weed, okay? It's Canberra. So you figure out that you level up on drugs, right? Well, with ketamine, I not only did that with narcotics but I did that with reality. Let me explain. When you start on the drugs, they give you a lot of like, how would I put it? Side effects.  And the last one that they really hone in on is hallucinations. They say, look, if you start to see something, you have to tell us immediately if you think it's real or not. See something, say something. See something, say something. And I was like, yep. But in my head, I was like, nope.  Find a vein, Susan! I was ready, I was ripe, make me into banana bread. So we begin. And guys, I saw some truly mystifying, weird, slightly arousing things, but it got very weird at the end. When I started to not so much hallucinate but feel people's spiritual energies. And if you didn't know, spiritual energies come in the form of 2D shapes. Weird concept, let me explain. So like, circle, rectangle, rhombus. Rhombus. Didn't think I'd see another one of you in my lifetime. So, not happy you're here. But the climax came, the real climax came, when I berated my beautiful nurse, Susan, for 20 minutes straight, because she was giving my roommate Ethel square oxygen when she should have been giving her circle oxygen because she's spiritually identified as a circle. And when I think about it now, it was a real bullshit triangle move by Susan. But guys, you can't come back from that. I mean, I can walk now, but at what cost? All right guys, that's all from me. Have a good night.


They say eyes are the window to the soul and what technology company believes they're also the most efficient way to tell if a person's lying. Reporter Gaby Hart takes a look at this new technology that claims they can see your lies. A new form of lie detection claims it can see the truth. There are markers in the eyes that are able to accurately determine if an individual is being deceptive. Neil Harris is the vice president of Converis, the company that created this new technology called Eye Detect. It uses only the eyes to determine if a person is lying. When a human being is being deceptive that there are these micro dilations of the pupils. It's the extra mental energy that it takes to be deceptive. Eye Detect has been in the work since 2003, only taking 30 minutes to complete this new testing technology could be faster and more efficient than the old school polygraph. Its creators argue that Eye Detect may have the edge because it isn't influenced by any human bias. So by removing the human element we believe we can make the assessment of credibility far more forensic in nature. Ron Sle is a security consultant who administers polygraph exams. He says in his 40 years of experience he's seen all forms of deception and he thinks it takes more than a computer system and answering a few questions to detect a lie. You can't automate the human mind. We wanted to put both methods to the test so I sat down to see which machine would best read my lie. In the hot seat. First, we put the standard polygraph to the test. Play asked me two questions that were simple enough to answer honestly. No, I want everybody to watch the blue line. Is today Tuesday? Yes. But before he even finished asking me the third question. At work, did you ever look at a boss with sincere eyes when you knew the reaction is already over? It took off and it's barely coming back again. Then we tested Eye Detect. Harris had me write down a number between two and eight and then hide it. I chose the number seven. The examiner told me to lie about my number to the machine but to tell the truth on all the other questions as the Eye Detect system calibrated my eyes and then monitored my pupil dilation. I did not choose the number seven. Eight was not the number that I picked. Look at the spike on the seven. Safe to say that I got caught lying or preparing to lie on both tests. But Slay says it can sometimes be harder to catch the people you want to catch because they have their own truths. They're not really answering your questions at all. They're answering what they perceive to be your questions. Slay and Harris agree that both Eye Detect and polygraphs can get it wrong sometimes. There will be some false positives and false negatives with Eye Detect as it exists today. But Harris says the beauty of computer algorithms is that they get smarter over time. Trust computers and algorithms far more than I would another human being. Still the polygraph remains a powerful detection tool not likely to be replaced anytime soon. I think it's the age old argument of man against the machine. Big Time Technology company Apple has taken notice of Eye Detect. Apple purchased the sensor technology that's used to calibrate and read the eyes. Does this mean our iPhones could eventually become handheld lie detectors? Harris says only time will tell. I'm Gabby Hart reporting. Intense stuff there. Eye Detect says they hope their new technology will have a positive impact on society and give law enforcement another tool to help achieve justice.