spring
背景
传统javaweb开发的困惑
1234567891011121314151617181920//用户账户信息修改业务方法public void updateUserInfo(User user){ try{ //开启事务 DaoUtils.openTransaction(); //获得UserDao执行插入User数据到数据库操作 UserDao userDao = new UserDaoImpl(); userDao.updateUserInfo(user); //修改成功后,向用户行为日志表中插入一条数据,内容:修改时间等信息 userLog.recodeUserUpdate(user); //提交事务 DaoUtils.commit(); }catch (Exception e){ //回滚事务 DaoUtils.rollback(); //向异常日志表中插入数据 ExceptionLog exceptionLog = new ExceptionLo ...
springboot
Spring Boot简介spring团队开发的框架简化spring应用开发。早期J2EE开发笨重,配置繁多,开发效率低,部署流程复杂,第三方集成困难。springboot整合了整个spring开发栈,不需要对每个栈分别学习开发,j2ee一站式解决方案优点:
快速建立独立运行的spring项目以及与主流框架集成。
使用嵌入式servlet容器,应用无需打成war包, 如果用war包系统要有tomcat。
starters启动器自动依赖与版本控制。
自动配置。不需要了解大量的配置。
无需配置xml,无代码生成,开箱即用。
生产环境运行时应用监控。
云计算的天然集成。缺点:入门容易精通难,要了解些spring框架底层的api。微服务martin fowler 2014描述微服务:https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa一种架构风格,一个应用应该是一组小型服务,可以通过http的方式进行互通。
单体服务:每个功能元素放进同一个进程中,通过多个服务器复制该单体进行扩展。优点:开发测试简单, ...
maven
maven资料
maven书籍和视频介绍:http://pan.baidu.com/s1hq00qLA
国外资料介绍、引导、书籍:http://www.tutorialspoint.com/maven/index.htm
maven官网:http://maven.apache.org/
简单知识点
maven是什么:java管理和构建工具,管理定义项目结构、项目依赖,用统一方式进行自动化构建
项目结构
构建流程:编译->测试->打包->发布(部署)
只需要服务器安装Tomcat在启动构建,就会自动执行:清理->编译->测试->报告->打包->部署,这样的一套流程
包管理:
旧有方式:一个项目下有一个lib,java包放入lib中,所以随着项目增多,java包也增长
maven仓库管理:
多个项目共享同一个仓库,用仓库将java包和项目分离
依赖传递机制解决项目内java包之间的版本冲突
maven仓库:1、OSChina, 2、公共仓库
使用仓库的目的:将不同项目的java包统一管理(下载,配置, ...
智能排程
蚁群算法蚁群算法(Ant Colony Optimization, ACO) 是一种基于群体智能的元启发式算法,灵感来源于蚂蚁觅食行为。蚂蚁在寻找食物时,会通过释放信息素(pheromone)来标记路径,其他蚂蚁会根据信息素的浓度选择路径。通过模拟这一行为,ACO 可以有效地解决组合优化问题,如旅行商问题(TSP)。
蚁群算法的基本思想
蚂蚁的路径选择:
每只蚂蚁根据信息素浓度和启发式信息(如距离)选择下一个要访问的城市。
信息素浓度越高,路径被选择的概率越大。
信息素更新:
蚂蚁完成一次遍历后,会根据路径的长度更新信息素。
路径越短,信息素增加得越多。
正反馈机制:
信息素的积累和挥发形成正反馈机制,使得较优路径的信息素浓度逐渐增加。
TSP问题描述假设有n个城市,城市之间的距离用一个距离矩阵$D$表示, $D_{ij}$表示城市i,j之间的距离。目标是找到一个路径或排列$\pi=(\pi_1,\pi_2, …, \pi_n)$,使得以下总距离最小:
总距离=D_{\pi_1\pi_2}+D_{\pi_2\pi_3}+\cdots+D_{\pi_{n-1}\p ...
autojs
学习路径:1、 javascript2、ES6语法: https://es6.ruanyifeng.com/3、autjs文档、示例、实战:http://doc.autoxjs.com/#/4、代码书写规范5、autojs错误调试和分析
脚本开发环境搭建autojs 4.1.1版本安装和使用手机
windows环境
apk包(https://github.com/kkevsekk1/AutoX/releases):拉入手机、更多下载服务、auto.js无障碍服务
稳定模式:可以适配更多手机
悬浮窗:
连接电脑:
投屏软件:scrcpy (https://github.com/Genymobile/scrcpy)
下载scrcpy_win64-vxxx
手机打开开发者模式:设置->我的设备->多次点击版本 ->更多设置->开发者模式->usb模式->连接usb线
->无线连接(用adb命令)
...
asyncio并发
GIL: global interpreter lockevent loopasyncio:
同步:
代码顺序运行。如果一行代码运行很慢怎么办?该行代码之后的代码就要等待该行代码完成。
解决方案:协程,允许同时处理多个任务。
异步编程:
调用函数的位置不是执行函数的位置,执行函数的位置可以拖后。
耗时的任务从主应用程序中分离出来并在后台运行,不是阻塞其他代码等待该耗时任务完成,其他代码必须是不依赖耗时任务的代码。
协程是一种方法,该方法可以被暂停当有耗时任务时,然后恢复运行当耗时任务完成后。
使用async和await语法使异步代码看上去像同步代码运行一样。
asyncio库以异步方式(使用协程模型:单线程事件循环)执行协程。
asyncio能够通过与多线程和多进程的操作处理其他类型操作。
asyncio可以用于I/O型操作也能用于CPU型操作。
I/O型和CPU型操作对比:区别:阻碍代码更快运行的限制因素是I/O操作还是CPU操作。
并发,并行和多任务并发和并行如何调度、执行各任务、方法、例行?并发:虽然并发表示多任务在同时发生(被同时执行),但不意味着这些任务可以同时运行。 ...
机器人操作系统
第一章介绍ros由一组工具软件构成,是一个元操作系统,特点:
消息传递接口:进程通信
硬件抽象:无需关注具体硬件
包管理:ros节点以包的形式组织起来,每个包由原码文件、配置文件、编译文件等构成
第三方库集成:Open-CV, PCL, Open-NI等
低级设备控制:控制I/O pin, 端口传数据
分布式计算:将计算任务分布到几块计算节点上
代码复用
语言独立:可用python, c++, Lisp
易测试:内建测试框架
扩展
免费
ROS概念$组织等级\left{\begin{aligned}& ros文件系统\& ros计算图\& ros社区\end{aligned}\right.$
ros文件系统:ros文件在硬盘中如何组织
package: ros包是ros框架下的个体单元,包含了:原码、第三方库、配置文件
package manifests: 是一个*.xml文件记录了包的全部细节,例如:名字、描述、依赖
message type: 是一个数据结构,定义*.msg文件中,该文件放在msg文件夹下
service type: 是一个请求/应答 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
姿态检测公式
姿态检测公式
已知图像I维度是w*h, 3D姿态为${P^{3D}k}^K{k=1}$,其中K是图片中人体数目,$P_k^{3D}\in\mathbb{R}^{3\times J}$表示J个身体节点坐标,坐标是相对于盆骨节点(根节点)的。
Stage I 预测:
核心网络+两个分支网络,一个分支预测2D姿态坐标,另一支预测3D姿态编码,核心网络输出图像尺度为$\frac{w}{16}\times\frac{h}{16}$,两个分支网络输出图像尺度为$\frac{w}{8}\times\frac{h}{8}$,且3D分支要引入2D分支中的部分特征
- core network: selecsls net
SelecSLS模型在选择方式上使用短长范围跳跃连接,在模块内部用短范围跳跃连接,在各模块间使用长范围跳跃连接。中间特征数用k表示,最终输出特征数用$n_0$表示,卷积跨步用s表示。长连接中每个后续模块都和第一个模块连接这是为了提升网络中的信息流
一个等级定义为一连串模块它们会输出相同的空间分辨率的特征图
- 2D分支:
预测2D热点图$H=\{H_ ...
flask.md
Flask简介
flask是轻量级web开发框架,依赖Jinja2模版引擎和Werkzeug WSGI工具集。
flask是一个内核可以扩展其他应用功能,例如:邮件Flask-Mail, 用户认证Flask-Login, 数据库Flask-SQLAIchemy等。
安装:pip install Flask
Flask常用扩展包:
Flask-SQLaIchemy: 数据库
Flask-script: 插入脚本
Flask-migrate: 管理迁移数据库
Flask-Session: Session存储方式指定
Flask-WTF: 表单
Flask-Mail: 邮件
Flask-Bable: 翻译
Flask-Login: 认证用户
Flask-OpenID: 认证
Flask-RESTful: 开发REST API工具
Flask-Bootstrap: 集成前段Twitter Bootstrap框架
Flask-Moment: 本地化日期和时间
Flask-Admin: 简单而可扩展的管理接口的框架
Web搭建
搭建过程包含了路由,模版,请求,响应等
应用模块:Flask核心 ...




