一、安装打包需要的工具 apt-get install dh-make debhelper devscripts cdbs build-essential fakeroot python2.5-dev 在对Python源代码进行打包的时候,需要用于打包的专用命令,例如创建文件模板、加入man文件、生成Debian包使用的md5sum文件、将所有的文件整合成“*.deb”文件等,debhelper库的安装提供了一系列小工具来完成这些任务。 dh-make是一个方便对源代码进行Debian化的工具,主要体现在根据当前的Debian系统为我们自动生成一系列格式化的build files,省去我们手动创建的功夫。 Debian包本身的所有者是root,同时也需要root权限来安装的,为了使非root权限的开发者也能够创建Debian包,fakeroot命令使在创建文件的时候让非root用户获取到root的权限,仅仅在创建文件的时候。 传统的makefile文件是需要自己写一系列的命令来完成打包的过程,包括检查权限、调用打包命令等等,为了减轻打包的工作,使用cdbs(Common Debian Build System)为开发人员处理打包的细节和检查相关的配置。 python2.5-dev的加入是为了能够编译Python源代码中的extensions,可以根据当前系统的python版本(如X.Y)来下载相应的pythonX.Y-dev包。 安装devscripts可以获得许多的辅助性工具,有利于提高制作Debian包的效率。比如使用dch命令来编辑changelog文件、使用debclean清除包创建过程中生成的各种临时文件等等。 创建Debian软件包的环境主要在Debian操作系统上。
Function.__proto__指向Function.prototype,这导致: Function.constructor === Function Function instanceof Function == true 即Function是它自己的构造器。 Object.__proto__指向Function.prototype,即Object也是Function构造的实例,因此有: Object instanceof Function == true 同时也等价于: Object.constructor === Function 而Function.prototype.__proto__又是指向Object.prototype,即Function.prototype是Object构造的实例,因此有: Function instanceof Object == true Object instanceof Object == true Foo.__proto__指向了Function.prototype,可以看到自定义的函数Foo其实就是Function的一个实例: Foo instanceof Function == true 参考: JavaScript Object … Continue reading →
原型的含义是指:如果构造器有个原型对象A,则由该构造器创建的实例(Object Instance)都必然复制于A。““在JavaScript中,对象实例(Object Instance)并没有原型,而构造器(Constructor)有原型,属性’<构造器>.prototype’指向原型。对象只有“构造自某个原型”的问题,并不存在“持有(或拥有)某个原型”的问题。””如何理解这一句话? 代码1: function myFunc() { var name = “stephenchan”; var age = 23; function code() { alert(“Hello World!”); }; } var obj = new myFunc(); //输出undefined,对象实例没有原型 alert(obj.prototype); //输出myFunc的函数代码,obj由myFunc构造出来的 alert(obj.constructor); //输出true alert(obj.constructor == myFunc); //输出[object Object],说明myFunc的原型是一个对象 alert(myFunc.prototype); //输出function Function() … Continue reading →
闭包和作用域链是JavaScript中比较重要的概念,这两天翻阅了一些资料,总结了一下。首先,看看几段简单的代码。 代码1: var name = “stephenchan”; var age = 23; function myFunc() { alert(name); var name = “endlesscode”; alert(name); alert(age); alert(weight); } myFunc(); myFunc(); 上述代码1中,两次调用myFunc()的输出是一致的。可能你会认为输出是: stephenchan endlesscode 23 [Reference Error] 但是结果却是: 代码1输出: undefined endlesscode 23 [Reference Error] 代码2: var i … Continue reading →
MySQL常用工具 “default-character-set”这个选项作为服务器字符集选项,可以在my.cnf的[mysqld]组中配置,也可以在my.cnf的[mysql]组中配置,并且可以在mysql的命令行中手工指定客户端字符集”mysql -u user –default-character-set=charset”。 在命令行中”-e(–execute=)”选项可以直接执行MySQL脚本,而不用连接到MySQL数据库后再执行。可以按这种方式连续执行多个SQL语句,用英文分号(;)隔开,”mysql -u root -p -e ‘select * from t1;select count(*) from t2′”。 命令行中的”-E”选项类似于mysql里面执行SQL语句后加”\G”来进行格式化输出。 还有几个错误处理选项,”-f(–force)”表示强制执行SQL,”-v(–verbose)”显示更多信息,”–show-warnings”显示警告信息。 myisampack(MyISAM表压缩工具)可以使用很高的压缩率来对MyISAM存储引擎的表进行压缩,使用压缩后的表占用比压缩前小得多的磁盘空间。但是压缩后的表也将成为一个只读表,不能进行DML操作。 mysqlbinlog(日志管理工具)可以检查由服务器生成的二进制日志,其中–start-datetime/position、–stop-datetime/position可以查看指定日期间隔或者位置间隔内的所有日志。 mysqlcheck(MyISAM表维护工具)可以检查和修复MyISAM表,还可以优化和分析表。实际上,它集成了mysql工具中check、repair、analyze、optimize的功能。 mysqldump(数据导出工具)用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建表或装载表的SQL语句。mysqldump目前是MySQL中最常用和备份工具。 mysqlhotcopy(MyISAM表热备份工具)是一个Perl脚本,它使用了LOCK TABLES、FLUSH TABLES、cp或scp来快速备份数据库。它是备份数据库或单个表的最快途径,其缺点是mysqlhotcopy只用于备份MyISAM,而且它需要运行在Linux/Unix环境中。 mysqlimport(数据导入工具)是客户端数据导入工具,用来导入mysqldump加-T选项后导出的文本文件。它实际上是客户端提供了LOAD DATA INFILE语句的一个命令行接口。 mysqlshow(数据库对象查看工具)客户端对象查找工具,用来很快地查找哪些数据库、数据库中的表、表中的列或索引。其使用方法如下:mysqlshow [-u|-p] [dbname] [table] [col] –count(显示统计信息)/-k(-keys,显示指定表的所有索引)/-i(-status,显示表的一些状态信息) perror(错误代码查看工具)是用来解释数据库中一些错误代码的详细含义的,”perror 30 60″是查看错误号30和60分别指什么错误。