飞污熊博客

静下心来做一件事

Linux是一个多用户、多任务的操作系统,本章详细讲解如果增删改用户账号,以及文件所有者、 所属组以及其他人对文件/目录的读(r)、写(w)、执行(x)的操作权限。另外我们还可以使用SUID、 SGID与SBIT特殊权限更加灵活地设置系统权限功能,来弥补对文件设置一般权限时所带来的不足。 而文件的访问控制表(Access Control List,ACL)则还可以进一步让单一用户、 用户组对单一文件或目录进行特殊的权限设置,让文件具有能满足工作需求的最小权限。

阅读全文 »

VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发, 由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

本文演示如何在Win10上面安装VirtualBox 6,并安装CentOS 7操作系统。

阅读全文 »

之前写过一篇如何使用Nexus私服,发布自己写的maven构件,供大家使用。但是只能在公司内部用, 而你想全世界的人都能用到你写的东西,就需要发布到Maven中央仓库了。

本篇文章详细讲解如何发布Maven构件到中央仓库。

阅读全文 »

上一篇介绍了Java性能测试框架JMH的使用方法,本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。 每次都在网上看到别人说什么某某库性能是如何如何的好,碾压其他的库。但是百闻不如一见,只有自己亲手测试过的才是最值得相信的。

JSON不管是在Web开发还是服务器开发中是相当常见的数据传输格式,一般情况我们对于JSON解析构造的性能并不需要过于关心, 除非是在性能要求比较高的系统。

目前对于Java开源的JSON类库有很多种,下面我们取4个常用的JSON库进行性能测试对比, 同时根据测试结果分析如果根据实际应用场景选择最合适的JSON库。

这4个JSON类库分别为:Gson,FastJson,Jackson,Json-lib。

阅读全文 »

JMH,即Java Microbenchmark Harness,这是专门用于进行代码的微基准测试的一套工具API。

JMH 由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发 。何谓 Micro Benchmark 呢? 简单地说就是在 method 层面上的 benchmark,精度可以精确到微秒级。

Java的基准测试需要注意的几个点:

  • 测试前需要预热。
  • 防止无用代码进入测试方法中。
  • 并发测试。
  • 测试结果呈现。

比较典型的使用场景:

  1. 当你已经找出了热点函数,而需要对热点函数进行进一步的优化时,就可以使用 JMH 对优化的效果进行定量的分析。
  2. 想定量地知道某个函数需要执行多长时间,以及执行时间和输入 n 的相关性
  3. 一个函数有两种不同实现(例如JSON序列化/反序列化有Jackson和Gson实现),不知道哪种实现性能更好

尽管 JMH 是一个相当不错的 Micro Benchmark Framework,但很无奈的是网上能够找到的文档比较少,而官方也没有提供比较详细的文档,对使用造成了一定的障碍。 但是有个好消息是官方的 Code Sample 写得非常浅显易懂, 推荐在需要详细了解 JMH 的用法时可以通读一遍——本文则会介绍 JMH 最典型的用法和部分常用选项。

阅读全文 »

ngrok是一个反向代理,它能够让你本地的web服务或tcp服务通过公共的端口和外部建立一个安全的通道, 使得外网可以访问本地的计算机服务。也就是说,我们提供的服务(比如web站点)无需搭建在外部服务器, 只要通过ngrok把站点映射出去,别人即可直接访问到我们的服务。

有做过微信公众号开发的人,对它应该不陌生。因为用户跟微信公众号产生的交互行为,微信会把用户的相关信息推送到我们自己的服务器, 如果服务在本地,那微信当然无法推送给我们,这使得开发功能的时候调试相当麻烦。我们可以使用ngrok把本地站点映射出去,解决这个问题。

另外如果我们想把本地开发时候的系统临时给外网用户看,无需部署到服务器上面去就可以,非常方便。

ngrok是开源的,官网地址:https://github.com/inconshreveable/ngrok

下面,我们开始搭建ngrok服务。操作系统为CentOS 7.2

阅读全文 »

小程序已经添加了对WebSocket的支持,如果需要长连接和推送的场景来讲可以使用。 关于websocket的使用,小程序WebSocket API 里边已经给了。 相比较传统的HTTP接口形式,websocket长连接可实现双向通信,但是用好它可并不简单。

阅读全文 »

根据微信支付的官方文档,小程序支付需要绑定商户号,并且小程序和商户号的认证主体必须一致。 目前我们的商业逻辑是小程序平台主体和支付的商户主体不一致, 那么就需要从我们的小程序跳转到支付主体小程序完成支付后,再返回我们的小程序。

曾经尝试过在小程序中通过webview的方式嵌套H5网页,使用公众号支付方式,后来发现小程序并未开放这个JSAPI。

接下来详细介绍一下如何实现小程序之间的跳转支付。

首先我已经有了2个小程序:

  1. 平台小程序A,认证主体是A公司
  2. 支付小程序B,认证主体是B公司
阅读全文 »

最近要做一个项目需要在小程序中打开外链,小程序最近开放了web-view组件, 可在里面内嵌自己写的H5页面,也就实现了打开外链的功能,但是有几个注意点。 这里记录一下,希望将来小程序能放开更多限制。

阅读全文 »

在开发Spring Boot应用的时候,除了Maven以外,Gradle也是一个不错的构建选择。 IDEA 默认使用Gradle工具做Android的构建程序,在开发APP的时候就必须要使用到Gradle了。 这里简单记录一下使用的方法,以及跟IDEA的集成方式。

阅读全文 »