Live from Washington D.C., it's theCUBE, covering .conf 2017, brought to you by Splunk. And welcome back to the nation's capital, theCUBE continuing our coverage here of .conf 2017. It's Splunk's annual get-together and coming to Washington D.C. For the first time, huge success, 7,000 plus attendees, 65 countries, I forget the millions of miles, the three million miles. Let's see, was it three million? I thought it was 30 million. Maybe 30 million. It's a big number. Dave Vellante, John Walls here on theCUBE, but I'd say off to a roaring start here, to say the least. Josh Rogers joins us. He's the CEO of Syncsort. And Josh, good to have you here on theCUBE. Good to see you, sir. Thanks for having me. Good week for you, big week for you. A couple of announcements that you made here recently. Go ahead and share with us a little bit about those. Sure, so we made two announcements yesterday. The first is a new product. It's called Transaction Tracing. It's an add-on to our IronStream product. IronStream is a solution that delivers mainframe machine data to Splunk Enterprise and has integration points on the security and on the IT service intelligence components within Splunk. What Transaction Tracing does, the new product introduction, is it adds additional capabilities to understand and trace a transaction that could begin on a mobile device and follow it all the way through the multiple hops it will take to ultimately transact against a mainframe. And when that transaction hits the mainframe, there's several things that you want to understand. One is you want to understand how is it performing? How is it affecting my mainframe environment? Is it causing problems in other places? And you want to be able to look at that transaction as or that application as a service. And so you want to be able to track that whole service end to end. So what we've done with Transaction Tracing is created an ability for Splunk customers to be able to service all of that data, collate it together and get a unified view of both how the service is behaving, the performance that, characteristics it's delivering to the customers that are utilizing the service, and then the impacts that it's having on the mainframe. All of which are core components of understanding how your IT operations are performing and kind of all about what Splunk is supporting. We're just adding on additional capabilities for Splunk customers. So I wonder if I could follow up on Transaction Tracing. So I remember about 20 years ago, David Floyer did a piece of research when we were working together at a former company. And I was struck at the time by the number of subsequent transactions that had to occur just to get an outcome of a check process. I mean it was like some orders of magnitude greater. Add to that mobile transactions. I can't imagine with all the internet traffic and other activities going on. Now add to that big data and security and fraud detection and all the other things that were doing the data. The number of ancillary transactions has got to be enormous. Hence the need presumably for Transaction Tracing. So maybe talk about the market need and why Syncsort, you would think doesn't the mainframe have all this stuff integrated into it? Maybe talk about that. Yeah, sure. So I think one of the things to understand is that the mainframe compute volumes continue to go up. I think people tend to think about mainframes as an environment that perhaps isn't growing, but in fact it is growing. And one of the key drivers is this new transactional workload that is driven in part by mobile and other devices. And so what you have if you're running a mainframe is I'm experiencing increase in my transactional workloads. I need to figure out how to kind of support that. But I also have a lot more characteristics I care about, security, performance, et cetera. And so I need deeper analytics. And of course, they are difficult systems. You need to understand the mainframe. You need to understand how kicks and DB2 interact to support a transaction. But you also need to understand kind of this next generation analytic environment and how can I leverage that to actually get the insight I want. And that's really what we call as an example of a big iron to big data challenge. And so what Syncsort's been incredibly focused on is helping customers understand the very specific use cases that are included in that big iron to big data space and providing very differentiated solutions with very deep differentiation to solve those specific use cases. And transaction tracing is a good example of that. It sounds fairly narrow, but it's incredibly important if you're a bank and you want to give your customers an ability to kind of check account balances and interact with you in a way that they haven't in the past. Well, it's one of those things that we talk about, you know, breadth apps and depth apps. This is a depth app, right? Okay, and then in terms of the Splunk relationship, where does that fit in? And what are the swim lanes between you and Splunk? We view Splunk as a key platform in the world today for kind of understanding IT operations and security. We view them as incredibly powerful from a platform perspective, and we also view them as a partner that we can add value to, that we can provide access to data that enriches their platform and allows their customers to get more value out of it, and that we can do that in a unique way. And so we have a very close relationship with Splunk, and that's not just at a go-to-market level, it's also at a product management and engineering level. We work very closely to make sure that our products integrate well with Splunk, so we've got deep integration with IT service intelligence, we've got deep integration with enterprise security, and we'll continue to drive deeper integration into the Splunk platform. So when a customer comes across a scenario where they want to ingest mainframe data, they can be assured that they will get no better product in the marketplace than sync source, IronStream, and associated modules in terms of both how it will perform on its own, but also how it will integrate with Splunk. So that deep integration is something that's always interesting to us on theCUBE.  And so one of the ways in which we measure or try to measure the intensity of the integration is the engineering that's involved. So I wonder if you could sort of double-click on that. Is it kind of just making sure that you're familiar with the APIs? Are you actually doing integration and engineering on both sides? Maybe you could talk about that. Well, so I'll talk about our integration with enterprise security and IT service intelligence. And those are, you can think of those as specific applications to support deep analytics, and these are Splunk offerings, deep analytics around those two areas of competence, such that a user can rapidly build a set of dashboards that allow them to answer the questions you want to answer if you're focused on IT service intelligence or understanding security. Fundamentally, they're data models. They've gone out and mapped what are all the data elements that you need, what's the structure that you need to that data model to be able to answer the questions that a security-minded kind of analyst would want to answer. That allows you to, if you map the data sources into those data models, that would allow you to rapidly build those dashboards that support those types of roles in the enterprise. What we've done is taken the very large amount of mainframe machine data that gets produced. Generally, it's an SMF record, so there's 260 types of SMF records. Each one has a subtype. We've mapped it into those two data models that Splunk has created. Nobody else has done that. And what that does is it allows those customers to get a complete end in view of how can I rapidly enhance my IT service intelligence application or my enterprise security application with mainframe data, which just happens to run my most sensitive applications and most voluminous applications from a transaction perspective in my enterprise. So we think that that deep integration is a really powerful capability, and it's just an example of where we like to go deeper with our partners than what we see other companies doing. You know, when, I mean, you talked about the mobile environment a little while ago and complexities and that. I'm always just kind of curious, I don't really talk about what that does in terms of when you're harvesting data, and now you're in a non-stationary environment, and that comes with it a whole different set of characteristics and challenges. I mean, what layer of complexity do you take on when you all of a sudden you can be anywhere and feeding data at any time from any machine? Sure, well, I mean, what it creates is a lot more interaction points, right? So I probably interact with my bank a lot more today than I did 10 years ago, because I don't have to find an ATM or go buy a branch. You never walk into a branch, right? And I did this over the weekend. I had to kind of transfer some money, right? So I just transferred it, and I was in Colorado hiking, and I transferred funds between accounts. And then later on the golf course, I did a wire, literally. You didn't have to transfer money on the golf course for a reason, did you? No, no, no, those were unrelated events. Just making sure. Lost a few dots. But that type of interaction, so you get more frequent interactions, which creates an operational challenge, particularly when you think about the mainframe and how customers pay for that, right? They pay for it based on how much CPU they use on a monthly basis. And so what we want to do is help customers run that system as efficiently as possible. It also creates a massive analytic opportunity, because now I have a lot more data that I can start to analyze to understand trends, because I have more touch points. But the trick is I've got to get that data into a repository and into an analytic environment that can handle that data. And that's where I think Splunk creates such an interesting opportunity, and what we're trying to do is just add value to that and make it easy for customers to leverage all their data. Does that make sense? Yeah, it does. How about the government marketplace? We're here in the district. You guys have an announcement around new partners. Maybe talk about the importance of government and what you're doing there. Sure, so we signed a distribution relationship with Karasoft, also a big Splunk partner, and that is going to allow government customers to more easily take advantage of Iron Stream and Transaction Tracing in these use cases. The federal government is an enormous market opportunity. It's also a big mainframe environment. There's a lot of government, core government applications that still run on mainframe environments. In fact, I would tell you most do. IRS, Social Security, CIA, and other agencies. And so we think giving ourselves an easy route to market for these customers is a great opportunity for us. It's also a good opportunity for Splunk's customers who are in the government, because they can go and buy additional capabilities that are relevant to their environment through the same partners that they've been working with. Is there a difference in how you deal public and private sector then? I mean, governance and compliance and all those things, I would assume you have different hurdles. They're different contract vehicles which have different kind of requirements in them, and that's one of the values that we get with the Karasoft relationship is just giving us access to those various contract vehicles. Talk a little bit about life. I mean, you've always been a private company, but you don't have the 90 day shot clock. You got new owners. What's the objective? Maybe talk about that sort of the patience of the capital, what your priorities are with regard to these owners? Maybe discuss that a little bit. Yeah, sure. So just to give a little background, in early July, we announced, and in mid-August, we closed a transaction whereby Cinerbridge partners acquired SyncSort and another company vision solutions from our previous owner, ClearLake Capital, and we've combined the two companies under the SyncSort umbrella, and myself and our leadership team is going to take the company forward. So the 90 day shot clock, I would say definitely we still care about the 90 day shot clock. We are very focused on growing this business and doing that in a consistent way on a quarterly basis. I guess the difference is I get to talk to my investors every day rather than once a quarter, but they've been great partners. The Cinerbridge guys have a lot of resources. They've been incredibly helpful in helping us start to think through kind of the strategy, some of the integration work we're doing with vision, but we think there's an opportunity to build a big business. We've employed a dual strategy of organic growth focused largely in the big iron to big data spaces, as described earlier, combined with M&A, and over the last 24 months, we've tripled the size of SyncSort. So it's grown 3X in revenue. We've doubled in employees. So you say that again. We've tripled revenue, doubled headcount. Okay, so you've increased profitability in theory then. Yeah, and we will continue to run this same play. We're seeing acceleration in our organic plays focused on the big iron to big data market, and we also believe there are additional data management capabilities that are relevant to our customers that we can acquire and help point towards that big iron to big data play. And so we'll continue to look at various spaces that are interesting adjacencies that are relevant to our customers. And some of that revenue growth, obviously, is through acquisition, right?  It seems like there's a new thinking, not seems like there is a new thinking here. Invest, acquire, increase the value. I think the money guys are realizing, wow, there's a lot more money to be invested in the technology business. We have an eye towards profitable growth, but we are absolutely making investments. And as you get larger scale, you can make meaningful investments in these specific areas that can help deliver really great innovation to customers. And transaction tracing is an example of that. And certainly I can give you others. But for sure, we are trying to build value. This is not a traditional kind of private equity play. And I also think that private equity is generally understanding that there's an opportunity to create value after the catch, if you will, in the tech industry. And I was looking at an analysis last week that financial investors, private equity, for the first time ever, will do more deals in technology than strategics in 2017. And so I think that's a statement that says that there's certainly an opportunity to create long-term sustained value in a private equity-backed kind of model. And I think to some extent, SyncSort's been pioneering that with a dual approach on organic growth and on additional acquisitions. Well, I mean, and you've seen it, coming out of the downturn, or maybe sort of into downturn, a lot of these public companies were struggling. I mean, you certainly saw it with Dell, BMC, Riverbed, in for all examples of private equity where there's investment going on and I think a longer-term vision with some, as I call it, patient capital. SyncSort is obviously part of that. And SyncSort, actually interesting when it spun out its storage business, as a successful company, CataLogic is doing its thing, so SyncSort was able to monetize that and then really focus on the core knitting. And then figure out where in the big data space that you can make money, which not a lot of people were making money in the big data space. So that's good. Congratulations on that. It's been, I like to tell folks that we've had a really good run, but it's really the first couple of innings. The Cinterbridge team is going to be incredibly supportive and I can't wait to get started on the next leg of the journey. I think there's going to be a lot more innovation to come and I'm looking forward to it. Sir, you're in the middle of the game. Yeah, we appreciate the time here. Good luck with that. The long-term plan down the road. I hope the show's going well for you. It's going great. And it's good seeing you. Great, thanks Josh. Josh Rogers from SyncSort with us today here, SyncSort rather here on theCUBE. Back with more Washington DC, theCUBE live at dot com 2017, right after this.


