小编fse*_*art的帖子

Go - 性能 - 结构中指针和值之间的区别是什么?

给定以下结构:

type Exp struct {
  foo int,
  bar *int
}
Run Code Online (Sandbox Code Playgroud)

在结构中使用指针或值时,性能方面有何不同.是否有任何开销或只有两个Go编程学校?

我会使用指针来实现一个链式结构,但这是我们必须在结构中使用指针以获得性能的唯一情况吗?

PS:在上面的结构中我们讨论一个简单的int但它可以是任何其他类型(甚至是自定义的)

struct pointers go

16
推荐指数
1
解决办法
2579
查看次数

如何检查Chrome扩展程序的真实性?

上下文:

  • 您有一个网络服务器,只有在您的客户安装了特定的Chrome扩展程序时,才能提供独家内容.
  • 您有两种方式可以提供Chrome扩展程序包:
    1. 来自Chrome网上应用店
    2. 从您自己的服务器

问题:

  • 有许多解决方案可以让我们知道安装了Chrome扩展程序:
    1. 使用内容脚本加载网页时插入元素.
    2. 使用Web请求将特定标头发送到服务器.
    3. 等等.
  • 但似乎没有办法检查与您的网页互动的Chrome扩展程序是否为正版.
  • 实际上,由于任何想要查看和复制Chrome扩展程序的源代码,似乎无法知道当前与您的网页交互的Chrome扩展程序是您发布的还是克隆版本(另一个人可能会有所改变.
  • 您似乎只能知道某些Chrome扩展程序以"预期方式"与您的网页进行交互,但您无法验证其真实性.

解决方案?

  • 一种解决方案可能包括使用Chrome扩展程序包中包含的信息,并且其他任何人都无法更改或复制这些信息:
    1. 将Chrome扩展程序的ID发送到服务器?但是怎么样?
      • 该ID必须由您和您的JavaScript代码发送,似乎没有办法使用"内部"Chrome功能.
      • 因此,如果其他人只是将相同的ID发送到您的服务器(某种Chrome扩展程序的ID欺骗),那么您的服务器会认为他的Chrome扩展程序是真正的!
    2. 使用打包应用程序时提供的私钥?但是怎么样?
      • 似乎无法以编程方式以任何方式访问或使用此密钥!
  • 另一个解决方案是我使用NPAPI插件和嵌入认证方法,如GPG等.但这个解决方案不可取,主要是因为其API文档的大"警告"部分.
  • 还有其他解决方案吗?

笔记

此问题试图在Chrome扩展程序的API中引发真正的安全问题:如何在与您的服务进行交互时检查Chrome扩展程序的真实性.如果有任何遗漏的可能性或任何误解,请随时在评论中提问我.

javascript security google-chrome google-chrome-extension

14
推荐指数
1
解决办法
2260
查看次数

如何在Linux Chrome和Firefox上信任自签名的localhost证书

我尝试为指向127.0.0.1的自定义本地域生成自签名证书:

# /etc/hosts
127.0.0.1 subdomain.domain.local
Run Code Online (Sandbox Code Playgroud)

我使用openssl并生成了一个自签名证书,并记住过去一切正常.但似乎自Chrome 58以来,使用自签名证书的限制要多得多.

我的尝试以" 您的连接不是私密 " 结束,并出现以下错误之一:

  • 如果我像过去一样继续," 安全证书不受信任 ".
  • 尝试将其导入Chrome时" 不是证书颁发机构 ".
  • 导入其CA后使用证书时" 主题备用名称丢失 ".

我很确定我在这个过程中遗漏了一些东西.请问,任何人都可以提供有效的配置来处理替代名称以及创建相应CA和证书的确切步骤,以便Chrome和Firefox可以处理我的本地自定义域吗?

ssl firefox google-chrome localhost self-signed

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

使用Spring IoC配置Netty

有人用Spring配置Netty吗?

我正在寻找一个关于如何使用Spring配置Netty的示例或描述.

netty

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

CloudFormation 模板中元数据部分的用途是什么?

AWS 在本文档中描述了 CloudFormation 模板的整体结构。它指出元数据部分是一个 JSON 对象,提供有关模板的附加信息。
本文档中,我们可以看到唯一提供的使用元数据部分的示例是:

  • AWS::CloudFormation::Init:但似乎唯一可以使用它的地方是在资源元数据部分,而不是在模板元数据部分。不是吗?
  • AWS::CloudFormation::Interface
  • AWS::CloudFormation::Designer

问题是我们真的可以在模板元数据部分中拥有任意 JSON吗?如果是这样,其目的是什么?

注意:问题不是关于资源元数据,而是关于模板元数据部分。

amazon-web-services aws-cloudformation

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

将鼠标悬停在透明按钮上

我正在使用Microsoft Visual Studio Express 2012构建一个metro风格的应用程序.我对这个应用程序很新,我需要帮助.我在XAML中定义了一个按钮,按钮背景是从图像设置的.将鼠标悬停在按钮上会将背景更改为空白.我想改变它使鼠标悬停在50%透明图像上.那可能吗?有帮助吗?谢谢.

我已将按钮声明如下:

<Button Height="100" Width="100" Margin="0,0,0,0">
  <Button.Background>
    <ImageBrush ImageSource="../Images/home.png"></ImageBrush>
  </Button.Background>
</Button>
Run Code Online (Sandbox Code Playgroud)

xaml windows-8 visual-studio-2012

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

如何使用类型级函数动态创建静态类型?

在 TypeScript 中,有类型级 函数允许根据给定的文字 类型/规范创建新类型(参见映射类型条件类型等)。

例如,这里有这样一个函数,假设由 lib 作者提供:

type FromSpec<S> = { 
  [K in keyof S]: S[K] extends "foo" ? ExampleType : never 
};
Run Code Online (Sandbox Code Playgroud)

它的目的是,给定一个S字符串键和任意文字的映射形式的规范,它以映射的形式创建一个具有相同键集和值转换的新类型。如果 a 值是文字,"foo"则它成为类型ExampleType,否则通过将其转换为底部类型来拒绝该值never

然后,最终用户可以使用此功能按照上述说明创建新类型:

type Example = FromSpec<{some_key: "foo", another_key: "bar"}>
//           = {some_key: ExampleType, another_key: never} 
Run Code Online (Sandbox Code Playgroud)

值得注意的是,lib 作者不知道给定的最终用户可能想要什么确切类型,因此为他提供了一个函数来创建他需要的类型。另一方面,最终用户只要符合函数的能力,就可以创建无限的新类型集。

您可以在这里玩这个简单的例子。


问题是如何在其他类型语言(例如 ReasonML/OCaml、Scala、Haskell)中表达这种“动态”。或者,作为最终用户,如何在编译时通过使用由 lib 作者提供的类型级函数来创建新类型(就像通常在运行时使用值级函数所做的那样)?

重要的是要注意,问题不在于哪种语言更好等等。而是要找到最直接、最明确的方式来表达这些功能。在这里我们看到了一个 TypeScript 的例子,但是在其他语言中还有更自然的方式吗?

c++ ocaml haskell scala typescript

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

如何在 TypeScript 中通过文字联合实现类型级 max 函数?

给定数字文字的并集,例如:

type Values = 1 | 2 | 5
Run Code Online (Sandbox Code Playgroud)

是否可以创建一个提取最大值的通用类型级函数,即:

type Max<T> = ???

type V = Max<Values>
//   V = 5
Run Code Online (Sandbox Code Playgroud)

types typescript

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