小编Qix*_*Qix的帖子

如何正确使用Chalk Terminal字符串样式

在尝试使用粉笔这是一个终端字符串样式包时,我在iTerm2中看到任何结果都没有运气.我按照安装软件包的所有步骤进行了操作,但是当我console.log("hello");chalk.js文件中运行基本文件时,我没有看到任何彩色字符串结果.

这就是我在做的事情.

#!/usr/bin/env node
var chalk = require('chalk');
chalk.blue('Hello world!');
console.log("hello");
Run Code Online (Sandbox Code Playgroud)

然后在iTerm2我运行node chalk.js,我看到没有彩色的字符串只是飞机老无聊的灰色..

谁知道我在做错了什么?

https://www.npmjs.com/package/chalk

javascript terminal node.js npm

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

Quasar光纤中的阻塞IO会阻塞其线程池中的线程吗?

据我所知,在Akka,所有演员都安排在一个线程池中.太多的actor同时执行阻塞IO,每个阻塞调用阻塞一个线程,导致线程中断.

现在我在JVM上看一个有趣的光纤实现 - Quasar允许大量用户线程 - 光纤 - 并使用线程池来安排它们.但是,我想知道当许多光纤称为传统阻塞API时是否有好处.

我不认为它会有所帮助,因为阻塞API仍然会阻塞系统线程,而Quasar无法神奇地将其转换为仅阻挡光纤.这只是我的猜测,如果我错了,请纠正我.

java fibers actor akka quasar

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

JVM如何知道方法堆栈中变量的位置?

这个问题可能是愚蠢的,也可能是重复的.当程序引用该变量时,我对如何从堆栈中检索变量感到困惑.对象存储在堆中,位置存储在引用变量中,包含堆地址本身的引用变量存储在堆栈中.但JVM如何确定该引用变量存储在堆栈中的哪个位置.

让我们考虑这个例子只是为了弄清楚我对此感到困惑.

Class Test {
    public void test() {
        Object a = new Bar();
        Object b = new Foo();
        System.out.println(a);
    }
}
Run Code Online (Sandbox Code Playgroud)

让我们说方法test()正在执行.因此堆栈将被分配给test().

现在当' Object a = new Bar(); '执行,Bar对象将在Heap中创建,实际变量'a'(其值为Bar对象的地址位置)将存储在test()的堆栈中.

再次在' 对象b =新Foo(); "同样的事情发生了.Foo对象将在Heap中创建,实际变量'b'(其值为Foo对象的地址位置)将存储在test()的堆栈中.

现在当他排队' System.out.println(a); '执行了,JVM如何知道堆栈中的哪个位置,应该检索'a'的值.意味着什么链接变量'a'及其在堆栈中的位置?

java stack-memory

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

如何使用React在Keystone.js中使用自定义模板?

尝试花一些时间研究此问题,但是keystone.js上的文档对此没有多大帮助。谷歌搜索使我进入一些关于在核心Keystone中实现React并在生成器中创建选项的github讨论,但该工作似乎尚未准备就绪。

所以我认为唯一的选择是手动将Keystone项目设置为React,但是我没有足够的信息来开始这条道路。如何使用React在Keystone中使用自定义模板?

node.js reactjs keystonejs

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

使用 v-if 包裹元素,否则只有内容本身

我在指令中生成了一组元素v-for,如果对象具有url属性,则将其包装在<a>标签中 - 否则,我需要它来发出元素本身。

例如,

var data = {
    events: [
        {name: "Foo"},
        {name: "Bar", url: "google.com"}
    ]
};
Run Code Online (Sandbox Code Playgroud)

以及相应的 HTML:

<div v-for="event in events">
    <span>{{event.name}}</span>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要的是仅当存在属性时才将其包装<span>在 an 中。<a v-bind:href="url">url

我知道我可以使用 av-if并使用两个跨度,例如:

<span v-if="!event.url">{{event.name}}</span>
<a v-bind:href="event.url" v-if="event.url">
    <span>{{event.name}}</span>
</a>
Run Code Online (Sandbox Code Playgroud)

然而,在我的用例中,<span>这里的元素可能很大,我不想重复自己只是为了包装该元素。

有没有办法实现上述的条件换行?

vue.js

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

MutationObserver 用于父级更改时

有没有办法使用 来检测元素的父元素何时更改(即从 更改为null-!null即,当元素最初添加到 DOM 时)MutationObserver?我找不到任何说明如何实现这一点的文档。

