Build starting from a Jupyter 2.x image.
docker build -t jupyterlab .
#!/bin/sh | |
# Based on: | |
# http://anbasile.github.io/programming/2017/06/25/jupyter-venv/ | |
mkvirtualenv --python=`which python3` ADRPython | |
workon ADRPython | |
pip3 install \ | |
jupyter jupyterlab jupyterthemes \ | |
scipy \ |
To make Pageant automatically run and load keys at startup: | |
- Find the location of pageant.exe | |
- Windows key + R to open the 'run' dialog box | |
- Type: 'shell:startup' in the dialog box | |
- Create a shortcut to the pageant.exe and put into this startup folder. |
#!/bin/bash | |
# | |
# Blog post @ https://blog.kylemanna.com/sharing/gogo-inflight-wireless-with-openvpn/ | |
# | |
# Bail on errors | |
set -e | |
SERVER_IP=$(host myip.opendns.com. resolver1.opendns.com | awk '/has address/ { print $4 }') |
class ExtensibleModelSerializer(serializers.ModelSerializer): | |
""" | |
Allows for specifying ``non_native_fields`` in the Meta, which allow for custom handling | |
of some fields, while letting the ``ModelSerializer`` do its magic with the rest of the fields. | |
For any fields which are not read from or set directly on the model using ``ModelSerializer``'s | |
logic, you need to provide a mechanism for: | |
* getting the value from the model | |
* changing the incoming data to an internal representation (for updates and creates) |
Below are my build instructions for GnuPG 2.2.10, released on August 30th, 2018. These instructions are built for a headless Ubuntu 18.04 LTS server (and have also been tested on Ubuntu 14.04/16.04).
If you prefer, you may use the below install script to install GnuPG 2.2.x by running the following commands:
curl -OL "https://gist.githubusercontent.com/vt0r/a2f8c0bcb1400131ff51/raw/e0d2011d7b89bfe5b83c3f29f21949fb21354dd9/install-gnupg22.sh" && sudo -H bash ./install-gnupg22.sh
""" | |
This script was used to create the figures for http://jrsmith3.github.io/sample-logs-the-secret-to-managing-multi-person-projects.html from a PDF file containing some old CMU sample logs. | |
""" | |
import PyPDF2 | |
from wand.image import Image | |
import io | |
import os | |
Complete installation process: | |
sudo apt-get update | |
sudo apt-get upgrade | |
sudo apt-get install -y python-software-properties python make build-essential g++ curl libssl-dev apache2-utils git libxml2-dev | |
sudo apt-get update | |
sudo apt-get upgrade | |
cd ~ | |
mkdir git | |
cd ~/git |
#!/usr/bin/python | |
import os, time | |
import usb.core | |
import usb.util | |
import pygtk | |
pygtk.require('2.0') | |
import gtk | |
from sys import exit | |
import math |
import time | |
def RateLimited(maxPerSecond): | |
minInterval = 1.0 / float(maxPerSecond) | |
def decorate(func): | |
lastTimeCalled = [0.0] | |
def rateLimitedFunction(*args,**kargs): | |
elapsed = time.clock() - lastTimeCalled[0] | |
leftToWait = minInterval - elapsed | |
if leftToWait>0: |