So maybe we'll start with an announcement. So I think you should have received yesterday I sent an email to the mailing list. Did you all get it? So I recent for people who were here last week. I recent to the link to the virtual part So I hope you all know what I'm talking about. I thought I will show it to you But I don't have the link ready now. So this is this special screen where you can write Anonymous Lee questions so we'll have a panel discussion today at 430 and Yeah, we are happy to address or try to address or Questions that you might want to ask Through this virtual pad, but I wanted to show you. I think in Lucia is not here, right? Okay, so that was the announcement. So I'll go to the virtual pad and try to write questions you might have them and We'll tell you maybe later about the Thursday event and the information fair. So Okay, so today it will be in some sense a connecting lectures. So I think I hope You could follow them Sturmean sequences characterization the characterization of these cutting sequences of a line with a square grid Which also called the linear flow on a square or the linear flow on a torus and So first of all, I want to spend maybe the first 10 15 minutes by telling you something which is Closer to kind of What my it's actually my research and closer to what people have been doing more recently inspired by the square and Then I want to connect to true Translation surfaces and the world of IT's where we will see yet another example of renormalization So the first Whatever I do on the board I try to do slowly and this what I really want you to understand Whatever I will do on this lights is more like a picture of what's going on Closer research. So I don't if you if you get lost in the this part Don't worry. It's just to give you an idea of What's next and let me tell you also the story of this. So I'm going to tell you something that we did with John Smiley few years ago and There's done a prosecution that I will mention which is also joined to work with the rena pasquinelli who is here and another postdoc Diana Davis and It all started because when I was an undergraduate student I actually read this little paper by Caroline series, which I try to explain very much in detail to you And when I read it, I don't know I feel like but when I read it as an undergrad I was like, you know, wow, this is beautiful. It's this picture of renormalization I really fell in love with it. And so I kind of I had it in my mind and I kind of and at some point we were discussing with John Smiley and We were looking at the octagon. So So you could ask yourself, okay, we started with a square, but Can I do it with other polygons? So let's see What happens if I have a regular octagon and Again, imagine that you glue like we did in the torus you glue opposite sides you identify opposite side by a translation and If I have this octagon like in the torus when I go out I have to come back to the opposite side So I can't define a linear flow And let me show you a picture So what do I do? I start from a point of my octagon and I travel along a straight line with a certain slope and When I hit the boundary when I hit a side like in the torus. I come back To the opposite side of the opposite side, okay So you go out come back and you keep doing like this when you go out here B is glued to the opposite side B So I come back, okay Okay, so I travel along a line and use the gluing of the opposite sides to come back and What happens if I hit an angle if I hit an angle I stop so the process is not well defined at angles But I'm only going to care about lines which are by infinite So I'm ignoring those which hit the corner. I'm just looking at my infinite trajectories Okay, and you can prove those which hit the corner are actually countably many directions So I'm ignoring a small set And I can do the same thing we were doing with the line in the square We can code it by recording the sequence of sides which are hit So here I had for the square I had two pairs 0 and 1 Here I have four pairs and the alphabet here is a b cd. You could use 0 1 2 3 Just I had the slides a b cd So we can record the cutting sequence. So I travel along my line. Let's do an example I travel I cross the side a I record an a I cross the side B next I record the B then I cross a again C D I can record in a by infinite sequence There's pairs of glued sides that I hit Okay, clear the problem and now you can ask exactly the same questions Those sequences will not be random sequences in a BCD Can we characterize the sequences which appear and if I tell you that a sequence is a cutting sequence of a line Can you find the direction of the line? And what we did with just my name we gave a full answer to these two questions exactly in the spirit of Caroline series Presentation of Sturman that we did yesterday and today. So really doing some geometric and combinatorial Normalization and I was really happy because when I was a student like I love this paper And when I kind of find out I can we can do something similar that was really kind of enthusiastic that yeah But so my I already told you this to people who are here last week when you learn something if you learn some little tool Try to which is important to you learn it. Well, right understand it really deeply understand it So sometimes tools which are yours are those that then you can export in your own research So spend time to understand fully something in details until you have a clear picture in your mind because those pictures You can carry them with you as your weapons to attack future research Okay, so we start by looking at First of all by some symmetry consideration, well, maybe we can actually just look at the upper upper Half plane and again, you remember for the for the square We were looking at the upper quadrant and we had two types. We had elementary restrictions according to whether I was a Bob in zero pi four or in pi four spy, right? And this restriction had to do with which sites can follow each other Here I can only have after a zero I can have another zero and okay You can remember so we first lose these elementary observations I look at my geometry and they make elementary observations So let's assume here there will be eight types not two types But eight types say zero to seven and each type corresponds to a small sector of of Angle pi over eight so if my trajectory is in this blue sector, so horizontal to pi over eight So you can kind of if you want you can use the symmetries of the octagon to bring you back to this small Sector it comes from symmetries of the octagon If my trajectory is almost horizontal and if it hits a side a I Cannot go up if I'm almost horizontal. I'm bound to hit D next Do you see after a I have to eat hit the D if my trajectory is not very more than pi over eight I cannot go up so I can only hit from a I can hit the D And I record this by putting an arrow from a to D after a I have to see a D Let's do another another one after the D my trajectory remember is Horizontal to pi over eight. I don't know exactly where but after a D I can hit a B or I can hit a a But I cannot go down because I have to go in this sector So after a D, I can hit a B or an a okay, and You can think what happens after a B. You can hit a D or a C and After a C you can hit another C or a B, but you cannot hit anything down there so I record this as a little diagram and An elementary restriction is that my trajectory my cutting sequence has to Give me a pass on this diagram. So if I read through my sequence I After an a I can see a D after a D. Maybe I can see a B. Maybe I can see an A but I have to Reading my sequence gives me a pass on this graph Does it make sense So this is true is my slope between zero and pi of rate. This is type zero so definition of type zero is being giving me a pass here and You have to do the other types you can just use the symmetries of the octagon to perm to permute it If you want you can do same argument for the other eight octagon eight sectors and you get a similar Diagrams if the direction is here. You have a similar graph the zero. What these are eight possible types and the first definition is Sequence is admissible if it is one of these eight types so How does it work? This corresponds to the two types and the octagon and the first lemma which is elementary in just indeed Staring at your picture. What we just did is that an octagon cutting sequence is admissible So if I have a cutting sequence the slope will be in one of these eight sectors and for that sector I will have to leave in that diagram. Okay, so this is admissibility It's more a little more sophisticated than the square But it's still elementary by looking at the picture and making some geometric consideration So cutting sequences are admissible in this sense Is this enough? No, we need an operation like derivation We need to bring it to the next stage by asking this admissibility on many scales on many levels And this is again, you need a derivation operator like we did for sturmium and I'll tell you what this is kind of Maybe make magic not magic. It's more surprising. I didn't we didn't expect it when we started Okay, let me tell you just is a combinatorial definition So let me say that the letter is sandwiched a letter is sandwich like see is sandwiched If before and after I see the same letter So see is like the ham in a sandwich of bees So this letter is sandwiched And now here our derivation which is particularly beautiful in some sense, so it's Given a cutting sequence the derived sequence omega prime the derived sequence Is obtained by the following rule keep only sandwich letters So let me see. This is an example This is a sequence and as I scan through my sequence. You see a is sandwiched great I keep it D is not sandwiched has a and B. So I drop it B is not sandwich So I drop it the next sandwich letter is a bee preceded and followed by C and So on this you scan it the next sandwich is a Then see sandwich this be the sandwich Okay, you scan and you keep only letters, which are sandwiched, right? and Now we say that an admissible sequence is derivable If the derivative by this if I take my sequence I keep all the sandwich letters and the new sequence of sandwich letters is admissible So again, it lives in one of these eight possible types and The sequence is infinite the derivable if I can do this infinitely many times. Yes So we are kind of ignoring the place we start so we are also yesterday You are looking at sequences up to shift So I think a by if by infinite sequence you're right So I don't know how to where to put the center and I'm ignoring it So if yesterday also if you wanted to do a more detailed analysis with where the center is you need to work a little Harder here we have never done it So I just think of my infinite sequences not as I do not place the zero Okay, so this is kind of surprising derivation. You don't know if you Comes from but so what we proved is that octagon cutting sequences are infinite at the rival in this sense so you see it's a theorem similar to in the flavor of the Sturmean and It's not only for the octagon It's for any regular to end gone. So that cagon dot the cagon whatever and You can also do it for odd gongs like the pentagon. You have to take two of them. Okay. This is Diana Davis didn't her PhD thesis and Okay, you remember yesterday we said it's almost an if and only if so it's infinite a derivable if and only if It's in the closure of cutting sequences This is not if and only if not even for the closure But we also have a second theorem which is if and only if and this is in the spirit of the substitution Version of Sturmean. So we also say we can explicitly tell you a recipe to write substitutions such that cutting sequence Sequences in the closure of octagon cutting sequences if and only if you can write it as this Expression by substitution. I hope You remember this is kind of what we did at the end of yesterday So there exists some indices from one to seven and some letters or such that omega I can write it as a limit of Applying sorry, sorry, sorry applying the substitutions to some periodic sequence You remember this is the second formulation. This is an if and only if yes Yes Yeah, so there is this little story. So actually so exagons are the same than squares They are actually square with a marked point You can cut and paste a square into an exagon and our sandwich letters work well for the exagon And gives you a different way to characterize, but actually is the right here. Yes So this is the right I came to Bristol to do a summer research project And I think the first thing I asked you was indeed to check what happens for the exagon and the square And she started doing that and then she read the paper by smiley and then I'll tell you what happened next in maybe maybe in 20 minutes or so, but and then we did we had the research paper which started from Generalizing this octagon picture to Something else which will come next. I will tell you okay, but so you can ask She knows everything she can give you her stage thesis. Yes Okay, so I'm lying something I'm Hiding some details under the carpet in reality the substitutions are not on the same alphabet or in a different alphabet and You need to change to convert them back to the standard alphabet at the back And actually this theorem does not appear in our paper of that time. It's something that I realized Maybe it appears in your in your thesis. Yes, so she wrote in here and I wrote this form Which I realized only some years later that you could do these substitutions. Okay Okay, and I want to tell you one key idea So the key idea of this result is all is the same is the same What was the key idea? the key idea was to prove that and the derived sequence of an octagon cutting sequence is Again an octagon cutting sequence by giving it a geometric meaning that was the key lemma for the torus The derived sequence of a square cutting sequence is a square cutting sequence And here we want to prove that the right sequence of an octagon cutting sequence is an octagon cutting sequence How did you remember what we did it? How did we do it for yesterday? We compared The square cutting sequence with the parallelogram cutting sequence, right? And we proved that maybe in k steps, then you get the derived sequence and We also used kind of randomization So we need but then this each parallelogram I can map it back to the square Restart the process So what do you need to do the octagon you need a geometric map to normalize the octagon and Luckily such a map exists and it's another kind of magic or beautiful thing which was known To beach bill beach who died recently who's also a very important figure in the study of Interval exchange maps and translation surfaces. Okay, so I will just show you one map. So So if I take let's take an octagon and let's apply to it this matrix So this is yesterday. We used you remember 1 1 0 1 or some This is minus you can ignore sorry say 1 then you have this 2 1 plus 2 2 0 1 This is the linear map and if I apply my octagon the image is sheared So this is a horizontal shear of a certain amount Okay, so I have an octagon and I can and the image is this all prime is this image by this shear and You can see that I wrote to my octagon in a grid made by rectangles and trapezoids and So this is just for ignore the grid for a second. Just the octagon is sheared here and The magic of the octagon is that I can cut and paste like a little puzzles I can cut and paste the sheared octagon back to the original octagon So beach Remark to this this all prime octagon you can draw it on paper and you can cut it along these lines that I drew and Your eight nine pieces will reshuffle back to make an octagon. Okay, you can make a little puzzle like you make with the squares So this sheared octagon can be cut and pasted back to the original octagon and Okay Okay, so the key lemma is that that the right sequence is keeping the sandwich letters actually gives you the cutting sequence of a Certain line the same line the same trajectory, but with respect to the sides of this sheared octagon Like yesterday, it was for the parallelogram here I can actually draw my line here if the line. Sorry. Actually. It's a lie if the line is in this horizontal if the line is in between 0 5 8 I Can draw my line here or draw my line inside there By this puzzle I can draw the line here and look at when it hits these Slanted sites and it only hits the slanted sites where the original letters were sandwiched. This is what you want to Check this is the key lemma that I'm not going to tell you But once you have that you can normalize renormalize you can apply the inverse of my matrix and Line here by applying the inverse of the matrix will map back there. So Sorry, we do it again If I have my sheared octagon and I apply the inverse the sheared octagon goes back to the octagon and the line changes so The derived sequence is actually again an octagon cutting sequence in a new direction and Then from here you can prove that cutting sequence are infinite the rival ball and also all the other results That you want and bow the octagon So I don't want to really explain this in detail, but I want I hope you see the analogy I'm doing something very similar to what I was doing for the square and it works for Regular polygons also and I really need this idea. Okay, and Now I want to move on and I want to move to surfaces. So we already did this for the square So you remember when I started with the square? I told you if I glue opposite sides of my square. I'm actually on a torus and My line here is actually a trajectory of some flow on the torus So I want to do the same for the octagon to start with Okay, so if you got lost in the octagon part Ignore it. It was just for fun and to tell you something related to my research and Think that people are still doing I will tell you related to this. So so if you are lost Don't panic wake up and listen from now. Okay, so it's ketchup point Okay, so this should I want I think some people know maybe not everybody know so what happens if I look at my octagon and glue This opposite side. So I glue a with a B with B C with C Do you know what I have? Ah, so you're right. Good question. I'm gluing by translation So I'm good. I'm taking the unique translation which maps a C in to C So I have a surface if I glue, you know, what is the genus of the surface? Huh, okay, so I don't know if everybody has seen this I think not so let me give you a movie a Movie so if I have this octagon, what do my mathematician do they reduce themselves to the previous case? So so first of all I want to claim. Okay, that's my picture. I claim that this with glued sides is that it's a pretzel It's surface of genus too. So how do we reduce to the previous case? I can fit my octagon in a square piece of paper Okay, what is an octagon? It's a square without with cut out corners It's a square where I cut out the corners. Actually all this this thing is I think it's I learned it from Anton Zoric So I think it's good to Draw the picture, but he has some pictures in his flat surfaces Survey, okay. So what do you do once you have a square for the square? We have to glue a with a all the and C with C So I hope you all believed yesterday that the square gives me a doughnut a torus What happens of these corners these missing corners the missing missing corners glue to each other to make a little rhombus here Does it make sense?  So I need to cut a rhombus hole from my doughnut And now what do I have to do of this rhombus hole here? I have B and here I have D so I need to glue B with D and D with D I still have to do the gluing of the corners of the other four sides So if I glue B with B, I'm left. I'm squashing I'm squashing my Rhombus, and I have two holes with D as a boundary and now you have to glue the two holes And now it's a little movie tick tick tick when you glue let me show you that when you can deform your surface and Glue them like this and that's where you get the second handle and the pretzel, okay? Okay, and your Trajectories here will actually be a line the in by infinite trajectory will be a by infinite line on this Genius to surface it will be a trajectory of some flow as we will see now Okay, so let's generalize this So let me let me give you so take a Polygon and maybe take even a collection of polygons. I will stick to one But you can take more than one a collection of Polygon polygons I write it with one but you can take two three But your polygon has to have the following property such that For every side for every e for edge side of P There exists another side e prime of the same parallel Parallel to e and of the same length So this is what we had for the octagon. So we had each side has a parallel side of same length and And in addition actually you want them. I will not write formally this but you want So this is good if you have a side like this with that Which is to the right of your polygon and a side which is to the left of your polygon. This is okay This is e prime, but you don't want You can have a polygon which has I don't know two sides like this This is no you don't want this you want them with with on opposite sides of the of the of your polygon You can say this by orienting your polygon and then you want the boundary to have let's see Opposite orientation same only I mean, okay, the picture is so you want them to Okay, and now you want to so glue glue pairs e e prime by using The unique translation Like we did from the top from the octagon the unique translation in R2 Which maps e2 e prime. Okay, I just to I identified them by a translation and Maybe let me call it like this s. I'm going to call it P Module of tilde where this tilde is just the gluing of the sides P is equal to the tilde is a surface and Actually, it's what is called the translation surface I will tell you in a second a more formal definition, but let me say it's a translation surface say translation, it's a surface and it's a translation surface because They say gluings are made by translations. So this reminds you that doings are by translations and Let me add or not give you any another example You can for example take four sides, whichever vectors you want Let's call them a b C and e I'm going to make a non-regular octagon with pairs of glue So draw your favorite four vectors like this and then say that we repeat them in the opposite order So this is a B this is You have to make them parallel C and of course my picture is not good, but it will close out if you take four vectors the sum of four vector will be So well b see Yes, a is maybe too big. Sorry. What am I saying?  I want my gluing to give me some piece of a plane That's what Okay. Okay. Okay. Okay. You just want this arrow here. Yes. Yes, absolutely. You repeat the same. Yeah, that's what you Oh, thank you. Let me clarify. I haven't understood the question Thank you. I thought it was about this gluing here, but yes Okay, so this is again. It's a surface of genus, too But it's a different Okay, let me say let me make some Let me make some remarks or maybe some facts so first of all We say that so so if P1 and P2 if you have two polygons which can be obtained Can be obtained From each other By cutting and pasting I will give you an example in a second by cutting and pasting by translations Let me give you an example that you already know Say that your first polygon is P1. It's a square and your second polygon is the parallelogram P2 is 1 1 0 1 of the square Okay, so I imagine these two polygons P1 and P2 Each with opposite sides identified You'll see that you can cut and paste one into the other. So if I take If I take this side I can if I take this triangle I can cut it cut it along here and Move the triangle here by using the gluing by translation I can identify this diagonal with that diagonal and I get exactly the same polygon P1 so if two polygons differ by cutting and pasting where I move things by translations in the plane then I Claim that the I get actually the same surface The glue if I glue opposite sides, I will get a surface I cannot distinguish from which I came from I get exactly the same translation surface And Then so I don't only get actually a surface what I really get when I glue a polygon It's more than a surface. I get a surface with an Euclidean locally Euclidean structure I get the surface which looks like the plane in almost all neighborhoods of points so So to This take is that as I'm going to give you in a second the definition of translation surface But this is kind of you can make a definition by polygons. We're taking this as an axiom and two is as is locally Euclidean Or it's flat locally Euclidean So it has a flat metric Euclidean metric outside outside outside vertices Versations of P and what do I mean by these? So if I take a point in the interior You all see that it has a neighborhood which is a piece of a plane This is a Euclidean neighborhood But and if I take a point on C Which is also here You can also find a very nice Euclidean neighborhood. These two things are Identified and when I glue my edges, I see a piece of a plane Okay, so everything is like every neighborhood on my surface every point in my surface unless I pick a vertex Has a nice Euclidean neighborhood. You can kind of build the surface by gluing pieces of paper Okay, and the consequence of this and the gluing by translations. It's also that There is a well-defined notion of Direction of direction tita tita. Well, there is a well-defined notion of direction tita So if I kind of go out here, I know when I come back Sorry, I know what does it mean to move in direction tita moving in direction tita is well-defined. So I can define There is a flow a Flow which I'm going to call feet t tita which moves At unit speed Along lines in direction tita in direction tita and this is called the linear flow or directional linear flow of Translation surface s Okay So this is what I was plotting for the octagon before Okay, I don't want to do anything. I don't want to write at the board anything more than that I really want you to think you have a yes sorry Luckily Euclidean means that me I have neighbor of goods which are really like pieces of plane Okay, let me let me read it if I say it now So I don't know so I'm very happy for you to think I have a polygon with opposite sides of equal lengths and parallel glued together Okay, so how many know the definition of a manifold in general with charts and transition with charts Okay, quite Many so let me just tell you I have one extra slide So, oh, sorry. Sorry. Sorry. This was a before I do that I had one example of two polygons which give the same and This other there is another example of two polygons Which are the same this octagon and that octagon can be cut it and pasting into each other by translation This is this puzzle magic that each discovered So if I glue this regular octagon or if I glue the sheared octagon by opposite sides I get the same surface the same translation surface Okay, that was my second example here for fact one, okay, so This is more formal definition So a translation surface is the closed dimension to manifold. It's a surface With a locally Euclidean structure outside finitely many points So what does it mean each point has a neighborhood isomorphic to our two and the changing of coordinates before? Neighborhoods are translations so you can write charts in our to and when you have you have to pass to one charge to another If you've seen the definition of manifold, you know that there are transition maps between charts This transition maps are translations over to that's a formal definition But this definition is not complete. Okay, this was my nice neighborhood. This was my Other nice neighborhood. The problem is I don't know what happens at this vertex So in the octagon you can check that all Vertices actually correspond to a unique point in the manifold in the surface I'm the one to spend time on this because I'm not gonna use it, but I'm telling you for culture So this in all the vertices are actually a unique point on the surface and this point doesn't have a nuclear neighborhood it has a strange neighborhood, which is called Conical angle singularity so it's and instead of having to pie around it this blue point has actually I think in this case, it's Six pie angle so a bit before closing up. I need to go three times around myself so if you want to flat model of this point on the surface it looks like Something like this where you have an excess of angle instead of having a piece of a plane You have to take six pine of planes and bend them around to close them up So that's a picture of a conical singularity. So the formal definition. It's a Surface where transitions of between charts are translations and finally many singularities look like this and And Also, I wanted to say this linear flow this going in a straight line. It's well defined Everywhere, but if you hit the vertex. So if you hit the vertex, I told you stop Why because if these points are all the same all these lines actually Enter these vertex. So, you know in a normal point I have one way to go out and one way to come in in direction theta Here you have many ways to enter this point And if you want to extend this linear flow on these singularities, you have to put saddles So what you the linear flow looks like it's a flaw with saddle points on the surface And that's reminiscent if you know about oil a carat if you know about Gauss-Bonne You cannot have a flaw without fixed points on a surface of genus, too You need to have some fixed points Okay, so this was a digression if you go lost Let's stick to polygons and maybe I think Amy had told me correctly How do you know if I just give you a polygon? What's the genus of the surface is? I will tell you Euler magic formula Euler magic formula. So if I take the number of faces Number of faces in my part if I have one polygon I have one face And I in the case a number of polygons if you want a number of polygons remove the number of edges the number of pairs of edges pairs of edges which are glued to each other and add the number of vertices But be careful the number the vertices vertices after gluing So in the case of the octagon it looks like there are eight vertices But you can kind of convince yourself that this vertex is the same than this vertex using the identification of A But D is actually the same than D. So it's also the same than these So you can convince yourself that actually all these points are glued to a unique point but if you compute number of polygons minus Number of pairs of edges plus number of vertices after Identifications this give you 2 minus 2g where G is the genus the number of handles in your surface So I don't know maybe I do have to check if it's right. Maybe I shouldn't check 1 minus 4 plus 1 It's right 2 minus. I should get genus 2 Okay, let me not check Okay Okay, so you there is a way maybe I'll give you an exercise. There is a way to compute I don't know the genus of your surface from the polygon. Okay Okay, so now I want to say Okay, so it was very special maybe I will skip something So it was very special to have if I take a random Oh, okay, maybe I'm sorry more if you want to know more about Surfaces I can give you some references The square and the octagon because they were regular but really because they are special had something very special. So they had They had some linear or a fine maps of the surface into itself so We saw this for so for the torus So if I take the matrix 1 1 0 1 and I apply to the torus You see I get this parallelogram But this parallelogram I can cut and paste it back to the square So I get a map of the square to the square exactly like the cut map This is a special case like the cut map in the cut map that Amy did very carefully in the first lecture If I apply an integer matrix to my square I can have a map from the square to the square by going using mod 1 mod z2 by Identifying by integers and this map you can think of it as an automorphism of the torus so there is a map from the torus to the torus which is linear it's actually smooth and it likes very much so and Actually, you also have this special affine map from the octagon surface to the octagon surface So if I take the octagon I share it by this special matrix The resulting octagon gives me the same surface. I can chop it back to the octagon So I have a map Diffuse from the octagon surface to the octagon surface, which is linear locally linear It's actually not smooth. Oh, I will not discuss the singularities, but okay And this is very special and just for your own curiosity These surfaces are called which surfaces the surfaces which have a lot of affine Diffuse which are rich of affine diffuse are called which surfaces and Reach means this is all digression Reach means that there are enough diffuse so that the linear parts generate a lattice in a cell to war so this Special this this if I draw a polygon at random like this it will not have a nice affine diffuse and People in the field of studying translation surfaces and in tech Muller dynamics have spent a lot of time trying to find Polygons, which are so special that they have a lot of affine diffuse and just slide only wanted to To to to have like a give you a taste of modern very current research So this is special surfaces are special dynamically for example for the torus or for the rotation we saw that trajectories of a rotation are either periodic or dense and uniformly distributed and This is a property which is quite rare in dynamics. Usually you have cases where there are trajectories, which are neither dense nor Periodic and all these special surfaces with lots of affine diffuse have this very strong dichotomy like in vile theorem Yes Yes, so prove it now. Yes. I actually can I have a very nice picture But it's sort of billiard, but I can I can show you a picture of a trajectory Which is not you can see that is dense I will show it tomorrow maybe and I cannot build it regularly, but yeah, but so okay So and I just said I mean this is like it's just fun. So you can actually You people have been listing so all all the surfaces which are special the square is special regular polygons Is special which discovered it and then there are some new families of special Surfaces and boom all their surfaces are others there are and people like Kurt McMullen and Alice Eskin Alex right so many people who are Big names in in like Muller dynamics are trying to discover new polygons, which have lots of affine diffuse So having a fine diffuse is rare and people study and search for this very special needle can you say needle in a In a haystack You're looking for this needle in a haystack and there's lots of research on this which is quite deep very deep And I'll give you one more example, which is beyond octagon because I promise to tell you what we did with the rena So this is another it's a collection of polygons This is one and this is another and you can glue them Following numbers one with one two with two and I told you you can get a surface by gluing not one by many Collection of polygons. So this is one surface and this is another surface and These are called boom all their surfaces They are surfaces which are glued out of Semi-regular polygons polygons where sites have two types and some rotational symmetry and okay so just keep this and this boom all their surfaces also have a fine Diffuse I have maps so they're very special and for those with with Iran and Diana Davis We we did the same thing that we did for octagon and and square So you can look at linear trajectories of this linear flow and try to characterize cutting sequences through geometric randomization and Okay, I'll just put it here because I wanted to advertise also Iran is what you can characterize these cutting sequences very With with the substitutions. There are substitutions and you can you can build the substitutions and build these sequences with substitution Okay, this was my digression Okay, and Okay, so now I just want I'm almost over but let me do one more picture before What did I start? I think I have out of time So let me just say one thing. I'll show you one picture and then I stop So what do we do when we don't have so maybe let me make this remark so typical or Random, maybe say if you pick at random your random Translations surfaces cannot be don't have Don't cannot be Normalized geometrically can can't be renormalized geometrically by renormalized Geometrically Maybe this is a line by a fine diffuse by a fine diffuse So what will we do tomorrow? So at this point tomorrow, so we will go to Poincaré maps Go to the Poincaré map to Poincaré map of the floor and I just put on this last slide The Poincaré map I put on I will explain this tomorrow. We start from here tomorrow. The Poincaré map will be Interval exchange transformation This is like interval exchange map We will we saw it briefly last week But we will do it carefully tomorrow. We'll define interval exchanges tomorrow and we will go to interval exchange And then we will define a renormalization combinatorial if you want a renormalization algorithm for it is and Okay, and and this is what you do when you don't have you can this renormalization is kind of a very powerful Tool for proving dynamic are results about these flows and these interval exchanges. Okay. Thanks


