飞污熊博客

静下心来做一件事

ECharts是一款由百度前端技术部开发的,基于Javascript的数据可视化图表库,提供直观,生动, 可交互,可个性化定制的数据可视化图表。

提供大量常用的数据可视化图表,底层基于ZRender(一个全新的轻量级canvas类库),创建了坐标系,图例,提示, 工具箱等基础组件,并在此上构建出折线图(区域图)、柱状图(条状图)、散点图(气泡图)、饼图(环形图)、K线图、地图、 力导向布局图以及和弦图,同时支持任意维度的堆积和多图表混合展现。

官方网站:http://echarts.baidu.com/index.html

阅读全文 »

经常有这个需求,用用到树形菜单做展示或者选择,基于jquery的一个控件zTree非常简单好用,这里做一下记录。

官网介绍,zTree 是一个依靠 jQuery 实现的多功能”树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

官网地址:http://www.treejs.cn/v3/main.php

另外还有好多实际效果的演示,可以去看看。

阅读全文 »

CentOS 7继承了RHEL 7的新的特性,例如强大的systemd, 而systemd的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变, 也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同,同时变的简单而易用了许多。

CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统 system 和用户 user 之分, 即:/usr/lib/systemd/system/usr/lib/systemd/user

阅读全文 »

vim 是 Linux 系统上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版, 而 gvim 则是其 Windows 版。它的最大特色是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门变得困难, 但上手之后键盘流的各种巧妙组合操作却能带来极为大幅的效率提升。

因此 vim 和现代的编辑器(如 Sublime Text)有着非常巨大的差异,而且入门学习曲线陡峭, 需要记住很多按键组合和命令,如今被看作是高手、Geek们专用的编辑器。尽管 vim 已经是古董级的软件, 但还是有无数新人迎着困难去学习使用,可见其经典与受欢迎程度。另外,由于 vim 的可配置性非常强, 各种插件、语法高亮配色方案等多不胜数,无论作为代码编辑器或是文稿撰写工具都非常给力。

阅读全文 »

你是否经常要在Windows 7或MAC OS X上面开发Python或Web应用程序,但是它们最后需要在linux上面来运行呢? 我们经常会碰到开发时没有问题但是到了正式的Linux环境下面却出现问题。那么怎样保证开发环境跟运行环境的一致呢?

通常有两种方法解决。一种是使用PyCharm内置支持的Vagrant, 这个教程可以参考Vagrant开发环境配置

不过很遗憾的是我自己在试验过程中启动VirtualBox虚拟机时候老是报错,暂时还没解决,读者可以自己试着测试看行不行。 第二种方式就是通过PyCharm的远程解释器加上文件同步功能,实现本地编辑代码->同步到服务器->通过远程debug来调试测试程序。 目前我选择的是第二种,虽然比第一种更笨拙点。

远程调试的功能在Eclipse、IntelliJ IDEA等大型IDE中均有支持,实现原理都基本相同,这里采用PyCharm进行说明。

阅读全文 »

python有时候简单起来连我自己都怕,有时候其他语言需要几十写出来的python几行搞定。 这里经常收集一些有趣的东西还是很好玩的。

阅读全文 »

以前一直使用virtualenv来管理python的包环境,但是有时候我需要多个python版本环境时候就不能愉快的玩耍了。 而pyenv可以帮到我。

pyenv是针对python版本的管理,通过修改环境变量的方式实现,在其官网说明上很清楚, 通过在PATH最前面插入shims来决定应用使用的python版本,从而将你的命令传递给正确的python程序。

我的系统环境是CentOS7.2

阅读全文 »

WSGI的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口。具体的来说,WSGI是一个规范, 定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。 最新版本在PEP-3333中定义。

对于初学者来说,上面那段就是废话,说了跟没说一样。接下来详细说明下这个东东到底是如何工作的。

阅读全文 »

开篇我先解释一下两个容易搞混的术语:

  • OSGi: The Open Services Gateway Initiative(开放服务网关协议) ,是用来模块化开发和部署Java应用程序和库(library)的一种架构,已经成为Java模块化事实上的标准了。详细解释请参考OSGi简介
  • WSGI: Web Server Gateway Interface(Web服务器网关接口) ,具体的来说,WSGI是一个Python专用规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。最新版本在Python的PEP-3333定义的。详细解释请参考WSGI简介

所以,弄清楚之后才发现只有一个字母的差别,但是这两个东东一毛钱的关系都没有,^_^

跟Java的Servlet协议和EJB协议类似,OSGi协议定义了两件事:一组OSGi容器必须实现的服务,以及容器和你的应用程序之间的接口标准。 也许你会搞不懂为什么我们已经有了Servelt容器来构建Web应用程序,有了EJB容器来构建企业级事务应用程序,那我们还要这个OSGi容器干嘛? 简单来讲就是OSGi容器是特地用来开发非常复杂的大型Java应用程序的,你需要将系统分解成很多个模块。

阅读全文 »

前面我们介绍的都是去抓取静态的网站页面,也就是说我们打开某个链接,它的内容全部呈现出来。 但是如今的互联网大部分的web页面都是动态的,经常逛的网站例如京东、淘宝等,商品列表都是js,并有Ajax渲染, 下载某个链接得到的页面里面含有异步加载的内容,这样再使用之前的方式我们根本获取不到异步加载的这些网页内容。

使用Javascript渲染和处理网页是种非常常见的做法,如何处理一个大量使用Javascript的页面是Scrapy爬虫开发中一个常见的问题, 这篇文章将说明如何在Scrapy爬虫中使用scrapy-splash来处理页面中得Javascript。

阅读全文 »