1
2
 
 

Links:

Authorities in Iran intercepted 3,663 kilogrammes of methamphetamines headed for Europe and the Persian Gulf in the first quarter of 2026, according to the UN’s drugs and crime fighting agency (UNODC).

While international attention has primarily focused on the vast region’s declining opium production, advanced criminal drug trafficking networks have successfully shifted toward manufacturing and exporting synthetic drugs such as methamphetamine, commonly known as meth.

3
4
 
 
5
 
 

Interactive map: https://podbrushkin.github.io/col-tree-of-life.html

Images: Phylums, Classes, Orders.

It's a full Eukaryota domain (2,631,744 taxa) from Catalogue of Life database. Taxonomic hierarchy represented as a set of nested polygons generated by Voronoi Treemap algorithm written by Arlind Nocaj. At each zoom level polygons of certain rank (e.g. phylum) are filled with glass pebble effect and black labels are applied to them.

Dataset overview

Catalogue of Life - is a taxonomy database, you can download it's data here.

ColDP Base release is a 1gb ZIP archive. Among other files it contains NameUsage.tsv text file, which is 1.7gb uncompressed, here are first lines of it:

col:ID	col:alternativeID	col:nameAlternativeID	col:sourceID	col:parentID	col:basionymID	col:status	col:scientificName	col:authorship	col:rank	col:notho	col:originalSpelling	col:uninomial	col:genericName	col:infragenericEpithet	col:specificEpithet	col:infraspecificEpithet	col:cultivarEpithet	col:combinationAuthorship	col:combinationAuthorshipID	col:combinationExAuthorship	col:combinationExAuthorshipID	col:combinationAuthorshipYear	col:basionymAuthorship	col:basionymAuthorshipID	col:basionymExAuthorship	col:basionymExAuthorshipID	col:basionymAuthorshipYear	col:namePhrase	col:nameReferenceID	col:namePublishedInYear	col:namePublishedInPage	col:namePublishedInPageLink	col:gender	col:genderAgreement	col:etymology	col:code	col:nameStatus	col:accordingToID	col:accordingToPage	col:accordingToPageLink	col:referenceID	col:scrutinizer	col:scrutinizerID	col:scrutinizerDate	col:extinct	col:temporalRangeStart	col:temporalRangeEnd	col:environment	col:species	col:section	col:subgenus	col:genus	col:subtribe	col:tribe	col:subfamily	col:family	col:superfamily	col:suborder	col:order	col:subclass	col:class	col:subphylum	col:phylum	col:kingdom	col:ordinal	col:branchLength	col:link	col:nameRemarks	col:remarks	col:modified	col:modifiedBy	clb:merged
8JM4K			2317	8HRST		synonym	Taberinha	Linnavuori, 1959	genus			Taberinha						Linnavuori				1959							c89b49d1-9f78-45ad-b78a-494c571dbf6a		9					zoological																																				false
8L3XD			1146	8LJHX	8LF38	synonym	Bembidion littorale	(Olivier, 1795)	species				Bembidion		littorale								Olivier				1795	junior homonym								zoological	established																																			false

Well, it's a table of 73 columns and 5,382,966 rows. Happily, we don't need all columns and all rows.

This is a Canis lupus (wolf) record without unnecessary properties:

col:ID             : QLXL
col:parentID       : 3GTH
col:status         : accepted
col:scientificName : Canis lupus
col:genericName    : Canis
col:authorship     : Linnaeus, 1758
col:rank           : species
col:code           : zoological
col:extinct        : false

We are interested in ID and parentID columns. Each taxon has a link to it's parent. By these links we can build entire tree while importing it to database.

After discarding records with status "synonym" or "misapplied" we are left with 2,686,187 nodes. Now we can make several queries to database to better understand it's structure.

Here are nodes which do not have a parent:

n.id  n.scientificName n.depth n.rank   n.descendants
----  ---------------- ------- ------   -------------
CS5HF Eukaryota              0 domain         2631744
CRLT8 Archaea                0 domain            1045
L2TCC Viruses                0 unranked         20845
CRRY6 Bacteria               0 domain           32549

Each of them is a root of it's own tree. Depth of a node is a count of nodes between it and a root node. For Voronoi TreeMap visualization I've took only Eukaryota domain.

