- 分类
- Coding
编程开发与计算机科学
这里先给出小众的定义:以 TIOBE Index for October 2021 为标准,排名在 20 位以后的编程语言。其中排名前 20 的编程语言为:
……
最近,微软宣布所有用户现可从其帐户中完全删除密码。用户可以通过在手机上安装 Microsoft Authenticator 应用来接收验证码进行登录。详见《微软账户进入无密码时代,现可将你的密码彻底删除》:
微软副总裁 Vasu Jakkal 表示,“近年来,我们一直都在强调无密码机制的重要性。今天我在这里很高兴地向大家宣布,这项愿景终于有了实质性进展。从今天开始,您可以将你微软账户中的密码彻底删除。”
对于这么做的原因,微软表示单纯的密码机制已经成为了安全系统的软肋,每年仅仅因为这个原因发生的相关攻击就多达 180 亿次,约每秒 579 次。
不过各位小伙伴还请不要以为微软取消密码就没有安全保护机制了,因为在迈入无密码时代之前你还需要在自己的手机上安装一个 Microsoft Authenticator 应用(如果您愿意,您可以随时为帐户重新添加密码),之后根据实际使用位置的不同,通过 Windows Hello、安全密钥,或者是通过邮件、手机或其他应用以及服务(包括 Outlook、OneDrive、Microsoft 家庭安全等)接收到的验证码进行登录。
……
近几年经常被提起的无锁队列,似乎被视为解决高并发的万能良药。无锁队列是一种通过CPU提供的原子操作指令 CAS 和 FAA,以及循环重试,来实现的乐观并发控制算法。虽然无锁队列算法并未显式调用锁,但事实上,在多核环境下,所谓的无锁队列算法本质上就是实现了锁的功能。
首先,原子指令本身就是一种带锁的操作,只是锁的颗粒度较小而已。单核 CPU 系统的情况比较简单,因为单条指令操作总是原子的;而 SMP 的情况就比较复杂了,需要使用缓存一致性(Cache Coherence)的机制来确保操作的原子地执行。
早期 CPU 不支持原生的 CMPXCHG
指令,要实现 CAS 原子操作,必须先用 LOCK
指令锁住总线或需要访问的内存块。
……
从中文字面上还是挺难区分「并行」和「并发」的,两者都带着一个「并」,似乎是个同义词。而在计算机科学中,「并行」和「并发」完全是两个不同的概念。两者并非互斥,也有相关联,但含义绝不可混淆。
「并行」的英文是 parallel
,「并发」的英文是 concurrent
。有意思的是,台湾将前者翻译成「平行」,后者翻译成「并行」。可见中文翻译基本是词不达意的。要区分两者还需从英文原文着手。
……
「九宫格」的布局是指:在一个正方形的容器中,以 3x3 排列共九个正方形的元素。当容器大小发生变化时,容器内部的九个元素尺寸也能随着容器大小而缩放,并保持正方形的外形。当容器内元素不满九个时,每行元素能够等比放大并撑满一行
llhttp 是 Node.js v12 以上版本使用的 HTTP 解析器,代替了旧版的 http_parser。根据官方宣传,相较于旧版解析器,新版本解析器性能提升了 156%。llhttp 的主要代码由 Typescript 实现,描述了一个有限状态机,最终通过 llparse 将代码转换成 C 语言源代码。然而官方文档里根本没写如何生成 C 语言代码,只能自己探索了。
首先 clone 下 llhttp 的代码:
shellgit clone https://github.com/nodejs/llhttp
在项目根目录下能找到 Makefile
配置文件。打开看了下,并不是很复杂。这个 Makefile 配置仅支持 clang 编译器 和 Linux 操作系统。不过我们只需要生成 C 语言代码的部分就行了。
……
在 Windows 下编译 libuv 需要先安装 Visual C++ Build Tools 和 CMake。
在 libuv 源代码目录下运行命令:
powershellmkdir build
cd build
cmake .. -DBUILD_TESTING=ON
cd ..
cmake --build --config Release build
……
收集了流行的 Python 库和资源。会不定期更新
本文提供一个方法,可用于创建支持 Kotlin 协程的 Vert.x 服务代理