A rigid container with a total volume of 10 meter cube is separated into two equal volumes by a membrane. So, let us draw this also, that is a membrane ok, this is totally v equal to 10 meter cube. So, equal volumes that means here it will be first in the first state it will be 5 meter cube and here also 5 meter cube. Initially volume on one side of the membrane contains nitrogen, so let us take left side contains nitrogen at 5 bar and 1000 Kelvin and other side is evacuated nothing is there evacuated. The membrane this is a membrane a thin membrane like aluminium foil ok, an aluminium foil and we can rupture it basically. Once the aluminium foil is ruptured what happens? There is a rapid expansion of the nitrogen from the left side to the entire volume ok. Remember ruptures and finally, there is a thermal equilibrium with the ambient. So, ambient temperature is 300 Kelvin, from 1000 Kelvin there is a thermal that means the rigid container is not insulated that is a heat transfer. Obviously there is a thermal equilibrium. So, T2 will be equal to 300 Kelvin equal to T ambient that is it. What is the final pressure and then at entropy change for the universe that is what is asked ok, entropy change of the universe. Obviously, it is irreversible process you have to understand that rapid expansion takes place correct, rapid expansion. So, irreversible. So, irreversible process occurs. So, let us say R for nitrogen will be equal to 8314 which is the universal gas constant in joule per kilo mole Kelvin divided by the molecular weight kg per kilo mole. So, that will be equal to 297 joule per kg Kelvin specific gas constant for nitrogen. Now, since gamma is given I can calculate Cv equal to what R nitrogen divided by gamma minus 1 which is equal to 742.5 joule per kg Kelvin Cp equal to 1039.5 that is nothing but what gamma R by gamma minus 1 joule per kg Kelvin ok. So, that is the expressions we have got values. Now, V1 for the nitrogen is 5 meter cube which is given in the problem P1 equal to 5 bar or 5 into 10 to the power 5 Pascal's T1 equal to 1000 Kelvin ok. Now, I can find the mass of the mass of the nitrogen will be equal to say just say m, m equal to what I can use 5 into 10 power 5 into 5 Pv by RT R is 297 into T is 1000 which is equal to 8.4175 kg. So, that is the mass contained in the left side of the chamber initially. Finally, after the membrane ruptures what happens? V2 becomes 10 meter cube the total volume. Nitrogen is now contained in total volume and T2 is given as 300 Kelvin equilibrium it is in equilibrium with ambient temperature. So, T2 also is given correct. So, the state what is the final pressure we can find by using this. So, let us apply the first law taking the rigid container as the system ok. Here what? Q minus W equal to Q minus W equal to delta U. Now, rigid container no volume change so, work equal to 0 because what since delta V equal to 0 the entire container is now taken so, Q equal to delta U that is got from the first this. So, now Q equal to delta U equal to M into Cv into T2 minus T1. T2 is known T1 is known M is known. So, we can calculate this as minus 4 3 7 5 kilojoules so, Q equal to minus 4 3 7 5 kilojoules that it is obviously from 1000 Kelvin temperature reduced to 300 Kelvin correct. So, this is 300 Kelvin this is 1000 Kelvin. So, obviously the heat has to be rejected from the whatever system you consider to the ambient so, this is negative that is done. Next is pressure P2 V2 equal to M or T2 which implies P2 what is P2 equal to mass M is 8.41 75 kg into R is 297 into T2 is 300 Kelvin divided by V2 10 meter cube. So, that will be equal to 750 kilo Bascals ok 7 particular Bascals I am just giving the units. So, now final pressure is got heat interaction is got next is entropy change. Entropy change for the universe which is equal to delta S universe equal to delta S system plus delta S surroundings ok. What is delta S system? Delta S system will be equal to M into Cp ln T2 by T1 minus R ln V2 by V1. So, this we can get from TDS relationship correct. Recall TDS equal to DH minus VDP and we know PV equal to RT ok now for the ideal gas. So, we can write DS equal to Cp DT Cp DT by T minus instead of V I can put RT by P. So, this is RDP by P. So, for the ideal gas which is perfect Cp is constant. So, I can integrate this. So, you can say delta S will be equal to Cp ln T2 by T1 minus R ln P2 by P1. So, this is the expression I have used here. So, this is actually P2 this sorry P2 by P1 P2 by P1. So, this is the expression I have used. So, now we know T1 T2 P2 is now calculated. So, P1 P2 also is known. So, from this I can calculate this as minus 5792 joule per Kelvin R minus 5792 kilo joule per Kelvin that is the systems ok. So, what is for surroundings? For surroundings why the entropy would change change for surrounding because there is a heat transfer system rejects some heat this heat is got by the surroundings. Surrounding temperature is constant at 300 Kelvin. So, Q surroundings divided by T surrounding that is the because of the heat transfer entropy is transferred from the system to surrounding. So, that is the entropy change for this. Otherwise, there is no internal irreversibility or anything here. So, this can be written as minus Q for a system divided by T surroundings. So, this is equal to 4 3 7 5 by 300 which is equal to 14.58 kilo joule per Kelvin that is the. So, what is delta S universe now? Add these two delta S system plus delta S surroundings which is equal to minus 5.792 plus 14.58 which is equal to 8.788 kilo joule per Kelvin. So, you can find this that delta S universe can be 0 or it should be only positive. So, it is no positive. So, that means that this is a highly reversible process because of the rapid expansion. So, you can see that there is a increase in entropy of the universe. Even though the systems entropy change is negative, the contribution from the surrounding entropy change is very high here. So, that is the reason. So, if delta S universe comes to be negative, then the process is not possible. So, either it should be 0, delta S universe should be 0 or it should be positive is the principle of increasing entropy. So, this is about this problem. So, nice problem where rapid expansion is there and due to which the entropy actually increases for the universe. Then the ninth problem, a perfect gas mixture. So, perfect gas means an ideal gas which has constant Cp and Cv. So, that is perfect gas containing 0.5 moles of nitrogen. The ratio of specific heat is 1.4, molecular heat is 28 and 0.5 moles of neon Cp by Cv is 5 by 3, molecular heat is 20 kg per kilo mole is expanded in an insulated turbine. Insulated turbine, so let us draw the turbine here. A gas mixture comes in that is 0.5 moles of nitrogen plus 0.5 moles of neon ok. At 8 bar, 300 Kelvin coming in this is a gas turbine ok. So, some work has to be done by the turbine. So, let us say that is this ok. Now, what is the exit pressure? So, turbine to 1 bar the expansion from 8 bar to 1 bar here is 1 bar. So, mixture is expanded here and isentropic efficiency of the turbine is given as 50 percent isentropic efficiency. So, you know that if I draw T s diagram ok this is say 1 bar constant pressure line 1 bar and this is 8 bar. So, now from 8 bar, so this is a 300 Kelvin. The expansion this state inlet state or state 1 again ok then occurs like this to 1 bar. So, this will be the T 2 s and this is the state 2 s where if there is an ideal expansion that means, see normally the turbine is adiabatic, insulated turbine is given. So, in adiabatic process there is no heat transfer that is entropy change due to heat transfer is not there. So, the entropy can change in an adiabatic process only due to the irreversibility ok. Now, if I say that the expansion is also reversible. So, adiabatic and reversible it should be isentropic. So, that is what. So, s 2 s will be equal to s 1. Why I am saying the state s 2 s? I am saying that the state 2 s now isentropically arrived at. So, 2 s means it is an isentropic state which is having the same enthalpy as the initial state 1. So, this is the exit state and inlet state also have the same entropy. Now, actual process will have some irreversibility. So, I cannot even show the process in a state diagram. So, I have to just show by dashed line like what I have shown here and this is the actual process state 2. Now, you can see that there is an increase in entropy from state 1 to state 2. Always irreversibility will cause an increase in entropy. So, now what is isentropic efficiency is the actual work developed by the turbine divided by the isentropic work W s is isentropic work developed by the turbine. So, now, this can be written as h 1 minus h 2 divided by h 1 minus h 2 s. So, this isentropic efficiency is given as 50 percent that is very pretty low 0.5 ok. So, now, what is to be got? Calculate the entropy change of the mixture across the turbine. That means, from inlet to the outlet what is the entropy change that is what is asked. It is a mixture which is entering in a gas turbine. So, that is the problem. So, after understanding the problem, we will try to solve it. Here, mole fractions we will first calculate for the mixture components for the nitrogen which is 0.5 mole divided by what? Total number of moles is 0.5 plus 0.5 ok. Equally equal moles are there initially 0.5 moles of nitrogen and 0.5 moles of neon. So, this will be 0.5 ok and the neon also will be same. So, x ne will be also 0.5 divided by 0.5 plus 0.5. So, which is equal to 0.5. These are the mole fractions. Now, for the mixture we have to arrive at the mixer mixture properties. So, individually I have molecular weight, individually I have C p by C v etcetera correct that is the ratio. But what is the molecular weight of the mixture that we can calculate molecular weight of the mixture will be equal to sigma xi m wi which is equal to 0.5 into 28 plus 0.5 into 20 which is equal to 24 kilo gram per kilo mole ok that is the molecular weight of the mixture. Now, from this I can calculate the specific gas constant of the mixture as the universal gas constant divided by the molecular weight of the mixture which is equal to 8314 joule per joule per kilo mole Kelvin divided by 24 kilo gram per kilo mole which is equal to 346.42 joule per kg specific gas constant ok. Now, I can calculate the mole mass fractions. See, there are several ways to do the mixing properties, mixer properties. I am just following one of these. The mole fractions can give the mass fractions with the help of the molecular weights. So, what is that? y n 2 will be equal to x n 2 into molecular weight of n 2 divided by molecular weight of mixture which is equal to 0.58 triple 3. Similarly, I can calculate that of neon as 0.41667. So, the molecular weight of the individual component of the mixture can be used to calculate the relationship between mole fraction and mass fraction. So, once I get y i mass fraction because I want to calculate the mixture properties like C v mix. C v mix is what? C v mix is equal to sigma y i C v i. So, now, C v i I will calculate based upon mass basis ok. So, C v for nitrogen I can calculate as what? R of nitrogen divided by gamma of nitrogen minus 1. So, now the specific gas constant joule per kg Kelvin will come. So, from this I can calculate. So, now what is R of nitrogen will be equal to the universal gas constant divided by the molecular weight that is 28. Similarly, individual C v for neon I can calculate because that is 8314 by 20 will be R divided by 5 by 3 minus 1 ok. So, I can calculate the C v mix after calculating the individual C p and C v in terms of mass that is here C v is calculated as joule per kg Kelvin. So, it is per mass basis. Whenever there is a quantity per mass basis, then mass fraction should be used for the weighted average that is the mixing property. The mixture property of the mixture will be sigma y i C v i. On the other hand, if I can calculate C v as joule per kilo mole Kelvin, then I can use x i ok. So, now, it is straight forward for me to do this in the mass basis. So, I calculate using this C v mix equal to 692.83 joule per kg Kelvin. Similarly, C p mix I can calculate as sigma y i C p i. So, C p for nitrogen will be equal to gamma of nitrogen R of nitrogen divided by gamma nitrogen minus 1. Here this is joule per kg Kelvin. So, this C p also will be in joule per kg Kelvin. So, when I do this I get this value as 1039.25 joule per kg Kelvin or you can also use C p mix will be calculated as R mix plus C v mix because C p minus C v is equal to R for the ideal gas. You can use either of this and get the value. Now, after calculating the C p mix and C v mix, now I calculate the gamma that is C p mix equal to what? C p mix divided by C v mix that is the ratio of the specific heat for the mixture that will be calculated as 1.5 ok. So, why I need this? Because, see isentropic efficiency is given. Once to apply the isentropic efficiency I need the actual or the ideal process 1 to 2 s. So, process 1 to 2 s is isentropic for an ideal gas this process is written as p v power gamma equal to constant ok. Now, equation of state is p v equal to RT. Combining these two, these two equations I can write the expression for pressure ratio p 2 by p 1 equal to T 2 s divided by T 1 power gamma mix by gamma mix minus 1.  So, that is the relationship for the isentropic process. Please understand that in this T s diagram it is clear that the pressure ratio is same for the isentropic process which is ideal as well as the actual process. In the actual process what is p 1 8 bar p 2 is 1 bar no problem in that. But only thing is the temperature reached in the isentropic process is T 2 s and in the actual process it is T 2 which is higher than this. That means your enthalpy change which is C p delta T for the isentropic process will be more. So, more work will be delivered and for the real process less work will be delivered because of the irreversibility. So, that is why the isentropic efficiency is 0.5 of the actual process w a by w s. So, once you calculate the isentropic work done I can calculate the actual work done because of the fact that isentropic efficiency is given to me. So, now I can fix T 2 s correct. So, p 2 is 8 bar p 1 is 1 bar. So, I can find T 2 s as from this the gamma also I know now ok. So, T 1 is known T 2 s I have to calculate pressure ratio is known. So, from that I can calculate T 2 s T 2 s is 150 Kelvin ok. So, 300 2 1. So, T 1 is 300 300 Kelvin ok. So, due to expansion temperature drops to 150 Kelvin. Now, isentropic efficiency is what actual work divided by isentropic work which is equal to H 1 minus H 2 divided by H 1 minus H 2 s which is equal to C p into T 1 minus T 2 divided by C p into T 1 minus T 2 s perfect gas. So, C p constant right ok. So, now, which implies this is 0.5 0.5 is isentropic efficiency. So, I can calculate from this expression T 2 as 225 Kelvin. So, go back and see here here T 2 s is what T 2 s 150 Kelvin and T 2 is 225 Kelvin. So, you can see that the temperature difference comes down for the actual process only 75 Kelvin, but for the isentropic process is 150 Kelvin. So, you are losing the work because of the irreversibility in the process that is it. So, now, we will calculate the entropy change. So, what is asked is calculate entropy change for that I have to find the mass. So, mass of the mixture what is that m equal to total number of moles into molecular weight of the mixture. So, this is mass in kg this is kilo mole and this will be what kg per kilo mole ok. Now, what is the NT value? NT value is 0.5 moles please understand it is given as moles not kilo mole. So, 0.5 divided by 1000 plus 0.5 divided by 1000 in kilo moles now it is in kilo moles ok into molecular weight of the mixture is 24. So, which will which is mass of the mixture will be equal to 0.024 kg. So, now, what is delta s delta change of the change in entropy is equal to m into Cp mix into ln T2 by T1 minus r mix into ln P2 by P1 ok. The same type of expression what we have already used. So, now, I get this the entropy change as 10.113 Kelvin that is it because that is the sorry Joule per Kelvin Joule per Kelvin ok. So, that is the delta s ok. So, in this problem if you should understand that the components of the mixture is given you have to first arrive at the mixture properties that is very important. And first of all for that I need the molecular weight of the mixture then I can calculate the specific gas constant and now I can calculate the Cv mix and Cp mix for that I will calculate the individual Cv values. If it is mass basis then I can use mass fraction and use this mixture rule or mixing rule. If it is in mole fraction if it is per mole basis then you have to use mole fraction ok. Now, I have kept everything in the mass basis. So, I can use sigma yi Cpi etcetera. Now, gamma there is no mixing rule for that. For calculating gamma you have to use the ratio Cp mix by Cv mix only. You cannot say gamma mix is equal to sigma yi gamma a and all. So, ratio find the Cp and Cv for the mixture and take the ratio of that. Then for isentropic process undergone by an ideal gas it obeys pv power gamma equal to constant here gamma is gamma mixture and equation of state is pv equal to RT. So, combining two I can find the ratio of pressure as ratio of temperature power gamma by gamma minus 1. From that I can find the temperature which is got from an isentropic process that is T2S. Now, either of the efficiency is given using that I can find the actual temperature. Now, the entropy change is got by using the integrated form of TDS relationship ok. This is about the problem 9.


