TinyLab
* TinyLab SRS
* 1 编辑与显示
1.1 一个页面只编辑和显示一个实值矩阵
1.2 当某矩阵元素被编辑时,后端数据实时更新。
1.3 未填写的矩阵元素表示0。
1.4 未填写的矩阵名字是_。(下划线(就叫做下划线))
1.5 首页的页面元素
1.51 总的来说表现为一个 _=[ ] 的形式。
1.511 _可以改成任何用户希望的名字。如果访问的是A,那么整个显示A=[/*A的内容*/]。
1.512 [ ]中由于什么也没填,所以表示一个1x1的0矩阵。
1.52 如果还有一个功能为save的页面元素,可以考虑为其设置快捷键,快捷键可以考虑Ctrl-s。
1.53 矩阵的尺寸由矩阵增广操作定义和变更。
1.531 矩阵增广操作
1.5311 按w将当前选中行插入其上
1.5312 按s将当前选中行插入其下
1.5313 按a将当前选中列插入其左
1.5314 按d将当前选中列插入其右
1.5315 按r删除当前行
1.5316 按c删除当前列
1.532 矩阵尺寸的限制
1.5321 至少要有一个元素,[ ]=[0]。
1.6 页面样式
1.61 矩阵元素的编辑筐大小要与其实际填写的位数相适应
其他再说
* 2 访问方式
2.1 所访问的矩阵由uri决定。
2.2 矩阵及其运算在uri中的命名规则
2.21 命名规则应当支持矩阵连乘,如a1*a2*...*an。
2.211 a^n表示a的n次幂矩阵。使得a^i*b^j*c^k等都符合线性代数的一般定义。
其他再说
* 3 矩阵运算
3.1 乘法
3.11 如果字符串A和B分别是两个矩阵的名字,则通过在uri中输入A*B访问矩阵AB,此时服务器中即有了一个叫做AB的矩阵。
3.111 但是矩阵AB不再与A或B协变。如需协变,仍需通过uri中的A*B形式。
3.2 数乘
再说
3.3 加法
再说
3.4 为节约服务器资源以及防止恶意行为计算放在客户端完成。
* 5 参考资料与后续进展
5.1 知乎网友xiaochi的实现方案
https://zhuanlan.zhihu.com/p/637148173
https://zhuanlan.zhihu.com/p/637145461
5.11 项目开源地址https://gitee.com/wu-org/go/tree/TinyLab/foo/MATRIX
5.12 服务部署方式
#+NAME: config.ini
#+BEGIN_SRC
[uwsgi]
module = server:app
master = true
processes = 4
threads = 2
http = 0.0.0.0:8084
worker_class = gthread
logto = tinylab.log
py-auto-reload = 1
buffer-size = 1048576
#+END_SRC
5.121 如何运行
nohup uwsgi config.ini &
5.13 测试地址
http://124.221.142.162:8084
5.131 buglist
5.1311 变换莫测的乘积
打开http://124.221.142.162:8084/?a 将a设置为((1 1)(0 1))
打开http://124.221.142.162:8084/?a*a 然后不断按F5刷新页面,结果变来变去,期望a*a有唯一的值。(除非a被修改)