BOB:
So my word, this idea for the session came from, just to kick us off was we were having a Drupal recipes. Contrib session, talking about what we're trying to do with that. And, and some of the people, there were module developers. And what we were talking about was, every, every module developer has different ways of setting up demonstrations of what you can do with this module or examples or tutorials. So, we were talking about how there wasn't really a best practice guide to how to do that, that we are aware of. So, that was where the idea for this session came from. And I just thought, well, that'd be interesting. I'm not qualified to do anything with it. But I can help take notes. And that's where the session came from. You said a best practice for like, like in like, configuring a module or for like writing a module, or I'm sorry, I wasn't exactly clear on that either. Good. Well, so if you look at you take a look at some of the modules that are out there, right. They're all over the map as far as how they do, how they present their module, how they, you know, some of them put a lot of information in the documentation.
Some of them do a lot of documentation, and they add in a, like a starter kit or an example kit or a demo kit to their module that you can turn on. So, somebody that's like a site builder or a trainer or is going to do something with taking these this these modules and implementing them. They have a solid guidepost on how to get that done. And but every module developer, does it a different way. So, yeah, you look at the Web form module, for instance, I mean, look at all those examples and tutorials and all the things that he's got built into that thing. It's awesome.
DANIEL:
Right. Yeah.
BOB:
And there's a lot of really great example stuff that are out now and more and more getting there in the in the documentation on DeNardo. But there's not really a there's not really a set of best practices for how to do that. So, that if I'm going to create a if I'm going to take a module from the start, I'm a new site builder. I'm going to take a module or a family of modules, and I'm going to implement this on a site. I have to discover everything about how to do it right now on my own in different ways. So, if you look at all that's there, that's kind of a that's kind of makes bringing new people into the community, or training new people on being able to do something that gets in the way of them being able to do that, because everybody does it differently. That's my feeling. That's what the kind of the problem statement is right now that I have in my head about this. But I don't know, maybe that's OK. Maybe there does need to be a set of best practices that way.
BRIAN:
Yeah, I think that's very much dependent on what the purpose of the module is, and how, how complex it is. Your example of Web forms. Yeah, yeah, that's something that's, there's a lot going on, and it helps to have some guidance. But you know, for a lot of modules, it's like, if, if you need to tell people how to use it, then you're doing it wrong.
DANIEL:
Yeah, that's a it's a good point, though. I think I think he right. It's not that consistent. I think what I usually do, when I'm just looking at any module, or thinking like, this big with this kind of solve, the issue I'm looking at is, you know, read through first the module page, you know, and try to make sense of what that is. And then usually, usually either one of two places. On the right side of the module page, there's usually a documentation section, although not always, there's not always a link there to the documentation. And then also, if you download the module, there's also usually a readme file, and that's usually where I at least start and, you know, most of those at least have something there, but you're right, it definitely could be more consistent, and it doesn't feel like there is a best practices. for that. Sometimes the documentation section on the module page, just links to read the readme file. or here's the page in the documentation section of drupal.org about this module or yeah sometimes it links to a whole other website or a bunch of videos I guess yeah so it's definitely varies.
SPEAKER:
I've been on a quest to learn how to do good, clean, clear and easy to maintain technical documentation particularly in a multilingual fashion and you know collaboratively fashion. I guess I'm just like starting and I don't have much experiences to have to do properly. But I have a lot of experience in how not to do it properly. So, about a year and a half ago I wrote a series of articles about Drupal migrations. And at the time, you know, I guess the bar was set to highlight one technical article every day. I could spend eight plus hours each of them there are so many hours in a day, but the point is that because of the time constraint I was using whatever was like easiest or available at the time. And I started using Google docs for that, and it was a very like not good idea in the end. Because like after writing Google docs and then having to paste it into the wizard within Drupal there was a lot of formatting problems and how to embed code was also a problem. And well that's how I basically did for that then I wanted to take the same content and make it into an e book so I was using a platform that allowed me to writing markdown.
And yet again I was using a theme format. So, at some point I was using Google docs with XML under the hood. HTML in the Drupal website and markdown for the book. And keeping the same content that I wrote in sync and up to date became painful like right away. It's basically an impossible task having to reconcile all of that. And this was mostly one person effort and I really want to open it up for the community to contribute because like people have shown interest in for example adding translations to the site which is something that I want, like I wanted to translate the series to Spanish and French. I just didn't have the time back then, but I want to be able to offer that option. But I want to make it like in a way that is sustainable and maintainable. I have been looking at some examples in the community like the user guy and outside of like community like other documentation efforts. And I'm still like trying to find out the proper way to do it. But yeah I think it's hard challenge to, like it's a different mindset like knowing having the technical knowledge to program something.
And having the ability to communicate effectively it doesn't always go hand in hand. Yeah I have tried many things over the years. And I'm willing to learn more, that's one of the reasons why I attended I thought that was part of the discussions like recommendations in general about how to keep you know documentation of the day being able to work with a team and ideally multiple languages.
BOB:
Right, and I you know David what's your what's your take on this when you do a lot a lot of training sessions and that thing. How often do you have to do updates on all of your stuff? Is it like a constant battle and how do you actually manage that?
DAVID NEEDHAM:
No but to be honest a lot of the training that we do is so basic. We don't use a lot of extra stuff. And yeah, I mean like the you know getting started with Drupal workshop we don't use any modules until we actually get like at the very end we showed how to add a module just to talk about Drupal auto and all that stuff. So, no there's not really a whole lot. But I'm also working in a very narrow area.
BOB:
Yeah, and with the Drupal recipes stuff that we're doing this has been a it's kind of a challenge to decide how do we want to put this together and I'm encouraging us not to create things that are already created out there. That are good examples and use them as kind of like additional reading or research parts of those recipes or inspired by this particular blog post or that particular module but... And of course looking into the documentation and encourage people to keep that going with updates. Because that's really easy to do now, for anybody that's on DeNardo they can go in and edit those things. But you know has got a little bit of a different challenge in the technical the technical stuff that you have to do around migrate that's really a hard really a hard test to keep updated I don't know how much you can really do with quite you know like examples or tutorials or that kind of thing it's it's like you got to go in and really beat at it to make it work right. So, and that's kind of getting beyond the typical site builder role looking at these things
SPEAKER:
So, a few comments one is that I have seen many efforts around documentation from a building perspective line one is the user guide which is from drupal.org and k I don't know his last name but he did start with me his username is kb and Drupal support he also has a praying about the communication. I know he's like very passionate about the topics or maybe connecting the people would be a good a good start like Joe Schindler you know he's one of the maintainers of the user guide and Cavies. The he has an outbreak I don't remember the name but when last time that we were able to meet in person he showed it to me, and it was like like content and exercises and like if you were attending a class almost. So, that's that's one thing. Another thing it's also the thing it's important when you recommend something like to try to address the different like type of users that might consume that content because even though it is important to to have good documentation for the site builder I think it's also important for those who are developers like I have seen models that mean they are great.
They are very intuitive like just installing and they work from a savings perspective. But I usually work a lot with migrations. So, I need to understand the underlying, you know plumbing like how everything works on it the whole architecture of double use and stuff. And most often than not there is no documentation about this like OK, let's develop all of these let's see the source code to be able to to figure out how things work. So, it's like like I guess both are important like this side building perspective and also the developer perspective
BOB:
Thanks for that David. So, Cavies (UNKNOWN) the what does he do? Oh, I know OK, yeah.
SPEAKER:
He has been doing a lot of work in the documentation like I think he also there was a book called the definitive guide to Drupal seven I think that's the was the name and he was leading an effort to upgrade that or like to over the the content to Drupal 8, so I don't know if these new Craig came out of that or they are different trades, but I know that he has been working on documentation for a long time.
BOB:
Good, I kind of feel like I mean we could take this a couple of different ways I wasn't really planning on facilitating and I'm not sure if we want to just back off and even go to other sessions. But I was kind of hoping that would be some people here with our module developer types. Because my thought was more along the lines of a consistent way to put together a starter kit or a module, US module sub module for examples, that type of thing. So, that's what really I was more interested in. But the documentation seems to be a better discussion for us. Do we want to continue on that path? Or do we want to split up and gore different ways to other sessions? Or do we want to maybe list of get a kind of a laundry list of different things that we've seen the Drupal community do to improve their tutorials or their documentation or their module set example type stuff? I mean, I could see doing and I could sit down and wrap off a whole bunch of them. But I don't know if that I don't know if that's a productive use.
Based on people are here, and what you want to do. Anybody got any feelings or ideas on that?
DANIEL:
So, I think I'm still a little confused by what do you mean by examples, just like, here's how to use this module, kind of thing or like, more, or you're talking about, like developers, like how to make a module or how to how to...
BOB:
I was, really, what I was really thinking about was more along the lines of, you know, what webform has with their webform examples, right? So, you can you can turn on a module, a sub module, and you get a whole bunch of examples there a whole bunch of demos will be something that you would necessarily put live, you could copy some of that and put it on a site live, but in order to speed that that same building process or that understanding process.
DANIEL:
Sure. Yeah. Like I looked at the examples module with what that comes with webstore. It's about Yeah, that's interesting idea. I think.
BOB:
I mean, I actually talked with with Jake about that at one point, I said, so you know, every time I see you do a webform thing, you put all the things out there, you got to do you just turn on all the modules and that you have all the things built. And that's how you show a demo through different things. He says, Yeah, that's basically what I do. So, even he struggles with this a little bit from the standpoint of OK, I'm going to show this to everybody. He has a sandbox that he puts together and just turns all the stuff on. OK, so way to do it.
DANIEL:
Yeah, yeah.
BOB:
But I don't think there's like an end, like if you have a particular thing, like Martin with the smart date was going to, he was working on some things at the at the time. And that's where one of the, where the some of the conversation came in at was that he was he wanted to put together like a starter kit, that was all kind of ready to go. So, you could just turn it on, and then go in and tweak that, a base set of, of configuration. And...
DANIEL:
Like a kind of like, kind of like with the in Drupal core, there's that. There's that kind of it, the install that shows you the recipe website, basically. I don't know if you've played around with that at all, but in Drupal eight, and Umami is the name of it. Yeah, well, right, right. So you know, it turns on a different theme, and, you know, kind of puts in a bunch of sample content and says, Hey, you can just look around in here. So it's something like that, for some on it.
BOB:
But it's kind of like, you know, it's kind of like, if you go the distribution route, which what Umami is, it's a profile that it's really a distribution of core. Yeah. Then you go that route, and that's your, that's your build. That's your profile that used to build everything out with and the same goes with any of the distributions.
DANIEL:
Right? You know, I'm not saying that good distribution. I was more just saying like, that's kind of what you're thinking, though, is like something you turn on that that's, you know, here's a bunch of fully working examples of kind of how this thing could work or does work or something. Yeah.
BOB:
So, in the in the past, I've seen a monopoly which was a distribution that had a bunch of like apps in it right, where you turn on the apps within their eye when you turned on the apps. That's what you got functionality wise on your site to start with, but that was all baked into the monopoly distribution. You've got the open y project, I haven't had a chance to look at this shot. But you've got the open y project that has a component in there where they can turn on some base content. Basically, that comes from configuration, from what I understand. You've got the webform example stuff that we talked about. In the past, they also used to have some feature modules that people would put together. So, you know, if I'm a site builder, and I do different kinds of sites, theoretically, I can put together a whole bunch of different things that I use on my base for my base install, might change for this other industry might change for this other industry. But if I start with that starting point, everything is consistent.
It's in code. I've got a consistent way to deploy everything and make it all work and be comfortable that I'm going to be able to have it maintainable as the site evolves, you know, here, the updates come out as module updates come out. I don't have to deal with all this stuff you have to do with a distribution. So, you know, there's just there's not a way right now that I'm aware of, that you can package up a set of like configuration or turn on a particular module or a set of modules to build make a site like that. If that's what you were trying to do. I'd love to have that. But maybe.
SPEAKER:
Now, describe something that I am doing and that might be similar to what you just described. So, in for the migration... well, I person migrations on site building, and like getting started with Drupal and on migrations. And in both cases, I usually have something prepared in advance, and it comes in the form of a module. And when you enable the module, you get a lot of configuration out of the box, like you get content types fields. No, paragraph PDF, is whatever you might need for the workshop. So, that's, you enable this module and you're ready with the site is not fully solution profile is just like install Drupal core, if there are any dependencies, install those dependencies, and then enable the module. So, why nearly the moment you get all the configuration and for the migration, once I also have, you know, some migrations can be executed. And then I also get all the content. So, that serves as a baseline baseline that people can use to follow the examples.
BOB:
The examples on your, with your migrate thing, could you put the link into the into the chat to fox (UNKNOWN)? Add that into the doc too, because...
SPEAKER:
So, for the record, this is actually something that, you know, you probably you can do it in Drupal seven. But in Drupal eight, and four works, this has become a lot easier is that you can have a module that only has configuration like you do. The way that I did it is that I sell Drupal, I build the site as I needed it for the demo. And then I exported the configuration. And in that mode in them in my example module, I manually moved the configuration that otherwise I was interested about, like the the views that were created the fields the content type. And by doing so I you know, it just works, I can't I don't know, it would be in that repository, you can see that there is a module that says UDS stuff set up. And that is basically configuration only, like there is nothing more than configuration. In this case. In some other cases, I do have a little bit of extra, you know, things there. But in this case, it's just configuration. And by installing the module, you get everything. And by installing the parent module, you have the migrations we get will give you the content.
So, this is basically like, let's say not, this is not even close to being like Umami, but like, you have a bunch of configuration, you have a bunch of content that can be used as them. And it's using core API's, like the configuration management system, and immigration system. And that has worked well for me in the past. So, I don't know if this is exactly what you're looking for. But it looks like it's closed.
BOB:
It's a good example of a way to do it. And I kind of almost feel like, between, you know, there's been a lot of work going on with... you know, composer stuff. And I'm, I'm no composer expert, that's for sure. But I would think that there's a lot that you can do with composer scripting, in conjunction with some, some configuration that's packaged up in modules, and I think that you could get pretty close to a good model for someone to use to build this kind of thing. I don't know. I mean, me sure does that sound right to you? Oh, he's being distracted by a word thing?
DAVID NEEDHAM:
No, I wasn't really I was taking on mute, sorry. I was saying that in this repository that I shared composer could be made optional, like I use providing structure using composer because I assumed that that's my baseline. But in this case, you can pretty much run the whole the whole training with one little exception without using composer so for example, you can have a hosted Pantheon environment, and you can do everything from there, like a bit of a team, Drupal installation. So, of course, the using composer will become a requirement depending on what model to use, or how complex your site's going to be. It is like it In this case, it's not necessary at all, like I have run this workshop in the past, like with real people attending, and they don't necessarily have composer installed, and they can work through the examples. So, I guess it's, that's what I mean, like you need to know your audience and define some, like, you know, this is the minimum that they require. Because like I, myself, being a developer, I struggle with local development environment setup, sometimes, like, no build box (UNKNOWN) not working, Docker not working.
And when you have a room of, you know, 10-20-30 people with completely different machines, you want to standardize on the minimum, you know?
BOB:
Yeah, it's the same in the configuration on the contrib space, too, that they deal with all the time. So, he's got a different, different development environment, you know.
DANIEL:
Yeah, I'm not sure if there's actually just one solution for this. I mean, it seems like, it seems like it really depends on what you're wanting to do. I mean, like, I think you're right with, like, webform, the webform examples module is probably a great way to do that. Because you, there's so many features that you kind of need to kind of give them a, you know, a bunch of things to play around with, you know, or, you know, a kind of shortcut to get that. I think it really depends, though, I mean, like, some, some modules, you know, you can read the readme file, and it's 30 lines long and says, you know, just put the module code in here and turn it on. And now this is what happens, you know, we're, we're on the main main module page, because it just, you know, does one thing, and there's not a ton of configuration, or it's all on one screen, or that kind of thing. But I think there's also like, Drupal core does have a module called tour module that you can enable, that has those little tours in there.
And so if it's an admin level thing, and you want to kind of, you know, the first time somebody goes into the views section, if you have the tool module turned on a little bit, it'll, I think it'll say some stuff like, here's how to use views, you know, or something like that, you know, that could be something that could be helpful to for some right modules as well. But yeah.
BOB:
And, you know, we were, we were talking at this at the Florida contribution day on the on the Drupal recipes, we were talking about putting together a project. And I was like, I don't want to put together a project because I'm not a coder. Why do I want to maintain a project? But they're now starting to, we're kind of now starting to talk about how could we put some of these recipes that we put together that people will use to build a part of their site or learn how to use Drupal to that level? How do we put that together in something that's easy to deploy by anybody? And to me, that means one of these cloud based environments like the get pod or something along that line. And so we we kind of identified that we were going to try to do that. And this kind of fit well, with the examples discussion, that we're so.
DANIEL:
I think that was actually also kind of one of the...
BOB:
The sessions helping me more than it is you guys probably?
DANIEL:
Yeah, it's a good. OK, but I think it's also actually kind of one of the things that originally, from what I understand, originally, the features module was kind of made for is like, a feature was kind of like a bunch of configuration and a few modules kind of all wrapped together, that you could like, say, hey, I want to have a, you know, a bulletin board feature or a social networking thing or something. And it was not just one little thing that the problem was that everyone in Drupal seven just started using it for configuration management, because they kind of did that in Drupal seven to do that, you know, and so I think, I think there is a version of features for Drupal eight. And I think that's kind of what it's supposed to kind of be used for is like, not just helping you manage configuration between your different environments, or, you know, in your code, but actually try to package things up in a way that you could potentially use them on different sites like that.
BOB:
I think that's probably the closest thing there is right now to something that you could package up a, quote unquote recipe, but I don't know. I don't know where that modules at. I haven't looked at it in a while on D seven, that's exactly how we used it was, will long will long put together a module called features builder. And it put together features in a really consistent way. So, you didn't have to poke around and figure out where the things were. So, it would just take whatever you've built and Anything that features worked with it would package it together? Yeah, in the different features. And we use that for our configuration management on sites. And it really worked well. Still does. I still use it on a number of my sites, but features in the seven doesn't know about all the things. And I don't write about all the things that D eight or D nine either. So, we'll already be ready for it, you know?
DANIEL:
Yeah. I'm just looking at the features page. On the modules page. It says, like, in most cases, you shouldn't need features for Drupal eight and nine. But, you know, it's, but this could be the kind of thing where you'd actually would maybe want to use it. I'm not sure exactly, though. You know, there is a version of features for Drupal eight, that looks right so.
DAVID NEEDHAM:
I know that features is being used in some distributions. In Drupal eight is one called Utopia. And like, I guess they are going back to the origins of the model that it was to package configuration together like into, you know, a feature, and things that you can turn on and off, like a blog, like a contact section, like a calendar, and so on. So, I know at least that distribution, but pretty sure that others are doing the same.
BOB:
I haven't used it in DA yet so that's what I probably should pick up and look at.
DANIEL:
Cool, yeah.
BOB:
Cool.
DANIEL:
I think you've got a good, set of questions there, though Bob, you know, it's kind of how do you get, you know, make it easy for someone to learn about, about what, what something how something works and what it does. And, you know, I I'm kind of one of those people who's done PHP programming long enough, where it's like, if there's no documentation, I'm just gonna kind of start looking through the code and be like, Hey, I can see what this is doing.
BOB:
I can look at that forever and not and not understand what I'm looking at. Right.
DANIEL:
Right. Totally. I'm sure. Lots of people like that. So, yeah. I mean, sometimes it takes me a while to understand it, too. So it totally, totally preferred to have some documentation. Or examples or tours or something. Yeah.
BOB:
Antonio just came on. I don't know. He has anything to share or questions for us? Here I go facilitating Santa wasn't going to but yeah. So, does anyone else have anything to add? I'm gonna take a run at this document and try to build out some additional things based on what we discussed. And then I will put it up on the on the session. Also, we can at least have that.
DAVID NEEDHAM:
Thank you very much. Something useful.
BOB:
I hope it was worth your time ratio.
DAVID NEEDHAM:
Well, yeah.
BOB:
And David. David like yeah, I'm just hanging out. I'm doing support tickets right now. So, yeah. So, what's new at Pantheon these days? Before you guys run away?
DANIEL:
What's new at Pantheon? I don't know. I don't know. I could answer that question too, I suppose. I don't know if you're asking David or me but..
BOB:
Either one.
DAVID NEEDHAM:
But you think something Dan, and I'll pick something else.
DANIEL:
Pick something? Well, I know there's I mean, there's a lot of work being done kind of behind the scenes to better support newer technologies, Drupal 8 and or Drupal 9, I mean, and kind of some more modern technologies. That's a big part of what's been going on the last year or so. But I'm also looking forward to there's a there's a feature you can start using pretty soon or you can actually start using it now. But it'll be used even more is a feature called the we're calling integrated composer which basically allows you to basically just run composer on the platform and so you don't need to commit everything to your to your code repository you just push it up to pantheon and it'll actually run composer install right there for you which is pretty sweet.
BOB:
Yeah that's pretty sweet, good to hear.
DANIEL:
There's still a little few bugs.
BOB:
I don't have to sign a nondisclosure now or anything do I.
DANIEL:
No no no no.
DAVID NEEDHAM:
Yeah that is definitely one of my favorite new features that's more widely available very soon one that I'm even more excited about though is autopilot. It is in limited availability or early access or I forget exactly what the differences are but soon later this year it'll be open and available to everyone on certain tiers basically built in automated updates with visual regression testing to just say like you know if all the visual regression tests pass apply the updates automatically and push it up and you don't have to worry about it anymore.
BOB:
That would be way cool. That'd be very nice. We're kind of in between on some we've got, some we've got out there we've got a CI set up with the repo out on on GitLab and some we've just got off of the you know of the regular regular upstream and I keep I keep waiting for when I can really start, banging with the nine but, yeah I have like... I guess I'm gun shy right now. Because I got too many irons I don't know if i want to go there not sure yet.
DAVID NEEDHAM:
Yep I totally understand.
BOB:
Yeah.
DAVID NEEDHAM:
Hey are you still working on the, there was a what was it. Medical no like an assistance program or a website for...
BOB:
I have not done much with it lately. But yeah it's still a thing that we're going to do. We just got a little distracted with the... you know, the pandemic and all this stuff going on there. That the around the first of the year I had one client that i had out there, that lost like two thirds of their revenue, and they couldn't pay me. So, they're still paying me like monthly. And that was a year and a half ago. And that hurt a lot and then other clients that i have they haven't been as active. In some cases as they were. Just because they're not they're thinking about it all the time and, you know, it's like everybody's just kind of stepped back for at least six months without much, you know, I just had a bunch of those. So, we were we've just been trying to trying to beef up the pipeline and we're finally now to the point where we're getting in a better place and I'm probably going to be looking to hire some entry level people to onboard them. I have enough resources as far as training material and all that type of thing and plenty of little community projects, with like the drupal recipes and that.
They could benefit from having some interns assigned as they learn. So, I thought that would be a good opportunity to do that so. It'd be pulling the trigger on that pretty pretty quickly here. So, that they can get paid while they learn
DAVID NEEDHAM:
Yeah yeah totally cool idea.
BOB:
Take a little bit of work, add a little bit of work to my plate but maybe down the road we'll pay the payback dividends I don't know. We'll see, we've done it before. Yeah no Kerala is certainly a thing we have haven't done much with it lately. Because of these other initiatives that we've been working on between the two.
DAVID NEEDHAM:
That makes sense.
BOB:
Yeah but it's something that's neat. I also have a new client that's main main legal services for the elderly. And they have been talking with them a little bit about that they're very interested in what we do with that one. So, and I might be able to get some like, collaborative research or collaborative information effort together with some of the things we might do with them project so should be fun. So, as you know...
DAVID NEEDHAM:
Yeah, sounds really complimentary.
BOB:
Yeah. I think so. I mean, certainly health care for elderly and you know, caring for families in that that's that's a biggie right there in that age group especially so yeah. We'll get there eventually. I just have to put some focus on it. So, too many irons right now. So, Needham, there's Matthew Needham to right? He your brother?
DAVID NEEDHAM:
He is, yeah.
BOB:
Relative? OK. I didn't realize that. I seen the name before. But I keep forgetting to ask either one. Time he's one of you guys.
DAVID NEEDHAM:
Yep. He is my older brother. He he came into Drupal partly because of me, and partly because of the work he was doing with one of his previous company worked. So, he I started dragging him up to mid camp for each year. And I think it's it's stuck.
BOB:
Yeah, this is how we do it, right. It's how we set up in.
DAVID NEEDHAM:
Safe for the community peace. Yeah.
BOB:
Come drink the Kool-Aid. Oh, boy.
DAVID NEEDHAM:
Oh, so closing announcements. It looks like Yep.
BOB:
Closing announcements, so we'll see you right there. Good to see all good talk.
DAVID NEEDHAM:
Thanks for taking notes and for facilitating Bob.
DANIEL:
Thanks, everyone.
BOB:
Thanks for hanging out with me.
DAVID NEEDHAM:
Bye
BOB:
Bye.