Draw the rest of the fucking owl

This commit is contained in:
Salt 2020-08-16 05:25:54 -05:00
parent 13e4ade104
commit 2f4f94bb99
34 changed files with 771 additions and 0 deletions

31
about/index.php Normal file
View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<title>9iron - About</title>
</head>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>About 9iron</h2>
<p>Not really too much to say. I spun it up as a homepage to direct people to my other servers and am pleased at how well it's served that role.</p>
<h2>About Me</h2>
<p>I am Salt. I'm a sysadmin and I play video games. I'm most active on Discord, but can be reached very effectively through the Fediverse and email.</p>
<p>Hit me up if you wanna play something or if shit breaks.</p>
<dl>
<dt>Fedi:</dt>
<dd>salt@cowfee.moe</dd>
<dd>salt@weeaboo.space</dd>
<dt>Matrix:</dt>
<dd>@salt:9iron.club</dd>
<dt>Discord:</dt>
<dd>Salt#0382</dd>
<dt>Email:</dt>
<dd>Check my commits</dd>
</dl>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</body>
</html>

49
feed/index.php Normal file
View File

@ -0,0 +1,49 @@
<?php header("Content-Type: application/rss+xml; charset=ISO-8859-1"); ?>
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
<title>9iron</title>
<link>https://9iron.club/posts</link>
<description>Ramblings of some dumb young admin guy</description>
<language>en-us</language>
<?php
/* Generate feed */
$dir = $_SERVER['DOCUMENT_ROOT']."/posts/";
$posts = scandir($dir, 1);
$ignore = array("index.php", "feed.php", ".", "..");
$extensions = array(".php", ".html", ".htm");
/* Create 25 entries */
foreach (array_slice($posts, 0, 26) as &$post) {
/* Check against blacklist */
if (in_array($post, $ignore)) continue;
$postlocation = $dir.$post;
$posturl = "/posts/".$post;
/* This is a date because I write all my posts as such */
$postdate = pathinfo($postlocation, PATHINFO_FILENAME);
/* Fetch title and summary */
$title = "Title not available";
$summary = "Summary not available";
$dom = new DOMDocument();
if ($dom->loadHTMLFile($postlocation)) {
$xpath_section = new DOMXpath($dom);
/* Get title */
$list = $dom->getElementsByTagName("title");
if ($list->length > 0) $title = $list->item(0)->textContent;
/* Get summary */
$list = $xpath_section->query('//div[@class="section"]//p');
if ($list->length > 0) $summary = $list->item(0)->nodeValue;
}
/* Mark up the data */
$rssfeed .='
<item>
<title>'.$title.'</title>
<description>'.$summary.'</description>
<link>https://www.9iron.club'.$posturl.'</link>
<pubDate>'.date('r', strtotime($postdate)).'</pubDate>
</item>';
}
/* List it */
echo $rssfeed;
?>
</channel>
</rss>

25
gmod/index.php Normal file
View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<title>9iron - Garry's Mod</title>
</head>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>Garry's Mod</h2>
<p>Just toss the IP into your favorites or open it through the console. Ask around for the password.</p>
</div>
<div class="section">
<h2>Servers</h2>
<div class="subcontainer">
<h3>Trouble in Terrorist Town</h3>
<p><code>ttt.src.9iron.club</code></p>
<p><a href="https://steamcommunity.com/sharedfiles/filedetails/?id=2155532035">Addons List</a></p>
</div>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</body>
</html>

BIN
images/bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
images/riot-darkmode-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/riot-darkmode-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
images/riot-fedi-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
images/riot-fedi-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
images/riot-tut-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
images/riot-tut-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
images/riot-tut-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
images/riot-tut-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
images/riot-tut-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/riot-vc-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

BIN
images/riot-vc-1.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
images/riot-vc-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
images/riot-vc-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
images/riot-vc-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
images/riot-vc-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

94
matrix/index.php Normal file
View File