Some instructors find it really challenging to move into an online environment because they have not had experience of taking courses as students in an online space. Online learning is very fun, it's nothing to be scared of and it really impacts your face-to-face teaching in a very positive way. When we consider what the benefits are, one of the things that comes to my mind first is the opportunity for faculty members to really take time to rethink their design concepts, principles and the underpinnings of their course overall. As someone who's taught for a long time, having to rethink what I offer in terms of my courses has been a real beneficial process for me. Rather than showing up in a classroom with PowerPoint slides and having a conversation, I've really had to think hard about what's important for students to take away from my classes. I think it's helped me organize the material in a stronger manner and I think the thinking about learning outcomes, learning objectives and learning outcomes has been really beneficial in terms of strengthening courses that I've offered previously in the classroom. For instructors, they can prepare materials, they can include all different images and really be very tight and controlled on what they're presenting to students in that environment. They don't have to rely on how they're feeling that day. And for faculty who are interested in teaching online, it provides us opportunity to explore and to learn and to facilitate in a new environment that depending on one's approach to that environment can be a very rewarding experience. One of the advantages to being able to teach online from you as an instructor is that I can provide content that they can't otherwise easily see. So it might be a video, it might be a software demonstration, I can put together some material in exactly the way that I want them to see it and I'm knowing that they can watch it several times if they need to. I can free up time during my lecture knowing that, okay, I don't have to do this demonstration now, I can do it later. The benefits in my experience of teaching a class in a blended environment are very specific to the fact that I'm teaching them material that is about being online. That theater criticism, at the moment all arts criticism, is shifting to being delivered mostly online rather than in print. So it makes a heck of a lot of sense to have some kind of outputs of the course coming out in an online format. One of the challenges is to make sure that students are meaningfully engaged. How do you prepare learning experiences that are meaningful for them? Perceived challenges are probably greater than real challenges, at least when you're a beginner. I think that many instructors at the university level don't have a lot of experience or a lot of training for using electronic formats for teaching or online formats. So that becomes a pretty big challenge to develop the technology, just developing the workflows and developing the strategies of even videotaping something. Instructors really are very enthusiastic about what they're teaching and sometimes they see this as an opportunity to just present more stuff. So working with people, we're always trying to make them aware that you can't... This isn't doubling the course or making it one and a half times what it was before. What you want to do is you want to make it the same amount of work for the students and you want to use both environments in the best way to do the same amount of coursework that you would have maybe offered in a face-to-face course. So getting them to think very critically about what content needs to be there and which pieces are being done in which environment and making them all interact together properly without it becoming just a much bigger learning experience for the students. There are a couple of challenges to online courses, I think from an instructor's perspective. Preparation is very different, it's very intensive, it's a much longer process than organizing and preparing a classroom-based class. I think also as an instructor, we teach because we like our students and we like to get to know them and that's part of our professional development as well. So it is harder to get to know the students. I'm quite sure that many of us became educators because we really enjoy the student interaction. Whether it's in the lecture environment, whether it's one-on-one, whether it's the huddle after lecture is, I love that. I love that interaction, I love the back and forth. I love the light bulb moments and seeing the light bulb moments when they happen. So all online instructors have to leave that, I don't know, leave that behind is the right word, but certainly you're not going to experience it in the same way. The other big thing I think is that it's a huge challenge in online learning is the idea of community because I think any group of people that sits together to learn interaction and creating relationships with each other and bouncing ideas off each other and so on are a huge part of building a community. And so that is more difficult to achieve in an online setting because you're simply not face-to-face, you're not reading each other, each other's gestures, facial expressions and things like that. It's getting them past that feeling that they won't have the kind of engagement in teaching that they would normally have. And it's true, you know, I don't know students, I know student email addresses. It happens to me quite a bit. I hear in town, I'll go to a coffee shop. This happened to me a handful of times where I've ordered something and the person says, hey, are you Professor Skidmore? I said, yeah, yeah, who are you? I took your German 272 and I recognized your voice because I listened to all these prof comments. And I think, oh yeah, that's great, you know, and I feel like a star. But it's kind of goofy. But the thing is, I notice they're still engagement there. If that student has recognized me and then is willing to talk to me, clearly they've been engaged in that course. They've connected with it in a way, not the same way as we do face-to-face, but they've still connected. And there is that engagement. So that kind of gives me hope that this obstacle or this challenge of engagement can be met.