Let's count how many nodes there are at each depth level:

depth  count
-----  -----
    0      4
    1     52
    2    237
    3   3266
    4   8835
    5  14203
    6  43211
    7 233669
    8 321627
    9 339333
   10 456165
   11 485906
   12 264157
   13 276720
   14 168828
   15  55316
   16  10931
   17   2452
   18    987
   19    263
   20     25

Most populated depth is 11 with 485906 nodes.

And how many ranks there are? Here is a count of taxa for each rank:

rank                 count
----                 -----
realm                    7
domain                   3
kingdom                 24
subkingdom               2
phylum                 147
subphylum               35
infraphylum              5
parvphylum               2
superclass               9
gigaclass                2
megaclass                1
class                  491
subclass               107
infraclass              25
subterclass             13
superorder              45
order                 1889
suborder               448
infraorder             171
parvorder               36
nanorder                 4
superfamily           1507
epifamily                6
family               14956
subfamily             7260
supertribe              23
tribe                 5461
subtribe              1552
infratribe              53
genus               217802
subgenus             13529
section botany          11
section zoology         17
subsection zoology       2
series                   8
species            2245825
subspecies          148451
variety              25083
form                  1146
natio                    1
unranked                27
other                    1

Alternatives

Last four are also made by me.

6
 
 
Mapped: Do Countries Trade More With the U.S. or China?
7
8
 
 

If you want to test the functionalities of the website without creating an account:

Id: eutrade@sploing.be password: motdepassecompliqué

9
 
 
10
 
 
11
 
 

In North America, the 80 USD price for Grand Theft Auto VI is highly accessible, requiring only 3.8 hours of labor for the average worker in the United States and 5.2 hours in Canada. While Mexico presents a more significant barrier with a 36.0-hour requirement, the region as a whole remains the primary target for the publisher’s current economic model, where digital-only distribution functions without imposing a prohibitive burden on the median income.

Central America faces a stark economic divide, where the cost of the game exacerbates existing inequalities. In relatively stable economies like Costa Rica (21.8 hours) and Panama (25.6 hours), the purchase remains manageable; however, across much of the isthmus, the burden intensifies, culminating in Nicaragua, where a staggering 102.0 hours of labor are required. This creates a deeply exclusionary environment where the lack of a physical resale market forces lower-income populations to sacrifice substantial portions of their monthly earnings or opt out of the legal market entirely.

South America presents a landscape of extreme financial disparities, ranging from the relative stability of Uruguay (16.9 hours) and Chile (27.4 hours) to the severe structural crises in nations like Bolivia (63.9 hours) and Surinam (218.1 hours). Within this context, the situation in Cuba stands as a unique, tragic anomaly; due to the systemic collapse of the currency and the reliance on an informal black market, a worker would theoretically need to dedicate 1562.6 hours of labor to afford the game.

Author: u/maven.mapping

Partner: u/the.world.in.maps

12
 
 
13
 
 

SOTXE6BzGagUYTe.webp

OZ2yi6LdozkDI0Z.webp

14
15
 
 

Tools used were primarily Google's Antigravity with Opus 4.6/Gemini Flash 3.5, and Cursor with Composer 2.5. The code is Python with sqlite3 and vanilla JavaScript. It has a map that allows you to filter by month, weekday, rider type and activity. This can be used to pinpoint the locations with the most activity by rider type and time of year. The difference in behavior between member and casual riders is pretty interesting. Divvy didn't seem to do too well last year during this period, but hopefully will have a stronger 2026. I worked on this briefly a while ago during my data analysis certificate, I've improved it and now I'm hosting it live. If you have any issues with it please let me know, there may be a few bugs. Thanks for reading.

Interactive charts/map can be viewed live at: https://masland.tech/divvy/

Quick demonstration video: https://i.imgur.com/uhbKYZ5.mp4

Data was sourced from here: https://divvybikes.com/system-data

16
17
 
 
18
 
 
19
 
 
20
21
 
 
22
 
 

How people allocate their 24 hours across commuting, entertainment, housework, and other daily activities from 1920 to 2026.

All figures represent the average U.S. adult aged 25 to 35 during each period, ensuring comparability across decades. The data reflects long-term shifts driven by industrialization, urbanization, television, the internet, smartphones, remote work, and changing social structures. The chart excludes sleep, work, and other activities with minimal variation, focusing instead on structural changes across decades.

