Heroes in a half shell, PowerShell! Well, maybe that wasn’t the original line, but you know from this program and other places on the internet, PowerShell is all the rage. In this episode, we wanted to chat about other ways people are using PowerShell and we are happy to have Warren Estes talk with us about some of his experiences. Warren shares some ways he has used PowerShell to push the easy button and how it lead to a contribution on the Microsoft SSRS toolkit. We are joined this week by special guest panelist Eugene Meidinger.
If you know the source of the original line, let me know on social media or in the comments below!
“[PowerShell is] not always my first choice, but in the end, it’s usually the best choice and quickest choice.”
“It’s wonderful to have pre-written code out there. Having the .net framework is absolutely amazing.”
“You don’t want to contribute garbage to an open source project. Testing is imperative, it’s huge.”
“Creating robust solutions to complex problems using PowerShell is super powerful.”
Listen to Learn
1:13 Compañero Shout-Outs
03:50 Introduction to guest co-host Eugene Meidinger
06:46 Intro to the guest and topic
07:22 Working with cross-functional environments
11:01 You can use .net libraries to get code to use in PowerShell
13:14 PowerShell is procedural but you can add desired state configuration
15:21 Unit testing and touching on Pester
16:48 What’s the best way to find out if there are integrations for the tools that we’re using?
17:40 Warren’s contribution to the PowerShell library
21:34 Can anyone contribute?
23:58 It’s always nice to hear actual use cases
25:37 How did Warren decide what to use in a specific situation that he wrote about?
27:20 SQL Family Questions
30:25 Closing Thoughts
Script to dynamically create backup scripts https://www.warrenestes.com/dynamically-create-restore-script/
Update Multiple SSRS subscriptions https://www.warrenestes.com/update-multiple-ssrs-subscriptions/
About Warren Estes
“I am a database professional with over 15 years’ experience as a production DBA/Developer. I first started with SQL Server in 2000 (the year), using 7 (the version), and have worked with sybase, oracle and MSSQL. I also have experience with VB, C#, and love me some Powershell.
My website is www.warrenestes.com.”
Carlos: Compañeros, welcome back to the SQL Trail. This is Episode 130 and today our episode is about PowerShell. We’re talking with Warren Estes about some of the use cases that he’s used PowerShell where it’s come in handy. I’m not sure that it’s necessarily Getting Started, but one of the things we like to do on this program is to talk about how others are using technology and I think this is a great scenario in which Warren’s done some very interesting things. I think we can all benefit to put some context, potentially, in place as to how PowerShell can be helping us.
Before we get into that conversation, however, we do have a couple of Compañero Shout-Outs. We are just finishing up our SQLSaturday here in Richmond and I want to give a shout-out. I know we talked about it in the previous episode about organizing a SQLSaturday. But I want to give a shout-out to all those organizers who might be listening. I know it’s a lot of work. Wayne Sheffield leads our event, now, in Richmond and he was just absolutely exhausted afterwards. He and Jamie Wick did an excellent job. Shout-outs to all of you who are putting in time and energy to put on events like that. I know that I appreciate them when I go and I can say the same for the event that we had in Richmond. I also want to give shout-outs to several of the speakers I was able to catch up with. We’ve got Jana. Most of these are previous episode attendees or panelists: Jonathan Stewart, Kevin Feasel, Anders Pedersen who we need to get on the program, and then Brian Carrig from ChannelAdvisor. Good to catch up with those guys. Although Brian was feeling a little bit sick. Brian, if you’re listening, I hope you’re feeling better. We got some good feedback from Episode 128 with John Morehouse. Among those chiming in with some feedback, Aaron Walker, Tim Harkin, Andrew Pruski, Elizabeth Noble, Diaaeldin Ali, and Bartosz Ratajczyk. We had a couple of takers for follow up episodes and I’m hoping to schedule some time with Alex Yates and Tom Norman for a future episode about continuous deployment to the database.
I don’t have any Tips & Tricks today; however, I do want to follow up with the SQL Trail Conference. That conference continues to come together. I can now officially say that Kevin Feasel, Jonathan Stewart and Doug Purnell will be back this year. They came in 2017 and are back for seconds. Our venue will be the very lovely Virginia Historical Society building in downtown Richmond. The dates are October 10-12 and registration should open in May. I am still working out the details on the website. Obviously, we’re hopeful that we’re going to have a few more speakers and I am excited about doing this again. We’ll continue to put out some information at sqltrail.com. Again, if you go there right now there may still be a couple of template things out there but that should be getting all organized here, very soon. So, as you are planning for your training the later part of this year and you want to come spend time with us, we hope that you’ll consider that. We’d love to see you.
For you regular listeners of the show, we know that we have made some changes to the program. So compañeros, in an attempt to get you the best episodes possible, one of the things that has worked very well in the past is having someone on to help be part of the conversation. Eugene Meidinger has agreed to do that, and so Eugene is going to be visiting us from time to time. You might think of him as a recurring guest on the podcast. We wanted to welcome him and chat with him for a second. Welcome, Eugene.
Eugene: Thank you, I’m really excited about the opportunity and it’s funny how it came up because I had been asking you about what’s involved with running a podcast, because I think that’s something that’s way on the bucket list down at the bottom, so whenever you asked me to help out, I was pretty excited.
Carlos: There are more and more podcasts coming out and when you said, “hey, I’m thinking about this” and I also know that there are a lot of podcasts that start and never get past episode 10, for example. So, I thought, “well, hey, if you’re interested in kind of seeing what it’s like, it may make sense to come on”. And then of course, you can help this knuckle-dragging Neanderthal out from time to time in some of our conversations.
Carlos: So ultimately, your background, I know you’ve been talking a lot about PowerBI, you’ve been on our program before, episode 104. That was the Keeping Up with Technology episode. You’ve been talking a lot about PowerBI and whatnot, but go ahead and tell us a little bit about your background and some of the things you’ve been doing.
Eugene: It’s interesting because I kind of fell into the SQL world and then fell into business intelligence and that sort of thing. A couple years ago I decided that I wanted to be an expert at something, so I picked PowerBI because it just seemed like it fit with being part of the SharePoint team, where I work, and the fact that Microsoft was just dumping marketing money on PowerBI.
Carlos: And you’re like, “hm, something must be going on, here.”
Eugene: Yeah, and so I decided I’m just going to become an expert in the area and recently it’s been working out. I actually went part-time last year so I could do more training. I’m going to be doing like four pre-cons on PowerBI this year. By the time this podcast comes out, my second course on Pluralsight on PowerBI should be out, so this year is really exciting.
Carlos: Yeah, and we are excited to have you on the program. Again, just by the nature of schedules and whatnot, you may not be on all the episodes, but as many as you can come on, obviously we’d love to have you and to be part of that conversation. We’re looking forward to that.
Eugene: Yeah, it’s definitely an honor, I really do appreciate the invitation.
Carlos: Since recording that with Eugene, I can say that he won’t be the only panelist that we have in the future. Admittedly, I’m open to more compañeros potentially joining in. So, if you’re interested in joining the conversation, let me know, we’d love to have you. I think I have a couple of folks that have expressed interest in being available as they are able when the guest schedules and they are available at that time, we’ll have a few more people. If you’re interested in being a part of that pool, let me know and I’d love to chat with you more about it.
For today’s episode, the show notes will be at sqldatapartners.com/powershell or at sqldatapartners.com/130. Let’s go ahead and jump in to today’s episode.
Carlos: Warren, welcome to the program.
Warren: Thanks for having me, Carlos.
Carlos: We had you on the program today, we wanted to talk with you about PowerShell. You’ve been doing quite a bit talking about PowerShell in different places, so we’re glad to have you on and talk with you a bit about that. I wanted to go ahead and kick things off. We’ve talked about PowerShell before, on this program. But you have some interesting takes on this, or some interesting experiences. The first one that I want to jump into was actually an experience that you talked about in working with cross-functional teams. I think more and more compañeros, folks who are listening to the show, are going to be working in cross-functional environments. This might be either environments where there’s more than one database technology, or with the advent of SQL Server on Linux, now we have additional operating systems to deal with, and in my mind, maybe we could argue the finer points there, but in my mind, having a separate operating system is also kind of a cross-functional-type idea. You talked about working with a team in Oracle and you were doing some integration work, or the data had to get moved around and you created a solution in PowerShell. Why don’t we start there? Tell us a little bit about that and how you used PowerShell to solve your problem.
Warren: Sure. We have a bunch of different platforms that we use. We have Linux, we have Windows, we have Oracle, we have SQL Server, we have some other flavors in there, as well. I am, I guess, the resident SQL Server expert, so I get roped into a bunch of different problems, which is great. I’m exposed to a bunch of different things. This was a specific problem where they, of course, promised something to the customer and when it came down to it, they were struggling on their end with how to resolve that problem. Later, iterating through my mind the different things that I could utilize to solve this problem, came down to PowerShell. It’s not always my first choice, but in the end, it’s usually the best choice and quickest choice. So, what I needed to do was simply create a function to mentor throughput from an Oracle Golden Gate standpoint and then publish that to a website, or at least a text file that the website could pull from. It was something that was done very quickly with PowerShell, within a matter of approximately 30 minutes. They’d spent days trying to figure this out, so it was very simple.
Carlos: To set the stage here, you had an Oracle database that was publishing data, and again, knuckle-dragging Neanderthal, I’m not sure, Golden Gate is an application or is there some, I guess, as a monitoring tool almost? It’s publishing that throughput data and the goal was to get it from the Oracle system into this webservice tier?
Warren: Correct, they wanted to be able to publish the throughput metric and the easiest thing was just a simple PowerShell function.
Carlos: They were like “hey, SQL Server guy, come help us solve this Oracle problem”.
Warren: Right. Yeah, it was on a Windows box, so they were all huddled around trying to figure it out with SQL CMD and somebody mentioned Python and they were all huddled around and my head popped up from 5 cubes over and I said, “just do it with PowerShell”.
Carlos: Obviously you’ve been working with it, so what made you pop up and say, “hey, PowerShell would be the way to go, here”?
Warren: Just the integration into the operating system, the ease of use. I had been working with it, now approximately 5 or 6 years on and off. So, it’s something that I don’t use daily, but it’s something that I always find myself going back to.
Carlos: That’s interesting. I guess that integration, Oracle running on Windows, that idea of being able to communicate with, interface with the various applications. I can see how that would make PowerShell very convenient. One of the other things you talk about, and I’m jumping here, a little bit, is the use of .net libraries or being able to use other folk’s code. Now, I am not a coder. I can read some code, I can help support it or troubleshoot it, but other than some tSQL code, I’m not writing C# or any of these other languages, and that sounds like a pretty big chasm to me. But let’s talk a little bit about that idea of actually using .net libraries or other code that people have written, for example, to extend the abilities of what we’re able to do with PowerShell. It seems super complicated. Is it something that I need to be super concerned about, or is it actually a little bit more straightforward than maybe I know?
Warren: It’s a little bit of both. It’s wonderful to have pre-written code out there. Having the .net framework is absolutely amazing. There’s all these assemblies that you can utilize to interact with, say SQL Server, the SMO, and there are other different .net assemblies that you can utilize pre-written code for, as well. The only caveat to that is, you need to know exactly which one you want to load, but something like the SQL Server provider takes care of that for you. But I always love the idea of pre-written code, so the .net framework is a game-changer.
Carlos: Give me some examples of a .net library that you’ve used. Obviously, for our audience, we’re kind of interested in the SQL Server components, so if the examples don’t fit nicely there, we can stretch it out a little bit. Under what circumstances did you go out looking, because of your coding background, did you already know about these libraries and you were like “hey, I could just use this” and plug it in? Tell us a little bit about that.
Warren: Sure, the different assemblies, generally, it takes some hunting to figure out which assemblies you need. I’ll just go back to the example of the SQL Server provider and the SQL Server management objects. There’s a list of a bunch of assemblies that you need to load to do certain tasks and certain things. You can definitely hunt those out and use those explicitly. But there’s only a dozen or so, maybe more, that you can just load them all. It doesn’t take very long, and it covers the basics of what you can do through PowerShell and SQL Server.
Eugene: Warren, I’m still trying to learn PowerShell, but do have some experience with C# and maybe you can help me understand where PowerShell fits and some of this extensibility, because to me, whenever I look at it, it seems like PowerShell is basically if C# was born as a loosely-type language or a dynamic language, instead of being statically typed and so rigid. Is that a good way of thinking about it, or is PowerShell kind of its own animal?
Warren: Yeah, that’s a good way to think of it. It’s almost like a higher level above C#. it’s not as rigid and most languages fall somewhere between strong and weak. But with the addition of Desired State Configuration, even though PowerShell is procedural, it does expose some sort of declarative aspect with the Desired State Configuration, which allows you to, instead of saying what you need in a procedural way, you can just say what you desire and that desired state configuration takes care of that for you in the background.
Eugene: So, it’s a little bit more like SQL where you’re telling it what you want to get to, instead of “do 1, do 2, do 3”, and all the little steps in between, right?
Warren: Right, it’s like tSQL would be, if you say, “tea Earl Gray hot” and SQL Server takes care of that in the background and produces a nice cup of hot tea for you, as opposed to PowerShell, where you need to describe the steps, “go to the kitchen, boil the water, pour it into the cup, add the tea”, that sort of a process.
Eugene: Circling back a little bit, but really to what we were just talking about, you talked about how you were able to put together this cross-functional solution in like 30 minutes. I can definitely see how PowerShell could be really good for quick solutions, but since it is more of a scripting language instead of C#, which is much more rigid, what’s to prevent you from shooting yourself in the foot? Because with C#, you have the compiler that smacks your wrist and says, “bad programmer”. Is there more of a risk of shooting yourself in the foot with PowerShell because it’ll do whatever you tell it to?
Warren: Yeah, absolutely. That’s the plus and minus. You can build a solution very quickly but also the compiler’s not going to throw an error and say, “hey, you can’t use these two variables together. One’s one type and one’s another, they can’t be used together”.
Carlos: It sounds like there’s just some trial and error involved there, and obviously the testing of the code still plays an important role, there.
Warren: Yeah, you definitely need to unit test and Pester is a great example of testing that you need to do. I’m new to the Pester world. It was something that I only did for a project where I contributed to the reporting services tools. It was a wakeup call that need to unit test and it’s a must-have.
Carlos: In my mind, I cannot think about PowerShell without thinking about DBATools. You bring up Pester, and I know that one of Chrissy’s last posts was about that and ultimately the integration that they’re looking to do, if that’s the right word, with Pester, but that idea, to be able to put unit tests in your PowerShell. That might be an interesting conversation to come back to just explore a little bit more about Pester in another episode. It sounds like there is quite a bit there and you have to think about that. Unit tests are its own universe, in a sense. You either know them and you’ve gotten good at doing that, or you’re struggling to and sometimes it’s hard to find the value there. Obviously in your case, you mentioned committing code to another project, and they’re like “hey, you have to go through the unit test route”. Again, almost that culture invites this idea of having to put it together.
Warren: Absolutely, you don’t want to contribute garbage to an open source project. Testing is imperative, it’s huge.
Carlos: We talked a little bit about this cross-functional thing, and I know Eugene, you’ve been playing a lot with the PowerBI stuff, any add-ins or specific tie-ins there? What’s the best way to find out if there are integrations for the tools that we’re using?
Warren: I think it’s a little bit of everything. A little bit of searching on the interwebs, Twitter, SQL Help, PowerShell hashtag. I’ve looked at the PowerShell repository trying to find solutions. That’s where I found the reporting services tools for SSRS and just Googled that and found a lot of different solutions. I’m not an SSRS person, by any means, so it was definitely not difficult to find a solution when I searched for PowerShell and SSRS.
Carlos: Interesting, so that is going to bring me to the next point that I wanted to talk about. That is this piece that you actually contributed to the SSIS PowerShell library, is that a fair statement?
Warren: Yeah, it’s the official Microsoft Reporting Services tools module.
Carlos: Okay, there we go. Compañeros, if you’ve ever had to bulk update subscriptions in SSRS, you’re going to know what I’m talking about here. An example that we came across, and I wish I’d had this conversation about 8 months ago, upgrading SSRS from, it must have been 2008 to 2016. This was to come in a Word doc, is what the attachment was, and the attachment type had changed from 2008 to 2016 and so it was invalid in the new version. It was like, “okay, well hey, no problem”, just go in and with an update statement, that would do that. But if you’ve ever had to update those subscriptions, you’ll see that there’s actually a text field and there’s lots of data in there. I don’t remember if it’s XML, but it’s bracketed somehow or it’s delimited somehow and then, of course, every report is a little bit different. So, coming up with a tSQL script to go in there and sub-strings and try to find the right thing, and then you not messing up, is pretty hard, it’s pretty difficult. There was no good way to do that with tSQL, so when I saw this, this was very interesting, and that ability to be able to update multiple subscriptions at one time. Let’s talk a little bit about this. Obviously, there is definitely a need. You saw it, I’ve seen it. How did you go about working on that and then submitting that back to Microsoft?
Warren: I followed almost the same path as you did. I had a problem at work where we had a migration and we had hundreds of subscriptions that needed to be stopped at a certain date and time and then hundreds of subscriptions that needed to be enabled at a certain day and time. I could have simply just disabled them all and enabled the ones that needed to be enabled, but that seemed like too much work. I wanted to be even lazier and schedule this out. So, I looked at the, I think it’s the contents column, I don’t remember what it was, but it’s XML and anything with XML in tSQL is just not a good time. You can update, you can convert it to varchar(max) and then replace a certain field in there and then convert it back. I don’t remember the steps. But then having to actually add a node in the XML, it was just, it wasn’t happening, so I looked to the Microsoft Reporting Services tool’s module and it didn’t have anything available to do this, so created it. And it turns out that this was something that people thought would be good.
Carlos: Now, are all the components of the subscription available for update, or is this specific to just a couple of items?
Warren: This one is specific only for the start date, end date, time and the owner, currently.
Carlos: Well, do tell, compañeros want to know, are you going to be adding onto this? Is there other functionality that might be in the future?
Warren: Could be, absolutely. I’m looking to see what else we can change. I just threw it in there with these three updates as baby steps. So, it cut down on the Pester code testing as well.
Carlos: Okay, compañeros, I want to hear from you about this episode. If you would like to see additional options in that subscription, I’d be very interested in knowing it. Obviously, I think Warren would be interested. We’d like to see what direction, because it’s an open source, if you’re looking to contribute, that’s another opportunity there. We’d be interested to see what kind of feedback we get there. That’s fun. That’s pretty cool. Like I said, I wish I’d had that 8 months ago, but I will definitely keep it in mind the next time I’m looking to do some SSRS updates.
Eugene: Quick question about that. It seems like 5 years ago, being able to contribute to an official Microsoft module would have been unheard of. It seems like with everything that’s been going on, they’re becoming more and more open source and more and more open to the community. So, I just think it’s kind of interesting that this is something that you could do and 5 or 10 years ago would have been blasphemy.
Carlos: Or even, how would you get it in? You’d have to email a hundred people.
Eugene: Right, they weren’t on GitHub.
Carlos: Exactly. You’d have to know somebody, it was the big impenetrable fortress.
Warren: Yeah, I was definitely surprised when I suggested this as a new function and they were happily receiving this and interacting with me and giving me pointers. It was definitely a paradigm shift from the old-school Microsoft.
Carlos: I’m curious, was that experience positive enough that you would recommend or suggest that other folks take a whack at it, if they have an idea that they like to contribute to?
Warren: Yeah, absolutely. You can suggest changes, open up bug reports. Claudio Sylvo, I believe, was part of decision-making and accepting this function. But it wasn’t as open, I would say, as something like DBATools. I know DBATools, I mean, Chrissy LeMaire’s always on Slack, I don’t know when she sleeps, it’s absolutely amazing. There are people on there that are just incredible. The first time I did a presentation on PowerShell with DBATools, I believe were 160 or so functions, commandlets. And now there are 460 or 80. It’s insane.
Carlos: Oh wow, that many?
Eugene: There’s a lot.
Carlos: I kind of feel like being the lazy person that I am, I guess I just have other, maybe interests is the right word, or where my world is. I can take advantage of some of the other things that people are doing, but I do find that that’s how I am experiencing PowerShell a little bit right now. I am kind of waiting, or a lot of where my needs are, is being met by the community and I don’t have to dive in.
Warren: Right, and that’s the beauty of DBATools, and they should really rename it from DBATools to DBAFramework. Because it’s essentially a framework for being a production. You’re going to migrate things from one instance to another. I use Copy-DbaLogin all the time, testing connections, disc space and when I need to migrate, I’m definitely using DBATools.
Eugene: I think it’s always interesting to hear actual use cases, because I guess sometimes I’m a little skeptical, because it sounds like this golden hammer that you can just whack all your problems with and fix everything, so it’s always nice to hear about specific solutions so it’s easier to imagine. Oh, I can see doing that, updating things in SSRS with PowerShell. Now you’re speaking my language, because I get so mad because data-driven subscriptions for SSRS are only available on Enterprise edition. If you want to send the same email report to 20 different employees but have it modify it so it has their employee number, if you don’t have Enterprise edition, you’re manually creating 20 subscriptions. I can definitely easily imagine having a use for that sort of thing. I really appreciate just hearing some actual use cases, versus just it’s rainbows and unicorns and it’s going to solve every problem you have.
Carlos: And that’s the goal of this podcast, is to make that technology a little more useable. Give you some context on how to use it.
Warren: There are rainbows and unicorns in PowerShell. But I agree, hearing real world examples is far more important than going over the basics, for a lot of people. Creating robust solutions to complex problems using PowerShell is super powerful and although talking about PowerShell kind of feels like I’m a cross-fitter or somebody that just discovered gluten-free, but it really is oftentimes the solution to a problem. You’ve just got to download DBATools, go through the code there, because it’s really well-written. That’s kind of how I learned along the way and it’s a great framework for any DBA.
Carlos: You wrote a post in December of last year about dynamically creating restore scripts. You chose to do that dynamic creation in tSQL, so I guess I am curious, what are the parameters or what is the thought process or the guidelines that you use to decide “hey, it makes more sense to solve this with SQL” or “hey, it makes more sense to solve this with PowerShell”?
Warren: I actually started that process kind of by accident. It kind of snowballed into this larger project and with a team of 5 or 6 individuals that weren’t PowerShell literate, they were just more comfortable with tSQL, so giving them bits and pieces, it kind of snowballed into this much larger script. It wasn’t a procedure, because we didn’t want to have it on every single instance. We have hundreds of instances across a couple different domains, so having something that they can just copy and paste without having to worry about loading DBATools or the PowerShell version just made more sense at the time.
Carlos: Interesting, so the ability for your teammates to consume that might play a role in that decision. I am curious, fast-forward a couple of months, if you had to make that decision again, you always want to start small, but if you knew that it was going to get bigger, would you still make that same choice in this specific scenario?
Warren: I would, just simply because I love writing code, so it was just kind of a daily challenge to add more and add more and add more. But if I’m doing a restore, I’m using DBATools, myself.
Carlos: So, shall we go ahead and do SQL Family?
Warren: Yeah. Let’s do it.
Carlos: Warren, tell us, how did you first get started with SQL Server?
Warren: I started when the .com boom hit. I joined a start-up in IT and worked my way into a developer/DBA hybrid-type role and have loved it ever since. I, actually, on a side-note, didn’t like my database course in college.
Carlos: Hey, a man of my own heart.
Warren: To be fair, it was Oracle though, so I had reason to not like it.
Carlos: Yeah, same with me. Now, having worked with SQL Server for that long, obviously you have a developer background, as well, but if you could change one thing about SQL Server, what would it be?
Warren: Can I change two things?
Eugene: We can be generous, today, yeah.
Carlos: You know, we might allow it.
Warren: One’s, I’m sure you guys hear it a lot, but changing READ_COMMITTED_SNAPSHOT isolation to the default would be one. And the other one would be make it a little bit harder to install, because I come across so many accidental installs or incorrect installs that I have to mop up and I’m not happy about those.
Eugene: Yeah, but how many of those are Express?
Warren: I don’t want to say.
Carlos: There you go, that’s an interesting dilemma there. I don’t think they’re going to accept that change request.
Eugene: They’ve got a Docker image now, you’re just out of luck.
Carlos: Maybe you could convince them to get that Docker image straight. I feel your pain, there, but at the same time, that is a lot of the way that I earn my living, now, is by cleaning those up. I guess, another reason for me to not be so anxious about that change.
Eugene: Right, good news, bad news.
Carlos: What’s the best piece of career advice you’ve received?
Warren: I actually heard the best piece of career advice on your podcast, by Jen McCown and I’m paraphrasing, but it was, I believe she said, “you always want to make your next move uncomfortable, wherever that is”. So, you don’t always want to move into another position where you’re comfortable. That speaks to me because I love that growth mindset where you want to grow and do things differently.
Carlos: Our last question for you today, Warren. If you could have one superhero power, what would it be and why do you want it?
Warren: Oh boy. I would definitely want to be able to speak any language fluently. My wife and I travel a lot and although I can usually speak enough to get around where we’re going, it usually always leads to me immediately regretting it when they think I can speak fluently. So that would resolve that.
Carlos: Now, are you from the States?
Carlos: Okay, so you travel a lot, is there a specific area or just all over?
Warren: Pretty much anywhere. We alternate between Europe and somewhere nice and warm. But yeah, the Estes last name makes it ethnically ambiguous, especially with my tan complexion. It gets me in trouble, especially when we go to Spain.
Carlos: Yes, that’s right. Especially if you get the fth–fth sound down, then you know, then they’re like “hey!” Warren, awesome, thank you so much for being on the program today, we do appreciate it.
Warren: Thank you for having me, I had a great time.
Carlos: Yeah, it’s been great.
Carlos: A special thanks to Eugene Meidinger for co-hosting with me today in today’s episode. We’re looking forward to having Eugene back a bit more. Obviously, that won’t be all the time. We have recorded a few other episodes without him, but we’re hoping to keep him in the mix. I also think it’s very, very cool, and I am interested in hearing from a few more of you who may have contributed code. We’ve talked about the DBATools. Obviously, I think that would still apply. If you’re contributing to the Windows libraries in Git, I’d love to hear about your experience. What you’re doing there, what problems you’re trying to solve. I think those are always very, very interesting things to talk about. We’d love to bring them out here on the show.
I think that’s going to do it for today’s episode. Thanks again to Warren for visiting with us. You can reach out to me, compañeros, if you have other topics that you think we should be talking about. On social media you can connect with me on LinkedIn. I am @carloslchacon and we’ll see you on the SQL Trail.