Skip to main content

Posts

Showing posts from March, 2020

See how Google is tracking your location. With Python, Jupyter, Pandas, Geopandas and Matplotlib

In sales, you can hear the acronym ABC: Always Be Closing. Closing means making a deal with a customer. Last decade gave rise to another acronym ABCD: Always Be Collecting Data. We use Google for mail, maps, photos, storage, videos, and much more. We use Twitter to read a stream of consciousness of one President. We use Facebook for messaging and… well, pretty much it. Our parents use it though. We use TikTok… I have no idea what for. Actually, turns out most of the above are useless… Nevermind, the bottom line is: we use them. We use them, and they are free. In XXI-century economy, if you are not paying for the product, you are the product. So, long story short, I wanted to investigate how much Alphabet corporation, the owner of Google, knows about me. Just a tiny fraction, I looked at geolocation history. I never turned off location services because I was valuing comfort over privacy. Bad idea.
Download your data In order to download all data Google collected about you, go to takeou…

GraphQL server in Java: Part III: Improving concurrency

The idea behind GraphQL is to reduce the number of network round-trips by batching multiple, often unrelated requests, into a single network call. This greatly reduces latency by delivering many pieces of information at once. It’s especially useful when multiple sequential network round-trips can be replaced with a single one. Well, honestly, every web browser does that automatically for us. For example, when we open a website with several images, the browser will send HTTP requests for each image concurrently. Or, to be precise, it will start not more than a certain number of connections to the same host. It’s something between 2 and 8, depending on the browser. The same applies to multiple AJAX/RESTful calls (see fetch() API), which are concurrent by default with no extra work on a developer’s side. Actually, that’s what A stands for in AJAX1.
So, what’s the advantage of GraphQL? If a web browser can make concurrent requests to multiple pieces of data at once already, why bother wit…