小编kal*_*ave的帖子

为什么 GCP 云调度程序如此昂贵?

我正在查看用于运行云函数的 GCP 云调度程序,该函数为我的研究项目收集和存储一些数据。我正在考虑每小时运行该函数 6 个月。然而,在评估定价后,这将达到约 440 美元(24 * 183 * 0.1)。对于相当简单的操作来说,这似乎相当昂贵,而且如果我希望它以我想要的每 20 分钟的速度运行,成本只会增加。

这是云调度程序的正确用法吗?启动 f1-micro 实例并让 cron 任务启动该功能不是更便宜吗?这样做有什么特别之处,我会失去吗?尤其是因为 IBM 云功能有免费的 cron

google-cloud-platform google-cloud-scheduler

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

如何在 Rust 中跳转到/调用任意内存

我正在尝试构建一个执行程序生成的 x86 指令的 JIT。我想我已经创建了一个有效的 x86 字节代码片段,应该打印“Hello World”,但我不确定如何调用它。

我正在将指向向量开头的指针转换为 void 函数并调用它:

fn main() {
    let msg: &[u8] = b"Hello World\0";

    let mut byte_codes: Vec<u8> = Vec::with_capacity(1000);

    // Move width into edx
    byte_codes.extend_from_slice(&[0xba, msg.len() as u8, 0, 0, 0]);
    
    // Msg to write
    byte_codes.push(0xb9);
    byte_codes.extend_from_slice(&(msg.as_ptr() as u64).to_be_bytes());
    
    // File descriptor and sys call
    byte_codes.extend_from_slice(&[0xbb, 0x01, 0, 0, 0]);
    byte_codes.extend_from_slice(&[0xb8, 0x04, 0, 0, 0]);
    
    // Sys call
    byte_codes.extend_from_slice(&[0xcd, 0x80]);

    // Return
    byte_codes.push(0xc3); 

    let func_ptr = byte_codes.as_ptr();
    unsafe {
        let func: fn() -> () …
Run Code Online (Sandbox Code Playgroud)

x86 assembly jit rust

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

如何引用顶级数组 json 的模式

我有一个包含项目列表的 JSON 文件。该文件中唯一存储的内容是以数组形式存储的项目。例如:

[
    {...},
    {...},
    {...},
]
Run Code Online (Sandbox Code Playgroud)

我想为此定义一个架构文件。这看起来很好,因为初始类型可以设置为数组,并且我可以将项目定义为类型。但我想引用项目 json 文件中的架构。不幸的是,它不是一个对象,所以我无法添加密钥"$schema"。我当然可以使 json 成为只有一个具有数组值的键的对象,但这似乎不是一个好的设计。

模式系统似乎有一些设计错误或者顶级数组 json 不受支持吗?

json jsonschema

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

为什么yield被归类为运算符而不是语句?

我正在查看mdn javascript 参考,注意到它yield列在运算符部分。另一方面return是列为声明。我还发现运算yield优先级为 2。

的哪些特性yield使其属于运算符类而不是语句?为什么return落入语句而不是运算符?

javascript syntax yield

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

在Web组件的disconnectedCallback上删除事件侦听器的原因

我在网上看到了一个删除 Web 组件 dom 中按钮的事件侦听器的示例disconnectedCallback

class MyComponent extends HTMLElement {
    constructor() {
        this.attachShadow({ mode: "open" });
        this.shadowRoot.innerHTML = "<button>Click</button>";
    }

    myEvent() {
        ...
    }

    connectedCallback() {
        this.shadowRoot.querySelector("button").addEventListener("click", this.myEvent.bind(this));
    }

    // Removes event here:
    disconnectedCallback() {
        this.shadowRoot.querySelector("button").removeEventListener("click", this.myEvent.bind(this));
    }
}
Run Code Online (Sandbox Code Playgroud)

这样做有理由吗?由于按钮不在 dom 中,因此触发时不会出现问题吗?是否存在内存泄漏问题?它没有列在Web 组件最佳实践的事件部分中。我可以理解窗口上是否有事件侦听器等,但不明白如果事件是由未连接的东西触发的,会产生什么影响

web-component

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

React Typescript - 反应组件类中的上下文

我用create react app创建了一个react typescript应用程序.我现在希望有一个我想在所有组件中访问的上下文:

export const UserContext = React.createContext<{name: string}>({name: 'Foo'});
Run Code Online (Sandbox Code Playgroud)

上下文链接到主app组件的状态.这种状态确实发生了变化,因此组件的上下文值也应该发生变化.

<UserContext.Provider value={this.state}>
    <MainPage/>
</UserContext.Provider>
Run Code Online (Sandbox Code Playgroud)

我已经按照文档字符串建议来了解如何在组件中设置上下文,所以有这样的:

class MainPage extends React.Component {
   static contextType = UserContext;
   context!: React.ContextType<typeof UserContext>;

   public render() {
       return <div>{this.context.name}</div>
   }
}
Run Code Online (Sandbox Code Playgroud)

this.context.name总是为空.我已经this.state应用程序组件中放置了一个与其值相关联的div,并且确实显示了与上下文不同的值.因为代码写在原反应/创建反应的应用程序内的作品时,我是部件在同一下我挣扎@types/react

有没有人知道如何在typescript中的组件类中实现上下文?

typescript reactjs

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

Deno:退出时回调

如何为程序退出添加回调?

在nodejs中的实现:

process.on('exit', function (){
    console.log('Goodbye!');
});
Run Code Online (Sandbox Code Playgroud)

deno

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

来自另一个表的 SQL 计数列

我的数据库中有两个表

第一个是people有列的

id: int,
name: varchar(10)
Run Code Online (Sandbox Code Playgroud)

另一个relationships代表单向跟随的存在

me: int
following: int
Run Code Online (Sandbox Code Playgroud)

其中me和是与 table 中 person 的主键following匹配的外键。idpeople

我想运行一个查询,给定一个id人,返回他们的姓名、他们关注的人数以及关注他们的人数。

我目前的尝试是

id: int,
name: varchar(10)
Run Code Online (Sandbox Code Playgroud)

但它引发了有关 where 语法的错误。我想我需要group by在某个地方使用,但我正在努力了解它如何在多个表上工作。

所以说鉴于id=2它会返回[{name: "sam", followers: 4, following: 3}]

sql sql-server group-by subquery aggregate-functions

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

使用分隔符打印结构中的字段列表

我有一个包含三个字段的类型

type Person struct {
    FirstName string
    LastName  string
    Age       int
}
Run Code Online (Sandbox Code Playgroud)

创建一个实例并使用默认fmt.Sprint()返回{John Smith 45}。但是对于我的用例,我需要一串 format John, Smith, 45。逗号分隔的列表,没有被大括号包围。有没有比以下更可重用和有效的方法:

fmt.Sprintf("%s, %s, %d", x.FirstName, x.LastName, x.Age)
Run Code Online (Sandbox Code Playgroud)

我将在其他类型中大量使用此方法,我更喜欢通用方法,而不必为我使用的每种类型输入格式:

func asFields(data interface{}) string {
    // TODO logic here
}
Run Code Online (Sandbox Code Playgroud)

string struct go

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

SQL删除并获取字段

我想运行一个SQL查询,该查询在一定条件下会从表中删除,但还会返回要删除的数据的列,以便我可以在服务器上对其进行一些处理。

显然,我可以将它们分为两个查询,例如:

SELECT name 
FROM users
WHERE username = '...';
Run Code Online (Sandbox Code Playgroud)
DELETE FROM users
WHERE username = '...';
Run Code Online (Sandbox Code Playgroud)

但是我想知道是否有一种使用参数的方法,或者可能PRINT仅发送一个查询,该查询将删除并返回要删除name的项目的字段。这是可能的还是我应该坚持两个查询?

sql-server sql-delete

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

如何覆盖外部 TypeScript 接口

我在 TypeScript 项目中使用通行证护照的绝对类型类型定义覆盖 Express 请求以包含该user属性。但它将用户定义为一个空接口:

index.d.ts

declare global {
    namespace Express {
        ...
        // tslint:disable-next-line:no-empty-interface
        interface User {}

        interface Request {
            ...
            user?: User;
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在我的整个应用程序中,我想req.user成为这种类型的接口:

interface User {
    id: number
    username: string,
    profilePicture: string,
    name: string
}
Run Code Online (Sandbox Code Playgroud)

我厌倦了req.user as User | null在整个申请过程中写作。我可以直接覆盖定义文件中的接口定义,但是node_modules如果我更新类型模块,修改文件中的文件可能会被覆盖,这似乎是不好的做法。

有没有办法在我的 src 文件夹中编写一个覆盖的定义文件Express.User?我已经尝试将定义文件复制并修改到我的 src 目录,但它说

Augmentations for the global scope can only be directly nested in external modules or ambient …

typescript typescript-typings

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