Skip to content

Instantly share code, notes, and snippets.

View jessestricker's full-sized avatar

Jesse Stricker jessestricker

  • Hamburg, Germany
  • 05:45 (UTC +02:00)
View GitHub Profile
@jessestricker
jessestricker / README.md
Last active August 7, 2022 23:38
A collection of reusable bash code.

bashlib

A collection of reusable bash code.

  • log: logging library
@jessestricker
jessestricker / splash.bash
Last active August 3, 2022 16:38
Get a Random Wallpaper from Unsplash!
#! /usr/bin/env bash
set -e -u -o pipefail
# set options
COLLECTION_ID='317099' # Unsplash Editorial (aka Picture of the Day)
# set constants
IMG_RESOLUTION=$(xrandr --current | grep '\*' | awk '{print $1}' | sort | tail -n 1)
IMG_REMOTE_URI="https://source.unsplash.com/collection/${COLLECTION_ID}/${IMG_RESOLUTION}"
@jessestricker
jessestricker / greasemonkey_cppreference_setCppStandard.js
Created January 24, 2022 15:26
Greasemonkey Userscript to set the C++ standard on cppreference.com
// ==UserScript==
// @name Set C++ standard on cppreference.com
// @match https://en.cppreference.com/w/cpp/*
// @icon https://en.cppreference.com/favicon.ico
// ==/UserScript==
const DESIRED_CPP_STANDARD = "C++20";
function changeCppStandard(elem) {
// find option labeled with DESIRED_CPP_STANDARD
@jessestricker
jessestricker / do_purge.sh
Last active October 22, 2020 00:01
List and interactively purge all non-important APT packages.
#!/bin/bash
pkgs=$(./list_purgable.py)
for pkg in $pkgs; do
echo "$(tput setaf 6)purging $pkg$(tput sgr0)"
sudo apt purge "$pkg" || sudo apt-mark manual "$pkg"
done
@jessestricker
jessestricker / llvm-toolchain.cmake
Created May 23, 2020 01:02
CMake Toolchain File for LLVM, using Clang, libc++, lld and LTO
set(flags "-flto")
set(c_flags "")
set(cxx_flags "-stdlib=libc++")
set(link_flags "-fuse-ld=lld")
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_C_FLAGS_INIT "${c_flags} ${flags}")
set(CMAKE_CXX_FLAGS_INIT "${cxx_flags} ${flags}")
set(CMAKE_EXE_LINKER_FLAGS_INIT "${link_flags}")
@jessestricker
jessestricker / .clang-format
Last active February 8, 2020 15:21
Code Style for C and C++
BasedOnStyle: WebKit
Language: Cpp
Standard: Cpp11
UseTab: Never
ColumnLimit: 120
AlignEscapedNewlines: Left
NamespaceIndentation: All
@jessestricker
jessestricker / print_int.c
Created October 30, 2017 20:14
GSP: Print integer values with a specific scale
#include <stdint.h>
#include <stdio.h>
void print_int(const int64_t v) {
const bool neg = v < 0;
uint64_t pv = neg ? -v : v;
// convert into digit characters
static const size_t DIGITS_LENGTH = 19;
char digits[DIGITS_LENGTH];
@jessestricker
jessestricker / USN.md
Last active April 17, 2018 11:07
Unicode Syntax Notification — Specification

Unicode Syntax Notification — Specification

TODO: Add introduction paragraph.

1 Term Definitions

  • 1.1 Character: The smallest possible matchable unit. Defined as a Unicode Scalar Value.
  • 1.2 Property: A binary character property as defined by Unicode. It's value is a closed range of all characters, which have this property set to true.
@jessestricker
jessestricker / utf8.cpp
Created August 18, 2017 21:46
UTF-8 Decoding in C++
#include "utf8.hpp"
namespace {
template<class T>
struct range {
T low, high;
constexpr bool is_in(T value) const {
return low <= value && value <= high;
}
@jessestricker
jessestricker / cast_util.hpp
Last active November 16, 2016 23:21
Util Functions for Type Casting: pointer-to-pointer & enum-integral
#pragma once
#include <type_traits>
// ======== enum_cast
template <class E>
constexpr std::enable_if_t<std::is_enum<E>::value, std::underlying_type_t<E>> enum_cast(E e) noexcept
{
return static_cast<std::underlying_type_t<E>>(e);