Hi everyone, Joe for jazzy's casebreaks.com, knocking out our last two box break of 2019, 2020 Panini Chronicles Basketball Fat Pack Edition, those retail hanger packs, random team break number five. I guess different from a hanger box. These are the actual packs in there. Also, you have a chance at an early bird spot. So if you were the one of the first 20 right here, you have a chance at an extra spot. So new dice roll, let's roll it, let's randomize it. Five and a one, six times. Name on top after six, two. And six and final time after six. Look at that, Oliver. There you go. Ollie after six times. He was the earliest of birds too. So the early bird catches the worm, gets an extra spot. All right. So now let's assign you a team, everybody, a random team, five and four, nine times for this one. One, two, three, four, and ninth and final time. After nine times, we've got Aaron down to Jeremy. We do not have a break schedule, Tyler Brenner. After this, I'll be turning things over to actually going over a little bit, we're going to turn things over to Sean, and he'll go through orders and see what's coming up. Whatever sold out, he'll do. All right. So after nine times, we've got the Charlotte Hornets down to the calves. All right. So there is the first half right there, Aaron with the Hornets, David with the Jazz, Nick with the Magic, Jeff with the Lakers, you got my Lakers, TJ with the Sons, Marty with the Spurs, Sean Maddock with the Hawks, Juan Peña with the Timberwolves, TJ with the Pistons. Oliver, your early bird spot, gets you the Trailblazers. Richard with the Bulls, Oliver with the Wizards, Chad with the Pells, Sean with the Clippers, Bill with the Thunder, Dan with the Nets, John with the Warriors, Josh with the Pacers, Michael with the 76ers, Nick's over with the Raptors, Marty with the Nuggets, Nick with the Knicks, Nick with the Knicks, Bill with the Celtics, sorry, I'm 12th, Daniel with the Bucks, Anthony with the Rockets, Rui with the Grizz, Fu with the Heat, Richard with the Mavs, Alex with the Kings, and Jeremy Stackhouse with the Cavs, just Jeremy Stack. I want to say Jerry Stackhouse. Let's sort these by team right here, and we're going to pause the video, allow for a little trading time, and when we come back, we're going to see if there's any trades, and then the break, take a round. All right, welcome back, folks. Guess what? There was a trade, Dan and Oliver trading right here. So Dan is out of his Nets spot and into the trailblazer spot. Put a T next to there for trade in case you're falling along at home, and the early bird now flies to Brooklyn. Tweet, tweet. Now we can print and rip. Good luck. All right, so this break should take about, I don't know, 20 minutes or so, pretty quick. All right, there's the final print out right there, falling along at home. Nets and trailblazers are the trade. Let's see who draws first blood in it on a Tuesday. Tuesday the 11th, 2020, August, Random Team Five. We blew through this case. We got one case, and we couldn't keep it in stock, ladies and gentlemen. So thank you. I guess we'll try to find some more. I know Chronicles hobby boxes have been going crazy on the secondary market, so I'm not surprised that these retail packs here, these fat packs have gone for a lot. Daniel, this is break number, I can open this. This is break number five. There's a lot of extra glue right there, I guess. Oh, are you in this one, Daniel? You have, I see with one spot, Daniel Barnes, you got randomized the Milwaukee Bucks. So all those Yanis vet commons will go to you, and all the other Yanis inserts and parallels and whatnot, which isn't too shabby. Yeah, you're welcome. Good luck. All Dodgers, if you're going to come back, I guess now's the time, bottom of the eighth, down five runs. Dodgers are capable of putting up a crooked number pretty quickly, so let's see. All right, so I'm only going to be sleeving and top-loading Zion and John Morant cards, but I'm sending these cards like Kobe White, other significant rookies aside, that Yanis, and I'll sleeve these up after the break is over. There's a John Morant, but just in the interest of time, I want to be a little extra efficient here. Nice start with a couple of John Morants for Oyama. Not that I've seen Daniel Barnes, I've not seen any numbered parallels in these retail packs. They do have exclusive score inserts, and they have bronze parallels, you can see right there. We've seen a lot of those, but numbered cards, no. That wanted to come along, it can't. You can't come along. There's the bronze right there, so bronze RJ Barrett. No, no worries, Daniel, it's all good. Yeah, I mean, you would think they would. I think in the hobby edition, they do, right? But I think in this retail edition, it does not. I think you get those bronze parallels instead. I do too, John. I like the, those flux cards too. Wait, John, did I ever, I feel like I trailed out. Did I ever, do we ever finish talking about what I've been watching? You said you were binging some TV show, and then I was about to say I was watching something, maybe I didn't. It was like eight hours ago. I was, I've been watching a lot of, watched a lot of crime, some courtroom dramas over the weekend, folks. I watched, I watched a time, Grisham, I watched Rainmaker. Guys remember Rainmaker with young Matt Damon? That was good. There's a Pelican for Chad B. I watched A Time to Kill with Matthew McConaughey. All right, all right, all right. And Samuel Jackson, that's a good one. That's a really good one. Right, John's been watching Luther, which I really like too, at least the first season or so. And then I watched The Firm, which was also good. The Firm, if you guys have not watched The Firm recently, that is a young Tom Cruise being a lawyer, kind of like a few good men, which is another great courtroom thriller. But it's a good one. Excellent soundtrack, excellent score. I forget who the the pianist is, but it's like this very bluesy, jazzy piano. It's just very simple. It's just one piano, no percussion or anything like that. Really excellent stuff. Could get really tense too. I love it. It's fantastic. The Firm. Yeah, actually, yes, you're right, Brad. R.I.P. Wilfred Brimley, who was also in the natural, was he the coach in the natural, I think. But yeah, he's in the movie as one of the The Firm security guys. So yeah, for some reason, I got roped into watching courtroom dramas. There's an occasional auto in here. Remember, these are retail packs, so you can't really expect too much autographs out of here. But yeah, every once in a while, we will see an auto. I think in the handful of breaks we've done today, we've seen a few autographs. I've done Tiger King when it came out, John. That's both crazy, exciting, entertaining, and ultimately very sad. Feel bad for the Tigers. The people are just bad people. There's no redeeming qualities in any of those people. Was there horse abuse? Yeah, you can't. Well, I don't know. But that's just animal on animal crime, right? Well, no, they put it in the cage with them. All right, I mean, but that would happen in the wild. I mean, if this was the wild. But the problem is, they're not in the wild. That's the problem. Apparently, these flux zions are selling especially well, Chad B. But yeah, there's no redeeming people in that, in Tiger King. Maybe the workers who actually tried to preserve the Tigers' lives. The one that got her arm ripped off. I mean, I think I was leading Tigers to their deaths. Yeah. Oh, yeah. That kind of broke my heart. But the main, the lead characters in that. It should be under, spotless should be under, if you log in with jazzy's casebreaks at gmail.com, you should be able to see it under Google Sheets. Is there not a bookmark there? Maybe not. Playbook Zion. So these are prism updates. These are fewer and far between than most of the other stuff. And there's updated stuff. What has to be edited in Rehears? Tiger King? Yeah, there's, I don't know. There's a lot of strange things happening there. I guess some folks in Hollywood are trying to make a movie out of it, but do I want to see a movie after seeing the real thing? Really? Do you still have an appetite for it? Is Will Ferrell going to be in it? Rob Lowe as Joe Exotic? You can't make it fun. I mean, that's just too sad to be funny. Like, how do you make like the guy shooting himself? You can't make that funny. Yeah, our red, our unred. Yeah, just, yeah, yeah, because I have to go through some for that. You know what I do? Click in there. Yeah, space, label, unred. Label. Oh, there it is. That's the little code there. So it'll, because I already filled in, if they bought other spots, I already filled those in too. So just go with the unred, and you should be good. All right, Sean's actually going through orders on our, on our laptop. Isn't that heavy? It's the only computer that's powerful enough to take on the road, to do group breaks. Everything else is. Well, it's got like the, yeah, it's got the processing power of like a it's a, it's a gaming computer really. Like you could probably run a very high end game on there at the highest of speeds. It could, it could run like small island government, maybe. Yeah, yeah, yeah, yeah, nothing too crazy. Maybe an island that doesn't have banking. You could probably run it. What's my favorite retail MBA product for 2019-2020? You know, we do a lot of those like filler breaks with mosaic, the mosaic cello packs. I think for a retail product, that's fantastic. I like the hobby editions of those too. Mosaic, I think has been a pleasant surprise this year. That's stuff is really nice. Are we still waiting on that flashback GNC? I thought that'd be sold out by the time Sean, top scrum is pretty good. Did you see that eight box mixer? That's a pretty nice one. Four box of 2020 Bowman baseball and four box of top scrum. That's a good one. But yeah, that Panini mosaic, I think all versions, hobby version, retail versions, hanger pack for, I think those are, those are really great. No, that's impossible to find at Wal-Mart.  It's crazy. Right. Yeah. People reseal these too.  They'll do that at Target too. Like they'll open these up and then they'll, I don't know how they do it. If they rip them like this, I guess they couldn't, but there's, there's a way they do it.  Well, I'm not advocating murder. Wow. But you're just advocating it anyway. Ladies and gentlemen, there are numbered cards in this. Look at this blue Zion Williamson 73 out of 99. Now remember, let's go back. Let's, let's, let's call back to the early point of the exclusive score insert exclusive to this set to this, these retail packs, hanger packs right there. Wow. It's the first one I've seen. There you go. Nice. That goes to the Pelicans. That's going to be for Chad B be rolling in that Zion. Yeah, that's not, I'm not going to have them tonight. Now they'll, they'll probably score like three garbage runs in the bottom of the ninth or something like that. John Morant. Oyama with the gris. You'll get that one too. And this one too. Do I think Carol killed her husband? Absolutely. No doubt about it. Yeah, of course.  And then he magically disappears in a small untraceable plane in the wilds of the Gulf of Mexico. I don't know what happened. What do they say in, in, in murders? All right. Who stands to profit from the murder? Who stands to win from someone's murder? That's more often than not, when it comes to murder, most foul. More often than not, it's someone, you know, murder, most foul. That's probably from some sort of, some sort of lit piece of literature that I made me read. The man made me read in high school. I can't wait to read more Brideshead Revisited by Evelyn Law. It's a book in like the 1920s about, about England post World War I and pre-World War II. Atonement era, you know, the thing is, which is a, a beautiful era in England. You talk about that one. What book? Those Flux Islands. Oh yeah, Love and the Time of Colorado. That's the one. Yeah, that, that's a great book. I need to reread that. That's a great one. I haven't read that in ages by Colombian author, something, something Marquez, I don't remember, but, but he did a lot of non-fiction stuff about, about the, the Troubles. Not in Ireland, but the Troubles in, in Colombia. Just John Moran. Yeah, I've not seen any other numbered cards in this unless I'm, I don't think I did. Unless I missed some on the back, but no other ones had anything that looked different, that looked like in my head was a parallel. I would always check the back, but wouldn't see anything. You know what I mean? Shipping team will find it. If, if I did happen to miss one, but I doubt it. I highly doubt it. I think there are fewer and far between. These scorecards exclusive to the set though. Yes, Joe P. The basketball mixer is going to go tonight. Yeah. If you read the titles, Joe P, I wrote down what, what needs to happen for it to fill. I know no one likes reading, reading except for me, but it's all there. It says at the end, there'll be the title of the break. And at the end, it'll be like the cello pack X, X and Y will have to fill for it to break. I think we're at the last one. Are you talking murder? Yes. Murder most foul? Defaust. I know it's not. I don't know any more good fellow quotes. The ones that don't have cursing in it. They all have cursing in it. I thought you, I thought you were saying I was all right, spider. That's the second Taco Fall prison that goes to Bill in the Celtics. Prism update. Nick Jackson made a good point today. Why don't they just do prism series one, series two, and then an update or something like that? I'd be like, I'd be like, yeah, it's not a bad idea. There's James Harden, score Anthony. I feel like we're seeing more of those score parallels than in previous brax, previous brax. I'm gonna call them brax now. Let's do some group brax. You gonna brak, bro? Oh, RJ Barrett. Oh, it was flipped around. It's a flux though. These fluxes are nice. They haven't even released a flux yet. It doesn't even exist. So hopefully it's a little sampler right here, a little sampler platter. That goes to the Knicks. Nick Stober with the Knicks. There's a Zion from an XR, that XR design. I could use some XR basketball in my life. They will release something like that. Pels, Chad B once again, getting all those Pels. Another Pell, Hero, Rui, Ja, in Espanyol, Ha, Amorant. There's Zion Williamson in French. There's Luca Donchich. And this Zion's turned around. What's up with this? This autograph is guaranteed. No, it doesn't say that. It's, I know. Sorry. Phoenix, I wanted it so bad. I wanted to say this autograph is guaranteed by Panini. It wasn't. Sorry. I apologize. Chad B with that Phoenix Zion. That score Donchich is exclusive to this set.  Braun James, Darius Garland, and our last little bit here. LBJ, Carson, Marcus, PJ, and Nikhil Alexander-Walker elements. Essentials design right here, not elements. And there you have it. And there you go. That was Random Team 5.   We don't have any more. I think Jason has some left on the personals channel at Jaspy's Breaks on Instagram Live. So check it out. If you're watching live, he's live right now. So ask him about it. I think he has a few packs they can buy just straight up. But no more group breaks of this for now, but we'll try to get some more. This went, this went so quickly. I think we feel like we have to try to find some more. Thanks for watching everybody. I'm Joe for Jaspy's Case Breaks.com. I'll see you later. Bye-bye.


