Hello from the show floor in Las Vegas. This is the Snowflake Summit 22 at Caesars Forum. We've been live the last day and a half. Lisa Martin here with Dave Vellante covering a lot of ground. We're so excited to have the Chief Marketing Officer at Snowflake join us next. Denise Pearson, welcome back to theCUBE. Thank you so much. So great to be here with you. So great to have you here at Summit as well. Thank you. That's unreal, isn't it? I mean, everybody's so excited to be face to face and Lisa and I have been doing a few of these shows but we hear the same thing over and over.  Yeah. Well, even in the keynote yesterday when we got in, we saw standing room only, there were overflows. People are ready to hear from Snowflake in person. And as we were, you were just talking with Frank, I think the 2019 show had less than 2,000 people and now here we are at close to 10,000. The step leap factor in terms of the audience and also the momentum of the company, the capabilities, a lot of growth in that timeframe. Yeah, no, yeah. Three years ago, we were about 1,800 people at the Hilton in San Francisco. We had about 40 partners attending. This week we're close to 10,000 attendees here, almost 10,000 people online as well and over 200 partners here on the show floor. Right, 250 plus sessions, breakouts, keynotes, technical certifications, developer zone, a lot going on here. The buzz has been enormous from yesterday morning. It still is today. Talk about the theme of the event, the world of data collaboration. We've been talking a lot about data collaboration. But from Snowflake's perspective, as Dave, you put it out, that really seems like quite a differentiation of where Snowflake is versus the guys in the rear view mirror. Now one of the very unique capabilities with Snowflake is that ability to share data with each other within your ecosystem. So you can both collaborate now on with your data, but also collaborate on building in a new business opportunities together. So I think it's really a message that we fully own and it's really a unique differentiator as well. So you used to talk about, you still talk about data sharing, but it's kind of evolved the messaging to collaboration. Explain why and how is that a wider scope and more appealing to the ecosystem and your customers? I mean data sharing is a terminology we've used for years and years. For many data sharing is about using FTP or APIs, those things. And we of course do it in a very, very different way where you do it without APIs and that you can share data with anyone in your ecosystem without the data actually ever leaving your instance. So it's in a very different way. And also the fact that you can again, build applications together with other companies in your ecosystem. And it's a true collaboration around data in a way we've never seen before. The other subtle change was the data marketplace to marketplace, why that change? Explain kind of what's behind that. Yeah, one of our big announcements here this week is around building native data apps in all snowflakes. Now you can both build the apps and you can distribute them and monetizing them in a marketplace. So in the past, we only really had data sets within our marketplace, within the data marketplace at that time. So you could then publish your data, you could monetize your data. But again, now moving forward, you will also be able to again, build apps and distribute them in the marketplace and also monetize them. And for many startups, right, the big challenge is just a monetization piece as well. You build your product, you also need to find a way to both distribute and monetize as an invoice for that product. And we solve all that for our customers now. A lot of customer growth. I saw Frank's slide yesterday over 5,900. I think you have 500 plus in the Forbes Global 2000. A tremendous amount of growth in customers with a million plus ARR. Where are the customers and the ecosystem in terms of what you just described and going from the data marketplace to the marketplace? Are customers and the ecosystem influential and saying, hey, snowflake, we need to go in this direction? Yeah, and also one key thing also with larger companies, they have their own marketplaces built on snowflake as well. So you don't have to publish your data or your app on our marketplace. The many of our larger companies, they're building those own marketplaces around themselves to distribute their data to their partners. So there are many ways you can again, distribute and monetize your data. What are the marketing challenges? You started out kind of better data, simpler data warehouse, cloud data warehouse, zero to snowflake was kind of the messaging, and then the rise of the data cloud, and now it's all about applications. You're obviously building on top of that, but how do you think about that sort of messaging architecture going, where you've come from and going forward? Yeah, obviously the capabilities of the data cloud is kind of building and building every day. And it's also a positioning that we can grow with as well. The big difference for us over the past two years is really that we are more and more, really talking to the business side of our customers. That's really where the demand is coming from. And we're truly, with the data cloud, we're truly bringing the business side and the IT side together to solve these problems and also together with all our partners as well. And I was just going to ask you, what's the partner's role in the data cloud narrative? How do they help accomplish that? I would say, I mean, the data cloud is all about the partners. And also this event here, this event is not about snowflake, it's about really our partners and our customers coming together. The data cloud is really, it's the foundation is of course, the core capabilities of our platform, but then it's also all the data that is in there that other companies can access from our customers, but then all the applications and capabilities that are built by our partners. And also our partners, like all the SI partners that are here, they are the ones doing the work with our customers. They are the ones that are migrating the data to Snowflake and the data cloud and helping these companies build this new business model. So Snowflake is a very, very partner-first company. And the only thing I really care about this week here is that all these in the 200 partners here that they're going to be tremendously successful. If they're successful, that means that all our customers are successful as well. So how is your digital strategy evolving and how do you include the partners in that? Yeah, I mean, we learned so much over the past three years in regards to that. So I mean, we all had to just accelerate the digital growth of our marketing capabilities and how to do that with our partners. So with many of them, we started developing this joint account-based digital marketing program. So we just all had to adapt and innovate really fast. And we're going to continue, of course, a lot of those motions as well, but at the same time, there's nothing like being out and meeting customers face to face. And what's also so important is the alignment we have with our local sales organization and our partners as well. So all these marketing programs that we develop in the fields, those are also opportunities to kind of build those relationships as well. Can you talk about the sales marketing alignment at Snowflake? I think it seems to be pretty strong, but we've talked a lot in the last day and a half about the retail data cloud, healthcare and life sciences, media, finance. Talk to us about the marketing sales element, how marketing is facilitating, maybe from a campaign perspective, some of those big sales plays in the verges. Maybe we'll just need care so that our zero Chris Danganam, I think he's been here early on the show. I mean, we worked together for over six years now and we truly work as one team. We don't really even see the lines between sort of sales and marketing. So we truly share exactly the same objectives every day. We share the same focus on putting our customers and our partners first every day. His priorities are my priorities and vice versa. And I think the biggest challenges we see often in some companies between sales and marketing is that they're just shifting or different priorities. It's so important just to align the priorities and for us to making sure that our teams are all around the world now, as aligned as Chris and I are as well. A couple other milestones or events come up. You're doing a worldwide tour and you got the Dev Conference in November. Start with a worldwide tour. What's that all about? So we get a little break now here for a couple of weeks and then we're taking all the best of content here from Summit and also all in our partners on a worldwide tour. We're starting in Asia in August and we're going to target over 20 cities around the world. So, and again, I think this year, the challenge was many of our European customers and our customers in Asia, they couldn't make it. So we have smaller numbers coming from those regions. So it's more important than ever that we just come out to them instead and bring this content into them. Is that all face-to-face or at least is all face-to-face? Is there a digital component as well? Yeah, it's actually going to be all face-to-face and there will be some digital components as well. We're ending the tour in San Francisco and that's also where we're doing all our winter announcements as well. And also our build, our developer conference, that will be all virtual. The big, the global one will be all virtual at the same time from San Francisco. Okay, am I confusing that with the November developer conference or? That is the conference, that one will be virtual this year. Okay, so the build is all virtual? Yeah, build will be all virtual and it's just so we have that opportunity to reach as many people as we possibly can. And then is the intent to eventually bring them in to one place? Absolutely. I mean, I think the dev conference, the plan is to really take that around the world as well. We're seeing markets like Israel, for instance. There's a massive developer community that is looking at Snowflake right now. Markets like Indonesia, big developer segments as well. So I think it's not about having people come to us, it's about we coming out to them. So markets like, yeah, Israel and Indonesia and. Will you also, in future summits, include a development component? You probably have something here. I just haven't seen it yet, but like the conference within the conference or is it more, hey, we want to cater to the t-shirt crowd separately? Yeah, I think we'll cater to them separately. And I said, again, it's really about taking our content out to them. And when we're talking about the developer audience, we're talking about hundreds and thousands of people and they can't physically come here. So our plan is really to come out and meet them where they are. How did you make the decision to do this summit fourth annual in person? I'm sure the attendance figures are probably blowing your mind, but that's a big decision. And that's a challenging decision to make. How did they go about doing that? I think there's one thing we've learned during the past three years. It's really about that adaptability. It's the new superpower of business. So of course we've had to adapt every month. And of course, even two months ago, we were not sure how many people that were able to come here today. But we're incredibly happy with the number of people that came here and yeah, we're already starting planning for next year. I mean, it definitely must have exceeded your expectations. Is that fair? We set expectations high. But again, it's that unknown that we all had to deal with every day. And I think we're gonna continue to have to live with that. Yeah, well, this is one of the largest shows we've done. Some reinvent obviously different. That was last year, but this year, this is the biggest event that I think we've been to. And we've been to some big brand events. So, yeah, yeah. Punching above the weight as usual. Yeah.  And it's really all our 200 plus partners here making this conference what it is today. It's remarkable the pace at which you've been able to grow the ecosystem. Why do you think that is, what's the secret there? I think we fully understand that we don't solve all the problems ourselves, you know, for our customers. It's really an ecosystem of products and services that solves those problems. And customers, they are looking for vendors that partner well with others. They're looking for vendors that integrate well, you know, with each other. So, we always have an outside in view on things. And that's something we challenge ourselves every morning. We wake up. How do we put ourselves in the customer's shoes in terms of their needs and their problems and how to solve those? We don't solve them alone. We solve them with these 200 plus inner partners in here. Make it sound so simple. Speaking of challenges, you have something called the startup challenge that's in its second annual. Yes, tomorrow we're kicking off the final of the second annual startup challenge. We have three finalists here, three very different, you know, companies. And we had a couple of hundred applications this year. And we have everything from a company that makes AI and ML more accessible to a company focused on retail and analytics. It's gonna be very exciting tomorrow. Big price for the winner. The winner is going to win a million dollar of investment from Snowflake Ventures. So, very exciting. It's a nice incentive. It is a nice incentive. Very nice incentive. Also, all the exposure you will get as well. We will put a lot of our marketing support behind these companies as well. Excellent. And the Data Driver Awards program, we've had a couple of Data Drivers on the program in the last day and a half. Yes, we announced those winners as well early in the week. So, a lot of recognition for both our customers. But also, we're gonna see the next interesting companies here to watch tomorrow during the startup challenge. You got a little bit of something for everybody here, right? I mean, the partner awards, right? These other little side opportunities for ecosystem to get recognition, sometimes funding. Yeah, everyone wants to be recognized for the great work they're doing. So, yeah. So, what's next for marketing? Obviously, a break and then you start the road show. So, of course, yesterday we made a number of very, very large announcements. Many of those we've been working on for years here at Snowflake, like Unisor, for instance, has been probably three years in the making. So, our goal now is to take all those announcements to every customer around the world, both through local events really starting this week and then also the World Tour this fall. And it's gonna be a big, big focus on the developer segments, obviously. What are most exciting announcements is the native apps capabilities. And that finally, we can bring the work to the data and not, again, taking the data to the work. And as you know, our mission has really been around breaking down the data silos because those have been the biggest challenges companies have faced. That's really what's been standing in the way for customers to become data driven. And now bringing the work to the data from a developer standpoint is gonna break down even further those silos. So, yeah. And it's good physics. Yes, good physics, yeah. Tremendous opportunity. Congratulations on a great, successful event. It's not even done yet, but obviously we've seen so much success. Great news coming out. We'll be excited to be hearing some of the outcomes of the roadshow and the developer conference coming up in the fall. We appreciate your insights, your time, and for having theCUBE here at Summit. Thank you for being here. Thank you, thanks for having me. Our pleasure. For Denise Pearson and Dave Vellante, I'm Lisa Martin. You're watching theCUBE's coverage of Snowflake Summit 22, live from Las Vegas. Dave and I will be back after a short break.


