Okay. So good afternoon or good evening. It's night already. So my name is Julien Martins. I'm going to present this part of arcade game for the ZX Spectrum. But this is applicable to any part that you want to do to a micro machine and that you can eventually implement for other systems. Okay. First question. Who played on a ZX Spectrum? Raise your hands. Okay. Who coded in ZX basic? Okay. Who coded in assembly? Okay. Fine. It's going to be painful for some of you that didn't raise your hands. Okay. And by the way, who did program a game? Okay. Cool. So we are going to these topics. I will go one by one. There are several slides for each and we'll go through all of them. Okay. So how do you choose a part? Okay. The first thing you need to decide is what's your target platform. In this case, I chose as a ZX Spectrum 48K. It could be anything else, but this is the one I chose. Then you need to select a game, whatever game fences you. Okay. Probably something you like to play. Then you need to select an origin because that particular game can have been implemented in several other platforms. For some of you, this might feel the other way around. So it should be like 321 and not 123. That's the logic of someone that is going to do a port for profit for something that already exists. For the hobbyists, that's the actual idea because your hobby is about a specific microcomputer, so the order is usually 123. Okay. After you selected this, you have to be sure if it's possible to be done or you can try and you can fail. Okay. Regarding the target platform, you really need to know your platform. This is not just about software. You need to know the architecture of the system, of the machine. Because that plays a really important step in the conversion. So basically, you can throw everything away that you already know about developing a game. Like for example, you might say, okay, I'm going to clear the screen or something like that, and your computer probably doesn't allow you to do that. You have to think differently from what you do on a PC currently. So you have to determine all the hardware limits experimentally. What do you need to do? You need to at least develop a game on the system so that you can get the feel of what it really hurts doing a game for that system. Then you know all the problems you get. By the way, you should develop another game. Why? Because you learn valuable lessons with the first game. So you should develop another game before you do actually try to do a conversion. And what's really difficult is that you really need to know your game. What do I mean by this? There are probably even features in the game. You need to play the game to actually find them. You need to get the feel for it. I mean the game, OK?  So is it a fast game? Is it a slow game? It's a puzzle game. It's an action game, whatever. And very important is also you need to watch others play. Because you have your own vices while playing a game. And sometimes you play with a friend or you see a friend playing and you see different things that you never saw in the game before. So you should watch others play. And you should play with others also. Why? Because they can, for example, let's think about the fighting game, for example. Playing with a different opponent, a human opponent, will give you new insight so how to play, OK? Or a puzzle game in battle mode, for example. So what is game essence? What is important in a game? How well do we know a game? So I bet all of you know this game, right? What's the name? Obviously, right? So do you actually know this game? Do you know the names of the ghosts? Do you know what each ghost actually does in terms of going after you or going to a different pattern to follow you? So you probably don't know everything about this game. So you need to study a little bit more. This is, obviously, Tetris, right? It's written in there with the reverse R. So is this a name that you can say you completely know? Is it completely random? Is that long bar always when you want it? Probably not, right? So as you can see here, there is a different distribution of parts. And is that by mistake? Is that by chance? Or is it a specific designed feature to make the game simpler or harder? So you need to go for that. Anyone knows this game? Puzzle Boba. Yeah. So, or bustle move. That's another commercial name. So what do you know about this game? It's a match tree, right? It has some speed increase eventually. But what are the patterns of the bubbles that you get? Do they have a specific pattern? Is it the same when you play in two players? What's different about it? So you have to start to look at these games and find out what's different about them. Who knows this game? Part time. What's that? It's the boss of the first level, right? There is a way to beat it. And that way is slightly different depending on the implementation of the system where the R-type was actually ported into because they didn't always use the same source code. Okay? So the game that I proposed to port was magical drop two. Who knows the magical drop two? No one? Okay, great. One point for me. So I'm gonna show you three clips for magical drop. It's a puzzle game like puzzle bubble, but it's a match tree game. So you join three colors of the same stuff and you will see it pop, okay? Now, take into attention that the left side is a human player. On the right side is a CPU player, okay? So let's watch that. Have you noticed anything in particular? Yeah, there is an attack pattern when you play fast enough. And did you notice anything else? Let's see the second movie. Do you have a jack? Yes, you can plug it in here on this side. Does it reach? Try it here. No, here, here. No, fine. Here? Yeah, let's do it. Yes, I get 20 more seconds, right? Okay, let me see if I can continue. Okay, so let's see the second video and I'll try to pay attention to what is happening into the sound now that we have a better sound on the left player. This one? Got it? I think sound is not... Oh, you could just use your mic on the speaker. It's actually heading out. Did you notice or were you looking at me? Do I need to repeat it? No, right? Yes? You should pay attention. Okay, so I think I passed one too much. Okay, what did you hear? A guy actually bashing a lot of keys, right? Trying to be really speedy, right? To beat the other character that was exactly the same. Right, so last item, take a look at the computer now. That's not fair, right? He's getting a lot better patterns than me. That's specific to that character. So it's important for us to know our game. So what's the essence of this game? Can you only phrase it in one word? Speed, okay? But we are porting this to as a next spectrum. So we are kind of maybe, okay? So what are we up against? What is our challenge? This is the Neo Geo, the arcade version that I chose. It says all these big chips in there, right? And besides that, this is the mighty spectrum. Doesn't look so mighty when compared to that one, right? And even worse, that thing works with cartridges. And each cartridge adds a few more chips. So you're going on a huge battle, right? So what's the actual specs of the arcade versus the spectrum? The first thing that pops to mind is that we are one CPU less and they are actually using a faster Z80 just for the sound. It's not going to go away very well, right? And the video has problems, right? We have a lot less resolution and a lot less colors. We might not dismay. And so the first thing is that we are going to look at the, someone is ringing me. Okay, this is the architecture, very quick overlook of the architecture of the ZX spectrum. And you have here the PAL video encoder. So to generate the video signal, you have the crystal for the PAL color carrier. Then we have a crystal that is used by the ULI to generate part of the video and it's divided by four to give the clock to the CPU. So here we are at 3.5 megahertz. So we got a big loss in clock cycle, right? It could go to four megahertz, but in the spectrum is at 3.5. So the big problem is that when the CPU wants to access high RAM, those 32K, it can do that exclusively without any problems, without any interference. But when we are generating the video, the ULI will repeat this every 20 milliseconds because it's 50 times a second. And we'll actually have to share the bus, the Dress Bus and the Data Bus with the CPU. But since the ULI is greedy, what it actually does is it stops the CPU on its tracks if it sees an access to the same address. So it's actually doing contention to our CPU. So we are actually losing clock cycles that could be very useful. So we will eventually look like that when the ULI is actually putting the video output. Okay, so if we are going to do a game, can anyone tell me what are the cycles of a game loop, for example? Usually do what? Clear screen, draw screen, and process game logic, right? So the question is, okay, clear screen. Can we draw a full screen buffer per frame 50 times a second? Some guys already hurt. So we have this resolution, right? And you have this pixel buffer size, so the resolution times, divided by eight times 192, that's the number of bytes you have to push every screen to fill it up. And we have the colors, which are a different bank on the side, which has 668 bytes. So in total, that's a big number for us to do every single frame, okay? Now the question is, as I was asking, is this possible? So we have Paul actually doing 50 hertz refresh frame rate. So that means we have 20 milliseconds per frame, and the ULA steals some of it from us, okay? And then we have 70,000 thicks per frame that looks like a lot, but the Z80 uses the minimum instructions, uses four ticks or four clocks per instruction. The fastest copy instruction is an LDI, takes 16 clock cycles. So in fact, we are only left, even when we use the trick of the pop push, not poop, sorry. And requires some more instructions, but copies two bytes. That would actually be very close to that number, because it's two bytes, so 3,333 instructions would get me very near that value, but then I wouldn't be able to do anything else, right? Okay, so you don't have enough time to do a full frame. Okay, so what are our screen update options? What can we do? Ideas, we can do like project management. We start cutting, right? Reduce screen active area, okay. So if we just draw part of the screen, you are faking it, right? You use less CPU. You can do partial updates, just update a small section of it, okay? So less CPU. And if you look like at this, you'll see that there is, the field is filled in. And the idea is that there is another thing we can do, which I call colors for dry fact. What does that mean? If everyone knows, I think, for the ZX Spectrum we can only have two colors for each character, right? And if you put colors on it, you'll notice there is the one that is really weird, because now it's gone. So it's everything black, right? Because the ink and the paper, the two colors you can have are identical. Well, you can use that for color for dry fact, right? So if I paint everything the way I want it, I have a game that I don't need to change the pixels, only the colors, lot less code. But this looks like a 1982 game, so you might do a little change, make it look better, some colors, and then some lighting, some more lighting on there, and then we can do a mix of everything, which is what I've just did, and we get a game similar to this, right? This was the goal. Okay, graphics challenge. And I'm gonna have to speed up a little. So the arcade has that resolution, which looks smaller than this one, but this is actually fake, because we only have this resolution, the rest is border, right? So we only get that. So that means we have to do some magic. When we need to have a screen that has a lot of pixel data, we might have to glue our pixel to the border and use the border as fake, like it looks that it's bigger, okay? So these are just experiments to see if we could do the main graphics for the game, and actually they look similar enough to be a nice game. So this is the one-player game, single player, sorry, and this is the two-player game, okay? These are some nice graphics that were needed to be converted for the characters of the game, but they will have a further impact further on, okay? So a port implies you have access to the source code, the original source code. When you don't have that, it's not the port anymore because you need to reverse engineering everything. Everything is hard to come by. You don't have a clear idea of what everything is, the code is actually doing because you don't have the code, right? So reverse engineering is actually, when you have, will not have access to original code, and everything is a pain to actually get to the most simple things. You have to try and try and try again, okay? I'm gonna play another small video. Rules for playing the game. So what do they tell us? Did some match tree game and only give us the basic mechanics. Why? Because this was an arcade game. They want your coins. So you need to spend some coins to learn more about the game, about combos, about attack patterns, about scores. You can do different plays that the same amount of bubbles popped will actually give you, will actually give you less points or less attacks to the enemy. So these are all the characters. I've been able to define what these things are. These are the power-ups, but I haven't quite figured out what, if this is just a way to say this is a better character than the other one, or if it's something more and changes the gameplay. I haven't found out it yet. But what I had to do was I had, actually to play this game a lot, so that I could find the attack patterns for each of the characters. And I found out that it's a eight by eight, sorry, seven by eight pattern that repeats for each one of them. This was hard to do. This is not good. So what compromises did we have to do? So we don't have the background because we can't handle that. We don't have distinct patterns. For example, this is the exact same players, but when switched they change colors. Maybe we could that if we have enough memory. And we don't have characters as backgrounds of the game. So we cannot do that because we are faking it with color instead of pixels, right? So when we have this completely distinct thing, but at least the gameplay we hope will be the same. So going back for the color for dry effect, what boost does this actually give us? So this is what we were used to have in terms of bytes, right? But if I only process the colors, I have a boost of eight times. So I have a free time for computing game logic. And I have less contention with the ULI, so some more cycles that I could eventually use. And for a 50-hertz palm frame rate, I can actually do 50-hertz if I'm careful with the code and optimize it. Okay, tips and tricks. This is the hard part, okay? Okay, which data structure should I use for that? Yeah, it's an array or a vector, right? A grid, but that's what I mean. So to represent this, we need to decide so should the array or the grid be in memory like horizontal or vertical first? Does that influence our code? Does that make ours code faster? It probably does, okay? So as you notice in the videos, the animations are pretty much vertical. So that's a good choice to be vertical because with a simple increment, we'll go to what we want instead of doing ads to go to the other side. And another important thing is that we need to do color match search on that array, okay? How do we do color match search? We start on one place and then we have to check every other adjoining area, right? And then we see there is another color there and we keep going, keep going and we'll pop everything that we find and then we roll back and we continue on that side. This is how we do a color match and notice that I marked it with white.  Okay, so what's simple C code for now? I'm not going into assembly right now, okay? So it's a mark and sweep kind of thing. So if at that position, there is something of the current color I'm checking, then I will go and check the left, sorry, the first, the top, the left and then the right and the bottom. But what happens if you look at those spots on the corners? If I go to an array and try to visit something outside the array, what do I get? Crash, not garbage, really crash. Garbage you get on a PC because it's protected, right? Here you're gonna get the crash. So we need to somehow check that we are not doing that. But if we do that, we need to do something like that, right? If that position is still valid, and then we do the same, right? And the smart guys here would say, what? You're going there, you're right. So we could do a refactor and just put valid on top, right? The problem is that this implies that I need to do an extra check. Can we do better? And that guy is on the spot, okay? So the idea is that if we do, if we find a way to avoid the edge cases, what can we do? And you cannot speak now. Kind of. So that one was also right. So we can create what is called a fence. So an area outside that is safe because it's still part of the array, but you only handle the inside, okay?  So if we have any pattern, and the best way to explain this is like, this is kind of an island. So if you have water all around, you cannot go anywhere, right? So it's safe. And that's basically what it is. You put water all around on an island and we'll never get out of the island. Sorry? Okay. Okay. I'm going to do a quick recap of common optimizations and I'll do a comparison between C that most people know and to assembly, okay? So when we do tail call optimization, is that if the last thing you're gonna call is another function, it means that when you call the other function, the other function comes back and then you go back again, right? So we have something like this. We call and then it returns, takes all these clock cycles and then we return again, right? So instead we could do something like this. We comment the return statement and just jump because that function will do the return for us, right? Okay. And we saved 17 clock cycles just in that optimization, okay? Next. Okay. Move invariants out of the loop. So what we have is that delta equals base plus offset that doesn't change anywhere in the loop, right? So it's out of there and outside. That's most typical optimizations that are current knowledge, right? We can also enroll loops. So we can substitute that for loop and just do a simple dump. And then we can optimize this a little bit more because we know that all the results of these instructions, right? And we can do that. Something else we can do. Enroll in multiples of n, why? Because if the e on top, the limit is 3000 or some huge number, we cannot enroll everything, right? That's crazy. We wouldn't be able to do it. So we might enroll in blocks in n so that we can do optimization. And what do we gain with this? We do less code controlling the loop cycle, right? This is the standard stuff. And we can always do inline functions. Does anyone know, does not know what an inline function is? Everyone knows what an inline function is? Yes. All right. So what is a portion inline? So an inline function basically is just to replace that function called with the contents of the function. This is actually a representation of the function to calculate the y vector for the screen. And if we know that in one in eight times, we'll get that, sorry, seven in eight times, we'll get that first if. I can avoid actually doing the call. How? Actually putting the if on the code directly. And then I only call this one once every eight times, right? Another optimization. And this is the big mother, right? Self-modifying code. We need to demystify this because you can do very complex stuff with this, but the main part is very simple. So what this means is start code at 6,000. And then we define a variable that has that value and starts in 6,000 because that's what we said. And when you hear we have an instruction that loads a register with the contents of that variable with the contents of an address, right? That takes 20 cycles. But if we load an address for the HL register, it's a special case, it only takes 16 cycles. But if we are going to do this in a loop and if that thing, the value that we want is not actually changing or we don't have enough registers to keep it, we can actually put an instruction like that with a constant. But that constant is changeable when we start the function but not within the loop, okay? So what we can do is actually define an embedded variable which actually points to the thing of that is in the middle of the instruction. So the load HL has this representation but when I use this dollar, what it means is that current position in memory plus one. So my variable will actually share these bytes with instruction, okay? This is the main simplest self-modifying code you can have but look at the difference, sorry. Look at the difference here, 20 cycles and 10 cycles, okay? Okay, loop update optimization. This is something that I came up but I don't think it's new. It's something that everyone that actually gets into the problem will find out, I think. That is a for loop consists in three parts like four, right? I need in it condition and update and then you do the block code, right? So what you usually have is something like this, right? So you start initialization, identify the condition and you update the control variable, right? And then you do something inside. But that's the simplest case. You can do something different like calculating something that is more heavy, right? So can we optimize this? What's the problem with this? Anyone knows what's the problem with this? You might not, no, you will not need the last Y, okay? The last Y you calculate, you will not need it, okay? Why? Because you calculate the next Y and then you check the control condition and you calculated I, the number, the counter but you don't need the Y and you just saved a few instructions. It might not look much, but I'll give you an example, okay? So imagine this is a sprite. It's composed in these lines for each byte is a line and then you want to mirror this into the screen in reverse, okay? So what do you have to do to make this happen without duplicating the data? You need to actually access it in a different order, right? But you can do it in two different ways. So if you look at the bytes in memory, they are in order. So you can do what? One pointer runs to one side, the other pointer runs to the other side, right? So you can actually change the order. You can actually write on the screen in the reverse order or you can go in the reverse order on the sprite. It's up to you. But on the case of the spectrum, it's better to reverse the order on the sprite data, okay? Okay, this is the last example, I think. It's a huge one and I will explain it in assembly, okay? So RP Blit is a function that does pixel blitting in reverse, exactly what I mentioned before, right? And this is a data structure that I'm using, not very important except for the last part. And I'm going to show you that the HL register points to that position and the destination register actually points to the screen pixel address when we get to that code on top, okay? So what we do, we calculate the pixel address by actually reading from there. And then we save the pointer for later. We calculate the move the pixel address to the HL register. One more. So now we decrement it because for the next time we need to go to the next pixel address. And then we calculate the pointer. We increment the pointer again because we want to point now to this one, the HL register actually moved, right? We need to calculate that. And why do we need this? Remember, the ZX80 doesn't, sorry, the ZX80 doesn't have multiplication. So to optimize this, we can have the sprite data already composed with width and height multiplied so you don't have to do that map, right? So we need to actually get that so that we can get that value to add to go to the bottom of the sprite data, okay? And now we actually notice this, that RP bleep W, that's a variable. But that's a variable that's going to be self-modifying code. Take note to that.  So the current destination register now has this data. Screen peak solid rest plus size minus one, okay? And then we actually load the bleep height from another variable. And now, so this part is the actual init function of this four cycle, remember that? So now what do we do? This is auto-screen, hmm. Okay, I can tell you what's in there. It's a jump to an instruction that is down here. It's not very problematic, okay? So it's a jump to this address. So what is this? This is the body of the four cycle, okay? And then we decrement the variable that controls the cycle, we test it. And if we have still stuff to do, I'm gonna jump back on top, right?  Do everything that we need to calculate the next Y, right? I'm going to speed it up a little bit. And here you can see the example here, partial inline of function increment screen Y, okay? And if it's the special case here, we will not do the jump, and we will save some instructions, basically all that is in the call. And beside that, there is a trick here because it's cheaper to actually decrement and then increment when it go through this route because it takes four cycles for each decrement instead of a jump that would take 10, okay? Four plus four, it's eight, so that's faster.  And here is the instruction where it's being used again as a variable, right? Dynamic code, there is that little guy there showing there is a possible case of memory dysfunction. And then we do some calculation to get back to the right position on the sprite data. And now you can see that all this is what we would repeat on the last cycle if we didn't need the Y variable on the last cycle. Because on the last cycle, we will exit here and we will not do all this. And at the first time, we just jumped from here to here to avoid that because we don't need that in the first time, okay? And now, I can show you a demo if I'm still allowed. If not, questions? Hurry up. Hurry up, okay. The building is closed. Oh, that's fine, we'll stay. So, let me, I need to, okay. I tried to load this a while ago to see if it would work. This is the game, the video link is on the page, okay? This is me playing the game in the spectrum version, okay? The idea is if you can see there is actually, you see the balls going up and down, although the video codec is actually messing that a little bit. But you can see that the application is actually running at 50 hertz. And with some time to spare at the end, okay? This works in single plays when you have more columns and you have also the two player play and it works like this. And that's it. Thank you very much. Any questions? It's a huge short scope and it's not worth it, although I got a lot of the screen graphics as a base to work the graphics on the spectrum. But the code is huge, there is no documentation. Well, there is, but you're gonna take some time to actually do that. It's possible, but it's not easy, it's hard. Thank you.


