- Must Read/Watch Basics About Real-Time Audio Programming
- "Real-time audio programming 101: time waits for nothing": http://www.rossbencina.com/code/real-time-audio-programming-101-time-waits-for-nothing
- Video: Fabian Renn-Giles & Dave Rowland - Real-time 101
- Rust Audio Top Level Website: https://rust.audio/
- Awesome Audio DSP Link List: https://github.com/BillyDM/Awesome-Audio-DSP
// pkcs7strip remove pkcs7 padding | |
func pkcs7strip(data []byte, blockSize int) ([]byte, error) { | |
length := len(data) | |
if length == 0 { | |
return nil, errors.New("pkcs7: Data is empty") | |
} | |
if length%blockSize != 0 { | |
return nil, errors.New("pkcs7: Data is not block-aligned") | |
} | |
padLen := int(data[length-1]) |
call plug#begin('~/.config/nvim/plugged') | |
Plug 'JuliaEditorSupport/julia-vim' | |
Plug 'autozimu/LanguageClient-neovim', {'branch': 'next', 'do': 'bash install.sh'} | |
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } | |
call plug#end() | |
let g:deoplete#enable_at_startup = 1 | |
" julia | |
let g:default_julia_version = '1.0' |
import patty | |
import strformat | |
import strutils | |
import sugar | |
include karax / prelude | |
include karax / kdom | |
include karax / kajax | |
type |
# Default terminal | |
set-option -g default-terminal "screen-256color" | |
# Use vim key bindings | |
set-option -g mode-keys vi | |
set-option -g status-keys vi | |
# Turn the mouse on | |
set-option -g mouse on |
/* | |
============================================================================== | |
This file is part of the JUCE library. | |
Copyright (c) 2017 - ROLI Ltd. | |
JUCE is an open source library subject to commercial or open-source | |
licensing. | |
By using JUCE, you agree to the terms of both the JUCE 5 End-User License |
# Script that tries to find a windscribe vpn server with decent speeds | |
# Requires the windscribe command line client, and the speedtest.net | |
# python cli from here: https://github.com/sivel/speedtest-cli | |
#!/bin/bash | |
windscribe disconnect | |
speed=`speedtest --simple |grep -i download | cut -d ' ' -f 2` |
#!/bin/bash | |
# Go to $MATLABROOT/extern/engines/python and run the following line to build the python engine without root permissions. | |
# See https://uk.mathworks.com/help/matlab/matlab_external/install-matlab-engine-api-for-python-in-nondefault-locations.html | |
python setup.py build --build-base=$HOME/tmp/build install |
This is a quick guide for setting up a kill switch using UFW (Uncomplicated FireWall). It is assumed you are using OpenVPN and optionally Network-Manager with network-manager-openvpn.
Before we can start we're going to need the IP address (or the IP addresses) of your VPN so that we can whitelist those later on, write them down. They are obviously going to be different for every VPN and VPNs with multiple servers, so I'll leave this up to you.
On some systems UFW is installed and enabled by default (Ubuntu, for example). Installation procedure is going to be different for every distribution of GNU/Linux, but it's usually something like
A quick and dirty syntax translation / conversion reference guide to ease the transition between Python and Julia. This is not meant as a reference to the language. For that you should read the manual.
- Arrays in Julia are indexed starting from 1.
- In Julia classes (i.e. types) don't own methods. Methods are implementations of generic functions and are invoked in a "static style", i.e. instead of Python's str1.rstrip(), we will have rstrip( str1 ), instead of file1.close(), close( file1 ).