Good morning, good afternoon, good evening, everybody. Wherever you're coming to us today, welcome to another episode of The Nonprofit Show. I am so thrilled, because I have one of my favorite guests of all times on with me today, Tony Bell of Fundraising Academy at National University. And this is a really unique thing. We have a topic that's such a big topic that we're gonna do one of our two-day drill downs. We don't do this very often, only a few times, a handful of times throughout the year. And today, as part of this two-day opportunity, we're gonna be talking about donor approaches and how to understand them. It's a big topic and Tony, we could not have a better guide for this conversation. So I'm super excited to jump into this. Again, if we haven't met yet, I'm Julia Patrick, CEO of the American Nonprofit Academy. As our executive producer, Kevin Pace reminded us today, not a member of the Motion Picture Academy. We have no votes. And Fundraising Academy, alas, has no votes, but you just have to deal with it. There is your ransom, the non-profit nerd, is off today, we'll be joining with her tomorrow. Again, we wanna thank all of our presenting sponsors who make this conversation possible. From Bloomerang, American Nonprofit Academy, your part-time controller, be generous. Fundraising Academy at National University, who, by the way, was one of our very first sponsors. Staffing boutique, non-profit thought leader, and the non-profit nerd. We've done more than 700 of these episodes. So if you wanna catch up, you can find us on any of our archive places from Roku, YouTube, Vimeo, and even Amazon Fire TV, where we have channels. You can also listen to the non-profit show. We just hit the 10,000 marker milestone, where 10,000 folks have downloaded, or we've had 10,000 downloads of our podcast, which is amazing. So we wanna make sure everybody knows you can queue up content that way. That's a lot of hours on a treadmill. I know, our vacuuming. I know, isn't that crazy? That's pretty exciting. That's fantastic, congratulations. Thank you, thank you. Tony Bell, Senior Director, Relationship Center, National University, Fundraising Academy. It's really, I think, important for all of our viewers and listeners to know that you are a man who's come from the non-profit sector. So when you talk about this in an educational way, and through this whole process, you're a man who's been on the other side of the desk, right? Oh, absolutely, absolutely. And that's what really, I mean, those experiences in raising money in my local community is what made me so passionate about the sector. And then as I started seeing opportunities to support professional learning and professional development in the sector, then I was like, pshh, you know, yes, that's where I need to be. So, you know, for the last four years, I have been beyond grateful to be part of National University and the Fundraising Academy to help support professional learning for the sector and really help elevate the work and the voices of the folks that are so passionate about the communities they serve.  I've witnessed this publicly. In many ways, it breaks my heart that I did not know about this when I started doing this, just for my community, as a non-paid professional, just as a community activist, you know, 30 years ago, I would have raised millions and millions of dollars more. I left too much money on the table and for my community and for the things that I cared about. And so that's why this is, to me, it's such a personal thing. And I wanna start off by explaining, having you explain to our viewers and listeners that this is what we're gonna talk about is kind of like a, if you will, a small piece of a much bigger process. So if you could talk briefly about the eight-step cause-selling cycle. Sure, absolutely, Julie. I'm happy to do that. You know, and again, honored to be today's representative of this curriculum. So Dr. David Lill was one of the architects or the architect of this curriculum. So it's great again to be here and help share it with everyone. But yeah, so this is what everyone's seeing right now is our cause-selling cycle is an eight-step cycle. Today, we're going to focus on step three on approach. What I love about this curriculum is how each of these steps just naturally flow into one another and support each other. But as a learner, like today, you will still, with our focus on approach, you will still walk away with really great information and actionable recommendations, if you will, to help you enhance your work. So it's great, one, two, three, four, five, six, seven, eight. But when you have those opportunities to dive into one of the steps, it'll still be super meaningful, even if you haven't really dived into the steps prior. Yeah, I think I agree with that. As an outsider, you know, I think, first of all, it is very natural. This is, we use the word cause-selling, that phraseology, but it is very natural and it is so, it reduces the amount of stress that a lot of times I think people think about when they're involved in fundraising because it just makes it like a natural component which I think ultimately Tony makes it more sustainable. Yeah, I totally agree. And the other thing that I wanted to point out too is when this curriculum was developed, it really was developed with emerging fundraising professionals in mind. So it really was developed to help support those fundraisers that were one to five years in their career. So like you said, Julia, I could have raised so much more money for my community had I had this understanding. We did this stuff, but we didn't have this understanding or necessarily embraced how it flows and supports each other. So when I hear incredible individuals like you and many other folks around the country that have been in the game and passionate about this for a while to hear them say, wish I had had it or even today I'm learning from it or it's reminding me of different strategies that I've used in the past. It's super exciting to hear how it supports folks really at any point in their career in fundraising. Right. Well, I wanna make sure that before we move forward and you can see, I have all my notes. But I shouldn't have probably taken those out now that I look at this on camera. But I mean, I really do use this. So this is the cause selling textbook from National University. As I understand it, you are in revision for an updated book, but this is where we actually take this information from as part of your curriculum. So let's dive in. And first off, talking about donor approach, can you give us just a real quick, like what does this mean? Cause we have seven of these. Yeah. We definitely do. There are seven approaches or at least we're highlighting seven different types of approaches that folks may use. But when we talk about approach, it's really about making a meaningful first impression. And how do we do that? So that's part of the approach. And again, for those folks that might dive in a little bit deeper into the curriculum and get the textbook, there's so much in there about approach and first impressions and all of that mindfulness and intention that needs to go into your thought process. When, before you actually engage with a donor but that's really what it's all about. It's making a meaningful first impression, opening up the conversation. Cause we talked about how these steps are, are kind of stackable, if you will. So the next step is needs discovery. So your approach really helps set the stage for a successful needs discovery conversation with the potential donor investor for your cause. So I love that you talked about this because it makes me think that if you understand these seven items that you're not just like, oh, I was successful or I was not successful. It makes me think that you can understand how or why you were successful or how or why you weren't successful. And so the first donor approach you talk about is relevant, the relevancy of a project approach. Talk to us about that. Yeah, so that is letting the potential donor investor to your organization know that you've done your research and you know what some of the specific areas are that are closest to their heart. What are their passion places? So by using this relevant approach, you are acknowledging to this individual that you have done your research, you know where their heart is sitting when it comes to their philanthropic giving. Wow, so we've talked about this a little bit before and I've asked you this question and I'll ask you again. Does this seem intrusive when as a fundraiser I go before somebody and I say, I've done my research and I know that you're interested in animal welfare, let's just say, is that how you would go about this or do you not use that word? I've done my research. I'm like, do you see what I'm saying? I totally see what you're saying. But leading up to the approach, you've had some pre-approach. Like the approach is like now we're here. Okay. And face to face of whatever that might mean, right? That could be online, a digital convening, face to face in some other brick and mortar location.  So you may have learned some of this through the original conversations, but I don't think that there's anything wrong too. And again, when some of this will make more sense when folks take a deeper dive into the curriculum, but also as part of your pre-approach and your prospecting, you're learning about these individuals. You might see them on LinkedIn, you might see them on Instagram. And even just through those, you will get some understanding potentially of their passion so that you can come to them with that relevant approach. So I don't know that I would necessarily say, I've checked you out. Because I've checked you out, this is what I know. You know what? You used a really good word. And I don't know if this is because you come from National University, but it could be. But you used the word learning. I've been learning. And I think that's a better, that's more comfortable than, I've done my research and I checked you out. So I get that. Anyway, I just had to put you on the hot seat a little bit. Okay, so we've gone from relevant impact, or relevant approach. Relevant project, yeah. Now we're gonna talk about impact. What does that mean? Because we use the word impact like it's the holy grail of all things in the nonprofit sector. But what are you talking about here? Yeah, so this approach conveys your organization's impact and also what could happen to your organization if you were unable to continue that work. So again, it's part of understanding your potential donor prior to this meeting. So that you would know potentially the types of things that would intrigue them around. And if are the results driven, are those impact numbers going to really resonate with them? We have a whole nother separate session on donor styles. And even understanding the donor style before going into this will help you also determine which of these approaches you might want to use. Because the impact approach may not be right for everyone, just like the relevant approach. None of these approaches are meant to be a one size fits all. That's why we're showing you seven of them. And I'm sure viewers and listeners could probably add another seven based on their experiences. So the impact approach is something like, because of individuals and donors like you, 20,000 children in our community don't have to worry about going into that hungry. So when I hear you use this, when we're talking about this donor approach, would it be fair to say that this is gonna be much more of like a stats based? Number oriented. And I don't wanna discount this, but maybe less emotional and more scientific. Does that make sense? I think it's a good marriage of data and passion. Because yeah, I think, but definitely the data piece that you're calling out is at the forefront of this impact approach. Yeah, interesting. Well, and I think that it's not just for the individuals, but I think funders and you've used that word brilliantly, the donor investor, this is where we're going folks.   And I don't want you to sway us too far off topic, but this is also where organizations need to have really tight alignment between programs and fundraising so that fundraisers can go out there and talk about the results of programs and really be able to share the impact of the programs that they're hoping that this potential donor investor will want to support. Yeah, I'm really, really glad you brought that up because I think you're absolutely right. And if ever we needed a reason to understand why this is all of a sudden something that everybody's talking about, it's that. I mean, yeah, really brilliant. Okay, so we've got one and two, we've talked about the alliance aspect of how you work with donors and we're now gonna move on to step number three. And this, I told you off air or maybe we were in the green room chatter at this point, but I think this is like one of my favorite words and curiosity, the curiosity approach. And I'm super intrigued because we don't use this word a lot with fundraising. So what does this mean? Well, I can tell you that at National University and especially today, we have new leadership, a new president for the university. And a curiosity mindset is something that's running through our entire organization. We really are instilling this curiosity mindset. So the curiosity approach is where you get the potential donor investor thinking about something as you start the conversation. Because again, these approaches are meant to lead you to the needs discovery. So you can have the larger conversation around what really resonates with the individual that you want to help support your cause.  Okay, that's interesting. But I mean, so the curiosity approach might be something like, have you ever imagined what it might feel like to know that your actions help the child sleep better at night? So that's just, yeah, and that's just off the top of my head. But that's kind of an example of a curiosity question where you are challenging in the best possible way the potential donor investor to really create a vision in their mind and really sit back and think, how would I feel if I had that opportunity? You know, Tony, this seems to me like, and correct me if I'm wrong, but this seems to me like a question or approach for a donor that I might quantify as like a big idea. Like not, okay, join us in the mission and you're gonna be one of many doing the same thing, but this is the bigger picture. This is like a named project or a named building. Is that what that means? Yes, yes, Julia, yes. I mean, I was going to say this approach, in my humble opinion, is perfect when you're in a capital campaign. This type of curiosity question, I think is really effective when you're in a capital campaign. I love it. I love it. I think this is a really cool idea. I see it's not for everyone. Before we move on, do you sense that this might be better for a certain demographic or age group or is this more like a personality thing? I think it's more of a person, yeah, I don't want to kind of box it into a demographic or yeah, I mean, I think asking that question can get anyone excited about the answer or really create that opportunity for them maybe to sit back and reflect a little bit before they launch into their answer. You know, it's such an interesting thing to be thinking about this entire process and I'm going to go ahead and pull up a list of all of our donor approaches and there's seven main ones that in the cause selling cycle you talk about and we've talked about this morning the relevant, the impact and the curiosity and what I heard you saying and maybe this is like the first time I've really understood this but you're kind of saying to us these are the, you've already done your homework you've already kind of figured out who it is you're going to be talking to this structure is just helping you refine how you're talking to somebody. Exactly, yeah, it's really meant to be a tool again to help open up and start the conversation right, again to really bridging into that larger needs discovery conversation again it's just, it's an opportunity as you're saying to reflect on what you know about this potential donor and investor and which of these approaches might really resonate with that individual so that you're just again it's all about providing tools and helping fundraisers be as best prepared as possible for that moment of truth. Right, right. Okay, now we don't have a lot of time left. I know it goes by too fast. It goes by too fast. Tomorrow, stay with us because we're going to go through the last four but ever since I've been preparing for this discussion with you and thinking about this a question popped up into my head that I just had to ask today as we're finishing up if you're meeting with a couple and you've determined that one might be one way and one might be the other how do you bridge that? That is a really good question and I think I'd be able I'm probably setting myself up for an even tougher question but this is where I reflect on the other tools that are available through cost selling like the donor styles. So I could figure out the donor style of companion A and the donor style of companion B or companion C with 2023. And if I understood their donor style then I might be able to see some connectivity or where some blind spots might be in my approach. So I would say that's when you have to take a really invest more time that's why it's called development and go deeper before you have your approach so you're understanding and being mindful of the different styles within that couple. Right. Well, and I'm because I'm thinking about now like multi-generational you have maybe the parents and then you have you know the kids or you have the grandkids or you have a financial advisor or you have the attorney or the accountant. Sure. It's a lot of voices now getting involved in this process. And I would say probably the most common kind of yin and yang of that would be the impact approach or the curiosity approach. Because they're pretty they're pretty far apart in the spectrum. So they're kind of the what you would come across. And again, you can do that. It's easy to ask that question. How would you feel if you could help 10,000 children? Love it. So there's ways to connect that. Yeah, I love that. Okay, cool. Well, I'm glad I asked that question. I know that was something that I've really been thinking about and kind of because you know, Tony, whenever we do these we have these opportunities to really learn from you. It dredges up in me personally all these times I've sat across the desk and asked for money or tried to build engagement and I wasn't successful, right? So because I've been going back 30 years of doing this in my community going why didn't this work? And so that was one of those things that popped up. But anyway, Julia, give yourself some grace on that and don't spend too much time.  But no, I mean, it really does, Tony. It really does make me think, you know, okay, when I was with that donor it's soup and salad or super salad, whatever. And you know, I didn't get the million dollars. I only got 500 grand. What happened? You know what I mean? So anyway, now tomorrow we're going to go through four more. And again, this is all about understanding how we can do a better job of connecting with our donors, building longer-term relationships and really making sure that we are setting everybody up for success. So stick with us tomorrow. Again, we don't do this very often. It's really a treat for us to be able to get this added thing. Tony Bell, Senior Director of Relationship Center at National University, Fundraising Academy. Again, Tony being an individual that's been in our sector and understands this, you're not just an academician, but you've really walked the walk. So it has been amazing. Before we let you go, could you very briefly talk about My Learning Portal? It's a new concept for the most part. It's free, right? Well, for the all part. For the all part. Yeah, yeah. Currently for the all part. So erupting goosebumps. I'm so excited. The Fundraising Academy team under the direction and leadership of an incredible director, Pearl Hoglund, have created this incredible digital resource that is free. You can go to the URL is on the lower right-hand corner I think. Thank you. And you create user ID and password and you have access to so much of the cause selling curriculum through the portal. So again, you can take a little deeper dive into what we've talked about today, but it really is part of our commitment in National University's commitment to elevate the nonprofit sector and specifically provide them with accessible tools to help them excel and better support the communities they serve. It's amazing. It's really beautifully done. It's logical. It's easy to use and it really allows you, I think Tony, if you were having an issue or concern or you lost your confidence in something, you can go on and really help drill down on what, you know, where you need help, right? Some extra support. And there are a few resources there that we created that aren't in the textbook. So, yeah, you'll find some other secret sauce in the portal there. I love it. It's beautifully done. I can't recommend it enough. Online.fundraising-academy excuse me, hyphen academy.org. Check them out. Again, I'm Julia Patrick, CEO of the American Nonprofit Academy. And once and the non-profit nerd will be back with us again tomorrow, we want to thank all of our presenting sponsors who allow these types of conversations from Blumerang, American Nonprofit Academy, your part-time controller. Be generous. Fundraising Academy at National University, Staffing Boutique, non-profit thought leader, and a non-profit nerd. Wow. You've really got me thinking in a new way today, Tony, there's so much more I have to say it kind of like builds my confidence in the process. Did I pick your curiosity? You did. And you made me think that if I know these things that I'm not like winging it while I'm meeting with somebody. Does that make sense? I don't know if I'm articulating that, but I can go in to meet with a donor investor more confident because I've already figured out this is the way I'm going to take the conversation. And you're also aware of the other approaches. So let's say for example, you know, you kind of misfire with the first approach, you can pivot and think about the other approaches that you're aware of and make that shift. Love that. Yeah, that's a really good comment. Well, we've talked about three of the seven. Join us tomorrow because we're going to be finishing up with the next four which are just as powerful, extremely different, but so relevant. And again, with my dog-eared copy of a cost-selling book I think it's going to be time for me to get a new book. Anyway, hey everybody. This has been a lot of fun. Super, super valuable to have any time I get with the amazing Tony Bell of Fundraising Academy at National University. Thank you, sir. Be well. Hey, have a great day. And as we remind everyone to stay well so you can do well. Thanks everybody. We'll see you back here tomorrow.