I don't have any books for you to buy or any courses for you to sign up for. I just really love boundaries, okay. And I love teaching. I was an educator for a decade and I quite enjoy presenting at professional conferences. I started doing it during my teaching days in Japan and I figured this will be fun. I'll definitely write this talk early and not panic about it at the last minute. So I'm going to start out sounding a little bit like a pharmaceutical commercial, but just bear with me, okay. Do you feel tired before you even start your work day? Have you become irritable or impatient with coworkers, customers, or clients? Do you ever feel disillusioned about your job? Do you often find yourself getting angry unexpectedly? Do you numb out before, during, or after work? Or do you ever feel anxious when you think about having difficult conversations with customers or staff? I'm willing to bet after these past two years we've all had that many of you answered yes to at least one of these questions. But feel free to tell me how happy and relaxed you are at your center after this talk, but preferably in a quiet place where no one else will shoot eye daggers at you, okay. Floats and our owners and operators and many other small businesses in the wellness industry are highly susceptible to burnout, enabling behaviors, and compassion fatigue. I'm sure many if not most of you have heard these terms before. I'll briefly describe them and discuss my favorite way of preventing those problems so that you and your business can thrive. Spoiler alert, the solution is healthy professional boundaries. Burnout is physical or mental collapse caused by overwork or stress, sometimes also called a state of physical or emotional exhaustion that can involve a sense of reduced accomplishment or even a loss of personal identity since a lot of us wrap our identities up in our jobs and our careers as floats and our owners and operators. Enabling behaviors, you've probably heard that term for codependent relationships or loved ones of addicts, and those are behaviors that allow a loved one, an employee, a customer, a neighbor to continue self-destructive patterns of behavior. You can think about enabling as being the opposite of empowering, right.  Unlike burnout, this is different from burnout, which is caused by everyday work stresses. Compassion fatigue results from taking on the emotional burdens of a patient or loved ones stress and agony and pain, which we've experienced a lot of in our personal lives, caregiving for loved ones on a societal level this last year, and also at work in the wellness field. I know that all of us are operating in very unique circumstances. Some of us have dozens of employees and a variety of services that we offer and others run our center solo and specialize in just one wellness modality. Some of us have been operating for years or across the decades. And others are just now beginning to explore the idea of opening a float center. We operate in countries all over the world, and your idea of what's professional may be unrecognizable from that of the person sitting right next to you. Even though our businesses can be extremely different, I have painted the categories of boundaries and the scenarios in which we should implement them with a broad brush in the hopes that most of you will be able to take at least something away from this talk. So I have three categories of boundaries and three scenarios in which we consider those boundaries, which creates essentially a grid of nine boxes, right? I think that's the easiest way to get started if you don't know what your professional boundaries are. You've never thought about it. You've never written about it, but feel free to come up with as many categories or scenarios as your heart desires. So the three categories that I'm focusing on are physical or temporal boundaries, emotional, mental, intellectual boundaries, and material or financial boundaries. And then the three scenarios to consider those boundaries in are in relation to our customers, to our staff, and to the business as an entity, right? Because the boundaries that we have for our customers are going to be different from those of our staff, right? So I'm not going to tell you all of my boundaries because boundaries are really personal things. They're limits. They're the nose. They're the places and situations that I'm not comfortable with, where I don't want to go. But I will use a few of my personal boundaries and a few made up boundaries as examples in order to help you think about how you could word your own boundaries and what kinds of questions you should be asking, what kind of feelings you should be exploring when you're coming up with those. So a few of my examples, like I said, are my own and then some I've made up, but to be generally under the umbrella of wellness center owners and operators. So an example of a physical or temporal boundary in relation to your customers might be something like, I will not respond to customer inquiries outside of operating hours, okay? So just because your customer emailed you at 11 a.m., asking to book a massage the next morning doesn't mean you have to respond to it until it's at a time that feels safe and comfortable and right for you. Another one would be something like a physical boundary. Some of our float center owners are also massage therapists. I will only perform five massages per week in order to preserve my physical strength for other tasks. When you've decided your limit, it's obviously up to you to enforce that limit, right? So it's nobody's job but yours to make sure that you're not doing six massages, that you're only doing five massages because that's what you decided on and that's what feels comfortable and right and safe for you. Another one might be I will not compromise the physical health and wellness of my customers. When I was on the bus tour with Dr. Vor two years ago in Denver, we were talking about safety in the workplace and the three things that he said that really stuck with me were that every customer who comes in the store leaves healthier than they were before. Every employee who comes in your store leaves healthier than they were before and obviously make money. So those are the three directives that we use at our business. That's my sounding board for the things that let me know that I'm in alignment with our company's values. But things directives aren't boundaries. Boundaries are the nose, right? So they're both super important because you need to know what you do want to go towards, not just what you don't want to go towards. But the the directives are basically entirely separate talk altogether. So we're focusing on the nose, right? For staff, right? So those were boundaries for your customers. For your staff, I won't respond to the employee group chat before 8am or after 6pm or whatever your hours are. They don't have to be any particular hours. We're open 8.30am to 10pm, seven days a week. So we're open a lot longer. So we have several management staff who have shifts when it comes to responding to those kinds of things. But whatever the hours are that feel right for you are the right ones for your boundary. And again, I will not compromise the physical health and wellness of my staff. So those two, they're both important. They're both boundaries. But you have to think about them in each situation individually. Under emotional or intellectual, for customers, sometimes they can get a little bit manipulative. Sometimes they can ask you to do things that you're not comfortable with, right? Or you've stated a boundary and then they push and try to get something else.  I'm not going to offer specials or discounts that go against my personal values. You know, if you really have something against some particular issue and people come in asking for special favors because of that issue, it's perfectly within your right to decide that this is a boundary for you and that you're not going to be pushed on it. One thing that we had last year with our mask policy at work and we decided that this was a really important boundary for all of our staff. I will not engage in debate about my business decisions with customers and you can just kind of end it there. If they would ask a polite question about it, of course, sometimes we want to answer those questions, but it's not an issue that's open for debate and not one where they get to change it on the spot kind of thing. Material or financial, some people I know I've seen in the collective have a lot of trouble charging the card on file if a customer ruins a towel with pink hair dye or no shows for their appointment. And maybe that's because it's not a boundary for them, but if you find yourself feeling any anxiety about that, feeling upset about that, feeling angry or irritable or nervous about that, talking about it, obsessing about it, maybe it's a boundary and it's something that you need to decide where you fit on the yes or no and then just stick with it. If you're okay with not charging that card on file, just commit to that and release the anxiety about it. If it is causing a real problem for you, that maybe is a boundary for you and it's one you need to start being serious about 100% of the time. So I have some other ones, like for example, in relation to the business. Sometimes that's a difficult one for people to think about their boundaries. The business isn't a person, according to many people, businesses aren't people, right? And so when you're trying to think about your boundaries with your business, what is the business asking you for? What is the business taking from you that you're not comfortable with? For example, you might decide that it's a boundary for you. I need to be paid a monthly salary of X amount of dollars before I invest company profit into expansions or new services. I won't use my personal savings or retirement to pay bills at the business. Sometimes we struggle with things like, I see several people like, oh my God. Sometimes we struggle with things like that and if it's not a boundary, it's not a boundary. But like I said before, if you really get in touch with your feelings, you realize those things that you're just spinning over and over and you're agonizing over that decision, maybe it is a boundary and it's time for you to make a decision about whether or not you want to take a hard line on that in the future. Boundaries can come into conflict with one another and it can take some time to work out a solution that feels authentic and right to you. I'll talk briefly about a situation with our mask policy, not a controversial topic, right? But our mask policy and how we handled it based on our boundaries and our values as a company, which is not a persuasive speech. I'm not telling you how to write your mask policies or anything like that, but how to kind of think about it and how to weigh your different boundaries and how they talk to each other. And I hope you can see how we balance them with regard to our staff and found a solution that's on brand and authentic. So in the summer of 2020, when we reopened after the stay at home order was lifted, we came up with our mask policy that we maintained for an entire year without exception. We were very intentional about it. Luckily, the owner, SNI, are entirely on the same page when it comes to this and we were able to make sure that our staff understood how we felt and why we felt and we didn't have to change it for the entire year. So on June 7th of 2020, I went back through our group chat. I sent a message to everyone detailing the mask policy, what we were going to do, what we weren't going to do, how we were going to communicate it to the customers, that we weren't going to be debating anyone, et cetera. Exactly, almost exactly one year later, June 9th of 2021, we decided to change the mask policy. And I'd like to read to you the message that I sent to our staff so that you can understand how we communicated to them about the change in policy and where it came from and that a big part of it was to help the staff feel safe and protected and well. Hello lovely float oasis staff. SNI have been discussing the mask policy extensively and we've tried our best to come up with a balanced solution that's science-based and that takes into consideration the stress from confronting customers that weighs on the health risks to our staff. We have decided to continue to require masks for our employees for float and massage in the public areas of this spa and when interacting with customers. The update to our policy is that we will make masks optional for vaccinated customers in the public areas and for the face-down portion of massage. This means masks will be required for the face-up portion of massage only. We will not be asking for proof of vaccination as it's too easy to fake or fight over. This of course means that unvaccinated individuals may come in without masks to receive our services and we understand that increases the risk to our health even for those of us who are vaccinated. The stress that the desk staff and the massage therapists have to endure from mask policy pushback has built up over this past year. As a business that is centered around physical wellness and mental health we don't want to ignore the long-term effects of chronic stress on our staff. If you have any questions or concerns about this policy change please reach out to me or ESSA directly. So we made that change trying to balance our boundary about not endangering the physical health with our staff with not endangering the mental health of our staff. As we all know chronic stress is terrible for our health, right? Our physical health so they really become intertwined especially when you're enduring that for an entire year. The way that you know that you made the right decision about your boundary is how you feel after it's been made and how your anxiety about the issue or your stress about the issue continues to manifest or slowly fades away. Before the stay-at-home order was lifted our staff all wanted to come back to work for us. They were 100% on board with our policies all the way and they have been since. When we first started our policy nobody left and when we changed our policy nobody left and we've actually attracted more employees recently. I know that they know that we value their health that it's a top priority for us and the important thing about your boundaries is that they have to be enforced consistently and they really, really do have to be on brand with your business. If you're trying to enforce something that's the opposite of how you're acting in other situations it's not going to go over as well with your staff, right? So I guess in the end the last thing I want to say is that all of us here in the wellness industry are in it because we want to help people, right? We like taking care of people and we like helping people but the impact that it can have on our relationships with our friends and family, on our marriages, on the rest of the community because they might be missing out on you when you're over committing to things and saying yes to too many things. Those impacts are really important and valuable and even if you decide that you need to step down or close your center as long as you're doing it in your own best interest and that it's really true to your boundaries you're doing the right thing and nobody's entitled to your time and attention or your floats. We want to make them accessible to everybody especially at our spa a core part of our mission, accessibility but at the same time you don't have to give a float to every single person who comes in. We want to give it to them but at some point it becomes enabling bad behaviors and you're really not empowering those people you're not really doing them justice and it's not really in the best interest of wellness if we're helping people to do things that are really self-destructive and that they're just going to continue doing in the rest of their lives. All right, so I'm done. Thanks.


