小编rob*_*rob的帖子

需要.Net的公式解释器

我正在寻找一个可以在C#应用程序中使用的公式解释器.它需要能够解释这样的字符串:

max(1+2, 4) * x
Run Code Online (Sandbox Code Playgroud)

我发现编写一个快速的公式解释器(codeproject.com)几乎可以满足我的需要,但它不允许具有多个参数的函数.我可以添加它的功能,但我只是想知道这样的事情是否已经存在.

谢谢

.net c# interpreter expression formula

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

用gulp生成文件

我有一个项目,setup.js在我的/src文件夹中的各个子文件夹中调用了几个文件.我想要一个gulp任务将所有setup.js文件复制到一个/dist文件夹并保留子文件夹结构.这部分很容易.

棘手的部分是我还想在setup.js文件\dist夹中的每个文件旁边生成一个index.html文件.index.html文件对于所有这些文件将完全相同,只是它需要setup.js使用相对于/dist文件夹的路径来引用脚本.我知道我可以使用一些像gulp-template来动态渲染一个html文件,但我不知道如何将路径传递给setup.js它.我不知道如何index.html为每个人创造一个setup.js.

所以我想要的结果文件夹结构看起来像这样

/src
    template.html
    /blah1
        setup.js
    /blah2
        setup.js
/dist
    /blah1
        setup.js
        index.html
    /blah2
        setup.js
        index.html
Run Code Online (Sandbox Code Playgroud)

我对如何做到这一点有任何想法吗?

或者,如果有人可以将我链接到一些关于Gulp的详细文档/示例/教程,这些文档/示例/教程可能会解释如何进行类似这样的事情,我将非常感激.我没有找到很多好的文章,它们实际上解释了Gulp幕后发生的事情,而且很难找到超越琐碎src | uglify | concat | dest用例的例子.

谢谢!

javascript build-process node.js gulp

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

用时刻严格解析日期

当您moment从日期字符串创建并传入格式时,非常松散地检查日期字符串与格式.例如,以下日期都是有效的

moment('1','YYYY-MM-DD').isValid() //true
moment('1988-03','YYYY-MM-DD').isValid() //true
moment('is a val1d date!?#!@#','YYYY-MM-DD').isValid() //true
Run Code Online (Sandbox Code Playgroud)

有没有办法只接受符合指定格式的日期?

javascript datetime date momentjs

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

使用Firebase模拟删除

在Firebase站点内置的"模拟器"中,是否可以模拟删除节点?

我尝试在URL字段中输入节点的路径(例如/my/path/-JCNAUFZJFJMGX1RYWJL),然后我进入{}数据字段,但我认为这只是模拟添加任何与删除相关的内容.

firebase

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

ASP.NET 5基于策略的授权句柄未被调用

按照这里的文档,我尝试实现基于策略的身份验证方案.http://docs.asp.net/en/latest/security/authorization/policies.html#security-authorization-handler-example

我遇到的问题是我的自定义AuthorizationHandler没有调用我的Handle方法.(它不会扔到这里).它还会在构造函数中注入当前的依赖项.

这是AuthorizationHandler代码.

using WebAPIApplication.Services;
using Microsoft.AspNet.Authorization;

namespace WebAPIApplication.Auth
{
    public class TokenAuthHandler : AuthorizationHandler<TokenRequirement>, IAuthorizationRequirement
    {
        private IAuthService _authService;

        public TokenAuthHandler(IAuthService authService)
        {
            _authService = authService;
        }

        protected override void Handle(AuthorizationContext context, TokenRequirement requirement)
        {
            throw new Exception("Handle Reached");
        }
    } 

