Skip to content

Instantly share code, notes, and snippets.

View dustinknopoff's full-sized avatar

Dustin Knopoff dustinknopoff

View GitHub Profile
// Lowercase letters start at 97 => 1
// Max is 122 for z => 26
pub fn ascii_sum(string: &'static str) -> u32 {
string.bytes().map(|char| {
(char - 96) as u32
}).sum::<u32>()
}
@dustinknopoff
dustinknopoff / migrateToTaxonomies.ts
Last active January 8, 2023 19:24
This is written expecting to be in the top level directory of a Zola project and can be run `deno run --allow-read=. --allow-write=. migrateToTaxonomies.ts`
import {
extract,
test as containsFrontmatter,
} from "https://deno.land/std@0.170.0/encoding/front_matter/any.ts";
import { walk } from "https://deno.land/std@0.170.0/fs/mod.ts";
import { stringify } from "npm:yaml@2.1.3"
async function writeFile(path: string, attrs: { [key: string]: any }, body: string) {
await Deno.writeTextFile(path, `---\n${stringify(attrs)}\n---\n\n${body}`)
}
@dustinknopoff
dustinknopoff / Brewfile
Created December 29, 2022 10:44
public version on 2022-12-29
tap "alexanderwillner/tap"
tap "apparition47/tap"
tap "charmbracelet/tap"
tap "cuelang/tap"
tap "dagger/tap"
tap "dart-lang/dart"
tap "dokku/repo"
tap "earthly/earthly"
tap "elastic/tap"
tap "federico-terzi/espanso"
const express = require('express');
const bodyParser = require('body-parser');
const ngrok = require('ngrok');
const axios = require('axios');
const crypto = require('crypto');
const PORT = 3000;
const app = express();
const passcode = crypto.randomBytes(48).toString('hex');
@dustinknopoff
dustinknopoff / walkPointer.ts
Created July 24, 2022 08:23
Simple JSON pointer walking on javascript objects with no error handling. A super simplified version of https://github.com/json-schema-spec/json-pointer-typescript
export const walkPointer = (object: { [key: string] }, pointer: string) => {
let [, ...tokens] = pointer.split("/")
tokens = tokens.map((token) => {
return token.replace(/~1/g, "/").replace(/~0/g, "~");
})
let instance = object
for (const token of tokens) {
instance = instance[token]
}
return instance
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let g:python2_host_prog = '/usr/local/bin/python'
let g:python3_host_prog = '/usr/local/bin/python3'
let &packpath = &runtimepath
" Linter
" only lint on save
let g:ale_lint_on_text_changed = 'never'
let g:ale_lint_on_insert_leave = 1
let g:ale_lint_on_save = 0
/*
Based off of
http://www.arduino.cc/en/Tutorial/Tone
*/
#include "pitches.h"
#include <Adafruit_NeoPixel.h>
type Day28 = '01'|'02'|'03'|'04'|'05'|'06'|'07'|'08'|'09'|10
|11|12|13|14|15|16|17|18|19|20
|21|22|23|24|25|26|27|28;
type Month = '01'|'02'|'03'|'04'|'05'|'06'|'07'|'08'|'09'|'10'|'11'|'12'
type Digit = 0|1|2|3|4|5|6|7|8|9;
type Year = `${19 | 20}${Digit}${Digit}`
type IsDivide4<S extends string | number> = `${S}` extends '0' | '4' | '8' ? true :
`${S}` extends `${number | ''}${`${0|2|4|6|8}${0|4|8}`|`${1|3|5|7|9}${2|6}`}` ? true : false;
type IsLeapYear<S extends string | number> =

Requirements:

// music.setVolume(100)
enum PlaneState {
Idle, // No Sound
Liftoff, // playTone Note.D
Cruising, // playTone Note.CSharp
Left, // playTone Note.G
Right, // playTone Note.B
Turbulence, //music.playMelody("G B C C -- F F G", 300)
Landing, //playTone Note.C