diff --git a/about.html b/about.html index 8e25b93..a7ac421 100644 --- a/about.html +++ b/about.html @@ -41,6 +41,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + diff --git a/ascii.html b/ascii.html index 7e0c5e0..3a9c523 100644 --- a/ascii.html +++ b/ascii.html @@ -38,6 +38,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + diff --git a/assets/css/index.css b/assets/css/index.css index 9cacc99..52cdb81 100644 --- a/assets/css/index.css +++ b/assets/css/index.css @@ -2,3 +2,12 @@ img.no-drag { pointer-events: none; } +img.fog { + pointer-events: none; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} + diff --git a/assets/js/hacker-podcast.js b/assets/js/hacker-podcast.js index 8c5ce2c..8613e75 100644 --- a/assets/js/hacker-podcast.js +++ b/assets/js/hacker-podcast.js @@ -1,31 +1,31 @@ -const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ/.?!@#$%^&*()_+"; - -let interval = null; -let interval2 = null; -let interval3 = null; - - -document.querySelector(".copyright").onmouseover = event => { - let iteration2 = 0; - let old2 = "Copyright © Nathan Woodburn 2023"; - clearInterval(interval2); - - interval2 = setInterval(() => { - event.target.innerText = event.target.innerText - .split("") - .map((letter, index2) => { - if(index2 < iteration2) { - return old2[index2]; - } - - return letters[Math.floor(Math.random() * 41)] - }) - .join(""); - - if(iteration2 >= old2.length){ - clearInterval(interval2); - } - - iteration2 += 1/3; - }, 10); +const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ/.?!@#$%^&*()_+"; + +let interval = null; +let interval2 = null; +let interval3 = null; + + +document.querySelector(".copyright").onmouseover = event => { + let iteration2 = 0; + let old2 = "Copyright © Nathan Woodburn 2023"; + clearInterval(interval2); + + interval2 = setInterval(() => { + event.target.innerText = event.target.innerText + .split("") + .map((letter, index2) => { + if(index2 < iteration2) { + return old2[index2]; + } + + return letters[Math.floor(Math.random() * 41)] + }) + .join(""); + + if(iteration2 >= old2.length){ + clearInterval(interval2); + } + + iteration2 += 1/3; + }, 10); } \ No newline at end of file diff --git a/assets/js/hacker.js b/assets/js/hacker.js index 5b09ca6..7634fcd 100644 --- a/assets/js/hacker.js +++ b/assets/js/hacker.js @@ -1,84 +1,84 @@ -const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ/.?!@#$%^&*()_+"; - -let interval = null; -let interval2 = null; -let interval3 = null; - - -window.onload = (event) => { - -target = document.querySelector(".nathanwoodburn"); - let iteration = 0; - let final = "NATHAN.WOODBURN/"; - clearInterval(interval); - - interval = setInterval(() => { - target.innerText = target.innerText - .split("") - .map((letter, index) => { - if(index < iteration) { - return final[index]; - } - - return letters[Math.floor(Math.random() * 41)] - }) - .join(""); - - if(iteration >= final.length){ - clearInterval(interval); - } - - iteration += 1 / 3; - }, 30); -}; - -document.querySelector(".copyright").onmouseover = event => { - let iteration2 = 0; - let old2 = "Copyright © Nathan Woodburn 2023"; - console.log(old2); - clearInterval(interval2); - - interval2 = setInterval(() => { - event.target.innerText = event.target.innerText - .split("") - .map((letter, index2) => { - if(index2 < iteration2) { - return old2[index2]; - } - - return letters[Math.floor(Math.random() * 41)] - }) - .join(""); - - if(iteration2 >= old2.length){ - clearInterval(interval2); - } - - iteration2 += 1/3; - }, 10); - } - // document.querySelector(".hacker3").onmouseover = event => { - // let iteration3 = 0; - // let old3 = event.target.innerText; - // console.log(old3); - // clearInterval(interval3); - - // interval3 = setInterval(() => { - // event.target.innerText = event.target.innerText - // .split("") - // .map((letter, index3) => { - // if(index3 < iteration3) { - // return old3[index3]; - // } - - // return letters[Math.floor(Math.random() * 41)] - // }) - // .join(""); - - // if(iteration3 >= old3.length){ - // clearInterval(interval3); - // } - - // iteration3 += 1 / 3; - // }, 10); +const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ/.?!@#$%^&*()_+"; + +let interval = null; +let interval2 = null; +let interval3 = null; + + +window.onload = (event) => { + +target = document.querySelector(".nathanwoodburn"); + let iteration = 0; + let final = "NATHAN.WOODBURN/"; + clearInterval(interval); + + interval = setInterval(() => { + target.innerText = target.innerText + .split("") + .map((letter, index) => { + if(index < iteration) { + return final[index]; + } + + return letters[Math.floor(Math.random() * 41)] + }) + .join(""); + + if(iteration >= final.length){ + clearInterval(interval); + } + + iteration += 1 / 3; + }, 30); +}; + +document.querySelector(".copyright").onmouseover = event => { + let iteration2 = 0; + let old2 = "Copyright © Nathan Woodburn 2023"; + console.log(old2); + clearInterval(interval2); + + interval2 = setInterval(() => { + event.target.innerText = event.target.innerText + .split("") + .map((letter, index2) => { + if(index2 < iteration2) { + return old2[index2]; + } + + return letters[Math.floor(Math.random() * 41)] + }) + .join(""); + + if(iteration2 >= old2.length){ + clearInterval(interval2); + } + + iteration2 += 1/3; + }, 10); + } + // document.querySelector(".hacker3").onmouseover = event => { + // let iteration3 = 0; + // let old3 = event.target.innerText; + // console.log(old3); + // clearInterval(interval3); + + // interval3 = setInterval(() => { + // event.target.innerText = event.target.innerText + // .split("") + // .map((letter, index3) => { + // if(index3 < iteration3) { + // return old3[index3]; + // } + + // return letters[Math.floor(Math.random() * 41)] + // }) + // .join(""); + + // if(iteration3 >= old3.length){ + // clearInterval(interval3); + // } + + // iteration3 += 1 / 3; + // }, 10); // } \ No newline at end of file diff --git a/assets/js/info.js b/assets/js/info.js new file mode 100644 index 0000000..960264f --- /dev/null +++ b/assets/js/info.js @@ -0,0 +1,89 @@ +// On load +onload = function() { + dockerInfo(); + systemUptime(); + systemLoad(); + +}; + + + +// On tick +setInterval(function() { + dockerInfo(); + systemUptime(); + systemLoad(); + + console.log("Updated"); +}, 1000); + +const api = "https://glances.woodburn.au/api/3/"; + +// Docker info function +function dockerInfo() { + // Get the containers.name values from the json + // Replace the interHTML for #containers with the container name + fetch(api + "docker") + .then(response => response.json()) + .then(data => { + // Loop through the containers and get the name and the status + // Display in a containers running and containers stopped + let runningContainers = []; + let stoppedContainers = []; + for (let i = 0; i < data.containers.length; i++) { + if (data.containers[i].Status === "running") { + runningContainers.push(data.containers[i].name); + } else { + stoppedContainers.push(data.containers[i].name); + } + } + // Create the containersName variable + let containersName = "Total Containers: " + data.containers.length + "
"; + containersName += "Running Containers: " + runningContainers.length + "
"; + containersName += "Stopped Containers: " + stoppedContainers.length + "

