Load In the Loop: Episode 8 is here! Join Eric Hileman and Ivan Chepurnyi as they identify and fix some performance issues for eTech Parts Plus.
Sponsored by blackfire: https://blackfire.io/
Follow us on Twitter! https://twitter.com/loadintheloop
Ivan: email@example.com, @IvanChepurnyi
Eric: firstname.lastname@example.org, @ericvhileman
Table of Contents:
15:00 tinify external api call. Local image cache not working. Also resizing locally plus using tinify.
25:00 etech product stock alert loading in a loop.
28:00 Eighteentech categoriesside / swiftotter redner icon getfiles in a loop / directory search
30:30 tinify magento plugin - kill it
32:00 amasty seo rich data shouldn’t display all product information on the category page, only urls to full items data. Google ignores full product information on category page.
34:00 hash_file generation writing is a likely problem why autoscaling isn’t working. NFS
36:00 Fishpig wordpress module looking into own module version
42:00 Magento creates a temporary table for layered navigation
44:00 ElasticSuite isn’t just for search, it’s for layered navigation.
48:00 composer autoload not enabled (missing classmap). Best to build your own include/exclude rules. --nodev
59:00 braintree customer section load
60:00 magepal sending email from customer account create - ddos potential, deplete fpm pool. Never send emails in foreground, like account create, always send in backround. Can enable Magento option to send async, just turn on.
64:00 5 seconds just to send email after customer save
64:30 braintree making external calls to a sandbox url even though it’s not being used. Junk traffic on braintree sandbox. If braintree sandbox is down your store is down.
Eric Hileman: [00:00:00] All right. Load in the Loop is sponsored by blackfire.io. Hello, I'm Eric Hileman, CEO and co-founder of MageMojo Magento hosting in New York city. The purpose of this program is to take some of what we've learned from over 10 years of Magento specific hosting and evaluate one of our customer's stores.
We'll share with you what we find in the hopes that it may improve your Magento skills and the performance of your Magento stores. Along with me on this strip is my cohost, Ivan.
Ivan Chepurnyi: [00:00:31] Hello, my name is Ivan Chepurnyi. I'm an independent technical consultant from the Netherlands. I help merchants, I help solution partners and apparently, I also help sometimes extension to vendors to get their extension performance, on a good level.
So Eric, tell us about the merchant.
Eric Hileman: [00:00:56] eTech Parts. So they've, they've had some issues that I think they fixed. Some of them, they did push a code release. we can't quite put our fingers on it. It's one of those situations where the customer will write in and be like, Oh, it's running a little bit slow and we'll look at it and maybe we'll see.
Things are slow and maybe we won't. we think there's probably some database operations that are locking up. Which we may or may not catch on this, but I think in general we can take a look at it and probably see at least the surface, the tip of the icebergs that could be causing those performance issues at Columbia later.
it looks, it looks like they're doing phone repairs and like phone parts it looks like. So have you ever repairs your own phone screen? Like any done, any, like really, crazy, like a pad or.
Ivan Chepurnyi: [00:01:44] I actually, re replaced the screen on my nexus Google nexus. It was like four or five years ago. Like I had to be, it could be a nexus, device from Google, I think it was the nexusS or something like that.
Or no, not X. Next assess and Nazarene. And afterwards at one six beats another
Eric Hileman: [00:02:07] tab.
Ivan Chepurnyi: [00:02:12] how sadly,
Eric Hileman: [00:02:13] yeah, the fat man got that there. Jordan, edit that out or YouTube is going to block us or just beep it out. yeah. Fat tackling.
Ivan Chepurnyi: [00:02:25] fabulous. it's, it's like phone, tablet, you know, so, I, I had to replace the screen myself, so I order it to want a replacement screen on Amazon. They were at some pools that they fix it, and then I was able to do it. But now I have, this, galaxy as STEM.
Eric Hileman: [00:02:48] Oh, yeah.
Ivan Chepurnyi: [00:02:49] and, and now I, I just to send a door for repair because, first the falls, there's a lot of, sealed bars.
So is that, allow you to have a waterproof, system? So if you break a screen, is it better to have the conditions? It has all the right tools, you know, how old is it hit pipes and zones if they can not keep hidden guns. I don't know, to be able to do it properly and then Sue would
Eric Hileman: [00:03:16] release the
Ivan Chepurnyi: [00:03:17] accuser to seal it
Eric Hileman: [00:03:18] back.
Yeah. Check. Check this out.
Ivan Chepurnyi: [00:03:23] Wow.
Eric Hileman: [00:03:23] Have you seen these? The glow galaxy full? Now look at this dude. I don't know if you can see this on here, but already I've got some dead pixels. See it right there in the center. Right where the hinge is.
Ivan Chepurnyi: [00:03:35] It just crazy.
Eric Hileman: [00:03:38] It's two weeks old and well now it's like three weeks, but so I'm going to have to send this and get this repaired.
Ivan Chepurnyi: [00:03:47] But by then, I think it just was never stressed as appropriately, you know, to kids in market. So
Eric Hileman: [00:03:53] I love that. By the way, I think folding screens are the future.
Ivan Chepurnyi: [00:03:59] idea is great.
Eric Hileman: [00:04:02] It's like having a fablet in the pocket in my back pocket. And so let's see what's, let's see what these guys have going on. It looks like they're doing a lot of the tech parts.
Yeah. It looks like it's by probably submit your phones and stuff for . Yeah, they have a,
Ivan Chepurnyi: [00:04:19] once I had it as an SRO, had a customer, who also does a lot of repairs and they, they're called replace director or something like that. As far as I remember, I was doing a training for their development team in house, so it was, they had the development team of Magento developers in house, Cincinnati islands.
And I was coming into Zam and towards giving them, gentle development training. So it was quite interesting experience. And then I actually go to lucky and I go to my screen replaced was it had the crack for very low price, for full variable price, just for, as far as you know, sweet. Because we're running, usually go to a repair shop, you know, like, yeah.
As a Bart is usually quite cheap. Right? Is it more money you buy actually for the work that people do? So that the, what's quite nice experience? Okay. So let's profile the homepage. And from the looks of it, it looks a little bit slow. you know, it, it takes some time to get it, running, right? So let's see what it shows us.
A throw away, I think we will find something about, is this a slip product? Sliders? Probably. We will see some issues surrounds there because usually it's , issues that happen. So 102 requests, not too bad. I can tell about HTP time. It seems a little bit too much. Let's call it out. You'll see.
Well, let's right away, take a look at the sheet GP calls itself, because this one looks interesting. What? Well, what is
Eric Hileman: [00:06:08] 600 8701.8 . Tenafly, shrink, what the heck? Hold on. Pull that out in the browser. What is 10 of five strength?
Ivan Chepurnyi: [00:06:24] Yeah. Oh my goodness.
Eric Hileman: [00:06:31] Whoa. Was that a Panda eating bamboo?
Ivan Chepurnyi: [00:06:38] Dinae BG. Have you heard about this service? Tiny PNG?
Eric Hileman: [00:06:43] I've heard of it. I don't know much about it. Tell us about it.
Ivan Chepurnyi: [00:06:48] So Danny, PNG, it's kind of Zay kind of graded the possibility to compress your Jeep bag out boot. to have a very high quality, a little King pictures with a very good compression. So they have very good results.
Like you can also achieve is the same by just using Mozy legit back. But unfortunately, which was Zilla. Japan is not available by default and majority of the systems, and usually you just end up with using just standard JPEG libraries at this very bad that the compression Japan output. So what do you
Eric Hileman: [00:07:24] recommend merchants do?
Like I, I've, we've talked about, I think we've talked about web P and I think URI, how has a web P extension, like what, what's the definitive optimization technique for images for customers? Is there one, like what.
Ivan Chepurnyi: [00:07:38] zip is the best one is actually Florida. Somewhere, I would say U S CDM for is that a lot of sedans?
Yeah. For, for instance, Fastly, supports. Very good, image optimization. also, CloudFlare supports image optimization too. So
Eric Hileman: [00:08:01] there's also our
Ivan Chepurnyi: [00:08:03] client Patterson.
Eric Hileman: [00:08:05] Like CloudFront. All welcome. My pleasure. Yeah, so only so you got to go to like outside of the cloud providers, CDN, like Fastly, CloudFlare, those are probably the two most popular
Ivan Chepurnyi: [00:08:21] you can just just adopt and own a small containers.
It will resize semen just for you by URL. Zip. Main thing, just, you know, build a small containers that does it for you was the right codex. Because usually as a standards adopts of PHB actually resizing the images in PHP is already a bad idea because it's going to be worth terrible compression.
Eric Hileman: [00:08:48] I've seen some hosts have command line utilities that'll go through, scan your images and optimize and resize them.
Ivan Chepurnyi: [00:08:56] Yes. A zipper is a problem. Is that a zealous common lie in utilities, they don't do it or product a variant. So let's say when only when you rendering picture in Magento only is that it can know about the actual final variant. I already have some project in works open source projects in the works for image resizing.
I enrolled one. Is it this? Why am I not
Eric Hileman: [00:09:20] surprised?
Ivan Chepurnyi: [00:09:23] Yeah, so I already have. Sarah, in PHP is that it's kind of a synchronous application? Is that the, that she requests and by you are asked?
Eric Hileman: [00:09:34] I really thought it would have been interest .
Ivan Chepurnyi: [00:09:37] for now it's in BHP, but I'm working on open source solution in rust.
So there it is.
and, and, and how it works, it still works in the same way as Fastly to us or CloudFlare does, it just takes a URL and from URL tries to take out a zip barometers. Yeah. What was the final size? Was it be care should be, and then it actually uses. You made your magic in in peach beer right now, but I'm working on Russ solutions that actually we'll do it in Grosse itself.
However, as this project is a little bit blocked in Ross, because I still don't see a port that I'm, most Japan, Mozilla, Japan library tourist, as soon as it gets boarded, is going to be just a breeze to implement. But, yeah. this is the basic idea of PHP application actually. Is that. Right now, Magento resizes EMH one by one, as soon as it encounters it, you know, like it does.
and, and, and what I do, I just, accept to, let's say, requests, let's say from thousands of customers. So files that have customers request different images and someone was gonna request the same images, right? So I can, collect those images. Let's say every store, Damien was seconds. I can create a joke in the background and say, Hey, I'm going to resize these images to this sizes.
I can send the Komen to image magic and the image magic will produce for me a resized version of those images. And Zetland neurons is a separate applications that just asepsis should be requests. And on the next goal, it actually materializes the file. So as soon as the file exists. engineering's just gives away, as a file itself.
If file doesn't exist, only in that case, it will, make an issue be called to the service. So it's, it's kind of simple, however, quite performance solution because, I shaved off a lot of, , from the Magento beige itself.
Eric Hileman: [00:11:38] We should talk more about that. That sounds something cool that we could maybe put in a Stratus.
Ivan Chepurnyi: [00:11:44] Yeah, the it's somethings that definitely would be interesting for you. But what, what, what I see here, like is there is some kind of weird shenanigans happening was this service. So this service, first of all, it's very slow. As you see.
Eric Hileman: [00:12:02] Yeah. Like it's so slow. Is that really providing any benefits? That's I and I, I'm not quite, I'm not quite clear on how this is working.
So it was called out from PHP. So Magento was generating, I, I dunno, I'm kinda confused how this is.
Ivan Chepurnyi: [00:12:25] So it's definitely something related to the images, so definitely. Okay. I'll wait. Let's stay
Eric Hileman: [00:12:35] going. Yeah, pull that up.
That's it. Did.
Ivan Chepurnyi: [00:12:51] So what I can tell you for sure is the biggest problem here. First of all, is that Zay just don't include this image right away themselves because it looks like you can just. God's a CMH, right?
and so this is probably, where is it? Huh?
Eric Hileman: [00:13:21] It's in a slide or maybe that
Ivan Chepurnyi: [00:13:23] sign up now. Okay, so roll. Wait.
Eric Hileman: [00:13:26] Oh wait, a signup now. That's a pop up. Is that a newsletter pop up? Like maybe a, when you go to exit or,
Ivan Chepurnyi: [00:13:36] Oh, here it is. SAS. Oh, okay. Yeah. Yeah. So is this, this slider definitely is. This is the slider. Yeah.
So here, when you're here on this page. you see it as that, this is probably gets saved somewhere on the webpage itself, right.
well, may serve on our slider. Okay.
Eric Hileman: [00:14:20] Banner slider.
Yeah. I don't know, man. I'm confused by that cause that's,
Ivan Chepurnyi: [00:14:32] yeah. So let's just, they could look at as an actual source, where is this squirrel exec actually gets executed? Right? Let's see, Dani client. Okay. Tiny five source to buffer process from buffer. So this is some kind of integration broadly. Tangify provides some kind of integration for Magento.
Let's see. so it's a, you might resize. All right. Resize media by your owl.
Okay. Basic, resize or resize?
Okay, so here's where most of the time is spent, as you see, because first of all is there is a lot of time spent on IO and the power forms is that because of large share data size, and it also spends a lot of time on CPO in order to process CMH, right? That gets taken out. So it takes a at the least. Yeah.
Six to 7% of the total page load time is you see here.
Eric Hileman: [00:15:44] Why is that doing that? on every request? Cause we're certainly not the first request to this
Ivan Chepurnyi: [00:15:48] page.
Eric Hileman: [00:15:50] Like why
Ivan Chepurnyi: [00:15:52] we're all probably, yeah. For Broadway just to,
I actually don't, don't have an idea why. So it's a good question. First of all, why is it doing it on the front end at all?
Eric Hileman: [00:16:07] Yeah. I don't know
Ivan Chepurnyi: [00:16:09] if, if let's say a, you want to generate the different size of, be curious. You can do it in background as well, so you don't need to do it on a render operation.
Eric Hileman: [00:16:21] and if you do it on render, I would think you'd only need to do it once. Like why over and over. Like optimizing over and over and over and over and over is like not optimizing.
Ivan Chepurnyi: [00:16:33] Yeah. So, first of all, it shouldn't happen on random Rosa patient Magento. So you could create some kind of an endpoint in your servers that will establish a request and we will synchronously, you know, provide, you resize the image.
Well, it's, you shouldn't do it, during the render process of Magento, because render process Magento should just delegate or resize operation somewhere else.
Eric Hileman: [00:17:01] Yeah. And if you, if you do the render operation, like that's not going to get cashed to cloud front.
Ivan Chepurnyi: [00:17:12] And take a look here as well as there is also a used, a resize pro image magic. So
Eric Hileman: [00:17:20] that is weird.
Ivan Chepurnyi: [00:17:22] Template picture.
It seems like it's using some kind of cash, but looks like this cash doesn't work. So probably may, maybe it's even disabled, maybe as they have a cash in mind was there, you see,
Eric Hileman: [00:17:46] yeah. It's a function load. Cash.
Ivan Chepurnyi: [00:17:51] But they'd also could be a standard Magento block cash. Yeah. It's probably a sign of Magento walk cash.
We just see it because he just triggers to HTML here. Yeah. It's probably not a part of the functionality. Okay, so this is . A huge performance gain. Just move it, outside of your render process, and you definitely can shave off a lot of time. I was there, so was a good thing. Is that product images . I dunno, affecting, this resize, operation.
So it's only related, it was a bond that was probably because it was a bond that are uploaded as a huge images. And in order to optimize the performance of this, page, right? in za browser itself. So front-end performance, optimize it for only for that specific reasons. They actually, using this service in order to minimize the size of the picture.
So if we, let's say, take a look, Ed's a final. A resized version. The picture, right? This one, if we take a look at this network overhead, tens of this used buys this big share. Let's take a look. So you see as a size, so is this picture.
Eric Hileman: [00:19:30] So did it, but did they resize it locally using local functions, or did they actually spend this image over to tie Tyna Phi or whatever it is and then tonify sent it back?
Ivan Chepurnyi: [00:19:41] Yeah, just wait, wait a moment with me. I think the thing is that Zay, Jost Lewis, as you say. Yeah. So as a final size, it was a picture is 50 a 0.7 kilobytes, right? So it's quite small for BNG. Right.
however, probably Jew bag would be much better here.
Probably it would compress, but let just try it out online, be
and through URL.
So this is a size,
Eric Hileman: [00:20:51] yeah, I mean it kind of, yeah. Excellent. They sent the image over and then the Senate back.
Ivan Chepurnyi: [00:20:59] Yeah, so we'd be EMH is already at least 10 kilobytes of, you know,
so pro was there a snow knee that though is, is tiny P and G service because. They'll arrange a resize to be care is much more slower. Smaller. Right.
Okay. Let's go on to an Nazar issue. Right. Okay. Well, let's take a look at, could they go to beach? Shall we. Let's go into, yeah, let's take a look at my phone replaced sports. I was Zed. That's quite expensive. Digitize at our assembly Lolo that's crazy.
It's like one sort of, my phone price is just on the screen. I
Eric Hileman: [00:22:03] know I, I had insurance on my last iPhone and when I added up all the payments plus my deductible, I used it, which I had a problem right after the two year warranty as always happens. And I, and then the value of the phone, I got back, I was like, you know, this doesn't make any sense.
I should have just. See you could have saved the money, kept your deductible and just bought the part and replaced it yourself or had someone do it. And the value of the phone and at that particular insurance plan was bad because the phone I got back said remanufactured by Assurion. It wasn't even like a genuine iPhone.
So the value of it was even lower. But on this new phone I did get insurance cause it's like a $2,000 phone. So at that point I'm like, yeah, this is probably makes sense. But the parts, yeah. When you look at the parts, they're really expensive for the newer phones.
Ivan Chepurnyi: [00:22:56] Oh, through the actual screen itself is not that expensive technically, you know, from
Eric Hileman: [00:23:02] the digitizers is it the digitizer assembly along the screen? Like can you just get the screen without the digitizer? You have to get them together.
Ivan Chepurnyi: [00:23:12] It's just, , said by manufacturers on the final part is that you can install, he knows the manufacturing process itself is very cheap.
You know, like,
Eric Hileman: [00:23:23] yeah.
Ivan Chepurnyi: [00:23:25] Maybe it goes, yeah, it's, it's not rocket science. You know, like social screens are what was there for a long time.
Eric Hileman: [00:23:32] So these are, these are like Alli, Samsung OEM parts and not like third party.
Ivan Chepurnyi: [00:23:38] Yeah. And I think you, you kind of have oil imparting, right? I mean, yeah. I think you cannot have certain body part, parts, right.
Cause it's forms. I think I wouldn't come out sir by the pores because we're always able to have some problems. Okay. So we have got that group page. Okay.
Here's an interesting question. what's happening here, because it looks like a lot of things get, he wrote, Oop. So first thing I asked.
Web ceuticals show, subcategory and yeah, there is some Lord in a loop. We see a bun there is some kind of a extension cold, eat that product still alert, observer, override alert observer. And Zay perform a Lord in the loop of the product was in a collection. So they have collection of products and Zillow, every single product separately.
let's see what this , is it an extension for a wider, Oh, sorry.
Eric Hileman: [00:25:17] No, I think
Ivan Chepurnyi: [00:25:17] essentially, is it costumer?
Eric Hileman: [00:25:20] Yeah. Yes. I wonder if that's a push notification thing.
Ivan Chepurnyi: [00:25:30] Oh my goodness. Windows again reminds me, is that it wants to restart now? No, wait another hour. No hope. Okay, so here. It does overwrite and be assessed products to color to observer. Yeah. Definitely a load in a loop and allows them take a look at it. So I don't have an access to as a goat to tell what's the problem with their, well, from suffered, looks like he just loops over a collection and just loads of product.
For some reason, maybe as they need to access some attribute, but let's say if they need to add an attribute to a collections, they can just use a use product or use in product listing as a flag for product attribute that they want to include into collection and sands. They can access it from collection product, that product itself, not, by awarding product separately.
So is there is no need to order the product separately. Whatever you're doing. This is swamping and let's see, what else do we have here? Okay, so it this just a small part. Does anyone have a category a least? So this fun bakes quite the big chunk of,
Barossa sends it as some kind of icon. Oh, renderer.
So what is eighting that? Is it a previous name? It was a company, or just.
Eight 18 that so looks like the Tegrity side. So it looks like a custom module. Yeah. And then, and then we have some, I render Ikam being called and this surrender icon a S
doing a lot of iOS stuff.
so it looks like
plus from asset has some, performance issue. Maybe it makes sense to take a look at it. I cannot tell for sure what the problems are, but looks like, as they access Oles and modules. or module files module dependency get filed. CSO,
they do some directory search on every single item, so it doesn't make sense. Probably some. saving all was are right here. So you see here on 0.5 seconds here, two seconds. This is throughout the seconds, right? It's not the exact one, but still, it's a good indication. And it looks like we have, I musta here as well.
Eric Hileman: [00:29:08] Oh, surprise. There wouldn't be a show without an amnesty extension. .
Ivan Chepurnyi: [00:29:15] Yeah, so here we have product image, hash file, hash file. What I
Eric Hileman: [00:29:22] saw that time kind of fi thing in there somewhere where you wrote over, I saw it. There it is.
Ivan Chepurnyi: [00:29:32] Oh my goodness. So tiny fire Magento. So this is sprawl. We an extensions that they provide for your time, dining by Magento blood game.
Eric Hileman: [00:29:54] The market place.
Ivan Chepurnyi: [00:29:55] Are you in the market? Yeah.
Justin Moore with . It's not course if it's an extension Jasser moment,
because first of all, it sends all your images to sort of party server. And you just, he'd sell bulls. Abandoners
Eric Hileman: [00:30:29] what's, that's a free thing. Like, surely that's not free. Like it says it's free, but what do you, what do you do? Subscribe to the service and then it's like a SAS service?
Ivan Chepurnyi: [00:30:41] I think it has some number of, requests free.
You know, like it's, it's kind of freemium more and model where you get some number of requests free and then you have to pay for additional requests. Otherwise, see your website is down because the mail requests are coming through, right?
Eric Hileman: [00:31:00] Yeah.
Ivan Chepurnyi: [00:31:03] Basically. Yeah. It just doesn't make sense to use it.
Eric Hileman: [00:31:14] But our friends at amnesty up to that was an SEO
Ivan Chepurnyi: [00:31:17] rich. Yeah. Yeah. So basically why I chose here, a lot of data's span here. I think w what they do here, is somethings that they shouldn't do. And we were discussing it before with another, Jason, waste, structured data for Google. we're on group page.
You include all the products, information to be 10 here include product images. So Zay acts a URL.
Eric Hileman: [00:31:49] Did you see? Did you see that, the news story about Google, how Google was going to be including shopping results inside SEO search display? So you're going to see, like if you're searching for tee shirts, you're going to actually get to see t-shirt results.
And I guess that's coming out of the, this, Jason product description into pages. So that I, that must be why everybody's really gearing up with these things.
Ivan Chepurnyi: [00:32:14] Yeah. But a is the problem is that, Google, cannot associate multiple products to the same page. You sh you should specify as a final summation only on the final, product view.
On the category page, you just need to specify a links where we can obtain the full product information. So you can create a kind of category view, is they call it carousel, structure data where we specify a list of items. You have phones. This page was the URLs for as a full items description. You.
We will just ignore, ignore us. Complete data. You supply on a category page. It only expects it on the final leaf note. So what a is a must extension. Doing it here is completely redundant and just waste resources in order to, you know, renders as data because as we see here, for instance, they probably access some kind of
Special size it. Those manages that is completely different from the that is actually used in the category page and it triggers a lot of stop because hash file. This is crazy. This is so terrible function because it actually produces a lot of bio and I don't know if this customer is using after scaling.
Eric Hileman: [00:33:34] No, they haven't been able to. And this might be why they, I think it's disabled and, they have problems getting into run. And this is probably why this is probably isn't an issue of path. And if it isn't a shared path, there's going to be not, not very performant writing over NFS.
Ivan Chepurnyi: [00:33:51] Yeah. So the, this is the biggest problem was, like just numbers will skyrocket to as soon as they have an Fs for media files because images.
You know, like this tiny dining BNG, service. is that this kind of free is, is gonna kill their website because if Rosa file oil, I had those, this was a zit customer, actually is, they are already happy to share. Is there a name on the show? HEPA socks. so, this customer we have to send me show was a foster lead module.
And, in a fossil module, because they, they had an infest share of media files on every single application note. Is there a network with thrive was completely hammered with firstly file exist checks and get you much science kits because get the image size, for instance, it does the same thing as a cache file does.
So three is complete file in order to update what is the current size of the image from the method description inside of the file header. And here hash file actually reads the complete file every single time you call it. So. Is the same thing like is as soon as you have and that's where mounted drive is going to kill it.
Eric Hileman: [00:35:09] Dude, I was talking to some Magento core architects and I was telling them about how important the file system is when you're building a cloud and they really didn't get it like they were. They were like, what? What do you mean? You know, don't you have a CDN? Aren't you a PHP? There's an option for the a OB cash aren't.
Or not. Yeah. Are you, are you not revalidating like you shouldn't be revalidating op. No, you could do all that, but you're still, Magento is still collaging constantly at the file system. It's crazy.
Ivan Chepurnyi: [00:35:45] Yeah. It's a little bit concerning is that a lot of people don't understand that any single file exist or, you know, a hash file or.
Or file, get contents, whatever you are using, every single goal. It's a real file system, Cole. And, even for, we have SSDs right now, a lot of files in the cloud infrastructure can go into the network drive. And sometimes people might think like, like you have, It was took file system from Amazon andZ and Z.
Eric Hileman: [00:36:20] It's like,
Ivan Chepurnyi: [00:36:22] yeah. And as they think like just a real file system, but then Zan, it actually fast
Eric Hileman: [00:36:30] enough offense before it is a guy. Yeah. So yeah, this is a cure.
Ivan Chepurnyi: [00:36:37] On the, on the cloud environment. File system is more even important Zen on, on the regular bare metal server server because in a burn metal server, it can just directly access your hardware.
I know in the cloud infrastructure, it's, it's not a guarantee. It's
Eric Hileman: [00:36:56] all like when you're, as long as your one note, it's whatever, but once you go to more than one web node, it's like this becomes a serious concern.
Ivan Chepurnyi: [00:37:05] Yeah. I actually blend too. I have a small product in mind to build my own, NUS.
Eric Hileman: [00:37:14] Another project in stash.
Ivan Chepurnyi: [00:37:17] Yeah. And that was their project in stage. Definitely.
Okay. So here we solves this problem. So. Mostly this one that I think quite simple to fix. So is there a snuffing completely, completely hard, hard to fix that I think like a good developer can, can do it in a couple of days. Just uninstalling tiny PNG service completely. Yes. Just forget about it. Like it's not worse.
you know, it was those extra kilobytes that it can save when getting ratings or mangers comparing to the, price you will pay for actually your hosting because zoos just kills scalability and, and probably, it also consumes a lot of network. Because what, what do we, so like, so SEMA is actually getting submitted for HTP calls to serve on a service to receive back a zip to my sweater, shun in binary.
Eric Hileman: [00:38:21] yeah, that's
Ivan Chepurnyi: [00:38:21] the one thing. Yeah. Well my thing is sending data outside and another thing is actually downloading data from a server as far as I know, like getting traffic. Into the server is more expensive than getting out. Right.
Eric Hileman: [00:38:41] Okay. Yeah. You do pay for ingress? Well, we loud Stratus, we pay for ingress.
Ivan Chepurnyi: [00:38:55] Yeah. Okay. And, some things that we already know right. is this, this, some modules that, okay. it looks into own module version. Let's take a look what it is. It's fish big. Yeah. . Oh, it's fish speak war for us.
Eric Hileman: [00:39:19] There's this more.
Ivan Chepurnyi: [00:39:20] Is this a more nicer? I will show you a very nice, nice Gail crater is as a health is this one I really like.
This is one of my favorite in quote marks. Extensions. Oh. How do I search in windows? I already forgot. Okay.
Okay. I don't see it here.
is this weird or maybe it's fixed here already. Well, let's, do you bogs this page? So I will send this category, page and option where you can enable the bugging mode and it allows you to see complete queries with all the data as it was sent. Yes. And I think we also can get some interesting information also about distribute courses as well.
Eric Hileman: [00:40:24] we suspected, yeah, we've suspected there's been some database queries locking up or building up, so yeah, hopefully the one you're thinking of is the culprit.
Ivan Chepurnyi: [00:40:35] Yeah. We, because fish big, I, I saw was that on the front end, they actually update a configuration table of Magento. On every single page so
Eric Hileman: [00:40:46] it doesn't act clear.
Ivan Chepurnyi: [00:40:47] That's what I
Eric Hileman: [00:40:49] can fake cash. Would that be blowing out the config? No.
Ivan Chepurnyi: [00:40:54] As, as AGL directly run at the base query. They don't do it for the model, but a pro Bravo is a, they already have a fixed version. Because I remember there was a problem a couple of years and go a Magento to extension, but here is some kind of pruned arguments.
This is crazy. I don't know scent, what it is.
Eric Hileman: [00:41:22] I don't,
Ivan Chepurnyi: [00:41:23] Oh, or maybe it's, some kind of, internal thing inside of black FireWire is they just, yeah, I can relate stuff together. So, but yeah, I don't see here and update queries. So for now, I only see, as a standard, as Magento in certain didn't temporary tables at the salsa slow, but.
it's not a big program. Yeah. So as far as I understand, this customer doesn't use a . Yeah.
Eric Hileman: [00:41:54] What's the standard, insert into, what was that? A search temp. .
Ivan Chepurnyi: [00:42:00] Yeah. So it's how Magento works was layered mitigation. So my Magento kind of, creates a temporary table for every single category view you have.
He's great at temporary table in order to be able to build a lot of navigation out of that temporary table results. Okay. So let's say, you have, Well, let's say, you gotta agree with then falls in products, right? And this 10,000 products, are going to be taken out by Magento for the search API.
Will we find out for the search API? And then Magento takes its downfalls and products and inserts it into temporary table. Is it this quiet slow process? If it's 10,000 products assigned to a category page, and then, it, a brace was this temporary table in order to be able to show you filters, let's say price ranges, sizes a manufacturer.
Eric Hileman: [00:43:01] I think people here smile. Alasta sweet. They're thinking, Oh, that's just search. But really that's layered navigation because you offload
Ivan Chepurnyi: [00:43:11] Zed. Zed is the main thing, you know, like a search. It, it doesn't matter. Like for instance, HEPA socks for instance, or your silastic suit. A bot for surgeries that are used in that, in our service.
Eric Hileman: [00:43:31] that's interesting. yeah,
Ivan Chepurnyi: [00:43:35] yeah.
alright. The last is used for a front, then for pure, a category structure for building your own, a category views and so on. So this is. This is just a good, very good, implementation out of the box that this works.
Eric Hileman: [00:43:59] Yeah. You're a huge fan. Anybody who's watched the show.
Ivan Chepurnyi: [00:44:02] Yeah. I, I, I wouldn't say is that it's the best solution, but you know, for a surprise, it's, you pay for it.
Is it this free? It's very good.
So, you know, like if it's free, it's just great. Okay. and basically, I don't see, and if anyone else here, so basically my family think we found all the issues on a category page. All right, well, that's the prize going in. . Yeah. Let's see if product wage, and I'm going to show us something different, so let's try it up.
I hope I record it. Yeah. Everything is recording just in case.
It was always also requests to restart my PC from window. So what are they an ensuring everything, you know, I, I really like womb to so much, you know, like, it's so much better as, and couple of years ago, like five years ago. And nowadays, like in Rita, has the best graphic support. So you can build a lot of stuff for Kuda API APIs.
You know, like in Atlanta also, if you're a fun of gaming, all of the windows, games, majority of them actually support Linux. Oh, no,
Eric Hileman: [00:45:53] I had a, yeah, I didn't know that. That's cool.
Ivan Chepurnyi: [00:45:54] I haven't, I don't know if you'd use it. If you use, let's say, steam service, you know, steam. Yeah, sure. and steam, has developed a, a port of wine called proton, and you can just, do, you could check box on any windows game and steam and tried to run.
It was brought on and majority of them just works. That's pretty cool. So wish I could get
Eric Hileman: [00:46:22] Photoshop to run in wine.
Ivan Chepurnyi: [00:46:25] This is my idea. Like it's maybe, Maybe I should try to port Zehr proton project to hum. Actually Adobe products
Eric Hileman: [00:46:38] on Adobe canvas. Someone that Linux support are dying
Ivan Chepurnyi: [00:46:46] because for now, yes.
The only reason why I would need ever to use a windows is when I need to use sound print for redo. Do editing. let's see.
Eric Hileman: [00:46:58] I'll do photo virtual machine. Yeah, I'll do like Photoshop in a virtual machine if I have to, rather than reboot video.
Ivan Chepurnyi: [00:47:07] We read. We do. I didn't. You need to GPU acceleration and so on.
Eric Hileman: [00:47:11] Yeah.
Ivan Chepurnyi: [00:47:14] Yeah. So here we are on product page. It's not that bad. And does there a snow age typicals. A timeline view.
Yeah. Yeah. Hundreds. Already. Four. It's not, it sounds a bust. It's a number of that debris squares, but it's good enough. So this
Eric Hileman: [00:47:39] is
Ivan Chepurnyi: [00:47:39] what we usually see. Yeah. It's a lot of than we usually see. Definitely. So, here we have some highlights that Blackfire gives us, but.
There was not much of the issue. So CR and it's through blinds, sir. Ditty eighth. So yeah, so it's a little bit, a lot. And what I can see definitely is that Zay don't have composer of the Lord, optimized . So this is somethings that. Is they can definitely, yeah. They can look at. So after you're going to rate the compile to Magento classes, you need to get the rate and optimized composer afterload or class map.
Zen composer will not look into your file system, will not run any file exists. Skulls. So here's another question. back to your mention of, in your conversations with Magento and generators concerning file system. So majority of Magento setups I see in production don't optimize composer afterload.
So for them, file system is a huge problem. Because every single class syndication will trigger a filing disease to call in the file systems. That is very expensive. Yeah. And when you have thousands of classes, you know, like just not scalable. So you always need to optimize composer after load as well.
It's a required for you to handcraft it for every single project. So. It's good if you create your own composer afterload class map exclusion rules. So exclude the test files to exclude a set of files are things that you are not going to include inside of your, production, applications that is running excludes those files.
Also run composer install with dash dash no Def. On production. This is also very important because no doubt, we'll make sure that you don't have all those test frameworks, all those other stuff be included into your composer class map, because if that's the framework.
Yeah, so the process is very important for performance, optimization as well. just recently I had the project where, as a guys, a solution partner. Asking me to optimize performance of their build before they actually start doing development is they just asked me, Hey, we just imported our customer data from Magento onto mentioned to do.
We just been graded everything. We just have with some modules we, we installed. And so they asked me to review a store and I just reviewed it. I installed bind chef, my, core optimization modules. And. I changed their deployment pipeline because they have automated deployment and I'm with divides their script in order to make sure that everything is according to the best practices from point of view of deployment.
So we have a completely separate compilation step. we have a Zen, optimized, a flawed, getting aeration. We don't install any development dependencies during deployment. Oh, to production and so on. And so I'll also stop work. Then we achieve. Where do you get results? Like less, sometimes even less than hundred milliseconds on homepage.
Eric Hileman: [00:51:23] there's a lot of gender fat to trim.
Ivan Chepurnyi: [00:51:26] Yeah. So yeah, we are moved a lot of, stuff. is that a, is that another one I use from Saturday, Magento edition? So. Kind of street stream down my gentle what they have to commend to everyone, but I think you start and you build, make sure that you remove everything that you are not going to use.
Eric Hileman: [00:52:03] Yeah, dude, there's been a lot of talk about that, about, what, can you actually trim out that, that doesn't have its hooks in terms of extensions that come in the core.
Is there a good, project that you would recommend for people to, to use for that?
Ivan Chepurnyi: [00:52:17] Yeah, so, so zip Brolin was that the one, like for every single merchant, it's different scenario. So some, some people use brain trees, some people use only PayPal, some people use, authorize.net. Some people would say use a bunch of different PSBs.
So, so Gannon's grade kind of works for all template, right? You have to do it for every single project yourself. So you, you need to. A sit down was the merchant, and actually, ask what kind of functionalities you are planning to use from the standard set of functionalities that, because sometimes let's say if we talk about Magento commerce, Martians, Magento combers, merchants, also the knottiest majority of Magento commerce functionality.
A lot of them say, Hey, we are not using, let's say, got the look permissions. And ketorolac permissions at a lot of performance hit for a front end. So let's say if we can disable it for Magento commerce customers, I'm so happy because I don't need to go on and optimize their specific use case of fuse, H of cutthroat permissions, or let's say if I can remove, zap thins, Athens, Athens, that module.
is, is that so much relief, from point of view of several various resources to use H. so Magento commerce is, isn't, has a lot of nice functionalities, but you need to also make sure that you just don't leave them all enabled. Yeah.
Eric Hileman: [00:53:55] The neighborhood. Yeah, that's, that's a great way to put it, man.
There's a lot of great functionalities. Just don't make sure you leave it all enabled. My other, my other favorite one is, extensions are the, the, the cause of, and solution to all of Magento's problems. There's no shortage of functionality, but yeah, trim the fat. That's good advice.
Ivan Chepurnyi: [00:54:18] Yeah. Just. Well, I like, you know, like was Linux distros you know, like how for Alpine is that?
This worry. Minimal, right? If you build your Docker image, you will to better base of Alpine because it's streamed down. It only has stuff unit, and if you build a Docker container, like if your Docker container has bunch of different applications installed on it and to use for it, like it's not the good Docker wheel, because usually your Docker container should be one single entry points that runs and foregrounds right.
Yeah, yeah. You can have engineers, my studio, BHB, everything in a single Docker container, you should, it's just defies the purpose of the Docker containers. It's the same thing happens, you know, with Magento as well. you don't need to have every single module that is available. To be in New York, Magento instance.
You better just OnCommand removal of the point. You'll later, it will install all the required database tables. Also require the data it needs. Just don't enable due earns initial project built. Just trim it down. May. Make sure that you just have, is the tiniest Magento edition possible, you know? Yep.
Eric Hileman: [00:55:44] Sure.
All right. any, any final thoughts? Parting parting words?
Ivan Chepurnyi: [00:55:50] Yeah, so basically if, I think here we have pretty clear picture, so, is there a stabs that they can work on? Maybe we can try just to quickly test out the add to cart process, right? Sure. So let's just profile either thing led just at the cart stuff added to cart.
it loads customer section load only. Once it's a good sign, let's go to checkout. Oh, what
Eric Hileman: [00:56:28] you need to clean the cow?
Ivan Chepurnyi: [00:56:33] okay.
Eric Hileman: [00:56:33] I guess that's why I only lose customer section ones cause they're making me login.
Ivan Chepurnyi: [00:56:41] I don't know how to ride my own last name.
That's crazy. Okay. Let's use some. Random password. You can stop. So we do and find my password for this merchant. I don't mind. Is no personal information over here. So
Eric Hileman: [00:57:09] Do you, do you like last pass over one password?
Ivan Chepurnyi: [00:57:13] It just somethings that . Works for me. because I have it on my phone, I have it on every single device I have, and it just works, you know, so
Eric Hileman: [00:57:25] I'm on
Ivan Chepurnyi: [00:57:26] one pass. Or do you say, I didn't always wonder
Eric Hileman: [00:57:28] like what's the difference between the two?
Ivan Chepurnyi: [00:57:33] I think there's, there should be not much difference because they are competing, so they should have, they should be on pair. Right. Was the functionality set. Yeah. So, okay. Add into the shopping cart, seems not too bad, so. Huh. And I don't expect that, say, when I have bad performance, so fed into card because they have simple products.
Right. And, here, let's see.
I would see customer section, Lord, as well as this one probably is a little bit more interesting. so is this one actually I don't like in brain tree extension. So why do you need to get the client token when you actually just. Lord the shopping cart through a Munich card, like do half in the mini cart pay now button.
No. Right. Why do we need it? So he just doesn't make any sense for me. Oh, I didn't actually profile as the checkout page itself. Let's let, just for the sake of completeness also. Did they disable aggregation or not? No.
Eric Hileman: [00:59:06] Ah, yeah. Okay. We really like to see that option in there to stick it.
Ivan Chepurnyi: [00:59:16] Yeah. So here, here it is.
You see as a brain tree, it's customer section laws too. And let me just, run the checkout profile real quick, and let me go back to the profiles in our Lord in a loop organization. So let's see, What is social game?
Eric Hileman: [00:59:34] That's the Facebook, so,
Ivan Chepurnyi: [00:59:37] Oh yeah. So does that Zillow on the related to grading a customer.
Right. And is this one interesting? do Sibbet docket those socket as a Sal? Yeah. What? Oh, no. No, no, no. This is bad because, when I was creating a customer account, it was actually sending an email right away. So basically I can be dose as is a merchant. Don't do it. People who are watching this, we do.
Yeah. by, just by, just supplying on existing email addresses, during, is that, or did your station process, and it will just timeout, as seem to be a goals because it doesn't throw it away. and the gold deplete the FBM of Zim merchants. So never a cent an email. Yeah. Right away. It's the same place where you actually create an account, always sent emails in the background, never do it in the foreground.
And here's this mesh ball, g-mail SMTP application. That's exactly is that. It does it in the foreground. So Paul is probably.
Yeah. Plugin and Magento, they already help us ability to sound as synchronously emails. You just enables this option, in configuration and Magento creates an entry in email queue table, and then I'm doing as a Cron job with wold just grapples the emails together and sends them in a batch. And here is there this.
Oh, it's actually interesting. they could look at a, as a functionality is it actually gets me an email being sent. It sends me and email off on subscription. However, I've never subscribed to anything
Eric Hileman: [01:01:56] that's subscribed like a sobriety.
to receive promotions and then because you didn't check in at like unsubscribed you after
Ivan Chepurnyi: [01:02:14] and also I'm getting added onto the MailChimp list, right? They do. They click, Oh, we can see it's NAB DOD. Did they click a I want to subscribe or not because.
Eric Hileman: [01:02:28] Kind of strange. It would unsubscribe you after the fact.
Ivan Chepurnyi: [01:02:32] Yeah, so, and
Eric Hileman: [01:02:36] I have always personally hated that. I don't think you should be like opted in. That whole mentality of store owners like opting everybody in and then sending you punch you.
Ivan Chepurnyi: [01:02:48] I see. During za a customer safe is there is happening a vibe of your male savings. It actually. Really slowing down is they won't pay each wallet time because like five seconds just to send the miles.
You see it here. Right. And Zeus, emails, as we see, are wary, wary, wary, expensive. iOS
so, okay. The checkout page, we're gonna stay
yeah, quite a lot of database queries I can say. And again, hello brain tree.
so many each time.
Eric Hileman: [01:03:39] Oh wait, go into the sandbox.
Mm, I don't, why would a live store be go into the sandbox.
Ivan Chepurnyi: [01:03:50] Hmm. Maybe, maybe as they don't use a brain tree, but brain tree extension is still there, you know?
Eric Hileman: [01:03:59] No, it's a, yup.
Ivan Chepurnyi: [01:04:10] So let's take a look here, there. So, yeah. Is there, is there, use. Standard pay. Paul, I think
payment method. Where is the payment mess with the code itself? PayPal express. So they are not using Braintree.
Eric Hileman: [01:04:35] So by default, Braintree is on and like making that sandbox call, like I said, a default credential in there. Are they,
Ivan Chepurnyi: [01:04:44] I think because the Braintree and PayPal are, owns the same configuration page, because, you know, PayPal owns brain tree, right?
pro broadly a just how, how's a form was built. And because brain tree extension is enabled and installed, he just. He just knows about PayPal merchants reference. And who does all the calls, but through the sandbox, because probably it was a brain tree collaboration is co-ops too is the default settings of SEM books.
Eric Hileman: [01:05:15] Yeah. Yeah. And people have talked before about like they try to disable one extension but then lose functionality and another that I would imagine if you'd try to disable brain tree, you'd probably lose PayPal. They're probably so tightly linked.
Ivan Chepurnyi: [01:05:29] Yeah. But it's not somethings that I really like in a
Eric Hileman: [01:05:36] no, no.
Why? Why could you blank those fields out and save it and then it wouldn't make those calls out like if it didn't have,
Ivan Chepurnyi: [01:05:45] and it's just a sub on built extension, right? It's Magento brain train.
Eric Hileman: [01:05:49] Yeah.
Ivan Chepurnyi: [01:05:50] Okay. Yeah. So here we see, for instance, the pipe express configuration. So this is where we sleep and small blood brain tree, just dust bench fish because, so I think it's not good for brain tree itself because right now, like every single merchant who has bipole enabled
Eric Hileman: [01:06:13] worthless load on their sandbox.
Ivan Chepurnyi: [01:06:15] Yeah. JJ gels just covers development servers, you know. And, and the brain, Braintree is down, you know, like, Oh, it went through. You are not using brain tree. Your Magento story is kind of affected. They, because you know, like the banding on the beach be configurations. So this is the socket. They mouth
Eric Hileman: [01:06:38] 32nd by default.
Yeah. At least 30 seconds.
Ivan Chepurnyi: [01:06:42] Yeah. And, and basically he just completely kills your, okay. I'm
Eric Hileman: [01:06:49] not even using brain tree. Why am I down? Wait, Braintree production's up. Why are we down? Well, no, it's their sandboxes down.
Ivan Chepurnyi: [01:06:56] Yeah. And here again, you know, too. As a quality of extensions because, I, I don't think it's, it's Magento.
We're old brain tree, implementations themselves. They just, you know, included the standard extensions that was available and it was, it was built by someone else and no one, you know. They'll go look or change the implementation itself, but basically that's why people strip down your Magento versions because you know, you don't know what kind of functionality can get in walked or was there
Eric Hileman: [01:07:29] just a sandbox isn't going to have the same uptime as production either.
Ivan Chepurnyi: [01:07:34] yeah, jazz to, if you don't use brain tree, just. Composer replace brain to you was a star, and this module is never going to be included in through your front end rendering process.
Eric Hileman: [01:07:53] I suspect though, you would still, I would, I would not be surprised if you could not disable Braintree and still have PayPal work.
I would not be surprised if they were that length.
Ivan Chepurnyi: [01:08:05] No. it's, it's kind of a, I know customers at .
Eric Hileman: [01:08:10] have done it. Okay.
Ivan Chepurnyi: [01:08:11] Yeah. Because brain tree has a separate set, the fee pays, you know, but as soon as you visit the same payment method page, because the forums are kind of connected.
Eric Hileman: [01:08:26] Yeah.
Ivan Chepurnyi: [01:08:27] You can occasionally, just by mistake, half brain T enabled so.
Eric Hileman: [01:08:34] Yeah, I'm gonna, I'm gonna ask, the, solution partner about this one to see if they were testing it or did something with it or if this is actually how it comes by default. Do you know, like, is that a default thing that you've seen elsewhere
Ivan Chepurnyi: [01:08:47] or do
Eric Hileman: [01:08:48] you think they were.
Ivan Chepurnyi: [01:08:50] I think it would be jazz. Is that as emerge?
Oh, again, I get to windows notification and, and it's terrifying because it all always tries to put me first on my computer.
Eric Hileman: [01:09:04] I don't think the viewers will see it, but I saw it. It's a one hour
Ivan Chepurnyi: [01:09:08] timer. Yeah. And actually it's a very good interrupter. So God guys, stop was recording. Yeah. Just to finish,
Eric Hileman: [01:09:19] we should wrap it up.
Actually, I do have a call in 10 minutes. We probably should wrap it up.
Ivan Chepurnyi: [01:09:23] Yeah. So basically a, I've seen before issues was Braintree extension and, it was the ones that we see here is not that bad. bazaaris also Nazar brain tree extensions. Is this available to install for a marketplace? Cause if there's not bundled, so because this is a bundled extension, is there, it's also not bundled extension, is it has even more issues with performance.
Eric Hileman: [01:09:50] okay.
Ivan Chepurnyi: [01:09:51] And is that one is actually official from Braintree.
Eric Hileman: [01:09:54] All right, well, that's a good fines on this episode. I, I've got, I did take some show notes. I don't know how the good, there'll be a little, I'll pass them to our editor
Ivan Chepurnyi: [01:10:02] and . I'm just feeling a little bit, you know, tired, because I had very crazy, weeks.
I, I travel, to every single customer, beginning of the year because we are all making plans for the coming year to greater roadmap or performance fixes and so on. So,
Eric Hileman: [01:10:22] yeah, budgets, planning.
Ivan Chepurnyi: [01:10:24] Yeah. And I, I'm just a little bit exhausted, so I may be not does that, You know, in today's his stream, but ah,
Eric Hileman: [01:10:31] you seem to, East talked a little slow in the beginning, but I thought, I figured that, I don't know how much you talk in English, but she picked up really quickly, so that's good.
Ivan Chepurnyi: [01:10:38] Yeah. But he just takes a lot off my energy right now to, to go from one place to another. And so on. So, okay. it was nice having this, episode, being recorded. I helped Jordan, we'll have fun to edit it out.
Eric Hileman: [01:10:57] He's going to have to bleep some of my words so YouTube doesn't take us down for profanity.
Ivan Chepurnyi: [01:11:03] I, I don't remember you had any kind of bad awards, but we will
Eric Hileman: [01:11:07] see you as one
Ivan Chepurnyi: [01:11:09] for sure.
Eric Hileman: [01:11:10] I think I got this. I can, I don't know.
Ivan Chepurnyi: [01:11:13] Okay. So Jordan, one needs to submit it for automatic transcription and see how, how, yeah. Machine learning. Go on and on. We'll find out which Wars we were speaking. so it says then we can search for a.
Some irregularities in a transcript and NC if all works. Goodbye.
Eric Hileman: [01:11:32] Well, thanks again to Blackfire for sponsoring this episode and all the episodes and you can, Twitter. You can hit us up at, load in the loop and L I T L at dot com and Ivan, how can people reach you,
Ivan Chepurnyi: [01:11:46] in the same way.
Eric Hileman: [01:11:49] So your name, Twitter, and we'll link that up in the show notes as well.
So if you have any questions or want to get on the show, hit us up.
Ivan Chepurnyi: [01:11:56] Yeah. thank you very much for tuning in and deals. The next episode.