SELECT
file.project,
COUNT(*) as total_downloads,
FROM
TABLE_DATE_RANGE(
[the-psf:pypi.downloads],
TIMESTAMP("20160114"),
class Node: | |
def __init__(self, label=None, data=None): | |
self.label = label | |
self.data = data | |
self.children = dict() | |
def addChild(self, key, data=None): | |
if not isinstance(key, Node): | |
self.children[key] = Node(key, data) | |
else: |
FROM debian:squeeze | |
ENV DEBIAN_FRONTEND noninteractive | |
RUN apt-get update \ | |
&& apt-get install -y wget \ | |
&& wget -O - http://packages.vyos.net/vyos-pubkey.gpg | apt-key add - \ | |
&& echo "deb http://backports.debian.org/debian-backports squeeze-backports main" > /etc/apt/sources.list.d/bp.list \ | |
&& apt-get update \ | |
&& apt-get -t squeeze-backports install -y squashfs-tools \ |
Below you is my build instructions for GnuPG 2.1.20 released on 03-Apr-2017. These instructions are built for a headless Ubuntu 16.04 LTS server.
Or if you wish, you may use the install script to install GnuPG 2.1.20 by entring the following:
curl -sL "https://gist.github.com/mattrude/3883a3801613b048d45b/raw/install-gnupg2.sh" |sh
apt-get -y install libgnutls-dev bzip2 make gettext texinfo gnutls-bin \
#!/bin/bash | |
# You need to install overlayroot | |
# sudo apt-get install overlayroot | |
LANG=C | |
set -e | |
set -x |
- There are two and only two genders.
- Okay, then there are two and only two biological genders.
- Gender is determined solely by biology.
- Okay, it’s mostly determined by biology, right?
- Please tell me it’s determined by DNA.
- Gender can be reliably determined through visual means. After all, no man would ever wear a burka.
- Once gender is set, it never changes.
- Even if the gender can change, it will only change from the one value to the other value.
- Only one gender can be “active” at the same time.
- We’re tracking gender now, so we’ve always tracked it.
Whether you're trying to give back to the open source community or collaborating on your own projects, knowing how to properly fork and generate pull requests is essential. Unfortunately, it's quite easy to make mistakes or not know what you should do when you're initially learning the process. I know that I certainly had considerable initial trouble with it, and I found a lot of the information on GitHub and around the internet to be rather piecemeal and incomplete - part of the process described here, another there, common hangups in a different place, and so on.
In an attempt to coallate this information for myself and others, this short tutorial is what I've found to be fairly standard procedure for creating a fork, doing your work, issuing a pull request, and merging that pull request back into the original project.
Just head over to the GitHub page and click the "Fork" button. It's just that simple. Once you've done that, you can use your favorite git client to clone your repo or j
function shorten-path([string] $path) { | |
$loc = $path.Replace($HOME, '~') | |
# remove prefix for UNC paths | |
$loc = $loc -replace '^[^:]+::', '' | |
# make path shorter like tabs in Vim, | |
# handle paths starting with \\ and . correctly | |
return ($loc -replace '\\(\.?)([^\\])[^\\]*(?=\\)','\$1$2') | |
} | |
function prompt { |
# Adapted from http://pypi.python.org/pypi/watchdog | |
import sys, os, re | |
import time | |
import logging | |
from optparse import OptionParser | |
import subprocess | |
from watchdog.observers import Observer | |
import watchdog.events | |
import pythoncom |
PS> time { ping -n 1 google.com } -Samples 10 -Silent | |
.......... | |
Avg: 62.1674ms | |
Min: 56.9945ms | |
Max: 87.9602ms | |
PS> time { ping -n 1 google.com } -Samples 10 -Silent -Long | |
.......... | |
Avg: 00:00:00.0612480 | |
Min: 00:00:00.0572167 |