In this video I'm going to explain a little bit for where we're getting our data from for this Hubble's law part of the lab. There's an astronomical database, and this is the website for it, and it's the NASA extragalactic database, or NED, and it's the Redshift Independent Distances. So they found distances, not using Hubble's law, but using other methods, to a wide variety of galaxies. And they've compiled that in a comma-separated value file. Now if you look at this file, it's just a big text file with lots of information in it. It's a little bit difficult to work with. So I've done a little bit of processing for you. I've read this file into an interactive programming language called Python. And after I've read it in, I've done a little bit of separating out, so I only grabbed the distances which also have red shifts, and then converted that red shift into a velocity. Now when I do that, and I make a plot of it, I can plot the distance versus the velocity for everything in that database that has both of those values. And you notice there's a lot of spread over here. We're going to focus in on the lower portion of this graph, which only goes out to 400 megaparsecs. And when we look at that part of the plot, you can already start to see part of Hubble's relationship in terms of it tends to fall along a line. Now there's still a little bit of scatter to it, and that's because real data has some errors on it. Now this set still has 6,695 data points in it, which is workable, but it's a little bit more difficult for students to download files that are that large. So I've gone through and randomly selected 200 points. Now I didn't do this individually, I had the computer do that. And so your subset that you're going to work with, the computer randomly selected 200 data points, and these are the ones that are shown here in red. I also created a second subset that I'm going to walk you through how to create the graph and find the equation.


Why is she doing that? Do you want to sing with me?  Why is he sleeping? Oh wow, what are you making? Coffee You'd be strong You'd be strong Like Nescafe Glory to you That's the poo thing To make coffee You getting on that Jacob?  Listen We've got the noodles Which one? Mi Goreng Mi Goreng? You three? Yeah I'm always Thank you She's the last one to drink What's this?  That looks good That looks like chicken It is, I didn't get duck in the end See you Bye Bye Hey Anna Thought so far mate What an amazing day Very much fun What have we done? Two, a swing Coffee What's the next stop? Next stop is a waterfall I cannot wait because I'm sweating And dying We'll get the drone out for the first time Peace And you don't know what's around here? I don't know Oh Oh what What are you doing to us? Do you mind opening both of us? Oh, beautiful Cheers Cheers mate Where are we going? No, you sound with the camera Perfect waterfall for us to go swimming And get drone footage and all that good stuff But I'm not quite sure what to make But really We're going to check it out anyway Should I get it up in the air?  Give me a card Email or Here he is Out driver Fantastic Give us a card mate I'll have to recommend you to all my friends Maybe another day you have a friend Maybe your family come to Bali Please whatsapp or call me Where you stay and give a flat number Or hotel or villa number I don't know No worries Thank you very good See you mate Bye And there we have it All done Not a bad spot to come back to So Not bad at all


