首页 文章 精选 留言 我的

精选列表

搜索[分代式],共10000篇文章
优秀的个人博客,低调大师

VoltPillager:针对Intel SGX的下一代欠电压攻击

此前 Plundervolt等同类工作表明,欠电压攻击可能破坏 Intel SGX 的安全保护。随后,Intel 在 2019 年末通过微码更新和 BIOS 更新来修复此漏洞。 与 Plundervolt 基于软件的实现不同。如今,伯明翰大学的研究人员通过制造成本为 30 美元的硬件设备来控制 CPU 的电压,成功攻陷了 SGX 的安全防护。 VoltPillager 可以用于控制 CPU 的电压,可以避开 Intel 的软件解决方案,该攻击需要对计算机硬件的物理访问。这项研究利用了一个单独的电压调节器芯片来控制 CPU 的电压,VoltPillager 连接到这个不受保护的接口并精确控制电压。伯明翰大学的研究表明,这种硬件欠电压攻击可以实现与 Plundervolt 相同(甚至更多)的功能。 伯明翰大学计算机安全博士学位的学生 Zitai Chen 表示:“这个漏洞使攻击者(如果他们控制了硬件)可以破坏 SGX 的安全性。也许现在是时候重新考虑 SGX 的威胁模型了。它真的可以抵御内部恶意人员或从云服务提供商侧的攻击吗?” VoltPillager 将在 Usenix Security 2021 会议上发表。该研究部分由工程与物理科学研究委员会(EPSRC),欧盟的 Horizon 2020 研究与创新计划以及 Paul and Yuanbi Ramsay 捐赠基金资助。 所有源码与 PoC 代码都可以在 GitHub 仓库中找到。 参考来源: Birmingham GlobalSecurityMag 【责任编辑: 赵宁宁 TEL:(010)68476606】

优秀的个人博客,低调大师

初代iPhone原型机曝光:显示不同设计的静音开关

今天有一组关于 iPhone 2G 尚未发布的原型机照片出现在了网上,表明苹果当时考虑了静音开关的不同位置,以及该开关本身的设计。 这些原型机使苹果的设计师对最终产品的外观有了更好的了解,从而可以在开始批量生产之前进行更改。 图中的三部原型机在大小和设计上极为相似,包括从后部可以看到蜂窝和网络等细节信息。在生产的这个阶段,这些装置都刻上了惯用的 Apple logo,但并非所有设备都雕有容量以及制造信息。 三部设备上的静音开关的特写镜头显示了设备之间的微小变化,除了开关的位置略有变化外,有一部原型机还显示了按钮表面上刻有的一个小铃铛,以提示用户按钮的功能。 另一张图则显示了 iPhone 开机并配备了苹果的内部诊断工具的界面,包括“SkankPhone”,这是一个基本的用户界面,可以在不使用最终UI设计的情况下试用核心功能。AT Command,Burn-In,Operator,Soundwave 和 Rumble 的其他图标也清晰可见,该图还显示用户可以使用 USB 线将 iPhone 连接到运行 iTunes 的 Mac 或 PC。 似乎每隔一段时间,就会有类似的原型机设计曝光,有时候再回头看看以前的设计还是挺有意思的。

优秀的个人博客,低调大师

我为什么推荐Prettier来统一代码风格

