Skip to content

Instantly share code, notes, and snippets.

@manzt
manzt / my-ts-monorepo.md
Last active May 4, 2024 06:52
A minimal setup for TypeScript monorepo libraries

My Minimal TypeScript Monorepo Setup for ESM Libraries

After a deep dive looking up best practices for TypeScript monorepos recently, I couldn't find anything that suited my needs:

  1. Publish individual (typed) packages to NPM with minimal config.
  2. Supports fast unit testing that spans the entire project (e.g., via Vitest)
  3. Ability to have an interactive playground to experiment with the API in a real-time (e.g., via Vite)

Most solutions point to TypeScript project references,

@CrockAgile
CrockAgile / float_arcade.md
Last active December 27, 2022 00:47
Floating Point Arcade

Floating Point Arcade

![Twitter Follow][twitter]

A Shady Coin Toss

A shady game master approaches...

Hey there! You look like you would enjoy a good game of chance.
@CrockAgile
CrockAgile / earley_parsing_explained.md
Last active October 25, 2023 04:10
Earley Parsing Explained

Earley Parsing Explained

Twitter Follow

flowchart TD
0["sum"] --> 1["sum"]
1["sum"] --> 2["product"]
2["product"] --> 3["factor"]
3["factor"] --> 4["number"]
@ryanvazquez
ryanvazquez / setIntervalTimeout.js
Last active April 15, 2022 16:22
Simple utility for creating variadic intervals
// setIntervalTimeout sits somewhere between setTimeout and setInterval,
// allowing a finite or infinite number of fixed or variadic intervals.
// Returns a cleanup function to clear the current timeout.
// Note: IE does not support generators.
function setIntervalTimeout(callback, iterable, ...args){
if (!(Symbol.iterator in iterable)){
throw new Error(`Expected valid iterable. Received: ${iterable}.`);
@oleid
oleid / GTK4-RS-Windows-MSVC-notes.md
Last active April 10, 2023 00:48
Notes on how to build gtk4-rs projects on Windows with MSVC

I'm not really a windows user, but given the latest discussion on the rust subreddit, I thought I give using gtk4-rs on windows a try.

To set up my build environment, I followed this blog post:

https://www.collabora.com/news-and-blog/blog/2021/03/18/build-and-run-gtk-4-applications-with-visual-studio

That way, I successfully built and installed gtk4/master. And I can launch gtk4-demo. Building from the tag 4.3.0 didn't work for me, as the source of glib couldn't be checked out.

In the blog above, things got installed to C:\GNOME. I chose C:\GTK instead, but the name doesn't really matter.

@vivekhaldar
vivekhaldar / cut_silence.py
Last active May 6, 2024 08:59
Python script to cut out silent parts from a video. Uses moviepy.
#!/usr/bin/env python
#
# Based on a script by Donald Feury
# https://gitlab.com/dak425/scripts/-/blob/master/trim_silenceV2
# https://youtu.be/ak52RXKfDw8
import math
import sys
import subprocess
import os
@CatsMiaow
CatsMiaow / main.ts
Created June 12, 2020 05:26
Comlink example for Node.js with TypeScript
/**
* https://github.com/GoogleChromeLabs/comlink/blob/master/docs/examples/06-node-example/main.mjs
* https://github.com/GoogleChromeLabs/comlink/issues/476#issuecomment-642765445
* esModuleInterop to true in tsconfig.json compilerOptions.
*/
import { Worker } from 'worker_threads';
import * as comlink from 'comlink';
import nodeEndpoint from 'comlink/dist/umd/node-adapter';
import { cpus } from 'os';
@onlurking
onlurking / programming-as-theory-building.md
Last active April 19, 2024 22:31
Programming as Theory Building - Peter Naur

Programming as Theory Building

Peter Naur

Peter Naur's classic 1985 essay "Programming as Theory Building" argues that a program is not its source code. A program is a shared mental construct (he uses the word theory) that lives in the minds of the people who work on it. If you lose the people, you lose the program. The code is merely a written representation of the program, and it's lossy, so you can't reconstruct

@SevenOutman
SevenOutman / useAbortableAsyncCallback.js
Created August 14, 2019 10:13
React hook for async callback that automatically aborts on component unmount.
export default function useAbortableAsyncCallback(callback, inputs) {
const abortHandleRef = useRef();
const runAbortHandle = useCallback(() => {
if (abortHandleRef.current) {
abortHandleRef.current();
}
}, []);
@andy-thomason
andy-thomason / Genomics_A_Programmers_Guide.md
Created May 14, 2019 13:32
Genomics a programmers introduction

Genomics - A programmer's guide.

Andy Thomason is a Senior Programmer at Genomics PLC. He has been witing graphics systems, games and compilers since the '70s and specialises in code performance.

https://www.genomicsplc.com