Hi, this unit discusses fundamental aspects of lexical semantics, that is, the study of word meaning. In particular, it shows how the meanings of words to be precise like seems can be defined by their semantic relations with other words or like seems in a language. In the virtual session, we will look at all possible sense relations, from synonymy to moronymy. We will discuss questions such as, can two like seems mean the same thing? Or, in what way can two meanings be opposite to one another, to name just two important questions? In the question sheet, you find the respective hyperlinks and video links to answer these and other questions. The mastery worksheet is an identification task where you have to identify the sense relations between randomly chosen like seems. And the practical, as usual, is a data sheet where all sorts of sense relations are illustrated. Use this wealth of data to deepen your knowledge about sense relations. Certainly, quite an enjoyable unit.


So welcome to my talk on game development for Fedora. You will notice that the title is slightly different than what was originally planned. So this is all about game development and how to get a game onto Fedora as well. So not just about developing a game, but developing a game with the intention of getting it on Fedora. So who am I? I am a game developer and an open source developer. I also package programs for Fedora. This is a sample of some of the games I have worked on or created, more than likely you have not played all of them because some of them are kind of hard to build and I haven't had that many complaints about the fact that they're hard to build. So I'll leave it up to you to figure out which games are which. But I don't have a lot of time, so we're just gonna get right into the core of this talk. So for basic game development, you need to be able to put stuff onto the screen and read data files and everything. And to a large degree, you are not doing that with the bare hardware anymore. And instead, you're using some sort of library to handle that. SDL2 is a popular one for games. It handles graphics and input and sound, but only at a very low level. And so there's some additional libraries to add additional features like SDL2 image, which allows you to import like ping files and things like that for reading in data. There is XPAT for XML parsing and Janson for JSON parsing. There are other libraries as well if you find one that you prefer. There's a fair number of them out there. There are also ones for reading any files or stuff like that if that's a format that you'd prefer to go with. SFML is a library kind of like SDL2 in that it handles graphics, keyboard input and sound and everything, except it's a little more all-encompassing than SDL2 is. So you won't need as many smaller libraries with it. If you are doing 3D, you are probably going to be needing to use OpenGL or Vulkan. I personally have not delved into 3D that much. I've only got a little bit of peripheral work on SuperTux cart. Now this is all for C or C++. If you're using another language, they may have bindings for SDL2 because it has a massive number of bindings, same with SFML, but they also may have libraries built on top of that. So for Python, there is Pygame and C-Sharp has Monogame for it. Now all of this is great, but this is not game development. This right here is game engine development. And if that's what you want to do, fine, but it's going to take you longer to get a working game and get something into Fedora if you're building your own engine first. So if you really want to get into game development and jump right into game design, it's better off, you're better off using a game engine like Godot. I have developed two games from Scratch and Godot, pinball disc room, which you see there was for the disc room game jam.  It's very short, but that and the other game I developed, Learning Basic on Mars has shown me that there was a lot of capabilities in Godot. And so I highly recommend that engine if you want to design your own game. There is currently, as far as I know, only one Godot game that is available from the Fedora repositories and that is Pigeon Ascent, which is one I packaged. You can use the spec file from that to create other packages of Godot games. That's not the only game engine out there. There is Love, which is a game engine that you code in Lua script. I haven't personally developed a game from Scratch in them in Love, but I've modified Marvelous Inc. Gateway Jump you see on the screen that is a modification of Mari Zero. And I've also played around with a game called Bite Path, all using the Love engine. And it seems like a very capable engine. Mr. Rescue is one of a few games that are available in the Fedora repositories that is using the Love game engine. Another game engine I've heard about recently is Bevy. It is a Rust game engine. I personally have not gotten around to playing with it yet. So I don't know how good it is, but I've seen some examples of it and it seems like it may be getting there as a good engine to start with. Now, in addition to these, there are a bunch of specialized engines. So BT Builder is a program that I've created, which is an open source implementation of the Bardstale construction set. And so if what you want to create is a game like an old school Bardstale, you know, Bardstale one, two and three, BT Builder can create one of those games. If your goal is to create any other type of game, BT Builder will not help you at all. GB Studio is another engine that that one's designed to make Game Boy games. And so you have all the limitations of working on the Game Boy, where you have limited color. You have a limited amount of size, of course, but as long as you're willing to work within those restrictions, that can be a pretty easy way to get into game development. Now, I will say that if you want to get into game development, you need to know some programming basics. You, any of these engines, if there is or will have some sort of event or scripting system in it, because you invariably need them for making games. And that scripting language, whatever it is, you're going to need to know some of the basics of programming. You don't necessarily need to know a lot, but you do need to know some, you know, things like how conditionals work. So if statements and stuff like that. Now, you do have the complication of what do you do if you can't make art, music, sound. Now, in those cases, the perhaps the easiest solution would be to find someone to team up with. But sometimes that could be pretty hard because of the fact that everyone wants to make their own game, they don't want to help you build your game. One way to get around this is to go with the keeping it very simple. So anyone can go over and make a Tetris or a breakout clone because of the fact that all you need to do is to draw squares. But of course, that doesn't necessarily entice everyone. I happen to not particularly care for those games. There are some free resources out there. I happen to really like open game art. You can see the example on the bottom there is from the Liberated Pixel Cup where they created a whole bunch of assets in a similar style so that you could grab them and make a game using them and have it look consistent, which is one of the problems you encounter if you're using free resources where you find this is a really good picture from this artist. And then this other artist did a really good sprite but they don't match in style. So putting them in your game might end up clashing. Now you can always go with programmer art where you just go over and get something up and running with the intention of replacing it later. So you see those red walls and just like the fading horizon there, that's just programmer art just to get something up and running initially and then replace it later. Photo manipulation is another one you can use. So that picture there was taken on a beach so I darkened the background and brightened up the lizard to some degree so that that way he could be used as some sort of giant creature in a game. But honestly, that's great for making a game. But the fastest way to get a game into Fedora is to have someone else having already written it for you. There are a lot of open source games out there that are not packaged with Fedora and so you just need to go over and find them. Now I happen to really like the open source game clones site. Now you might say that these aren't original games, you're taking just a clone of something. Starting as a clone is not a problem. Almost all games are initially clones with some tweaks to them. Even Minecraft took its initial idea from Infiniminer. So the nice thing about cloning a game is it allows you to have a set of rules for game design initially and then as you become more comfortable with the game you can sit there and decide that you wanna add new features in or you can decide that you know what, I don't like that feature, I'm not going to implement it or I'm going to remove it. So I find open source game clones to be really useful to be able to find games that are similar to a game that you like. And then they might be direct clones, they might be something inspired by, sometimes they do require the commercial data files. So it might just be an open source engine to run the data files from the game in which case if you really want it to be completely freely available you'll have to create your own data files for it, which may or may not be easy to do. If there isn't anything on the open source game clones you can always just search GitHub. It has a large number of people put their own programs up there all the time. And so you just need to look around to see what's there. There is also some other resources like the Lieber game wiki.  I'm on that forum, I post on there. People will post up what projects they're doing. So maybe you'll find something that interests you that way. Or you can just ask them if they know of a game similar to what you're looking for. And maybe someone will be able to help you out and point you to something that has the gameplay you're looking for. Now all of this is not without its problems. So the first problem you can come up with is that building can be difficult. Programmers are not always the best at telling you how to build their program. They may also require unsupported libraries. So for example, on here you have ostrich riders. Now ostrich riders is a clone of joust. I went over and decided to look for a clone of joust after my kids watched an episode of Teen Titans Go. And we were talking about all the games. And so I don't remember whether joust was included in that episode, but I decided to look up a open source version. Now this is despite the fact that I actually have the arcade version on a PlayStation game, but I decided to look up an open source version. I found a couple of different versions. Two of them I couldn't build. One of them I did build and you immediately died as soon as you started the game. And that was because the game had no speed control whatsoever. And so it was written for probably a 386 or 486. And so at this point, the computers run so fast that you immediately fall and die. So I ended up looking at one of the ones that I couldn't get building. And I liked the style of that and that was ostrich riders. And so I ended up having to figure out how to build it. Now in that case, it was using SFML1. So I ported it to SFML2. In hindsight, I believe at the time Fedora actually had SFML1 available, but I didn't realize that. So I could have avoided that, but in the end that's what I did.  Now ostrich riders does have a feature beyond what Jaws has in that it supports up to three players now because both my kids wanted to play and I didn't want to sit back and watch. So that's an advantage of having a game be open source. One of the other problems you may find though is that if you want to package your game up for Fedora, some languages can be hard to package. If I know that Fedora includes Pygame, if it did not include Pygame, I don't know what it would take to get that in. I am not an expert on packaging Python packages. So if you're need to do that or some packaging from like Rust or Go or something, then you might need to get involved with some experts in those languages and packaging them on Fedora. There can be copyright and licensing issues for our four programs you find on this screen. You see Sonic Robo Blast 2, which is a fun game, but Fedora is never going to carry it because of the fact that it's using the Sonic characters without a license. So that's just not going to happen. Now Fedora does carry OpenSurge. OpenSurge is based off of OpenSonic, which was another fan-made Sonic game, but OpenSurge went over and replaced all of the graphics with new graphics and new characters so that it could be included. That's sort of what I'm doing, that's what I'm doing with the Gateway Jump as well because Mari Zero can't be packaged with Fedora. You may find some promising games that are unfinished. At that point, you might decide that it's too much work to finish it yourself or you might find that you know what, finishing what they've started is easier than creating your own from scratch, but that depends on the state of the game. Now this last one is a problem that game developers aren't always Unix developers. So for Windows, when you develop your game, you tend to have the binary and all the data files in the same location. Under Unix, typically you will go over and keep the binary in the user bin folder and the data files would be under user share in the name of the game. And so you can end up with situations where you find a game that can't handle that. And then you either have to update the game to be able to look in a different place or you have to use like a shell script to change directory into the user share first and then start up the game. That can be problematic if it then saves the save file in the same location, but at that point you are probably going to have to modify the game to get it working under Fedora. So that is what I have for game development. There with the timeframe of this talk, I can't get into a whole lot of details, but hopefully you were able to get something out of it. My website is on there. I have also just started today a Kickstarter for Mojotron Robot Wars. Mojotron is an open source program that I found similar to Robotron 2084 or Lamatron. And so I've been fixing it up and I'm testing the waters with using Kickstarter to fund my open source game development work. I can be contacted on the free game dev forums. If you want to talk to other free software or open source game developers, I recommend that forum. And my email address and mastodon, if you want to get into contact with me. I can take questions if there are any. Looks like no one has asked any questions at the moment. Yeah, flat packs are not something that I've delved into yet. It's something that I'm looking to do, but I just haven't found the time to get into it yet. I will say having released games on itch.io and trying to make them run on as many Linux distributions as possible. I can definitely see the advantages of flat pack even with some of the games that I was building Linux binaries for. I built it on the earliest version of Fedora that had the library I needed. And I found that that version is still too late for Debian. So it requires a newer version of G-Lib C than what Debian provides. So if you take that binary, it still can't run on Debian, which is unfortunate. All right, how close is Fedora or any Linux from being viable for AAA development? Quite frankly, I think it is perfectly viable for AAA development right now. Now, obviously I don't do AAA development, but I don't think there's anything that we are really missing. It's just a question of familiarity. In some cases, it may be that people are used to the tools like Visual Studio. I know a lot of people really love Visual Studio. I much prefer just a text editor myself, a Visual Studio doesn't really get me a whole lot, but I definitely think we are capable of doing AAA development. It's just expensive and the game companies don't necessarily have incentive to target or to develop directly on Linux because most of their customers are going to be using Windows anyways. All right, you mentioned you haven't done much of 3D games, but I'm curious to hear your general opinion about Open 3D Engine, previously Amazon Lumberyard, previously CryEngine, and how it went from closed source commercial product to an open source product, lately turning into a Linux compatible project as well. So in general, I'm not really that big on the commercial products that have been turned into open source products. In particular for Open 3D, it really felt to me like Amazon realized that this wasn't going to make them money. So they're just throwing it over the wall and saying, here, you can have this. I haven't personally played with it, so it's quite possible that it's a great engine to use, but I'm not generally very favorable on them.  I think that's an amazing engine that's available completely open source. You can go over and build it for a web deployment. So I think that's really great. I have heard that it is not as great for 3D games, but they, everyone has been saying that Godot 4 will be good for that. It'll have a lot of improvements in that case. My only concern with that is that I have found Godot 2 games and I have not been able to build and play any of them. From what I understand, there was a tool to convert a Godot 2 game to Godot 3, and the developers on Free Game Dev who have made Godot 2 games said that there was still so much work that it wasn't worth the effort of doing. And so I'm hopeful that that's not the case with Godot 4. I do wonder what Fedora's plan is with Godot 4 as to whether we're going to keep having Godot 3 around or whether it replaces Godot 3. So thanks for coming to my talk. Did you know that it's the year of the Linux and gaming again? Actually, I am very hopeful with the Steam Deck. I am hoping that that manages to push a lot of more games to be running under Linux. Now, I think they're almost all going to be running under Proton. There are some games that I have got from itch.io that I can't run under Linux either. And I end up running the Windows version under Wine, but I am hopeful that that does improve support under Linux. All right, thank you.


