groupadd vagrant
usermod -aG vagrant user
user www-data; | |
worker_processes 4; # number of cores on machine | |
error_log /var/log/nginx/error.log; | |
events { | |
worker_connections 1024; | |
} | |
http { |
#!/bin/bash | |
usage() { | |
cat << EOF | |
Usage: $0 [OPTION]... COMMAND | |
Execute the given command in a way that works safely with cron. This should | |
typically be used inside of a cron job definition like so: | |
* * * * * $(which "$0") [OPTION]... COMMAND | |
Arguments: |
############################################################ | |
# Dockerfile to build Android project and use Jenkins CI | |
# | |
############################################################ | |
FROM ubuntu:14.04 | |
MAINTAINER eluleci <[email protected]> | |
RUN apt-get update |
root@ci:/etc/init.d# cat Xvfb | |
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: Xvfb | |
# Required-Start: $local_fs $remote_fs | |
# Required-Stop: | |
# X-Start-Before: | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: |
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: Xvfb | |
# Required-Start: $local_fs $remote_fs | |
# Required-Stop: | |
# X-Start-Before: | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: | |
### END INIT INFO |
Spurred by recent events (https://news.ycombinator.com/item?id=8244700), this is a quick set of jotted-down thoughts about the state of "Semantic" Versioning, and why we should be fighting the good fight against it.
For a long time in the history of software, version numbers indicated the relative progress and change in a given piece of software. A major release (1.x.x) was major, a minor release (x.1.x) was minor, and a patch release was just a small patch. You could evaluate a given piece of software by name + version, and get a feeling for how far away version 2.0.1 was from version 2.8.0.
But Semantic Versioning (henceforth, SemVer), as specified at http://semver.org/, changes this to prioritize a mechanistic understanding of a codebase over a human one. Any "breaking" change to the software must be accompanied with a new major version number. It's alright for robots, but bad for us.
SemVer tries to compress a huge amount of information — the nature of the change, the percentage of users that wil
#!/usr/bin/env ruby | |
# ... | |
preprocess do | |
RedirectGenerator.generate(config[:redirects], items) | |
end | |
route '/old_posts/*' do | |
item.identifier.sub('old_posts/', '') + 'index.html' |
In Git your working copy is a clone of the entire repository. This includes branches and tags. This decreases the overhead (speed and manual work) involved when switching contexts and the need to be connected to a network. Some examples are:
- When switching branches there is no need to connect to a remote server or close your IDE/project and open a checkout in another directory. Running
git checkout [branch name]
is all you need to do. - When merging you do not need a connection to the remote server, you have all branches locally. Since branches are so cheap in Git you could create a new branch to perform the merge in so that if you had a large amount of conflicts you could incrementally work on and commit without affecting the main branch then merge or create a patch after everything has been fixed.
- Because Git is a distributed system in addition to connecting to a central repository developers can connect to another developers repository. This allows team
- Create certificates
- Edit Docker options
- Restart Docker
- Copy client certificates from host
- (optional) Add remote endpoint in Portainer
Log into Dokku host as root and create server/client certificates: