问题列表 - 第317969页

是否可以在 AWS 中创建仅限 IPV6 的应用程序负载均衡器 (ALB)(截至 2023 年 12 月)?

可以在 AWS 中创建仅 IPV4 或双堆栈(4 和 6)ALB。是否可以创建在公共接口上仅支持 IPV6 的 ALB?

AWS 将从 2024 年 2 月开始对 IPV4 公共 IP 收费。每个 ALB 分配 2 个 IP,因此每年的额外费用约为 86 美元。不考虑成本,有没有办法

  1. 关闭公共接口上的 IPV4 支持,仅保留 IPV6
  2. 仅支持来自公共互联网的 IPv6 流量,但如果目标 EC2 实例仅为 IPV4,则让 ALB 转换为 IPV4。

文档似乎表明,如果客户端通过 IPV6 进入,今天似乎支持 #2,但 AWS 控制台中似乎没有针对 #1 的选项。如果通过 AWS CLI 存在,则不会记录。

https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html仅指 Elastic Load Balancing(未特别提及 ALB),并表示不提供仅 IPV6 支持。

希望在 AWS 决定对公共 IP 甚至 ALB 收费的同时,他们能够为不需要 ipV4 的环境提供一种仅支持 IPv6 的方法。

amazon-web-services aws-application-load-balancer

9
推荐指数
0
解决办法
542
查看次数

如何用/dev/random的输出填充一定量的RAM?

以下命令行可用于分配任意数量的内存,例如 1GB。内存区域被零填充。

</dev/zero head -c $((1024**3)) | tail
Run Code Online (Sandbox Code Playgroud)

然而,如何用随机数类似地填充给定数量的内存,例如 1GB?

与预期相反,以下两个变体不会导致工作内存的可选择分配大小,而是在终端中输出数百个随机字符:

</dev/random head -c $((1024**3)) | tail
Run Code Online (Sandbox Code Playgroud)

下面的看起来不像是一个解决方案,因为它操作数据(remove/0)并且只保存了几百个字符的变量,而不是1GB:

output=$(sudo head -c $((1024**3)) /dev/random | tr -d '\0' | tail)
Run Code Online (Sandbox Code Playgroud)

关于以下可能是一种解决方案的想法,但看起来 var 上只有几百个字符而不是 1GB:

output=""
while IFS= read -r -d '' substring; do
 output+="$substring"
done < <(sudo head -c $((1024**3)) /dev/random | tail)
Run Code Online (Sandbox Code Playgroud)

random bash shell ram

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

尝试为 PhotoPicker API 返回的 uri 获取持久 uri 权限时出现异常

我在使用 PhotoPicker API 时遇到运行时问题,特别是在 Android 10 (API 29) 及更低版本的真实设备(例如 Samsung Galaxy S9、Redmi 9\xe2\x80\xa6)上,PhotoPicker 回退到 ACTION_OPEN_DOCUMENT 意图据我所理解。该应用程序抛出以下异常:

\n
java.lang.SecurityException: No persistable permission grants found for UID 10574 and Uri 0 @ content://media/external/file/2\n
Run Code Online (Sandbox Code Playgroud)\n

当尝试为 PhotoPicker 返回的 URI 获取持久 URI 权限时,会发生这种情况。下面是相关的代码片段,它遵循PhotoPicker Docs的实现:

\n
// Code from Fragment\nval pickMedia = registerForActivityResult(PickVisualMedia()) { uri ->\n    if (uri != null) {\n        val flag = Intent.FLAG_GRANT_READ_URI_PERMISSION\n        requireContext().contentResolver.takePersistableUriPermission(uri, flag)\n    } else {\n        Log.d("PhotoPicker", "No media selected")\n    }\n}\n\npickMedia.launch(PickVisualMediaRequest(PickVisualMedia.ImageOnly))\n
Run Code Online (Sandbox Code Playgroud)\n

在模拟器上一切正常,只有在真实设备上才会发生这种情况。我真的不明白我做错了什么,或者也许我对 URI 的理解是错误的或者什么的。还有其他人在使用 PhotoPicker API 时遇到过类似的问题吗?任何提示或解决方案将不胜感激。非常感谢! …

android

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

在 Chrome DevTools 中禁用粘贴保护?

在最新版本的 Google Chrome 中,我遇到了一个非常令人沮丧的问题,即禁用了粘贴到开发人员控制台的功能。这非常不方便,因为我每天都依赖开发者控制台。我可能不得不考虑切换浏览器,但我宁愿不这样做。

google-chrome copy-paste google-chrome-devtools

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

为什么三元运算符使字符变量打印整数而不是字符?

char g = 'G';
int i = 0;
System.out.print(1 == 1 ? g : 0);
System.out.print(" ");
System.out.print(1 == 0 ? i : g);
Run Code Online (Sandbox Code Playgroud)

理论上,这应该打印出“GG”,因为它两次打印字符变量的值。然而,第二次它打印出字符“G”的 ASCII 值。

上面的代码将打印出“G 71”,这不是预期的结果。

char g = 'G';
int i = 0;
System.out.print(1 == 1 ? g : 0);
System.out.print(" ");
System.out.print(1 == 0 ? 0 : g);
Run Code Online (Sandbox Code Playgroud)

