我正在研究安全关键软件的开发,特别是编程语言的选择对这种开发的影响.
请详细说明常用的语言及其原因.
我们是开发人员,我们有一个数字签名应用程序安装程序.当我们安装此应用程序时,它会弹出影响安装体验的智能屏幕.它说
Windows保护您的PC
Windows SmartScreen阻止了无法识别的应用程序启动,运行此应用程序可能会使您的PC面临风险.
我认为除了数字签名之外,微软还有一些策略来验证应用程序.有没有人有这个问题的经验,请给我一些线索来解决这个问题?
在10以上版本的任何Microsoft IE浏览器上查看我的应用程序时,我在控制台上收到以下奇怪的错误:

我已尝试在AngularJS lib之前添加以下JavaScript代码来取消控制台:
console.log = function(){};
window.console = {log: function(){}};
Run Code Online (Sandbox Code Playgroud)
它没有任何区别.IE 10中的相同错误显示为:
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
Run Code Online (Sandbox Code Playgroud)
可能是我试图从API获取'/ me'以检查用户是否经过身份验证或访客.
基本上.每次服务器提供2XX或3XX以外的响应时,消除那些恼人的控制台错误都会很棒!
更新:这似乎与通过不同的子域(CORS)访问API有关;
我有一个gradle构建设置,在其开头我想在一个准备我的环境的子目录中执行一个shellcript.
task build << {
}
task preBuild << {
println 'do prebuild stuff:'
}
task myPrebuildTask(type: Exec) {
workingDir "$projectDir/mySubDir"
commandLine './myScript.sh'
}
build.dependsOn preBuild
preBuild.dependsOn myPrebuildTask
Run Code Online (Sandbox Code Playgroud)
但是,当我通过调用gradle myPrebuildTask或简单地构建项目来执行任务时,会发生以下错误:
> A problem occurred starting process 'command './myScript.sh''
Run Code Online (Sandbox Code Playgroud)
不幸的是,这就是我得到的.
我也试过以下 - 同样的错误.
commandLine 'sh mySubDir/myScript.sh'
Run Code Online (Sandbox Code Playgroud)
我在Windows上使用Gradle 1.10(Android需要),在Cygwin shell中.有任何想法吗?
是否可以使用Python 制作简约操作系统?
我真的不想进入像汇编这样的低级代码,所以我想使用
像Perl或Python这样的简单语言.但是怎么样?
Jetbrains提供了一些文档,但我找不到如何运行Kotlin的编译类文件.
hello.kt:
fun main(args : Array<String>) {
println("Hello, world!")
}
Run Code Online (Sandbox Code Playgroud)
编译:
$ kotlinc -out dist -src hello.kt
$ ls dist
namespace.class
$ java dist/namespace
Exception in thread "main" java.lang.NoClassDefFoundError: dist/namespace (wrong name: namespace)
$ java -jar /usr/local/kotlin/lib/kotlin-runtime.jar
Failed to load Main-Class manifest attribute from
/usr/local/kotlin/lib/kotlin-runtime.jar
Run Code Online (Sandbox Code Playgroud)
如何运行Kotlin程序?
我有一个每小时产品使用情况表(产品使用次数)数据 -
ID (bigint)| ProductId (tinyint)| Date (int - YYYYMMDD) | Hour (tinyint)| UsageCount (int)
#|1 | 20140901 | 0 | 10
#|1 | 20140901 | 1 | 15
#|1 | 20140902 | 5 | 25
#|1 | 20140903 | 5 | 25
#|1 | 20140904 | 3 | 25
#|1 | 20140905 | 7 | 25
#|1 | 20140906 | 10 | 25
#|1 | 20140907 | 9 | 25
#|1 | 20140908 | 5 | 25
#|2 | …Run Code Online (Sandbox Code Playgroud) 我有一个小方法,除其他外,还将字符串转换为整数.由于字符串是方法的参数,我想确保该字符串是可转换的.所以我只是想知道什么是最安全和/或最快的方式.
版本A:保持原样并承担风险(我试图避免)
public static int stringToInt(String param) {
return Integer.valueOf(param);
}
Run Code Online (Sandbox Code Playgroud)
(就速度而言,它会对版本B和C产生什么样的差异?)
版本B:抓住异常
public static int stringToInt(String param) {
try {
return Integer.valueOf(param);
} catch(NumberFormatException e) {
return -1;
}
}
Run Code Online (Sandbox Code Playgroud)
版本C:检查字符串的每个字母,看它是不是数字
public static int stringToInt(String param) {
for(char c : param.toCharArray()) {
if(!Character.isDigit(c))
return -1;
}
return Integer.valueOf(param);
}
Run Code Online (Sandbox Code Playgroud)
请注意,参数必须是一个正数,-1应该是我的小程序中的"错误值",换句话说,所有三个版本的方法在我的程序中都可以正常工作.
我对你可以给我的任何其他建议持开放态度,所以如果你认为自己的版本更好,请随意创建自己的版本.
非常感谢您的支持.
我真的很喜欢使用Bitbucket或Github,但我经常离线,无法访问我们项目的问题页面.最近Github发布了一个允许管理repo的Mac桌面应用程序,但是我找不到任何Mac/Windows/Linux桌面应用程序,这将允许我管理Github或Bitbucket问题,然后将它们推送到实际的服务器.
有没有这样的东西?还是其他推荐?谢谢.