    public class TokenRequirement : IAuthorizationRequirement
    {
        public TokenRequirement()
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在启动我有

// Authorization
            services.AddSingleton<IAuthorizationHandler, TokenAuthHandler>()
                .AddAuthorization(options =>
                {
                    options.AddPolicy("ValidToken",
                        policy => policy.Requirements.Add(new TokenRequirement()));
                });
Run Code Online (Sandbox Code Playgroud)

控制器方法是

// GET: api/values
        [HttpGet, Authorize(Policy="ValidToken")]
        public string Get()
        {
            return …
Run Code Online (Sandbox Code Playgroud)

c# asp.net authorization asp.net-core

5
推荐指数
2
解决办法
3489
查看次数

在升级事件中异步更新 IndexedDB

onupgradeneeded()IndexedDB 事件中,我尝试更新对象存储中的每条记录。为了更新它们,我需要首先执行异步操作,但这会导致升级事务变得不活动,并且我收到错误

Failed to execute 'update' on 'IDBCursor': The transaction is not active.

在下面的代码中,我正在模拟异步操作setTimeout()

let openRequest = indexedDB.open('myDb', 1);

openRequest.onupgradeneeded = function (versionEvent) {
    let db = versionEvent.target['result'];
    let upgradeTransaction = versionEvent.target['transaction'];

    if(versionEvent.oldVersion < 1) {
        let objStore = db.createObjectStore('sample');
        objStore.add('one', '1');
        objStore.add('two', '2');
    }

    if(versionEvent.oldVersion >= 1) {
        let getCursor = upgradeTransaction.objectStore('sample').openCursor();

        getCursor.onsuccess = (e) => {
          let cursor = e.target['result'];
          if (cursor) {
            setTimeout(() => {
              cursor.update(cursor.value + ' updated');
              cursor.continue();
            })
          }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

javascript database asynchronous transactions indexeddb

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

Mobx doesn't observe classes in observable array

If I push a class instance into an observable array in MobX then it is not observed. However if I push a literal object into an observable array then it will be observed.

The docs for observable arrays say that

"all (future) values of the array will also be observable"

so I am trying to understand why this happens.

For example the following code can be run in node:

let mobx = require('mobx');

class TodoStore {
  constructor() {
    this.todos = …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs mobx

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

在Tensorflow 2中的每个纪元后计算每个班级的召回率

我正在尝试在使用Tensorflow 2的Keras API的模型中的每个纪元后为每个类计算二进制和多类(一种热编码)分类方案中的召回率。例如对于二进制分类,我希望能够做类似的事情

import tensorflow as tf
model = tf.keras.Sequential()
model.add(...)
model.add(tf.keras.layers.Dense(1))

model.compile(metrics=[binary_recall(label=0), binary_recall(label=1)], ...)
history = model.fit(...)

plt.plot(history.history['binary_recall_0'])
plt.plot(history.history['binary_recall_1'])
plt.show()
Run Code Online (Sandbox Code Playgroud)

或者在多类情况下,我想做类似的事情

model = tf.keras.Sequential()
model.add(...)
model.add(tf.keras.layers.Dense(3))

model.compile(metrics=[recall(label=0), recall(label=1), recall(label=2)], ...)
history = model.fit(...)

plt.plot(history.history['recall_0'])
plt.plot(history.history['recall_1'])
plt.plot(history.history['recall_2'])
plt.show()
Run Code Online (Sandbox Code Playgroud)

我正在为不平衡的数据集进行分类,并且希望能够看到少数类的召回率在什么时候开始下降。

我在/sf/answers/2920255691/中找到了针对多类分类器中特定类的精度实现。我正在尝试使其适应我的需求,但keras.backend对我来说仍然很陌生,因此,我们将不胜感激。

我还不清楚我是否可以使用Keras metrics(因为它们是在每个批处理的末尾进行计算,然后取平均值),或者是否需要使用Keras callbacks(可以在每个时期的末尾运行)。在我看来,它不应该对召回有所帮助(例如8/10 == (3/5 + 5/5) / 2),但这就是为什么在Keras 2中取消了召回的原因,所以也许我缺少了一些东西(https://github.com/keras-team/keras/issues / 5794

编辑-部分解决方案(多类分类) @mujjiga的解决方案适用于二进制分类和多类分类,但是正如@ P-Gn指出的那样,tensorflow 2的Recall度量支持多类分类的现成支持。例如

from tensorflow.keras.metrics import Recall

model = ...

model.compile(loss='categorical_crossentropy', metrics=[
    Recall(class_id=0, name='recall_0')
    Recall(class_id=1, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras tensorflow tensorflow2.0

5
推荐指数
2
解决办法
711
查看次数

如何从Angular2中的父组件类访问子组件类?

在Angular 2中,如何从父组件类访问子组件类?例如

import {Component, View} from 'angular2/core';

@Component({selector: 'child'})
@View({template: `...`})
class Child {
    doSomething() {
        console.log('something');
    }
}

@Component({selector: 'parent'})
@View({
    directives: [Child],
    template: `<child></child>`
})
class Parent {
    constructor() {
        //TODO: call child.doSomething() when the child component is ready
    }
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我如何从组件的构造函数或一些回调函数中调用Child组件的doSomething()方法Parent.

typescript angular

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

TypeScript 类型缩小似乎做出了错误的假设

即使第 4 行访问的属性x不存在,以下代码也不会出现 TypeScript 错误。

type T = {num1: number, num2: number} | {str1: string, str2: string}
let x: T = {num1: 1, num2: 2, str1: 'hello'};
if('str1' in x) {
  console.log(x.str2.toUpperCase());
}
Run Code Online (Sandbox Code Playgroud)

这是 TypeScript 的错误吗?或者有人可以向我指出解释此行为的文档吗?似乎 TypeScript 不应该允许在第 2 行进行赋值,或者它不应该假设'str1' in x暗示'str2' in x.

typescript

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

需要一个C++库来将excel文件从1995转换为新文件

我想知道是否有人知道可以将1995 .xls文件(Microsoft Excel v7.0)转换为1997或更高版本的excel文件的C++实用程序.

它不需要是免费的.

谢谢

c++ excel

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

使用pandas将字符串列表转换为虚拟变量

如果我有以下熊猫DataFrame

pd.DataFrame(columns=['name', 'tags'], data=[
    ['Rob', ['a', 'c']],
    ['Erica', ['b', 'c']]
])
Run Code Online (Sandbox Code Playgroud)

表:

Name   tags
Rob    ['a', 'c']
Erica  ['b', 'c']
Run Code Online (Sandbox Code Playgroud)

我如何将其转换为:

Name   tags_a  tags_b  tags_c
Rob    1       0       1
Erica  0       1       1
Run Code Online (Sandbox Code Playgroud)

如果每行只能包含1个标记,则可以使用此标记,pd.get_dummies(df, columns=['tags'])但当tags是时,此标记将不起作用List

python pandas

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

C++函数指针语法

我试图在VC++中创建一个函数指针,但我不断收到语法错误.

我的头文件中的声明如下所示:

 void ApplyFuncToCellsInSelection(void(*func)(CPoint, *CSpreadWnd));
Run Code Online (Sandbox Code Playgroud)

这是定义:

void CSpreadWnd::ApplyFuncToCellsInSelection(void(*func)(CPoint, *CSpreadWnd)) { ... }
Run Code Online (Sandbox Code Playgroud)

以下是我收到的错误消息:

c:\...\spreadwnd.h(274) : error C2059: syntax error : 'function-style cast'
c:\...\spreadwnd.h(274) : error C2059: syntax error : ')'
c:\...\spreadwnd.h(274) : error C2143: syntax error : missing ')' before ';'
Run Code Online (Sandbox Code Playgroud)

我知道这可能是一件非常简单的事情,但我似乎无法解决这个问题.

c++ function-pointers visual-c++

0
推荐指数
2
解决办法
3175
查看次数