diff --git a/Mi webring.gen.js b/Mi webring.gen.js index b378a8c..5bf0efe 100644 --- a/Mi webring.gen.js +++ b/Mi webring.gen.js @@ -17,7 +17,7 @@ export default async () => { const relativeLink = (link) => new URL(link, baseUrl).toString(); const rawFeed = await readFeed(name); - const { title, item, link } = parseFeed(rawFeed); + const { title, item, link } = parseFeed(baseUrl, rawFeed); articles.push( li( @@ -42,9 +42,10 @@ export default async () => { /** * parsea un feed de rss encontrando cosas que htmlparser2 solo no encuentra + * @param {string} feedUrl * @param {string} rawFeed */ -function parseFeed(rawFeed) { +function parseFeed(feedUrl, rawFeed) { const feed = _parseFeed(rawFeed); const item = feed?.items[0]; @@ -54,7 +55,11 @@ function parseFeed(rawFeed) { dom.childNodes, false )[0]; - const linksDom = getElementsByTagName("link", feedDom.childNodes, false); + const linksDom = getElementsByTagName( + (t) => ["link", "atom:link"].includes(t), + feedDom.childNodes, + false + ); const linkDom = linksDom.find( (d) => d.attribs.rel === "alternate" || @@ -62,6 +67,9 @@ function parseFeed(rawFeed) { // >If the "rel" attribute is not present, the link element MUST be interpreted as if the link relation type is "alternate". !("rel" in d.attribs) ); + + const feedUrll = new URL(feedUrl); + const link = linkDom?.attribs?.href || feedUrll.origin; if ( !feed || !feed.link || @@ -70,15 +78,14 @@ function parseFeed(rawFeed) { !item.link || !item.title || !item.pubDate || - !linkDom || - !linkDom.attribs.href + !link ) { throw "no pude parsear"; } return { title: feed.title, - link: linkDom.attribs.href, + link, item: { title: item.title, link: item.link, pubDate: item.pubDate }, }; } diff --git a/cached-feeds/brunoscheufler.xml b/cached-feeds/brunoscheufler.xml new file mode 100644 index 0000000..17c3469 --- /dev/null +++ b/cached-feeds/brunoscheufler.xml @@ -0,0 +1,1394 @@ + + + + Bruno Scheufler + https://brunoscheufler.com + Blog posts by Bruno Scheufler + + en-us + Sun, 30 Apr 2023 19:03:13 GMT + Sun, 30 Apr 2023 19:03:13 GMT + 60 + + + Reproducible VMs for Local Development + https://brunoscheufler.com/blog/2023-04-30-reproducible-vms-for-local-development + Sun, 30 Apr 2023 18:00:00 GMT + https://brunoscheufler.com/blog/2023-04-30-reproducible-vms-for-local-development + + + + Extending the Kubernetes Scheduler + https://brunoscheufler.com/blog/2023-04-23-extending-the-kubernetes-scheduler + Sun, 23 Apr 2023 18:00:00 GMT + https://brunoscheufler.com/blog/2023-04-23-extending-the-kubernetes-scheduler + + + + Adding Context: The First Weeks + https://brunoscheufler.com/blog/2023-03-26-adding-context-the-first-weeks + Sun, 26 Mar 2023 18:00:00 GMT + https://brunoscheufler.com/blog/2023-03-26-adding-context-the-first-weeks + + + + Generating Subtitles in Real-Time with OpenAI Whisper and PyAudio + https://brunoscheufler.com/blog/2023-03-12-generating-subtitles-in-real-time-with-openai-whisper-and-pyaudio + Sun, 12 Mar 2023 18:00:00 GMT + https://brunoscheufler.com/blog/2023-03-12-generating-subtitles-in-real-time-with-openai-whisper-and-pyaudio + + + + The OS for building products + https://brunoscheufler.com/blog/2023-03-01-the-os-for-building-products + Wed, 01 Mar 2023 18:00:00 GMT + https://brunoscheufler.com/blog/2023-03-01-the-os-for-building-products + + + + Improving Local Development with Atlas + https://brunoscheufler.com/blog/2023-02-05-improving-local-development-with-atlas + Sun, 05 Feb 2023 18:00:00 GMT + https://brunoscheufler.com/blog/2023-02-05-improving-local-development-with-atlas + + + + The most memorable computer science education is applied + https://brunoscheufler.com/blog/2023-01-29-the-most-memorable-computer-science-education-is-applied + Sun, 29 Jan 2023 18:00:00 GMT + https://brunoscheufler.com/blog/2023-01-29-the-most-memorable-computer-science-education-is-applied + + + + Using Static Code Analysis to Share Types Between Services + https://brunoscheufler.com/blog/2023-01-15-using-static-code-analysis-to-share-types-between-services + Sun, 15 Jan 2023 18:00:00 GMT + https://brunoscheufler.com/blog/2023-01-15-using-static-code-analysis-to-share-types-between-services + + + + Nested Flags with Bitwise Operators + https://brunoscheufler.com/blog/2023-01-08-nested-flags-with-bitwise-operators + Sun, 08 Jan 2023 18:00:00 GMT + https://brunoscheufler.com/blog/2023-01-08-nested-flags-with-bitwise-operators + + + + What's Next + https://brunoscheufler.com/blog/2022-12-31-whats-next + Sat, 31 Dec 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-12-31-whats-next + + + + Looking Back on 2022 + https://brunoscheufler.com/blog/2022-12-26-looking-back-on-2022 + Mon, 26 Dec 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-12-26-looking-back-on-2022 + + + + Calculating Rolling Billing Periods + https://brunoscheufler.com/blog/2022-12-18-calculating-rolling-billing-periods + Sun, 18 Dec 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-12-18-calculating-rolling-billing-periods + + + + Storing User-Defined Attributes in ClickHouse with Nested Types + https://brunoscheufler.com/blog/2022-12-11-storing-user-defined-attributes-in-clickhouse-with-nested-types + Sun, 11 Dec 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-12-11-storing-user-defined-attributes-in-clickhouse-with-nested-types + + + + Building delightful React applications has never been easier + https://brunoscheufler.com/blog/2022-12-04-building-delightful-react-applications + Sun, 04 Dec 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-12-04-building-delightful-react-applications + + + + Indirection is the antithesis of velocity + https://brunoscheufler.com/blog/2022-11-27-indirection-is-the-antithesis-of-velocity + Sun, 27 Nov 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-11-27-indirection-is-the-antithesis-of-velocity + + + + Serializing Data between Systems with Anzu Values + https://brunoscheufler.com/blog/2022-11-20-serializing-data-between-systems-anzu-values + Sun, 20 Nov 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-11-20-serializing-data-between-systems-anzu-values + + + + Betting on Delightful Products + https://brunoscheufler.com/blog/2022-11-06-betting-on-delightful-products + Sun, 06 Nov 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-11-06-betting-on-delightful-products + + + + Experiencing How Big Corporations Work for 240€ + https://brunoscheufler.com/blog/2022-10-30-experiencing-how-big-companies-work + Sun, 30 Oct 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-10-30-experiencing-how-big-companies-work + + + + Observations on Successful Companies + https://brunoscheufler.com/blog/2022-10-23-observations-on-successful-companies + Sun, 23 Oct 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-10-23-observations-on-successful-companies + + + + Offloading Execution Flow to the Database + https://brunoscheufler.com/blog/2022-10-10-offloading-execution-flow-to-the-database + Mon, 10 Oct 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-10-10-offloading-execution-flow-to-the-database + + + + Running untrusted code in short-lived environments for Anzu v1 + https://brunoscheufler.com/blog/2022-10-02-running-untrusted-code-in-short-lived-environments + Sun, 02 Oct 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-10-02-running-untrusted-code-in-short-lived-environments + + + + Building Sortable Relations with PostgreSQL + https://brunoscheufler.com/blog/2022-09-26-building-sortable-relations-with-postgresql + Mon, 26 Sep 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-09-26-building-sortable-relations-with-postgresql + + + + Making Architects work in Software Teams + https://brunoscheufler.com/blog/2022-09-18-making-architects-work-in-software-teams + Sun, 18 Sep 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-09-18-making-architects-work-in-software-teams + + + + Anzu Behind the Scenes: Why Resource Management Wasn’t It + https://brunoscheufler.com/blog/2022-09-11-why-resource-management-wasnt-it + Sun, 11 Sep 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-09-11-why-resource-management-wasnt-it + + + + Steady State means Continuous Rewriting + https://brunoscheufler.com/blog/2022-09-04-steady-state-means-continuous-rewriting + Sun, 04 Sep 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-09-04-steady-state-means-continuous-rewriting + + + + Sharing Code in TypeScript is (Still) a Mess + https://brunoscheufler.com/blog/2022-08-28-sharing-code-in-typescript-is-still-a-mess + Sun, 28 Aug 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-08-28-sharing-code-in-typescript-is-still-a-mess + + + + Balancing Normalization and Revision History + https://brunoscheufler.com/blog/2022-08-21-balancing-normalization-and-revision-history + Sun, 21 Aug 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-08-21-balancing-normalization-and-revision-history + + + + Handling Long-Running Jobs with AWS SQS + https://brunoscheufler.com/blog/2022-08-14-handling-long-running-jobs-with-aws-sqs + Sun, 14 Aug 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-08-14-handling-long-running-jobs-with-aws-sqs + + + + Deploying Containers on AWS ECS Using the SDK + https://brunoscheufler.com/blog/2022-08-07-deploying-containers-on-aws-ecs-using-the-sdk + Sun, 07 Aug 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-08-07-deploying-containers-on-aws-ecs-using-the-sdk + + + + Reducing Database Round-Trips with Boring Queries + https://brunoscheufler.com/blog/2022-07-24-reducing-database-round-trips-with-boring-queries + Sun, 24 Jul 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-07-24-reducing-database-round-trips-with-boring-queries + + + + Measuring Popularity or How Likes Don’t Tell the Full Story + https://brunoscheufler.com/blog/2022-07-17-measuring-popularity + Sun, 17 Jul 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-07-17-measuring-popularity + + + + Running Container Workloads on Anzu with Managed Containers + https://brunoscheufler.com/blog/2022-07-10-running-container-workloads-on-anzu-with-managed-containers + Sun, 10 Jul 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-07-10-running-container-workloads-on-anzu-with-managed-containers + + + + Improving Cache Hit Ratios with Connected DataLoaders + https://brunoscheufler.com/blog/2022-06-26-improving-cache-hit-ratios-with-connected-dataloaders + Sun, 26 Jun 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-06-26-improving-cache-hit-ratios-with-connected-dataloaders + + + + Introducing Anzu Dev Environments + https://brunoscheufler.com/blog/2022-06-19-introducing-anzu-dev-environments + Sun, 19 Jun 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-06-19-introducing-anzu-dev-environments + + + + Bridging the Gap between the Cloud and Your Codebase with Anzu Services + https://brunoscheufler.com/blog/2022-06-13-bridging-the-gap-between-the-cloud-and-your-codebase-with-anzu-services + Mon, 13 Jun 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-06-13-bridging-the-gap-between-the-cloud-and-your-codebase-with-anzu-services + + + + Deploying Docker Containers over SSH + https://brunoscheufler.com/blog/2022-06-05-deploying-docker-containers-over-ssh + Sun, 05 Jun 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-06-05-deploying-docker-containers-over-ssh + + + + Modeling Polymorphic Relations in Postgres + https://brunoscheufler.com/blog/2022-05-22-modeling-polymorphic-relations-in-postgres + Sun, 22 May 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-05-22-modeling-polymorphic-relations-in-postgres + + + + Making teams move faster, happier. + https://brunoscheufler.com/blog/2022-05-08-making-teams-move-faster-happier + Sun, 08 May 2022 18:00:00 GMT + https://brunoscheufler.com/blog/2022-05-08-making-teams-move-faster-happier + + + + Required GitHub Actions Jobs in a Monorepo + https://brunoscheufler.com/blog/2022-04-24-required-github-actions-jobs-in-a-monorepo + Sun, 24 Apr 2022 13:00:20 GMT + https://brunoscheufler.com/blog/2022-04-24-required-github-actions-jobs-in-a-monorepo + + + + Routing Traffic for Dynamic Deployments using Traefik + https://brunoscheufler.com/blog/2022-04-17-routing-traffic-for-dynamic-deployments-using-traefik + Sun, 17 Apr 2022 15:00:20 GMT + https://brunoscheufler.com/blog/2022-04-17-routing-traffic-for-dynamic-deployments-using-traefik + + + + The Required GitHub Status Check That Wasn't + https://brunoscheufler.com/blog/2022-04-09-the-required-github-status-check-that-wasnt + Sat, 09 Apr 2022 15:00:20 GMT + https://brunoscheufler.com/blog/2022-04-09-the-required-github-status-check-that-wasnt + + + + Building and pushing Docker images within GitHub Actions + https://brunoscheufler.com/blog/2022-03-27-building-and-pushing-docker-images-within-github-actions + Sun, 27 Mar 2022 15:00:20 GMT + https://brunoscheufler.com/blog/2022-03-27-building-and-pushing-docker-images-within-github-actions + + + + Understanding Deferred Foreign Key Constraints in PostgreSQL + https://brunoscheufler.com/blog/2022-03-20-understanding-deferred-foreign-key-constraints-in-postgresql + Sun, 20 Mar 2022 15:00:20 GMT + https://brunoscheufler.com/blog/2022-03-20-understanding-deferred-foreign-key-constraints-in-postgresql + + + + Looking back on Introduction to CS + https://brunoscheufler.com/blog/2022-03-13-looking-back-on-introduction-to-cs + Sun, 13 Mar 2022 15:00:20 GMT + https://brunoscheufler.com/blog/2022-03-13-looking-back-on-introduction-to-cs + + + + The Complexity of Building Software in 2022 + https://brunoscheufler.com/blog/2022-02-26-the-complexity-of-building-software-in-2022 + Sat, 26 Feb 2022 20:00:20 GMT + https://brunoscheufler.com/blog/2022-02-26-the-complexity-of-building-software-in-2022 + + + + Getting the hang of Polymorphism in object-oriented languages + https://brunoscheufler.com/blog/2022-02-20-getting-the-hang-of-polymorphism-in-object-oriented-languages + Sun, 20 Feb 2022 17:00:20 GMT + https://brunoscheufler.com/blog/2022-02-20-getting-the-hang-of-polymorphism-in-object-oriented-languages + + + + Reviewing User-Generated Content with Interactive Slack Messages + https://brunoscheufler.com/blog/2022-02-12-reviewing-user-generated-content-with-interactive-slack-messages + Sat, 12 Feb 2022 17:00:20 GMT + https://brunoscheufler.com/blog/2022-02-12-reviewing-user-generated-content-with-interactive-slack-messages + + + + Offloading Program Flow into PostgreSQL with Temporary Tables + https://brunoscheufler.com/blog/2022-02-06-offloading-program-flow-into-postgresql-with-temporary-tables + Sun, 06 Feb 2022 13:00:20 GMT + https://brunoscheufler.com/blog/2022-02-06-offloading-program-flow-into-postgresql-with-temporary-tables + + + + Layouting across platforms + https://brunoscheufler.com/blog/2022-01-30-layouting-across-platforms + Sun, 30 Jan 2022 13:00:20 GMT + https://brunoscheufler.com/blog/2022-01-30-layouting-across-platforms + + + + Important Rules of Embedding Types in Go + https://brunoscheufler.com/blog/2022-01-23-important-rules-of-embedding-types-in-go + Sun, 23 Jan 2022 13:00:20 GMT + https://brunoscheufler.com/blog/2022-01-23-important-rules-of-embedding-types-in-go + + + + Indexing Pages Programmatically Using the Indexing API + https://brunoscheufler.com/blog/2022-01-16-indexing-pages-programmatically-using-the-indexing-api + Sun, 16 Jan 2022 13:00:20 GMT + https://brunoscheufler.com/blog/2022-01-16-indexing-pages-programmatically-using-the-indexing-api + + + + Communicating between services with gRPC + https://brunoscheufler.com/blog/2022-01-10-communicating-between-services-with-grpc + Mon, 10 Jan 2022 20:00:20 GMT + https://brunoscheufler.com/blog/2022-01-10-communicating-between-services-with-grpc + + + + Paginating Large, Ordered Data Sets with Cursor-Based Pagination + https://brunoscheufler.com/blog/2022-01-01-paginating-large-ordered-datasets-with-cursor-based-pagination + Sat, 01 Jan 2022 20:00:20 GMT + https://brunoscheufler.com/blog/2022-01-01-paginating-large-ordered-datasets-with-cursor-based-pagination + + + + Looking Back on 2021 + https://brunoscheufler.com/blog/2021-12-26-looking-back-on-2021 + Sun, 26 Dec 2021 17:00:20 GMT + https://brunoscheufler.com/blog/2021-12-26-looking-back-on-2021 + + + + Choosing an Implementation for Unique Identifiers + https://brunoscheufler.com/blog/2021-12-18-choosing-an-implementation-for-unique-ids + Sat, 18 Dec 2021 17:00:20 GMT + https://brunoscheufler.com/blog/2021-12-18-choosing-an-implementation-for-unique-ids + + + + Exploring the Geometric Mean + https://brunoscheufler.com/blog/2021-12-11-exploring-the-geometric-mean + Sat, 11 Dec 2021 14:30:20 GMT + https://brunoscheufler.com/blog/2021-12-11-exploring-the-geometric-mean + + + + Decreasing Graph Complexity with Transitive Reductions + https://brunoscheufler.com/blog/2021-12-05-decreasing-graph-complexity-with-transitive-reductions + Sun, 05 Dec 2021 14:30:20 GMT + https://brunoscheufler.com/blog/2021-12-05-decreasing-graph-complexity-with-transitive-reductions + + + + Scheduling Tasks with Topological Sorting + https://brunoscheufler.com/blog/2021-11-27-scheduling-tasks-with-topological-sorting + Sat, 27 Nov 2021 21:30:20 GMT + https://brunoscheufler.com/blog/2021-11-27-scheduling-tasks-with-topological-sorting + + + + Running Untrusted Workloads with Firecracker and containerd + https://brunoscheufler.com/blog/2021-11-20-running-untrusted-workloads-with-firecracker-and-containerd + Sat, 20 Nov 2021 19:30:20 GMT + https://brunoscheufler.com/blog/2021-11-20-running-untrusted-workloads-with-firecracker-and-containerd + + + + Solving the unexecutable executable + https://brunoscheufler.com/blog/2021-11-14-solving-the-unexecutable-executable + Sun, 14 Nov 2021 19:30:20 GMT + https://brunoscheufler.com/blog/2021-11-14-solving-the-unexecutable-executable + + + + Accessing Workouts with HealthKit and Swift + https://brunoscheufler.com/blog/2021-11-07-accessing-workouts-with-healthkit-and-swift + Sun, 07 Nov 2021 12:00:20 GMT + https://brunoscheufler.com/blog/2021-11-07-accessing-workouts-with-healthkit-and-swift + + + + Reducing SaaS Complexity + https://brunoscheufler.com/blog/2021-10-31-reducing-saas-complexity + Sun, 31 Oct 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-10-31-reducing-saas-complexity + + + + Infrastructure-as-Code as Single Source of Truth + https://brunoscheufler.com/blog/2021-10-23-infrastructure-as-code-as-single-source-of-truth + Sat, 23 Oct 2021 16:00:20 GMT + https://brunoscheufler.com/blog/2021-10-23-infrastructure-as-code-as-single-source-of-truth + + + + Updating Notion Pages on a Schedule with GitHub Actions + https://brunoscheufler.com/blog/2021-10-17-updating-notion-pages-on-a-schedule-with-github-actions + Sun, 17 Oct 2021 13:00:20 GMT + https://brunoscheufler.com/blog/2021-10-17-updating-notion-pages-on-a-schedule-with-github-actions + + + + Generating Dynamic GitHub Actions Workflows with the Job Matrix Strategy + https://brunoscheufler.com/blog/2021-10-09-generating-dynamic-github-actions-workflows-with-the-job-matrix-strategy + Sat, 09 Oct 2021 13:00:20 GMT + https://brunoscheufler.com/blog/2021-10-09-generating-dynamic-github-actions-workflows-with-the-job-matrix-strategy + + + + Preview Environments for every Pull Request with Pulumi and Vercel + https://brunoscheufler.com/blog/2021-10-03-preview-environments-for-every-pull-request + Sun, 03 Oct 2021 17:00:20 GMT + https://brunoscheufler.com/blog/2021-10-03-preview-environments-for-every-pull-request + + + + Containers as Code with Pulumi and Docker + https://brunoscheufler.com/blog/2021-09-26-containers-as-code-with-pulumi-and-docker + Sun, 26 Sep 2021 13:00:20 GMT + https://brunoscheufler.com/blog/2021-09-26-containers-as-code-with-pulumi-and-docker + + + + Cutting Production Release Duration By 80% + https://brunoscheufler.com/blog/2021-09-19-cutting-production-release-duration-by-80-percent + Sun, 19 Sep 2021 13:00:20 GMT + https://brunoscheufler.com/blog/2021-09-19-cutting-production-release-duration-by-80-percent + + + + Implementing Transactions with Side Effects + https://brunoscheufler.com/blog/2021-09-12-implementing-transactions-with-side-effects + Sun, 12 Sep 2021 17:00:20 GMT + https://brunoscheufler.com/blog/2021-09-12-implementing-transactions-with-side-effects + + + + An introduction to R + https://brunoscheufler.com/blog/2021-09-03-an-introduction-to-r + Fri, 03 Sep 2021 15:00:20 GMT + https://brunoscheufler.com/blog/2021-09-03-an-introduction-to-r + + + + Communicating between Java and Go using gRPC + https://brunoscheufler.com/blog/2021-08-27-communicating-between-java-and-go-using-grpc + Fri, 27 Aug 2021 17:00:20 GMT + https://brunoscheufler.com/blog/2021-08-27-communicating-between-java-and-go-using-grpc + + + + Built it, but nobody came + https://brunoscheufler.com/blog/2021-08-22-built-it-but-nobody-came + Sun, 22 Aug 2021 17:00:20 GMT + https://brunoscheufler.com/blog/2021-08-22-built-it-but-nobody-came + + + + Analyzing Blog Performance Using R + https://brunoscheufler.com/blog/2021-08-15-analyzing-blog-performance-using-r + Sun, 15 Aug 2021 17:00:20 GMT + https://brunoscheufler.com/blog/2021-08-15-analyzing-blog-performance-using-r + + + + Setting up Algolia DocSearch with Next.js + https://brunoscheufler.com/blog/2021-08-08-setting-up-algolia-docsearch-with-nextjs + Sun, 08 Aug 2021 17:00:20 GMT + https://brunoscheufler.com/blog/2021-08-08-setting-up-algolia-docsearch-with-nextjs + + + + Multi-Stage Markdown Processing with remark + https://brunoscheufler.com/blog/2021-08-01-multi-stage-markdown-processing-with-remark + Sun, 01 Aug 2021 17:00:20 GMT + https://brunoscheufler.com/blog/2021-08-01-multi-stage-markdown-processing-with-remark + + + + Improving DataLoader Stack Traces + https://brunoscheufler.com/blog/2021-07-25-improving-dataloader-stack-traces + Sun, 25 Jul 2021 14:00:20 GMT + https://brunoscheufler.com/blog/2021-07-25-improving-dataloader-stack-traces + + + + Transforming Exponents, Radicals & Fractions + https://brunoscheufler.com/blog/2021-07-18-transforming-exponents-radicals-fractions + Sun, 18 Jul 2021 14:00:20 GMT + https://brunoscheufler.com/blog/2021-07-18-transforming-exponents-radicals-fractions + + + + Motivating Employees with Stock Options + https://brunoscheufler.com/blog/2021-07-11-motivating-employees-with-stock-options + Sun, 11 Jul 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-07-11-motivating-employees-with-stock-options + + + + Faster TypeScript Feedback Loops with esbuild + https://brunoscheufler.com/blog/2021-07-04-shorter-typescript-feedback-loops-with-esbuild + Sun, 04 Jul 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-07-04-shorter-typescript-feedback-loops-with-esbuild + + + + Designing APIs to Last + https://brunoscheufler.com/blog/2021-06-27-designing-apis-to-last + Sun, 27 Jun 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-06-27-designing-apis-to-last + + + + Observing WebSocket infrastructure with Socket Inspector + https://brunoscheufler.com/blog/2021-06-19-observing-websocket-infrastructure-with-socket-inspector + Sat, 19 Jun 2021 12:00:20 GMT + https://brunoscheufler.com/blog/2021-06-19-observing-websocket-infrastructure-with-socket-inspector + + + + Rendering Remote Images with AsyncImage + https://brunoscheufler.com/blog/2021-06-07-rendering-remote-images-with-asyncimage + Mon, 07 Jun 2021 21:00:20 GMT + https://brunoscheufler.com/blog/2021-06-07-rendering-remote-images-with-asyncimage + + + + Versioning Features for Sustainable Product Evolution + https://brunoscheufler.com/blog/2021-06-05-versioning-features-for-sustainable-product-evolution + Sat, 05 Jun 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-06-05-versioning-features-for-sustainable-product-evolution + + + + Improving Content Discoverability with Topics + https://brunoscheufler.com/blog/2021-06-01-improving-content-discoverability-with-topics + Tue, 01 Jun 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-06-01-improving-content-discoverability-with-topics + + + + Locking and Synchronization for Node.js + https://brunoscheufler.com/blog/2021-05-31-locking-and-synchronization-for-nodejs + Mon, 31 May 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-05-31-locking-and-synchronization-for-nodejs + + + + A primer on SSO with SAML + https://brunoscheufler.com/blog/2021-05-26-a-primer-on-sso-with-saml + Wed, 26 May 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-05-26-a-primer-on-sso-with-saml + + + + Picking Monitoring Methods to Increase Observability + https://brunoscheufler.com/blog/2021-05-22-picking-monitoring-methods-to-increase-observability + Sat, 22 May 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-05-22-picking-monitoring-methods-to-increase-observability + + + + Improving observability with annotated build information + https://brunoscheufler.com/blog/2021-05-16-improving-observability-with-build-information + Sun, 16 May 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-05-16-improving-observability-with-build-information + + + + Sending Contact Form Submissions to Notion + https://brunoscheufler.com/blog/2021-05-13-sending-contact-form-submissions-to-notion + Thu, 13 May 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-05-13-sending-contact-form-submissions-to-notion + + + + Improving releases with service-splitting + https://brunoscheufler.com/blog/2021-05-09-improving-releases-with-service-splitting + Sun, 09 May 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-05-09-improving-releases-with-service-splitting + + + + Running a commit-based release infrastructure + https://brunoscheufler.com/blog/2021-05-02-running-a-commit-based-release-infrastructure + Sun, 02 May 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-05-02-running-a-commit-based-release-infrastructure + + + + My 2021 Swift Student Challenge Submission + https://brunoscheufler.com/blog/2021-04-24-my-2021-swift-student-challenge-submission + Sat, 24 Apr 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-04-24-my-2021-swift-student-challenge-submission + + + + Processing Markdown with remark and unified plugins + https://brunoscheufler.com/blog/2021-04-18-processing-markdown-with-remark-and-unified-plugins + Sun, 18 Apr 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-04-18-processing-markdown-with-remark-and-unified-plugins + + + + The Future of Multiplayer: Cloudflare Durable Objects + https://brunoscheufler.com/blog/2021-04-11-the-future-of-multiplayer-cloudflare-durable-objects + Sun, 11 Apr 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-04-11-the-future-of-multiplayer-cloudflare-durable-objects + + + + SwiftUI Meets Swift Playgrounds + https://brunoscheufler.com/blog/2021-04-01-swiftui-meets-swift-playgrounds + Thu, 01 Apr 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-04-01-swiftui-meets-swift-playgrounds + + + + Visualize Regressions with Playwright Video Recording + https://brunoscheufler.com/blog/2021-03-23-visualize-regressions-with-playwright-video-recording + Tue, 23 Mar 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-03-23-visualize-regressions-with-playwright-video-recording + + + + When Velocity Implies Simplicity + https://brunoscheufler.com/blog/2021-03-18-when-velocity-implies-simplicity + Thu, 18 Mar 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-03-18-when-velocity-implies-simplicity + + + + Efficient Caching with Reduced Roundtrips + https://brunoscheufler.com/blog/2021-03-10-efficient-caching-with-reduced-roundtrips + Wed, 10 Mar 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-03-10-efficient-caching-with-reduced-roundtrips + + + + One Semester In, Five To Go + https://brunoscheufler.com/blog/2021-03-04-one-semester-in + Thu, 04 Mar 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-03-04-one-semester-in + + + + Preventing Increasing Fragmentation + https://brunoscheufler.com/blog/2021-02-26-preventing-increasing-fragmentation + Fri, 26 Feb 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-02-26-preventing-increasing-fragmentation + + + + Instant Full-Stack Insights with NewRelic + https://brunoscheufler.com/blog/2021-02-21-full-stack-insights-with-newrelic + Sun, 21 Feb 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-02-21-full-stack-insights-with-newrelic + + + + Secure Asset Management and Upload with S3 + https://brunoscheufler.com/blog/2021-02-12-managing-user-media-assets + Fri, 12 Feb 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-02-12-managing-user-media-assets + + + + GraphQL-powered API Integration Tests + https://brunoscheufler.com/blog/2021-02-04-graphql-powered-integration-tests + Thu, 04 Feb 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-02-04-graphql-powered-integration-tests + + + + Exploring State: State Machines + https://brunoscheufler.com/blog/2021-01-28-exploring-state-state-machines + Thu, 28 Jan 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-01-28-exploring-state-state-machines + + + + Finding The First Iteration + https://brunoscheufler.com/blog/2021-01-22-finding-the-first-iteration + Fri, 22 Jan 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-01-22-finding-the-first-iteration + + + + Centralized Validation with GraphQL Scalar Types + https://brunoscheufler.com/blog/2021-01-17-centralized-validation-with-graphql-scalar-types + Sun, 17 Jan 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-01-17-centralized-validation-with-graphql-scalar-types + + + + Deliver context-aware navigation with Push Evaluation + https://brunoscheufler.com/blog/2021-01-10-deliver-context-aware-navigation-with-push-evaluation + Sun, 10 Jan 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-01-10-deliver-context-aware-navigation-with-push-evaluation + + + + Building Functional Stack Navigation + https://brunoscheufler.com/blog/2021-01-05-building-functional-stack-navigation + Tue, 05 Jan 2021 18:00:20 GMT + https://brunoscheufler.com/blog/2021-01-05-building-functional-stack-navigation + + + + Introducing Stapel + https://brunoscheufler.com/blog/2020-12-30-introducing-stapel + Wed, 30 Dec 2020 18:00:20 GMT + https://brunoscheufler.com/blog/2020-12-30-introducing-stapel + + + + Looking Back on 2020 + https://brunoscheufler.com/blog/2020-12-29-looking-back-on-2020 + Tue, 29 Dec 2020 18:00:20 GMT + https://brunoscheufler.com/blog/2020-12-29-looking-back-on-2020 + + + + Multiple App Environments Using Xcode Schemes + https://brunoscheufler.com/blog/2020-12-22-multiple-app-environments-using-xcode-schemes + Tue, 22 Dec 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-12-22-multiple-app-environments-using-xcode-schemes + + + + Supporting Universal Links with SwiftUI + https://brunoscheufler.com/blog/2020-12-13-supporting-universal-links-with-swiftui + Sun, 13 Dec 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-12-13-supporting-universal-links-with-swiftui + + + + APNs Environments and Push Notification Delivery + https://brunoscheufler.com/blog/2020-12-07-apns-environments-and-push-notifications + Mon, 07 Dec 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-12-07-apns-environments-and-push-notifications + + + + It's About Time + https://brunoscheufler.com/blog/2020-11-29-its-about-time + Sun, 29 Nov 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-11-29-its-about-time + + + + Preview-Driven Development with SwiftUI + https://brunoscheufler.com/blog/2020-11-23-preview-driven-development-with-swiftui + Mon, 23 Nov 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-11-23-preview-driven-development-with-swiftui + + + + State and View Composition in SwiftUI + https://brunoscheufler.com/blog/2020-11-18-state-and-view-composition-in-swiftui + Wed, 18 Nov 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-11-18-state-and-view-composition-in-swiftui + + + + Scraping Country Codes + https://brunoscheufler.com/blog/2020-11-15-scraping-country-codes + Sun, 15 Nov 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-11-15-scraping-country-codes + + + + Boring Technologies, Reliable Foundations + https://brunoscheufler.com/blog/2020-11-12-boring-technologies-reliable-foundations + Thu, 12 Nov 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-11-12-boring-technologies-reliable-foundations + + + + Getting Into iOS Development with SwiftUI + https://brunoscheufler.com/blog/2020-11-09-getting-into-ios-development-with-swiftui + Mon, 09 Nov 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-11-09-getting-into-ios-development-with-swiftui + + + + Starting Lasting Side Projects + https://brunoscheufler.com/blog/2020-11-05-starting-lasting-side-projects + Thu, 05 Nov 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-11-05-starting-lasting-side-projects + + + + The Pace of Studying in 2020 + https://brunoscheufler.com/blog/2020-11-02-the-pace-of-studying-in-2020 + Mon, 02 Nov 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-11-02-the-pace-of-studying-in-2020 + + + + When (not) to use pg_dump + https://brunoscheufler.com/blog/2020-10-30-when-not-to-use-pg-dump + Fri, 30 Oct 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-10-30-when-not-to-use-pg-dump + + + + Building Productive Habits + https://brunoscheufler.com/blog/2020-10-28-building-productive-habits + Wed, 28 Oct 2020 10:00:20 GMT + https://brunoscheufler.com/blog/2020-10-28-building-productive-habits + + + + Digitizing My Maths Studies with TeX + https://brunoscheufler.com/blog/2020-10-23-digitizing-my-maths-studies-with-tex + Fri, 23 Oct 2020 10:00:20 GMT + https://brunoscheufler.com/blog/2020-10-23-digitizing-my-maths-studies-with-tex + + + + Rebuilding my portfolio using Next.js & TailwindCSS + https://brunoscheufler.com/blog/2020-10-20-rebuilding-my-portfolio-using-nextjs-tailwind + Tue, 20 Oct 2020 10:00:20 GMT + https://brunoscheufler.com/blog/2020-10-20-rebuilding-my-portfolio-using-nextjs-tailwind + + + + My Favorite Tools in 2020 + https://brunoscheufler.com/blog/2020-10-16-my-favorite-tools-in-2020 + Fri, 16 Oct 2020 10:00:20 GMT + https://brunoscheufler.com/blog/2020-10-16-my-favorite-tools-in-2020 + + + + Reaching Remote Acceptance + https://brunoscheufler.com/blog/2020-10-13-reaching-remote-acceptance + Tue, 13 Oct 2020 10:00:20 GMT + https://brunoscheufler.com/blog/2020-10-13-reaching-remote-acceptance + + + + Rapid TypeScript Development with esbuild and Estrella + https://brunoscheufler.com/blog/2020-10-04-rapid-typescript-development-with-esbuild-estrella + Sun, 04 Oct 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-10-04-rapid-typescript-development-with-esbuild-estrella + + + + The End of an Era for Public Container Image Registries + https://brunoscheufler.com/blog/2020-09-19-public-image-registries-end-of-an-era + Sat, 19 Sep 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-09-19-public-image-registries-end-of-an-era + + + + Common Pitfalls in Go Application Development + https://brunoscheufler.com/blog/2020-09-12-common-go-application-development-pitfalls + Sat, 12 Sep 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-09-12-common-go-application-development-pitfalls + + + + Fundamental Design Decisions for Scalable Systems + https://brunoscheufler.com/blog/2020-09-01-fundamental-design-decisions-for-scalable-systems + Tue, 01 Sep 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-09-01-fundamental-design-decisions-for-scalable-systems + + + + Forwarding Incoming Mails with AWS Lambda and SES + https://brunoscheufler.com/blog/2020-08-28-forwarding-emails-with-ses + Fri, 28 Aug 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-08-28-forwarding-emails-with-ses + + + + Building Powerful Integrations with GitHub Apps + https://brunoscheufler.com/blog/2020-08-16-building-github-apps + Sun, 16 Aug 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-08-16-building-github-apps + + + + Seamless End-To-End Browser Tests with QA Wolf + https://brunoscheufler.com/blog/2020-08-03-seamless-browser-tests-with-qawolf + Mon, 03 Aug 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-08-03-seamless-browser-tests-with-qawolf + + + + Accessing ECS Task Metadata at Runtime + https://brunoscheufler.com/blog/2020-07-31-aws-ecs-task-metadata + Fri, 31 Jul 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-07-31-aws-ecs-task-metadata + + + + Tunneling Local Applications with SSH and Caddy + https://brunoscheufler.com/blog/2020-07-26-tunneling-local-applications-with-ssh-caddy + Sun, 26 Jul 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-07-26-tunneling-local-applications-with-ssh-caddy + + + + Handling GraphQL Errors using Sentry + https://brunoscheufler.com/blog/2020-07-22-handling-graphql-errors-using-sentry + Wed, 22 Jul 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-07-22-handling-graphql-errors-using-sentry + + + + The Weirdest Error I Ever Debugged + https://brunoscheufler.com/blog/2020-07-17-the-weirdest-error-i-ever-debugged + Fri, 17 Jul 2020 18:00:20 GMT + https://brunoscheufler.com/blog/2020-07-17-the-weirdest-error-i-ever-debugged + + + + Documenting Design Decisions using RFCs and ADRs + https://brunoscheufler.com/blog/2020-07-04-documenting-design-decisions-using-rfcs-and-adrs + Sat, 04 Jul 2020 18:00:20 GMT + https://brunoscheufler.com/blog/2020-07-04-documenting-design-decisions-using-rfcs-and-adrs + + + + Scaling Release Systems + https://brunoscheufler.com/blog/2020-06-26-scaling-release-systems + Fri, 26 Jun 2020 15:00:20 GMT + https://brunoscheufler.com/blog/2020-06-26-scaling-release-systems + + + + Ship Early and Ship Often + https://brunoscheufler.com/blog/2020-06-20-ship-early-and-ship-often + Sat, 20 Jun 2020 15:00:20 GMT + https://brunoscheufler.com/blog/2020-06-20-ship-early-and-ship-often + + + + Getting Started with Electron Application Development for macOS + https://brunoscheufler.com/blog/2020-06-14-getting-started-with-building-macos-electron-apps + Sun, 14 Jun 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-06-14-getting-started-with-building-macos-electron-apps + + + + Picking the perfect Serif typeface + https://brunoscheufler.com/blog/2020-06-07-picking-the-perfect-serif-typeface + Sun, 07 Jun 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-06-07-picking-the-perfect-serif-typeface + + + + Bootstrapping a Portable Cypress Setup for Blazing-Fast Browser Tests + https://brunoscheufler.com/blog/2020-05-31-bootstrapping-a-portable-cypress-setup-for-blazing-fast-browser-tests + Sun, 31 May 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-05-31-bootstrapping-a-portable-cypress-setup-for-blazing-fast-browser-tests + + + + Measuring Velocity: The Case for Electron + https://brunoscheufler.com/blog/2020-05-24-the-case-for-electron + Sun, 24 May 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-05-24-the-case-for-electron + + + + Deno and the future of Node.js + https://brunoscheufler.com/blog/2020-05-16-deno-and-the-future-of-node + Sat, 16 May 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-05-16-deno-and-the-future-of-node + + + + Building a Testing Culture + https://brunoscheufler.com/blog/2020-05-09-building-a-testing-culture + Sat, 09 May 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-05-09-building-a-testing-culture + + + + Managing Your Infrastructure as Code with Pulumi + https://brunoscheufler.com/blog/2020-04-26-managing-your-infrastructure-as-code-with-pulumi + Sun, 26 Apr 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-04-26-managing-your-infrastructure-as-code-with-pulumi + + + + Rapidly Setting up GraphQL Data Fetching in React + https://brunoscheufler.com/blog/2020-04-25-setting-up-graphql-data-fetching-react + Sat, 25 Apr 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-04-25-setting-up-graphql-data-fetching-react + + + + Building Go Test Suites using Testify + https://brunoscheufler.com/blog/2020-04-12-building-go-test-suites-using-testify + Sun, 12 Apr 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-04-12-building-go-test-suites-using-testify + + + + Verifying Asymmetrically-Signed JWTs in Go + https://brunoscheufler.com/blog/2020-04-11-verifying-asymmetrically-signed-jwts-in-go + Sat, 11 Apr 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-04-11-verifying-asymmetrically-signed-jwts-in-go + + + + Building Composable Go Applications With Interfaces + https://brunoscheufler.com/blog/2020-04-05-building-composable-go-applications-with-interfaces + Sun, 05 Apr 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-04-05-building-composable-go-applications-with-interfaces + + + + Conquering Randomness with Composable Go Application Design + https://brunoscheufler.com/blog/2020-03-29-conquering-randomness-with-composable-go-application-design + Sun, 29 Mar 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-03-29-conquering-randomness-with-composable-go-application-design + + + + Testing Web Applications in Go + https://brunoscheufler.com/blog/2020-03-28-testing-web-applications-in-go + Sat, 28 Mar 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-03-28-testing-web-applications-in-go + + + + Recovering HTTP Handlers In Go + https://brunoscheufler.com/blog/2020-03-22-recovering-http-handlers-in-go + Sun, 22 Mar 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-03-22-recovering-http-handlers-in-go + + + + Browser-Only React Components With Suspense + https://brunoscheufler.com/blog/2020-03-21-browser-only-react-components-with-suspense + Sat, 21 Mar 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-03-21-browser-only-react-components-with-suspense + + + + Redesigning My Portfolio for 2020 + https://brunoscheufler.com/blog/2020-03-15-redesigning-my-portfolio-for-2020 + Sun, 15 Mar 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-03-15-redesigning-my-portfolio-for-2020 + + + + Configuring Jest Snapshot Resolvers + https://brunoscheufler.com/blog/2020-03-08-configuring-jest-snapshot-resolvers + Sun, 08 Mar 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-03-08-configuring-jest-snapshot-resolvers + + + + Real-Time Postgres Change-Streaming With lode + https://brunoscheufler.com/blog/2020-03-01-real-time-postgres-change-streaming-with-lode + Sun, 01 Mar 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-03-01-real-time-postgres-change-streaming-with-lode + + + + Utilizing the data layer: Deadlock Relations with Deferred Constraints + https://brunoscheufler.com/blog/2020-02-23-deadlock-relations-with-deferred-constraints + Sun, 23 Feb 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-02-23-deadlock-relations-with-deferred-constraints + + + + Utilizing the data layer: Complex UPSERTs in Postgres + https://brunoscheufler.com/blog/2020-02-16-complex-upserts-in-postgres + Sun, 16 Feb 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-02-16-complex-upserts-in-postgres + + + + Supercharging Jest with Custom Reporters + https://brunoscheufler.com/blog/2020-02-14-supercharging-jest-with-custom-reporters + Fri, 14 Feb 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-02-14-supercharging-jest-with-custom-reporters + + + + Utilizing the data layer: Conditional INSERTs in Postgres + https://brunoscheufler.com/blog/2020-02-08-conditional-inserts-in-postgres + Sat, 08 Feb 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-02-08-conditional-inserts-in-postgres + + + + Building an Authoritative DNS Nameserver + https://brunoscheufler.com/blog/2020-01-19-building-an-authoritative-dns-nameserver + Sun, 19 Jan 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-01-19-building-an-authoritative-dns-nameserver + + + + Global Service Deployments with Anycast and BGP + https://brunoscheufler.com/blog/2020-01-05-global-service-deployments-with-anycast-bgp + Sun, 05 Jan 2020 17:00:20 GMT + https://brunoscheufler.com/blog/2020-01-05-global-service-deployments-with-anycast-bgp + + + + Goodbye 2019, Welcome 2020 + https://brunoscheufler.com/blog/2019-12-28-goodbye-2019-welcome-2020 + Sat, 28 Dec 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-12-28-goodbye-2019-welcome-2020 + + + + Back to Bare-Metal: Building and Hosting my Metrics + https://brunoscheufler.com/blog/2019-12-22-building-and-hosting-my-metrics + Sun, 22 Dec 2019 16:00:20 GMT + https://brunoscheufler.com/blog/2019-12-22-building-and-hosting-my-metrics + + + + Improving Static Assertions with Snapshot Tests in Go + https://brunoscheufler.com/blog/2019-12-04-go-snapshot-tests + Wed, 04 Dec 2019 18:00:20 GMT + https://brunoscheufler.com/blog/2019-12-04-go-snapshot-tests + + + + Scaling Network Concurrency in Go + https://brunoscheufler.com/blog/2019-11-17-scaling-network-concurrency-in-go + Sun, 17 Nov 2019 18:00:20 GMT + https://brunoscheufler.com/blog/2019-11-17-scaling-network-concurrency-in-go + + + + Understanding Go's context package + https://brunoscheufler.com/blog/2019-11-03-understanding-the-go-context + Sun, 03 Nov 2019 18:00:20 GMT + https://brunoscheufler.com/blog/2019-11-03-understanding-the-go-context + + + + Tinkering with Global WireGuard Deployments + https://brunoscheufler.com/blog/2019-10-27-tinkering-with-wireguard-deployments + Sun, 27 Oct 2019 18:00:20 GMT + https://brunoscheufler.com/blog/2019-10-27-tinkering-with-wireguard-deployments + + + + Parallelized Batch Processing in Go + https://brunoscheufler.com/blog/2019-09-21-parallelized-batch-processing-in-go + Sat, 21 Sep 2019 18:00:20 GMT + https://brunoscheufler.com/blog/2019-09-21-parallelized-batch-processing-in-go + + + + A Brief GraphQL Day Bodensee Recap + https://brunoscheufler.com/blog/2019-09-12-graphql-day-bodensee-recap + Thu, 12 Sep 2019 18:00:20 GMT + https://brunoscheufler.com/blog/2019-09-12-graphql-day-bodensee-recap + + + + Handling Concurrent Go Workflows + https://brunoscheufler.com/blog/2019-09-01-handling-concurrent-go-workflows + Sun, 01 Sep 2019 16:00:20 GMT + https://brunoscheufler.com/blog/2019-09-01-handling-concurrent-go-workflows + + + + JavaScript Generators And What They're Used For + https://brunoscheufler.com/blog/2019-08-17-javascript-generators-and-what-theyre-used-for + Sat, 17 Aug 2019 16:00:20 GMT + https://brunoscheufler.com/blog/2019-08-17-javascript-generators-and-what-theyre-used-for + + + + Inspecting Kubernetes Deployment Logs with kail + https://brunoscheufler.com/blog/2019-08-11-inspecting-k8s-logs-with-kail + Sun, 11 Aug 2019 16:00:20 GMT + https://brunoscheufler.com/blog/2019-08-11-inspecting-k8s-logs-with-kail + + + + Boost Your Team's DX By Formatting All Git Commits + https://brunoscheufler.com/blog/2019-07-28-boost-team-dx-with-formatted-git-commits + Sun, 28 Jul 2019 18:00:20 GMT + https://brunoscheufler.com/blog/2019-07-28-boost-team-dx-with-formatted-git-commits + + + + JAMstack Conf London: That's My Jam! + https://brunoscheufler.com/blog/2019-07-11-jamstack-conf-london-recap + Thu, 11 Jul 2019 22:00:20 GMT + https://brunoscheufler.com/blog/2019-07-11-jamstack-conf-london-recap + + + + Retrospective on GraphQL Conf & Prisma Day + https://brunoscheufler.com/blog/2019-06-26-graphql-conf-prisma-day-retro + Wed, 26 Jun 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-06-26-graphql-conf-prisma-day-retro + + + + Automating my open-source projects with CI/CD workflows + https://brunoscheufler.com/blog/2019-06-09-automating-open-source-projects-with-ci-cd + Sun, 09 Jun 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-06-09-automating-open-source-projects-with-ci-cd + + + + Accessing Kubernetes services locally using kubefwd + https://brunoscheufler.com/blog/2019-06-02-accessing-k8s-services-locally-using-kubefwd + Sun, 02 Jun 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-06-02-accessing-k8s-services-locally-using-kubefwd + + + + Reaching Consensus: GraphQL Input Unions + https://brunoscheufler.com/blog/2019-05-19-reaching-consensus-graphql-input-union + Sun, 19 May 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-05-19-reaching-consensus-graphql-input-union + + + + What's Next? + https://brunoscheufler.com/blog/2019-05-12-whats-next + Sun, 12 May 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-05-12-whats-next + + + + Choosing the Right Go Web Framework + https://brunoscheufler.com/blog/2019-04-26-choosing-the-right-go-web-framework + Fri, 26 Apr 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-04-26-choosing-the-right-go-web-framework + + + + Debugging Google Cloud Pub/Sub services in production + https://brunoscheufler.com/blog/2019-04-10-debugging-google-cloud-pubsub + Wed, 10 Apr 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-04-10-debugging-google-cloud-pubsub + + + + The Lifecycle of Side Projects: Planning & Early Stages + https://brunoscheufler.com/blog/2019-03-24-lifecycle-of-side-projects-early-stages + Sun, 24 Mar 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-03-24-lifecycle-of-side-projects-early-stages + + + + Updating your GitHub status with ghstatus + https://brunoscheufler.com/blog/2019-03-17-updating-your-github-status-with-ghstatus + Sun, 17 Mar 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-03-17-updating-your-github-status-with-ghstatus + + + + The State of GraphQL × Go + https://brunoscheufler.com/blog/2019-03-03-state-of-graphql-golang + Sun, 03 Mar 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-03-03-state-of-graphql-golang + + + + Setting up Kubernetes Dashboard + https://brunoscheufler.com/blog/2019-02-28-setting-up-k8s-dashboard + Thu, 28 Feb 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-02-28-setting-up-k8s-dashboard + + + + Provisioning Kubernetes clusters + https://brunoscheufler.com/blog/2019-02-22-provisioning-k8s-cluster + Fri, 22 Feb 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-02-22-provisioning-k8s-cluster + + + + Empowering CI/CD workflows with compose-deploy + https://brunoscheufler.com/blog/2019-02-13-empowering-ci-cd-workflows-with-compose-deploy + Wed, 13 Feb 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-02-13-empowering-ci-cd-workflows-with-compose-deploy + + + + Simplifying Docker deployments with compose-deploy + https://brunoscheufler.com/blog/2019-02-09-simplifying-docker-deployments-with-compose-deploy + Sat, 09 Feb 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-02-09-simplifying-docker-deployments-with-compose-deploy + + + + Bootstrapping local Kubernetes clusters using kind + https://brunoscheufler.com/blog/2019-02-01-bootstrapping-local-k8s-clusters-using-kind + Fri, 01 Feb 2019 17:00:20 GMT + https://brunoscheufler.com/blog/2019-02-01-bootstrapping-local-k8s-clusters-using-kind + + + + Introducing aqueduct + https://brunoscheufler.com/blog/2019-01-27-introducing-aqueduct + Sun, 27 Jan 2019 16:00:20 GMT + https://brunoscheufler.com/blog/2019-01-27-introducing-aqueduct + + + + Introducing GraphQL Jaeger tracing middleware + https://brunoscheufler.com/blog/2019-01-20-introducing-graphql-middleware-jaeger + Sun, 20 Jan 2019 16:00:20 GMT + https://brunoscheufler.com/blog/2019-01-20-introducing-graphql-middleware-jaeger + + + + Adding tracing to your GraphQL services with Jaeger + https://brunoscheufler.com/blog/2019-01-19-adding-jaeger-tracing-to-node-gql-services + Sat, 19 Jan 2019 18:00:20 GMT + https://brunoscheufler.com/blog/2019-01-19-adding-jaeger-tracing-to-node-gql-services + + + + Designing my new portfolio + https://brunoscheufler.com/blog/2018-12-22-designing-my-new-portfolio + Sat, 22 Dec 2018 21:00:20 GMT + https://brunoscheufler.com/blog/2018-12-22-designing-my-new-portfolio + + + + + \ No newline at end of file diff --git a/feeds.js b/feeds.js index 3eef5be..e02fa9b 100644 --- a/feeds.js +++ b/feeds.js @@ -6,6 +6,7 @@ export const feeds = { copiona: "https://copiona.com/feed.xml", j3s: "https://j3s.sh/feed.atom", // icyphox: "https://icyphox.sh/blog/feed.xml", + brunoscheufler: "https://brunoscheufler.com/rss.xml", }; if (process.argv[2] === "refresh") {