我正在以编程方式创建元素document.createElement()。我从函数返回创建的元素,但希望从函数创建一个侦听器,以便在元素最终添加到 DOM 时做出反应,而不知道它将添加到何处哪个父级。


老实说,我不太确定还能如何表达这一点。

const elem = document.createElement('div');

let added = false;
elem.addEventListener('added-to-dom', () => { added = true; });
// ^ how do I achieve this?

assert(added == false);
document.body.addChild(elem);
assert(added == true);
Run Code Online (Sandbox Code Playgroud)

我不明白理解这一点有什么困难,也不明白为什么它被关闭。

html javascript mutation-observers

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

在C中,如果这不是地址常量,那是什么?

numbers如果它不是地址常量,那么在下面的声明中究竟是什么?

int main() {
    int numbers[3] = {1,2,3};
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

反汇编程序显示,1,2和3动态放置在本地堆栈空间中,而不是整个数组被视为常量.因此,{1,2,3}不具有静态存储持续时间,因此numbers一个地址常量,具体根据C99的规范.

C99,第6.6.9节:"地址常量是空指针,指向静态存储持续时间对象的左值的指针,或指向函数指示符的指针......"

但是,numbers++在声明后添加行会导致GCC 4.1.2中出现以下编译错误:

error: invalid lvalue in increment

所以它是常量,但不是地址常量.有人知道C99(或类似)中此类常数的官方名称吗?

c c99

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

JAVA - 使用SSL证书和HTTPS的简单GET请求

我有一个带有'.pfx'扩展名的文件和这个证书的密码.

我需要做的是向web服务发送一个简单的GET请求并阅读响应主体.

我需要实现一个类似于此的方法:

String getHttpResponse(String url, String certificateFile, String passwordToCertificate){
    ...
}
Run Code Online (Sandbox Code Playgroud)

我还尝试使用openssl将证书转换为"无密码"格式:

Convert a PKCS#12 file (.pfx .p12) containing a private key and certificates to PEM:
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
Run Code Online (Sandbox Code Playgroud)

所以我的方法的替代实现可能是:

String getHttpResponse(String url, String certificateFile){
    ...
}
Run Code Online (Sandbox Code Playgroud)

我会很感激你的帮助,我花了半天google搜索,但我还没有找到一个例子,这将有助于我,似乎我有undestanding周围SSL和东西的一些基本假设的问题.

java ssl https certificate request

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

C++匿名结构指针赋值

所以,这不是最好的做事方式.但是,为了理论,如何成功地将指针值分配给匿名结构的指针?

#pragma pack(push,1)
    struct
    {
        __int16 sHd1;
        __int16 sHd2;
    } *oTwoShort;
#pragma pack(pop)

    oTwoShort = (unsigned char*)msg; // C-Error
Run Code Online (Sandbox Code Playgroud)

生产:

错误C2440:'=':无法从'unsigned char*'转换为'<unnamed-type-oTwoShort>*'

该示例假定msg是一个有效的指针本身.

这可能吗?由于您没有实际类型,您甚至可以进行类型转换吗?

c++ pointers casting compiler-theory anonymous-types

4
推荐指数
3
解决办法
1813
查看次数

C++多重继承和vtables

所以回到基础,我试图把我的头围绕着vtable和诸如此类的东西.在下面的例子中,如果我要传递一个B*函数,那么该函数如何知道调用C对象的vtable 中的方法而不是vtable 中的方法A?是否有两个单独的VTable传递给该对象?接口指针真的只是vtables(因为接口,IIRC,不能包含属性声明)?

我想说的是,直到我真正尝试这个代码,我假设你不能一次继承多个接口/类(并且所有接口必须是线性的,可以这么说)以便vtable建立在自己身上.

如果我对vtable如何工作的想法正确的(我现在知道它不是),那么传递一个B*和被调用的B::OutB()将会调用A:OutA()(显然不是这种情况).

有人可以解释一下吗?

// Includes
#include <windows.h>
#include <iostream>

interface A
{
public:
    virtual void OutA() = 0;
};

interface B
{
public:
    virtual void OutB() = 0;
};

class C : public A, public B
{
public:
    void OutA();
    void OutB();
};

void C::OutA()
{
    printf("Out A\n");
}

void C::OutB()
{
    printf("Out B\n");
}

int main()
{
    C obj;
    obj.OutA();
    obj.OutB();

    A* …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance interface multiple-inheritance

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