@ -0,0 +1,94 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<link rel="shortcut icon" href="/favicon.ico" />
<title>9iron</title>
</head>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>What is Matrix?</h2>
<p>Matrix is a communication platform. Think Discord, but hosted here and without <a href="https://cadence.moe/blog/2020-06-06-why-you-shouldnt-trust-discord">its problems</a>.</p>
<p>To get up and running, you only need to read the <a href="#gettingstarted">Getting Started</a> section. Everything else here is just in case you want or need it.</p>
<h3>On This Page:</h3>
<ul>
<li><a href="#gettingstarted">Getting Started</a></li>
<li><a href="#darkmode">Dark Mode</a></li>
<li>Using Matrix</li>
<ul>
<li><a href="#voicechat">Voice Chat</a></li>
<li><a href="#communities">Communities</a></li>
</ul>
<li>Miscellaneous</li>
<ul>
<li><a href="#rules">Rules</a></li>
<li><a href="#federation">Federation</a></li>
<li><a href="#contact">Contact an Admin</a></li>
</ul>
</ul>
</div>
<div class="section" id="gettingstarted">
<h2>Getting Started</h2>
<p>Setting up Matrix is pretty simple. </p>
<p>Download, install, and launch <a href="https://about.riot.im/">Riot</a>. You'll be presented with the following screen:</p>
<img class="bigimg" src="/images/riot-tut-1.png" />
<p>Create an account:</p>
<img class="bigimg" src="/images/riot-tut-2.png" />
<p>Under Advanced, click Other and enter in <code>https://matrix.9iron.club</code>:</p>
<img class="bigimg" src="/images/riot-tut-3.png" />
<p>Click Next and enter in your account details:</p>
<img class="bigimg" src="/images/riot-tut-4.png" />
<p>If you would like to set up encryption, follow the prompts. I would recommend doing so for account recovery. After that:</p>
<img class="bigimg" src="/images/riot-tut-5.png" />
<p>You're done!</p>
<p>After registering, you will automatically be added to the Welcome room. To find more rooms, hit "Explore". You can also create a room and invite other users to it.</p>
</div>
<div class="section" id="voicechat">
<h2>Voice Chat</h2>
<p>Matrix uses a plugin called Jitsi for voice chat. Each Jitsi chat is unique to its own room. To add one, click this button:</p>
<img class="bigimg" src="/images/riot-vc-1.png" />
<p>Depending on how the room permissions are set up, you may have to be an admin to add one. From here, pick Jitsi and follow the prompts:</p>
<img class="bigimg" src="/images/riot-vc-2.png" />
<p>Then, simply click this button to expand Jitsi and join the call:</p>
<img class="bigimg" src="/images/riot-vc-3.png" />
<img class="bigimg" src="/images/riot-vc-4.png" />
<img class="bigimg" src="/images/riot-vc-5.png" />
<p>You can also add other embeds, such as a Spotify playlist or a YouTube video. For now, these plugins are run on another server, but I may bring them into 9iron eventually.</p>
</div>
<div class="section" id="communities">
<h2>Communities</h2>
<p>Where Discord has a Server, Matrix has Communities. You can join a bunch of rooms together in a community and invite people to it. To make a community, hit the big plus button on the left side of Riot and follow the prompts.</p>
</div>
<div class="section" id="darkmode">
<h2>Enabling Dark Mode</h2>
<p>By default, Riot assumes that you light light mode. Nobody likes light mode. To turn on dark mode, click your name, click "Settings", then scroll down to the "Theme" section and pick "Dark theme". You may have to turn off "Match system theme" to do so:</p>
<img class="bigimg" src="/images/riot-darkmode-1.png" />
<img class="bigimg" src="/images/riot-darkmode-2.png" />
</div>
<div class="section" id="rules">
<h2>Rules</h2>
<p>The 9iron server as a whole only has two main rules:</p>
<ul>
<li>Upload something illegal in the United States and I'll kick your ass</li>
<li>Break into my boxes and I'll kick your ass</li>
</ul>
<p>Everything beyond that is up to the room's admins. Each room has its own different set of admins and I might not necessarily be part of it.</p>
<p>For the rooms I own (like <code>#welcome</code> and <code>#adminbs</code>), the rules are in the <code>+9:9iron.club</code> community.</p>
</div>
<div class="section" id="federation">
<h2>Federation</h2>
<p>The server on 9iron can communicate with other servers as well. If you want to chat with someone on Matrix.org or some other server, you can. When Setting up a room, add a local address and give it to the person on the other server:</p>
<img class="bigimg" src="/images/riot-fedi-1.png" />
<img class="bigimg" src="/images/riot-fedi-2.png" />
<p>In this case, I would give out <code>#adminbs:9iron.club</code>. With this, the user on the other server can join the room. You can also join theirs in a similar way (ie. you get given <code>#room:matrix.org</code>)</p>
</div>
<div class="section" id="contact">
<h2>Contact an Admin</h2>
<p>If the server goes down or you need to reach out to an admin for any reason, send an email to rehashedsalt@cock.li.</p>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</body>
</html>

114
minecraft/index.php Normal file
View File

@ -0,0 +1,114 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<link rel="shortcut icon" href="/favicon.ico" />
<title>9iron</title>
</head>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>Modded Minecraft</h2>
<p>It's been a go-to of ours for a while. Ongoing and historical modpacks are listed here for your convenience and participation.</p>
<p>At-a-glance information is provided here for the various packs we play.</p>
<a href="/minecraft/setup" class="quickbutton">Setting Up Modded Minecraft</a>
</div>
<div class="section">
<h2>Current Modpacks</h2>
<p>Ain't nobody here but us chickens</p>
</div>
<div class="section">
<h2>Old Modpacks</h2>
<div class="subcontainer">
<h3>botaniapack-1</h3>
<p><code>botania.mc.9iron.club</code></p>
<p><a href="/files/botaniapack-1.zip">Download</a> (MultiMC)</p>
<p>1.10.2, Forge 2511</p>
<p>A basic modpack with pretty much just Botania and Quark. Initially authored by KidiroInfiniti</p>
<p>World backups:
<ul>
<li>2020-04-08: <a href="/files/survival-2020-04-08-02-30-09.zip">survival</a>, <a href="/files/creative-2020-04-08-03-16-50.zip">creative</a></p></li>
</ul>
<p>Changelog:</p>
<ul>
<li>2020-07-29 - Removed Mo Creatures (fuck you, Carson)</li>
<li>2020-07-25 - Made pack a MultiMC importable zip</li>
<li>2020-03-31 - Calmed down Chance Cubes</li>
<li>2020-03-25 - Removed Shoulder Surfing, resolved server-client discrepencies</li>
<li>2020-03-13 - <em>Server-Side</em>: Added Dynmap, see link next above</li>
<li>2020-03-09 - Tweak server roles, bump chunk limit up to 10k</li>
<li>2020-03-07 - Tweak Wither Skeleton Tweaks to remove OP swords and make skulls easier to get</li>
<li>2020-02-29 - <em>Server-Side</em>: Updated Forge chunk limit per ticket to 10k (<a href="https://github.com/FTBTeam/FTB-Utilities/issues/504">#504</a>)</li>
<li>2020-02-28 - Added FTBUtils for chunk loading</li>
<li>2020-02-25 - Added Quark for TE piston movement, among other things</li>
<li>2020-02-23 - Initial release</li>
</ul>
</div>
<div class="subcontainer">
<h3>Magic Pack Redux</h3>
<p><code>magic-main.mc.9iron.club</code></p>
<p><a href="/files/magicpackredux.zip">Download</a> (MultiMC)</p>
<p>1.12.2, Forge 2673</p>
<p>The epic saga of the magic pack continues, this time with a version of Blood Magic where cutting yourself is actually a solution and a version of Thaumcraft that is dramatically more lackluster than its ancestors. Comes with other stuff, too, like Embers, Wizardry, Psi, and a whole host of other fun shit.</p>
<p>World Backups:</p>
<ul>
<li>2020-07-27: <a href="/files/magic-main-2020-07-27.tar.gz">survival</a></li>
</ul>
<p>Changelog: </p>
<ul>
<li>2020-06-24: Updated all of the things, switch to MultiMC pack style</li>
<li>2020-06-21: Re-released here for all to enjoy</li>
<li>????-??-??: Things happened, pack was actually developed</li>
</ul>
</div>
<div class="subcontainer">
<h3>Rotary Pack</h3>
<p><code>rotary-main.mc.9iron.club</code></p>
<p>Download: <a href="/files/rotarypack-client.zip">Client</a> (simple zip), <a href="/files/rotarypack-server.zip">Server</a></p>
<p>1.7.10, Forge 1614</p>
<p>A pack with a ton of Reika's mods and AE2.</p>
<p>World Backups:</p>
<ul>
<li>2020-07-23: <a href="/files/rotary-main-2020-07-23.tar.gz">survival</a></li>
</ul>
<p>Changelog:</p>
<ul>
<li>2020-07-07: Fixed cable anchor recipe on server</li>
<li>2020-06-01: Initial release</li>
</ul>
</div>
<div class="subcontainer">
<h3>FTB Ultimate Reloaded 1.8.0</h3>
<p><a href="https://www.curseforge.com/minecraft/modpacks/ftb-ultimate-reloaded/files/2746965">Download</a> (Curse)</p>
<p>1.12.2, Forge 2838</p>
<p>It's a remake of FTB Ultimate, and contains such wonderful things as Modular Powersuits and a complete lack of shitty expert mode stuff.</p>
<p>We're using pack version 1.8 instead of 1.9 because this was the last version that the pack authors made a server bundle for. Looks like 1.9 was mostly just patches anyway.</p>
<p>You'll also have to add the following mods:</p>
<ul>
<li><a href="https://www.curseforge.com/minecraft/mc-mods/gravestone-mod/files/2608278">Gravestone Mod</a></li>
</ul>
<p>Changelog:</p>
<ul>
<li>2020-04-24 - Enabled TechReborn power conversion</li>
<li>2020-04-23 - Added NetherPortalFix</li>
</ul>
</div>
<div class="subcontainer">
<h3>The 1.7.10 Magic Pack</h3>
<p><a href="/files/magicpack-1.zip">Download</a> (simple zip)</p>
<p>1.7.10, Forge 1614</p>
<p>Oh man, this one. We ended up going back to this pack at least 5(?) times because of how well it played. We were enthralled by the amount of content, especially the first time around. It's a heavy magic pack with Botania, Blood Magic, Thaumcraft, Witchery, and as many good addons for each as we could cram in there. It comes with numerous atmosphere mods, like World Tooltips, Dynamic Surroundings, SoundFilters, and more.</p>
<p>It's been thoroughly burned out for us, but it might be right up your alley. May it give you as much entertainment as it gave us.</p>
<p>A stock install ships with OptiFine, too, but it's not required.</p>
<p>As a 1.7.10 pack, the server will not intelligently disable client-side-only mods. Scour it before deploying.</p>
<p>Changelog:</p>
<ul>
<li>Not even fucking trying</li>
</ul>
</div>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</body>
</html>

72
minecraft/setup/index.php Normal file
View File

@ -0,0 +1,72 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<title>9iron - Modded Minecraft Setup</title>
</head>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>Setting Up Modded Minecraft</h2>
<p>This guide will set you up with the following:</p>
<ul>
<li>Java, because that's <em>still</em> a pain in the dick to set up</li>
<li>A new Minecraft game launcher to help organize modpacks</li>
<li>Whatever modpack we're playing</li>
</ul>
</div>
<div class="section" id="java">
<h2>1. Installing Java</h2>
<ol>
<li>Download <a href="https://sdlc-esd.oracle.com/ESD6/JSCDL/jdk/8u251-b08/3d5a2bb8f8d4428bbe94aed7ec7ae784/jre-8u251-windows-x64.exe?GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/8u251-b08/3d5a2bb8f8d4428bbe94aed7ec7ae784/jre-8u251-windows-x64.exe&BHost=javadl.sun.com&File=jre-8u251-windows-x64.exe&AuthParam=1593609737_aee69d42e03369a5aed61477a858b110&ext=.exe">the 64-bit edition of Java 8</a></li>
<li>Run it</li>
<li>You're done</li>
</ol>
</div>
<div class="section" id="multimc">
<h2>2. Installing MultiMC</h2>
<p>MultiMC is the launcher that we use to organize our modpacks. It has a number of features to make pack installation easier.</p>
<ol>
<li>Download <a href="https://multimc.org/#Download">MultiMC</a></li>
<li>Extract the zip file somewhere, like your desktop or Documents</li>
<li>Run <code>multimc.exe</code></li>
</ol>
<p>MultiMC will then run you through basic setup. You can accept the defaults, but change the following:</p>
<ul>
<li>On the page where it asks you to set up Java, set these values:</li>
<ul>
<li>Set "Maximum Memory Allocation" to 4096MB</li>
<li>Set "Minimum Memory Allocation" to 1024MB</li>
</ul>
</ul>
<p>After that, it'll drop you to the main screen and you can progress to the next step.</p>
</div>
<div class="section" id="pack">
<h2>3. Installing a Modpack</h2>
<p>Packs on the server, as of the time of writing this document, will from now on be provided in a format that's much easier to use with MultiMC. If, for whatever reason, you have to install one that <em>isn't</em>, flag down a moderator and have them show you. It's honestly a pretty involved process.</p>
<ol>
<li>Open MultiMC</li>
<li>Hit the "Add Instance" button in the upper-left</li>
<li>Pick the option on the left called "Import from Zip"</li>
<li>Copy the pack download link from the previous page and stick it in the URL</li>
<li>Click OK</li>
</ol>
<p>This will set you up with a nice, shiny new instance with all the mods ready to go. Double-click it to launch it.</p>
<p>If MultiMC prompts for it, be sure to set up your Minecraft account.</p>
</div>
<div class="section" id="joining">
<h2>4. Joining a Server</h2>
<p>This one's pretty easy, thankfully</p>
<ol>
<li>Copy the server URL (something like <code>modpack.mc.9iron.club</code>)</li>
<li>Open the game, go to Multiplayer, and click "Add Server"</li>
<li>Stick whatever name you want in the name field and paste the server URL in the "IP Address" field</li>
<li>Double-click it to join</li>
</ol>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</div>
</body>
</html>

32
posts/2020-02-28.php Normal file
View File

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<link rel="shortcut icon" href="/favicon.ico" />
<title>9iron - Midnight Musings</title>
</head>
<body>
<div class="container">
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>Midnight Musings</h2>
<p>It's really more like 5 in the morning, but whatever.</p>
<p>I'm honestly not entirely sure what I want out of this website. On the one thing, I could host a blog here, but on the other, I'm trying to do so by writing out the markup by fucking hand. Like c'mon, guy.</p>
<p>Perhaps it's just because it's way way late, perhaps it's because I didn't get enough sleep last night, perhaps a combination thereof, but I don't really care. I feel like there's charm in just writing it out in HTML and committing it, waiting for my box to pull it at noon.</p>
<p>But back to the point at hand: I have no clue what to do here. Like, it already aggregates links just fine. I've lost many an hour just making this place look good and all I use it for is a New Tab page that I break every fifth commit and ignore half the time anyway.</p>
<p>Perhaps it's the right idea to host a blog here. Already I feel a bit clearer-headed writing my thoughts out like this (even if it is 5AM and my eyes hurt). I've gotta figure a few things out, probably script the production of these posts and manage an RSS feed, but altogether I'm starting to warm up to the idea.</p>
<p>You wouldn't think it reading through this stream-of-consciousness garbage, but I used to be pretty good at writing. I used to be able to write very coherent papers with good pacing and pleasing verbiage, but most of those abilities have fallen off to the wayside since the only things I've written since are tweets and reddit posts. I've started to swear a lot more in place of using accurate wording to express my points-</p>
<p>God dammit, that's like the third time 29 Years has come on. Hang on.</p>
<p>There we go.</p>
<p>-which is possibly the worst fate for a writer. That and carpal tunnel, I suppose.</p>
<p>Yeah, this oughtta be the remedy for my prose that I've been looking for. Getting back into the rhythm of writing for fun has been on my backlog for so long and I've now got the opportunity to execute it. It'll be healthy, for sure.</p>
<p>But typing this out by hand sucks.</p>
<p>- Salt</p>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/sidebar.html';?>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</div>
</body>
</html>

32
posts/2020-02-29.php Normal file
View File

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<link rel="shortcut icon" href="/favicon.ico" />
<title>9iron - Nightly Blogpost Time</title>
</head>
<body>
<div class="container">
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>Nightly Blogpost Time</h2>
<p>I work second shift, currently, which puts me going to bed at like 4-5AM, sometimes 6-7 depending on my shift. Naturally, <em>no</em> sensible motherfucker is up at this hour, which gives me a lot of time to do nothing but write code and dump my thoughts.</p>
<p>I'm really enjoying just how much thoughtless (thoughtful?) garbage I'm able to throw at this terminal in a night. It really helps precipitate my thoughts into more solid opinions, for sure.</p>
<p>But enough about that.</p>
<p>Today was pretty nice. Played a lot of modded MC and wrote up a good few pages documenting my setup. At this rate, I'm probably gonna decomm the dokuwiki and just write it all out here. Looks a lot cleaner over here.</p>
<p>I feel like I'm starting to get the hang of minimalist webdev. Regardless, my current workflow is... messy, to say the least. I really shouldn't be dicking around knee-deep in HTML for every post when I could write a small preprocessor. I <em>really</em> need to sort out deployment, too. Currently, I just remote into the server and <code>sudo git pull</code> the site down every time I write a post, which could be hella automated. And then there's the entire concept of actually working on a feed, which is insanely difficult to do given my workflow.</p>
<p>See, one of the things I want this site to be (and not necessarily the child sites on this domain) is stateless. I want to be able to clone the repo to a webroot and launch Apache and just have my site. No fuss, no mess. Now I've already broken this paradigm by including modpacks in the webroot in the gitignore'd <code>/files</code> directory, but I'm willing to exclude 200MB binary files for the sake of sanity. But as such, I don't want anything on the box to generate the feed without my intervention.</p>
<p>I suppose I could automatically generate the feed with a script based on the contents of files in here. It shouldn't be too hard to just copy the contents of a couple tags over in a Python script. And I suppose with that I could just nail a new entry to the top of the file, make a commit, and push it alongside the post.</p>
<p>Maybe this workflow isn't too bad. Just needs a little glue is all.</p>
<div class="break"></div>
<p>I'm hoping that, once I get in the habit of making these posts, I'll have much clearer thoughts planned out. If I make it a habit, I'll start thinking over the course of the day what sort of things I want to include, what thoughts I want to present, etc. As such, I apologize in advance for the next like twenty of these fucking things. They're gonna read like ass, just like this one.</p>
<p>But that's okay. I'll improve.</p>
<p>- Salt</p>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/sidebar.html';?>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</div>
</body>
</html>

43
posts/2020-03-03.php Normal file
View File

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<title>9iron - Inflation in Modded Minecraft</title>
</head>
<body>
<div class="container">
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>Inflation in Modded Minecraft</h2>
<p>It's hard to believe Minecraft is 9 years old, and even harder to believe that <a href="https://howoldisminecraft1710.today/">the single biggest version for modded</a> is almost 6. There's been so much refinement in modding tools and mods themselves since; orders of magnitude more complexity, more things, <em>cooler</em> things. The dev for Factorio once said that a major inspiration for him was IC2. <em>It's that good</em>. But it's inflated to hell and back.</p>
<p>Let's take a popular mod as a baseline, as I feel that it best represents (and is the posterboy for) its power system: Thermal. A basic generator produces 80RF/t (unit power per unit time) and can handle a basic powered furnace and a Pulverizer simultaneously. With upgrades, some of the largest basic Thermal generator setups I've seen produce upwards of 20-80kRF/t, can power <em>damn</em> good furnaces, and are easily scaleable.</p>
<p>Thermal also provides an addon mod: Redstone Arsenal. This mod adds tools, armor, and weapons that consume RF to work. They're upgrades from diamond, can never break, but require infrastructure. It's a good system. The armor holds 800kRF per piece and consumes 200 per hit. Wearing four pieces of armor, this means it takes half a second of basic shitty coal generator power production to effectively add one durability point to your better-than-diamond armor.</p>
<p>Enter third-party addon mods. There exist many, <em>many</em> mods that produce and consume several orders of magnitude more power. Extreme Reactors can produce 100<em>M</em>RF/t without breaking a sweat, Draconic Evolution is notorious for its power usage (4MRF to conjure an overpowered arrow out of thin air) and invincibility armor, RFTools Dimensions provides user-controllable worlds and lets you buy resources that you should <em>never</em> allow a player to buy given that you have the power to support the place long enough to get your shit and get out, etc.</p>
<p>Now, these mods weren't all developed at the same time. Early on, the most insane mod you could get was Buildcraft, which had a Quarry. Then came IC2, which had cool stuff like a mining laser, OG powered armorsuits, and nuclear reactors that would blow your base a new asshole if you weren't careful. Thermal came along and eventually pioneered a new power system, AE followed and allowed for centralized storage and automation, etc.</p>
<p>Basically, what I'm getting at is that the modded Minecraft ecosystem has inflated insanely quickly. Power costs are somewhere between 3-9 (or 12!) orders of magnitude off of what the developers of those power systems originally intended. Resources in endgame ME systems can number in the millions. Damage has been affected too, but dramatically less so because functional overkill is really low in Vanilla and combat is uninteresting regardless.</p>
<p>What made me realize this is an ongoing playthrough with Botania. Just Quark and Botania. And Spartan Weapons because a friend wanted it, I guess. You move from generation on the order of a 16th of a Mana Pool to generation on the order of half a pool. It's just enough difference in stages to make you want to progress, and that's perfect.</p>
<p>The power curve also drops off really quickly. The highest damage sword Botania offers is only equivalent to diamond, same with the armor. Instead, it offers little odds and ends that are usually reserved for magic mods: quicker movement, health regen, second sight, potion effects, longer reach, and other unique trinkets. It adds swords that fire laser beams if you wait for the attack timer, making combat more interesting. In effect, what this means is that a botanist gathers much different power than would be obtained in the larger RF ecosystem.</p>
<p>I'm finding that, in the end, a pack with just Botania plays better than a pack with a bunch of RF tech mods. Botania has just as much focus on automation as a tech pack would (and with significantly more automation complexity, but that's a topic for another post) but doesn't throw out Vanilla balance. Combat remains challenging and engaging, the environment isn't trivialized by creative flight early on, and the endgame is powerful but grounded.</p>
<p>The point boils down to this: slow down and don't trivialize shit.</p>
<p>Every mod makes their stuff more powerful than the one that preceeded it to make sure people use it. What ends up happening is that earlier mods get shunted to the side because their numbers aren't big enough, Vanilla included, even if there's absolutely <em>no</em> need for that much power. So the solution is as such:</p>
<ul>
<li>Normalize power generation and consumption across machines in a pack</li>
<li>Put a cap on the player's power and ensure that it doesn't trivialize anything</li>
<li>If you do trivialize something, add something else to replace it</li>
<li>Create in-world challenges, like things to fight or places to explore and conquer</li>
<li>Omissions are just as powerful as inclusions in pack development</li>
<li>High resource costs do not justify breaking balance. No exceptions.</li>
</ul>
<p>Fuck Draconic Evolution.</p>
<p>Make more mob mods.</p>
<p>Somebody needs to do a combat overhaul.</p>
<p>Stop putting creative items at the ends of your packs.</p>
<p>- Salt</p>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/sidebar.html';?>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</div>
</body>
</html>

34
posts/2020-05-26.php Normal file
View File

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<title>9iron - An Update</title>
</head>
<body>
<div class="container">
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>An Update</h2>
<p>Just want to keep this site up to speed.</p>
<p>It's been months since my last post and and a lot has happened. I've landed a job as an actual sysadmin, made friends, eased stress, and suffered loss. It's been exhausting, which is why I haven't posted much.</p>
<p>On top of that, I have basically no social media presence so nobody reads these things anyway. I know I said I would do this for myself, but as it turns out, doing things for yourself is hard, and I'm no social butterfly by any metric.</p>
<div class="break"></div>
<p>Beyond personal shit, though, I have updated this site a bit. In no particular order:</p>
<ul>
<li><b>Gitea registrations are now open!</b> Bring your friends and encourage people to run around and write code and file bug reports and do whatever they do on git hosts. Commit bigass binary files and I'll kick your ass.</li>
<li>The website is undergoing a major redesign, and this probably won't even be its final form. There's a lot to do here; I'm no webdev.</li>
</ul>
<p>The Ansible repo that I use to manage 9iron has gotten significantly more complex and significantly more organized. I'm making good use of tags, making good inventory, making good playbooks, and more. Really there are only a few things I need to work on, like separating out roles a bit more and separating plays between installation, configuration, and removal. Oh, and getting ansible-pull figured out.</p>
<p>My weird obsession with statelessness is waning as I figure out backup scripts. Just need to hook into the S3 API and push weekly backups to cold buckets and we're good to start rolling with statefulness again. I realized really quickly that basically any deployment is going to have state.</p>
<p>I ported my tModLoader development environment to Linux and <em>almost</em> everything works. The only thing I can't quite figure out is how to get edit-and-continue to work with the Steam Runtime, but once either that's sorted or I trash my packageset with Terraria dependencies, I should be ready to pick Sutando Da back up. It's a mod I wrote a while back to try to add stands and it was entirely because I wanted to try to implement The World. Timestop actually works pretty well, surprisingly; I didn't think TML would have all the right hooks but it <em>definitely</em> does.</p>
<p>Still listening to The National.</p>
<p>Things are looking bright.</p>
<p>- Salt</p>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/sidebar.html';?>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</div>
</body>
</html>

31
posts/2020-07-28.php Normal file
View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<title>9iron - Dumb Shit</title>
</head>
<body>
<div class="container">
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>Dumb Shit</h2>
<p>Finally got a wild hare up my ass and redid the CSS. Again. Outside of that, only thing that's been going on is what feels like the collapse of my circle of friends. F. Oh, and Matrix I guess.</p>
<p>I'm not gonna get into the details of it here since this <em>is</em> a public blog and my friends <em>can</em> (read: don't) read it from time to time. Hell, nobody does. But regardless, what <em>did</em> happen feels unjust and I can't help but feel partially responsible for it. I know I wasn't the axeman, but being supportive isn't a virtue.</p>
<p>I'm still sorry, Sam.</p>
<div class="break"></div>
<p>Anyway, onto other happenings.</p>
<p>I now have a Matrix server with open registrations! Check out <a href="/matrix">the setup page</a> for details. At the time of writing, the tutorial still mentions Riot, but it's been rebranded to Element. Should still be the same loose set of steps.</p>
<p>I finally broke down and bought a Pinephone on like the 22nd, just waiting for that to arrive. From what I understand it and PMOS are actually in a pretty useable state, all things considered. Can't wait to have to hack together something to actually make a darn telephone call. At least I've got the know-how to automate whatever dumb bubblegum-and-duct-tape fix I brew up now.</p>
<p>As for the CSS, I'm sure you've probably noticed that a lot has changed. I'm trying to bring this place into more-or-less parity with the rest of my rice. I know it's not exactly the most productive pasttime, but it's therapeutic: just sit back, throw on some nice relaxing music, and write away. Helluva lot less frustrating than trying to diagnose an incomplete Nagios deployment (though I do still need to finish that, fuck). Everything's a bit boxier, a bit tighter, less round and weird, and ideally more useable.</p>
<p>I'm also finding it pretty hard to stay on-task with all this technical shit lately, think I might be getting burnt out. I mean, it's a third shift work-from-home position and all my other hobbies involve computers in some way; there's nothing else it could be. Whenever it may be, I need to take the next chance I get to jump away from all this for a while.</p>
<p>Mad about politics,</p>
<p>But what can you do.</p>
<p>- Salt</p>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/sidebar.html';?>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</div>
</body>
</html>

