Skip to content

Instantly share code, notes, and snippets.

View QuarticCat's full-sized avatar
🐱
Nyaaa~

QuarticCat QuarticCat

🐱
Nyaaa~
View GitHub Profile
@SchrodingerZhu
SchrodingerZhu / dom_tree.rs
Created January 19, 2023 18:29
Calculate domainance tree as fixed point
pub trait AssocSet<X, Y: Clone + Default> {
fn get(&self, target: X) -> Y;
fn set(&mut self, key: X, val: Y);
}
pub trait DFSGraph {
type Identifier: Clone + PartialEq + Eq + Copy;
type Set<Y>: AssocSet<Self::Identifier, Y>
where
Y: Clone + Default;
@pervognsen
pervognsen / shift_dfa.md
Last active September 19, 2025 07:53
Shift-based DFAs

A traditional table-based DFA implementation looks like this:

uint8_t table[NUM_STATES][256]

uint8_t run(const uint8_t *start, const uint8_t *end, uint8_t state) {
    for (const uint8_t *s = start; s != end; s++)
        state = table[state][*s];
    return state;
}

ZSH CheatSheet

This is a cheat sheet for how to perform various actions to ZSH, which can be tricky to find on the web as the syntax is not intuitive and it is generally not very well-documented.

Strings

Description Syntax
Get the length of a string ${#VARNAME}
Get a single character ${VARNAME[index]}
@kabili207
kabili207 / Rclone systemd service.md
Last active November 2, 2025 13:57
Rclone systemd user service

rclone systemd service

Preparation

This service will use the same remote name you specified when using rclone config create. If you haven't done that yet, do so now.

Next, create the mountpoint for your remote. The service uses the location ~/mnt/<remote> by default.

mkdir ~/mnt/dropbox
@MattPD
MattPD / cpp.std.coroutines.draft.md
Last active July 16, 2025 09:11
C++ links: Coroutines (WIP draft)

why doesn't radfft support AVX on PC?

So there's two separate issues here: using instructions added in AVX and using 256-bit wide vectors. The former turns out to be much easier than the latter for our use case.

Problem number 1 was that you positively need to put AVX code in a separate file with different compiler settings (/arch:AVX for VC++, -mavx for GCC/Clang) that make all SSE code emitted also use VEX encoding, and at the time radfft was written there was no way in CDep to set compiler flags for just one file, just for the overall build.

[There's the GCC "target" annotations on individual funcs, which in principle fix this, but I ran into nasty problems with this for several compiler versions, and VC++ has no equivalent, so we're not currently using that and just sticking with different compilation units.]

The other issue is to do with CPU power management.

@lucasad
lucasad / urlencode.zsh
Created September 7, 2013 09:40
ZSH urlencode
urlencode() {
setopt localoptions extendedglob
input=( ${(s::)1} )
print ${(j::)input/(#b)([^A-Za-z0-9_.\!~*\'\(\)-])/%${(l:2::0:)$(([##16]#match))}}
}