23
24
25
 
 

OGDF C++ library provides some graph generators, I made it possible to use them from terminal, not by writing C++ client code. Got some pleasant pictures, here they are.

  1. Graphs of ~32 nodes, FMMM layout.
  2. Graphs of ~512 nodes, FMMM layout.
  3. Graphs of ~512 nodes, ForceAtlas2 layout.

Each node is labeled by it's degree - count of incoming/outgoing edges. Colored accordingly, from blue to red.

Powershell code for creating these pictures goes like that:

# define params for each generator
$genLines = @'
complement --n 32 --directed false --allowSelfLoops false
regularLatticeGraph --n 32 --k 4
regularTree --n 32 --children 2
completeGraph --n 32
completeBipartiteGraph --n 16 --m 16
wheelGraph --n 32
cubeGraph --n 5
globeGraph --meridians 8 --latitudes 4
suspension --s 32
gridGraph --n 8 --m 4 --loopN false --loopM false
petersenGraph --n 16 --m 2
emptyGraph --nodes 32
randomRegularGraph --n 32 --d 4
randomGraph --n 32 --m 100
randomSimpleGraph --n 32 --m 100
randomSimpleGraphByProbability --n 32 --pEdge 0.2
randomSimpleConnectedGraph --n 32 --m 50
randomBiconnectedGraph --n 32 --m 60
randomPlanarConnectedGraph --n 32 --m 60
randomPlanarBiconnectedGraph --n 32 --m 60 --multiEdges false
randomPlanarBiconnectedDigraph --n 32 --m 60 --p 0.0 --multiEdges false
randomUpwardPlanarBiconnectedDigraph --n 32 --m 60
randomPlanarCNBGraph --n 32 --m 60 --b 5
randomTriconnectedGraph --n 32 --p1 0.5 --p2 0.5
randomPlanarTriconnectedGraph --n 32 --m 80
randomPlanarTriconnectedGraph --n 32 --p1 0.3 --p2 0.3
randomTree --n 32
randomTree --n 32 --maxDeg 4 --maxWidth 10
randomDigraph --n 32 --p 0.1
randomSeriesParallelDAG --edges 60 --p 0.5 --flt 0.0
randomGeometricCubeGraph --nodes 32 --threshold 0.3 --dimension 2
randomWaxmanGraph --nodes 32 --alpha 0.5 --beta 0.2 --width 1.0 --height 1.0
preferentialAttachmentGraph --nodes 32 --minDegree 2
randomWattsStrogatzGraph --n 32 --k 4 --probability 0.3
randomHierarchy --n 32 --m 3 --planar true --singleSource true --longEdges false
pruneEdges --max_edges 60 --min_deg 2
'@

# generate graphs and layout/render with GephiCommander
$genLines | % {
$genCode = $_ -replace '\s+'
$outFile = Join-Path (gi ./img/) "$genCode$(Get-Date -Format FileDateTime).png"
$generatorArgs = $_ -split ' '
$expr = /bin/echo `& $ogdfCli --generate @generatorArgs --out-file delme.dot
Invoke-Expression $expr
@(
  @{op='import'; file='delme.dot' }
  @{op='preview'; 'background-color'='#171717'; 'nodeLabelShow'=$true; }
  @{op='colorNodesBy';column='degree'; mode='ranking'}
  @{op='labelNodesBy';column='degree'; }
  @{op='layouts'; values=@(
    @{name='ForceAtlas2'; steps=200}
    @{name='Expansion'; 'Density'=5000; steps=1;  }
  )}
  @{op='export';file=$outFile; timestamp=$false; resolution=@(512,512); }
) | ConvertTo-Json -d 9 | java -jar $gephiCommander -
$cmdEscaped = $generatorArgs -join ' '
magick $outFile -gravity SouthWest -undercolor "rgba(0,0,0,0.5)" -fill white -pointsize "%[fx:int(h*0.04)]" -annotate +10+10 $cmdEscaped $outFile
}

# Put all pngs into $files var and combine them into a grid
magick montage $files -tile "${cols}x${rows}" -geometry "400x400+2+2" -background "black" "img/grid_output$(Get-Date -Format FileDateTime).png"
view more: next ›