{
  "anodetome.com": {
    "/2013/07/12/dynamic-smtp-settings-per-message-in-symfony2.html": {
      "date": "2026-02-13T22:07:00Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "104.21.76.139",
      "ipASN": "Cloudflare, Inc.",
      "ipCountry": null,
      "httpHeaderHash": "LX5VYSJPVWCVCOPPDTAKOFS6YRVLA7OM",
      "httpHeaderTechnologies": [
        "Cloudflare",
        "HTTP/3"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 643,
      "httpBodyHash": "AJ6C64DWKKSJUNULR2HYNCXME5NTXWXD",
      "httpBodyTechnologies": [
        "Jekyll:4.2.1",
        "Cloudflare Browser Insights",
        "Ruby"
      ],
      "httpBodyUrls": [
        "/about/",
        "/assets/main.css",
        "https://anodetome.com/2013/07/12/dynamic-smtp-settings-per-message-in-symfony2.html",
        "https://github.com/westinpigott",
        "/assets/favicons/favicon-32x32.png",
        "/assets/favicons/apple-touch-icon.png",
        "/",
        "/assets/favicons/favicon.ico",
        "https://anodetome.com/feed.xml",
        "/assets/favicons/safari-pinned-tab.svg",
        "https://github.com/TDMobility/SwiftmailerEventsBundle",
        "/2013/07/12/dynamic-smtp-settings-per-message-in-symfony2.html",
        "http://stackoverflow.com/questions/10723129/changing-smtp-settings-in-swiftmailer-dynamically",
        "https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015",
        "/assets/favicons/site.webmanifest",
        "/assets/favicons/favicon-16x16.png",
        "https://www.twitter.com/westinpigott",
        "https://packagist.org/packages/tdm/swiftmailer-events-bundle"
      ],
      "httpBodyMetaTags": {
        "description": "The Problem",
        "og:description": "The Problem"
      },
      "httpBodyByteSize": 12179,
      "httpBodyPageTitle": "Dynamic SMTP settings per message in Symfony2 | An Ode To Me"
    }
  },
  "jekyll-bonsai.netlify.app": {
    "/entry/77cf6ad607/": {
      "date": "2026-02-14T01:29:47Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "98.84.224.111",
      "ipASN": "Amazon.com, Inc.",
      "ipCountry": "United States",
      "httpHeaderHash": "ORF727LJTHZ2APATRDBQU7JSCDYPQBYK",
      "httpHeaderTechnologies": [
        "HSTS",
        "Netlify"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 515,
      "httpBodyHash": "EMU5WFKMVXFRXUXO6DR6IF6IMWRDDBOL",
      "httpBodyTechnologies": [
        "Unpkg",
        "Lunr.js",
        "Jekyll:4.2.1",
        "Ruby"
      ],
      "httpBodyUrls": [
        "/entry/f9a83f2ea6/",
        "//unpkg.com/element-resize-detector/dist/element-resize-detector.min.js",
        "/recent",
        "/stat/2f14a0997e/",
        "https://unpkg.com/lunr/lunr.js",
        "/",
        "/stat/448e83d224/",
        "/stat/b8d9ef01f9/",
        "/entry/460517a572/",
        "/entry/a19d898449/",
        "/assets/js/scripts.js",
        "/assets/css/styles.css",
        "https://jekyll-bonsai.netlify.app",
        "#",
        "/about/",
        "/feed.xml",
        "/stat/0e8b1e8be9/",
        "/entry/059a345cc6/",
        "/entry/e4dc466bc6/",
        "//unpkg.com/force-graph",
        "https://d3js.org/d3.v6.min.js",
        "/archive",
        "/privacy",
        "/privacy/",
        "/stat/296dd2839b/",
        "/entry/7ecd85512e/"
      ],
      "httpBodyMetaTags": {
        "description": "This is a [[feat.doc.type.state]]-specific frontmatter variable used to render the [[feat.doc.fm.status]] of certain documents throughout the site.",
        "og:description": "This is a [[feat.doc.type.state]]-specific frontmatter variable used to render the [[feat.doc.fm.status]] of certain documents throughout the site."
      },
      "httpBodyByteSize": 29888,
      "httpBodyPageTitle": "Emoji"
    },
    "/entry/7be41b1b1f/": {
      "date": "2026-02-14T00:32:01Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "18.208.88.157",
      "ipASN": "Amazon.com, Inc.",
      "ipCountry": "United States",
      "httpHeaderHash": "XPRSAFW2I3LXVJ5S6EKU3SO5PY72ELSP",
      "httpHeaderTechnologies": [
        "HSTS",
        "Netlify"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 515,
      "httpBodyHash": "EEG7UUVIGYDMPILLRILV2QLS7SJ3BOH7",
      "httpBodyTechnologies": [
        "Ruby",
        "Unpkg",
        "Lunr.js",
        "Jekyll:4.2.1"
      ],
      "httpBodyUrls": [
        "/privacy/",
        "/stat/2f14a0997e/",
        "/entry/7f205b379d/",
        "/entry/e4dc466bc6/",
        "https://d3js.org/d3.v6.min.js",
        "/recent",
        "/feed.xml",
        "/stat/296dd2839b/",
        "/stat/448e83d224/",
        "/stat/b8d9ef01f9/",
        "/entry/92a714c807/",
        "/entry/e002fd0f60/",
        "/assets/css/styles.css",
        "#",
        "/",
        "/about/",
        "/archive",
        "/stat/0e8b1e8be9/",
        "/entry/4db646ee52/",
        "/entry/f3d8693ebd/",
        "/assets/js/scripts.js",
        "/privacy",
        "//unpkg.com/force-graph",
        "https://unpkg.com/lunr/lunr.js",
        "https://jekyll-bonsai.netlify.app",
        "//unpkg.com/element-resize-detector/dist/element-resize-detector.min.js"
      ],
      "httpBodyMetaTags": {
        "description": "literal::[[feat.doc.type.entry.links]]",
        "og:description": "literal::[[feat.doc.type.entry.links]]"
      },
      "httpBodyByteSize": 29132,
      "httpBodyPageTitle": "🚏 Fork"
    }
  },
  "jemson.org": {
    "/": {
      "date": "2026-02-08T19:57:00Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "172.67.154.131",
      "ipASN": "Cloudflare, Inc.",
      "ipCountry": null,
      "httpHeaderHash": "ZD4GJN64MXEFIN5OEL75OSBQPJA4ZOGI",
      "httpHeaderTechnologies": [
        "HTTP/3",
        "Cloudflare"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 702,
      "httpBodyHash": "PBDO5XKLZPJ2YJBIBSONMAD6TMIT5CTF",
      "httpBodyTechnologies": [
        "Google Analytics",
        "Cloudflare Browser Insights"
      ],
      "httpBodyUrls": [
        "index.html",
        "https://blog.jemson.org",
        "http://www.html5webtemplates.co.uk",
        "https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015",
        "files.php",
        "tools.php",
        "style/style.css",
        "https://www.callation.com",
        "https://www.googletagmanager.com/gtag/js?id=UA-137364519-1",
        "index.php"
      ],
      "httpBodyMetaTags": {
        "description": "website description"
      },
      "httpBodyByteSize": 3637,
      "httpBodyPageTitle": "jemson.org"
    },
    "/Docker-and-iptables": {
      "date": "2026-02-06T22:37:00Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "104.21.82.74",
      "ipASN": "Cloudflare, Inc.",
      "ipCountry": null,
      "httpHeaderHash": "2QEUHTQ7REGOQZZTLQUDOTBUQHRCN3Q3",
      "httpHeaderTechnologies": [
        "HTTP/3",
        "Cloudflare"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 750,
      "httpBodyHash": "2UHTBIAPEAGG72WMHMZBFKD2JUJNJOS2",
      "httpBodyTechnologies": [
        "Ruby",
        "Jekyll:4.2.1",
        "Cloudflare Browser Insights"
      ],
      "httpBodyUrls": [
        "/archive",
        "/atom.xml",
        "/css/main.css",
        "https://creativecommons.org/licenses/by-nc/3.0/deed.en_US",
        "https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015",
        "/",
        "/about"
      ],
      "httpBodyMetaTags": {
        "description": "Something that came to bite me this week, was Docker’s ability to insert it’s own iptables rules completely bypassing firewall-cmd / ufw.",
        "og:description": "Something that came to bite me this week, was Docker’s ability to insert it’s own iptables rules completely bypassing firewall-cmd / ufw."
      },
      "httpBodyByteSize": 4387,
      "httpBodyPageTitle": "Docker and iptables"
    },
    "/index.php": {
      "date": "2026-02-08T19:11:36Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "104.21.82.74",
      "ipASN": "Cloudflare, Inc.",
      "ipCountry": null,
      "httpHeaderHash": "LFI2I4ESTAGTDA5LDYGOXHLL6IPGZJJ6",
      "httpHeaderTechnologies": [
        "Cloudflare",
        "HTTP/3"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 709,
      "httpBodyHash": "PBDO5XKLZPJ2YJBIBSONMAD6TMIT5CTF",
      "httpBodyTechnologies": [
        "Cloudflare Browser Insights",
        "Google Analytics"
      ],
      "httpBodyUrls": [
        "files.php",
        "tools.php",
        "https://blog.jemson.org",
        "https://www.callation.com",
        "http://www.html5webtemplates.co.uk",
        "https://www.googletagmanager.com/gtag/js?id=UA-137364519-1",
        "index.php",
        "index.html",
        "style/style.css",
        "https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015"
      ],
      "httpBodyMetaTags": {
        "description": "website description"
      },
      "httpBodyByteSize": 3637,
      "httpBodyPageTitle": "jemson.org"
    },
    "/page/2/": {
      "date": "2026-02-06T22:56:34Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "104.21.82.74",
      "ipASN": "Cloudflare, Inc.",
      "ipCountry": null,
      "httpHeaderHash": "S32CTC4OVJEOG6UHTGOIVS6Y7KZHRJQD",
      "httpHeaderTechnologies": [
        "HTTP/3",
        "Cloudflare"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 755,
      "httpBodyHash": "7HLCDCRISIXLZAHOQYEZLSMWFVAQHLTF",
      "httpBodyTechnologies": [
        "Ruby",
        "Jekyll:4.2.1",
        "Cloudflare Browser Insights"
      ],
      "httpBodyUrls": [
        "/",
        "/archive",
        "/atom.xml",
        "/css/main.css",
        "/Django-ALLOWED_HOSTS-Limitation",
        "/Installing-DotNet3.5-Without-DVD",
        "/about",
        "/page/3/",
        "/SSH-Port-Forwarding",
        "https://creativecommons.org/licenses/by-nc/3.0/deed.en_US",
        "https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015"
      ],
      "httpBodyMetaTags": {
        "description": "A Blog For My Everyday",
        "og:description": "A Blog For My Everyday"
      },
      "httpBodyByteSize": 4247,
      "httpBodyPageTitle": "Jemson's Blog"
    }
  },
  "jimlaw.org": {
    "/2023-06-30-presentation-at-lsrl": {
      "date": "2026-02-14T01:40:32Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "98.84.224.111",
      "ipASN": "Amazon.com, Inc.",
      "ipCountry": "United States",
      "httpHeaderHash": "5C6XEKU6JUDLV2474YUI5CGBHUY7ZABK",
      "httpHeaderTechnologies": [
        "HSTS",
        "Netlify"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 486,
      "httpBodyHash": "SCD4J5B74JOHJFX4Q7MHO4LQE5XCHOSP",
      "httpBodyTechnologies": [
        "Jekyll:4.2.1",
        "Ruby"
      ],
      "httpBodyUrls": [
        "/blog",
        "/research",
        "/teaching",
        "mailto:jimlaw@byu.edu",
        "https://github.com/jimlaloi",
        "https://www.twitter.com/jimlaloi",
        "https://scholar.google.com/citations?user=M4dxFHkAAAAJ\u0026hl=en",
        "/",
        "/cv",
        "/feed.xml",
        "/assets/css/styles.css",
        "https://fonts.googleapis.com/css?family=Source+Sans+Pro"
      ],
      "httpBodyMetaTags": {
        "description": "I presented this week at the 53rd Linguistic Symposium on Romance Languages. Typically this conference is held somewhere in North America, but this year it was in Paris, so I made it a real priority to go! I presented with my colleague Adam McBride on allophonic variation in Poitevin-Saintongeais, an endangered minority Gallo-Romance language of western France.",
        "og:description": "I presented this week at the 53rd Linguistic Symposium on Romance Languages. Typically this conference is held somewhere in North America, but this year it was in Paris, so I made it a real priority to go! I presented with my colleague Adam McBride on allophonic variation in Poitevin-Saintongeais, an endangered minority Gallo-Romance language of western France."
      },
      "httpBodyByteSize": 6987,
      "httpBodyPageTitle": "Jim Law | Presentation at LSRL"
    },
    "/2024-02-17-presentations-at-oer-conference": {
      "date": "2026-02-14T01:57:09Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "98.84.224.111",
      "ipASN": "Amazon.com, Inc.",
      "ipCountry": "United States",
      "httpHeaderHash": "GHHIACVPDLDX73ROFYITXGVKXDFAGFS4",
      "httpHeaderTechnologies": [
        "HSTS",
        "Netlify"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 487,
      "httpBodyHash": "VQGOAOVZZKOFAX45TTNINVIL6U6FSGZL",
      "httpBodyTechnologies": [
        "Ruby",
        "Jekyll:4.2.1"
      ],
      "httpBodyUrls": [
        "https://edtechbooks.org/grammaire_ouverte",
        "/teaching",
        "https://github.com/jimlaloi",
        "https://edtechbooks.org/italiano_avanzato",
        "https://olrc.ku.edu/language-oer-conference",
        "https://fonts.googleapis.com/css?family=Source+Sans+Pro",
        "/",
        "/research",
        "/assets/css/styles.css",
        "https://www.twitter.com/jimlaloi",
        "https://edtechbooks.org/linguistique",
        "/blog",
        "mailto:jimlaw@byu.edu",
        "https://scholar.google.com/citations?user=M4dxFHkAAAAJ\u0026hl=en",
        "/cv",
        "/feed.xml"
      ],
      "httpBodyMetaTags": {
        "description": "Today I gave two presentations at the 4th annual Language OER Conference sponsored by the Open Language Resource Center at the University of Kansas. This is an annual online conference where authors of open educational resources (OER) can share the textbooks or other resources that they have created with the language teaching community. In the past two years, I’ve written or co-written two free and open textbooks: Grammaire Ouverte, for advanced French Grammar, and Introduction à la linguistique française, which was co-authored with my colleague Adam McBride for our Intro to French Linguistics course. Grammaire Ouverte served as a model for my colleagues in the Italian section, who wrote a new textbook for their advanced Italian courses. I was able to co-present on these three textbooks with Marie Orton and with Adam. I’m happy to be part of the OER community, producing content that saves students money and gives flexibility to teachers.",
        "og:description": "Today I gave two presentations at the 4th annual Language OER Conference sponsored by the Open Language Resource Center at the University of Kansas. This is an annual online conference where authors of open educational resources (OER) can share the textbooks or other resources that they have created with the language teaching community. In the past two years, I’ve written or co-written two free and open textbooks: Grammaire Ouverte, for advanced French Grammar, and Introduction à la linguistique française, which was co-authored with my colleague Adam McBride for our Intro to French Linguistics course. Grammaire Ouverte served as a model for my colleagues in the Italian section, who wrote a new textbook for their advanced Italian courses. I was able to co-present on these three textbooks with Marie Orton and with Adam. I’m happy to be part of the OER community, producing content that saves students money and gives flexibility to teachers."
      },
      "httpBodyByteSize": 10007,
      "httpBodyPageTitle": "Jim Law | Presentations at OER conference"
    }
  },
  "pvigier.github.io": {
    "/2020/02/": {
      "date": "2026-02-14T04:44:31Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "185.199.108.153",
      "ipASN": "Fastly, Inc.",
      "ipCountry": "United States",
      "httpHeaderHash": "3NPSQG2LO3KWCGXYKORZFBT7ZEZDPUMT",
      "httpHeaderTechnologies": [
        "Fastly",
        "Varnish",
        "GitHub Pages"
      ],
      "httpHeaderUrls": [
        "a4ce:4C342:A6FACA:B68390:698FFDAE"
      ],
      "httpHeaderByteSize": 769,
      "httpBodyHash": "TBQXRGIZZYDOYHDE637U2PN72DD6MZUU",
      "httpBodyTechnologies": [
        "Jekyll:4.2.1",
        "jQuery:1.12.4",
        "Bootstrap:3.3.7",
        "BootstrapCDN:3.3.7",
        "Google Hosted Libraries",
        "Ruby",
        "MathJax",
        "Twitter"
      ],
      "httpBodyUrls": [
        "/tag/git",
        "/2017/08",
        "/2019/09",
        "/media/css/syntax.css",
        "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js",
        "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css",
        "/media/css/style.css",
        "/2018/05",
        "/2020/12",
        "/rss.xml",
        "/projects/",
        "/tag/graph",
        "/tag/game-engine",
        "http://getbootstrap.com",
        "/2021/03",
        "http://jekyllrb.com",
        "/media/img/favicon.png",
        "/2017/02",
        "/2017/07",
        "/2018/10",
        "/2019/05",
        "/2020/03",
        "/tag/vagabond",
        "https://platform.twitter.com/widgets.js",
        "/2018/11",
        "/2020/02",
        "https://pvigier.itch.io/",
        "/media/img/wishlist_vagabond.png",
        "https://twitter.com/PierreVigier",
        "/2020/02/09/vagabond-building-generation.html",
        "https://store.steampowered.com/app/1673090/Vagabond/?utm_source=devblog\u0026utm_medium=referral\u0026utm_campaign=devblog",
        "/2019/06",
        "/tag/ecs",
        "https://github.com/pvigier",
        "https://pvigier.github.io/2020/02/",
        "/tag/geometry",
        "https://www.vagabondgame.com/",
        "/2018/02",
        "/2018/06",
        "/2019/11",
        "/articles/",
        "/tag/simulopolis",
        "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",
        "/",
        "/2019/07",
        "/tag/cpp",
        "/tag/linux",
        "/2022/11",
        "/tag/python",
        "#",
        "/media/css/modal.css",
        "https://pvigier.github.io/rss.xml",
        "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js",
        "/about/",
        "/2019/08",
        "/2019/10",
        "/tag/pcg",
        "/tag/math",
        "/media/js/modal.js",
        "https://twitter.com/PierreVigier?ref_src=twsrc%5Etfw"
      ],
      "httpBodyMetaTags": {},
      "httpBodyByteSize": 10951,
      "httpBodyPageTitle": "pvigier’s blog"
    },
    "/tag/git/": {
      "date": "2026-02-14T04:14:32Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "185.199.110.153",
      "ipASN": "Fastly, Inc.",
      "ipCountry": "United States",
      "httpHeaderHash": "RQZKOITJQHPAHF7IMBEVOLVC5R5KLEOC",
      "httpHeaderTechnologies": [
        "Fastly",
        "Varnish",
        "GitHub Pages"
      ],
      "httpHeaderUrls": [
        "ecdc:4249F:A5851C:B46687:698FF6A8"
      ],
      "httpHeaderByteSize": 794,
      "httpBodyHash": "Q4RONUNYAP5FEKFK2UFQPGPHNFTMLJOA",
      "httpBodyTechnologies": [
        "Ruby",
        "MathJax",
        "Twitter",
        "Jekyll:4.2.1",
        "jQuery:1.12.4",
        "Bootstrap:3.3.7",
        "BootstrapCDN:3.3.7",
        "Google Hosted Libraries"
      ],
      "httpBodyUrls": [
        "/projects/",
        "/2018/10",
        "/2018/11",
        "/articles/",
        "https://pvigier.itch.io/",
        "/2019/05/06/commit-graph-drawing-algorithms.html",
        "/media/img/favicon.png",
        "https://pvigier.github.io/rss.xml",
        "https://pvigier.github.io/tag/git/",
        "/",
        "/tag/game-engine",
        "https://www.vagabondgame.com/",
        "https://twitter.com/PierreVigier?ref_src=twsrc%5Etfw",
        "/2017/02",
        "/2019/05",
        "/rss.xml",
        "/tag/geometry",
        "http://getbootstrap.com",
        "https://store.steampowered.com/app/1673090/Vagabond/?utm_source=devblog\u0026utm_medium=referral\u0026utm_campaign=devblog",
        "/2018/05",
        "https://platform.twitter.com/widgets.js",
        "#",
        "/2019/09",
        "/about/",
        "/2018/02",
        "/2020/03",
        "/media/img/wishlist_vagabond.png",
        "/tag/linux",
        "http://jekyllrb.com",
        "/2017/07",
        "/2019/10",
        "/tag/cpp",
        "/tag/simulopolis",
        "/media/css/style.css",
        "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js",
        "/tag/ecs",
        "/tag/python",
        "/media/css/syntax.css",
        "https://github.com/pvigier",
        "https://twitter.com/PierreVigier",
        "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js",
        "/2019/07",
        "/2020/12",
        "/2022/11",
        "/tag/pcg",
        "/tag/graph",
        "/tag/vagabond",
        "/tag/math",
        "/media/css/modal.css",
        "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css",
        "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",
        "/2017/08",
        "/2019/06",
        "/2019/08",
        "/2021/03",
        "/tag/git",
        "/media/js/modal.js",
        "/2018/06",
        "/2019/11",
        "/2020/02"
      ],
      "httpBodyMetaTags": {},
      "httpBodyByteSize": 10591,
      "httpBodyPageTitle": "git | pvigier’s blog"
    },
    "/tag/graph/": {
      "date": "2026-02-14T04:37:35Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "185.199.110.153",
      "ipASN": "Fastly, Inc.",
      "ipCountry": "United States",
      "httpHeaderHash": "WXIHZ7V2CIXWAAFIZ7AL7UL7MGGTIDDV",
      "httpHeaderTechnologies": [
        "Fastly",
        "Varnish",
        "GitHub Pages"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 769,
      "httpBodyHash": "KEMMQS2BSOEPAOCLYSQUGP24VMD2CF3R",
      "httpBodyTechnologies": [
        "Bootstrap:3.3.7",
        "BootstrapCDN:3.3.7",
        "Google Hosted Libraries",
        "Ruby",
        "MathJax",
        "Twitter",
        "Jekyll:4.2.1",
        "jQuery:1.12.4"
      ],
      "httpBodyUrls": [
        "/2018/05",
        "/rss.xml",
        "/tag/geometry",
        "/2017/02",
        "/projects/",
        "/tag/vagabond",
        "https://twitter.com/PierreVigier",
        "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js",
        "https://store.steampowered.com/app/1673090/Vagabond/?utm_source=devblog\u0026utm_medium=referral\u0026utm_campaign=devblog",
        "/tag/cpp",
        "/tag/git",
        "/tag/pcg",
        "http://jekyllrb.com",
        "/media/css/style.css",
        "/media/img/favicon.png",
        "https://twitter.com/PierreVigier?ref_src=twsrc%5Etfw",
        "/2022/11",
        "/articles/",
        "/tag/linux",
        "http://getbootstrap.com",
        "https://www.vagabondgame.com/",
        "/",
        "/2017/07",
        "/2019/08",
        "/2019/09",
        "/tag/ecs",
        "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",
        "/2019/05",
        "/2019/10",
        "/tag/graph",
        "/media/js/modal.js",
        "/2018/02",
        "/2020/12",
        "/2021/03",
        "/media/css/modal.css",
        "/media/css/syntax.css",
        "/2019/05/06/commit-graph-drawing-algorithms.html",
        "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js",
        "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css",
        "/2017/08",
        "/tag/python",
        "/tag/simulopolis",
        "https://pvigier.itch.io/",
        "https://pvigier.github.io/rss.xml",
        "#",
        "/about/",
        "/tag/math",
        "/media/img/wishlist_vagabond.png",
        "https://pvigier.github.io/tag/graph/",
        "/2018/10",
        "/2018/06",
        "/2019/06",
        "/2019/07",
        "/2020/02",
        "https://github.com/pvigier",
        "https://platform.twitter.com/widgets.js",
        "/2018/11",
        "/2020/03",
        "/tag/game-engine",
        "/2019/11"
      ],
      "httpBodyMetaTags": {},
      "httpBodyByteSize": 10607,
      "httpBodyPageTitle": "graph | pvigier’s blog"
    }
  },
  "worklifewhatever.com": {
    "/cdn-cgi/l/email-protection": {
      "date": "2026-02-14T01:47:00Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "162.159.140.98",
      "ipASN": "Cloudflare, Inc.",
      "ipCountry": null,
      "httpHeaderHash": "GCKVO3472EFSEJKXRIGNBNMKQ52M5QWK",
      "httpHeaderTechnologies": [
        "Cloudflare"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 272,
      "httpBodyHash": "JHUTCAWM5BPEB2PVN6QQYQOEQ6QWPXWG",
      "httpBodyTechnologies": [],
      "httpBodyUrls": [
        "/cdn-cgi/styles/cf.errors.css",
        "https://www.cloudflare.com/5xx-error-landing",
        "https://www.cloudflare.com/sign-up?utm_source=email_protection",
        "https://developers.cloudflare.com/fundamentals/setup/account/create-account/",
        "https://developers.cloudflare.com/waf/tools/scrape-shield/email-address-obfuscation/"
      ],
      "httpBodyMetaTags": {},
      "httpBodyByteSize": 4686,
      "httpBodyPageTitle": "Email Protection | Cloudflare"
    },
    "/ruby-on-rails-by-hartl/": {
      "date": "2026-02-14T01:14:39Z",
      "httpProtocol": "h2, tls/1.3",
      "httpStatus": 200,
      "ipAddress": "172.66.0.96",
      "ipASN": "Cloudflare, Inc.",
      "ipCountry": null,
      "httpHeaderHash": "2U47RIFZA4IKHOZCWW2DIPLPNCOCMLUF",
      "httpHeaderTechnologies": [
        "HTTP/3",
        "Cloudflare",
        "Amazon Web Services",
        "Cloudflare Bot Management"
      ],
      "httpHeaderUrls": [],
      "httpHeaderByteSize": 981,
      "httpBodyHash": "BECCCSPU4Q4ECOKZ65GXFCGKH62JCS7O",
      "httpBodyTechnologies": [
        "Jekyll:4.2.1",
        "Ruby"
      ],
      "httpBodyUrls": [
        "#fnref:cloud9",
        "/favicon-16x16.png",
        "https://cdn.worklifewhatever.com/site/logo-light.svg",
        "/about/",
        "#fnref:scaffolding",
        "https://startpunkt.io",
        "https://www.learnenough.com/ruby-on-rails-6th-edition",
        "https://twitter.com/intent/tweet?screen_name=benedictbartsch",
        "https://facebook.com/sharer.php?u=https://worklifewhatever.com/ruby-on-rails-by-hartl/",
        "/imprint",
        "#fn:whatever",
        "/css/littlefoot.min.css",
        "https://www.indiehackers.com",
        "https://worklifewhatever.com/ruby-on-rails-by-hartl/",
        "https://www.learnenough.com/ruby-on-rails-6th-edition-tutorial",
        "http://cdn.worklifewhatever.com.s3.amazonaws.com/posts/misc/learning-rails-header-compressed.png",
        "/posts/",
        "/css/custom.css",
        "/css/simple.css",
        "/apple-touch-icon.png",
        "/timist-announcement/",
        "/",
        "/now/",
        "#fnref:whatever",
        "/site.webmanifest",
        "/favicon-32x32.png",
        "/cdn-cgi/l/email-protection#b2d0d7dcd7d6dbd1c6f2c1c6d3c0c6c2c7dcd9c69cdbdd",
        "/privacy",
        "/projects/",
        "#fn:scaffolding",
        "/featurecat-diaries/",
        "/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js",
        "#fn:cloud9",
        "/assets/plugins/littlefoot/littlefoot.js",
        "https://twitter.com/intent/tweet?text=Learn%20enough%20Ruby%20on%20Rails%20to%20be%20Dangerous%20-%20a%20Review\u0026url=https://worklifewhatever.com/ruby-on-rails-by-hartl/"
      ],
      "httpBodyMetaTags": {
        "description": "A review of learning Ruby on Rails with Michael Hartl’s aptly named book “Ruby on Rails Tutorial”. There are a plethora of web frameworks out there, all of which have their own tutorials and courses. But if you want to learn Ruby on Rails (and there a plenty of reasons to do just that), Hartl’s book might be one of the best.",
        "og:description": "A review of learning Ruby on Rails with Michael Hartl’s aptly named book “Ruby on Rails Tutorial”. There are a plethora of web frameworks out there, all of which have their own tutorials and courses. But if you want to learn Ruby on Rails (and there a plenty of reasons to do just that), Hartl’s book might be one of the best."
      },
      "httpBodyByteSize": 19107,
      "httpBodyPageTitle": "Learn enough Ruby on Rails to be Dangerous - a Review | Work.Life.Whatever."
    }
  }
}