2009年6月19日星期五
终于搬家了!(请去我的新Blog)
我只想说,WordPress真是不错。
以后就去http://xhacker.shiyiquan.cn吧。
这个Blog将作为回忆。文章不一定要导过去了。
2009年6月4日星期四
今天六四二十周年
2009年5月24日星期日
Bye, Blogger.
这可能是我在Blogger上发布的最后一篇文章了。
我从07年5月开始用Blogger,两年了。历经多次被封,我仍然坚持着。每一次解封,我都高兴地发表一篇文章以示庆祝。如今,在20周年之际,Blogger再次荣幸地被墙了,我不能忍了。为了能够稳定地发贴,为了读者的访问(有吗?也许并没有读者。但通过FeedBurner我知道还是有人订阅的),我只好走了。
我最早的Blog在新浪,然后是CFan的博墅,再到Blogger。Blogger用着真是十分顺手——虽然功能有限。Blogger没有任何别的BSP充斥着的影响人心情的东西。Blogger有一个精致的蓝色主题,十分简洁,让人感觉很舒服。如果没有墙,我肯定会继续Blogger,它是个好BSP。
然而,我们在天朝。天朝的信息产业部是不可理喻的(看看传说中的《真理部指示》,https://docs.google.com/Doc?id=dd4chbjh_18gd2qtmd9,可能要翻墙)。他们封锁YouTube、Wikipedia、包括Blogger。我可以费劲地翻墙去发文,可以去 X GFW(http://s4ng.com/gfw/)但这已经严重影响到我的心情了。再者,读者怎么会翻墙呢?
于是,我找到了“代码如诗”的Wordpress。我还发现了Elite这个很合我胃口的黑色主题。于是,我体验了“WordPress 著名的5分钟快速安装法”,开始了WP之旅。一切都是顺利的。WP就像Firefox一样,插件众多,theme众多,慢慢玩吧。
最后,欢迎大家常来我的新博玩:http://www.shiyihcc.com/xhacker。而现在这个博客,就放着留作纪念吧。
Bye, Blogger.
2009年5月2日星期六
F1成了什么玩意了?!
“2010年实行四千万镑预算帽”,你还嫌世界不够乱吗?
今年的F1已经看得人毫无兴趣了,还想怎么样?
题外话,今天是塞纳死去15年的日子,默哀……
2009年4月10日星期五
Chromium Linux 已经不错了

Firefox在20分钟过后,内存占用就会近乎疯狂地彪到200兆。Chromium for Linux继承了Win版的速度,十分不错。
现在用一个PPA源,每天能更新到svn版,不用自己编译,很爽。
从第一个很简陋的版本(不支持标签页),到现在的已经不错的UI,可以说进步相当快。
Google说6月会发布。
Post script:本人昨天注册了Twitter,也试试最近时髦的Micro-blogging。Follow me @ https://twitter.com/xhacker
PS 2:WordPress.com解封了!
2009年4月3日星期五
2009年3月29日星期日
Jaunty Jackalope
2.6.28的内核开始支持ext4了,迫不及待地把/升级成ext4了,还出了点事,但最后是弄好了。启动速度9.04要快不少,但没觉得ext4比ext3快多少。现在从Grub到GDM,30秒左右。
硬件支持方面,无线网卡自动识别了,比8.10强。
总的来说,9.04真的十分十分不错。如果说Hardy、Intrepid挺好的,那Jaunty就几乎完美了。
家里的台式机还是Hardy呢,但是8.10没有诱惑到我,但现在的9.04,即将取代8.04。
Plymouth, fully new theme, shorter boot time ... 但愿9.10能更好。
2009年3月14日星期六
今天3月14日




天,刚看了一下维基百科,今天老约翰·施特劳斯(他又是谁?)也过生日……
不错,今天这热闹。
对了对了对了,我竟然忘了一个严重的事情!今天314宿舍舍日!祝314全体舍友快乐!
备注:此篇文章中,除了Google的Doodle以外的所有图片,包括文章本身,在GNU自由文档许可证之条款下提供(查看GFDL非正式的中文翻译)。
2009年1月26日星期一
大过年的,被rm害苦了……
2009年1月23日星期五
php常见漏洞及防范措施
漏洞1.SQL注入
这真是极其耳熟能详的漏洞了,曾经害过无数网站。不过,自从php有了“魔术引用”(Magic Quotes),SQL注入可是尝不到任何甜头了。但是,防范于未然,万一人家php版本低呢。可以编这么一个函数来防范:
02 function escape_data ($data)
03 {
04 if (ini_get('magic_quotes_gpc'))
05 {
06 $data = stripslashes($data); //抵消Magic Quotes
07 }
08 if (function_exists('mysql_real_escape_string'))
09 {
10 global $dbc;
11 $data = mysql_real_escape_string
(trim($data), $dbc);
12 }
13 else
14 {
15 $data = mysql_escape_string(trim($data));
16 }
17 return $data;
18 }
19 ?>
只要将每一个数据库查询语句使用一下这个函数,基本就安全了。或者,更完美的话,可以再用正则表达式检验一下。
当然,还要注意,尽量给用户开放最小的权限。这样,即使被注入了,损失也是有限的。
漏洞2.XSS,跨站脚本
观察如下代码:
试想,如果别有用心的人将name写成一些HTML代码,后果将不堪设想。1 <?php
2 $name = $_GET['name'];
3 if isset($name)
4 {
5 echo "Hello, $name";
6 }
7 ?>
不过,防范的方法还是比较简单的,只要用htmlspecialchars这个函数就可以了。
漏洞3.错误信息过于详尽
观察如下代码:
有时,为了调试的方便,将错误信息写得十分详尽。比如说将数据库连接的语句都写出来了。这在网站发布后是不可想象的,需要注意。01 <?php
02 $result = @mysql_query($query);
03 if ($result) { /* Do something... */ }
04 else
05 {
06 echo 'System error ... ';
07 // ...
08 echo 'Error:' . mysql_error();
09 // ...
10 echo 'Query:' . $query;
11 }
12 ?>
呵,这就是我总结的一些常见的漏洞,大家可以留言补充。
2009年1月13日星期二
A Secret Plan - Xplan Stage 1
Feb.15th - July.1st
You want to know more?
Wait a moment, at July.1st, you will know all.
2009年1月11日星期日
TextMate真是太劲爆了!!!
!!!
TextMate - The Missing Editor for Mac OS X
HCC买了两台iMac,还有Adobe CS4等软件。最令我不解的是,竟然花了近千元买了两套TextMate。开始,我认为她就是普通的文本编辑器,真是不值,花这么多钱。我上网查了,只是说比较好用。但我想,文本编辑器能好用到哪去啊。我用了很久,仍然认为她只是类似于Gedit一样的东西,只不过界面比较爽。直到今天,我看了几个视频!!!太劲爆了!!!于是,我仔细研究之,发现之确实是写代码的利器!!!用了就会上瘾的!!!网上多人说有人仅为了TextMate去买Mac,开始我是很不解,可现在我了解了。说不定,用着用着,我也会上瘾。她太贴心了。
太强了。太强了!!!代码的补全功能,不是一般意义的补全,真是无敌了。还有Bundles,绝对是一个变态的东西。诸多的快捷键配合Bundles,绝对能节省一半的编程时间。(绝不夸张!!!)
附:视频:
http://macromates.com/screencasts
http://gallery.me.com/jimtkm#gallery
可惜这玩意不支持中文。2.0将支持中文。
39欧元真是值了。
2009年1月1日星期四
今天是2009年1月1日
2008年12月31日星期三
2008年12月16日星期二
开始用FeedBurner烧Feed了

http://feedproxy.google.com/xhacker
这是我的Blog的新的订阅地址。用FeedBurner以后,统计起来就方便多了。不多,我的Blog订阅人数应该是在个位数,嗨,纯属没事找事。
对了,声明一下,www.alphax.cn已经过期。
2008年12月13日星期六
Guide Robot, GPS, ...
2008年12月6日星期六
机器人竞赛二三事
我跟猩没有去成广东,但有一个新的比赛,科技创新大赛。我校有三个队,应该能突围一个队。我们一周的下午、晚上都在弄这个。
今天和DK一起等车,我说来736,DK说308。751?我跟DK都从来没看到过,车极少。过一会,来了308,接下来竟是751。DK:天真冷。我:今儿天不错。车开过去,看到侧面竟写的是951(*大概就是9少一个横,很像9。DK:灵异了。我:应该是9。车开过去,看到后面竟是851!!!DK:没看到车牌号。我:待会看一眼。于是,车牌号是“京A A9312”。今儿天真冷!
机器人,我们eX-Robot Team争取突出去。
Vex,DK他们拿了银奖,不错。
下周的国旗下讲话,DK上。
什么时候我上?科技创新大赛一等奖。NOI一等奖。
对了,NOI,信息学竞赛,我将开启新的征程。
发现一个有意思的事情,NOI是AMD赞助,科技创新大赛是Intel赞助。
2008年11月22日星期六
[转] Web 设计:实现干净代码的12条定律
本文国际来源:http://www.smashingmagazine.com/2008/11/12/12-principles-for-keeping-your-code-clean/
中文翻译来源:COMSHARP CMS
漂亮的代码是漂亮网站的基础,优秀的 CSS 只存在与同样优秀的 HTML 之上,干净的,语义的 HTML 代码让一个网站更健壮。本文讲述了12个实现干净 Web 设计代码的定律,适合于任何从事 Web 设计的人。
1. Strict DOCTYPE
要做就做对的。不管是 HTML 4.01 还是 XHTML 1.0,它们都提供 Strict 模式,使用 Strict 模式可以保证我们的代码不隐藏任何错误。
参考资料:
- W3C: Recommended DTDs to use in your Web document
- Fix Your Site With the Right DOCTYPE!
- No more Transitional DOCTYPEs, please
2. 字符集声明,特殊字符进行编码处理
字符集声明应当放在 <hea> 部分的最前面,以便让浏览器知道如何显示网页中的所有内容,包括标题。另外,一些特殊字符,如 & 最好用 & 代替,这是一种最安全的方法。
参考资料:
3. 恰当的缩进
缩进不会影响网页的渲染,但会明显改善阅读源代码时的体验。缩进没有特定的规则,但始终保持一致是个好习惯。
参考资料:
4. 将 CSS 和 JavaScript 放在外部文件中
将 CSS 和 JavaScript 放在外部文件中引用,不仅减低单个网页的尺寸,而且意味着其它网页也可以共用这些代码,另外,浏览器的缓存机制可以很好地降低对相同代码的重复下载。
5. 正确地嵌套 Tag 标签
如下图,第一行代码中,<h1>标签嵌套在 <a>标签中,尽管多数浏览器会正确渲染,但这不是好的习惯, 标签是 block 对象,而 是 inline 对象,inline 对象不应该容纳 block 对象。
6. 消除不必要的 <div>
<div> 常被滥用(尤其在我们现在所处的 DIV+CSS 神话中 - 译者),人们希望把任何东西都放在 <div> 中以便为它们分配 CSS 式样,这种滥用会导致的臃肿。
参考资料:
7. 使用更好的命名规则
如下图,Cat 的 CSS 类被命名为 red italic,暗示着 Cat 使用红色斜体,如果你想将 Cat 改成兰色的粗体呢?
8. 尽量使用 CSS 控制文字的排版
如下图所示,不要直接使用大写,用 CSS 对这些文字排版方面的格式进行控制,这样会更灵活。
9. 为 <body> 分配独立的 class/id
为 body Tag 分配一个独立的 class/id,可以很好地定位页面中任何对象,因为页面中所有对象都位于 body 中。
参考资料:
10. 验证
无需多言,你应当尽可能对网页的代码进行验证,尽管有些代码错误浏览器能自动更正,但有些错误是会带来不好的后果的,尤其当你位于 Strict 模式下。即使什么都不为,看到那个绿色的 W3C 验证标志至少可以让自己舒服一些。
W3C 验证是否通过并不一定要什么拘泥,Web 设计中存在更多的考量,只拘泥 W3C 验证结果,可能影响一些更重要的因素,比如,IE6 在 W3C 标准方面存在不少 BUG,如果你为了100%通过 W3C 验证而宣布自己的网站不支持 IE6,至少在国内会得不偿失的 - 译者
参考资料:
- The W3C Markup Validation Service
- XHTML-CSS Validator
- Free Site Validator (checks entire site, not just one page)
11. 合理的结构次序
将网页结构保持一个合乎逻辑的次序。
12. 尽你所能
如果你从零开始写,保持以上的原则当然要容易的多,如果要修改旧的代码,将会很痛苦,一些 CMS 系统拙劣的编码会让你陷入泥沼,或者你的网站规模宏大要改动的东西太多,不管怎样,始终保持良好的习惯非常重要。
更多阅读:
本文国际来源:http://www.smashingmagazine.com/2008/11/12/12-principles-for-keeping-your-code-clean/
中文翻译来源:COMSHARP CMS