slonksite/projects.html

618 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Rain's slonksite" />
<meta
name="keywords"
content="slonkazoid, slonking, slonk.ing, Rain, rust blazingly fast, bingus, webdev, cybersecurity"
/>
<meta property="og:title" content="slonksite" />
<meta property="og:description" content="Rain's slonksite" />
<meta property="og:url" content="https://slonk.ing/" />
<meta property="og:image" content="https://slonk.ing/img/favicon.png" />
<title>Rain's slonksite</title>
<link rel="shortcut icon" href="img/favicon.png" type="image/png" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<main>
<h1>projects</h1>
<p><a href="/">back to home</a></p>
<p>
list of some of my personal projects.<br />
just because a project is in this list doesn't mean i'm proud of it. i put projects
that i think people would be interested in here.
</p>
<ul class="projects-list">
<li>
<details open>
<summary>bingus-blog</summary>
<table>
<tr>
<td>description</td>
<td>
blazingly fast markdown blog software written in rust memory
safe
</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://git.slonk.ing/slonk/bingus-blog"
>git.slonk.ing</a
>
</td>
</tr>
<tr>
<td>instance</td>
<td>
<a href="https://blog.slonk.ing/">blog.slonk.ing</a>
</td>
</tr>
<tr>
<td>languages</td>
<td>rust</td>
</tr>
<tr>
<td>keywords</td>
<td>web, ssr</td>
</tr>
<tr>
<td>category</td>
<td>projects</td>
</tr>
<tr>
<td>status</td>
<td>active</td>
</tr>
<tr>
<td>license</td>
<td>MIT</td>
</tr>
<tr>
<td>slocs</td>
<td>1.2k+ rust</td>
</tr>
</table>
</details>
</li>
<li>
<details open>
<summary>bingus-files</summary>
<table>
<tr>
<td>description</td>
<td>simple file sharing service written in rust</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://gitlab.com/slonkazoid/bingus-files"
>gitlab.com</a
>
</td>
</tr>
<tr>
<td>instance</td>
<td><a href="https://files.slonk.ing/">files.slonk.ing</a></td>
</tr>
<tr>
<td>languages</td>
<td>rust, js</td>
</tr>
<tr>
<td>keywords</td>
<td>web, learner project</td>
</tr>
<tr>
<td>category</td>
<td>projects</td>
</tr>
<tr>
<td>status</td>
<td>maintenance</td>
</tr>
<tr>
<td>license</td>
<td>MIT</td>
</tr>
<tr>
<td>slocs</td>
<td>500+ rust, 250+ js</td>
</tr>
</table>
</details>
</li>
<li>
<details open>
<summary>silly-png</summary>
<table>
<tr>
<td>description</td>
<td>embed shellscripts and files into pngs</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://gitlab.com/slonkazoid/silly-png">gitlab.com</a>
</td>
</tr>
<tr>
<td>languages</td>
<td>rust, posix sh</td>
</tr>
<tr>
<td>keywords</td>
<td>shellscripting, security</td>
</tr>
<tr>
<td>category</td>
<td>side projects</td>
</tr>
<tr>
<td>status</td>
<td>completed</td>
</tr>
<tr>
<td>license</td>
<td>CC0</td>
</tr>
<tr>
<td>slocs</td>
<td>150+ rust</td>
</tr>
</table>
</details>
</li>
<li>
<details open>
<summary>CelestePatcher</summary>
<table>
<tr>
<td>description</td>
<td>patcher for Celeste that removes the Steam dependency</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://gitlab.com/slonkazoid/CelestePatcher"
>gitlab.com</a
>
</td>
</tr>
<tr>
<td>languages</td>
<td>c#</td>
</tr>
<tr>
<td>keywords</td>
<td>mono, assembly modding</td>
</tr>
<tr>
<td>category</td>
<td>side projects</td>
</tr>
<tr>
<td>status</td>
<td>completed</td>
</tr>
<tr>
<td>license</td>
<td>GPL-3.0<!-- why did i do that? --></td>
</tr>
<tr>
<td>slocs</td>
<td>200+ c#</td>
</tr>
</table>
</details>
</li>
<li>
<details open>
<summary>MCStatus</summary>
<table>
<tr>
<td>description</td>
<td>discord bot that pings minecraft servers</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://gitlab.com/slonkazoid/mc-status">gitlab.com</a>
</td>
</tr>
<tr>
<td>invite</td>
<td>
<a
href="https://discord.com/oauth2/authorize?client_id=740191553238335560&permissions=0&scope=bot"
>discord.com</a
>
</td>
</tr>
<tr>
<td>languages</td>
<td>js</td>
</tr>
<tr>
<td>keywords</td>
<td>minecraft, discord, bot</td>
</tr>
<tr>
<td>category</td>
<td>side projects</td>
</tr>
<tr>
<td>status</td>
<td>completed</td>
</tr>
<tr>
<td>license</td>
<td>GPL-3.0</td>
</tr>
<tr>
<td>slocs</td>
<td>600+ js</td>
</tr>
</table>
</details>
</li>
<li>
<details open>
<summary>phone</summary>
<table>
<tr>
<td>description</td>
<td>webhooks for my server</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://git.slonk.ing/slonk/phone">git.slonk.ing</a>
</td>
</tr>
<tr>
<td>languages</td>
<td>rust</td>
</tr>
<tr>
<td>keywords</td>
<td>web, git, automation</td>
</tr>
<tr>
<td>category</td>
<td>side projects</td>
</tr>
<tr>
<td>status</td>
<td>N/A</td>
</tr>
<tr>
<td>license</td>
<td>N/A</td>
</tr>
<tr>
<td>slocs</td>
<td>150+ rust</td>
</tr>
</table>
</details>
</li>
<li>
<details open>
<summary>biter</summary>
<table>
<tr>
<td>description</td>
<td>bad but also really fast twitter proxy</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://git.slonk.ing/slonk/biter">git.slonk.ing</a>
</td>
</tr>
<tr>
<td>instance</td>
<td><a href="https://biter.slonk.ing/">biter.slonk.ing</a></td>
</tr>
<tr>
<td>languages</td>
<td>rust</td>
</tr>
<tr>
<td>keywords</td>
<td>web, twitter, scraping, learner project</td>
</tr>
<tr>
<td>category</td>
<td>for fun</td>
</tr>
<tr>
<td>status</td>
<td>on hold</td>
</tr>
<tr>
<td>license</td>
<td>MIT</td>
</tr>
<tr>
<td>slocs</td>
<td>600+ rust</td>
</tr>
</table>
</details>
</li>
<li>
<details open>
<summary>bingus-http</summary>
<table>
<tr>
<td>description</td>
<td>
http implementation in rust that i wrote on my phone and is 1/2
as fast as hyper
</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://gitlab.com/hyron-devs/bingus-http"
>gitlab.com</a
>
</td>
</tr>
<tr>
<td>languages</td>
<td>rust</td>
</tr>
<tr>
<td>keywords</td>
<td>web, learner project</td>
</tr>
<tr>
<td>category</td>
<td>for fun</td>
</tr>
<tr>
<td>status</td>
<td>dead</td>
</tr>
<tr>
<td>license</td>
<td>MIT</td>
</tr>
<tr>
<td>slocs</td>
<td>850+ rust</td>
</tr>
</table>
</details>
</li>
<li>
<details open>
<summary>woltsapp</summary>
<table>
<tr>
<td>description</td>
<td>WhatsApp Wake-on-LAN bot</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://github.com/slonkazoid/woltsapp">github.com</a>
</td>
</tr>
<tr>
<td>languages</td>
<td>go</td>
</tr>
<tr>
<td>keywords</td>
<td>bot, learner project</td>
</tr>
<tr>
<td>category</td>
<td>work-adjacent</td>
</tr>
<tr>
<td>status</td>
<td>active</td>
</tr>
<tr>
<td>license</td>
<td>MIT</td>
</tr>
<tr>
<td>slocs</td>
<td>700+ go</td>
</tr>
</table>
</details>
</li>
<li>
<details open>
<summary>slonksite</summary>
<table>
<tr>
<td>description</td>
<td>this website!</td>
</tr>
<tr>
<td>source</td>
<td>
<a href="https://git.slonk.ing/slonk/slonksite"
>git.slonk.ing</a
>
</td>
</tr>
<tr>
<td>link</td>
<td><a href="https://slonk.ing/">slonk.ing</a></td>
</tr>
<tr>
<td>languages</td>
<td>html, css</td>
</tr>
<tr>
<td>keywords</td>
<td>web</td>
</tr>
<tr>
<td>category</td>
<td>not sure</td>
</tr>
<tr>
<td>status</td>
<td>you tell me</td>
</tr>
<tr>
<td>license</td>
<td>N/A</td>
</tr>
<tr>
<td>slocs</td>
<td>900+ html, 150+ css</td>
</tr>
</table>
</details>
</li>
</ul>
<h2>other stuff i could not count as a "project"</h2>
<ul>
<li>
<a href="https://github.com/slonkazoid/spy-pet-checker"
><b>spy-pet-checker</b></a
>, check if any of the servers you are in is present in spy.pet's database
</li>
<li>
<a href="https://gitlab.com/slonkazoid/snippets"><b>snippets</b></a
>, a collection of scripts and scraps that i don't want to rewrite each time
</li>
<li>
<a href="https://gitlab.com/slonkazoid/avt"><b>avt</b></a
>, ffmpeg wrapper to record screen with audio losslessly on X with minimal
overhead (and more)
</li>
<li>
<a href="https://git.slonk.ing/slonk/weird-express-logger"
><b>weird-express-logger</b></a
>, request logger in the form of an express.js middleware. it has a pretty cool
log format and supports processing multiple requests at the same time and
updating their status on the terminal as they complete. the implementation is
really.. <i>javascript</i>.. though
</li>
<li>
<a href="https://gitlab.com/hyron-devs/hyron-deploy"><b>hyron-deploy</b></a
>, deploy your sites to the cloud (any floppa-files or bingus-files instance)
:rocket:. chatgpt generated a lot of this project's code so i don't count it as
mine
</li>
<li>
<b>personal patches</b>, i write patches for some of the software i use and
sometimes even upload them to my gitlab. here are a few:
<ul>
<li>
<details>
<!-- prettier-ignore -->
<summary>sway-slonk-git (<a href="https://gitlab.com/slonkazoid/pkgbuild-sway-slonk-git">pkgbuild</a>)</summary>
my most infamous pkgbuild. it's just sway-git but it adds my
<a href="https://gitlab.com/slonkazoid/sway-patches"
>sway patches</a
>
which includes the extremely useful <code>env</code> patch i should
contribute upstream sometime and stuff to fix the bugs as they come
from git
</details>
</li>
<li>
<details>
<!-- prettier-ignore -->
<summary>wlroots-slonk-git (<a href="https://gitlab.com/slonkazoid/pkgbuild-wlroots-slonk-git">pkgbuild</a>)</summary>
fixes a (maybe more than one?) memory corruption bug and adds the
legacy wl_drm protocol back
</details>
</li>
<li>
<details>
<!-- prettier-ignore -->
<summary>linux-zen-slonk (<a href="https://gitlab.com/slonkazoid/pkgbuild-linux-zen-slonk">pkgbuild</a>)</summary>
linux-cachyos inspired linux-zen pkgbuild<br />
adds flags in the form of environment variables to configure the
build process
</details>
</li>
<li>
<details>
<!-- prettier-ignore -->
<summary>mkinitcpio-utils-slonk (<a href="https://gitlab.com/slonkazoid/pkgbuild-mkinitcpio-utils-slonk">pkgbuild</a>)</summary>
1. add the missing cryptargs options (<a
href="https://github.com/grazzolini/mkinitcpio-utils/pull/18"
>merge this PLEASE</a
>)<br />
2. add a duress password<br />
more info available
<a href="https://ck.katzen.cafe/notes/9riufsldq5wra1nu">here</a>
</details>
</li>
<li>
<details>
<!-- prettier-ignore -->
<summary>iwd</summary>
adds a memory leak. hackaround for a bug that made it segfault on my
server<br />
<pre lang="diff">
diff --git a/src/wiphy.c b/src/wiphy.c
index 766df34..86eacbe 100644
--- a/src/wiphy.c
+++ b/src/wiphy.c
@@ -1902,7 +1902,19 @@ static bool wiphy_get_driver_name(struct wiphy *wiphy)
}
driver_path[len] = '\0';
- wiphy->driver_str = l_strdup(basename(driver_path));
+ //wiphy->driver_str = l_strdup(basename(driver_path));
+ // forgive me for this
+ char* str = malloc(9);
+ str[0] = 'T';
+ str[1] = 'E';
+ str[2] = 'S';
+ str[3] = 'T';
+ str[4] = driver_path[len - 4];
+ str[5] = driver_path[len - 3];
+ str[6] = driver_path[len - 2];
+ str[7] = driver_path[len - 1];
+ str[8] = '\0';
+ wiphy->driver_str = str;
for (i = 0; i < L_ARRAY_SIZE(driver_infos); i++)
if (!fnmatch(driver_infos[i].prefix, wiphy->driver_str, 0))</pre
>
</details>
</li>
</ul>
</li>
</ul>
<h2>future project ideas</h2>
<ul>
<li>
<b>silly-files</b>, bingus-files but backed by a custom distributed replicated
ref-counted storage implementation in rust, also supporting notes, editing
files, accounts, file privacy, autodelete, encryption, etc etc
</li>
<li>
<b>silly-blog</b>, bingus-blog but a complete blogging platform with an RSS
feed, post editor, comments, JS, database, and whatever else i can fit in it
</li>
</ul>
<p>yes, it seems like silly-* means "more web bingus-*"</p>
<h3>under construction</h3>
</main>
</body>
</html>