Add files via upload

This commit is contained in:
Sam Sneed 2024-06-08 13:10:52 -05:00 committed by GitHub
parent 34037f20ff
commit 88b442ce3c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
34 changed files with 1348 additions and 2 deletions

View file

@ -1,2 +1,3 @@
# sammy-lord.github.io
My site
# resume
made to be portable and able to be copied to any server, you can even just open the index.html if you're not running a flatpak browser!

BIN
ad.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

11
dixie-game.html Normal file
View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>Hello, Tiger!</title>
</head>
<body>
<h1>Hello, Tiger!</h1>
<p>Free-play White Tiger Slots</p>
<iframe width="1000px" height="500px" src="https://funkygames.io/demo?gameCode=102636&lang=EN"></iframe>
</body>
</html>

0
favicon.gif Normal file
View file

0
favicon.ico Normal file
View file

BIN
flashcert.pdf Normal file

Binary file not shown.

View file

@ -0,0 +1,449 @@
// Created by Samuel Lord (NodeMixaholic/Sparksammy)
// Now Maintained by Maxwell (GOrwell1984)
// Licensed under Samuel Public License with <3
// Functions for commonly used elements
// Get element by ID
function getElementById(elementID) {
return document.getElementById(elementID)
}
//Convert markdown to HTML and back
function markdownToHTML(markdown) {
// Replace headers (h1, h2, h3) with corresponding HTML tags
markdown = markdown.replace(/^# (.*$)/gim, '<h1>$1</h1>');
markdown = markdown.replace(/^## (.*$)/gim, '<h2>$1</h2>');
markdown = markdown.replace(/^### (.*$)/gim, '<h3>$1</h3>');
// Replace bold and italic text with corresponding HTML tags
markdown = markdown.replace(/\*\*(.*)\*\*/gim, '<b>$1</b>');
markdown = markdown.replace(/\*(.*)\*/gim, '<i>$1</i>');
// Replace unordered list items with HTML list tags
markdown = markdown.replace(/\* (.*?)(\n|$)/gim, '<li>$1</li>');
// Replace inline code with HTML <code> tag
markdown = markdown.replace(/`(.*?)`/gim, '<code>$1</code>');
// Replace blockquotes with HTML <blockquote> tag
markdown = markdown.replace(/^\s*> (.*)$/gim, '<blockquote>$1</blockquote>');
// Replace horizontal rules with HTML <hr> tag
markdown = markdown.replace(/^\s*[-*_]{3,}\s*$/gim, '<hr>');
// Replace line breaks with HTML <br> tag
markdown = markdown.replace(/\n$/gim, '<br>');
// Replace images with HTML <img> tag
markdown = markdown.replace(/!\[(.*?)\]\((.*?)\)/gim, '<img alt="$1" src="$2">');
// Replace links with HTML <a> tag
markdown = markdown.replace(/\[(.*?)\]\((.*?)\)/gim, '<a href="$2">$1</a>');
markdown = markdown.replaceAll("<ol><ul>", "")
markdown = markdown.replaceAll("</ul></ol>", "")
return markdown;
}
function htmlToMarkdown(html) {
// Replace headers (h1, h2, h3) with corresponding Markdown tags
html = html.replace(/<h1>(.*?)<\/h1>/gim, '# $1');
html = html.replace(/<h2>(.*?)<\/h2>/gim, '## $1');
html = html.replace(/<h3>(.*?)<\/h3>/gim, '### $1');
// Replace bold and italic text with corresponding Markdown tags
html = html.replace(/<b>(.*?)<\/b>/gim, '**$1**');
html = html.replace(/<i>(.*?)<\/i>/gim, '*$1*');
// Replace unordered list items with Markdown list tags
html = html.replace(/<ul>(.*?)<\/ul>/gim, function(match, p1) {
let listItems = p1.trim().split('</li>');
listItems.pop();
listItems = listItems.map(item => '* ' + item.trim().replace(/<li>/gim, '')).join('\n');
return listItems;
});
// Replace ordered list items with Markdown list tags
html = html.replace(/<li>(.*?)<\/li>/gim, '* $1\n');
// Replace inline code with Markdown backticks
html = html.replace(/<code>(.*?)<\/code>/gim, '`$1`');
// Replace blockquotes with Markdown blockquote tag
html = html.replace(/<blockquote>(.*?)<\/blockquote>/gim, '> $1');
// Replace horizontal rules with Markdown horizontal rules
html = html.replace(/<hr>/gim, '---');
// Replace line breaks with Markdown line breaks
html = html.replace(/<br>/gim, '\n');
// Replace images with Markdown image syntax
html = html.replace(/<img alt="(.*?)" src="(.*?)">/gim, '![$1]($2)');
// Replace links with Markdown link syntax
html = html.replace(/<a href="(.*?)">(.*?)<\/a>/gim, '[$2]($1)');
html = html.replaceAll("<ol><ul>", "")
html = html.replaceAll("</ul></ol>", "")
return html;
}
// Generalized element creation
function createElement(tagName, elementID, attributes = {}) {
const element = document.createElement(tagName);
element.id = elementID;
for (const [name, value] of Object.entries(attributes)) {
element.setAttribute(name, value);
}
document.body.appendChild(element);
return element;
}
function createDiv(elementID) {
createElement("div", elementID);
}
function createParagraph(elementID, text) {
let elem = createElement("p", elementID);
elem.innerText = `${text}`
return elem
}
function initHead(pageTitle = "") {
// Create head element
let head = document.createElement("head");
// Create title element
let titleElement = document.createElement("title");
titleElement.textContent = pageTitle;
// Create link element for app icon
let appIcon = document.createElement("link");
appIcon.rel = "apple-touch-icon";
appIcon.sizes = "180x180";
appIcon.href = "icon.png";
// Create link element for favicon
let favicon = document.createElement("link");
favicon.rel = "icon";
favicon.type = "image/png";
favicon.href = "icon.png";
// Append title, app icon, and favicon to the head element
head.appendChild(titleElement);
head.appendChild(appIcon);
head.appendChild(favicon);
// Append head element to the document
document.documentElement.insertBefore(head, document.documentElement.firstChild);
}
function initBody(bodyID = "body") {
// Create a new body element with the desired id
const newBody = document.createElement("body");
newBody.id = bodyID;
// Get a reference to the existing body element (if any)
const oldBody = document.body;
// Replace the existing body (if present) with the new one
if (oldBody) {
document.documentElement.replaceChild(newBody, oldBody);
} else {
// Simply append the new body if none exists
document.documentElement.appendChild(newBody);
}
}
function createButton(elementID, text, attributes = {}) {
let elem = createElement("button", elementID);
elem.innerText = `${text}`
for (const [name, value] of Object.entries(attributes)) {
elem.setAttribute(name, value);
}
return elem;
}
// Insert element with ID to element with ID
function insertElementIntoId(elementIdOuter, elementIdSelf, tagName) {
const element = document.createElement(tagName);
element.id = elementIdSelf;
for (const [name, value] of Object.entries(attributes)) {
element.setAttribute(name, value);
}
getElementById(elementIdOuter).appendChild(element);
return element;
}
// Insert HTML to element with ID
function insertHTMLIntoId(elementIdOuter, html) {
getElementById(elementIdOuter).innerHTML = `${String(html)}`;
return element;
}
function changeAttributes(element, attributes = {}) {
for (const [name, value] of Object.entries(attributes)) {
element.setAttribute(name, value);
}
}
function createImage(elementID, src) {
return createElement("img", elementID, { src: src });
}
// Get URL parameters
function getURLParameters() {
return new URLSearchParams(window.location.search);
}
// Read file contents
function readFileContents(file) {
file = file.toString();
const fileToRead = new File([""], file);
const reader = new FileReader();
return new Promise((resolve, reject) => {
reader.onload = () => resolve(reader.result);
reader.onerror = () => reject(reader.error);
reader.readAsText(fileToRead, "UTF-8");
});
}
// Read data file as data URL
function readDataFile(file) {
file = file.toString();
const fileToRead = new File([""], file);
const reader = new FileReader();
return new Promise((resolve, reject) => {
reader.onload = () => resolve(reader.result);
reader.onerror = () => reject(reader.error);
reader.readAsDataURL(fileToRead);
});
}
function writeToBody(html) {
document.body.innerHTML += html.toString();
}
function overwriteBody(html) {
document.body.innerHTML = html.toString();
}
function randomPOS(elementID) {
const top = Math.floor(Math.random() * 90);
const left = Math.floor(Math.random() * 90);
document.getElementById(elementID).style.top = `${top}%`;
document.getElementById(elementID).style.left = `${left}%`;
}
function pos(elementID, x, y) {
document.getElementById(elementID).style.top = `${y}%`;
document.getElementById(elementID).style.left = `${x}%`;
}
// Select a random value in an array (handles non-arrays)
function randomSelectArray(array) {
if (Array.isArray(array)) {
const randomIndex = Math.floor(Math.random() * array.length);
return array[randomIndex];
} else {
console.log(`Error: ${array} is not an Array!`);
return null; // Or throw an error
}
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function asyncSleep(ms) {
await new Promise(r => setTimeout(r, ms));
}
// Check if a variable is a function
function isFunction(item) {
return typeof item === 'function';
}
function applyCSS(elementID, prop, value) {
document.getElementById(elementID).style[prop] = value;
}
function writeTimeAndDate(elementID, hourFormat) {
const element = document.getElementById(elementID);
const date = new Date();
const locale = hourFormat === 24 ? "en-GB" : "en-US";
element.innerText = date.toLocaleString(locale);
}
function writeText(elementID, str) {
document.getElementById(elementID).innerText = String(str);
}
function writeHTML(elementID, str) {
document.getElementById(elementID).innerHTML = String(str);
}
function clearPage() {
document.body.innerHTML = "";
}
function createList(listID, items) {
const list = document.createElement("ul");
list.id = listID;
document.body.appendChild(list);
items.forEach(item => (list.innerHTML += `<li>${item}</li>`));
}
function addToList(listID, jsArray) {
let listParent = document.getElementById(listID);
jsArray.forEach(item => {
listParent.innerHTML += `<li>${item}</li>`;
});
}
// Gets the value of an attribute
// Example: getAttribute(document.getElementById("link"), "href");
function getAttribute(element, attribute) {
let result = element.getAttribute(attribute);
return result;
}
// Show/Hide Elements
// Example: hideShow(element)
function hideShow(element) {
if (element.style.display == 'none') {
element.style.display = '';
} else{
element.style.display = 'none';
}
}
// Example: fadeOut(element, 1000)
function fadeOut(element, ms) {
let elem = getElementById(element);
ms = parseInt(ms);
for (i = 0; i < (ms + 1); i++) {
elem.style.opacity -= (i / 100);
sleep(1);
}
}
// Example: fadeIn(element, 1000);
function fadeIn(element, ms) {
elem = getElementById(element);
elem.style.opacity = 0;
ms = parseInt(ms);
for (i = 0; i < (ms + 1); i++) {
elem.style.opacity += (i / 100);
sleep(1);
}
}
function spin(elementID, duration) {
const element = document.getElementById(elementID);
if (!element) {
console.error(`Element with ID '${elementID}' not found.`);
return;
}
let start;
const animate = (timestamp) => {
if (!start) start = timestamp;
const elapsed = timestamp - start;
const rotation = (elapsed / duration) * 360;
element.style.transform = `rotate(${rotation}deg)`;
if (elapsed < duration) {
requestAnimationFrame(animate);
} else {
start = null;
element.style.transform = 'none'; // Reset transform after animation completes
}
};
requestAnimationFrame(animate);
}
//Eval alternative
//Example: exec("alert('Hello, world!')")
function exec(jsCode) {
let js = jsCode.toString();
Function(js)()
}
function readInternetText(url) {
var request = new XMLHttpRequest(); // Create a new XMLHttpRequest object
request.open('GET', url, false); // Open the request with synchronous mode
request.send(null); // Send the request with no additional data
if (request.status === 200) { // Check if the request was successful
return request.responseText; // Return the response text
} else {
return 'Error: ' + request.status; // Return an error message if the request failed
}
}
function requir3(jsURL) {
let req = readInternetText(jsURL);
exec(req);
}
// Example: getFileSize(path/to/file)
function getFileSize(file) {
file = file.toString();
file = new File([""], file);
return file.getFileSize;
}
function lastModified(file) {
file = file.toString();
file = new File([""], file);
return file.lastModified;
}
// Example: playAudio("https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3", 0.4);
function playAudio(audio, speed) {
let ma = new Audio(audio);
ma.playbackRate = speed;
ma.play();
}
// Example: redir(url);
function redir(url) {
window.location.href = url.toString();
}
// Function to import Google Fonts via name
function importGoogleFont(fontName) {
// Create a new link element
const link = document.createElement('link');
// Set the rel attribute to 'stylesheet'
link.rel = 'stylesheet';
// Set the href attribute to the Google Fonts URL with the specified font name
link.href = `https://fonts.googleapis.com/css?family=${fontName.replace(' ', '+')}`;
// Append the link element to the head of the document
document.head.appendChild(link);
}
requir3("https://cdn.jsdelivr.net/npm/gun/gun.js") //Add Gun.JS support.
function initGun(relays = []) {
return Gun(relays)
}

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<script src="frontend.js"></script>
<script>
initHead("FrontendJS Example")
initBody()
clearPage()
writeHTML("body", markdownToHTML(`# Hello world!
This is an example of how to properly use Frontend JS.
Also it's a test if things are working.
* Air
* Water
* Fire
* Dirt
* ####ing magnets, how do they work!?!
`))
createParagraph("paragraphLorum", `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed pulvinar nisl eu risus tincidunt, non aliquet metus tempor. Duis ac tortor commodo, venenatis leo at, consectetur nulla.`)
createImage("moz", "https://upload.wikimedia.org/wikipedia/commons/5/5c/Mozilla_dinosaur_head_logo.png")
applyCSS("moz", "width", "25%")
let dino = createButton("dino", "dino sound")
changeAttributes(dino, {"onclick": "spin('moz', 1000); playAudio(`https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3`, 0.4)"})
applyCSS("body", "background", "black")
applyCSS("body", "color", "lime")
importGoogleFont('Roboto');
applyCSS("body", "font-family", "'Roboto', sans-serif")
</script>
</html>

42
generate-spl/index.html Normal file
View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SPL Generator</title>
</head>
<body>
<h2>Samuel Public License Generator</h2>
<form id="splForm">
<label for="name">Your Name or Organization:</label>
<textarea id="name" rows="2" cols="30"></textarea>
<button type="button" onclick="generateSPL()">Generate SPL</button>
</form>
<script>
function generateSPL() {
// Get the name from the textarea
const name = document.getElementById('name').value;
// Fetch the latest SPL template
fetch('https://raw.githubusercontent.com/sam-sneed/spl-template/main/spl')
.then(response => response.text())
.then(template => {
// Replace placeholders with actual values
const fullNumericYear = new Date().getFullYear();
const splText = template.replace('FULL-NUMERIC-YEAR', fullNumericYear).replace('YOUR-REAL-NAME-OR-ORG', name);
// Set the body content to the generated SPL text
document.body.innerText = `${splText}`;
})
.catch(error => console.error('Error fetching SPL template:', error));
}
</script>
</body>
</html>

3
html/README.md Normal file
View file

@ -0,0 +1,3 @@
# resume
made to be portable and able to be copied to any server, you can even just open the index.html if you're not running a flatpak browser!

11
html/dixie-game.html Normal file
View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>Hello, Tiger!</title>
</head>
<body>
<h1>Hello, Tiger!</h1>
<p>Free-play White Tiger Slots</p>
<iframe width="1000px" height="500px" src="https://funkygames.io/demo?gameCode=102636&lang=EN"></iframe>
</body>
</html>

BIN
html/flashcert.pdf Normal file

Binary file not shown.

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SPL Generator</title>
</head>
<body>
<h2>Samuel Public License Generator</h2>
<form id="splForm">
<label for="name">Your Name or Organization:</label>
<textarea id="name" rows="2" cols="30"></textarea>
<button type="button" onclick="generateSPL()">Generate SPL</button>
</form>
<script>
function generateSPL() {
// Get the name from the textarea
const name = document.getElementById('name').value;
// Fetch the latest SPL template
fetch('https://raw.githubusercontent.com/NodeMixaholic/samuel-public-license/main/LICENSE')
.then(response => response.text())
.then(template => {
// Replace placeholders with actual values
const fullNumericYear = new Date().getFullYear();
const splText = template.replace('FULL-NUMERIC-YEAR', fullNumericYear).replace('YOUR-REAL-NAME-OR-ORG', name);
// Set the body content to the generated SPL text
document.body.innerText = `${splText}`;
})
.catch(error => console.error('Error fetching SPL template:', error));
}
</script>
</body>
</html>

19
html/homepage/LICENSE Normal file
View file

@ -0,0 +1,19 @@
The Samuel Public License Revision 5 (SPL-R5)
Copyright (c) 2024 Samuel Lord
This document grants permission, without charge, to any individual acquiring a copy of the software and its associated documentation files (hereinafter referred to as the "Software"). Such individuals are authorized to engage in activities related to the Software with certain restrictions (listed below), including, but not limited to, the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software. These permissions extend to persons to whom the Software is furnished, subject to compliance with the specified conditions outlined below.
THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
In making contributions to the Software, contributors irrevocably assign, transfer, and convey all rights, titles, and interests in and to their contributions to the project owner(s). This assignment is absolute and encompasses all intellectual property rights, including, but not limited to, copyrights, patents, trademarks, and trade secrets. Contributors acknowledge and consent that they have no further claim, right, or interest in their contributions and agree to relinquish any moral rights associated with the contributed content. This assignment is effective upon the act of contributing to the Software, and contributors affirm that they have the authority to make such an assignment. However, contributors retain the right to modify their contributions.
Furthermore, this document permits the reuse and redistribution of both executable binaries and source code, contingent upon the inclusion of the previously mentioned copyright notice and permission notice in all copies or substantial portions of the Software. It is imperative that you explicitly acknowledge and agree that the owner(s) retain ownership rights over the aforementioned source code.
Moreover, companies using the Software are encouraged to contribute upstream. Fortune 500 companies are required to make an annual contribution of at least 20,000 USD or an equivalent amount to support the project's sustainability unless no donation option is provided.
Additionally, note that the use of AI-assisted tools, including but not limited to GitHub Copilot and ChatGPT, is expressly permitted in conjunction with this software. Users are encouraged to leverage these AI tools to enhance their experience in developing, modifying, and interacting with the Software. The permission granted herein extends to the integration and utilization of AI-generated content for coding and communication purposes. The owners(s) of the Software acknowledge and embrace the collaborative nature of AI-assisted development.
In addition, the owner of the code is granted the authority to update their copy of The Samuel Public License (SPL) to the latest revision. This update may be undertaken at the discretion of the owner to ensure alignment with any subsequent revisions made to The Samuel Public License.
The aforementioned copyright notice and this permission notice must be included in all copies or substantial portions of the Software.

3
html/homepage/README.md Normal file
View file

@ -0,0 +1,3 @@
# homepage
My Personal Homepage

79
html/homepage/index.html Normal file
View file

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sam's Homepage</title>
<link rel="stylesheet" href="styling.css">
</head>
<body>
<!--a header saying hello -->
<div align="center">
<h1>"Hello, World!" --some computer</h1>
<p><b><i id="biblepassage"></i></b></p>
<div id="search-bar">
<input type="text" id="search-input" placeholder="Search Sparksammy">
<button id="search-button">Search</button>
</div>
<h2>Nifty Links</h2>
<h3>AI/Social</h3>
<p>
<a href="https://gemini.google.com/app">Gemini</a>
<a href="https://chat.openai.com">ChatGPT</a>
<a href="https://discord.com/app">Discord</a>
<a href="https://linktr.ee/anonymouse42">Sparksammy's Linktree</a>
</p>
<h3>Learning & Education</h3>
<p>
<a href="https://www.udemy.com/">Udemy</a>
<a href="https://www.youtube.com/c/freeCodeCamp">freeCodeCamp.org</a>
<a href="https://www.youtube.com/c/TheCodingTrain">The Coding Train</a>
</p>
<h3>Documentation</h3>
<p>
<a href="https://developer.mozilla.org/en-US/docs/Web">Mozilla Developer Docs</a>
<a href="https://developer.roblox.com/en-US/">ROBLOX Developer Wiki</a>
<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript MDN Docs</a>
<a href="https://developer.mozilla.org/en-US/docs/Web/HTML">HTML MDN Docs</a>
<a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS MDN Docs</a>
<a href="https://docs.microsoft.com/en-us/windows/">Windows Documentation</a>
<a href="https://linux.die.net/man/">Die.net - Linux Man Pages</a>
<a href="https://www.w3schools.com/">W3Schools</a>
</p>
<h3>News & Security</h3>
<p>
<a href="https://www.theverge.com/">The Verge</a>
<a href="https://arstechnica.com/">Ars Technica</a>
<a href="https://www.engadget.com/">Engadget</a>
<a href="https://www.technologyreview.com/">MIT Technology Review</a>
<a href="https://www.wired.com/">Wired</a>
<a href="https://krebsonsecurity.com/">Krebs on Security</a>
</p>
<h3>More Coding YouTube Channels</h3>
<p>
<a href="https://www.youtube.com/c/TheCodingTrain">The Coding Train</a>
<a href="https://www.youtube.com/c/TraversyMedia">Traversy Media</a>
<a href="https://www.youtube.com/c/FrontendMasters">Frontend Masters</a>
<a href="https://www.youtube.com/c/Codecademy">Codecademy</a>
<a href="https://www.youtube.com/c/TechLead">The TechLead</a>
<a href="https://www.youtube.com/c/fireship">Fireship</a>
<a href="https://www.youtube.com/c/NoBoilerplate">No Boilerplate</a>
</p>
<h3>Node's Stuff</h3>
<p>
<a href="http://nodemixaholic.com:3002">NodeMixaholic's Git</a>
<a href="http://nodemixaholic.com/jellyfin">Jellyfin</a>
</p>
<br>
</div>
<script src="script.js"></script>
</body>
</html>

32
html/homepage/script.js Normal file
View file

@ -0,0 +1,32 @@
let codingMode = false; // Set to true for coding mode (no api calls to bible passage)
//https://labs.bible.org/api/?passage=random&formatting=plain&type=text
async function fetchBiblePassage() {
try {
let textData;
if (codingMode == true) {
textData = 'Samuel 16:9 “And he said, "I now know de wae" in zimbabwe.';
} else {
const response = await fetch('https://labs.bible.org/api/?passage=random&formatting=plain&type=text');
textData = await response.text();
}
document.getElementById('biblepassage').textContent = `${textData}`;
} catch (error) {
console.error('Error fetching Bible passage:', error);
// Handle the error gracefully, e.g., display an error message to the user
}
}
fetchBiblePassage();
const searchButton = document.getElementById('search-button');
const searchInput = document.getElementById('search-input');
searchButton.addEventListener('click', () => {
const searchTerm = searchInput.value;
if (searchTerm) {
window.location.href = `https://search.sparksammy.com/search.php?q=${searchTerm}&p=0&t=0`;
} else {
alert('Please enter a search term.');
}
});

95
html/homepage/styling.css Normal file
View file

@ -0,0 +1,95 @@
/* Basic styles */
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
background-color: white;
color: black;
}
/* With dark mode */
@media (prefers-color-scheme: dark) {
body {
background-color: black;
color: white;
}
/* Apply dark mode styles to other elements as needed */
}
h1 {
text-align: center;
margin-top: 20px;
}
p {
text-align: center;
margin-bottom: 10px;
}
a {
text-decoration: none;
color: #007bff;
border: 1px solid #ddd;
border-radius: 5px;
font-size: 1.2rem;
padding-left: 1.2rem;
padding-right: 1.2rem;
margin-top: 0;
margin-bottom: 0;
}
a:hover {
background-color: #ddd;
}
#search-bar {
display: flex;
justify-content: center;
align-items: center;
margin: 20px auto;
width: 60%;
}
#search-input {
padding: 5px;
border: 1px solid #ccc;
flex: 1;
}
#search-button {
padding: 5px 10px;
border: 1px solid #ccc;
cursor: pointer;
background-color: #007bff;
color: white;
}
/* Media queries for responsiveness */
@media only screen and (max-width: 768px) {
/* Styles for screens smaller than 768px (mobile devices) */
h1 {
font-size: 1.5rem; /* Adjust font size for smaller screens */
}
p {
font-size: 1rem; /* Adjust font size for smaller screens */
}
a {
font-size: 0.8rem; /* Adjust font size for smaller screens */
}
#search-bar {
width: 80%; /* Adjust width for smaller screens */
}
}
@media only screen and (min-width: 768px) {
/* Styles for screens wider than 768px (desktop) */
#search-bar {
width: 40%; /* Adjust width for larger screens */
}
}

