小编Pav*_*ara的帖子

scala运行时的安全性

我是Robocode引擎的开发者.我们想使Robocode多语言和Scala似乎是很好的匹配.我们这里有Scala插件原型.

问题: 因为用户是有创造力的程序员,他们可能会尝试以不同的方式赢得战斗.还可以从在线数据库下载机器人,任何人都可以上传机器人.因此,安全性的差距可能会导致用户计算机的安全漏洞.用Java编写的机器人在受限制的沙箱中运行.几乎所有东西都被禁止[网络,GUI,磁盘(有限),线程(有限),类加载器和反射].沙箱类似于浏览器小程序.我们使用SecurityManager,每个机器人自定义ClassLoader 等...

有两种方法可以在Robocode中托管Scala运行时:

1)将其与机器人一起装入沙箱内.我们非常安全,首选解决方案.但它会损害Scala运行时功能,因为运行时使用反射.也许在运行时生成类?使用线程进行一些内部清理?访问JVM /内部?(我不想限制语言的能力)

2)使用Scala运行时作为可信代码,在框外,安全性与JDK处于同一级别.(恶意)机器人的可见性.Scala运行时API是安全的吗?他们有保安人员的方法吗?有安全模式吗?Scala运行时是否有任何单例,可能会滥用机器人之间的通信?任何可以模拟线程的concurency/threadpool/messaging?(Scala运行时是否有任何安全审核?)

3)介于两者之间,某些运行时类和一些运行类.机器人/哪些类/包必须是可见的?它们只是私有实现?(这似乎是未来的解决方案)

问题: 是否有可能枚举和隔离必须在其余部分中运行在受信任范围内的运行时部分?具体的包和类?还是更好的主意?

我正在寻找具体的答案,这将导致安全的解决方案.随意的想法欢迎,但没有奖励.scala电子邮件小组正在进行讨论.还没有具体的答案.

security jvm scala runtime robocode

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

.NET中严格浮点数学的库

我有Java的算法/计算和单元测试.单元测试期望结果具有一定的精度/ delta.现在我将算法移植到.NET中,并希望使用相同的单元测试.我使用双数据类型.

问题是Java对Math类中的某些操作使用strictfp(64位)..NET使用FPU/CPU总是(80位)..NET更精确,更快捷.Java更具可预测性.

Because my algo is cyclic and reuses the results from previous round, the error/difference/more-precision accumulates too big. I don't rely on speed (for unit test). And I'm happy to use .NET precision in production, but I would like to validate the implementation.

Consider this from JDK


public final class Math {
    public static double atan2(double y, double x) {
    return StrictMath.atan2(y, x); // default impl. delegates to StrictMath
    }
}
Run Code Online (Sandbox Code Playgroud)

I'm looking for library or technique to …

.net java floating-point

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

功能语言中的分解(模块化)

有个主意:函数(在FP中)可以像OOP中的组件一样组成.对于OOP中的组件,我们使用接口.对于函数,我们可以使用委托.目标是实现分解,模块化和可互换性.我们可以使用依赖注入来简化它.

我试着找一些关于这个话题的东西.没运气.可能是因为没有足够大的功能程序需要这个?在搜索用FP编写的企业级应用程序时,我找到了这个列表. 现实世界中的功能编程本文.我希望我错过了FP的杀手级应用程序,这个应用程序足够大,值得分解.

问题:您能否展示出体现真实的FP应用程序(最好是开源),它将分解用于模块?

Bonus chatter:使用的常用模式是什么?什么样的功能通常会分解成单独的模块?这些实现是否曾被用于测试目的?

components functional-programming dependency-injection

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

MVVM模式:ViewModel在模型服务器往返后更新

我在服务器端有无状态服务和贫血域对象.服务器和客户端之间的模型是POCO DTO.客户端应该成为MVVM.该模型可以是20个不同类的约100个实例的图.客户端编辑器包含各种标签页,所有标签页都与模型/视图模型实时连接.

我的问题是如何在服务器往返之后传播更改很好的方法.将更改从ViewModel传播到DTO非常容易.回过头来,可以扔掉旧的DTO并用新的DTO替换它,但它会导致很多重新绘制list/DataTemplates.

我可以收集服务器端的更改并将它们传输到客户端.但是更改的字段名称将是特定于域/ DTO的,而不是特定于ViewModel的.对我来说,映射看起来并不重要.如果我应该在往返后以强制方式执行,那么它将破坏viewModel的SOC /模块性.

我正在考虑某种映射规则引擎,比如automappper或者发射映射器.但它解决了非常简单的用例.我没有看到它如何映射/传播/转换添加项目到列表或删除.如何识别集合中的实例,以便它可以将值合并到现有实例.它也应该传播验证/错误信息.

也许我应该在DTO上实现INotifyPropertyChanged并尝试在其上重放服务器端事件?然后将ViewModel绑定到它?将绑定解决问题与集合合并的好方法?PRISM的EventAgregator对此有用吗?是否有任何事件记录重播组件?

对于具有服务器端逻辑的架构,是否有更好的客户端模式?

data-binding wpf design-patterns mvvm dto

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