Skip to content

Instantly share code, notes, and snippets.

Avatar

Tobias Bergkvist bergkvist

View GitHub Profile
@bergkvist
bergkvist / asserts.c
Last active Sep 5, 2022
Useful assertion macros in C which include debug information like file, line number and error message.
View asserts.c
// These require compiler support for statement expressions (https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html)
#define assert_ok(e) ({int x = (e); if (x < 0) { printf("%s:%d: ", __FILE__, __LINE__); fflush(stdout); perror(#e); abort(); } x;})
#define assert_ptr(e) ({void* p = (e); if (p == NULL) { printf("%s:%d: %s: NULL pointer returned\n", __FILE__, __LINE__, #e); abort(); } p;})
@bergkvist
bergkvist / watch.sh
Created Sep 4, 2022
Watch a file for changes using inotifywait and kill previous process if still running.
View watch.sh
#!/bin/sh
build_and_run() {
cc main.c -o main -Wall -Wextra
./main
}
trap 'kill "$p" >/dev/null 2>/dev/null' INT
build_and_run &
p=$!
@bergkvist
bergkvist / private-pypi-test.sh
Created Aug 26, 2022
Check if personal access token is working for private Python package registry using curl
View private-pypi-test.sh
#!/bin/sh
pip_index_url="example.com/pypi"
private_package="myprivatepackage"
personal_access_token="$1"
curl -k -s -L -o/dev/null -w"%{http_code}" --url "https://$pip_index_url/$private_package" --header "Authorization: Basic $(printf '%s' "$personal_access_token:" | base64)"
# To configure pip to use registry:
# export PIP_EXTRA_INDEX_URL="https://$personal_access_token@$pip_index_url"
@bergkvist
bergkvist / inline_cfunc.py
Last active Jul 19, 2022
Allow for writing C extensions inline in IPython
View inline_cfunc.py
from IPython.core.magic import register_cell_magic
import multiprocessing as mp
from functools import wraps
import importlib.util
import traceback
import sysconfig
import tempfile
import secrets
import sys
import os
@bergkvist
bergkvist / force-full-composition-pipeline.sh
Created Aug 3, 2021
Avoid vertical screen tears when you have an Nvidia Graphics card
View force-full-composition-pipeline.sh
#!/bin/bash
s="$(nvidia-settings -q CurrentMetaMode -t)"
MODE="${1:-On}"
if [[ "${s}" != "" ]]; then
s="${s#*" :: "}"
nvidia-settings -a CurrentMetaMode="${s//\}/, ForceCompositionPipeline=$MODE, ForceFullCompositionPipeline=$MODE\}}"
fi
View keybase.md

Keybase proof

I hereby claim:

  • I am bergkvist on github.
  • I am bergkvist (https://keybase.io/bergkvist) on keybase.
  • I have a public key ASBysYhr038dSRqnPQ75tCcXQcZsSK-JnXxg9XLlCJQ5Mgo

To claim this, I am signing this object:

@bergkvist
bergkvist / package-tracking.sol
Last active May 1, 2019
Package Tracking on Ethereum (Solidity)
View package-tracking.sol
pragma solidity ^0.5.0;
contract PackageTracking {
struct Place {
bool exists;
string country;
string location;
}
struct Package {