90
html/index.html Normal file
View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Resume</title>
</head>
<body>
<h1 style="text-align: center;"><img src="node.png" alt="NodeMixaholic Icon"
style="width: 99px; height: 99px;">Sparksammy/NodeMixaholic</h1>
<ul style="text-align: center;">
</ul>
<div style="text-align: center;">
<a href="http://git.nodemixaholic.com" target="_new">Git</a><br>
</div>
<p></p>
<hr>
<p><br>
</p>
<h1 style="text-align: center;"></h1>
<h2> <img src="me.png" alt="a photo of me" style="width: 61px; height: 160px;"><strong>Summary:</strong>
</h2>
<div class="markdown prose w-full break-words dark:prose-invert light">
<p>High school-educated coder with expertise in LuaU, C#, JavaScript, and
NodeJS. Passionate about open source contributions and ROBLOX
development. Adobe Certified Associate in Premiere Pro and Adobe Flash
CS6. A tech enthusiast who occasionally shares insights through blog
posts.</p>
<h2 style="text-align: left;"><strong>Education:</strong></h2>
<ul style="text-align: left;">
<li>High School Diploma<br>
<ul>
<li><a href="ppcert.pdf">Adobe Certified Associate in Premiere Pro</a></li>
<li><a href="flashcert.pdf">Adobe Certified Associate in Adobe Flash
CS6</a></li>
<li>Graduated from Home School</li>
<ul>
<li>Switched between public and home schools multiple times.</li>
<li>We named our home school "Eureka Learning Academy"</li>
<ul>
<li>Because we wanted it to sound smart.</li>
</ul>
</ul>
</ul>
</li>
</ul>
<h2 style="text-align: left;"><strong>Skills:</strong></h2>
<ul style="text-align: left;">
<li>Languages: LuaU, C#, JavaScript, NodeJS</li>
<li>ROBLOX Development</li>
<li>Contributions to Open Source</li>
</ul>
<h2 style="text-align: left;"><strong>Work Experience:</strong></h2>
<ul style="text-align: left;">
<li>
<p>Open Source Contributor</p>
<ul>
<li>Actively involved in various open source projects.</li>
<li>Demonstrated proficiency in code contributions and collaboration
with the developer community.</li>
</ul>
</li>
<li>
<p>Former ROBLOX Experience Developer</p>
<ul>
<li>Created numerous ROBLOX experiences, showcasing creative game
design and scripting skills.</li>
</ul>
</li>
</ul>
<h2 style="text-align: left;"><strong>Projects:</strong></h2>
<ul style="text-align: left;">
<li>Git: <a href="http://git.nodemixaholic.com/nodemixaholic" target="_new">NodeMixaholic
Git Server<br>
</a>
<ul>
<li>Extensive list of open-source contributions, demonstrating
coding proficiency and commitment to the developer community.</li>
</ul>
</li>
</ul>
<ul>
<li>Authored occasional blog posts sharing insights and tech-related
thoughts.</li>
</ul>
</li>
</div>
<p><br>
</p>
</body>
</html>