54
posts/index.php Normal file
View File

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<link rel="shortcut icon" href="/favicon.ico" />
<title>9iron - Posts</title>
</head>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>Posts</h2>
<p>Included is a list of all blog posts I've written here, latest first. I try to post as frequently as I can make an excuse to.</p>
<p>It's also got a <a href="/feed">feed</a> if you want it.</p>
<dl>
<?php
$dir = $_SERVER['DOCUMENT_ROOT']."/posts/";
$posts = scandir($dir, 1);
$ignore = array("index.php", "feed.php", ".", "..");
$extensions = array(".php", ".html", ".htm");
foreach ($posts as &$post) {
// See if it's a blacklisted file
if (in_array($post, $ignore)) {
continue;
}
$postlocation = $_SERVER['DOCUMENT_ROOT']."/posts/".$post;
$posturl = "/posts/".$post;
// Get the title
$title = "Title not available";
$summary = "Summary not available";
$dom = new DOMDocument();
if ($dom->loadHTMLFile($postlocation)) {
$xpath_section = new DOMXpath($dom);
$list = $dom->getElementsByTagName("title");
if ($list->length > 0) {
$title = $list->item(0)->textContent;
}
$list = $xpath_section->query('//div[@class="section"]//p');
if ($list->length > 0) {
$summary = $list->item(0)->nodeValue;
}
}
// Produce a list item
$post = str_replace($extensions, "", $post);
$title = str_replace("9iron - ", "", $title);
echo "<dt>$post:</dt><dd><a href=\"$posturl\">$title</a><br />$summary<br /></dd>";
}
?>
</dl>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</body>
</html>

