This commit is contained in:
Abdulmujeeb Raji 2025-02-05 16:38:42 +00:00
commit 87f64e82d7
Signed by: midnadimple
GPG key ID: EB02C582F8C3962B
10 changed files with 539 additions and 0 deletions

3
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}

BIN
badge.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
devraza-avatar.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

BIN
happybull-avatar.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

98
index.html Normal file
View file

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cantarell:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
<link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet'>
<link rel="stylesheet" href="style.css">
<link rel="icon" type="image/x-icon" href="/logo.ico">
<title>Atiran Inc.</title>
</head>
<body>
<div class="split left">
<header>
<img src="logo.svg" width="256">
<h1>A Tyrany Incoporated</h1>
<em>a.k.a "Atiran Inc."</em>
</header>
<section class="container">
<h1>About</h1>
<p>We are a group of independent software developers and cybersecurity experts connected by a webring and some duct tape.</p>
<p>We strive to provide resources for all members in the group, so that they can make useful software that can rival those funded by big tech.</p>
<p>If you believe you create software that stands out from the competition, have a deep passion for technology, and are innovative and creative,
then send an email to <a href="mailto:abdul@midnadimple.com">abdul@midnadimple.com</a> with your sincerest application and we'll be in touch.</p>
</p>
</section>
</div>
<div class="split right">
<h1 style="text-align: center">Members</h1>
<article class="container">
<img src="devraza-avatar.webp" width="256px">
<div>
<h1>Devraza</h1>
<p>A great programmer, entry-level security specialist, very competent system administrator,
and average graphic designer. More well-known for being a Linux and Rust evangelist.
Source for the name of this website
</p>
<q><em>I am the true tyrant...</em></q>
<br><br>
<a href="https://devraza.giize.com" class="btn">Website</a>
<a href="https://www.linkedin.com/in/razadev/" class="btn">LinkedIn</a>
</div>
</article>
<article class="container">
<img src="midnadimple-avatar.png" width="256px">
<div>
<h1>midnadimple :/</h1>
<p>A C(++) developer that focuses on low-level development on Windows. Also a fledgling system administrator
and web technologist. Big into the self-improvement community and posts about bettering yourself
on his blog.
</p>
<q><em>It's either <a href="https://handmade.network">handmade</a> or it's trash...</em></q>
<br><br>
<a href="https://midnadimple.com" class="btn">Website</a>
<a href="https://youtube.com/@midnadimple" class="btn">YouTube</a>
<a href="https://www.linkedin.com/in/abdulmujeeeb-raji-b00449155/" class="btn">LinkedIn</a>
</div>
</article>
<article class="container">
<img src="happybull-avatar.jpg" width="256px">
<div>
<h1>HappyBull</h1>
<p>The go-to cybersecurity guy. Has certifications in Python and Microsoft Windows for some reason?
Big guy, small personality.
</p>
<q><em>You mess with the bull; You get the crap.</em></q>
<br><br>
<a href="https://happybull.co.uk" class="btn">Website</a>
</div>
</article>
<article class="container">
<img src="rayan-avatar.png" width="256px">
<div>
<h1>Rayan-H7</h1>
<p>An interesting fellow, to say the least. Hard to tell if he's Chinese or Pakistani.
Works at Kumon. Has a lot of useful scripts on his github.
</p>
<q><em>Rayquaza &gt; Diancie</em></q>
<br><br>
<a href="https://github.com/Rayan-H7" class="btn">GitHub</a>
</div>
</article>
</div>
<footer>
Copyright &copy; 2025 A Tyrany Incorporated.
</footer>
</body>
</html>

