小编Paw*_*zur的帖子

golang如何"推迟"捕获闭包的参数?

这是我的代码(运行):

package main

import "fmt"

func main() {
    var whatever [5]struct{}

    for i := range whatever {
        fmt.Println(i)
    } // part 1

    for i := range whatever {
        defer func() { fmt.Println(i) }()
    } // part 2

    for i := range whatever {
        defer func(n int) { fmt.Println(n) }(i)
    } // part 3
}
Run Code Online (Sandbox Code Playgroud)

输出:

0 1 2 3 4 4 3 2 1 0 4 4 4 4 4

问题:第2部分和第3部分有什么区别?为什么第2部分输出"44444"而不是"43210"?

closures go

32
推荐指数
1
解决办法
9814
查看次数

kubernetes不健康的入口后端

我按照负载均衡器教程:https: //cloud.google.com/container-engine/docs/tutorials/http-balancer,当我使用Nginx图像时工作正常,当我尝试使用自己的应用程序图像时后端切换到不健康.

我的应用程序重定向到/(返回302),但我livenessProbe在pod定义中添加了一个:

    livenessProbe:
      httpGet:
        path: /ping
        port: 4001
        httpHeaders:
          - name: X-health-check
            value: kubernetes-healthcheck
          - name: X-Forwarded-Proto
            value: https
          - name: Host
            value: foo.bar.com
Run Code Online (Sandbox Code Playgroud)

我的入口看起来像:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: foo
spec:
  backend:
    serviceName: foo
    servicePort: 80
  rules:
  - host: foo.bar.com
Run Code Online (Sandbox Code Playgroud)

服务配置是:

kind: Service
apiVersion: v1
metadata:
  name: foo
spec:
  type: NodePort
  selector:
    app: foo
  ports:
    - port: 80 
      targetPort: 4001
Run Code Online (Sandbox Code Playgroud)

后端运行状况ingress describe ing如下:

backends:       {"k8s-be-32180--5117658971cfc555":"UNHEALTHY"}
Run Code Online (Sandbox Code Playgroud)

入口的规则如下:

Rules:
  Host  Path    Backends …
Run Code Online (Sandbox Code Playgroud)

docker kubernetes google-kubernetes-engine

21
推荐指数
3
解决办法
1万
查看次数

使用float作为非类型的模板特化

C++模板的第4.3节 声明"不能使用浮点文字(和简单的常量浮点表达式)作为模板参数具有历史原因."

同样的,

$ 14.1/7状态 - "非类型模板参数不应声明为具有浮点,类或void类型.[示例:

template<double d> class X; // error
template<double* pd> class Y; // OK
template<double& rd> class Z; // OK"
Run Code Online (Sandbox Code Playgroud)
  1. 上述引文中正在讨论的历史原因是什么?

  2. 看看为什么Y和Z有效但不是X,整个挑战与浮动类型的非类型模板参数是否与指针/引用有关?

  3. 为什么模板非类型参数不能是类类型?

c++ templates non-type

11
推荐指数
2
解决办法
3485
查看次数

Protocol Buffers是否支持移动构造函数

我检查了移动构造函数规范和Message构造函数源,但没有找到.

如果没有,有没有人知道添加它的计划?

我正在使用proto3语法,编写库并考虑返回值与unique_ptr.

c++ protocol-buffers protobuf-c

8
推荐指数
3
解决办法
5837
查看次数

模板专门化与int一起使用,并且以double作为类失败

我有一个以下简单的模板:

template<class T, T N>
bool VerifyGT(T value) {
  return value > N;
}

bool (*test1)(int) = &VerifyGE< int, (int) 0>;  // (1)
bool (*test2)(double) = &VerifyGE< double, (double) 0.0>;  // (2)
Run Code Online (Sandbox Code Playgroud)

编译时:test1初始化成功,test2失败,"不匹配所需类型".有任何想法吗?

c++ templates

7
推荐指数
1
解决办法
223
查看次数

Bitmap.Options.inSampleSize 应该如何工作?

初始代码是官方文档:Loading Large Bitmaps Efficiently

我开始四处寻找,发现图像没有按照文档中的描述调整大小:

如果设置为 > 1 的值,则请求解码器对原始图像进行二次采样,返回较小的图像以节省内存。样本大小是对应于解码位图中单个像素的任一维度中的像素数。例如,inSampleSize == 4 返回一个图像,其宽度/高度是原始图像的 1/4,像素数是 1/16。任何 <= 1 的值都被视为与 1 相同。 注意:解码器使用基于 2 的幂的最终值,任何其他值将向下舍入到最接近的 2 的幂。

