1<!DOCTYPE html> 2<html lang='en-gb' > 3 4<head> 5 6 <meta charset='utf-8'> 7 <meta name='viewport' content='width=device-width, initial-scale=1'> 8 <meta http-equiv='X-UA-Compatible' content='IE=edge'> 9 <meta name='robots' content='index,follow'><meta name='theme-color' content='#00C3EE'><meta property='og:type' content='website'> 10 <meta property='og:site_name' content='eartharoid'> 11 <meta property='og:title' content='My blog ⢠eartharoid'> 12 <meta property='og:url' content='https://eartharoid.me/blog/'> 13 14 <meta property='og:image' content='https://ogi.sh/article?title=My blog&eyebrow=January 1, 0001&imageUrl=https://eartharoid.me/cdn-cgi/image/height=1080,format=avif/https://static.eartharoid.me/images/p/earth-sunset-from-space.jpg'> 15 <meta name='image' content='https://ogi.sh/article?title=My blog&eyebrow=January 1, 0001&imageUrl=https://eartharoid.me/cdn-cgi/image/height=1080,format=avif/https://static.eartharoid.me/images/p/earth-sunset-from-space.jpg'> 16 <meta itemprop='image' content='https://ogi.sh/article?title=My blog&eyebrow=January 1, 0001&imageUrl=https://eartharoid.me/cdn-cgi/image/height=1080,format=avif/https://static.eartharoid.me/images/p/earth-sunset-from-space.jpg'> 17 <meta name='twitter:card' content='summary_large_image'> 18 <meta name='twitter:image' content='https://ogi.sh/article?title=My blog&eyebrow=January 1, 0001&imageUrl=https://eartharoid.me/cdn-cgi/image/height=1080,format=avif/https://static.eartharoid.me/images/p/earth-sunset-from-space.jpg'><meta name='twitter:site' content='@eartharoid'> 19 <meta name='twitter:creator' content='@eartharoid'><meta name='twitter:title' content='My blog ⢠eartharoid'><meta name='description' content='I don't know why I made this'> 20 <meta name='twitter:description' content='I don't know why I made this'> 21 <meta name='og:description' content='I don't know why I made this'> 22 <meta name='keywords' content='I don't know why I made this'><meta name='author' content='eartharoid'> 23 24 <meta name="generator" content="Hugo 0.82.1" /> 25 26 <title>My blog ⢠eartharoid</title> 27 28 29 <link rel='icon' href='/favicon.ico' type='image/icon'> 30 <link rel='stylesheet' href='/css/global.css'> 31 <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/[email protected]/css/bulma.min.css'> 32 <link rel='stylesheet' id='themeCSS'> 33 34 <link rel='stylesheet' href='/css/dark_theme.css' media='(prefers-color-scheme: dark)' 35 id='darkThemeCSS'> 36 <link rel='stylesheet' href='/css/light_theme.css' 37 media='(prefers-color-scheme: no-preference), (prefers-color-scheme: light)' id='lightThemeCSS'> 38 39 <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/devicons/[email protected]/devicon.min.css"> 40 41 42
42<script defer src='https://use.fontawesome.com/releases/v5.14.0/js/all.js'></script>
42 43
43<script defer src='/js/global.js'></script>
43 44
44<script defer src="https://static.eartharoid.me/ustats.js" data-website-id="052207ba-2f8d-4caa-9bee-4586308daa07" data-domains='eartharoid.me'></script>
44 45 46 47 <style> 48 .hero { 49 background-image: url('https://eartharoid.me/cdn-cgi/image/height=1080,format=avif/https://static.eartharoid.me/images/p/earth-sunset-from-space.jpg'); 50 background-image: linear-gradient(rgba(0, 0, 0, 0.5), 51 rgba(0, 0, 0, 0.5)), 52 url('https://eartharoid.me/cdn-cgi/image/height=1080,format=avif/https://static.eartharoid.me/images/p/earth-sunset-from-space.jpg'); 53 background-position: center; 54 background-size: cover; 55 } 56 </style> 57</head> 58<body> 59<main><section class='hero is-dark'> 60 <div class='hero-head'><nav class='navbar is-dark is-transparent' role='navigation'> 61 62 <div class='container'> 63 <div class='navbar-brand'> 64 <a href='https://eartharoid.me' class='navbar-item'> 65 <img src='https://eartharoid.me/cdn-cgi/image/width=100/https://static.eartharoid.me/eartharoid/logo/c/wordmark.png' alt='eartharoid'> 66 </a> 67 <span class='navbar-burger' data-target='primaryHeroNavbar'> 68 <span></span> 69 <span></span> 70 <span></span> 71 </span> 72 </div> 73 <div id='primaryHeroNavbar' class='navbar-menu'> 74 <div class='navbar-end'> 75 76 77 78 <a href='/' class='navbar-item ' title='Home'> 79 Home 80 </a> 81 82 83 84 <a href='/about/' class='navbar-item ' title='About'> 85 About 86 </a> 87 88 89 90 <a href='/projects/' class='navbar-item ' title='Projects'> 91 Projects 92 </a> 93 94 95 96 <a href='/blog/' class='navbar-item is-active' title='Blog'> 97 Blog 98 </a> 99 100 101 102 <a href='/gallery/' class='navbar-item ' title='Gallery'> 103 Gallery 104 </a> 105 106 107 108 <a href='/contact/' class='navbar-item ' title='Contact'> 109 Contact 110 </a> 111 112 113 114 <span class='navbar-item is-clickable' onClick='toggleTheme();' title='Toggle theme'> 115 <i id='themeIcon' class='fas fa-sun'></i> 116 </span> 117 </div> 118 </div> 119 </div> 120</nav></div> 121 122 <div class='hero-body'> 123 <div class='container has-text-centered'> 124 <h1 class='title'> 125 My blog 126 </h1> 127 <h2 class='subtitle'> 128 129 I don't know why I made this 130 131 </h2> 132 </div> 133 </div> 134</section><section id='main' class='section'> 135 <container id='content' class='content container is-fluid'> 136 137 </container> 138 <container class='container is-fluid'> 139 <div class='columns'> 140 <div class='column is-desktop is-two-thirds'> 141 142 143 <div class='content box has-text-white' style='background: linear-gradient( rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) ), url("/cdn-cgi/image/height=1080,quality=75,format=avif/https://static.eartharoid.me/my-photos/misc/IMG_9612.JPG") center/1920px;'> 144 <div class='block'> 145 <p class='title is-size-4'> 146 <a href='https://eartharoid.me/blog/using-google-timeline-for-my-photos/'>Adding location data to photos with Google Maps Timeline</a> 147 </p> 148 <p class='subtitle is-size-6'> 149 29<sup>th</sup> August 2023</p> 150 <p> 151 152 <div class='tags'> 153 154 <a href='/tags/photography' 155 class='tag is-primary'>photography</a> 156 157 </div> 158 159 </p> 160 </div> 161 <div class='block'> 162 <p> 163 I have over twenty thousand photos, scattered and disorganised - over a thousand printed film photos from pre-2010 which I’m (not) looking forward to digitising, hundreds, possibly thousands of digital family photos (hopefully still) on an old PC, and over ten thousand (though probably at least half very similar or low quality) taken on my DSLR since 2018. 164I’ve been thinking about it for years and the problem is only getting bigger, but I’ve decided to finally: 165 </p> 166 </div> 167 168 <div class='block'> 169 <a href='https://eartharoid.me/blog/using-google-timeline-for-my-photos/'> 170 <button class='button is-info'> 171 <span>Read more</span> 172 <span class='icon'> 173 <i class='fas fa-chevron-right'></i> 174 </span> 175 </button> 176 </a> 177 </div> 178 179 </div> 180 181 <div class='content box has-text-white' style='background: linear-gradient( rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) ), url("https://images.unsplash.com/photo-1650943574955-ac02c65cfc71?ixlib=rb-1.2.1&auto=format&fit=crop&w=1920&q=80") center/1920px;'> 182 <div class='block'> 183 <p class='title is-size-4'> 184 <a href='https://eartharoid.me/blog/eartharoid-go/'>I made a URL shortener with Cloudflare Workers</a> 185 </p> 186 <p class='subtitle is-size-6'> 187 11<sup>th</sup> May 2022</p> 188 <p> 189 190 <div class='tags'> 191 192 <a href='/tags/serverless' 193 class='tag is-primary'>serverless</a> 194 195 </div> 196 197 </p> 198 </div> 199 <div class='block'> 200 <p> 201 If you’re attentive, you might have noticed I already have a URL shortener at go.eartharoid.me. This was originally a YOURLS instance until I made a custom solution with Vercel and Firebase/Firestore in January 2021. 202^ The landing page of the 2021 version 203I made the Vercel-Firebase URL shortener because I wanted something fast and serverless, but I still wanted the API, admin UI, and analytics that YOURLS had. It worked well, except that Vercel’s caching made the management, preview, and stats pages almost useless. 204 </p> 205 </div> 206 207 <div class='block'> 208 <a href='https://eartharoid.me/blog/eartharoid-go/'> 209 <button class='button is-info'> 210 <span>Read more</span> 211 <span class='icon'> 212 <i class='fas fa-chevron-right'></i> 213 </span> 214 </button> 215 </a> 216 </div> 217 218 </div> 219 220 <div class='content box has-text-white' style='background: linear-gradient( rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) ), url("/cdn-cgi/image/height=1080,quality=75,format=avif/https://static.eartharoid.me/images/p/danist-bviex5lwf3s-unsplash.jpg") center/1920px;'> 221 <div class='block'> 222 <p class='title is-size-4'> 223 <a href='https://eartharoid.me/blog/i-have-a-blog/'>As you can see, I have a blog</a> 224 </p> 225 <p class='subtitle is-size-6'> 226 15<sup>th</sup> August 2021</p> 227 <p> 228 229 </p> 230 </div> 231 <div class='block'> 232 <p> 233 Hey, you’re reading my blog! I thought it would be cool to have a blog as part of my new website, but I didn’t have any plans for the content. I thought about it a little, considered holiday diaries etc, and decided that I don’t want it to be too personal, which means it will probably be developer-focused content. Maybe I’ll write regularly, or maybe I’ll forget about it for a while and write an occasional post about how I made something new. 234 </p> 235 </div> 236 237 <div class='block'> 238 <a href='https://eartharoid.me/blog/i-have-a-blog/'> 239 <button class='button is-info'> 240 <span>Read more</span> 241 <span class='icon'> 242 <i class='fas fa-chevron-right'></i> 243 </span> 244 </button> 245 </a> 246 </div> 247 248 </div> 249 250 <div class='content box has-text-white' style='background: linear-gradient( rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) ), url("https://storage.ko-fi.com/cdn/generated/aac8fzkyo/d462dbfa-6abf-4867-9340-3b413dceffc8.jpg") center/1920px;'> 251 <div class='block'> 252 <p class='title is-size-4'> 253 <a href='https://eartharoid.me/blog/you-can-now-sponsor-me/'>You can now sponsor me</a> 254 </p> 255 <p class='subtitle is-size-6'> 256 8<sup>th</sup> August 2021</p> 257 <p> 258 259 </p> 260 </div> 261 <div class='block'> 262 <p> 263 You can now sponsor me on GitHub or become a member on Ko-fi. 264The reward tiers are the same for both platforms, but there are some differences: 265 Koâfi is in GBP, GitHub Sponsors is in USD Koâfi automatically gives you your Discord role, GitHub Sponsors does not Koâfi supports PayPal and card, GitHub Sponsors only supports card payments GitHub Sponsors will show your sponsorship on your GitHub profile Why sponsor me? 266 </p> 267 </div> 268 269 <div class='block'> 270 <a href='https://eartharoid.me/blog/you-can-now-sponsor-me/'> 271 <button class='button is-info'> 272 <span>Read more</span> 273 <span class='icon'> 274 <i class='fas fa-chevron-right'></i> 275 </span> 276 </button> 277 </a> 278 </div> 279 280 </div> 281 282 <div class='content box has-text-white' style='background: linear-gradient( rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) ), url("https://eartharoid.me/cdn-cgi/image/height=1080,format=avif/https://static.eartharoid.me/images/p/earth-sunset-from-space.jpg") center/1920px;'> 283 <div class='block'> 284 <p class='title is-size-4'> 285 <a href='https://eartharoid.me/blog/my-new-website/'>My new website</a> 286 </p> 287 <p class='subtitle is-size-6'> 288 19<sup>th</sup> January 2021</p> 289 <p> 290 291 <div class='tags'> 292 293 <a href='/tags/websites' 294 class='tag is-primary'>websites</a> 295 296 </div> 297 298 </p> 299 </div> 300 <div class='block'> 301 <p> 302 Why I made a new website I started messing with basic HTML and CSS in 2016 and I have had a home page since at least 2019, probably 2018, but it was just an HTML5 UP template. Whilst it looked ok-ish, it was slow and had very little information, only some unoptimized photos (uncompressed and 4K) and links to other pages. 303Although I am writing this in August 2021, I started making this website in early January. 304 </p> 305 </div> 306 307 <div class='block'> 308 <a href='https://eartharoid.me/blog/my-new-website/'> 309 <button class='button is-info'> 310 <span>Read more</span> 311 <span class='icon'> 312 <i class='fas fa-chevron-right'></i> 313 </span> 314 </button> 315 </a> 316 </div> 317 318 </div> 319 320 </div> 321 <div class='column'> 322 <div class='content box has-text-centered'> 323 <p class='is-size-5'>Want to get an email when I publish a new blog post?</p> 324 <a href='https://cdn.forms-content.sg-form.com/0122637e-fdcd-11eb-86f2-1a5c682fc748' target="_blank"> 325 <button class='button is-primary is-fullwidth'> 326 <span>Join the mail list</span> 327 <span class='icon'> 328 <i class="fas fa-external-link-alt"></i> 329 </span> 330 </button> 331 </a> 332 333 </div> 334 <div class='content box'> 335 <h6>Featured</h6> 336 337 338 <div class='block'> 339 <p class='title is-size-4'> 340 <a href='https://eartharoid.me/blog/my-new-website/'>My new website</a> 341 </p> 342 <p class='subtitle is-size-6'>19<sup>th</sup> January 2021</p> 343 <p> 344 345 <div class='tags'> 346 347 <a href='/tags/websites' 348 class='tag is-primary'>websites</a> 349 350 </div> 351 352 </p> 353 </div> 354 <div class='block'> 355 <p> 356 357 Why I made a new website I started messing with basic HTML and CSS in 2016 and I have had a home page since at least 2019, probably 2018, but it was just an HTML5 UP template. Whilst it looked ok-ish, it was slow and had very little information, only some unoptimized photos (uncompressed and 4K) and links to other pages. 358Although I am writing this in August 2021, I started making this website in... 359 360 </p> 361 </div> 362 <div class='block'> 363 <a href='https://eartharoid.me/blog/my-new-website/'> 364 <button class='button is-info'> 365 <span>Read more</span> 366 <span class='icon'> 367 <i class='fas fa-chevron-right'></i> 368 </span> 369 </button> 370 </a> 371 </div> 372 373 374 </div> 375 376 <div class='content box'> 377 <h6>Tags</h6> 378 <p> 379 <div class='tags'> 380 381 <a href='/tags/discord/' class='tag is-primary'>discord</a> 382 383 <a href='/tags/java/' class='tag is-primary'>java</a> 384 385 <a href='/tags/node.js/' class='tag is-primary'>node.js</a> 386 387 <a href='/tags/photography/' class='tag is-primary'>photography</a> 388 389 <a href='/tags/react/' class='tag is-primary'>react</a> 390 391 <a href='/tags/serverless/' class='tag is-primary'>serverless</a> 392 393 <a href='/tags/vue/' class='tag is-primary'>vue</a> 394 395 <a href='/tags/websites/' class='tag is-primary'>websites</a> 396 397 </div> 398 </p> 399 </div> 400 401 </div> 402 </div> 403 </container> 404 </section> 405</main> 406<section class='section has-text-centered'> 407 408 <p class='block'> 409 Last Modified: <a href='https://github.com/eartharoid/eartharoid.me/commit/88553ddde57d29cb621d8fa30a9dff0db878b3a8' target='_blank'>7<sup>th</sup> February 2026</a> 410 </p> 411 412</section> 413<footer class='footer mb-0 pb-6'> 414 <div class='has-text-centered'> 415 <p class='block'> 416 417 418 <a href='https://github.com/eartharoid' title='GitHub' rel='noreferrer' target='_blank'> 419 <span class='icon is-large'> 420 <i class='fa-lg fab fa-github'></i> 421 </span> 422 </a> 423 424 <a href='https://lnk.earth/discord' title='Discord server' rel='noreferrer' target='_blank'> 425 <span class='icon is-large'> 426 <i class='fa-lg fab fa-discord'></i> 427 </span> 428 </a> 429 430 <a href='https://instagram.com/eartharoid' title='Instagram' rel='noreferrer' target='_blank'> 431 <span class='icon is-large'> 432 <i class='fa-lg fab fa-instagram'></i> 433 </span> 434 </a> 435 436 <a href='https://twitter.com/eartharoid' title='Twitter' rel='noreferrer' target='_blank'> 437 <span class='icon is-large'> 438 <i class='fa-lg fab fa-twitter'></i> 439 </span> 440 </a> 441 442 <a href='https://ko-fi.com/eartharoid' title='Ko-fi' rel='noreferrer' target='_blank'> 443 <span class='icon is-large'> 444 <i class='fa-lg fas fa-coffee'></i> 445 </span> 446 </a> 447 448 449 </p> 450 <p class='block'> 451 © 2022 Isaac Saunders 452 453 454 455 <p>Created with <a href="https://gohugo.io/">Hugo</a> by Isaac.</p> 456<p>This website is <a href="https://github.com/eartharoid/eartharoid.me">open-source</a>.</p> 457 458 459 </p> 460 <p class='block mt-4'> 461 <a href='https://bulma.io'> 462 <noscript> 463 <img src='/images/bulma-white.png' alt='Made with Bulma' width='128' height='24' 464 media='(prefers-color-scheme: dark)'> 465 <img src='/images/bulma-black.png' alt='Made with Bulma' width='128' height='24' 466 media='(prefers-color-scheme: no-preference), (prefers-color-scheme: light)'> 467 </noscript> 468 <img alt='Made with Bulma' width='128' height='24' id='madeWithBulma'> 469 </a> 470 </p> 471 </div> 472</footer>
472<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
472 473
473<script> 474 kofiWidgetOverlay.draw('eartharoid', { 475 'type': 'floating-chat', 476 'floating-chat.donateButton.text': 'Support me', 477 'floating-chat.donateButton.background-color': '#00C3EE', 478 'floating-chat.donateButton.text-color': '#FFF' 479 }); 480 </script>
vendor: 1 bytes, line 480
480
481<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"884a13443a504151a74f67c32212534c","r":1,"spa":2}' crossorigin="anonymous"></script>
481 482</body> 483 484</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.