Okay, who has used PG Bouncer before no Okay, it's about a third. Okay so quick intro PG Bouncer I PG Bouncer calls itself a connection pooling Demon, but I like to think of it as a postgres protocol proxy Basically, you have a database Client normal the postgres database application Which would normally connect to a postgres database and Instead you can stick a proxy in between and the concept of proxying is well known in other protocols HTTP proxies are very popular and have all kinds of functionalities and other protocols of proxies as well And this is just the same right it reads the protocol looks at a couple things and May or may not do things with it and then it forwards the Data to the regular database and also on the way back. So that's what PG Bouncer does and There's alternatives such as PG pool, which I'll talk briefly later that essentially do the same thing just brief So detail so you can understand a couple of the later Details I'm going to go into PG Bouncer is just started as a Command you give it a configuration file Which is often at that location, but it doesn't have to be you can put it wherever you want I find it useful when I log into a box. I look at the process list I can actually see what the configuration file is because otherwise that could be confusing and It has a the configuration file has this dot any format Which is mainly known from Windows so it has like these brackets sections and in the PG Bouncer configuration the main sections of database section and the PG Bouncer section database a section Determines where your downstream connection is going so in this case if I connect to the proxy as And say I want to connect the database foo Then what PG Bouncer does is like aha I'm actually going to send this information to this place and this is a postgres connections string And if you connect to this database and it goes there and if you connect to a database That's not listed here. It gives you an error message that the database doesn't exist And there are a lot of details to this But that's the basic functionality and then down here in the PG Bouncer section you give a general configuration information most important one perhaps is you give it have to give it a port number and As you know postgres uses 5 4 3 2 as its standard port PG Bouncer I have seen in practice all kinds of port numbers being used the default in the sense that the the source code is Template configuration file uses that port is 6 4 3 2 But there's no reason why you'd have to use that you could also you know cheat and use 5 4 3 2 I guess if you want and then have the actual postgres over use a different port that might be a good idea or not So that that's just a super quick intro to PG Bouncer So let's talk about connection pooling which is the the Most well-known functionality, but as I will argue later, maybe not the most useful one So this is a client server with a database application database over now what what happened in in the really old days is that the Typical example was a PHP application, which was composed of a bunch of pages Because the page only lived as long as the page was executing then everything was removed Every time you loaded a new page it had to open all its resources again, right and it had to open all the database connections again which is very slow and Then well some smart people said well Let's just have a connection pooling thing in between and admittedly PG Bouncer was not the first one to come up with that PG pool was the first to do that, but you would basically Possibly run it on the same host even so in the same box here, and then the application would connect to the proxy which is quite quite cheap and quick and then the proxy would keep connections open to the backend database which is Which are slow to open, but it just tolls on to them Nowadays you could say well, I don't just keep your connections open don't close them all the time And that's probably a good idea, right? But there's still reasons to do this Just in terms of how you design your applications in terms of resiliency especially if your applications are complicated and You have multiple threads and all kinds of things It's very it's kind of can keep can be very difficult to to keep one connection open all the time and be able to use Every else is sometimes it's actually quite useful. You just throw the connection away when you don't Don't need it anymore and because you know Opening another one is cheap. So this is still kind of useful But maybe the main use case from you know in the 90s is what I'm thinking of this is maybe is going away so let's look at some measurements and The resolution on this is a little bit low, but I'll read it back. So I was interested in how much overhead does this present So I wrote a couple of quick test programs Which are I will supply with the the slides, but they're very simple C programs. The first one is just Open a connection Just check make an error check that you actually open the connection and then disconnect do that 10,000 times If you connect directly to Postgres So 10,000 connection opening closed basically directly to Postgres 24 seconds Connect to PG Bonsor four seconds Point something so that basically shows why why that is useful What I did a couple of months ago now, so I wrote my own Clone of PG Bonsor in in Python just as an experiment just highly recommended if you also want practice in programming Written in Python totally unoptimized doesn't have any smarts about it Just you know accepts connections puts them into a list dust them locking And then forwards the packets through So connecting to that 10,000 times 10 seconds Compared to 24 to post guys So even you know you can see how what the how a slow connected post code really is even if you use like a totally dumb proxy implementation You can totally beat out connecting directly to post guys. So That's that's the rationale for connection pooling. So second test was Connecting and then running a query, which in this case is just select more and then disconnecting So at least you're doing some work in the back end, right? So directly to post guys 10,000 times is 27 seconds to post at PG Bonsor almost seven seconds and My own proxy clone Almost 13 seconds. So you can see the overhead of actually running the square is the same The connection overhead is really significant in this case Obviously, we're not doing a whole lot of work once you do more work The idea where it goes goes away a little bit and and finally This is just keeping one connection open and Then doing 100,000 in this case not 10,000 100,000 queries and then disconnecting And there you can see there is some overhead to to having a proxy between right So if you just keep a connection open directly to post cuz it's almost seven seconds via PG Bonsor It's 11 seconds. So that's quite a bit of overhead. Obviously the work here is cheap just select one So once that overhead gets more significant that difference goes away a little bit But there's some overhead right in my own stupid implementation 21 seconds and with PG pool 12 seconds so it's slightly slower than PG Bonsor the reason I have PG pool here and not on the previous slides is that I that those previous two tests actually crashed PG pool, so it's Sorry, what's that question so The whatever was Yeah, what I was packaged the most reason I had a version of this talk a couple months ago in Philadelphia post-cursor group where I did these measurements and I Actually PG pool functioned what I made a mistake was pointed out to me afterwards because I originally I ran these tests with the database PG database equals post-curs And then PG pool came out really badly. It was really slow and Someone you told me later that if you connected the post-cursor database PG pool doesn't do any pooling So it has somehow is this special case. That's kind of weird So in this case, I had to actually make sure I used like some other non default database and some in that case PG pool actually did its pooling, but didn't do so well So If you know if someone actually is an expert about PG pool, I would gladly demonstrate that and debuck that with someone later or online So now the really so that was the sort of default use case of connection pulling More interestingly to me is connection queuing That's a term I made up. So that's not a standard term I work at meet me dot com which is a social network site and So we are basically a website exposed to the internet, right? We get up and there's a you know Some web Clients going on and they are basically exposed to the open internet. And so we have you know the number of Connections that could become coming in here is You know unbounded by whatever happens out there in the world, right, but we have learned quickly and this has become quite important to us in the database administration team is that It's very important to restrict the number of connections that a post goes server takes on and there are Ways to configure that inside a post goes, you know max connections and you can have connections limits per user and that kind of thing but once those are Exhausted then what happens to your clients? They they will just then they are out and that's not good for them so what PG Bonsor can do and then does by default is You tell it how many connections you want to pass through and Everyone else has to wait So he's you know default setting is 20 You know that depends on obviously how Mainly how you know big your database of a hardware is you could do that proportional to the number of CPU cores possibly or what you know depending on what workload you have, but You want to have it, you know less than 100 or 200 something like that, right? Certainly not a thousand but those those, you know those incoming connections are Not infinite as it says there, but you know There's lots of web servers and the web servers have and this many threads and this many connections But it could be many thousand right and and PG Bonsor Helps basically control that and PG Bonsor itself can actually accept many thousands of client connections at once And it will basically just make sure you get you know only 20 or so or Pass through at a time and the other ones have to wait And they only wait effectively briefly So this doesn't actually Hurt anyone so the way you set this up is you have in the configuration file in the PG Bonsor section you set default pool size The default setting is 20, but again you should set that to something that you like another option that is in there Which I haven't actually Used but you can you can set it so in this case for example that if a client Has to wait in this case three or more seconds To get a slot it will then open up this reserve pool of Five more connections or whatever you said, I don't know how useful that could be but those are the kinds of options that PG Bonsor provides and Now I say well, okay now if you don't have that many connections, what do you do you wait? obviously that can work briefly but Eventually if there's too much waiting at least that's a signal for you Maybe you should provide more database resources or you know split up your database over in a different way or optimize your queries or something like that The PG Bonsor has a way to You can monitor that PG Bonsor has a sort of an internal fake database So the normal for those who are not too familiar with PG Bonsor just a brief explanation No, the normal functionality of PG Bonsor is I connect to it. It just passes the connection through But if you connect to it the database called PG Bonsor That's actually internal to the proxy where you can read statistics out and has these Fake SQL like commands like show pools for example Which gives you information about this situation So in this case, there's not a lot going on here, but if you had some for example here or the incoming Clients from the web tier for example Currently they're none waiting If this were fully Like if this had full traffic this servers active would say something like 20 and then you might have a couple waiting here And then down here it says how long the longest one has been waiting and this is the sort of thing you want to throw your monitoring system on, right? basically Whatever monitoring system you use or quite a check which can use whatever, you know normal Postgres client you have Connect to this address and run this query and then this is this is a normal Postgres result set So you can all that use all your normal API is to look at this data and then you know when the Clients waiting is too big then you should you know at least record that or throw in a lord and then if That happens a lot then you need to provide more processing power. So the experience for the Client might be it has to wait a while, but at least it won't error At least the database or will stay up, right as opposed to the alternative is that The client might get a result really slowly, but then all the clients are going to be super slow and the database so it gets trash So that's not good. So that's what we want to avoid and this is At least four side like ours where you are Basically exposed to the open internet. This is super useful questions about this so Then let's talk about connection routing Again, this is a term I made up How do you connect to Postgres? there was a presentation in another conference couple years ago where a Someone was Presenting their use case of how they use postcards and what issues they had and first issue they had was like it's how do you connect to Postgres? Well, obviously you do something like this, right? Whatever programming environment you have you pull out the driver Put in some host name and things like that and then you connect it for that's easy, right, but That's obviously not what you really do right because you don't want to hard code host names in your code Maybe you do but okay many people don't want to do that Then okay, you think of some okay, I should have a configuration file But how do I distribute that configuration file? Maybe I should have a configuration Server system, how do I get that distributed? And maybe you have something really fancy where you can really how does that then work across different programming environments, right? If you have the first line, they're supposed to be PHP second line is supposed to be Python, you know, and you could have many more How do you make sure all these environments get your connection and configuration information all the time? Well, maybe you have that figured out But then surely you have like some random cron jobs running around somewhere with just a shell screw, which is Probably not gonna connect to whatever super configuration system you have So there's always some nonsense like that lying around but someone is just the hard coding configuration information like that. So How do you how do you address that? Well, let's look at this Diagram from earlier again If you do this Then your client doesn't actually have to know where your database is Because all it has to know is where this guy is And that's pretty easy because it's on local host and if you decide on the port number, then that's pretty much all you need to know And then this guy in its configuration file knows where all the database are and That solves that problem. So essentially you write a configuration file for PG bonds like that You know, you have to name all your Applications somehow, but that's pretty much all you need to do and then you need you have One configuration file format, which contains all the knowledge of where all the database servers are what port You might have a different port a different use or anything like that You have this one file you can distribute that across, you know, it's the same file You can distribute somehow across all your servers, but then All your all your code needs to know is local host which is The default so you don't even have to mention that need to have a port, okay? As I mentioned earlier, this is not what I'm necessarily recommending But as I mentioned earlier you could also run PG bonds on five four three two and then you can even omit that Maybe that's not such a good idea. It's too too implicit. Maybe and that's it And that those that's how our applications kind of look like because we do that So we don't have the the application developer. So whoever comes up with these this code Doesn't have to know anything about what the database servers are all they need to know is on your local machine There's a PG bond surrounding on that port you connect there and everything will be fine and My job for the last year has been actually to like just trace down all the code that violates that and you know very difficult process to then Identify find the code find out who's responsible and who wrote that ten years ago and it's very annoying So this is much more helpful PG bouncer It's gonna talk about it a little bit But PG bouncer is does not have the fanciest access control mechanism. It has usernames and passwords So you can have you can have some access control. Yeah, that's basically a good idea you How how you distribute passwords is you know perhaps a separate question, but it's no different from what you would normally do right you can use a PG pass file or Or you know LDAP look up or there's other ways to do it, but I Don't have like a really sophisticated solution for that, but it's basically the same as what you would normally do, right? So now that this previous example was just one host in practice might look more a little bit like that right and then in In practice you have a lot more clients than those three certainly You know we have hundreds You have a lot more databases, but you have a lot more clients and databases probably and now One thing that this allows you if you need to move a database down there to somewhere else This is you know quite easy because there's only one place you have to change it But it could be difficult to Make that one change and propagate it to all those hundreds of clients at the same time Yeah, especially if you want to do sort of a life Failover or things like that you really need to have everyone in sync at least within sort of a very very short time frame and That could be difficult just in terms of how long does it actually take to log into all these machines and make those changes Depending on what system you use or what if just one of those clients is currently down then your whole process will fail, right? so if you have that situation then I I Rather propose a system like that, which is actually what we're using to have another layer of PG Bouncer, which has all that knowledge and and that's Then very simple to update right so we have basically these locally running PG Bouncer's which You know provide connection pooling to the app and let's let the app Easily connect the Postgres because it only has to know about this and this guy knows about this guy And this guy knows about all the databases And then whenever there's a change in one of the databases We have to add another one or if to fail over change hard by anything like that all we have to do is update this and that can be done very quickly and sort of quasi atomically well it does Introduced latency, but we accept that basically right Obviously because you don't I mean there's other considerate considerations to application design, right? There's obviously caching here and stuff too. So by the time you hit the database you have already accepted that you Or have much more latency than if you read from casual things like that. So yes Because that also gets moved around You yeah, if you really I mean this this is sort of If you don't like this you can also do what you know he proposed and just skip those But then you expose these guys to your design down here And sometimes this changes right obviously we don't only have one here because that would be a single point of failure We have several here which are load balanced and we currently use a hardware load bouncer But you know this changes from time to time. So we have basically made the choice We insulate all this business up here from all this business down here and Well, you could also be cynical and say well this you might have heard this like the way an architecture Comes out is sort of informed by how the teams are divided that worked on it, right? this In a way is Reflected here because sort of the the organizational boundary is kind of here, right? so which you know is Again, if you have only one team, maybe you don't want to do this But there's you know the organizational situation the way it is is also a fact that we have to work with and So this affords us Insulation of these guys don't have to worry about it and these guys don't have to worry about it It's just sort of a robustness You know in all and all on all levels levels. Yes We don't do that, but you could do that. So his what he is referring to is PG Bouncer is It's a single process. It uses lip event to do its multi flexing I guess So it's a bit like Redis in a way that it only uses one CPU really it's a well so first so The the proposal was you could run multiple PG Bouncer's in one machine. Yes, you could certainly do that We have not found the need to do that because it's as it was said it's fast enough We have never had any problem with PG Bouncer not being fast enough And we are you know, we have literally tens of thousands of connections coming into the Client side there and it's not a problem But you could certainly do that if you want that's that's an option. We basically only use we use We use multiple instances in this middle layer But we have also chosen to put them on different Hardware boxes for the obvious reason that we need to be resilient against hardware. So You know, we if we need it if we need it, let's say we need it 20 PG Bouncer's then I would say Okay, let's only buy five boxes and put four on each but it doesn't turn out doesn't we that we need 20 But that's that's an option to you could do so That's kind of how We approach it. I don't actually know how the load balancer works And we are actually moving to different load balancers now and I've never had a problem this way or the other I Could if you're interested I could get that information from all guys who do the load balancer As far as I know, there's you don't have to do anything particularly special so connection Maintenance this comes in to what I said if you're here And you want to move some of these databases around but down there You could say obviously I don't need PG bonds at all. I can all use virtual IP addresses and all that kind of business You could certainly do that We have chosen not to do that because there's all kinds of complications with different networks that are involved and It's also not protocol aware right you could say okay, I can move the virtual IP address around But then the the protocol gets broken so the the the client will get confused or you will have to break the connection The client gets upset what PG Bonser can do It can do this in a post-course protocol aware fashion. So you can again connect to this sort of fake internal like administration database And you can use a command like that and you can say pause this application and then what will happen is it will wait PG Bonser will wait for all the connections that are currently in or all the queries that are currently Processing on that connection to finish and it will not allow any new connections What it what it means by not allow any new it will just let them hang the Client will not realize what is going on except of course it will take a little while to come back but Other than that it doesn't even know what's going on and that you do in any maintenance So what you can then do when you're done you say resume and everything just keeps flowing And if you put that together you can do things like that you can You can restart your back-end post-course instance Without the client even realizing If you build a shell script like that, but maybe a little bit more arrow checking and things like that But the principles like this so you you pause pausing will wait for everything to finish if you have a long-running query This will not make you happy because pause will just wait so a don't have long-running queries be put in put in Statement timeouts or things like that or have a timeout logic in this So you need to make this work for your case Then you can do restarts or you can do other things like move things around or anything like that and then you run resume and You know often this can depending how long the restart and things like that takes you know you can do this within a couple seconds and Your clients just keep working. They don't notice that the connection was broken or anything like that So that that's really useful. There's Are those other commands that you can do for example, you can also just Kill all connections to a database which is a little bit more Radical than pause but if the pause somehow doesn't finish for you You can say kill then of course the client will get upset But at least you you get rid of all those connections. You don't want anymore If somehow the client doesn't have proper behavioral timeouts, so We have some databases that are called production And then I like to run this command and that always scares me a little bit when I do it But it doesn't actually do anything so That's always kind of fun so And this is this is the magic So the previous couple of snippets I showed you could those are for restarting a postgres server Online You can also run PG but you can also restart PG Bouncer itself online And it does that If you provide this our option So initially we started PG Bouncer without this our option, but now it let's say we want to do an online restart be past this our option And then what it will do is it will The new process will start up it will connect to the old process Because it knows where the old process is because it has the configuration there So it will connect to the old process Will tell the old process give me all your sockets It takes all the sockets. I didn't know that worked, but it does So the one process asked the other one process for its sockets Then it starts to pro servicing these sockets And it kills the old process And the clients don't notice it So that's that's total magic, but it does work and it's really really useful. So you can actually just and this Functionality is usually in some init script or something like that, right? You don't have to do that manually You should check whether your init script does that some init scripts that were written a long time ago If you do, you know, etc in a deep PG Bouncer restart, they might just actually stop Sleep start that's not what you want But a lot of the ones, you know distributed from Community RPMs and the end and Debian packages and things like that if you do a restart They will actually do this so you can just go in and restart PG Bouncer. It will actually not interrupt your your traffic Which is awesome So those are the You know the the facilities that PG Bouncer provides us right the connection pooling the queuing in terms of Controlling or the traffic to the actual database server the routing the connections and telling So that not everyone has to know where all the database servers are essentially and then these maintenance commands so you can Start and stop and move things around Without interrupting the online traffic too much So what PG Bouncer does not do so well or other things So as we already discussed Main access control is not very sophisticated. It has a password file You know, you can put user names and passwords in there and then it does the normal password authentication But it doesn't do it doesn't have anything like LDAP or Kerberos or anything like that. So And it doesn't have any SSL support Either income and or outgoing for incoming I've heard people talk about using s tunnel That I've seen work I don't actually use it actively at the moment But s tunnel has some kind of awareness of the post post protocol so it can kind of make this work In practice the answer in places I've seen is to kind of firewall off your Database subnet as much as possible and then only allow certain access points And then tightly control who can you know read the password files and things like that from there So that that's usually the approach that you have to take if you want to Use lots of PG Bouncer PG pool is better like that PG pool has a more of an pghba.com approach Managing the pool sizes is tricky in a way, you can think of all this kind of as a Pipes lots of pipes right with lots of connections and you want to control how big the pipes on how many connections are coming through and If you have multiple hops and things you have big pipes and small pipes And then when you do maintenance basically what you do is you turn the water off right and things like that So you kind of become a little bit of a plumber at all levels And you have to make sure if you have you know these these Somewhat complicated setups here and a different You know these might all also be different of different sizes and these might be different And so you need to just stay on top of how many connections you allow at each point so that you're you know Your network of pipes will make sense at the end otherwise You know pipes burst I guess or the water backs up or anything like that, right? So that's those are problems PG Bouncer originally came out of Skype Because Skype used to be a big Postgres supporter and They wrote all kinds of cool tools including PG Bouncer and PL Proxy and London and think and then things like that The I don't know if they I think they probably still use Postgres because they obviously not just gonna change that from one day to the other But as is well known it's owned by Microsoft now most if not all of the original team is left Skype and So there's no sort of full-time professional maintenance of PG Bouncer anymore I know the people are still working on it, but it's more of a spare time thing The way I understand it. I tried to reach out to the to the maintainers before this. I haven't heard an answer yet, but So, you know, it's still being worked on here and there, but It's a bit doubtful The complete roadmap, so but it's open source. It's out there. You can fork it, but it's super complicated code in my opinion so if you need More features than there's PG pool is as well known PG pool is You know effectively has the same Sort of it has the same label Postgres connection pool, but has a totally different purpose in terms of Has a lot more logic in it does things like it can parse queries and no like is it a read query Is it a right query? It can go there it can do the load balancing It can do like health checks and back-end servers and things like that. So it's a lot Bigger in terms of functionality I like PG Bouncer because it's it's lightweight and fast So those that's a pretty obvious trade-off and the fact of course that PG pool crashed on my test case, so But Yeah, so especially, you know for for like a dot-com type website all of this functionality is like indispensable really and Some of these drawbacks we can work around in other cases. Maybe that's not the case. So That's I Had to say So I wonder what he thinks about that That's my wife always asked me when I go to these postcards conferences like are you gonna talk about dog? It's like no, but now now now I've done it. So that's our dog Do you have any questions about the dog any questions about other topics? If you do a PG Bouncer restart If someone is still connected to the old PG Bouncer, yeah, it will take that over Okay, you in this case you don't actually so I'll repeat that for the microphone first of all His question was if you remove a an entry from the PG Bouncer configuration for an old database You don't use anymore and then do a restart what happens to existing clients, right? So first you in that case you wouldn't actually do a restart because you can do a reload So it keeps the same process. It just changes the configuration Um What happens to existing clients in that case? I couldn't actually tell you that because at that point I would have usually already ensured that nobody is connecting anymore before I remove that so But you could easily test that out. I I couldn't guarantee one result or another in terms of Yeah, okay does that kind of You don't actually have to do a restart But if you do a reload and there's still clients connected, I don't know what happens It's kind of the difference between restart and reload is kind of similar to restart and reload in the Postgres For most configuration changes you just do a reload But there are certain things where you need to do a restart Most you know obvious examples are you change the port number or you want to just install a new version Know that the restart would do a Yeah, yeah, yeah, that's basically how like a package upgrade works right you just do in yum upgrade or whatever and it will You know if the package is set up properly, which most of the reasons ones I've seen are it will just do it You know a restart as part of its upgrade procedure and that will do this online Procedure that works very well In the Yeah Yeah, so you almost always do a reload For any of these changes of you know connection parameters or even certain time-out settings The only time you really do a restart in practice. I mean if I said if you change the port number But you don't really change the board number often right so mostly Upgrades is it possible to pass the Configure the client application information through PG Bouncer just for tracking in right That's a little bit of a tricky point Well, there's a there's a patch in the git master, which is not released It's version 6 1 release candidate one or something like that where the client information is passed through via The application name Connection parameter so in the back end so where you will actually see as the application name this came through PG Bouncer with this connection From this client But that's not released. I actually have to test whether that still works if you have multiple hops, but What you can also do is? Log into the PG Bouncer admin database and it has a List of clients and servers that are currently connected and how you combine them And then you can you can trace it that way. That's a kind of a manual process I actually published a blog yesterday or how you can do that but That's it's not easy, but the information is there you have not have to string it together yourself sometimes If you want to you know have this kind of information up to date, but the problem with that is actually that the clients Connect so quickly and there's so many that actually sort of having a full view of that It would be actually very slow and then unwieldy I think Does that doesn't really help but that's what yeah, okay the question was do we use PG Bouncer has a pool mode parameter, which is could be a can be what was it's statement transactional session which basically says how long does it hold on to a Server connection for a client and those are three different granularities, right? If you say session one client keeps the same server connection for the entirety of the session And then for transaction and so on we use statement type statement pool mode for everything the reason for that is to be basically do everything through procedures So we don't need any other setting and other settings will also kind of interfere with all the sort of Queuing and routing and then it just holds things open longer for you know for possibly know for idle Sessions and things like that. So yeah, and then you can't do prepare statements and things like that But through you know doing everything through store procedures We kind of have this implicit preparation in PLP GS go for example. So that kind of works around that.  So, you know, we Pay a price for other facilities, right? So it was a question in the back No Okay, thank you. If anyone wants to debug that PG pool buck. Let me know. Otherwise. Thank you


