Would you like to find who is advertising with Google AdSense? There is a Google file sellers.json . Most objects have a property “is_confidential”: 1, but other objects could have a domain name and other information. Be aware, the file is huge, more than 140 MB and getting bigger. Of course, there is more than one million sellers. Below is a command to download it:

curl -O

Here are several example commands utilizing jq tool:

# let's find how many sellers are in the file
$ jq '.sellers[] | length ' sellers.json | wc -l

# one concrete seller_id
$ jq '.sellers[] | select(.seller_id == "pub-0000000381088596")'  < sellers.json
  "seller_id": "pub-0000000381088596",
  "is_confidential": 1,
  "seller_type": "PUBLISHER"

# all non confidential sellers
$ jq '.sellers[] | select(.is_confidential != 1)'  < sellers.json

#all objects with domain
$ jq '.sellers[] | select(.domain != null)'  < sellers.json | head -11
  "seller_id": "pub-0000074043221914",
  "seller_type": "PUBLISHER",
  "name": "Imago Informationstechnologie GmbH",
  "domain": ""

# all objects with domain containing .tv
$ jq '.sellers[] | select(.domain != null) | select(.domain | contains(".tv"))'  < sellers.json
  "seller_id": "pub-0015244548563708",
  "seller_type": "PUBLISHER",
  "name": "Richard Foster",
  "domain": ""
Posted in workday | Leave a comment

Carbon: How much is 1 ppm of CO2 in Earth atmosphere

On Earth day 2021 will be officially announced XPRIZE Carbon Removal sponsored by Elon Musk.  Now there is a carbon dioxide content in the atmosphere 412 ppm. It would be good to know how much is actually 1 ppm of carbon dioxide in the whole atmosphere.

The atmosphere has a mass of about 5.15×1018 kg. The average molecular weight of dry air, which can be used to calculate densities or to convert between mole fraction and mass fraction, is about 28.946 or 28.96 g/mol. Let’s take the first value of 28.946 g/mol or 0.028946 kg/mol. The whole atmosphere has then 5.15×1018 / 0.028946 = 1.77917×1020 mol. One part per million is then 1.77917×1014 mol. The weight of such amount of the carbon dioxide is then 1.77917×1014 * 0.044009 = 7.82997×1012 kg (or 7.82997×109 ton or 7.82997 gigaton).

The current concentration of CO2 is about 412 ppm by volume, having risen from pre-industrial levels of 280 ppm. Increase is 132 ppm. It represents 132 * 7.82997 = 1,033.55 giga ton, about 1 tera ton.

Related posts:
Carbon: What is a size of the 1 ton of CO2

Posted in workday | Tagged , , | Leave a comment

Carbon: What is a size of the 1 ton of CO2

On Earth day 2021 will be officially announced XPRIZE Carbon Removal sponsored by Elon Musk. We know now, that a scale model at a level of carbon removal of 1 ton of CO2 per day has to be demonstrated. So, what it means, how much is actually 1 ton of CO2?

Here are some carbon dioxide properties from Wikipedia:

Chemical formulaCO2
Molar mass44.009 g·mol−1
AppearanceColorless gas
OdorLow concentrations: none
High concentrations: sharp; acidic[1]
Density1562 kg/m3 (solid at 1 atm (100 kPa) and −78.5 °C (−109.3 °F))
1101 kg/m3 (liquid at saturation −37 °C (−35 °F))
1.977 kg/m3 (gas at 1 atm (100 kPa) and 0 °C (32 °F))

Now based on knowledge of the properties it’s possible to write what it means 1 ton = 1000 kg of CO2:
– 2.272262^4 mol (1000 / 0.044009)
– 509.2 m3 of gas (2.272262^4 * 0.02241) computed from Avogadro’s law
– 505.8 m3 of gas (1000 / 1.977) computed from density
– 0.908 m3 of liquid (1000 / 1101)
– 0.640 m3 of solid – dry ice (1000 / 1562)

One ton of the carbon dioxide can be result of burning 273 kg of pure carbon like graphite or diamante (1000 * 12 / 44). Or of the twice as much as of a wood.

