小编Ran*_*itz的帖子

在无形状中,有两个列表,其中一个包含另一个的类型

在无形状中l1,我正在尝试编写一个函数,它需要两个l2具有任意长度的HLists ,它们具有以下属性:

  1. 长度l1l2是一样的.
  2. l2包含l1在常量外部类型构造函数中包含的确切类型.

所以,如果l1是的话

1 :: 1.2 :: "hello" :: HNil`
Run Code Online (Sandbox Code Playgroud)

l2 可能

Ordering[Int] :: Ordering[Double] :: Ordering[String] :: HNil
Run Code Online (Sandbox Code Playgroud)

使用UnaryTCConstraintLengthAux让我约束长度并需要一个静态外部构造函数l2,但是它们符合它们已经成为一个问题.

关于我如何去做的任何想法?

scala shapeless

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

通过mitmproxy运行docker容器

我正试图通过mitmproxy在另一个docker容器中运行来路由docker容器的所有流量.为了mitmproxy工作,我必须更改原始docker容器的网关IP.

这是我想要做的一个例子,但是我想把它限制在docker容器内部.

有关我如何能够做到这一点的任何想法?另外,我想避免在特权模式下运行两个docker容器中的任何一个.

security gateway docker mitmproxy

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

在Java中链接数组赋值

请考虑Java中的以下代码段.我知道temp[index] = index = 0;以下代码片段中的语句几乎是不可接受的,但在某些情况下可能是必要的:

package arraypkg;

final public class Main
{
    public static void main(String... args)
    {
        int[]temp=new int[]{4,3,2,1};
        int index = 1;

        temp[index] = index = 0;
        System.out.println("temp[0] = "+temp[0]);
        System.out.println("temp[1] = "+temp[1]);
    }
}
Run Code Online (Sandbox Code Playgroud)

它在控制台上显示以下输出.

temp[0] = 4
temp[1] = 0
Run Code Online (Sandbox Code Playgroud)

我不明白temp[index] = index = 0;.

怎么temp[1]包含0?这项任务是如何发生的?

java

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

为什么在抛弃指向该对象的指针而不是UB后写入非const对象?

根据C++标准,const如果对象const本身不是,那么抛弃指针并写入对象是可以的.这样:

 const Type* object = new Type();
 const_cast<Type*>( object )->Modify();
Run Code Online (Sandbox Code Playgroud)

没关系,但这个:

 const Type object;
 const_cast<Type*>( &object )->Modify();
Run Code Online (Sandbox Code Playgroud)

是UB.

原因在于,当对象本身是const允许编译器优化对它的访问时,例如,不执行重复读取,因为重复读取对于不改变的对象没有意义.

问题是编译器如何知道实际上是哪些对象const?例如,我有一个功能:

void function( const Type* object )
{
    const_cast<Type*>( object )->Modify();
}
Run Code Online (Sandbox Code Playgroud)

并将其编译为静态库,编译器不知道它将被调用的对象.

现在调用代码可以这样做:

Type* object = new Type();
function( object );
Run Code Online (Sandbox Code Playgroud)

它会很好,或者它可以做到这一点:

const Type object;
function( &object );
Run Code Online (Sandbox Code Playgroud)

它将是未定义的行为.

编译器应该如何遵守这些要求?如果不使后者工作,它应该如何使前者工作?

c++ const const-correctness const-cast undefined-behavior

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

Yii2:为什么验证错误不会抛出异常?

我不确定这是否仅限于Yii2,或者它是否也可以与其他框架或甚至一般性讨论.

在Yii2中,我可以在模型对象上调用validate().这将返回true或false.如果为false,我可以调用getErrors()来查看此对象中当前存在哪些验证问题.

为什么这种行为以这种方式实现?为什么validate()不会抛出一些ValidationExceptions?我发现错误也是模型对象的一部分.为什么他们不属于这种例外?

这种实现的优点是什么?为什么这样做?我更喜欢例外.有了这个,我可以更好地区分所需的和特殊的处理.所有不需要的东西都在catch块中处理.期望发生在try块中.这不是个好主意吗?

validation exception-handling yii yii2

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

包名称应符合命名约定(squid:S00120)和下划线

SonarLint产生错误:

Package names should comply with a naming convention (squid:S00120) ... With the default regular expression ^[a-z]+(\.[a-z][a-z0-9]*)*$.

但是,JLS允许甚至建议使用下划线.第6.1条.声明说,ia,

如果域名包含连字符或标识符(第3.8节)中不允许的任何其他特殊字符,请将其转换为下划线.

我可以更改正则表达式还是必须在产品中修复?

java sonarlint

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

使用java.lang.Runtime.getRuntime无法在matlab中调用多个python脚本实例

我在Windows 10上运行Matlab2017.我调用一个python脚本,在云上运行一些语音识别任务,如下所示:

 userAuthCode=1;% authentication code for user account to be run on cloud
 cmd = ['C:\Python27\python.exe runASR.py userAuthCode];  
 system(cmd);
Run Code Online (Sandbox Code Playgroud)

当调用上面的命令时,python脚本在ASR云引擎上运行输入音频文件,并且在运行时,我可以在Matlab控制台中看到来自Python的音频文件的语音识别分数.我想做以下事情:

(1)并行执行多个这样的命令.可以说,我有2个输入音频文件(每个都有不同的音频段),我想运行上面的命令2次,但并行,使用单独的进程.我能够创建一个应该能够执行此操作的代码段:

 for i=1: 2
     userAuthCode=i;
     cmd = ['C:\Python27\python.exe runASR.py userAuthCode];  
     runtime = java.lang.Runtime.getRuntime();        
     pid(i) = runtime.exec(cmd);
 end

 for i=1:2
    pid(i).waitFor();
    % get exit status
    rc(i) = pid(i).exitValue();       
 end
Run Code Online (Sandbox Code Playgroud)

现在,当执行上面的代码时,我可以看到data1的ASRE分数,但不能看到数据2
的ASRE分数.变量rc中的退出状态是0,1,这证实了这一点.问题是我不知道错误的原因,因为Matlab中没有打印任何内容.如何从java/Matlab变量中捕获的Python中获取错误消息,以便我可以看看?

问题可能是并不支持多个ASRE并行调用(当然使用不同的用户帐户)但除非我能看到错误,否则我不会知道.

(2)当我独立运行单个命令时,如帖子开头所述,我能够在Matlab控制台中看到每个音频片段的Score消息,因为它们是从Python获得的.但是,使用java.lang.Runtime.getRuntime()和相关代码进行多处理时,Matlab控制台中不会显示任何消息.有没有办法显示这些消息(我假设显示可能是异步的?)

谢谢

python java matlab multiprocessing

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

获取LinkedIn用户的主图片URL

当请求特定用户的基本配置文件字段时,我们会得到以下信息:

  1. picture-url,大小为 100x100 像素的方形个人资料图片的 URL。

  2. picture-urls,包含原始上传图片的 URL 的列表。

我需要的是用户的方形尺寸更高质量的图片。

我知道用户的主图片(可以在他/她的个人资料页面上找到https://www.linkedin.com/in/[user_id]/)的大小为 200x200 像素,这要好得多。

如何通过API访问该图片URL?

备注:如果我尝试生成此 URL,则会收到“拒绝访问”错误。

linkedin-api

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

Java 10'var'和继承

在查看此处显示var功能之后:

我在使用JDK 10设置Eclipse/IntelliJ IDEA IDE时遇到了困难,因此请求具有可用Java 10环境的Stack Overflow用户提供帮助.

考虑以下:

public class A {
   public void someMethod() { ... }
}
public class B extends A{
   @Override
   public void someMethod() { ... }
}
...
...
...
var myA = new A(); // Works as expected
myA = new B(); // Expected to fail in compilation due to var being
               // syntactic sugar for declaring an A type
myA = (A) (new B()); // Should work
myA.someMethod(); // …
Run Code Online (Sandbox Code Playgroud)

java var java-10

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

Java不推荐使用的API和SuppressWarnings“不推荐使用”-实用方法

我已经看到了许多在API使用Deprecated注释以将其标记为“需要尽快替换”的示例。

但是,在几乎所有这些情况下,代码开发人员不仅继续使用已弃用的API,而且还抑制了弃用警告

API开发人员的最佳意图似乎最终是创建更多与已实现的业务逻辑无关的代码-如果不赞成使用API​​,但在抑制相关警告的情况下继续使用它,则似乎充其量只是代码的降级,并且在IMHO最差的情况下替换不推荐使用的库时,可能会导致应用程序中断。

有解决这个问题的切实可行的方法吗?至少,如果确实在CR中保留了较长时间,是否可以将这种情况标记为代码气味?

请提出您可能正在使用的实际解决方案(库,SCA,CR插件等.....)

是否有计划中的JRE / JDK功能可以帮助解决这种情况?我的研究目前还没有发现任何东西。

参考文献:

java deprecated suppress-warnings deprecation-warning

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