博客园 - Sparkjin
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=55051
2012-12-21T09:14:30Z
Sparkjin
https://www.cnblogs.com/Goldworm/
feed.cnblogs.com
https://www.cnblogs.com/Goldworm/archive/2012/12/21/2828308.html
解决命令行下django-admin.py参数不起作用的问题 - Sparkjin
django官方turial中创建本地web站点时,使用如下命令django-admin.py startproject mysite说一下我在使用时碰到的几个问题:1、无法找到django-admin.py文件?解决:django在安装完后,正常会将C:/Python25/Lib/site-packages/django/bin路径添加到path环境变量中,因而可以直接运行django-admin.py。但是,我正常安装完后并没有自动添加到环境变量,因此需要手动添加进去。2、django-admin.py startproject mysite命令没有创建mysite?解决:这个命令在XP下
2012-12-21T09:11:00Z
2012-12-21T09:11:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】django官方turial中创建本地web站点时,使用如下命令django-admin.py startproject mysite说一下我在使用时碰到的几个问题:1、无法找到django-admin.py文件?解决:django在安装完后,正常会将C:/Python25/Lib/site-packages/django/bin路径添加到path环境变量中,因而可以直接运行django-admin.py。但是,我正常安装完后并没有自动添加到环境变量,因此需要手动添加进去。2、django-admin.py startproject mysite命令没有创建mysite?解决:这个命令在XP下 <a href="https://www.cnblogs.com/Goldworm/archive/2012/12/21/2828308.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/11/15/2771708.html
gettimeofday()函数 - Sparkjin
使用C语言编写程序需要获得当前精确时间(UNIX到现在的时间),或者为执行计时,可以使用gettimeofday()函数。它的[1]: #include <sys/time.h> int gettimeofday(structtimeval*tv, struct timezone *tz); 其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果(若不使用则传入NULL即可)。 结构体timeval的定义为: struct timeval { long tv_sec; // 秒数 long tv_usec; // 微秒数 } 它获得的时间精确到微秒(1e-6 s)量级...
2012-11-15T08:25:00Z
2012-11-15T08:25:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】使用C语言编写程序需要获得当前精确时间(UNIX到现在的时间),或者为执行计时,可以使用gettimeofday()函数。它的[1]: #include <sys/time.h> int gettimeofday(structtimeval*tv, struct timezone *tz); 其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果(若不使用则传入NULL即可)。 结构体timeval的定义为: struct timeval { long tv_sec; // 秒数 long tv_usec; // 微秒数 } 它获得的时间精确到微秒(1e-6 s)量级... <a href="https://www.cnblogs.com/Goldworm/archive/2012/11/15/2771708.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/09/25/2702029.html
SQL Server 查询处理中的各个阶段(SQL执行顺序) - Sparkjin
SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中指定某一子句,将跳过相应的步骤。下面是对应用于SQL server 2000和SQL Server 2005的各个逻辑步骤的简单描述。(8)SELECT(9)DISTINCT(11)<TopNum><
2012-09-25T10:38:00Z
2012-09-25T10:38:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中指定某一子句,将跳过相应的步骤。下面是对应用于SQL server 2000和SQL Server 2005的各个逻辑步骤的简单描述。(8)SELECT(9)DISTINCT(11)<TopNum>< <a href="https://www.cnblogs.com/Goldworm/archive/2012/09/25/2702029.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/09/10/2678514.html
KMP算法原理及next函数生成 - Sparkjin
KMP算法原理及next原文:http://youlvconglin.blog.163.com/blog/static/5232042010530101020857/ KMP是一个高效的字符串匹配算法,它是由三位计算机学者 D.E.Knuth 与 V.R.Pratt 和 J.H.Morris 同时发现的,因此人们通常简称它为 KMP 算法。可以证明它的时间复杂度为O(m+n),直观地看,是因为在匹配过程中指针 i 没有回溯。KMP算法的核心思想是利用已经得到的部分匹配信息来进行后面的匹配过程。一般匹配算法中,进行"两个子串的比较"过程中,不管是T串的第几个字符发生"
2012-09-10T03:48:00Z
2012-09-10T03:48:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】KMP算法原理及next原文:http://youlvconglin.blog.163.com/blog/static/5232042010530101020857/ KMP是一个高效的字符串匹配算法,它是由三位计算机学者 D.E.Knuth 与 V.R.Pratt 和 J.H.Morris 同时发现的,因此人们通常简称它为 KMP 算法。可以证明它的时间复杂度为O(m+n),直观地看,是因为在匹配过程中指针 i 没有回溯。KMP算法的核心思想是利用已经得到的部分匹配信息来进行后面的匹配过程。一般匹配算法中,进行"两个子串的比较"过程中,不管是T串的第几个字符发生" <a href="https://www.cnblogs.com/Goldworm/archive/2012/09/10/2678514.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/09/08/2676377.html
C++ 中的mutable - Sparkjin
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。 下面是一个小例子:class ClxTest{ public: void Output() const;};void ClxTe...
2012-09-08T02:49:00Z
2012-09-08T02:49:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。 下面是一个小例子:class ClxTest{ public: void Output() const;};void ClxTe... <a href="https://www.cnblogs.com/Goldworm/archive/2012/09/08/2676377.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/09/07/2675944.html
RPM之.rpmmacros文件 - Sparkjin
建立~/.rpmmacros文件是存储各种宏定义,比如_topdir宏的值来自定义打包路径echo "%_topdir $HOME/rpmbuild" > ~/.rpmmacros相当于在.rpm文件中写入%_topdir $HOME/rpmbuild即定义%_topdir为路径$HOME/rpmbuild
2012-09-07T13:39:00Z
2012-09-07T13:39:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】建立~/.rpmmacros文件是存储各种宏定义,比如_topdir宏的值来自定义打包路径echo "%_topdir $HOME/rpmbuild" > ~/.rpmmacros相当于在.rpm文件中写入%_topdir $HOME/rpmbuild即定义%_topdir为路径$HOME/rpmbuild <a href="https://www.cnblogs.com/Goldworm/archive/2012/09/07/2675944.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/09/07/2675679.html
Linux之 Centos 下RPM 的环境搭建 - Sparkjin
在 CentOS 下设置一个创建 RPM 的环境这份文件会指引你如何在 CentOS 下安装及设置一个用来创建 RPM(及重建 SRPM)的环境。切勿以 root 的身份来创建 RPM。这个工作应该永远在一个没有特殊权限的户口内进行。以 root 的身份来创建 RPM 可能会损坏你的系统。已经预先警告过你了。一、检查你已经安装了 rpmbuild首先,你应该检查rpmbuild是否已经被安装在你的系统上。你将会利用这个工具从 spec 文件或 SRPM 组件创建 RPM。要检查它是否被安装了,请执行rpmbuild--showrc这个指令。它将会显示一大组数据,把rpmbuild所采用的创建环
2012-09-07T12:45:00Z
2012-09-07T12:45:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】在 CentOS 下设置一个创建 RPM 的环境这份文件会指引你如何在 CentOS 下安装及设置一个用来创建 RPM(及重建 SRPM)的环境。切勿以 root 的身份来创建 RPM。这个工作应该永远在一个没有特殊权限的户口内进行。以 root 的身份来创建 RPM 可能会损坏你的系统。已经预先警告过你了。一、检查你已经安装了 rpmbuild首先,你应该检查rpmbuild是否已经被安装在你的系统上。你将会利用这个工具从 spec 文件或 SRPM 组件创建 RPM。要检查它是否被安装了,请执行rpmbuild--showrc这个指令。它将会显示一大组数据,把rpmbuild所采用的创建环 <a href="https://www.cnblogs.com/Goldworm/archive/2012/09/07/2675679.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/09/06/2673778.html
简单RPM包的制作 - Sparkjin
原文:http://zhumeng8337797.blog.163.com/blog/static/100768914201181782310771/最近学习rpm打包,参考ibm文档库里rpm打包的文章,结合自己的实践,总结如下,一来备忘,二来和大家交流。和deb打包不同,rpm打包需要特定的目录及结构。查看rpm打包目录,以下为在CentOS5.5下的输出结果:$ rpm --showrc|grep _topdir -14: _builddir %{_topdir}/BUILD -14: _rpmdir %{_topdir}/RPMS -14: _sourcedir %{_t...
2012-09-06T08:53:00Z
2012-09-06T08:53:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】原文:http://zhumeng8337797.blog.163.com/blog/static/100768914201181782310771/最近学习rpm打包,参考ibm文档库里rpm打包的文章,结合自己的实践,总结如下,一来备忘,二来和大家交流。和deb打包不同,rpm打包需要特定的目录及结构。查看rpm打包目录,以下为在CentOS5.5下的输出结果:$ rpm --showrc|grep _topdir -14: _builddir %{_topdir}/BUILD -14: _rpmdir %{_topdir}/RPMS -14: _sourcedir %{_t... <a href="https://www.cnblogs.com/Goldworm/archive/2012/09/06/2673778.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/06/04/2534849.html
C++基类和派生类访问详解 - Sparkjin
通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。 在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。 派生类的定义格式 单继承的定义格式如下: class <派生类名>:<继承方式><基类名> { <派生类新定义成员> }; 其中,<派生类名>是新定义的一个类的名字,它是从<基类
2012-06-04T07:56:00Z
2012-06-04T07:56:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。 在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。 派生类的定义格式 单继承的定义格式如下: class <派生类名>:<继承方式><基类名> { <派生类新定义成员> }; 其中,<派生类名>是新定义的一个类的名字,它是从<基类 <a href="https://www.cnblogs.com/Goldworm/archive/2012/06/04/2534849.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/05/22/2513671.html
ROW_NUMBER() OVER函数的基本用法 - Sparkjin
转自:http://www.cnblogs.com/icebutterfly/archive/2009/08/05/1539657.html语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。 示例: xlh row_num 1700 1 1500 2 1085 3 710 4 row_number() OVER (PA
2012-05-22T09:59:00Z
2012-05-22T09:59:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】转自:http://www.cnblogs.com/icebutterfly/archive/2009/08/05/1539657.html语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。 示例: xlh row_num 1700 1 1500 2 1085 3 710 4 row_number() OVER (PA <a href="https://www.cnblogs.com/Goldworm/archive/2012/05/22/2513671.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/05/21/2511910.html
C/C++源代码到可执行程序的过程详解 - Sparkjin
编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。源代码-->预处理-->编译-->优化-->汇编-->链接-->可执行文件Source--(编译)--> Assembly--(汇编)-->Obj--(链接)-->PE/ELF1.编译预处理读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理[析] 伪指令主要包括以下四个方面(1)宏定义指令,如#define Name TokenString,
2012-05-21T09:07:00Z
2012-05-21T09:07:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。源代码-->预处理-->编译-->优化-->汇编-->链接-->可执行文件Source--(编译)--> Assembly--(汇编)-->Obj--(链接)-->PE/ELF1.编译预处理读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理[析] 伪指令主要包括以下四个方面(1)宏定义指令,如#define Name TokenString, <a href="https://www.cnblogs.com/Goldworm/archive/2012/05/21/2511910.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Goldworm/archive/2012/05/21/2511905.html
C++/C的文件结构 - Sparkjin
对于C++/C的程序开发员来说,文件结构这一内容是很重要的一块,我们知道,每个C++/C程序通常分为两个文件。一个为头文件,用于保存程序的声明(declaration)。另一个为定义(definition)文件,用于保存程序的实现(implementation)。在编程时若能掌握一些技能是很有帮助的。下面就来讲讲这个编程方面的要点。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。1.版权和版本的声明版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:(1
2012-05-21T09:05:00Z
2012-05-21T09:05:00Z
Sparkjin
https://www.cnblogs.com/Goldworm/
【摘要】对于C++/C的程序开发员来说,文件结构这一内容是很重要的一块,我们知道,每个C++/C程序通常分为两个文件。一个为头文件,用于保存程序的声明(declaration)。另一个为定义(definition)文件,用于保存程序的实现(implementation)。在编程时若能掌握一些技能是很有帮助的。下面就来讲讲这个编程方面的要点。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。1.版权和版本的声明版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:(1 <a href="https://www.cnblogs.com/Goldworm/archive/2012/05/21/2511905.html" target="_blank">阅读全文</a>