I think at first, as always, actually, who are you and why? Yeah, that's good. Oh, okay. I'm Vinum Rada, affectionately known as Vee. Like the movie... It's easier to say. Yeah, also Vee for Vendetta. Oh, that's a good name for Vee, yeah. Powerplay, no. But yeah, I'm a product manager on the Chrome Web platform team. Work on Lighthouse, Speedmetrics, trying to, you know, make the web fast. All right, that's good. Nice, and I'm Eric Pytelman. I actually work with you guys. Look, everyone we've interviewed, we work with, you don't need to say that. Try to be perfect to Claire. Look, there's a certain amount of, you know, theatre here. Yeah. Like pretending we don't know all of the content already. Also, have you ever done video before? No. This is how it works. So you have this really lame thing that you develop and that you PM, what is it? Yeah, what's Lighthouse? What does it do? Yeah, talk about it. Go. Sure. I can. It's your product, Vee. Sure, so Lighthouse is a developer tool. Anyone can run it and it basically gives you a personalized report over your website across five different categories, progressive web app, performance, accessibility, developer press practices and SEO. You got that memo right. That's pretty bad. I'm a PM, I pitch this every day. I could have been able to say progressive and accessibility and then I was like, well, that's all I know. So who would run this and when? What's the... Yeah, so we really think it's for any developer that's building a website and we think it's really helpful because, you know, there's so much advice at Google and like, you know, other blogs kind of give out in terms of like, what are you supposed to do to build a good website? And our mission is really to try to like consolidate all that together in one place. So you can just run one tool, it tells you exactly what you need to do and then you're just like done. And we have the DevTools now, right? Yes, we do. You can run it on the Audits panel. Audits panel. One could say it's a guiding light for web developers. Oh, wow. Look how the metaphor works out. Let me drop those all down. So give you an example of one of the things that Lighthouse is going to tell me I'm doing right or wrong. What's the... Sure. So for example, in the performance section, it can tell you if you've optimized your images properly. Which lots of people don't. Yes. It's a very easy win that you can get and you can do in order to, you know, improve the side of your performance with PWA. It can tell you like if you have a service worker installed, errors in your manifest files. What I actually want is, can we, you know how when anyone mentions Intel, it has to cut to the like the little logo and... What do we have to do to get one for service worker? When your face shows up goes... It assumes towards the camera. Yeah, we make that happen. Can we do that in post? We'll do that in post.  Performance, images, amongst many other things, PWA, service workers. So, we are out of jobs, basically. So we're telling us. Yeah, that's just true. Yes, that was a goal all along actually. That hurt? Yeah. That's like our key success metric is like, do Serma and Jake have a job? No. Yes, success reach. Dot com. Do Serma and Jake have a job? Dot com. So what would we do instead? What's our backup? Well, I have a DM, mate. Yeah, and now the service worker thing is done. What's next after service worker? Everybody's shipping now. We do background fetch. I've got stuff on the background. I might be okay. Solving people's performance problems. Is it load time performance? Is it run time performance or both? I think our goal is both. Ultimately, we want to be the most comprehensive tool possible. And we actually added a whole bunch of new loading focused audits this year. There's a talk that Addie and Eva gave at IO this year. So if you're interested in... Talk to you later. Yes. So you can learn more from her. Yeah, don't steal our content. Yeah. I already know that. Sorry. So it's like how something that developers are going to have to run manually when they want? Or is there a way they can put it in their tool chain? Yes, yes. So you can run it manually through DevTools as we talked about. There's also a standalone Chrome extension and PM module. Those of us who like running things on the command line. But actually at IO this year, we're announcing an API in which people can use to kind of automate... Like the White House as a service. Like the White House as a service. Like Lassie, like the White House dog. Yeah, like the like mango Lassie. That too, that's delicious. That too, yes. If you want to drink it or... I'm going to straw her in the Lighthouse. Lassie as a service. Lassie as a service. Drink up. But yeah, so you can use the API and integrate it into your CI workflow. There's actually one of the partners we work with on the API. Duda, actually named after the dude in Big Lebowski. Funny enough. You have a fire. Yeah, so Duda actually integrated it into their Jenkins continuous integration pipeline. We're going to show off that demo at IO as well. So at this date of the union, they said they're looking into how they can... Instead of just, you know, you use AMP, therefore you get batched. Like you do good in performance. Therefore you get a good rating on search. Does it mean that if I get a good score in Lighthouse I can be pretty confident that I will do well in whatever they come up with as well. Yeah, so the details of like the exact criteria we're still working on figuring out exactly. But what we're trying to do and make sure with the criteria is whatever metrics that we tell developers to optimize for that there's a way to measure it in the lab and there's a way to measure it in the wild. That sounds good. Yeah, and then in the lab obviously we're going to make sure that tools like Lighthouse are exposing those metrics as well. Yes. Short, long answer to your question. I mean that's good because that just means you said you have an MPN module, we have it in DevTools. I mean I can run it locally and then I can put it on my CI as well. Yes. And I can like... You want to test the public version.  And you can use the Lighthouse API if you want to run a scale and you don't have to install anything and just get... Don't have to keep your own machines or anything like that. Keep your own machines or anything like that. You basically could. So how quickly are the rules in Lighthouse developed? Like if I, you know, work really hard, get my like score of 100 on Lighthouse, how am I going to check back next week and it's going to be 50? So we try to make sure, you know, things like this don't happen, but we also want to make sure that it's comprehensive and kind of we keep up to date with the currency to the union. So I don't have like a exact like, we add one new audit every month, but we try to make sure that we kind of tackle different parts of like the performance experience. So we've spent a ton of time on performance and we launched search engine optimization audits this year and our kind of next focus is going to be on user experience audits, and getting like the forms, like how do you make like a really good, you know, form experience, which is really important to a lot of folks who have like, you know, e-commerce stores and they want to convert a lot of users to make a lot of money. So we have the Perf Sandbox over at the Sandbox area and people can like come up and try Lighthouse, right? They can enter their URL and run the tool. On the actual Lighthouse. On the real Lighthouse we have here, it's incredible. This video is going out after I.O. So you're not, pitching that is useless. This is not live. I've been very pleased to see all of the score. The accessibility scores are actually pretty high and SEO scores are really high too. So people care about accessibility and SEO. That's good to hear. 90 plus, so they're doing really well. Oh, just testing the same site over and over. That's true. Example.com. Doing well. So what have you been doing then? Yes, I've been working on Puppeteer and working with Headless Chrome. I got really excited about just controlling Chrome. Right, yeah, that's two things. Okay, let's parse that out. Yes. All right, Headless Chrome. So Headless Chrome, I think we shipped it, maybe Chrome 59 last year. Basically run Chrome without a window, right? Headless mode. So, yeah. Headfill mode, Headless mode. So, like what Fandom used to be, Fandom.js. Yeah, exactly. So, cool thing about this is it's blank. It's Chrome, right? It stays up to date with the web, so you no longer have to... I got the new APIs. Yeah, exactly. You can test service worker. Does it stay up to date with each version of Chrome? Yeah, exactly. Oh, excellent. So it's just Chrome, but you throw on a command line flag, dash dash headless, and you don't see Chrome, but you can still do everything it does. So it's kind of cool because we can, yeah, finally test service worker. We can write an app that uses modules, and we can test that. So how do I control it? Like there's Chrome, Headless, there's no window. Yeah, exactly. So this is where Puppeteer comes in. Oh. So Puppeteer is a library that we created. It's a Node library. You can get off NPN. It bundles Chrome, so you don't have to worry about getting that or anything. And you can basically just use these high-level APIs, control Chrome, do everything the DevTools can do. Oh, seriously, the DevTools protocol? Yeah, yeah. So the protocol is crazy big, as you guys probably know, and it's very complex. There's a lot of stuff you can do. It's not immediately obvious how to put things together sometimes. Can you do multi-touch for protocol? You can do touch. I think we're personally working on multi-touch. OK. We have keyboard input. We have touch, bare-bone stuff right now. But as the days go on, the engineers will add more stuff for sure. All right. All right. But yeah, anything DevTools can do, you can do in Puppeteer. That's really important as well. It's great to see, having that API to send out input events exactly the way that it would occur if the user... Because in JavaScript, you can't. If you like dispatch event yourself, it's different. It's different. It's slightly different. Exactly. It can screw you over really bad. Right, exactly. So that's why it's so important to be doing this stuff. Yeah. For real. It's cool, too, because DevTools has features like emulation and code coverage and all these really powerful things are adding. Now we can tap into that and you can write scripts and analyze your site in a different way or something that DevTools might not be able to do now. Haven't you thought of that? Is coverage already exposed in Puppeteer? Coverage is exposed in Puppeteer. Tracing is exposed. I mean, that's also good for CI. We're going to like y'all. Yeah, exactly. You have unused CSS or something. Exactly. So I'm showing some cool demos because I was like, man, DevTools is cool, but we can be even cooler than the DevTools. We're totally going to enter both of your talks in the description. Nice. So what is the biggest upcoming thing in Puppeteer that you look forward to? Biggest upcoming thing. So we just... We're working on more touch stuff just to making sure the input APIs are really good. Yeah. We're working on being able to test your end-to-end kind of PWA story. So, you know, does my app fully work offline? Am I like missing something from the cache? Yeah. Being able to do things like turn on and off notifications, kind of go through the end-to-end story. So many things I never thought about that they would be testing. Yeah. Well, you can test for UI. You can test whatever you want. Yeah. A notifications part is that some of these they need to add at different layers. And this would be at the DevTools protocol layer. Screen casting is another big feature request. People want to be able to take videos of what's going on on the screen. So it's headless, but it still gets rendered to a video? Yeah. It's just like Command H, highlight the window. Yeah, exactly. Is that how you implemented it? It's a trick. Excellent. It's outsourced. Some person somewhere goes like... I think on Mac, sometimes you actually see the Chrome logo come up so what we're hearing is massive hack. Massive hack. Right. All that engineering work. All Chrome with its, you know, beautiful tricks. From my experience, I can say the upset is I used to set up like testing on Travis or whatever. And then you have this whole dance of installing the X frame buffer server and starting Chrome with that frame buffer device. And that's not necessary anymore. It can just started without an actual UI. We were actually doing that lighthouse for a while, maybe, you know, as soon as Headless Chrome comes around, you can add that flag and everything gets a lot easier. Which order? Which order? Which order? Which order? Which order? Sorry, did you want to do this in English? Yeah, because we were going to explain it in our own words. We'll catch you on our fast load. Okay.