Well, good evening and welcome to the last session of the day You've chosen build your Legos a practitioner's guide to building reusable components with me first greetings a Little bit about myself. I am the director of digital experience platforms at a company called bounties We're located in North America with offices throughout the United States and Canada I've been a developer for over 25 years now Been working at bounties and with Drupal since 2009 or so and a fun fact about me Is that I'm currently half finished with a 9,000-piece jigsaw puzzle And in case you want to see what it looks like The with the workspace is about two and a half meters by two and a half meters and when the puzzle is done It'll be you know, roughly two meters by one and a half meters. So get in there So who's bounties I won't spend as much time as the marketers would like me to talk about us But we're a company. We do lots of great things. We have a you know, an amazing Drupal team We do more than just Drupal though. We have engineers that cover the gamut. We do marketing Analytics and insight experience design you name it. We do it So if you'd like me to ramble on about that see me afterwards So what's the big idea about this talk? What you know, what do I think you should take away from the talk when you leave and I broke down into three different questions You know, why should you build your Legos or why should you be building reusable components? I think in a nutshell it's Consistency and efficiency and we'll talk about those things along the way The other thing is you know, how did we go about doing this? Now I know there are many ways to do this And in fact the way that we do it might not be suitable for you and that's fine I think what you should really take away from the stock is the more the big picture kind of thinking that went behind it And and how we got to the decisions we got to and then lastly What have we learned so far so when I originally gave this talk? It was last year around this time To talk in the United States And since then we've had about a year to ruminate on What's happening and to use the components more and get some more ideas. So I'll share some of those learnings with you So why should we be doing this? Why should we be be building Legos? And before we jump ahead to that The one disclaimer is we should really agree I want the definition of the Lego is and so I went to a really nice talk This morning talked about web components. I'm not going to talk about them here What I'm really focused on are the reusable building blocks that our content editors are going to use to build Drupal pages and so Away we go Component-based approach. I'm sure lots of people are using it for those of you that are not using it yet We love it and it's got a number of advantages. I think you know One is the the idea that the content editors have a great deal of flexibility to build the pages They they no longer want to be You know building pages that fit template They want to be able to create that template for themselves on the fly and the best way to do this is with you know components The other thing is a lot of the customers that we've worked with as we've moved them on to new Drupal systems You know one of the problems we've had in the past is that Developers have had to be you know part of the content creation process and you know, we don't want to do that One we don't like to do that or we said I don't want to do that and two we don't want to be a bottleneck To to the marketers. We want them to have a faster time to market If we spend less time helping them do the day-to-day content creation Then we can solve only cool problems and we can be really focused on the problems that matter the problems that are going to bring more people to our website problems that are you know You know preventing people from from doing what they need to do on daily basis, so it's really important for us to do that and Using this component-based approach. We can also add some guardrails to help the content editors out clearly with a really rigid approach you can do this as well, but You know we can do this and make sure everyone's happy People that are trying to protect the brand as well as the content editors themselves and lastly Personalization may be testing hopefully we're all doing that But a component-based approach really makes it easy to swap out pieces and parts of the site So we can do a good job with this So when we started thinking about not only using this component-based approach, but You know building our own component library. There are a number of different problems. We were trying to solve And being an agency doing lots of different websites You know there's some efficiencies of scale that we can get By doing things one time and then we're using them over and over and over again So if you think about it You know a lot of the components that we built out and you build on your sites They're used, you know on every different website, you know pretty much every website has a quote of some sort We have hero banners. We have two ups. We have lots of those different things And so by you know building these components once and distributing them along the way It can make it's more efficient, right? If we fix the bug We can fix it one place and distribute it as opposed to finding the you know 30 different places amongst our sites that we do it We also Have some issues with consistencies across the websites So if you think about it if you're you're doing a copy pasting Rebuilding this functionality over and over and over again What you find is you're gonna run into parts of these components and other systems And they're gonna be different and you're gonna you know not know exactly why they're different Do we mean them to be different? Is there a specific reason or not? And so this leads us to having a lot of you know system specific knowledge that we don't really need Meeting the regulatory requirements is pretty important You know as an example, you know as accessibility Now to be clear we should do that because it's the right thing to do and not because a bunch of lawyers tell us we need to do it But you know building components in a standard way can help us make sure that our sites that are accessible and then lastly Working with designers. I want to have a common language and a common tool set that we can use So we can spend less time on Building the things that we already know how to build and more think you know more time on the things that are gonna make this site unique so a number of years ago we built a website for Wilson sporting goods and This was one of the components we built. We call it the quilt And basically the quilt is a row that you can add two by twos one by ones one by twos and two by twos And any combination that you want And you know build up pretty unique site now We built this in Drupal 7 And you know we were you know this was right around the time or just before Drupal a to come out And once we were finished with it We had a couple of developers that decided they wanted to learn Drupal 8 and I thought this would be a neat Experiment to take this from you know our 7 Installation and make it into Drupal 8 So once they finished it we showed it off to a few people and they kind of liked it In fact, they wanted to use it And so that was an unexpected problem So we had to figure out fairly quickly how we were going to you'll make this scale how we were going to do this across many sites so You know, what did we do you know first thing the first question we asked ourselves is what should we build and to To determine this we started by auditing recent sites we had built You know some even a little bit older Some that were coming up so in different platforms that we we built that bounteous They just kind of get a feel for the types of components that were out there And we had to you know two criteria that we use pretty much to decide whether or not to build these components out One was you know how often were they used so something was used all over Pretty much every site. There was a really good candidate for us to build Again, you think of you know hero banners and you know frequently asked questions and things of that nature You know, so that was like one criteria and then the other criteria was we wanted to make sure that that functionality was common Across the components. So if someone's hero banner did some really funky stuff We left that off our component. We didn't want to to bring that in to start And it's just kind of an interesting note while we started with the quilt because it really wasn't used on a lot of sites Probably was going to be a lower in the priority scale for us So What do we end up with we built 12 start even doesn't And this is by no means all the components we use on all of our sites There are lots of different components we use As well some less popular some very specific for the sites But this was a good starting place or at least we thought it was and this is a list that we continue to talk about expanding As that time goes on So I'm going to buzz through them all so you can see them quit accordion An alert So the hero banner and this one's kind of interesting there's three different hero banners here There's one at the top. There's two stacked slides and then there's a carousel And so a lot of our components have a lot of functionally baked into them. They're they're really Really flexible You know call out frequently asked questions a grid And just kind of scroll through this guy, too You know one of the interesting things for us was as we did our audit We found you know most of our sites when they used something like a grid We're only three or four wide and so our grid is you know three or four wide you choose But there are certainly ways to make this So that you know you can have you know five wide or two wide or whatever your use cases may need Overlays kind of similar to that, you know just the differences as you scroll over it We're going to show you additional text And again three and four wide for us that was common The quilt so the thing that started to roll off You'll see a variety of the different rows Also is a side note all of these Images are coming from a site that we built internally so we could show our Our design team our developers all those folks you know what we had built and how to use it It's a sandbox so people can go play with it. We don't care what they do to it Also has a space theme. So I hope you like pictures of space much as I do Quote and you know in this case, it's a really long quote with a background image But you know you can imagine it just has a background color Where the quote is well? We can do tabs horizontal vertical text divider if you want some kind of interesting you know design experience in the middle of your page and Lastly, but not least is the two-column again. This is one of the ones we find ourselves falling back to quite often So You've seen the components And I'm sure in your mind you've got lots of components that you'd like to build to the question Is how do we build them out? And again, this is kind of our method for doing this. I'm sure there are other ways to do it That that might work well for you And this is actually version two. I'll say it the first version of this was really just a custom block and the paragraph type We started building that in the very early days of Drupal 8 So there was you know, not as much development as much available to us And we were using you know blocks to lay up our pages as time went on we we started to Evolve and we're continuing to evolve to this day But you know two things that happened along the way that made us change our original approach one is paragraphs We like a lot of people sheepishly use paragraphs to control layout right and make it easy for our content editors to To control the later on a page That worked really well for us and then Layout builders come out right that went from a thought to an experimental module to now It's a full-blown module. And so what we ended up doing was ending on An approach that we could work and use both ways and so Let's talk a little bit about this so we have the paragraph type in the middle You can think about that as containing the content and then any you know layout Or styling issues that we want to control for just a specific piece of content and then the paragraph container Kind of buns that all together and it also has You know fields that control functionality that affects everything that's within this container And then eventually you can stuff this in a custom block that we built out Or you can use it within your entity is like content types So let's take an example because I'm sure that's clear as mud The paragraph type If we're thinking about like a hero banner, that's the individual So as you saw on our screen before we could have stacked banners. We could have carousels but we all know each of these paragraph types represents one of those banners and so we have the Headline the sub headline the call to action You know is content the background image and then we have you know styling theming things we're going to do with it So how wide is that container that's going to hold the text the size of the text the size of the button? Color of the fonts all the good stuff Then the container Has all of that stuff So if we have five banners it has all the five banners, but it also has additional Fields that we need to control like the carousel. So which letter we starting on You know is it turned on automatically and in those types of things so Let's walk through the hero banner a bit As I mentioned You know kind of beneath this we're using paragraph types. So we have two different paragraph types for each of our components one is this The banner rows or the subcomponent again, that's that the individual banner that we're using And then we also have the components banner, which is that whole entity for the hero banner Container field. So what's in that? You know kind of the container again? We we have a reference into the reference revisions for the banners themselves And then we we have a numerous fields that we can use You know to feed transition to you know to do less different things The the subcomponent so this is the actual banner itself has a lot of fields on it In fact it has many more than this this is just all it could fit on the screen But this is a good you know cross section of the types of fields we have so we have everything from like the CTA or the headline You know the content that we talked about and then we have some selling Fields as well like additional classes that you can add or the CTA color those types of things and then we also have a for the hero banner itself We have some other fields that we deal with on things that are not desktop You know like are we going to drop the text below the image or not? And we have lots of fields We'll get into this a little later our our content editors Especially the ones that we're we're building for are pretty sophisticated They want that power and so they'll they'll wait through a few extra fields for us to have the additional power at their hands So Let's walk through this And just see what it looks like to edit one of these Banners so this is the page that I showed before with the banners on it And you can see here we have the three different components and we're going to edit the bottom one Which was the one that had the carousel And once we go in here, we have two sections we can work with we can do work on the slides Or we can work on the carousel options in this case. I'm just going to walk through the The first slide, you know and again we have them broken down into You know essentially you know content And you know styles and then the mobile experience and so we can add our background image if we want we have The subheadline or the headline the subheadline call the action so anything you consider content we can go ahead and edit And then we're going to go back to the top and we'll walk through the different styles So again, you can there's a lot of power here for the the user They can add additional styles if we have them in the CSS to specifically style this banner And then we start talking with textiles. So again, how wide be the container width is The size of the text the color of the text and then we do the same thing with the image and the call the action as well And then we're going to go back to the top and this is where we're going to deal with some of the mobile aspects you know we find a lot of times we need to drop that text because the the Headlines too big or in fact sometimes we can just change that headline again to allow the the content is to build the content the way they need to And then you know the carousel option so here by default we turn the carousel on if you have more than one banner And then they can go through and make changes to make the carousel work exactly what they want to And then that is the finished page and this is our carousel slide that we can see So it's pretty stuff. I know it's late in the day. I don't have a lot of Toad slides, but we can walk through some of these things that we found to be important Bunch of layout pretty straightforward obviously But you know a few things that we have in here We have some CSS and some JavaScript and things like that. So right out of the box are our components are well styled You know, certainly you would probably update some of the styles to fit with the website itself But if you drop this in with any theme like it just works, which is nice and then some of the JavaScript we use for like an admin thing or for the hero banner there's some Some image manipulation we do as well The banner info again nothing too exciting here But the one thing that we do have is the just two components module and What that module is it's kind of the parent module for all these and so it poses some some interesting pizzas it has some real basic at CSS that we need throughout all the The different components like breakpoints and things of that nature It also has a composer.json file so we can control this and use composure to bring this into our projects as well as We look at some code the you know, I don't have a ton of code and hopefully You don't as well, but we do have a couple of needs You know in one case when we're using the paragraph widget. We need to make sure that we tell it which Libraries are needed. So we use this hook to tell us that And then most of the rest of the code that's in these these modules is really dealing with The the templates are making sure they're set up. So we want to override the block template and so we use a hook to To add that suggestion and then we we register with the theme and Then in the dot module file as well We also have a couple of fields that we want to to override And another thing that we want basically we want to make sure that if anyone is using this that they use our templates You can't override them, but we want them to Really be mindful when they do that You know, and then what do the templates look like? What are the template files look like? You know, we have this is that container template. So we're going to talk about the carousels And make sure those are set up right and then we have our for loop to go through our individual banners And then we include that template right from here as needed and then You know pretty straightforward in the banner template, but this is the template that we use to build those individual banners out So some things to consider As you do this yourself You know We've I feel very strongly. It's a good idea, but you need to make sure you kind of think it through Why is this how you're going to plan to build your sites? You know, as I mentioned before, you know Originally we were doing the the block thing You know the block layout and then we've we've transitioned and so our code bases had to transition with us as well But if you're going to plan to do this make sure you think through that as well and you know in the case You know of layout builder for us. We didn't know if it would take off or not So we built our code to handle both ways And we're still there right now You know, I I gloss over this a little bit, but you know how sophisticated are your editors? You know if you are working with folks that are in a marketing department that are really dedicated to their craft You can give them a lot more freedom And you can give them a lot You know more complexity in the UI if your content editor is You know someone that does this like every other Friday for an hour like you want to tone down How complex things are? How will you extend the functionality so as you think about your components You have to think about it a little bit into the future and then understand like what your approach going to be to to do this Not necessarily technically, but you know, what's you know, how are you going to use your components? So our base components are more basic than some of the components we have You know on some of the sites and so, you know Understanding, you know that our idea is everyone's going to get this or no one's going to get this In the functionality standpoint, you know helps us understand how we're going to extend that functionality Make sure you're able, you know, we also can override the templates and themes and all that good stuff So we're a pretty good place there And then, you know, how do your projects incorporate these components is another thing You know, we use Composer. I'm sure most people use Composer But making sure you have your projects set up correctly so that you can pull those things in Those components in and make it really easy for you to do those updates as you add, you know functionality To your component base alright So what have we learned so one of the things that we learned is that What's clear in my mind and what I know isn't clear and everyone else is fine So we need to make sure that everyone's on board, right? And it's not just developers. It's everyone. So it's project managers It's especially designers You know, business analysts everybody everyone needs to know what's going on Because you want people to speak up if things are not working as they should And then, you know, it's not enough to like do like a training session and give people going You need to continuously do this So on a recent project that we had we didn't use the components because the architects who was new to our Company just didn't know we had them So, you know, live and learn I guess but make sure that everyone as they come on board or taught about it Default the system to using it so better than just telling people to use it You know, make sure that it's the default choice make sure you have to opt out for us we have our own starter project that we used to build their sites and so a Project in the near future or task in the near future is just to make sure that these Components are included by default make people opt out of them If you don't have a starter project, hopefully have like a starter checklist or something and make sure you add it to it And then the last part is You know key for me, which is to make sure that you schedule a demo with the team before you start Because you don't want to get partially through your design phase and then start to introduce the concept to the designers Lastly, this is a great idea and we use it and we love it Doesn't work for everything right so Make sure we're you know, you think through on the project for you use it Yes, I want you to default to it, but you know make sure that there isn't a good reason not to use it You know, sometimes the designers are just going to design things That don't fit your components and you've decided you're not going to add them to your components So leave that component out. It doesn't mean you can't use the other components, right? There's still value in using 10 of the 12 or 15 of the 17 or whatever you have But you know make sure that we're mindful we're using it And Also, I would say make sure that the content editors are comfortable with how you have the components set up You know a recent example from you know about this for us was we had a company that we built and launched a site with you know earlier this year and As we were going through The process with them. They said it's really awesome, but we're not ready for it So we still built the site and we still use their components But we found ways to add guardrails to really focus them on it and as they get more comfortable with content editing when they get More comfortable with Drupal we can start to pull those guardrails away and give them the full power that we'd like to and then lastly Clients can have unique requirements and you know, we had a recent site build where we needed to replatform a number of sites and As we worked with the client to sales budget and all those things we said hey, we're gonna have to Condensure components from Someone seemingly number across the seven sites to another to another number and everyone agreed and then once we got into the build Like all the people that own the individual sites were like well I want my component not you know this one that doesn't have all my features. It's ultimately we Didn't use our components. We built some new components that that give them some some different functionality and flexibility But ultimately, you know, recordings might just prevent you from doing it So And what's quick Come to contribution days on Thursday and help us out help make Drupal better Let us know what you think of both Drupal Khan and Drupal and this session in particular Are there any questions? Yes Our's works with responsive, I don't think we use bootstrap for it. Oh, sorry the question is Do the components work there's responsive and And or with bootstrap. So yeah, they're all responsive. I didn't show it on the on the This rain, but if we compress those right out of the box, they're all responsive and they work well And I don't think we use bootstrap in it, but there's no reason that yours can't Anybody should be able to use anyone are any of our projects, you know Can and will get these the combined Each individual site might have more things that they have to do with them to make it fit within the other sites But yeah, you know out of the box they work and they're styled and they look pretty but there certainly are some adjustments That might have to be made I'm gonna repeat the question and let me know if I got it right You know the I seem to be against custom modules and I am What in this use case, but then I think the question is are they set up in a repository? How do we work with them? Yeah, I think Yeah, I think what you end up with if you really need to do those customizations is you're gonna have a custom module That that only has those pieces of it So you don't have to build rebuild the whole thing hopefully you can just add you know like if you need additional fields Some additional CSS you should be able to just add that you know custom module and kind of layer on top of it But then get the benefit of all you know that's been previously built You know and then for us too, you know if there is a use case and we really like the functionality We'll just build it into the component and then you know we use get To keep track of the versioning so you can use composer to grab the specific version you want And so we can you know make sure that we pull in The right version. It's a living breathing ecosystem right and and you know as we Learn more as you know you learn more you're gonna have to keep growing it I So I'll repeat the question as best I can And then you'll let me know if I got it right. I think the question was a class in money to do this and Who incurs the first you know the class? And really good question how we approach that well the the easy answer is what we've already done and With this particular approach I Used bench time for my developers and so I just made the investment Into it and we were using it for a couple of ways one is to get you know This you know efficiency built into the practice a bit, which is really good But it was also to get some folks a little bit of experience with with Drupal 8 as well so there's that and Then the question is going forward. What will we do? And that's you know, it's a it depends You know depends on our relationship with client, you know Sometimes we would you just you know have a relationship where we could just pull it in and to our common components and not worry about You know and if that's if that's not the case and we really wanted it then I would find bench time and I'd rebuild it The question is how do we bundle the configuration? Yeah, it's it's bundled within in the module itself. We have a config directory that we use when we install it So there was a comment I think it's a comment that they use a similar approach that we do And there are some multi-lingual issues with paragraphs specifically a thing needing to have the same number of paragraphs for each language and And then some client specific Cases that we haven't really run into that yet. So I had I don't have an answer to that particular problem, but The approach is not without challenges, but every every approach that we have in Drupal seems to have challenges as well The question is if we want to add a new field to one of the components And we want to roll it out to a number of sites. How do we deal with the config? This is really good question. We haven't had to do it yet I suspect that we would end up with some some hooky code to Figure out whether or not it was already there and and then add the config Custom box Yes The question is based on the approach do we have a consistent data model so that An API could pull the right data About Probably Yeah, I don't you know, I don't think we've you know, we haven't used it in that way We haven't been using API pulled out so I don't know what you'd run into but yeah I think you know kind of going back to some of the the general thoughts is like thinking through how you're going to be using them And you know my approach there would would be to to kind of Set up a sandbox and just play around with a little bit and make sure you know to see you know If that is an issue and then you know, can you indeed get around it? I don't I don't have an issue or an answer to the specific issue But but yeah, you know that's what you know kind of interesting about this approach is is you know You know just kind of in general right not part specifics But there is that you know how you're going to use These components is going to be different than me and you're going to run into you know some different issues You might have to tackle We're also using a similar solution. Okay However The user experience So many components, so many options can get messy real fast Yeah, so one of the things we implemented the thunder and mint which has a sort of a better Okay, but still we have UX problems. It's still messy. We have no suggestions So the the comment was that They also use a similar approach and then the question is or in that the UX can get messy and then are there You know suggestions for how to solve it You know we haven't kind of gone through like a second version of it and you know for us You know, you know our users have the real kind of power users and so you haven't really had to worry about it one of the ideas that we Thought about though before it haven't executed was you know maybe having You know different experience for different levels of users So like I could assign a role to somebody and then based on that, you know adjust what they see You know so I mean it's it's a sticky problem, right? And it's one of the reasons why we kind of haven't left paragraphs although I've heard some things about Leo builder that maybe tell me that that's going to get solved But you know we can you know within you know our content types. We can say you know in this area Only use these components and in this area only use these components of those types of things But you know, yeah, it's you know, but it's one of the reasons we started with 12 because we don't want 100 because You know even talking to clients in general not even considering this project. That's a problem You know, they were like hey, we need our current site has like 112 components and we need them all and you're like no not really You won't like that The one thing I saw recently Was with Acquia acquiring cohesion I saw a demo of it I'm not a you know showing for Acquia, but cohesion seems to take I mean I don't know how it's architected but it seems to take kind of a similar approach to what we're doing They have a pretty pretty UI That looks like it's pretty pretty snazzy. So I would you know, where'd you take a look at that? That might give you some ideas as well So There was a comment that they use view mode selector with the approach and it works well I mean, so we don't yet, but I'm gonna take that as a note and and go back to the office try and check that out all right If there's no other questions, thank you for your time and if you need to get a hold of me there I am


