https://agafonkin.com/

Submitted URL:
https://agafonkin.com/
Report Finished:

The outgoing links identified from the page

LinkText
https://leafletjs.comLeaflet
https://github.com/mourner/projects40+ other
https://mapbox.comMapbox
https://rain.in.ua/goObiymyDoschu
https://rain.in.ua/go/sonlast album
https://www.goodreads.com/user/show/7379374-vladimirreading
https://twitter.com/mournerX (Twitter)
https://www.instagram.com/mournerv/Instagram
https://www.facebook.com/agafonkinFacebook
https://www.mapbox.com/blog/adaptive-projectionsReimagining projections for the interactive maps era

JavaScript Variables · 12 found

Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope

NameType
onbeforetogglestring
documentPictureInPicturestring
onscrollendstring
gtagstring
dataLayerstring
google_tag_managerstring
google_tag_datastring
GoogleAnalyticsObjectstring
gastring
gapluginsstring

Console log messages · 0 found

Messages logged to the web console

HTML

The raw HTML body of the page

<!DOCTYPE html><html lang="en" dir="ltr"><head>
    <title>Volodymyr Agafonkin</title>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" property="og:description" content="Software engineer, open source enthusiast, rock musician, father of twin girls, Ukrainian.">

    <meta property="og:title" content="Volodymyr Agafonkin">
    <meta property="og:url" content="https://agafonkin.com">
    <meta property="og:type" content="website">
    <meta property="og:image" content="https://agafonkin.com/me.png">
    <meta property="og:image:width" content="460">
    <meta property="og:image:height" content="620">

    <meta name="twitter:card" content="summary">
    <meta name="twitter:site" content="@mourner">

    <link rel="stylesheet" href="index.css">
    <link rel="icon" type="image/x-icon" href="/favicon.ico">
    <link rel="preconnect" href="https://www.google-analytics.com">
</head>

<body>

<div class="container">
    <h1>Hi! I'm <span>Volodymyr Agafonkin</span>.</h1>

    <p>I'm a <strong>software engineer</strong>. I created <a href="https://leafletjs.com">Leaflet</a>, the number one library for interactive web maps, and maintain <a href="https://github.com/mourner/projects">40+ other</a> open source projects with a focus on algorithms, computational geometry and performance. I'm building the future of maps at <a href="https://mapbox.com">Mapbox</a>.</p>
    <p>I'm a <strong>musician</strong>. I write songs, play guitar and sing in <a href="https://rain.in.ua/go">Obiymy&nbsp;Doschu</a>. If you like beautiful, evocative, multilayered rock music with string arrangements, check out our <a href="https://rain.in.ua/go/son">last album</a>.</p>
    <p>I'm a <strong>father</strong> to beautiful <span id="girls-age">10</span>-year-old twin girls, I'm happily married and live in Kyiv, Ukraine. I&nbsp;love baking, photography, strength training, martial arts, <a href="https://www.goodreads.com/user/show/7379374-vladimir">reading</a>, and exploring quiet parks. You can find tidbits of my life on <a href="https://twitter.com/mourner">X (Twitter)</a>, <a href="https://www.instagram.com/mournerv/">Instagram</a> and <a href="https://www.facebook.com/agafonkin">Facebook</a>.</p>

    <img class="portrait" src="me.png" alt="Volodymyr Agafonkin" width="230" height="310">

    <p>Here are a few of my best articles:</p>

    <ul>
        <li><a href="https://www.mapbox.com/blog/adaptive-projections">Reimagining projections for the interactive maps era</a></li>
        <li><a href="https://blog.mapbox.com/how-i-built-a-wind-map-with-webgl-b63022b5537f">How I built a wind map with WebGL</a></li>
        <li><a href="https://blog.mapbox.com/a-dive-into-spatial-search-algorithms-ebd0c5e39d2a">A dive into spatial search algorithms</a></li>
        <li><a href="https://observablehq.com/@mourner/martin-real-time-rtin-terrain-mesh">MARTINI: Real-Time Terrain Mesh Generator</a></li>
        <li><a href="https://blog.mapbox.com/rendering-big-geodata-on-the-fly-with-geojson-vt-4e4d2a5dd1f2">Rendering big geodata on the fly with GeoJSON-VT</a></li>
        <li><a href="https://blog.mapbox.com/fast-geodesic-approximations-with-cheap-ruler-106f229ad016">Fast geodesic approximations with Cheap Ruler</a></li>
        <li><a href="https://blog.mapbox.com/clustering-millions-of-points-on-a-map-with-supercluster-272046ec5c97">Clustering millions of points on a map with Supercluster</a></li>
        <li><a href="https://observablehq.com/@mourner/simple-web-map">A web map from scratch</a></li>
        <li><a href="https://observablehq.com/@mourner/kinematics-of-reverse-angle-parking">Kinematics of reverse-angle parking</a></li>
        <li><a href="https://blog.mapbox.com/introducing-heatmaps-in-mapbox-gl-js-71355ada9e6c">Introducing heatmaps in Mapbox GL</a></li>
        <li><a href="https://blog.mapbox.com/a-new-algorithm-for-finding-a-visual-center-of-a-polygon-7c77e6492fbc">A new algorithm for finding a visual center of a polygon</a></li>
        <li><a href="https://observablehq.com/@mourner/were-kyiv-winters-as-snowy-as-i-remember-as-a-kid">Where Kyiv winters as snowy as I remember as a kid?</a></li>
        <li><a href="https://medium.com/@agafonkin/how-to-give-awesome-public-talks-a2b727f4bc24">How to give awesome public talks</a></li>
    </ul>

    <p>You can reach me by e-mail: <a href="mailto:[email protected]">[email protected]</a>.</p>

    <p id="stand-with-ukraine"><a href="https://vshymanskyy.github.io/StandWithUkraine" title="Stand With Ukraine"><img width="900" src="https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg"></a></p>
</div>

<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-1DNK8G5LVR&amp;l=dataLayer&amp;cx=c"></script><script>
    // make sure the age is right if I don't update the page for a few years
    document.getElementById('girls-age').innerText = Math.round((Date.now() - new Date(2014, 6, 7)) / (24 * 36e5 * 365));
</script>
<script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-4147697-2"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){ dataLayer.push(arguments); }
    gtag('js', new Date());
    gtag('config', 'UA-4147697-2');
</script>

</body></html>