Good morning, good morning, everybody. We're at the Olsen Truck Stop, the Speedway in Clearwater, Minnesota. And I gotta tell you, they got the best priced coffee. They didn't tell me to tell you that, but I'm telling you that. A $1.60, $1.60. You know how many places are charging like three to $5 for a cup of coffee like this already? $1.60, I complimented them in there too. So that is a reasonably priced cup of coffee. Thank you very much. It's a good day.  It's like sort of Minneapolis, St. Paul. It's the southwest corner of the city. I'm gonna go grab a load there. We're gonna tie it down. We're gonna zip back home. I might be able to get back home for the night if I hurry. I don't wanna make any promises yet, but I have to deliver this load into Winnipeg tomorrow. But I might get home early enough that I can go and sleep in my own bed at home and see the family and then leave with it early in the morning. We shall see, okay? Let's get out there. We're not getting anywhere sitting right here. All right, all right.  I'm ready to get out there. Pre-trip's done. Truck is doing good. Trailer's doing good. The only thing wrong with it is there's no freight on my trailer. Let's go get it. It's about an hour from here. My appointment is for an hour and a half. So I have some extra time, but I want it to be a little bit early. Well, just in time for the parade. Perfect. Perfect. Yes. Busy here today. What's going on? Well, hey, I wanna get to work. I'm all excited. I've got myself all psyched up. I'm sending it. Now I'm going to work. Best part of the day, the highway here. Not too bad, though. We've got all those traffic mergers from the right, but I need to get into that right lane. Always make sure you say thank you when someone lets you in. The way you do that in a truck, you flash your four ways at them. The one-kilometer, take US-169 south. I always flash them three times, or at least twice. So thank you, one for each work, but three times is all right too. Thank you very much. 169 south. So this is the right lane, yes. Not north, south. So, yes, this one, exit 10-8. The 400 meters, take US-169 south. I already told them, Kevin. Not this, but yes, okay. Don't wanna miss my turn, because it'll take a little while to get back on track if I miss a turn here. I've come here many times, and it's just, like I said, every trip, even if you do the same route over and over and over again, every trip is a little bit different. I guess if you do it enough, because I'm not in this, you just go on autopilot, but I do different stuff too, right? I wouldn't be able to do the same thing over and over and over. I do a lot of the same stuff, like our Kanora Brainer, so I do a lot of those, I do a lot of stuff around Manitoba, but I like to switch it up every now and then, because if I do the same thing over and over and over too long, I get bored. And if I get bored, I get lazy. And if I get lazy, I get unhappy. I like always sort of being on my toes. I'm an adventurer. I think this lane ends as well. I need to get out of this lane too. Yeah. Excuse me, excuse me. Hello? Here, we're gonna get loaded. Hopefully it'll be quick. I'm about a half hour early for my appointment. That's right when they want us there. They don't want us there any more than half an hour early from what I understand, or is it an hour early? Whatever, usually if I get there at this time, they'll start loading me shortly, depending on how many other drivers are there, so chances are we'll be out of there by 9.30, I'd say, on our way home. We have about a seven hour drive back, seven, eight hour. I might be able to get home in time for supper. I don't know if I'm gonna make it though, look at it. I don't want to get myself too excited. I'll definitely make it back to Manitoba. I just don't know if I'll make it home tonight, deliver this tomorrow morning. Got my fancy Pylon uniform on. Can you see me? And my work sweater. I need to get a new work sweater. This one's pretty worn out already. I like it though, because it's blue, but it is seen better days. Actually it's seen a lot of good days. It's seen a lot of good days. Still doing good, still works. Just waiting here for my turn to get loaded. There's two trucks getting loaded right now, and I'm in the staging area along with one, two, three, or four other trucks. I think I'm next, but I'm still early. I mean, my appointment's at nine. The time is now 8.55, so probably in the next five minutes, and it doesn't take long to load at all. Once they get going, it's bang, bang, bang, they throw them on the trailer, I tie them down, run over, get my paperwork, send it in, whoosh, we're gone. Just like that, bing, bang, boom. It's very quick here usually though, I'm not too worried about it. How far away am I from home? Let's see, I gotta start thinking about can I make it home tonight, or am I gonna sleep in the truck? I don't wanna get myself all excited if it's not even a possibility. Yeah, eight hours, mm-hmm. 755 kilometers, 500 miles. I have the time on my clock to do it, definitely. Definitely do. So that would get me home. Let's say I leave here, let's say we get out of here at 10. Give it an hour, 10.30, hour and a half. The latest, 10.30, 11, 12, one, two, three, four, five, six, 30. Either about seven, seven, 30. I could probably go home for the night, yeah. Just go sleep in my own bed, see the family, get up early tomorrow morning and be in Winnipeg first thing in the morning. As home is like right on the way, right? We'll see, we'll see what happens. Well, we'll plan for that right now, but we'll also plan for the plan to change. See what happens. It would be nice. Ready to go? The time is 9.31 in the city. I'll take us up to I-94 and that'll take us all the way up to North Dakota I-29 North. We're taught to win cloud. We win our business, they have the cheapest prices today. In 300 meters, turn left on 45th Street and then 241. Flying J, St. Cloud or Pilot St. Cloud has really been dropping the ball. They were always, always the cheapest price for so long. Now QuickTrip has been beating them out recently. How do I, how do I turn left here? It's like, I can't turn left? What? Why did my GPS make me turn this way? Make a U-turn here now? What? What's this exit? Why couldn't I turn left there? QuickTrip's the other way. But I wouldn't make, but another exit just past that. 2058, which I should have taken. In three kilometers, take the entrance to the right on MN101 South. Great, now I gotta go all the way around. Find a place to turn around. Oh, for crying out loud. So there's two exits. One exit is, should have been reading the signs more carefully. Exits aren't usually designed like that. Usually you take an exit, you can turn left or right. So 205B was obviously this way. 205A was the other way. Oh man. Oh yeah, well now we know for next time. Down here, so I'm gonna have to go all the way up a few miles to the 101. Take that back down to the 94 and go try again. Sort of do a little bit of a loop. It didn't take me about eight miles to go around. According to Karen here, I don't know if I should trust her after that. How do you not know which exit to take Karen? This is what happens when I don't double track every single little turn. Man, you always gotta check her work. You can't trust her. You do that on purpose. Nice houses in here though. There's a plus, nice scenic road. Beautiful. That used to be a nice neighborhood to live in. All ranch style houses, big properties. Wow, wow. Is that a golf course? Oh, that makes sense. Golf course community, right? All of these houses, beautiful. Wow. Money, money, money. The entrance to the ride on NN101 South. Money, money, money, money, money. You got any to share? I took a wrong turn. Looking for donations. My turn up here, this'll be the 101. Like I said, this'll take us back to the 94. We'll go try again. This time we will not listen to Karen. 300 meters, take the entrance to the ride on NN101 South. Better not be turning me the wrong way again. All this just for some cheaper juice. Anyway, quick trip. The price for me today at quick trip is 345 a gallon. The price at Pilot, which is usually cheaper in St. Cloud. The price there is 354 a gallon. 10 cents more a gallon. I'm gonna do it again, Karen. We're not gonna take this exit, we're gonna take 205A. They must have redone it recently, or sometime in my GPS still hasn't updated. Maybe I need to take some time and update that again tonight. Okay, so not 205A. Turn left on 45th Street, NN 241. 205A, definitely have to update my GPS later. 24 kilometers, take CR 37 CR 19 Albertville. No, Karen, you don't know what you don't know. They changed it. Okay, so technically I guess it's not Karen's fault. Maybe it's my fault for not updating her, but she should know this. Right, she's updated on her own. My wifi, my mobile wifi, I don't know why she wouldn't. I guess I have to actually go in there and physically tell her, you need to update now. There we go, all right. Now that we're on the correct path, that didn't take too much time out of our day, thankfully. Quick trip is right here off to the right. Let's see how do we get in here now. 200 meters, turn right on. Oh my. Update highway man, turn right in 60 meters.  Oh man, of course. Yeah, now everybody wants to come in here and grab fuel, shoot. Everybody's got the same idea that I have. Okay, what happens when you have cheap juice? Turn right a man, approach your destination on the right side in 10 meters. Okay, so right here, we gotta wait in line now. There are three pumps there. Looks like there's a van parked in this pump there. It's got his four ways on, so maybe he's fixing it or something. Maybe he's the fix it man. This won't take too long. This is a really tight place here because he got the car pumps right here too, right? The exit or the entrance behind me there and not really designed to have a lineup of trucks here. Entering North Dakota, be legendary. No pressure. The other side of the river with Moorhead, same city, different states. Just up ahead will be the I-29 Northbound. As we take that North that turns into 75 in Canada. It does look like right now that I'm gonna make it home for tonight. I'll be home around supper time by evening at home and then tomorrow morning I'll head out, get this freight delivered and then I gotta head back to Canora. Probably get there on one, send in my paperwork and make my way south again into Minnesota. Enter the right on I-29 North US 81 North. It's a pretty good rounder if you time it right. If you time it right, back and be home. Canora, Brandon, Jack be home. I don't know if I'm going back to Jack be after tomorrow is over. I've gotta make a right turn right away. And there's somebody up here on my left now. Okay, sorry guys, I can't. Enter the right on I-29 North US 81 North. Ah, they figured it out. I had this pickup truck here. Great, beside me. Don't like to get out of the right lane when my right hand turn is coming up here in like a mile. But so often. Enter the right on I-29 North US 81 North. So often when you move over to be courteous to allow people into the lane who are merging into traffic, you'll get into the left lane, right? And then they'll merge in, match your speed and just stay right beside you, walking you into the left lane. You need to get back over to the right so that you can make your turn, right?  So your attempt at being courteous now make you miss your turn. You can either be courteous, risk-missing your turn, or you can have the perception of being a dingbat and not move over, but guaranteed you won't miss your turn then. I don't even know what a dingbat is. What is that? That's made that up. Continue on this road for 247 kilometers. I'm trying to keep it YouTube friendly here. The word I was gonna say would have gotten the video demonetized or something. Pretty big city. I remember when I was in Cape Fargo and it seemed like such a small town. It's really growing leaps and bounds throughout my lifetime. It's a big place now. I was able to quickly run home, spend the evening at home and the night at home in my own bed, which is great. Now we're back on the path to our delivery here the next morning. I'm gonna get these pallets off my trailer and run over to Canora. We're gonna continue, we're gonna continue this vlog until we unload. And we'll start tomorrow's vlog when we're empty and headed to Canora. This is Southeastern Winnipeg. I'm coming up here on Highway 59 Northbound where it'll turn into Lajomodier Boulevard. There's a very nice neighborhood around here. This is Sage Creek off to our right. And I believe it's Island Lakes off to our left. Very nice, kind of prestigious neighborhoods to live in here. Beautiful homes, big houses, big property tax too. We looked into these houses when we were looking around and because this is the side of the city that's closest to our yard, right, for work. These properties in here are very expensive for us, depending on like what your income level is. For us, we found it that the yards were really small like the houses are very close together. You can literally jump off your roof onto your neighbor's roof. So we wanted a little bit more space and a little bit more of a country feel. We didn't wanna be in the city and also with Britt's eczema on her hands. I've talked about this before where she has issues with city water. Something in the water in Winnipeg hurts her skin. And it's not just her, we've heard it from many other people too. Something is in the water in Winnipeg that causes you, it eats away at your skin. It's freaky. There's a lot of people who have issues with their children, like their young babies. And they can't figure out why. Well, cause they're bathing them in the city water here. Now that's nothing proven. That's a little conspiracy theory somewhat in my head, but we do know that it does affect Britt's hands. So she, even if she washes her hands just once with city water, her hands start to dry up and crack and bleed. Whereas where we are, we have a well. So we have our own water source and we have a water softener. And that water is a lot easier on her skin. So that's one reason we couldn't live in the city because of the city water, the city of Winnipeg. So if you live in the city of Winnipeg, maybe the water doesn't, water doesn't do anything to me. It never affected me, but I don't know what they're putting in it. But if you want my personal opinion, I wouldn't drink it. I would get bottled water. It does five gallon jugs or something because it didn't affect me, but it affects her. Freak me out. So we live where we live. Plus it's closer to where I grew up and where Britt spent a lot of her childhood too out in southeastern Manitomo. Just a nice quiet community. We're also not zitty people. I don't know if you've noticed over the years. I'm not a big fan of cities. Winnipeg's a smaller city, but it's big enough for me to be like, ah, too many people in one place. You know? And everybody's so aggressive, like the drivers. They're always angry, they're always upset, and they're in a hurry to get nowhere. Like when you live in Winnipeg, pretty much, depending on what neighborhood you live in, everything is 15 minutes away. Everything's within 15, maybe 20, if you want to go to the other side of the city. You're close to everything. What are you in such a hurry for? Everyone's in such a hurry. Out where we are, out in the rural areas. Countryside, it's a little bit slower paced. People, I don't know, leave earlier and give themselves more time to get places. I don't know. Don't get me wrong, there's still grumpy people out where I live, but it feels better. I mean, for me, it's a better atmosphere. Maybe that's just because that's where I grew up. I don't want to throw shade on the city because I have a lot of friends who live in the city here and I, myself, have lived in Winnipeg. And I found that it's not for me, it wasn't for me. But, you know, a lot of people love it. It's a great city, a lot of great restaurants, a lot of culture in Winnipeg. You go down Corden Avenue or an Osborne Village, go see a Jets game downtown. Like, Winnipeg is pretty awesome. I mean, for me, it's fun to come visit. But it's nice to know that I can go home and leave the city when the fun is over. But that's just my own opinion, right? There's nothing wrong with living in the city. I totally get it. It's convenient, everything is close by and not everybody is miserable. There's a lot of good people here. There's a lot of grumpy people too.  Tell me I'm wrong, tell me I'm wrong. I won't bite you on that, whatever. So fast, they had me unloaded in like less than five minutes. Just like that. Hear my air suspension releasing air to go down because it can't keep up, they unloaded me that quickly. I got here and they waited for me to get all of my equipment off the trailer, all of my corners, put everything away.  They got two guys that come out here just boop, boop, boop, boop, boop, get me unloaded. So it's 10 40 now and we're gonna head to Canora to load this afternoon and then head down into Minnesota to unload that tomorrow morning. Canora is about two hours from here, about 120 miles or 200 kilometers or so. Just gonna send in this paperwork, let them know that I'm done and then I'm on the way to the next one. So thanks for joining me today guys, it was a fun trip up from Minneapolis. Thanks for hanging out with me and staying right to the end. So if you wanna support the channel, the best way to do that is to leave a comment down below, hit the thumbs up button and to subscribe. That is the key, subscription. If you haven't subscribed yet, I know about half of the views I get on my channel, people who aren't subscribed. So if you take a little bit of extra time, I'd really appreciate that. Just go down below my video, see that you're subscribed to my channel. If you want to hit that bell so you get notified. We make new videos every day.  Then you actually get early access to all of my videos as well and you get to see them first. And in the comments section, you get a little badge beside your name so your comment stands out. And those comments actually get sent to me in a separate folder as well. So those ones I'm guaranteed not to miss, you know? But anyways, thanks everybody and I'll see you tomorrow.


