Skip to content

Instantly share code, notes, and snippets.

@donpark
donpark / DOM3D.js
Created March 27, 2024 10:41 — forked from OrionReed/dom3d.js
3D DOM viewer, copy-paste this into your console to visualise the DOM topographically.
// 3D Dom viewer, copy-paste this into your console to visualise the DOM as a stack of solid blocks.
// You can also minify and save it as a bookmarklet (https://www.freecodecamp.org/news/what-are-bookmarklets/)
(() => {
const SHOW_SIDES = false; // color sides of DOM nodes?
const COLOR_SURFACE = true; // color tops of DOM nodes?
const COLOR_RANDOM = false; // randomise color?
const COLOR_HUE = 190; // hue in HSL (https://hslpicker.com)
const MAX_ROTATION = 180; // set to 360 to rotate all the way round
const THICKNESS = 20; // thickness of layers
const DISTANCE = 10000; // ¯\\_(ツ)_/¯
@donpark
donpark / claude-journalist.md
Created March 26, 2024 16:25
claude-journalist prompts

get search terms to query SERP with (haiku)

You are a world-class journalist. Generate a list of 5 search terms to search for to research and write an article about the topic.

Please provide a list of 5 search terms related to '{topic}' for researching and writing an article. Respond with the search terms in a Python-parseable list, separated by commas.

select relevant urls among SERP results (haiku)

@donpark
donpark / test-1.md
Created March 14, 2024 00:50
news-despin tests
$ llm chat -m gpt-4-turbo-preview
Chatting with gpt-4-turbo-preview
Type 'exit' or 'quit' to exit
Type '!multi' to enter multiple lines, then '!end' to finish
> !multi

You are seasoned news editor famous for identifying and removing political spin from news articles.

@donpark
donpark / FramePort.js
Last active June 29, 2020 08:05
Frame postMessage helper with request/response support
/**
* Create port to an iframe element:
*
* const iframePort = new FramePort(iframeEl);
*
* Create port to parent window:
*
* const parentPort = new FramePort(window.parent);
*
* Post a message:
@donpark
donpark / scriptBaseUrl.js
Last active June 23, 2020 22:50
scriptBaseUrl
// This needs to run when script loads.
const scriptUrl = new URL(document.currentScript.src, document.baseURI).toString();
const scriptBaseUrl = scriptUrl.substr(0, scriptUrl.lastIndexOf('/'));
// To build URL relative to script file.
const wasm = `${scriptBaseUrl}/wasm/my.wasm`
@donpark
donpark / merge-example.ts
Last active March 3, 2020 20:22
Neat deep merge using TypeScript generics
import { mergeObjects } from "./merge";
const defaultOptions = {
userMedia: {
audio: true,
video: false,
channelCount: 1,
autoGainControl: true,
echoCancellation: true,
noiseSuppression: true
@donpark
donpark / VIA Porting Info.md
Created May 23, 2019 09:31 — forked from nooges/VIA Porting Info.md
Info on adding VIA Configurator support to a board using QMK

Making a board compatible with VIA Configurator

💥NOTE💥: Don't do this yet, all of this stuff is still 🚑💣BLEEDING EDGE💣🚑, and you will 🔪cut yourself🔪 badly if you choose to do it. Please wait for 🗿Wilba's QMK code to be refactored prior to pushing anything to QMK, as we don't want to end up with a bunch of different forks of the code.

So you've seen VIA Configurator in action, and you want to get this magic supported for your board?

There's two main steps:

  1. Add dynamic keymap support to keyboard in QMK
  2. Add layout to VIA
// Built with IMPACT - impactjs.org
(function (window) {
"use strict";
Number.prototype.map = function (istart, istop, ostart, ostop) {
return ostart + (ostop - ostart) * ((this - istart) / (istop - istart));
};
Number.prototype.limit = function (min, max) {
return Math.min(max, Math.max(min, this));
};
Number.prototype.round = function (precision) {
@donpark
donpark / hdlines.js
Created August 11, 2017 20:50 — forked from srt19170/hdlines.js
Hand-Drawn Lines Code (Javascript)
//
// Draw a line with the given curve, and then resample it
// to a new set of points. <step> is the distance to step
// along the line when taking a new point.
//
function drawInterpolate(svg, points, step, curve) {
curve = curve || d3.curveCatmullRom.alpha(1.0);
step = step || 1;
var lineFunc = d3.line()
.curve(curve)
@donpark
donpark / JSONFeed.ts
Last active March 16, 2021 10:23
Rough first cut of JSON Feed types and interfaces
/** JSON Feed TypeScript Declaration
* Spec Version: 1
*/
declare namespace JSONFeed {
const MIME_TYPE = 'application/json'
type DATEstring = RFC3339string
type IDstring = string