137
logo.svg Normal file
View file

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="512"
height="512"
viewBox="0 0 135.46666 135.46667"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="logo.svg"
inkscape:export-filename="logo.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.701332"
inkscape:cx="315.11467"
inkscape:cy="263.78377"
inkscape:window-width="1508"
inkscape:window-height="896"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#262626;stroke-width:5.79739;paint-order:markers fill stroke;fill-opacity:1"
id="rect1"
width="135.46666"
height="135.46666"
x="0"
y="0" />
<g
id="g2"
transform="matrix(1.3016974,0,0,1.3016974,-19.965947,-20.877909)" />
<g
id="g5"
transform="matrix(0.77591575,0,0,0.77591575,15.177972,15.177974)">
<g
id="g4">
<path
sodipodi:type="star"
style="fill:#ececec;fill-opacity:1;stroke-width:5.68801;paint-order:markers fill stroke"
id="path3"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="56.481182"
sodipodi:cy="44.853443"
sodipodi:r1="30.817101"
sodipodi:r2="15.408549"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.5707963"
inkscape:rounded="0.0041813668"
inkscape:randomized="0"
d="m 83.169574,60.261994 c -0.111594,0.193286 -53.26519,0.193286 -53.376784,-1e-6 -0.111594,-0.193286 26.465204,-46.22565 26.688392,-46.22565 0.223188,0 26.799986,46.032364 26.688392,46.225651 z"
transform="rotate(90,35.048758,46.300909)"
inkscape:transform-center-x="-7.6317933" />
<path
sodipodi:type="star"
style="fill:#ececec;fill-opacity:1;stroke-width:5.68801;paint-order:markers fill stroke"
id="path3-6"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="56.481182"
sodipodi:cy="44.853443"
sodipodi:r1="30.817101"
sodipodi:r2="15.408549"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.5707963"
inkscape:rounded="0.0041813668"
inkscape:randomized="0"
d="m 83.169574,60.261994 c -0.111594,0.193286 -53.26519,0.193286 -53.376784,-1e-6 -0.111594,-0.193286 26.465204,-46.22565 26.688392,-46.22565 0.223188,0 26.799986,46.032364 26.688392,46.225651 z"
transform="rotate(-90,89.209293,35.005222)"
inkscape:transform-center-x="7.6317932" />
<path
sodipodi:type="star"
style="fill:#ececec;fill-opacity:1;stroke-width:5.68801;paint-order:markers fill stroke"
id="path3-3"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="56.481182"
sodipodi:cy="44.853443"
sodipodi:r1="30.817101"
sodipodi:r2="15.408549"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.5707963"
inkscape:rounded="0.0041813668"
inkscape:randomized="0"
d="m 83.169574,60.261994 c -0.111594,0.193286 -53.26519,0.193286 -53.376784,-1e-6 -0.111594,-0.193286 26.465204,-46.22565 26.688392,-46.22565 0.223188,0 26.799986,46.032364 26.688392,46.225651 z"
transform="translate(11.252151,54.111652)"
inkscape:transform-center-y="-7.6317928" />
<path
sodipodi:type="star"
style="fill:#ececec;fill-opacity:1;stroke-width:5.68801;paint-order:markers fill stroke"
id="path3-6-7"
inkscape:flatsided="true"
sodipodi:sides="3"
sodipodi:cx="56.481182"
sodipodi:cy="44.853443"
sodipodi:r1="30.817101"
sodipodi:r2="15.408549"
sodipodi:arg1="0.52359878"
sodipodi:arg2="1.5707963"
inkscape:rounded="0.0041813668"
inkscape:randomized="0"
d="m 83.169574,60.261994 c -0.111594,0.193286 -53.26519,0.193286 -53.376784,-1e-6 -0.111594,-0.193286 26.465204,-46.22565 26.688392,-46.22565 0.223188,0 26.799986,46.032364 26.688392,46.225651 z"
transform="rotate(180,62.107258,40.672455)"
inkscape:transform-center-y="7.6317937" />
</g>
<rect
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5.85803;stroke-opacity:1;paint-order:markers fill stroke"
id="rect3"
width="109.50204"
height="108.86743"
x="12.982311"
y="13.29962" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
midnadimple-avatar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
rayan-avatar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

195
style.css Normal file
View file