Thanks for coming. I appreciate it. I know we're standing in between what you and launch so we'll keep this compelling and interesting Hopefully my name is Jim Hasselmeyer. I'm with HP and with HP's cloud business unit my cohort and crime is Rajiv Pandey Who's also from the HP cloud business unit? We are going to be very deliberate about kind of the organizations that we're in because We're going to be talking about a variety of internal HP organizations But we're changing the relationship or we're going to be migrating basically between a provider Part of HP like an IT provider versus a line of business or consumer people that are using our Technology and using the open-stack technology to deliver value to HP customers HP and customers We all have multiple day jobs One of the day jobs that each that Rajiv and I have has been working with internal customers who have had workloads working in Amazon web services and There have been Activities going on to take those workloads that have been delivering value to HP customers out of Amazon and into our HP public cloud environment, which is an open-stack environment So that's what we're going to talk about today is sort of our experiences and And learnings that we've had as a result of doing that So these are sort of the topics that we're going to go through today We'll set some context around kind of HP cloud and open-stack We'll set the context or to give you a quick tour of what these migrated projects actually do the value that they're delivering Talk a little bit about the factors that impact the migration whether what makes them challenging or what makes them easy What are specific learnings are and we're and then we're going to hear from a customer and we put that in quotes because it's An HP customer Evan Chesley is here. He's from the HP printing organization and he was responsible. He and his Considerably large team were responsible for a lot of what you're going to see the results of so he'll give some perspectives as well And then we'll we'll finish up with some conclusions and such So I'll turn it over to Rajiv Thanks, Jim So if we look at cloud computing timeline just to set some context and there's a lot of history that of course is elated from this slide but Currently, I guess working for a company that was formed in 1939 and having been there nearly 20 years. I like to take historical perspectives currently the Analysis indicates that cloud computing the term was was originated by compacts George Favaloro and or Sean Sullivan. They're still debating which one of them or both of them came up with it What's less disputed is the fact that Ben black and Chris Pinkham at Amazon wrote this paper on standardizing Amazon infrastructure and In passing they mentioned the possibility of selling virtual servers as a service And that led to in 2006 Amazon web services being offered a few other developments in 2011 HP joined OpenStack and the reason I wanted to highlight those two Items and in fact there's a little bit more about the OpenStack story in HP I'll come to in a moment is that there was this gap in time when HP did not have a public cloud offering and yet Public clouds existed and there were businesses in HP that were interested in this technology and A lot of the examples we will give you in a moment happened to do with the printing business There's a lot of good reasons for that One is that the printing business at HP is still a tens of billions of dollar sort of business Shipping tens of millions of printers in a year and so it's not you know a small business But it's also you know ink and paper or laser toner and paper so it's it's media and content and content services lend themselves to this because there's content ingestion content delivery and content services are also something that you know you drive consumption By providing content services some of these content services may succeed some of them won't so you're bringing up infrastructure and tearing down infrastructure depending on the whims and vagaries of the service that you tried or expanded or Interacted and so there was a lot of attraction to that Also other reasons are just things like you know shadow IT We had a great keynote comment about it's like dental rins that exposes where you're not brushing From the Disney gentlemen. I thought that was great. I'm still pondering that but there was this gap and so that's how we ended up with HP having services at a different public cloud vendor and then HP of course joined OpenStack in 2011 and started contributing as well as consuming and the contributions are Manyfold hopefully you've swung by our our booth and seen you know our four ptls and the fact we're we're contributing to a lot of the projects and In about 2012 when we had the two data centers and we had launched a sufficient set of products there was considerable interest in the migration and Again, there were some very good reasons for this HP is very into open source that we have a long history in that space The fact that there was this community now of cloud Computing folks inside the company that were you know pushing this now I don't want to do disservice to you know utility computing and HP's done a lot of research in that gap I showed you but there's this product made a lot of sense from that point of view and then also the fact that You know Fred P. Brooks once said plan to throw one away so the the migration also gave folks a chance to rearchitect and and so they were able to take the lessons learned and and and move them forward and Hopefully you've been seeing the current you know HP Helion launch last week And there's plenty of talks and and information available on that. So I invite you to look into that what I'm going to do next is give you a little bit of of Flavor of some of the applications that we migrated and tell you a little bit about them and that will set us up for Describing some of our experiences. So again the the notion of content being delivered Is part of the system so HP wall art has to do with wallpaper and the wallpaper, you know There's ink involved. There's these latex inks that are green and they don't out gas and you can You know consume them immediately. You don't have to wait for chemical processes to settle down We have these large format printers that can print in two and four and whatever Foot width swaths and then they have adhesive backing that's water soluble So you're not using any toxic chemicals to put this stuff up or be able to take it down easily So that all combines into we were able to go off and license content from folks as diverse as NASA and National Geographic and Nickelodeon and then we created a web application that you would take You would measure the dimensions of the room you would figure out You know where the light switch was and where the windows were and where the doors were and whatnot And you could come up with your own creation or Spongebob's leaning against the door or whatever, right? And then this could be reskinned by the mom-and-pop shops that had bought this large format printer and were trying to drive consumption and so content ingestion from all these content providers content delivery to all these fulfillment points and so this is one example of a web service that was or a Workload that was migrated from Amazon Another has to do with image-based fraud detection. So HP makes as I pointed out makes a lot of money in selling Consumables and these consumables, of course, there's a refill and remand sort of refilling and remanufacturing of cartridges Which is a fine thing to do You know if you're into that but it also might void your warranty But you know, that's a buyer beware sort of thing What's not so cool is when those refilled and remand cartridges appear inside of boxes that look suspiciously like their HP and they have that burnt markup and so there's There's a system that we've put in place in some of the regions where there's a lot of fraud going on where these Refill remand cartridges find themselves in these these boxes that are Counterfeit HP and it has to do with steganography So in coatings inside of images and stuff so you have a mobile app You can take a picture of the cartridge and decide whether it's really HP or not or Investigators can do this as well. This is a very simple application If you well my good buddy and colleague at HP labs with the shell sim ski would beat me up for saying It's simple because the steganography in the back end of that is not so simple But from a from a implementation point of view, you know You've got this application that captures images and sends it up to the cloud and computes some variations and figures out Whether it's real or not and so, you know simple database images But again, we want to show you a sort of a spectrum of of workloads and we'll talk about that in a moment as well Jim's going to tell us about some of the other workloads. We migrated So a non printing app That was migrate migrated is focused on helping people learn Windows 8 environment for Windows users out there Especially you've gone through the migration to Windows 8. I have not so I haven't experienced this There's some learning curve associated with that from what I understand And we HP included in our Windows 8 System an application a tile an app that helps people along that learning curve And one of the things that's kind of cool about it is that the contents of the tile Actually rotates and so the user sees different content available you can learn about File system where you can learn about a new app or whatever and so this app ships on every single Windows 8 PC that HP HP ships and the app goes back to HP and gets that tile update Comes back to our cloud to get that tile update and keep that content fresh Let's talk about the complicated one and and then we're going to get right into Some of the specific experiences that we've had Rajiv talked about the scope of printing and the importance of printing to HP and And one dimension and one might be saying gee I got to print something I go print it. What's the big deal? the printing business is really driving some massive transformation in in how they do printing and how people look at printing and Suffice it to say that the environment that we talk about for printing in the HP connected environment allows people to Pick content that they want to have and when they want to have it so that it can get stuff gets delivered to them automatically at their Desire and when they want that to happen and there's just a whole host of library of stuff that people can pick from in order to have You know to have fresh new interesting things that are helping them in enriching their lives could be coupons It could be all sorts of different things The structure for how this is all put together and kind of using the big block kind of thing is that The main thing that we're going to talk about today is the subscription management box in the middle that is the system that has the Content vault the subscriptions of what people actually want to have delivered when and It makes the decisions as to what needs to be delivered when and then hands it off to what we call the webprint platform to actually get it delivered There are also Solutions upstream that are generating that content because it's fairly complicated content And so a main point I want to make here. It's just gonna work Doesn't work on the screen the two boxes on the left represent 12 roughly solutions and those solutions on their own each Individually have multiple stacks dev stacks test stacks production stacks and so those two boxes on the left represent a very considerable amount of consumption within the cloud environment This is the dashboard that they use to monitor their actual delivery Suffice it to say what I want to get out two things I want to point out on this is one is we're talking millions of print jobs a week and then the other thing We're talking about is that notice the each little bar is an hour Notice the cyclical nature of it. It's lends itself to the burstiness nature of a cloud type of environment So let's get into what we've learned Rajeev and I got asked a lot how hard is it to migrate and we Decided that there's a very solid answer of it depends And it depends on basically three different things how complex is your solution How tightly integrated was that particular solution to Amazon technologies themselves and What are various aspects of the team that you've got that are doing the the migration on the team dimension? It could be we've got a big team and they're really cloud knowledgeable And therefore that might positively impact the speed with which that migration could be done on the other side of the coin It might be a small team. It might be a team. That's even though they're running in Amazon They may be relatively new to some of the new technologies You know, there are just a variety of things that impact that One of the things we're not going to get into I meant to say this earlier And I forgot one of these we're not going to get into is the details of let's say API differences between the two solutions One of the things we found I thought it was kind of interesting One of the things we found is we work with team after team people who are familiar with the API sets in Amazon They'd look at the open stack API sets and they go we get it. We see that they're different. It's just some different You know, it's not that big of an evolution shift We got to make some changes, but you know, we understand what's going on And the things that we're highlighting here are sort of some I'll call them some higher-level learnings There's some other a ha's that we got it We didn't expect as we help the teams kind of go through these migrations If I expand a little bit on that AWS integration access We tried to come up with some analogies as to how to describe this and and we thought this was a pretty good way to try to to drive this point home Conceptually when you look at the offering at Amazon You can either if you need to have some sort of service a database service or a load balancer Whatever the case may be you could build it up out of components yourself You could create a VM you could put HA proxy on it You could do all sorts of things like that or you could use their load balancer service or their database service and depending on your perspective Those pre-packaged services, you know, what's on the right might be what be would be the most attractive to you It gets you up and running quickly and you know all of those sorts of things but you get what you get and If you have a specialized need that may not be the best solution for you So when we talk about AWS integration in that one dimension here To the extent that there are services being consumed that were pre-packaged and bundled that created Sometimes a little bit more work and getting it into the open-stack environment We had solutions that definitely fell into that left-hand side of the slide where people had sort of built up some things They'd use some fairly generic things out of Amazon and then getting those over into the open-stack environment was I don't want to say it was easy, but it was not it wasn't a huge issue Basically, they knew what needed to be done. They just needed to do the work another area that has positively impacted a number of these Migrations is is the user model that not only at a foundational level exists within the open-stack environment, but also The way it's implemented in the HP cloud environment happens to be implemented in the HP cloud environment itself If you I talked about multiple solutions in this complicated printing solution environment Generally speaking each solution has two projects or two tenants associated with it a dev Development tenant and a production tenant and then from a user perspective there are developers testers and ops people and One of the things that's worked really well in the new environment, which I think I've been can go into Either on stage or afterwards if you have questions is the ability to have a user model That allows fine-grained control over who can talk to what tenant Their user popular their total population over here on the left is on the order of 70 to 80 people working across Low tens 20s types of tenants they have no shared logins They have an understanding if something happens in a particular tenant they know who did it and so this level of control Was an advantage and as part of the target migration environment they're going to that they that they very much liked the other interesting or another interesting thing that I think we experienced as we worked with with different organizations is Realizing where Lines of business were in their adoption of cloud concepts Technically this slide goes a bit beyond the scope of what we set up to talk here because People that we talked to or that we're talking about Primarily were at least here they weren't all here But they were at least here because they were running in an Amazon environment But another one of our day jobs was not only working with businesses HP businesses that were coming out of Amazon There were some that were coming from servers under their desk But in both cases Some in this case and some in this case It would take multiple conversations with them to realize that they weren't yet thinking about or addressing The architecture migration of going to an architecture that could really stand up or withstand a simian army getting getting let loose on it and To a certain degree I think they thought they were adopting cloud Methodologies by being in a cloud environment, but when we'd look at the architecture We'd have conversations with them if we realized that they hadn't really internalized that yet And so I guess I bring this out or we're bringing this out in this session today that you know Depending on where you are if you're a provider working with a line of business or you are a line of business Those who work with cloud day in and day out We get this and so that's how we think that's our perspective and It's very easy to assume the people that we're talking to have the same perspective And it took a little while sometimes to figure out that they didn't and and that was part of they migrate the logical Migration process as well. I guess this is the point. We're trying to make Okay the other benefit of being a Public cloud hybrid cloud private cloud provider and Having customers is the ability to look over their shoulder both at what they would do to fill gaps or Make the tools work for them and of course from that you can derive inputs into the various projects And that's the beauty of open source and open stack as well is the community process You know all the design summits going on today is you can take your learnings take your inputs and Make them actionable in those contexts So one of the things that the HP connected team found was with the amount of resources They were consuming across data centers across Availability zones across regions was that the console view afforded them by the tool Didn't give them that at a glance micro macro view that they needed And so the other beauty of this is they built their own and so this is an example of a tool that they built that let them at a glance discover more information about across AZs across tenants across data centers and Get an understanding of what their inventory looked like when you have hundreds and hundreds of virtual machine instances Running this is an interesting question if you've got a handful You have a handle on it when it gets larger than that you need to be able to do that micro macro sort of analysis This is another example of what you're consuming and again when your projects get so large you want to know what thresholds you're Getting close to whether it's on your memory limits or IP Addresses or images or whatnot and be able to see how you're doing vis-a-vis those thresholds those limits that you've set So another example of a tool that wasn't present in the console and again this is some work that Goes back to last year and so the good news is the if you look at the new horizon console There's more and more of these concepts that are being implemented right there out of the box And so but it was very insightful to see some of this occurring Another was the relentless automation. We talked about the architectural migration that occurred along with the the migration of the workload and The automation that was afforded by heat was something that was incredibly attractive to the HP connected team And so they embraced it they embraced it early and they became a source of a lot of feedback so this is a 71 line heat template they're actually in cloud formation format and then this is a tool It's actually an automatically generated visualization gentleman named Ben Ben Butler Cole Produced this so it uses dot and graph vis if for those of you in that space And so you can see that this takes if you haven't been to one of the heat talks there was a couple very good ones here and so you'll have to look at the recordings But hopefully you all managed to catch one and so the parameters the three parameters result in this one resource with a few outputs And so you can see the what this template produces by the time the HP connected team was done This you can see the the graph the image the visualization is at the very top of that And then I blew up a little bit of it so you could see What scale they were pushing it at and so this was something where again in the migration Having someone like Monty Taylor and his team available to take your calls. It was it was a useful thing To give you a better idea the number of objects here, you know It included a database as a service several load balancer as many virtual machines over 140 block storage volumes and all sorts of other virtual objects all Driven by these heat scripts and so it really proved the viability of of this Automation approach and it was very impressive to watch this these stacks just come up and so this was a Very interesting part of the project and and very fulfilling and then the leverage value of this Once you do this the the ability to to roll that out to other projects is really valuable as well now let's bring our customer up Customer in air quotes Evan Chesley from the printing group to share with us some of his Experiences with HP connected from that customer viewpoint. Thank you Evan. Thanks for Jeev So as you know these two great, you know shepherds of onboarding projects into open stack and HP cloud have Been reviewing some of the different stories. We thought you know my particular Workload would be a good kind of deeper case study. So I'm just going to talk for a few minutes about What our project went through kind of its scope what we learned as we moved from Amazon to HP cloud Again, I'm in the printing business. I'm not part of the HP cloud army that showed up here this week I'm here as a customer I support a publishing solutions business in HP printing and for all extents and purposes We just want to live in user land Yesterday during Bryce's Jonathan's keynote. He talked about the super users and I like adamantly insist I'm not a super user of open stack I want to know enough about open stack to be a really effective and agile business user But I don't want to like operate an open stack cloud I'm going to talk a lot about open stack technology But I want to use it as aggressively as I can in user land and just run a business as fast and as Agile as I can So in the publishing world, you know, this is a quick look at one of our production stacks This is the subscription license content Web application that we talked about that's used for a lot of web connected consumer printers Basically 450 objects that have to be wired up and running in flight for production And this is just one stack out of up to 20 that we have in flight at any one time from staging and load testing And you just dev reference type stacks In Amazon, we weren't using cloud computing in the truly rich deep API driven Automated way that cloud computing can be compelling But we still had to bring up hundreds you know about 800 different Virtual machines and you know thousands of resources as we migrated so well We had to kind of ask ourselves do we want to do this the hard way or do we want to change the model? as a customer we Basically, you know took grasp of the opportunity to use open stack in depth Still as a customer though, so we partnered with HP cloud to understand how to use open stack as best we can But we didn't ask for any favors or any special private APIs or anything. We just Went deep using what was available. You know made public by the public cloud Our model then was to start at the bottom layer. Well, we need to provision infrastructure We want everything to be automated. This is this model called infrastructure as code So we could have done heavy orchestration tools, but we're talking open stack here We want to really play deep with open stack. So back in the grizzly time frame. We went deep with heat It was still pretty rudimentary, but we just placed a big bet on heat. We love the model of one json Manifest which can deploy every object on that page in one shot one API called my heat server Which you know as the user I you know heat was pretty new I had to build up my own heat server But a heat server in user land worked completely well on top of a real public open stack deployment on HP cloud So we use heat infrastructures code it builds up all those resources now We need to install middleware application to all the configuration my particular project We use puppet in great depth to do that Once puppets finished running across from my virtual machines I've got a running business application and it was one self-service call at the very bottom You know at the orchestration level to make all that happen This allowed us to deploy a lot of resources on HP cloud in Only three or four weeks where before in the old model of using the cloud in a less agile way it took it Many many months to bring up the same number of stacks Where we are today. This is roughly a snapshot of my one publishing business Kind of footprint on open stack Something of around 16,000 open stack, you know objects or resources they're organized in stacks You know that's the beautiful beauty of heat. It's very stack oriented. It's our primary object of you know operational reference But if you look at it and that was Rajiv's a snapshot of the visualization of a heat template You know we have this many objects in flight, you know many virtual machines many more supporting resources including neutron in-depth and A very small team can support it so again as the customer I don't want to have to learn open stack and really have to hire Open stack wizards to run my business I'm using the tools to abstract that and a very small more business devops oriented application operations team Can run, you know this many resources on top of the cloud and remain very agile iterate stacks rollcode as fast as we want We feel it's like it's been very successful again the the model which we Love adopting a top of open stack and I urge any migration You know if you're looking at moving something from one cloud to the other It's the perfect opportunity to adopt much deeper You know business application as code model end-to-end orchestration you want to Leverage the chance because once you wire in your you know the chance gets a little harder to capture and That's our story Thank You sir Before I go to conclusions. I'm gonna tell a story that Evans may be sick of hearing me tell But um, you know in this world, it's we all deal with technology and Details and does it work or does it not work or whatever and we don't get into the emotion of it too much And there was one time it's probably one of the most memorable moments on this project We had to get Evan and I had to get on a call. We got a lot of calls But there was one call in particular where we were doing the heat engineer on our side Had been working with you to get a bug worked out To be able to stand up these stacks and when we got on the phone to ostensibly cover some other topic This engineer had just provided a patch to Evan, but it hadn't been tried So while we're on the phone you launch the script and it was quiet on the phone And then you go there it goes and he goes and both the engineer and you were going this is so cool Because all this stuff just started to get created it got wired up and it was it was a really well and go back to slides I mean that moment was going from this is a white blank piece of paper to Heat in six minutes bringing up, you know everything on there And that moment was something we'd been betting on and I think only open stack You know in great depth allowed us to get there and the heat part of it with you know Great engineers helping move heat forward in HP. It was it was an exciting day. It was neat. It was very neat So the takeaways Is Rajiv and I pondered what we wanted to convey in terms of the takeaways from these projects that we've had I think it boils down to these four things Automate automate automate. I mean we've heard Evan say and he's told us before Cattle not pets treat your resources like cattle not like pets. It was interesting to hear the cattle not pets phrase used this morning I took that as the the pets are at the solution level not at the infrastructure level But when you're going to be doing large scale deployments You need that automation to ensure that you're you're deploying and creating things consistently When you're looking at true enterprise and enterprise scale types of deployments You need to have and we need to be sure that they has that has the tooling in place To enable that to happen to provide the higher level views the summary level views like what Rajiv talked about With the tools that have been created We found ourselves on a number of phone calls where people were in essence looking for the AWS solution in the open-stack environment And we found ourselves saying it's not Amazon. It's a different environment We got to change you know change the thinking a little bit So we just have to kind of if you're helping people go through this process I guess I would just say it's a process of helping them understand that the mindset's a little bit different sometimes and It's not the same And then lastly be aware of that solution migration versus architecture migration, which I talked about We very much found ourselves in the mode where we thought people were either either had or were going through an architecture Migration and they really hadn't gotten to that point yet and then that caused a different type of conversation In order to effectively move that migration forward So with that we have a few minutes left if you've got any questions I'd ask that we use the mic so we can get everybody to hear and Rajiv why don't you come up to and we'll kind of treat this as a panel Hi, thanks. This is a nice talk. I had a question about a comment that you made almost in passing That with some of the groups that you talked to the fact that the APIs are different between you know The cloud providers, you know, whether it's Helian or or AWS wasn't really an issue. I'm wondering if I Guess I'm questioning a little bit how much Easier or better the experience of migrating would be if you actually had more parity in terms of APIs or Similarity, I know that in the printing case, you know, they weren't really using API So maybe it didn't make a big deal, but I'm wondering about some of the other Product teams you talked to you know, it I guess I'm saying it didn't come up as an issue When we looked at the issues that were required or that we had to go through in order to In order to get the migrations done The work that needed it to be done that didn't it didn't seem to come up as in the top tier of issues. Would it be easier? Possibly, but I don't know if it how much it would actually move the needle You talk about the solution migration versus architecture migration So in the process we're able to do a lot more consolidation like the instance counts and things That we able to kind of reduce that and also, you know, you have You know since you're going in fresh you could be putting up bigger instances and you know, what kind of efficiencies were you able to achieve? Yeah, and my particular project migration We definitely didn't see it as just pick up a workload and move it, you know whole we Revisited a lot of those types of decisions. It's the perfect time, right? You're gonna have to open up your whole model deployment model operations model just to make sure everything's the right fit So it would you'd be remiss not to ask those questions in our case though You know because cost is an underlying driver to all of this some of those decisions are pretty well made in advance about the Resource sizing it's much more about the tooling to allow you to turn those over, you know to provision De-provision things faster that we learned That was the big transformation for us, you know the application architecture didn't change a whole lot But the operational architecture for provisioning the application changed entirely So on the operational end as Evan spoke to, you know, they were able to change the whole provisioning approach in architecture Some of the other services indeed They had been running for a while and some of the design decisions They made to your point about the sizing of the different components or where they found the bottlenecks, you know Once you have this system running you learn a lot about how you would have really built it if you had the chance And so we did see some Changes Architecturally as well as sizing with these services saying well, here's what we've experienced or here's what we've learned and Especially with the content flows, you know and and how the the trends and they could also project forward So not only looking back, but also looking forward and saying given that we're going to ship this many printers with this capability And and so they could also look forward and plan for the ramp Second question. What what experiences did you have in performance area from when you went from AWS to open stack HP cloud? Just throughput quality of service and those those areas. So there's two levels at least to that There's the underlying infrastructure performance and each cloud is going to invest in different capital, you know utility available Our application we had to tweak a few things because HP's hardware is different than what Amazon's running and there's different families But it was just a natural, you know, check your RAM check your performance and then dial things and it wasn't a strategic difference HP versus Amazon At the the next level though where the agility really matters for us is the ability to provision stacks put them in the customer's hand You know the developers the testers get an application process done and then deep provision the resource There because we implemented all of this infrastructure as code and you know iterative automated Processes the performance of us in our business life cycle is you know two orders of magnitude or I think I started saying three I two and a half orders of magnitude improvement and that matters more to us than the raw compute performance matters It's the business life on the line yeah, a lot of these content plays involve third parties and providing them with a a Facsimile of the environment in which they're going to deploy so that they can make sure their piece to that pipeline that content pipeline works Well, you know, they don't have any guesswork left because they can bring up exactly the same environment So that's really valuable as well My question is for you guys mostly from the service providing point of view not not so much the the end customer point of view Sorry But I was wondering because in this you're sort of mentioning the migration of shadow IT user groups to you know your your platform and At the same time being open-stack based you're just bringing the the orchestration Functionality on board and you know making it available. I'm wondering if if this you know has caused you to Be ready to do more on-boarding hand-holding then you might have expected You know as opposed to look here's here's the here's the here's the implementation guide. Just go do it Yeah, the real beauty to this project was the fact that there were Projects of different sizes Jim showed that diagram of the different size teams different projects embracing different degrees of the functionality and features provided at this You know at Amazon and then migrating to open-stack They provided us with a great template and a great spectrum of you know what it takes to you know engage and Jim And I got better and better at how we structured that conversation and the questions We would ask and we actually even did some tooling in that space so that we could assess better What is this going to take we could do expectation setting and it was it's a very interesting process And we had enough of a of a user pool Customer base to be able to try out different things and different ideas And then there were folks that we could get too early enough and we could apply these lessons learned so yeah, it did definitely provide us with a template and and a process and You know these are some of the key lessons we learned But there was a lot of blood sweat and tears involved in deriving them You covered it well any other questions. Thank you all. Okay. Thanks for your time. Thanks for sure You


