{"version":"https://jsonfeed.org/version/1.1","expired":false,"language":"en-au","title":"Built on Sam Petherbridge","description":"Products and tools built through Forest Green Digital — from construction calculators used globally, to AI-powered platforms for professional services.","home_page_url":"https://peth.me/built/","feed_url":"https://peth.me/built/index.json","authors":[{"name":"Sam Petherbridge"}],"favicon":"https://peth.me/favicon.ico","items":[{"title":"Status Codes","id":"https://peth.me/built/http-status/","url":"https://peth.me/built/http-status/","summary":"statuscodes.peth.me is free to use, allowing its users to return any valid HTTP status code between 200-599. It supports the GET, POST, PUT, PATCH, DELETE, COPY, HEAD, OPTIONS, LOCK, UNLOCK, and PROPFIND request types.","content_html":"\u003cp\u003eIn mid-2019, I started using \u003ca href=\"https://workers.cloudflare.com\"\u003eCloudflare Workers\u003c/a\u003e to serve my static website from Backblaze B2. Fast forward to 2020, and I migrated my website to \u003ca href=\"https://workers.cloudflare.com/sites\"\u003eWorker Sites\u003c/a\u003e. I was impressed by the speed and abilities of \u003ca href=\"https://workers.cloudflare.com\"\u003eCloudflare Workers\u003c/a\u003e and wanted to better under potential applications of this technology.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://statuscodes.peth.me/\"\u003eStatusCodes.peth.me\u003c/a\u003e is free to use, allowing users to return any valid HTTP status code between 200-599. It supports the GET, POST, PUT, PATCH, DELETE, COPY, HEAD, OPTIONS, LOCK, UNLOCK, and PROPFIND request types.\u003c/p\u003e\n\u003cp\u003eProgramming Language: Javascript, HTML\u003c/p\u003e\n\u003cp\u003eTechnologies: \u003ca href=\"https://workers.cloudflare.com\"\u003eCloudflare Workers\u003c/a\u003e\u003c/p\u003e\n","content_text":"In mid-2019, I started using Cloudflare Workers to serve my static website from Backblaze B2. Fast forward to 2020, and I migrated my website to Worker Sites. I was impressed by the speed and abilities of Cloudflare Workers and wanted to better under potential applications of this technology.\nStatusCodes.peth.me is free to use, allowing users to return any valid HTTP status code between 200-599. It supports the GET, POST, PUT, PATCH, DELETE, COPY, HEAD, OPTIONS, LOCK, UNLOCK, and PROPFIND request types.\nProgramming Language: Javascript, HTML\nTechnologies: Cloudflare Workers\n","date_published":"2020-01-07T21:00:00+1000","authors":[{"name":"Sam Petherbridge"}]},{"title":"DigitalAd.Tech","id":"https://peth.me/built/digitalad-tech/","url":"https://peth.me/built/digitalad-tech/","summary":"DigitalAd.Tech is a now-discontinued project that sought to find connections between websites for the purpose of identifying sites that should potentially be added to programmatic blocklists.","content_html":"\u003cp\u003eIn 2018, working in the space of programmatic advertising, I became interested in the connections between sites that can be discovered by analysing their \u003ca href=\"https://en.wikipedia.org/wiki/Ads.txt\"\u003eads.txt files\u003c/a\u003e and among other attributes. From this, I created the site DigitalAd.Tech, to find websites that should be considered for addition to existing blocklists in programmatic buying systems. While built as a hobby and outside of work, this project did directly increase my efficiency reviewing sites to be blocked buying programmatic advertising and while it is difficult to quantify I would like to hope the media performance for the clients where these blocklist improvements where applied.\u003c/p\u003e\n\u003cp\u003ePrimarily built over the course of a few nights in late November 2018 the DigitalAd.Tech system was able to find connections between sites and understand the networks that ad resellers had using:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAds.Txt file entries.\u003c/li\u003e\n\u003cli\u003eApp-Ads.Txt file entries.\u003c/li\u003e\n\u003cli\u003eServer IP Addresses.\u003c/li\u003e\n\u003cli\u003eDomain Whois information.\u003c/li\u003e\n\u003cli\u003eDNS records, particularly txt verification entries.\u003c/li\u003e\n\u003cli\u003eSocial sharing meta information.\u003c/li\u003e\n\u003cli\u003eGoogle Analytics tracking code.\u003c/li\u003e\n\u003cli\u003eGoogle Tag Manager Code.\u003c/li\u003e\n\u003cli\u003eFacebook Tracking code.\u003c/li\u003e\n\u003cli\u003eVarious other tracking code implementations with unique identifiers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIndividually a number of these attributes would not be a significant indication of a connection; together they aided in identifying thousands of sites that had strong relationships to sites that had already been placed on our programmatic blocklists.\u003c/p\u003e\n\u003cp\u003eAfter a year of running this project, and scanning hundreds or thousands if not millions of sites (I wish I had backed up the databases before deleting them, so I knew this number!), and learning about the inconsistencies of the web, the datasets had grown to the point that my personal server could no longer respond in a reasonable time to requests. With the application requiring rearchitecting and my personal attention turned elsewhere, I decided that it was time to discontinue this project.\u003c/p\u003e\n\u003cp\u003eProgramming Languages: Python, HTML, CSS\nFramework: Django, Bootstrap\nTechnologies: Celery, RabitMq, Sendgrid, SQLite, Postgres\u003c/p\u003e\n","content_text":"In 2018, working in the space of programmatic advertising, I became interested in the connections between sites that can be discovered by analysing their ads.txt files and among other attributes. From this, I created the site DigitalAd.Tech, to find websites that should be considered for addition to existing blocklists in programmatic buying systems. While built as a hobby and outside of work, this project did directly increase my efficiency reviewing sites to be blocked buying programmatic advertising and while it is difficult to quantify I would like to hope the media performance for the clients where these blocklist improvements where applied.\nPrimarily built over the course of a few nights in late November 2018 the DigitalAd.Tech system was able to find connections between sites and understand the networks that ad resellers had using:\nAds.Txt file entries. App-Ads.Txt file entries. Server IP Addresses. Domain Whois information. DNS records, particularly txt verification entries. Social sharing meta information. Google Analytics tracking code. Google Tag Manager Code. Facebook Tracking code. Various other tracking code implementations with unique identifiers. Individually a number of these attributes would not be a significant indication of a connection; together they aided in identifying thousands of sites that had strong relationships to sites that had already been placed on our programmatic blocklists.\nAfter a year of running this project, and scanning hundreds or thousands if not millions of sites (I wish I had backed up the databases before deleting them, so I knew this number!), and learning about the inconsistencies of the web, the datasets had grown to the point that my personal server could no longer respond in a reasonable time to requests. With the application requiring rearchitecting and my personal attention turned elsewhere, I decided that it was time to discontinue this project.\nProgramming Languages: Python, HTML, CSS Framework: Django, Bootstrap Technologies: Celery, RabitMq, Sendgrid, SQLite, Postgres\n","date_published":"2020-30-06T00:00:00+1000","authors":[{"name":"Sam Petherbridge"}]}]}