234 lines
9.3 KiB
HTML
234 lines
9.3 KiB
HTML
<html>
|
|
<head>
|
|
|
|
<title>mediocregopher</title>
|
|
|
|
<link rel="apple-touch-icon" sizes="180x180" href="favicon/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="favicon/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png">
|
|
<link rel="manifest" href="favicon/site.webmanifest">
|
|
|
|
<link rel="stylesheet" href="/new.css">
|
|
|
|
<style type="text/css">
|
|
|
|
.fuck-it-up {
|
|
font-family:Courier,monospace;
|
|
font-size:0.75rem;
|
|
line-height:4pt;
|
|
}
|
|
|
|
:root {
|
|
--nc-tx-1: #BAD455;
|
|
--nc-tx-2: #BAD455;
|
|
--nc-bg-1: #434343;
|
|
--nc-bg-2: #434343;
|
|
--nc-bg-3: #434343;
|
|
--nc-lk-1: #BAD455;
|
|
--nc-lk-2: #BAD455;
|
|
--nc-lk-tx: #000000;
|
|
--nc-ac-1: #BAD455;
|
|
--nc-ac-tx: #434343;
|
|
}
|
|
|
|
header, hr {
|
|
border-bottom: 1px dashed var(--nc-tx-1);
|
|
}
|
|
|
|
hr {
|
|
margin: 3rem 0 3rem 0;
|
|
}
|
|
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<header>
|
|
<h1>mediocregopher</h1>
|
|
<p>
|
|
This page acts as the hub of my web presence. Everything I do is linked to
|
|
from here.
|
|
</p>
|
|
</header>
|
|
|
|
<pre class="fuck-it-up">
|
|
.%*. .-.
|
|
.%@@@+. .--=%@@@-
|
|
=@@@@@@- :--+@@@@@@@@@*
|
|
*@%@@@@@%: :--=#@@@@@@@@@@@@#@@+
|
|
@@::%@@@@@@-: :::-=%@@@@@@@@@@@@@@%#*- :@*
|
|
.@@ =@@@@@@@@@+-:::::::-=*@@@@@@@@@@@@@@@@@@@%##- @@:
|
|
#@# +%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#*: -@@
|
|
#@- *%@@@@@@@@@@@@@@@@@%%%#= %@=
|
|
@@: -=+++== .. @@:
|
|
@@ . -@@@ +@@
|
|
#@% =@@@@- +@@@@# *+ %@#
|
|
#@- -@@@@@@@. +@@@@@% .%@@@@= @@:
|
|
@@: +@@@@@@@@@ +@+ +@@@ %@@@@@@@@@ -@@
|
|
@@ *@%@* :@@@ *@+ -@@@ %@@@@@@@@@@@# @@@
|
|
#@% %@ @% %@@ *@* .@@@ =@@@*@@ :@@@@ @@:
|
|
%@:## *@+ :@@ :@@ @@@ %@@: @# .@@@ .@@
|
|
@@:. @@: .@@ @@ @@@ %@: @@ @@% @@%
|
|
@@ -@@. =@@ @@. @@@ %@. #@- @@# @@.
|
|
%@% +@@. @@. %@- @@@ #@ @@. :@@ -@@
|
|
%@: +@@+ .@% #@= @@@.@ *@@ +@+ @@*
|
|
@@: +@@%. .%% *@+ @@@ %@@ -@# @@
|
|
@@ :@@@@@@% :@@ @@% %@@ @# *@@
|
|
%@@ #@@@@* @@ @@% %@@. %@. @@:
|
|
@@: ===: @@. @@% %@@: =@%. .@@
|
|
@@. #@= @@% %@@%+%@#. @@%
|
|
@@ +@* @@# -@@@@@* .@@
|
|
%@@ :@@ @@# %@@#: =@@
|
|
@@: .@@ @@# : @@=
|
|
@@. @@. @@# :@@
|
|
@@ #@= @@% %@%
|
|
#@@ +@+ #@% .@@
|
|
@@: =@# +@% =@%
|
|
@@ :@% -@@ @@+
|
|
@@ .@@ -@: -@@
|
|
-@@ @% .: *@#
|
|
@@* # @@.
|
|
@@ =@@
|
|
.@@ @@*
|
|
.@@ .@@
|
|
*@@ =@#
|
|
@@* @@*
|
|
@@ -@@
|
|
.@@ +@*
|
|
.@@ @@-
|
|
-@@ =@@
|
|
%@% #@*
|
|
@@ @@:
|
|
@@ +@@
|
|
.@@ %@+
|
|
:@% @@.
|
|
:@% *@%
|
|
-@. %@=
|
|
%@ @@.
|
|
@@ *@%
|
|
@@ %@=
|
|
@% @@:
|
|
:@% +@@
|
|
:@* =+- #@+
|
|
:@: .%@@@. @@-
|
|
-@ =@@@@@# :@@
|
|
=@ *@#.=@@% #@%
|
|
*@ #@- -@@% %@-
|
|
@@ #@: :@@% @@:
|
|
@@ #% .@@% .#@@* -@@
|
|
@% #% .@@% +@@@@@- %@%
|
|
@# %@ :@@% .@@@@@@@@ %@:
|
|
@# %@ :@@% +@@% .@@@@ @@:
|
|
@# %@ :@@% #@@: :@@@ -@@
|
|
@# @@. .@@@ .@@% .@@@= %@%
|
|
@# @@. .@@@: %@@- @@@% %@:
|
|
@# @@ @@@@ %@@@ *@@@ @@:
|
|
@# .@@ @@@@@@@@@@= :@@@ @@
|
|
* @@@ :@@@@@@@@. :@@@ *@@
|
|
.@@@@@% -@@@@@. .@@@ @@=
|
|
@@@@@: .. @@@ @@.
|
|
-@%: @@@ @@.
|
|
@@@ @@
|
|
-@@ =@@
|
|
.@@ @@+
|
|
.@@:@@.
|
|
@@#@-
|
|
@@@.
|
|
+@-
|
|
-
|
|
</pre>
|
|
|
|
<h2>Social</h2>
|
|
<ul>
|
|
<li><a href="https://blog.mediocregopher.com">Mediocre Blog</a> is for updates to things I'm working on, and occasionally thoughts I have.</li>
|
|
<li><a href="https://bgpicciano.com">bgpicciano.com</a> is my cover site/resume.</li>
|
|
<li><a href="https://news.cryptic.io">Cryptic News</a> aggregates interesting blogs.</li>
|
|
</ul>
|
|
|
|
<h2>Dev</h2>
|
|
<ul>
|
|
<li><a href="https://github.com/mediocregopher">GitHub</a> is for open-source code I've written.</li>
|
|
<li><a href="https://github.com/mediocregopher/radix">radix</a> is for using redis with go.</li>
|
|
<!--<li><a href="https://dehub.dev">dehub</a> is for decentralized git projects.</li>-->
|
|
<li><a href="https://code.betamike.com/cryptic-io/cryptic-net">cryptic-net</a> implements the foundation of a community infrastucture.</li>
|
|
</ul>
|
|
|
|
<h2>Art</h2>
|
|
<ul>
|
|
<li><a href="https://opensea.io/mediocregopher?tab=created">OpenSea</a> lists some NFTs I've made.</li>
|
|
<li><a href="https://exchange.art/artists/mediocregopher/series">Exchange.art</a> lists others.</li>
|
|
</ul>
|
|
|
|
<hr/>
|
|
|
|
<p>I'm not affiliated with these, but they're worth listing.</p>
|
|
<ul>
|
|
<li><a href="https://search.marginalia.nu/">Marginalia</a> reminds me of the old internet.</li>
|
|
<li><a href="https://indieweb.org/Micropub">Micropub</a> is a protocol I soon hope to add to my blog.</li>
|
|
<li><a href="https://drewdevault.com/2020/11/01/What-is-Gemini-anyway.html">Gemini</a> is another protocol I soon hope to add to my blog.</li>
|
|
<li><a href="https://www.nts.live/">NTS</a> is a great internet radio station.</li>
|
|
<li><a href="https://yamakan.place/palestine/#">Radio alHara</a> is another great internet radio station.</li>
|
|
</ul>
|
|
|
|
</body>
|
|
|
|
<script>
|
|
function replaceAt(str, index, replacement) {
|
|
return str.substr(0, index) + replacement+ str.substr(index + replacement.length);
|
|
}
|
|
|
|
const fuckItUpEls = document.querySelectorAll(".fuck-it-up");
|
|
|
|
// right-pad the lines in each fuck-it-up
|
|
fuckItUpEls.forEach((pre) => {
|
|
|
|
const lines = pre.innerText.split('\n');
|
|
|
|
let maxL = 0;
|
|
lines.forEach((line) => {
|
|
maxL = maxL > line.length ? maxL : line.length;
|
|
});
|
|
|
|
pre.innerText = lines.map((line) =>
|
|
line + " ".repeat(maxL - line.length)
|
|
).join('\n');
|
|
|
|
});
|
|
|
|
function fuckItUp() {
|
|
fuckItUpEls.forEach((pre) => {
|
|
while (true) {
|
|
var txt = pre.innerText;
|
|
var len = txt.length;
|
|
|
|
var a = Math.floor(Math.random() * len);
|
|
var aChar = txt.charAt(a);
|
|
var b = Math.floor(Math.random() * len);
|
|
var bChar = txt.charAt(b);
|
|
|
|
if (
|
|
aChar == "\n" || bChar == "\n"
|
|
) continue;
|
|
|
|
txt = replaceAt(txt, a, bChar);
|
|
txt = replaceAt(txt, b, aChar);
|
|
pre.innerText = txt;
|
|
|
|
break
|
|
}
|
|
});
|
|
}
|
|
|
|
var wait = 1000;
|
|
function fuckItUpALot() {
|
|
fuckItUp();
|
|
if (wait > 2) { wait *= 0.95; }
|
|
setTimeout(fuckItUpALot, wait);
|
|
}
|
|
setTimeout(fuckItUpALot, wait);
|
|
</script>
|
|
|
|
</html>
|