PageSourceSearch

https://mark.zakariya.blog/

html zakariya.blog collected 2026-10-07 01:59:50 UTC 12,602 bytes, 291 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4
5    <title>mark zakariya - blog</title>
6    <meta charset="utf-8">
7    <meta name="viewport" content="width=device-width, initial-scale=1.0">
8    
9    <link rel="preload" as="style" href="/assets/built/screen.css?v=5a4557f1cb">
10    <link rel="preload" as="script" href="/assets/built/source.js?v=5a4557f1cb">
11    
12    <link rel="preload" as="font" type="font/woff2" href="/assets/fonts/inter-roman.woff2?v=5a4557f1cb" crossorigin="anonymous">
13<style>
14    @font-face {
15        font-family: "Inter";
16        font-style: normal;
17        font-weight: 100 900;
18        font-display: optional;
19        src: url(/assets/fonts/inter-roman.woff2?v=5a4557f1cb) format("woff2");
20        unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
21    }
22</style>
23    <link rel="preload" as="font" type="font/woff2" href="/assets/fonts/jetbrains-mono-roman.woff2?v=5a4557f1cb" crossorigin="anonymous">
24<link rel="preload" as="font" type="font/woff2" href="/assets/fonts/jetbrains-mono-italic.woff2?v=5a4557f1cb" crossorigin="anonymous">
25<style>
26    @font-face {
27        font-family: "JetBrains Mono";
28        font-style: normal;
29        font-weight: 100 800;
30        font-display: optional;
31        src: url(/assets/fonts/jetbrains-mono-roman.woff2?v=5a4557f1cb) format("woff2");
32        unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
33    }
34
35    @font-face {
36        font-family: "JetBrains Mono";
37        font-style: italic;
38        font-weight: 100 800;
39        font-display: optional;
40        src: url(/assets/fonts/jetbrains-mono-italic.woff2?v=5a4557f1cb) format("woff2");
41        unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
42    }
43</style>
44    <link rel="stylesheet" type="text/css" href="/assets/built/screen.css?v=5a4557f1cb">
45
46    <style>
47        :root {
48            --background-color: #ffffff
49        }
50    </style>
51
52    
52<script>
53        /* The script for calculating the color contrast has been taken from
54        https://gomakethings.com/dynamically-changing-the-text-color-based-on-background-color-contrast-with-vanilla-js/ */
55        var accentColor = getComputedStyle(document.documentElement).getPropertyValue('--background-color');
56        accentColor = accentColor.trim().slice(1);
57
58        if (accentColor.length === 3) {
59            accentColor = accentColor[0] + accentColor[0] + accentColor[1] + accentColor[1] + accentColor[2] + accentColor[2];
60        }
61
62        var r = parseInt(accentColor.substr(0, 2), 16);
63        var g = parseInt(accentColor.substr(2, 2), 16);
64        var b = parseInt(accentColor.substr(4, 2), 16);
65        var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;
66        var textColor = (yiq >= 128) ? 'dark' : 'light';
67
68        document.documentElement.className = `has-${textColor}-text`;
69    </script>
69
70
71    <meta name="description" content="the ramblings of a tech enthusiast. blogging from brooklyn, nyc.">
72    <link rel="icon" href="https://mark.zakariya.blog/content/images/size/w256h256/2024/09/favicon.png" type="image/png">
73    <link rel="canonical" href="https://mark.zakariya.blog/">
74    <meta name="referrer" content="no-referrer-when-downgrade">
75    
76    <meta property="og:site_name" content="mark&#x27;s musings">
77    <meta property="og:type" content="website">
78    <meta property="og:title" content="mark zakariya&#x27;s home on the web">
79    <meta property="og:description" content="the ramblings of a tech enthusiast. blogging from brooklyn, nyc.">
80    <meta property="og:url" content="https://mark.zakariya.blog/">
81    <meta property="og:image" content="https://mark.zakariya.blog/content/images/size/w1200/2024/10/A7C00578-1--3.JPG">
82    <meta property="article:publisher" content="https://www.facebook.com/mark.zakariya/">
83    <meta name="twitter:card" content="summary_large_image">
84    <meta name="twitter:title" content="mark zakariya&#x27;s home on the web">
85    <meta name="twitter:description" content="the ramblings of a tech enthusiast. blogging from brooklyn, nyc.">
86    <meta name="twitter:url" content="https://mark.zakariya.blog/">
87    <meta name="twitter:image" content="https://mark.zakariya.blog/content/images/size/w1200/2024/10/A7C00578-1--2.JPG">
88    <meta property="og:image:width" content="1200">
89    <meta property="og:image:height" content="800">
90    
91    
91<script type="application/ld+json">
92{
93    "@context": "https://schema.org",
94    "@type": "WebSite",
95    "publisher": {
96        "@type": "Organization",
97        "name": "mark's musings",
98        "url": "https://mark.zakariya.blog/",
99        "logo": {
100            "@type": "ImageObject",
101            "url": "https://mark.zakariya.blog/content/images/size/w256h256/2024/09/favicon.png",
102            "width": 60,
103            "height": 60
104        }
105    },
106    "url": "https://mark.zakariya.blog/",
107    "name": "mark's musings",
108    "mainEntityOfPage": "https://mark.zakariya.blog/",
109    "description": "the ramblings of a tech enthusiast. blogging from brooklyn, nyc."
110}
111    </script>
111
112
113    <meta name="generator" content="Ghost 6.54">
114    <link rel="alternate" type="application/rss+xml" title="mark&#x27;s musings" href="https://mark.zakariya.blog/rss/">
115    
115<script defer src="https://mark.zakariya.blog/assets/js/portal.min.js" data-i18n="true" data-ghost="https://mark.zakariya.blog/" data-key="2373526143295905b795900803" data-api="https://mark.zakariya.blog/ghost/api/content/" data-locale="en" crossorigin="anonymous"></script>
115<style id="gh-members-styles">.gh-post-upgrade-cta-content,
116.gh-post-upgrade-cta {
117    display: flex;
118    flex-direction: column;
119    align-items: center;
120    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
121    text-align: center;
122    width: 100%;
123    color: #ffffff;
124    font-size: 16px;
125}
126
127.gh-post-upgrade-cta-content {
128    border-radius: 8px;
129    padding: 40px 4vw;
130}
131
132.gh-post-upgrade-cta h2 {
133    color: #ffffff;
134    font-size: 28px;
135    letter-spacing: -0.2px;
136    margin: 0;
137    padding: 0;
138}
139
140.gh-post-upgrade-cta p {
141    margin: 20px 0 0;
142    padding: 0;
143}
144
145.gh-post-upgrade-cta small {
146    font-size: 16px;
147    letter-spacing: -0.2px;
148}
149
150.gh-post-upgrade-cta a {
151    color: #ffffff;
152    cursor: pointer;
153    font-weight: 500;
154    box-shadow: none;
155    text-decoration: underline;
156}
157
158.gh-post-upgrade-cta a:hover {
159    color: #ffffff;
160    opacity: 0.8;
161    box-shadow: none;
162    text-decoration: underline;
163}
164
165.gh-post-upgrade-cta a.gh-btn {
166    display: block;
167    background: #ffffff;
168    text-decoration: none;
169    margin: 28px 0 0;
170    padding: 8px 18px;
171    border-radius: 4px;
172    font-size: 16px;
173    font-weight: 600;
174}
175
176.gh-post-upgrade-cta a.gh-btn:hover {
177    opacity: 0.92;
178}</style>
179    
179<script defer src="https://mark.zakariya.blog/assets/js/sodo-search.min.js" data-key="2373526143295905b795900803" data-styles="https://mark.zakariya.blog/assets/js/main.css" data-sodo-search="https://mark.zakariya.blog/" data-locale="en" crossorigin="anonymous"></script>
179
180    
181    <link href="https://mark.zakariya.blog/webmentions/receive/" rel="webmention">
182    
182<script defer src="/public/cards.min.js?v=5a4557f1cb"></script>
182
183    <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=5a4557f1cb">
184    
184<script defer src="/public/comment-counts.min.js?v=5a4557f1cb" data-ghost-comments-counts-api="https://mark.zakariya.blog/members/api/comments/counts/"></script>
184
185    
185<script defer src="/public/member-attribution.min.js?v=5a4557f1cb"></script>
185<style>:root {--ghost-accent-color: #AACBD8;}</style>
186    
186<script async src="https://traffic.zakariya.blog/js/pa-m51whakpRsh1tGnvz-GqA.js"></script>
vendor: 1 bytes, line 186
186
187<script>
188  window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
189  plausible.init()
190</script>
190
191
192</head>
193<body class="home-template has-mono-title has-sans-body">
194
195<div class="gh-viewport">
196    
197    <header id="gh-navigation" class="gh-navigation is-left-logo gh-outer">
198    <div class="gh-navigation-inner gh-inner">
199
200        <div class="gh-navigation-brand">
201            <a class="gh-navigation-logo is-title" href="https://mark.zakariya.blog">
202                    mark&#x27;s musings
203            </a>
204            <button class="gh-search gh-icon-button" aria-label="Search this site" data-ghost-search>
205    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button>            <button class="gh-burger gh-icon-button" aria-label="Menu">
206                <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"></path></svg>                <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"></path></svg>            </button>
207        </div>
208
209        <nav class="gh-navigation-menu">
210            <ul class="nav">
211    <li class="nav-home nav-current"><a href="https://mark.zakariya.blog/">home</a></li>
212    <li class="nav-about"><a href="https://mark.zakariya.blog/about/">about</a></li>
213</ul>
214
215        </nav>
216
217        <div class="gh-navigation-actions">
218                <button class="gh-search gh-icon-button" aria-label="Search this site" data-ghost-search>
219    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button>                <div class="gh-navigation-members">
220                            <a href="#/portal/signin" data-portal="signin">Sign in</a>
221                                <a class="gh-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
222                </div>
223        </div>
224
225    </div>
226</header>
227
228    
229
230    
231
232
233<section class="gh-container is-list gh-outer">
234    <div class="gh-container-inner gh-inner">
235        
236            <h2 class="gh-container-title">
237                Latest
238            </h2>
239
240        <main class="gh-main">
241            <div class="gh-feed">
242
243                                <article class="gh-card post">
244    <a class="gh-card-link" href="/a-bunch-of-photos/">
245            <figure class="gh-card-image">
246                <img
247                    srcset="/content/images/size/w160/format/webp/2024/10/DSC00582.jpg 160w,
248                            /content/images/size/w320/format/webp/2024/10/DSC00582.jpg 320w,
249                            /content/images/size/w600/format/webp/2024/10/DSC00582.jpg 600w,
250                            /content/images/size/w960/format/webp/2024/10/DSC00582.jpg 960w,
251                            /content/images/size/w1200/format/webp/2024/10/DSC00582.jpg 1200w,
252                            /content/images/size/w2000/format/webp/2024/10/DSC00582.jpg 2000w"
253                    sizes="320px"
254                    src="/content/images/size/w600/2024/10/DSC00582.jpg"
255                    alt="a bunch of photos"
256                    loading="lazy"
257                >
258            </figure>
259        <div class="gh-card-wrapper">
260            <h3 class="gh-card-title is-title">a bunch of photos</h3>
261                <p class="gh-card-excerpt is-body">Assortment of cat photos, and a bonus photo.</p>
262            <footer class="gh-card-meta">
263<!--
264             -->                    <time class="gh-card-date" datetime="2024-10-18">18 Oct 2024</time>
265                <!--
266         --></footer>
267        </div>
268    </a>
269</article>
270                    
271
272
273            </div>
274
275        </main>
276
277
278    </div>
279</section>
280
281    
282        
283</div>
284
285
286<script src="/assets/built/source.js?v=5a4557f1cb"></script>
286
287
288
289
290</body>
291</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.