100
html/index.html.bak Normal file
View file

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Resume</title>
</head>
<body>
<h1 style="text-align: center;"><img src="node.png" alt="NodeMixaholic Icon"
style="width: 99px; height: 99px;">Samuel Lord's Resume</h1>
<ul style="text-align: center;">
</ul>
<div style="text-align: center;">Phone: 409-225-2252<br>
Email: <a href="mailto:work@nodemixaholic.com" target="_new">work@nodemixaholic.com</a><br>
Clearnet Portfolio: <a href="https://github.com/NodeMixaholic" target="_new">GitHub</a>,
<a href="https://sparksammy.com" target="_new">Personal Blog</a></div>
<p></p>
<hr>
<p><br>
</p>
<h1 style="text-align: center;"></h1>
<h2> <img src="me.png" alt="a photo of me" style="width: 61px; height: 160px;"><strong>Summary:</strong>
</h2>
<div class="markdown prose w-full break-words dark:prose-invert light">
<p>High school-educated coder with expertise in LuaU, C#, JavaScript, and
NodeJS. Passionate about open source contributions and ROBLOX
development. Adobe Certified Associate in Premiere Pro and Adobe Flash
CS6. A tech enthusiast who occasionally shares insights through blog
posts.</p>
<h2 style="text-align: left;"><strong>Education:</strong></h2>
<ul style="text-align: left;">
<li>High School Diploma<br>
<ul>
<li><a href="ppcert.pdf">Adobe Certified Associate in Premiere Pro</a></li>
<li><a href="flashcert.pdf">Adobe Certified Associate in Adobe Flash
CS6</a></li>
<li>Graduated from Home School</li>
<ul>
<li>Switched between public and home schools multiple times.</li>
<li>We named our home school "Eureka Learning Academy"</li>
<ul>
<li>Because we wanted it to sound smart.</li>
</ul>
</ul>
</ul>
</li>
</ul>
<h2 style="text-align: left;"><strong>Skills:</strong></h2>
<ul style="text-align: left;">
<li>Languages: LuaU, C#, JavaScript, NodeJS</li>
<li>ROBLOX Development</li>
<li>Contributions to Open Source</li>
</ul>
<h2 style="text-align: left;"><strong>Work Experience:</strong></h2>
<ul style="text-align: left;">
<li>
<p>Open Source Contributor</p>
<ul>
<li>GitHub: <a href="https://github.com/NodeMixaholic" target="_new">NodeMixaholic
(clearnet page!)<br>
</a></li>
<li>Actively involved in various open source projects.</li>
<li>Demonstrated proficiency in code contributions and collaboration
with the developer community.</li>
</ul>
</li>
<li>
<p>ROBLOX Experience Developer</p>
<ul>
<li>Created numerous ROBLOX experiences, showcasing creative game
design and scripting skills.</li>
</ul>
</li>
</ul>
<h2 style="text-align: left;"><strong>Projects:</strong></h2>
<ul style="text-align: left;">
<li>GitHub Portfolio: <a href="https://github.com/NodeMixaholic" target="_new">NodeMixaholic
GitHub Profile (clearnet page!)<br>
</a>
<ul>
<li>Extensive list of open-source contributions, demonstrating
coding proficiency and commitment to the developer community.</li>
</ul>
</li>
</ul>
<h2 style="text-align: left;"><strong>Blog Posts:</strong></h2>
<ul style="text-align: left;">
<li>Personal Blog: <a href="https://sparksammy.com" target="_new">Sparksammy
Blog (clearnet page!)<br>
</a>
<ul>
<li>Authored occasional blog posts sharing insights and tech-related
thoughts.</li>
</ul>
</li>
</ul>
</div>
<p><br>
</p>
</body>
</html>

