VS + MPI + CUDA配置
群里看到的,码一下
关键词nuget, cppan, sw, vcpkg, conan。
如果需要的三方库很多,就用包管理器;如果只引用mpi+cuda直接到微软找他们重构mpi for vs包,自己装cuda。 如果用于多机共算 我们可以使用mpi 如果是只有本机计算 那没有必要 STL和cuda比较搭 OO有点古老,不适合做算法
群里看到的,码一下
关键词nuget, cppan, sw, vcpkg, conan。
如果需要的三方库很多,就用包管理器;如果只引用mpi+cuda直接到微软找他们重构mpi for vs包,自己装cuda。 如果用于多机共算 我们可以使用mpi 如果是只有本机计算 那没有必要 STL和cuda比较搭 OO有点古老,不适合做算法
码一下。之前看到的,不一定全,但可能是切入点。
Flink:基于Java 相关技术/名词
相关软件
RedisELkDockerK8sSpark:基于Scala 相关软件
ScalaKafkaSpark CoreSpark StreamingSpark MLlibSpark GrapxFlume 数据采集Sqoop 数据迁移Hive 数据仓库Zookeeper 分布式应用协调HDFS 数据存储MapReduce 数据计算HBase 分布式数据库今天第一次用IDEA写跑Tomcat的Web项目。等了老半天项目都没部署上去,直接访问地址也是404,然后习惯性地点击终止服务器,打算重新启动一次。
然后遇到了这个问题:
Application Server was not connected before run configuration stop, reason:
Unable to ping server at localhost:1099
然后查看配置,发现这个1099指的是一个什么JMX端口,似乎是用来远程控制Tomcat用的。 然后网上试了好多办法都没用,甚至JB自家论坛的解决方案都是无效的。。
最后猜测可能是Tomcat自己本身完全就没有开启JMX功能(因为搜JMX好多都是教怎么启用的),然后倒腾了一下,发现照这个思路可以解决问题。
具体方法如下:
Edit Configurations.. - Tomcat - <服务器名> - Startup/Connection,选择使用的配置方案(一般都是run吧),在Environment Variables中添加环境变量CATALINA_OPTS,值设置为
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
之后再使用该配置文件启动服务器,问题解决。
最近遇到的场景,有两张图片(cv2的BGR格式)和一个蒙版(只有0,1两种值),需要按照蒙版的值将两张图象合并。
一开始百度咕果上到处查,最接近的大概是bitwise_and函数,但是其起作用的主要是0这个像素值,显然只能实现抠图的功能,但是不能合并。可以看看介个。
不废话,看代码:
import numpy as np
def mergeImgs(img1, img2, mask):
'''
Replacing places in img1 with img2 where mask = 1.
'''
img2 = img2 * mask[:,:,np.newaxis]
mask = mask * (-1) + 1
mask = mask.astype('uint8')
img1 = img1 * mask[:,:,np.newaxis]
img1 = img1 + img2
return img1
原理是使用矩阵的乘法运算,把两张图片相反区域的、mask中值为0的区域,像素颜色设置为0,然后再把两张图矩阵相加。由于mask区域是直接用的取反处理,所以不会出现任意一个错误像素点(完美拼图)。
想着想着发现这个+和*操作分别对应了OpenCV里的bitwise_and和bitwise_or操作,估计最多就是效率上的差别吧= =
总而言之,OpenCV并没有提供一个一步到位的多图区域拼接函数,但是只要思路对了,自己几行代码也能搞定。
providedRumtime("org.apache.tomcat.embed:tomcat-embed-jasper")作为JSP解析器。然而使用了JSP特性页面可能会出现编译错误,这个时候SpringBoot显示出来的是404。[[${val}]]。@{/login}获取Spring Security的登录地址,不然登录似乎会失败。application.properties一类配置文件中读取数据的时候,传统方法是先使用@Value{key.name}注入到对应类型的变量中,然后再用MVC的Model的addAttribute()方法设置后传给对应的模板。login/logout)成功后自动跳转的方法名分别为defaultSuccessUrl和logoutSuccessUrl。其中defaultSuccessUrl有第二个选填参数表示是否永远跳转至该页面。PlaintextPasswordEncoder,现在基本上都是用BCrypt,到网上随便找一个BCrypt加密工具来生成测试账户的密码吧。(或者用AuthenticationManagerBuilder.withUser直接在代码里也行,这里可以用明文)UserDetails、UserDetailsService来重定向登陆所用的用户信息类到自己想要的方式。比如写一个连接数据库的Entity,加上jdbcAuthentication()(说实话,这个真的有必要吗),就可以实现从数据库中获取登录信息。进行鉴权处理的是Authentication类,所需要的UserDetails信息是约定俗成的username和password两个属性,其中password是存在数据库中的、使用约定(可以设置)的加密方式加密后的串。(不记得从哪看来的了,说是spring的原则是约定高于配置)
参考:https://www.baeldung.com/spring-security-authentication-with-a-database 以及附带的github代码th:object的话,在对应的Controller方法中要用@ModelAttribute(modelName)获得。it获取当前次循环正使用的元素。RequestMapping方法中,有javax.validation验证限制的对象使用@Valid注解的话,可以按照预期检查出错误来,但是由于validation本身发生在进入方法体之前,方法本身并不会被执行。需要使用ExceptionHandler来捕获异常,若是对数据传输对象Data Transfer Object, DTO使用@Valid的话,会产生org.springframework.validation.BindException(噗,stackoverflow上有个老哥写成了java.net.BindException)getXXX()方法来访问属性= =::class.java.getMethod().invoke()实现等效的功能。@{}生成链接地址的时候,可以通过特殊的方式生成含变量的路径,格式形如@{/path/{key}(key=${val})}会生成/path/${val}形式的地址。@PathVariable而不是@PathParam。以及为了防止万一,最好传入封装类型而不是基本类型。th:checked属性设置输入复选框的初值。