Skip to content

Instantly share code, notes, and snippets.

View unascribed's full-sized avatar

Una Kearney unascribed

View GitHub Profile
@unascribed
unascribed / BOTS.md
Last active January 25, 2024 14:25

Sleeping Town Bot Policy

Bot accounts are welcmoe, provided they follow these rules:

  1. All Markov bots or other generative bots that may output nonsense must always post unlisted, or with a CW.
  2. If a bot will post public posts, it must not post any more frequently than once an hour and must be clearly marked as a bot in its display name.
  3. Bots must never mention other users unless the mentioned user has initiated it. For such user-initiated posts, any rate limits may be ignored.
  4. The bot's operator must be included in its description or a pinned post.
  5. Top-level unlisted or followers-only posts must not be made any more frequently than every 15 minutes.
    • Exception: Now-playing or scrobble bots may post as frequently as once a minute.
  6. If a bot incorporates data from posts made by another user that are not directed at the bot, the bot must be following that user.
/*
* The MIT License
* Copyright 2018 Una Thompson
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
package com.unascribed.materialpicker;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public enum MaterialColor {
RED("Red",
0xFF_F44336,
import java.nio.ByteBuffer;
import org.lwjgl.BufferUtils;
import org.lwjgl.opengl.GL11;
public class Stipple {
private static final ByteBuffer buf = BufferUtils.createByteBuffer(128);
private static void stipple(long[] arr) {
/*
* To the extent possible under law, the author has dedicated all copyright
* and related and neighboring rights to this software to the public domain
* worldwide. This software is distributed without any warranty.
*
* See <http://creativecommons.org/publicdomain/zero/1.0/>
*/
package com.unascribed.random;
package com.unascribed.chipper;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.opengl.GL43.*;
import static org.lwjgl.system.MemoryUtil.*;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
package com.unascribed.chipper.client;
import static org.lwjgl.glfw.GLFW.*;
import java.util.Arrays;
import java.util.PrimitiveIterator;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import it.unimi.dsi.fastutil.ints.IntListIterator;
#!/bin/bash
if [[ "$1" == "-h" || "$1" == "-?" || "$1" == "--help" ]]; then
(
echo 'copycat: copy stdin or files specified on command line to Wayland and/or X clipboard'
echo 'performs automatic mimetype detection like wl-copy via file under X'
echo 'usage:'
echo ' copycat: copy stdin to clipboard'
echo ' copycat <-h|--help|-?>: display usage help'
echo ' copycat <files...>: concatenate each file, then copy to clipboard'
echo
@unascribed
unascribed / org.dimdev.rift.json
Last active February 7, 2025 01:21
MultiMC Rift 1.13.2 JSON that works in 2025
{
"+tweakers": [
"org.dimdev.riftloader.launch.RiftLoaderClientTweaker"
],
"formatVersion": 1,
"+libraries": [
{
"name": "com.github.unascribed:Rift:FINAL",
"url": "https://jitpack.io/"
},
@unascribed
unascribed / randomUUID.js
Last active October 5, 2023 11:35
A simple and readable way to generate valid v4 UUIDs in JavaScript. CC0 https://creativecommons.org/publicdomain/zero/1.0/
function randomUUID() {
return randhex(8) + "-" + randhex(4) + "-4" + randhex(3) + "-" + choice(["8", "9", "a", "b"]) + randhex(3) + "-" + randhex(12);
}
let scratchTarr = new Uint32Array(1);
function choice(arr) {
crypto.getRandomValues(scratchTarr);
return arr[Math.floor(scratchTarr[0]%arr.length)]
}
function randhex(count) {
crypto.getRandomValues(scratchTarr);