大疆无人机否认协助俄入侵乌克兰;React v18 正式发布;开发者为GitHub开发小票机
导读:几篇开发者关注的工具进一步升级了。
大疆否认协助俄入侵乌克兰
中国无人机制造商大疆否认了美国多项指控,后者称其在乌克兰试图帮助俄罗斯军队。
大疆参与俄罗斯在乌之战场,是本月11日左右被美国“发现”并“指控”,详情称大疆在乌克兰的用户无法使用其无人机检测产品 DJI AeroScope,大疆无人机产品标识为“一个快速识别通信链路的综合无人机检测平台,实时收集飞行状态、路径等数据。”
而另一侧的俄罗斯用户则可以畅行无阻地运行 AeroScope,这是导致美国指责大疆试图协助莫斯科派遣军的重要原因。
大疆在美国已经已列入禁止获取美国技术的实体清单,并禁止美军使用其产品。美国已严令禁止投资这家无人机制造商,理由是这个团队实际上是“中国人民解放军的某个部门”。
大疆发言人近日驳斥了这一“指控”,称自己“正在与客户合作解决乌克兰的一些 AeroScope 故障,我们怀疑这些故障和电力或互联网服务的临时中断有关。”
GitLab 14.9发布
GitLab团队最近宣布发布 GitLab 14.9,为开发者带来了一些新功能,例如从epic到epic的链接、集成的安全培训、新的环境页面设计和扫描结果策略的规则模式等。
此更新支持使用“相关”、“阻塞”或“阻塞”关系链接史诗,允许用户跨 GitLab 组跟踪和管理史诗依赖项。据 GitLab 称,这有助于减少可变性并提高交付价值的可预测性。
GitLab 14.9 还允许用户在设计和编辑扫描结果策略时使用规则模式,而无需直接编辑策略 YAML。这使得创建和管理基于特定漏洞阈值触发的合并请求批准规则时变得简单。
此外,部署批准功能现在可在 GitLab 界面中使用。这允许部署批准者查看待定部署并直接从环境页面批准或拒绝它。
有了这个,环境页面也有了更新。用户现在可以查看其最新部署的状态、可变环境的状态以及已部署的提交。
为了帮助数据团队不断提高稳定性指标,GitLab 14.9 还带来了对 Time to Restore Service 的 API 支持。
最后,借助新的集成安全培训功能,开发人员可以快速查看有针对性的、与上下文相关的培训,以便在其正常工作流程中解决安全问题。
有关此版本的更多信息,请访问
https://about.gitlab.com/releases/2022/03/22/gitlab-14-9-released/。
React 18 正式版发布
React 18 已发布,此版本包括开箱即用的改进,如自动批处理,新的 API(如 startTransition)和支持 Suspense 的流式服务器端渲染。
在 React 18 中,用户还可以开始使用 Suspense 在 Relay、Next.js、Hydrogen 或 Remix 等框架中获取数据。官方表示,使用 Suspense 获取临时数据在技术上是可行的,但仍不建议将其作为一般策略。在未来,其可能会公开更多的 primitives,使用户能够更容易用 Suspense 访问数据。
公告指出,其对 Suspense 的愿景始终不仅仅是加载代码——目标是扩展对 Suspense 的支持,以便最终相同的声明式 Suspense fallback 可以处理任何异步操作(加载代码、数据、图像等)。
React 18 的新功能如下:
自动批处理。批处理是 React 将多个状态更新分组到一个重新渲染中以获得更好的性能。默认情况下,Promise、setTimeout、native event handlers 或任何其他事件内部的更新不会在 React 中批处理。使用自动批处理,这些更新将自动批处理
Transitions 是 React 中的一个新概念,用于区分 urgent 和 non-urgent updates。
新的 Suspense 功能。如果组件树的一部分尚未准备好显示,Suspense 可以声明方式指定组件树的加载状态。
Suspense 使“UI loading state”成为 React 编程模型中的 first-class 声明性概念。
React 18 中在服务器上添加了对 Suspense 的支持,并使用并发渲染特性扩展了它的功能。React 18 中的 Suspense 与 transition API 结合使用时效果最佳。
如果在 transition 期间 suspend,React 将防止已经可见的内容被 fallback 所取代。相反,React 会延迟渲染,直到加载了足够的数据以防止出现错误的加载状态
更多详情可查看官方博客:https://reactjs.org/blog/2022/03/29/react-v18.html
开发者开发出GitHub问题票打印机
最近开发者Andrew Schmelyun 在Twitter上宣布,为了方便解决问题,他将GitHub上的每个issue问题单,连接到票据打印机以单张方式打印出来,方便大家浏览展示:
大量程序员与开发者跟帖,称赞其太酷了,简直是太优秀。
大家的一部分评论
Andrew Schmelyun 倒是很谦逊,他说是在吃外卖时得到的灵感,那袋子上的小票让他联想,为什么不能把GitHub上的问题票(Issue Ticket)也用小票方式打印出来?
于是他用PHP连接到USB连接树莓派RPi Zero上,发送原始指令给打印机,并成功实现。
<?php
require __DIR__ . '/vendor/autoload.php';
use Mike42\Escpos\PrintConnectors\FilePrintConnector;
use Mike42\Escpos\Printer;
$connector = new FilePrintConnector('/dev/usb/lp0');
$printer = new Printer($connector);
$printer->text('Hello, world!');
$printer->feed(2);
$printer->cut();
原材料是一台老旧的EPSON票据打印机,GitHub webhooks、PHP、ngrok 和一台Raspberry Pi,此君还开发了一个完整的作业系统。
据作者Schmelyun 所说,他花了大约八个小时才让奇迹发生。“最长的部分是试图将打印机连接到 Raspberry Pi 并将数据发送给它。最初我在 Linux 中使用 CUPS,但它没有给出我想要的结果。”
使用 Pi Zero W ,是因为 Schmelyun 有一个这样一个东西扔在那吃灰。他认为基于 RP2040 的 Pi Pico 也可以完成这项工作。他还考虑过使用 ESP8266 开发板(如 NodeMCU),这些都可以搞定此事。
之所以选择 PHP,是因为 Schmelyun 是使用该语言的开发人员(Node 或 Python 也是选项),并且所以使用的打印机可以理解 ESC/POS 命令。最后监听 repos 上的事件是通过 GitHub 的 webhook 实现的。
GitHub在限制 webhook方面并不严格,Schmelyun 并不认为他会遇到很多问题。“我的项目遇到的大多数问题都不是严重的错误,”他解释说,“而且我每天最多会遇到几个问题。”
“最坏的情况我可能会将它迁移到使用 GitHub API 来代替。”
展望未来,Schmelyun 正在考虑添加一个直接链接到该问题的二维Q码:“打印库具有内置的本机二维码打印功能,添加此功能将是分分钟的事。”
更多关于票据信息会很方便,新的 PR、成功合并或问题票关闭通知也会很方便。“有人还建议他在打印开始之前添加一个轻小的通知,因为这件事对于一些人可能有点刺耳,但这会非常有用。”
这是一个有趣的项目,也很实用,这需要更多开发者的创新加入。然而这位作者也不否认,上周末的大部分时间都花在考虑如何从当地二手办公用品店购买旧 Epson TM-T88IV 打印机上了。
后面,21CTO 社区会发出其开发细节的整篇。
作者:场长
相关阅读: