本指南可以很快让你学会写优美的面向对象JavaScript代码,我保证!学会写简洁的JavaScript代码对一个开发者的发展很重要,随着像Node.js这类技术的出现,你现在可以在服务器端写JavaScript代码了,你甚至可以用JavaScript来查询像MongoDB这样的持久性数据存储。

现在开始写面向对象的JS(OO JS),如果你有什么问题或我遗漏了什么,在下面评论出告诉我。

Literal Notation
Literal Notation只是在JavaScript中创建对象的一种方法,是的,方法不止这一种。当你打算创建一个对象实例的时候Literal Notation是首选的方法。
var bill = {}; 

上面的代码没太大用处,仅仅只是创建了一个空对象。让我们动态的添加一些属性和方法到这个对象。

bill.name = "Bill E Goat";
bill.sound = function() {
	console.log( 'bahhh!' );
};

这里我们添加了“name”属性并赋值为“Bill E Goat”。我们不一定要在前面创建空对象,还可以只用一步完成上面 所有的事。

var bill = {
  name: "Bill E Goat",
  sound: function() {
    console.log( 'bahhh!' );
  }
};

很简洁漂亮是不是?访问属性和方法也一样很简单。

bill.name; // "Bill E Goat"
bill.sound(); // "bahhh"

阅读全文

原文:http://www.cnpythoner.com/post/140.html

python def和python lambda 这2个有相似点也有不同点,今天给大家分享下自己的心得吧。

先说说2个的相似点: 这两个很重要的相似点就是都可以定义一些固定的方法或者是流程,供给程序来调用,比如我们要定义一个变量加2的方法。

首先看python def吧。

def info(x):
    return x + 2

a = info(1) print a

再看下python lambda

f = lambda x : x+2
a = f(1) 
print a 

上面2种方式输出的结果都是3,如果你要完成一些固定的流程的话,上面两种你都可以任意选择。


阅读全文

下面是python标准库和第3方库的介绍:

 Tkinter———— Python默认的图形界面接口。

  Tkinter是一个和Tk接口的模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的,目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件,如一个按钮、一个滚动条等。通过Tk提供的这些小部件,我们就可快速地进行GUI开发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台,在各种平台下都能使用。

  Python Imaging Library(PIL)————它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理,如图形的放大、缩小和旋转等。是用户进行图象处理的强有力工具。

  Pmw(Python megawidgets)它是超级GUI组件集————一个利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。

  PyXML———— 用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容:

  xmlproc: 一个符合规范的XML解析器。

  Expat: 一个快速的,非验证的XML解析器。 还有其他

  和他同级别的还有 PyHtml PySGML

  PyGame———— 用于多媒体开发和游戏软件开发的模块。

  PyOpenGL———— 模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。


阅读全文

在windows下vim的中文字体显示并不好,所以我们需要调整字体显示编码为utf-8,只有这样才能使用美观的中文。这时候可能出现很多中文乱码。

如:文件显示乱码、菜单乱码、右键菜单乱码、conlse输出乱码、文件关联右键菜单乱码等等。

以下_vimrc配置可以解决以上问题。

if has(“gui_running”)
set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1

if has(“win32″) set fileencoding=chinese else set fileencoding=utf-8 endif

let &termencoding=&encoding

” 解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim

” 解决consle输出乱码 language messages zh_CN.utf-8 endif


阅读全文

今天再做一个中国地图的可视化展现,需要对每个省份的轮廓进行染不同颜色,以此来区分各个省份。

用的是百度地图,所以需要用JS来生成Polygon多边形,然后用颜色填充,现在需要随机生成颜色,所以需要随机生成3个0-16的16进制数,拼接起来,作为一个颜色的RGB值。

不多说,直接上简单明了的JS代码,如何随机生成0-16的数,然后把十进制的值转换为十六进制。

var r = parseInt(Math.random()*16);
var g = parseInt(Math.random()*16);
var b = parseInt(Math.random()*16);
//转换为十六进制,使用 int.toString(16)即可.
//相应的,还可以使用toString(10) , toString(8), toString(2)来转化为十进制,八进制,二进制等。
r = r.toString(16);
g = g.toString(16);
b = b.toString(16);
//拼接成颜色的RGB值
var color = '#'+r+g+b;

阅读全文

在本机搭建测试环境时,使用了mysqldump导出了一个数据库文件,将近500M,即使是压缩后也有100M左右,在通过mysqldump导入时,发生了错误: “MySQL server has gone away.”。

个人猜测,发生 MySQL server has gone away 问题的原因很可能就是数据文件过大,导致超时。

所以对mysql进行修改:修改my.ini(在lnix/unix下是my.cnf)文件,加大超时参数

wait_timeout=2888888

如果没有此参数,直接在my.ini/my.cnf文件末尾一行添加上即可。

重启mysql。

最后再次执行导入语句

mysql -uroot -p123456 test_data < D:Xampsqldatatest.sql

注:在使用mysqldump时要注意,客户端mysqldump工具的版本要高于等于服务器的版本。


阅读全文

最近在使用ammap和amcharts做一些数据可视化展现的工作,amcharts图表功能真的很强大,可自定义的属性很多。这是其官网文档链接。可以简单看看文档,会发现有很多属性,可以对图表中的每块表示数据的区域绑定事件,可以是一个url,也可以是一个js,怎么样,只有这两项,就绝对能满足很多扩展的需要了吧。

这是一个我做的例子,使用了ammap和amcharts,左边中国地图,不同省份的数据不一样,颜色代表不同等级的数据;右边是amcharts做的柱状图和折线图。

ammap和amcharts的案例--好用可扩展的javascript图表插件

ammap和amcharts的案例--好用可扩展的javascript图表插件

问题就在使用图表的过程中了,主要是右下角的那个折线图,在chrome、firefox、opera和IE9下均看过了,没有问题,可是到别人机器上,用的IE8,发现右下角的折线图出问题了。于是开始了JS的调试之旅,使用IE9的开发人员工具,可以很方便的调到IE7和IE8模式,之前一直都是firefox的firebug,现在一直都在用chrome,今天用了用IE9的调试工具,发现也挺好用的,主要是它有一个选项,可以设置为-始终从服务器中刷新,这样,每次IE运行获得的JS和CSS文件等,都不会是缓存中来的,调试起来很方便,不用总去清缓存。见下图:


阅读全文

作者的图片

DigDeeply

Technology Stack: PHP/Openresty/GoLang, and so on…

Web Development Engineer

Beijing China