我所理解的微服务
自从去年开始工作以后就被微服务刷屏了,各大厂争先进行微服务改造,放出的各种PPT文档也是眼花缭乱,由于概念太难了我一直没搞懂。最近终于搞懂了啥是微服务,其实很简单。 首先需要确认的是一般的web后端不适合微服务,什么是一般的web后端呢?就是一些比较简单的对数据库增删查改或者对缓存进行操作、用来生成网页html的、写成一个项目也没啥问题的后端,每一…
定制linux上绿色版的php
很多时候我在linux主机上只使用特定版本的php-cli来搞一下运维或者开Workerman/swoole之类的php-cli应用,但是我又不想使用linux的包管理来安装php,因为这样麻烦龟速、把系统搞乱以及安装的php版本依赖也许会不同,我就想linux下能不能有想windows下那样方便的绿色版的php(windows下的官方提供了绿色版…
编译Chromium for Android的一些坑
主体按照官网的流程:https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md ,这里只介绍其中的一些坑。 由于只支持Linux编译,没环境的推荐用VMWare虚拟机安装了个ubuntu16.04,给虚拟机分配200G的固定大小…
restricted-redis-proxy:一个命令受到限制的redis代理
花了几天时间做了这么一个小玩意儿,动机是我平常用redis的场合挺多的,但是redis本身缺乏用户权限控制导致很多情况下没法用。我们知道redis作为一个缓存,只支持简单的密码验证,所有用户都在任意数据库执行任何命令。我总结了几个用redis比较困扰的场景: 1、团队的很多服务都依赖同一个redis,很多时候免不了误操作,比如队友不小心flusha…
基于java的NIO的luminati.io代理方案客户端填坑记录
由于厂里爬虫业务需要,我一直想复制国外的初创公司luminati.io的代理方案,魔改一下可以应用到厂里的一些业务上。这玩意儿也没啥大不了的,本质上是就是个服务器端转发了1次+客户端反向连接转发1次的代理隧道之类的东东,我断断续续研究了几个月以后终于打通了。和一般的http代理服务器原理一样,服务器端和客户端本质上都是异步并发的tcp操作,它们用一…
在windows下使用zephir写php7扩展
著名的php框架phalcon为了更好的用C语言开发php扩展而发明了语言zephir,编译时zephir会被翻译成C语言然后编译成php扩展,我个人很喜欢这门语法朴素+规规矩矩+不装逼的语言。 我平时在windows下工作,目前网上搜索到的在windows下用zephir写扩展的教程都已经过时了,我花了点时间打通了一下。我环境windows 7 …
简单的C++图像算法web端Demo制作
做计算机视觉的同学们在把算法写好以后,往往还想弄一个在线的web端的展示页面,然而大部分同学的算法基于C++且往往采用了OpenCV、Caffe等第三方库,怎么放到在线web端展示的确是一个很麻烦的问题。这里我假设你的图像处理算法在windows或者linux平台下用C++开发,并且使用了各种C++下的第三方库,而你需要的web端展示页面只是需要用…
一个往mysql中插入字符串被截断的坑
手里有个爬虫收到报警没成功,然后去查数据库发现状态码都是对的,最终原因是mysql的一个MEDIUMTEXT字段存的一个json字符串化的数据被截断了(直接导致这个数据解析失败)。 一开始我还以为是我用的GUI管理工具一次性没法取回这么大数据,于是换了另一个GUI工具还是不行,然后换命令行操作发现还是截断的,这就明白了的确是字符串被截断了。我们知道…
最好的语言PHP + 最好的前端测试框架Selenium = 最好的爬虫(下)
在上篇中,我主要讲了用PHP写爬虫时的一些经验,在下篇中我会对Selenium进行展开,把我总结的Selenium技巧和一些坑的处理方法介绍给大家。 上篇:《最好的语言PHP + 最好的前端测试框架Selenium = 最好的爬虫(上)》 为什么是Selenium 在简单的爬虫中直接用httpclient就可以爬了,但是反爬虫比较厉害的情况下,有很…
最好的语言PHP + 最好的前端测试框架Selenium = 最好的爬虫(上)
为什么是PHP 其实就目前业界来说,python下的爬虫轮子是最多的,我厂大多数同学都用python搞爬虫。我由于原来搞web后端用PHP比较多,对PHP下的生态和第三方库啥的如数家珍,厂里对使用的语言也不做强制要求,所以我就用最拿手的PHP开搞了。有同学可能会觉得PHP下爬虫轮子似乎不多,甚至有部分做惯了PHP后台的同学在需要完成爬虫任务时也拿起…