Hello, I'm David DuBois, and this is the first videotape in a series that explores how highway safety features function. Together we'll be learning why the installation and maintenance of safety features must adhere to and even enhance the design. Sometimes when you're in the field and a barrier or other safety feature needs repair work, it seems only common sense to complete the work in the fastest and most economical way possible. Now, while this thinking probably applies to many situations in life, it isn't the best way to do the job in highway work. The purpose of these videos is to show you how safety features are supposed to function. Once you understand what the safety features are intended to do, you'll be able to install and repair them so that their function is not lost. You'll know, for example, that sand-filled barrels must be precisely placed for them to work. You'll also know that barrier end treatments must be anchored securely. And you'll know that the angle of ditch slopes must be determined in relationship to the shape of the floor of the ditch. Not knowing the purpose of the safety feature is very dangerous. If you don't know how a breakaway signpost works, you might repair it in a way that makes it incapable of breaking. The safety of millions of travelers depends on your knowledge. It's up to you to determine how the design should be implemented in the field and how it should be repaired to keep it working as intended. After all, the major goal in the design, construction and maintenance of highways is the reduction of the number of accidents, fatalities and injuries. Know that you can help in meeting this goal. You'll study current principles and practices, not theories. Each session of this course is designed to focus on one safety feature so that you understand its function and its needs for installation and maintenance. We'll begin our study with the clear zone, the area on the side of roadways that gives drivers a place to recover control of their vehicles without fear of hitting something or of losing control of their vehicle. First, we'll watch this video and I'll be back at the end of it to tell you more about the clear zone. Collisions with fixed objects account for nearly 30% of all fatalities in motor vehicle traffic accidents. The fixed objects struck most often are trees, utility poles and guard rails. The people involved could be your friends, your neighbors or even your family. Often these people run off the road because of conditions beyond their control such as bad weather. The actions of another driver could force them off the road. The clear zone provides a safe hazard-free area which will allow a driver who has run off the road to come to a safe stop without being severely injured or killed in a collision with a fixed roadside object. The development and use of the clear zone concept has dramatically reduced the number and severity of fatalities and injuries on urban and rural highways. It is important to note that the clear zone does not have a fixed width of 30 feet but a variable width dependent upon vehicle speed, design traffic volumes and the flatness of the cut or fill side slope. The roadside design guide provides information for determining the minimum clear zone widths for specific conditions. For a 6 to 1 fill slope at 60 miles per hour with an average daily traffic volume of 6,000 vehicles, the clear zone width is approximately 30 feet. On a roadway section with fill slopes between 4 to 1 and 3 to 1, a clear zone must be provided at the toe of slope. Vehicles encroaching on a 3 to 1 slope can be expected to travel to the bottom of the slope before stopping. Horizontal curves also affect the amount of clear zone width needed. The clear zone width should be increased on curved sections where accident history or the potential for accidents indicate a need. Proper pavement super elevation in a horizontal curve will also increase the roadway safety. Clear zones are effective on both high volume freeways and low volume roads. It is important to provide a safe recovery area along all roadways. In certain types of terrain, it may not be cost effective or practical because of environmental impacts to provide the desired clear zone width. In these areas, a thorough analysis of accident history and potential as well as on-site inspections should be conducted to identify safety problems which will require clear zone improvements. If the desired clear zone width cannot be established, the second best alternative is to make the roadside as forgiving as possible. Protect fixed objects such as signs and luminaires using breakaway devices. Remove trees and utility poles in hazardous locations. The last alternative should be installing a guardrail or a crash cushion to prevent vehicles from striking the object. Remember, traffic barriers themselves can be a hazard and should only be used as the last alternative. The clear zone that is provided by design must be maintained after construction is completed. Some seemingly minor changes can make a huge difference in the effectiveness of the clear zone. For instance, if this slope was changed so that its hinge point became sharp instead of gently rounded, a vehicle running off the road could become airborne at the slope break and might roll over instead of safely recovering or traveling to the bottom. Within the ditch line or on the side slopes, small pipe culvered in should be tapered to match the shape of the side slope to allow a safe traversal by errant vehicles. Large pipe culvered-ins or box culvered-ins should not only be tapered to match the side slope but should also be fitted with a grate for safe traversal. Embankment slopes at right angles to traffic are roadside obstacles. They are created by median crossovers, driveways, or intersecting roads. These slopes are dangerous because they can be struck head-on by run-off-the-road vehicles causing the vehicle to become airborne and depending on the steepness of slope and vehicle speed to cause the vehicle to flip over. A flat 10-to-1 slope is desirable and a 6-to-1 slope is acceptable for allowing safe traversal. Don't forget the drainage culvert located in these embankments along the ditch line. The culvert-in should be tapered to match the slope and have a grate to allow the vehicle to cross it easily. Erosion of the side slopes can also reduce the effectiveness of the clear zone. Erosion such as this can easily cause a driver to lose control of his vehicle resulting in an accident. Routine maintenance should include monitoring and controlling erosion, particularly where an unsafe pavement edge drop-off has developed. When construction or maintenance work is being performed on a roadway open to traffic, vehicles and equipment not in use should be stored outside of the clear zone or properly shielded behind portable crash cushions or existing guard ring. Short-term work areas or moving operations should be shielded by truck-mounted attenuators. Even breakaway signs, luminaires and other devices should not be located in the bottom of a ditch or close to the travel lanes. The ditch will tend to direct an errant vehicle along its link and into the sign or pole. These poles should have been placed on the back slope at the far edge of the clear zone or on a concrete median barrier where they are less likely to be hit. In the case of mailboxes, banjo mounts like these should be used. Sign height is also important. Breakaway signs that are not mounted at the proper height may not react as intended upon impact and might penetrate a windshield. Breakaway control and breakaway devices such as signs and luminaires should be routinely inspected for obstructions of visibility, corrosion or damage that could impair the proper functioning of the device and soil erosion around the foot which would cause the breakaway base to stick up higher than the allowed four inches. This could allow impact at an improper height. Slip-based maintenance should include loosening and re-tightening bolts to the correct torque. Over tightened bolts will prevent the base from releasing as it should on impact. Use a calibrated torque wrench where wind loading is a problem. Don't over tighten bolts. Use a thin keeper plate to prevent a sign from walking off its slip base. A uniform acceptable clear zone width should be established for a highway corridor. Fence posts and naturally occurring items such as trees, large shrubs and rocks should not remain within this established clear zone width. Under certain conditions, wholesale removal may not be practical. Selective removal based upon environmental impact studies and accident history may be more pragmatic and acceptable. Landscaping and highway beautification must not conflict with clear zone safety. Trees and shrubs which are small when planted can grow to become safety hazards within the clear zone. Shoulders and slopes should be routinely inspected and cleared of saplings. All natural objects should be treated carefully with safety as the first concern. The roadside barriers and crash cushions that shield the traveling public from rigid obstacles in the clear zone must be routinely inspected to ensure they will function effectively. Cushions should be routinely inspected for damage and vandalism. Most crash cushions must be repaired and rebuilt in accordance with manufacturer specifications. Severe hits sometime require more than just pulling the system out and replacing disposable materials. Hydrocell crash cushions and older G-R-E-A-T systems can be retrofitted with new hex foam cartridges to improve their performance. The cartridges make them easier to maintain and provide safer conditions by limiting the amount of debris flung into the roadway upon impact. In cold weather regions, hydrocells need an antifreeze. A premixed salt solution or ethylene glycol are equally acceptable. During cold weather, moisture in sand barrels can freeze the sand into a solid mass, thereby changing a safety device into a hazard. Barrels should be sealed and checked regularly for required maintenance. Antifreezes should be tested for compatibility with local sands. Some, like calcium chloride, have been known to cement the sand. Roadside barriers should be checked for erosion around the post and in treatment as well as for corrosion and deficiencies at transitions. Roadside barriers on established roads should be reviewed before repairs to the road are made. This inspection is to determine if the barriers are still necessary or if they can be removed because the slope and clear zone are acceptable or can be modified to become acceptable. Unnecessary barriers like these should be removed since barriers themselves are a roadside hazard. The clear zone is an effective life saver. Highway personnel have the responsibility to identify and safely treat any hazardous feature that exists within the right of way. The safety treatment includes removal of natural and man-made hazards whenever possible, proper installation and maintenance of safety devices such as slip bases and crash cushions, appropriate shielding of hazards which cannot be removed or made to safely break away, and routine inspections with documentation of work performed or required. The clear zone begins as a design concept. Only through proper routine maintenance does it remain a life-saving reality. From this tape, how important the clear zone is, we'll take a further look at the clear zone concept. We'll learn how this concept originated and we'll see how the concept evolved to the methods we use today to determine the proper clear zone width for various conditions. General Motors Corporation first found at its test track that about eighty-five percent of vehicles safely recovered within thirty feet of the roadway in run-off-the-road incidents. A clear zone of thirty feet was first adopted as a guideline in the 1967 Yellow Book. This thirty-foot clear zone was still in effect with this 1974 edition of the Yellow Book. The thirty-foot criterion was a beginning, but thirty feet is not always appropriate. In some cases, drivers didn't need thirty feet to regain control of their vehicles. In other cases, they needed much more than thirty feet. What was required was a national criteria for determining a clear zone width appropriate for different situations. In 1977, the Ash Toe Guide for Selecting, Locating, and Designing Traffic Barriers provided the first national criteria based on geometric and operating conditions. This guide also defined the clear zone. That original guide has been replaced by the Ash Toe Roadside Design Guide, which was published in 1989. The clear zone is the area bordering the road, starting at the edge of the traveled way, which is available for use by errant vehicles. Now, four factors contribute to determining the necessary width of the clear zone. One, operating speed. Two, side slope steepness. Three, horizontal curvature. And four, traffic volume. To understand the best contour for the clear zone, we'll look at this film on side slope and ditch tests. This series of tests was conducted to determine how steep a slope a car could go down safely without rolling over. The tests were run on a 20-year-old state highway, with a three and a half to one side slope. A grid pattern was mowed on the surface and striped with chalk to identify the path of the car. The test vehicle is driven by the driver in the trailing truck using a joystick driving system. The car exits at a 25-degree angle, 60 miles per hour. It travels a distance of 168 feet from the edge of the pavement. When the right front wheel slaps down on the front slope, the tie rod is lost and the driver loses control. However, the ride is a safe one with no rollover. In this test, the car exits at 60 miles per hour with a 15-degree angle. The car runs to the bottom with no tendency to be unstable on the side slope. This time, the vehicle went about 185 feet from the edge of the pavement. This test was run at 60 miles per hour with a 10-degree angle to see if the vehicle can be redirected. Counter steering begins one second after the car leaves the roadway. The driver loses control, and as a result, the vehicle travels about 160 feet from the edge of the pavement. The required clear zones under these conditions would be about 100 feet. Obviously, the clear zone will not provide protection for all crash situations. Computer simulations and these tests show that a three-to-one to four-to-one slope is safe. But the vehicle will go to the bottom of the slope. So the clear zone must be adjusted to include the entire slope. At a grade steeper than three-to-one, barriers may be warranted. On a four-to-one slope, the vehicle can be redirected. Operating speed and side slope steepness are used to determine the appropriate clear zone width. For example, a three-to-one slope is very marginal for small vehicles, especially with an unrounded shoulder. Table 3.1 of the Roadside Design Guide will give ranges for specific site conditions. You can see that steepening side slopes and increasing speeds require an increase in the clear zone width. For a flat side slope such as six-to-one and ADT of 5,000, the clear zone is 30 feet at 60 miles per hour. When the fill slope is increased to four-to-one, the clear zone must increase to 32 to 40 feet. Clear zone width is also affected by horizontal curves and the design speed. The basic clear zone width taken from Table 3.1 should be increased by the appropriate factor from Table 3.2 to account for the degree of curvature and the design speed of the roadway in question. The effectiveness of the clear zone depends on more than width. For a clear zone to do its job in providing drivers with a safety margin, it must maintain a continual, clear, flat area. As you'll see, this is not always possible. And when it isn't, other accommodations can sometimes be made. To ensure the safety of the clear zone, all hazards, if at all possible, should be eliminated, either by total removal or by relocation. However, occasionally, objects must remain within the required clear zone. Then the objects must be made as safe as possible or shielded by using breakaway devices to make the object crash-worthy or by using a crash cushion or by placing a longitudinal barrier to prevent errant vehicles from reaching the object. These objects can become hazards in the clear zone. However, by being constantly aware of the importance of maintaining the clear zone, highway engineers can control the location and safety treatment of the objects and thus reduce their impact. Obviously, clear zones are also affected by the terrain. Flat terrains provide the best sites for clear zones, but even flat terrains can be encroached upon, as this railroad crossing proves. As a matter of fact, many situations are beyond the control of highway jurisdiction. Restricted rights of way, trees, and other landmarks which have emotional significance to residents, mailboxes, access points, private driveways, drainage features, and buildings such as in this photo can all interfere with maintaining a clear zone. But even when the clear zone cannot be maintained, drivers can still be provided with a margin for safety. Motorists can adjust their driving to take into account more restricted clear zone conditions if they know where to expect hazards. A consistently designed roadway helps drivers to be aware of obvious hazards. In this case, the hazard is within three feet of the roadway and drivers cannot be forewarned. Throughout our future sessions, we'll discuss identifying and removing potential hazards, such as this tree. When trees are removed, they must be taken down all the way to ground level. Otherwise, a clear roadside can be blemished by a stump, as you see here. The AASHTO Green Book recommends a minimum clear zone of 10 feet on low volume roads. Here we see an excellent example of consistency in a clear zone, even though it may not be the full required width. A clear roadside requires continual maintenance. One, all trees should be removed if possible. Two, ditches should be reshaped for safe traversal, as well as for proper drainage. Three, drainage inlets, breakaway devices, and guardrails must be kept operational. Four, vegetation should be kept under control so a hazard doesn't grow, and bottoms of slopes should be kept free of potential hazards. And finally, five, equipment and materials should be placed so that they are not a hazard. We have discussed the importance of establishing and maintaining an adequate clear zone. You've seen that to ensure maintenance of the clear zone, and consequently, the safety of motorists. Hazards in the clear zone should be removed. Unnecessary hardware should also be removed. Relocated by moving signs, flattening slopes, and extending pipes. Retrofitted with breakaway devices. Shielded with barriers or crash cushions. The three Rs. Remove, relocate, retrofit, and shield. The clear zone concept is essential, and we'll discuss it again in connection with other safety features. For now though, this is the end of our session together. I'll be back to continue our discussion of safe highways.