So we think, again, that putting it in the hands of more people is a way to make it more scalable. From the data source perspective, we support lots of different data sources, and again, that's along the same theme, but public, private data sources, structured, unstructured, et cetera. From the financial side, what it means is that, again, if you're paying per user, if you have to install per desktop, that gets to be a little bit unwieldy and it limits the reach, the scope of the community you're going to be able to serve. So there are a lot of interesting dimensions to it, both from the back-end side with something like the data stacks source and from the front-end side. Interesting. So because we've been talking, having covered this industry, we've been talking about expanding the use of BI to more workers in the enterprise. But we've kind of hit this 10 to 20% wall in terms of adoption, depending on what poll you happen to look at. So it sounds like you think a couple of things, the mobile and kind of the web-based access are two of the ways that we're going to kind of start to overcome that in the big data world. One approach I've always thought was really an excellent way to get more people to use BI is to essentially embed BI into the applications that they use every day. What steps are you guys taking in that regard? Well, first off, you think that's a legitimate strategy and if so, what steps are you doing to do that? So that, for instance, I don't have to leave one application and go to a BI application to do some analytics. Right, yeah, you're dead on, that's exactly right. At JetStuff, about half of our users are using it embedded. So it is very strong thrust for us. We make that easy by, for example, being open source and open APIs. So we publish all of our APIs. We also think that it's very important for the reason of contextual information. And what I mean by that is, exactly as you said, once you're inside the application, you don't want to have to leave and go elsewhere to try to sort things out. You want to see, okay, so this is what's happening, why, what can I learn from that, what can I predict from that? And that's the embedded lead you then to the contextual insights. I think that's key, because you're in the same environment, it really allows you to, as you said, understand in context what it is you're working with, whatever job you might be doing, as opposed to closing down, moving to a new application, getting distracted, and next thing you know, you lose some of the power of BI because you've kind of lost the context. Exactly right, yeah. We see that as an interesting trend, and again, it fits very well with the big data focus on collecting the information from all these places, which gives you all these new contexts that lead to insights, as well as deployment on the various devices and having real-time access from your mobile device, for example, as well as your web, and being able to make the kinds of decisions and insights that lead to better results, better performance of your organization. Well, we're almost out of time, but I wanted to ask, so going forward, for Jaspersoft, what are we looking at in the next year or two? As I mentioned, I've been covering you guys for quite a while, a very innovative company. What can we expect in the next year or two? Okay, so you'll be seeing more and better, and some of the things that we're now announcing are, for example, more interactivity in the presentation. So we've had dashboards and reports and so forth. We now provide the capability for users to do on-the-fly resorting and inclusion or exclusion of various site information, so forth, whatever, all without training, you know, that sort of the search model where you just go type what you want in the search box and off and running, same kind of thing here where we have the kind of controls that lead to that. You'll see higher performance, you'll see more device support, you'll see better graphics with our new charting engine and so forth, so lots of, I think, really interesting announcements and capabilities on the horizon. Okay, great, well, we're looking forward to seeing those. Hopefully we'll run into you again in some more events. There will be a lot of big data events and I'm sure you will be as well. Ben Connor from Jaspersoft, thanks so much for joining us on theCUBE, live here at Cassandra Summit in beautiful Santa Clara. We'll be right back in a few moments.


