https://lucasburlingham.me/

ID de exploración:
a5620ba0-b7b8-488a-b5ef-2ab1855ae49cFinalizado
URL enviada:
https://lucasburlingham.me/
Informe finalizado:

Enlaces: 1 encontrados

Los enlaces salientes identificados en la página

EnlaceTexto
https://linux.die.net/man/1/treetree

Variables JavaScript: 9 encontradas

Las variables JavaScript globales cargadas en el objeto de ventana de una página son variables declaradas fuera de las funciones y a las que se puede acceder desde cualquier lugar del código en el ámbito actual

NombreTipo
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
__cfQRobject
myOwnEncryptionBecauseBase64IsntWorkingAsIExpectedItTofunction
myOwnDecryptionBecauseBase64IsntWorkingAsIExpectedItTofunction
doneTypingfunction
keypressesobject
__cfRLUnblockHandlersboolean

Mensajes de registro de la consola: 2 encontrados

Mensajes registrados en la consola web

TipoCategoríaRegistro
errorsecurity
URL
https://lucasburlingham.me/
Texto
Access to script at 'https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015' from origin 'https://lucasburlingham.me' has been blocked by CORS policy: Request header field cloudflare is not allowed by Access-Control-Allow-Headers in preflight response.
errornetwork
URL
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015
Texto
Failed to load resource: net::ERR_FAILED

HTML

El cuerpo HTML sin procesar de la página

<!DOCTYPE html><html lang="en"><head>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta charset="UTF-8">
	<meta name="description" content="Lucas Burlingham's personal website housing guides, tips, tricks, and a view on technology.">
	<meta name="author" content="Lucas Burlingham">
	<meta name="keywords" content="Lucas Burlingham, technology, blog, articles">
	<meta name="robots" content="index, follow">
	<meta name="theme-color" content="#fff">

	<title>lucasburlingham.me</title>
	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/normalize.css">
	<link rel="stylesheet" href="/styles.css">
	<link rel="alternate" type="application/atom+xml" href="https://lucasburlingham.me/articles/atom.xml">
	<link rel="stylesheet" href="/christmas.css">
	<script src="/lightrope.js" defer="" type="text/javascript"></script>
</head>

