- 最近用到了OTP, 遂mark一下
 - 我们常用的那种倒计时验证码就是TOTP, 既不是叫OTP也不是叫MFA, 经常听有人这么说所以提一嘴
 
- 动态口令验证可以看作是服务端和客户端之间通过约定相同的算法来实现验证功能, 也即你在客户端看到的动态口令是客户端通过算法生成的无需请求服务端获取
 
es module, axios用习惯了, 不过axios官方没有esm版本 https://github.com/axios/axios/issues/1879axios.js即可easyshot.py直接开启区域截图, 截完图自动保存到桌面, 然后退出进程双击或Enter完成截图, 中途可以按Esc放弃截图Jetbrains Clion官方支持了Stm32的项目搭建, 说下感想
OpenOCD, 一会捣鼓arm-none-eabi-gcc… …说实话, 过程挺麻烦的, 会遇到一些坑src/ae.c下的void aeMain(aeEventLoop *eventLoop)函数; 推荐从这个函数开始阅读aeMain里面aeProcessEvents(eventLoop, AE_ALL_EVENTS)做了什么; 这里我们留意一下里面的aeApiPoll函数, 该函数用于获取可执行的事件, 获取之后在下面的for循环中处理事件, 执行事件处理器 fe->rfileProc(eventLoop,fd,fe->clientData,mask)aeApiPoll函数是ae模块提供的一个接口, 在ae_epoll.c ae_kqueue.c ae_select.c ae_evport.c都做了相应的具体实现, 也是所谓IO多路复用各平台的具体实现, 目的为了兼容不同平台IO多路复用没有iocp的实现难道windows就没人权吗, 其实redis的官方版本是不支持windows的, windows版本在https://github.com/microsoftarchive/redis由微软团队自己维护, 里面就有ae_wsiocp.c即iocp版的实现reactor模型(反应堆)其实说的就是aeMain的大循环中aeProcessEvents做的那些事情: 监听网络连接的FD的文件事件---> 获取事件---> 执行事件回调