4
src/common-footer.php Normal file
View File

@ -0,0 +1,4 @@
<div class="footer">
<p>Copyright &copy 2019-<?php echo date("Y"); ?> rehashedsalt. Distributed under the terms of the MIT License.</p>
<p><a href="https://git.9iron.club/salt/www">source</a> <a href="/">home</a></p>
</div>

20
src/common-header.php Normal file
View File

@ -0,0 +1,20 @@
<div class="header">
<a href="/" class="logocontainer">
<img class="logo" src="/logo.png" alt="some form of animu" width=384 height=384 />
<h1>9iron.club</h1>
</a>
<nav class="navbar">
<ul>
<a href="/posts"><li>Posts</li></a>
<a href="/about" class="nomobile"><li>About</li></a>
<a href="https://git.9iron.club"><li>Gitea</li></a>
<a href="https://nc.9iron.club"><li>Nextcloud</li></a>
<a href="/matrix"><li>Matrix</li></a>
<a href="https://cowfee.moe"><li>Pleroma</li></a>
<a href="https://monitor.9iron.club/d/b2thrkgMz/9iron-general?orgId=1"><li>Grafana</li></a>
<a href="/minecraft"><li>Minecraft</li></a>
<a href="/gmod"><li>Gmod</li></a>
<a href="/terraria"><li>Terraria</li></a>
</ul>
</nav>
</div>

