经验总结
文章平均质量分 57
Joe_vv
这个作者很懒,什么都没留下…
展开
-
安装Python及TurboGears 2开发环境
用Python进行开发,Django是事实上的应用框架标准。但是由于项目上的需要,采用的是TurboGears框架。TurboGears是一个开源软件的大集合,诸如模板、数据库等都采用的是第三方开源软件,并且这方面的电子书也只有一本,还是关于TurboGears 1.x的,而目前TurboGears已经是2.0版本了。在Windows下安装TurboGears开发环境,首先要安装Python转载 2013-09-11 08:57:54 · 2229 阅读 · 0 评论 -
a 标签在火狐下会请求两次
a 标签在火狐下会请求两次,原因是由于迅雷的一个组建 Thunder Extension 导致,禁用掉就OK了。原创 2015-06-11 11:18:19 · 1778 阅读 · 2 评论 -
Python时间戳的使用和相互转换
1.将字符串的时间转换为时间戳 方法: import timea = "2013-10-10 23:40:00"# 将其转换为时间数组timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")# 转换为时间戳timeStamp = int(time.mktime(timeArray))timeStamp == 1转载 2015-08-04 10:48:29 · 15913 阅读 · 0 评论 -
PhpWord 如何输出换行符到 word?
PhpWord 如何输出换行符到 word?不多说,直接上答案:注意:不能使用函数 htmlspecialchars,否则换行符会原样输出。原创 2016-04-15 17:15:20 · 10774 阅读 · 4 评论 -
CSS实现单行、多行文本溢出显示省略号(…)
如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。实现方法:overflow: hidden;text-overflow:ellipsis;white-space: nowrap;效果如图:但是这个属性只支持单行文本的溢出显示省略号,如果我们要实现多行文本溢出转载 2016-08-19 16:55:35 · 4470 阅读 · 0 评论 -
开源日志系统 log4c 使用心得+总结
本人最近研究了一下开源的日志系统log4c。简单总结一下:一、安装:我看网上好多人介绍log4c安装的时候都说有两个步骤:先下载expat安装包并安装expat,然后下载log4c安装包并安装log4c。这么看来,log4c是依赖expat的。但是有时候我们不想使用的日志系统还要依赖别的库,毕竟现在的开源日志系统很多,这样一来log4c就没有那么大的优势了。所以我仔细看原创 2012-01-18 11:00:59 · 30926 阅读 · 15 评论 -
IP地址转换函数
IP地址转换函数:unsigned long inet_addr (const char *cp);inet_addr将一个点分十进制IP地址字符串转换成32位数字表示的IP地址(网络字节顺序)。 char* inet_ntoa (struct in_addr in);inet_ntoa将一个32位数字表示的IP地址转换成点分十进制IP地址字符串。转载 2012-12-27 11:03:38 · 1699 阅读 · 0 评论 -
使用 GDB 调试 core dump 文件
上次有个客户的设备出现了引擎挂掉的现象,其中有一次挂掉之后自己没有起来,通过查看日志得知是出现了段错误,但是由于日志提供的信息太少了,我使用反汇编跟踪了 2 天,终于找到段错误的地方,但是仍然没有找到具体是哪句出现段错误,还是不能解决问题。于是,决定在发布的 release 打开 core dump 功能,当出现段错误之后会将一些重要的信息输出到 core 文件。 于是上网找了很原创 2013-01-30 14:31:28 · 5121 阅读 · 0 评论 -
制作deb包
由于需要自己手动制作deb包,上网搜索了不少的资料,总结一下,方便日后温习!deb包的制作方法有: 1. 使用checkinstall方法创建deb包:checkinstall不仅可以生成deb包,还可以生成rpm包,使用简单,但是不灵活,功能粗糙,只做介绍,不推荐使用。$ tar xvjf pcre-8.32.tar.bz2 // 解包$ cd pcr原创 2013-03-26 17:06:40 · 1837 阅读 · 0 评论 -
Linux 更新内核(debian)
Linux 更新内核,首先下载源码包,编译好内核,然后制作deb包,如:linux-image-3.4.31.joe_1_i386.deb1. dpkg安装内核包dpkg -i linux-image-3.4.31.joe_1_i386.deb2. 修改/boot/grub/menu.lst以免升级后内核起不来,将等待时间设置为3秒以上,到时候可以选择从哪个内核启动原创 2013-09-09 14:33:19 · 3138 阅读 · 0 评论 -
Debian 163源
deb http://mirrors.163.com/ubuntu/ precise main restricteddeb-src http://mirrors.163.com/ubuntu/ precise main restricteddeb http://mirrors.163.com/ubuntu/ precise-updates main restricteddeb-src htt原创 2013-08-07 15:41:12 · 4017 阅读 · 0 评论 -
变参函数调用变参函数小结
简单总结一下 变参函数调用变参函数(备忘) 一、调用函数的格式为:fun(*, va_list ) //“*”表示可能有一个或多个参数,这里旨在介绍最后一个参数是va_list类型的情况以printf()的实现为例,下面是printf()函数的源码: int printf(const char *fmt, ...) { char printf_buf[原创 2011-12-28 16:28:49 · 4904 阅读 · 0 评论 -
libxml2实现xml文档的节点的修改
其实在网上很容易能找到使用libxml2来对xml文档进行创建、解析、修改等。我着这里主要是就自己学习的libxml2修改xml文档的节点进行一个简单的总结,方便自己以后回顾。 下面给出我写的一个例子:/********************************************************************** Cop原创 2011-12-30 14:41:58 · 7559 阅读 · 3 评论 -
Ubuntu共享库问题[gtest]_error while loading shared libraries: libgtest.so.0: cannot open shared object fi
今天在装好gtest之后,写了个小例子,编译都没有问题,但是执行:./main.out时出现如下错误提示:error while loading shared libraries: libgtest.so.0: cannot open shared object file: No such file or directory然后执行:ldd main.out sky@sky-deskt转载 2012-01-04 14:12:36 · 5317 阅读 · 0 评论 -
#define barrier() __asm__ __volatile__("": : :"memory") 中的memory是gcc的东西
gcc内嵌汇编简介在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。1、简单的内嵌汇编例:__asm__ __volatile__("hlt"); "__asm__"表示后面的代码为内嵌汇编转载 2012-01-17 10:45:38 · 2187 阅读 · 0 评论 -
Deb包的制作
deb 格式是Debian 系专用安装包格式,配合APT 软件管理系统,成为了当前在linux 软件中非常流行的一种安装包。Debian和ubuntu软件安装用的都是deb包。但是很多人制作deb包时,都是从rpm转为deb,或者使用dpkg -b进行转换。虽然这两种方法可以制作出来deb,但是显然很粗糙,今天介绍一下正规方法:使用debhelper 制作d转载 2013-01-07 16:50:56 · 2236 阅读 · 0 评论 -
使用GDB生成coredump文件
如果在测试过程中遇到某个进程的CPU利用率过高或者卡死而需要去调试该进程时,可以利用gdb命令生成coredump文件,然后再去调试coredump文件来定位问题。那么如何使用gdb生成coredump文件呢?其实步骤很简单:1. 安装好gdb,然后使用命令 'gdb'。(假设需要调试的进程号为 21509)2. 使用 ‘attach 21590’命令将gdb附加到进程2150原创 2013-01-28 15:00:10 · 16821 阅读 · 0 评论 -
Ubuntu 下计划任务使用(crontab)
1. crontab 语法格式:f1 f2 f3 f4 f5 program 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推 ;当 f1 为 a原创 2015-06-01 17:21:26 · 10359 阅读 · 0 评论 -
Ubuntu下为Apache简单配置SSL的方法(HTTPS的实现)
1. 启用 ssl 模块sudo a2enmod ssl2. 安装opensslsudo apt-get install openssl3. 创建CA签名(不使用密码去除-des3选项)openssl genrsa -des3 -out server.key 10244. 创建CSR(Certificate Signing Request)openssl req -ne转载 2015-03-16 11:44:25 · 17984 阅读 · 0 评论 -
Windows API GetUserNameEx 函数使用
函数原型:BOOLEAN WINAPI GetUserNameEx( _In_ EXTENDED_NAME_FORMAT NameFormat, _Out_ LPTSTR lpNameBuffer, _Inout_ PULONG lpnSize);头文件包含:#include "Security.h"#pragma comment(lib,"S转载 2015-01-05 15:19:46 · 3308 阅读 · 0 评论 -
error: two or more data types in declaration specifiers原因及解决方法
编译时报错:error: two or more data types in declaration specifiers原因可能有两个:1. 少了一个分号";",比如定义一个结构体时,在最后忘了加分号。2. 重复定义,比如:a.h文件中有如下定义:#define bool charb.h文件中有如下定义:typedef char bool;原创 2013-09-13 13:48:33 · 38586 阅读 · 2 评论 -
32位与64位下各类型长度对比
64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂);可以访问大型数据库。本文介绍的是64位下C语言开发程序注意事项。1 32 位和 64 位C数据类型32和64位C语言内置数据类型,如下表所示。bit Linux下程序开发注意事项" title="64 bit Linux下程序开发注意事项" style="marg转载 2013-09-13 16:28:52 · 171874 阅读 · 12 评论 -
运行suricata报错:Illegal instruction 解决方法
我在机器A上编译suricata成功,且在机器A上能正常运行suricata;如果把在机器A上编译的suricata拷贝到机器B上运行,就会报错:Illegal instruction。这让我百思不得其解,随后上网苦找了一番资料,介绍“Illegal instruction”错误的文章也不少,其中有一点说到了我这种情况,那就是CPU架构选择的选项“-march”。于是我查看了下我编译suric原创 2013-09-24 10:04:37 · 5157 阅读 · 0 评论 -
Linux 2.6.36内核优化指南
Linux 2.6.36内核优化指南红色注释为禁用该选项的理由和解释。黑色注释为默认选择的选项含义解释。 其余未默认选择的选项,不做任何解释。Generalsetup --->[] Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动. 有许多设备转载 2013-10-16 16:45:40 · 2414 阅读 · 0 评论 -
fwrite和fread函数的用法小结
fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。#include size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *s转载 2013-10-16 16:55:50 · 153728 阅读 · 1 评论 -
fopen 打开方式
文件的打开(fopen函数)fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式);其中, “文件指针名”必须是被说明为FILE 类型的指针变量; “文件名”是被打开文件的文件名; “使用文件方式”是指文件的类型和操作要求。 “文件名”是字符串常量或字符串数组。例如:FI转载 2013-10-16 17:08:15 · 3385 阅读 · 0 评论 -
Emeditor主题包
搜集了几款Emeditor不错的主题,地址:http://download.csdn.net/detail/sky_qing/6444285使用方法:然后选择相应的主题包。原创 2013-10-24 11:16:03 · 7631 阅读 · 0 评论 -
C/C++ error: storage size of ‘tv’ isn’t known错误解决方法
使用时间函数 gettimeofday() 时报错 “error: storage size of ‘tv’ isn’t known”,代码如下:#include #include #include #include int main(){ struct tim tv; struct timezone tz; gettimeofday (&tv , &tz); p原创 2013-12-11 19:13:14 · 25088 阅读 · 0 评论 -
编辑器设置字体时找不到自己安装的字体(Emeditor为例)解决方法
有时候大家在设置编辑器字体时找不到自己安装的字体,下面以Emeditor为例说明一下。 首先我安装了本人最喜欢的等宽字体 Courier New原创 2013-12-25 19:48:49 · 4185 阅读 · 2 评论 -
Debian下配置telnet服务器【转】
Debian下配置telnet服务器:1. 安装必要软件包:apt-get install xinetdapt-get install telnetd2. 创建并编辑配置文件:vi /etc/xinetd.d/telnet并在配置文件中添加以下内容:service telnet { disable = no flags = REUSE转载 2014-02-12 20:31:57 · 3366 阅读 · 2 评论 -
Linux 下 popen 函数引起的僵尸进程 defunct 以及解决办法
在使用 popen 函数的时候,如果不注意的话,可能会引起僵尸进程 defunct 的存在,虽然该进程不占用内存和 CPU,但是会在进程任务管理树上占用一个宝贵的节点。这样就造成了进程名额的资源浪费,所以一定得处理僵尸进程! 下面以 python 为例来说明:python 脚本如下(zombie.py):#!/usr/bin/env python#-*-encoding:UTF-原创 2014-03-27 16:36:03 · 16733 阅读 · 0 评论 -
如何用 Pytbull 测试 suricata?
如何用 Pytbull 测试 suricata? 在你安装完 IDS/IPS 并且能运行的时候,你可能想知道它是否能正常的记录日志或者丢弃恶意的数据包。那么,我们就可以使用一个基于灵活得 IDS/IPS 测试框架的 python 脚本 --- Pytbull,它附带 300 多个测试,9个模块,涵盖了大范围的攻击(clientSideAttacks, testRules,翻译 2014-03-28 13:57:36 · 7628 阅读 · 1 评论 -
在 Ubuntu 下如何安装 vsftpd FTP?
vsftpd 是一个对 UNIX 系统遵循 GPL 协议的 FTP 服务器,包括 Linux。它安全而且速度非常快。本教程将告诉你如何在 Linux 系统中搭建自己的 FTP 服务器。 1. 安装 vsftpd。sudo apt-get install vsftpd 2. 替换配置文件。用文本编辑器打开 vsftpd.conf 配置文件,一般在 /etc 目录下。翻译 2014-03-28 14:50:56 · 1263 阅读 · 0 评论 -
vsftpd 错误:530 and 500 错误解决方法
VSFTP 530 Login incorrect And 500 OOPS: vsftpd: refusing to run with writable anonymous root 错误的解决方法 530 Login incorrect :在文件中限制匿名用户,做如下设置:anonymous_enable=NOuserlist_enable=YESuserli转载 2014-03-28 15:02:43 · 26438 阅读 · 3 评论 -
查询数据库表是否存在
sqlite3 中查询是否存在表 config:原创 2014-08-01 14:49:18 · 4832 阅读 · 0 评论 -
时间函数对比
#include #include #include #include // 时间函数 time() 可用精度更高的函数 gettimeofday() 来代替!int main(){ time_t timer = time(NULL); struct timeval tv; struct timeval tv2; struct timezone tz; gettimeo原创 2014-08-11 15:54:55 · 1458 阅读 · 0 评论 -
apt-get install 报 E: Sub-process /usr/bin/dpkg returned an error code (1) 错
如果用 apt-get install package_name 安装软件的时候报 E: Sub-process /usr/bin/dpkg returned an error code (1) 错误的话,解决方法如下: 1. 删除 /var/lib/dpkg/info/ 目录下与 package_name 相关的文件:rm -f /var/lib/dpkg/info/package_n原创 2013-01-28 17:17:33 · 2973 阅读 · 0 评论 -
2012-08-22 Linux下原子操作
今天在开发的过程中遇到这么一个情形,有两个线程分别对一个 map 中的同一变量进行写操作(其中一个是加1操作,另一个是赋零操作),这样会很不安全,通常情况下大家肯定会首先考虑用互斥锁,但是使用线程互斥锁之后性能会下降很多,那么我就选择了原子操作,而原子操作的性能比互斥锁高很多,这里有一篇文章讲到它们之间的性能比较:http://imcc.blogbus.com/logs/179131763.htm原创 2013-02-01 15:30:36 · 1958 阅读 · 1 评论 -
虚拟机报错:VMware Taking ownership of this virtual machine failed
一次crash可能会造成虚拟机锁死的情况发生,这时点击take ownership 可能会提示如下字眼:Taking ownership of this virtual machine failed. The virtual machine is in use by an application on your host computer.解决方法是删除虚拟机目录下的所有.lck文件夹转载 2013-07-03 13:05:38 · 2158 阅读 · 0 评论 -
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-78: ordinal not in range(128
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-78: ordinal not in range(128)解决方法:在python脚本中开头处加上以下两句代码即可:reload(sys) sys.setdefaultencoding('utf8')例如:#!/usr/bin原创 2013-07-05 14:14:09 · 24585 阅读 · 2 评论