Welcome back MechanicalEI. Did you know that HeavisideUnit function represents switches or similar functions whose values suddenly change with time? This makes us wonder, what is HeavisideUnit step function? Before we jump in, check out the previous part of this series to learn about what linearity property is. First, let's see what the first shifting property of Laplace Transform is. Consider Laplace transformation of f of t is f of s and s is greater than a. Then the first shifting property states that the Laplace Transform of e power at f of t is equal to f of s minus a. In other words, the substitution of s minus a for s in the transform corresponds to the multiplication of the original function by e power at. A HeavisideUnit function is defined as a function say u of t equals zero for t less than c and equals q if t is greater than c. It can be visualized as a mathematical switch that turns on when the value in the x-axis crosses c. The graphs can be of any type and not only constants. To deal with the Laplace Transform of such functions, second shifting property is employed. It states that if Laplace Transform of f of t is equal to f of s and g is a Heaviside function with g of t equals f of t minus a for t greater than a and g of t equals zero for t less than a, then Laplace Transform of g of t is e power minus a s into f of s. So whatever the value is subtracted from t in the on switch part of g of t, it is simply multiplied by minus t in the power of e. Hence, we first saw what first shifting property of Laplace Transforms are and then went on to see what Heaviside unit function is and how second shifting function is related to it.


