使用OpenSSL自建CA证书

当今几乎所有的浏览器都推荐使用HTTPS协议,苹果APP和安卓APP也逐渐会淘汰掉使用未加密的HTTP网络访问。因此使用HTTPS作为网络服务协议势在必行。当我们上线WEB服务以后,我们可以根据实际需求申请不同类型的SSL证书(CA有免费版本,也有收费版本,具体可以参考本文了解SSL证书的却别)。如果在开发过程中没有SSL安全证书,但是在APP中又要使用HTTPS协议,我们可以选择使用OpenSSL自建一张SSL证书,待服务上线以后在使用第三方发布的证书。
Read more

关于Npm和Yarn的基本操作记录

本文旨在帮助我记录Npm和Yarn工具的一些常用命令。由于昨天学习了以下当前比较火的Vue框架,从而顺藤摸瓜有接触到了Npm和Yarn。但是在使用的过程中发现百度能搜出来的东西真是有限。第一页搜索结果基本上就是一篇原创加九篇拷贝,在零星加两条广告。由于Npm和Yarn在工作中不常用,还是记录下来,不至于下次用到再花费大把时间放在搜索上。
Read more

如何安全合法地开发爬虫和爬取数据

合法地使用网络爬虫爬取数据一直是数据公司必须坚守的底线。然而并不是每一个企业,每一个从事数据爬取,或者每一个从事开发爬虫的软件工程师都了解其中的法律风险。有人认为,爬取数据是公司行为,即使触碰了法律的底线,最终需要负责的是企业法人。其实这种想法和理解是大错特错。一旦爬取数据违法,不但从事爬取数据的公司会受到法律的制裁,负责开发爬虫的软件工程师也会被追究法律责任。例如在2017年今日头条状告上海晟品网络科技有限公司非法获取计算机信息系统数据的案件中((2017)京0108刑初2384号),海晟品网络科技有限公司法人,技术负责人,和底层数据爬虫开发工程师都被追究了刑事责任。因此,懂法守法不单单是公司的事情,更是每一个从事数据爬取相关人员都应该具备的基本知识。本文将和大家分享几个数据爬取和爬虫开发的基本原则。如果在日常工作中能够遵守这些基本原则,就能够有效的降低开发爬虫和爬取数据的法律风险。
Read more

走进大数据内容摘要

借着春节休假的时间,忙里偷闲看了这本书《走进大数据-组织如何推进大数据战略》。本书并没有细读,可以说只是细看了一下目录并且大致浏览了全书,也不算是把这本书读完了。因此,本文不能算是一篇读后感,更不能做为评价这本书是否值得读的理论依据。写本文的原因仅仅是为了记录对我个人而言,可能比较有用的一些内容,或是将来也许能够用上的一些知识点。
Read more

MongoDB数据库Find查询长时间无响应

这次事故的起因是突然发现服务器有一个定时任务积累了超过50个进程没有退出。由于我们要定时做数据预处理,因此在服务器上部署了一个定时Python脚本,每10分钟执行一次。经过测试没有发现问题后就直接部署了,直到系统突然报警显示没有新数据流。实际上数据预处理的工作量并不大,不会涉及到耗时的计算。最终发现原因是脚本从Mongodb数据库中获取数据时,Mongodb长时间无响应,整个流程就卡住了。检查了MongoDB服务器,也没有发现CPU和内存异常。并且,MongoDB可以响应其它的查询操作。所以,这个事情就非常诡异了。
Read more

记一次安卓刷机的小结

最近中国移动送了两个电话卡,正好家里有一台闲置的安卓手机,准备拿其中一张电话卡做一个无线Wifi热点。然而由于这个安卓手机型号为青橙T5(Green Orange),一款比较基础的手机。配置比较低,但是由于装了大量内置APP,所以跑起来非常慢,而且非常费电。如果还要做Wifi热点的话,撑不了半天就没电了。因此决定动手把这台青橙手机刷一个比较干净的ROM。然而对于一个苹果手机老用户来说,首刷安卓真的不是一件容易的事。因此,决定记录一下,希望以后不再走弯路。

另外,在做任何刷机动作前,一定要备份所有数据,包括当前的系统镜像。
Read more

在线调试Scrapy Cluster爬虫错误

Scrapy Cluster爬虫调试是开发上线过程中比较麻烦的事情。主要原因是爬虫脚本是本地开发的,即使把开发环境尽量和生产环境配置类似,通过了测试并上生产以后仍然会碰到一些问题。最常见的情况就是生产环境没有数据,但是开发和测试环境有数据。这种情况下,我们就需要耐心地一步一步查看每一个环节的日志文件和数据。以下我们就假设线上爬虫没有数据这个故障来分析判断故障原因。
Read more

MongoDB数据库Too Many Open Files问题

初次使用MongoDB数据库的时候,碰到过很多问题,尤其是Too Many Open Files这个问题非常常见,并且在实际使用中也碰到过好几次。其实解决方案也非常简单,主要是Linux限制了打开文件的最大数量。因此,只要提高这个数量限制就可以了。然而,打开文件句柄的数量毕竟是上限的,因此还是需要找到根源问题,并优化MongoDB的使用方式,尽量避免出现Too Many Open Files的问题。
Read more