@ -0,0 +1,195 @@
:root {
--bg-color: #262626;
--dark-color: #151517;
--fg-color: #ece5ea;
--confirm-color: #78b9c4;
--deny-color: #f06969;
--hilite-color: #a292e8;
}
html, body {
background-color: var(--dark-color);
color: var(--fg-color);
margin: 0;
font-family: "Cantarell", serif;
font-weight: 400;
font-style: normal;
}
body {
max-width: 100vh;
overflow-x: hidden;
}
.split {
height: calc(100vh - 4rem);
width: 50%;
position: fixed;
z-index: 1;
top: 0;
overflow-x: hidden;
padding-top: 20px;
}
.left {
left: 0;
width: 40%;
background-color: var(--bg-color);
}
.right {
right: 0;
width: 60%;
background-color: var(--dark-color);
overflow-y: auto;
}
@media (max-width: 768px) {
.split {
all: inherit;
}
.left {
all: inherit;
}
.right {
all: inherit;
padding-top: 15px;
background-color: var(--dark-color);
padding-bottom: 4rem;
}
}
footer {
clear: both;
text-align: center;
height: 3rem;
line-height: 3rem;
margin-top: auto;
width: 100%;
background-color: var(--hilite-color);
color: var(--bg-color);
position: fixed;
left: 0;
bottom: 0;
}
header {
text-align: center;
width: 60%;
margin-left: auto;
margin-right: auto;
}
a {
color: var(--hilite-color);
text-decoration: underline;
}
a:hover {
color: var(--confirm-color);
}
h1 {
font-size: xx-large;
text-decoration-line: underline;
text-decoration-color: var(--hilite-color);
}
.hljs {
font-family: "Space Mono", serif;
font-weight: 700;
font-style: normal;
border-radius: 5px;
}
code {
background-color: var(--bg-color);
color: var(--fg-color);
padding-left: 10px;
padding-right: 10px;
font-family: "Space Mono", serif;
font-weight: 700;
font-style: normal;
border-radius: 5px;
}
.container {
max-width: 1536px;
margin-left: auto;
margin-right: auto;
padding-left: 0.5rem;
padding-right: 0.5rem;
padding-bottom: 2rem;
text-align: center;
width: 70%;
}
/* 2xl */
@media (max-width: 1536px) {
.container {
max-width: 1280px;
}
}
/* xl */
@media (max-width: 1280px) {
.container {
max-width: 1024px;
}
}
/* lg */
@media (max-width: 1024px) {
.container {
max-width: 768px;
}
}
/* md */
@media (max-width: 768px) {
.container {
max-width: 640px;
}
}
/* sm */
@media (max-width: 640px) {
.container {
max-width: 475px;
}
}
/* xs */
@media (max-width: 475px) {
.container {
width: 100%;
}
}
.btn {
cursor: pointer;
position: relative;
padding: 10px;
border-radius: 10px;
user-select: none;
text-align: center;
display: inline-block;
text-decoration: none;
color: var(--bg-color);
background-color: var(--hilite-color);
}
.btn:hover {
background: var(--confirm-color);
color: var(--bg-color);
}
.quote-link {
color: var(--hilite-color);
}
.quote-link:hover {
color: var(--confirm-color);
}

106
webring.js Normal file
View file