Hey everyone, today we're making apple pie smoothie. Now this is rich and creamy because we're using coconut milk, I've got protein powder in this and of course apple pie spices. So satisfying, so delicious, you're going to love it. I'm Rockin' Robin and I'm going to show you how to do it right after our chef joke. Have you seen the shirt that I designed? It says it's got to be hot to be good with a burrito on it. Well, you can get your own down below this video if you want, check it out. This is a saying that my dad used to say to everybody when he was at our restaurant, you know, serving the food hot was very important to him, so anyway, just something you might want to check out. So here's today's chef joke. Why is it hard to work at an apple pie factory? Because they have such a high turnover rate. So for apple pie smoothie today, I'm using a Fuji apple, you can use any apple you want, but I like Fuji's because they have sort of a sweet kind of tart combination going on. Very good. We're just going to take the seeds out of this, we're going to leave the skin on. All right, so I have my coconut milk here and I'm using native forest. Love this particular company because the ingredients, as you can see on the back of this, are very simple and plain. And then I'll be putting in some cinnamon and some nutmeg. So then I'm adding some protein powder to this. Use whatever you like or whatever you have and some collagen powder. I like vital proteins, you can get a good deal over at Costco for this.  So it's good to take every day in my opinion. And last but not least is some ice. So I got a handful of ice here, five or six ice cubes. And if you need to thin this down while you're blending it up, add a little bit of water. That's all you have to do. I hope you're enjoying the video. And if you do, here's one way you can let me know is by hitting that like button for me. Just give a little smash in and I'll be able to tell. You got to try this. It is so delicious. It's creamy. It's rich. It certainly tastes like apple pie. You're going to love it. If you like smoothies, you might want to try my Asahi Power Smoothie. It's delicious. This thing is jam packed full of nutrition and it's got blueberries along with some avocado and a lot of other good stuff. Thanks for watching today. Share the channel and we'll see you next time. Don't forget to leave me a comment.


