3月 26

批量下载豆瓣fm中收藏的音乐

本人是豆瓣fm的忠实用户,听的音乐多了,收藏的也比较多了,虽然豆瓣fm的app中可以离线下载收藏的音乐,但是还是希望能把音乐下载下来放在别的地方播放,比如放在U盘里在车里听。
过程很简单,在chrome、或者firefox中分析豆瓣账号的登录过程,然后再获取到收藏的音乐列表,然后获取到资源地址,就可以下载了。过程分析完了,用代码实现出来就完了。主要的点有如下几个:
继续阅读

3月 23

Java int溢出问题

最近在测试代码时,发现一个bug,到测试的最后阶段才发现,比较容易忽略。记录下来,以自省。
简单说一下代码要实现的功能,一个函数,入参是一个整型数字lastTime,代表持续时间(单位是分钟);函数功能是要计算以当前时间为起点,lastTime分钟之后的时间点,封装成一定的数据结构返回出来。
继续阅读

3月 10

https网站解决block:mixed-content问题

本站在全站启用https之后,遇到http的请求被浏览器block的情况,原因是浏览器不允许在https页面里嵌入http的请求,现在高版本的浏览器为了用户体验,都不会弹窗报错,只会在控制台上打印一条错误信息。
最简单的解决办法当然就是不要使用http请求,把网站上的http请求都迁移到https。但是我这个博客使用了百度分享和腾讯的邮件订阅功能,而这两个产品都属于被百度和腾讯抛弃的产品,很久都没有迭代维护了,所以也不提供https版本。既然官方不提供,那自己来解决。
继续阅读

3月 09

网站弃用http,改用https

现在主流的网站基本都已经弃用http协议,转用更为安全的https协议。之所以不再使用http,是因为HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。现在主流的一些浏览器会直接将http页面标记为不安全,就是为了推行https。
继续阅读

3月 07

Http Mock服务

在项目开发和项目测试时,都会遇到不同项目、模块相互调用的情况,调用方式也有很多,通过http/https、TCP连接、RPC等;这样系统之间相互依赖,会影响开发速度,所以基本上都是采用mock的方式进行开发、测试,即先写一个符合预期的假接口,进行调用。
在github上看到一个挺不错的http mock server,这里简单介绍一下。
继续阅读

3月 03

小博客搬到阿里云ECS

之前一直使用php的虚拟主机,优点是简单、省心,不用自己去配一套环境,NGINX或者Apache,php等;当然缺点也很明显,不是自己搭建的环境,控制起来比较费劲,想要一些自定义的功能,还得看服务器是否支持,做了这么久的测试开发,一直很不喜欢这种情况;所以买了阿里云的ECS,对比了百度、腾讯、还有阿里的服务器,价格基本差不多;不过在口碑上,阿里肯定更占优。

折腾了一小天,从NGINX、php到mysql环境搭建、配置;mysql数据迁移,已经完成,生命在于折腾。自己的服务器,维护起来肯定麻烦一些;要关注机器性能、要关注磁盘、要关注各种软件是否有漏洞、还要关注各种攻击、ddos等,做技术的人就有这点好处,无论遇到什么事情,折腾折腾就能修好,(* ̄︶ ̄)

3月 01

Java G1垃圾收集器入门

说明

concurrent: 并发, 多个线程协同做同一件事情(有状态)

parallel: 并行, 多个线程各做各的事情(互相间无共享状态)

参考: What’s the difference between concurrency and parallelism

概述

目的

本文介绍如何使用G1,及在 Hotspot JVM 中怎么使用G1垃圾收集器。 您将了解 G1 收集器的内部原理, 切换为 G1 收集器的命令行参数, 以及让其记录GC日志的选项。 继续阅读

2月 26

jodd之Printf

在C语言中,我们可以使用sprintf函数来控制数字的显示。jodd在java中也实现了这个函数(还拓展了一些),其实在原生的jdk中,也有类似的实现,但是jodd的实现方法也值得学习一下。
Printf可以把一个数字格式化成我们期望的格式,就像C语言那样。如下面一些示例:
继续阅读

2月 24

jodd中的缓存

Jodd是一个开源的、轻量级的适用于web开发的工具集合。包大小只有1M,使用超级简单。其实jodd的文档写的不全,只介绍了一部分的功能,有些工具类没有介绍。在翻看jodd源码时,看到jodd封装了Cache,使用起来非常简单。在这里简单介绍下。

jodd的Cache类在jodd-corejar包中,实现的缓存有先进先出(FIFO)、最近最少使用(LFU)、最近最久未使用(LRU)、基于时间的缓存。
继续阅读