So you may know that I have the best terminal build out there and it just got a little bit better. In fact, this is one of those things that I think you don't often think that you want, but once you know that it's out there, it's something you just got to have. So my minimal terminal build now has a feature. I don't know any other terminal that has this, but it's fantastic.  You may know that, of course, I use Sucluses ST. I have a lot of my own patches and extra additions to that. But one thing that's very nice about Sucluses ST is you can patch in the ability of external pipe. And basically what that does is it takes all the content on the screen and you can pipe that to some external script to do something with it. So one thing that I think is on the Sucluses website that they have is following links. And I have this in my terminal build. This isn't the big thing. I'll show you that in just one second. But for example, if I press Alt-L, what it does is it searches everything on the screen for links to something, URLs. And you can select one of those by typing it in. You can select it in D menu, and that will bring it up in a new window or whatever else. So that's very nice. So that's Alt-L. I also have Alt-Y, which is the same thing, but it copies the URL. So I'm going to copy that. So that's a really nice feature. That's a really nice ability. And it's especially nice when, let's say you have a whole bunch of content or something like that. You can still get a lot of these links just by following them or something like that. But we don't need to. Oh, and by the way, a couple of weeks ago, someone actually added in the ability for this to work over line breaks. I think his name was Kaiser Soze. I don't actually know if that's his real name, but thank you, Kaiser. Anyway, so what's the big thing? So last night, I was on the Mumble server. And if you are on the Mumble server, you may know that Jay Walker is on there 24-7, pretty much. And he had this really brilliant idea. His idea was this.  You're doing something, maybe you're bug testing or running commands. And you often have to copy. You want to copy the output of a command somewhere else. So usually how you do that, in the same way that, you know, normally you might highlight one of these URLs, you have to go to your mouse, scroll over it, get exactly right, copy it and do whatever. Same thing with the output of a command like this, which is a big pain. I mean, if we want to copy all this, it's just an annoyance. I mean, we hate using the mouse on this channel anyway, but either way, this is a particularly annoying thing to do and get exactly right. So J. Walker's idea was basically, let's have the same thing, but same thing as, you know, following URLs, it's up for copying the output of commands. And, you know, we sort of worked together last night and a little today, and we got something that works really well. Let me show you how it works. So if I press alt and then what did I bind it to? Alt O for output. It does this. It'll give you a dmin you prompt and it'll list out the commands that it detects you have run. So let's say I want the output of LSA. Now, once you have selected that, that has been copied to your clipboard. It's copied with XClip actually. So let's say I open up a VimBuffer and I can paste that in and you will see that the output of that command, including the command itself, you know, was successfully copied. So this is extremely useful. Now first off, I will say, despite ST being the most minimalist terminal emulator ever, I don't know of any other terminal emulator that has something just like this, but this is a phenomenal ability because, you know, there's a lot of time when you have to copy output from a particular command and use it somewhere else. So we figured out a way to do this. And again, it's actually already in my ST build. If you want to go on GitHub, I just added it in. Again, it's alt O. It does require dmenu, of course. All of these link following commands require dmenu because that's the menu prompt. And it also requires XClip. You probably already have XClip installed, but that's just the thing that actually copies the text. But that's pretty much all you need. And once you have that, you can run any command. You know, you might have an error. You might have a necessary output. You need to copy to Firefox. And now you can copy all of that without using the mouse, without moving around, just, you know, choosing whatever you want to, whichever one and running with it. So that's fantastic. This is one of the things, this is another life lesson as to how an extensible terminal is much more useful. Now, just to educate you, I do want to at least show you what we're doing in the script because we had to sort of do some weird stuff. Let me go ahead and what did I name it? ST copy out. So if you install my ST build, this will install automatically. And you'll, you don't have to worry about it. It just, you automatically get the binding. Oh, and I will say, I don't know if I mentioned this in a video, but my ST build, which I have done videos on before, it's now in the AUR.  Anyway, so how it actually works is external pipe, of course, basically what it does is it takes all the content on the screen and pipes it to a script. And this is the script that it's, it's piped to. Okay, so it makes a temp file, it takes the standard input and puts it in that temp file. Then what it does is it actually gets your PS one, it wants to estimate what your, your prompt here looks like and how it does that. What this line is, is it greps out all the lines with content on them that aren't white space, because we don't want, you know, all these lines with nothing on it. It gets the last one of those and it gets, gets the first element in there. And the reason we do that is actually because basically sometimes people's prompts will change depending on what directory they're in. So we just take the first word of those prompts because that's usually unique enough. Okay, so we take that. And then we give them a D menu prompt grepping out all of the lines on their terminal that have that match that have their prompt on it. And that's the menu we give them to select their output from. So they select that. And this is just to escape characters, we actually find, I don't know if anyone knows anything about this, but apparently, like, usually, if you want to escape characters, you can use printf with the like quotation or percentage sine Q. But for some reason, that doesn't work in the way that ST calls this. So we had to do something hacky and escape characters like this. But either way, then what it does, once you've chosen what you what which command you want, it uses oct to search for that command and take everything from that to the next command prompt. And since that to x clip. So that's how it works. So we had to we approach this from different angles. But this is the best way we got it to work. But if you have any suggestions for improvement, feel free to give it give them. So anyway, this should be pretty useful. Again, you don't have to know how this thing is actually working to do it. But I mean, notice how small the script is, with just a couple lines we added in this really great feature to be able to copy output. So I encourage you to check it out. If you have any other suggestions for the kind of things we can do with this, feel free to to, I guess, volunteer them. The there is one improvement we we talked about. So external pipe as it exists right now, it only uses I mean, if I let's say I clear the output here, it's only going to use the content that is on the screen right now, like it's not going to look for commands that, you know, may have already passed through, you've already scrolled by or something like that. So it might be nice to have external pipe look at all the previous commands, there may already be a patch out there that does that, like looks at, you know, as the ST might have ST has, you know, history of the commands run and stuff like that. So there might be a way to do that. But as it is right now, how this is working is it only shows the commands, your most recent commands that are on the screen. So just be aware of that. Otherwise, you know, that's pretty much it. So I hope you enjoy it again. I'll put the links to my GitHub repository. And I guess the the ST build on suckless, which of course, you'd have to patch all the stuff in but my build should work pretty much out the box. Anyway, that's about it. Thanks again to Jake Walker for having that brilliant idea. And yeah, that's about it. See you guys next time.