When there is a consecrated space, what it means is, there is a powerful energy. You don't want to sit with your legs open like this, it could be detrimental to you in many different ways. Even fooled, I'm telling you. If you stand and eat, there are many negativities to this. This question is from Claire here at Triple Eye. Now, let's come to a view, why do we not place our feet towards lingas or other consecrated objects or even people for that matter? Is it simply a matter of respect or is there a scientific basis for this? So these days they're doing that, some of them.   So it's beginning to happen, Claire, you don't have to feel disappointed. It's beginning to happen, shaking a leg at each other. Well, why if there's an energetic situation, you always are asked to cross your legs, not to stretch your legs in the direction. Well, this respect thing is a more newer expression of that. Essentially because you can receive anything that comes towards you in many different ways. The yogic intention always is to receive it from the higher aspects of your life. You know there is Anahata, which is the meeting of two triangles. Below that is Manipuraka, Swadhisthana and Mooladhara, which are all chakras representing different aspects of survival process. Survival, basic survival, reproductive process, maintenance process, all survival related. Here it comes and there are two triangles intersecting each other. Because this is ultimate ecstasy, this is realization, this is power, this is love and these sections, these triangles intersecting. When there is a consecrated space, what it means is there is a powerful energy which has the possibility of transforming you. That energy must come to you always from the highest possibility that you can receive. You can receive from your sahasrar. It will be too fantastic. That is the reason the moment any Indian person goes into a temple, first thing is they want to expose this. They keep it wet in a proper temple.  Because they are hoping this energy will enter here. It didn't work, so hoping here, didn't work, then they will take, hoping this will have work, nothing worked, then they will say this. But they don't want to go here because these are survival processes. We don't want to enhance them. We want to enhance other dimensions of life which will enhance our life because if you survive better, if you survive it's good. It's very essential we survive. But surviving better than somebody is not a life goal. It's a waste of time because whatever you do you're not going to survive forever. Hello? Whatever you may do, even minus the pandemic, you will not survive forever. So there is no need to invest too much in the direction of survival. So because of this, the whole culture being, understanding this dimension, they created the societies in a certain way. Well, today what you find is a whole distorted version of that. But fundamentally it is still there that when you go to any consecrated space, you're like this because you wanted to enter here, you want to become blissful, ecstatic. Doesn't work, at least peacefulness and realization. Balance and free from all kinds of poisons that are there in the world should not enter you. So essentially you want the upper part of your body above anahata to be exposed to this. You don't want to sit with your legs open like this in front of a consecrated space because that will attract a totally different kind of energy towards you and that will work for you in a completely different way, which is not necessarily beneficial to you, it could be detrimental to you in many different ways. That's a reason when you sit in any space where you think there is power, there is energy, you always cross your legs and sit because you want to close the lower part of the body. If you do this, you know in some way you're close to people, isn't it? Hello? Ladies, you know this, suppose somebody is talking to you. Let's say a stranger has come, a man talking to you, will you talk to me like this? Hello? Some of them are doing it these days because they think what is wrong? Nothing wrong, you will bring a certain different type of attention to yourself. Well, if the man is decent, he will do this. If you're Indian, otherwise you will say hello and maybe shake his hand and if he's acting little fresh, you'll say, hmm? Yes or no?  Hello? Whatever culture you have grown up in, instinctively you always know because it happens in the body. It's not that we make up in the mind, certain things happen in the body. So certain cultures have very consciously evolved these postures that if you want to do this, this is how you must sit. It's very, very important.  But if you sit with food, but with legs open, like many people are standing and eating, if you stand and eat, there are many negativities to this because you must understand the longing for food is not just in your mouth. Entire body is longing for it. Entire body. Well, people will say, oh, there is nothing signing about it. He is my naval longing for food. He is my genitals longing for food. Yes, it is. You may not understand, every part of the body is longing for food, but it must go through this route, isn't it? Hello? Similarly, there are other kinds of longings in our body. They must go through the right route. Then only it life works out in a certain way, otherwise you will distort life. So, keeping your legs crossed whenever you see a powerful form is a very important thing and also food. Food is a very powerful thing. Hello? If you're not eaten for three days, you understand it's a very powerful thing, isn't it? Hello? It is a very powerful thing and you will see if you're not eaten for three to five days, every cell in the body will long for food.  Everything works. So, it's important that your legs are crossed when food comes in front of you, but you have found another way of shielding yourself with a table. All right, that is working for you. But if you're having food, you're very hungry and food is exposed to the entire body. This is not good for you. This goes for food because we consider food as a very powerful instrument, consecrated objects and human beings who are of a certain power within themselves.  I'm asking you, is it good to shit? Hello, I'm asking you a question. Yes. But it must come out of a certain part of your body. If it comes out from elsewhere, it will become terrible, isn't it? Hello? Similarly, food should go in in a certain way. Food going in is not only physical food going in, food goes into you in so many ways because the entire body is capable of this. I must tell you my experience. Once I… you know like we had a major success in some business venture when I was doing this. So, I was always exposed to nature wherever possible. I've been trekking, motorcycling, all this, but my partner is a nice city boy. So, we decided that we will go to a place where there was a reservoir, like a dam and there's a big lake and there are small, reasonable sized hills. We went there and we were all swimming. After swimming, I was still in my swimming trunks. I thought, let me climb the hill for summer months, pretty dry. So, I went up the hill. Now, I'm… sometimes I wonder, these days wherever I go, somebody's carrying a bottle of water. At that time, I rode through the day and night. I never had a water bottle with me. We just managed just like that. So, I went up the hill as I went in the summer heat bare-bodied. I was sweating heavily but you know, I have a problem of turning back halfway. So, I want to go all up… all the way up and then come down. I went up and as I was beginning to come down, I started feeling that I was suffocating with my tongue kind of bloating up. I was dehydrating so much that my tongue was becoming like a block in my breathing and I really started struggling. I badly needed at least a few drops of water. I tried to lick my own sweat but it didn't help. When I thought I'm going to kind of literally lose my consciousness, like I'm going to faint, then I just sat there with my eyes closed for some time. Then I realized my entire body, you know, like all the hair on my hands and legs are all going this way. It's not like goose bumps. Goose bumps means this will rise this way, this will rise this way. I just saw that all the hair pointing this way and I just knew there's water somewhere here. And I just went in search of it. I went into a small, beneath the rock outcrop, like a small cave. Cave not for a human being. Maybe rabbits and rats and those kind of animals could go and stay there, that kind of cave, just about that much. There was a small pool of water.  It didn't matter. I just put my face into it and drank up the whole thing, including the mud and everything. I sat there for a while, recovered from that and came down. Why I'm saying this is, when you really need something, like food or water, you will see every cell in the body will long for it. If you pay attention, you will see thirst is not just in your mouth, it's everywhere. So the same goes, not just for food, the same goes for other types of energy also. Every cell in the body longs for it. It's very important you receive it the right way.


