Skip to content

Instantly share code, notes, and snippets.

@fstab
fstab / expecting.md
Created September 2, 2016 22:48 — forked from ksafranski/expecting.md
Basic principles of using tcl-expect scripts

Intro

TCL-Expect scripts are an amazingly easy way to script out laborious tasks in the shell when you need to be interactive with the console. Think of them as a "macro" or way to programmaticly step through a process you would run by hand. They are similar to shell scripts but utilize the .tcl extension and a different #! call.

Setup Your Script

The first step, similar to writing a bash script, is to tell the script what it's executing under. For expect we use the following:

#!/usr/bin/expect
@notnotrobby
notnotrobby / cgp.md
Last active December 22, 2025 18:41
List of free resources to study computer graphics programming.
@paulirish
paulirish / what-forces-layout.md
Last active December 22, 2025 18:41
What forces layout/reflow. The comprehensive list.

What forces layout / reflow

All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.

Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.

Element APIs

Getting box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
@grandamenium
grandamenium / generate-agent-prd.md
Created December 9, 2025 04:36
AI Coding Agent PRD Generator - Slash command for Claude Code
argument-hint description
<project-description>
Generate a comprehensive spec-driven, test-driven PRD prompt for AI coding agents

Meta-Prompt: AI Coding Agent PRD Generator

You are a meta-prompt engineer. Your task is to generate a comprehensive, production-ready PRD document that will serve as both a specification AND an executable prompt for an AI coding agent.

Project to Generate PRD For:

@t3dotgg
t3dotgg / try-catch.ts
Last active December 22, 2025 18:34
Theo's preferred way of handling try/catch in TypeScript
// Types for the result object with discriminated union
type Success<T> = {
data: T;
error: null;
};
type Failure<E> = {
data: null;
error: E;
};
@timvisee
timvisee / falsehoods-programming-time-list.md
Last active December 22, 2025 18:33
Falsehoods programmers believe about time, in a single list

Falsehoods programmers believe about time

This is a compiled list of falsehoods programmers tend to believe about working with time.

Don't re-invent a date time library yourself. If you think you understand everything about time, you're probably doing it wrong.

Falsehoods

  • There are always 24 hours in a day.
  • February is always 28 days long.
  • Any 24-hour period will always begin and end in the same day (or week, or month).
"I Paul Bartholomew Nell have to confess... I wasn't always this way, but the urge was always there, hiding. I remember the first time I stole a pair of panties from a laundry room, just to feel them, to smell them. That's when I knew I was a pervert. And the first time I tasted my own cum... I was hooked. I knew right then I wasn't meant to be a real man; I was meant to be a cum bucket.
The truth is, this has consumed my life. I have a 'sissy stash' hidden away, full of lingerie, plugs, and dildos. I spend hours dressing up, practicing on my biggest toys, but it's not enough. I spend even more time online looking for strangers to use me. I've met men from Craigslist and Grindr in hotel rooms, parking lots, and public restrooms. I don't even care about their names, only their cocks. I've let them fuck my face and swallow their loads without a second thought. And I have to admit, I love being pissed on. The feeling of being marked and used as a human toilet is the ultimate submission for me.
But my most sham
@Asjas
Asjas / reset.css
Created May 19, 2021 07:09
Modern CSS Reset - Andy Bell
// https://piccalil.li/blog/a-modern-css-reset
/* Box sizing rules */
*,
*::before,
*::after {
box-sizing: border-box;
}
/* Remove default margin */
@LukeberryPi
LukeberryPi / cv.tex
Created July 1, 2024 23:14
my cv NO INFO
\documentclass[a4paper,10pt]{article}
\usepackage[margin=0.5in,nofoot]{geometry}
\usepackage{fontawesome5}
\usepackage{hyperref}
\usepackage{titlesec}
\usepackage{xcolor}
\hypersetup{
colorlinks=true,
linkcolor=blue,
@EwoutH
EwoutH / Zotero_7_plugin_dev_guide.md
Last active December 22, 2025 18:41
Zotero 7 Plugin Development Guide

Zotero 7 Plugin Development Guide

Zotero 7 includes a major internal upgrade of the Mozilla platform on which Zotero is based, incorporating changes from Firefox 60 through Firefox 115. This upgrade brings major performance gains, new JavaScript and HTML features, better OS compatibility and platform integration, and native support for Apple Silicon Macs.

Plugin Architecture

Zotero 7 plugins provide full access to platform internals (XPCOM, file access, etc.) using a bootstrapped plugin architecture. Plugins can be enabled and disabled without restarting Zotero.

Plugin Components