Raw Data By P3 Adaptive
Pokémon Go Maps are a Green Technology, w/ Mike EllisListen Now:
Occasionally described as “Addictive, stupidly addictive,” this episode delves into the insanity that is Pokémon Go and is dedicated to the people and the technology behind mapping and catching Pokémon. Shortly after its 2016 release, Pokémon Go became the most successful game in history and, at one point, surpassed both Tinder and Twitter growth with usage time beating other social media apps.
Why does this “Got to Catch Them All!” mentality transcend technology? Is it the nostalgia? The family bonding time? Meeting new people and raiding gyms? Or is it maybe a little bit more? In today’s recording, you get to hear anecdotes on family bonding, date nights, and even meeting complete strangers to talk Pokémon. Most importantly, though, you get to meet the man behind IndyPokemap.com, Mike Ellis, and learn how he turned his Poké-hobby into a greener way to play in a globally supported community!
Don’t worry, this episode is teen friendly, no hacking techniques are discussed, just data personalization with gentile manners. After all, no honest mapper wanted to scan another mapper’s territory. And forget server farms, this episode includes all the details of iPhone farming with a shout-out to the suffrage that occurred during the downtime when mappers were forced to switch from Python to cellphones.
A few of the Interesting inside data facts on Pokémon you will learn today include:
- How many Poké Stops in Indy?
- The logic behind spawn points.
- The how to on submitting poké spots.
And, don’t forget, if you enjoyed this episode, be sure to leave us a review on your favorite podcast platform and share it with a friend. Just like Pokémon Go, Raw Data by P3 Adaptive is better when shared.
Also in this episode:
Rob Collie (00:00:00): Hello friends. I want to start out today by asking you a question and be honest. Do you play Pokémon GO? Well, believe it or not, both your middle-aged host and your middle-aged co-host are currently active Pokémon GO players. Today's guest, Mike Ellis, runs a premium after market Pokémon GO search crawler service out of his house. Now, if you play this game the way that it's imagined, first of all, you're like 10 years old. Secondly, you're walking around your neighborhood. You're walking around parks and stuff, getting exercise, discovering new things, new places, and just catching the Pokémon that are available to you, that you come across in this augmented reality experience. What if you're an adult nerd and you have access to an automobile. After a while you go, "I don't have all day to play Pokémon GO. I just want to go get the good stuff.
Rob Collie (00:00:53): That's where people like Mike, come into the picture. Mike has racks of iPhones, dozens of them in his office that are out scouring the world, like running around virtually via GPS spoofing, finding what's out there and reporting it back to the bank of servers that are also running in his office. This is such an intensive operation that during this podcast recording, the door being closed to his office, resulted in his laptop overheating from the heat generated by those servers in his office. Now at first, that might sound like a bit wasteful, but no. Services like these are saving the world, and of course, we'll explain why in the conversation. Now, if you're not into Pokémon GO, that's totally fine. Just the development of this structure, this system, this application, and keeping it running is very much a data problem, data challenge and the whole thing just leaves my jaw on the floor. I can't believe it. Very, very, very much scratches the nerd itch in general and who doesn't like scratching the nerd itch. Let's get into it.
Announcer (00:01:58): Ladies and gentlemen, may I have your attention please?
Announcer (00:02:02): This is the raw data by P3 Adaptive podcast with your host Rob Collie and your co-host Thomas LaRock. Find out what the experts at P3 Adaptive can do for your business. Just go to p3adaptive.com. Raw Data buy P3 Adaptive is data with the human element.
Rob Collie (00:02:26): Welcome to the show. Mike Ellis. How are you today, sir?
Mike Ellis (00:02:30): I'm doing pretty good. How are you?
Rob Collie (00:02:30): All right. Good. Let's just get right to the reason why you and I have even crossed paths, Pokémon GO. You're talking right now to two middle-aged men, myself and Tom. I hate that we're middle-aged, but we are. That's technically true.
Thomas LaRock (00:02:47): I'm only like a third through my lifetime. I don't know about you Rob.
Rob Collie (00:02:51): Really, we're going to get radical life extension, one of these days.
Thomas LaRock (00:02:53): One of us is.
Rob Collie (00:02:55): I'm actually looking into getting HGH precursor peptides. I'm going to experiment with that.
Thomas LaRock (00:03:00): You let me know how that goes.
Rob Collie (00:03:02): I will. I'll be your guinea pig. I was going to say that Tom and I both still play Pokémon GO to this day.
Thomas LaRock (00:03:08): I do. Rob, are you in my friend list?
Rob Collie (00:03:11): Yeah. You and I exchange gifts all the time, man.
Thomas LaRock (00:03:14): Oh, what's your name?
Rob Collie (00:03:15): I'm not telling, but yeah, I send gifts to you all the time. The gifts that you get in Pokémon GO from Indiana.
Thomas LaRock (00:03:21): That's you?
Rob Collie (00:03:22): I'm the Indiana guy. That's me. That's awesome. I thought the whole time you knew exactly who that was.
Thomas LaRock (00:03:30): I got to look now.
Rob Collie (00:03:31): This is a game that is, at least supposedly for kids, right? Our whole family, me, my wife and our two kids. We all started playing this game at launch. What was it, 2016?
Mike Ellis (00:03:44): 2016, July.
Rob Collie (00:03:45): Yeah, I think we were in there on day two.
Mike Ellis (00:03:48): As well as half the country.
Rob Collie (00:03:51): Yes. We were on vacation in San Francisco in week two after launch or maybe week three and restaurants, we're putting chalkboard signs outside saying, "We are a full-time lured PokeStop. Come in here and eat and drink and play Pokémon GO." Down at the Wharf, it's pretty crazy in hindsight.
Mike Ellis (00:04:14): Then you have golf courses saying, "Get off our property and don't come catch Pokémon on our golf course."
Rob Collie (00:04:22): No, you never know. You can just get hit and you're blindsided somewhat maybe embarrassingly. The kids quit playing. Our kids do not play this game. They have not played-
Mike Ellis (00:04:31): They ran out of Pokeballs.
Rob Collie (00:04:31): That's not what happened.
Mike Ellis (00:04:35): They got tired of catching the same Pidgey over and over again. They wanted the stuff they couldn't find.
Rob Collie (00:04:41): Bigger problem with my kids. That's probably true. It did get a little monotonous, right? I think the reason our kids quit playing is because they entered exactly that age where it's not cool. They were young enough to play it for a while, but then they became teenagers and you can't be playing Pokémon GO as a teenager. You got to wait until you're in your late 40s apparently. My wife and I stuck with it and we kept playing. Then they introduced into the Pokémon game, raids. That wasn't in at the beginning. For the one person listening who's never seen Pokémon GO, let's describe Pokémon GO to the audience. How many times have you been asked to explain this, Mike?
Mike Ellis (00:05:19): I think everybody knows the 2016 version of Pokémon GO, right? Where you walk around aimlessly looking for Pokémon, trying to find a Pikachu or one of those rare Pokémon that are out there in the world. You see it on their map, but bottom of the game you can't find. I think that's ultimately where it created a divide among players. There were the players that wanted to keep finding them and then there were players that gave up. Those dedicated core base of fans, a lot of those people were from their childhood. They grew up watching Pokémon. That's where I find most of the people that I interact with. Yeah, there's some young people there and there's some kids, but they come and go. They'll go through a phase where they won't play it all the time or when they're downtown at a really congested area where there's tons of PokéStops and they can fill up their sacks of balls and whatever else, right?
Rob Collie (00:06:15): That's actually a new musical instrument. The Saxo balls.
Mike Ellis (00:06:19): The Saxo ball.
Rob Collie (00:06:20): You don't want to see what that looks like. That's the most embarrassing instrument to be playing in the band.
Mike Ellis (00:06:30): Yeah. No matter how old or young you were, everybody had to do two things, right? They had to find places where they could go to replenish their inventory of Poké Balls and Great Balls and Ultra Balls. Then they had to go somewhere to find where the rare Pokémon were because out in the neighborhood, there was a Pidgey here and a Rattata here, but nobody wanted those because they were everywhere. They wanted the Pokémon that you got to catch them all, right?
Rob Collie (00:06:57): Yeah.
Mike Ellis (00:06:58): I'm in IT. I grew up loving a lot of data and infrastructure. That's my background, but I also like how all that stuff is put together in the mechanics of the game. What's behind the scenes of Pokémon GO? It started where I was actually in LA doing a big project for a IT. Back then I could go to a populated area and everybody was playing Pokémon GO, like, "Oh, there's a Charmander nest. I'm like, "Oh really, cool." Then one guy showed me a map on his phone, back then at the very start of the game, there was a map that literally scanned all over the world. As soon as you opened it up on your phone, it would find stuff in that area. I thought that was the coolest thing and I played it using that every once in a while.
Mike Ellis (00:07:48): I was out in California and the map got shut down. It got shut down by Niantic. They didn't like them using all their data and mostly it's their copyright images, right? That's why on my map, there's numbers and images, right? It just tells you the name and the number of the Pokémon. That helps people find what they're looking for.
Rob Collie (00:08:10): Let's unpack that a little bit.
Mike Ellis (00:08:12): Yeah.
Rob Collie (00:08:13): You're playing the game. The game only shows you Pokémon that are within 75 feet of view or something on the map. If there's a rare one, if there's something that was really cool that you want to catch and it's even 200 feet away, you're not going to know. Maybe the game's going to give you a hint in its radar, but it oftentimes doesn't tell you which direction. Then along comes this website. Do you remember what this website was called?
Mike Ellis (00:08:39): I think it was Pokefind or-
Rob Collie (00:08:40): Poke Radar.
Mike Ellis (00:08:41): Poke Radar, yeah.
Rob Collie (00:08:43): That was amazing. It showed you the whole world where everything was and then they took it away. There was a cease and desist shutdown or whatever. Then what?
Mike Ellis (00:08:55): This map, I felt a void in my life. I went on Google and I typed in Pokémon GO map and the first link that popped up was this software that you could download and run on your computer which me being in IT, I have computers at my house and servers that I could run for my lab and testing stuff. I downloaded this program that was just a Python script that ran. I fed it one or two accounts and it would basically go in a circle thinking of that like that diameter circle, right? Which now I'm shooting myself in the foot because I can't remember the radius, but the default is like 70 meters or something like that. 10 meters around you and you can see everything that's around you, but then there's a 70 meter circle that tells you all the nearby Pokémon.
Mike Ellis (00:09:45): There's a 500 meter radius that tells you where all the gyms and PokéStops are. Those radiuses, right or what they're used to create essentially a hexagon because overlapping circles will leave no single area unfound. You basically started with a hexagon and this map would take an account and it would log in and tell that account that it's at this GPS location. Then it would go to the next one. It would basically go side to side, down the line all the way down until it got to the bottom and it would jump back to the top. That's with one account and one tiny hexagon.
Rob Collie (00:10:23): This is running on a computer. This was running on a laptop or a server at your house at the
Mike Ellis (00:10:27): Time at the time. Yes. I started that sometime in August of the first year, August or September. Then it got bigger and bigger. I would go downtown to play downtown Indianapolis at the time I lived in Noblesville. I scanned a little bit of Noblesville and I scanned where I dropped my son off at day care and I scanned downtown. Those were the three areas where I started running this map. The mechanics behind the map is it would search all of these areas for Pokémon and it would find the spawn point and one thing that you maybe you've looked into it more, but the spawn points is really how Pokémon generates Pokémon all over the world.
Rob Collie (00:11:10): I'd no idea how it works. Yeah.
Mike Ellis (00:11:12): If you look at my map in particular and look at a specific spawn point, it tells you exactly when a Pokémon will appear and disappear from that spawn point, so from each spawn point every hour for 30 minutes and back then it was 15, 30, 45 and a full hour and now it's just 30 minutes and 60 minutes. If you leave your phone open and look at the Pokémon and measure the time, look at the map, not all the spawn points that I have in my database have a known timer. We know that there's a Pokémon that spawns there, but the timer isn't revealed in the game data until the last two minutes of the time that it despawn. That's why if you like to see it on the radar and you get to it and then it poops and disappears before you get there, it's almost gone. That's a two minute warning basically.
Rob Collie (00:12:04): Okay. See, these are all kinds of things that I didn't understand.
Mike Ellis (00:12:07): Oh, there's so much behind these.
Rob Collie (00:12:09): It tells me that it fled, but then we get there and it's still there.
Mike Ellis (00:12:12): Yeah. You have two minutes from the time it tells you it fled, that or you're driving too fast or whoever's driving.
Rob Collie (00:12:20): Who would drive? Yeah, there's a prompt on there that says, "I'm a passenger." Who would ever press, I'm a passenger, if they weren't a passenger.
Mike Ellis (00:12:33): Well, there's not I'm not a passenger. Yeah, you're right.
Thomas LaRock (00:12:33): You start to acknowledge.
Rob Collie (00:12:35): You want to keep playing, you better press I'm a passenger.
Mike Ellis (00:12:39): For example, maybe you've got the Go-tcha, right? You have your phone, like a proper individual would and it's on a mouse.
Rob Collie (00:12:46): The Go-tcha?
Mike Ellis (00:12:47): Pretend that we're doing this all the way. Right?
Rob Collie (00:12:50): Let's explain to people what a Go-tcha is. I'm not even sure is Tom knows what a... Tom, do you know what a Go-tcha is?
Mike Ellis (00:12:55): There's two different kinds. This is the one that I use. The Go-tcha, the wristband. There's also the one that they give out, which is like the Poké Ball.
Rob Collie (00:13:05): It seems like a Poké Ball. Yeah.
Mike Ellis (00:13:06): Yeah, with a little point like a teardrop.
Rob Collie (00:13:09): I have the one that you just showed, but I don't have this docking station. What the heck is...
Mike Ellis (00:13:14): This is the latest version before they went out of business or whatever it was or Niantic gave them a cease and desist. This one is the wristband thing, built into a little battery pack that you charge, so it lasts forever.
Rob Collie (00:13:28): That is the thing we need. How much of those go for on eBay now?
Mike Ellis (00:13:31): I couldn't tell you because I have two of them.
Thomas LaRock (00:13:32): I don't even understand what is this for?
Rob Collie (00:13:35): This plays the game for you, Tom.
Mike Ellis (00:13:38): The only difference between this and the actual Niantic Go-tcha, is it pushes the button for you? When you're driving or when you're a passenger... This one's dead. It doesn't automatically catch it as soon as it vibrates or as this one, as soon as it detects one, it catches it.
Rob Collie (00:13:57): Yeah. For example, Tom, we don't use any of our normal red Poké Balls in normal play because these devices will only use the red balls. The red balls are actually super valuable because they're the only ones that the auto catcher third-party peripheral will use.
Mike Ellis (00:14:14): Right.
Rob Collie (00:14:16): I'm carrying around 700 red Poké Balls right now on my character.
Mike Ellis (00:14:22): Yeah. I have 400.
Rob Collie (00:14:23): The next time we have a community day, I charge up this bracelet thing and out we go.
Thomas LaRock (00:14:30): This is what I need because now that I've hit level 40, to go up to 41, I have to catch 200 Pokémon in a day. That's one of my task.
Rob Collie (00:14:40): In a single day? Yeah, that's what I have.
Thomas LaRock (00:14:42): In a single day and I'm like, "Who has time for this?"
Mike Ellis (00:14:44): I could do that in an hour.
Thomas LaRock (00:14:47): This device will let me, by the way, this is all super illegal. If Niantic hears this, they're going to suspend our accounts.
Rob Collie (00:14:54): No. Okay, that's actually one of the questions I have for Mike. We haven't even gotten to the modern version of your solution. You've got quite a setup, but are you worried about a cease and desist from Niantic?
Mike Ellis (00:15:06): I don't know that John Hanke would necessarily shake my hand, but actually I have a picture of him shaking my hand. He was in Indianapolis for the launch of Harry Potter and the Wizards Unite fan festival, which I went to obviously because it's along the same genre as everything else. There's a lot of cross pollination with players. I just wanted to go there and get my name out again and that kind of thing, because I was carrying around my camera and blogger kit and I knew all of the YouTubers for Wizard Unite through Pokémon. I hung out with them and got shake to his hand at a press conference. I got a picture of that.
Thomas LaRock (00:15:49): I had no idea.
Mike Ellis (00:15:49): He had no idea he was shaking the hand of a mapper.
Rob Collie (00:15:52): A mapper. Is that the phrase?
Mike Ellis (00:15:54): That's what we tend to call ourselves and I'm not the only one.
Rob Collie (00:15:57): I was going to ask you about that. You run... What's the URL again?
Mike Ellis (00:16:00): indypokemap.com.
Rob Collie (00:16:01): You're scanning the Indianapolis area?
Mike Ellis (00:16:04): I'm scanning the Indiana area. Pretty much every major city and even small put town in Indiana is covered in that map.
Rob Collie (00:16:13): Really. We have no idea.
Mike Ellis (00:16:14): From East Chicago and all the way up there down to Evansville and all the way over to... Everywhere. Now, rewind back to when I first started playing. I scanned Noblesville and I scanned downtown and I scanned a little area in Fishers. Those were the three areas I started with this. From there it grew all the way to larger hexagons in larger areas. Than this one day in December, I'm like, "You know what? I can't just keep this to myself. I have to share it." I was in a bunch of Facebook Pokémon groups. I shared a link to the first version of my website, which was totally free. There's always been a free version of it. I shared that link with the Indianapolis Pokémon GO Facebook group and they went nuts. They're like, "Oh, can you scan Greenwood? Can you scan Irvington and Carmel and Brownsburg?"
Mike Ellis (00:17:12): All over the greater Indianapolis area. I started there. For me, it was just at the time more accounts and these things were throw away accounts in a lot of ways, right. After a period of time, Niantic would see that you haven't even caught a Pokémon on this account, so they just marked it, flagged or deleted. I'm not playing these accounts, so technically I'm not violating the terms of service. One of those where it's a gray area I see. It's no different than somebody walking around Greenwood and saying, "Hey guys, look, there's a Pokémon here." I'm just doing it more efficiently and I'm saving people gas because we're not trying to put money in the oil industry. Right?
Rob Collie (00:17:56): That's right. This is a green...
Mike Ellis (00:17:57): Exactly. I'm actually saving the Earth with my map.
Rob Collie (00:18:03): We need a green eco conscious version of the Poké Balls symbol, right? You need the green arrows going around like the recycling shape.
Mike Ellis (00:18:12): Well, instead of a black circle in the middle, just put a green leaf, like the use for everything. I might do that.
Rob Collie (00:18:18): Yeah. I totally agree. You're saving the world one state at a time.
Mike Ellis (00:18:22): One city at a time. There are people in each city. There are designated people where I don't map. There are people that go around every morning and they find all the rare PokéStops with the rare quest. They do what my servers and phones do overnight. They do that every morning. Look for the Spinda quest or look for the unknown quest, the send five gifts, whatever. Whatever rare Pokémon they're looking for at the time, my map finds it and it's something that they're driving around doing. I'm just saving them time and gas making the Earth a greener place.
Rob Collie (00:18:59): Totally. At what point did you have to switch from running these Python scripts on servers to getting the gigantic bank of phones that I've seen in your photos and what you showed us on a different camera?
Mike Ellis (00:19:17): Well, that's a great question actually. Back when I was using a script, it was just using an account and not a phone. We were able to decrypt the data that Niantic was sending us through an API. That API allowed me to use an account and log in and send the protocol and just tell the API where I was and it would return and send us back all the data. That being send, I would get the data back and it was unencrypted. Then I would just put it on the map and the database. Then that was shut down and it was shut down when they switched from... They basically locked out 32 bit Apple iPhones. That's where it was decoded from. They were able to break the hash on 32-bit phones. Ultimately they forced the API down to only phones with 64-bit encryption could run the game.
Mike Ellis (00:20:10): When they did that, it locked out everybody using an API. That was about eight months to a year long of no Pokémon map. I had people begging me like, "When is it going to come back? What's it going to take? What are they doing to work on in the meantime?" I'm not shitting you, there were probably, I wouldn't be surprised if at least 30% of the hardcore fans stopped playing as much because it was right before they came out with Quest. Then they came out with Quest and there's people driving around to all these PokéStop to find them and spin them and everything else, right? Back then it was Pokémon and Raids. That was it. The IV portion, which is the Pokémon stats, which we can talk about in a little bit. That's what was found in the game. Now, we're able to crack the Apple and inject code that allowed you to intercept the data from the phone.
Mike Ellis (00:21:06): We couldn't intercept it by faking to be a phone. We had to actually be a phone and pull out the data from the app. That's what we're doing now, taking the phones and running a custom version of the app that allows us to extract the data as if you were there. Again, no different than whoever's phone this is that they mailed to me running around some part of Indiana. There's no different than that person running around Indiana themselves, except we're just saving gas. We're just burning it in electricity and it's creating heat in my office. We have my stack of servers that run the website, the database, the alerting, the websites and whatever else, utilities and programs I've got in my lab, I use for my real job and everything else and testing things.
Mike Ellis (00:21:52): Then I have all of them connected to virtual machines that are running Macintosh in Xcode and running this app in the background, so I can push to 100 phones in this app five at a time, five different servers with 20 phones on each of them, that app now just intercepts the data and just like it did before the database told it where to go next and what to do next based on the time of day and whatever else. I don't write any code. I don't hack the app or anything. Somebody else does. I just configure it for the people of Indiana.
Rob Collie (00:22:25): I like the word, just.
Mike Ellis (00:22:28): That's all I do.
Rob Collie (00:22:28): All you do is run a server farm of five servers and a rack of 100 actual phones. The word just doesn't quite fit there, but it is an interesting distinction that there is someone somewhere. There's some sort of central, maybe even shadowy group that is producing the modified versions of the Pokémon GO app. Is that correct?
Mike Ellis (00:22:52): Oh yeah. There's definitely somebody out there, right? I don't even know who he is. I know...
Rob Collie (00:22:57): Exactly. That's how they want it. Probably also invented Bitcoin.
Mike Ellis (00:23:00): No, he didn't invent bitcoin.
Rob Collie (00:23:03): You know how the inventor of Bitcoin-
Mike Ellis (00:23:05): Bitcoin's not private.
Rob Collie (00:23:06): Yeah. Well, the inventor of Bitcoin is a totally fictitious person, potentially.
Mike Ellis (00:23:10): You'll have to invite me back to talk about crypto because that's another passion of mine, actually.
Rob Collie (00:23:14): Is it?
Mike Ellis (00:23:15): I actually run some Ethereum mining servers and stuff as well.
Rob Collie (00:23:18): Is that why your office is hot?
Mike Ellis (00:23:21): No, those aren't running in my office. Since the move, I haven't even turned those on.
Rob Collie (00:23:26): Oh, really? Let's go back to the moment when the API was no longer available unencrypted. Let's say that in the 1% case that I had discovered the script and decided to start running it myself, we're really stretching the truth here. I probably would've never done that, but maybe, maybe I would've started doing something like that. As soon as they lock out with encryption, I'm done. That's going to be the end of it for me.
Mike Ellis (00:23:53): A lot of people did stop mapping back then. In the discord where they released all that info, the API, there were thousands of maps. We're talking about all over the world. I was in a discord that I started with a bunch of other large mappers that covered all over the world. We had a gentleman's agreement not to map over each other.
Rob Collie (00:24:15): Wow. It's like the mafia. This is our territory.
Thomas LaRock (00:24:20): Yeah, no shit.
Mike Ellis (00:24:21): Right. There's PoGO Alerts Network which is run by [inaudible 00:24:26] who I actually met in person one time. Great guy. There's Toledo, Ohio map run by [inaudible 00:24:33] who is another friend of mine that scans all of Ohio. Then there's Pogo alerts [inaudible 00:24:39] that covers Georgia. There are mappers all over that I've met. There's the Bay Area. Now, the Bay Area for some reason, the lakes of Canada up by Montreal in that area, they were really competitive over each other there. They ultimately divided it up and then the Bay Area was just a mess. Everybody scanned the Bay Area.
Rob Collie (00:25:00): Those were the dark times back in the era of enter mapping more of 2017. A lot of people got hurt.
Mike Ellis (00:25:09): It was really hard because Chicago was so close to Indiana. I didn't want to scan past the Indiana border because I had a buddy that scanned Chicago already and he lay claimed to that area. It was one of those where we didn't try to scan over each other. If somebody else requested that area, they scanned it or I scanned.
Rob Collie (00:25:33): All right. Then it reaches the point where you absolutely need to use phones. You can't just run scripts on servers anymore and didn't sound like you were particularly expecting to get into the running a rack of phones business, but popular demand forced your hand?
Mike Ellis (00:25:48): All the other mappers started getting phones and people would just mail them. I didn't want somebody to mail me phones, and then me not be able to do it. My first job was to buy my first iPhone at the time. I have an Android guy.
Rob Collie (00:26:04): Why would you buy iPhone?
Mike Ellis (00:26:06): Because that's where the original app was written and it was a lot easier for whoever wrote it.
Rob Collie (00:26:11): Whoever developed that first modified version, developed it for iOS and not for Android. Okay. Interesting. I expected before I saw what you were doing. I expected that if you were running phones, you were running Android because it's more open, easier to modify all that kind of stuff.
Mike Ellis (00:26:29): There's just more iPhones and more iPhone developers and that's what they were using originally for the data.
Rob Collie (00:26:35): That solves a mystery for me. I was like, "Whoa." All right. You bought your first iPhone to see if you could make it work?
Mike Ellis (00:26:41): Right.
Rob Collie (00:26:42): What year are we talking? I forget-
Mike Ellis (00:26:43): This was 2018.
Rob Collie (00:26:46): You get your first iPhone to install the modified version of the app. Do you need to be in some sort of developer mode on the phone? It's not going to be in the App Store, right?
Mike Ellis (00:26:54): No, it's not in the App Store. It's connected to a Mac. All I do is I manage the device, right. I take ownership of it. I connect it to my Apple developer account, which allows me to run my local certificates on it, right. If you're familiar with certificates and certificate handling. All the phones run my apps only, and nobody else can run my apps without having my certificate, because all the apps are signed by my developer certificate versus the global Apple developer certificate. If I were to publish my apps, then you would [inaudible 00:27:32]
Rob Collie (00:27:31): They have to sign it.
Mike Ellis (00:27:32): Right, but it would be [inaudible 00:27:34]
Rob Collie (00:27:33): They're not going to sign that.
Mike Ellis (00:27:36): No. Well, it wouldn't do anybody else any good either because it's just going to report to a local IP address inside of my network.
Rob Collie (00:27:44): All right. That's not going to help anybody. All right. You installed this modified app on the first iPhone, connected to a Mac...
Mike Ellis (00:27:50): I looked up my first one when I started tracking these and we're looking at December 20th, 2018. That's when I first started running these.
Rob Collie (00:28:00): With the phone?
Mike Ellis (00:28:01): Yep. I had it up and running. I put it out there. I was like, "Okay." I've started scanning and I was like, "If you send me a phone, it's got to be this qualification. I will configure it to run the existing area and scan PokéStops at night and look for Pokémon during the day." Following spawn points and spawn point density. We talked about spawn points and how there's Pokémon there for 30 minutes and an hour. The map knows in Greenwood area, for example, it goes by each 500 meter circle, which each 500 meter circle will cover every gym and PokéStops to look for encounters and raids, and it finds the most dense spawn points it hasn't visited lately inside of that circle to look for data. It just cycles through each of those. That's not how it started. It started with, I had to pick all of them and just figure out what was most dense and move circles around on a map, and I had a tool that did it [inaudible 00:29:01]
Rob Collie (00:29:02): Your code also needs to tell the app that it's moving?
Mike Ellis (00:29:05): Right.
Rob Collie (00:29:05): It's updating its GPS coordinates. How do you set the path? It's like a traveling salesperson problem from computer science or something.
Mike Ellis (00:29:14): Actually, the coordinate generating program that we use is based off of traveling salesmen actually. You have five points in there and it tries to find the best route and the shortest route to all of them. Also, while visiting every gym and PokéStop, at least in a 500 meter circle from the center point so that it could pick up a raid simultaneously. That's why you see it's trying to keep updated all of the gyms and raids inside of that meter distance. That's where the data gets really cool and really fun. To understand the backend of how the game functions, you have an hour before the egg hatches and you have 45 minutes for a raid boss. We know that we want to try and visit every 500 meter circle where it's visible from the game, we want to visit that every 5 to 15 minutes, right. The goal is 15 minutes.
Rob Collie (00:30:15): If the phone was actually moving, how fast did these phones actually move? In terms of their GPS coordinates updating. Are you bouncing around or are you teleporting from place to place?
Mike Ellis (00:30:26): It ultimately... Like teleports, right? It's the same as if you had the app open on your phone, then you turn your phone off, turn the screen off and then you drove to a new area and turn it back on. That's what the app is telling the server. The difference is that if you ever do that with a phone, you'll know that if you are stationary and you pop it in one spot, you can actually blame mappers for this. The reason why it takes 10 seconds to load Pokémon if you're moving in a small circle, when you first turn your phone on, that's why it's 10 seconds, right? If it's 20 seconds, it's because you're just sitting there stationary. They're trying to slow down the scanning by doing that. Mappers, obviously, telephone to walk in a tiny little circle so that it looks like you're moving where you are and it pops up in 10 seconds.
Mike Ellis (00:31:20): Each spot on a map, the phone will travel there, sit there for 10 seconds, walk in a tiny little circle and then it spawns Pokémon and then it jumps to the next place. Then it does that again. Every 10 seconds, it's able to find one phone, 10 seconds. In one minute you have six different locations if you're good at math and if Niantic servers are responding fast enough, you'll get six different locations from a phone every minute. [inaudible 00:31:47]
Rob Collie (00:31:46): You can cover a lot of ground with one phone.
Mike Ellis (00:31:50): Oh, yeah. Well, think about this. When I'm doing the midnight to 6:00 or 7:00 AM Quest scanning... The quest scanning is all done by the phones, walking around faster than anybody can click on each PokéStop, right? It just sends the call to the phone without actually interacting with it. It sends the data that it's interacting with it, but it doesn't display it on the UI. It looks like you just spun three PokéStops all at once, right? Then it gets that and then it dumps them all. It's a lot faster and more efficient than somebody driving around in a car, trying to find what the quests are. It's a lot faster logging them and taking pictures and posting to Discord because it just does it right away. It's on the map. A lot more efficient, a lot more green.
Rob Collie (00:32:38): A lot more green. A lot more green. That's what it's all about.
Mike Ellis (00:32:42): I'm just trying to save Pokémon GO players money and gas money.
Rob Collie (00:32:46): Well, and the planet. We've already established it. People have mailed you 100 iPhones?
Mike Ellis (00:32:55): I've bought probably 60 iPhones. I have people that have mailed me 100. Looking at my list right now. I have received 185 phones.
Rob Collie (00:33:11): Wow.
Mike Ellis (00:33:12): 185. Right now, half of those are running.
Rob Collie (00:33:16): Are you looking at a spreadsheet? What are you looking at?
Mike Ellis (00:33:19): I'm looking at an Excel. I have a pivot table, right.
Rob Collie (00:33:21): Of course, you do.
Mike Ellis (00:33:21): That's how we do it.
Rob Collie (00:33:22): Of course, you do. That's right. Pivot tables. Do you have an opinion on pivot table layout? Do you utilize what we call the compact access?
Mike Ellis (00:33:33): Oh, God. Not this again.
Rob Collie (00:33:34): On rows or how do you... Do you know what I'm talking about?
Mike Ellis (00:33:37): I don't like the plus button next to things. That drives me nuts.
Rob Collie (00:33:40): Okay.
Mike Ellis (00:33:41): I like to be able to copy and paste it into my own spreadsheet and manipulate. I don't like how I can't filter and sort on a pivot table. Why can't I do that?
Rob Collie (00:33:50): You kind of can. Here's something you don't know about me.
Mike Ellis (00:33:54): You're an Excel expert. You invented Excel.
Rob Collie (00:33:57): No.
Mike Ellis (00:33:58): Close.
Rob Collie (00:33:59): In the early 2000s, I worked on Excel at Microsoft and I was in charge of pivot tables. A lot of people think of me as a villain because in reality, I had a direct report who did most of this. This happened on my watch. I get to share the blame, but less of the credit, it's perfect. When compact Access was introduced with the little pluses and everything just neatly, tightly nested underneath each other on the row area. That was my team. We did that. You're right, you can only sort by one thing at a time.
Mike Ellis (00:34:36): You can only sort by one thing at a time, and you can only filter by one thing.
Rob Collie (00:34:40): You can filter by more than one thing at a time and you might even be able to sort by more than one, but you got to know what you're doing.
Mike Ellis (00:34:46): Then you can't count one thing at a time or cell. That's where it gets complicated.
Rob Collie (00:34:51): This is why you are going to find your way into Power Pivot.
Mike Ellis (00:34:54): Power BI and all that?
Rob Collie (00:34:56): And Power BI. Exactly. You don't have to go into power BI. You can stay in Excel with Excel pivot tables and use the power pivot engine. You will have pivot tables on steroids. You won't believe how capable it is.
Mike Ellis (00:35:07): Less for the Pokémon data and more for other data that I use in my full-time job as well. I'm always in Excel, dealing with inventory of servers and virtual machines and everything else. I love to pull that data together. What I'm looking at in the Pokémon spaces, how many iPhone 5s's I have, which are no longer supported. I have 14 of them. Of that 185, I had, those are no longer running. The 11 iPhone 6's can't run.
Rob Collie (00:35:36): Offline backstage, if you're comfortable with this, you can send me a spreadsheet. It's got pivot tables in it. It's got source data in it. Tell me something that you would like to do with the pivot table that you can't do. Chances are good, I can do it and show you how to do it and then you'll be off and running.
Mike Ellis (00:35:52): There was one I was looking for. Sometimes I want to sort by two rows. Really, just to find maybe a naming convention based off that.
Rob Collie (00:36:00): Let's make that a promise. As long as this data isn't sensitive-
Mike Ellis (00:36:04): Which it probably is.
Rob Collie (00:36:06): Yeah. Well, so you can take some columns out, right? Or even just manufacture me like a fake version of it. Right. You don't need a 10,000 row data set, just like 20 rows to illustrate the problem to me. I want to repay you for saving the world and give you better pivot tables. It's just good for humanity.
Mike Ellis (00:36:23): Right.
Rob Collie (00:36:24): You've personally purchased 60 iPhones?
Mike Ellis (00:36:28): I have personally purchased 71.
Rob Collie (00:36:31): 71 iPhones. Now iPhones are really cheap, what like 50, 60 bucks each?
Thomas LaRock (00:36:36): You get them in the box of cereal.
Rob Collie (00:36:38): It's true. Yeah, like the lucky charms. Yeah.
Mike Ellis (00:36:41): I bought used from GameStop, 40 of them. Now you would think, "Oh, well he got a good deal on him." No. Talking about five grand for 40 phones.
Thomas LaRock (00:36:52): As opposed to five grand for the iPhone 14. Yeah.
Rob Collie (00:36:55): You get one phone for five grand. Yeah.
Mike Ellis (00:37:00): An old outdated phone in whatever condition it turns on, it's in a known condition of used, but no crack screen. I get these phones and it's not locked. I bought several of them that way. Then other ones I would buy when Walmart had refurbished phones show up on their website and they limit you to two at a time. I would have people buy them. Either they would buy them and send them to me because it's a limited two per person. I'd be like, "Hey, if you're going to buy one, buy two of them and I'll buy one of them from you." Then the other one, you can use as a free membership [inaudible 00:37:37]
Rob Collie (00:37:37): What an amazing project. It's essentially community supported, right? There's a free version and then there's some upgrades. I am not currently a paid subscriber. I am not supporting your efforts. I know. I Know. Our primary use for it was when we would go raid hunting.
Mike Ellis (00:37:54): Right.
Rob Collie (00:37:55): Not really doing quite so much of that anymore. We're still playing all the time. Let's talk about this device, this peripheral.
Thomas LaRock (00:38:02): Yeah. What is this thing? How do I buy one?
Rob Collie (00:38:04): The thing that Mike was showing us is the one that me and Jocelyn have. It's called the Go-tcha. Apparently they've gone out of business. It's a Bluetooth peripheral. Tom is really curious about these Bluetooth peripherals. We've really got his attention now. By the way, doesn't this harken back, Tom, to the conversation we have with Connor about Asheron's Call. Asheron's Call wasn't humanely playable if he just had to sit there and play it. There were socket.dll's produced so that people could script it and send commands to their machines at home, through Window's Messenger.
Rob Collie (00:38:42): My friends were... Every time I saw them online in Windows Messenger, I would start talking to them and they would never answer because it wasn't actually them. It was their bot playing Asheron's Call for them. This is a time honor tradition. It's been going on forever. In addition to racks of phones and servers that scour the entire state of Indiana for you to find the rare stuff, basically in real time. You can also purchase peripherals for Pokémon GO. That will catch things for you. Also, spin PokéStops for you, by the way. I got these for my wife and I, because we were taking a family vacation to Iceland and I knew we were going to be driving and I was going to be driving. I couldn't be distracted while driving in Iceland turns out that it was very effective in Iceland.
Rob Collie (00:39:32): It works just as well when we came home. When a community day comes around or whatever, these bracelets will catch 100 plus Pokémon for us if we're in the right place. We have to keep moving in real world because we don't have the spoofed GPS location. If you find yourself in a dense urban area, it's really awesome, you just lure all the stops. You turn on some incense. Yeah, you'll just start hoovering, but you'll run out of Poké storage pretty quickly and red balls.
Mike Ellis (00:40:01): That's my problem.
Thomas LaRock (00:40:03): Right now, if you were going to tell me to make a purchase.
Rob Collie (00:40:07): Yeah.
Thomas LaRock (00:40:08): What would I be purchasing right now?
Rob Collie (00:40:10): Mike, did you say they've gone out of business? Go-tcha is no longer a thing. eBay will have them, right?
Thomas LaRock (00:40:15): Right.
Rob Collie (00:40:16): Pokémon Go-tcha on eBay?
Mike Ellis (00:40:18): I don't know that I've seen it.
Rob Collie (00:40:21): It says GameStop has one? It says Go-tcha Evolve watch.
Mike Ellis (00:40:24): I see that one for 50 bucks. Then there's also the Datel Go-Tcha Classic LED. That's the one.
Rob Collie (00:40:31): This docking station that you have the external battery?
Mike Ellis (00:40:35): Oh, here. I see it. Actually. I see it on Walmart's list.
Rob Collie (00:40:38): Go-tcha.
Mike Ellis (00:40:39): It's called the Go-tcha Ranger.
Rob Collie (00:40:40): We are going to be buying, oh my goodness. 80.
Thomas LaRock (00:40:43): This is the one I want the Datel Go-Tcha.
Rob Collie (00:40:47): I think you want the ranger. It's worth it.
Thomas LaRock (00:40:49): The Ranger.
Mike Ellis (00:40:51): That's the one with the battery pack.
Rob Collie (00:40:52): The little capsule itself that goes in the bracelet. It's battery does degrade aggressively over time. Are you buying one, Tom?
Thomas LaRock (00:41:01): I was looking for the Ranger on Amazon. I don't see it.
Rob Collie (00:41:05): I did. I found it.
Thomas LaRock (00:41:05): Oh yeah. Ranger LED Touch Screen.
Rob Collie (00:41:07): Yeah.
Thomas LaRock (00:41:08): It comes with the wristband?
Rob Collie (00:41:11): I don't know. I've never gotten the Ranger, but I'm seriously debating it might be time.
Thomas LaRock (00:41:16): Yeah. I'm trying to figure out which one I should buy here and if it's worth it.
Rob Collie (00:41:20): I love that. We're having technical difficulties because of the Poké servers are melting his laptop. Can't make that up.
Mike Ellis (00:41:31): The temperature has gone down 10 degrees ever since I opened the door.
Rob Collie (00:41:34): Okay. That's what we want to hear.
Mike Ellis (00:41:35): Yeah.
Rob Collie (00:41:37): Tom is... This is a big step for him purchasing this peripheral. He's wondering if this is going to get him in trouble. Maybe a ban or a suspension. No. Is the answer. My son, his account got a lengthy suspension for GPS spoofing.
Mike Ellis (00:41:56): Your son was GPS spoofing?
Rob Collie (00:41:57): Yes. He was GPS spoofing. That's exactly right.
Mike Ellis (00:42:00): That's how you get suspended.
Rob Collie (00:42:02): That's how he gets suspended. I don't even know how he was doing it. He was 13 or 14 at the time. I don't even know what he did. I was always joking with him that now his phone was running a bot net for the Russians, because he'd unlocked something. Again, like a technophobe, but I don't want to know how the hell they do that. He was catching shit in Tokyo.
Mike Ellis (00:42:24): That's the place to be.
Rob Collie (00:42:25): That's ground zero, right?
Mike Ellis (00:42:27): Technically, ground zero is where Niantic started the game Ingress. Now, are you familiar with Ingres the game?
Rob Collie (00:42:34): Yes.
Thomas LaRock (00:42:34): I am not.
Rob Collie (00:42:35): I am, because that was a map I had been using... I came across this years ago where I wanted to know stops and spawn points and all that and somebody pointed me to Ingress because there was a lot of overlap between the spawn points between the two games.
Mike Ellis (00:42:51): Or just used the free version of my website, which shows you where all the PokéStop are.
Rob Collie (00:42:55): In Indiana?
Mike Ellis (00:42:56): In Indiana.
Rob Collie (00:42:57): See Tom, lives like... He claims Boston, but really he's a long way. He means Massachusetts.
Thomas LaRock (00:43:04): Springfield, Mass, Hartford, Connecticut. No, Springfield, Mass really? I don't go to Connecticut. I don't slum it that often down there.
Rob Collie (00:43:12): Yeah. He stays in Longmeadow.
Thomas LaRock (00:43:14): Oh, but [inaudible 00:43:16] because I'll be at the beach next week. By the way, Rob, I'm not going to be on the podcast next week because I will be at the beach.
Rob Collie (00:43:21): All right. Well, no dedication.
Thomas LaRock (00:43:24): Yeah. You're telling me. I'm pretty sure that's on my performance review every year from you.
Rob Collie (00:43:30): Yep. That's right. We need you to be just you. That's right. Just be you.
Thomas LaRock (00:43:36): And part of being me means no dedication.
Rob Collie (00:43:39): That's right. That's right. You like to knuckle down and give it the full 60%.
Thomas LaRock (00:43:44): But only 30% of the time.
Rob Collie (00:43:47): This is a very complicated relationship between game publishers and the community. For example, I'm still playing World of Warcraft, sort of. It's just not really feasible to have a job and a family and play this game and make it all work. What do I do? I haven't done this in a while, but when I get back to playing more regularly, I'm going to be buying gold in game currency for real world money on the black market. There's all kinds of farmers in the game who are not really playing, right? It's the equivalent of the mappers. A lot of them were botting and some of them aren't. Anyway, all they're doing is generating in-game currency to then turn around and sell to me, not to me, but to everybody. Tom, sometimes in these games, there'll be raids that form of like 25 people, it's 100% going to be an auction for the gear that gets retrieved during their mission.
Rob Collie (00:44:47): The good stuff that drops from the big boss monsters, it goes up for auction within the 25 person group. The really good items routinely sell, routinely sell for hundreds of dollars of equivalent of gold, an amount of gold you could not amass in two months playing the game and because it's all being subsidized and purchased, this is incredibly inflationary. Blizzard has to understand and they do that if they were actually cracking down 100% on this practice, they'd lose a lot of players. They can't be too draconian in shutting this down or they'll lose a lot of their player base. There's a little bit of a cat and mouse like every now and then, by the way, over time, I've identified some of the farming accounts that are playing the game and they are always on, always and always in the same places.
Mike Ellis (00:45:40): That's how you have to do it.
Rob Collie (00:45:41): Right. Then they disappear for a while because they caught a ban, but then they're back. It's like blizzard needs to maintain some semblance of a policy, but they're not terribly aggressive about it. I've caught a one week ban for buying gold. Now we just launder all of our gold. We buy it on other accounts and we launder it through the auction house to each other, right? That means we're paying a percentage.
Mike Ellis (00:46:13): A fee.
Rob Collie (00:46:14): We're losing a percentage of the money because the auction house takes a cut. We have a Guild that's called the golden laundry. That's all it's for. Don't worry, you're way, way down the food chain from that buying one of these third-party peripherals. What level does your main in Pokémon GO, Mike?
Mike Ellis (00:46:34): I don't call it a main in a secondary account. I call it my account and I call it my son's account. I can't tell you the exact number of minutes that my son has played it versus me playing it for him, but that's what I play for him. My account's 47, I think.
Rob Collie (00:46:52): 47. Given the exponential XP requirements per level. It'll take me 10 years to get to 47. I think I'm 41 or 42 right now.
Mike Ellis (00:47:02): I was level 40 times three when they increased the levels. I think I had 55 million XP when they changed it, because the total XP for level 40 is 20 million. Once you get to 20 million, that's your XP for 40. Once you get to 40 million, your level 40X2, right?
Rob Collie (00:47:23): Yeah.
Mike Ellis (00:47:24): Then they added 10 more levels. Now I'm trying to climb again to the top.
Rob Collie (00:47:28): Yeah. It's just numbers that you may go up. Hey, what are they up to with all of these scanning quests where you're supposed to scan this place? Are they trying to build some sort of augmented reality, new version of the game?
Mike Ellis (00:47:42): Me and John Hanke, we talk all the time, right. All the time and they tell me exactly what they're doing. When they're going to force updates, right?
Rob Collie (00:47:49): Yeah. Oh no, they don't do that. Do they?
Mike Ellis (00:47:51): No, they don't. They don't tell me at all. We only assume that they're going to force them Thursday afternoons. You look at data, when development life cycles push, they're on a schedule, but then they five o'clock on a Friday decide to push the next app update force. Of course, just before Community Day, weekend or some other big event. They're always throwing some last minute wrench in there.
Rob Collie (00:48:14): Yeah. They're like FU mappers. Right?
Mike Ellis (00:48:17): Right. I think it's just them not knowing their own software.
Rob Collie (00:48:21): Yeah. It's probably...
Mike Ellis (00:48:22): Bug fixers.
Rob Collie (00:48:23): Every software conspiracy 9 out of 10 of them know it's just something mundane. When they push an update to the official app, that means that the modified version of the app needs to be a new version of that.
Mike Ellis (00:48:33): Decoded.
Rob Collie (00:48:34): How long does that take?
Mike Ellis (00:48:36): It depends on what's changed in the game. The last update that they pushed, they moved the folder where we saved all of our info in our XML document, whatever Xcode stuff. Since they moved that folder, our developer had to spend an extra day rewriting all of his code to point to his new folder because we use the existing folder structure of the app.
Rob Collie (00:49:00): Okay.
Mike Ellis (00:49:00): It would be weird if there was an extra folder in there that said, "For mappers only." Right? They might check for something like that. If they're checking for folders where they exist, it's like if you kept something in a folder and then somebody else deletes that folder, then that folder's gone. Right? Anybody else who would save data in that folder, all their stuff is gone. They just had to move the folder and rewrite some code. It took a little bit longer. Usually we get the app within a day of the app being released for iPhone or Android or whatever.
Rob Collie (00:49:35): Then you have a lag to roll it all out to all of your phones and all of that.
Mike Ellis (00:49:40): Right. I have a script that runs most of it, but I still have to do a lot of it myself. I still have to edit this file and put in my key for the app because I pay somebody in cryptocurrency whether or not, right? $1 and 50 cents per phone per month. Right now I think I have 94 running phones or at least I should have them. Each of those phones requires a license for me to pay for.
Rob Collie (00:50:09): Okay. Can we talk about the back end a little bit? These phones-
Mike Ellis (00:50:12): The database?
Rob Collie (00:50:13): Yeah. These phones are collecting all this information. Where is all that data being stored to power your website?
Mike Ellis (00:50:18): In a pivot table.
Rob Collie (00:50:19): No. Yeah.
Mike Ellis (00:50:23): No. It's where everybody keeps data. It's in a transactional database.
Thomas LaRock (00:50:28): Access?
Mike Ellis (00:50:28): Yeah, of Access. Right. Microsoft Access. It's saved in a MySQL database.
Thomas LaRock (00:50:36): Okay.
Mike Ellis (00:50:36): Specifically MariaDB. It just runs that and I have a couple scripts that I run against it so I can pull data out of it and update things. It's run off of a very large schema of databases and tables and all relative to each other, right? For each Pokémon, there's all kinds of fields that we keep. Here's some interesting facts. I'll pull some of these up. You might actually like some of the data out of here.
Rob Collie (00:51:02): Oh, yes I do.
Mike Ellis (00:51:05): Data? Did you say data? Data is an ASMR? I like big data. I cannot lie. I have a shirt that says I like big data and I cannot lie.
Rob Collie (00:51:19): Do you?
Mike Ellis (00:51:20): I do. Yeah, because we're in IT as well. I go to tech conferences. I'm going to VMware Explore at the end of this month.
Rob Collie (00:51:28): You're going to cross paths with Tom. Tom, are you going to VMware Explorer?
Thomas LaRock (00:51:31): Are you working the booth?
Mike Ellis (00:51:32): I'll stop by the SolarWinds booth and say hi.
Thomas LaRock (00:51:34): I don't know that we have a booth.
Mike Ellis (00:51:36): I'm sure you do.
Rob Collie (00:51:37): He doesn't know that he doesn't.
Mike Ellis (00:51:40): In the state of Indiana, in my database, right now, there are over one million known spawn points with spawn point timers. We know that there are one million points around Indiana. If there's a Pokémon there, we know when it will disappear.
Rob Collie (00:52:01): Wow.
Mike Ellis (00:52:01): Right. Now again, most of them are 30 minutes. There are maybe less than 5% that are 60 minutes long, which means there's always a Pokémon there, right? It just means that at 3:12 and 17 seconds, that Pokémon will disappear or if you've already caught it's already gone, and a new one will appear at second 18.
Rob Collie (00:52:24): Okay.
Mike Ellis (00:52:25): It's always the minute and second that's always the same for every spawn point. Now I know that over a million of them, but in the same scanning area, my devices have found 1.7 million spawn points. That's just in the areas that I cover. Think about globally. That's just Indiana, small land mass area. I'm covering the major cities, right? I'm not covering as much rural areas. There's just not as much out there to look for and find.
Rob Collie (00:52:54): Yeah. Let me see if I understand that, 1.7 million total spawn points that have been identified in your database of which one million have known timers.
Mike Ellis (00:53:05): Correct.
Rob Collie (00:53:06): Okay. These 1.7 million spawn points, in order for your phones to visit them, the pathing logic needs to find the minimum number of 500 meter circles that cover all of these. Is that how it works?
Mike Ellis (00:53:22): A lot of them are skipped because maybe there's one spawn point that we know the timer for, but there's only... If I were to stop in one spot, you pull up your phone and it's probably like your house. There's not enough Pokémon at your house for me to stop there and get more than three or four. It won't visit a point where there's not very many spawn points.
Rob Collie (00:53:43): You prioritize?
Mike Ellis (00:53:44): Right. It prioritizes based on the total density of each and it uses a smaller circle for that. We want to collect IVs and you can only collect IVs, the Pokémon stats from Pokémon that are visible inside of that little white circle that you have, which is what the 10 meter or 20?
Rob Collie (00:54:05): They changed it for COVID.
Mike Ellis (00:54:05): They doubled it.
Rob Collie (00:54:06): Yeah. Fortunately, they left it alone because it made the game so much nicer.
Mike Ellis (00:54:10): They doubled it for PokéStops and gyms, but not for Pokémon. They still have that, technically. Whatever meter circle that is, inside of that circle, you can click on every Pokémon and get the IVs as soon as you click on it. When you look at the map, you can see where the phone was. In fact, if you have the paid version, you can see where the phones are, technically. You can enable the scanning feature or whatever, and it tells you where the phones are. When you see it pop right there, you'll see five or six Pokémon pop up. Then you'll see the IVs for each one of them there because it's able to collect that data from the nearby, the ones that are right there.
Mike Ellis (00:54:49): Whereas if you pulled up one Pokémon on your map and you see in the nearby Pokémon front, it shows you the PokéStop it's close to. That PokéStop might be 500 meters away. Even though we know where that Pokémon is, the phone and the app can't click on that, it'll say too far away. That's preventing us from gathering those IVs, but it still reports it on the map because it knows that it's in that vicinity.
Rob Collie (00:55:14): I see.
Mike Ellis (00:55:14): You'll notice that.
Rob Collie (00:55:15): Okay. There absolutely is a prioritization and clustering process to make the most efficient, not even scanning path, because you can teleport. It is still kind of a path.
Mike Ellis (00:55:25): It's still a path, right? It's methodical, right? I have maybe 15 phones for one area. Let's say Fort Wayne, for example. It starts at the top of Fort Wayne. Maybe there's 10 active phones running for Fort Wayne. Each 10 of those will jump straight across every 500 meter overlapping circle and pick a spawn point in there and then go down to the next and it just loops all the way top to bottom. If you notice, if you look at the map when it's scanning gyms, for example, right? The free version shows I think raids. Right? You'll see that the raids, it's almost like a dot matrix printer going back and forth. It'll detect those raids popping up.
Rob Collie (00:56:06): First of all, I've pronounced it wrong. I listen to you. You're pronouncing it Pokémon and I've been so gauche. I've been calling it Pokémon. I would trust you to know how to say it.
Mike Ellis (00:56:17): I probably say half the name's wrong now. Like Rattata is pretty like Rattata.
Rob Collie (00:56:21): Yeah. I've no idea how that's all... The name of Pokémon itself is Poké a not e. Is that correct?
Mike Ellis (00:56:29): I think that's the language in the area where you grew up. Just watch the Pokémon television series, Pokémon. Got to catch them all. That's how I always think of it.
Rob Collie (00:56:39): All right.
Mike Ellis (00:56:39): Without the mon, it's Pokés. You know, you want to get the Pokés?
Rob Collie (00:56:42): Oh yeah. Definitely get the Pokés. Yeah. How many stops and gyms in the DB? Is that something that's easily accessible to you?
Mike Ellis (00:56:52): In Indiana?
Rob Collie (00:56:53): Let's guess first.
Mike Ellis (00:56:54): I'm writing a sequel.
Rob Collie (00:56:56): He's already told us that there's 1.7 million spawn points. Now I'm assuming that there are more spawn points than stops.
Thomas LaRock (00:57:05): I'm going to say 750,000.
Rob Collie (00:57:08): I was going to divide by five. I'm going to go 340K.
Thomas LaRock (00:57:11): Wait, is this like a prices right thing I can't be over.
Rob Collie (00:57:14): Well, I'm definitely going to be closer to you because I think we're both over.
Mike Ellis (00:57:17): I don't think you guys realize how many Pokémon are out there. Walk around your neighborhood. How many spawn points are there?
Rob Collie (00:57:23): A lot? Does it add spawn points based on active phones over time? When we first moved into this house, there was nothing, but over time it's figured out that there's two pokey players that live here. Now we have a lot of spawning shit outside of our house.
Mike Ellis (00:57:39): The original spawn points, we believe were generated from cell phone data, where potentially where Ingress players originally played. If you go to a shopping mall, the parking lot is just filled with stuff, right? That's because there's tons of cell phone there, but there's also population and light pollution. Think about this. If you were to develop spawn points, where would you put spawn points? Where there's people and where there's light. I think they use all of that data to generate random spawn points all over the place. Now that you know that, if you were a game developer, where would you put spawn points? Wouldn't put them in the middle of 465, right? I would definitely put them all over downtown areas. The original developers of Niantic, they came from Google. They know about Google maps and they know how to avoid populated areas, but they also know how to take that data and use it. You're both way over. Do you guys want to try again?
Rob Collie (00:58:40): Yeah. It's got to be-
Thomas LaRock (00:58:41): 75,000.
Mike Ellis (00:58:42): That's closer.
Rob Collie (00:58:43): How to estimate how many that might be in Carmel alone? It's probably like 200 in Carmel.
Mike Ellis (00:58:48): I can tell you, but only in my geo-fence, which is anywhere between four, it could be three points really, but I don't do triangles. I do more squares or diamonds. Carmel is for example and I could show you this sometime too you. You'd love the visual on this.
Rob Collie (00:59:05): Thought I would.
Mike Ellis (00:59:07): The ability that I have with my tool to display the coordinates that my phones all search in.
Rob Collie (00:59:14): I'm rounding into like 50K. I'm thinking 50K stops for the State of Indiana.
Mike Ellis (00:59:20): In Carmel?
Rob Collie (00:59:20): No. Indiana.
Mike Ellis (00:59:22): No, that doesn't include gyms, just stops in Carmel, which is a large area, because I think it includes Westfield, 545 PokéStop.
Rob Collie (00:59:32): 545. Okay.
Mike Ellis (00:59:33): From last night's quest scan, I know 462 of them, which is low. I typically get 90% or higher, 95 or higher. Talk about bans and stuff like that. There's a bug in one of the code words, half of the phones don't actually log out of the... Flag account or something.
Rob Collie (00:59:52): If Carmel represented 1% of Indiana's stops, it'd be about 50K stops for the state?
Mike Ellis (00:59:58): In terms of number of PokéStops that I have in my database. There are 24,085.
Rob Collie (01:00:03): Okay. Carmel represents 2%. That's crazy. What a fascinating problem.
Mike Ellis (01:00:11): How many gyms do you think there are?
Rob Collie (01:00:13): Probably one gym for every five stops maybe? Some 5,000 ish.
Mike Ellis (01:00:18): I'm going to share my screen even though not everybody's going to be able to see it.
Rob Collie (01:00:21): We can screenshot and link it.
Thomas LaRock (01:00:24): Maybe we can share it with our [inaudible 01:00:25]
Mike Ellis (01:00:25): Well, we may not want to share this data, but as we look at the data, you'll have tons of questions. We don't have enough time in the day for this.
Rob Collie (01:00:33): We don't. Let's do it anyway. We won't.
Mike Ellis (01:00:35): Which is why not?
Rob Collie (01:00:36): We won't take screenshots. Yeah. We'll be respectful.
Mike Ellis (01:00:38): We got our map, right? Up here in the top right, do you see this button, the full stats?
Rob Collie (01:00:44): Yeah.
Mike Ellis (01:00:44): You can see just in the Indianapolis area, just in this area, there are 307 gyms in the current viewing distance.
Rob Collie (01:00:54): This reminds me of the meme where Chrome comes along and starts eating all the cookies. You know what I'm talking about? There's cookies that are labeled RAM and Photoshop is nibbling on some cookies, wearing a Photoshop T-shirt and then this guy comes up wearing a Google, a Chrome T-shirt and he just shoves Photoshop out of the way and just starts cramming all the Ram cookies in his mouth, like a cookie monster.
Mike Ellis (01:01:21): This is showing just gyms and PokéStops. The green dot... You guys are familiar with Indianapolis, right? Downtown.
Rob Collie (01:01:29): I am. Yeah.
Mike Ellis (01:01:31): These are all PokéStops, the green ones. Then these are gyms, the red dots. Then if I were to pull up one of my instances, I can show you kind of looks like a hexagon and then I gray it a little bit.
Rob Collie (01:01:45): Oh, wow. That's like your Geo-fence?
Mike Ellis (01:01:49): This is the geo-fence for Indy. Do you notice these little tiny squares? We're getting into more data here. You're familiar with Carmel, right?
Rob Collie (01:01:58): Yeah.
Mike Ellis (01:01:59): Okay. Let's zoom in and go up to Carmel. All right. This is my tool. Let's see if we can scroll on up here to the north side where I used to live. Of course, I had to unplug my network cable, because that might have been part of the problem. Now I'm running on Wi-Fi. I guess it's picking up the Wi-Fi that's in my garage, halfway across the house. Carmel, right? If you were to look at, for example, Downtown Carmel, let's turn on PokéStops. Okay, and let that load.
Rob Collie (01:02:31): What are these rectangles?
Mike Ellis (01:02:33): These are geo-fence. What Google Maps calls like S2 cells.
Rob Collie (01:02:37): Okay.
Mike Ellis (01:02:38): It's the size of a cell that they will allow... There's even smaller cells inside of these.
Rob Collie (01:02:45): Are the edges of these rectangles not parallel because they're following the curvature of the earth?
Mike Ellis (01:02:52): Yes. That's exactly it. Inside of this cell, let's say there was a PokéStop here and a PokéStop here. As soon as you have one PokéStop inside of a cell. If you add a second PokéStop inside of the cell, then it promotes one of them to a gym.
Rob Collie (01:03:08): Wow. That's what happens. Okay.
Mike Ellis (01:03:11): There's an algorithm or something that they use. I don't know the exact numbers behind it. Let's say they add three points. Well, then there should be two gyms or seven points and there could be three gyms. That's where it gets really interesting.
Rob Collie (01:03:26): Tom, you need to go see Bon Jovi. Is that right?
Mike Ellis (01:03:29): Oh yeah.
Thomas LaRock (01:03:30): Led Zeppelin.
Rob Collie (01:03:31): Oh, Led Zeppelin. Yeah.
Mike Ellis (01:03:32): Now where you out of town, Boston?
Thomas LaRock (01:03:34): Springfield Mass.
Mike Ellis (01:03:35): With the VIP membership. You'll be able to see the size of each cell where if you were to add... You know how you can contribute nominations, right?
Thomas LaRock (01:03:44): Yeah.
Mike Ellis (01:03:45): Well, if a nomination is already inside of a smaller cell inside of that, it won't let you do that.
Rob Collie (01:03:51): I got an email a long time ago from Niantic, trying to recruit me to be one of their judges that would adjudicate what makes a stop or not. Does that make sense? Does that sound familiar?
Mike Ellis (01:04:01): Yeah. It's called Wayfarer.
Rob Collie (01:04:03): I didn't do anything with it. I just let that mail go by.
Mike Ellis (01:04:05): Yeah. Everybody over level 40 gets access to that.
Rob Collie (01:04:08): Okay.
Mike Ellis (01:04:10): They're just inviting you to judge them because it's a community game, right?
Rob Collie (01:04:13): That doesn't give me the rights to just make a PokéStop.
Mike Ellis (01:04:17): No, you can submit for one.
Rob Collie (01:04:19): I did. I got rejected.
Mike Ellis (01:04:20): That's probably your mailbox, right? You can't submit your mailbox.
Rob Collie (01:04:23): No, I was not that silly. I submitted Moonshot games in Noblesville.
Mike Ellis (01:04:29): In Noblesville?
Rob Collie (01:04:29): Yeah.
Mike Ellis (01:04:30): Okay. Yeah. I know exactly what that is.
Rob Collie (01:04:31): That got rejected. I submitted the sign that's opening to the neighborhood. My neighborhood that got rejected, did not do my mailbox.
Mike Ellis (01:04:39): I'm surprised. I'm surprised it does have to be on public property.
Rob Collie (01:04:44): Yeah. They both were.
Mike Ellis (01:04:45): The way you word it, you could do a gazebo and a park bench and a fountain. Just make sure there's a sidewalk nearby. Otherwise, they won't accept it.
Rob Collie (01:04:54): My personal favorite is the one that's in the Fisher's Nickel Plate circle. That's a light post.
Mike Ellis (01:05:03): There's one that's a bench.
Rob Collie (01:05:05): Yeah. A light post is pretty... That got through.
Mike Ellis (01:05:09): You got to remember a long time [inaudible 01:05:11] too. They would pretty much let anything through.
Rob Collie (01:05:14): Now. Does your website talk directly to, was it MariaDB? Or do you have some caching layer in between or is there a caching layer that's built into the...
Mike Ellis (01:05:24): There's not a caching layer built into the website. There was a developer that was working on that prior to the API being shut down where it would cache in an entire cell of data. That ultimately died along with all that stuff. It looks like this area wasn't scanned for quest.
Rob Collie (01:05:44): When I visit your site, does that generate a fresh query to the back end?
Mike Ellis (01:05:49): Yes.
Rob Collie (01:05:49): Okay.
Mike Ellis (01:05:50): Yeah. When you actually drag and zoom and let go, it's a new request.
Rob Collie (01:05:55): Okay. There isn't some intermediate in memory cache that protects your transactional server from being overused.
Mike Ellis (01:06:04): No, not necessarily.
Rob Collie (01:06:06): I'm not planning a DDoS on you.
Mike Ellis (01:06:08): There is a limit on the kilometers. There's a zoom limit and there's a kilometer. It'll drop those requests and that's built into the website. Even if you were to analyze the raw data on the website, you can't submit a request that's larger than X size.
Rob Collie (01:06:23): Gotcha. Yeah.
Mike Ellis (01:06:24): This is the Ingress S2 cells. If I were to turn this on, this is the, I think S20 or level 20. If you show the placement ranges, right? Okay, so that's the placement range. That's how far away you have to be to spin that. Then if you have the gym placement and EX trigger and then PokéStop placement. This is really cool because if you look at this, if you were to submit something... You know main street, right? You could submit a PokéStop in this. You could submit one for the fountain. In fact, I feel like there was one for the fountain.
Rob Collie (01:07:03): Yeah. There was.
Mike Ellis (01:07:07): Did that get taken down?
Rob Collie (01:07:08): Oh, you know what? It's a gym.
Thomas LaRock (01:07:09): It's a gym. Yeah, that's right.
Rob Collie (01:07:11): We're actually accidentally looking at the gym where my wife and I did our first 5-star raid together.
Thomas LaRock (01:07:16): Wow. That's just true love.
Rob Collie (01:07:19): I know. It's so romantic. Isn't it?
Mike Ellis (01:07:21): Wow. That's adorable.
Rob Collie (01:07:23): It is.
Mike Ellis (01:07:23): Okay. Now that I flip that back on, it actually works. You could put something on the corner here and it would pop up, but if you were to put something inside of this cell, it would not. If you were to submit something for whatever this building is, it would not show up.
Rob Collie (01:07:40): Auto rejected?
Mike Ellis (01:07:42): It would show up in Ingress as a portal.
Rob Collie (01:07:45): Okay.
Mike Ellis (01:07:46): Pokémon limits the gyms to only show up one per cell size of this size. Isn't that interesting?
Rob Collie (01:07:54): Yeah.
Mike Ellis (01:07:56): This is where it gets interesting is when you zoom out, you see the bigger thicker line here. That's the level 17 size cell or whatever is right above it. One more PokéStop in this green square and that will promote this one to a gym.
Rob Collie (01:08:12): Neat.
Mike Ellis (01:08:13): Granted this all neighborhood, it may not take one, but let's say there was a statue on the corner of main street at this intersection. You could put it anywhere along here. If you were to put it here, it would show up. There's a PokéStop for the church, right? Then if there was a statue or something in the front over here or the parking lot, and you were to submit it right there at that spot, can't do it. It would not show up. It's too close to another PokéStop. The funny thing is you could put one, right on the line in the corner and it'll still put it there.
Rob Collie (01:08:48): Yeah, that's right. It's not absolute distance. It's by-
Mike Ellis (01:08:50): It's by cell.
Rob Collie (01:08:51): Yeah, by cell.
Thomas LaRock (01:08:52): Would this map... Okay, so the back story is my daughter, my son, myself. We've been playing on and off, mostly me these days. My daughter still plays a little bit. I think she still has yet to catch a 4-star, a perfect Pokémon. I have more than a handful. She had a friend at school last year who started playing within the second day, caught a 4-star. My daughter's just sitting there going, "What the hell? Why I haven't really come across as many?" Does your map help people find and locate and grab the 4-star?
Mike Ellis (01:09:28): It won't help you beat a 4-star raid.
Thomas LaRock (01:09:32): No, I'm talking-.
Rob Collie (01:09:33): He's talking 100 IV Pokémon. That's what he...
Mike Ellis (01:09:37): Oh, right. Okay.
Thomas LaRock (01:09:37): Sorry. I don't know the lingo. To me when I do the appraisal [inaudible 01:09:41]
Mike Ellis (01:09:41): 4-star. Okay, I gotcha. You're talking about IVs.
Thomas LaRock (01:09:44): Yeah. I am. Sorry.
Mike Ellis (01:09:46): IVs are the individual variable. She has to be level 30 or higher first, for my map to be effective. That being said, once you're over level 30... Here's one way to tell. If you play, you're probably over 30, but if she plays and you guys both see the same Pokémon, because it's a spawn point, the same Pokémon will show up for both of you, but if she's under level 30, it'll be randomized CP and also randomized IVs.
Thomas LaRock (01:10:15): Okay.
Mike Ellis (01:10:16): This in the VIP map is the IV filter. You can say let's do 95%.
Thomas LaRock (01:10:25): I don't even know what IV means.
Mike Ellis (01:10:27): That's the percentage. Right?
Rob Collie (01:10:28): The thing you're looking for, Tom, you do the appraisal and 3-stars light up, but then it goes solid pink. That's a 100 IV.
Thomas LaRock (01:10:36): Does that mean it's the most powerful that you can have? I know you can power up. It's the perfect one.
Rob Collie (01:10:43): It'll have the max CP possible if you've level it all the way up, if you power it all the way up. Yes.
Mike Ellis (01:10:49): I'm just looking at one particular Pokémon, this Meditite, if I'm saying that correctly, right?
Rob Collie (01:10:55): Who knows.
Mike Ellis (01:10:56): Meditite. The IV stats on it are 91%, which is the equivalent of... There's three stats that IVs are built on. The attack, defense and health, stamina, whatever it is. This has a 13 attack, a 13 defense and a perfect HP. That equivalate to 91.1%. This one here being a 93%, 14, 14, 14 out of 15. It's missing one from each. If I were to change it to minimum IV 100, right? You probably have to zoom out. It's hard to get IVs because the map can't collect that much information. Here's one, it's in red. Here's a perfect [inaudible 01:11:43] 15, 15, 15. And you can see it's a CP of 470 and it's a level 18. It'd be randomized for anybody under level 30.
Thomas LaRock (01:11:53): Yeah. Gotcha.
Rob Collie (01:11:54): Yeah, this would help you track down most times.
Thomas LaRock (01:11:56): Well, this is only going to help me if I happen to be in Indianapolis.
Rob Collie (01:12:00): The world has been divided up. The council Pokéosa.
Mike Ellis (01:12:02): Council of international Pokémon members.
Thomas LaRock (01:12:07): The Pokéosa.
Rob Collie (01:12:08): The Pokéosa have divided up the territory.
Thomas LaRock (01:12:10): The Pokénati.
Rob Collie (01:12:11): The Pokénati.
Thomas LaRock (01:12:11): It's the Pokénati.
Rob Collie (01:12:13): Pokénati. I don't know. Yeah, maybe or it could be the Pokuza. My wife and I are watching Tokyo Vice right now, which really has proven to be an amazing show. It's the Yakuza, right? The Pokuza.
Thomas LaRock (01:12:24): Pokénuza.
Mike Ellis (01:12:25): The mapper community has gone down significantly since. It's a lot of work to keep 100 phones running. Most mappers, they have 20 phones, maybe 40 and they scan one major city, maybe two.
Rob Collie (01:12:40): Amongst the mapper community in the United States. Where would you rank yourself in terms of dedication and scale? Are you top five? You top 20? Do you have any idea?
Mike Ellis (01:12:49): In terms of number of phones and number of devices? I'm probably in the top 25, maybe.
Rob Collie (01:12:53): Okay. We just need to find the Massachusetts version of this for Tom.
Mike Ellis (01:13:01): There's a guy in California, his name is Velocity and he scans a lot of the Bay Area and San Diego. He has over 300 phones, likewise with [inaudible 01:13:12] of PGAN, Pokémon GO Alerts Network. A lot of those people have in the hundreds of phones. We did have a contest for who had the better setup and actually I did win that.
Rob Collie (01:13:25): It's neat, like the PVC pipes with the gaps cut into them to hold the phones.
Mike Ellis (01:13:30): My original setup was different.
Thomas LaRock (01:13:32): Rob, real quick. You pointed me to this Go-tcha Classic, but I'm heading to the beach. I don't want to wait a week for this thing to be shipped to me. Say I can get this Go-tcha Evolve. Is that just like the latest version?
Mike Ellis (01:13:48): They've all changed a little bit. That one, Evolved didn't look as... I looked at some of those, but they didn't look as nice.
Rob Collie (01:13:56): Are you seeing these pictures, Tom?
Mike Ellis (01:13:58): This is the most recent. I'll have to send you the most recent one.
Thomas LaRock (01:14:00): Yeah, I see this picture.
Rob Collie (01:14:02): No wonder it's hot in there. Holy shit. Even the phones are probably generating a lot of heat.
Mike Ellis (01:14:09): [inaudible 01:14:09] cabling though.
Rob Collie (01:14:10): Yeah. This is what I did yesterday. I put in this patch panel. This is next level. This is what technology is for.
Mike Ellis (01:14:16): I have an Excel sheet that tells me which phone is plugged into which server. Each of these black boxes is a USB hub, a 20 port USB hub that's plugged into the back of this server and there's a VM running on it. My original design was the PVC pipe. It was just PVC and then I cut a notch into it.
Rob Collie (01:14:39): Listen, I'm excited. I'm glad that you were able to do this with us. Random dude hits you up on your Discord and says, "Hey, you want to get on our podcast?" Let's keep the email conversation going. I would love to tempt you into the land of DAKS and even just Power Pivot. Keep you in Excel. We don't have to go to Power BI yet. Thanks for spending so much time with us and thanks for the service that you provide. Saving the world one gas tank at a time. We'll be back on the subscriber roles here relatively shortly. We need to be hunting some one hundreds, just like Tom.
Mike Ellis (01:15:12): There are people that only search for hundreds.
Rob Collie (01:15:14): Yeah. I think that might be our game. Of course, now that game is not saving us gas. Right? You're just not going to go out randomly looking for hundreds, but if you know that there's one 15 miles away.
Mike Ellis (01:15:28): If you think about it in the aspect of, I could be driving around with my Go-tcha on, just picking up as many as it can find, right?
Rob Collie (01:15:36): That's probably true.
Mike Ellis (01:15:38): The spray and pray search method that you're currently doing. Is that fuel efficient?
Rob Collie (01:15:44): I'm sorry, I doubted you. It's 100% green all the time.
Mike Ellis (01:15:51): It's 100%. It's how you spin it.
Rob Collie (01:15:53): I see what you did there.
Mike Ellis (01:15:54): Now you know there's a 100%.
Rob Collie (01:15:55): How you spin it. All right, Mike.
Thomas LaRock (01:15:58): All right.
Mike Ellis (01:15:58): Yeah, it's been great.
Speaker 3 (01:15:59): Thanks for listening to the Raw Data by P3 Adaptive podcast. Let the experts at P3 Adaptive help your business. Just go to p3adaptive.com. Have a day-to-day.
Sign up to receive email updates
Enter your name and email address below and I'll send you periodic updates about the podcast.