@ -0,0 +1,106 @@
/*
L I BBB RRRR EEEE RRRR I N N GGGG
L I B B R R E R R I NN N G
L I BBBB RRRR EEE RRRR I N N N G GG
L I B B R R E R R I N NN G G
LLLLL I BBBB R R EEEE R R I N N GGGG
LIBRERING is a simple javascript webring script.
It should be compatible with HTML and XHTML and supports rudimentary configuration options.
Copyright 2023: Lian B. of Libre.Town
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
// ·······································································
// : ADMINISTRATOR SECTION :: This section contains configuration options :
// ·······································································
// List of all members in the webring. Add onto this manually whenever you want to add someone new to the ring.
// Please take time to go through here and use the search-and-replace feature of your favorite text editor to change all instances of atiran to a lower-case or camel-case version of your webring name, as well as change the configuration to your liking.
var atiran_members = [
'https://midnadimple.com',
'https://devraza.giize.com',
'https://happybull.co.uk'
]
// Various config options that should be self-documenting.
// Again, if you're hosting this Librering, please change all the instances of atiran to your particular webring name in lower case, and insert valid image URLs for the badges and navigation.
var atiran_ringurl = "https://atiran.giize.com/"; // The URL of the webring itself, for contact and information purposes.
var atiran_badgeurl = "https://atiran.giize.com/badge.png"; // The URL of the main badge of the webring; 88x31 recommended, but any size goes.
// ····························································································································
// : DISPLAY SECTION :: This defines whatever happens on a member's individual site: most notably, inserting a little display. :
// ····························································································································
// Before you can use this, please replace all instances of atiran with your webring name in lower case.
// This will allow you to have multiple webrings on the same site without them conflicting with each other.
// Please also carefully read through these options to see what you can (and have to) change; the design, the layout and the links.
// For more information and a step-by-step tutorial, see: https://libre.town/creative/development/librering.xhtml
// ... Let's begin.
// For displaying messages of all kinds, as well as the working webring display, we want to keep our little HTML element in mind.
// Remember to insert your webring's name here, just like everywhere, if you host this webring.
var displayElement = document.getElementById("atiran");
// First of all, we want to check whether we are even a member of this particular webring, and if so, at which position.
var currentLocation = window.location.href;
var siteIndex = atiran_members.indexOf(currentLocation);
// If our current location is NOT in the webring, display an error message. The rest of the code only runs if the site has been found in the webring.
if (siteIndex == -1) {
displayElement.innerHTML =
"<p>I am sorry, but the atiran display has failed to find you in the member list.<br />Please contact the webring administrator for support if you are the webmaster of this site and believe this to be in error.</p>";
}
// // If our current location IS in the webring, this is where it continues.
// else {
// // This is a readable (but technologically not very sound) way to loop around when you are either the first or last member of the webring.
// var beforeID;
// var afterID;
// if (siteIndex == 0) { beforeID = atiran_members.length - 1; }
// else { beforeID = siteIndex - 1; }
// if (siteIndex == atiran_members.length - 1) { afterID = 0; }
// else { afterID = siteIndex + 1; }
// // This chooses a random website from a copy of the member list.
// var randomID;
// randomID = Math.floor(Math.random() * atiran_members.length);
// // Now it is time to get to the meaty stuff. This will replace our little display container with the actual display content: a general badge, next/previous buttons, and a webring info and random link.
// // Remove, swap around or change these components as you see fit.
// displayElement.innerHTML =
// "<a href='" + atiran_ringurl + "'><img alt='Badge: atiran webring' src='" + atiran_badgeurl + "' /></a><br />" +
// "<a href='" + atiran_members[beforeID] + "'><img alt='Previous' src='" + atiran_prevurl + "' /></a>" +
// "<a href='" + atiran_members[randomID] + "'><img alt='Random' src='" + atiran_randomurl + "' /></a>" +
// "<a href='https://libre.town/creative/development/librering.xhtml'><img alt='About LibreRing' src='" + atiran_abouturl + "' /></a>" +
// "<a href='" + atiran_members[afterID] + "'><img alt='Next' src='" + atiran_nexturl + "' /></a>";
// }
// If you want to choose a text-based display instead without any images, remove or comment up the entire else block above and instead uncomment this one.
else {
// This is a readable (but technologically not very sound) way to loop around when you are either the first or last member of the webring.
var beforeID;
var afterID;
if (siteIndex == 0) { beforeID = atiran_members.length - 1; }
else { beforeID = siteIndex - 1; }
if (siteIndex == atiran_members.length - 1) { afterID = 0; }
else { afterID = siteIndex + 1; }
// This chooses a random website from a copy of the member list.
var randomID;
randomID = Math.floor(Math.random() * atiran_members.length);
// Now it is time to get to the meaty stuff. This will replace our little display container with the actual display content: a general badge, next/previous buttons, and a webring info and random link.
// Remove, swap around or change these components as you see fit.
displayElement.innerHTML =
"<p><a href='" + atiran_ringurl + "'><img alt='Badge: atiran webring' src='" + atiran_badgeurl + "' /></a></br>" +
"<a href='" + atiran_members[beforeID] + "'>&lt;&lt; Previous |</a>" +
" <a href='" + atiran_members[randomID] + "'>Random |</a>" +
" <a href='https://libre.town/creative/development/librering.xhtml'>About LibreRing |</a>" +
" <a href='" + atiran_members[afterID] + "'>&gt;&gt; Next</a></p>";
}