python开发环境搭建之virtualenv和virtualenvwrapper(MAC环境)

python开发环境搭建之virtualenv和virtualenvwrapper(MAC环境)

一 virtualenv介绍

在开发过程中,有时候会有这种需求.我们在开发两个项目,项目A和项目B, 其中项目A依赖模块A的1.0版本, 项目B依赖模块A的2.0版本.但是这两个版本不互相兼容.就会出现问题.又或者项目A要用python要用python2开发,项目B用python3进行开发,这时候就会搞的很头痛

python不像JAVA,有maven这种项目的依赖管理工具.都是通过pip easy_install这种工具来管理模块依赖的.当我们需要依赖某一个模块时,就使用pip install来安装,或者是使用easy_install来进行模块安装.安装完这个模块是全局生效的.个人感觉python在这一块儿实在是太弱了,像JAVA有强大的maven可以管理运行时的依赖.但是python这个是真的没有.我们通过virtualenv来进行管理,可以解决一部分问题.

virtual[……]

Read More…

记一次线上MySQL慢查询的优化

记一次线上MySQL慢查询的优化

哎,这次苦逼的经历,真泥坑爹,看了一下午SQL,眼睛都快看瞎了,现在终于解决了,总结一下吧.

中午的时候运维报了一个慢SQL出来.看了一下执行计划,没发现问题,SQL如下

执行计划如下图


这执行计划能跑44秒?我擦,怎么可能呢! 但是事实就是如此

下面就开始了苦逼的profiling

EXPLAIN看不出问题,那就profile看一下

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发现这个Sending Data很慢(因为这个名字[……]

Read More…

使用selenium做自动化测试入门-基于JAVA

使用selenium做自动化测试入门-基于JAVA

之前在使用JAVA做爬虫的时候,有遇到一个问题,就是有些网站,必须要浏览器运行,然后JS执行.内容才能显示出来.遇到这种站,代码直接就趴了,内容抓取不到.网上找了一下发现有一个叫selenium的,可以模拟浏览器行为,做自动化测试.感觉这个应该挺好玩的.难得今天有时间.玩了一把.确实不错

我的项目使用的依赖管理工具是maven,下面给出Selenium的maven地址

然后写一个入门测试的程序

由于selenium的运行是基于浏览器的,所以这里要下载一个webdriver,把下载下来的webDriver放到一个目录里面,然后使用System工具类设置一下系统变量,指向这个webDri[……]

Read More…

记一题CTF的decode和encode

记一题CTF的decode和encode

最近开始接触了CTF,发现挺有意思的. 在某网站上,看到了这样一个题目.看了半天,根据自己的思路,猜想发现了一些东西,但是搞到最后,怎么都不对.最后借助大神们的思路,找到了解决方法,原来自己一开始,就想错了.解出题目之后,想逆向实现一下.

题目如下:

encode和decode

 

java中的Class.forName

java中的Class.forName

在做JAVA EE开发的过程中,更多的是使用框架来提高开发效率.越来越发现,之前很基础的一些东西,都忘记的差不多了.从今天开始慢慢的复习一下基础.今天在看JDBC的时候,就有一个有趣的地方,之前学的时候,也没在意.这个Class.forName究竟是什么鬼.

连接数据库几大步.看以下代码

其中第一步,搞的我有点想不通.为啥Class.forName传入了一段字符串之后,就知道我连接的数据库是mysql? 有点不科学啊.Class.forName到底做了啥.下面就开始到源码中,一探究竟.

发现它调用了forName0方法,继续跟踪再看看

native方法,源码也只能到此结束了.看[……]

Read More…