I'm gonna play a new song that I just wrote like three two weeks ago because the this lady over here encouraged me to do this and like I don't play my small marginals in the street that like I'm gonna try it for you all right perfect good morning from New Orleans look who's here it's Emily if you guys don't know Emily let me reintroduce her or introduce her for the new subscribers Emily is a photojournalist all around great human being and works for things like vice and NPR and things like that yeah hi and we met she was living and traveling in a van and now she's settled and bricks and sticks here in New Orleans hmm first off it is a little bit afternoon I'm gonna stop into a place that Anthony Bourdain went to and this is apparently the place to go if you want a really tasty po-boy time has come this is my oyster large oyster po-boy and what did you get I got the scramps all right bite into it and tell me how it is and Emily did not get hot sauce for some reason it is good it's not something I have every single day right oysters with bread my mouth is kind of adjusting to all the umami flavors but it's really tasty I completely forgot to introduce myself my name is Jackson your name is Joanne okay very nice to meet you and what what should someone order if they come here for the first time our biggest seller by far is fried shrimp by far another very popular but not the biggest is half fried shrimp and the other half is fried oyster that's what I should have got I did the oysters which is amazing but yeah if you could tell us what you said earlier about who's like where where this thing all came from this place started about a hundred years ago it was my husband's grandfather who started it as a bar the same bar that you're sitting at today front bar and the back bar we actually had a gentleman come in one day and sit down and said you know this bar is over 100 years old and I said that's what I understand he said no I'm telling you it's over 100 years old I'm a furniture appraiser and I can look at the bar and the details and tell you that it was made over a hundred years ago it was cool that's amazing and how long it has the place been serving po-boys now po-boys I don't honestly know it started just as a bar it was started by Peter Domolles my husband's grandfather his mother Sophie couple some time after that I don't think it was long started serving plate lunches to workers on the river the rivers right here Mississippi River and started serving plate lunches for the workers there then eventually some friends of theirs started making po-boys right there at that counter what exactly is a po-boy what like what is in it that that is a po-boy and not any cut other kind of sandwich the main thing is the bread with the wrong bread it's not a hoagie it's not a bun hoagie is ready it's got a mushy outside doughy yeah very spongy oh boy the bread is has a very thin crust on the outside very crispy almost like a quality baguette like a french baguette it's even thinner than that and then the inside is very light and airy it's not a doughy bread at all and that makes it without the right bread you could put anything on the inside it's never gonna be good but the good stuff on the inside with the good bread makes them awesome all right guys now you know this is a spot you know to order you know to ask for and say hi to Emily what do you say as a resident of New Orleans yeah all right and so I guess we're going somewhere after this any teaser on what it is we're gonna head to the French Quarter I'm gonna take you to kind of a hidden spot on Royal Street all right sounds good to me all right next up on Emily's adventure day she's so kind to take me around today by the way thank you again so we're going into I don't know I think called Mardi Gras world I have no idea if anyone else has been here in any YouTube videos before but essentially it is old floats and things so it's like old floats and things okay whoa goodness gracious look at how cool this is and we just walked in we had to pay outside for parking but then we just walked in here and okay so there we go that's why we got in for free tour and gift shop right there so they do sell things and these are just a bunch of old possibly retired floats here's the details on place it's $22 we're gonna skip it because 44 bucks just like walk their place I'm you know me I'm not a huge touristy kind of place it is interesting if you are here and you want to see it come on through check it out it is really cool I've been deeper in here for a work assignment I had to cover a wine night here and there's a lot of big beautiful floats back there yeah full tour about it yeah and we also have a place that's closing soon so we do want to get over over there what's this oh cool yeah it definitely a lot of photo ops in here too but you know just to show you guys for the sake of a video to give you guys information this is about as far as I'm gonna get a place that Emily recommended and what exactly is this place I think the cheapest thing I've seen is like 35 grand oh my god really valuable and it's a good place for tourists to come all right well let's be torson holy crap check out that pool table oh my gosh whoa look at these guys this is incredible this is like the ultimate wow there's another pretty one this is honestly like the ultimate antique store this is huge it's about the same size as my as my roof is this your favorite piece okay check this out guys I don't know what it is but it's like a butterfly like storage unit it's incredible I think those might be moths yeah wow and the one above it which one was the colorful ones yeah oh my gosh look at that that's absolutely incredible fantastic so I just learned that she's also on YouTube and here is the information if you guys want to check out more original songs from a traveling musician thanks so much hey guys remember that postcard giveaway I did sorry for taking so long right now I'm gonna drop these off in the French quarter and they will be one is going to Australia I set one out to Taiwan the other day and a bunch others so we'll do another one and I'll try not to lag so here we have the 10th oldest bar in the United States according to Emily okay next up on the list of today's things earmuffs for those who are not into this stuff or think it's sacrilegious we got the house of voodoo they don't like photos as you can see you're right there so just stand on the outside and point the camera towards this guy with a very unhappy face that's right no photos inside please but from the sidewalk we're in public land yes yeah the sad time has come we have to say goodbye Emily has invited me out tonight but I haven't really been a night owl and not really a big drinker so I'm not committing to that well deserved but thank you so much for taking me around I really appreciate it yes likewise all right well I think that does it about for today's activities I'm parked on a street called North Peters and Spain it's right next to a train depot so it does get a little bit on the noisy side but as you can see there's a RV and a familiar school bus from schooly Palooza down the way just bumped into them today as well as some truck campers and some other places here's a very green grassy square and it's kind of industrial area seems to be a spot for boondocking so if you're coming through town this is a spot to zoom in on this train real quick always fascinated with trains I think it'd be fun to ride one one day either you know up front or in the back like Rob lavender used to do


