build with Docker image... e.g. Ubuntu 14.04
$ docker run --rm -it -v $PWD:/src -w /src ubuntu:14.04
|# use the latest ubuntu environment (18.04) available on travis|
|# Force-enable Go modules. Also force go to use the code in vendor/|
|# The first two envs will be unnecessary when Go 1.14 lands.|
|# LINTER_VERSION is the version of golangci-lint. See current releases|
These are python 2 and 3 snippets showing how to generate headers to authenticate with HashiCorp's Vault using the AWS authentication method. There's also a Ruby implementation which uses version 3 of the AWS SDK for Ruby.
The python scripts look for credentials in the
default boto3 locations;
if you need to supply custom credentials (such as from an
AssumeRole call), you would use the
method before calling
At Vimeo, on the transcoding team, we work a lot with Go, and a lot with C, for various tasks such as media ingest. This means we use CGO quite extensively, and consequently, have run into bits that are perhaps not very well documented, if at all. Below is my effort to document some of the problems we've run into, and how we fixed or worked around them.
Many of these are obviously wrong in retrospect, but hindsight is 20/20, and these problems do exist in many codebases currently.
Some are definitely ugly, and I much welcome better solutions! Tweet me at @daemon404 if you have any, or have your own CGO story/tips, please! I'd love to learn of them.
Table of Contents
#What is a commit?
In the simplest literal terms possible, a commit represents a change to lines of code in a revision control system, along with a description. The mechanics of most VCSes don't prescribe anything beyond that simple model. It's a concept that has been in use (and misuse) for a little over 40 years, and a central concept in every major version control system ever released. Given that, and the fact that you're reading this document, and the fact that this document is in a revision control system, you're probably already familiar with this concept.
You are probably also familiar with people making "bad commits", but what you might not be familiar with is a team that makes only "good commits", and more particularly the organizational implications of doing so. This document aims to explore those implications.
In order to get a good conceptual framework for ho
|This just got linked to by the Y combinator news account, without proper context,|
|so a brief introduction: A month ago (end of May / early June 2014) I had a|
|Twitter conversation with a bunch of acquaintances. One tweet in the middle|
|of that thread, with obligatory hyperbole, was me saying that I think VR is|
|Well, that part of the thread (but not the rest that provides context) recently|
|got retweeted, and then someone asked me if I could explain what I mean by that,|
|and because Twitter is a great platform for delivering 140 character slogans and|
|not so great for lengthy explanations, I wrote this. So, obligatory disclaimer:|
|# Copyright (c) 2015, Intel Corporation|
|# Redistribution and use in source and binary forms, with or without|
|# modification, are permitted provided that the following conditions are met:|
|# * Redistributions of source code must retain the above copyright notice,|
|# this list of conditions and the following disclaimer.|
|# * Redistributions in binary form must reproduce the above copyright|
|// TIL Scala Map.mapValues returns a lazy view|
|// This has the horrific consequence that supplying a non-pure function|
|// can yield a result map with unexpected / undesired behavior (see below)|
|// Further discussion here:|