Warning! Don't let this happen to you. This is perhaps one of the most frightening portions of Scripture in all of the Bible. Matthew 7, 21-23, Not everyone who calls out to me, Lord, Lord, will enter the Kingdom of Heaven. Only those who actually do the will of my Father in Heaven will enter. On Judgment Day, many will say to me, Lord, Lord, we prophesied in your name and cast out demons in your name and perform many miracles in your name. But I will reply, I never knew you. Get away from me, you who break God's laws. Here's what's so scary. These people strutted up to the Lord with confidence, trusting in their own works and were shocked when they were rejected by God. We're not saved by the power of God working through us, but by the presence of God within us. Salvation is not by works, but by faith. No, not even miraculous works.


So that's me, and I want to talk a bit about extension to core. So how do you find the stuff in core code that is in your extension and the extension API. And Olivier just said, have you seen this horrible API or LibreOffice.org thing? Actually, I think it's not too bad, but I agree that up to now finding something there, once you're there it's okay, but finding something is the hard part. So, well actually that is true up until last weekend essentially, at least if you're running master of LibreOffice. So I don't care to do that. So first I have to say, no idea what I'm doing. When I'm talking about you and all that stuff, there are others who are much better informed about the details. But let me just give you a quick run through the concepts so that we know what we're talking about. So interfaces, service implementations, and I use some lame comparisons to introduce them. Interfaces are what you can do when you have some, you know, thing. They're usually named ComSanStar something and have a name that starts with X and then there's a description of what kind of things you can do with them. Services provide a set of interfaces, so they are essentially a collection of stuff you can do with something and they usually start with ComSanStar and have not an X at the beginning. And then you have implementations. They are what actually implements the service. One concrete example. And they are usually named whatever. So if you look at them, they have a bazillion different ways to be named which is kind of unfortunate. But they are the actual stuff that is in LibreOffice and that does something. So just to make that a bit more visible, I came up with some weird examples which are, of course, real-life use in LibreOffice, but interfaces are stuff like, okay, I have a cargo storage, I can put something in, I can take something out and it has capacity or something, and I have a transport something that goes somewhere that I can start traveling and stuff like that. And I can combine those to a lorry service where I can put stuff in and get it somewhere, but it's still abstract, it's still some lorry, it's not one concrete lorry. And the implementation then is one specific lorry, one very individual one with its own decorations and boxes. So this is to get you the idea of what an implementation was as well as what an interface is. So what can we do with unoruntime reflection? So when you have some uniting to actually find out what kind of unit thing you have there. And the first thing is X interface, which is essentially everything in the unit has an X interface, so it's a base interface of all unit interfaces, and the only thing you can do there essentially is ask if it can implement some other interface, because in itself it's not of much use by itself. The second thing that can help us there is the X type provider, and there we can actually get a sequence of types so we can get an information of which interfaces are implemented by this specific thing that I have at hand. So with this I can find out if it's, for example, if it's an X transport or if it's an X cargo service, cargo storage or whatever. So with that I can find out what I can actually do with it. And then there's X service info, and there I can ask actually which services are supported. So I can ask support service, or I can get the list of all the services that are supported by this thing. This is already pretty abstract and stacking stuff on top of concepts. When you're there like coding your little basic Python script, I assume you don't want to go all these steps. So this is why I introduced the constant star script service document as single D. That sounds even more complex, but this is something you can start once you've got a basic IDE and then you have show service docs. And whatever you have as a new thing in, for example, basic, you can just throw in there and it opens all the documents for this thing which are on api.libreoffice.org. So the hard problem that Olivier described, you go on this web page and you can't find anything. At least it's a lot easier to just take, I have this thing and I want to have documentation about what I have here. And if you're in this, double-acquiring your basic script, you can use that.  You can also... So the first thing shows the services and the second thing shows the interfaces. The interfaces are actually a lot more. If you do that for the classic writer document, so this component in basic, if you have a writer document open, the first one will open something like 10 services, which is OK-ish, and this one will open more than 40 tabs in your browser. But you get all the documentation for this stuff to work. So what do you have to do? For example, in basic to get to this, you have to get the service documenter and then you can use it to show whatever this component or whatever you know object you have actually does. In the middle I just added the old stuff that was there before and in case you didn't know it, which just pops up a message box with the methods and properties and interfaces. But you can click on them, they are not linked and there's no further help in those. I wondered if I actually should make this first line superficial by making it a global thing like Star Desktop that is always there in basic. So you would never need to write the first line and you would only use the last one and just say, OK, I don't know what this is that I have here. So this is the stuff using the UNI API from the outside, not looking into call. But actually I want you to look into call because if you have a bug that you find in the UNI interface, it's much better for the LibreOffice project if you're not only able to say it's broken but also find the way how to whether code is in fixing it or you can either look at it and see if there's further things you can do. So the other interesting thing is find out the actually implementation that does the stuff that you're working with in the call. And well, the old way to do that for example is you ask your object to get an implementation name and then you get an implementation name and then you enter this straight into openwork.debrough.org The problem with that is you get like a bazillion hits from test code and everything which is instantiating this specific search. So it works but it's not really that nice to use. The second thing I did was the first thing I did was just finding these component files in the LibreOffice Solstery and you can find them from that you can see where something is implemented but at least you can guess it if you have some experience. And the best solution probably is write a click plugin and whenever you compile LibreOffice and whenever LibreOffice is told to compile the get implementation name thing, you know okay this is some unify thing and then you find out what this method actually returns and you have the mapping from the C++ class to the implementation name. So the afoc version with the component files was some yeah it's pretty hackish but it works to get you the rough idea where code this is and you can take it from there but of course the better solution is really to do it with a click plugin. I haven't finished that yet Stefan Bergmann did write prototype of that and because I had a different Clang version and stuff it didn't work out on my machine yet but I will finish this work to get this complete auto generated mapping between the C++ implementation and the implementation name and with that when you have that I would generate a redirect page to docs.libreoffice.org which is actually documenting the core LibreOffice classes and by now you can it's just an example if you tell it that you want to have this that's my personal upload location if you go there and tell it this is the base URL you can actually use it for one class which is the text document thing and you will get the documentation on docs.libreoffice.org for the SWX text document so the plan of course is to have this all generated for all classes for all implementations and have that automatically generated for each version so that you can essentially do this show core docs for whatever types you have and then really get to the to the C++ code documentation I think that's not done yet but I plan to do that maybe in the next week and we can of course do other nifty stuff on top of that like linking to GitHub or OpenGlock once we have the C++ class name and with that make it easier for someone who is looking from the outside with a new object to actually find where the C++ code for that ok so that's the talk and I can demo that on I hope I can demo that on this machine the only thing I noticed which doesn't work at least on what that works different on this machine I will write a document I already have it I will organize my code it's basic popped up on the other window the screen this is the stuff and if I run it first get what this the old debug functions where I can see what services properties and then it opened documentation for this on the other screen I can put that over but you have to document reference there and it also works for the core object but only for this one fast when I created the HTML directly menu so that's what questions yes is it possible to just get the C++ class if you are not interested in all of these nice open things something in my browser I have my in case I have the source code in that local or early then just calling the class name it's a bit tricky because what I wanted well and currently is to create the mapping from the implementation name to the C++ class name and put these in these redirect files on the web page otherwise you would have to put the whole list and ship them with LibreOffice I don't want to do that to always and then update in LibreOffice the reflection list which maps the C++ implementation name to the C++ name to the human implementation name in some cases we already have this the C++ class name is the same as the implementation name I don't know if it would be a good idea for this one you can just probably for the implementation name there would be another idea I thought about well we should just always I assume it would cause huge pains for for the extension developers because they if you just take a random implementation name and put it into Google and you see these implementation names so whatever that did will break and that's the first thing and the other thing was all the tests I mean there would be an excuse to kill off the Java human API tests because they otherwise you would have to adjust all of them and I don't think anyone would volunteer to do that implementations of a single marker kind of service and then you traditionally always go via the implementation names to discriminate the macros of implementation so there's precedent of using these implementation names but I agree this if you look at this and you have this trying plug in telling you all the implementation names that are used I have the list now and you look at it it's completely inconsistent in a different ways what kind of strings are used there sometimes it's the C++ name sometimes it's sometimes it's something something so it's what one could at least do is have a base class or this service type of thing that we are using create a default from now and then we might at least kill off the old stuff which is not dependent on language maybe with an easy hack but we have to see what there might be some that are possibly versions that we then still have inconsistent so yeah any other questions or if you help at least a bit in finding the documentation yeah I hope so because you know this is the API is very powerful but for the average user that is used to to call VBA statements you know it's amazingly complex I mean okay then no other questions thank you