It was late into the summer and I had accepted a job a few states away from my home. The job was that my friend needed help with a new construction project and I was more than willing to oblige seeing as he was promising good pay to do it. I was driving down the road for about three hours when I realized that I was lost. This wasn't the ideal situation, seeing as how not only was I going to be late getting to my friend's place, but I was also running out of gas. And that's when I saw something. In the distance, I could see buildings. It was strange, I didn't see a sign for anything for at least 10 miles back, but as I gained up on it, I could see that it was a whole town. Not a big one, mind you, but towns still had gas stations and it was starting to get pretty late. As I drove into the town, I could see some of the townsfolk stare at my car going by. I could tell they weren't expecting me or any visitors. I see some gas pumps and pull up by one of them and get out of my car. And that's when I was greeted by an older man. Hello there, son. He said with a friendly attitude. Hello. Um, I need some gas in my car and is there a place I can stay the night around here? I didn't want to keep my friend waiting, but it was getting dark and I didn't want to drive tired besides I still needed directions. Well, son, there's a motel right across from town hall. You'll find a map there that'll get you where you're going. The man finished pumping gas into my car and I paid him. I was about to thank him for his hospitality when he gave me a solemn look. Look, son, we don't mind visitors around here, but tonight is a festival and it's for locals only. Just stay in your motel room between 12am and sunrise and you'll be Jim Dandy. I acknowledged what he said and then began to drive off in the direction of the motel. It was a strange town, no mentioning of it on any map, and I'm pretty sure the town didn't even have a name. Of course, if it did, I already willingly forgot it. Just like everything else I try to forget about that wretched place. Driving around town, I couldn't help but notice something strange. Most small towns have churches on almost every corner. I assumed this was a traditional place and would be no exception, but I was wrong. There wasn't a single house of worship of any kind to be seen anywhere. I shrugged it off and pulled into the motel. The receptionist greeted me kindly. Welcome to the Black Tallow Inn, sir. It will be ten dollars for a room. The motel lobby, like the rest of the town, felt dated. The whole room seemed like it was straight out of the thirties, with a record player playing oldies music and old patterned furniture. I made my way up to my room and it was humid. I cracked open a window. Surprise there wasn't even any kind of air conditioning, just how outdated was this town anyway. I looked around the room and I noticed something when I opened the drawers. Maybe it was a coincidence, but no Bible. This place seemed like something out of a ghost story. I was half expecting to go out at 12am and see all the other townsfolk as ghosts. That would have been much easier to deal with than what I did see. Nighttime rolled around and the time on my watch read 11.55pm when I looked out the window to see the townsfolk walking off to a destination. Yes, I know I was told to wait in my room until sunrise, but it was so humid. And there was nothing else to do, besides satiate my curiosity, so when I felt like no one was following me, I went outside, got in my car, and I drove off in the same direction they went, trying not to be seen. When I arrived at the destination, I lagged behind to see that only a few people had cars and the others walked. Knowing this, my car would make me stand out, so I left it behind and walked the rest of the short distance. I was careful that no one saw me, for fear that there would be some type of punishment. And that's when I saw a large rock overseeing the cliffs below where the town's people were gathering. They all walked down some stairs carved into the side of a cliff until they were on the beach below gathering around the sea. I got under the rock by the cliff to get a bird's eye view while still staying out of sight. I could see the ocean, the town's people, and the sky. And that's when I noticed the sky was different. There were more stars. There were of different assortments and colors. The town's folk had no flashlight or torches, but the sky illuminated everything. That's when below, I saw a man who I assumed was the mayor of the town, stand in front of the crowd, ready to give a speech. He then gave the speech in a language I didn't understand. There wasn't even another language to compare it to. That's when the others joined in, beginning to chant something in unison. When the chanting stopped, a roar tore through the sky and the stars above began to spin and shift like a planetarium dome. That's when it emerged from the waters. I say it because whatever it was cannot be described by words. My brain couldn't process any of it. Its shape and color were unlike anything I'd ever seen. I wanted to say this was a dream, but there's no way my brain could make something like the Leviathan before me. Just looking at it triggered the same response one's brain has when trying to imagine death or loss of conscious awareness. My mind screamed and rebelled against seeing the monster. My eyes stung like someone had thrown garlic powder in them. To avoid looking at the abomination any further, I looked down at the cultist and the sight was not much better. And that's when the monster did the unforgivable. And it spoke. The way it spoke insulted every sense of my body except my hearing. It felt like I could drift to sleep hearing the reverberating echoes of its whispers, which seemed to be everywhere at once. I couldn't stop listening, but my body felt like it was burning. And then the monster stopped speaking. And I looked down at the beach like I was a young child. And I watched the old man from the gas pumps and two young adult men and women as they marched into the ocean disappearing into the currents. That's when the creature spoke again, but only for a moment. And I looked down to see the townspeople staring up at me. Then they began to make their way up the stairs. It was time to leave.  I ran faster than I ever thought possible and I was in my car before I knew it.  I got to my friend's place about two hours later and he told me I looked terrible. I tried to explain the situation to him, but he just looked confused. Yeah, there's no town around here. It's this one and then the city five hours away. How could there be no town, I thought to myself. I'm writing this because it's the only way I can. I try to talk about that night, the cultist and the monster, but all my words recollecting it fail and stutter. I tried writing down a description for it, but the paper just shrivels and rots. Whatever that thing was, it was something that doesn't belong in this reality or maybe any reality for that matter. Even as my mind tries to recollect it, I can feel its horrifically beautiful image slowly sinking into shadow and obscurity. Writing on this post seems to be the only method that's worked. So you have to believe me when I say that there are things that don't belong in this world and if you value your sanity, you'd do well. To not seek them out.


