Solidot 公告
文章提交注意事项:
请在发布文章时用HTML代码加上至少一条新闻来源的链接;原创性消息,可加入相关信息(如涉及公司的网址)的链接。有任何问题,邮件至:he.fang#zhiding.cn
注意:收到邮件乱码的用户请修改客户端的默认字体编码,从"简体中文(GB2312)"修改为"Unicode(UTF-8)"。
去年 12 月研究人员发现了据信是第一种由专业网络犯罪组织用 Rust 语言开发的勒索软件 ALPHV/BlackCat。相比 C 或 C++ 语言 Rust 是一种更安全的编程语言,用 Rust 开发的程序更难找到常见的编程漏洞,如果有更多网络犯罪组织切换到 Rust 语言,将会加大安全公司发现勒索软件漏洞的难度。Krebs on Security
援引消息来源
报道,ALPHV/BlackCat 的一名开发者网名叫 Binrs,曾在俄语自我介绍有六年的 Rust 开发经验。
2018 年一名没有编程经验的现场技术员为澳大利亚电信公司 Telstra 构建了一个应用,统一了 70 个报告电话线问题的消息系统。应用的用户界面有些凌乱,登陆页面堆满了 150 个按钮和 1 个本地新闻指示。今天有 1700 名 Telstra 技术人员在使用它,为公司每年节省了 1200 万美元。这种零编程/编程量非常少的应用开发模式已成为一种趋势,让没有经过专业训练的公民程序员
成为企业数字化的新生力。研究公司 Evans Data Corporation 估计,全世界有大约 2500 万人精通标准编程语言,而程序员的需求缺口有 140 万。到 2025 年缺口将会进一步增加到 400 万。IDC 估计在 2021 年全世界有 260 万低代码/零编程开发者,2025 年前他们的人数将会每年增长 40%。微软的零编程平台 Power Apps 月活跃用户有 1000 万,它的 Visual Basic 语言是低代码/零编程的早期尝试。对这一趋势的质疑仍然存在,专业程序员指出,零编程平台让一个应用九成五的功能很容易实现,但剩余 5% 的功能几乎不可能实现。专业程序员仍然会是企业产品和关键业务系统开发的主力军,他们将会得到越来越多具有编程能力的企业员工的帮助。
最新版本的 Android 恶意程序 BRATA
能在窃取数据之后将设备恢复到出厂设置,抹掉设备上的所有数据掩盖其活动痕迹。BRATA 在 2019 年最早被发现时属于一种 Android RAT(远程访问工具),主要针对巴西用户。安全公司 Cleafy 在 2021 年 12 月报告 BRATA 开始在欧洲等地出现,并增加了更多功能,它发展成为窃取电子银行登录凭证的恶意程序。其最新版本针对了英国、波兰、意大利、西班牙、中国和拉美的电子银行用户,每个变种针对了不同的银行,都使用了类似的混淆技术以躲避安全软件的检测。它会寻找设备上安全程序的痕迹,会在执行渗透前删除安全工具。
苹果释出了 macOS Monterey 12.3 Beta,
一个主要变化是不再捆绑 Python 2.7。苹果建议开发者使用 Python 3 或替代语言。Python 语言项目是在 2020 年 1 月 1 日停止支持 Python 2 分支,接替 Python 2 的 Python 3 早在 2008 年就已经发布,但由于它不向后兼容,导致许多用户仍然停留在 Python 2 分支。macOS 没有预装 Python 3,开发者可选择安装捆绑 Python 3 的 Xcode 开发工具。
function effect_add(ele,num2=1){
var num1 = parseInt(ele.text());
num2=num1+1;
var tt = 15;
var cc = 3;
var span_num = num2-num1;
if(span_num<=0)return false;
if(span_num<10){
tt=0.1;cc=1;
}else if(span_num>=10 && span_num<20){
tt=10;cc=2;
}else{
tt=15;cc=3;
}
var nn = 0;
var tc = parseInt(span_num/cc);
var c_num = 0;
var rt = parseInt(tt*100/tc);
var t = setInterval(function(){
if(c_num == tc){
var val = num1+span_num;
clearInterval(t);
}else{
var val = num1+cc*c_num;
}
ele.text(val);
c_num++;
},rt);
}
$("div.actions a[rel=hvala]").click(function () {
var _this = $(this);
var span = _this.find('span');
var id = _this.attr('data');
$.post('//solidot.justindustin.workers.dev/my/act?op=hvala', {id: id}, function (data) {
var data = eval("(" + data + ")");
if (data.id == 1) {
effect_add(span,data.num);
_this.parent('li').toggleClass('active');
} else {
alert(data.msg);
if (data.id == -2) {
window.location.href = "/login";
}
}
});
});
$("div.actions a[rel=fav]").click(function () {
window.location.href="/login";
})
$('div.block_m span.user').mouseover(function () {
var _this = $(this).children('.user_box');
if (_this.html() == "") {
var start = '
';
var end = '
';
_this.html(start + '
' + end);
$.ajax({
type: "POST",
url: "/user/userinfo",
data: "user=" + $(this).attr('id'),
success: function (data) {
var data = eval("(" + data + ")");
var content = '';
if (data[0] == -2) {
content += '
暂无个人简介
';
} else {
content += '
' + data[0][0] + data[0][1] + '
';
content += '
关系:';
if (data[1] == -1) {
content += '自己';
} else if (data[1][0] == 0) {
content += '
普通
修改关系';
} else if (data[1][0] == 1) {
content += '
朋友
修改关系';
} else if (data[1][0] == 2) {
content += '
敌人
修改关系';
}
content += "
";
if (data[2] != undefined) {
content += '
签名:' + data[2] + '
';
}
}
_this.html(start + content + end);
}
})
}
else
_this.removeClass('hiden')
}).mouseout(function () {
$(this).children('div.user_box').addClass('hiden')
})
$('#ul_nav li.s_icon').mouseover(function(){
var d = $(this).children('div');
d.toggleClass('hiden');
}).mouseout(function(){
var d = $(this).children('div');
d.toggleClass('hiden');
});
$('.wechat').mouseover(function(){
$('.wechat_code').toggleClass('hiden');
}).mouseout(function(){
$('.wechat_code').toggleClass('hiden');
});
$(document).ready(function(){
$('.nav-secondary a').click(function(){
var _txt = $(this).text();
_hmt.push(['_trackEvent', 'nav', 'click', _txt])
})
$('.btn_ss').click(function(){
var _txt = $(".textinp").val()
_hmt.push(['_trackEvent', 'search', 'click', _txt])
})
$('.block_m a').click(function(){
var _txt = $(this).text();
_hmt.push(['_trackEvent', 'story', 'click', _txt])
})
})
document.write(unescape("%3Cscript src='https://hm.baidu.com/h.js%3Fd11396a350156e4682e4156a671bdaf1' type='text/javascript'%3E%3C/script%3E"));