Well, hello everyone. We've got a special guest with us to talk about Esme today, Dennis Howlett, one of the people who's helped do all of the work around it. And you want to just give us a really quick rundown of what Esme is? Esme, Enterprise Social Media Experiment, is how it kicked off out of a plug conversation, where the idea is that we take the concepts that Twitter offers for messaging in the flow and apply that to business problems. And so, like, what's sort of the workflow that you would anticipate that this is built around? What we've done so far is build a pretty simple use case where a portal, a sales portal, is failing. People are not sure why, and they're finding that people are drifting off and getting involved with manual processes. What we've done is we've tied the problem-solving process that you would go through to the messaging service as a way of discovering who knows what the problem's about and how to get it solved. But what we're constantly focused on is the fact that this has to have an enterprise capability in the sense that it's got to be capable of being secure. It's got to be capable of moderating the right people in and out of groups and so forth and providing the right answers for them as opposed to the more consumerist side of things where those issues just don't get addressed. The way this came about was sort of interesting. It was developed sort of, I mean, just to call a shorthand, there's sort of an ad hoc community that seemed to come together within SDN. This arose as a result of a flirt conversation among a small group of people who just happened to be SAP mentors in the SAP communities. They are like-minded people. They're very passionate anyway. And they kind of knew that they'd be able to work together anyway.
2:01And they just wanted to make this thing happen. And it literally snowballed within a matter of days. I'm one of the mentors anyway, and that was how I got dragged in, because they wanted somebody who could help them figure out some of the business problems, but somebody who could also help them with the marketing side of this thing. And it really just snowballed from there. I mean, it's very difficult to describe. I mean, the dynamics of this are quite extraordinary in the sense that people just get on and get things done. I mean, nothing is an issue. Okay, so we need survey development. Fine, how do we get that done? Bang, it's done. We need somebody to speak to people within SAP. Bang, it just gets done. I mean, just nothing is a problem. It's quite a unique development effort, I would suggest. All right. Well, that's interesting. Well, great. Well, thanks for telling us about that. But now we're going to take a look at sort of like the evolution of the Esme stuff in action here. And we've got a special guest to show that to us. Would you like to introduce yourself? Yeah, I'm Darren Haig. I'm an SAP mentor. We're using the Lucene search engine. And around that, we're using a library called Compass done by Shai Bannon. So here, what we're looking at is the most basic possible Compass configuration file. And it's really just got one entry where we're saying store the search index in the target slash index folder. So from that, we're going into boot.scala. This is the file that gets run at the start application and does all of the configuration parts. And as you can see here, the Compass object is just setting up the configuration, reading in the configuration file that we defined, and then saying add class message. This is just saying that we're going to be indexing any messages that are generated in Esme. And this is obviously Scala code right here, which is always fun to look at. Because, for example, adding in classes, they're doing some sort of reflection sort of stuff.
4:01You can see that it's pretty similar to expectations people might have about Java. Yeah. And I mean, my background is a Java background. And I'm still writing Scala very much in the style of Java without semicolons. So then let's go and have a look at our actual message model class. So elsewhere in the class, we're defining the fact that it does, you know, the bits that associate with the message. And then this bit here that's highlighted, you'll see we've defined a bunch of bettas. So these are like standard Java-style gettas on a Java object that return the ID, the author, the actual text of the message, and the date that the message was done. And the bit that integrates with the search engine is you'll see the annotation above each def line saying that the first one is a searchable ID and the rest of them are searchable properties. And that's really all we need to do to make a class searchable in the engine. To go on to the bit that actually does the work, here in UserActor, this is the piece of Scala code that's dealing with messages coming in and out to a particular user. So the piece of code above the highlighted part says, you know, whenever a message comes in into create message, we create a message object. And then the highlighted code here just says, okay, the first line just goes as a hook into compass and call that template. And then the second line, template.save of the message. That's all we need. So you can see here, we've got, you know, about five lines of XML set up. We've got about five lines of Scala to set up the whole search engine. Then we've got to, we define a getter for each property and annotate it. And then here we've got two lines to actually store any given message in the search engine. So, you know, full search engine integration in terms of the indexing side in, you know, about a dozen lines of code. That makes sense. Well, thanks for taking all this time to show this to us today. Yeah, no problem. It's been a pleasure. Well, we've got another exciting person who's been working on Esme talking with us.
6:04And would you like to introduce yourself real quickly? Hi, I'm David Pollack. I'm the lead developer for the Lyft web framework. You're sort of one of the more outsider-y person who's been working on Esme. How did you get involved in working on it? Darren came to the Lyft list and was starting to ask questions. And we created a separate conversation and somebody pointed me to his Esme post on SDN. I read it. I looked at his architecture and said, that's some pretty nifty stuff. And I pinged him and said, if there's anything I can do to help, just let me know. And he said, well, would you like to write some code? And I said, sure. And that's kind of how things worked. So which part did you get drawn into? Like, which parts are you working on? Together we're working on the server portion. So we're working on all of the pieces from the REST APIs back and also from the HTML front end back. We're doing it all in Lyft and Scala and also calling out to a bunch of different Java libraries, making use of the large base of software that's already available for the JVM. And all of this stuff is running on top of NetWeaver, right, if I remember correctly? All of it runs on top of NetWeaver. It just kind of works well in the overall SAP ecosystem and infrastructure. How does sort of working in the SDN community, like, compare with other communities you've worked in? It really was surprisingly open and interactive. Coming from the outside, I've always imagined SAP to be a bunch of, you know, button-down, you know, six-month, 12-month development cycle kind of guys and seeing a bunch of people putting up wiki posts and collaborating on Twitter and collaborating on Plurk and just coming together and having a bunch of process but kind of agile scrum kind of process. I mean, it's just, it's very interesting. It feels like, it feels a lot different than I expected it to feel,
8:05and it feels an awful lot like some of the open source projects I've been involved with. It's been an impressive little project to watch over the past few weeks. So it was nice of you to spend this time to talk with us. Thanks. Thank you, Michael. Thank you, Michael. Thank you.