what you resist gets stronger, what you accept gets weaker and what you surrender to can become the reason for your transformation. So today what you need to stop resisting start accepting and begin to surrender to to get you unstuck and help you move forward. Love you guys, cheers!


Now the lawmaker representing Obama-Shon-North state constituency near your state House of Assembly, Olaomi Oladeji, has expressed worry over the recent rejection of some amendment bills on martyrs concerning women by the National Assembly, saying that the rejection was unacceptable. She however stated that women will not be intimidated by the actions of the National Assembly. We will not relent on our whores. We will keep pushing. One day we will get there. So, and if you look at the number of women in politics, we are more than men. So we should stop following men. We should really run ourselves by doing that. We have enough number at the National Assembly, both the upper and lower houses, also at the state assembly. Without we will be able to fight for ourselves.


Everyone, Basel Chapman here on the 8th day of September, Wednesday, and we're looking at the Dow. This is the Tiger Financial News Network, 10am market update. We're looking at the Dow at $35,139, up 43, and that's 144, up 44 points. Having arched over, I do see a chance here that that 9 could finally go under the 14 period exponential moving average as we arch over in the pattern that I call the dreaded age. I'll talk about that when I do my show, the Tiger Technicians Hour, in a few minutes. But there should be some kind of a balance. I had a Chapman wave reading yesterday of a very low trend gauge, and that suggests that the Dow should go negative before it starts to go positive. It's exactly what it's done. Some nice buying coming in here. We're looking at the S&P, and we've got the S&P at this particular point, still down just a fraction, down 18 cents at $45.19. We're looking, I'm still going to call this a PXC, a G slash C. We'll talk about that in my show. In the meantime, it's holding quite nicely. In this particular case, the 9 period moving average as well, above the 14 period moving average, that's a good sign, solid egg D in the weekly chart. Hey, we're going to go to the QQQ in the X100 trading down 98 cents at 381.14. This is interesting because the SMHs, semiconductors, are down three and a half points at 269. We're watching these two things very closely together with the XLK, which is the S&P Select spider fund, down 54 cents at 158.85. All of them are really close to all-time highs, taking a little digestive action right here. We're going to be following that closely. Let's go to the IWM, which is the Russell 2000 IWM is trading down 52 cents at 225.85. This is quite a sharp pullback, but the week is young. Let's put it that way. Hey, the TLT, this is going to be important. The TLT dropped sharply, and now it's trying to come back. It's up 54 cents at 147.49. The 147s, it means yields are actually pushing higher. This week in yields is going to be very important. I just want to show you a gold. Gold took a bit of a dive yesterday, more than a bit of a dive. Today, it's down 10 points at 17.88. What I said to subscribe is some opening corners. To watch Bitcoin, it made a leg D yesterday. Is it going to make a peak D? There we go. We'll talk about that in the tiger fish tower coming up in a few moments' time. Hope you can stay. Otherwise, tomorrow, you'll pick up over a few days.


