Skip to content

Instantly share code, notes, and snippets.

View multiplemonomials's full-sized avatar

Jamie Smith multiplemonomials

  • USC Rocket Propulsion Lab
View GitHub Profile
@multiplemonomials
multiplemonomials / mbed_create_distro.cmake
Last active February 2, 2021 01:56
Mbed OS CMake script to let you create multiple targets but build the OS only once
# Patched version of the mbed function.
# (replaced "target_link_options(mbed-core INTERFACE" with "target_link_options(${target} PRIVATE")
# Can be removed once #14199 is merged
function(mbed_generate_options_for_linker_patched target definitions_file)
set(_compile_definitions
"$<TARGET_PROPERTY:${target},COMPILE_DEFINITIONS>"
)
# Remove macro definitions that contain spaces as the lack of escape sequences and quotation marks
# in the macro when retrieved using generator expressions causes linker errors.
@multiplemonomials
multiplemonomials / FindAsn1scc.cmake
Last active June 7, 2020 21:47
CMake module to find and use asn1scc
# ----------------------------------------------
# CMake module for the ASN1 Semantix Compiler (asn1scc)
#
#
# This module defines:
# Asn1scc_EXECUTABLE - path to asn1scc executable
# Asn1scc_COMMAND - command needed to run asn1scc (can be a list)
# Asn1scc_WORKS - whether asn1scc works
# Asn1scc_VERSION - Numeric version of asn1scc
# Asn1scc_FOUND - whether or not asn1scc was found
#!/bin/bash
# This script will set your Linux desktop to use a custom screen resolution.
# Set your resolution in the variables below, and then run the script each time your VM boots.
# Bam! No more annoying issues with your VM screen being too big or too small!
#
# Author: CP Jamie, with some help from StackOverflow
width=1280
height=1024
refreshrate=60
@multiplemonomials
multiplemonomials / alu_logic_tester.py
Last active September 17, 2019 00:41
Test suite for ALU logic equations for EE 457 Lab 3
import numpy as np
NUM_BITS = 4
def bitwise_not(num:int, width=None):
"""Python doesn't have bitwise not so we have to improvise using XOR"""
if width is None:
width = num.bit_length() + 1
@multiplemonomials
multiplemonomials / Preferences.sublime-settings
Created August 7, 2018 21:33
My Sublime Text config file
{
"color_scheme": "Packages/Color Scheme - Default/Monokai.sublime-color-scheme",
"font_size": 10,
"ignored_packages":
[
"Vintage"
],
// show unsaved tabs with a blue line instead of just the easy-to-miss circle close button
"highlight_modified_tabs": true,
@multiplemonomials
multiplemonomials / my-rc.sh
Last active May 7, 2018 09:34
Bash/Zsh rc file functions to make life easier
#options that you always want but are not the default for some reason
alias rm='rm -rf'
alias cp='cp -a'
alias mkdir='mkdir -p'
alias fgrep='grep -RIn'
# disable Oh My Zsh history sharing
unsetopt share_history
# get list of all CMake scripts in a folder
@multiplemonomials
multiplemonomials / RandomAccessBuffer.java
Last active March 7, 2018 10:45
Java collection that implements a fixed-length buffer where adding a new element deletes the oldest element. Uses a fixed array internally, so insertion and access are O(1), and do not cause any memory allocations.
package frctest.gui;
/*
*
* Circular queue with a fixed size.
* Supports random access.
* The first element enqueued has index zero, and enqueueing another element will increment existing elements' indexes by 1.
* Enqueue()ing more than maxSize elements will overwrite the highest-index element.
*
* This class copyright (c) Jamie Smith
@multiplemonomials
multiplemonomials / LibraryUtils.cmake
Created January 25, 2018 09:23
CMake script that can determine various bits of information about library files, including whether or not they are shared libraries.
# Script containing several advanced functions for handling libraries in CMake.
# linker flag prefix -- if a link library starts with this character, it will be ignored by import_libraries()
# this is needed because FindMKL can return linker flags mixed with its libraries (which is actually the official CMake way of doing things)
if(TARGET_WINDOWS AND NOT MINGW)
set(LINKER_FLAG_PREFIX "/") # stupid illogical MSVC command-line format...
else()
set(LINKER_FLAG_PREFIX "-")
endif()
@multiplemonomials
multiplemonomials / SociLazyStatement.h
Last active October 26, 2017 23:44
Wrapper around a Soci (SQL library for C++) statement that allows you to bind variables at execution time, and not before then. Helps you improve performance by making statements class variables.
//
// Created by Jamie on 5/12/2017.
//
#ifndef SOCI_LAZYSTATEMENT_H
#define SOCI_LAZYSTATEMENT_H
#include <soci/core/soci.h>
#include <soci/core/session.h>
@multiplemonomials
multiplemonomials / CheckLinkerFlag.cmake
Last active May 5, 2017 06:11
CMake script to check if a linker flag is supported. Based on a certain StackOverflow answer, and modified from the standard library CheckCompilerFlag.cmake. Required for FindMKL.cmake.
# CheckLinkerFlag
# ------------------
#
# Checks whether a compiler supports a given linker flag.
#
include(CheckCSourceCompiles)
include(CheckCXXSourceCompiles)
include(CheckFortranSourceCompiles)