BIN
src/logo.xcf Normal file

Binary file not shown.

106
styles/styles.css Normal file
View File

@ -0,0 +1,106 @@
/*
* styles.css
* Copyright (C) 2020 Vintage Salt
*
* Distributed under terms of the MIT license.
*/
/* GLOBALS */
:root {
--background-bright: #fcfcfc;
--background: #eff0f1;
--link: #2980b9;
--link-hover: #3daee9;
--shadow: 8px -5px #cececf;
--text: #31363b;
}
html {
overflow-y: scroll;
}
body {
background: var(--background);
color: var(--text);
font: "Roboto", sans-serif;
margin: 0;
}
/* TYPES */
/* a */
a {
color: var(--link);
text-decoration: none;
transition: .08s ease-in;
}
a:hover {
color: var(--link-hover);
}
/* code */
code {
background: var(--background);
border-radius: 3px;
font-size: 11pt;
padding: 2px 4px;
}
/* HIERARCHICAL CLASSES */
/* HEADER */
.header {
background: var(--background-bright);
box-shadow: 0 5px var(--shadow);
}
.logocontainer {
display: block;
padding: 1em 0;
text-align: center;
}
.logo {
border-radius: 50%;
height: auto;
vertical-align: middle;
margin: 0;
max-width: 64px;
}
.header h1 {
display: inline;
margin: 0;
}
.header nav ul {
list-style-type: none;
margin: 0;
padding: 0;
text-align: center;
}
.header nav ul li {
display: inline-block;
padding: 0.8em;
}
.header nav ul li:hover {
background: var(--link-hover);
color: var(--background);
transition: .08s ease-in;
}
/* CONTENT */
.content {
max-width: 48em;
margin: 2em auto;
padding: 1em;
}
/* FOOTER */
.footer {
font-size: 11px;
line-height: 1.3;
text-align: center;
}
.footer p {
margin: 0;
}
/* MOBILE */
@media only screen and (max-width: 600px) {
.nomobile {
display: none;
}
}

30
terraria/index.php Normal file
View File

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html>
<head>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-meta.php';?>
<link rel="shortcut icon" href="/favicon.ico" />
<title>9iron</title>
</head>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-header.php';?>
<div class="content">
<div class="section">
<h2>Terraria</h2>
<p>This game just keeps getting fucking updates, dude. Listed here are all the servers that we have going at the moment. We only ever have one playthrough going at a time, so if the main world is modded, so are the farming worlds.</p>
<p>The password is <code>dicks</code>. The password is always <code>dicks</code>.</p>
</div>
<div class="section">
<h2>Main World</h2>
<p><code>terraria.9iron.club:7777</code>, Master mode, Vanilla</p>
<p>The main world with the main base and all the NPCs.</p>
</div>
<div class="section">
<h2>Old Worlds</h2>
<ul>
<li><a href="/files/1401-farm-master1.wld">1401-farm-master1</a> - 2020-06-01</li>
</ul>
</div>
</div>
<?php include $_SERVER['DOCUMENT_ROOT'].'/src/common-footer.php';?>
</body>
</html>