So we started right? Actually, it's hard to talk with audience when you cannot see audience, but well, I will try I guess I'm doing it first time with like When audience inside is less than audience outside But anyway, so I'm Yuri. I am from SP digital. This is part of SP group We're doing some digitalization things for SP group and I will speak today about our transition our migration from salt stack to puppet and why we did this What we learned that why? Well, what to do what do not do and things like that and then I will say a bit about what's Next step after we will finish this migration So in first words migration is not finished yet. It's in progress. So We are still like maybe 40% done but anyway So What's the scale of our organization? We have about hundred developers and We have a lot of products. So our developers split into product teams and So We as a info team actually doing Kind of platform for our developers for product teams So this is usually persistence layer databases all the stuff which is common for everyone and And Yeah, we are just six persons and we are running right now about 200 VMs in Azure cloud We have on-prem part as well, but I will not talk about this part here in this talk because it's it's complicated So Yeah, usual question when you see the topic who what's wrong with salt I guess someone using salt here No Someone using puppet here someone monitoring YouTube channel for comments Okay, so let me know if there will be any question in the flow Okay, so what's wrong with salt first thing actually when I joined the company I Started to use salt first time. I had some background with Ansible and puppet already and it was like first meeting with salt So it was a bit hard for me like I hit heart into this So main When I will explain what's wrong with salt or why why I prefer puppet I will explain it from point of view of team So this is team white Meaning so why it's good for team or why it's bad for team because if you are just alone Doing things you will just use what you like, but if we are working in a team you need to take care about the team so yeah First thing is I feel it inconsistent. It doesn't mean it's inconsistent in terms of managing virtual machines so if it's applied state or applied some Something on your show machine it will be applied there. So it's consistent, but I'm talking about different inconsistency when you know when you Doing similar things in different modules at different states and they Behaved in a different way and they have different names so in some state you you can see like The names like install it and or present in another model you can see similar things name it differently and This is like you so you need to keep a lot of Names a lot of context in your head when you reach in something and when we debugging it so then It's actually Error prone so For example, you can do mistype like do a typo in and write require instead of requires and You will never know about that The only way to know that is apply and see that the actual Steps sold it. They are different one from what you expected and There is no way to see that and actually yeah, I tap it a bit earlier, but anyway, so it's hard to debug because Diagnostic messages are about nothing like hey, there is some error. I cannot compile Dataset for example, I So it's really hard to understand what happens and where is the error It's even worse when you write a lot just before and then you're trying to apply it first time and you see that Hey, there is error in somewhere Then it's YAML. Well YAML is good and the bet at the same time It's good because it's easy to write and More or less easy to read Yeah, it actually is more or less easy to write as well because you can hit anything like no Which is false and you never know about that until you hit into that But when you're reading YAML every day like hundred Few hundred lines of YAML every day and debugging it. So even you're using it as a Language like programming language. I feel it's wrong. So it's not programming language. It's it's declarative Configuration language is different. So I guess YAML is a bit overhyped and people already started to mention that so next This is actually most critical part I'd say Because I am okay with ginger in Ansible because they did it in more or less okay way But sold it in a really wrong way. They apply it YAML They apply a ginger on top of YAML. So they're generating YAML by ginger Actually and so if you need some iterations like you need for loop or some to do something or you need some conditions you need to write ginger and This ginger will like between those ginger block you will write YAML It's okay if you're writing just I don't know a single state for hundred lines But if you have thousand clients and complex logic there I'd say good luck with debugging that Because it's it's hella hard So and next which is actually Because of previous one so you cannot lint it because to lint it You need to do parsing of ginger. So you need to write core of salt to do the lint Which is again, it's insane Firstly Initially, I wrote this because this this was my impression So I spent few days trying to find some unit testing for salt I didn't found But recently I just mentioned there is salt check It just happens incidentally. I saw it somewhere and then I realized it. It was three years ago Already, but nobody know about that. It seems or I didn't found it in Google at least I Checked get history yesterday, and yeah, it's from 2017 there. I don't know why why it's was so Hard to find it Okay, so this is my impression from salt why I don't like it from team view perspective So why puppet again from team view perspective? Yeah, this is actually what what I will talk about today, but seriously First of This is actually same with salt, right salt heif agent puppet heif agent. So it's more or less same I will not keep here more time. So then It use the main specific language. So this language actually specially designed for task area So it's not YAML. So you can write meaningful constructions meaningful things in meaningful language, and it's declarative And actually I did mention it here. It's uh, I Can say it's functional language. So it's immutable. You cannot change things incidentally Which is really good. So yeah, you need to take care about that You need to write a maybe a bit more, but you cannot just accidentally change some parameter somewhere and it will affect everything so then There is built-in support for syntax check. There is support for LinkedIn. There is support for Style checking so you can keep your repository your puppet code in well In good form in good condition Which is really good when you're working in a team because team usually have different like every teammate has different vision of style and Whatever else. So you need to somehow take care about that with puppet You can just put LinkedIn with correction right in your OECD pipeline and you will have no issues with that Then you can use a spec the usual tool for Ruby world and people usually know a bit at least about that and it's really powerful and Then you can use a respect which is really similar to respect to do a certain tests So this world is really really good tied together Then there is Hyera, which is so if you're not familiar with puppet I can say this is kind of Mine in salt or this is kind of variables. Actually, I almost forgot. Yes, but yes, it was variables so single database of say things which you will apply to your actual code actual statements and this is hierarchical database I will spend some time later on this and Good to think there is parameters out to look up, but I will explain it a bit later as well and then It's written in Ruby So you can use anything which is done in Ruby world The whole Ruby ecosystem, which is actually really great. I entered that world really late Just maybe a year or two ago and I still think it's really nice because it's it's very very well designed So next question is why we decided to go with open source puppet Why we didn't get puppet enterprise that good question and The answer is actually simple because we can I Seen no real reason. Well, I'm okay to pay money for good thing. It's it's okay But I don't like to pay money for things which actually limiting you so and I don't like having a graphical user interface Because this is actually making you well usually not you but someone might decide to okay I have graphical interface so I can just do anything there and Nobody know what actually happens after like they changed some parameters and there is no code behind that So I'd prefer to put everything into a git repo and then I have I have audits because I Can see transactions there. I have everything there. I have visibility So for me as a for developer for old school sees admin even it's still better. I don't like changing things directly So that's why We did that But maybe we'll change our me Our decision later, but because of puppet remediate or things like that or puppet CIS compliance So it still can be changed Yeah, so but Usually people complaints when you're talking about puppet People will say hey, it's hard to use. It's hard to learn. It's complicated. I don't like it I will just run Ansible. I write 100 lines of YAML and it's okay Yeah, if you manage it, I don't know 10 virtual machines and you're just doing it once like after deployment Right. Yeah, it's okay. Just few sensible just our puppet bolt. They doing similar things But if you manage in 100 VMs or more or thousand servers like with it in Lazada in pre Ali Baba Lazada You will see that Appliance states every time from set of servers like that pushing model Actually do not work well in that in that situation because every time you will see that this ever cannot be connected via SSH Because of network drop or something happens or something else or you will forget to apply the changes if you're doing it manually so you changed your states and apply it to subset of servers which you actually For which those changes was intended and Then you forgot about the rest and then you change something else Then you go to new server applied there and see it doesn't work anymore So I prefer if you just push it to get and then magic happens and your changes are applied across the fleet So you don't need to care about every single server Yeah, and yes about second case I'm actually pretty agree with that development is getting slower because you start into right unit tests This is the main reason of that I'm spending maybe 50 50 percent of times like reading manifest reading I'm not doing the test drive and development I'm usually reading code and before then reading test for it then during the reading test you realize that well I Did something wrong and you change in code you update in test So it does duration actually take time, but after that Yeah, it's saying 90% your code will work more or less okay So you will not hit into big issues at least you check in the logic before it hit production So you're not debugging it in production like it doing like you're doing it with salt or encebel maybe But yeah, you can write unit test for encebel as well And now I can say that you can write it for salt. So please do if you are using it So I don't know maybe audience have different have heard something else about puppet Why it's hard to use or why don't they don't like it? So I'd like to know about that so I can maybe Mention something about that during my talk so Please gather some Something if people will mention So we have an invitation from the speaker for Their own experiences with puppets specifically what's good or you're asking about puppet Yeah, why why people do not choose pop or why they don't like puppet maybe because I'm a bit biased I really like it because I saw really nice installation of puppet in Lazada So I understand how it works and why it's a good for big team for big distributed team even So well anyway, so if something happens, let me know Okay, I will continue them So now I will start talking about puppet and The main slide of this talk I'd say puppet is about the state this This is all you should know before you starting to use puppet actually so when you write your code and Some manifest so called it manifest it will push it to so then you need to deploy it to puppet master and puppet master will compile it So yeah, it's compilation. It's not like Interpreting this step-by-step so it will compile it into catalog Which is entity holding all the States so this is definition of desired state to which you want to bring your system and Then when agent come from not agent asking for catalog for this node and Then apply the changes according to the catalog for this node so agent actually executing some Ruby providers Passing them catalog and those Ruby providers change your your system to be in this state. So you don't need to Yeah So it's not sequence of steps how to bring system to this step so to this state It's actually it is the state So you don't need to care about steps how to bring it like Inensible or so to usually you can see that people are writing steps like download this file Then execute some command then do this do that install this package. So this You can consider this as state as well as long as you are caring about Immutability so when you so if you apply to gain It will be in the same state here. You don't need to care about that more or less Well, you can hack it but usually you don't need So you define in the state from the beginning Okay So but this actually give you some there are some drawbacks this So you cannot easily Rename or move file if you are not managing it So if you want to change to rename some file on some virtual machine, you cannot do that from your puppet code Because there is no state for this. It's not state is change its transition And then you cannot read file from Agent from node and then make decision on your in your court on puppet server because your puppet server have no idea Well, it have idea, but I will speak about that a bit later But you cannot just read file from that then You cannot just execute some binary and do something depending on on the result of this that then binary call When it happens or your agent because again your master your puppet master have no idea about what happens on agent It is different way But you can see stars here, which actually means that Well, there are some ways to do thing and the easiest way is to use facts So if you want to read file you can create Fact which containing contents of this file, but it may hit you hard after so be careful about that then Again, this means that you need to care about things like when you're changing state when you're doing transition of state Like you cannot just remove rename file So if you had some file before and then you decided to rename it You need to remove old one and then you need to create new one So it can be just next line in your manifest But anyway, you need to take care about previous file Nobody will remove it for you Yeah, and usually after you remove something and you think okay, it's already applied, right? I can remove it and Doesn't mean that it's already applied because some virtual machine may be down in that during that period or they may maybe some work drop in so some Catalog maybe not appears yet on some subset of your servers. So in Lazada, we decided to keep it for one month in speed digital I'd say well we have small fleet so for us I guess one day or seven days should be okay because we are running puppet every 13 minutes. I guess nothing should stay down for more than one one day or Seven days at least then Yeah, this is another thing which Which good to know before you're starting to do things So if you need to do changes on different nodes in specific order, you cannot do it easily with puppet Because usually puppets is puppet agent is running once per Period like once per 30 minutes by default or once per hour how you set it and There is no synchronization between different agents between different nodes So you need to take care about that if you need this or maybe you prefer to use orchestration for this I Will say about that a bit later So we can return to this Okay, so then I will explain how we are going to use it and how we are using it Yeah, so this actually again, there's another main slide of this talk So if you are going to use it use it in this way, so you please use git please use your any CICD Software you like we are using Jenkins and github enterprise But before in was other way using git lab and get lab actually quite I'd say I miss it now because it was really easy to use and you have git repository and CICD in the same box, so just Just out of the box. Okay, so Then I Short and I saw actually people just reading manifested right on puppet server right in environment directory Without any version control without anything It works, but it works for some short time after some short time We will hit into some issues because it's hard to manage and it's hard to check I prefer I'd say please start with control repo from from the beginning make it This is actually git repository when everything you write through sites all your manifest and There is your higher data and there is your test and maybe something else some useful scrapes or whatever else so This is definition of that When you're starting it's really nice to have some example and there are three Links to useful examples first one is puppet labs own example But there are no tests at all. So it just pure repo with puppet Skeleton and that's all so there is no irrespect configuration nothing So friend of mine actually my ex colleague from Lazada did another Control repo skillet on which is based on what we had in Lazada It's more or less same as puppet labs one, but there are aspect Helpers already pre-configured so you can just start reading test there and you will have something and there is PSI-CK I know I know sure how to pronounce it right because I don't know those people So they provide some Kind of building blocks for your repo Which you can use but it's very specific So they have their own vision how it should be and that vision actually reflected by this repo But you may find it's suitable for you needs Please read it Then I'd like to speak a bit about roles and profiles so this is how your code organized it in control repo and So role is actually If we are defining some configuration for Layers fleet, we can we can have some roles there Like your server can be positive server or Jenkins master or Jenkins slave, or I don't know Something like Grafana or Prometheus error. This is actually role role of this particular server and Not usually have only one role. So this role doing this thing like this role is Prometheus error but This role is actually Combined from different blocks like if this Prometheus error, for example, and it's running in Docker You need actually Something to set up Prometheus container there something to set up Docker there something to set up virtual machine actually So this those things are called profiles and yet different Again one thing about roles. I miss it is that role have no configuration. It's just definition So when you split in your code shuffling your code between roles and profiles Usually you don't need to configure role. You need to configure profiles It's hard maybe to understand when you did zero Okay It's already Yeah, have a lot to say. Okay. So this is for example examples of Profiles we have like you can see it after Then next question how to attach your role to profile. I mean how to attach actual role and set of profiles to your server you can use Hostname like match by hostname, but please do not do that. Do not encode your metadata into hostname. This is wrong way Then you can base on trusted facts So when you're generating certificate in puppet, you can put some data inside and you cannot change it as it's only way to change it to regenerate Certificate so we are using this way now and then most the flexible way is to write something Which will assign this for you, which is called external not classifier. I Actually didn't so many examples around but I'm pretty sure there is something on GitHub and Then higher can be used as the NC as well then I guess I will skip most part of higher because I'm short of time already and Yeah, so this is just database. So this is configuration you can see after And here is how it's reflected So you do the fan layers of your hierarchy and it's going from top to down So and last one wins. So if you say something specific for your note, you can write it in note specific Then another nice thing about higher is doing parameter lookups for you So if you define class you can specify the values of these parameters of class in higher You're out of time Okay, I heard 40 minutes, right? It's a 30 minute slot. So you're 25 minute talk. Okay. So let me dance already two minutes over. Oh Why I was sure I actually I did it I will do it really faster William is Okay, I need to go a little bit of time take take a few minutes, but please don't take all the math I will skip part but So how about ICD? This is steps you usually need in your CICD next slides will be about What software to use to do that steps first of all there is puppet development kit This is really new and now it's support control repos as well. So this bundle of software Everything you actually need in your puppet development, please check it out and use it Then there is lint syntax checks or speak once I were doing integration test Then puppet litmus doing acceptance tests. So those wrappers actually doing a lot of things So you don't need to care about just please use them and that's all Then this is what you need to deploy. So you don't need to deploy tests. For example on your puppet server Usually I have just this set of things and how to deploy is actually You will see your task is just to bring this code to this particular place on your server and then There is workflow for example like you're doing check out you're changing things pushing it to servers CICD doing branch and deploying it to puppet master as a branch as an as an environment Then you're going to server you can apply it on that server this particular environment And then if it's actually okay, you're just doing usual things like man doing PR and merging it into master Actually import in production. So master branch usually call it production in puppet Yeah, and have fun after So I will skip out about secrets because I have no time, but you can read about that then orchestration there is no orchestration and opens our spuppet, but you can use those tools and We actually decided to go with Korea latest one, which is framework. Actually, it's not solution So you need to write a load there Here are some examples of what you can achieve. It's actually a successor of m-collective That's why the binary call it MCO, but it's changing So you can see and this is really nice thing. You can write playbooks orchestration playbooks in puppet DSL Which means you can use same language for configuring things and for Orchestrating these those things for example here is my playbook doing open CSDB cluster restart And you can refer to it later because I cannot say it's well-documented, but you can at least have some examples Then yeah, this is what I did during migration already and what I'm doing right now You can see that well, it's not yet published what I'm working on up and sourcing it So one day I hope I will be able to share it for free in in GitHub This is where we are going after this is Immutable infrastructure in short words that mean that you are not managing every virtual machine You are managing image of virtual machine like we're doing it with images for Docker and Then you're just recreating your original machine based on that image It sounds really great because you have immutable things, but I have a lot of questions I cannot find answers for So this is set of questions which are open for me, so maybe you can suggest me something here and Thank you. Sorry for like Compressing so much information in small time and if you have any questions you can reach me in Twitter or In LinkedIn or in Telegram chat here Thank you all so much William doing a setup and while he's doing that invited questions from the YouTube channel questions in the room or comments Feel free to ask So you are looking for you I for provisioning or for you I for monitoring Okay Okay, so we are using terraform for provisioning because we are running in the cloud But we have on-prem and when we thinking about going on-prem well It seems we will use terraform there as well because it's way and where but there is Razor Software made by Puppet as well and in open source world. There is Foreman which doing more or less the same and But it's mostly UI and set of things around Actually, everything a set of things around to DHCP and But that does what protocols but you can refer to Foreman and Razor and then for monitoring well, it depends on what you will use we are using Prometheus and Grafana and It's actually Configured by Puppet so just configure it by Puppet and use it. That's it. I think we should move on given the time Thank you very much. Thank you


It blew up and got super popular, and there was markets for it. A lot of the people in Florida were actually sending it to New York because it blew up in New York and got top dollar, and there's rumors that it's been kind of a thing in New York since the 70s. There's always been a high-end clientele of Wall Street brokers, musicians, artists, connected people that were willing to drop big money for haze. As long as I've been a smoker, you could go to New York and find haze. I wonder why that is. It just caught on and never, I don't know. I wonder why Dominican crews picked up on it in New York. I wonder why certain ethnic...