This is Jasmine Choi. It is my great pleasure to present you some flute tutorial videos of works by Bach, Debussy, and Telemann, as well as some flute fundamental videos of tone exercises, articulations, vibratoes, tips and practicing, circular breathing and so on. It's a pleasure for me to share some of my personal experiences, some tips and tricks, and some advices for the young flute students and musicians in general as well. I hope you to join to this Henle music tutorials and learn together, have fun, and be part of it. Thank you.


We've made great progress, if you can probably see in the background, the equipment that's moving out here today. So back in May it was just little white flags stuck up in the in the field in the background and now it's pretty much a completed section there behind us and to get a perspective of scale, it's somebody might see the drone picture flying over it, but we were talking it. We need to park a pickup truck down in the bottom of that thing just to show everyone how how wide and deep the canal section actually is. I've heard it time and again they say my gosh I was over there two weeks ago and went back by today and my gosh those guys are moving some dirt and I think this first section had 600,000 yards of dirt to be moved in it. Their target is to be finished by Thanksgiving. This construction started July the 1st is when the tractors arrived. So in six weeks, actually probably five weeks, we had about a four and a half inch rain event in the middle of it. They're half done. I think we heard today that they've moved about 300,000 yards of dirt. When we first started raising rice on the Grand Prairie, which was over a hundred years ago, there were advertisements and postcards of the water coming out of a new well they had just drilled. Those were nine and five eighths inch pipes and they were on a 45 degree angle and it would shoot water out two or three feet, two to three thousand gallons a minute. Now then on the Grand Prairie in those same places, we might get six hundred gallons a minute. So the water is not there that used to be there. This construction we're doing right now will replace any need for Grand Prairie to be pumping out of the sport. We've got a well on our place. It's 956 feet deep. It pumps about 2,000 gallons a minute. We couldn't farm without it, but of what I like to I sure would. This project we're doing now, in my mind it is essential if we're going to continue agriculture as we know it in the Grand Prairie. The bottom line and the whole objective is for us to supply water to take care of their groundwater depletion. At the same time, it's got to be something that the farmers can afford. Right now, we're kind of aiming at Hazen Airport, which is west of the town of Hazen, about 10 miles. So hopefully we can keep progressing and speed the transition from one section to the next. We're kind of confident that we'll be able to do that. Once we demonstrate that we can do all this, well then it's just doing it over and over and over down the line. I'm more excited about this project now than I've ever been before. We're going to get it done. We're going to solve the water problem on the Grand Prairie.


