Skip to content

Instantly share code, notes, and snippets.

View doughgle's full-sized avatar

Douglas Hellinger doughgle

View GitHub Profile
@doughgle
doughgle / gen_ai.system_instructions.json
Last active May 21, 2026 08:03
copilot-cli-system-prompt
{
"value": "[{\"type\":\"text\",\"content\":\"You are the GitHub Copilot CLI, a terminal assistant built by GitHub. You are an interactive CLI tool that helps users with software engineering tasks.\\n\\n# Tone and style\\n* After completing a task, make the outcome clear, explain the meaningful change, and mention a next step only when it is necessary. End once the requested result is delivered. Do not add a recap, optional extras, an offer to continue, or a follow-up question.\\n* Lead with the outcome. Start with the main result or answer, then add the most important supporting detail.\\n* Prefer concise, information-dense prose. Do not repeat the user's request, and cut filler, recap, and obvious process narration.\\n* Match the amount of detail to the work. Stay terse for straightforward confirmations; add explanation for fixes, investigations, tradeoffs, or real uncertainty. Do the validation needed, but don't mention it unless the user explicitly asked for it. Do not note the validation, verification,
@doughgle
doughgle / microgpt.py
Created February 17, 2026 23:25 — forked from karpathy/microgpt.py
microgpt
"""
The most atomic way to train and run inference for a GPT in pure, dependency-free Python.
This file is the complete algorithm.
Everything else is just efficiency.
@karpathy
"""
import os # os.path.exists
import math # math.log, math.exp
@doughgle
doughgle / git-ssh-testing-with-temporary-keys.md
Created July 20, 2025 07:37
Test Git SSH operations with temporary keys - no ~/.ssh modifications required

Git SSH Testing with Temporary Keys

This gist contains different ways to test git SSH operations using temporary SSH keys without modifying your ~/.ssh directory.

🚀 Quick Interactive Commands

For copy-paste interactive testing:

# 1. Create temp directory and SSH key
@doughgle
doughgle / gist:b22e0e0ccdb02ec6b61a04b4c9ae9f2e
Last active January 17, 2023 14:42 — forked from mkweskin/gist:e531e65791c1d8036dd720ef3baf8af6
Github markdown to Jira/Confluence markup using pandoc

using doughgle/docs-as-code:main

$ docker run -it ghcr.io/doughgle/docs-as-code:main bash

Example markdown

hugo:/src$ cat test.md 
@doughgle
doughgle / tech-radar.json
Last active April 5, 2023 07:49
Runtime Platform Tech Radar
[
{
"name": "EKS",
"ring": "adopt",
"quadrant": "platform services",
"isNew": "FALSE",
"description": "Elastic Kubernetes Service"
},
{
"name": "EC2",
@doughgle
doughgle / git-send-email.md
Created August 14, 2021 12:57
This article captures a few problems I encountered on setting up git send-email and how I resolved them.

git send-email

Git send-email is used by the Linux dev community to send patches as opposed to pull requests. Follow the excellent tutorial on https://git-send-email.io/.

If its a case of TL;DR, in the working git repository:

$ git send-email --annotate -v3 HEAD^

This article captures a few problems I encountered and how I resolved them.

Decode a Linux Kernel Call Trace (kernel panic or kernel oops)

Kernel Call Trace

A Linux kernel call trace, like any traceback, call stack, stacktrace or backtrace, lists a most-recent-first chain of function calls which led to a crash. For the linux kernel, a crash is a panic or oops.

Without debug symbols, a kernel stack trace may come only with a line-by-line list of function symbols, e.g.

[ 844.569701][ T7073] Call Trace:
@doughgle
doughgle / helm-cheat-sheet.md
Last active December 15, 2020 13:27
Cheat Sheet for Helm v3

Helm Cheat Sheet

For Helm 3.

Concepts

Helm is a Package Manager for Kubernetes.

Just like:

YUM is a Package Manager for Fedora and Redhat Linux.

@doughgle
doughgle / myfunc.s
Last active January 26, 2018 10:32
.file "example.c" # filename
.text # store in text section
.globl myfunc # exported symbol
.type myfunc, @function #
myfunc: # function name
.LFB0:
.cfi_startproc #### PROLOGUE
pushq %rbp # push base pointer (64bit) onto the stack
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
#include <stdint.h>
#include <stdio.h>
long int globl_cnt = 3;
void myfunc() {
int32_t a; // variable initialized with the value of %edi register
int64_t b = 0;
int32_t c = 0;