Skip to content

Instantly share code, notes, and snippets.

View jasonsperske's full-sized avatar

Jason Sperske jasonsperske

View GitHub Profile
@jasonsperske
jasonsperske / claude-dl.py
Created November 11, 2024 10:38
A simple command line utility that takes one or more published Claude artifacts URLs and creates the files described in their code blocks automatically
# Adapted from https://claude.site/artifacts/adb7d26c-d81e-4df8-a8ba-d33ae4747a16
# very slight changes to some regexes
import argparse
import os
import re
from typing import List, Dict, Optional, Tuple
import requests
from bs4 import BeautifulSoup
@jasonsperske
jasonsperske / merge.js
Last active October 16, 2024 01:35
Array Merge Util (takes an ordered array and creates a new array with the value that overlap included while the values outside are left alone)
const src = [3, 4, 8, 9]
/**
* @param {number[]} input
* @param {number[]} source
* @returns
*/
function update(input, source) {
if (input.length === 0) return [...source]
if (source.length === 0) return [...input]
@jasonsperske
jasonsperske / mcp.sh
Created October 13, 2024 23:37
Minecraft MCP commands
# Remove the "downloads" object from 1.20.2_mcp.json
jq ".downloads = {}" 1.20.2_mcp.json | sponge 1.20.2_mcp.json
# update the "id" to match folder name
jq ".id = '1.20.2_mcp'" 1.20.2_mcp.json | sponge 1.20.2_mcp.json
# With the base files extrcted into a folder called `base` run the follwing command:
@jasonsperske
jasonsperske / dumb.js
Last active October 11, 2024 17:56
Dumb Number prototype overloading
Number.prototype.milliseconds = function() { return this }
Number.prototype.seconds = function() { return Number.prototype.milliseconds.call(this * 1000) }
Number.prototype.minutes = function() { return Number.prototype.seconds.call(this * 60) }
Number.prototype.hours = function() { return Number.prototype.minutes.call(this * 60) }
Number.prototype.days = function() { return Number.prototype.hours.call(this * 24) }
Number.prototype.weeks = function() { return Number.prototype.days.call(this * 7) }
Number.prototype.fortnights = function() { return Number.prototype.weeks.call(this * 2) }
Number.prototype.in = function() {
const that = this;
@jasonsperske
jasonsperske / cookies.js
Last active May 20, 2022 17:49
A super tiny function that converts the document.cookie to an object
function cookieMap() {
return document.cookie
.split('; ')
.map((c) => Object.fromEntries([c.split(/=(.*)/s).slice(0, 2)]))
.reduce((a, v) => ({ ...a, ...v }), {});
}
@jasonsperske
jasonsperske / AUTOEXEC.BAT
Created March 14, 2021 22:16
P166 Boot files
@ECHO OFF
@REM SET SOUND=C:\SB16
@REM SET BLASTER=A220 I5 D1 H5 P330 T6
@REM SET MIDI=SYNTH:1 MAP:E
@REM SET CTCM=C:\SB16
@REM C:\SB16\DIAGNOSE /S /W=C:\WINDOWS
@REM C:\SB16\MIXERSET /P /Q
@REM C:\SB16\CTCU.EXE /S /W=C:\WINDOWS
PROMPT $p$g
PATH C:\NET;C:\WINDOWS;C:\DOS;C:\XTGOLD;C:\TC\BIN;C:\WP51;C:\SOFTMPU;C:\MIDIEMU
@jasonsperske
jasonsperske / Examples.java
Last active December 23, 2018 20:00
An Amazon Technical interview question I received this year. Write a function that when given a map (a 2-dimensional grid where 1 is a walk-able square, 0 is an impassable square and 9 is the destination) and starting at the top left (x:0, y:0) finds the shortest path to the destination
import java.util.Arrays;
public class Examples {
public static void main(String ... args) {
Solution s = new Solution();
System.out.print("Example problem: ");
System.out.println(s.shortest(3, 3,
Arrays.asList(
Arrays.asList(1, 0, 0),
@jasonsperske
jasonsperske / hue.js
Created November 20, 2017 05:23
HueSegments
//An example of this can be seen at https://jsfiddle.net/uLzwv8mx/
function HueSegments(steps) {
var segments = []
var step
var increment = 200/steps
for(step = 0; step < steps; step++) {
segments.push("hsla("+(Math.floor(increment*step))+", 100%, "+(step % 2 == 0 ? "75" : "50")+"%, 1)")
}
return segments
}
@jasonsperske
jasonsperske / deepSet.js
Last active November 9, 2021 17:46
Setting a deep JSON property with one call, a answer to a question on StackOverflow that was deleted before I could post it https://stackoverflow.com/questions/47064851/read-or-init-js-variable-to-avoid-cannot-read-property-of-undefined#47064851
function deepSet(keys, value) {
return keys.split('.')
.reverse()
.reduce((acc, current) => ({
[current]: acc
}), value);
}
//You can use it like this:
console.log(JSON.stringify(deepSet('foo.name.social.twitter.followers', 100)))
@jasonsperske
jasonsperske / InstallCert.java
Created September 28, 2017 22:20
InstallCert.java Posted at 22:28 Oct 09, 2006 by Andreas Sterbenz
/*
* Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*