OK. Točno, kaj jih se očisela, da so vzible, neko kaj sem tudi svar, tudi sem zrubim, pa ga se zrubim. Jsem Dario, jim da z Vzema Tjažu Suse v vsej vsej postavljajših z vzema. Jih je vsej o če vidimo, o če jih je postavljajši. Če dobro vzema je vsej, And let's say that you want to avoid performance agressions to occur, for example, when you release a new version of your project. In case of SUSE is, would be operating systems. So simple example, we want to avoid performance agressions when releasing a new version of SUSE Linux Enterprise, which is our operating system, and the way we do that is through benchmarks.  If there are differences, namely regressions, it's likely that the causes for those are the things that change between the two releases. And in this very, very simple example, it will be these two components. Of course, there's much more in a real system, but again, it's just an example. Now, this still applies, the concept is the same when virtualization is involved. The only difference is that, in that case, the benchmarks typically run inside VMs. What's already a little bit different, as we can see, is that the list of components that potentially could introduce performance agressions, it's already quite a bit longer, even in these silly examples that I made up. Actually, though, with virtualization it's possible, as we know very well, to run a version of the operating system inside of the VMs, which is not the same as the one that you are running on the host. If we want to be really sure that we are checking all the cases, we must run benchmarks, but we must run them in a few more cases and combinations, like, again, exemplified here. What about VM sizes? Meaning, what about if there are performance bugs that only shows up, for example, if a VM has more RAM than a certain threshold, or fewer RAM than a certain threshold for what it takes? Well, that means that, again, we need to consider more combinations, meaning we need to run the benchmarks in VMs with different sizes, different number of virtual CPUs, different amount of memory assigned to them. It's not over yet. There is also, it must also be said that there are configurations that you can do for the VMs at the host level, like any kind of tuning, for example, of the host itself or of the VM by pinning the virtual CPUs, defining virtual topology, this kind of stuff, which means, I think you are starting to learn how this goes, that in theory we should run even more benchmarks, we have even more combinations, we should check, for example, multiple and different configurations for other VMs and run benchmarks inside of them in all these cases. Finally, how cool is the fact that, I mean, as we also know very well, given a server, given an host, we can run from just one VM to hundreds of them. And how not so cool is the fact that this means that we also, if you want to be sure, then should run benchmarks in scenarios that are comprised of different numbers of VMs. So, multiple VMs involved and varying number of them. Yeah, I lied, it wasn't the last thing. The last thing that I could come up, but there are probably more, is the fact that when I say run benchmark, I think we all imagine, and I say run benchmark in multiple VMs, I think it's quite common to imagine that we run the same benchmark in all VMs, which is fine, but it's actually quite possible, depending on the use case that VMs are going to run, if you have more of them, different workloads inside of which one. And so, if you want to be complete and precise, we should also consider this situation. Which means if you try to put all these things together, that our test matrix for making sure that we're not having regression just exploded basically. And this brings us to the actual point of these points, because there are two of them, of this presentation, which I'm going to try to make in the rest of it, which are one, for managing this complex situation, we need tools, that's pretty easy to imagine, I guess. And the second one is that we also need to make choices. I have some examples. I am going very, very quickly through them, just to, I put them there just because, in the list of scenarios and use cases that I mentioned before, you can see that it wasn't made up. So, I mentioned that there could be performance issues that only manifest themselves when they size, the memory of that you assign to a VM is higher than a certain threshold, and this is one. Because the problem was, the slowdown in the startup time of the VM was depending on the size of the VM itself, and it was the most severe when the VM was quite big. Then there are, we have faced problems, like this one where, in this situation up here, whether or not the VM was having a virtual topology and depending on how the virtual CPUs were pinned on the physical CPUs, what happened was that the behavior inside of the guest kernel was different and different in a way that had performance implication. And down here instead, we see an example where whether the fact that the VM, again related to virtual topology, whether or not the VM had an L3 cache defined as part of its virtual topology also changed the ingest behavior. This time it was G-Lib C, which was being differently causing performance anomalies. I'm not going into the details but at all of these examples, there is this talk from two years ago, I think, which does exactly that if you are interested or otherwise, ask me later. And this is the last one. I mentioned that we want to consider the case where there are multiple VMs and here we have an example where there was a problem with the host scheduler giving in a way that wasn't fair to all the VMs. And of course, this is something that you only realize if you actually run benchmarks with multiple VMs. Right, I mentioned that we need tools, in my opinion at least. And the tool that I want to talk about today is this benchmark in suit called MMTests. There are others, there are many, actually of them, this is the one that we use and I choose to talk to you about. It's a benchmark in suit that is in use internally at SUSE but also in the Linux kernel menu lists in the upstream Linux kernel community for quite some time actually and it evolved over time. Again, I will describe it in not so many details. I will give you some hints about it. If you are curious, find me or check out this list of materials. Basically, MMTests is, I called it a benchmark in suit because it's a piece of software, a collection of script basically that allows you to run benchmarks, quite a wide set of benchmarks in a repeatable and automated way. It also automatically collects results, runs some fancy statistics on top of them and let you see those results and the statistic analysis in a bunch of different way, which includes plots. It can monitor and also trace and also profile the system while the benchmarks are running and try to figure out and have more clues about where the problem could be hiding if there was any. It works through configuration files. Benchmarks have configuration files which are basically batch scripts themselves with a lot of exported variables. They can be parametric so you can in the configuration file try to fetch information about the characteristics of the host or VM inside of which are running the benchmarks so you don't have to encode details like this. And it can be used, of course, otherwise I wouldn't be talking about it here, it can be used for run benchmarks in virtualized scenarios and inside virtual machines. And it also supports an host configuration file where you can define, for example, what kind of monitoring, what kind of tuning you want this time at the host level and also what are the VMs that you want to use for the benchmarking campaign. Yeah, as just since I mentioned in the beginning of the presentation it's possible to define in the host configuration file the characteristic of the VM. So you can use a memtest to run benchmark inside multiple VM at the same time and also construct scenarios where the VMs have different characteristics. And memtest will manage the life cycle of the VMs all by itself so it will start them, stop them for running the benchmark inside of them. So it will define and create and install OS inside of them if they don't exist already and all this kind of stuff. Containers because we are close to have support inside of a memtest also for running benchmarks inside containers and defining containers in the host config file and doing pretty much the same that you can do with VMs running benchmark inside containers and maybe comparing the two solutions if you want. And it can work even in a more generic way in which we don't care too much about here. It's just because I wanted to mention because it's useful for example for running benchmarking situations that in cases where we don't have full support for them in memtests meaning for example we want to run benchmarks in KubeVirtVMIs we are working on supporting these scenarios in memtests properly but until that happens you can just at least run benchmarks inside the VMs managed by KubeVirt by specifying just the IP addresses in the config file and the memtest won't be able to start and stop the VMs through KubeVirt until we implemented the support but benchmark will run there at least and you will have the results and everything. Now, I mentioned a few times that I want to be able to run benchmarks inside VMs and inside multiple VMs. What happens if I do just that? So what happens if I start CPU benchmarks inside two VMs I start it the same time in both of them and I just let it run. It happens something that I would call it quite bad because nothing guarantees that for example if the benchmark has phases or steps or if you run multiple iterations of it that the various iterations like in this example nothing guarantees that they are synchronized and so you have different iterations running against other things or nothing in the two VM and the results is not going to be something that is really useful. What about instead something like this where the various iterations of this benchmark run let's say in lock step inside the two VMs. This is much better and this is something that gives you results that you can use for actually making assumptions and drawing conclusions about the performance of this system. And M&Test has support for that. There are other benchmark in suite that does but not many at least to the best of my knowledge. And yeah it does that by implementing this barrier protocol in the host level so VMs and those communicate in such a way that benchmarking proceeds in a synchronized way then in lock step. In the source code there is even an ASCII diagram I know you cannot see it from here check out the code it's very it's awesome it took me more time to draw the ASCII driver than to implement the protocol but I think it's worth it. So in conclusion of it apparently I didn't draw enough and then decided to do more. And this is what happens in practice which now I'm not sure it's my fault, is it? Maybe it is. Okay fine. So basically what we see here is the CPU load inside of the VMs these are three examples where there are two VMs and the fact that the curves are basically identical we can infer that what I just said it's actually happening so the benchmarks inside of the VMs are synchronized and running in lock step and this is a larger example with 16 VMs. Documentation there is of course some documentation for MM test but of course it's not complete. Sorry about that we are working on improving that if you decide to try it which I really encourage you to it may happen that you run that you end up in situations where you don't know how to do something because it's not part of the documentation yet at which point you can for example write an email to me feel free to do that actually. Now MM test is a tool that can be used and that we use for day-to-day development so you do change in QMU let's say that you suspect we'll have an impact on performance and you use MM test to run the benchmark and verify whether that is the case or not and whether it has a good impact or not. However there's more to it so for example the performance team inside of SUSE is not my team as implemented CI on top of MM tests they use it as I said already for testing our product kernels and they also submit the results to the Linux kernel manual list. What I am doing is pretty much the same thing but let's say for virtualization. I am reusing part of what they have but not completely but that's because for now we are running it internally and I have to run it in a lab which is slightly different from the one they use so it's internal details that I don't think they are really interesting. In fact the code for these set of scripts that implement CI, virtualization CI around MM test is here I really recommend not to go and check it out, not right now at least it's very very weak and also as I said it's a little bit tight to some aspects of our internal labs however it can work in other environments I also use it for on my test boxes at my place which is not and I intend to develop it further and make it more general it's just not really really now although it's already working and running on these two boxes in our labs. The technical details of how it works are not terribly interested for example because as I said multiple times still in its beginning and much more than that because I want to use the time that I have left for for talking about and discussing how we are using it and how we could use it to even even further so right now we are using it for checking for regressions in performance regression in our virtualization products which is basically what I said at the very beginning of the presentation we take a particular version of our supported OS we install it on a server we run benchmarks on it for example we don't of course we don't do that only when our release is closed we also do that during development and release during maintenance so as soon as there are changes because some packages receive maintenance updates or whatever we rerun the benchmark and we check the result and if there are the regressions sorry we try to hunt them down what benchmarks do we run well that's the interesting part for now let's only say that we run benchmarks bare metal benchmarks even if only to use them and then we run benchmarks in just one VM but in multiple sizes and multiple configurations and also multiple VMs, multiple sizes and multiple configurations now what we wanted to start doing is to also do the same but on upstream QM and for the wider QM community so for example we can take when suset humble weed which is a rolling distribution so it always track the latest development of basically everything kernel system library is a little weird and we can use that as a base for building testing not really our QM packages that we have there but as I said upstream QM, the released version of QM, like I don't know 7.1 which is the latest and also the next previous latest and and the report results and all these things we can also try to use it for testing the latest developments of QM for fetching the latest commits from Git and testing them one important part when one thinks about doing something like that is how to deal with the the results and the data that you get out of this activity and ideally we would want to I don't know connect this to some official CI and automatically send reports but this won't happen right now until we are sure that all the thing works sufficiently well for now will probably be us taking care of monitoring the results and if we publish in the dashboards without spamming too much anyone then we will have to triage the problem figure out the commit and it's introducing it and try to want it down or at that point alert the maintainers and ask for help fixing it now questions but not questions that I am taking for you, questions, other questions that I am asking which are a little bit what I was mentioning before so actually more than these these is the something that I feel like it's important so we want to run benchmarks, we want to run a lot of benchmarks in a lot of different configurations and set ups in number of VMs and size of the VMs but how many of them should we run and which ones now of course one might ask why not all which is a very good answer but if we run not even all but a lot of them then each run will take a lot of time and since we have limited man and machine power for this activity then we risk to make it not very useful because if there is a lot of if a lot of time passes between two runs then it means that it's going to be harder to identify the changes or the component that it's introducing regression so I did put it here in the slides some ideas and suggestions of what I planned to start with as for example which benchmarks as as another example what type of VMs, so sizes and based on experience we were planning to focus on small VMs but also keep an eye out for larger ones and and the number of VMs it will of course depends on the capacity of the server in terms of memory and CPUs and stuff like that but for all these things the input from the QM community would be highly appreciated because especially when I say that we want to run it on released and upstream QM for helping discovering and tracking performance issues there and it makes sense that we decide together what are the most interesting and most important configurations and work that we want to consider yeah I think I've done another interesting thing is how when you run multi and it's the last thing that I'm going to say is that when you run a benchmark in multiple VMs so for example you run a benchmark in four VM you don't get one result you get four but the actual results that you want is one number so how do you aggregate these results right now I am just averaging them and the computer standard deviation and these kind of things maybe I mean it's the thing that felt most natural for me but for me there are other ways if that's the case don't hesitate to come forward and provide suggestions because they are very much welcome and now I am really done and these time questions are the ones that I am happy to take and not to ask I have a virtual question how do you see Intel LKP tests vs MM tests in terms of Linux kernel testing interested to know things which MM tests can support which LKP cannot yes that's an interesting question I don't know enough of LKP for comparing it with MM test especially for kernel testing so bare metal testing the reason why I focused on MM test was because I knew it and so an opportunity for implementing let's say virtualization support of it which is what I described when I said that it's now possible to run benchmark inside of it in multiple VMs synchronized and stuff like that there are many benchmarking suits LKP one but there are also others and it's one of those things that there are many of them and there is always room for comparing them so we are trying to use one but then another one always is developed and it's a little bit how it goes how I answered that was one there but I don't think there's time sure apparently time is up so feel free, I'm also around for the rest of the conference so feel free to find me and ask anything else that you might want to know about this Thank you


