Log4j 漏洞,阿里躺枪
说在前头大半夜看到新闻,大概意思是“阿里发现Log4j的漏洞后率先告知了美国的阿帕奇软件基金会,未及时向电信主管部门报告” 好像很早之前就有,但话题还没发酵的这么厉害,没看到,今天看到了感觉不太对劲,就来说说个人看法 首先这篇文章不是给阿里洗白,只针对以上论述进行探讨 个人看法从一个程序员的角度看,我认为这个论述是有点奇怪的,以下几点 1. 程序的BUG反馈对于一个程序员来说,使用别人或别的组织的程序时发现了问题,一般情况下有两个选择 向开发者或组织反馈问题,等待对方确认和修复(Issue) 如果是开源可以自己修复问题并提交到开源项目中(Pull...
位枚举
位枚举是个啥枚举首先来说一下枚举,在一些语言中我们可以用enum等关键字定义枚举,它的作用是让值更易读 比如我们设置一个人的状态:吃饭、睡觉、打豆豆,分别为0、1、2 如果我们在一个地方判断这个人当前状态是否是吃饭会用status == 0 但时间长了你可能就忘了0是指的什么,所以你还要需要去看 枚举就可以解决这个问题,以C#为例 123456enum STATUS{ EAT, SLEEP, HIT_DOUDOU}; 使用时status == STATUS.EAT,我们就明确知道是在判断状态等于吃饭 在JS中也可以实现,就是自己定义变量的方式 12345const STATUS = Object.freeze({ EAT: 0, SLEEP: 1, HIT_DOUDOU: 2}) 其中freeze可以让这个对象不会被更改 位位就是可以进行位运算(我的理解),比如C#可以用Flags将枚举标记为位域 1234567[Flags]enum STATUS{ EAT = 1...
JSDoc 让JS有类型约束
这次我们来谈谈JSDoc,首先这是个啥,本质就是个注释,可以帮助开发工具认识你的代码。你可以通过它提升开发效率、降低运行时的错误率,更好的理解强类型语言。 主流编辑器应该都支持JSDoc,但我基本没用过别的所以不太清楚,本文章中演示用的编辑器均为vscode JS中的类型在js中,虽然类型的概念没那么强,但你依然无时无刻不在受到类型约束 比如最简单的document.querySelector 它会返回一个Element类型的数据,页面元素的基础类型HTMLElement就继承了该类型 但这时如果你想修改style,你会发现它并不会给你提示,因为style是HTMLElement的属性 JS Doc这时候,JSDoc就派上用场了。在你明确知道它类型的情况下,你可以直接声明变量的类型 1234/** * @type {HTMLElement} */const test = document.querySelector('.test') 此时再看代码提示,就出现了 并且你可以开启类型检查 12345// @ts-check/**...
杭州电动车上牌记录
经历了一次非常坎坷的电动车上牌之路,记录下来造福社会。 考虑到不想看废话的人,首先说结论: 上牌流程 支付宝搜索“杭州交警” 点击左下角“预约及违法处理” → “车管所预约” 在线申请 需要带的资料 身份证 电动车合格证 电动车发票 (根据地区可能还有其他的,上牌前看一下当地的注意事项) 重要:杭州部分上牌点,要求发票上需要备注电动车型号,如果发票上有其他信息必须与合格证上的一致,比如公司名称不能是简称 正片开始网上买了个小电动车,2021-08-04 到的,中间经历了艰辛的上牌之路,三周才成功上牌 工作日上班,所以只能周末去上牌,离家近的上牌点都约不上,只能打车带着车去远的上牌点 Round...
TypeScript 浏览器插件开发
总结一篇 TypeScript 浏览器插件开发经验 推荐模块 webextension-polyfill-ts 浏览器插件API的TS包,开发插件必备 1import { browser } from 'webextension-polyfill-ts' 避坑:封装网络请求用browser.runtime.onMessage.addListener不能直接返回axios,虽然TS不会报错,但运行结果会是undefined 正确方法: 123456789101112131415browser.runtime.onMessage.addListener((request) => { const params = request.type === 'GET' ? { params: request.params } : { data: request.data } return new Promise((resolve, reject) =>...
Docker Nodejs 排坑笔记
原因之前做了个B站机器人,可以以图搜番,这个功能需要用到ffmpeg将视频转成动图 如果想给别人用那么别人配置环境会很麻烦,就这样顺理成章的想到了Docker 排坑初学Docker遇到不少坑 在Dockfile执行node在这里卡了一天,我一直在搜“Dockerfile 容器 执行命令” 最后发现我傻了,我为什么不找个docker+node项目看看呢,官方都有说明 Dockerfile 环境变量传入js中在Github搜了搜项目发现,在js文件中可以直接用process.env.XXX获取环境变量
程序猿复健计划之B站机器人
功能 梗百科,查询梗的意思 以图搜番,跟微信的区别是,它最后会发送动图,因为不能发视频 你可以使用宝塔Docker管理器轻松配置开启 教程 搜索镜像:imba97/bili-bot:1.0.0 创建容器 选择镜像,点提交 点击日志获取登录二维码 扫码登录(登录后这个页面不会有提示,用的Wechaty的二维码生成页) 重新打开日志会提示登陆成功 以上 如果不想用docker,也可以下载源码直接拿Node.js跑 但你还需要手动在电脑上装个ffmpeg,以图搜番会用它把视频转成gif Github
程序猿复健计划之微信机器人
起因朋友玩游戏分享到群里领游戏奖励,领完撤回,于是… 功能node.js太上头了,除了上面那个之外又做了点别的 梗百科,可以查询梗的意思 以图搜番,根据图片搜番剧,日漫为主,使用 trace.moe 的接口 黑白图上色,发送黑白老照片自动上色,百度的接口 基金查询,根据基金代码查询基金半年内单位净值,接口:小熊同学 - 基金接口 数据会转成图片发回给微信 使用详情请见:Github 程序猿复健计划解释一下,我二月份做了个近视手术,三个月内不能长时间看手机电脑这种需要近距离长时间看的东西 三月之期已到,码农,出山 ✔ 不过目前还是得看会休息会才行
党史学习笔记
...