But why does the search station have hot sauce? I don't know. This is the original hot sauce, Hank's Heat. Comes out with kind of like a one, two punch kind of deal. It's got cayenne peppers and habanero peppers. Fortunately, we have testers to see if you can take it. At first I was like, oh, maybe it's not gonna be that hot and it just kicks in as the habanero. Really good though. The sauce is the Hank camouflage sauce. It's more of like a kind of a sweet tangy sauce with a little bit of heat that kicks in afterwards. This does not have habanero peppers in it, fortunately for me. Cayenne peppers and this one's also got the butter. Makes a nice, nice smooth texture, really good. I'd put this on everything. It's not nearly as hot. It's got a little bit of an afterburn, not like an explosion afterburn. There's like a little bit, like a rumbly heat going on. This is the Hank cilantro sauce. Cilantro, I'm gonna play on words there. Basically this is the same sauce, but infused. Yes, highly scientific. With cilantro. Cilantro wad. It's got a nice cilantro flavor. Definitely a fish taco sauce or something. You wanna marinate fish in it? Oh my gosh. This one is the herb infused Hank sauce. It's just gonna be a nice, kind of warm flavorful sauce that you don't wanna like, something that's gonna rock your world, but you want something that's just gonna add a nice undertone of heat and flavor to whatever you're eating. So let's see what I think. This one is hotter for sure. Then the cilantro and the camouflage. Still not awful because I'm not choking and dying right now. But a real nice, warm flavor, real peppery, but not like, I just bit into a pepper. And I definitely feel the butter. Hank sauce.


