由于众所周知的原因,blogger无法在国内访问,已经厌倦了翻山越岭的千辛万苦,此blog以后不再更新。
2009年8月19日
2009年6月5日
Firefox 3.5b99?
前不久有报道说Mozilla要延期发布Firefox 3.5正式版了。今天偶然间逛mozilla的ftp时发现这么一个链接:
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/3.5b99-candidates/
这是什么意思?Firefox 3.5b99,beta 99版? 不会是开玩笑吧,也算见过不少软件的发布了,b99这样的beta还是第一次见到。难道这就是准正式版,不过一般正式版前面的版本都叫RC什么的才对啊~ 总之非常奇怪,喜欢尝鲜的朋友可以去以下链接下载个b99版,看看到底有什么玄机 :)
Firefox 3.5b99 Windows中文版:
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/3.5b99-candidates/build1/unsigned/win32/zh-CN/Firefox%20Setup%203.5%20Beta%2099.exe
Firefox 3.5b99 Linux中文版:
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/3.5b99-candidates/build1/linux-i686/zh-CN/firefox-3.5b99.tar.bz2
2009年5月17日
在windows下编译vcf2csv
今天(5月17日)vcf2csv出了新版v0.0.5。这对我来说很有纪念意义(虽然好多人不一定知道我在说什么),因为这个版本是我和作者反馈一个问题之后,作者很热情地帮我解决了问题,然后放出的新版本。故事的经过大概是这样的:
起因
最近要把一个vcf文件中的电话号码导出来,就到网上搜索vcf的转换软件,一搜一大把,最后筛选出下面三个(都是免费的):
vcf2csv C语言编写当时因为机子上没有ms office,又正在学C语言,而且不太敢把那么多电话号码用在线服务转换,于是就选择了vcf2csv。
vcard2xls 基于Excel的宏编写
在线服务 : http://labs.brotherli.ch/vcfconvert/
但是下载下来才发现,里面竟然只有linux的版本(当时还是v0.0.4版)。幸好vcf2csv是开源软件,源代码已经在压缩包里面了,而且作者提到使用ansi c编写的,源代码的主要部分只有一个c和一个h文件,干脆直接编译一个出来,应该问题不大。
于是先做好准备工作:
- make和gcc :mingw
- sh.exe和sed.exe:http://nchc.dl.sourceforge.net/sourceforge/unxutils/UnxUtils.zip
- 把里面的各个bin、wbin目录设置到系统的path变量里
vcf2cvs的src目录下的makefile中的cc改成gcc
rm -f ……改为
rm -i -f *.o *.d vcf2csvcmd或者sh下转到vcf2csv,
make all
结果果然出错了:
undefined reference to `index'
index函数和strchr函数的问题
查看了一下源代码,原来是没有定义index函数就直接调用了
搜搜得到:在Google code搜索,发现index函数有几种不同的实现方法(分别在libc、gcc、gdb的源码中),都大同小异,而我搜遍mingw的头文件也没找到index函数的定义。后来一查才发现,index函数的定义原来在string.h中!!!我倒!我搜索了C Standard Library,里面也没有index函数的说明, 那么,究竟index函数是在哪里定义的呢?
但令我困惑的是,有的书上说应该在,但是我的string.h(MinGW自带的中却没有!)网上搜索一下,有的有,有的没有……
于是试着修改vcf2csv.c的源代码,添加一个index函数的实现
vcf2csv -i test.vcf不会吧,好不容易编译成功了,居然vCard有问题?可是我又在我的linux系统下运行了软件包中的linux版本,却没有问题!这说明不是我的vCard文件的问题。
ERROR vcard error? malicous line in vcard?
/* if we don't have the strchr() and strrchr() functions,原来index不总是存在于string.h中的,后来才知道被strchr函数替代了
* then we must fall back to index() and rindex() respectively,
* but (apparently) these aren't always prototyped in string.h
*/
#ifndef index
/* i.e. NOT using strchr()
*/
extern char *index (const char *, int);
#endif
#ifndef rindex
/* i.e. NOT using strrchr()
*/
extern char *rindex (const char *, int);
#endif
以下两篇文章讲述了index函数和strchr函数的渊源:
PATCH Replace index() with strchr() in read-rtl.c:
http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01193.html
引用一下:
Not all platforms (such as MinGW) have index() used in read-rtl.c,终于明白了!
causing a bootstrap failure on these targets. index() is not in
Standard C, and POSIX recommends that strchr() (which is in Standard C)
be used instead.
大意是说,index不是标准的c库函数,Mingw这样的平台就没有这个index函数(怪不得搜索不到)
POSIX推荐使用strchr来替代index。
The index() function is an old synonym for strchr().
前者是后者的较旧的同义词
The strchr() function conforms to ANSI X3.159-1989 ("ANSI C").
strchr函数遵循ANSI C标准
The index() function is deprecated and shouldn't be used in new code.
index函数已经被废弃,不应该在新的代码中使用
这里有一个strchr的例子:http://www.cplusplus.com/reference/clibrary/cstring/strchr/
罕见的讨论index函数的帖子,中文网站上极少的关于index的资料,不过ms用处不大:
http://bbs.chinaunix.net/viewthread.php?tid=1069545
http://bbs.chinaunix.net/viewthread.php?tid=1390765
Linux和windows的差别
vcf2csv -i test.vcf非常奇怪,在linux下工作正常,在win下就出错,天啊,到底哪儿出问题了?难道真是linux和windows的问题,不会吧,这个小程序应该不会依赖操作系统特性吧?
ERROR vcard error? malicous line in vcard?
关于make clean
后来,make clean又出错:
H:\vcf2csv>make cleanzsh: no matches found: *~ 出现这一句的原因应该是unxutils的sh.exe实际上是linux下的zsh移植到win下的
make -C src clean
make[1]: Entering directory `H:/vcf2csv/src'
rm -f *~ *.o *.d vcf2csv
zsh: no matches found: *~
make[1]: *** [clean] Error 1
make[1]: Leaving directory `H:/vcf2csv/src'
make: *** [clean] Error 2
参考这篇文章:http://zsh.dotsrc.org/Intro/intro_8.html
大意是说zsh下rm比较安全,rm -f *~ *.o *.d vcf2csv这样的写法是不行的,会返回no matches found错误
改为rm -i -f *.o *.d vcf2csv后,make clean 成功!
关于zsh可参考:终极Shell——Zsh http://linuxtoy.org/archives/zsh.html
问题的解决
后来我通过邮件联系了作者(我还是第一次正式的和外国人书面交流呢),作者是个德国人,非常热情,还谦虚和我说他英语不太好,其实比我强多了:) 作者说很愿意帮助我,会用周末解决这个问题。果然,今天新版本就出来了,不知怎么说才好,只能一个劲的thank you very much,呵呵。
总结
由于本人的水平有限,上述问题对于会编程的人来说可能不算什么问题,可对于我这个初学者来说,这样的经历可谓获益匪浅。亲历了一下自己动手编译软件的乐趣,知道了index和strchr的故事,结交了一个外国朋友,还顺便提高了英文水平,真的学到了不少东西。谨以此文为纪,自勉。
2009年5月16日
遭遇和谐:Blogger与appspot
从昨天(5·15)起,突然发现我的博客不能访问了,第一反应是ghs服务器肯定又被和谐了,于是打开appspot的代理,也打不开,然后又试了blogger主页,居然连blogger也~ 天哪,前一天还好好的,仿佛一夜之间天地一片黑暗……
今天起,blogger(blogspot)、appspot这几个服务算是完了(Youtube和ghs.google.com被屏蔽已经是老生常谈了,就不提了)。以前blogspot被墙的时候,blogger主页还可以访问,如今连blogger控制台也被g了;还有自从appspot出现了利用Google服务器的代理服务(如go2等)之后,我就担心哪天appspot会出事,结果终于应验了。树大招风,Google的服务在中国只要稍微有点风吹草动,就似乎难逃被封的命运。
现在这个博客简直是为我自己写的了:更新博客自己还要穿墙,别人谁会来看呢? 祈祷吧,也许哪天慈悲天降,没准就正常了呢。
2009年5月14日
我的硬盘分区方案
现在大硬盘越来越普及了,而如何合理分配这么多的空间就是个问题了。这里我把自己的分区方案分享出来,希望能对大家有所参考,不足之处,欢迎多提建议:) 。
【括号中的是我建议的磁盘卷标(label)】
系统分区(System:C):建议操作系统专用,不安装其他的程序,大小10G(xp)|30G(Vista),分的太多浪费空间,太少系统运行会受影响
交换文件分区(Swap):专用存放操作系统的页面文件(或者称交换文件、swap文件),大小建议为内存的1.5倍,并且在系统设置中将页面文件设置到此分区,目的主要是避免交换文件默认在系统分区造成的磁盘碎片
临时文件分区(Temp):存放系统产生的临时文件,并把系统temp/tmp环境变量、IE的缓存文件夹都设置到此分区,以避免在系统分区造成过多的碎片
文档分区(Document):存放工作文件、各种文档、资料等
程序分区(Programs):专用安装各种程序、游戏软件等,大小视需要安装多少程序而定,最少10G吧
娱乐分区(Joy):专职下载电影、歌曲等,大小因人而异,经常下电影的就分的大一点(恐怕多大都不够用:))
备份分区(Backup):存放系统的ghost镜像,重要文件备份等
2009年5月12日
5·12一周年纪
无需多言,谨此纪念遇难同胞。
在今天这个特殊的日子,朋友发来的一篇关于70yard事件的文章再次震撼了我,详情可点击链接了解 http://70yard.com/,加上前不久的公安局政委女儿冒名上大学 事件,然我们再为社会默哀三分钟吧。2009年5月10日
Sourceforge主页又改版了
Sourceforge主页 http://sourceforge.net/ 最近又改版了(见下图),感觉有点MAC风格,以前的版本显得上半部分太大,下边内容部分太小,这次布局上比上次感觉舒服了一些。
改版前:
改版后:
引自维基百科:http://zh.wikipedia.org/wiki/SourceForge
QQ空间qzone无法访问,疑似被屏蔽
C:\WINDOWS\system32>ping qzone.qq.comPinging qzone.qq.com [222.202.96.132] with 32 bytes of data:Request timed out.Request timed out.Request timed out.Request timed out.Ping statistics for 222.202.96.132:Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
2009年5月8日
你的书签/收藏夹利用了多少?
自从Firefox3出来之后,我就非常喜欢它“一键添加书签”的功能。每每遇到喜欢的网页,只需点击一下地址栏边上的“星星”,就收藏了,多方便。可这也惯坏了我,不管什么网页,动不动就“星”一下,可收藏了以后,结果却是大多数书签都“泥牛入海”,再也不会访问了,只是放在那里,有个心理安慰而已,利用率极低。很长一段时间,我都只管点星,不去整理。后来无意中统计了一下,竟然达到了三千多个~
而真正重要的书签呢,却混杂在这无数鸡肋般可有可无的书签中,难以寻找。虽说firefox的书签搜索很强大,但是对付这么大数量还是有些卡,想整理一下吧,移动几百个书签就卡的要死,那等待的时间真的不能忍了~
最后无奈之下全都导出到一个html文件中,好家伙上兆了,给他找到个好归宿——全都导入到有道的网络书签中,算是做个备份吧。
后来认真考虑了一下,决定不再滥用浏览器自带的书签了,而以网络书签作为我的主力书签。除了以上的原因,还有一个重要的原因就是我用着好多浏览器(ie、firefox、chrome、opera),在这些浏览器里面同步书签是个很大的问题,干脆“大一统”到网络书签,虽然不那么方便,但避免了好多问题。
最后一句,“三思而后加书签”,要加真正有用的东西,才能体现书签的价值。
转载请注明来自 我享 [ http://www.ienjoy.info/ ] ,并以链接的形式标明本文地址
2009年5月6日
注销雅虎帐号/Yahoo邮箱的方法
最近越来越觉得雅虎的邮箱不好用了,想用POP还要每月交10块人民币,除了访问速度快一点可以说没有任何优势(相对于Gmail和QQmail,139邮箱)这样的邮箱来说。加上我是个一切从简,精简至上主义者,于是我想注销掉这个累赘:yahoo的邮箱账号了。
方法很简单,输入以下网址,验证一下密码,继续就可以了:
http://edit.yahoo.com/config/delete_user
好了,又少了一个帐号,好像又轻松了一点,呵呵,这种想法是不是有点……
以上方法适用于yahoo.com / yahoo.cn / yahoo.com.cn 等所有的雅虎帐号
2009年5月4日
Vista出现“User Profile Service服务未能登录”的解决办法
今天一位朋友的电脑的Vista系统在新建了一个用户之后,怎么也登陆不了,系统提示
“User Profile Service服务未能登录:无法加裁用户配置文件”试了好多方法,最后发现是他把系统盘“用户”目录下的“Default”文件夹【即C:\Users\Default】给删除了。这个文件夹是新建用户配置文件的一个模板,没有这个,在新建帐户或开启来宾帐户时就不能建立用户配置文件,所以就出现上面的错误。
解决办法:
从别的Vista电脑里复制一个Default文件夹放在C:\Users目录下就可以了。补充说明:如果以上方法不行,可以尝试下面链接的方法:
http://blog.sina.com.cn/s/blog_54d61b7b01009qh2.html
参考了 http://zhidao.baidu.com/question/82317075.html
2009年5月2日
linux的GUI界面性能问题
最近看了一篇文章(【测试】Firefox JavaScript性能对比:Wine也强于Linux ),加上我的切身体验,感觉linux在桌面GUI上的性能表现真的不太令人满意(不讨论linux的命令行和服务器方面的性能表现),主要是程序的启动速度和反应速度。
程序启动:
我感觉除了像mousepad这样的程序可以瞬间启动以外,其他的程序,例如系统监视器等,点击了程序图标之后往往要等上那个光标转上两圈以上才能出现界面。最不能忍的就是Firefox,启动那叫一个慢,Firefox在linux下的性能表现早已为人诟病许久,我甚至怀疑Mozilla不重视linux用户的感受……这样明显的延迟令人很不舒服
反应速度:
程序启动之后,做一些动作,例如在系统监视器里切换标签,在firefox里滚动页面、切换标签,能感到明显的延迟,前者甚至还会有拖影。引用一句比较流行的话:“用户体验不佳”。
另外,我还有一部moto的linux系统的智能手机,那个界面反应更慢,点击什么都要等上半秒钟以上,于是,我开始考虑是不是linux的图形界面Gui都有这样的反应速度问题了。
申明一下,我的机器配置不是很高,但运行XP很流畅,没有感到那么明显的启动和反应延迟,”用户体验“还可以,我感觉linux下GUi程序反应慢的结论是相对于我在xp下的相对感受得出来的;
我用过Ubuntu(Kubuntu、Xubuntu、Hiweed)、RedHat、CDlinux、Puppy、Knoppix、DSL……等几种linux发行版,各个版本各有不同,说的是个人主观感受,以Ubuntu为主,本人只是linux的初级用户,难免有所片面,还望见谅。
转载请注明来自 我享 [ http://www.ienjoy.info/ ] ,并以链接的形式标明本文地址
2009年5月1日
Xubuntu下安装Wine时显示:服务器关闭了连接
apt-get wine 时出现如下错误:
错误 ftp://mirror.lzu.edu.cn jaunty/main flex 2.5.35-6ubuntu1
服务器关闭了连接
经查,ftp://mirror.lzu.edu.cn/ubuntu/pool/main/f/flex/flex_2.5.35-6ubuntu1_i386.deb
这个文件是0字节,估计是Ubunu9.04刚刚出来,镜像服务器还没有分发完成,所以才出现这个错误,等几天再试试看吧
2009年4月28日
妙用组策略计算文件的MD5值
有时候我们会需要验证一个文件,要得到该文件的MD5值,而手边又没有相关的hash工具,下面分享一个我发现的小技巧,可以利用系统自带的组策略来计算文件的MD5值。方法如下:
1、点击 开始-运行,输入 gpedit.msc
2、点击: 组策略——计算机配置——Windows设置——安全设置——软件限制规则——其他规则——右键——新散列规则——浏览,选择一个文件,点击打开,会显示类似于这样的字符串:
5745efa43b5ded56c1e5b33301e82efd:560986:32771其中第一个冒号前的(粗体蓝字部分)就是该文件的MD5值,注意如果文件较大可能会有一段时间机器没有反应,是正常的。
转载请注明来自 我享 [ http://www.ienjoy.info/ ] ,并以链接的形式标明出处
2009年4月27日
Gmail自动转发pop的邮件被139邮箱屏蔽?我的解决办法
因为Gmail拥有免费的自动转发,而139邮箱拥有免费的短信提醒,这两者就构成了一个完美的组合:用Gmail做前端,139做终端,通过Gmail强大的过滤+转发功能吧重要的邮件转发到139邮箱,就可以收到邮件到达短信提醒通知,非常好用。不过最近发现一个问题,我的Gmail信箱总是收到来自139.com邮箱的退信,类似以下的消息:
**@139.com, 550 Requested action not taken: mail *** is rejected上网查了一下,产生550错误的原因很多,如
或者
“553 Too many Received key words in the mail, should less than 13
- 收件人不存在(Invalid User/Recipients,mailbox unavailable)
- 邮件包含病毒(Possible viruses)
- 发件人被列入很名单(拒收Sender rejected)
- 内容不合法(content rejected) 等等
我现在找到了一个折中的解决方法:
先将Gmail的邮件转发到QQ邮箱中,再将QQ邮箱设置为转发到139邮箱,我试了,可以。
网易的yeah.net邮箱也有自动转发功能(163/126的自动转发要收费的),未测试,不知道可不可以。
转载请注明来自 我享 [ http://www.ienjoy.info/ ] ,并以链接的形式标明出处
2009年4月25日
漏洞扫描:360安全卫士 vs 卡卡助手
今天ghost恢复了系统,想看看最近有没有新的补丁出来。于是就用360扫了一下,结果发现系统没有漏洞,但是有几个“过期补丁”,也就是被新的补丁替换的,不用打了。出于好奇,我又下了个卡卡助手,结果扫出了5个漏洞,没仔细看,ms是和360所说的过期补丁差不多。似乎卡卡和360扫描漏洞的机制不一样,卡卡分析的是系统打过那些补丁,把没打过的补丁列出来;而360似乎还要分析各个补丁之间的关系,只要求打上最新的补丁就可以了,而针对同一漏洞的旧的补丁就不用打了,已经包含在新的补丁中了,好像比较智能。
看来还是要请出最后的裁判——微软官方的MSBA(Microsoft Baseline Security Analyzer,微软基线安全分析器)。结果MSBA扫出了两个漏洞,与卡卡扫出的没有重叠的!卡卡扫出来的没用,而360没扫出来, 看来,看来扫描漏洞还要用官方的东西啊……
转载请注明来自 我享 [ http://www.ienjoy.info/ ] ,并以链接的形式标明出处