BIN
html/me.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
html/node.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
html/ppcert.pdf Normal file

Binary file not shown.

View file

@ -0,0 +1,30 @@
document.addEventListener('DOMContentLoaded', function () {
// Set the date for January 1st of the following year
const targetDate = new Date();
targetDate.setFullYear(targetDate.getFullYear() + 1);
targetDate.setMonth(0);
targetDate.setDate(1);
targetDate.setHours(0, 0, 0, 0);
// Update the countdown every second
setInterval(updateCountdown, 1000);
function updateCountdown() {
const currentDate = new Date();
const timeDifference = targetDate - currentDate;
const days = Math.floor(timeDifference / (1000 * 60 * 60 * 24));
const hours = Math.floor((timeDifference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = Math.floor((timeDifference % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((timeDifference % (1000 * 60)) / 1000);
document.getElementById('days').textContent = formatTime(days);
document.getElementById('hours').textContent = formatTime(hours);
document.getElementById('minutes').textContent = formatTime(minutes);
document.getElementById('seconds').textContent = formatTime(seconds);
}
function formatTime(time) {
return time < 10 ? `0${time}` : time;
}
});

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>Year of the Linux Desktop Countdown</title>
</head>
<body>
<header>
<h1>The year of the Linux desktop is coming soon!</h1>
</header>
<main>
<div id="countdown">
<div id="days" class="countdown-item">00</div>
<div class="countdown-label">Days</div>
<div id="hours" class="countdown-item">00</div>
<div class="countdown-label">Hours</div>
<div id="minutes" class="countdown-item">00</div>
<div class="countdown-label">Minutes</div>
<div id="seconds" class="countdown-item">00</div>
<div class="countdown-label">Seconds</div>
</div>
</main>
<script src="countdown.js"></script>
</body>
</html>

View file

@ -0,0 +1,43 @@
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
margin: 0;
padding: 0;
background-color: #282c35;
color: white;
}
header {
text-align: center;
padding: 2rem;
background-color: #1e222b;
}
h1 {
font-size: 1.5em;
}
main {
display: flex;
justify-content: center;
align-items: center;
height: 80vh;
}
#countdown {
display: flex;
justify-content: space-around;
align-items: center;
font-size: 2em;
}
.countdown-item {
background-color: #1e222b;
color: white;
padding: 0.5em;
border-radius: 5px;
margin: 0 0.3em;
}
.countdown-label {
text-align: center;
}

107
index.html Normal file
View file

@ -0,0 +1,107 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sparksammy/NodeMixaholic</title>
<style>
body {
background-color: black;
color: limegreen;
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
h1 {
margin-top: 0;
}
a {
color: green;
text-decoration: none;
}
a:hover {
text-decoration: underline;
text-decoration-color: greenyellow;
}
hr {
color: lime;
}
</style>
</head>
<body>
<div class="container">
<a href="https://linuxmint.com"><img src="ad.gif" alt="AD for linux" style="width: 100%;"></a>
<h1><img src="node.png" alt="NodeMixaholic Icon" style="width: 99px; height: 99px;">Sparksammy/NodeMixaholic</h1>
<hr>
<a href="https://github.com/sneed-group">Sneed Group Git</a> - <a href="/homepage">My Personal Homepage</a> - <a href="/blog">The Blog</a> - <a href="https://www.roblox.com/users/265407551/profile">My ROBLOX</a> - <a href="https://ai.nodemixaholic.com">Tiny Samantha Cloud UI</a>
<hr>
<h2><img src="tux-retro-blink.gif" alt="a gif of tux blinking" style="width: 15%;">Summary:</h2>
<p>
High school-educated coder with expertise in LuaU, C#, JavaScript, and NodeJS. Passionate about open source contributions and ROBLOX development. Adobe Certified Associate in Premiere Pro and Adobe Flash CS6. A tech enthusiast who occasionally shares insights through blog posts.
</p>
<h2>Education:</h2>
<ul>
<li>High School Diploma</li>
<li><a href="ppcert.pdf">Adobe Certified Associate in Premiere Pro</a></li>
<li><a href="flashcert.pdf">Adobe Certified Associate in Adobe Flash CS6</a></li>
<li>Graduated from Home School</li>
<ul>
<li>Switched between public and home schools multiple times.</li>
<li>We named our home school "Eureka Learning Academy"</li>
<ul>
<li>Because we wanted it to sound smart.</li>
</ul>
</ul>
</ul>
<h2>Skills:</h2>
<ul>
<li>Languages: LuaU, C#, JavaScript, NodeJS, GoLang, Python3</li>
<li>ROBLOX Development</li>
<li>Contributions to Open Source</li>
</ul>
<h2>Work Experience:</h2>
<ul>
<li>Open Source Contributor
<ul>
<li>Actively involved in various open source projects.</li>
<li>Demonstrated proficiency in code contributions and collaboration with the developer community.</li>
</ul>
</li>
<li>Semi-Retired ROBLOX Experience Developer
<ul>
<li>Created numerous ROBLOX experiences, showcasing creative game design and scripting skills.</li>
</ul>
</li>
</ul>
<h2>Projects:</h2>
<ul>
<li>Git: <a href="https://github.com/sneed-group">Sneed Group Git</a>
<ul>
<li>Extensive list of open-source contributions, demonstrating coding proficiency and commitment to the developer community.</li>
<li>Authored occasional <a href="/blog">blog</a> posts sharing insights and tech-related thoughts.</li>
</ul>
</li>
<li><a href="https://www.roblox.com/users/265407551/profile">ROBLOX Experiences</a></li>
</ul>
<hr>
<p>Copyright Sammy (Sparksammy/Nodemixaholic) Lord. All rights reserved. <b>You <i>are</i> permitted to use any part of this website as part of a training set for a computer-generated algorithm.</b></p>
</div>
</body>
</html>

23
index.nginx-debian.html Normal file
View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>

BIN
node.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
ppcert.pdf Normal file

Binary file not shown.

BIN
tux-retro-blink.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

30
yearoflinux/countdown.js Normal file
View file

@ -0,0 +1,30 @@
document.addEventListener('DOMContentLoaded', function () {
// Set the date for January 1st of the following year
const targetDate = new Date();
targetDate.setFullYear(targetDate.getFullYear() + 1);
targetDate.setMonth(0);
targetDate.setDate(1);
targetDate.setHours(0, 0, 0, 0);
// Update the countdown every second
setInterval(updateCountdown, 1000);
function updateCountdown() {
const currentDate = new Date();
const timeDifference = targetDate - currentDate;
const days = Math.floor(timeDifference / (1000 * 60 * 60 * 24));
const hours = Math.floor((timeDifference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = Math.floor((timeDifference % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((timeDifference % (1000 * 60)) / 1000);
document.getElementById('days').textContent = formatTime(days);
document.getElementById('hours').textContent = formatTime(hours);
document.getElementById('minutes').textContent = formatTime(minutes);
document.getElementById('seconds').textContent = formatTime(seconds);
}
function formatTime(time) {
return time < 10 ? `0${time}` : time;
}
});

32
yearoflinux/index.html Normal file
View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>Year of the Linux Desktop Countdown</title>
</head>
<body>
<header>
<h1>The year of the Linux desktop is coming soon!</h1>
</header>
<main>
<div id="countdown">
<div id="days" class="countdown-item">00</div>
<div class="countdown-label">Days</div>
<div id="hours" class="countdown-item">00</div>
<div class="countdown-label">Hours</div>
<div id="minutes" class="countdown-item">00</div>
<div class="countdown-label">Minutes</div>
<div id="seconds" class="countdown-item">00</div>
<div class="countdown-label">Seconds</div>
</div>
</main>
<script src="countdown.js"></script>
</body>
</html>

43
yearoflinux/styles.css Normal file
View file

@ -0,0 +1,43 @@
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
margin: 0;
padding: 0;
background-color: #282c35;
color: white;
}
header {
text-align: center;
padding: 2rem;
background-color: #1e222b;
}
h1 {
font-size: 1.5em;
}
main {
display: flex;
justify-content: center;
align-items: center;
height: 80vh;
}
#countdown {
display: flex;
justify-content: space-around;
align-items: center;
font-size: 2em;
}
.countdown-item {
background-color: #1e222b;
color: white;
padding: 0.5em;
border-radius: 5px;
margin: 0 0.3em;
}
.countdown-label {
text-align: center;
}