As a network specialist, I have a very different take on this. Why does your wifi at home suck so much?
You’ll almost always get faster bandwidth on cellular, unless you have fiber to your home it’s hard to compete with the available bandwidth on a commercial network, unless you’re in an underserved and over-populated (device-wise) area, your cellular speed should, in most cases, far exceed your available bandwidth at home, but your home WiFi shouldn’t suck. You should get, or at least approach speeds up to 1Gbps (or whatever your internet is capable of) on wifi.
A huge problem with it that I’ve observed is that people treat wifi like a huge truck, they just dump everything on it and that’s it. It’s not a big truck, it’s a series of tubes… Wait, that’s another thing… What I’m trying to say is that wifi is half duplex, like… a walkie talkie. Only one person can talk at a time. With WiFi, each “person” (device) that “talks” (transmits) can do so at incredible speeds, so the channel is free sooner… Unlike with a walkie talkie, when Timmy just won’t let go of the talk button… You can’t hear anyone when you hold that button Timmy. Let it go when you’re done talking.
Anyways, networks have a lot of stray, not useful (in terms of data throughput) traffic on it. Usually broadcasts (stuff sent to everybody) that should be sent to only a few devices. So there’s a kind of static in the background that takes away from your bandwidth. The more devices you have, the more background noise there is on the network.
This is a problem when smart devices are all wifi based. There’s ZigBee and zwave and others, but there’s a large number of “smart home” devices which are WiFi. Imagine installing 20 lightbulbs which are all smart wifi bulbs, onto a network. That’s a lot of static being added; and that static will reduce your wifi speeds.
That’s just one example of many. More devices = slower wifi. Thus my motto with WiFi and devices is: use a wire when you can, use wireless when you have to. A good example of this in practice is… When was the last time you moved your TV? You know, the smart TV with Netflix and everything built in… Exactly. So why is it on the WiFi? It never moves, there’s no need for it to be wireless. That’s an easy example of, why not just run a wire to it once, then never think about it again. Copy and paste to desktop PCs which are on wifi, and set top boxes, etc.
Switching from wifi smart/IoT devices to ZigBee or zwave will also help…
The other point I would make is: throw out your all in one router. Yeah, the WiFi router you bought from Amazon/best buy/radio shack/whatever. Throw it right in the garbage. Buy something that doesn’t suck. An easy option is ubiquiti. Put wireless access points in and use ethernet to connect them to the network. No mesh bs, or anything. You’ll improve your wifi signal and wireless devices will be able to load balance across them. I have a space that’s about 800 (ish) sq ft. I have two access points. One covers the space easily… I still have two. Why? Because load balancing. So when someone is pulling a lot of bandwidth on an access point, the other is right there, in range, ready to take everything on that needs more bandwidth than the small amount left after that one demanding device has taken what it needs. The situation is great, I never have WiFi related slow downs and all of my devices can easily consume all of the available download from my ISP, and my firewall/router/gateway, does the load balancing for the internet connection.
“But it costs so much!”, I hear you say. Well, how much do you spend per month on your internet service? $50? More? And you don’t want to spend even $100 on a router, which will last years when you’re spending $50/month on service? What kind of a fool are you? You’re getting what you pay for. The $65 Netgear wifi router is going to struggle. Especially after a little while. Ubiquiti has put out several, recent, and inexpensive options recently for home use. There’s the UDR, UX and UCG-Ultra for starters, ranging from $150-$200 (ish). You don’t need the $400+ UDM Pro. Add a small switch and a couple access points and you’re up to maybe… $500? That’s the same as 10 months of internet. So for less than one year of what you spend to get access to the internet, you’ll have a system that doesn’t suck and will probably last 5+ years. If you factor that out, it’s less than $10 a month. Cheapskate. You spend more than that on coffee in a week. Shut up.
WiFi and ZigBee can interfere with each other as well since they both run on 2.4GHz and pending on what channel you’re on, will royally screw with the other. Moved (nearly) all my Smart Home devices to Z-Wave and has had better connection to nearly everything.
Yup. I didn’t mention this because it feels a bit too much in the weeds to be helpful.
Bluntly, 2.4 GHz should be abandoned by pretty much all WiFi, only standing for the last remnants of legacy support, and for IoT devices that refuse to use 5Ghz. Everything of substance (phones, laptops, computers… Even TVs and STB’s) should be on 5Ghz+
I’m also a fan of zwave, since it’s usually in the otherwise abandoned (for consumer devices at least) 900mhz range.
I’m very strict about the RF airspace in my home. What operates on which bands and what’s in use for which technology.
There’s a ton more that can be said about it, but I need to get back to what I was doing. Have a great day.
Is there a good video resource for learning about stuff like this? I’m willing to watch several hours of videos if that is what it takes. Any good YouTube channels?
I haven’t found one. Many YouTubers are more interested in specs, reviews, benchmarks for a specific make/model of device, not talking about broad concepts like wireless strategy, placement, roaming, RF characteristics, etc.
I studied many online documents, took several networking courses, referenced physics information about electromagnetic transmission, I even got certified as an amateur radio operator to know all I do. A lot of one-off searches for information. What helped me with that was going through, in detail, just about every configuration option on a Cisco aironet wireless controller. They expose almost every option and wireless specification for the administrator to configure. It’s far more advanced than anything from ubiquiti, or any other vendor. Most of the settings are fairly benign and probably should not be changed, so I get why that stuff isn’t available for most, but some stuff is rather useful to be able to change. I just went through it, option by option, until I understood what every setting, protocol, and option changed and how it affected wireless coverage and performance.
I’ve been working on my knowledge of these systems over the past decade. I have probably forgotten more than I remember at this point.
I can’t vouch for this particular playlist / series since I haven’t watched it, but the channel (Crosstalk Solutions) is great, and so I expect that their home networking 101 is as well.
How can I make my Debian pc always stay connected to the wifi? Even if it disconnects for some reason, it needs to reconnect as soon as it can without throwing any password prompts or requiring any human intervention whatsoever. Having to click a “connect” button first counts as human intervention.
Bering trying to figure this one out for years, don’t expect a working answer but you miss 100% of the shots you don’t take.
I have all those settings enabled. The solution does not lie in the ui buttons. I’ve beat that horse dead. It always asks for a password and always shows that stupid fucking reconnect window that someone has to click. It’s absolutely maddening. I might have to make a system mouse clicker bot for this because there might really be no other way. I don’t know how to do that but considering how much time I’ve wasted trying to find any solution, it’s just another attempt.
Too bad there’s not a one-time “reconnect now” command that can be attached to a script. And no, disabling the network interface and re enabling it via automated command line scripts doesn’t make it reconnect.
I haven’t personally used Debian with WiFi like this. I’ve used Debian and Debian based distributions on laptops and I’ve used those to connect to WiFi, but I’m not a full time Linux user.
Since I work on the IT/support side, most of my support tools only run correctly on Windows. Sure, there are client/user side tools for Linux/Mac/Windows, but the technician tools are frequently Windows centric; so most of my stuff is installed with some flavour of Windows.
Most of my knowledge is out of date, but I seem to recall that you can save settings in the wpa supplicant for the network, and set the network manager to default to that wifi connection (ESSID/BSS) when it is in range/available. This was all done in config files, but I’m equally aware that a lot of the Linux networking subsystems have been pretty dramatically changed in the past ~5 years, so I doubt the settings I would have used for this, still exist.
I’m sorry I couldn’t be more help here. I just don’t have the long term experience with the issue.
I have an old laptop with Debian installed, and I can fire that up for testing and play with it… What version of Debian are you running? I want to make sure the version I have installed isn’t so out of date that the testing I do won’t help at all.
That system is just sitting on a shelf doing nothing, so it won’t be a problem to pull it out and tinker with it for a while. I use a lot of Debian based stuff for servers, usually I’m using rasbian or Ubuntu, but AFAIK they’re all very similar.
I think that getting over 1Gbps on your phone is pretty uncommon. There is no way you’re gonna max out your wan bandwidth. Maybe if both the device and the AP have 4x4mimo wifi6, but how common is that configuration?
Basically non-existent. All of the flagship phones I’ve seen are 2x2 at most which caps out at ~800? Ish Mbps on wifi 5/6? Something like that? I don’t have the numbers in front of me.
Simply: it’s less important to see 1Gbps+ numbers on your mobile device. Many can’t even process data that quickly, aside from maybe a speed test. So there’s a point of diminishing returns where you’re just eating your battery in order to process data as fast as possible, and it makes no observable difference to your online experience.
The main thing is that since wifi is half duplex, reducing the background noise on the WiFi, you’ll get faster response times, because you’re waiting less time for the wifi channel to clear so you can send/receive data. Lower ping = faster network response, which makes it feel faster. You only need 100-200 Mbps of bandwidth to satisfy most data needs for devices, and the only benefit to more bandwidth is when downloading files/apps/games, when you’re simply waiting for the data to make it from the server to your device, and it’s a large amount of data.
I only have 100mbps of internet bandwidth at home, and anytime I go to another location and use the WiFi, even if it has more bandwidth, it almost always feels more sluggish, because I’ve optimized everything I possibly can, within my network, to reduce response times for requests. This is most obvious with the 13th gen i7 I use for work. It’s an incredibly responsive system, and I regularly need to take that system with me to go to work on a site (I work from home, with occasional on site visits required), and the sites I go to may have fiber which has significantly more bandwidth available, but lacks the optimizations I’ve implemented at home, and it still feels slower.
Between the increased latency from a busier wireless network, and the lack of on-site DNS at many of the locations I go to, I notice the difference quite readily.
Keeping devices per ap low, and optimizing common sources of slowdowns like DNS response times, it’s possible to make almost any “broadband” connection feel fast.
Hmm I never had an issues with just one NanoHD but you bring a good point with load balancing.
Not only could I get both extreme corners of my house and further lower the tx power, I could also load balance so video didn’t interfere with steam downloads
This is a useful perspective. I think things like sluggish internet can happen gradually and lead many people to become increasingly frustrated with their speeds, but also treating it like it’s normal. But as you say, it need not be this rubbish
Well, there’s also a lot of factors when it comes to things feeling sluggish.
For short periods of time, due to necessity, I’ve run very simple setups of just the service provider modem, and that could get me to around 10-15ms ping on a DSL line. After all my tweaking, I was running a modem line card (hwic) in my Cisco router, with a firewall and premium wifi. Which dropped response times by upwards of 10ms to ~5ms or so. I’ve further increased the responsiveness of my connection running a pair of raspberry pi systems which were set up as DNS caching relays using the bind DNS server.
The bandwidth never changed. But it felt a lot faster.
The next point was the firewall that I had in place was set up with QoS to limit the bandwidth of any one system, and manage the fair distribution of the available bandwidth among the devices on the network. This did less for making it feel fast, and was more for making it feel consistent. No matter what was happening on the network, there was always some bandwidth available for whatever else I wanted to do.
Most all in one wifi routers can’t do a decent job of QoS, so if someone decides to fire up a download at the full internet bandwidth, everything else slows to a crawl.
I’m kind of an odd case though. I’m a professional Network administrator, and my home network is often better run than my client’s networks.
It’s downright unusual if I need to restart any of my network equipment to fix a problem. I get frustrated when I have to call my ISP to fix a problem. Usually by the time I call, I already know what the problem is, where it is, and what needs to be done to fix it. So their usual script of restarting the modem and blah blah blah, does exactly nothing, because I’ve already run through more diagnostics than they even know about. It’s a pretty rare case when I can tell them that I have x problem and need y solution, and they’ll actually listen. When they do, it saves a lot of time for both them and me. When they refuse to listen, I usually just humor them for about 15 minutes, at which point either they’re doing what I want them to, or I’m yelling at them for making my life difficult and asking to speak to a manager. I don’t easily suffer fools that think I don’t know what I’m doing. I always try to keep my cool because they’re just doing their job, and I don’t want to make trouble; by the time I’m yelling, it’s because they’ve made trouble for me, or spoken to be like I’m an idiot who can’t tell the difference between an ethernet cable and a telephone jack.
I’m way off topic at this point. There’s plenty of factors that weigh into whether a connection feels sluggish or not, of which, only one is bandwidth… When you dogpile all your network services into one device, like they do for a wifi router (which is a router, firewall, switch, access point, DHCP server, and frequently DNS relay), it tends to negatively affect its ability to do any of those things well.
As a network specialist, I have a very different take on this. Why does your wifi at home suck so much?
You’ll almost always get faster bandwidth on cellular, unless you have fiber to your home it’s hard to compete with the available bandwidth on a commercial network, unless you’re in an underserved and over-populated (device-wise) area, your cellular speed should, in most cases, far exceed your available bandwidth at home, but your home WiFi shouldn’t suck. You should get, or at least approach speeds up to 1Gbps (or whatever your internet is capable of) on wifi.
A huge problem with it that I’ve observed is that people treat wifi like a huge truck, they just dump everything on it and that’s it. It’s not a big truck, it’s a series of tubes… Wait, that’s another thing… What I’m trying to say is that wifi is half duplex, like… a walkie talkie. Only one person can talk at a time. With WiFi, each “person” (device) that “talks” (transmits) can do so at incredible speeds, so the channel is free sooner… Unlike with a walkie talkie, when Timmy just won’t let go of the talk button… You can’t hear anyone when you hold that button Timmy. Let it go when you’re done talking.
Anyways, networks have a lot of stray, not useful (in terms of data throughput) traffic on it. Usually broadcasts (stuff sent to everybody) that should be sent to only a few devices. So there’s a kind of static in the background that takes away from your bandwidth. The more devices you have, the more background noise there is on the network.
This is a problem when smart devices are all wifi based. There’s ZigBee and zwave and others, but there’s a large number of “smart home” devices which are WiFi. Imagine installing 20 lightbulbs which are all smart wifi bulbs, onto a network. That’s a lot of static being added; and that static will reduce your wifi speeds.
That’s just one example of many. More devices = slower wifi. Thus my motto with WiFi and devices is: use a wire when you can, use wireless when you have to. A good example of this in practice is… When was the last time you moved your TV? You know, the smart TV with Netflix and everything built in… Exactly. So why is it on the WiFi? It never moves, there’s no need for it to be wireless. That’s an easy example of, why not just run a wire to it once, then never think about it again. Copy and paste to desktop PCs which are on wifi, and set top boxes, etc.
Switching from wifi smart/IoT devices to ZigBee or zwave will also help…
The other point I would make is: throw out your all in one router. Yeah, the WiFi router you bought from Amazon/best buy/radio shack/whatever. Throw it right in the garbage. Buy something that doesn’t suck. An easy option is ubiquiti. Put wireless access points in and use ethernet to connect them to the network. No mesh bs, or anything. You’ll improve your wifi signal and wireless devices will be able to load balance across them. I have a space that’s about 800 (ish) sq ft. I have two access points. One covers the space easily… I still have two. Why? Because load balancing. So when someone is pulling a lot of bandwidth on an access point, the other is right there, in range, ready to take everything on that needs more bandwidth than the small amount left after that one demanding device has taken what it needs. The situation is great, I never have WiFi related slow downs and all of my devices can easily consume all of the available download from my ISP, and my firewall/router/gateway, does the load balancing for the internet connection.
“But it costs so much!”, I hear you say. Well, how much do you spend per month on your internet service? $50? More? And you don’t want to spend even $100 on a router, which will last years when you’re spending $50/month on service? What kind of a fool are you? You’re getting what you pay for. The $65 Netgear wifi router is going to struggle. Especially after a little while. Ubiquiti has put out several, recent, and inexpensive options recently for home use. There’s the UDR, UX and UCG-Ultra for starters, ranging from $150-$200 (ish). You don’t need the $400+ UDM Pro. Add a small switch and a couple access points and you’re up to maybe… $500? That’s the same as 10 months of internet. So for less than one year of what you spend to get access to the internet, you’ll have a system that doesn’t suck and will probably last 5+ years. If you factor that out, it’s less than $10 a month. Cheapskate. You spend more than that on coffee in a week. Shut up.
TL;DR: your shit sucks. Do better.
WiFi and ZigBee can interfere with each other as well since they both run on 2.4GHz and pending on what channel you’re on, will royally screw with the other. Moved (nearly) all my Smart Home devices to Z-Wave and has had better connection to nearly everything.
Yup. I didn’t mention this because it feels a bit too much in the weeds to be helpful.
Bluntly, 2.4 GHz should be abandoned by pretty much all WiFi, only standing for the last remnants of legacy support, and for IoT devices that refuse to use 5Ghz. Everything of substance (phones, laptops, computers… Even TVs and STB’s) should be on 5Ghz+
I’m also a fan of zwave, since it’s usually in the otherwise abandoned (for consumer devices at least) 900mhz range.
I’m very strict about the RF airspace in my home. What operates on which bands and what’s in use for which technology.
There’s a ton more that can be said about it, but I need to get back to what I was doing. Have a great day.
Is there a good video resource for learning about stuff like this? I’m willing to watch several hours of videos if that is what it takes. Any good YouTube channels?
I haven’t found one. Many YouTubers are more interested in specs, reviews, benchmarks for a specific make/model of device, not talking about broad concepts like wireless strategy, placement, roaming, RF characteristics, etc.
I studied many online documents, took several networking courses, referenced physics information about electromagnetic transmission, I even got certified as an amateur radio operator to know all I do. A lot of one-off searches for information. What helped me with that was going through, in detail, just about every configuration option on a Cisco aironet wireless controller. They expose almost every option and wireless specification for the administrator to configure. It’s far more advanced than anything from ubiquiti, or any other vendor. Most of the settings are fairly benign and probably should not be changed, so I get why that stuff isn’t available for most, but some stuff is rather useful to be able to change. I just went through it, option by option, until I understood what every setting, protocol, and option changed and how it affected wireless coverage and performance.
I’ve been working on my knowledge of these systems over the past decade. I have probably forgotten more than I remember at this point.
I can’t vouch for this particular playlist / series since I haven’t watched it, but the channel (Crosstalk Solutions) is great, and so I expect that their home networking 101 is as well.
https://youtube.com/playlist?list=PL1fn6oC5ndU9l3eYa7S_s206JUpbIa-8m
Thanks a lot! This looks like a good resource. I’m looking forward to checking it out.
How can I make my Debian pc always stay connected to the wifi? Even if it disconnects for some reason, it needs to reconnect as soon as it can without throwing any password prompts or requiring any human intervention whatsoever. Having to click a “connect” button first counts as human intervention.
Bering trying to figure this one out for years, don’t expect a working answer but you miss 100% of the shots you don’t take.
My debian laptop always reconnects to my wifi automatically
The only annoying thing is it always asks for a password unless you set it to save the wifi credentials for everyone instead of encrypted.
I cant remember the exact wording of the option, but its in thr security tab of each wifi network
I have all those settings enabled. The solution does not lie in the ui buttons. I’ve beat that horse dead. It always asks for a password and always shows that stupid fucking reconnect window that someone has to click. It’s absolutely maddening. I might have to make a system mouse clicker bot for this because there might really be no other way. I don’t know how to do that but considering how much time I’ve wasted trying to find any solution, it’s just another attempt.
Too bad there’s not a one-time “reconnect now” command that can be attached to a script. And no, disabling the network interface and re enabling it via automated command line scripts doesn’t make it reconnect.
I haven’t personally used Debian with WiFi like this. I’ve used Debian and Debian based distributions on laptops and I’ve used those to connect to WiFi, but I’m not a full time Linux user.
Since I work on the IT/support side, most of my support tools only run correctly on Windows. Sure, there are client/user side tools for Linux/Mac/Windows, but the technician tools are frequently Windows centric; so most of my stuff is installed with some flavour of Windows.
Most of my knowledge is out of date, but I seem to recall that you can save settings in the wpa supplicant for the network, and set the network manager to default to that wifi connection (ESSID/BSS) when it is in range/available. This was all done in config files, but I’m equally aware that a lot of the Linux networking subsystems have been pretty dramatically changed in the past ~5 years, so I doubt the settings I would have used for this, still exist.
I’m sorry I couldn’t be more help here. I just don’t have the long term experience with the issue.
I have an old laptop with Debian installed, and I can fire that up for testing and play with it… What version of Debian are you running? I want to make sure the version I have installed isn’t so out of date that the testing I do won’t help at all.
That system is just sitting on a shelf doing nothing, so it won’t be a problem to pull it out and tinker with it for a while. I use a lot of Debian based stuff for servers, usually I’m using rasbian or Ubuntu, but AFAIK they’re all very similar.
I think that getting over 1Gbps on your phone is pretty uncommon. There is no way you’re gonna max out your wan bandwidth. Maybe if both the device and the AP have 4x4mimo wifi6, but how common is that configuration?
Basically non-existent. All of the flagship phones I’ve seen are 2x2 at most which caps out at ~800? Ish Mbps on wifi 5/6? Something like that? I don’t have the numbers in front of me.
Simply: it’s less important to see 1Gbps+ numbers on your mobile device. Many can’t even process data that quickly, aside from maybe a speed test. So there’s a point of diminishing returns where you’re just eating your battery in order to process data as fast as possible, and it makes no observable difference to your online experience.
The main thing is that since wifi is half duplex, reducing the background noise on the WiFi, you’ll get faster response times, because you’re waiting less time for the wifi channel to clear so you can send/receive data. Lower ping = faster network response, which makes it feel faster. You only need 100-200 Mbps of bandwidth to satisfy most data needs for devices, and the only benefit to more bandwidth is when downloading files/apps/games, when you’re simply waiting for the data to make it from the server to your device, and it’s a large amount of data.
I only have 100mbps of internet bandwidth at home, and anytime I go to another location and use the WiFi, even if it has more bandwidth, it almost always feels more sluggish, because I’ve optimized everything I possibly can, within my network, to reduce response times for requests. This is most obvious with the 13th gen i7 I use for work. It’s an incredibly responsive system, and I regularly need to take that system with me to go to work on a site (I work from home, with occasional on site visits required), and the sites I go to may have fiber which has significantly more bandwidth available, but lacks the optimizations I’ve implemented at home, and it still feels slower. Between the increased latency from a busier wireless network, and the lack of on-site DNS at many of the locations I go to, I notice the difference quite readily.
Keeping devices per ap low, and optimizing common sources of slowdowns like DNS response times, it’s possible to make almost any “broadband” connection feel fast.
So it’s still pretty amazing that he’s getting 1.3gbps on cave WiFi 😜🤣
Hmm I never had an issues with just one NanoHD but you bring a good point with load balancing.
Not only could I get both extreme corners of my house and further lower the tx power, I could also load balance so video didn’t interfere with steam downloads
This is a useful perspective. I think things like sluggish internet can happen gradually and lead many people to become increasingly frustrated with their speeds, but also treating it like it’s normal. But as you say, it need not be this rubbish
Well, there’s also a lot of factors when it comes to things feeling sluggish.
For short periods of time, due to necessity, I’ve run very simple setups of just the service provider modem, and that could get me to around 10-15ms ping on a DSL line. After all my tweaking, I was running a modem line card (hwic) in my Cisco router, with a firewall and premium wifi. Which dropped response times by upwards of 10ms to ~5ms or so. I’ve further increased the responsiveness of my connection running a pair of raspberry pi systems which were set up as DNS caching relays using the bind DNS server.
The bandwidth never changed. But it felt a lot faster.
The next point was the firewall that I had in place was set up with QoS to limit the bandwidth of any one system, and manage the fair distribution of the available bandwidth among the devices on the network. This did less for making it feel fast, and was more for making it feel consistent. No matter what was happening on the network, there was always some bandwidth available for whatever else I wanted to do.
Most all in one wifi routers can’t do a decent job of QoS, so if someone decides to fire up a download at the full internet bandwidth, everything else slows to a crawl.
I’m kind of an odd case though. I’m a professional Network administrator, and my home network is often better run than my client’s networks.
It’s downright unusual if I need to restart any of my network equipment to fix a problem. I get frustrated when I have to call my ISP to fix a problem. Usually by the time I call, I already know what the problem is, where it is, and what needs to be done to fix it. So their usual script of restarting the modem and blah blah blah, does exactly nothing, because I’ve already run through more diagnostics than they even know about. It’s a pretty rare case when I can tell them that I have x problem and need y solution, and they’ll actually listen. When they do, it saves a lot of time for both them and me. When they refuse to listen, I usually just humor them for about 15 minutes, at which point either they’re doing what I want them to, or I’m yelling at them for making my life difficult and asking to speak to a manager. I don’t easily suffer fools that think I don’t know what I’m doing. I always try to keep my cool because they’re just doing their job, and I don’t want to make trouble; by the time I’m yelling, it’s because they’ve made trouble for me, or spoken to be like I’m an idiot who can’t tell the difference between an ethernet cable and a telephone jack.
I’m way off topic at this point. There’s plenty of factors that weigh into whether a connection feels sluggish or not, of which, only one is bandwidth… When you dogpile all your network services into one device, like they do for a wifi router (which is a router, firewall, switch, access point, DHCP server, and frequently DNS relay), it tends to negatively affect its ability to do any of those things well.