FoodWeb, the FoodWeb or FoodCycle is a natural interconnection of food chains and a graphical representation usually an image of what eats what in an ecological community. Another name for FoodWeb is Consumer Resource System. Ecologists can broadly lump all life forms into one of two categories called traffic levels, one the autotrophs and two the heterotrophs. To maintain their bodies, grow, develop and to reproduce, autotrophs produce organic matter from inorganic substances, including both minerals and gases such as carbon dioxide. These chemical reactions require energy, which mainly comes from the sun and largely by photosynthesis, although a very small amount comes from hydrothermal vents and hot springs. A gradient exists between traffic levels running from complete autotrophs that obtained their sole source of carbon from the atmosphere, to mix autrophs such as carnivorous plants that are autotrophic organisms that partially obtain organic matter from sources other than the atmosphere and complete heterotrophs that must feed to obtain organic matter. The linkages in the FoodWeb illustrate the feeding pathways such as where heterotrophs obtain organic matter by feeding on autotrophs and other heterotrophs. The FoodWeb is a simplified illustration of the various methods of feeding that link an ecosystem into a unified system of exchange. There are different kinds of feeding relations that can be roughly divided into herbivory, carnivory, scavenging and parasitism. Some of the organic matter eaten by heterotrophs, such as sugars, provides energy. Heterotrophs and heterotrophs come in all sizes, from microscopic to many tons, from cyanobacterial to giant redwoods, and from viruses and aloe vibrio to blue whales. Charles Elton pioneered the concept of food cycles, food chains, and food size in his classical 1927 book Animal Ecology Elton's Food Cycle was replaced by FoodWeb in a subsequent ecological text. Elton organized species into functional groups, which was the basis for Raymond Lindemann's classic and landmark paper in 1942 on trophic dynamics. Lindemann emphasized the important role of decomposer organisms in a trophic system of classification. The notion of a food web has a historical foothold in the writings of Charles Darwin and his terminology, including an entangled bank web of life, web of complex relations and in reference to the decomposition actions of earthworms. He talked about the continued movement of the particles of earth. Even earlier, in 1768 John Brookner described nature as one continued web of life. Food webs are limited representations of real ecosystems as they necessarily aggregate many species into trophic species, which are functional groups of species that have the same predators and prey in a food web. Ecologists use these simplifications in quantitative or mathematical models of trophic or consumer resource systems dynamics. Using these models they can measure and test for generalized patterns in the structure of real food web networks. Ecologists have identified non-random properties in the topographic structure of food webs. Published examples that are used in meta-analysis are of variable quality with omissions. However, the number of empirical studies on community webs is on the rise and the mathematical treatment of food webs using network theory had identified patterns that are common to all. Dailing laws, for example, predict a relationship between the topology of food web predator prey linkages and levels of species richness.