当我运行代码时:

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(res, resId, options);
    Log.e(LOG_TAG, "orig img size " + options.outWidth + "x" + 
          options.outHeight);

    // Calculate inSampleSize
    // options.inJustDecodeBounds = false;  // version 2
    for (int i = 2; i<20; i*=2) {
        options.inSampleSize = i;
        Log.d(LOG_TAG, "inSampleSize: " + options.inSampleSize);
        Bitmap b = …
Run Code Online (Sandbox Code Playgroud)

android image bitmap android-6.0-marshmallow

6
推荐指数
1
解决办法
6609
查看次数

Apache Beam:无法找到gs的注册商

Beam正在使用Google的自动/价值自动/服务工具.

我想运行带有Dataflow流水线的管道,数据存储在Google云端存储上.

我添加了一个依赖项:

<dependency>
    <groupId>org.apache.beam</groupId>
    <artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
    <version>2.0.0</version>
</dependency>

<dependency>
    <groupId>org.apache.beam</groupId>
    <artifactId>beam-sdks-java-extensions-google-cloud-platform-core</artifactId>
    <version>2.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我能够从IntelliJ启动管道.但是当jar通过a编译mvn package并运行时java -jar会抛出一个错误:

java.lang.IllegalStateException: Unable to find registrar for gs
Run Code Online (Sandbox Code Playgroud)

胖子是打包的maven-assembly-plugin.GcsFileSystemRegistrar班级在罐子里.

java maven google-cloud-storage google-cloud-dataflow apache-beam

6
推荐指数
1
解决办法
2065
查看次数

从 Android SyncAdapter 调用服务方法时 gRPC 失败

我花了一些时间才发现只有当我尝试从 SyncAdapter 使用 gRPC 客户端时才会导致以下错误:

No functional channel service provider found. Try adding a dependency on the grpc-okhttp or grpc-netty artifact
Run Code Online (Sandbox Code Playgroud)

设置与官方教程使用同步适配器传输数据完全一样。

我已经使用与grpc-java 中的示例相同的设置生成了 gRPC 代码。compile 'com.squareup.okhttp:okhttp:2.2.0'示例中的依赖项不是必需的,因为compile 'io.grpc:grpc-okhttp:0.9.0'已修改为自包含。

当从主活动调用 gRPC 服务方法时,它工作正常。

我怀疑grpc-okhttp必须以某种方式初始化,但不知道如何初始化。

android grpc

5
推荐指数
1
解决办法
1061
查看次数

编译时出错"未定义引用`sin'"(使用-lm)

我已下载并编译:http://leenissen.dk/fann/wp/

  • cmake版本2.8.11.2
  • gcc(Ubuntu/Linaro 4.8.1-10ubuntu8)4.8.1

用于编译的命令:

cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr .
Run Code Online (Sandbox Code Playgroud)

安装:

sudo make && sudo make install
Run Code Online (Sandbox Code Playgroud)

然后我转到fann项目中的examples /目录并尝试通过运行编译示例:

make all
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

gcc -O3 xor_train.c -o xor_train -lfann -lm
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `sin'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `exp'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `cos'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `log'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `pow'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `sqrt'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `floor'
collect2: error: ld returned 1 exit status
make: *** [xor_train] Error 1
Run Code Online (Sandbox Code Playgroud)

更新:

  • 我遵循了图书馆的指示 …

c gcc cmake linker-errors fann

4
推荐指数
1
解决办法
5551
查看次数

如何克隆Google Container Cluster/Kubernetes群集?

如标题.我想克隆(创建现有集群的副本).

如果无法复制/克隆Google Container Engine集群,那么如何克隆Kubernetes集群?

如果那是不可能的,有没有办法转储整个群集配置?

注意:

我尝试通过调用来修改集群的配置:

kubectl apply -f some-resource.yaml
Run Code Online (Sandbox Code Playgroud)

但是没有什么能阻止我/其他员工通过运行来修改集群:

kubectl edit service/resource
Run Code Online (Sandbox Code Playgroud)

或者从命令行kubectl调用设置属性.

kubernetes google-kubernetes-engine

3
推荐指数
1
解决办法
2438
查看次数

"调用带有未知视图的sideInput()"异常,即使我正在通过视图?

代码如下所示:

return pcol.apply(ParDo.named("FindTheBug")
        .withSideInputs(foo)
        .withSideInputs(bar(
        .of(new DoFn<T, U>() {
            F myFoo = c.sideInput(foo);
            B myBar = c.sideInput(bar);
Run Code Online (Sandbox Code Playgroud)

声明这些侧输入,为什么Dataflow没有看到它们?

java google-cloud-dataflow apache-beam

2
推荐指数
1
解决办法
301
查看次数