<body>
	<ul class="lightrope" id="lightrope-feature" style="left: 0; top: 0; position: fixed;"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul>
	<header>
		<h1>lucasburlingham.me</h1>
	</header>
	<nav>
		<ul>
			<li><a href="/">Home</a></li>
			<li><a href="/about.html">About</a></li>
			<li><a href="/contact.html">Contact</a></li>
		</ul>
	</nav>
	<main>
		<ul id="article_list">
			<li>
				$ <a class="clean_link" href="https://linux.die.net/man/1/tree" target="_blank" rel="noopener noreferrer">tree</a> lucasburlingham.me</li>
			<li>
				<a class="article_link" href="/articles/20240916.0142-vghlienyzwf0b3incybmawnlbnnl" id="20240916.0142-VGhlIENyZWF0b3IncyBMaWNlbnNl.html">The Creator's License</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20240920.2316-vgvjag9sb2d5ihroyxqgssb1c2u=" id="20240920.2316-VGVjaG9sb2d5IHRoYXQgSSB1c2U=.html">The Technology that I use</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241013.0125-m0qgtw9kzwxpbmcgaw4gqmxlbmrlciaozm9yigz1bibhbmqgywjzb2x1dgvsesbubybwcm9maxqp" id="20241013.0125-M0QgTW9kZWxpbmcgaW4gQmxlbmRlciAoZm9yIGZ1biBhbmQgYWJzb2x1dGVseSBubyBwcm9maXQp.html">3D
					Modeling in Blender (for fun and absolutely no profit)</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241019.0006-t1njie1vzgvs" id="20241019.0006-T1NJIE1vZGVs.html">The OSI Model</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241026.0157-unvubmluzybhignvbw1hbmqgd2l0acbbbnnpymxl" id="20241026.0157-UnVubmluZyBhIGNvbW1hbmQgd2l0aCBBbnNpYmxl.html">Running a command with Ansible</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241028.0232-q29udgfjdcbtzsb3axroiexvumegdmlhihrozsbnzxnodgfzdgljig5ldhdvcms=" id="20241028.0232-Q29udGFjdCBtZSB3aXRoIExvUmEgdmlhIHRoZSBNZXNodGFzdGljIG5ldHdvcms=.html">Contact me
					with LoRa via the Meshtastic network</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241030.1842-bhmgzm9yihrozsb3zwisigluifj1c3q=" id="20241030.1842-bHMgZm9yIHRoZSB3ZWIsIGluIFJ1c3Q=.html">ls for the web, in Rust</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241102.0313-twfwig9michmywlszwqpifntscbsb2dpbibhdhrlbxb0cybvbibtesbwufm=" id="20241102.0313-TWFwIG9mIChmYWlsZWQpIFNTSCBsb2dpbiBhdHRlbXB0cyBvbiBteSBWUFM=.html">Map of (failed)
					SSH login attempts on my VPS</a>
			</li>
			<li>
				<a class="article_link" href="https://lucasburlingham.me/ufw_reference/" id="20241102.2020-ufw_reference/index.html">UFW Command Reference</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241111.2136-qwjhbmrvbmvkifnvznr3yxjlifvwzgf0zsatifbjienhbwvyysbjbibhiejvea==" id="20241111.2136-QWJhbmRvbmVkIFNvZnR3YXJlIFVwZGF0ZSAtIFBJIENhbWVyYSBJbiBhIEJveA==.html">Abandoned
					Software Update - PI Camera In a Box</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241114.1407-vghlienyzwvkig9migegtm9ulwnvbw1pc3npb25lzcbpzmzpy2vyic0gqvjnwsbucmfpbmluzybub29s" id="20241114.1407-VGhlIENyZWVkIG9mIGEgTm9uLWNvbW1pc3Npb25lZCBPZmZpY2VyIC0gQVJNWSBUcmFpbmluZyBUb29s.html">The
					Creed of a Non-commissioned Officer - ARMY Training Tool</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241122.0157-t3zlcmnvbwluzyb0agugchjpbnrlcibuawdodg1hcmvzic0gsfagrgvza0pldcaynzuyzq==" id="20241122.0157-T3ZlcmNvbWluZyB0aGUgcHJpbnRlciBuaWdodG1hcmVzIC0gSFAgRGVza0pldCAyNzUyZQ==.html">Overcoming
					the printer nightmares - HP DeskJet 2752e</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241123.0402-bmvvzmv0y2g=" id="20241123.0402-bmVvZmV0Y2g=.html">neofetch</a>
			</li>
			<li>
				<a class="article_link" href="/articles/20241218.2218-uemgqnvpbgqgtglzdcatife0idiwmjq=" id="20241218.2218-UEMgQnVpbGQgTGlzdCAtIFE0IDIwMjQ=.html">PC Build List - Q4 2024</a>
			</li>
			<li id="article_count">0 directories, 14 files</li>
			<li id="fake_linux_cli">
				<input type="text" id="fake_linux_cli_input" placeholder="$ Write me a message (enter to send!)">
				<button type="submit" hidden=""></button>
			</li>

		</ul>
		<script type="text/javascript">
			// count the number of li's in the article_list div and put it into the article_count li
			// subtract 3 from the count to account for the tree command, the article count, and the fake Linux CLI li
			document.getElementById("article_count").innerText = "0 directories, " + (document.getElementById("article_list").getElementsByTagName("li").length - 3) + " files";

			// Listen for the enter key to be pressed in the fake Linux CLI input if it has focus
			document.querySelector("#fake_linux_cli input").addEventListener("keydown", function (event) {
				if (event.key === "Enter") {
					// If the enter key is pressed, simulate a click on the hidden submit button
					document.querySelector("#fake_linux_cli button").click();

					// Send a sms message with the input value if the device is a phone (use the sms: protocol) (use the user agent to determine the device)
					if (navigator.userAgent.includes("Mobile")) {

						// Google Voice number (obfuscated with my own "encryption" because base64 isn't working as I expected it to)
						let number = "b-c-h-f-e-b-c-c-b-i";

						window.location.href = "sms:" + myOwnDecryptionBecauseBase64IsntWorkingAsIExpectedItTo(number) + "?body=👋 " + document.querySelector("#fake_linux_cli input").value;

					} else {
						// If the device is not a phone, send an email with the input value (use the mailto: protocol)
						// Send an email to the email address (obfuscated with base64)
						email = atob("d2VibWFzdGVyQGx1Y2FzYnVybGluZ2hhbS5tZQo=");
						window.location.href = "mailto:" + email + "?subject=From a lucasburlingham.me vistor &body=" + document.querySelector("#fake_linux_cli input").value;
					}
				}
			});

			function myOwnEncryptionBecauseBase64IsntWorkingAsIExpectedItTo(number) {
				// Get the number and convert it to a string if it isn't already
				number = number.toString();

				// Make sure the number is a valid 10 digit number
				if (number.length !== 10) {
					console.error('The number is not a valid 10 digit number, truncating to 10 digits or padding with 0s!');
					number = number.padStart(10, '0').slice(0, 10);
				}

				// Split the number into an array of characters
				number = number.split('');

				// We know that the number is going to be comprised of the number 0-9, so we can use a simple substitution cipher to encrypt the number
				// Create a dictionary of the numbers 0-9 and their corresponding encrypted values
				let dictionary = {
					"0": "a",
					"1": "b",
					"2": "c",
					"3": "d",
					"4": "e",
					"5": "f",
					"6": "g",
					"7": "h",
					"8": "i",
					"9": "j"
				};

				// Loop through the number array and replace each number with its corresponding encrypted value
				for (let i = 0; i < number.length; i++) {
					number[i] = dictionary[number[i]];
				}

				// reverse the array and join it into a string
				number = number.reverse().join('-');

				return number;
			}


			function myOwnDecryptionBecauseBase64IsntWorkingAsIExpectedItTo(string) {
				// Decrypt the string using the same method as the encryption
				// Split the string into an array of words
				string = string.split('-');

				// Loop through the string array and replace each word with the first letter of the word
				for (let i = 0; i < string.length; i++) {
					string[i] = string[i][0];
				}

				// Create a dictionary of the letters a-j and their corresponding decrypted values
				dictionary = {
					"a": "0",
					"b": "1",
					"c": "2",
					"d": "3",
					"e": "4",
					"f": "5",
					"g": "6",
					"h": "7",
					"i": "8",
					"j": "9"
				};

				// Loop through the string array and replace each letter with its corresponding decrypted value
				for (let i = 0; i < string.length; i++) {
					string[i] = dictionary[string[i]];
				}

				// Reverse the array and join it into a string
				string = string.reverse().join('');

				return string;
			}

		</script>
	</main>

	<footer>
		<p>
			© 2024 Lucas Burlingham under <a href="/LICENSE.md">The Creator's License</a>.
			Hand-jammed using HTML, CSS, JS, and a bit of experience.
			<br>
			This page has an <a href="https://lucasburlingham.me/articles/atom.xml" class="feed">Atom feed</a>.
		</p>
	</footer>
	<img src="/images/SnowGnome.png" alt="Snow Gnome" id="snow_gnome" style="bottom: 0; right: 0; position: fixed; height: 200px;">
	<script type="text/javascript">
		// If a user starts typing on the page without clicking on anything, use the window.find() method to search for the text on the page and go to it

		// Listen for keydown events on the window to stop for at least 10ms

		let timer;
		window.keypresses = [];

		window.addEventListener('keydown', event => {
			// Listen for keypresses and log them in an array
			clearTimeout(timer);

			window.keypresses.push(event.key);

			// get the last 10 keypresses and join them into a string
			let keypressesString = window.keypresses.join('');

			// Set a timer to wait for 1 second before searching for the text
			timer = setTimeout(() => {
				doneTyping(keypressesString);
				window.keypresses = [];
			}, 1000);
		});

		// Find the next instance of the text on the page
		function doneTyping(value) {
			window.find(value);
			console.log(`The user is done typing: ${value}`);
		}

	</script>

<script defer="" src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{&quot;rayId&quot;:&quot;8f4c5cc4feec383f&quot;,&quot;version&quot;:&quot;2024.10.5&quot;,&quot;r&quot;:1,&quot;serverTiming&quot;:{&quot;name&quot;:{&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfSpeedBrain&quot;:true,&quot;cfCacheStatus&quot;:true}},&quot;token&quot;:&quot;413eb484323f4c8d82a92a729132d5b9&quot;,&quot;b&quot;:1}" crossorigin="anonymous"></script>


</body></html>