JWT(Javascript Web Token)
用户身份认证总是一件绕不过去又颇费脑子的事情。听说出了JWT认证外,还有SAML、SWT等认证方式。这篇文章讲JWT讲得很好,可以看看。
用户身份认证总是一件绕不过去又颇费脑子的事情。听说出了JWT认证外,还有SAML、SWT等认证方式。这篇文章讲JWT讲得很好,可以看看。
斜杠划分不同的级别,如
“sport/tennis/player1”
井号通配当前级别以下的所有内容
如“sport/tennis/player1/#”匹配:
· “sport/tennis/player1”
· “sport/tennis/player1/ranking”
· “sport/tennis/player1/score/wimbledon”
如果只是一个#,则匹配所有。
加号匹配单级内容
如 “sport/tennis/+” 匹配 “sport/tennis/player1” 和 “sport/tennis/player2”, 但是不匹配 “sport/tennis/player1/ranking”,也不匹配““sport/tennis”
美元符号在发布时放在主题名称前面,用作系统特定的一些消息发布,并且不能被#、+通配符所匹配到。
$SYS/一般用于发布和服务器系统相关的信息
应用不应使用$开头的名称。
查版本命令好多:
···
uname -a
cat /proc/version
cat /etc/issue
···
然而Debian有个发行代号codename,经常影响apt源的使用,怎么查看?
lsb_release -c
查看用户
cat /etc/passwd
查看用户组
cat /etc/group
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxxxxxxxxxxxx
grep "\-v"
或者
grep -- -v
或者regexp:
grep -e -v
20201/5/17更新: Windows上也支持mosquitto了,在mosquitto官网上有windows版本的下载, 可以使用. 以前的似乎不能用:windows(win10) 就别费劲了。。。两个版本win32和cygwin装完都不能运行,坑爹的是它还需要一大堆的dll,这些dll它不提供还要你去找。。。
ubuntu上装起来很容易,直接
sudo apt-get install mosquitto
就可以了。装完了直接作为服务运行。开始还奇怪,为什么运行mosquitto老是提示地址被占用(Address already in use.)
装完服务装客户端,命令是
sudo apt-get install mosquitto-clients
这样你才可以用mosquitto-sub命令
输入
mosquitto_sub -t 'test/topic' -v
订阅消息,等待消息输出。
使用-h
命令可以指定服务器地址, 否则是以本机为服务器.
mosquitto的payload可以是二进制数据, 如果要以16进制显示, 使用-F
命令跟上格式%x
, 注意-F
命令在旧版的mosquitto上不支持:
mosquitto_sub -h 192.168.0.108 -t rgb/show -F %x
另开一个终端,输入:
mosquitto_pub -t 'test/topic' -m 'hello world'
在前一个终端窗口就能看到消息了。
远程连接MQTT服务器,加入参数 -h xxx.xxx.xxx.xxx 就可以了。
命令行直接发送(限于Linux BASH)
echo -ne "\x45\x23\x43" | mosquitto_pub -h test.mosquitto.org -t 'test/binary' -s
通过文件发送
mosquitto_pub -t test -f filename
转载并翻译自溢栈Stackoveflow
RPC(remote process call)远程过程调用,指的是要调用一个本机上没有的方法,并获取结果。
这听上去和API差不多,通常API都是基于http的,准确的说是http/1.1。并且以JSON作为返回值。
更理想和漂亮的API调用就是Restful的API,同样基于HTTP/1.1,使用了协议提供的get,post,delete,put等方法。
然而追求效率的程序猿们发现HTTP/1.1协议本身的问题造成延迟,导致响应速度有些慢,于是google提出了一种基于HTTP/2(更快的HTTP)的gRPC协议。
当然作用是比Restful API更快了。
这儿还有一个gRPC和Restful相互转换的项目grpc-gateway
nodejs使用grpc,看这儿
简单来说,nodejs中,需要
1. 定义服务接口, 在xxx.proto文件中定义。定义采用的是protocol buffer数据结构,哦,又是另一种XML、JSON的替代品。但protocol buffer(现在是第三版proto3)不止如此,它更是一种语言
2. 定义服务端,在server的.js文件中定义。
3. 客户端调用。
MQTT,全称Message Queue Telemetry Transport消息队列遥测传输,是一种开销较小的、使用订阅机制传输信息的协议。
协议中两种设备,Broker和client,broker相当于服务器的角色。
例如,Client B, C是两个显示屏,向Broker订阅(Subscribe)温度主题(topic)。
温度传感器为client A,向broker发布(Publish)一个温度主题。此时,broker向已订阅温度的client B、C发送温度信息。
协议原文
node.js中自带两个库,分别是net和dgram。net用于tcp连接,dgram用于udp连接。
VBA学习最好使用Excel VBA中的对象浏览器, 在视图菜单中(F2)
Application和Window类默认似乎是不需要写, 就可以引用他们下面的属性和方法.
最常用的类是Range, Cell
Application.Evaluate是将名称管理器中的名称或者单元格名称转换为Range. 简易写法是中括号[]
定义函数
Public Function FunctionName(args...)
End Function
赋值和逻辑比较.. 在条件里面就是比较, 否则是赋值.
打印输出: Debug.Print
字符串合并 "a" & "b"
定义全局变量要写在最前面
Public VarName As Type
返回应用程序完整路径
Application.Path
返回当前工作薄的路径
ThisWorkbook.Path
返回当前默认文件路径:
Application.DefaultFilePath
Application.ActiveWorkbook.Path 只返回路径
Application.ActiveWorkbook.FullName 返回路径及工作簿文件名
Application.ActiveWorkbook.Name 返回工作簿文件名
For ...Next循环,跳出方式为Exit For,似乎没有跳过本次到下次循环的方式,只能用IF判断体包裹。
If ...Then ...Else ... End If 判断,其中的“=”为判断,不是赋值。VB根据上下文判断等于号是赋值还是判断。不等于是“<>”。
两种方式:
Workbooks.Open Filename:="D:\r\可视化单簿合多表\test测试.xlsx"
或者
Dim wb As Workbook Set wb = GetObject("D:\r\可视化单簿合多表\test测试.xlsx")
区别在于,GetObject是隐藏方式打开的。并且这个隐藏属性是可以保存的,如果保存了, 下次打开就无论如何都看不到了。
如果要显示,可以在excel的“视图-取消隐藏”中取消,或者使用
wb.Windows(1).Visible = True
记得要保存。
jekyll基于ruby做静态站点的生成.哦, 服务器端还是需要跑ruby才行的...
另外千万不要看中文站点, 文档有错误, 最大错误就是, 除了装ruby和rubygems以外还要装bundler, 中文站却没有提. 还是要阅读英文原站的文档.
移动端vue的ui组件最著名的应该是vux, 基于Wechat的官方ui weui.
现在pc端也有一个UI标准称之为 Ant Design, 是阿里主导设计的, 基于ant design的一种Vue实现, 是 iview
我们常用的云平台类SaaS系统一般都是有个后台管理界面,英文称之为admin或者dashboard, 有很多这种的后台都是基于bootstrap实现的, 并且一般都自动适配PC端和移动端.
在Github上适配vue的admin模板有 vue-admin和 coreUI.
其中vue-admin是比较深度的使用了vue的特性, 同时可以兼容在electron中使用. 而coreUI对vue的使用较简单, 但却做到了多种框架的适配, 如angular, react等. 这两个功能上都欠缺的一点是table上进行增删改的操作, 这是其他大型admin模板一般都具有的.
github上搜索admin, 排在前面的admin 模板有2013年12月开始的adminLTE, 2015年5月开始的gentelella, 2015年9月开始的blur admin, 2016年4月开始的ng2-admin.
其中, blur admin使用的是加载结束才显示的方式, 每次加载的时间有数秒钟, 似乎有些太久, 不过加载完后体验比较好, 很多动画效果, 也不卡, 类似于gmail的体验, 有smart table功能, 支持增删改. gentella加载很快, 内容也比较丰富.
这儿有个博客大前端工具集搜集了很多很全面的前端工具, 值得参考.
emacs tutorial前半段讲的几个命令,如下
上下左右一个字符: c-pnbf
左右一个词 m-bf
行首尾 c-ae
句首尾 m-ae
前后翻页 mc-v
文首尾 m-<>
重复number次命令 c-u number 命令
取消操作c-g
切换窗口数量 c-x 1
重载 c-l
删前后一个字符
剪后一个词 m-
剪至行尾 c-k
剪至句尾 m-k
选择剪切 c-
粘贴最近 c-y
粘贴以前的 m-y
撤销 c-/ 或者 c-_ 或者 c-x u
打开文件 c-x c-f
保存文件 c-x c-s
保存所有未存文件 c-x s
打开缓存列表 c-x c-b
打开某一缓存 c-x b 缓存名
退出 c-x c-c
切换到命令行 c-z ,切回来 fg 或者 %emacs
搜索 c-s