In this study, researchers examined the effects of adding spearmint essential oil, SEO, to gelatin-based edible films. They found that the addition of SEO improved the physical properties of the films, such as opacity, moisture content, water solubility, and elongation at break. Additionally, they observed that the addition of SEO increased the tensile strength of the porcine-based film, while it decreased the tensile strength of the bovine-based film. Furthermore, they noted that the addition of SEO also increased the antioxidant properties of the films. Overall, these findings suggest that gelatin-based edible films containing SEO may be a promising option for improving the quality and safety of food products. This article was authored by Surab Bhadia, Ahmed Al-Harassi, Muhammad Jawad, and others.


All right, separate traders welcome on back here to close out our week close out our day Of course this Friday February 3rd shortly after 2 30 p.m. Eastern time as always this time of the day welcome on back for our Afternoon meeting good to go from Mark and later should be good to go across the board there Not just inside our live trading room, but across all social streams got Facebook live YouTube. We got LinkedIn We got Twitter great to see Mike Ron Michael. We have Jeff Mark later inside our live trading room perfect The HSCS trade dumping back down right now It was holding above actually a nice level that I had on my chart early this morning It was actually its IPO price the stock is a relatively new new IPO. So let's go over this one to begin It's up over like or mere 150% So it's just to say it's actually pretty recent over the last year. It was an IPO Open price was right off 375. So Historically and especially with day trading, you know If it's the first time in a long time in which it's testing that price again You would have to show it a lot of respect, you know, I would expect that to be a big level Now does that mean it's gonna blast above it and then run from there and then it could act as support later on or Is it gonna false break it? Is it gonna break above it? Kind of like shake back right under and then tank or in this case It did try to hold over it as support, but if it's not gonna make that big move that you're looking for It's gonna make a big move just not the move that you're looking for the other way So led to a big drop just now right back down at 350 You know, hey for as much as this is up and if it's still making a higher lows Perhaps there could be one more squeeze up over that 375 into the close So I'll put this on our watch list here the HSCS trade And dyslexia getting in the way there HSCS there we go. All right So we got HSCS and then RS LS number two on the gainer side You know, this one's not looking nearly as good obviously now, but it was one from earlier this morning I wanted to go over briefly because it just goes to show, you know, although some stocks make that Continuated move afterwards, you know normally for a stock although up in pre-market. It was trending Perfectly down going into the market open. So, you know when we see that we're often looking at selling pressure at that point So the question that you want to ask is what happens when we continue to see that selling pressure over time? So, you know it ended up leading to a little pop got halted ran up a little bit It was more of a gamble stock at least and then it pulled back down So just take one look at the daily take one look at like the historical charts here the weekly for right now and you could see Certainly it's just over time has only dropped off. So I'm sure just on various days It's made a pop here and there but there you go. You could just tell back from maybe like a few weeks ago I actually don't recall that to be honest with you. So, you know led to a nice pop I'm sure we've called it out then but slipped my minds, but it just goes to show just it's not a swing trade It's a day trade, right? And then certainly now you should have been out this trade a long time ago All right, where's Jean one of our longtime students here Love when Jean's up right now or at least was up earlier today Let's say huge drop off there right before Fausto started the morning meeting just five million dollar direct offering of shares So it led to a big drop But hey, it led to a really good squeeze after you're calling that out myself and Fausto just big icebergs that to 150 and at 155 namely so ended up breaking below those levels at first then built that support led to a great move From that point, but at that stage though ended up dying off much like a couple of the others did already like the RSLS at least and Now at this stage it's not looking too good So don't try and hold on to this if it ends up making like a 10 cent little move up, you know There's so many different stocks out there right now and perhaps some good shorts You know if the markets continue to pull back right now as they have been it could set up for a pretty good You know short afternoon nonetheless So I don't know how how keen I'll be to a couple of these stocks here like Jean or you know The others that we talked about the HSS though for the for the meantime looks good So that one we have on our list Let's just go go from top to bottom otherwise or continue to I should say No, we'll just recap a couple of the moves that we had from the morning and just build up our watch list right now Yeah, Laura looks up like a buyout pass on that got cheapy here MGT a I reckon it ended up actually making Making a gap up this morning and filled the gap at least that it had back from the end the last year So, you know just made a little move here, but not too impressed right now The BB AI this is something to be impressed about right so much like AI from earlier today BB AI Artificial intelligence company so, you know that's just been one of the hot sectors of late led to a big squeeze up this morning continued Move up from this week and the end of last as well So, you know ended up blowing the roof off off of five or off of 450 I should say and then eventually made the move up to five right now. It still looks good, right? You know training up pretty well, you know popped a new high earlier just right around 2 p.m So still looking pretty good here the BB AI trade All right, I don't have any lines on this chart though Let's take a quick look on the daily or the weekly the historicals here. You could see it looks like back from last year 445 below 455 453 so that's right said once it blew the roof off of that it took off it held it as support Now at this point, I'll tell you I mean your next quote-unquote historical level if I'm gonna try and just shoot from it quickly and save time Yeah, you know, it could be right around 670 ish 675. I'm just quickly seeing 714 715 here So I would just generally say within the vicinity of like 675 to 715 could be the next historical Meaning that there could still be some room here for this to run Just always watch level three and level four though And you know if there's any larger order that pops up or if this dies off and then we happen to see some selling kick in That's what you need to be just mindful of but it looks pretty strong here And if I'm gonna put BB AI on our list Maybe there's room for one more trade left on AI Maybe room for one more push on AI here, you know ran up earlier I wish it was closer to the highs right now It has a lot of a lot of room to try and run up to you know the high there off 2848 So I don't think it will make that move personally if it does God bless But you know, even if it can make a move up to like 27 or you know, you 2750 get pretty close there So that would be kind of impressive. I'll put this on our list kind of in sympathy with the other one though The BB AI trade now this this has been a pretty good trade so far this afternoon And it looks like another AI company Soundhound AI Inc. How about that? You could see it in the watermark on trade stations chart, right? Soundhound AI I didn't know that until right now pretty interesting. So I think that's simple to say We're gonna put this on our list here, too This also just looking at the historical here has been pretty strong on the way up towards right around 285 285 right there 281 just a really strong base roughly around that 285 price Yeah, that's that's actually a pretty slick-looking level. So of course volume always trumps everything else But it's just to say with how strong that level was if we happen to see more and more buying off of it Going into the afternoon. I'd like to think it can make a much better run. So Yeah, for right now sound I'll put on our list getting a little squeeze up on the spy for right now Hopefully you can continue to make higher lows recover recover back up again All right, is this an AI GF AI. Yeah, what do you know guard force AI now? It's a 35 cent stock. We're not gonna necessarily look to trade this year, but It's just pretty interesting Remark holdings. I don't know if this is a AI or not. Don't really care to check This actually looks like a really good chart, you know pushing up pretty nicely right now a couple of iceberg orders right off Of two and two dollars and two cents. It's actually one that we're pretty familiar with this remark trade I'll put this on our list here as well TWOU not much happening there Nordstrom just kind of dead There's the AI that we talked about No one's already on there East is it cheapy you got goose goose is holding here near the highs, isn't it? You know, it's kind of flat, but you know if this continues to hold where it is now going into 3 o'clock 315 You know that can lead it to make the next big push So autumn I'm slipping this on our list here as well just kind of near the middle Maybe near the bottom, but still looks strong. Oh, actually know it really quick. I'm sorry I don't know if I caught something that never mind. I thought from the corner of my eye I saw an iceberg water right here, but I was gonna comment on it if I did but I guess not All right, so we keep going right now folks Foxo not much happening here And to wrap up the gainer side There's definitely a lot more a lot more that's up that proverbial 5% that we scan for myself and Fausto So, you know if there's anything that looks good folks just type it in early type it in the chat board here Then I'll just jump on the loser side right now seeing if there's anything here Alright, so I know Fausto brought up the bill trade dropped off at first made this like crazy slingshot I reckon but now at this point just kind of consolidating within a tighter range now GoPro It's typically a slow-moving trade this GoPro. Yeah, yeah, I'll tell you a firm's been making some pretty big swings of late Hasn't it? I mean I think this is gonna be the third day in a row that we're gonna have this on one of our watch lists here You know if anything on the afternoon, it's been pretty volatile just up big now down over 11% So if this ends up breaking lower with the market, perhaps this could be one of those good shorts to watch So yeah AFR M. I like got the go to you dropping off that could be a little short there I'm not too keen to put you know this one on our list just yet Never like shorting too close to the ground floor, you know if it's like below five I don't mind it, but in the lower and lower you get Typically stay away from All right, so let me know if there's anything else folks looking pretty good up up or down moving with the market perhaps here Fausto commenting on the HSCS trade. So of course that one on the top of our list already That's kind of the star of the afternoon so far, right? Broke back over that 375 IPO price that I'd mentioned So yeah, it might not be right now if it is God bless, but the more times it kind of stabs over that price I think in that I can make that run From Mark any thoughts on FLWS could use more volume as a short Yeah, I mean this thing looks really strong as a short trend wise Filling the gap from yesterday short of all in trade station my platform my broker Yeah, I'll put this on our watch list mark looking pretty good. Maybe thin to your size on level two But for right now like good spread Definitely good call. All right Just checking any comments right now from Facebook live YouTube LinkedIn as well and and YouTube if I didn't mention that for Twitter. I should say Got one right now BGXX. We'll take a look NASA isn't looking too good now looking that good there, you know a little bounce just recently, but No, it's not near the highs at all if it makes a sudden pop out of nowhere once I finish this beating up then Obviously we'll have to readjust but you know for right now. We'll pass. It's a Friday. Remember. It's a Friday So you don't need to build up too big of a watch list here markets look like they're gonna continue to slump off so You got UPST here as well It's down over 5% and it's pulling back. So it could be a short right could be a Little close to the lows there, too. I like the affirm trade a little bit more Peloton that could be one maybe this one. I'm a fan of so far Obviously Neo and I owe one of my favorites Hey, it's hard to say that this is not a good stock to follow so far this afternoon Especially if the markets drop off more because it's like building a huge or it's building a really nice looking Fausto flag to the downside here So if it breaks below that support It seems like it leads to a pretty good short down over 5% I bring it up that way because certainly the majority of our students here know that you know I'm not always a sucker for Neo, you know, you can't fall in love with the same stock all day every day So I really haven't been following this much at all like today or even this week really So for right now it actually looks pretty good I'll slip this on there and then what else we got though in between maybe Ford down over 7% But it's not near the lows though dropped off a hell of a lot more earlier today. So it was a great short from the morning Not expecting as much now at this point I don't believe maybe we'll check out a couple more expensive trades like an AMD out there a coin base out there Not looking too great either All right, I'll tell you folks. I think that we're pretty much all good right now I don't really see too much else out there that looks great Michael calling out Pinterest here I'm just checking the cyber group chat board again You know, it's down over 5% so it looks pretty good and it's at the lows It's trying to fill the gap once more from the daily chart like one of the others All right, so I'll slip this on here, too. We're pretty familiar with Pinterest call All right folks, so that will do for right now now rich will be on the mic from three to four folks I at least for all of us inside the live trading room for any of us in social media Facebook live or YouTube or Twitter or LinkedIn first and foremost enjoy the weekend if you have any questions always feel free to shoot me a quick email I always like to post my email at the end of each stream here Josh at c2 trading calm And then otherwise if you're interested in joining our live trading room Just go right down to the link on the green banner below the stream to get yourself started We do live audio commentary from 9 30 to 10 30 each day and then as well from 3 to 4 Eastern each day as well So again, just go right down to the link on the green banner below to sign up for a week We look forward to joining a tad and you join us there and then again for Jeff and Grant and Michael and Brian and later all of us your lives Sam included you know Hey, I'll be in the chat board at least up until 3 30 hopefully a nice runner going into the clothes Maybe there could be something that could pop and go against the grain hopefully we'll see all right folks talk to you soon


Magic angle twisted by Laographine MATBG has been found to be capable of hosting three distinct orders, superconductivity, magnetism and topological order, which can be manipulated individually or combined together. This opens up the possibility of creating hybrid Josephson junctions, where the weak link between two superconductors is tuned by a gate voltage to a correlated insulating state with a more filling factor of minus 2. These junctions exhibit a Fraunhofer pattern with a magnetic hysteresis loop, which can be explained by the presence of both valley polarization and orbital magnetization. The effects are persistent even at temperatures as low as 3.5K, with magnetic hysteresis being observed down to 800 mK. Furthermore, the combination of magnetization and its induced current-driven magnetization switching allows for the creation of a programmable zero-field superconducting diode. This article was authored by J. D. S. Merida, the D. S. Carlin, S. Y. Young, and others.