小编Lua*_*ico的帖子

Firefox 上的 Manifest v3 后台脚本/服务工作者

我正在尝试将我的浏览器扩展(我希望在 Chrome 和 Firefox 上运行)从清单 v2 迁移到 v3。

\n

但是,我收到有关该background部分的相互矛盾的信息。我对谷歌和堆栈溢出做了很多研究,但似乎没有人在任何事情上达成一致。此外,大多数信息似乎已经过时。在我找到的最好的来源中,很多地方都提到它应该迁移到service_workerexample),但 Firefox 似乎仍然应该使用scriptssource)。

\n

但无论我做什么,我都会遇到错误。如果我只使用 Service Worker:

\n
"background": {\n    "type": "module", // tried both with and without this option\n    "service_worker": "background.ts"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

来自的构建命令parcel很高兴(似乎在下面使用parcel/transformer-webextension),但web-ext灾难性地失败了:

\n
WebExtError: installTemporaryAddon: Error:\nError: Could not install add-on at \'...\':\nError: background.service_worker is currently disabled\n
Run Code Online (Sandbox Code Playgroud)\n

即使我提供了--firefox-preview应该解决此问题的标志。

\n

这有点有道理,这篇写得很好的教程声称 Firefox 继续使用scriptsV3,只是弃用了该persisent标志(您可以删除该标志或将其设置为 false)。没关系,因为无论如何我都没有使用它。

\n
"background": …
Run Code Online (Sandbox Code Playgroud)

firefox google-chrome cross-browser browser-extension service-worker

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

颤动 - 建立游戏的良好基础?

我打算建立一个手机游戏.好吧,我想过使用Flutter.它当然会涉及互动,播放声音,但没有花哨的物理系统.你是否认为在这种情况下使用Flutter是一个好主意(它更适合学习它的目的)或者它是否为时尚早,我是否应该坚持使用我可以使用的游戏引擎?

提前致谢

dart flutter flame

25
推荐指数
4
解决办法
2万
查看次数

在C++中返回一个对象或指针

在C++中,我的方法应该返回一个对象或指向对象的指针吗?怎么决定?如果是运营商怎么办?我该如何定义?

还有一件事 - 如果指针变成矢量,我怎样才能在返回后找出它的大小?如果这是不可能的,我认为它应该如何在没有这个限制的情况下正确返回数组?

c++ pointers object return-value

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

Flutter:致命错误:回调查找失败!(带音频播放器包)

以下代码段是通过单击该按钮,播放短促哔声的按钮:

FlatButton(
  onPressed: () => {
    final player = new AudioCache();
    player.play('note1.wav');
  }
  child: Text('Click to ding!'),
),
Run Code Online (Sandbox Code Playgroud)

我面临的问题是每当我单击此按钮时,虽然声音播放正确,但我在终端中收到此错误:flutter: Fatal Error: Callback lookup failed! 我想知道它是什么以及我应该做什么?

我检查了软件包的问题页面,但没有发现任何有用的信息。

谢谢

dart flutter flutter-dependencies flame

9
推荐指数
2
解决办法
1928
查看次数

为什么我不能在C中读取Ctrl + S?

我有这个程序C,读取输入如下:

cod1 = getch ();
  if (kbhit())
    cod2 = getch ();
Run Code Online (Sandbox Code Playgroud)

我可以阅读每个Ctrl+ Char可能的序列,除了Ctrl+ C,关闭程序 - 这是好的,Ctrl+ S,这个简单的不是捕获.但我想让Ctrl+ S成为我程序中的保存功能; 我怎么能这样做?此外,是否可以阅读Alt+ Char字符?因为它将其作为常规字符读取,例如,Alt+ A使用相同的代码读取A.

c io input

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

线性曲线拟合有误差

我一直在寻找一种在Javascript中执行线性曲线拟合的方法.我发现了几个库,但它们没有传播错误.我的意思是,我有数据和相关的测量错误,如:

x = [ 1.0 +/- 0.1, 2.0 +/- 0.1, 3.1 +/- 0.2, 4.0 +/- 0.2 ]
y = [ 2.1 +/- 0.2, 4.0 +/- 0.1, 5.8 +/- 0.4, 8.0 +/- 0.1 ]
Run Code Online (Sandbox Code Playgroud)

我的记谱a +/- b意味着什么{ value : a, error : b }.

我希望将其融入其中y = mx + b,并找到mb传播其传播的错误.我知道我可以实现的最小二乘法算法,但它只对y变量产生错误,并且我在两者中都有明显的错误.

我也找不到Javascript中的库来做到这一点; 但如果有一个其他语言的开源库,我可以检查它以了解如何在JS中实现它.

像Origin或plotly这样的程序能够实现这一点,但我不知道如何实现.此示例数据集的结果是:

m = 1.93 +/- 0.11
b = 0.11 +/- 0.30
Run Code Online (Sandbox Code Playgroud)

javascript curve-fitting

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

自动包装的@Repeatable注释的顺序

在此之前,我曾经手工使用数组声明包装器注释,然后像这样调用它:

@Foos({ @Foo(0), @Foo(1), @Foo(2) })
public void bar() {}
Run Code Online (Sandbox Code Playgroud)

由于我使用{ ... }初始化器创建了一个数组,所以当我稍后通过Reflection访问此方法时,顺序与声明的相同是非常清楚的.

但是,当我使用@RepeatableJava 8中的新注释时,我是否保证将保留订单?

我宣布了一组简单的注释:

public @interface Foos {
  Foo[] value();
}

@Repeatable(Foos.class)
public @interface Foo {
 int value();
} 
Run Code Online (Sandbox Code Playgroud)

并针对最多样化的场景运行一些测试:

@Foo(0) @Foo(1) @Foo(2)
public void bar1() {}

@Foo(2)
@Deprecated @Foo(5)
@Foo(10)
public void bar2() {}
Run Code Online (Sandbox Code Playgroud)

一切似乎完美无缺(当通过Reflection访问时),但我不想依赖于未记录的东西.我觉得应该是这样,但我无法在任何地方找到它!任何人都可以对此有所了解吗?

java annotations java-8

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

Java泛型奇怪的行为

用语言来解释很难,但是Java Generics给了我一个意想不到的结果.我希望如果我说列表是类型? extends Object,我可以在那里存储任何东西.因此,如果是类型列表Wrapper<? extends Object>,我可以在那里存储任何类型的Wrapper.等等.这对我来说很有意义.但我们假设我们有:

private static class Wrapper<T> {
    public Wrapper(T t) { /**/ }
}
Run Code Online (Sandbox Code Playgroud)

我想要的东西是这样的:

private static final List<Wrapper<Wrapper<? extends Object>>> ls1 = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

请注意,这给了我一个错误:

public static <T> doit(T t) {
    Wrapper<Wrapper<T>> l1 = new Wrapper<>(new Wrapper<>(t));
    ls1.add(l1); // nok
    // add (Wrapper<Wrapper<? extends java.lang.Object>>) in List
    // cannot be applied to (Wrapper<Wrapper<T>>
}
Run Code Online (Sandbox Code Playgroud)

但是如果我将Wrapper包装在辅助包装器(rs)中,那么:

private static class C<T> extends Wrapper<Wrapper<T>> {
    public C(T t) {
        super(new Wrapper<>(t));
    }
}

private …
Run Code Online (Sandbox Code Playgroud)

java generics

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

未在 Google 表单上激活 onOpen 触发器

只有当我打开表单进行编辑时,我的 Google 表单上的 onOpen 事件才会被激活,但当我打开它来回答 (/viewform) 时不会激活。实际上,我只是希望它在有人打开表单进行回答时运​​行,因为我的脚本使用表中的当前信息更新组合框。我不确定这是否是最好的方法,但我愿意接受建议。

我尝试创建一个函数 onOpen() 和创建一个 doIt() 函数,并在资源 > 添加触发器菜单上手动向 onOpen 添加触发器。触发器已正确列出,并且似乎可以在打开表单进行版本更新时正常工作。可能那时我得到了错误的触发器处理程序,但没有其他我想要的(只有 onEdit,它应该做 onOpen 正在做的事情,以及 onInstall)。

这方面的文档非常简洁,并且绝对专注于电子表格脚本。然而,他们提到了自定义钩子,称为可安装触发器,其中之一实际上是:

打开电子表格或表单编辑器时。(请注意,当用户打开表单进行响应时,此触发器不会激活,而是在编辑器打开表单进行修改时激活。)与简单的 onOpen 触发器不同,可安装触发器可以充当安装触发器的用户。

这表明 onOpen 应该完全按照我的意愿行事......所以现在我很困惑。

另外,我不确定权限将如何工作。目前,据我所知,似乎我与之共享表单的任何人都可以编辑它,并且每个人都可以回答它,只要此人拥有 URL。有没有办法将人们列入白名单来回答它?我不太喜欢 URL 是阻止外人查看我加载到组合框中的数据的唯一障碍,而且,最重要的是,通过提交表单来更新这些数据......似乎蛮力可以很容易地解开一个很多“秘密”表格都是这样的……或者从安全的角度来看可以吗,我只是疯了?

google-apps-script google-forms

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

在OpenGL中的片段着色器中获取原始纹理颜色

所以,我需要制作一个着色器,用给定的颜色替换纹理中的灰色.如果我将颜色设置为给定的特定颜色,片段着色器可以正常工作

gl_FragColor = vec4(1, 1, 0, 1);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试检索纹理的原始颜色时,我收到错误.由于某种原因,它总是返回黑色.

uniform sampler2D texture; //texture to change

void main() {
  vec2 coords = gl_TexCoord[0].xy;
  vec3 normalColor = texture2D(texture, coords).rgb; //original color

  gl_FragColor = vec4(normalColor.r, normalColor.g, normalColor.b, 1);
}
Run Code Online (Sandbox Code Playgroud)

从理论上讲,它应该什么也不做 - 纹理应该保持不变.但它完全变黑了.我认为问题在于我不确定如何将纹理作为参数传递给统一变量.我目前正在使用ID(整数),但似乎总是返回黑色.所以我基本上不知道如何设置均匀纹理的值(或者以任何其他方式获取它,而不使用参数).代码(用Java):

program.setUniform("texture", t.getTextureID());
Run Code Online (Sandbox Code Playgroud)

我正在使用我从这里获得的Program类,以及SlickUtils Texture类,但我相信这是无关紧要的.

opengl shader textures colors lwjgl

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