Welcome to this state of the Operator Framework Update Talk. My name is Daniel Messer. I'm a product manager at Red Hat working on the Operator Framework Open Source Project. With me today is Jason Dobies. Hey, Jason. Hey, Daniel. My name is Jason Dobies. I'm a developer advocate at Red Hat working on OpenShift. Great. The two of us are going to walk you through the current state of the Operator and Operator Framework. Operator Framework really consists of three major parts, and one of which we'll see in a demo later in this webinar. The first part is the Operator SDK, which addresses operator developers, allowing them to building and packaging operators' ad-ease without writing a lot of the boilerplate code that is usually associated with writing operators against Kubernetes. And we have the Operator Life Sacker Manager, which is a central component on cluster, which you can use to centrally deploy and update operators. And then we have the third component, which is Operator Hub I.O., which is a community catalog to which you can publish your operator that you've written and make it installable and updateable from the web. Below is also the link to the upstream source code, which suggests you follow and start this repository. So let's take a look at what you can do today with the Operator Framework. First part is writing an operator, right? And we really have the ability to address virtually any kind of background in programming, if you will, when it comes to creating operators, right? So people that are usually packaging their software with Helm can use the Helm-based Operator SDK to convert the Helm chart to an operator. This would be incapable of installing and updating the managed application. People in administrative roles with ops background are usually very proficient in DSL called Ansible, an automation tool, also very popular upstream. You can use Ansible playbooks to write operators with the Operator SDK, so there's no further knowledge required other than how to express the automation and life-cycle management of your application in Ansible playbook tasks, playbooks, and roles. So this will give you install and update capability as well as cover some of the very basic day-to-day operations of an application. And then finally, the Operator SDK allows you to write fully-fledged operators that are capable of using not only the basic capabilities of Kubernetes to install and update applications and model day-to operations like backup and restore, but are also capable of looking inside the workload to do metrics and alert analysis and use this information to tune the workload so that it almost runs on autopilot. This is possible with the Godang SDK, where you write operators with the Go programming language and use the SDK to scaffold a lot of the boilerplate code that you would normally need in order to leverage client Go. The Operator SDK also comes with packaging, so you can readily publish and ship your operator to something like Operator Hub.io, and also comes with a test harness, which allows you to test and validate the operator that you just built. Here are a couple of things that we recently added to the Operator SDK if you are in the business of writing an operator. We recently transitioned to Helm V3 as the project made its debut into this new major release, so with the SDK, you can write operators using Helm V2 and V3 charts, and they're going to get applied using the Helm V3 libraries. We also have conversion support, so if you have previously deployed Helm-based operators with the SDK endeavor written with Helm V2, there's auto-conversioning happening in the background. The SDK also supports you now much better in generating the metadata for your operator as part of the scaffolding, and the Ansible part is going to allow you to reuse Ansible collections, so this is a big new step in the Ansible ecosystem to manage all those modules out of tree, and the SDK provides a collection for all the Kubernetes modules that you use as part of your playbook to create resources on cluster. Speaking of Kubernetes, the SDK is always keeping up with the latest upstream release of Kubernetes. It's typically in an N-1 fashion, and in the past releases of the SDK, we have been able to basically work in lockstep with the upstream Kubernetes releases so that you can always use the newest features that have been released in the Kubernetes API level. Recently, you are also able to create metric endpoints for your operators. The SDK is going to help you with that as well, so you'll really provide that insight into your operator and its ability to handle the application on cluster. And last but not least, there is a testing utility that we've shipped for some time in the SDK now called Scorecard. This utility helps you do some very basic validation and behavioral analysis of your operator and check if it conforms to known best practices, and this new version of Scorecard has a new output format that makes it very easy to reuse Scorecard in a release pipeline through which you can determine whether or not the operator actually has passed certain tests or not. When it comes to actually running operators, the operator lifecycle manager is really the central point on cluster to do that. It supports the operator developer in using the packaging that comes out of the SDK and put that into a catalog. A catalog can be instantiated on cluster, which is then used by an administrator who can basically pick and choose from this catalog to install an operator. And an installation is not just deploying the pod that has the operator as a container image inside, but it's also doing dependency resolution should your operator require other operators. OLM will automatically resolve those dependencies if available and will keep them in sync during the lifecycle of the operators, which includes updates, of course. Some things that can never happen on a cluster is that two operators are installed that own the same resource they are managing, right? So thanks to the built-in collision detection inside OLM, you and your cluster are basically prevented from that. So throughout updates, OLM will make sure that dependencies are always resolved and that collisions are avoided and updates can be automatic or manually triggered and they are basically available as soon as the catalog refreshes. The user component on the cluster is where tenants in your Kubernetes cluster are actually using the operator and its services. OLM helps them discover which operators are actually available to them and just for them without cluster-wide privileges like reading custom resource definitions, right? So at a very granular level, you can give certain tenants on your cluster, which is really useful in a multi-tenant environment, insight into which operators are available, which operators are installed. And when they use these operators, provide them with rich UI controls to actually interact with their services. So in the packaging metadata of operators through OLM, there are annotations that can be used by graphic consoles, as you will see later in the demo, that really make interacting with an operator feel like a cloud-native experience, but everywhere where your cluster rolls. Some noticeable features that we've added to OLM over the past couple of months was the ability to configure an operator and have this configuration persist across updates. We've also invested quite a lot in exposing more health data of operators and provide better error messages, as well as supporting operators that run in proxy or disconnected environments, which is very important for customers that run in a commercial setting, but don't want to expose their Kubernetes cluster to the Internet, right? The ability to install operators only for certain tenants and also make them only visible for certain tenants is a key component of OLM, so we do support operator tendency. Operators of operators now have the ability to define the update path through which OLM will update the installed operators, so this is usually done by pointing back to the most previous version of the operator that you want to update from, but you can also now extend this to a version range, for instance, so that you say that the V3 release is able to update the V2 and also all the V1 releases. Last but not least, we are also working on making operator catalogs something that you can store in a regular container registry. We have the ability to have these catalogs sit inside databases which are packaged inside a container image and fronted by a GRPC API, which is something that OLM can use as a catalog on cluster. And last but not least, we do have operator hub.io, which made great progress in the last year, now sponsoring over 100 operators that are frequently updated from a central source, easily discoverable via a web interface. So where are we going with all of this? Now a couple of things that are going to happen in the near future. First we are going to introduce a new way to actually bundle the operator metadata and ship this around. Today this is mostly happening in the form of tar balls that are sitting on disk and are getting pushed to backends like quay.io. In the future you will be able to take all of your operator metadata, which includes its custom resource definitions, its package format for OLM, the cluster service version, and put this into a folder from which we build a container image. This container image is not a runnable piece of software, but contains all the required metadata and some metadata on the image itself in order to ship it to any container registry of your choice and have it be something that can be installed directly using OLM on cluster. So you don't need to ship people a lot of YAML manifests that they need to apply. The only thing you need to do is publish a container in a container registry and on the cluster where OLM is installed, instantiate a new operator installation referencing that so-called bundle image. And that is really very similar to locally installing an RPM without making it part of a larger repository or a catalog. So something where you can quickly and easily install an operator and see if it works and still have the complete experience. This works with standard container and container image tooling and is available to OLM as long as it has access to that container registry. Operator hub.io in the future will start to accept this new format as well while maintaining the ability to submit in the older format that we have today. Moving forward, we also have the ability to form catalogs out of groups of these bundle images. So suppose you have multiple versions of these or actually multiple different operators packaged as these and you want to build a custom catalog that you want to expose to users on your cluster because it contains operators that you have tested and embedded and are known to be trustworthy. You can do so in the future quite easily with a new tool called OPM, the operator package manager. So if operator bundles are the RPMs for operators, OPM is essentially the YUM or DNF equivalent to that in the OLM world. It's a simple command line utility which allows you to reference existing bundle images that you've already pushed and put them into a catalog. A catalog, again, is nothing else than a container image, but instead of like in the past containing copies of the entire metadata, it will now just contain enough metadata of your operator to display it nicely in the UI like operator hub.io and for the rest, contain pointers to the actual bundle image in order to do the rest of the installation. So kind of very similar to how a YUM or DNF repository works, right? So here you see how you actually start a new index with just a single package inside and you can add to this index subsequently by just repeatedly calling the index add operation. That will build a new container image and as soon as you push that, you have eventually created and refreshed a catalog. And you can push this with any container tooling of your choice to a container registry of your choice and then reference that as a catalog for OLM which you can then use on your cluster to give people an option, a selection of installing operators. You see here this catalog is also able to refresh itself. So in this particular example, it has been set to refreshing at the 30 minutes. So this is how you achieve auto updates and always up to date catalogs on your cluster. Now what goes inside this package is essentially the same as of today. It's a CSV and more one or more custom resource definitions of your operator. Now in the future, we will also allow you to package your operators with very minimal metadata. So instead of inlining a lot of the basic Kubernetes objects like deployments, roles, customs, security context constraints and the like into a large file like the CSV, we will actually let you ship the plain Kubernetes objects that form your operator be the deployment, stateful set or demon set or whatever else, right? And in addition to that, we just have enough metadata to on the one hand make the operator display nicely on something like operator hub.io and make it something that OLM can install by allowing you to specify dependencies as well as ownership of certain APIs. That hopefully makes it much easier to actually package an operator for OLM because you just essentially copy the manifest that you have anyway into a folder location, add some minimal metadata to it and then build a container out of that. This is complemented by a new API that we will introduce soon, which should simplify the interaction with operators on an operator and an operator installation. And on the right hand side, you will see the new object that we simply call operator, which is the primary point of contact for the administrator to install an operator, be it from a catalog or from a standalone bundle, and all at the same time configure the way it's updated, which namespaces access to all this kind of stuff that we used to do in four different objects we are now able to do in one API. And that's also the point where you would start looking for information about how your operator is doing, how it is updating, if it has updates available, and the like. For users, this gets really natural on the command line by having the ability to essentially just cube CTL get operators and see what operators they have available in their namespace. So a very natural way to interact with the system and discover which operators have been installed by your admin. On the SDK side, we increase the test tooling capability significantly. We have realized that it was probably too much of an overhead and toil to create custom tests for your operator, which is why we are teaming up with the upstream community around a tool called Cuddle, which allows you to express tests for your operator just using gamma manifests. So in this example, you see basically two manifests that are working in a before or after fashion. So as part of a new custom test that Scorecard will support, you have the ability to define the desired state of your operator by using one of its services on the left-hand side. So in this case, we are creating a CockroachDB cluster using that operator with certain specs and properties. On the right-hand side, you see the expected state of things on cluster as that operator starts to work on your request. And these two things, you are basically able to package inside the operator bundle itself and call it a test. And what Scorecard will be able to do is take that test metadata out of your operator bundle and with your operator being deployed by OLM, start testing your operator in this fashion. First, expressing the desired state using the operator's custom resource and then using that very, very similar YAML syntax as you know it from Kubernetes and see if your operator actually did what it was supposed to be doing, which in this case is creating a deployment which is supposed to have three replicas in ready state after that custom resource called CockroachDB was reconciled by the operator. And that's all it takes to actually test an operator in the future. So you don't need to express tests or complex flows in Golang or Ansible. You can simply ship us these kind of manifests and in a before and after comparison, you can test your operator in a pipeline. Starting off the SDK, we will transition to using QtBuilder under the hood for scaffolding Golang operators. So today the operator SDK maintains its own Golang software development kit, which also uses controller runtime, a very popular upstream library for abstracting working with the Kubernetes API. And this exists next to the Ansible and Helm SDK, which is then something you can leverage to partially test your operator, as you have seen before, and use the packaging to create operator bundles. Now we have worked with the upstream community around QtBuilder to join that particular project in order to convene on a single implementation of how scaffolding and building scaffolds for Golang operators will work. So under the hood with the release of operator SDK 1.0, which will happen later this year, you will be able to use QtBuilder transparently under the hood of the operator SDK CLI. And that means you can virtually import any existing QtBuilder project and work with the same command line switches with the operator SDK to write an operator and add new APIs, add open API validations back and all this stuff. That basically makes one common project for scaffolding Golang operators a reality and the operator SDK project will join the QtBuilder upstream project in this regard. Some SDK and Azure SDK will remain available, of course, and will seamlessly integrate with the rest of the SDK's testing and packaging capabilities. To summarize all of that, for developers we make it easier to create operators and create operator bundles. We will make you use Kubernetes tooling, very familiar container tooling to actually build bundles and catalogs. We will have integrated custom functional testing, which is extremely easy to use and we allow you to write operators in the QtBuilder style while not missing any of the SDK's features and functional testing and packaging. On the cluster side for administrators, we make it easier to create operators using a new object called operator, which will be the single point of contact for those administrators in dealing with operators. We will also allow them in the future to actually pick the operator version that they want to install. So they are also able to install older versions of the operator, which is not something that we support directly today. And we will include tooling like the new operator package manager, not only to create yum dnf style repositories of operators, but also mirror those repositories to potentially disconnected registry should your cluster not be connected to the Internet. Last but not least, this will also be something very interesting for operator developers. OLM will be able to support webhooks on behalf of the operator. So as an operator developer, you no longer need to maintain your own logic and procedures to register your webhook certificates and have them rotated in order to stay current. That is something that in the future OLM will allow you to do. So with all those new fancy features now for some interesting demos brought to you by Jason. Take it away, Jason. Awesome. Thank you, Daniel. You guys should be seeing my screen. So a lot of what he talked about was the new improvements to the SDK, to writing, to testing.  This demo, we're going to pivot a little bit and talk a little bit more about usage. So we did talk about, okay, so we did talk about OLM and how you can use it to catalog operators, how you can use it to install them. So what we're looking at right now is an OpenShift 4.3 cluster. I'm in a demo project you can see up at the top bar and we're in the operator hub. This is giving us a view of all the different operators we can install into our cluster cluster. If you look on the right side, I'm not completely sure if you can see my mouse pointer, but if you look on the right side, we're up at 203 items. I get super excited because every time I do this demo, that number increases every single time and it's really awesome to see we're up at this height at this point. So I'm going to filter out, just for AMQ, we're going to do this demo on the AMQ Streams operator provided by Red Hat. I can see some basic information here. A lot of this stuff is available on operatorhub.io that Daniel was talking about. We're going to like to install it into our demo project here. As some extra information, we didn't talk too much in this particular presentation about the update channels, but it is possible for OLM to manage multiple channels. So in this case, we have stable, but if we had a nightly or beta or however you want to subdivide your quality and your release cadence, you have that capability in OLM. We're going to say an automatic update approval strategy. In this case, for this demo, that's not going to matter because ultimately, we're just going to install this single operator and that's going to go from there. You'll also notice, Daniel mentioned, and this is the first time I heard about this. So this is really cool that in the future, we're going to have better support for saying, I want to install an older version. Right now, we're just saying, give me what's coming out of the stable, and it's going to go ahead and give us this 1.4.0. Now, while that's installing, I'm going to hop over to our developer console. So in the top left, if you didn't see my cursor, we have this drop down now in, as of 4.2, I believe, to switch between the administrative and the developer view. They carry the same information. Developer view, I'm just using in this case to show that we have a deployment, and at the end of the day, what OLM is doing right now is deploying this operator pot. So we see that it has come up, and if I hop back to the administrator view and navigate back to our installed operators, we see that, yes, our Streams operator got successfully installed. So let's take a look at what we can do with it. So we click into it, and we see a lot of things listed on here. Each of these items you see in these boxes under provided APIs are the custom resource definitions supported by this particular operator. For now, we're going to focus in on the Kafka one in particular, and it's going to give us the ability to create one. Now it's going to display YAML like we're used to seeing in Kubernetes in an OpenShift. I want to highlight a second line here. The kind is Kafka. One of the benefits of operators being built on the custom resource definition functionality is it lets us express our APIs in something the user is going to understand. We've modeled our objects after what they actually represent in our application. We can talk to OpenShift and say, I want you to create me a Kafka instance. So we're going to accept the defaults and hit create. And we'll see at the bottom here we have it listed that this was the new Kafka cluster we created. And if we click through, I'm going to come back to this overview tab, but for now I want to go to resources because it actually runs pretty quick. If you've never seen operators install a complex application, which is to say something beyond a fairly simple hello world demo, this might be a bit of a surprise. It's also a very cool surprise. Because I asked OpenShift, hey, deploy me a Kafka cluster. That's it. You all saw the single YAML definition. It has created over a dozen resources now. Everything ranging from secrets to services to pods. So it started by deploying the three zookeepers, which came up pretty much before I even clicked into this tab. And then the next step was to deploy the actual Kafka instances. Now the defaults were for three of each, which is fine, that's exactly what we've gotten. We're going to dork with that a little bit later. But for now, let's dig into one. And you should see this looks like your normal pod interface to OpenShift. But I want to be able to show you that, that I can't type when people are watching, but beyond that, I can query this server for the number of topics. And no surprise, there's not actually any topics here. That's, again, not a surprise. We just deployed this cluster. We'll leave that running in a tab and we'll come back to it. So if I navigate back to the installed operator, again, each of these represents a custom resource that I can interact with at the OpenShift API level. I can create them like I did with the Kafka instance. I can then edit them, patch them and delete them. But what's really cool is that it doesn't have to be something tangible on the server. I don't have to necessarily have it deploy a pod or create a service for me.  So we rename it to demo for the purposes of the demo and hit create. And it's gone and created the custom resource for us. So if we go back into our running cluster and we list all the topics, we see the demo topic has been created. So again, we created a resource in OpenShift that didn't correspond to any of the existing resource definitions. There was no pods created, no services. But the operator understood that when you tell me to create a Kafka topic resource, I know what to do. And by that, it means go into the actual underlying guts of the server and deploy a new topic and create it and call it demo topic. So let's hop back over to the actual Kafka cluster itself. Again, I navigate through the top here. We're listing all of our custom resource types. And this is the one we deployed to the demo called My Cluster. Now on this overview page you see a graphic representation of its configuration. And we're able to see some basic things that it's configured to deploy three zookeepers, three Kafka brokers and so on. We could if we wanted to use this UI to edit the number of brokers and scale it up. The same time, it's still a resource in OpenShift. So we can always get to our YAML view to do our editing like we're used to. In this case, I'm gonna go down, I'm gonna set it to four replicas for the Kafka brokers itself. And I'll hit save and quickly bump over to resources. And you can see here, it was very quick to stand up. But if you look at the timestamp of this new one, this Kafka three was created just a few seconds ago. So the operator received the configuration or an update to the existing Kafka cluster that said, hey, now we expect to see four cluster instances. The operator took the necessary steps to scale things up. Now it didn't just scale up a new pod. We go inside of the instance itself. So I now have a terminal. If you look at the top here, we're looking at number three. And if we list the topics, we see our demo topic listed. And this is where we're adding functionality on top of what's provided by OpenShift. It's not just me simply saying, I wanna scale the pods up like you've seen in a number of OpenShift demos. So I'm not using the little rocker switches or doing a scale command from the command line. What it's doing here is the operator understands this is what it means when I get a new broker pod deployed. I need to bring it into the system and I need to have it accessible by the full blown cluster. So all of this extra knowledge that takes place beyond simply scaling up a new pod beyond deploying a simple container, you're not putting it on the user. The operator understands this is what it has to do to get connected to the underlying system in the underlying cluster. So there's a lot I can do beyond this. We're going to stop it there but the big takeaways I want you to remember are that inside of OpenShift we can get to this operator hub and this is going to list us all of our available operators that can be installed. Once they're installed, they are providing this very rich, very custom API that users can interact with. And it's not gonna be that difficult for the users to understand it because it's just like interacting with OpenShift now. If you can create a pod, if you can create a service, you understand the YAML manifest that's required. It's just setting the kind to one of these particular types. This is gonna let our users interact with it in a very custom manner. So I'm talking in terms of Kafka and in terms of topics. And again, that topic example, I absolutely love doing it in demos like this because it breaks everyone from the initial idea that, oh, my operator is just gonna create pods and create deployments. It's really showing you that these resources are modeled after the domain itself and the operator can understand when a resource is created in OpenShift, it's gonna take the necessary steps to make that stuff live. So with that, I'm gonna end it. Thank you, Jason. This was such an impressive demo and really highlighted the capabilities of operators that are specific to the workload it manages, right? And the interesting bit about the AIMQ Kafka operator is that it actually hasn't been written with the operator SDK. It has been written with a homebrew Java SDK, but still works just fine as a packaged operator for OLM, which shows you how pluggable this framework is where you pick and choose the tooling that you need in order to get your operator developed or on cluster or just published on operator hub.io. We'll wanna close this with a couple of links and follow-up information for you so you can reach us in the Kubernetes snag on the Kubernetes operators channel. The GitHub repository of the operator framework is where it all starts. If you want to contribute code or your operator to operator hub.io, the link to operator hub.io is also on the slide. And last but not least, should you have a question in either how to write your operator or regarding the packaging for OLM or testing it for Scorecard, there's a meeting list using the Google Groups organization called operator-framework. With that, I'm calling this a wrap. Thank you for listening. Goodbye and see you on the next one.