然而,第二位代码将打印出“G G”,这是预期的。

java integer character conditional-operator

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

SwiftUI 的新 NavigationStack API 与 UIHostingController 的导航栏不能很好地配合

我有一个 UIKit 应用程序,我使用 UIHostingController 将一些屏幕迁移到 SwiftUI。我曾经能够重复使用 UIKit 的相同导航栏。但在切换到 NavigationStack API 后,我无法复制相同的行为。

这是完整的可重现代码。


import UIKit
import SwiftUI

struct ListView: View {
  
  @State var selectedString: String? = nil
  
  var body: some View {
    let details = ["foo", "bar", "baz"]

    // No need to wrap under NavigationView, otherwise will have double Nav Bar
    // This will use the UIKit's nav bar
    List {
      ForEach(details, id: \.self) { detail in
        let destination = Text("This is a detailed page for \(detail)")
          .navigationTitle("Detail page")
        
        NavigationLink(
          detail, …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

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

如何将不等长的向量列表转换为二进制数据帧?

如何将不等长的向量列表转换为二进制数据帧?我的数据集如下所示:

> gene_annot
[[1]]
 [1] "lipid binding"           "catalytic activity"      "hydrolase activity"      "lipid metabolic process"
 [5] "cytosol"                 "organelle"               "mitochondrion"           "signaling"              
 [9] "extracellular region"    "extracellular space"    

[[2]]
[1] "extracellular region" "extracellular space"  "organelle"           

[[3]]
[1] "extracellular region" "extracellular space" 

[[4]]
logical(0)

[[5]]
[1] "organelle"                          "nucleus"                            "nucleoplasm"                       
[4] "immune system process"              "defense response to other organism" "protein folding" 
Run Code Online (Sandbox Code Playgroud)

我想为每个标签创建一列,每个单元格都包含一个二进制变量,指示该标签是否出现在该行中。我怎样才能在 R 中做到这一点?例如,我期望这样的数据框:

> gene_annot_binary
lipid binding extracellular region

1             1

0             1

0             1

0             0

0             0
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

控制类成员布局和析构函数顺序

我的班级有两名成员。

class C {
    typeA a;
    typeB b;
};
Run Code Online (Sandbox Code Playgroud)

假设没有继承。对于这门课,我担心三件事。

  1. a和 的构造函数的b调用顺序
  2. a和 的析构函数的b调用顺序
  3. a和b在内存中的布局

我可能关心(1)和(2)的原因之一是线程同步。我可能关心 (3) 的一些原因是:

  1. 填充

  2. 具有两个以上类成员的空间局部性

  3. 第一个类成员的内存偏移量为 0

我希望能够同时控制(1)-(3)。然而,似乎当我选择内存中的顺序时,我也选择了构造函数和析构函数的顺序。有没有办法同时控制(1)-(3)?

c++ constructor destructor class micro-optimization

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

如何确保我将使用 C 标准库函数(如“getc”)的函数版本而不是类似函数的宏版本?

我正在学习 C 中的函数与类函数宏。

在阅读 C 标准时,我发现了这一点:

通过将函数名称括在括号中,可以在本地抑制函数的任何宏定义,因为该名称后面不会跟着指示宏函数名称扩展的左括号。出于相同的语法原因,允许获取库函数的地址,即使它也被定义为宏。185)使用#undef删除任何宏定义也将确保引用实际函数。

因此,根据此,如果我想确保 get 将是我的代码中的函数,我必须访问头<stdio.h>文件并将(我不知道是函数名称还是宏名称)括在括号或#undef宏中?

我的意思是这个:(int (getc)(FILE *stream);或者这个?#define (getc)(...) ) 或者这个: #undef getc

但这一切都在<stdio.h>文件里吗?

或者在我的代码里面?

你能给我一个关于如何确保getc在 C 中使用 as 函数的例子吗?

c macros function stdio getc

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

同步:负 WaitGroup 计数器

谁能告诉我为什么会出现恐慌。这个demo的背景是验证切片并发写入的行为,但是当我运行demo时,偶尔会出现panic(并非总是如此)。所以为什么?

代码:

func main() {
    for i := 0; i < 10000; i++ {
                // when capacity > 2, panic disappear
        b := make([]int, 2, 2) 
        b[0], b[1] = 0, 1

        wg := sync.WaitGroup{}
        wg.Add(1)
        go func() {
            b = append(b, 3)
            wg.Done()
        }()
        wg.Add(1)
        go func() {
            b = append(b, 4)
            wg.Done()
        }()
        wg.Wait()
    }

}
Run Code Online (Sandbox Code Playgroud)

错误:

panic: sync: negative WaitGroup counter

goroutine 12821 [running]:
sync.(*WaitGroup).Add(0x0?, 0xc0000f4ba0?)
        /usr/local/go/src/sync/waitgroup.go:83 +0xda
sync.(*WaitGroup).Done(...)
        /usr/local/go/src/sync/waitgroup.go:108
main.main.func1()
        /Users/liushi/Projects/go/golang-demo/main.go:54 +0x97
created by main.main
        /Users/liushi/Projects/go/golang-demo/main.go:48 +0x11f …
Run Code Online (Sandbox Code Playgroud)

go slice waitgroup

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