This is stock number 10253. We are here at Summit Automotive in Fond du Lac, Wisconsin. You're new and used minivan headquarters. Today we are checking out this super clean 2017 Dodge Grand Caravan. This vehicle has the 3.6 liter Pentastar V6 motor and from this HD video you will be able to tell that this minivan is very clean all the way around inside and out. White knuckle is the color. We shoot all of our videos in 1080p so if you have HD capabilities on your computer tablet or smartphone device turn them on right now because it is like you're right here looking at the vehicle with me and definitely your best way to check out the vehicle before seeing it in person. It comes with these 17 inch painted and polished aluminum rims. On the front we have Michelin Energy 22565 RS17 tires. These tires have right around I'd say 70% of the tread left on them. Got those tires on my minivan. GT package gives you the blacked out headlight bezels. We have the factory fog lights. Passenger side fenders and excellent condition didn't see any dents or dings on that. Passenger side rim is in excellent shape as well and as you go down this side of the van you can see just how clean the body is how reflective and mirror like that paint is. We take these HD videos so if you are far away or even if you're close behind just cannot make the trip down you can still see the vehicle hear the vehicle and have confidence in what you're looking at. Before you even get here it has the hideaway roof rack and once more down this side of the vehicle very very clean didn't see any dents or dings down this side. The back rim is in excellent condition and on the back here we have Milestar MS932 tires. These tires are like new back here have just about all the tread left. Four-wheel disc brakes on these minivans. As we come around to the back of the vehicle you can see the rear bumper is in really nice condition didn't see any major dents, dings or cracks on that. The rear gate is in excellent condition this is a power lift gate and it power folds down. Back storage area is in really nice clean condition. No rips or tears in the carpeting does have the factory subwoofer back here with the nine amplified speakers. To put these seats down you basically just follow the numbers pretty easy if the headrest is up you grab number one number two is right here number three and then pull that seat back and it'll go down really nice and flat. What's nice is when you put that second row down you have a four by eight space to put plywood or drywall or whatever you may be hauling. Flip it up with the number four pull that number two and the seats are right back to where they want to be. You have grocery bag holders right there and to put this gate down you just press this button like so it'll beep at you three times and then it will come on down. As we go down this side of the van just as clean as that passenger side no dents or dings on the roof rails and that rear quarter is in really nice condition as well. Four fold disclosure this back rim is in pretty nice shape too and that tire is just as new as the passenger side. Down the rest of the side of the van very very clean. It does come with heated power mirrors inside the GT package gives you the black leather interior with the red stitching there are no rips there are no tears on these seats. Power driver seat with lumbar factory floor mats throughout power windows power locks power mirrors what I like about the Grand Caravans is they still have the power fold out rear windows which is nice to get a little air back to the people back there auto headlamps and as you hop inside the van here you can see that this one has 46163 miles you get an outside temperature and compass display as well as your digital spinometer instrument cluster is very nice and clean you get a heated leather wrap steering wheel cruise controls on the right bluetooth and information center controls on the left then on the back of the steering wheel are audio controls six speed automatic transmission speaking of that audio you get the 430n radio which gives you the factory navigation this is also where your backup camera shows up AMFM and Sirius XM radio capabilities and the kicker is that you get a 28 gig hard drive to store music and pictures on so that's all available right there down here is your dual climate control as well as the rest of your climate control and you also have your heated seats and heated steering wheel buttons you get an econ button that's for your power supply and back and then your stability control right there passenger seat and floor mat are in excellent condition get the nice captain's chairs with the arm rest this van has never been smoked in smells very clean inside side carrying airbags the headliner is in excellent condition you get your power sign rear windows as well as your power rear gate button and your home link buttons for your garage door security systems and lighting systems you do have your map lights up here as well as your spy glass right there see what's going on in the back seats speaking of the back seats we'll check them out in just a second and then we'll check out under the hood as the power sliding rear or side doors second row seats are very clean as well and they are heated as well latch child safety system they're your heated seats power windows back here and it does have the side window shades which are really nice and they have that in the third row as well up here you have your reading lights and your rear air controls and some storage spaces drive driver's side rear seat is in nice condition as well these are captain's chairs too so they have the arm rest on them there's your 115 volt 150 watt plug-in these seats fold up like so to get to the back seats and speaking of those back seats no rips or tears back here very nice and clean close this door just press this button right here and that door will come close on you i'd like to show the doors sliding make sure that they're going nice and smooth and we'll take a quick look under the hood i would personally like to thank you for checking out the video today hopefully from this hd video you will have been able to tell just how clean this van is all the way around inside and out under the hood we have the 3.6 liter award-winning pentastar v6 motor engine bay is very very clean runs very smooth this van has been fully safe and inspected by our service shop has a fresh oil and filter change all the fluids have been checked and topped off the van has been gone through mechanically 100 percent and is 100 percent ready to go to see more pictures of this van or one of our other 450 new and used cars trucks suvs mini vans wranglers half tons three quarter tons one tons you name what we got to go to our website www.summitauto.com full pictures and descriptions of every single vehicle from two locations all at summitauto.com if you'd like to check out more hd videos you can go to youtube.com slash summit auto remember to like subscribe and share on this video and all the videos that you see there in fact in a second you will see a link to subscribe to our youtube channel on your left a link to more used inventory videos like this one on your right if you have not been to our website on the bottom link to this vehicle on our website click those check us out and we really look forward to helping you with this super clean 2017 dodge grand caravan GT thanks again