Andrew Gray Interview

Aug 5 2011

Andrew Gray, Director of Business Development at CenterSpace, talks about adding really fast math to .NET projects. Andy spends a little time debunking myths about managed code performance. Later, he goes on to talk bout their choice to support more server platforms with Mono.

Links referenced in the show:

The music in the show, Have Mercy — Big Walter Horton, was provided by Mevio’s Music Alley.

Transcription

  1. Andy 00:00:21

    Hi. My name is Andy Gray and I am with CenterSpace Software: a little software company in Corvallis, Oregon. And what we do is basically enable a new class of performance-critical applications to be developed in .NET. What we do is provide some pretty strong analysis components and make math available to, sort of, your typical .NET application developer.

  2. Ryan 00:00:47

    This is cool. I think there’s definitely some listeners out there that are frothy for this kind of conversation because we’ve had a few, you know, more softer subjects recently; so you definitely bring a very alpha-geek type problem set that you’re solving. So I think this will be great for everybody who’s been hanging in there like champs.

  3. AG: Very cool. Very cool.

  4. Ryan 00:01:11

    So basically, in a nutshell, the problem that you guys are solving is just really hardcore math for people that maybe don’t necessarily want to jump that deep into it or really clean integration into .NET projects for the people who are, you know, really just up to their elbows on the math stuff but maybe not so much on the development side. Is that a good way to describe your problem set?

  5. Andy 00:01:39

    Yeah. That is a good way to describe it. You know, we really serve both of those communities. You know, traditionally, these kinds of analysis applications, you know, performance-critical applications that have lots of math and analysis have typically been built, primarily, in Fortran or C. You know, we’ve been building the apps like this forever; for the last 20, 30, 40 years. And suddenly we’re in this sort of new environment where we’ve got all these great application development tools; we’ve, you know, have managed application frameworks and so forth. But it’s been really pretty hard to get that kind of analysis capability available in the .NET world. A lot of organizations actually have made some sort of high level strategic decisions to adopt .NET for application development. So, for example, one of our customers is a major oil and gas company. And all the way at the top, you know, their CTO basically said, “Going forward, we’re going to build all of our applications using .NET.” So now we have these sort of mathematicians and engineers in the company freaking out saying, “Well, but what about Fortran and C? You know, how am I going to have these capabilities available to me in this .NET world?” And that’s kind of where we step in; is we provide these libraries that give those pretty hardcore mathematical analysis, you know, business intelligence kinds of capabilities and make those available to .NET programmers.

  6. Ryan 00:02:59

    That’s pretty cool. It seems like a lot of times, you know, people kind of get this ego involved when they talk about the whole managed code space. And they say they’re not necessarily sure that they want to give up the performance gains for, you know, kind of the ease of development, you know, depending on what their problem space is. But basically, that’s where you guys come in, right? Like, you really just push the performance up the stack a little bit.

  7. Andy 00:03:23

    Exactly. Yeah, that’s exactly it. The biggest thing that people worry about going to managed code is performance. You know, and for many classes of applications I think we’ve shown, you know, through successes with managed code over the last number of years that it’s really not that big of a deal. You know, you can build very acceptably-performant applications in .NET. The place where people get stuck is when they start doing a lot of math or do a lot of analysis stuff. And that’s where people are sort of, you know, kicking and screaming coming from Fortran and C and saying, “Well, you know, I’m used to having this blazing performance and yeah, my, you know, my application consumes all kinds of different cores and takes forever to run so I’m not really willing to take that performance hit and make it slower by being in a managed environment.” So what we’ve done is we’ve created a way to basically get native-level mathematical analysis performance in a managed environment.

  8. Ryan 00:04:17

    Cool. Now this is not necessarily that you guys invented the whole math stack that you bring though. This is based off of things that people made, maybe familiar if they are coming from that, you know, that C/Fortran background that you’re talking about, right? This isn’t necessarily completely, you know, brand new all the way to the bottom, right?

  9. Andy 00:04:36

    Right. Yeah. We’re certainly, you know, like in any other development stack; we’re building on top of some proven components. People in this space are going to be familiar with the Intel Math Kernel library, which is a long running application framework, essentially, for doing this kind of analysis and taking maximum advantage of hardware for doing analysis. It’s been around for a long time, it’s rock solid, people have been using it for a number of years, and feel very comfortable with that. And so we build on top of that, essentially. We’re not reinventing the math, but what we are doing is a couple of things. One: we’re bringing that native level performance of the Math Kernel library and those sort of low-level analysis routines and making them available to .NET programmers. And then the other thing that we’re doing is we’re wrapping them with some more sort of modern, object-oriented abstractions that you know, say, a C# developer would feel comfortable with. So instead of writing a bunch of lines of code that looks like C, you know, you can write a small number of lines of code of C# that looks very comfortable to an application developer and get the same result. So essentially we make the Math Kernel library abstractions a lot easier to use for someone that comes from a more object-oriented world.

  10. Ryan 00:05:52

    That’s something I’ve heard people complain about when certain libraries get ported from stack to stack has been, “Yeah, but I’m basically writing that language in this environment.” Or, you know, the conventions of have to change. So you guys solved that. So everything just feels like it ought to if someone’s familiar with .NET then.

  11. Andy 00:06:10

    Yeah. It feels like it ought to, you know. It’s going to be your typical C# developer that fires up Visual Studio and says File/New Project and starts building an app and then they want to say, “I want to add a reference to this library and I want to start using these classes and I want to have IntelliSense and I want to have all these things that I’m accustomed to in the .NET world.” And it just works like that you know, it’s very much like the Base Class Library in that regard, you know, in terms of having this sort of rich, well-documented, friendly interface to do some pretty sophisticated math and analysis.

  12. RP: Oh, yeah. I’m sure that’s a relief to a handful of people that are listening to this because, yeah, it definitely seems like your mileage will vary with certain library porting, so.

  13. Andy 00:06:53

    Absolutely. Absolutely. And developers don’t want to deal with, you know, COM interop and DLL imports and all that kind of stuff as well. So there’s a paradigm mismatch and then there’s just this lair of the stack that people don’t want to deal with. And basically we polish that up and make it a nice, easy library that you can reference in your .NET application project.

  14. Ryan 00:07:14

    Interesting. And, yeah, and not only do you interface all of these but also you stop them from maybe having to think about a lot of, like, rearchitecting things, like multi-threading and things like that, right? Like, you remove that a lot of the times for developers for certain performance benefits, right?

  15. Andy 00:07:36

    We do. We do. And, you know, that’s certainly been a major topic in application development over the last several years. Because, you know, everybody’s now got multi-core machines on their desk and…

  16. RP: Now what?

  17. Andy 00:07:47

    Now what exactly. You know, it’s great to have four cores in my desktop and I write my application and I can look at task manager and one core is pegged and the other three are sitting idle, you know. That’s not a particularly good use of the hardware you have available. And it becomes particularly important when you have some of these really meaty problems, you know, where you have long-running applications, you’re trying to do all kinds of analysis, you’re trying to be, you know, performance in real-time. And so, you know, in software development we’ve talked a lot the last few years about building multi-threaded applications is hard; you know, it’s just hard. And there’s been a lot of tools and a lot of different frameworks and stuff that have come along and those are all great. You know, it’s most definitely easier today to build multi-threaded applications than it was a few years ago. Even in .NET 4 we now have the Task Parallel Library; you know, some library constructs for building these kinds of multi-threaded applications. But these kinds of applications, you know, that we’re talking about here, these analysis applications that are doing a lot of math and doing a lot of processing, are particularly well-suited, you know, to having multiple cores available. You know, a lot of times they’re just repetitive kinds of calculations that are happening. You know, I don’t know if the listeners are familiar with, you know, linear algebra and doing some fairly fundamental operations like matrix multiplications, you know, which are basically just a whole bunch of repetitive calculations. And those kinds of things are very well-suited to, you know, breaking the problem into little pieces and allocating those pieces to different cores, different threads to be executed and then put the results back together. And so, you know, what we do in our NMath Library is we take a lot of that multi-threading headache away from you. You know, application developers don’t need to think about how to break the problem up so that it can be done in a multi-threaded way, but there’s some pretty sophisticated logic under the hood that can look at the problem and, as it’s appropriate, can break the pieces up, allocate them to multiple cores, and then sort of put the results back together. And so we can see some great performance improvements when we do that. Another advantage of that, actually, is that it sort of dynamically reallocates based on the hardware that you have available. And so by building your application against a library like this, that sort of buffers you from that sort of logic, then you can actually sort of take advantage of whatever hardware might happen to be available today. So you could, say, run it today on a machine that has two cores and then in a few years maybe you upgrade to a 32 or a 64-core machine when we all have those on our desktops and sort of instantly get that performance improvement without having to rearchitect or rebuild your application.

  18. RP: Right. Because that, I mean, that happens independently of how you call it, right?

  19. Andy 00:10:42

    Exactly. Yeah. There’s some pretty sophisticated logic underneath there that’s sort of looking at the problem and figuring out how to break the problem up into pieces and then allocate those across the cores.

  20. RP: Right. Not to completely oversimplify it, but all you have to do is say, “Do math,” and you just let it kind of figure out what that means.

  21. Andy 00:11:01

    Exactly. Yeah. I mean, it is a bit of an oversimplification, but a reasonable one. You know, that’s really what we’re trying to do with this library is, you know, give you a pretty straightforward entry point to say, “Go do this kind of computation,” and not really have to worry about the details of how that gets done or how the result gets put back together. You just call a library function and get your result back.

  22. Ryan 00:11:24

    I kind of just realized we jumped into a very abstract “how are you solving these problems?” It might help, you know, kind of frame this for people if they know for whom. Like, what kind of projects use you on average. You know, I’m sure you’re probably used all over the place, but what’s the typical kind of use case?

  23. Andy 00:11:43

    Yeah, you’re right. We do work all over the place and our customers are pretty well spread out. But it does consolidate into some industries that tend to be more sort of analysis-centric. You know, we work with a lot of Fortune 500 companies (Fortune 100 companies, actually) that are doing different types of analysis. And I would say that the industries that we probably work the most strongly in tend to be engineering disciplines; in particular oil and gas, you know, a lot of seismic engineers will, you know, need to do a bunch of analysis to figure out where to drill for example. And then we also work with a lot of financial companies. You know, obviously, in the financial world there’s a lot of numbers floating around. And trying to make sense of those numbers is supremely important to the financial industry. You know, so we have financial advisors that are using our stuff to do portfolio optimization and things like that.

  24. Ryan 00:12:37

    Okay. So that audience, that makes me think of -- looking at your Website, you currently have at the time of this recording, a call to action asking for people to help you with your alpha test. Fortune 500 companies, known for being nimble…

  25. AG: Exactly.

  26. RP: …do you get a lot of takers for alpha help from them?

  27. Andy 00:12:59

    You know, we do. We get help from a number of different places. I mean, of course, you know, a number of Fortune 500 companies are using this stuff for, you know, business-critical applications and the last thing that they’re going to want to do is to, “Hey, let’s go try something new. Let’s go rebuild our system.” You know, so certainly in that segment of our customer base, you know, there’s not a lot of people doing that. At the same time, a lot of these companies, particularly the smarter ones that tend to be more forward-looking, will often have a research group off looking at stuff. You know, “How can we make our business better? How can we do this particular business process faster or more efficiently?" And those kind of folks, you know, are going to be looking for that edge, if you will. And those kind of people often will check in with us about that kind of stuff.

  28. Ryan 00:13:49

    Okay. So one thing that seems like it’s a pretty common struggle with companies that do things similar to this. Well, in that they’re making tools for developers, right? Like, I’m going to write code for people who otherwise make their living writing code. It seems like one of the biggest struggles, I don’t know if you put this in your marketing problem or what, is trying to get past egos basically. Do you have that with this or, I mean, have you really just jumped off the deep end with something that is, you know, mind-numbingly complicated where people are not afraid to say, “I want to use someone else’s code,” or do you still kind of have this or if you do have this (really long compound sentence here) -- and if you do have this, how do you guys deal with that?

  29. AG: Sure. I mean, by egos, I imagine you probably mean the “not invented here” syndrome.

  30. Ryan 00:14:43

    Exactly, right? You tell someone, you know, “Can we do this?” Of course we can do this. But I think a lot of times you’ve got to scope it more of a, “Why would you want to?”

  31. Andy 00:14:51

    Exactly. Yeah, you know, the team here’s been working together for a long time and we have quite a bit of experience in the software components industry. We’ve been building components for, you know, well over a decade now and it’s a very common problem. You know, as you said, there’s a lot of egos involved in software development. And you run into, “Well, I don’t need that. I can build one myself. And I bet mine’s going to be better and faster and cheaper and all that kind of stuff.” And, of course, it never turns out to be the case. And so we, you know, we struggle with that buy vs. build thing and have been, as an industry, for a long period of time. You know, I think, though, in modern times, I think it’s a lot less of an issue than it was, you know, say, a decade ago. Where, you know, again, as an industry, we’re building some pretty sophisticated software nowadays. You know, we’ve got these really rich stacks, you know, building the types of applications that we probably wouldn’t have conceived of, you know, 10 years ago or 15 years ago. And I think that as part of that evolution as we move up that stack, you know. As we as application developers are sort of climbing higher and higher in the application stack, I think we also sort of have a corresponding increased trust in the components that are beneath us, if that makes sense. So we’re, you know, we’re more willing, I think, these days to trust frameworks. I think we’re more willing to build on top of .NET, or on top of the JBM, or on top of Rails, or on top of jQuery or any of these things that, you know, we’ve sort of proven that we don’t need to fear that. You know, of course it’s always good as engineers to be skeptical and to be critical, you know. We don’t want to sort of blindly assume that we’re not standing on quicksand, but at the same time I think that we’ve all kind of learned that we can’t build the whole stack ourselves and that it is very much in our interest to move our way up the stack. So anyway, that’s a long way of saying that yes, we do run into that now and then, but by and large I think people are starting to realize that, you know, there’s a lot of value here. And the buy vs. build decision really isn’t that hard, you know. If I’ve got this problem to be solved, I would much rather pay a little bit to get someone to solve that for me and do it in a, you know, solid, documented, tested way rather than going off and going down some rabbit hole trying to make it that way myself.

  32. Ryan 00:17:24

    It’s good to hear that, you know, your experiences is kind of similar to what I encounter. I know my reference point of people/developers that I talk to is probably skewed, right? It seems like everybody that I talk to generally agrees, you know; opportunity cost is a huge factor. And it seems like going back about, you know, five-ish years ago it was very much less of a factor, right? Like, the idea of focusing on your core business values; that’s somehow kind of a “new” thing somehow. But good. Good. I’m glad to hear that you noticed that with your own experience in the marketplace, not just, you know, the people that I run into.

  33. AG: Yeah. I think that’s -- I would venture to say that that’s probably true industry-wide.

  34. RP: Okay.

  35. Andy 00:18:16

    You know, I mean, it’s not to say that it’s not cool building all that stuff and it can be a great educational exercise to, you know, sort of jump way down in the stack somewhere or into some sort of, you know, place that people have trod before, but when you’re really looking at market efficiencies and treating it as an engineering problem, you know, that I need to deliver some product to market under some set of constraints, the buy vs. build decision tends to be pretty easy.

  36. Ryan 00:18:43

    Yeah. It seems like it’s just trending easier and easier as we go, which is great, right? It opens up a lot more opportunity for people to specialize in a certain problem area and it just helps everybody else get to market faster, so it just, you know, makes sense to me.

  37. AG: Yeah, absolutely. Yeah. I’m sure what you guys are doing, it’s the same sort of thing.

  38. Ryan 00:19:01

    Right. Right. And, you know, lots of people that I talk to, right? They just -- they want to abstract away a certain problem and just really, really dig deep into what it is that it is you’re passionate about. Let everybody else, you know, serve their own customer base. So this stuff that you do, like, this idea of, like, really performant math operations; it both seems like it’s a broad need, like, in that people always need more performance and basically all of, you know, this programming stuff kind of boils down to math. But on the other side it seems like it’s fairly niche as well. I don’t know. I think that intuition could put it either way. Like, how would you classify it? Do you think you have -- do you cast a pretty wide net or is your target audience pretty well-scoped just by the nature of the complexity of what it is that you do?

  39. Andy 00:19:53

    Well, it’s probably a little of both, but I think in general, it probably is pretty well-scoped. You know, these computers that we have on our desks; they’re pretty amazing and there’s all kinds of stuff that you can do. I mean, determining the sum of a column of numbers or averages and those kinds of things, I mean, those are trivial things to do nowadays with, you know, very easy programs or stuff in the Base Class library of .NET or with Excel or whatever else. So, yeah. I mean, at some level, any non-trivial application is going to probably do some math. But at another level, you know, you sort of take one step beyond that. There are some quite a bit more sophisticated, you know, domain problems that can be solved with a lot of this kind of analysis. Things like curve fitting or doing different kinds of transformations on data. Different kinds of more sophisticated business analysis, you know, that is sort of one step beyond that. And I think that’s the place that we sit. You know, we’re not trying to help people do simple math; we’re trying to help them have more complicated analysis capabilities available to them in a simple way.

  40. Ryan 00:21:03

    So thinking about it in those terms where it’s a pretty very specific target audience, that seems like that’s really hard to maybe sell to, right? Like, someone needs to have this problem before they really care. How do you get in front of them? Like, how do you do placement? Like, basically, it seems like no one cares until they have this problem. Once they have this problem, how do they know to go straight to you?

  41. Andy 00:21:34

    Right. Well, I mean, there’s a couple of ways to look at that. One is that there’s a certain class of people that already do care. That this is the sort of stuff that they live and breathe and these are the problems that they already know that they’re trying to solve.

  42. Ryan 00:21:50

    So you’re saying that’s mostly off on the math side, right? Like, earlier you had mentioned that, you know, you’ve kind of got the developer side that needs to integrate and then you also have the math side that needs to integrate, right?

  43. Andy 00:22:00

    Right. Yeah. Those are going to be the mathematicians and the engineers and the, you know, the people that are already comfortable, you know, they’re already looking at, you know, plates in the ocean and how they come together and wanting to, you know, be able to sort of conceive and understand that data in a more realistic way. So yeah; that’s the mathematician and engineering side. You know, the other piece is the, you know, sort of the application developer that is building, you know, some sort of company dashboard or some sort of data analysis app, you know, that’s, you know, maybe doing -- has been tasked, let’s say, with some sort of “business intelligence requirement.” And what do they say? Okay, I’ve got this big pool of data and my company really wants to know what it means, you know. So how am I going to mine through all this and come up with something that is meaningful to, you know, a non-technical person or is going to be meaningful to the management so that they can make strategic decisions about the company or whatever else. And that’s where they start saying, “Okay, well, you know, it’s not really enough to determine the average number of sales last month. I really need to do something more sophisticated.”

  44. RP: Okay.

  45. Andy 00:23:11

    And that’s where they start, you know, getting into a place where they can take advantage of some of the stuff that we’ve got available. We have some great partnerships with some companies, you know, a lot of names that you’ll have heard of that are doing a lot of cool business components. Companies like Infragistics and Syncfusion and Nevron and others that, you know, have some great visualization components. And so we have a great synergistic relationship with those companies because, you know, a lot of times there’ll be, say, an application developer that’s using those components to, you know, build some sort of business app and then they start realizing, well, you know, it’s great to visualize all this stuff, but I really need to go a little bit deeper. You know, I really need to do another level of analysis on that. And that’s kind of where we start adding value. Conversely, people that are coming from the other direction, that are doing this kind of analysis, obviously want to be able to look at their data. And that’s where we integrate tightly with, you know, like, the Infragistics and Syncfusions of the world. And they have some great visualization components that help people understand the results of what they’re getting out of the analysis.

  46. Ryan 00:24:16

    That’s pretty cool. So yeah. I guess that’s more the part of the target audience that I thought would be really hard to hit would be, you know, you know, a team of developers that’s, you know, small team doing a line of business app that turns out they come up against having a need like this. How do you be in front of them? But I think targeting other component vendors; I mean, that just seems super-smart. Like, just again, push it a little further up the stack. So they don’t necessarily need to even know -- they don’t need to understand all of the benefits or at least, you know, like, how the sausage is made of this math function. All that they know is, you know, the other component has a reputation of being really, really fast and that’s kind of as much as they care about.

  47. Andy 00:25:02

    Right. Right. Yeah, I mean, we get into that environment where, you know, you’ve got an application developer that say they’ve developed a requirement to do some sort of thing and somehow they get to the point of saying, you know, “I need to do a fast Fourier transform to be able to, you know, look at this data in a certain way.” You know, we’re not trying to convince anybody that they need to do an FFT, but once they get to the point where they say, “I need to do an FFT,” we make it really easy and really fast to do that.

  48. Ryan 00:25:32

    That’s something I’ve heard from a handful of different service providers. I think that kind of bears repeating; this idea of you don’t make it your business to convince people that they need you so much as you just do what it is that you need and then when they’re looking for that, they’ll find you. I’ve noticed that from certain, like, consultancies that have certain practices. Like, if they’re, you know, like, back when it was a little bit harder than it seems to be now to convince someone that agile’s a thing. They said, “Why would you even bring up that you’re agile to your customers? They should come to you because you make good products and you have a good portfolio. Like, why would you even use that?” So this seems very similar, right? Like, don’t pitch a certain approach. Just do what you do well and, you know, they’ll kind of figure it out.

  49. Andy 00:26:19

    Yeah. Exactly. You know, I think you’re right. I think that there is a trend in that direction. You know, it’s the point of the business is to help people and that’s what we’re doing in a lot of ways. You know, people have this problem that they don’t know how to solve or they don’t want to go down a rabbit hole of trying to solve and we make it easy and we make it fast.

  50. Ryan 00:26:41

    Yeah. It’s good. I mean, it’s just like, you know, so many different things where people use Web services or whatever. It’s just, yeah, you probably could do this yourself, but why would you want to own that responsibility, right? I mean, I think more and more sovereignty is overrated.

  51. Andy 00:26:58

    Exactly. Yeah, I mean, it’s like the conversation we were having before about pushing up the stack, you know. I mean, it’s just, at the end of the day it’s bits and bytes. I’m sure you could write the whole thing yourself, but why not let somebody help you with those hard parts so that you can focus on the part that you’re an expert on.

  52. Ryan 00:27:13

    Makes sense to me. Seems like the way that everybody just ends up makes better apps, right? Because you can just focus on your value and not necessarily something that’s important to getting to your goal, but not necessarily your passion or what you can scratch as a -- to do that you’re really proud of.

  53. Andy 00:27:33

    Oh, sure. Absolutely. I mean, look at the kind of software we’ve got today, you know, compared to a few years ago. You know, if you were building all that yourself, there’s no way that that could be that easy.

  54. RP: Yeah.

  55. AG: But yet people could crank out amazing Web apps and Web services and desktop visualizers and stuff in a fraction of the amount of the time they used to be able to.

  56. RP: I’m all about standing on the shoulders of giants.

  57. AG: Absolutely. It’s a great strategy in business and a great strategy in life.

  58. Ryan 00:27:59

    So we talked earlier a little bit about you had an alpha that you had a call to action. I think by the time this gets out, actually, you’re going to have a whole new release. Do you want to talk about what the alpha was or what the new release is; that kind of thing?

  59. Andy 00:28:14

    Yeah. Sure. So the alpha, the call to action that we had on our Website, was basically asking for some input on Linux, actually. So one of the new features of our release is we’re adding support for Mono. Basically, we’ve been working in the .NET world exclusively up until now. And we’ve had some requests from some of our big customers about getting the same kind of support in a Linux/Mono environment. So specifically what that call to action was was, you know, “Hey, help us test this out and give us some feedback on how this is working for you.” So, yeah. By the time this airs, I think that our new release should be out. It should be available in late July or early August of 2011 and that’s one of the big features. There’s several other features, which, you know, I don’t need to actually go into. But one of the other big themes is support for visualization, you know, some of the stuff that we were alluding to before; making it really easy to, you know, do this math and then have some way of visualizing it. You know, creating charts and graphs and so forth that give you a picture of your data rather than numbers.

  60. Ryan 00:29:22

    So that’s pretty cool that you kind of had two separate tracks, like, two projects: you had your .NET and your Mono. But now you’ve folded them together so people don’t have to worry about, like, how far behind is the Mono, you know, version tracking by, right? Is that ultimately what you’ve solved with the new version?

  61. AG: Yep. Absolutely. Yeah.

  62. RP: That’s good.

  63. AG: It’s essentially we’re adding a new platform so that we have a consistent codebase that runs in both .NET and Mono.

  64. Ryan 00:29:50

    That is cool. It confuses me when that isn’t the way people solve it. I understand that there’s lots of complexity that people just don’t want to deal with, but when you think about kind of what Mono is, the idea of having two codebases, it seems very contrary to the purpose of that.

  65. AG: Right. Yeah. Exactly. I mean, Mono is intended to provide .NET on other platforms and so it makes great sense to have a single codebase for that.

  66. Ryan 00:30:18

    Cool. So, yeah. Whatever people are using, whether they’re on Windows Server or not, they can go ahead and, you know, take a look at it. If it solves their needs, very cool. Back to that whole wide net thing you were talking about.

  67. AG: Right. Exactly. Exactly.

  68. RP: Well, Andy, thanks a lot for your time.

  69. AG: Absolutely. It was great talking with you, Ryan. Thanks.