sharjeelyunus/github-issues-dataset huggingface dataset:
Repository: rust
Issue: `impl Trait` fails to resolve when returning `!`
Labels: A-type-system,A-trait-system,T-compiler,A-impl-trait,C-bug,T-types

I couldn't think of a better title.

This code doesn't compile on nightly : 

``` rust
#![feature(conservative_impl_trait)]
use std::ops::Add ;

fn test() -> impl Add<u32> {
    unimplemented!()
}

fn main() {}
```

```
rustc 1.13.0-nightly (378195665 2016-09-08)
error[E0277]: the trait bound `(): std::ops::Add<u32>` is not satisfied
```

while this does : 

``` rust
#![feature(conservative_impl_trait)]
use std::ops::Add ;

fn test() -> impl Add<u32> {
    if true {
        unimplemented!()
    } else {
        0
    }
}

fn main() {}
```
Repository: vscode
Issue: [json] validation doesn't work offline
Labels: feature-request,json

- VSCode Version: 1.5.1
- OS Version: OS X El Capitan 10.11.3

Every time I launch VS Code when I'm offline, I get this error:

![2016-09-10-1wv8p](https://cloud.githubusercontent.com/assets/1612675/18410407/da0e188a-776a-11e6-8313-c3fc75765132.png)

JSON validation doesn't work as a result.
I hope a schema reference can be initially cached inside the editor and downloaded once again when internet is on.

Steps to Reproduce:
1. Go offline (switch off the internet)
2. Open VS Code.
3. Open some `json` file
4. Work without validation but with an error.
Repository: flutter
Issue: specify assets that are for development only
Labels: c: new feature,tool,a: assets,P3,customer: castaway,team-tool,triaged-tool

It would be useful to specify some assets that should be loaded only during development and ignored when doing a `release` build.

I'm proposing adding a `dev_assets` option to `flutter.yml` to mimic the similar concept of `dev_dependencies` in the standard Dart pubspec.yaml.

This feature is in someway related #4014 in that you need a way to know in your code that `dev_assets` are available to use.
Repository: electron
Issue: Add option to apply WS_BORDER style for frameless window
Labels: enhancement :sparkles:,platform/windows,component/BrowserWindow

- Electron version:
  latest
- Operating system:
  Windows (7 and 10)

The current BrowserWindow implementation doesn't have a way to optionally add back in the borders.  In Windows API, I'm familiar with having these by using styles like:
WS_BORDER, WS_DLGFRAME

and/or extended styles:
WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE

Windows 10 puts a 1 pixel border around the entire window with the user's selected color. When the app is missing this, it doesn't feel like a native app.

Here's an extreme close-up showing a frameless electron window (back) and a native windows app (front)
![image](https://cloud.githubusercontent.com/assets/4733304/18412295/8ff55a22-773f-11e6-8dea-90e4e02ffa7d.png)
Repository: go
Issue: doc: add ACME (LetsEncrypt, etc) example docs to the standard library
Labels: Documentation,NeedsDecision

Thanks to @crhym3, we now have a suitably-licensed & CLA-clean ACME implementation in https://godoc.org/golang.org/x/crypto/acme (and a high-level package in https://godoc.org/golang.org/x/crypto/acme/autocert).

I'd like to consider privately vendoring that into Go 1.8 and making HTTPS even easier.

I'd like a complete user program with automatic HTTPS certs to look something like:

``` go
package main

import (
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", websiteHandler)
    srv := &http.Server{
        Addr:         "example.com:443",
        ACMEServer:   http.LetsEncrypt, // non-empty enables autocert support
        ACMEAgreeTOS: func(tosURL string) bool { return true },
        ACMEEmail:    "foo@bar.com", // (but optional)
    }
    log.Fatal(srv.ListenAndServeTLS("", ""))
}
```

Misc notes:
- The `ACMEFoo` names are placeholders. Maybe they'd deserve their own struct.
- `ACMEServer` would be required as the opt-in, and we wouldn't make LetsEncrypt be automatic or preferred, but we would add a constant `const LetsEncrypt = "https://acme-v01.api.letsencrypt.org/directory"` like the `acme` package has.
- `ACMEAgreeTOS` would be required for now. The ACME protocol requires a TOS agreement because the CAB Forum requires cert issuers to have a legal relationship with the people getting certs or something. It's mostly a formality, but we shouldn't make it automatically say "yes" either, even though I don't think LetsEncrypt themselves care. Maybe we could export the https://godoc.org/golang.org/x/crypto/acme#AcceptTOS func in the `net/http` package to reduce the boilerplate.
- `ACMEEmail` is optional. If provided, your ACME cert provider can keep you updated on problems or changes.
- the default cache directory would be automatic. We could provide a string to let people pick an alternate directory. If you want to do something more complicated (e.g. cache coordination over a cluster), then you can just import the `golang.org/x/crypto/acme/autocert` package yourself. This is analogous to the HTTP/2 situation where common HTTP/2 is provided automatically, but weird uses require importing the guts.
- `srv.ListenAndServeTLS("", "")` is already valid for the past few releases, since 6a208efbdfa939dc236a63383df19c7ab44aa50a for #14268 requested by @willchan specifically for LetsEncrypt stuff. It's a little ugly but works. Maybe we could provide instead a new method or option which also listens on an cleartext port 80 and redirects HTTP to HTTPS, optionally with a HSTS header.

My goal is for HTTPS to be dead simple out of the box.

Thoughts?

/cc @adg @broady @campoy @quentinmit @rsc @robpike @ianlancetaylor @mholt @crhym3
Repository: go
Issue: x/mobile/exp/audio/al: Crash when running al.CloseDevice() on OSX
Labels: mobile

### What version of Go are you using (`go version`)?

```
go version go1.7 darwin/amd64
```
### What operating system and processor architecture are you using (`go env`)?

Mac OS X 10.11.5

```
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/ejf3/workspace/gowork"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/zn/6y_5b8214sdg_1zzx907x3kh0000gn/T/go-build694490723=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
```
### What did you do?

```
import (
    "fmt"

    "golang.org/x/mobile/exp/audio/al"
)

func main() {
    fmt.Println("Hello, playground")

    err := al.OpenDevice()
    if err != nil {
        fmt.Println("failed to open device " + err.Error())
        return
    }
    defer al.CloseDevice()
}
```

The line `defer al.CloseDevice()` causes the crash. Removing that line allows the program to run without printing an error.
### What did you expect to see?

I expected not to see a crash.
### What did you see instead?

```
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x41f1927]

runtime stack:
runtime.throw(0x40ae810, 0x2a)
        /usr/local/go/src/runtime/panic.go:566 +0x95
runtime.sigpanic()
        /usr/local/go/src/runtime/sigpanic_unix.go:12 +0x2cc

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x4080c00, 0xc420053e10, 0x0)
        /usr/local/go/src/runtime/cgocall.go:131 +0x110 fp=0xc420053de0 sp=0xc420053da0
golang.org/x/mobile/exp/audio/al._Cfunc_alcDestroyContext(0x19)
        golang.org/x/mobile/exp/audio/al/_obj/_cgo_gotypes.go:666 +0x41 fp=0xc420053e10 sp=0xc420053de0
golang.org/x/mobile/exp/audio/al.alcDestroyContext(0x19)
        /Users/ejf3/workspace/gowork/src/golang.org/x/mobile/exp/audio/al/alc_notandroid.go:61 +0x75 fp=0xc420053e58 sp=0xc420053e10
golang.org/x/mobile/exp/audio/al.CloseDevice()
        /Users/ejf3/workspace/gowork/src/golang.org/x/mobile/exp/audio/al/alc.go:70 +0xa9 fp=0xc420053e80 sp=0xc420053e58
main.main()
        /Users/ejf3/workspace/gowork/src/ejf.io/gosoundwave/noise/noise.go:29 +0x3c7 fp=0xc420053f48 sp=0xc420053e80
runtime.main()
        /usr/local/go/src/runtime/proc.go:183 +0x1f4 fp=0xc420053fa0 sp=0xc420053f48
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc420053fa8 sp=0xc420053fa0

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1
```

This appears similar to the following two issues:
- [x/mobile/exp/audio/al: Flaky crash on Mac OS X](https://github.com/golang/go/issues/15075)
- [runtime: OpenReader: Invalid heap pointer in both 1.4rc2 and 1.4rc1](https://github.com/golang/go/issues/9191)
Repository: rust
Issue: Unions interacting with Enum layout optimization
Labels: A-codegen,T-lang,T-compiler,F-untagged_unions,A-enum

IRC (#rust) short discussion log, since I don't actually know much about this:

```
19:30 Amanieu: bluss: I had a look at nodrop-union, shouldn't you add another field to union with type () to inhibit the enum layout optimization?
19:31 Amanieu: admittedly the exact interactions between enums and unions is still somewhat poorly specified
19:31 bluss: Amanieu: good question. As it is now, that optimization is not used for unions
19:31 bluss: Amanieu: but I haven't checked the RFC discussions to see how it's going to be
19:32 Amanieu: I don't think this point was covered in the discussions
19:33 Amanieu: well, someone should probably open an issue about it
19:33 Amanieu: it's 2am here so I'll let someone else do that :P
19:34 bluss: it's 3am here, so I'm passing it on
```

cc @Amanieu @bluss
Repository: vscode
Issue: Trigger language auto detection mechanism
Labels: feature-request,api,languages-basic

Some times I'm fetching some content from the web and pasting it into the current active editor.
So far, I didn't find any way to set the current language for the window. Is there any particular API call for that?

Even better, would it be possible to trigger the auto detection mechanism with the API?
Repository: youtube-dl
Issue: please support rtd.rt.com RT Documentaries
Labels: site-support-request

there is a download button, but I wish to have a automation on CLI

![screen shot 2016-09-11 at 17 01 05](https://cloud.githubusercontent.com/assets/1093836/18418169/97236dd6-7841-11e6-8d29-08bf6f221f45.png)

```
$ youtube-dl https://rtd.rt.com/films/911-the-peace-we-lost/#part-1 -v 
[debug] System config: [u'--prefer-ffmpeg', u'--hls-prefer-native', u'-n']
[debug] User config: []
[debug] Command-line args: [u'https://rtd.rt.com/films/911-the-peace-we-lost/#part-1', u'-v']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.09.08
[debug] Python version 2.7.10 - Darwin-15.6.0-x86_64-i386-64bit
[debug] exe versions: avconv 11.4, avprobe 11.4, ffmpeg 3.1.3, ffprobe 3.1.3
[debug] Proxy map: {'http': 'http://localhost:8118', 'https': 'http://localhost:8118'}
[generic] #part-1: Requesting header
WARNING: Falling back on generic information extractor.
[generic] #part-1: Downloading webpage
[generic] #part-1: Extracting information
WARNING: [generic] #part-1: Failed to parse JSON No JSON object could be decoded
[debug] Invoking downloader on u'https://rtd.rt.com/films/911-the-peace-we-lost/playlist.xml'
[download] Destination: 9_11. The Peace We Lost-playlist.xml
[download] 100% of 832.00B in 00:00

```

downloaded file

```
$ cat 9_11.\ The\ Peace\ We\ Lost-playlist.xml 
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>9/11. The Peace We Lost</title>
        <item>
                <title>Part 1</title>
                <link>https://rtd.rt.com/films/911-the-peace-we-lost/#part-1</link>
                <description>It’s 15 years since the 2001 terror attack on New York’s twin towers changed America forever. Thousands lost their lives or loved ones and many others lost their health. On that day though, everyone in the US lost something else; peace of mind. RT Doc asks how 9/11 transformed modern America’s world view.</description>
                <pubDate>2016-09-09</pubDate>
                <media:content url="https://rtd.rt.com/files/films/911-the-peace-we-lost/911-the-peace-we-lost_3.mp4" />
                <media:thumbnail url="https://rtd.rt.com/files/films/911-the-peace-we-lost/911-the-peace-we-lost_5.jpg" />
        </item>
</channel>
</rss>

```
Repository: youtube-dl
Issue: Add support for Youku.com playlists
Labels: request

- [x] I've **verified** and **I assure** that I'm running youtube-dl **2016.09.11.1**
- [x] At least skimmed through [README](https://github.com/rg3/youtube-dl/blob/master/README.md) and **most notably** [FAQ](https://github.com/rg3/youtube-dl#faq) and [BUGS](https://github.com/rg3/youtube-dl#bugs) sections
- [x] [Searched](https://github.com/rg3/youtube-dl/search?type=Issues) the bugtracker for similar issues including closed ones
- [x] Feature request (request for a new functionality)
### Description of your _issue_, suggested solution and other information

Could you please add support for playlists on Youku.com? Example of a playlist with 161 videos: http://list.youku.com/albumlist/show?id=4405574 Another with 16 videos: http://list.youku.com/albumlist/show?id=4401438
Repository: godot
Issue: Strange movement with move_and_slide()
Labels: bug,discussion,confirmed,topic:physics

**Operating system or device - Godot version:**
Xubuntu Linux 16.04, v2.2.alpha.custom_build, compiled from source.

**Issue description** (what happened, and what was expected):
I'm putting these issues as one as they are similar enough that I don't want to bombard the issue tracker with issues.

1) The character will "jump" up a little when moving upwards on a ramp when I let go of the movement key.
2) The character will "jump" a little bit when running against a wall while standing on a incline. Similar to problem 1.
3) If there is a moving platform that is shaped as a triangle, and the character is jumping from the bottom and in the same direction as the triangle platform and hits one of the edges while doing so, he will travel vertically upwards with the ramp edge, whereas he should simply fall down. (Also shown in video.)
![temp](https://cloud.githubusercontent.com/assets/20325471/18448023/cdf54084-78ee-11e6-924d-3a7b388c6b70.png)

Here's a video which explains and shows the issues: https://youtu.be/uFPI2GcmXrQ
The problem/problems I am talking about are from 0:00 to 1:29

**Steps to reproduce:**
Please watch link above.

**Link to minimal example project** (optional but very welcome):
[moveandslide_example.zip](https://github.com/godotengine/godot/files/468056/moveandslide_example.zip)
Repository: TypeScript
Issue: circular symlink breaks typescript intellisense
Labels: Bug,VS Code Tracked

_From @bedorlan on September 9, 2016 13:47_

Steps to Reproduce:
1. Before creating symlink, intellisense works:
   ![good](https://cloud.githubusercontent.com/assets/4246233/18388711/5364d6b4-7668-11e6-9b13-abc82cbc1849.png)
2. Inside some project folder, create symbolic link to parent folder
   `$ ln -s ../../ baselibs`
3. Restart vscode
4. Now intellisense fails:
   ![bad](https://cloud.githubusercontent.com/assets/4246233/18388847/d33a7542-7668-11e6-8a36-9efda1d7d19f.png)

My project folder has 16942 files and 2944 folders. I try to reproduce the issue in a simpler folder structure, but i couldn't. 

I also tried to ignore the symlink in the settings.json, but this doesn't fix the issue.

Gladly i'll provide more info.
- VSCode Version:
  Versión 1.5.1
  Confirmación 07d663dc1bd848161edf4cd4ce30cce410d3d877
  Fecha 2016-09-08T21:34:58.760Z
  Shell 0.37.6
  Representador 49.0.2623.75
  Node 5.10.0
- OS Version:
  Linux os006724 4.6.0-1-amd64 #1 SMP Debian 4.6.4-1 (2016-07-18) x86_64 GNU/Linux

_Copied from original issue: Microsoft/vscode#11773_
Repository: opencv
Issue: Difference in return type of disparity map between normal StereoBM (CV_16S) vs CUDA StereoBM (CV_8UC1)
Labels: feature,category: calib3d,affected: 3.4,category: gpu/cuda (contrib)

<!--
If you have a question rather than reporting a bug please go to http://answers.opencv.org where you get much faster responses.
If you need further assistance please read [How To Contribute](https://github.com/opencv/opencv/wiki/How_to_contribute).

This is a template helping you to create an issue which can be processed as quickly as possible. This is the bug reporting section for the OpenCV library.
-->
##### System information (version)

<!-- Example
- OpenCV => 3.1
- Operating System / Platform => Windows 64 Bit
- Compiler => Visual Studio 2015
-->
- OpenCV => 3.1
- Operating System / Platform => Windows 64 Bit
- Compiler => VC12
##### Detailed description

The normal version of StereoBM is set to give an assertion error if the output disparity map is not of type CV_16SC1 or CV_32FC1. However this is not the case with the CUDA implementation, which returns an CV_8UC1. 

<!-- your description -->
##### Steps to reproduce

<!-- to add code example fence it with triple backticks and optional file extension
 or attach as .txt or .zip file
-->

```
C:\opencv\sources\modules\calib3d\src\stereobm.cpp

void compute( InputArray leftarr, InputArray rightarr, OutputArray disparr )
{
    int dtype = disparr.fixedType() ? disparr.type() : params.dispType;
    Size leftsize = leftarr.size();

    if (leftarr.size() != rightarr.size())
        CV_Error( Error::StsUnmatchedSizes, "All the images must have the same size" );

    if (leftarr.type() != CV_8UC1 || rightarr.type() != CV_8UC1)
        CV_Error( Error::StsUnsupportedFormat, "Both input images must have CV_8UC1" );

    if (dtype != CV_16SC1 && dtype != CV_32FC1)
        CV_Error( Error::StsUnsupportedFormat, "Disparity image must have CV_16SC1 or CV_32FC1 format" );
    ----
    ----
}

C:\opencv\sources\modules\cudastereo\src\stereobm.cpp
void StereoBMImpl::compute(InputArray _left, InputArray _right, OutputArray _disparity, Stream& _stream)
{
    using namespace ::cv::cuda::device::stereobm;

    const int max_supported_ndisp = 1 << (sizeof(unsigned char) * 8);
    CV_Assert( 0 < ndisp_ && ndisp_ <= max_supported_ndisp );
    CV_Assert( ndisp_ % 8 == 0 );
    CV_Assert( winSize_ % 2 == 1 );

    GpuMat left = _left.getGpuMat();
    GpuMat right = _right.getGpuMat();

    CV_Assert( left.type() == CV_8UC1 );
    CV_Assert( left.size() == right.size() && left.type() == right.type() );

    _disparity.create(left.size(), CV_8UC1);
   ----
   ----
}
```
Repository: TypeScript
Issue: Docs on improving compilation speed
Labels: Docs

With the `--watch` flag on, a recompile of an existing file generally takes 4 seconds now in our project.  This isn't terrible at all, but the wait time has grown since we started using it.

I was wondering what factors affect incremental compilation speed?  With TypeScript gaining widespread adoption, I think it'll be very important to developer experience to have a doc page detailing the main contributors to incremental compilation time and ways to improve it.

P.S. Note I meant incremental compilation speed with `--watch`, not a full recompile.
Repository: go
Issue: x/build: consider adding a linux builder with a newer kernel
Labels: Builders,new-builder

Not entirely sure this is the appropriate form for this request, but well: the PIE internal linking stuff all passes on the builders (and Ubuntu 14.04) but breaks on new-ish linux (e.g. Ubuntu 16.04). I think this is probably a kernel version thing, so can we get a builder with a newer kernel?
Repository: rust
Issue:  "lifetime parameter is not constrained..." when using lifetime param to derive assoc. type from reference type trait impl
Labels: A-type-system,T-compiler,C-bug,T-types

This works ([playpen](https://is.gd/bFeGb7)):

``` rust
use std::marker::PhantomData;
trait X {
    type Q;
}
trait Y { } 

struct Z<T> { t: PhantomData<T> }

impl<'a, T> X for Z<T> where T: 'a, &'a T: Y {
    type Q = u8;
}
```

If instead we add an associated type `Z` to `Y` and try to write `type Q = <&'a T as Y>::Z;` in the `X` implementation, it fails with "error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates" ([playpen](https://is.gd/CqJvsp):

``` rust
use std::marker::PhantomData;
trait X {
    type Q;
}
trait Y {
    type Z;
} 

struct Z<T> { t: PhantomData<T> }

impl<'a, T> X for Z<T> where T: 'a, &'a T: Y {
    type Q = <&'a T as Y>::Z;
}
```

Rust version: doesn't seem to matter; all of stable, beta, and nightly on play.rlo produce the same results.

Thanks to @QuietMisdreavus on IRC for helping with the reduced example.
Repository: TypeScript
Issue: Array inheritance in ES6 declaration file (lib.es6.d.ts)
Labels: Suggestion,Help Wanted,Domain: lib.d.ts

ES6 supports Array inheritance, but this is not reflected in the TypeScript declaration file (lib.es6.d.ts).

Array functions like 'filter' and 'slice' return an array of the subclass, so the following should compile in TypeScript:

``` javascript
class MyArray extends Array {
    get size() { return this.length; }
}

var x = new MyArray(10).slice();
x.size;
```

The functions 'reverse', 'concat', 'slice', 'splice', 'filter' should return with the type 'this'.
The 'map' function returns an instance of the subtype too, but it I don't know how that could be represented in TypeScript, as it would require a generic parameter in the return type, something like:
`map<U>(callback: (value: T, index: number, array: this) => U): this<U>`

Another issue is the static constructors of the Array class, this should compile too:

``` javascript
var x = MyArray.of(1,2,3);
var y = MyArray.from([1,2,3]);
x.size;
y.size;
```

There are also some additional complications added by the @@species Symbol, which can be used to change the type signature of the subclass to not use 'this' as the return value for functions like 'filter' and 'slice'. So for the following example, the subclass would work how the return types are defined in the declaration file currently:

``` javascript
class MyArray2 extends Array {
    static get [Symbol.species]() { return Array; }
}
```

Chrome and Node.js both already implement the array inheritance features shown here.
Repository: kubernetes
Issue: more metrics for API Storage
Labels: sig/scalability,lifecycle/frozen

@wojtek-t and I have a discussion around etcd backend performance. We have some guess about why etcd drops watchers. But I think it would be great if we can expose more metrics to do white box monitoring. Also for etcd3 backend, there is no metrics.

Then we have more data and more confidence.

Some example metrics I can think of beside the existing ones in etcd2:
1. latest_revision
2. latest_watched_revision 
3. number of watchers

/cc @wojtek-t do you think this is a good idea?
Repository: opencv
Issue: VideoCapture multiple threading Segmentation Fault in ubuntu but fine in mac os
Labels: category: videoio,category: 3rdparty

OpenCV => 3.1
Operating System / Platform => Linux ubuntu 16.04
Compiler => g++ (GCC) 5.3.0
VideoCapture multiple threading Segmentation Fault, or **\* Error in `./a.out': double free or corruption (fasttop): 0x00007eff64001c60 ***, the code is [here](https://github.com/KeyKy/issue/blob/master/videoCapture_multi_threading.cpp).
while in 
OpenCV => 3.1
Operating System / Platform => Mac OSX 10.11.5
Compiler => Apple LLVM version 7.3.0
VideoCapture multiple threading works fine.
Repository: go
Issue: x/net/trace: add GetSpanId and GetTraceId for cross-request tracking.
Labels: NeedsInvestigation,FeatureRequest

In our gRPC and in HTTP handlers we're using request IDs in headers to correlate the tree of requests that "spawn" out of an original request.

Golang has an awesome `/debug/requests` and `/debug/events`, which are incredibly helpful, especially for gRPC. 

Ideally, we'd move from our custom middleware/interceptors that we use with request ID to propagate (in our internal network) as trace spans. Unfortunately, you cannot read the trace ID in order for it to be serialized into headers. This would make it possible to have a consistent view of request IDs in our logs and `/debug/requests`. 

Also it would make it easier to ship stuff to ~~Dapper~~[Cloud Trace](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/master/trace/trace.go) :)