The next step in coding and data science when you're working with web data is to understand a little bit about XML. I like to think of this as the part of web data that follows the imperative data define thyself XML stands for extensible markup language. And what it is XML is semi structured data.  But unlike HTML, the tags are free to be defined any way you want. And so you have this enormous flexibility in there, but you're still able to specify so the computer can read it. Now there's a couple of places where you're going to see XML files. Number one is in web data. HTML defines the structure of a web page. But if they're feeding data into it, then that will often come in the form of an XML file. Interestingly, Microsoft Office files, if you have doc x or xlsx, x part at the end stands for a version of XML that's used to create these documents. If you use iTunes, the library information that has all of your artists and your genres and your ratings and stuff, that's all stored in an XML file. And then finally data files that often go with particular programs can be saved as XML as a way of representing the structure of the data to the program. And for XML tags use opening and closing angle brackets just like HTML did. Again, the major difference is that you're free to define the tags however you want. So for instance, thinking about iTunes, you can define a tag that's genre, and you have the angle brackets and genre to begin that information. And then you have the angle brackets with the backslash to let it know you're done with that piece of information. Or you can do it for composer, or you can do it for rating, or you can do it for comments. And you can create any tags you want. And you put the information in between those two things. Now, let's take an example of how this works. I'm going to show you a quick data set that comes from the web. It's at airgas.com. And API, this is a website that stores information about automobile Formula One racing. Let's go to this web page and take a quick look at what it's like. So here we are at airgas.com. And it's the API for Formula One. And what I'm bringing up is the results of the 1957 season in Formula One racing. And here you can see who the competitors were in each race and how they finished and so on. So this is a data set that's being displayed in a web page. If you want to see what it looks like in XML, all you have to do is type XML onto the end of this dot XML, I've done that already. So I'm just going to go to that one. You see is only this little bit that I've added dot XML. Now it looks exactly the same because the web page is structuring XML data by default. But if you want to see what it looks like in its raw format, just do an option click on the web page and go to view page source. At least that's how it works in Chrome. And this is the structured XML page. And you can see we've got tags here, it says race name, circuit name, location. And obviously, these are not standard HTML tags, they're defined for the purposes of this particular data set. But we begin with one, we have circuit name right there. And then we close it using the backslash right there. And so this is structured data, the computer knows how to read it, which is exactly this is how it displays it by default. And so it's a really good way of displaying data. And it's a good way to know how to pull data from the web, you can actually use what's called an API, an application programming interface to access this XML data. And it pulls it in along with its structure, which makes working with it really easy. What's even more interesting is how easy it is to take XML data and convert it between different formats, because it's structured and the computer knows what you're dealing with. So for example, one, it's really easy to convert XML to CSV or comma separated value files, that's the spreadsheet format, because it knows exactly what the headings are, and what piece of information goes in each column. Example two, it's really easy to convert HTML documents to XML, because you can think of HTML with its restricted set of tags, that's sort of a subset of the much freer XML. And three, you convert CSV or your spreadsheet comma separated value to XML vice versa, you can bounce them all back and forth because the structure is made clear to the programs that you're working with. So in sum, here's what we can say. Number one, XML is semi structured data. What that means is it has tags to tell the computer what the piece of information is, but you can make the tags whatever you want them to be. And XML is very common for web data. And it's really easy to translate the formats XML, HTML, CSV, so on and so forth. It's really easy to translate them back and forth, which gives you a lot of flexibility in manipulating data. So you can get into the format you need for your own analysis.