这个博客架已经三个月了,目前为止除了 WordPress 先生 的这条回复,博客还是零回复啊。如果朋友你碰巧看到我的博客。留个言,消灭零回复吧。
发布在 1月 2013 的文章存档
利用 Dropbox 备份网站数据及数据库
过程记录如下。
1、在 Dropbox 官网注册帐号,刚注册会有 2 G 空间。(对我们这台博客服务器来说,差不多了。可以通过邀请和做任务获得更多的免费空间)
2、ssh 登录服务器
3、下载并配置 Dropbox linux 客户端
下载
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
运行
~/.dropbox-dist/dropboxd
会生成一个地址,复制到浏览器打开,然后登录 Dropbox 帐号就可以将服务器和帐号绑定了。
家目录下会生成一个 ~/Dropbox 文件夹,Dropbox 默认会同步该文件夹下的所有文件。在该目录下为网站根目录做一个软链接
ln -s /var/www
这样就可以将网站所有文件同步到 Dropbox 服务器啦,如果要同步 Mysql 数据库,还需要 mysqldump 出数据,将其复制到这里即可。
4、Dropbox 一直运行会占用内存,因此做了一个定时任务,每天备份 Mysql,然后运行 Dropbox 一个小时。
编辑任务
crontab -e
编辑(如果是第一次运行此命令,会提示选择编辑器),在最下面添加如下内容
0 3 * * * mysqldump -u用户 -p密码 --all-databases > ~/Dropbox/mysql-all-database.sql 0 4 * * * ~/.dropbox-dist/dropboxd 0 5 * * * pkill dropbox
Linux 下命令行查看文件夹大小
主要是 du 命令,使用方法如下:
du -s DIR_NAME # 输出 2201576 DIR_NAME du -sh DIR_NAME # 输出 2.1G DIR_NAME du -sm DIR_NAME # 输出 2150 DIR_NAME
谷歌收录大大减少
今天在谷歌搜索“刘静的博客”,竟然翻到第三页下面才出现我的这个博客链接。我记得前两天还很正常,搜索该词条排在第一个的就是我的这个博客。
我估计是因为前几天我安装了一个 SEO 的插件,使用该插件更改了我博客分类,归档的 URL 结构,以及文章标题的显示内容。我搞不清楚该插件是如何工作的,后来又卸载了它。应该就是因为这个原因导致谷歌对博客收录产生了影响。
结论:不要大范围的更改站点 URL 结构和文章内容页面的标题。
关于visual studio类视图和资源视图不显示类和资源的问题
Update 2012-4-2 21:18:56:
两种解决方法:①工具—选项—文本编辑器—C/C++—高级,浏览/导航下的禁用数据库选项置为True;② Win + R 运行:devenv /resetsettings
我电脑上安装的是visual studio 2010.昨天发现新建项目后类视图和资源视图不显示相关内容,大家知道,如果没有类视图的话会很不方便。在网上放狗搜索未找到解决方法,没办法,只有重安装了一遍,打开,发现问题依旧。我猜想是哪里设置出错了。后来在msdn论坛上找到了重置所有设置的方法:运行:devenv /resetsettings,此命令功能是重置IDE所有设置。(顺便再贴一个命令:devenv /safemode,以安全模式即不加载第三方插件运行vs。)
重置vs设置后一切正常,然后我又设置了禁用数据库选项,发现再次打开工程又出现了上述问题,才明白问题出在了哪里。
前两天,我发现使用vs2010建的工程,目录下会有sdf文件和ipch目录,这两个东西占的空间非常大,想看看能不能删了这两个东西,于是搜索,找到解决方法。依次打开vs2010菜单栏—工具—选项—文本编辑器—C/C++—高级,浏览/导航下的禁用数据库选项置为True。工程就不会产生sdf和ipch相关文件了。但之后类视图不显示类的问题就出现了。
题外话:我怎么觉得wordpress的编辑器这么难用啊,一点都不方便。每段前面要空两格都不能按Tab键实现,并且按回车就会空出一行。关键是,就算我在编辑里前面有空格,发布之后段落开头空格又不见了。这格式到底要怎么控制嘛。还有,为什么标题visual和studio之间的空格隔那么远啊。
(原博客发布时间:2011-05-10 09:05:16)
cout如何保留2位小数输出
现在有时没事的时候就在hdu acm上做一些简单的题目。经常会遇到控制格式输出的问题,每次要控制格式的时候,我都会上网查一下cout如何控制输出格式。我感觉我有代码怪癖,因为写c++ 所以我不想用printf函数printf(“%.2f”, a);。现在把cout输出小数位数的格式贴在这里,方便以后查看。
cout<<setiosflags(ios::fixed)<<setprecision(2);//需要头文件#include <iomanip>
然后再输出实数类型变量即可以保留2位小数输出了,当然你要保留三位小数,setprecision(3)就行。
setprecision是指设置输出精度,当没有
cout<<setiosflags(ios::fixed)
时,输出格式是数据的有效位数,例如
float a = 123.666; cout<<setprecision(5)<<a;
将输出123.67(注意这里,它会四舍五入)。如果setprecision里的参数小于整数位数,将以指数形式输出,例如
float a = 123.666; cout<<setprecision(2)<<a;
将输出1.2e+002。
setiosflags(ios::fixed)是指以固定的浮点显示,当setiosflags(ios::fixed)和serprecision(n)两个一起用时就表示保留n位小数输出。这里还要注意,每次输出只要设置一次就行了,因为这两个的作用范围是后续对象,而不是仅对后一个对象起作用。
(原博客发布时间:2011-09-02 10:51:49)
Java编码问题-System.out.println输出中文乱码
想学一学Java。拿出雍俊海老师的《Java程序设计教程》,将第一个例程代码敲上去:
//J_HelloJava.java public class J_HelloJava { public static void main(String args[]) { System.out.println("Java语言,您好!"); System.out.println("我将成为优秀的Java程序员!"); } }
编译:
javac J_HelloJava.java
运行:
java J_HelloJava
结果出来一堆乱码,上网搜索找到原因,我的J_HelloJava.java文件保存的时候是用UTF-8编码保存的,而javac编译的时候是以电脑系统编码(GBK,我是win 7系统)来处理的,搞清楚这点后,就不难处理了。针对上述问题,有两种解决方法:
1、将 J_HelloJava.java 以 GBK 编码方式存储,然后再编译、运行。
2、编译时指定编码为UTF-8,编译命令:
javac -encoding utf-8 J_HelloJava.java
推荐一篇文章,讲Java编码问题的,我就是看这篇文章解决问题的。我没认真看,粗略地看了一下,解决了我目前的这个问题。
地址:http://www.cnblogs.com/cy163/archive/2008/08/13/1267433.html
(原博客发布时间:2012-01-03 20:25:15)
插入排序和希尔排序执行效率的比较
现在晚上睡觉之前都会看一会讲算法的书。因为大三的时候,没有怎么好好学习过算法,而之前C/C++也一直没认真上过课,所以这次看书也像新学一样从头开始看。最先讲的算法肯定是排序算法。冒泡算法还是一看就明白了,插入也能看明白,但希尔算法看了两个晚上也没能搞明白。今天终于通过代码实现了。希尔算法也是基于插入排序算法的,但比简单的插入排序效率要高很多。当待排序数目更多时,效率高得更明显。以下是完整C源代码:
#include <stdio.h> #include <time.h> #include <stdlib.h> #define NUM 1000 void insertSort(int * a, int len) { int i, j, t, countChange = 0;//countChange记录数据移动次数 // int k = 0; for(i = 1; i < len; i++) { t = a[i]; j = i-1; while(j >= 0 && t < a[j]) { a[j+1] = a[j]; j--; countChange++; } a[j+1] = t; // k++; // printf("第%d次排序后的结果:", k);//显示第k次排序后的结果 // for(j = 0; j < len; j++) // printf("%d ", a[j]); // printf("\n"); } printf("完成排序一共移动数据次数:%d\n", countChange); } void shellSort(int * a, int len) { int i, j, r, t, countChange = 0; // int k = 0; for (r = len/2; r >= 1; r /= 2) { for (i = r; i < len; i++) { t = a[i]; j = i-r; while (j >= 0 && t < a[j]) { a[j+r] = a[j]; j -= r; countChange++; } a[j+r] = t; // k++; // printf("第%d排序后的结果:", k); // for (j = 0; j < len; j++) // printf("%d ", a[j]); // printf("\n"); } } printf("完成排序一共移动数据次数:%d\n", countChange); } int main() { int a[NUM], b[NUM], i; srand(time(NULL));//设置随机种子 for(i = 0; i < NUM; i++)//随机生成数组数据 a[i] = b[i] = rand(); printf("Before sorting: ");//输出排序前的数据序列 for(i=0; i<NUM; i++) printf("%d ", a[i]); printf("\n\n插入排序:\n"); insertSort(a, NUM); printf("\n希尔排序:\n"); shellSort(b, NUM); printf("\n"); printf("After sorting: ");//输出排序后的数据序列 for(i=0; i<NUM; i++) printf("%d ", a[i]); printf("\n"); return 0; }
去除代码注释可以查看每次排序后的结果。
当数组规模为10时,希尔排序数据移动次数只有插入排序的一半;当数组规模为100时,插入排序需要移动次数大概是希尔排序的5倍;当数组规模为100时,插入排序需要移动次数大概是希尔排序的30倍。
(原博客发布时间:2011-10-27 14:03:51)
Foreign key constraint is incorrectly formed
【朋友,如果你也遇到了这个问题,建立外键的字段必须和引用表的字段一模一样的类型,请用 show create table table_name 查看是否一致。】
今天在给一个表建外键的时候出现如题所示错误。
情况是这样的。我有一个bysj_student表,结构如下:
CREATE TABLE `bysj_student` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `stuno` VARCHAR(20) NOT NULL, `name` VARCHAR(20) NOT NULL, `gender` VARCHAR(2) NOT NULL, `major_id` INT(11) UNSIGNED NOT NULL, `tel` VARCHAR(11) NOT NULL, `email` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) )
还有另一个bysj_stu_sub表,结构如下:
CREATE TABLE `bysj_stu_sub` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `student_id` INT(11) NULL DEFAULT NULL, PRIMARY KEY (`id`), INDEX `student_id` (`student_id`), CONSTRAINT `bysj_stu_sub_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `bysj_student` (`id`) )
bysj_stu_sub表里的student_id是bysj_student表的外键,但是在创建bysj_stu_sub表时,会提示错误:
SQL Error (1005): Can't create table 'test.bysj_stu_sub' (errno: 150) Foreign key constraint is incorrectly formed
网上搜索之后才明白,建立外键的字段必须和引用表的字段一模一样的类型。
于是将bysj_stu_sub表的student_id字段属性改为
`student_id` INT(11) UNSIGNED NULL DEFAULT NULL
再建表就没有问题了。
(原博客发布时间:2011-11-27 09:27:26)
Java学习笔记-接口
1、任何子类只能有一个直接父类,但允许一个类实现多个接口;
2、接口的所有成员域都具有public、static、和final属性:例如在接口体内部定义
double PI = 3.14159265358979323846;
或者
public static final double PI = 3.14159265358979323846;
上面两个成员域的定义是等价的。它们都具有public、static、和final属性;
3、接口的所有成员方法都具有public和abstract属性;
总结:我怎么感觉接口就是一种特殊的类啊?我是这么理解的。
(原博客发布时间:2012-01-04 15:24:21)