- 博客(44)
- 资源 (2)
- 收藏
- 关注
原创 支持插入删除操作的bitset
开发中需要支持插入删除操作的位图结构,开始选用std::bitset,但是发现效率非常低。于是赶紧找找,看看有没有别的可用。查资料发现,bit_vector曾经有,现在基本不支持了;按照《Effective STL》的说法,vector是不推荐使用的,第一,它不是一个真正STL容器,第二,它并不保存bool类型。一个替代是deque,它是一个STL容器,它保存真正的bool值,当然,deque底层
2008-06-24 10:26:00
1249
原创 做一个健康的IT人 -- 如何应对电脑辐射
上网找了一些资料,自己总结如下:1) 现有的名牌或大厂产品在防辐射上还是做得不错的2) 服务器机房的噪音更加可怕3) 电脑辐射主要在于CRT显示器和键盘,而显示器又主要在其背面;LCD显示器辐射较小4) 在电脑面前坐的时间太久了,最难受的是眼睛5) 尽量不要在电脑面前坐太长时间,起来后要洗脸、胳膊等裸露的皮肤6) 如果准备要小孩,最好还是小心点,做些特殊防护,比如穿防护服
2007-06-04 20:38:00
1189
原创 浅谈主内存数据库
刚来实验室的时候我看过一些主内存数据库的资料,觉得那是十几年之前的研究内容,而现在硬盘速度和调度算法都还不错,大型关系数据库系统的速度也不差,因此就以为主内存数据库没啥发展前途了。最近看到TimesTen和Altibase的发展,可让我大吃一惊,马上做了一下调研。首先,主内存数据库将所有数据都加载到内存,对内存中的数据作特别的优化,比如普通关系型数据库的数据在磁盘上一般以B树的形式存放,而主内存中
2007-06-04 20:37:00
3055
1
原创 如何理解一个函数?
分析源码时如何理解一个函数?在《Code Reading - The Open Source Perspective》一书 中提出以下几点建议: 根据函数名猜测 阅读函数头部的注释 看看函数是怎样被调用的 读读函数的代码 参考外部文档
2006-12-26 09:09:00
1395
原创 模拟笔记本电脑爆炸
听说了很多笔记本电脑爆炸的事情吧,真正的爆炸场面有多么壮观相信大家都没见过,这不有人自己模拟了一次笔记本爆炸,还拍成视频放到了YouTube上。
2006-11-15 08:26:00
1476
原创 gmail的一个小bug
gmail是够智能够体贴人的。比如说,如果你提前添加了一个附件,它会在后台偷偷的开始传送,这样当你真正开始发送邮件时,你会惊奇的发现gmail很快。但是,如果是这样的情况呢:写邮件,添加附件,继续写邮件,这时候你突然想起什么得马上修改附件文档,然后发送邮件。你会发现对方收到的是修改之前的文档,这可不是我想要的结果。gmail会偷偷的在后台提前传送附件,但是它不会检测后来文档是否被修改,于是就出现了
2006-10-29 09:46:00
1295
原创 中国IT三大忽悠
忽悠一,汉芯。处理了。忽悠二,麒麟操作系统。焦头烂额中。忽悠三,智慧星杀毒软件。。。这个才15岁的河南小子可真是厉害,拿别人的软件包装包装就敢去首届河南青年创新软件设计大赛玩,竟然还玩出了个大赛银奖。不过,这小子的网站都被人黑了,大家伙都在上面逗他玩呢,百度贴吧上也闹腾开了。不要说小孩子不懂事,别跟他太计较了。这样的小孩啥也没学会,就会去骗人钱了!这样的人不狠狠的打击,那打击谁去?有人说是嫉妒“天
2006-08-29 20:39:00
2112
2
原创 一个奇怪的问题
在Linux下使用Bash新开一个terminal,进入~/aa新开第二个terminal,当前路径是~; 然后mv aa aa.bak回到第一个terminal,pwd显示还是~/aa, 照样能执行原来的程序,打开原来的文件; 如果到aa.bak中新建文件,这边也能看到咋回事呢?
2006-07-03 16:21:00
1377
原创 选择适合你的Linux发行版
这个网站挺有意思的,回答了11个问题后,它就会告诉你和一些大众Linux发行版的适合度。我试了一下,竟然和Debian是100%的适合!呵呵,我正在用Debian,确实挺适合我这样的懒人。
2006-06-10 19:56:00
1937
1
原创 debian安装过程
好久没有更新日志了:(说实话我不是很喜欢Ubuntu,主要是不喜欢装太多东西,并且6.06版号称中文支持很好了,可是装上之后还是得自己安装输入法,设置为自动启动,这让我觉得很不爽。事情都做到这一步了,为什么就不再进一步完全做好呢?算了,还是回到debian吧,原汁原味。我的基本目标是装一个英文系统,但是可以显示和输入中文。下面是安装过程的简单说明,有些地方参考了别人的文章,再次向作者表示感谢。
2006-06-07 10:26:00
2661
原创 基本搞定emacs的缩进
emacs很强大,但是强大是以复杂的配置为前提的!没有配置好的时候,可能它比notepad还要难用。前一段时间我就被缩进弄得晕头转向,tab经常是缩进5个空格,源码会乱,等等,我都几乎要放弃emacs了。今天偶然看了看emacs自带的manual中的cc-mode一节,哇,发现新大陆了!不光讲得很细,还有个例子,拷过来就可以用了,那缩进,怎一个酷字了得!后来又参考了王垠、ann77的主页,将tab
2006-05-22 19:05:00
17826
1
原创 上海交大证实“汉芯”造假
上海交大证实汉芯造假了!看来上海交大对陈进的处理也是很重的,撤销了院长职务、教授职称;科技部决定终止科研项目,追缴经费;教育部,国家发展改革委员会也来了。。。早干嘛去了!乱世当用重典,对这种造假行为绝不能姑息,一定要重重的罚。这次的处罚结果和力度都还可以,但仅仅是针对陈进的,我们没有看到任何相关责任人被处罚。处罚了陈进后,国内的科研环境会不会好些呢,但愿吧。
2006-05-12 20:43:00
3018
原创 程序员的字体
作为一个程序员,整天盯着屏幕看,不挑个好点的字体就太对不起自己的眼睛了。这里有个程序员乘用的字体的比较和对照,具体内容大家可以自己去看,我将其中的原则列出来: Crisp clear characters Extended characterset Good use of whitespace l, 1 and i are easily di
2006-05-12 17:37:00
4854
原创 感受emacs-snapshot!
很兴奋的在debian的unstable源中发现了emacs-snapshot,这可是好东东啊,最近刚更新过,i386版本是更新的!二话不说,安装,是22.0.50.1,传说中的unicode版本,打开一试,果然自动支持中文显示,用scim输入中文更是没有任何问题的。接下来试试调试模式,gdb-many-windows模式让人看起来舒服多了,分成源码、调用堆栈、断点、局部变量和gdb等窗口,像VC
2006-04-29 22:38:00
2671
原创 DBMS应该提供的基本服务
简单的说,一个数据库管理系统应该的提供的基本服务有两种: 数据访问。对每个数据库管理系,数据访问服务都包含一下几种 插入--向数据库中添加新数据 搜索--寻找特定的数据 更新--修改数据库已经存在的数据 删除--从数据库中删除数据 数据管理。数据管理服务自然比前者复杂,它包含有
2006-04-29 13:31:00
1901
原创 可怜的OpenBSD
可怜的OpenBSD项目组啊,做的那么有意义的工作,却因为区区十万美元而无法进行开发活动了。在操作系统这个行业上,十万美元根本不算什么,但是中国有句古话说,一文钱难死英雄汉!OpenBSD项目中最有意义,也是他们投入精力最多的就是OpenSSH项目了,它也真正的被广泛应用了,从Arrecibo到希腊军方。但是他们得到了什么呢?没有!OpenSSH是免费的。甚至有些商业产品也用到了OpenSSH。我
2006-04-24 09:36:00
1893
原创 小玩Google Calendar
Google总能不断的给人惊喜,他还喜欢一声不吭的发布新服务,等到某人偶然发现新的Google子域名才迅速传播开来。好了,这次是Google Calendar,一个日程安排工具。主界面很简洁,左边是你和别人共享的日程名,中间是日程详细内容,点击小格子可以添加事务,设置提醒。日程详细内容可以查看当天、本周、本月、接下来四天和议程,分类很好了。这些内容没什么特色,和Mozilla的Calendar项目
2006-04-22 11:44:00
1468
原创 让我们来帮助微软吧
来自LinuxToday的一片文章说:让我们帮助微软吧!很奇怪吧,Linux的人怎么会想帮助微软呢?Joachim Holst在他的文章提出了一个主意来帮助GNU/Linux和其它开源软件更快的流行起来。他指出微软的产品之所以如此流行完全是因为破解它们太容易了,这样人们同样可以不用任何花费就使用上这些产品。所以他建议开源社区的开发者们团结起来,开发出一个不会被破解的加密软件,然后把这个软件送给微软
2006-04-22 11:12:00
1368
原创 Linux下创建多层路径的函数
mkdir只能创建一层路径,比如,/home/xyz/abc/123,abc必须已经存在,否则mkdir会报错。于是我就写了一个简单的函数,能够创建多层路径,如上面的例子,xyz和abc可以都不存在。bool create_dir(char* sz_path){ char sz_opath[256]; char *p; size_t len; int ret = -1;
2006-04-18 21:43:00
2370
原创 Linux下递归删除路径的函数
一些说明: 主要是遍历路径,知道遍历就好删除了 当时没有找到文件类型的宏定义,只好先遍历输出类型看看。注意Linux系统内部将路径看作特殊的文件,8是普通文件,4是路径,而“.”和“..“的类型都是4,要区别一下 void remove_dir(char* sz_dir) { char subname[256]; DIR *pdir = NULL
2006-04-18 21:36:00
2445
2
原创 我用的FireFox扩展(2)
以前是用MyIE的,然后用Maxthon,GreenBrowser也玩了一段时间,所以就熟悉了他们的操作习惯。转到FireFox之后,心里就想着如何把它配置成符合Maxthon的操作习惯。我觉得Maxthon最吸引人最方便的功能有三点 双击关闭标签页 拖拽链接在新标签页中打开链接 拖拽文字在新标签页中用默认搜索引擎进行搜索按照这样的思路上Mozilla U
2006-04-18 11:20:00
1251
原创 实时数据库InfoPlus与Uniformance PHD的SQL支持
应该说这两个实时数据库都很不错,在工业控制领域有着广泛的应用。由于我们在MES上的特殊需求,我们尝试用SQL方式查询历史数据,而不是直接调用其API。虽然API方式在速度上会快些,但是一些难以解决的古怪问题让我们最终还是放弃了。首先做的InfoPlus,用的是ODBC连接,发现一些问题,或者不是问题,只是我们觉得不太好的地方: 历史值明明都按照IP_TREND_TIME排序了,但是在
2006-04-17 17:52:00
4877
5
原创 我用的FireFox扩展
用FireFox有一段时间了,尝试装了几个扩展,用起来还比较顺手:FlashGot。下载自然少不这个。Pdf Download。如果你直接点一个pdf链接的话,adobe的插件会很“聪明”的在FireFox中打开该pdf文件,于是FireFox就半天没反应了。装了这个扩展之后,点pdf链接后会弹出个对话框询问是下载还是直接查看,呵呵,这下好多了。Flashblock。网页上的Flash是看还是不看
2006-04-14 23:03:00
1640
原创 Debian也可以通过apt-get安装wordpress
不记得是在哪个论坛上看到的一个帖子,说是ubuntu上可以直接通过apt-get安装wordpress,楼主的兴奋之情溢于言表。可惜ubuntu的包跟debian的不兼容(为啥非要不兼容呢?这样才能体现出自己的特色吗?),不然我也可以马上爽一把了,虽然这并不会减少多少事情。不过我偶然发现了一个网站,www.apt-get.org,可以查询各种非官方的源,试试搜索一下wordpress,你也会有惊喜
2006-04-10 09:59:00
3340
原创 Linux下编写动态链接库
Linux下编写动态链接库的简单过程 (1) 使用编译选项-fPIC,产生与位置无关的代码(2) 使用编译选项-fvisibility=hidden隐藏符号(3) 使用链接选项-shared表示生成动态链接库(4) 使用链接选项-wl将参数传递给链接器(5) 使用链接选项-soname指定库名,注意不是库文件名
2006-04-06 22:15:00
2491
原创 微软Word的又一点不爽
这次不爽是这样的,我想输入一个域,比如,[1, 8),左闭右开,当你输入完前面几个字符,再输入最后一个括号时,word总是自作聪明的把)改成],最好只好找个笨办法绕过去了事。气死我了,真想扔了算了--干嘛总给我自动更正啊! 可是,现在还必须得用微软的东西啊,所里的毕业论文模板是word格式,演示模板是ppt格式,似乎离不开微软了 :(不过回过头来想想,Word肯定能让你修改这个设置,只是我懒得去查
2006-04-01 21:38:00
1305
原创 C语言变量总结
全局变量声明和定义的区别全局变量的声明(declare),表示其属性,主要指类型;在A文件引用B文件定义的全部变量,则要在A文件中用extern关键字来声明该变量,而不是再定义一个全局变量的定义(definition),还会导致为该变量分配存储空间 static用法若是修饰全局变量,则表示该变量的作用域是定义处到文件结束若是修饰局部变量,则表示该变量是静态的,生存期为整个程序的生存期,其存储空间在
2005-11-29 10:40:00
2487
原创 笨办法
其实,笨办法往往并不笨,它让你一步一步脚踏实地的走过来,在繁琐中解决问题,在繁琐中锻炼你的一颗平常心。我最近在Linux下开发多线程程序,而gdb对多线程程序的调试支持又不是很好,于是刚开始的时候找bug特别麻烦。这时的我手足无措,经常盯着代码看半天。师兄告诉我,多输出些信息,根据输出信息进行分析,然后再添加输出信息,这样经过几次就能定位到出错的代码了。开始我很不以为然,这么笨这么麻烦的办法,还把
2005-07-18 20:39:00
1415
原创 Hiweed-Debian 0.6下安装nvidia驱动
Hiweed-Debian 0.6的安装过程确实比较简单,并且我在安装之前就将Linux分区安排好了,所以一路下去,没出现什么问题就好了,但是在重启之后,看着一行行的启动信息不断逝去,最后屏幕却全黑了,进入控制台一看,x和xdm都启动了,估计是显卡的驱动没装好了。在网上搜索到了一个比较好的网页,http://home.comcast.net/~andrex/Debian-nVidia/,上面讲了两
2005-05-05 22:41:00
2077
转载 如何使用Google解决问题
作者:redguardtoo1. 声明请读者不要使用本文所介绍的技巧从事违法、不道德的事情。我对于本文所导致的任何后果概不负责。 2. 本文所面向的读者本文介绍了使用google解决难题的一些高级技术,重点讲述了如何选择关键字,如何分析过滤信息等等。通过阅读本文,你会明白在极大的时间压力下快速解决高难度问题的技巧。你也能了解如何对一些复杂的问题进行调查并给方案。任何对解决问题有
2005-04-03 10:10:00
1988
1
原创 Linux下的网络邻居
一.我访问别人的机器 安装smbclient,装好之后使用 smbclient -L 192.168.0.10 就可以看到该机上的共享资源了,而使用 smbclient ////192.168.0.10//Music 则可以像FTP客户端那样访问共享资源中的Music目录,也可以进行上传下载等操作。 或者,安装smbfs,装好之后使用smbmount ////192.168.0.1
2005-03-03 16:42:00
5096
转载 系统的学习Linux
作者:GuCuiwen email:win2linux@163.com 首先,我想引用一下别人说过的一句话:除非在过去的十年你一直生活在山洞里,否则你一定听说过linux. 是的,现在听说过linux,会一点linux基本操作的人多如牛毛,然而真正能用linux做一点事情的确少之又少,这就造成了现在的状况:各大linux论坛十分热闹,但我国linux人材却还十分紧缺.到
2005-02-25 16:26:00
2396
4
转载 隐藏在WinXP中的实用工具
1.免费的系统教程(system32文件夹下) 安装完Windows XP后很想马上学习并体验一下它的魅力吗?我们无需再东奔西走去找烦人的文字教材。只要选择"开始"→"漫游Windows XP",就会出现界面,它将引导我们游历Windows XP的新功能。 小提示:Windows XP中自带的教程非常形象,是图形界面的,而且制作得相当精美,微软的权威性可想而知。如果你的"开始"菜单
2005-02-20 19:02:00
1791
原创 Big-endian和Little-endian
简而言之:Big endian machine: It thinks the first byte it reads is the biggest.Little endian machine: It thinks the first byte it reads is the littlest.举个例子,从内存地址0x0000开始有以下数据 0x0000 0x12 0x0001 0x
2005-01-17 12:28:00
2990
原创 在VC中做一个选择文件夹的对话框
VC中没有现成的函数来选择一个文件夹,但这是经常会用到的,怎么办?自动动手,丰衣足食!使用SHBrowseForFolder,代码如下:#include int SelFolder(HWND hParent, CString &strFolder){ strFolder.Empty(); LPMALLOC lpMalloc; if (::SHGetMalloc(&lpMa
2004-12-25 14:36:00
2713
3
原创 浅谈TRACE、ASSERT宏的一种实现
下面是一个比较简单的下面是一个比较简单的TRACE和ASSERT的WIN32实现:#define ASSERT(expr) / do { / if (!(expr) && / (1 == _CrtDbgReport(_CRT_ASSERT, __FILE__, __LINE__, NULL, #expr))) / __asm { i
2004-12-01 21:54:00
2041
原创 C语言:陷阱和缺陷
原著:Andrew Koenig - AT&T Bell Laboratories Murray Hill, New Jersey 07094翻译:lover_P0 简介 C语言及其典型实现被设计为能被专家们容易地使用。这门语言简洁并附有表达力。但有一些限制可以保护那些浮躁的人。一个浮躁的人可以从这些条款中获得一些帮助。 在本文中,我们将会看一看这些未可知的益处。这是由于它的未可知,我
2004-11-17 19:36:00
1751
原创 使用属性对话框的一些经验
1.去掉Apply Now按钮m_psh.dwFlags |= PSH_NOAPPLYNOW; 2.控制OK、Cancel、Appliy Now、Help按钮很简单,它们的ID分别为IDOK、IDCANCEL、ID_APPLY_NOW、IDHELP 3.将属性页上所有的控件都映射到一个值的成员变量上去,这样才能在对控件进行初始化,才能在属性对话框关闭但还没销毁时获取控件的值4.从一个Page
2004-11-08 18:29:00
1776
转载 常用默认端口列表及功能
1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器 2 compressnet Management Utility compressnet 管理实用程序 3 compressnet Compression Process 压缩进程 5 rje Remote Job Entry 远程作业登录 7 ec
2004-11-08 17:01:00
6200
1
原创 浅谈C语言的可变参数
C语言中有些函数使用可变参数,比如常见的int printf( const char* format, ...),第一个参数format是固定的,其余的参数的个数和类型都不固定。 C语言用va_start等宏来处理这些可变参数。这些宏看起来很复杂,其实原理挺简单,就是根据参数入栈的特点从最靠近第一个可变参数的固定参数开始,依次获取每个可变参数的地址。下面我们来分析这些宏。 在std
2004-11-04 09:15:00
1727
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人