Carbon dioxide content in fresh air (averaged between sea-level and 10 kPa level, i.e., about 30 km (19 mi) altitude) varies between 0.036% (360 ppm) and 0.041% (412 ppm). Let’s continue with value 0.0412%. Abbreviation ppm means parts per million. One square meter has 1 million square centimeters (100 x 100 x 100), so it has volume 412 square centimeters of the CO2. Now let’s ask a question, what is a volume of air with 1000 kg of CO2:
– 1.2277109^6 m3 (505.8 / 0.0412 / 100) or (505.8 / 412^-6)
Volume 1.2277109^6 m3 of fresh air in 2021 can be a cube of size 107 meters or a sphere with radius of 66.4 meters (diameter 132.9 m) with 1 ton of CO2.

Posted in workday | Tagged , , | Leave a comment


Did you find your WAN IPv4 address in the range to Then most likely your Internet Service Provider (ISP) is utilizing shared address space. Most likely that address would be behind Carrier-Grade NAT (CGN). See more RFC 6598.

Posted in Blogroll, workday | Tagged , | Leave a comment

Go webserver on Apache

Go language allows create very easily webserver. Let’s consider a full working example of a simple web server at implemented in the file web8080.go:

package main

import (

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])

func main() {
    http.HandleFunc("/", handler)
    log.Fatal(http.ListenAndServe(":8080", nil))

Code above could be one of the several web application implemented in go language. Each application should use different port, if running on the same server. Each port could be redirected to different virtual host implemented on Apache2 webserver. For example on Ubuntu 20.04 LTS we should add apache module:
a2enmod proxy proxy_http
Create virtual host configuration file /etc/apache2/sites-available/

<VirtualHost *:80>
        ProxyPass /
        ProxyPassReverse /

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

Run command
so in the directory /etc/apache2/sites-enabled will be created symbolic link in similar way like by commands cd /etc/apache2/sites-enabled; ln -s ../sites-available/ .
Then reload apache server
systemctl reload apache
and you should be able browse and continue in development!

Posted in golang, workday | Tagged , , | Leave a comment

Weather: Daily Loop

Cooperative Institute for Research in the Atmosphere (CIRA) has a great page named Daily Loop. One can look to the weather almost in the real time.
We can be fascinated by view of the California wild fires:

2020-09-09 – Large fires burn along U.S. West Coast – GOES-17 GeoColor + Fire Temperature

2020-09-11 – Large swirl of smoke sits over Pacific – GOES-17 GeoColor

Although Winter weather in Minnesota is interesting as well:

2020-01-17 – Watch for blowing snow in southern Minnesota and northern Iowa – GOES-16 Natural Color (Day Land Cloud RGB)

2020-09-25 Evening situation partly cloudy, 2 hours loop from 6:40 PM CDT to 8:40 PM

Posted in workday | Leave a comment

Brief go lang programs

Here is list of brief go lang programs

Posted in golang, workday | Leave a comment

Google Cloud Next

Google Cloud Next conference is for year 2020 online, see

Here is a play list of the presentations in the last few years:

Posted in Blogroll, workday | Tagged | Leave a comment

REGEX at awk file

More complex awk text processing is better to put in the file. And there can be regex filter as well. Below is a simple example utilizing awk code in the file xml-info.awk, which prints information only for XML files.

$ ls -l
total 24
-rw-r--r-- 1 User User 9223 Jul 26 11:06 alpha.html
-rw-r--r-- 1 User User 6173 Jul 29 10:03 alpha.xml
-rw-r--r-- 1 User User 3227 Jul 29 10:43 beta.xml
BEGIN { print "Hello at BEGIN"}
 printf("filename: %s, size: %s\n", $9, $5);
END { print "Hello at END"}
$ ls -l | awk -f ../bin/xml-info.awk
Hello at BEGIN
filename: alpha.xml, size: 6173
filename: beta.xml, size: 3227
Hello at END
Posted in Blogroll, workday | Leave a comment

ssh password-less

Here are steps, how to do it in Linux type environment on LOCAL host:

  1. USER_REMOTE=username@remote-host
  2. ssh-keygen -t rsa #no password
  3. ssh $USER_REMOTE mkdir -p .ssh
  4. cat .ssh/ | ssh $USER_REMOTE ‘cat >> .ssh/authorized_keys’
  5. ssh $USER_REMOTE ‘chmod 700 .ssh; chmod 640 .ssh/authorized_keys’
  6. ssh $USER_REMOTE

Step 2 is necessary only if you don’t have file yet
Steps 3,4,5 need remote password
Steps 3 and 5 are not necessary, if the file .ssh/authorized_keys with appropriate access rights is already on remote host
Step 4 actually transfers the public key
Step 6 does not need password, you are there already, congratulations!

Posted in workday | Leave a comment