- ID da verificação
- 15b594c0-66b9-4d4a-94b1-e9bd56ceaac3Concluído
- URL enviado:
- https://contemplating.dev/
- Relatório concluído:
Ligações · 4 encontradas
As ligações de saída identificadas na página
Hiperligação | Texto |
---|---|
https://github.com/RyanNieuwoudt | GitHubGitHub |
https://www.linkedin.com/in/ryan-nieuwoudt | LinkedInLinkedIn |
https://mastodon.social/@ryannieuwoudt | MastodonMastodon |
https://t.me/RyanNieuwoudt | TelegramTelegram |
Variáveis JavaScript · 4 encontradas
Variáveis JavaScript globais carregadas no objeto janela de uma página são variáveis declaradas fora das funções e acessíveis de qualquer parte do código dentro do âmbito atual
Nome | Tipo |
---|---|
0 | object |
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
Mensagens de registo da consola · 0 encontradas
Mensagens registadas na consola web
HTML
O corpo HTML em bruto da página
<!DOCTYPE html><html lang="en"><head><link rel="shortcut icon" href="/images/favicon.ico"><meta name="msapplication-TileColor" content="#000000"><meta name="theme-color" media="(prefers-color-scheme: light)" content="#fff"><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#000"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><meta name="generator" content="Astro v4.16.16"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"><title>Home</title><meta name="description" content="Thoughts on software development, mostly."><meta name="author" content="Ryan Nieuwoudt"><meta property="og:url" content="https://contemplating.dev/"><meta property="og:type" content="website"><meta property="og:title" content="Home"><meta property="og:description" content="Thoughts on software development, mostly."><meta property="og:image" content="https://contemplating.dev/images/logo.png"><meta name="twitter:card" content="summary_large_image"><meta property="twitter:domain" content="https://contemplating.dev"><meta property="twitter:url" content="https://contemplating.dev/"><meta name="twitter:title" content="Home"><meta name="twitter:description" content="Thoughts on software development, mostly."><meta name="twitter:image" content="https://contemplating.dev/images/logo.png"><link rel="alternate" type="application/rss+xml" title="RSS feed for contemplating.dev" href="https://contemplating.dev/rss.xml"><link rel="stylesheet" href="/_astro/_regular_.CZfJLBD-.css"><script type="module" src="/_astro/hoisted.Bn5Di-Eq.js" data-astro-exec=""></script><style>[data-astro-transition-scope="astro-jbfqbse4-1"] { view-transition-name: content; }@layer astro { ::view-transition-old(content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-jbfqbse4-1"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-jbfqbse4-1"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-jbfqbse4-1"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-jbfqbse4-1"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-jbfqbse4-1"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-jbfqbse4-1"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-jbfqbse4-1"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-jbfqbse4-1"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-23vdpod6-2"] { view-transition-name: for-the-record-image; }@layer astro { ::view-transition-old(for-the-record-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(for-the-record-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(for-the-record-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(for-the-record-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-2"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-2"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-2"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-2"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-2"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-2"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-2"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-2"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-ylnphgrt-3"] { view-transition-name: for-the-record-title; }@layer astro { ::view-transition-old(for-the-record-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(for-the-record-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(for-the-record-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(for-the-record-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-3"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-3"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-3"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-3"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-3"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-3"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-3"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-3"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-cal5m75k-4"] { view-transition-name: for-the-record-content; }@layer astro { ::view-transition-old(for-the-record-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(for-the-record-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(for-the-record-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(for-the-record-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-4"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-4"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-4"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-4"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-4"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-4"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-4"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-4"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-23vdpod6-5"] { view-transition-name: discover-functional-programming-image; }@layer astro { ::view-transition-old(discover-functional-programming-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(discover-functional-programming-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(discover-functional-programming-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(discover-functional-programming-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-5"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-5"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-5"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-5"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-5"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-5"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-5"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-5"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-ylnphgrt-6"] { view-transition-name: discover-functional-programming-title; }@layer astro { ::view-transition-old(discover-functional-programming-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(discover-functional-programming-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(discover-functional-programming-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(discover-functional-programming-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-6"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-6"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-6"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-6"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-6"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-6"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-6"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-6"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-cal5m75k-7"] { view-transition-name: discover-functional-programming-content; }@layer astro { ::view-transition-old(discover-functional-programming-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(discover-functional-programming-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(discover-functional-programming-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(discover-functional-programming-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-7"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-7"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-7"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-7"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-7"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-7"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-7"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-7"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-23vdpod6-8"] { view-transition-name: encapsulation-is-a-bitter-pill-image; }@layer astro { ::view-transition-old(encapsulation-is-a-bitter-pill-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(encapsulation-is-a-bitter-pill-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(encapsulation-is-a-bitter-pill-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(encapsulation-is-a-bitter-pill-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-8"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-8"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-8"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-8"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-8"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-8"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-8"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-8"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-ylnphgrt-9"] { view-transition-name: encapsulation-is-a-bitter-pill-title; }@layer astro { ::view-transition-old(encapsulation-is-a-bitter-pill-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(encapsulation-is-a-bitter-pill-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(encapsulation-is-a-bitter-pill-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(encapsulation-is-a-bitter-pill-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-9"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-9"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-9"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-9"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-9"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-9"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-9"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-9"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-cal5m75k-10"] { view-transition-name: encapsulation-is-a-bitter-pill-content; }@layer astro { ::view-transition-old(encapsulation-is-a-bitter-pill-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(encapsulation-is-a-bitter-pill-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(encapsulation-is-a-bitter-pill-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(encapsulation-is-a-bitter-pill-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-10"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-10"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-10"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-10"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-10"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-10"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-10"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-10"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-23vdpod6-11"] { view-transition-name: cover-me-image; }@layer astro { ::view-transition-old(cover-me-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(cover-me-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(cover-me-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(cover-me-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-11"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-11"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-11"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-11"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-11"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-11"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-11"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-11"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-ylnphgrt-12"] { view-transition-name: cover-me-title; }@layer astro { ::view-transition-old(cover-me-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(cover-me-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(cover-me-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(cover-me-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-12"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-12"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-12"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-12"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-12"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-12"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-12"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-12"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-cal5m75k-13"] { view-transition-name: cover-me-content; }@layer astro { ::view-transition-old(cover-me-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(cover-me-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(cover-me-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(cover-me-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-13"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-13"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-13"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-13"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-13"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-13"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-13"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-13"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-23vdpod6-14"] { view-transition-name: parse-dont-validate-image; }@layer astro { ::view-transition-old(parse-dont-validate-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(parse-dont-validate-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(parse-dont-validate-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(parse-dont-validate-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-14"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-14"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-14"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-14"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-14"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-14"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-14"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-14"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-ylnphgrt-15"] { view-transition-name: parse-dont-validate-title; }@layer astro { ::view-transition-old(parse-dont-validate-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(parse-dont-validate-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(parse-dont-validate-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(parse-dont-validate-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-15"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-15"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-15"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-15"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-15"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-15"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-15"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-15"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-cal5m75k-16"] { view-transition-name: parse-dont-validate-content; }@layer astro { ::view-transition-old(parse-dont-validate-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(parse-dont-validate-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(parse-dont-validate-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(parse-dont-validate-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-16"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-16"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-16"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-16"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-16"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-16"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-16"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-16"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-23vdpod6-17"] { view-transition-name: built-with-image; }@layer astro { ::view-transition-old(built-with-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(built-with-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(built-with-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(built-with-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-17"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-17"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-17"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-17"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-17"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-17"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-17"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-17"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-ylnphgrt-18"] { view-transition-name: built-with-title; }@layer astro { ::view-transition-old(built-with-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(built-with-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(built-with-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(built-with-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-18"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-18"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-18"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-18"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-18"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-18"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-18"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-18"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-cal5m75k-19"] { view-transition-name: built-with-content; }@layer astro { ::view-transition-old(built-with-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(built-with-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(built-with-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(built-with-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-19"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-19"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-19"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-19"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-19"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-19"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-19"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-19"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-23vdpod6-20"] { view-transition-name: remote-flow-image; }@layer astro { ::view-transition-old(remote-flow-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(remote-flow-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(remote-flow-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(remote-flow-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-20"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-20"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-20"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-20"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-20"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-20"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-20"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-20"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-ylnphgrt-21"] { view-transition-name: remote-flow-title; }@layer astro { ::view-transition-old(remote-flow-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(remote-flow-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(remote-flow-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(remote-flow-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-21"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-21"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-21"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-21"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-21"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-21"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-21"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-21"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-cal5m75k-22"] { view-transition-name: remote-flow-content; }@layer astro { ::view-transition-old(remote-flow-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(remote-flow-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(remote-flow-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(remote-flow-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-22"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-22"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-22"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-22"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-22"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-22"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-22"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-22"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-23vdpod6-23"] { view-transition-name: hello-world-image; }@layer astro { ::view-transition-old(hello-world-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(hello-world-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(hello-world-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(hello-world-image) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-23"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-23"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-23"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-23"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-23vdpod6-23"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-23vdpod6-23"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-23vdpod6-23"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-23vdpod6-23"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-ylnphgrt-24"] { view-transition-name: hello-world-title; }@layer astro { ::view-transition-old(hello-world-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(hello-world-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(hello-world-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(hello-world-title) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-24"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-24"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-24"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-24"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ylnphgrt-24"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ylnphgrt-24"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ylnphgrt-24"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ylnphgrt-24"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-cal5m75k-25"] { view-transition-name: hello-world-content; }@layer astro { ::view-transition-old(hello-world-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }::view-transition-new(hello-world-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(hello-world-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(hello-world-content) {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-25"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-25"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-25"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-25"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-cal5m75k-25"],
[data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-cal5m75k-25"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-cal5m75k-25"],
[data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-cal5m75k-25"] {
animation-duration: 180ms;
animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
animation-fill-mode: both;
animation-name: astroFadeIn; }</style><style>[data-astro-transition-scope="astro-j3j5vx5o-26"] { view-transition-name: header; }@layer astro { ::view-transition-old(header) { animation: none; opacity: 0; mix-blend-mode: normal; }::view-transition-new(header) { animation: none; mix-blend-mode: normal; }::view-transition-group(header) { animation: none } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-j3j5vx5o-26"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-j3j5vx5o-26"] { animation: none; mix-blend-mode: normal; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-j3j5vx5o-26"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-j3j5vx5o-26"] { animation: none; mix-blend-mode: normal; }</style><style>[data-astro-transition-scope="astro-6xhvpf3o-27"] { view-transition-name: footer; }@layer astro { ::view-transition-old(footer) { animation: none; opacity: 0; mix-blend-mode: normal; }::view-transition-new(footer) { animation: none; mix-blend-mode: normal; }::view-transition-group(footer) { animation: none } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-6xhvpf3o-27"],
[data-astro-transition-fallback="old"][data-astro-transition-scope="astro-6xhvpf3o-27"] { animation: none; mix-blend-mode: normal; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-6xhvpf3o-27"],
[data-astro-transition-fallback="new"][data-astro-transition-scope="astro-6xhvpf3o-27"] { animation: none; mix-blend-mode: normal; }</style></head> <body> <header class="header z-30 sticky top-0" data-astro-transition-persist="header" data-astro-transition-scope="astro-j3j5vx5o-26"> <nav class="navbar container gap-4"> <a href="/" class="navbar-brand order-0 md:basis-44">Contemplating Dev</a> <input id="nav-toggle" type="checkbox" class="hidden"> <label for="nav-toggle" class="order-3 flex cursor-pointer md:order-1 md:hidden"> <div id="show-button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-menu-2"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M4 6l16 0"></path> <path d="M4 12l16 0"></path> <path d="M4 18l16 0"></path> </svg></div> <div id="hide-button" class="hidden"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-x"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M18 6l-12 12"></path><path d="M6 6l12 12"></path> </svg></div> </label> <ul id="nav-menu" class="navbar-nav order-3 hidden w-full justify-center md:order-1 md:flex md:w-auto md:flex-grow md:space-x-4"> <li class="nav-item"> <a href="/tags/" class="nav-link false"> Tags </a> </li><li class="nav-item"> <a href="/about/" class="nav-link false"> About </a> </li> </ul> <div class="order-1 ml-auto flex items-center justify-end gap-4 md:order-2 md:basis-44"> <a class="search-button btn btn-sm btn-outline-primary undefined" href="/search/" aria-label="search"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-search undefined"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"></path> <path d="M21 21l-6 -6"></path> </svg><span class="visible-hidden">Search</span></a><noscript><style>
.search-button {
display: none;
}
</style></noscript> <div class="theme-menu relative select-none"> <div> <button type="button" id="menu-button" class="btn btn-sm btn-outline-primary" aria-expanded="true" aria-haspopup="true"> <svg id="icon-light" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-sun hidden"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"></path> <path d="M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7"></path> </svg> <svg id="icon-dark" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-moon hidden"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path> </svg> <svg id="icon-system" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-contrast undefined"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M17 3.34a10 10 0 1 1 -15 8.66l.005 -.324a10 10 0 0 1 14.995 -8.336m-9 1.732a8 8 0 0 0 4.001 14.928l-.001 -16a8 8 0 0 0 -4 1.072"></path> </svg> </button> </div> <div id="menu" class="absolute right-0 z-10 mt-2 hidden origin-top-right rounded-md border border-current bg-body focus:outline-none dark:bg-darkmode-body dark:text-darkmode-light" role="menu" aria-orientation="vertical" aria-labelledby="menu-button" tabindex="-1"> <div class="flex flex-col space-y-1 py-1" role="none"> <div id="theme-light" class="flex items-center space-x-2 rounded-md bg-body px-2 py-1 hover:cursor-pointer hover:bg-theme-light dark:bg-darkmode-body dark:hover:bg-darkmode-theme-light" role="menu"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-sun undefined"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"></path> <path d="M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7"></path> </svg> <div>Light</div> </div> <div id="theme-dark" class="flex items-center space-x-2 rounded-md bg-body px-2 py-1 hover:cursor-pointer hover:bg-theme-light dark:bg-darkmode-body dark:hover:bg-darkmode-theme-light" role="menu"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-moon undefined"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path> </svg> <div>Dark</div> </div> <div id="theme-system" class="flex items-center space-x-2 rounded-md bg-body px-2 py-1 hover:cursor-pointer hover:bg-theme-light dark:bg-darkmode-body dark:hover:bg-darkmode-theme-light" role="menu"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-contrast undefined"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M17 3.34a10 10 0 1 1 -15 8.66l.005 -.324a10 10 0 0 1 14.995 -8.336m-9 1.732a8 8 0 0 0 4.001 14.928l-.001 -16a8 8 0 0 0 -4 1.072"></path> </svg> <div>System</div> </div> </div> </div> </div> <noscript> <style>
.theme-menu {
display: none;
}
</style> </noscript> </div> </nav> </header> <main id="main-content" class="content" data-astro-transition-scope="astro-jbfqbse4-1"> <div class="container"> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 md:gap-8"> <a href="/posts/for-the-record/" class="not-prose flex flex-col space-y-2 no-underline"> <picture> <source srcset="/_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_2hQmMQ.avif 320w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_2uwqcF.avif 384w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_ZI4GhH.avif 512w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_q5AhC.avif 640w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_1xQqPu.avif 768w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_Z1b3nkf.avif 1024w" type="image/avif" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_1aD7H7.webp 320w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_1njb6V.webp 384w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_Z1PhVnr.webp 512w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_ZG7DN7.webp 640w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_qDbJK.webp 768w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_Zfo2vz.webp 1024w" type="image/webp" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_2n407P.jpeg 320w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_Z2us5hh.jpeg 384w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_ZCR3WI.jpeg 512w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_vidBB.jpeg 640w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_1D44at.jpeg 768w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_1sm5Of.jpeg 1024w" type="image/jpeg" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"> <img src="/_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_2ucAyx.png" srcset="/_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_q6hl2.png 320w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_CLkJQ.png 384w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_2umm4p.png 512w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_Z1qEuac.png 640w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_ZiSDBk.png 768w, /_astro/jace-afsoon--iKrBACW3lQ-unsplash.BnfDhLwc_21Tzly.png 1024w" alt="For the record" class="rounded-md" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px" data-astro-transition-scope="astro-23vdpod6-2" width="6000" height="3140" loading="lazy" decoding="async"> </picture> <div class="font-secondary text-h4 font-medium leading-tight text-dark dark:font-normal dark:text-darkmode-dark" data-astro-transition-scope="astro-ylnphgrt-3"> For the record </div> <p class="italic" data-astro-transition-scope="astro-cal5m75k-4"> Are records a relatively new C# feature or are they old-school? Do they help C#
hit the right notes? </p> </a><a href="/posts/discover-functional-programming/" class="not-prose flex flex-col space-y-2 no-underline"> <picture> <source srcset="/_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_1fv4ro.avif 320w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_1sb7Qd.avif 384w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_Z1KpYDa.avif 512w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_ZBfH3P.avif 640w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_vv8u2.avif 768w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_2dviu4.avif 1024w" type="image/avif" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_19Cx2x.webp 320w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_1miArm.webp 384w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_Z1Qiw31.webp 512w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_ZH8esG.webp 640w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_pCB5b.webp 768w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_ZKGa8m.webp 1024w" type="image/webp" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_Z1o18zX.jpeg 320w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_Z1bl5b9.jpeg 384w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_FeV8p.jpeg 512w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_1OpdHJ.jpeg 640w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_Z2814xk.jpeg 768w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_1ujYnP.jpeg 1024w" type="image/jpeg" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"> <img src="/_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_Z1BsGYg.png" srcset="/_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_ZHlzDp.png 320w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_ZuFweA.png 384w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_1lTu4X.png 512w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_2v4LEi.png 640w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_Z1rlvAL.png 768w, /_astro/alessandro-bianchi-_kdTyfnUFAc-unsplash.DqNviyMh_2k8Emn.png 1024w" alt="Discover functional programming" class="rounded-md" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px" data-astro-transition-scope="astro-23vdpod6-5" width="8246" height="4317" loading="lazy" decoding="async"> </picture> <div class="font-secondary text-h4 font-medium leading-tight text-dark dark:font-normal dark:text-darkmode-dark" data-astro-transition-scope="astro-ylnphgrt-6"> Discover functional programming </div> <p class="italic" data-astro-transition-scope="astro-cal5m75k-7"> Discover the essence of functional programming by designing a programming
language. </p> </a><a href="/posts/encapsulation-is-a-bitter-pill/" class="not-prose flex flex-col space-y-2 no-underline"> <picture> <source srcset="/_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_11FyaO.avif 320w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_1elBzD.avif 384w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_Z1YfuTJ.avif 512w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_ZP5dkp.avif 640w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_hFCds.avif 768w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_h2xSd.avif 1024w" type="image/avif" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_Z1MTzF9.webp 320w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_Z1Aewgk.webp 384w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_glu3e.webp 512w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_1pvLCy.webp 640w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_Z2wTvCv.webp 768w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_ZXVtAS.webp 1024w" type="image/webp" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_iFAW6.jpeg 320w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_vlElU.jpeg 384w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_2mVFFt.jpeg 512w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_Z1y5ay8.jpeg 640w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_Zqjk0g.jpeg 768w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_Z1J8rNp.jpeg 1024w" type="image/jpeg" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"> <img src="/_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_1jNwRl.png" srcset="/_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_Z229ex0.png 320w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_Z1Otb8b.png 384w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_26Pbn.png 512w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_1bh7KH.png 640w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_2j2Xjz.png 768w, /_astro/diamondrehab-thailand-_xoVogHqGkI-unsplash.xHV89O2Q_1W0xay.png 1024w" alt="Encapsulation is a bitter pill" class="rounded-md" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px" data-astro-transition-scope="astro-23vdpod6-8" width="3499" height="1832" loading="lazy" decoding="async"> </picture> <div class="font-secondary text-h4 font-medium leading-tight text-dark dark:font-normal dark:text-darkmode-dark" data-astro-transition-scope="astro-ylnphgrt-9"> Encapsulation is a bitter pill </div> <p class="italic" data-astro-transition-scope="astro-cal5m75k-10"> Object encapsulation is indicated as a treatment for complexity. What if the
remedy is worse than the disease? </p> </a><a href="/posts/cover-me/" class="not-prose flex flex-col space-y-2 no-underline"> <picture> <source srcset="/_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Z2t9dBi.avif 320w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Z2gtact.avif 384w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_ZoS8RU.avif 512w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Jh8Gp.avif 640w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_1R2Yfh.avif 768w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Z1AzGmI.avif 1024w" type="image/avif" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Z2fkRIw.webp 320w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Z22EOjH.webp 384w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Zb4N09.webp 512w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_X5tzb.webp 640w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_25Qk83.webp 768w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_khL8e.webp 1024w" type="image/webp" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_HavNJ.jpeg 320w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_TPzdy.jpeg 384w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Z2iKxgO.jpeg 512w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Z19AfGu.jpeg 640w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_Z1Op8C.jpeg 768w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_wEDix.jpeg 1024w" type="image/jpeg" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"> <img src="/_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_1wJm1d.png" srcset="/_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_224aDG.png 320w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_2eJe3v.png 384w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_ZXQSqR.png 512w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_aio8s.png 640w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_1i4eGk.png 768w, /_astro/sdf-rahbar-dw7paFI1jnM-unsplash.CiOMZ4o5_WPIDx.png 1024w" alt="Cover me" class="rounded-md" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px" data-astro-transition-scope="astro-23vdpod6-11" width="4588" height="2402" loading="lazy" decoding="async"> </picture> <div class="font-secondary text-h4 font-medium leading-tight text-dark dark:font-normal dark:text-darkmode-dark" data-astro-transition-scope="astro-ylnphgrt-12"> Cover me </div> <p class="italic" data-astro-transition-scope="astro-cal5m75k-13"> Tests provide a blanket of security. How much coverage is enough? </p> </a><a href="/posts/parse-dont-validate/" class="not-prose flex flex-col space-y-2 no-underline"> <picture> <source srcset="/_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_ZoiGWO.avif 320w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_ZbCDy0.avif 384w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_1EWmKy.avif 512w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Z2g4tt3.avif 640w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Z18iCUb.avif 768w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_1PcDQN.avif 1024w" type="image/avif" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Z26YYCA.webp 320w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Z1TjVdL.webp 384w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Z2ITTd.webp 512w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_16qmF7.webp 640w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_2ecddY.webp 768w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_ZvhREJ.webp 1024w" type="image/webp" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_grMKt.jpeg 320w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_t7Qai.jpeg 384w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_2kHRtQ.jpeg 512w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Z1AiXJK.jpeg 640w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Zsx8bS.jpeg 768w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_2d2G6d.jpeg 1024w" type="image/jpeg" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"> <img src="/_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_2fFfBs.png" srcset="/_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Z2vjL5B.png 320w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Z2iDHFM.png 384w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_Zr3Gme.png 512w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_H6Ad6.png 640w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_1ORqKX.png 768w, /_astro/annie-spratt-vpFiAD-WWEs-unsplash.BJ5Q2ytN_2nfqxy.png 1024w" alt="Parse, don't validate" class="rounded-md" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px" data-astro-transition-scope="astro-23vdpod6-14" width="7372" height="3860" loading="lazy" decoding="async"> </picture> <div class="font-secondary text-h4 font-medium leading-tight text-dark dark:font-normal dark:text-darkmode-dark" data-astro-transition-scope="astro-ylnphgrt-15"> Parse, don't validate </div> <p class="italic" data-astro-transition-scope="astro-cal5m75k-16"> Inspired by Alexis King. Simplify your C# code and reduce the need for tests by
avoiding shotgun parsing. </p> </a><a href="/posts/built-with/" class="not-prose flex flex-col space-y-2 no-underline"> <picture> <source srcset="/_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_1yg5zD.avif 320w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_1KV8Ys.avif 384w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_Z1rEXuU.avif 512w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_ZiuFUA.avif 640w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_Og9Ch.avif 768w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_1zuA2O.avif 1024w" type="image/avif" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_r2PtT.webp 320w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_DHSSI.webp 384w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_2viUdh.webp 512w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_Z1pHV1k.webp 640w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_ZhW5ss.webp 768w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_2v9UQu.webp 1024w" type="image/webp" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_1DsHTC.jpeg 320w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_1Q8Ljr.jpeg 384w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_Z1mslaV.jpeg 512w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_Zdi3AB.jpeg 640w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_TsLWg.jpeg 768w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_ZQh4BC.jpeg 1024w" type="image/jpeg" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"> <img src="/_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_kHTfD.png" srcset="/_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_ZitYRb.png 320w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_Z5NVsm.png 384w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_1KL4Qc.png 512w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_Z2afLnp.png 640w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_Z12tUOx.png 768w, /_astro/alex-gruber-0t2TePUlK6I-unsplash.CXOo00d4_ZhIA5j.png 1024w" alt="Built with" class="rounded-md" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px" data-astro-transition-scope="astro-23vdpod6-17" width="5472" height="2864" loading="lazy" decoding="async"> </picture> <div class="font-secondary text-h4 font-medium leading-tight text-dark dark:font-normal dark:text-darkmode-dark" data-astro-transition-scope="astro-ylnphgrt-18"> Built with </div> <p class="italic" data-astro-transition-scope="astro-cal5m75k-19"> A summary of the tools used to build this website. </p> </a><a href="/posts/remote-flow/" class="not-prose flex flex-col space-y-2 no-underline"> <picture> <source srcset="/_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_2lnhs1.avif 320w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_Z2w8MW6.avif 384w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_ZExLCx.avif 512w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_tBuVM.avif 640w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_1BnluE.avif 768w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_B9T4P.avif 1024w" type="image/avif" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_1ea2mh.webp 320w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_1qP5L6.webp 384w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_Z1LL1Ih.webp 512w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_ZCAJ8W.webp 640w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_ua6oU.webp 768w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_1wOeSv.webp 1024w" type="image/webp" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_2qzTM0.jpeg 320w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_Z2qVaC7.jpeg 384w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_Zzl9iy.jpeg 512w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_yO8gL.jpeg 640w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_1GzXOD.jpeg 768w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_Z1OBKzB.jpeg 1024w" type="image/jpeg" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"> <img src="/_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_2avO27.png" srcset="/_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_tCc0c.png 320w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_Gifp1.png 384w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_Z2wiR5m.png 512w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_Z1n8zv2.png 640w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_ZfmIWa.png 768w, /_astro/artem-verbo-zHg5TXgVoGQ-unsplash.CQWvpFrf_Z1g4h3i.png 1024w" alt="Remote flow" class="rounded-md" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px" data-astro-transition-scope="astro-23vdpod6-20" width="4031" height="2109" loading="lazy" decoding="async"> </picture> <div class="font-secondary text-h4 font-medium leading-tight text-dark dark:font-normal dark:text-darkmode-dark" data-astro-transition-scope="astro-ylnphgrt-21"> Remote flow </div> <p class="italic" data-astro-transition-scope="astro-cal5m75k-22"> The pandemic presents an opportunity to promote effective programming time. </p> </a><a href="/posts/hello-world/" class="not-prose flex flex-col space-y-2 no-underline"> <picture> <source srcset="/_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z1wfSnt.avif 320w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z1jzOXE.avif 384w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_x0bkT.avif 512w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_1GasUe.avif 640w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z2gfOkP.avif 768w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_2o1Qy1.avif 1024w" type="image/avif" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_JOVfl.webp 320w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_WuYEa.webp 384w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z2g67Pd.webp 512w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z16UPfS.webp 640w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_P0hY.webp 768w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_1ScyOl.webp 1024w" type="image/webp" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"><source srcset="/_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_ZwIN8f.jpeg 320w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Zk3JIq.jpeg 384w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_1wwgA8.jpeg 512w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z2ouzDt.jpeg 640w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z1gIJ5B.jpeg 768w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z2r3tqp.jpeg 1024w" type="image/jpeg" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px"> <img src="/_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z2jHhX.png" srcset="/_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_1JxoVV.png 320w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_1WdslK.png 384w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z1gnE8C.png 512w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_Z7dmyi.png 640w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_10xsYz.png 768w, /_astro/javier-miranda-Jn2EaLLYZfY-unsplash.CZW_euNm_2e6hy2.png 1024w" alt="Hello, world" class="rounded-md" sizes="(max-width: 640px) 320px, (max-width: 768px) 384px, (max-width: 1024px) 512px, (max-width: 1280px) 640px, (max-width: 1536px) 768px, 1024px" data-astro-transition-scope="astro-23vdpod6-23" width="5382" height="2818" loading="lazy" decoding="async"> </picture> <div class="font-secondary text-h4 font-medium leading-tight text-dark dark:font-normal dark:text-darkmode-dark" data-astro-transition-scope="astro-ylnphgrt-24"> Hello, world </div> <p class="italic" data-astro-transition-scope="astro-cal5m75k-25"> First post, first program, welcome to contemplating dev. </p> </a> </div> </div> </main> <footer class="footer container pt-4 text-center" data-astro-transition-persist="footer" data-astro-transition-scope="astro-6xhvpf3o-27"> <div class="flex flex-col items-center rounded-2xl bg-gradient-to-t from-body to-theme-light p-4 dark:from-darkmode-body dark:to-darkmode-theme-light md:flex-row md:justify-between"> <div class="flex flex-row space-x-2 md:order-3 md:basis-64 md:justify-end"> <a href="https://github.com/RyanNieuwoudt" title="Ryan Nieuwoudt on GitHub" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-github undefined"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"></path> </svg> <span class="visible-hidden">GitHub</span> </a> <a href="https://www.linkedin.com/in/ryan-nieuwoudt" title="Ryan Nieuwoudt on LinkedIn" aria-label="LinkedIn"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-linkedin undefined"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path> <path d="M8 11l0 5"></path> <path d="M8 8l0 .01"></path> <path d="M12 16l0 -5"></path> <path d="M16 16v-3a2 2 0 0 0 -4 0"></path> </svg> <span class="visible-hidden">LinkedIn</span> </a> <a rel="me" href="https://mastodon.social/@ryannieuwoudt" title="Ryan Nieuwoudt on Mastodon" aria-label="Mastodon"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-mastodon undefined"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M18.648 15.254c-1.816 1.763 -6.648 1.626 -6.648 1.626a18.262 18.262 0 0 1 -3.288 -.256c1.127 1.985 4.12 2.81 8.982 2.475c-1.945 2.013 -13.598 5.257 -13.668 -7.636l-.026 -1.154c0 -3.036 .023 -4.115 1.352 -5.633c1.671 -1.91 6.648 -1.666 6.648 -1.666s4.977 -.243 6.648 1.667c1.329 1.518 1.352 2.597 1.352 5.633s-.456 4.074 -1.352 4.944z"></path> <path d="M12 11.204v-2.926c0 -1.258 -.895 -2.278 -2 -2.278s-2 1.02 -2 2.278v4.722m4 -4.722c0 -1.258 .895 -2.278 2 -2.278s2 1.02 2 2.278v4.722"></path> </svg> <span class="visible-hidden">Mastodon</span> </a> <a href="https://t.me/RyanNieuwoudt" title="Ryan Nieuwoudt on Telegram" aria-label="Telegram"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-telegram undefined"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path> </svg> <span class="visible-hidden">Telegram</span> </a> </div> <ul class="text-center md:order-2 lg:col-6 md:flex-grow lg:mb-0"> <li class="mx-3 inline-block"> <a href="/privacy/">Privacy</a> </li><li class="mx-3 inline-block"> <a href="/disclaimer/">Disclaimer</a> </li> </ul> <a class="text-left md:order-1 md:basis-64" href="/about/">© 2017-2024 Ryan Nieuwoudt</a> </div> </footer> <meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate"><script data-astro-exec="">(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e991ac45ece6660',t:'MTczMjc4Mzc2NS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script><iframe height="1" width="1" style="position: absolute; top: 0px; left: 0px; border: none; visibility: hidden;"></iframe></body></html>