译者按: 关于代码风格,不同的人有不同的偏好,其实并没有什么绝对的对错。但是,有 2 条原则应该是对的: 少数服从多数;用工具统一风格。 原文: Why robots should format our code for us 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。 我曾经以为,程序员有自己独特的代码风格挺好的。因为,一个成熟的程序员应该清楚,好的代码应该是怎样的。 我的大学教授告诉我,他的学生在用我的代码,因为我的代码风格不一样。我想了一下,也许是因为我的代码至少是有风格的,而其他人的代码一团糟。 一些示例 示例 1: 读了The Programmers’ Stone之后,我把大括号这样写: if (food === 'pizza') { alert('Pizza ;-)'); } else { alert('Not pizza ;-('); } 但是,我意识到在前端社区里,也许只有我一个人这样写的。而其他人都是这样写的: if (food === 'pizza') { alert('Pizza ;-)'); } else { alert('Not pizza ;-('); } 或者这样: if (food === 'pizza') { alert('Pizza ;-)'); } else { alert('Not pizza ;-('); } 于是,我改变了风格,采用了最后一种写法。 示例 2 将多个方法链接起来时,我喜欢这样写: function foo(items) { return items .filter(item => item.checked) .map(item => item.value) ; } 示例 3 读了Why you should enforce Dangling Commas for Multiline Statements,我意识到了trailing commas写法更加易于重构: const food = [ 'pizza', 'burger', 'pasta', ] 但是,这种写法非常少见。我审查过的代码中,没人这样写。于是,我只能放弃这种写法,向现实世界低头。 示例 4 我还有一个不合群的习惯。在行尾写代码注释之前,我习惯敲 2 个空格: const volume = 200; // ml 我觉得这样写好看些。但是,这会导致代码不一致,因为其他人只敲一个空格。 JavaScript 开发者是怎样做的 很遗憾,JavaScript 没有官方的代码风格。业界有一些流行的代码风格,比如Airbnb和Standard。使用它们的话,团队成员之间的代码会更易读。 你也可以使用ESLint 来统一风格。但是它并不能保证代码 100%一致。比如,ESLint 的 Airbnb 配置,只能统一示例 1的代码风格,而不能统一后面两者。 JavaScript 开发者应该怎么做? 有一些语言有非常严格的代码风格,并且有工具可以用于统一风格。因此,开发者不需要浪费时间去争论代码风格的优劣。例如,Reason 语言的Refmt,和 Rust 语言的Rustfmt。 现在,JavaScript 终于有了一个解决方案。有一个新工具,叫做Prettier,它运用自身的规则将你的的代码重新格式化。无论你之前的代码风格是怎样。 我们不妨试用一下 Prettier。 输入代码是这样的: if (food === 'pizza') { alert('Pizza ;-)'); } else { alert('Not pizza ;-('); } function foo(items) { return items .filter(item => item.checked) .map(item => item.value) ; } const food = [ 'pizza', 'burger', 'pasta', ] Prettier 处理之后的代码是这样的: if (food === "pizza") { alert("Pizza ;-)"); } else { alert("Not pizza ;-("); } function foo(items) { return items.filter(item => item.checked).map(item => item.value); } const food = ["pizza", "burger", "pasta"]; 也许,你并不喜欢这种风格。比如,我不喜欢 else 放在大括号后面,也不喜欢把链式方法全部写在同一行。但是,我发现使用Prettier有很多益处: 几乎不需要做决定,因为 Prettier 的配置选项很少。 团队成员不需要为规则去争论。 开源代码开发者不需要去学习项目的代码风格。 不需要去修复 ESLint 报告的风格问题。 保存文件的时候可以自动统一风格。 结论 Prettier 已经被一些非常流行的项目比如 React 和 Babel 采用了。对于我自己的项目,我已经开始从自己的个性化风格全部转为 Prettier 风格。相比于 Airbnb 代码风格,我更推荐 Prettier。 刚开始,我会觉得 Prettier 风格非常差。但是,当我发现自己需要手动去调整代码风格时,我意识到 Prettier 真的非常好用。 Prettier 可以在保存文件的时候可以自动统一风格: 感兴趣的话,可以按照这个教程配置 Prettier。 关于Fundebug Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎大家免费试用 版权声明 转载时请注明作者Fundebug以及本文地址:https://blog.fundebug.com/2017/10/23/format-code-use-Prettier/

优秀的个人博客,低调大师

Kubernetes 是下一代操作系统 | 面向 Kubernetes 编程

此文章适合没有任何 Kubernetes/容器/Docker 经验的同学 —在不久的将来,你不懂如何操作 Kubernetes 接口,就等于现在的你不懂最普通的 Linux 命令。此文章阅读耗时大概 15 分钟。 蚂蚁金服资源调度组致力于将 Kubernetes 落地到世界上最有价值的金融科技独角兽公司,欢迎联系作者微信: answer1991chen 咨询招聘事宜。 文章 Markdown 源码位于 https://github.com/answer1991/articles/blob/master/Kubernetes-is-the-next-generation-os.md ,遵从 Apache License 2.0 开源协议。 导言 此文章着重介绍如何在入门阶段使用 Kubernetes,以及要面向 Kubernetes 编程

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册