2020 01-22

OpenCV图像数字化

灰度图像数字化 我们平时使用PS或者其它图像处理的软件打开一个要处理的图像,当我们将图像放大的足够大的时候我们会发现很多个灰度程度不同的小方格,其中每个方格就相当于一个像素,水平方向的方格数代表这个图像的像素宽度(通常在图像的属性信息中可以查看到图像以像素为单位的宽度),同样垂直方向上的方格的个数代表图像的像素高度。计算机会将每个方格化为一个数值-“位深度”,是将一个方格化为[0,255]之间的一个uchar类型的数字,用256个数来表示灰度的深浅(0代表黑色,256代表白色),值越小越灰,反之

2020 01-22

Jenkins-k8s-helm-harbor-githab-mysql-nfs微服务发布平台实战

基于K8S构建Jenkins微服务发布平台 实现汇总: 发布流程设计讲解 准备基础环境 K8s环境(部署IngressController,CoreDNS,Calico/Flannel) 部署代码版本仓库Gitlab 配置本地Git上传测试代码,创建项目到Gitlab 部署pinpoint全链路监控系统(提前修改Dockerfile,打包镜像上传) 部署镜像仓库Harbor(开启helm仓库) master节点部署helm应用包管理器(配置本地helm仓库,上传helm包) 部署K8S存储(

2020 01-22

使用 LinkedBlockingQueue 实现简易版线程池

前一阵子在做联系人的导入功能,使用POI组件解析Excel文件后获取到联系人列表,校验之后批量导入。单从技术层面来说,导入操作通常情况下是一个比较耗时的操作,而且如果联系人达到几万、几十万级别,必须拆分成为子任务来执行。综上,可以使用线程池来解决问题。技术选型上,没有采用已有的ThreadPoolExecutor框架,而使用了自制的简易版线程池。该简易版的线程池,其实也是一个简易版的【生产者-消费者】模型,任务的加入就像是生产的过程,任务的处理就像是消费的过程。我们在这里不去讨论方案的合理性,

2020 01-22

数据结构篇————线性表

数据结构篇————线性表 线性表的抽象数据类型的定义: ADT线性表(List) Data 线性表的数据对象集合为{a1,a2,....,an},每个元素的类型均为DataType。其中,除了第一个元素a1外,每一个元素有且只有一个直接前驱元素,除最后一个元素an外,每一个元素有且只有一个直接后继元素。数据元素之间的关系是一对一的关系。 Operation InitList(*L):初始化操作,建立一个空的线性表。 ListEmpty(L):若线性表为空,返回true,否则返回false。 C

2020 01-22

C#中TripleDES对应Java中的DESede即大家说的3DES,附C#及Java加解密结果一致的控制台程序例子

直接上代码了。 Java控制台代码: packageTest; importjava.security.Key; importjavax.crypto.Cipher; importjavax.crypto.SecretKeyFactory; importjavax.crypto.spec.DESedeKeySpec; importjavax.crypto.spec.IvParameterSpec; importorg.apache.commons.codec.binar

2020 01-22

[3.0] 一个人开发一个App,小程序从0到1,删减添加

在这个黄道吉日,咱们将要干一件,惊天地泣鬼神,妇孺皆知的大事,那就是删掉微信开发工具自动生成的源代码。 删掉pages下的index、logs目录,啥都不留; 删掉utils下的util.js,只流空气; 删掉app.js里的代码,只留App({}); 删掉app.wxss里的内容,只留下一地鸡毛; 删掉sitemap.json, 只留下一声叹息,但这里有个前提:你确定所有页面都可被索引(搜索),而且一直不会有例外,如果不是,那就留着,如果你已经删掉了,那就补回来。 删掉project

2020 01-22

Java框架之SpringMVC 04-视图解析-Spring表单-JSON-上传下载

SpringMVC 视图解析   请求处理方法(controller方法)执行完成后,最终返回一个 ModelAndView 对象,即使出现异常也会返回一个ModelAndView 对象。对于那些返回String,View或ModeMap等类型的处理方法,SpringMVC也会在内部将它们装配成一个ModelAndView对象,它包含了逻辑名和模型对象的视图,由视图解析器解析视图,然后,进行页面的跳转。   SpringMVC借助视图解析器(ViewResolver

2020 01-22

PEP 484 类型提示 -- Python官方文档译文 [原创]

英文原文:https://www.python.org/dev/peps/pep-0484/采集日期:2019-12-27 PEP484--类型提示(TypeHints) PEP:484Title:TypeHintsAuthor:GuidovanRossum<guidoatpython.org>,JukkaLehtosalo<jukka.lehtosaloatiki.fi>,?ukaszLanga<lukaszatpython.org>BDFL-Deleg

2020 01-22

【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发

《ASP.NETCore微服务实战》译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-translator/ “微服务”的概念在2014年正式提出之后,越来越多的团队开始用它来设计自己的业务系统,各种微服务框架和开发过程管理方法也同时兴起、不断成熟。微服务设计方法清晰地定义了各个开发团队的业务边界,微服务框架以不同的方式实现了服务之间的协作与集成,根据康威定律我们可以推导这样一种产品开发方法必然会映射到

2020 01-22

如何在匿名thread子类中保证线程安全

在做性能测试的过程中,我写了两个虚拟类ThreadLimitTimeCount和ThreadLimitTimesCount做框架,通过对线程的标记来完成超时请求的记录。旧方法如下: @Override protectedvoidafter(){ requestMark.addAll(marks); marks=newArrayList<>(); GCThread.stop(); synchronized(this.getClass()){ if(countDownLatch.getC