代码改变世界

05 2012 档案

摘要:由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。 C语言编写的程序经过编译-连接后,将形成一个统一文件,它由几个部分组成。在程序运行时又会产生其他几个部分,各个部分代表了不同的存储区域: 1.代码段(Code或Text) 代码段由程序中执行的机器代码组成。在C语言中,程序语句进行编译后,形成机器代码。在执行程序的过程中,CPU的程序计数器指向代码段的每一条机器代码,并由处理器依次运行。 2.只读数据段(RO... 阅读全文
posted @ 2012-05-31 23:05 Rollen Holt 阅读(2347) 评论(0) 推荐(1)
摘要:饼图、柱状图、线图和许多其他的图形是非常重要的用来表示数据和沟通的信息,并可展示两个实体之间的关系。而这些图形如果用在 Web 上则有助于吸引访客的注意力,并有效地解释相关数据。 在这里我们推荐一些很棒的工具,你可以通过点击创建非常直观的设计流程图和图表。Gliffy使用 Gliffy 可创建非常漂亮的各种图表、流程图、平面图和技术图纸等等。HighchartsHighcharts是一个制作图表的纯Javascript类库,主要特性如下:兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等;对个人用户完全免费;纯JS,无BS;支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、 阅读全文
posted @ 2012-05-31 08:19 Rollen Holt 阅读(895) 评论(0) 推荐(2)
摘要:1、去别人家做客,当主人的话可多可少,甚至经常劝你喝茶或提建议看看电视时,你就该告辞了。人总是在感到无话可说时,才提醒别人做一些无关紧要的事。再待下去,你可能就不受欢迎了。 2、正在对上司汇报工作,他的眼睛没有专注地看着你,或者他的手指不经意的在桌子上扣几下,很可能他已对你的汇报不满意了。如果你进去时,他脚正在桌子下无聊地晃动,你说话间,他的脚忽然间停止了晃动,那他已经对你的话产生了浓厚的兴趣。 3、和一个新认识的人谈话时,他的双手总是在不经意间抱在胸前,那表明他还是对你有所防备的,所以,在让他相信你以前,最好还是谨慎为之。 4、在酒桌上,一个向你频频敬酒的人,不是有求于你,就是对... 阅读全文
posted @ 2012-05-30 20:36 Rollen Holt 阅读(401) 评论(0) 推荐(1)
摘要:QT中的configure的各个选项的官方说明,转载自:http://doc.qt.nokia.com/4.7/configure-options.html 阅读全文
posted @ 2012-05-26 21:16 Rollen Holt 阅读(494) 评论(0) 推荐(0)
摘要:下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.2.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的。只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查资料看博客,一定要注意博文的文字细节,有时候差几个字就能让你费很大的劲,四处碰壁。首先解压源码... 阅读全文
posted @ 2012-05-25 21:30 Rollen Holt 阅读(3417) 评论(1) 推荐(1)
摘要:酷壳:http://coolshell.cn/articles/2801.html下面这段程序是一个C语言的小技巧,其展示了如何把一个参数为结构体的函数转成一个可变参数的函数,其中用到了宏和内建宏“__VA_ARGS__”,下面这段程序可以在GCC下正常编译通过:#include <stdio.h> #define func(...) myfunc((struct mystru){__VA_ARGS__}) struct mystru { const char *name; int number; }; void myfunc(struct mystru ms ){ printf( 阅读全文
posted @ 2012-05-22 23:01 Rollen Holt 阅读(538) 评论(0) 推荐(1)
摘要:导出导入数据库导出mysqldump方法mysqldump -u用户名 -p密码名 database [table]> 目标文件导入mysql -uroot -prootuse databasesource 目标文件;PS: 这种方法是导出整个表数据,并且带着建表信息,假如导入的数据库有同名的表,会被替换PS: 可以添加条件mysql -uroot -proot [-n] [-t] [-d] database [table]>name-t 不包含创建表的信息-d不包含数据信息--w or -w筛选条件1 例:先进入dos cmd命令模式 Ctrl旁边的键+R 2 导出 mysqld 阅读全文
posted @ 2012-05-19 22:23 Rollen Holt 阅读(562) 评论(0) 推荐(0)
摘要:#登录数据库mysql -hlocalhost -uroot -p;#修改密码mysqladmin -uroot -pold password new;#显示数据库show databases;#显示数据表show tables;#选择数据库use examples;#创建数据库并设置编码utf-8 多语言create database `examples` default character set utf8 collate utf8_general_ci;#删除数据库drop database examples;#创建表create table test( id int(10) un... 阅读全文
posted @ 2012-05-19 22:07 Rollen Holt 阅读(10276) 评论(1) 推荐(5)
摘要:转自:http://www.zhihu.com/question/19726630/answer/14452284针对这个问题,请教了算法组的同事,他分享了基本的思路:对于这种图像搜索的算法,一般是三个步骤:1. 将目标图片进行特征提取,描述图像的算法很多,用的比较多的是:SIFT描述子,指纹算法函数,bundling features算法,hash function(散列函数)等。也可以根据不同的图像,设计不同的算法,比如图像局部N阶矩的方法提取图像特征。2. 将图像特征信息进行编码,并将海量图像编码做查找表。对于目标图像,可以对分辨率较大的图像进行降采样,减少运算量后在进行图像特征提取和编 阅读全文
posted @ 2012-05-19 21:42 Rollen Holt 阅读(931) 评论(0) 推荐(1)
摘要:英文原文:What Refactoring is, and what it isn’t有时候,会有程序员跑到我这里说他们不喜欢某个东西的设计,“我们需要给它来个全面的重构”,来纠正里面的错误。哦,哦。这听起来可不是个好主意。而且这听起来也不是重构…重构(Refactoring)这个词最初由 Martin Fowler 和 Kent Beck 给下的定义,它是一种修改,使软件的内部结构更容易理解,在不改变软件的可见行为方式前提下使软件更容易变更…它是一种有节制的整理代码、使 bug 产生几率最小化的方法。重构的结果是引用了快捷方法、去除了重复代码和死代码,使设计和逻辑更加清晰。是在更好的、更聪明 阅读全文
posted @ 2012-05-18 15:51 Rollen Holt 阅读(267) 评论(0) 推荐(0)
摘要:在Stack Overflow上有这样的一个贴子《What’s your most controversial programming opinion?》,翻译成中文就是“你认为最有争议的编程观点是什么?”,不过,在 400 多个主回贴,以及千把个子回贴中,好像并不是很有争议,而是令人相当的茅塞顿开,下面罗列一些,并通过我自己的经历和理解发挥了一些,希望对你有帮助。1) The only “best practice” you should be using all the time is “Use Your Brain”.唯一的“Best Practice”并不是使用各种各样被前人总结过的各 阅读全文
posted @ 2012-05-18 15:38 Rollen Holt 阅读(232) 评论(0) 推荐(1)
摘要:转自:http://kb.cnblogs.com/page/103563/ Android操作系统 Android是一个基于Linux、使用java作为程序接口的操作系统。他提供了一些工具,比如编译器、调试器、还有他自己的仿真器(DVM — Dalvik Virtual Machine)。Android是由google领导的Open Handset Alliance开发的。 Android使用的虚拟机比较特别。Dalvik使用了一些特别的方法。你在Android上不能运行普通的Java程序。Android提供了一个dx的工具,可以把普通的Java类文件转换为dex(Dalvik Execu.. 阅读全文
posted @ 2012-05-16 17:37 Rollen Holt 阅读(1435) 评论(0) 推荐(1)
摘要:转自:http://www.cnblogs.com/longdouhzt/archive/2012/05/01/2478226.html#top 服务器或VPS用户如何用命令创建MYSQL数据库 一、连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1、 连接到本机上的MYSQL。 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MY... 阅读全文
posted @ 2012-05-16 12:43 Rollen Holt 阅读(290) 评论(0) 推荐(1)
摘要:转自:http://www.phpweblog.net/peiyinjin/archive/2008/04/15/3199.html在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行.. 阅读全文
posted @ 2012-05-16 12:25 Rollen Holt 阅读(323) 评论(0) 推荐(1)
摘要:转自:http://www.cnblogs.com/wrmfw/archive/2012/01/21/2328534.html你发现快要过年了,于是想给你的女朋友买一件毛衣,你打开了www.taobao.com。这时你的浏览器首先查询DNS服务器,将 www.taobao.com转换成ip地址。不过首先你会发现,你在不同的地区或者不同的网络(电信、联通、移动)的情况下,转换后的ip地址很可能是不一样的,这首先涉及到负载均衡的第一步,通过DNS解析域名时将你的访问分配到不同的入口,同时尽可能保证你所访问的入口是所有入口中可能较快的一个 (这和后文的CDN不一样)。 你通过这个入口成功的访问了w. 阅读全文
posted @ 2012-05-15 12:11 Rollen Holt 阅读(255) 评论(0) 推荐(1)
摘要:如果你的代码工作正常并且表现良好,你可能会想知道为什么还要使用C++ 11。当然了,使用用最新的技术感觉很好,但是事实上它是否值得呢?在我看来,答案毫无疑问是肯定的。我在下面给出了9个理由,它们分为两类:性能优势和开发效率。获得性能优势理由1:move语义(move semantics)。简单的说,它是优化复制的一种方式。有时候复制很显然是浪费的。如果你从一个临时的string对象复制内容,简单的复制指针到字符缓冲区将比创建一个新的缓冲区再复制要高效得多。他之所以能工作是因为源对象超出了范围。然而,在这以前C++并没有判断源对象是不是临时对象的机制。move语义通过除了复制操作外还允许你有一个 阅读全文
posted @ 2012-05-14 12:55 Rollen Holt 阅读(345) 评论(0) 推荐(1)
摘要:原文地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HTTP Response, 关于Fiddler工具的用法,请看我另 阅读全文
posted @ 2012-05-13 23:13 Rollen Holt 阅读(263) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/Hackbuteer1/rss/list[原]九度互动社区IT名企招聘上机考试热身赛http://ac.jobdu.com/problem.php?id=1326Waiting in Line//简单模拟题#include<iostream>#include<cstdio>using namespace std;#include<memory.h>int pt[1001],leave[1001],start[21];int n,m,k,q;inline bool scan_d(int &num) // 阅读全文
posted @ 2012-05-09 14:09 Rollen Holt 阅读(2279) 评论(0) 推荐(0)
摘要:1在一个字符串中找到第一个只出现一次的字符,如输入abac,则输出b本题看似很简单,开个长度为256的表,对每个字符hash计数就可以了,但很多人写的代码都存在bug,可能会发生越界访问。这是C/C++语言上的一个陷阱,C/C++中的char有三种类型:char、signed char和unsigned char。char类型的符号是由编译器指定的,一般是有符号的。在对字符进行hash时,应该先将字符转为无符号类型,不然,下标为负值时,就会出现越界访问。另外,可以用一个cache数组,记录当前找到的只出现一次的字符,避免对原字符串进行第二次遍历。char get_first_only_one( 阅读全文
posted @ 2012-05-08 23:30 Rollen Holt 阅读(515) 评论(0) 推荐(3)
摘要:简介:实用工具类开发和维护会耗费程序员的时间。Boost 通过提供几个高质量的库,从而简化了此过程,您可以将这些库轻松集成到现有的代码库中。本文简单概述一些较流行的 Boost 实用工具类,并帮助您了解如何将它们投入使用。参见文章:http://www.ibm.com/developerworks/cn/aix/library/au-util_boost_lib/ 阅读全文
posted @ 2012-05-07 14:10 Rollen Holt 阅读(311) 评论(0) 推荐(1)
摘要:转自http://www.ibm.com/developerworks/cn/linux/l-cn-ppp/index6.html (还没看懂,先Mark一下)如前所述,读者已经了解到"堆"和"栈"的区别。而在编程实践中,不可避免地要大量用到堆上的内存。例如在程序中维护一个链表的数据结构时,每次新增或者删除一个链表的节点,都需要从内存堆上分配或者释放一定的内存;在维护一个动态数组时,如果动态数组的大小不能满足程序需要时,也要在内存堆上分配新的内存空间。6.1.1 默认内存管理函数的不足利用默认的内存管理函数new/delete或malloc/free在堆 阅读全文
posted @ 2012-05-07 13:49 Rollen Holt 阅读(321) 评论(0) 推荐(1)
摘要:转自酷壳之前,@风枫峰在“这是谁的错?”中说过开发团队对需求来者不拒,而@weidagang也在“需求变更和IoC” 中说过用IoC来最大程度地解决需求变更。今天我也想从Unix设计思想的角度来说说什么是好的软件设计,什么样的设计可以把需求变更对开发的影响降低。(注意:这并不能解决用户或是PM的无理需求,面对无理需求,需要仔细分析需求,而用技术的手段无法搞定这个事,但是可以减轻需求变更带来的痛苦)我曾经在《Unix传奇》的下篇中写过一些Unix的设计哲学和思想(这里重点推荐大家看一下《The Art of Unix Programming》,我推荐过多次了),以前也发过一篇“一些软件设计的原则 阅读全文
posted @ 2012-05-07 11:25 Rollen Holt 阅读(275) 评论(0) 推荐(1)
摘要:如果一个函数返回另一个函数,而被返回函数又需要外层函数的变量时,不会立即释放这个变量,而是允许被返回的函数引用这些变量。支持这种机制的语言称为支持闭包机制,而这个内部函数连同其自由变量就形成了一个闭包。前言如果Google一下“闭包”这个词,会发现网上关于闭包的文章已经不计其数,甚至很多人将闭包看做面试JavaScript程序员的必考题(虽然闭包和JavaScript没有什么必然联系)。既然如此,我为什么还要写一篇关于闭包的文章呢?首先,虽然网上关于闭包的文章甚多,但是很少以较为形式化的角度阐述闭包,而我认为理解闭包的关键之一就是从形式化角度理解其涵义;其次,大多数文章将闭包的概念与JavaS 阅读全文
posted @ 2012-05-03 23:22 Rollen Holt 阅读(315) 评论(0) 推荐(1)
摘要:原文地址:http://www.cnblogs.com/alex-tech/archive/2012/03/27/2420197.htmlI/O操作符号(<<和>>)返回数值最近博问里有几个问题都牵涉到这一点了,简单做笔记说明一下。首先cin是一个对象,不会"返回"值,>>和<<才是方法,具有返回值。>>和<<操作符的运算顺序是由左向右边,所以下面的两种语句描述其实是一致的:cin>>a>>b>>c;(((cin>>a)>>b)>> 阅读全文
posted @ 2012-05-02 16:33 Rollen Holt 阅读(376) 评论(0) 推荐(0)
摘要:我很赞成这篇文章,写博客真的可以交到很多的朋友,同时也会扩展很多的知识,尤其是可以纠正自己之前的错误理解。不过写博客也会话费时间,长久来看,利远大于弊。不过还是建议大家写博客的时候注意排版,这样方便自己和他人 开发者拒绝写技术博客的常见理由常有人跟我讨论我在blog上发布过的博文,有时候他们还希望我来撰写某些文章。在讨论的过程中,我几乎总是会问为什么你自己不开一个博客,或者为其他人的博客做些贡献呢?当我在引导他们为技术类的主题写一些博文时,极少有人对此感兴趣。我的母亲总是告诉我(以及她的学生们)每个人都有自己的故事。她说,写作可能是一种你不曾想到过的非... 阅读全文
posted @ 2012-05-01 17:15 Rollen Holt 阅读(290) 评论(0) 推荐(1)