redis-cli中有大量的命令,针对不同的数据类型(string, hash, list, set, zset),使用的命令也不尽相同,这里根据自己常用的数据类型进行分类记录。
Qt中低功耗蓝牙模块使用
最近在Qt下使用opencv库,进行一些图像识别和处理相关的工作,主要是通过摄像头采集运动采样视频,然后进行一些跑姿分析和稳定性测试。但仅仅从视频帧来分析,还是有很多缺陷,后来就想着,如果结合公司的智能鞋垫产品,获取跑步实时的脚上各个部位的压力数据可以对视频分析提供很大的数据补充。跟硬件组的小伙伴聊了聊,得知可以通过蓝牙通讯,配对后实时获取鞋垫压力数据。从小伙伴那里搞来一套鞋垫样品,并拿了一份通讯协议列表,就抓紧搞起了。
得益于Qt详尽的文档说明,对照Qt官方Bluetooth Low Enegy文档,再结合一下官网的例子,断断续续搞了一天,算是在我的客户端程序里看到鞋垫传过来的压力数据了。官网的文档流程讲得很清楚,这里自己还是给整个通讯的流程梳理一下。
《人类简史》一读杂记
每日闲暇,断断续续看完了这本书。可谓受教。首先是认知上的,多了一些对几万年既成事实人类活动的认知,以及新的观看角度;其次,第一次系统地串联了一次所谓的人类历史。之前在读的时候,很少会觉察到‘史’这个字眼。但是,读完之后,对着目录回顾一遍,依然有着编年体的思路。
在node.js项目中使用c++ addons
藉由v8的强力支持,我们可以在node.js中可以很方便的使用一些c++库,或者自己编写一个动态链接库,并借v8库的连接,使之成为一个和其他node module一样可以直接通过require调用的方法.编写原生c++模块,可以地处理CPU密集型的操作,我们在日常使用中,也可以看到很多c++编写的npm包,如进行串口通讯用的包serialport、进行蓝牙通讯的包noble等等。
addons使用基本流程
使用async/await方式将node.js中的异步方法包装成形式上的同步函数
在使用node.js写一些后台逻辑的时候,经常要调用一些异步互调获取结果的方法,也有很多三方库提供的接口函数是如此。
这里就拿node.js自己的文件模块来说,有个异步读取文件夹下文件列表的方法:1
fs.readdir(path[, options], callback)
假设我们要调用readdir去获取文件列表时,例子如下:
在node.js中手工实现apply 和 bind方法
这两天看sf,偶然看到一些讨论js中原生实现apply和bind方法等帖子,觉得挺好玩儿,自己也照着思路试了一下,发现果然还是要自己写代码跑跑看,本来觉得思路已经有了,自己在实现的时候还是遇到了一些思路卡顿的状况,所以就记录一下啦。先上一个MDN上对Function.prototype.apply 和 Function.prototype.bind的解释:
apply(thisArg[, argsArray]) 方法在指定 this 值和参数(参数以数组或类数组对象的形式存在)的情况下调用某个函数.
bind(thisArg[, arg1[, arg2[, …]]])方法创建一个新的函数, 当被调用时,它的this关键字被设置为提供的值 ,在调用新函数时,提供任何一个给定的参数序列
sed文本流行处理
sed是一种流编辑器,它是文本处理中非常中的工具,可以逐行处理文本,能够完美的配合正则表达式使用。在日常需要做文本格式化处理时,会经常用到它,比如匹配行输出/匹配行删除/匹配行内字符串替换等。最近拿到一个静态html页面,需要对其中关键信息做格式化输出,便想起了这个东西,当然了,主要还是看对正则的熟悉程度。
读了一些sed等文档,发现其实主要也是如何在sed中使用正则表达式的各种技巧,不过Mac上坑不少,大伙还是尽量在Linux上跑。
javascript中函数递归堆栈溢出问题思考
这几天在用node.js写一个递归遍历文件树的功能,一直都有一个概念,就是递归次数过多,程序可能崩溃。但是一直没有仔细想过这个问题的原因,这里又多思考了一下,参考一下维基百科,每次函数递归调用的时候,在调用栈的顶部都要增加一条记录,记录子函数的返回地址,这样,随着递归深度的加深,用栈中一次讲调用函数返回地址入栈,当入栈次数过多,超过栈顶时,便会报栈溢出错误。
后面自己写了两个测试小程序,去测试了一下。
使用腾讯云免费dv证书配置nginx https访问
公司测试环境的系统,原来都是http协议的,现在要全部使用https,所以就去弄ssl证书,然后去重新配置了下nginx. ssl的证书主要分为三种:
域名型SSL证书(DVSSL):信任等级普通,只需验证网站的真实性便可颁发证书保护网站;
企业型SSL证书(OVSSL):信任等级强,须要验证企业的身份,审核严格,安全性更高;
增强型SSL证书(EVSSL):信任等级最高,一般用于银行证券等金融机构,审核严格,安全性最高,同时可以激活绿色网址栏。
由于我们只是个测试环境,没有太大安全要求,便选择了最简便的dv证书,最开始想使用startsll,但是配置流程比较复杂,还需要一个域名所有者的邮箱用于通讯,就放弃了。后来老大说腾讯云的比较方便,便去试了试,果然很良心,个人用户只要注册一下,便可以使用自己的用户给自己维护的域名做dv证书了。 申请地址.
基本申请流程如下:
ubuntu16.04下使用docker部署uat环境
商城app
商城app全套测试环境各容器说明
容器名称 | 镜像名称 | 端口映射(主机到容器) | 说明 |
---|---|---|---|
api_d | node | 5000->5000 | 后台启动商城api |
cms_d | node | 8080->8080 | 后台启动商城cms |
mysql | mysql | 3306->3306 | 商城mysql主库 |
mysql_slave | mysql | 3307->3306 | 商城mysql从库 |
redis | redis | 无 | 商城redis库 |
hot | node | 9000->3000 | 商城app热更新后台 |