Error
Error 1835: Malformed communication packet.
错误的数据包格式?
环境
- 阿里云Serverless Mysql
- Mysql 8.0
报错时发现DAS上显示’接入异常’,但是操作数据库写入,查询均正常,只有某个客户端用户操作报错.
几分钟后DAS状态恢复正常,未能复现
makeDir
1 | -- 传true将路径上所有子目录都会自动创建 |
maxscript 2014,2015没有提供内置函数删除目录,需要调用.net类或者外部命令删除,下面的案例使用rmDir命令删除
HiddenDOSCommand
1 | makeDir "C:\\doscmdtest\\" |
filenameFromPath
返回文件名(包含后缀)
1 | file="g:\\subdir1\\subdir2\\myImage.jpg" |
getFilenamePath
1 |
参考:
1 | -- 按钮,点击按钮弹窗展示一张图片 |
1 | # 通过 GOOS指定系统,GOARCH指定架构 |
上述命令在powershell,cmd中不可用
1 | #查看go环境变量 |
1 | $GOOS $GOARCH |
近来,serverless这个词出现次数愈加频繁,各云厂商也纷纷推出相关的产品和工具,最近也尝试在公
司项目上使用severless去解决一些问题,这里讲讲我的体验.
阿里云的severless产品,从对已有框架的支持上说,FC的体验非常好,go,java,js,python的各种框架基本都支持,也通过社区/官方提供了完善的demo和模板(serverless devs,工具, demo,模板)
一次线上报表导出的功能异常无法使用,看监控日志,服务器内存有段时间占用高
除内存异常,其他组件都没发现问题,怀疑OOM导致服务挂了,查询服务运行时间,发现确实是重启了.
1 | # 查看程序pid |
分析异常api的功能主要是excel的读写(用的excelize这个库),便用prof测试下内存占用,这里在测试用例读取一个几万行的excel文件(.xlsx),使用go的工具pprof记录内存占用
从.xlsx文件与.csv文件读取对比看,excelize与xlsx读取xlsx文件,比使用encoding/csv包读取csv文件更占内存,相差在2至3倍,前者平均需要4,5GB内存,后者仅占1.7GB左右.
综上,没有特殊需求,简单的表格文件保存可以优先选择csv
以下测试使用同样内容的文件,8w行,csv:30.1MB,xlsx:18.7MB
multipart 用于在http中高效上传文件
“multipart” or “form-encoded data” is a MIME type which contains multiple files.
‘application/x-www-form-urlencoded’(在multipart之前用于文件上传的方式)需要在文件上传前encoding,multipart不需要
stream each part separately(多个文件,对每个文件支持单独流式传输)
1 | POST /cgi-bin/qtest HTTP/1.1 |
在分析一个sql执行计划
1 | explain |
在返回值的extra中看到一个陌生的字眼”Backward index scan”,下面探索下这是个啥
1 | Extra: Using index condition; Backward index scan |
Table 8.1 EXPLAIN Output Columns
Column | JSON Name | Meaning |
---|---|---|
id | select_id | The SELECT identifier |
select_type | None | The SELECT type |
table | table_name | The table for the output row |
partitions | partitions | The matching partitions |
type | access_type | The join type |
possible_keys | possible_keys | The possible indexes to choose |
key | key | The index actually chosen |
key_len | key_length | The length of the chosen key |
ref | ref | The columns compared to the index |
rows | rows | Estimate of rows to be examined |
filtered | filtered | Percentage of rows filtered by table condition |
Extra | None | Additional information |
常见的线性变换平移、缩放、旋转、投影
通常用4x4矩阵表示3D空间中的变换,如平移、旋转、缩放等。
对于一个3D空间中的点A(x, y, z),我们可以使用一个4x1列向量表示它,如下所示:
1 | x |
其中最后一个元素为1,这是为了让矩阵乘法能够正确地进行。
要对这个点进行平移变换,我们可以创建一个如下所示的4x4矩阵:
1 | 1 0 0 tx |
其中(tx, ty, tz)表示平移向量。然后,我们可以将该点与矩阵相乘来进行变换,如下所示:
1 | x' = x + tx |
缩放矩阵
1 | sx 0 0 0 |
缩放后点A为A’
1 | x' = x*sx |