"; + // Loop through the running containers and add them to the containersName variable + + document.getElementById("containers").innerHTML = containersName; + }) + .catch(err => console.log(err)); +}; + +// System uptime function +function systemUptime() { + fetch(api + "uptime") + .then(response => response.text()) + .then(data => { + // Get text data remove the quotes + let uptime = data.replace(/['"]+/g, ''); + document.getElementById("uptime").innerHTML = uptime; + }) + .catch(err => console.log(err)); +}; + +function systemLoad() { + fetch(api + "mem").then(response => response.json()).then(data => { + // Get percentage of memory used + let memPercent = data.percent + "% RAM"; + document.getElementById("mem").innerHTML = memPercent; + }).catch(err => console.log(err)); + + fetch(api + "cpu").then(response => response.json()).then(data => { + // Get total CPU used + let cpuPercent = data.total + "% CPU"; + document.getElementById("cpu").innerHTML = cpuPercent; + }).catch(err => console.log(err)); + + fetch(api + "fs").then(response => response.json()).then(data => { + // For each file system get percent disk used + let diskPercent = data[0].percent + "% Disk"; + // Get GB of storage left + let diskFree = data[0].free; + // Convert to GB + diskFree = diskFree / 1000000000; + // Round to 2 decimal places + diskFree = diskFree.toFixed(2); + // Add to the diskPercent variable + diskPercent += "
" + diskFree + " GB Free"; + document.getElementById("disk").innerHTML = diskPercent; + }).catch(err => console.log(err)); +}; diff --git a/gitpgp.html b/gitpgp.html index d2e7088..5fdbe6e 100644 --- a/gitpgp.html +++ b/gitpgp.html @@ -38,6 +38,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + diff --git a/index.html b/index.html index fd4e1cc..be3b110 100644 --- a/index.html +++ b/index.html @@ -51,6 +51,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + diff --git a/info.html b/info.html index 5307d95..b93be89 100644 --- a/info.html +++ b/info.html @@ -38,6 +38,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + diff --git a/link.html b/link.html index b953e22..fdcd9c2 100644 --- a/link.html +++ b/link.html @@ -42,6 +42,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + diff --git a/pgp.html b/pgp.html index 19619b4..ec779db 100644 --- a/pgp.html +++ b/pgp.html @@ -38,6 +38,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + -----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: https://keybase.io/download
Version: Keybase Go 6.0.1 (windows)
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
i0GVXA==
=W9Zx
-----END PGP PUBLIC KEY BLOCK-----
diff --git a/podcast.html b/podcast.html index 6a7fe44..f794a28 100644 --- a/podcast.html +++ b/podcast.html @@ -39,6 +39,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + diff --git a/projects.html b/projects.html index fb89322..1655517 100644 --- a/projects.html +++ b/projects.html @@ -39,6 +39,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= + diff --git a/resume.html b/resume.html index b81a436..e1e88a3 100644 --- a/resume.html +++ b/resume.html @@ -39,6 +39,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= +