Restful vs WebSocket
在实习时需要进行实时交互,原先的C/S架构REST格式需要客户端重新发起请求,需改用WebSocket,稍微记录一下。
REST三种主流的Web服务实现方案,REST、SOAP、XML-RPC。
REST是根基于超文本传输协议(HTTP)之上而确定的一组约束和属性,是一种设计提供万维网络服务的软件构建风格。
REST通常基于使用HTTP,URI,和XML以及HTML这些现有的广泛流行的协议和标准。
资源是由URI来指定。
对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
客户-服务器(Client-Server)通信只能由客户端单方面发起,表现为请求-响应的形式。无状态(Stateless)通信的会话状态(Session State)应该全部由客户端负责维护。缓存(Cache)响应内容可以在通信链的某处被缓存,以改善网络效率。统一接口(Uniform Interface)通信链的组件之间通过统一的接口相互通信,以提高交互的可见性。分层系统(Layered System)通过限制组件的行为(即每个组件只能“看 ...
学期总结2
这学期一共四门课程
Radiation Detection and measurement这门课的内容主要是从辐射的角度,学习了不同波段测量宇宙的方法以及一些核辐射探测技术方法。复旦大学的这门课程给了我很多帮助:http://fdjpkc.fudan.edu.cn/201901/1xlyfsxclzdtjxjc/list.htm
我的学习会相对浅显一点。
Pattern Recognition and Machine Learning这门课是我较感兴趣的一门。从SVM和perceptron开始,再到贝叶斯分析和判别,非参数方法(KNN&Parzen Window)和聚类方法(Kmeans&hierarchy cluster),最后是神经网络。让我对机器学习的发展历程有了更清楚的了解。SVM和perceptron的对比是重点,他们不同的Objective function和相应的解法影响着他们的运用。
Big Data and AI这门课除了上学期重点讲过的正则化、梯度下降与反向传播外,了解了dropout以及Boosting method & Bagging m ...
学期总结
又开学了,记录一下上学期的学习。
一共有五门课程,分别是Computational physics, Space weather, Data analysis in space science, Remote sensing, Space science entrepreneurship。
Computational physics课程URL:https://quantummc.xyz/teaching/hku-phys4150-8150-2022/
课程内容本身自己比较感兴趣而且能感受到老师本人对学科的热爱。
主要介绍了一些常用的数值计算方法以及对应在物理中的运用,从导数,偏导到矩阵特征值和蒙特卡洛。对我而言课程的难点和兴趣点均在对物理问题的理解。初次了解物理独有的算符、粒子自旋、哈密顿量、薛定谔方程……
能有机会得以在物理大门的门口进行窥探也很不错,有点后悔没有选《相对论》,物理的学习门槛有点高,如果不是课程一步步的辅导,自学可能会很困难。
Space weather主要内容是太阳内部结构和外部环境以及地球大气层。电磁学复健中。了解到了太阳到地球之间的物理状况,以及太阳活动对地球的 ...
Pandas常用总结
pandas常用句做研究助理的过程中使用pandas做数据分析比较多,记录下使用最频繁的语句。
输入输出123456# txt:read_table# xlsx,xls:read_excel# csv:read_csvpd=pd.read_excel('/content/drive/MyDrive/notebook/socio/input/lbs.xlsx')tmp.to_excel('/content/drive/MyDrive/notebook/socio/output/tmp.xlsx')
12345678910111213141516171819202122232425262728293031323334353637383940from google.colab import drivedrive.mount('/content/drive')#renametest.rename(columns={'终点ID':'起点网格ID'}, inplace = Tr ...
测试方法
最近师姐在设计调查问卷,稍微了解了一下两种试验/测试方法
正交表法OATS(Orthogonal Array Testing Strategy)
根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点。
日本统计学家田口玄一将正交试验选择的水平组合列成表格,称为正交表
正交原理
围绕“均匀分散,齐整可比”的特点,实现(1)每列中不同数字出现次数相等。表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的(2)在任意两列其横向组成数字对中,每种数字对出现次数相等。保证了试验点均匀地分散在因素与水平的完全组合之中。
Example: 现在有一个组合有三因子,每个因子是三水平,权且用如下方式进行表示A(A1,A2,A3),B(B1,B2,B3),C(C1,C2,C3),在左图的正方体中每个因子的每个水平代表的是一个面,共九个面,任意两个因子的水平之间都存在交点,共27(3x3x3)个,这就是笛卡尔积。按照两大特性设计出的正交表如右图所示,试验点用⊙表示。我们看到,在9个平面中每个平面上都恰好有三个点而每个平面的每行每列都有一个点 ...
单元测试
JUnit5JUnit是最早接触也是最被熟知的Java单元测试框架https://junit.org/junit5/docs/current/user-guide/#overview
mockito4https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html
使用过程中区分@Mock与@injectMocks@InjectMocks: 创建一个实例,简单的说是这个Mock可以调用真实代码的方法其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。请注意:必须使用@RunWith(MockitoJUnitRunner.class)或Mockito.initMocks(this)初始化这些模拟并注入它们。
MockMvc在对Controller进行测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等引入了MockMVC对Controlle ...
PR流程
ps: 本次操作以Seata为源仓库
三阶段
准备仓库fork项目进入源项目页面,点击右上角Fork按钮
会自动生成以自己名称命名的项目
clone到本地即将自己名称下的项目下载到本地
12git clone https://github.com/(your_github_name)/(upstream_project_name).gitcd upstream_project_name
设置remote与源远程仓库建立联系
1git remote add upstream https://github.com/...(source_project_address)
查看联系
1git remote -v
可以看到自己的仓库地址(origin )与源仓库地址(upstream)
编译项目(非必须)编译并安装所有模块到Maven本地仓库缓存,同时会生成ANTLR.g4语法文件对应的解析器Java类,这样在IDE就不会有相关编译错误。
123cd upstream_project_name#我一般只跳过checkstyle和Testsmvn clean install -Dmav ...
事务之MySQL与Spring
前请提要事务的ACID特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)事务隔离级别(读未提交,读已提交,可重复读,序列化)CAP理论:一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)
MySQL事务实现原理Redo Log负责原子性与持久性,记载对磁盘上数据进行的修改操作作用:恢复提交后的物理数据页构成:日志缓冲(内存) – 易失重做日志文件(磁盘)– 持久化 不易失刷盘规则: (1)开启事务,发出提交事务指令后是否刷新日志由innodb_flush_log_at_trx_commit决定,默认1(每次提交事务都将日志缓冲中日志写入OS buffer,并且调用fsync()写入磁盘文件,不会丢失数据)0、1、2的值影响写入OS buffer与写入磁盘文件是否需要隔1s(2)按频率刷新。刷新频率由innodb_flush_log_at_timeout决定,默认1s(3)Log Buffer使用内存& ...