星燃处

Spring Cloud Contract十全大补丸

前言在一个微服务架构中,各个微服务相对独立,但对其进行测试要比传统应用测试的难度更大。主要的原因是单个微服务往往依赖于其他服务,而其依赖的服务又进一步依赖更多服务,形成复杂的耦合关系。 按照传统的思维方式,针对这种情况有两种常见的测试方式: 部署所有的服务来完成端到端测试 这是一种有效的测试方式。它可以最大限度模拟生产环境,真实地测试服务端的交互。 但这种方式的弊端也显而易见:部署过程复杂......

揪出弹幕背后的发送者

我倒要看看是谁在这里兴风作浪.jpg

事情的起因是这样的:我所在的音乐社团新歌的人声本家投稿遭到了大量低素质的弹幕轰炸,导致众多正常弹幕被挤出弹幕池,也让创作者和听众都非常不爽。 这种事并不止一次,以前倒是可以使用黑盒子BiliBili工具箱来完成弹幕到用户的逆向查找,但最近它的服务器崩掉了,也没有发现其他的工具能提供这样的功能。那不如自己动手找出来撕好了:) 那么开始吧B站有弹幕匿名机制,但因为其具有屏蔽某弹幕发送者的功能,......

Spring Cloud构建RESTful API文档

本文基于Spring Cloud,通过Swagger和Spring REST docs两种方式分别构建RESTful documents。二者都是为Spring项目提供方法文档的框架,可以自动进行RESTful接口文档的生成或更新。 RESTful APIs规范以上两种方式都基于REST,这里首先梳理一下REST相关的内容。 REST(Representational State Trans......

测试驱动开发总结

简述测试驱动开发(TDD,Test Driven Development),即通过测试来推动开发的进行,基本思想是在开发功能代码之前,先编写测试代码。也就是说在明确要开发的功能之后,先思考如何对这个功能进行测试并完成测试代码的编写,然后编写相关的代码满足这些测试用例,再迭代添加其他功能,直到完成全部功能的开发。 TDD很重要的一个功能是保证代码正确并贴合需求。由于TDD测试集较强的针对性,开......

一次专辑专题站开发的经验分享

饱含辛酸血泪

写在前面的话这篇总结主要还是自己的一个留档,对于我这种记性爆炸差的老年人还是烂笔头比较可靠。因为是第一次正儿八经地从头开始独立写后端,所以难免有很多过于基础或者有问题的部分,还请多包涵。 大大小小的坑踩了不少,其实有相当一部分都是低级错误。但自己写起这种网站来才会明白代码完善的重要性,果然测试真的是多少都不嫌少(。 前后端完全分离,前端主要靠Vue,混用了一点点jquery处理mounted......

Torch手札4:灰度图着色核心代码小记

这一部分主要介绍一下models和train这两个核心代码文件的内容。这两个文件我在自己的项目里做了适配化的修改,在这篇文章里只提供各参考项目的代码。如果遇到不太懂的地方,可以先在之前的系列中寻找答案: Torch手札1:安装及基础使用(以XOR问题为例) Torch手札2:一小时Torch入门 Torch手札3:拆两个图像处理的轮子 models仍然一步一步来做拆解。 首先是引库,建立一个......

让YoloV2帮你识别马克杯

人工智障的成材之路

应邀写了个教程造福水深火热的树莓 准备工作写在前面的话就目前而言,做图像识别最好用的三种算法基本已经确定为FCNN、SSD和Yolo了。FCNN是开山鼻祖,虽然速度稍慢但是准确性还是很高的。Yolo年轻气盛所以很快,不过经常会出现识别不准的问题。最后出现的SSD是一个华人的算法(虽然被吐槽代码乱然而效果还是很厉害的),一度很火,于是不甘成为老二的暴脾气Yolo摇身一变进化成YoloV2/Yo......

Torch手札3:拆两个图像处理的轮子

CV做的项目和图像着色有关,之前刷git的时候找到了几个项目里能直接拿来用的lua轮子,现在试着顺一遍源码稍微学习一下,也是为之后的文章梳理打一个基础。注释少到爆炸可以说是想打人了 系列文章传送门: Torch手札1:安装及基础使用(以XOR问题为例) Torch手札2:一小时Torch入门 DataLoader是一个改良版DataLoader,用来读取YUV规范化的输入。 先提一句,YUV......

教练我想写日式流行歌!

——黑科技magenta残差网络训练教程

去年八月,统治宇宙的谷歌开源了自动作曲项目magenta。这个家伙的核心网络有28层,git上挂着的预训练模型*.mag由8000个midi输入调教而成,至于调教的效果,可以来油管膜拜一下。我要退圈了:) 发现了这种有趣的东西,首先还是要亲手训♂练一下呀。(git地址戳这里) 准备:配置环境这里安装过程以macOS Sierra 10.12.4为例,开终端,敲入 12curl https:/......

Unity3D的角色控制逻辑总结

MonoBehaviour类各方法的调用顺序 场景启动时调用所有脚本的Awake() 调用所有脚本的Start() 调用Update() 调用FixedUpdate()(调用频率和帧数有关,由系统自动确定。一般用在力学更新效果中) 调用LateUpdate()(Update和LateUpdate都是一帧调用一次,先Update再LateUpdate。eg:用Update更新人物位置后,使用L......