Hello and welcome to CMC Markets on Tuesday the 13th of May and the weekly market update. Now I get an incredible sense of deja vu when I do these things because usually I'm talking to you about disappointing economic data and record highs or new highs on equity markets and it's pretty much the same old, same old that we're talking about this week. The S&P 500 has hit the 1900 level for the first time ever. The FTSE 100 has hit its highest levels in 14 years since the New Year's Eve 1999. We of course know what happened soon after 1999. The FTSE 100 dropped four or five hundred points in a month. Now I don't think that's going to happen on this occasion. I think the expectation is that despite the geopolitical risks, despite the disappointing economic data, there is an expectation on the part of investors. Essentially I think that central bank monetary policy will continue to remain accommodative. We've heard some very dovish comments out of the Federal Reserve to try and offset the effects or the tightening effects of their tapering policy. We've heard Mario Draghi last week intimate that the ECB remains comfortable enacting at the June meeting with respect to monetary policy and that's got markets really excited about the prospect of some form of loosening of monetary policy at the June ECB meeting. With that in mind I'm going to be looking at three euro pairs as part of this weekly update. We've also had very disappointing Chinese economic data and yet once again we're seeing the mining sector actually go higher and I think once again it's on the expectation that Chinese authorities will look at invoking further stimulus. I think however that particular thought could actually or that could actually be slightly misplaced because President Xi has gone to great lengths, the Chinese President has gone to great lengths to suggest that further large-scale stimulus is pretty much off the table while they deal with the problems within their banking system. So what we're going to look at this week we've got a host of economic data to look forward to. The most important of which is going to be the inflation data out of Europe. We're looking at the final inflation data from Italy and we've already seen that it's come in slightly weaker at 0.5 percent but we're also looking at French inflation data, CPI data, German CPI data and the broader EU CPI data. It's highly likely that we could, it's highly likely that that is probably likely to remain weak and in that context we're going to look at these three pairs, euro-dollar, euro-Canada and euro-yen where there are some nice patterns starting to form. I'm going to start with euro- dollar. Now on Wednesday and Thursday we've got French, French and German CPI on Wednesday and then we've got GDP data from the big three economies in Europe and broader EU GDP data on Thursday as well as CPI data. Now the expectation is we're going to get some form of easing from the ECB in June. I would add a little bit of caution, a little note of caution to this. It's heavily caveated and Mr Draghi has said that it's heavily caveated in terms of the inflation forecast data which we'll get updates on for 2016. If that's revised down then we can expect some easing from the ECB. What we won't get is quantitative easing so really it's a question of what type of easing do we get. So let's look at euro-dollar, let's look at this daily chart and we can see we've got the potential formation of a double top. Now if we look at this chart I've drawn horizontal lines through the highs around just below 140 and I've also drawn a horizontal line through the February and April lows and that's really the key support level that I'm looking at on euro-dollar it's between 13650 and 13675. If we break below that particular that series of lows then we can I think we can significantly argue that we've got a double top in place and we could well see a three or four hundred point move lower on a break and a close below that key support line. So that's the area to keep a keep an eye on. We've broken the up trend line that's been in place since the middle of last year in July. We've broken below the 100 day moving average. The next target is that trend line support around about 13650, 13675 and the 200 day moving average. Now let's move on to Euro Canada and you can see straight away this is a beautiful chart formation it's a head and shoulders reversal. Now we've broken the neckline and that's quite significant but what we haven't done as yet is we haven't broken the February lows around about the 149 area and that's really the next key support level. If we break below 149 then there's a fairly good chance that we could see a much more aggressive down move in Euro Canada. Now how is that going to come about? Is that going to come about by a decline in dollar Canada or is it going to come about as a decline in euro dollar? To be quite honest as chartists we don't care. We trade the currency pair if we move below that neckline in Euro CAD then I think there's a good chance we could trade significantly lower. I'm going to finish up with Euro yen and as in the other pairs we're on a fairly key support area. The key support area that I'm particularly interested in is 13980. It's the April lows and it's the May lows and it's also kumo cloud support. So it's fairly significant if we push significantly below that particular level then once again as in the other crosses we could we'll see further declines in Euro yen. Now one of the factors that could drive Euro yen is the Japanese GDP numbers that are due out first thing Thursday morning. So it's not just about looking at the Euro data that's out this week. With respect to Euro yen also keep an eye out on the Japanese data that's out on Thursday morning. So that's it for this week. Just leaves me one other thing to say and that's to tell all you guys about a special webinar event that my colleague Colin Sizinski and I will be holding on Thursday the 15th of May at 3pm UK time. It's half an hour and basically Colin and I will be talking about this week's events in the market what expectations are for economic data and really where we think markets are going to go over the course of the next week or so. We'll also talk about what works for us in terms of trading techniques and more importantly than that what doesn't. So there'll be a link along here if you want to sign up for that event more than happy to accommodate you and we look forward to talking to you then. So that's it for this week. Thanks again for listening. This is Michael Houston talking to you from CMC Marcus.