摘要: fo dicom 全称:Fellow Oak DICOM 是一个处理 DICOM 协议及图像相关的类库,基于 .Net 平台。 问题 通过 nuget 将 fo dicom 添加到项目,编译后 Dicom.Native.dll 没有自动拷贝到 编译输出目录。 Dicom.Native.dll 跟接收 阅读全文
posted @ 2020-04-12 19:31 june.js 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 最近在用 .net 写一个小工具,依赖了部分第三方库,如下截图为 Release 目录,其中可执行程序为 mssql tool console.exe,在这么多文件中找到此执行程序需要有点麻烦,如果能把绝大多数的DLL文件合并为一个DLL文件,则找到exe可执行程序就很方便了。 经过调研,找到了IL 阅读全文
posted @ 2020-04-12 19:29 june.js 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 上下文 最近的一个项目,使用的数据库是 MS SQLServer,每次要发布新版本时,需要把开发环境的库(我们称为template库)生成脚本(表结构+基础数据),此脚本会被放到发布包中,以便在产生环境利用这个脚本生成数据库。 可以通过SQLServer的管理工具(Microsoft SQL Ser 阅读全文
posted @ 2020-04-12 19:14 june.js 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: 上下文 作为一个开发或测试人员,当软件中有打印功能,我们为了节省纸张,保护大自然,经常会使用虚拟打印机进行测试,比如 Win10 系统中的 Microsoft Print to PDF。 但是 ,系统自带的虚拟打印机需要 烦人的交互操作 ,比如选择 PDF 文档保存的位置和文件名,这种 重复的工作 阅读全文
posted @ 2020-04-12 19:12 june.js 阅读(1633) 评论(2) 推荐(0) 编辑
摘要: 0x00 axel wget是linux平台上最常用的网络下载工具了,但是其单线程下载速度较慢。本文推荐一个多线程下载的工具 axel。对于大文件来说,速度提升明显。 使用起来非常方便,将 wget xxx,改为axel n 20 xxx 即可,其中20是下载线程数量。 该工具还 支持断点续传 ,当 阅读全文
posted @ 2020-04-12 19:06 june.js 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 概述 多个线程操作共享变量(Java堆内存上的数据)会带来bug,Java提供了锁机制(Lock)来管理多线程并发,比如synchronized,但是会带来额外的性能开销(线程阻塞,上下文切换等)。为了提升性能,Java引入了原子变量,通过无锁算法(lock free)实现多线程安全,比如CAS。 阅读全文
posted @ 2020-04-12 18:58 june.js 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 在提供图片上传的接口时,我们可能会需要知道上传来的图片是什么格式,比如 jpg,png,gif等等。图片的格式信息会存放到图片文件的头信息中,Java提供了ImageIO类来处理图片,代码片段如下: 阅读全文
posted @ 2020-04-12 18:56 june.js 阅读(1206) 评论(0) 推荐(0) 编辑
摘要: 概述 JMM规范指出,每一个线程都有自己的工作内存(working memory),当变量的值发生变化时,先更新自己的工作内存,然后再拷贝到主存(main memory),这样其他线程就能读取到更新后的值了。 注意:工作内存和主存是JMM规范里抽象的概念,在JVM的内存模型下,可以将CPU缓存对应作 阅读全文
posted @ 2020-04-12 18:54 june.js 阅读(449) 评论(2) 推荐(1) 编辑
摘要: 在infoq上读到了这篇文章,写的很精彩,学到了很多思想,所以在这儿做一个转载。 原文地址: "https://www.infoq.cn/article/M3ycVUDkDZO3E2kPkJ38" 如下是正文。 如果说架构师在技术上的沉淀称为“武”,那么对于文化的感知和影响、对于团队的带动和辅导、以 阅读全文
posted @ 2020-04-12 18:52 june.js 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 结论 当有二进制数据传输时,使用 multipart/form data,否则使用 x www form urlencoded。 区别 x www form urlencoded 和 multipart/form data 是HTTP协议中,向服务器发送POST请求时的两种编码方案,对应form表单 阅读全文
posted @ 2020-04-12 18:49 june.js 阅读(630) 评论(0) 推荐(0) 编辑
摘要: 当我们在本地仓库的分支上做开发时,对于一个功能进行了多次提交,在push到远程仓库之前我们希望把这几个相关的commit合并为一个,这样更加简洁,也方便review。 如果想把 featureB 相关的三次提交合并为一个,可以执行如下命令 此时使用 git log 查看日志 三次提交合并为了一次提交 阅读全文
posted @ 2020-04-12 18:40 june.js 阅读(3228) 评论(2) 推荐(0) 编辑
摘要: 使用可选依赖 将依赖坐标的元素的值设置为true,则代表这是一个可选依赖。 使用optional依赖可以节省空间和内存 使用场景 当编写一个类库时,比如projectX,可能会包含很多功能,但是依赖projectX的项目projectA只会使用其中一部分功能,对于没有用到的功能,projectA不希 阅读全文
posted @ 2020-04-12 18:38 june.js 阅读(2008) 评论(0) 推荐(2) 编辑
摘要: 选择一:项目级配置(推荐) 找到项目中的如下文件: build.gradle 在项目的根目录下找到如下文件: build.gradle ,打开编辑,在下图红色箭头处添加阿里云的镜像。 添加如下代码: 在 apply 上面,添加如下代码: 选择二:全局配置(操作系统的当前用户) 在操作系统当前用户的 阅读全文
posted @ 2020-04-12 18:35 june.js 阅读(24278) 评论(3) 推荐(3) 编辑
摘要: 当使用命令 docker pull mysql 拉取镜像时,其实等价于如下命令 latest是默认的标签,字面上理解为最新版本的镜像,实质上latest只是镜像的标签名称,跟具体某个版本号地位一样,有latest标签的镜像不一定是最新版本,镜像作者可以任意指定标签。 一般来说,我们会使用latest 阅读全文
posted @ 2020-04-12 18:22 june.js 阅读(8756) 评论(0) 推荐(0) 编辑
摘要: curl是linux平台下,通过url获取数据的命令行工具。可以访问http, https, ftp等等服务器。 shell中会显示html的内容。 如果想在url的查询参数(query string)含有中文,则请求可能失败,比如: 此时,http服务器接收到的q并不是“关键字”,而是一堆乱码(/ 阅读全文
posted @ 2020-04-12 18:14 june.js 阅读(7624) 评论(0) 推荐(0) 编辑
摘要: 概述 ssh命令用来远程登录linux主机,对于开发人员和运维,这个命令很常用。但是这个命令需要交互,即在输入完ssh命令并且执行后,还需要手工输入密码。 这就导致我们无法编写这样的脚本:自动登录远程主机并执行一些命令。 注意:以下所有脚本均是在mac下测试 解决方法 思路:通过其他手段将交互操作( 阅读全文
posted @ 2020-04-12 18:12 june.js 阅读(1015) 评论(0) 推荐(0) 编辑